commit 15f28c0dd6c33d875c09d0b7ac89098574df9bc8 Author: l4kr Date: Mon Feb 9 10:48:21 2026 +0100 first commit diff --git a/apikeys/apikeys.js b/apikeys/apikeys.js new file mode 100644 index 0000000..afe848f --- /dev/null +++ b/apikeys/apikeys.js @@ -0,0 +1 @@ +define(["exports","./../list/list.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js"],function(_exports,_list,_globalize,_embyInput,_embyButton,_embySelect,_embyScroller){function showNewKeyPrompt(){var options,instance=this;options={title:_globalize.default.translate("HeaderNewApiKey"),label:_globalize.default.translate("AppName"),description:_globalize.default.translate("ValueExample","Sickbeard, NzbDrone")},Emby.importModule("./modules/prompt/prompt.js").then(function(prompt){return prompt(options)}).then(function(value){instance.getApiClient().createApiKey({App:value})})}function ApiKeysPage(view,params){this.hasOtherViewButtons=!0,this.enableAlphaNumericShortcuts=!1,_list.default.call(this,view,params),function(view){view.querySelector(".listTotalRecordCount").insertAdjacentHTML("afterend",'")}(view),view.querySelector(".btnAdd").addEventListener("click",showNewKeyPrompt.bind(this)),this.itemsContainer.setAttribute("data-monitor","ApiKeys")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles"]),Object.assign(ApiKeysPage.prototype,_list.default.prototype),ApiKeysPage.prototype.getItemTypes=function(){return["ApiKey"]},ApiKeysPage.prototype.getApiClientQueryMethodName=function(){return"getApiKeys"},ApiKeysPage.prototype.getBaseListRendererOptions=function(){var options=_list.default.prototype.getBaseListRendererOptions.apply(this,arguments);return options.draggable=!1,options.action="none",options.playQueueIndicator=!1,options},ApiKeysPage.prototype.getCardOptions=function(items,settings){var options=_list.default.prototype.getCardOptions.apply(this,arguments);return options.shape="backdrop",options},ApiKeysPage.prototype.getListViewOptions=function(items,settings){var options=_list.default.prototype.getListViewOptions.apply(this,arguments);return options.enableDefaultIcon=!0,options.transparentIcon=!0,options.draggableXActions=!1,options},ApiKeysPage.prototype.getSettingsKey=function(){return"apikeys"},ApiKeysPage.prototype.setTitle=function(){};_exports.default=ApiKeysPage}); \ No newline at end of file diff --git a/app.js b/app.js new file mode 100644 index 0000000..2a6795f --- /dev/null +++ b/app.js @@ -0,0 +1 @@ +!function(){"use strict";var customPaths,appMode=globalThis.appMode,isNativeTizen="tizen"===globalThis.appMode,isNativeLG="webos"===globalThis.appMode;function returnFirstDependency(obj){return obj}function returnFirstDependencyDefault(obj){return(null==(obj=Array.isArray(obj)?obj[0]:obj)?void 0:obj.default)||obj}function enableNativeGamepadKeyMapping(){return window.navigator&&"string"==typeof window.navigator.gamepadInputEmulation&&(window.navigator.gamepadInputEmulation="keyboard")}function loadPlugin(url){return Promise.all([importFromPath("./modules/common/pluginmanager.js")]).then(function(responses){var pluginManager=responses[0];return url.startsWith("./")&&url.endsWith(".js")?(console.log("Loading plugin module: "+url),getDynamicImport(url)().then(function(f){return pluginManager.loadPlugin(f,url)})):pluginManager.loadPluginFromUrl(url)})}function returnFalse(){return!1}function onApiClientCreated(e,apiClient){"ios"!==appMode&&"android"!==appMode||(apiClient._getAvailablePlugins=apiClient.getAvailablePlugins,apiClient.getAvailablePlugins=function(){var promises=[this._getAvailablePlugins(),importFromPath("./modules/common/pluginmanager.js")];return Promise.all(promises).then(function(responses){var plugins=responses[0],pluginManager=responses[1];return plugins.filter(function(p){return pluginManager.allowPluginPages(p.guid)})})}.bind(apiClient)),Promise.all([importFromPath("./modules/browser.js")]).then(function(responses){responses[0].operaTv&&(apiClient.isWebSocketSupported=returnFalse)})}function createConnectionManager(){return Promise.all([importFromPath("./modules/emby-apiclient/connectionmanager.js"),importFromPath("./modules/emby-apiclient/events.js"),importFromPath("./modules/common/servicelocator.js")]).then(function(outerResponses){var accessToken,userId,connectionManager=outerResponses[0],events=outerResponses[1],outerResponses=outerResponses[2].appHost;globalThis.Events=events,connectionManager.globalScopeApiClient=!0,connectionManager.devicePixelRatio=globalThis.devicePixelRatio,globalThis.ConnectionManager=connectionManager,events.on(connectionManager,"apiclientcreated",onApiClientCreated),outerResponses.supports("multiserver")||(connectionManager.enableServerAddressValidation=!1,window.location.search&&(accessToken=(events=new URLSearchParams(window.location.search)).get("accessToken"),userId=events.get("userId"),accessToken&&userId&&"1"===events.get("e")||(userId=accessToken=null)),console.log("creating ApiClient singleton"),connectionManager.validateServerIds=!1,outerResponses=window.location.href.toLowerCase(),outerResponses=-1!==(events=outerResponses.lastIndexOf("/web"))?outerResponses.substring(0,events):(events=(outerResponses=window.location).protocol+"//"+outerResponses.hostname,outerResponses.port&&(events+=":"+outerResponses.port),events),events=connectionManager.getApiClientFromServerInfo({ManualAddress:outerResponses,ManualAddressOnly:!0,IsLocalServer:!0,AccessToken:accessToken,UserId:userId},outerResponses),accessToken&&userId&&(window.location="index.html"),events.enableAutomaticNetworking=!1,console.log("loaded ApiClient singleton"))})}function getPluginPageContentPath(){return globalThis.ApiClient?globalThis.ApiClient.getUrl("web/ConfigurationPage"):null}function getDynamicImport(path){return function(){return require([""+path]).then(returnFirstDependencyDefault)}}function importFromPath(path){return getDynamicImport(path)()}function importFromPathWithoutExport(path){!function(path){return function(){return require([""+path])}}(path)()}function getNativeImport(objectName){objectName=globalThis[objectName];return Promise.resolve(objectName)}function loadAppStorage(){var promise;try{localStorage.setItem("_test","0"),localStorage.removeItem("_test"),promise=importFromPath("./modules/emby-apiclient/appstorage-localstorage.js")}catch(e){promise=importFromPath("./modules/emby-apiclient/appstorage-memory.js")}return promise.then(function(appStorage){return(appStorage.init?appStorage.init():Promise.resolve()).then(function(){return appStorage})})}function loadApiClient(){return console.log("loadApiClient"),getDynamicImport("./modules/common/servicelocator.js")().then(function(serviceLocator){return loadAppHost().then(function(appHost){return(appHost.supports("sync")?getDynamicImport("./modules/emby-apiclient/apiclientex.js"):getDynamicImport("./modules/emby-apiclient/apiclient.js"))()}).then(function(apiClientFactory){return serviceLocator.initialize({apiClientFactory:apiClientFactory}),apiClientFactory})})}function supportsTizenNaclSockets(){var v;if(globalThis.tizen&&globalThis.tizen.systeminfo)return v=globalThis.tizen.systeminfo.getCapability("http://tizen.org/feature/platform.version"),!supportsTizenWasmSockets()&&v&&parseFloat(v)>=parseFloat("2.4")}function supportsTizenWasmSockets(){var v;if(globalThis.tizen&&globalThis.tizen.systeminfo)return(v=globalThis.tizen.systeminfo.getCapability("http://tizen.org/feature/platform.version"))&&parseFloat(v)>=parseFloat("6.0")}function loadServerDiscovery(){return customPaths.serverdiscovery?getRequirePromise(addJsExtIfNeeded(customPaths.serverdiscovery)):isNativeTizen&&(supportsTizenNaclSockets()||supportsTizenWasmSockets())?getRequirePromise("native/tizen/serverdiscovery"):"android"===appMode?getRequirePromise("native/android/serverdiscovery"):"ios"===appMode?getRequirePromise("native/ios/serverdiscovery"):getDynamicImport("./modules/emby-apiclient/serverdiscovery.js")()}function loadShell(){return customPaths.shell?getRequirePromise(addJsExtIfNeeded(customPaths.shell)):"android"===appMode?getRequirePromise("native/android/shell"):getDynamicImport("./modules/shell.js")()}function loadWakeOnLan(){return customPaths.wakeonlan?getRequirePromise(addJsExtIfNeeded(customPaths.wakeonlan)):isNativeTizen&&(supportsTizenNaclSockets()||supportsTizenWasmSockets())?getRequirePromise("native/tizen/wakeonlan"):"ios"===appMode?getRequirePromise("native/ios/wakeonlan"):"android"===appMode?getRequirePromise("native/android/wakeonlan"):getDynamicImport("./modules/emby-apiclient/wakeonlan.js")()}function loadFullscreenManager(){return getDynamicImport("./modules/common/servicelocator.js")().then(function(serviceLocator){var promise=customPaths.fullscreenmanager?getRequirePromise(customPaths.fullscreenmanager):getDynamicImport("./modules/fullscreen/fullscreenmanager.js")();return promise.then(function(fullscreenManager){return serviceLocator.initialize({fullscreenManager:fullscreenManager}),fullscreenManager})})}function loadIap(){return console.log("loadIap"),("android"===appMode?getRequirePromise("native/android/iap"):"ios"===appMode?getRequirePromise("native/ios/iap"):getDynamicImport("./modules/iap.js")()).then(function(iapManager){return getDynamicImport("./modules/common/servicelocator.js")().then(function(serviceLocator){serviceLocator.initialize({iapManager:iapManager})})})}function loadServiceLocator(){return console.log("loadServiceLocator"),Promise.all([loadAppStorage(),loadAppHost(),loadShell(),loadFullscreenManager(),loadWakeOnLan(),loadServerDiscovery()]).then(function(responses){console.log("loadServiceLocator - inner load 1");var appStorage=responses[0],appHost=responses[1],shell=responses[2],wakeOnLan=responses[4],serverDiscovery=responses[5],responses=[getDynamicImport("./modules/common/servicelocator.js")()];return appHost.supports("sync")&&(responses.push(require(["filerepository"])),responses.push(require(["itemrepository"])),responses.push(require(["transfermanager"])),responses.push(require(["useractionrepository"])),responses.push(require(["localsync"]))),appHost.supports("cameraupload")&&responses.push(loadCameraUpload()),appHost.supports("applogger")&&responses.push(loadAppLogger()),Promise.all(responses).then(function(responsesInner){console.log("loadServiceLocator - inner load 2");var fileRepository,itemRepository,transferManager,userActionRepository,localSync,cameraUpload,appLogger,index=0,serviceLocator=responsesInner[index];return index++,appHost.supports("sync")&&(fileRepository=responsesInner[index][0],itemRepository=responsesInner[++index][0],transferManager=responsesInner[++index][0],userActionRepository=responsesInner[++index][0],localSync=responsesInner[++index][0],index++),appHost.supports("cameraupload")&&(cameraUpload=responsesInner[index],index++),appHost.supports("applogger")&&(appLogger=responsesInner[index],index++),console.log("loadServiceLocator - calling serviceLocator.initialize"),serviceLocator.initialize({appStorage:appStorage,appHost:appHost,shell:shell,wakeOnLan:wakeOnLan,serverDiscovery:serverDiscovery,fileRepository:fileRepository,itemRepository:itemRepository,transferManager:transferManager,userActionRepository:userActionRepository,cameraUpload:cameraUpload,appLogger:appLogger,localSync:localSync}),console.log("loadServiceLocator - calling appHost.init"),appHost.init().then(loadApiClient).then(loadIap)})})}function addJsExtIfNeeded(path){return path.endsWith(".js")||(path+=".js"),path}function getRequirePromise(dep){return new Promise(function(resolve,reject){require([dep],resolve)})}function loadAppLogger(){return"android"===appMode?getRequirePromise("native/android/applogger"):Promise.resolve({getLogFiles:function(query){var items=[],total=(items.push({Name:"currentlog.txt",Id:"currentlog.txt",DateCreated:(new Date).toISOString(),DateModified:(new Date).toISOString(),Type:"Log",CanDownload:!0,CanShare:!0}),items.length);return query.StartIndex&&(items=items.slice(query.StartIndex)),query.Limit&&(items.length=Math.min(query.Limit,items.length)),Promise.resolve({Items:items,TotalRecordCount:total})},getLogLines:function(query){for(var items=[],i=0;i<1e4;i++)items.push("line "+i);var total=items.length;return query.StartIndex&&(items=items.slice(query.StartIndex)),query.Limit&&(items.length=Math.min(query.Limit,items.length)),Promise.resolve({Items:items,TotalRecordCount:total})},downloadLog:function(name){return console.log("downloading dummy log file: "+name),Promise.resolve()},shareLog:function(name){return console.log("sharing dummy log file: "+name),Promise.resolve()}})}function loadCameraUpload(){return"ios"===appMode?getRequirePromise("native/ios/cameraupload"):"android"===appMode?getRequirePromise("native/android/cameraupload"):Promise.resolve({start:function(){},setProgressUpdatesEnabled:function(){},getAvailableFolders:function(){return Promise.resolve([{Id:"541C6607-9C45-4875-A292-5F89F742B2B3/L0/040",Name:"TestFolder1"},{Id:"773DFE72-F38F-4220-8F2F-C4A472DBBA75/L0/040",Name:"TestFolder2"}])}})}function loadAppHost(){return customPaths.apphost?getRequirePromise(addJsExtIfNeeded(customPaths.apphost)):"ios"===appMode?getRequirePromise("native/ios/apphost"):"android"===appMode?getRequirePromise("native/android/apphost"):importFromPath("./modules/apphost.js")}function initRequire(){for(var importMap=function(){var elem=document.querySelector('script[type="importmap"]');if(elem){elem=elem.innerHTML;if(elem)try{var obj=JSON.parse(elem);if(obj){var imports=obj.imports;if(imports)return imports}}catch(err){console.log("error parsing import map: "+err)}}return{}}(),entries=Object.entries(importMap),i=0,length=entries.length;i'),require(["css!modules/windowdrag.css"])),startInfo.plugins||[]);if(console.log("Loading installed plugins"),customPaths.pluginloader)return forcedPlugins=["./modules/common/playback/playbackvalidation.js","./modules/common/playback/playaccessvalidation.js","./modules/common/playback/experimentalwarnings.js","./modules/htmlaudioplayer/plugin.js","./modules/photoplayer/plugin.js","./modules/confirmstillplaying/plugin.js"],getRequirePromise(addJsExtIfNeeded(customPaths.pluginloader)).then(function(pluginloader){return pluginloader.loadPlugins(forcedPlugins)});var list=["./modules/common/playback/playbackvalidation.js","./modules/common/playback/playaccessvalidation.js","./modules/common/playback/experimentalwarnings.js"];if(appHost.supports("soundeffects")&&list.push("./modules/soundeffects/defaultsoundeffects/plugin.js"),appHost.supports("screensaver")&&(list.push("./modules/logoscreensaver/plugin.js"),list.push("./modules/backdropscreensaver/plugin.js"),list.push("./modules/photoscreensaver/plugin.js")),"android"===appMode?(list.push("native/android/mpvvideoplayer"),list.push("native/android/mpvaudioplayer")):"ios"===appMode&&(list.push("native/ios/mpvaudioplayer"),list.push("native/ios/mpvvideoplayer")),"android"!==appMode&&"ios"!==appMode&&list.push("./modules/htmlaudioplayer/plugin.js"),"ios"===appMode&&list.push("native/ios/chromecast"),"android"===appMode&&list.push("native/android/chromecast"),globalThis.webapis&&webapis.avplay?list.push("native/tizen/tizenavplayer/plugin"):"android"!==appMode&&"ios"!==appMode&&list.push("./modules/htmlvideoplayer/plugin.js"),appHost.supports("ebookplayer")&&list.push("./modules/ebookplayer/plugin.js"),list.push("./modules/photoplayer/plugin.js"),appHost.supports("pdfplayer")&&CSS.supports("color","var(--fake-var)")&&list.push("./modules/pdfplayer/plugin.js"),appHost.supports("remotecontrol")&&(list.push("./modules/sessionplayer.js"),globalThis.chrome)&&!responses.electron&&"android"!==appMode&&list.push("./modules/chromecast/chromecastplayer.js"),appHost.supports("youtube"))switch(appMode){case"android":case"tizen":case"webos":list.push("./modules/youtubeplayer/plugin_webview.js");break;default:list.push("./modules/youtubeplayer/plugin.js")}for(var i=0,length=externalPlugins.length;i + +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ \ No newline at end of file diff --git a/books/books.js b/books/books.js new file mode 100644 index 0000000..6f69a98 --- /dev/null +++ b/books/books.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/tabbedview.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js"],function(_exports,_tabbedview,_globalize,_embyItemscontainer,_embyButton,_embyScroller){function BooksView(view,params){_tabbedview.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(BooksView.prototype,_tabbedview.default.prototype),BooksView.prototype.getTabs=function(){var subviews=this.item.Subviews||[];return[{name:_globalize.default.translate("Books"),id:"books",enabled:subviews.includes("books")},{name:_globalize.default.translate("Collections"),id:"collections",enabled:subviews.includes("collections")},{name:_globalize.default.translate("Genres"),id:"genres",enabled:subviews.includes("genres")},{name:_globalize.default.translate("Tags"),id:"tags",enabled:subviews.includes("tags")},{name:_globalize.default.translate("Folders"),id:"folders"}]},BooksView.prototype.getAutoBackdropItemTypes=function(){return["Book"]},BooksView.prototype.loadTabController=function(id){switch(id){case"collections":return Emby.importModule("./modules/tabbedview/collectionstab.js");case"genres":return Emby.importModule("./modules/tabbedview/genrestab.js");case"tags":return Emby.importModule("./modules/tabbedview/tagstab.js");case"folders":return Emby.importModule("./modules/tabbedview/folderstab.js");case"books":return Emby.importModule("./books/bookstab.js");default:throw new Error("tab not found: "+id)}},BooksView.prototype.getTabControllerOptions=function(id){var options=_tabbedview.default.prototype.getTabControllerOptions.apply(this,arguments);return"genres"!==id&&"tags"!==id||(options.queryIncludeItemTypes=["Book"]),options};_exports.default=BooksView}); \ No newline at end of file diff --git a/books/bookstab.js b/books/bookstab.js new file mode 100644 index 0000000..1d11008 --- /dev/null +++ b/books/bookstab.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/itemstab.js"],function(_exports,_itemstab){function BooksTab(view,params,options){_itemstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(BooksTab.prototype,_itemstab.default.prototype),BooksTab.prototype.loadTemplate=function(){return this.loadItemsTemplate()},BooksTab.prototype.getSettingsKey=function(){return _itemstab.default.prototype.getSettingsKey.call(this)+"-books"},BooksTab.prototype.getItemTypes=function(){return["Book"]};_exports.default=BooksTab}); \ No newline at end of file diff --git a/bower_components/javascriptsubtitlesoctopus/dist/default.woff2 b/bower_components/javascriptsubtitlesoctopus/dist/default.woff2 new file mode 100644 index 0000000..a562391 Binary files /dev/null and b/bower_components/javascriptsubtitlesoctopus/dist/default.woff2 differ diff --git a/bower_components/javascriptsubtitlesoctopus/dist/subtitles-octopus-worker-legacy.js b/bower_components/javascriptsubtitlesoctopus/dist/subtitles-octopus-worker-legacy.js new file mode 100644 index 0000000..f4d9a3a --- /dev/null +++ b/bower_components/javascriptsubtitlesoctopus/dist/subtitles-octopus-worker-legacy.js @@ -0,0 +1,14 @@ +if(!Uint8Array.prototype.slice){Uint8Array.prototype.slice=function(begin,end){return new Uint8Array(Array.prototype.slice.call(this,begin,end));};}if(!self.atob){// from https://github.com/davidchambers/Base64.js/blob/master/base64.js +self.atob=function(input){var chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';var str=String(input).replace(/[=]+$/,'');// #31: ExtendScript bad parse of /= +if(str.length%4===1){throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");}for(// initialize result and counters +var bc=0,bs,buffer,idx=0,output='';// get next character +buffer=str.charAt(idx++);// eslint-disable-line no-cond-assign +// character found in table? initialize bit storage and add its ascii value; +~buffer&&(bs=bc%4?bs*64+buffer:buffer,// and if not first of each 4 characters, +// convert the first 8 bits to one ascii character +bc++%4)?output+=String.fromCharCode(255&bs>>(-2*bc&6)):0){// try to find character in table (0-63, not found => -1) +buffer=chars.indexOf(buffer);}return output;};}function _base64ToArrayBuffer(base64){var binary_string=atob(base64);var len=binary_string.length;var bytes=new Uint8Array(len);for(var i=0;ithis.length){this_len=this.length;}return this.substring(this_len-search.length,this_len)===search;};}if(!String.prototype.includes){String.prototype.includes=function(search,pos){return this.indexOf(search,pos)!==-1;};}if(!ArrayBuffer.isView){var typedArrays=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];ArrayBuffer.isView=function(obj){return obj&&obj.constructor&&typedArrays.indexOf(obj.constructor)!==-1;};}if(!Int8Array.prototype.slice){Object.defineProperty(Int8Array.prototype,"slice",{value:function(begin,end){return new Int8Array(this.subarray(begin,end));}});}if(!Uint8Array.prototype.slice){Object.defineProperty(Uint8Array.prototype,"slice",{value:function(begin,end){return new Uint8Array(this.subarray(begin,end));}});}if(!Int16Array.from){Int16Array.from=function(source){var arr=new Int16Array(source.length);arr.set(source,0);return arr;};}if(!Int32Array.from){Int32Array.from=function(source){var arr=new Int32Array(source.length);arr.set(source,0);return arr;};}if("performance"in self===false){self.performance={};}Date.now=Date.now||function(){return new Date().getTime();};if("now"in self.performance===false){var nowOffset=Date.now();if(performance.timing&&performance.timing.navigationStart){nowOffset=performance.timing.navigationStart;}self.performance.now=function now(){return Date.now()-nowOffset;};}if(!Int32Array.__proto__.from){Object.defineProperty(Int32Array.__proto__,"from",{value:function(obj){obj=Object(obj);if(!obj["length"]){return new this(0);}var typed_array=new this(obj.length);for(var i=0;i>>0;var to=target|0;var from=start|0;var count=Math.min(Math.min(end|0,len)-from,len-to);var direction=1;if(from0){O[to]=O[from];from+=direction;to+=direction;count--;}return O;};}if(!Array.prototype.fill){Object.defineProperty(Array.prototype,"fill",{value:function(value,start,end){end=end|0;var O=Object(this);var k=start|0;while(k0||self.libassGlyphLimit>0){self.octObj.setMemoryLimits(self.libassGlyphLimit,self.libassMemoryLimit);}};Module["print"]=function(text){if(arguments.length>1)text=Array.prototype.slice.call(arguments).join(" ");console.log(text);};Module["printErr"]=function(text){if(arguments.length>1)text=Array.prototype.slice.call(arguments).join(" ");console.error(text);};if(!hasNativeConsole){var console={log:function(x){if(typeof dump==="function")dump("log: "+x+"\n");},debug:function(x){if(typeof dump==="function")dump("debug: "+x+"\n");},info:function(x){if(typeof dump==="function")dump("info: "+x+"\n");},warn:function(x){if(typeof dump==="function")dump("warn: "+x+"\n");},error:function(x){if(typeof dump==="function")dump("error: "+x+"\n");}};}function BrotliDecodeClosure(){null;var DICTIONARY_DATA=new Int8Array(0);function InputStream(bytes){this.data=bytes;this.offset=0;}var MAX_HUFFMAN_TABLE_SIZE=Int32Array.from([256,402,436,468,500,534,566,598,630,662,694,726,758,790,822,854,886,920,952,984,1016,1048,1080]);var CODE_LENGTH_CODE_ORDER=Int32Array.from([1,2,3,4,0,5,17,6,16,7,8,9,10,11,12,13,14,15]);var DISTANCE_SHORT_CODE_INDEX_OFFSET=Int32Array.from([0,3,2,1,0,0,0,0,0,0,3,3,3,3,3,3]);var DISTANCE_SHORT_CODE_VALUE_OFFSET=Int32Array.from([0,0,0,0,-1,1,-2,2,-3,3,-1,1,-2,2,-3,3]);var FIXED_TABLE=Int32Array.from([131072,131076,131075,196610,131072,131076,131075,262145,131072,131076,131075,196610,131072,131076,131075,262149]);var DICTIONARY_OFFSETS_BY_LENGTH=Int32Array.from([0,0,0,0,0,4096,9216,21504,35840,44032,53248,63488,74752,87040,93696,100864,104704,106752,108928,113536,115968,118528,119872,121280,122016]);var DICTIONARY_SIZE_BITS_BY_LENGTH=Int32Array.from([0,0,0,0,10,10,11,11,10,10,10,10,10,9,9,8,7,7,8,7,7,6,6,5,5]);var BLOCK_LENGTH_OFFSET=Int32Array.from([1,5,9,13,17,25,33,41,49,65,81,97,113,145,177,209,241,305,369,497,753,1265,2289,4337,8433,16625]);var BLOCK_LENGTH_N_BITS=Int32Array.from([2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,7,8,9,10,11,12,13,24]);var INSERT_LENGTH_N_BITS=Int16Array.from([0,0,0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,7,8,9,10,12,14,24]);var COPY_LENGTH_N_BITS=Int16Array.from([0,0,0,0,0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,7,8,9,10,24]);var CMD_LOOKUP=new Int16Array(2816);{unpackCommandLookupTable(CMD_LOOKUP);}function log2floor(i){var result=-1;var step=16;while(step>0){if(i>>>step!=0){result+=step;i=i>>>step;}step=step>>1;}return result+i;}function calculateDistanceAlphabetSize(npostfix,ndirect,maxndistbits){return 16+ndirect+2*(maxndistbits<>npostfix)+4;var ndistbits=log2floor(offset)-1;var group=ndistbits-1<<1|offset>>ndistbits&1;return(group-1<>>6;var distanceContextOffset=-4;if(rangeIdx>=2){rangeIdx-=2;distanceContextOffset=0;}var insertCode=(170064>>>rangeIdx*2&3)<<3|cmdCode>>>3&7;var copyCode=(156228>>>rangeIdx*2&3)<<3|cmdCode&7;var copyLengthOffset=copyLengthOffsets[copyCode];var distanceContext=distanceContextOffset+(copyLengthOffset>4?3:copyLengthOffset-2);var index=cmdCode*4;cmdLookup[index+0]=INSERT_LENGTH_N_BITS[insertCode]|COPY_LENGTH_N_BITS[copyCode]<<8;cmdLookup[index+1]=insertLengthOffsets[insertCode];cmdLookup[index+2]=copyLengthOffsets[copyCode];cmdLookup[index+3]=distanceContext;}}function decodeWindowBits(s){var largeWindowEnabled=s.isLargeWindow;s.isLargeWindow=0;if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}if(readFewBits(s,1)==0){return 16;}var n=readFewBits(s,3);if(n!=0){return 17+n;}n=readFewBits(s,3);if(n!=0){if(n==1){if(largeWindowEnabled==0){return-1;}s.isLargeWindow=1;if(readFewBits(s,1)==1){return-1;}n=readFewBits(s,6);if(n<10||n>30){return-1;}return n;}else{return 8+n;}}return 17;}function initState(s,input){if(s.runningState!=0){throw"State MUST be uninitialized";}s.blockTrees=new Int32Array(3091);s.blockTrees[0]=7;s.distRbIdx=3;var maxDistanceAlphabetLimit=calculateDistanceAlphabetLimit(2147483644,3,15<<3);s.distExtraBits=new Int8Array(maxDistanceAlphabetLimit);s.distOffset=new Int32Array(maxDistanceAlphabetLimit);s.input=input;initBitReader(s);s.runningState=1;}function close(s){if(s.runningState==0){throw"State MUST be initialized";}if(s.runningState==11){return;}s.runningState=11;if(s.input!=null){closeInput(s.input);s.input=null;}}function decodeVarLenUnsignedByte(s){if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}if(readFewBits(s,1)!=0){var n=readFewBits(s,3);if(n==0){return 1;}else{return readFewBits(s,n)+(1<=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}s.inputEnd=readFewBits(s,1);s.metaBlockLength=0;s.isUncompressed=0;s.isMetadata=0;if(s.inputEnd!=0&&readFewBits(s,1)!=0){return;}var sizeNibbles=readFewBits(s,2)+4;if(sizeNibbles==7){s.isMetadata=1;if(readFewBits(s,1)!=0){throw"Corrupted reserved bit";}var sizeBytes=readFewBits(s,2);if(sizeBytes==0){return;}for(var i=0;i=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var bits=readFewBits(s,8);if(bits==0&&i+1==sizeBytes&&sizeBytes>1){throw"Exuberant nibble";}s.metaBlockLength|=bits<=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var bits=readFewBits(s,4);if(bits==0&&i+1==sizeNibbles&&sizeNibbles>4){throw"Exuberant nibble";}s.metaBlockLength|=bits<>>s.bitOffset;offset+=val&255;var bits=tableGroup[offset]>>16;var sym=tableGroup[offset]&65535;if(bits<=8){s.bitOffset+=bits;return sym;}offset+=sym;var mask=(1<>>8;s.bitOffset+=(tableGroup[offset]>>16)+8;return tableGroup[offset]&65535;}function readBlockLength(tableGroup,tableIdx,s){if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var code=readSymbol(tableGroup,tableIdx,s);var n=BLOCK_LENGTH_N_BITS[code];if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}return BLOCK_LENGTH_OFFSET[code]+(n<=16?readFewBits(s,n):readManyBits(s,n));}function moveToFront(v,index){var value=v[index];for(;index>0;index--){v[index]=v[index-1];}v[0]=value;}function inverseMoveToFrontTransform(v,vLen){var mtf=new Int32Array(256);for(var i=0;i<256;i++){mtf[i]=i;}for(var i=0;i0){if(s.halfOffset>2030){doReadMoreInput(s);}if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var p=s.accumulator32>>>s.bitOffset&31;s.bitOffset+=table[p]>>16;var codeLen=table[p]&65535;if(codeLen<16){repeat=0;codeLengths[symbol++]=codeLen;if(codeLen!=0){prevCodeLen=codeLen;space-=32768>>codeLen;}}else{var extraBits=codeLen-14;var newLen=0;if(codeLen==16){newLen=prevCodeLen;}if(repeatCodeLen!=newLen){repeat=0;repeatCodeLen=newLen;}var oldRepeat=repeat;if(repeat>0){repeat-=2;repeat<<=extraBits;}if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}repeat+=readFewBits(s,extraBits)+3;var repeatDelta=repeat-oldRepeat;if(symbol+repeatDelta>numSymbols){throw"symbol + repeatDelta > numSymbols";}for(var i=0;i=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var symbol=readFewBits(s,maxBits);if(symbol>=alphabetSizeLimit){throw"Can't readHuffmanCode";}symbols[i]=symbol;}checkDupes(symbols,numSymbols);var histogramId=numSymbols;if(numSymbols==4){histogramId+=readFewBits(s,1);}switch(histogramId){case 1:codeLengths[symbols[0]]=1;break;case 2:codeLengths[symbols[0]]=1;codeLengths[symbols[1]]=1;break;case 3:codeLengths[symbols[0]]=1;codeLengths[symbols[1]]=2;codeLengths[symbols[2]]=2;break;case 4:codeLengths[symbols[0]]=2;codeLengths[symbols[1]]=2;codeLengths[symbols[2]]=2;codeLengths[symbols[3]]=2;break;case 5:codeLengths[symbols[0]]=1;codeLengths[symbols[1]]=2;codeLengths[symbols[2]]=3;codeLengths[symbols[3]]=3;break;default:break;}return buildHuffmanTable(tableGroup,tableIdx,8,codeLengths,alphabetSizeLimit);}function readComplexHuffmanCode(alphabetSizeLimit,skip,tableGroup,tableIdx,s){var codeLengths=new Int32Array(alphabetSizeLimit);var codeLengthCodeLengths=new Int32Array(18);var space=32;var numCodes=0;for(var i=skip;i<18&&space>0;i++){var codeLenIdx=CODE_LENGTH_CODE_ORDER[i];if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var p=s.accumulator32>>>s.bitOffset&15;s.bitOffset+=FIXED_TABLE[p]>>16;var v=FIXED_TABLE[p]&65535;codeLengthCodeLengths[codeLenIdx]=v;if(v!=0){space-=32>>v;numCodes++;}}if(space!=0&&numCodes!=1){throw"Corrupted Huffman code histogram";}readHuffmanCodeLengths(codeLengthCodeLengths,alphabetSizeLimit,codeLengths,s);return buildHuffmanTable(tableGroup,tableIdx,8,codeLengths,alphabetSizeLimit);}function readHuffmanCode(alphabetSizeMax,alphabetSizeLimit,tableGroup,tableIdx,s){if(s.halfOffset>2030){doReadMoreInput(s);}if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var simpleCodeOrSkip=readFewBits(s,2);if(simpleCodeOrSkip==1){return readSimpleHuffmanCode(alphabetSizeMax,alphabetSizeLimit,tableGroup,tableIdx,s);}else{return readComplexHuffmanCode(alphabetSizeLimit,simpleCodeOrSkip,tableGroup,tableIdx,s);}}function decodeContextMap(contextMapSize,contextMap,s){if(s.halfOffset>2030){doReadMoreInput(s);}var numTrees=decodeVarLenUnsignedByte(s)+1;if(numTrees==1){contextMap.fill(0,0,contextMapSize);return numTrees;}if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var useRleForZeros=readFewBits(s,1);var maxRunLengthPrefix=0;if(useRleForZeros!=0){maxRunLengthPrefix=readFewBits(s,4)+1;}var alphabetSize=numTrees+maxRunLengthPrefix;var tableSize=MAX_HUFFMAN_TABLE_SIZE[alphabetSize+31>>5];var table=new Int32Array(tableSize+1);var tableIdx=table.length-1;readHuffmanCode(alphabetSize,alphabetSize,table,tableIdx,s);for(var i=0;i2030){doReadMoreInput(s);}if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var code=readSymbol(table,tableIdx,s);if(code==0){contextMap[i]=0;i++;}else if(code<=maxRunLengthPrefix){if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var reps=(1<=contextMapSize){throw"Corrupted context map";}contextMap[i]=0;i++;reps--;}}else{contextMap[i]=code-maxRunLengthPrefix;i++;}}if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}if(readFewBits(s,1)==1){inverseMoveToFrontTransform(contextMap,contextMapSize);}return numTrees;}function decodeBlockTypeAndLength(s,treeType,numBlockTypes){var ringBuffers=s.rings;var offset=4+treeType*2;if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var blockType=readSymbol(s.blockTrees,2*treeType,s);var result=readBlockLength(s.blockTrees,2*treeType+1,s);if(blockType==1){blockType=ringBuffers[offset+1]+1;}else if(blockType==0){blockType=ringBuffers[offset];}else{blockType-=2;}if(blockType>=numBlockTypes){blockType-=numBlockTypes;}ringBuffers[offset]=ringBuffers[offset+1];ringBuffers[offset+1]=blockType;return result;}function decodeLiteralBlockSwitch(s){s.literalBlockLength=decodeBlockTypeAndLength(s,0,s.numLiteralBlockTypes);var literalBlockType=s.rings[5];s.contextMapSlice=literalBlockType<<6;s.literalTreeIdx=s.contextMap[s.contextMapSlice]&255;var contextMode=s.contextModes[literalBlockType];s.contextLookupOffset1=contextMode<<9;s.contextLookupOffset2=s.contextLookupOffset1+256;}function decodeCommandBlockSwitch(s){s.commandBlockLength=decodeBlockTypeAndLength(s,1,s.numCommandBlockTypes);s.commandTreeIdx=s.rings[7];}function decodeDistanceBlockSwitch(s){s.distanceBlockLength=decodeBlockTypeAndLength(s,2,s.numDistanceBlockTypes);s.distContextMapSlice=s.rings[9]<<2;}function maybeReallocateRingBuffer(s){var newSize=s.maxRingBufferSize;if(newSize>s.expectedTotalSize){var minimalNewSize=s.expectedTotalSize;while(newSize>>1>minimalNewSize){newSize>>=1;}if(s.inputEnd==0&&newSize<16384&&s.maxRingBufferSize>=16384){newSize=16384;}}if(newSize<=s.ringBufferSize){return;}var ringBufferSizeWithSlack=newSize+37;var newBuffer=new Int8Array(ringBufferSizeWithSlack);if(s.ringBuffer.length!=0){newBuffer.set(s.ringBuffer.subarray(0,0+s.ringBufferSize),0);}s.ringBuffer=newBuffer;s.ringBufferSize=newSize;}function readNextMetablockHeader(s){if(s.inputEnd!=0){s.nextRunningState=10;s.runningState=12;return;}s.literalTreeGroup=new Int32Array(0);s.commandTreeGroup=new Int32Array(0);s.distanceTreeGroup=new Int32Array(0);if(s.halfOffset>2030){doReadMoreInput(s);}decodeMetaBlockLength(s);if(s.metaBlockLength==0&&s.isMetadata==0){return;}if(s.isUncompressed!=0||s.isMetadata!=0){jumpToByteBoundary(s);s.runningState=s.isMetadata!=0?5:6;}else{s.runningState=3;}if(s.isMetadata!=0){return;}s.expectedTotalSize+=s.metaBlockLength;if(s.expectedTotalSize>1<<30){s.expectedTotalSize=1<<30;}if(s.ringBufferSize2030){doReadMoreInput(s);}if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}s.distancePostfixBits=readFewBits(s,2);s.numDirectDistanceCodes=readFewBits(s,4)<=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}s.contextModes[i]=readFewBits(s,2);}if(s.halfOffset>2030){doReadMoreInput(s);}}s.contextMap=new Int8Array(s.numLiteralBlockTypes<<6);var numLiteralTrees=decodeContextMap(s.numLiteralBlockTypes<<6,s.contextMap,s);s.trivialLiteralContext=1;for(var j=0;j>6){s.trivialLiteralContext=0;break;}}s.distContextMap=new Int8Array(s.numDistanceBlockTypes<<2);var numDistTrees=decodeContextMap(s.numDistanceBlockTypes<<2,s.distContextMap,s);s.literalTreeGroup=decodeHuffmanTreeGroup(256,256,numLiteralTrees,s);s.commandTreeGroup=decodeHuffmanTreeGroup(704,704,s.numCommandBlockTypes,s);var distanceAlphabetSizeMax=calculateDistanceAlphabetSize(s.distancePostfixBits,s.numDirectDistanceCodes,24);var distanceAlphabetSizeLimit=distanceAlphabetSizeMax;if(s.isLargeWindow==1){distanceAlphabetSizeMax=calculateDistanceAlphabetSize(s.distancePostfixBits,s.numDirectDistanceCodes,62);distanceAlphabetSizeLimit=calculateDistanceAlphabetLimit(2147483644,s.distancePostfixBits,s.numDirectDistanceCodes);}s.distanceTreeGroup=decodeHuffmanTreeGroup(distanceAlphabetSizeMax,distanceAlphabetSizeLimit,numDistTrees,s);calculateDistanceLut(s,distanceAlphabetSizeLimit);s.contextMapSlice=0;s.distContextMapSlice=0;s.contextLookupOffset1=s.contextModes[0]*512;s.contextLookupOffset2=s.contextLookupOffset1+256;s.literalTreeIdx=0;s.commandTreeIdx=0;s.rings[4]=1;s.rings[5]=0;s.rings[6]=1;s.rings[7]=0;s.rings[8]=1;s.rings[9]=0;}function copyUncompressedData(s){var ringBuffer=s.ringBuffer;if(s.metaBlockLength<=0){reload(s);s.runningState=2;return;}var chunkLength=min(s.ringBufferSize-s.pos,s.metaBlockLength);copyBytes(s,ringBuffer,s.pos,chunkLength);s.metaBlockLength-=chunkLength;s.pos+=chunkLength;if(s.pos==s.ringBufferSize){s.nextRunningState=6;s.runningState=12;return;}reload(s);s.runningState=2;}function writeRingBuffer(s){var toWrite=min(s.outputLength-s.outputUsed,s.ringBufferBytesReady-s.ringBufferBytesWritten);if(toWrite!=0){s.output.set(s.ringBuffer.subarray(s.ringBufferBytesWritten,s.ringBufferBytesWritten+toWrite),s.outputOffset+s.outputUsed);s.outputUsed+=toWrite;s.ringBufferBytesWritten+=toWrite;}if(s.outputUsed>5];var group=new Int32Array(n+n*maxTableSize);var next=n;for(var i=0;i2030){doReadMoreInput(s);}if(s.commandBlockLength==0){decodeCommandBlockSwitch(s);}s.commandBlockLength--;if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var cmdCode=readSymbol(s.commandTreeGroup,s.commandTreeIdx,s)<<2;var insertAndCopyExtraBits=CMD_LOOKUP[cmdCode];var insertLengthOffset=CMD_LOOKUP[cmdCode+1];var copyLengthOffset=CMD_LOOKUP[cmdCode+2];s.distanceCode=CMD_LOOKUP[cmdCode+3];if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var extraBits=insertAndCopyExtraBits&255;s.insertLength=insertLengthOffset+(extraBits<=16?readFewBits(s,extraBits):readManyBits(s,extraBits));if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var extraBits=insertAndCopyExtraBits>>8;s.copyLength=copyLengthOffset+(extraBits<=16?readFewBits(s,extraBits):readManyBits(s,extraBits));s.j=0;s.runningState=7;case 7:if(s.trivialLiteralContext!=0){while(s.j2030){doReadMoreInput(s);}if(s.literalBlockLength==0){decodeLiteralBlockSwitch(s);}s.literalBlockLength--;if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}ringBuffer[s.pos]=readSymbol(s.literalTreeGroup,s.literalTreeIdx,s);s.pos++;s.j++;if(s.pos>=fence){s.nextRunningState=7;s.runningState=12;break;}}}else{var prevByte1=ringBuffer[s.pos-1&ringBufferMask]&255;var prevByte2=ringBuffer[s.pos-2&ringBufferMask]&255;while(s.j2030){doReadMoreInput(s);}if(s.literalBlockLength==0){decodeLiteralBlockSwitch(s);}var literalContext=LOOKUP[s.contextLookupOffset1+prevByte1]|LOOKUP[s.contextLookupOffset2+prevByte2];var literalTreeIdx=s.contextMap[s.contextMapSlice+literalContext]&255;s.literalBlockLength--;prevByte2=prevByte1;if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}prevByte1=readSymbol(s.literalTreeGroup,literalTreeIdx,s);ringBuffer[s.pos]=prevByte1;s.pos++;s.j++;if(s.pos>=fence){s.nextRunningState=7;s.runningState=12;break;}}}if(s.runningState!=7){continue;}s.metaBlockLength-=s.insertLength;if(s.metaBlockLength<=0){s.runningState=4;continue;}var distanceCode=s.distanceCode;if(distanceCode<0){s.distance=s.rings[s.distRbIdx];}else{if(s.halfOffset>2030){doReadMoreInput(s);}if(s.distanceBlockLength==0){decodeDistanceBlockSwitch(s);}s.distanceBlockLength--;if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}var distTreeIdx=s.distContextMap[s.distContextMapSlice+distanceCode]&255;distanceCode=readSymbol(s.distanceTreeGroup,distTreeIdx,s);if(distanceCode<16){var index=s.distRbIdx+DISTANCE_SHORT_CODE_INDEX_OFFSET[distanceCode]&3;s.distance=s.rings[index]+DISTANCE_SHORT_CODE_VALUE_OFFSET[distanceCode];if(s.distance<0){throw"Negative distance";}}else{var extraBits=s.distExtraBits[distanceCode];var bits;if(s.bitOffset+extraBits<=32){bits=readFewBits(s,extraBits);}else{if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}bits=extraBits<=16?readFewBits(s,extraBits):readManyBits(s,extraBits);}s.distance=s.distOffset[distanceCode]+(bits<s.maxDistance){s.runningState=9;continue;}if(distanceCode>0){s.distRbIdx=s.distRbIdx+1&3;s.rings[s.distRbIdx]=s.distance;}if(s.copyLength>s.metaBlockLength){throw"Invalid backward reference";}s.j=0;s.runningState=8;case 8:var src=s.pos-s.distance&ringBufferMask;var dst=s.pos;var copyLength=s.copyLength-s.j;var srcEnd=src+copyLength;var dstEnd=dst+copyLength;if(srcEnddst&&dstEnd>src){for(var k=0;k=fence){s.nextRunningState=8;s.runningState=12;break;}}}if(s.runningState==8){s.runningState=4;}continue;case 9:if(s.distance>2147483644){throw"Invalid backward reference";}if(s.copyLength>=4&&s.copyLength<=24){var offset=DICTIONARY_OFFSETS_BY_LENGTH[s.copyLength];var wordId=s.distance-s.maxDistance-1;var shift=DICTIONARY_SIZE_BITS_BY_LENGTH[s.copyLength];var mask=(1<>>shift;offset+=wordIdx*s.copyLength;if(transformIdx<121){var len=transformDictionaryWord(ringBuffer,s.pos,DICTIONARY_DATA,offset,s.copyLength,RFC_TRANSFORMS,transformIdx);s.pos+=len;s.metaBlockLength-=len;if(s.pos>=fence){s.nextRunningState=4;s.runningState=12;continue;}}else{throw"Invalid backward reference";}}else{throw"Invalid backward reference";}s.runningState=4;continue;case 5:while(s.metaBlockLength>0){if(s.halfOffset>2030){doReadMoreInput(s);}if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}readFewBits(s,8);s.metaBlockLength--;}s.runningState=2;continue;case 6:copyUncompressedData(s);continue;case 12:s.ringBufferBytesReady=min(s.pos,s.ringBufferSize);s.runningState=13;case 13:if(writeRingBuffer(s)==0){return;}if(s.pos>=s.maxBackwardDistance){s.maxDistance=s.maxBackwardDistance;}if(s.pos>=s.ringBufferSize){if(s.pos>s.ringBufferSize){ringBuffer.copyWithin(0,s.ringBufferSize,s.pos);}s.pos&=ringBufferMask;s.ringBufferBytesWritten=0;}s.runningState=s.nextRunningState;continue;default:throw"Unexpected state "+s.runningState;}}if(s.runningState==10){if(s.metaBlockLength<0){throw"Invalid metablock length";}jumpToByteBoundary(s);checkHealth(s,1);}}function Transforms(numTransforms,prefixSuffixLen,prefixSuffixCount){this.numTransforms=0;this.triplets=new Int32Array(0);this.prefixSuffixStorage=new Int8Array(0);this.prefixSuffixHeads=new Int32Array(0);this.params=new Int16Array(0);this.numTransforms=numTransforms;this.triplets=new Int32Array(numTransforms*3);this.params=new Int16Array(numTransforms);this.prefixSuffixStorage=new Int8Array(prefixSuffixLen);this.prefixSuffixHeads=new Int32Array(prefixSuffixCount+1);}var RFC_TRANSFORMS=new Transforms(121,167,50);function unpackTransforms(prefixSuffix,prefixSuffixHeads,transforms,prefixSuffixSrc,transformsSrc){var n=prefixSuffixSrc.length;var index=1;var j=0;for(var i=0;i#\n#]# for # a # that #. # with #\'# from # by #. The # on # as # is #ing #\n\t#:#ed #(# at #ly #="# of the #. This #,# not #er #al #=\'#ful #ive #less #est #ize #ous #'," !! ! , *! &! \" ! ) * * - ! # ! #!*! + ,$ ! - % . / # 0 1 . \" 2 3!* 4% ! # / 5 6 7 8 0 1 & $ 9 + : ; < ' != > ?! 4 @ 4 2 & A *# ( B C& ) % ) !*# *-% A +! *. D! %' & E *6 F G% ! *A *% H! D I!+! J!+ K +- *4! A L!*4 M N +6 O!*% +.! K *G P +%( ! G *D +D Q +# *K!*G!+D!+# +G +A +4!+% +K!+4!*D!+K!*K");}function transformDictionaryWord(dst,dstOffset,src,srcOffset,len,transforms,transformIndex){var offset=dstOffset;var triplets=transforms.triplets;var prefixSuffixStorage=transforms.prefixSuffixStorage;var prefixSuffixHeads=transforms.prefixSuffixHeads;var transformOffset=3*transformIndex;var prefixIdx=triplets[transformOffset];var transformType=triplets[transformOffset+1];var suffixIdx=triplets[transformOffset+2];var prefix=prefixSuffixHeads[prefixIdx];var prefixEnd=prefixSuffixHeads[prefixIdx+1];var suffix=prefixSuffixHeads[suffixIdx];var suffixEnd=prefixSuffixHeads[suffixIdx+1];var omitFirst=transformType-11;var omitLast=transformType-0;if(omitFirst<1||omitFirst>9){omitFirst=0;}if(omitLast<1||omitLast>9){omitLast=0;}while(prefix!=prefixEnd){dst[offset++]=prefixSuffixStorage[prefix++];}if(omitFirst>len){omitFirst=len;}srcOffset+=omitFirst;len-=omitFirst;len-=omitLast;var i=len;while(i>0){dst[offset++]=src[srcOffset++];i--;}if(transformType==10||transformType==11){var uppercaseOffset=offset-len;if(transformType==10){len=1;}while(len>0){var c0=dst[uppercaseOffset]&255;if(c0<192){if(c0>=97&&c0<=122){dst[uppercaseOffset]^=32;}uppercaseOffset+=1;len-=1;}else if(c0<224){dst[uppercaseOffset+1]^=32;uppercaseOffset+=2;len-=2;}else{dst[uppercaseOffset+2]^=5;uppercaseOffset+=3;len-=3;}}}else if(transformType==21||transformType==22){var shiftOffset=offset-len;var param=transforms.params[transformIndex];var scalar=(param&32767)+(16777216-(param&32768));while(len>0){var step=1;var c0=dst[shiftOffset]&255;if(c0<128){scalar+=c0;dst[shiftOffset]=scalar&127;}else if(c0<192){}else if(c0<224){if(len>=2){var c1=dst[shiftOffset+1];scalar+=c1&63|(c0&31)<<6;dst[shiftOffset]=192|scalar>>6&31;dst[shiftOffset+1]=c1&192|scalar&63;step=2;}else{step=len;}}else if(c0<240){if(len>=3){var c1=dst[shiftOffset+1];var c2=dst[shiftOffset+2];scalar+=c2&63|(c1&63)<<6|(c0&15)<<12;dst[shiftOffset]=224|scalar>>12&15;dst[shiftOffset+1]=c1&192|scalar>>6&63;dst[shiftOffset+2]=c2&192|scalar&63;step=3;}else{step=len;}}else if(c0<248){if(len>=4){var c1=dst[shiftOffset+1];var c2=dst[shiftOffset+2];var c3=dst[shiftOffset+3];scalar+=c3&63|(c2&63)<<6|(c1&63)<<12|(c0&7)<<18;dst[shiftOffset]=240|scalar>>18&7;dst[shiftOffset+1]=c1&192|scalar>>12&63;dst[shiftOffset+2]=c2&192|scalar>>6&63;dst[shiftOffset+3]=c3&192|scalar&63;step=4;}else{step=len;}}shiftOffset+=step;len-=step;if(transformType==21){len=0;}}}while(suffix!=suffixEnd){dst[offset++]=prefixSuffixStorage[suffix++];}return offset-dstOffset;}function getNextKey(key,len){var step=1<>=1;}return(key&step-1)+step;}function replicateValue(table,offset,step,end,item){do{end-=step;table[offset+end]=item;}while(end>0);}function nextTableBitSize(count,len,rootBits){var left=1<0;count[len]--){replicateValue(tableGroup,tableOffset+key,step,tableSize,len<<16|sorted[symbol++]);key=getNextKey(key,len);}}var mask=totalSize-1;var low=-1;var currentOffset=tableOffset;for(var len=rootBits+1,step=2;len<=15;len++,step<<=1){for(;count[len]>0;count[len]--){if((key&mask)!=low){currentOffset+=tableSize;tableBits=nextTableBitSize(count,len,rootBits);tableSize=1<>rootBits),step,tableSize,len-rootBits<<16|sorted[symbol++]);key=getNextKey(key,len);}}return totalSize;}function doReadMoreInput(s){if(s.endOfStreamReached!=0){if(halfAvailable(s)>=-2){return;}throw"No more input";}var readOffset=s.halfOffset<<1;var bytesInBuffer=4096-readOffset;s.byteBuffer.copyWithin(0,readOffset,4096);s.halfOffset=0;while(bytesInBuffer<4096){var spaceLeft=4096-bytesInBuffer;var len=readInput(s.input,s.byteBuffer,bytesInBuffer,spaceLeft);if(len<=0){s.endOfStreamReached=1;s.tailBytes=bytesInBuffer;bytesInBuffer+=1;break;}bytesInBuffer+=len;}bytesToNibbles(s,bytesInBuffer);}function checkHealth(s,endOfStream){if(s.endOfStreamReached==0){return;}var byteOffset=(s.halfOffset<<1)+(s.bitOffset+7>>3)-4;if(byteOffset>s.tailBytes){throw"Read after end";}if(endOfStream!=0&&byteOffset!=s.tailBytes){throw"Unused bytes after end";}}function readFewBits(s,n){var val=s.accumulator32>>>s.bitOffset&(1<>>16;s.bitOffset-=16;return low|readFewBits(s,n-16)<<16;}function initBitReader(s){s.byteBuffer=new Int8Array(4160);s.accumulator32=0;s.shortBuffer=new Int16Array(2080);s.bitOffset=32;s.halfOffset=2048;s.endOfStreamReached=0;prepare(s);}function prepare(s){if(s.halfOffset>2030){doReadMoreInput(s);}checkHealth(s,0);s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}function reload(s){if(s.bitOffset==32){prepare(s);}}function jumpToByteBoundary(s){var padding=32-s.bitOffset&7;if(padding!=0){var paddingBits=readFewBits(s,padding);if(paddingBits!=0){throw"Corrupted padding bits";}}}function halfAvailable(s){var limit=2048;if(s.endOfStreamReached!=0){limit=s.tailBytes+1>>1;}return limit-s.halfOffset;}function copyBytes(s,data,offset,length){if((s.bitOffset&7)!=0){throw"Unaligned copyBytes";}while(s.bitOffset!=32&&length!=0){data[offset++]=s.accumulator32>>>s.bitOffset;s.bitOffset+=8;length--;}if(length==0){return;}var copyNibbles=min(halfAvailable(s),length>>1);if(copyNibbles>0){var readOffset=s.halfOffset<<1;var delta=copyNibbles<<1;data.set(s.byteBuffer.subarray(readOffset,readOffset+delta),offset);offset+=delta;length-=delta;s.halfOffset+=copyNibbles;}if(length==0){return;}if(halfAvailable(s)>0){if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16;}while(length!=0){data[offset++]=s.accumulator32>>>s.bitOffset;s.bitOffset+=8;length--;}checkHealth(s,0);return;}while(length>0){var len=readInput(s.input,data,offset,length);if(len==-1){throw"Unexpected end of input";}offset+=len;length-=len;}}function bytesToNibbles(s,byteLen){var byteBuffer=s.byteBuffer;var halfLen=byteLen>>1;var shortBuffer=s.shortBuffer;for(var i=0;i>2;lookup[1792+i]=2+(i>>6);}for(var i=0;i<128;++i){lookup[1024+i]=4*(map.charCodeAt(i)-32);}for(var i=0;i<64;++i){lookup[1152+i]=i&1;lookup[1216+i]=2+(i&1);}var offset=1280;for(var k=0;k<19;++k){var value=k&3;var rep=rle.charCodeAt(k)-32;for(var i=0;istopelseliestourpack.gifpastcss?graymean>rideshotlatesaidroadvar feeljohnrickportfast'UA-deadpoorbilltypeU.S.woodmust2px;Inforankwidewantwalllead[0];paulwavesure$('#waitmassarmsgoesgainlangpaid!-- lockunitrootwalkfirmwifexml\"songtest20pxkindrowstoolfontmailsafestarmapscorerainflowbabyspansays4px;6px;artsfootrealwikiheatsteptriporg/lakeweaktoldFormcastfansbankveryrunsjulytask1px;goalgrewslowedgeid=\"sets5px;.js?40pxif (soonseatnonetubezerosentreedfactintogiftharm18pxcamehillboldzoomvoideasyringfillpeakinitcost3px;jacktagsbitsrolleditknewnearironfreddiskwentsoilputs/js/holyT22:ISBNT20:adamsees

json', 'contT21: RSSloopasiamoon

soulLINEfortcartT14:

80px!--<9px;T04:mike:46ZniceinchYorkricezh:d'));puremageparatonebond:37Z_of_']);000,zh:gtankyardbowlbush:56ZJava30px\n|}\n%C3%:34ZjeffEXPIcashvisagolfsnowzh:iquer.csssickmeatmin.binddellhirepicsrent:36ZHTTP-201fotowolfEND xbox:54ZBODYdick;\n}\nexit:35Zvarsbeat'});diet999;anne}}sonyguysfuckpipe|-\n!002)ndow[1];[];\nLog salt\r\n\t\tbangtrimbath){\r\n00px\n});ko:lfeesad>\rs:// [];tollplug(){\n{\r\n .js'200pdualboat.JPG);\n}quot);\n\n');\n\r\n}\r201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037201320122011201020092008200720062005200420032002200120001999199819971996199519941993199219911990198919881987198619851984198319821981198019791978197719761975197419731972197119701969196819671966196519641963196219611960195919581957195619551954195319521951195010001024139400009999comomC!sesteestaperotodohacecadaaC1obiendC-aasC-vidacasootroforosolootracualdijosidograntipotemadebealgoquC)estonadatrespococasabajotodasinoaguapuesunosantediceluisellamayozonaamorpisoobraclicellodioshoracasiP7P0P=P0P>PP>Q\x02P8P7P=P>P4P>Q\x02P>P6P5P>P=P8Q\x05P\x1DP0P5P5P1Q\x0BPP2Q\x0BP2P>P\x1DP>P>P1P\x1FP>P;P8P=P8P P$P\x1DP5P\x1CQ\x0BQ\x02Q\x0BP\x1EP=P8Pthing.org/multiheardPowerstandtokensolid(thisbringshipsstafftriedcallsfullyfactsagentThis //-->adminegyptEvent15px;Emailtrue\"crossspentblogsbox\">notedleavechinasizesguest

robotheavytrue,sevengrandcrimesignsawaredancephase>\n\n\r\nname=diegopage swiss-->\n\n#fff;\">Log.com\"treatsheet) && 14px;sleepntentfiledja:c\x03id=\"cName\"worseshots-box-delta\n<bears:48Z spendbakershops= \"\";php\">ction13px;brianhellosize=o=%2F joinmaybe, fjsimg\" \")[0]MTopBType\"newlyDanskczechtrailknowsfaq\">zh-cn10);\n-1\");type=bluestrulydavis.js';>\r\n\r\nform jesus100% menu.\r\n\t\r\nwalesrisksumentddingb-likteachgif\" vegasdanskeestishqipsuomisobredesdeentretodospuedeaC1osestC!tienehastaotrospartedondenuevohacerformamismomejormundoaquC-dC-assC3loayudafechatodastantomenosdatosotrassitiomuchoahoralugarmayorestoshorastenerantesfotosestaspaC-snuevasaludforosmedioquienmesespoderchileserC!vecesdecirjosC)estarventagrupohechoellostengoamigocosasnivelgentemismaairesjuliotemashaciafavorjuniolibrepuntobuenoautorabrilbuenatextomarzosaberlistaluegocC3moenerojuegoperC:haberestoynuncamujervalorfueralibrogustaigualvotoscasosguC-apuedosomosavisousteddebennochebuscafaltaeurosseriedichocursoclavecasasleC3nplazolargoobrasvistaapoyojuntotratavistocrearcampohemoscincocargopisosordenhacenC!readiscopedrocercapuedapapelmenorC:tilclarojorgecalleponertardenadiemarcasigueellassiglocochemotosmadreclaserestoniC1oquedapasarbancohijosviajepabloC)stevienereinodejarfondocanalnorteletracausatomarmanoslunesautosvillavendopesartipostengamarcollevapadreunidovamoszonasambosbandamariaabusomuchasubirriojavivirgradochicaallC-jovendichaestantalessalirsuelopesosfinesllamabuscoC)stalleganegroplazahumorpagarjuntadobleislasbolsabaC1ohablaluchaC\x01readicenjugarnotasvalleallC!cargadolorabajoestC)gustomentemariofirmacostofichaplatahogarartesleyesaquelmuseobasespocosmitadcielochicomiedoganarsantoetapadebesplayaredessietecortecoreadudasdeseoviejodeseaaguas"domaincommonstatuseventsmastersystemactionbannerremovescrollupdateglobalmediumfilternumberchangeresultpublicscreenchoosenormaltravelissuessourcetargetspringmodulemobileswitchphotosborderregionitselfsocialactivecolumnrecordfollowtitle>eitherlengthfamilyfriendlayoutauthorcreatereviewsummerserverplayedplayerexpandpolicyformatdoublepointsseriespersonlivingdesignmonthsforcesuniqueweightpeopleenergynaturesearchfigurehavingcustomoffsetletterwindowsubmitrendergroupsuploadhealthmethodvideosschoolfutureshadowdebatevaluesObjectothersrightsleaguechromesimplenoticesharedendingseasonreportonlinesquarebuttonimagesenablemovinglatestwinterFranceperiodstrongrepeatLondondetailformeddemandsecurepassedtoggleplacesdevicestaticcitiesstreamyellowattackstreetflighthiddeninfo\">openedusefulvalleycausesleadersecretseconddamagesportsexceptratingsignedthingseffectfieldsstatesofficevisualeditorvolumeReportmuseummoviesparentaccessmostlymother\" id=\"marketgroundchancesurveybeforesymbolmomentspeechmotioninsidematterCenterobjectexistsmiddleEuropegrowthlegacymannerenoughcareeransweroriginportalclientselectrandomclosedtopicscomingfatheroptionsimplyraisedescapechosenchurchdefinereasoncorneroutputmemoryiframepolicemodelsNumberduringoffersstyleskilledlistedcalledsilvermargindeletebetterbrowselimitsGlobalsinglewidgetcenterbudgetnowrapcreditclaimsenginesafetychoicespirit-stylespreadmakingneededrussiapleaseextentScriptbrokenallowschargedividefactormember-basedtheoryconfigaroundworkedhelpedChurchimpactshouldalwayslogo\" bottomlist\">){var prefixorangeHeader.push(couplegardenbridgelaunchReviewtakingvisionlittledatingButtonbeautythemesforgotSearchanchoralmostloadedChangereturnstringreloadMobileincomesupplySourceordersviewed courseAbout island: The dialoghousesBEGIN MexicostartscentreheightaddingIslandassetsEmpireSchooleffortdirectnearlymanualSelect.\n\nOnejoinedmenu\">PhilipawardshandleimportOfficeregardskillsnationSportsdegreeweekly (e.g.behinddoctorloggedunitedbeyond-scaleacceptservedmarineFootercamera\n_form\"leavesstress\" />\r\n.gif\" onloadloaderOxfordsistersurvivlistenfemaleDesignsize=\"appealtext\">levelsthankshigherforcedanimalanyoneAfricaagreedrecentPeople
wonderpricesturned|| {};main\">inlinesundaywrap\">failedcensusminutebeaconquotes150px|estateremoteemail\"linkedright;signalformal1.htmlsignupprincefloat:.png\" forum.AccesspaperssoundsextendHeightsliderUTF-8\"& Before. WithstudioownersmanageprofitjQueryannualparamsboughtfamousgooglelongeri++) {israelsayingdecidehome\">headerensurebranchpiecesblock;statedtop\">boston.test(avatartested_countforumsschemaindex,filledsharesreaderalert(appearSubmitline\">body\">\n* TheThoughseeingjerseyNews\nSystem DavidcancertablesprovedApril reallydriveritem\">more\">boardscolorscampusfirst || [];media.guitarfinishwidth:showedOther .php\" assumelayerswilsonstoresreliefswedenCustomeasily your String\n\nWhiltaylorclear:resortfrenchthough\") + \"buyingbrandsMembername\">oppingsector5px;\">vspacepostermajor coffeemartinmaturehappenkansaslink\">Images=falsewhile hspace0& \n\nIn powerPolski-colorjordanBottomStart -count2.htmlnews\">01.jpgOnline-rightmillerseniorISBN 00,000 guidesvalue)ectionrepair.xml\" rights.html-blockregExp:hoverwithinvirginphones\rusing \n\tvar >');\n\t\n\nbahasabrasilgalegomagyarpolskisrpskiX1X/Y\bd8-f\x16\x07g.\0d=\x13g9\x01i+\x14d?!f\x01/d8-e\x1B=f\b\x11d;,d8\0d8*e\x05,e\x0F8g.!g\x10\x06h.:e\x1D\x1Be\x0F/d;%f\x1C\re\n!f\x176i\x174d8*d::d:'e\x13\x01h\x07*e71d<\x01d8\x1Af\x1F%g\x1C\x0Be7%d=\x1Ch\x01\x14g3;f2!f\x1C\tg=\x11g+\x19f\t\0f\x1C\th/\x04h.:d8-e?\x03f\x16\x07g+ g\x14(f\b7i&\x16i!5d=\x1Ch\0\x05f\n\0f\x1C/i\x17.i\"\x18g\x1B8e\x053d8\x0Bh==f\x10\x1Cg4\"d=?g\x14(h=/d;6e\x1C(g:?d8;i\"\x18h5\x04f\x16\x19h'\x06i\"\x11e\x1B\x1Ee$\rf3(e\x06\fg=\x11g;\x1Cf\x146h\x17\x0Fe\x06\x05e.9f\x0E(h\r\x10e8\x02e\x1C:f6\bf\x01/g):i\x174e\x0F\x11e8\x03d;\0d9\be%=e\x0F\x0Bg\x14\x1Ff4;e\x1B>g\t\x07e\x0F\x11e1\x15e&\x02f\x1E\x1Cf\t\x0Bf\x1C:f\x160i\x17;f\x1C\0f\x160f\x169e<\x0Fe\f\x17d:,f\x0F\x10d>\x1Be\x053d:\x0Ef\x1B4e$\x1Ah?\x19d8*g3;g;\x1Fg\x1F%i\x01\x13f88f\b\x0Fe9?e\x11\ne\x056d;\x16e\x0F\x11h!(e.\te\x05(g,,d8\0d<\x1Ae\x11\x18h?\x1Bh!\fg\x029e\x07;g\t\bf\x1D\x03g\x145e-\x10d8\x16g\x15\fh.>h.!e\x05\rh49f\x15\x19h\x022e\n e\x05%f4;e\n(d;\x16d;,e\x15\x06e\x13\x01e\r\x1Ae.\"g\x0E0e\x1C(d8\nf57e&\x02d=\x15e72g;\x0Fg\x15\x19h(\0h/&g;\x06g$>e\f:g\x19;e=\x15f\x1C,g+\x19i\x1C\0h&\x01d;7f f\x0E%e\x1B=e.6e;:h.>f\x1C\x0Be\x0F\x0Bi\x18\x05h/;f3\x15e>\x0Bd=\rg=.g;\x0Ff5\x0Ei\0\tf\x0B)h?\x19f 7e=\x13e\t\re\b\x06g1;f\x0E\x12h!\fe\x1B d8:d:$f\x18\x13f\x1C\0e\x10\x0Ei\x1F3d9\x10d8\rh\x03=i\0\x1Ah?\x07h!\fd8\x1Ag'\x11f\n\0e\x0F/h\x03=h.>e$\x07e\x10\bd=\x1Ce$'e.6g$>d<\x1Ag \x14g)6d8\x13d8\x1Ae\x05(i\x03(i!9g\x1B.h?\x19i\x07\fh?\x18f\x18/e<\0e'\x0Bf\x03\x05e\x065g\x145h\x04\x11f\x16\x07d;6e\x13\x01g\t\fe8.e\n)f\x16\x07e\f\x16h5\x04f:\x10e$'e-&e-&d9 e\x1C0e\x1D\0f5\x0Fh'\bf\n\x15h5\x04e7%g(\x0Bh&\x01f1\x02f\0\x0Ed9\bf\x176e\0\x19e\n\x1Fh\x03=d8;h&\x01g\x1B.e\t\rh5\x04h./e\x1F\x0Ee8\x02f\x169f3\x15g\x145e=1f\x0B\x1Bh\x01\x18e#0f\x18\x0Ed;;d=\x15e\x01%e:7f\x150f\r.g>\x0Ee\x1B=f1=h=&d;\x0Bg;\rd=\x06f\x18/d:$f5\x01g\x14\x1Fd:'f\t\0d;%g\x145h/\x1Df\x18>g$:d8\0d:\x1Be\r\x15d=\rd::e\x11\x18e\b\x06f\x1E\x10e\x1C0e\x1B>f\x17\x05f88e7%e\x057e-&g\x14\x1Fg3;e\b\x17g=\x11e\x0F\x0Be8\x16e-\x10e/\x06g \x01i\"\x11i\x01\x13f\x0E'e\b6e\x1C0e\f:e\x1F:f\x1C,e\x05(e\x1B=g=\x11d8\ni\x07\rh&\x01g,,d:\fe\x16\x1Cf,\"h?\x1Be\x05%e\x0F\x0Bf\x03\x05h?\x19d:\x1Bh\0\x03h/\x15e\x0F\x11g\x0E0e\x1F9h.-d;%d8\nf\x14?e:\x1Cf\b\x10d8:g\x0E/e\"\x03i&\x19f8/e\x10\ff\x176e(1d9\x10e\x0F\x11i\0\x01d8\0e.\x1Ae<\0e\x0F\x11d=\x1Ce\x13\x01f \x07e\x07\x06f,\"h?\x0Eh'#e\x063e\x1C0f\x169d8\0d8\x0Bd;%e\x0F\nh4#d;;f\b\x16h\0\x05e.\"f\b7d;#h!(g'/e\b\x06e%3d::f\x150g \x01i\x14\0e\x14.e\x07:g\x0E0g&;g:?e:\x14g\x14(e\b\x17h!(d8\re\x10\fg<\x16h>\x11g;\x1Fh.!f\x1F%h/\"d8\rh&\x01f\x1C\te\x053f\x1C:f\x1E\x04e>\be$\x1Af\x12-f\x14>g;\x04g;\x07f\x14?g-\x16g\x1B4f\x0E%h\x03=e\n\x1Bf\x1D%f:\x10f\x19\x02i\x16\x13g\x1C\x0Be\b0g\x03-i\x17(e\x053i\x14.d8\x13e\f:i\x1D\x1Ee88h\x0B1h/-g\x19>e:&e8\ff\x1C\x1Bg>\x0Ee%3f/\x14h>\x03g\x1F%h/\x06h'\x04e.\x1Ae;:h..i\x03(i\x17(f\x04\x0Fh'\x01g2>e=)f\x17%f\x1C,f\x0F\x10i+\x18e\x0F\x11h(\0f\x169i\x1D\"e\x1F:i\x07\x11e$\x04g\x10\x06f\x1D\x03i\x19\x10e=1g\t\x07i\x136h!\fh?\x18f\x1C\te\b\x06d:+g\t)e\x13\x01g;\x0Fh\x10%f7;e\n d8\x13e.6h?\x19g'\rh/\x1Di\"\x18h57f\x1D%d8\x1Ae\n!e\x05,e\x11\nh.0e=\x15g.\0d;\x0Bh4(i\x07\x0Fg\x147d::e=1e\x13\re<\x15g\x14(f\n%e\x11\ni\x03(e\b\x06e?+i\0\x1Fe\x12(h/\"f\x176e0\x1Af3(f\x04\x0Fg\x143h/7e-&f !e:\x14h/%e\x0E\x06e\x0F2e\x0F*f\x18/h?\x14e\x1B\x1Eh4-d90e\x10\rg'0d8:d:\x06f\b\x10e\n\x1Fh/4f\x18\x0Ed>\x1Be:\x14e-)e-\x10d8\x13i\"\x18g(\x0Be:\x0Fd8\0h\b,f\x1C\x03e\x13!e\x0F*f\x1C\te\x056e.\x03d?\x1Df\n$h\0\fd8\x14d;\ne$)g*\x17e\x0F#e\n(f\0\x01g\n6f\0\x01g\t9e\b+h.$d8:e?\x05i!;f\x1B4f\x160e0\x0Fh/4f\b\x11e\0\x11d=\x1Cd8:e*\x12d=\x13e\f\x05f\x0B,i\x02#d9\bd8\0f 7e\x1B=e\x06\x05f\x18/e\x10&f 9f\r.g\x145h'\x06e-&i\x19\"e\x057f\x1C\th?\x07g(\x0Bg\x141d:\x0Ed::f\t\re\x07:f\x1D%d8\rh?\x07f-#e\x1C(f\x18\x0Ef\x18\x1Ff\x15\x05d:\x0Be\x053g3;f \x07i\"\x18e\x15\x06e\n!h>\x13e\x05%d8\0g\x1B4e\x1F:g!\0f\x15\x19e-&d:\x06h'#e;:g-\x11g;\x13f\x1E\x1Ce\x05(g\x10\x03i\0\x1Ag\x1F%h.!e\b\x12e/9d:\x0Eh\t:f\x1C/g\x1B8e\x06\fe\x0F\x11g\x14\x1Fg\x1C\x1Fg\x1A\x04e;:g+\x0Bg-\tg:'g1;e\x1E\x0Bg;\x0Fi*\fe.\x1Eg\x0E0e\b6d=\x1Cf\x1D%h\x07*f \x07g->d;%d8\x0Be\x0E\x1Fe\b\x1Bf\x17 f3\x15e\x056d8-e\0\x0Bd::d8\0e\b\x07f\f\x07e\r\x17e\x053i\x17-i\x1B\x06e\x1B\"g,,d8\te\x053f3(e\x1B f-$g\x05'g\t\x07f71e\x1C3e\x15\x06d8\x1Ae9?e7\x1Ef\x17%f\x1C\x1Fi+\x18g:'f\x1C\0h?\x11g;\x11h!\fd8:d:$i\0\x1Ah/\x04d;7h'\te>\x17g2>e\r\x0Ee.6e:-e.\ff\b\x10f\x04\x1Fh'\te.\th#\x05e>\x17e\b0i\x02.d;6e\b6e:&i#\x1Fe\x13\x01h\x19=g\x046h=,h==f\n%d;7h.0h\0\x05f\x169f!\bh!\ff\x14?d::f0\x11g\x14(e\x13\x01d8\x1Ch%?f\x0F\x10e\x07:i\x05\x12e:\x17g\x046e\x10\x0Ed;\x18f,>g\x03-g\x029d;%e\t\re.\fe\x05(e\x0F\x11e8\x16h.>g=.i\"\x06e/g%\x1Eh\x0E7e>\x17e\b)g\x14(g;'g;-d= d;,h?\x19d9\bf(!e<\x0Fh/-h(\0h\x03=e$\x1Fi\x1B\x05h\x19\x0Ef\x13\rd=\x1Ci#\x0Ef d9&f\x1C\tf\x15\bf5\x0Bh/\x15g';e\n(f\t\rh\x03=e\x063e.\x1Ah\x02!g%(d8\rf\x16-i\x1C\0f1\x02d8\re>\x17e\n\x1Ef3\x15d9\x0Bi\x174i\x07\x07g\x14(h\x10%i\x14\0f\n\x15h/\tg\x1B.f \x07g\b1f\x03\x05f\x11\x04e=1f\x1C\td:\x1Bh$\x07h#=f\x16\x07e-&f\x1C:d<\x1Af\x150e-\x17h#\x05d?.h4-g\t)e\x06\x1Cf\x1D\x11e\x05(i\x1D\"g2>e\x13\x01e\x056e.\x1Ed:\x0Bf\x03\x05f04e93f\x0F\x10g$:d8\ne8\x02h0\"h0\"f\x19.i\0\x1Af\x15\x19e8\bd8\nd< g1;e\b+f-\ff\x1B2f\x0B%f\x1C\te\b\x1Bf\x160i\x05\rd;6e\x0F*h&\x01f\x176d;#h3\x07h(\nh>>e\b0d::g\x14\x1Fh.\"i\x18\x05h\0\x01e8\be1\x15g$:e?\x03g\x10\x06h44e-\x10g62g+\x19d8;i!\fh\x07*g\x046g:'e\b+g.\0e\r\x15f\x149i\x1D)i\x02#d:\x1Bf\x1D%h/4f\t\x13e<\0d;#g \x01e\b i\x19$h/\x01e\b8h\n\x02g\x1B.i\x07\rg\x029f,!f\x158e$\x1Ae0\x11h'\x04e\b\x12h5\x04i\x07\x11f\t>e\b0d;%e\x10\x0Ee$'e\x05(d8;i!5f\x1C\0d=3e\x1B\x1Eg-\x14e$)d8\x0Bd?\x1Di\x1A\x1Cg\x0E0d;#f#\0f\x1F%f\n\x15g%(e0\x0Ff\x176f2\x12f\x1C\tf-#e88g\x14\x1Ah\x073d;#g\x10\x06g\x1B.e=\x15e\x05,e<\0e$\re\b6i\x07\x11h\x1E\re98g&\x0Fg\t\bf\x1C,e=\"f\b\x10e\x07\x06e$\x07h!\ff\x03\x05e\x1B\x1Ee\b0f\0\x1Df\x033f\0\x0Ef 7e\r\x0Fh..h.$h/\x01f\x1C\0e%=d:'g\x14\x1Ff\f\tg\x05'f\x1C\rh#\x05e9?d8\x1Ce\n(f<+i\x07\x07h4-f\x160f\t\x0Bg;\x04e\x1B>i\x1D\"f\x1D?e\x0F\x02h\0\x03f\x14?f2;e.9f\x18\x13e$)e\x1C0e\n*e\n\x1Bd::d;,e\r\x07g:'i\0\x1Fe:&d::g\t)h0\x03f\x154f5\x01h!\fi\0 f\b\x10f\x16\x07e-\x17i\x1F)e\x1B=h48f\x18\x13e<\0e1\x15g\x1B8i\x17\x1Ch!(g\x0E0e=1h'\x06e&\x02f-$g>\x0Ee.9e$'e0\x0Ff\n%i\x01\x13f\x1D!f,>e?\x03f\x03\x05h.8e$\x1Af3\x15h'\x04e.6e1\x05d9&e:\x17h?\x1Ef\x0E%g+\x0Be\r3d8>f\n%f\n\0e7'e%%h?\x10g\x19;e\x05%d;%f\x1D%g\x10\x06h.:d:\x0Bd;6h\x07*g\x141d8-e\r\x0Ee\n\x1Ee\x05,e&\be&\bg\x1C\x1Ff-#d8\ri\x14\x19e\x05(f\x16\x07e\x10\be\x10\fd;7e\0e7&e\x0F3h\x02!d;=g-\x14f!\be.\x1Ei\x19\x05g\x145d?!g;\x0Fg\x10\x06g\x14\x1Fe\x11=e.#d< d;;e\n!f-#e<\x0Fg\t9h\t2d8\x0Bf\x1D%e\r\x0Fd<\x1Ae\x0F*h\x03=e=\x13g\x046i\x07\rf\x160e\x05'e.9f\f\x07e/g(\x0Be\f;g\x16\x17g;\x0Fh?\x07h?\x07e\x0E;d9\x0Be\t\rf\x146e\x05%e94e:&f\x1D\x02e?\x17g>\x0Ed8=f\x1C\0i+\x18g\x19;i\x19\x06f\x1C*f\x1D%e\n e7%e\x05\rh4#f\x15\x19g(\x0Bg\t\be\x1D\x17h:+d=\x13i\x07\re:\x06e\x07:e\x14.f\b\x10f\x1C,e=\"e<\x0Fe\x1C\x1Fh1\x06e\x07:e\x039d8\x1Cf\x169i\x02.g.1e\r\x17d:,f1\x02h\x01\fe\x0F\x16e>\x17h\x01\fd=\rg\x1B8d?!i!5i\x1D\"e\b\x06i\x12\x1Fg=\x11i!5g!.e.\x1Ae\x1B>d>\x0Bg=\x11e\x1D\0g'/f\x1E\x01i\x14\x19h//g\x1B.g\x1A\x04e.\x1Dh4\x1Df\x1C:e\x053i#\x0Ei\x19)f\x0E\bf\x1D\x03g\x17\x05f/\x12e. g\t)i\x19$d:\x06h)\x15h+\x16g\x16>g\x17\x05e\x0F\nf\x176f1\x02h4-g+\x19g\x029e\x04?g+%f/\x0Fe$)d8-e$.h.$h/\x06f/\x0Fd8*e$)f4%e-\x17d=\x13e\x0F0g\x01#g;4f\n$f\x1C,i!5d8*f\0'e.\x18f\x169e88h'\x01g\x1B8f\x1C:f\b\x18g\x15%e:\x14e=\x13e>\x0Be8\bf\x169d>?f !e\x1B-h\x02!e8\x02f\b?e1\x0Bf \x0Fg\x1B.e\x11\x18e7%e/\x0Ee\x05\x03e<\x15h57f\x149e\x0F\x18g,,e\x1B\x1Bd<\x1Ah.!h**f\x18\x0Ei\x1A\x10g'\x01e.\x1De.\x1Dh'\x04h\f\x03f6\bh49e\x051e\x10\fe?\x18h.0d=\x13g3;e8&f\x1D%e\x10\re-\x17g\x19e\n g\x1B\x1Fe\x0F\x17e\b0d:\ff\t\x0Be$'i\x07\x0Ff\b\x10d::f\x150i\x07\x0Fe\x051d:+e\f:e\x1F\x1Fe%3e-)e\x0E\x1Fe\b\x19f\t\0e\x1C(g;\x13f\x1D\x1Fi\0\x1Ad?!h6\x05g:'i\x05\rg=.e=\x13f\x176d<\x18g'\0f\0'f\x04\x1Ff\b?d:'i\x01\nf\b2e\x07:e\x0F#f\x0F\x10d:$e01d8\x1Ad?\x1De\x01%g(\x0Be:&e\x0F\x02f\x150d:\x0Bd8\x1Af\x154d8*e11d8\x1Cf\x03\x05f\x04\x1Fg\t9f.\ne\b\x06i!\x1Ef\x10\x1Ce0\x0Be1\x1Ed:\x0Ei\x17(f\b7h4\"e\n!e#0i\x1F3e\x0F\ne\x056h4\"g;\x0Fe\x1D\x1Af\f\x01e92i\x03(f\b\x10g+\x0Be\b)g\x1B\nh\0\x03h\x19\x11f\b\x10i\x03=e\f\x05h#\x05g\x14(f\b6f/\x14h5\x1Bf\x16\x07f\x18\x0Ef\x0B\x1Be\x15\x06e.\ff\x154g\x1C\x1Ff\x18/g\x1Ce/\x06g\"\x0Ei#\x1Fg;?h\t2g(3e.\x1Ag;\bd:\x0Eg\x14\x1Fg\t)d>\x1Bf1\x02f\x10\x1Cg\x0B\x10e\n\x1Bi\x07\x0Fd8%i\x07\rf08h?\x1Ce\x06\x19g\x1C\x1Ff\x1C\ti\x19\x10g+\x1Ed:\te/9h1!h49g\x14(d8\re%=g;\x1De/9e\r\x01e\b\x06d?\x03h?\x1Bg\x029h/\x04e=1i\x1F3d<\x18e\n?d8\re0\x11f,#h5\x0Fe96d8\x14f\x1C\tg\x029f\x169e\x10\x11e\x05(f\x160d?!g\x14(h.>f\x16=e=\"h1!h5\x04f \x0Ee\x15\x06e\x1F\x0Eg;\x1Fd8\0e\x07:g\t\bf\t\x13i\0 g\x14\"e\x13\x01f&\x02e\x065g\x14(d:\x0Ed?\x1Dg\x15\x19e\x1B g4 d8-e\x1C\x0Be-\x18e\x02(h44e\x1B>f\x1C\0f\x04\x1Bi\x15?f\x1C\x1Fe\x0F#d;7g\x10\x06h4\"e\x1F:e\x1C0e.\tf\x0E\x12f-&f1\ti\x07\fi\x1D\"e\b\x1Be;:e$)g):i&\x16e\x05\be.\fe\x16\x04i)1e\n(d8\x0Bi\x1D\"d8\re\x06\rh/\x1Ad?!f\x04\x0Fd9\ti\x183e\x05\th\x0B1e\x1B=f<\x02d:.e\x06\x1Bd:\x0Bg\x0E)e.6g>$d<\x17e\x06\x1Cf0\x11e\r3e\x0F/e\x10\rg(1e.6e\x057e\n(g\x14;f\x033e\b0f3(f\x18\x0Ee0\x0Fe-&f\0'h\x03=h\0\x03g \x14g!,d;6h'\x02g\x1C\x0Bf8\x05f%\x1Af\x10\x1Eg,\x11i&\x16i \x01i;\x04i\x07\x11i\0\x02g\x14(f1\x1Fh\x0B\x0Fg\x1C\x1Fe.\x1Ed8;g.!i\x186f.5h(;e\x06\ng?;h/\x11f\x1D\x03e\b)e\x01\x1Ae%=d<P:P0P:P8P;P8Q\rQ\x02P>P2Q\x01P5P5P3P>P?Q\0P8Q\x02P0P:P5Q\tP5Q\x03P6P5P\x1AP0P:P1P5P7P1Q\x0BP;P>P=P8P\x12Q\x01P5P?P>P4P-Q\x02P>Q\x02P>PP=P0P3P4P5PP3P>P4P2P>Q\x02Q\x02P0PP2P0Q\x01P2P0PQ\x02Q\x03Q\x02P=P0P4P4P=Q\x0FP\x12P>Q\x02Q\x02Q\0P8P=P5P9P\x12P0Q\x01P=P8PQ\x02Q\0Q\x03P1P\x1EP=P8PPP9P4P2P5P>P=P>Q\x01Q\x03P4`$\x15`%\x07`$9`%\b`$\x15`%\0`$8`%\x07`$\x15`$>`$\x15`%\x0B`$\x14`$0`$*`$0`$(`%\x07`$\x0F`$\x15`$\x15`$?`$-`%\0`$\x07`$8`$\x15`$0`$$`%\x0B`$9`%\x0B`$\x06`$*`$9`%\0`$/`$9`$/`$>`$$`$\x15`$%`$>jagran`$\x06`$\x1C`$\x1C`%\x0B`$\x05`$,`$&`%\x0B`$\x17`$\b`$\x1C`$>`$\x17`$\x0F`$9`$.`$\x07`$(`$5`$9`$/`%\x07`$%`%\x07`$%`%\0`$\x18`$0`$\x1C`$,`$&`%\0`$\x15`$\b`$\x1C`%\0`$5`%\x07`$(`$\b`$(`$\x0F`$9`$0`$\t`$8`$.`%\x07`$\x15`$.`$5`%\x0B`$2`%\x07`$8`$,`$.`$\b`$&`%\x07`$\x13`$0`$\x06`$.`$,`$8`$-`$0`$,`$(`$\x1A`$2`$.`$(`$\x06`$\x17`$8`%\0`$2`%\0X9Y\x04Y\tX%Y\x04Y\tY\x07X0X'X\"X.X1X9X/X/X'Y\x04Y\tY\x07X0Y\x07X5Y\bX1X:Y\nX1Y\x03X'Y\x06Y\bY\x04X'X(Y\nY\x06X9X1X6X0Y\x04Y\x03Y\x07Y\x06X'Y\nY\bY\x05Y\x02X'Y\x04X9Y\x04Y\nX'Y\x06X'Y\x04Y\x03Y\x06X-X*Y\tY\x02X(Y\x04Y\bX-X)X'X.X1Y\x01Y\x02X7X9X(X/X1Y\x03Y\x06X%X0X'Y\x03Y\x05X'X'X-X/X%Y\x04X'Y\x01Y\nY\x07X(X9X6Y\x03Y\nY\x01X(X-X+Y\bY\x05Y\x06Y\bY\x07Y\bX#Y\x06X'X,X/X'Y\x04Y\x07X'X3Y\x04Y\x05X9Y\x06X/Y\x04Y\nX3X9X(X1X5Y\x04Y\tY\x05Y\x06X0X(Y\x07X'X#Y\x06Y\x07Y\x05X+Y\x04Y\x03Y\x06X*X'Y\x04X'X-Y\nX+Y\x05X5X1X4X1X-X-Y\bY\x04Y\bY\x01Y\nX'X0X'Y\x04Y\x03Y\x04Y\x05X1X)X'Y\x06X*X'Y\x04Y\x01X#X(Y\bX.X'X5X#Y\x06X*X'Y\x06Y\x07X'Y\x04Y\nX9X6Y\bY\bY\x02X/X'X(Y\x06X.Y\nX1X(Y\x06X*Y\x04Y\x03Y\x05X4X'X!Y\bY\x07Y\nX'X(Y\bY\x02X5X5Y\bY\x05X'X1Y\x02Y\x05X#X-X/Y\x06X-Y\x06X9X/Y\x05X1X#Y\nX'X-X)Y\x03X*X(X/Y\bY\x06Y\nX,X(Y\x05Y\x06Y\x07X*X-X*X,Y\x07X)X3Y\x06X)Y\nX*Y\x05Y\x03X1X)X:X2X)Y\x06Y\x01X3X(Y\nX*Y\x04Y\x04Y\x07Y\x04Y\x06X'X*Y\x04Y\x03Y\x02Y\x04X(Y\x04Y\x05X'X9Y\x06Y\x07X#Y\bY\x04X4Y\nX!Y\x06Y\bX1X#Y\x05X'Y\x01Y\nY\x03X(Y\x03Y\x04X0X'X*X1X*X(X(X#Y\x06Y\x07Y\x05X3X'Y\x06Y\x03X(Y\nX9Y\x01Y\x02X/X-X3Y\x06Y\x04Y\x07Y\x05X4X9X1X#Y\x07Y\x04X4Y\x07X1Y\x02X7X1X7Y\x04X(profileservicedefaulthimselfdetailscontentsupportstartedmessagesuccessfashioncountryaccountcreatedstoriesresultsrunningprocesswritingobjectsvisiblewelcomearticleunknownnetworkcompanydynamicbrowserprivacyproblemServicerespectdisplayrequestreservewebsitehistoryfriendsoptionsworkingversionmillionchannelwindow.addressvisitedweathercorrectproductedirectforwardyou canremovedsubjectcontrolarchivecurrentreadinglibrarylimitedmanagerfurthersummarymachineminutesprivatecontextprogramsocietynumberswrittenenabledtriggersourcesloadingelementpartnerfinallyperfectmeaningsystemskeepingculture",journalprojectsurfaces"expiresreviewsbalanceEnglishContentthroughPlease opinioncontactaverageprimaryvillageSpanishgallerydeclinemeetingmissionpopularqualitymeasuregeneralspeciessessionsectionwriterscounterinitialreportsfiguresmembersholdingdisputeearlierexpressdigitalpictureAnothermarriedtrafficleadingchangedcentralvictoryimages/reasonsstudiesfeaturelistingmust beschoolsVersionusuallyepisodeplayinggrowingobviousoverlaypresentactions</ul>\r\nwrapperalreadycertainrealitystorageanotherdesktopofferedpatternunusualDigitalcapitalWebsitefailureconnectreducedAndroiddecadesregular & animalsreleaseAutomatgettingmethodsnothingPopularcaptionletterscapturesciencelicensechangesEngland=1&History = new CentralupdatedSpecialNetworkrequirecommentwarningCollegetoolbarremainsbecauseelectedDeutschfinanceworkersquicklybetweenexactlysettingdiseaseSocietyweaponsexhibit<!--Controlclassescoveredoutlineattacksdevices(windowpurposetitle=\"Mobile killingshowingItaliandroppedheavilyeffects-1']);\nconfirmCurrentadvancesharingopeningdrawingbillionorderedGermanyrelated</form>includewhetherdefinedSciencecatalogArticlebuttonslargestuniformjourneysidebarChicagoholidayGeneralpassage,"animatefeelingarrivedpassingnaturalroughly.\n\nThe but notdensityBritainChineselack oftributeIreland\" data-factorsreceivethat isLibraryhusbandin factaffairsCharlesradicalbroughtfindinglanding:lang=\"return leadersplannedpremiumpackageAmericaEdition]"Messageneed tovalue=\"complexlookingstationbelievesmaller-mobilerecordswant tokind ofFirefoxyou aresimilarstudiedmaximumheadingrapidlyclimatekingdomemergedamountsfoundedpioneerformuladynastyhow to SupportrevenueeconomyResultsbrothersoldierlargelycalling."AccountEdward segmentRobert effortsPacificlearnedup withheight:we haveAngelesnations_searchappliedacquiremassivegranted: falsetreatedbiggestbenefitdrivingStudiesminimumperhapsmorningsellingis usedreversevariant role=\"missingachievepromotestudentsomeoneextremerestorebottom:evolvedall thesitemapenglishway to AugustsymbolsCompanymattersmusicalagainstserving})();\r\npaymenttroubleconceptcompareparentsplayersregionsmonitor ''The winningexploreadaptedGalleryproduceabilityenhancecareers). The collectSearch ancientexistedfooter handlerprintedconsoleEasternexportswindowsChannelillegalneutralsuggest_headersigning.html\">settledwesterncausing-webkitclaimedJusticechaptervictimsThomas mozillapromisepartieseditionoutside:false,hundredOlympic_buttonauthorsreachedchronicdemandssecondsprotectadoptedprepareneithergreatlygreateroverallimprovecommandspecialsearch.worshipfundingthoughthighestinsteadutilityquarterCulturetestingclearlyexposedBrowserliberal} catchProjectexamplehide();FloridaanswersallowedEmperordefenseseriousfreedomSeveral-buttonFurtherout of != nulltrainedDenmarkvoid(0)/all.jspreventRequestStephen\n\nWhen observe</h2>\r\nModern provide\" alt=\"borders.\n\nFor \n\nMany artistspoweredperformfictiontype ofmedicalticketsopposedCouncilwitnessjusticeGeorge Belgium...</a>twitternotablywaitingwarfare Other rankingphrasesmentionsurvivescholar</p>\r\n Countryignoredloss ofjust asGeorgiastrange<head><stopped1']);\r\nislandsnotableborder:list ofcarried100,000</h3>\n severalbecomesselect wedding00.htmlmonarchoff theteacherhighly biologylife ofor evenrise of»plusonehunting(thoughDouglasjoiningcirclesFor theAncientVietnamvehiclesuch ascrystalvalue =Windowsenjoyeda smallassumed<a id=\"foreign All rihow theDisplayretiredhoweverhidden;battlesseekingcabinetwas notlook atconductget theJanuaryhappensturninga:hoverOnline French lackingtypicalextractenemieseven ifgeneratdecidedare not/searchbeliefs-image:locatedstatic.login\">convertviolententeredfirst\">circuitFinlandchemistshe was10px;\">as suchdivided</span>will beline ofa greatmystery/index.fallingdue to railwaycollegemonsterdescentit withnuclearJewish protestBritishflowerspredictreformsbutton who waslectureinstantsuicidegenericperiodsmarketsSocial fishingcombinegraphicwinners<br /><by the NaturalPrivacycookiesoutcomeresolveSwedishbrieflyPersianso muchCenturydepictscolumnshousingscriptsnext tobearingmappingrevisedjQuery(-width:title\">tooltipSectiondesignsTurkishyounger.match(})();\n\nburningoperatedegreessource=Richardcloselyplasticentries</tr>\r\ncolor:#ul id=\"possessrollingphysicsfailingexecutecontestlink toDefault<br />\n: true,chartertourismclassicproceedexplain</h1>\r\nonline.?xml vehelpingdiamonduse theairlineend -->).attr(readershosting#ffffffrealizeVincentsignals src=\"/ProductdespitediversetellingPublic held inJoseph theatreaffects<style>a largedoesn'tlater, ElementfaviconcreatorHungaryAirportsee theso thatMichaelSystemsPrograms, and width=e"tradingleft\">\npersonsGolden Affairsgrammarformingdestroyidea ofcase ofoldest this is.src = cartoonregistrCommonsMuslimsWhat isin manymarkingrevealsIndeed,equally/show_aoutdoorescape(Austriageneticsystem,In the sittingHe alsoIslandsAcademy\n\t\t<!--Daniel bindingblock\">imposedutilizeAbraham(except{width:putting).html(|| [];\nDATA[ *kitchenmountedactual dialectmainly _blank'installexpertsif(typeIt also© \">Termsborn inOptionseasterntalkingconcerngained ongoingjustifycriticsfactoryits ownassaultinvitedlastinghis ownhref=\"/\" rel=\"developconcertdiagramdollarsclusterphp?id=alcohol);})();using a><span>vesselsrevivalAddressamateurandroidallegedillnesswalkingcentersqualifymatchesunifiedextinctDefensedied in\n\t<!-- customslinkingLittle Book ofeveningmin.js?are thekontakttoday's.html\" target=wearingAll Rig;\n})();raising Also, crucialabout\">declare-->\n<scfirefoxas muchappliesindex, s, but type = \n\r\n<!--towardsRecordsPrivateForeignPremierchoicesVirtualreturnsCommentPoweredinline;povertychamberLiving volumesAnthonylogin\" RelatedEconomyreachescuttinggravitylife inChapter-shadowNotable</td>\r\n returnstadiumwidgetsvaryingtravelsheld bywho arework infacultyangularwho hadairporttown of\n\nSome 'click'chargeskeywordit willcity of(this);Andrew unique checkedor more300px; return;rsion=\"pluginswithin herselfStationFederalventurepublishsent totensionactresscome tofingersDuke ofpeople,exploitwhat isharmonya major\":\"httpin his menu\">\nmonthlyofficercouncilgainingeven inSummarydate ofloyaltyfitnessand wasemperorsupremeSecond hearingRussianlongestAlbertalateralset of small\">.appenddo withfederalbank ofbeneathDespiteCapitalgrounds), and percentit fromclosingcontainInsteadfifteenas well.yahoo.respondfighterobscurereflectorganic= Math.editingonline paddinga wholeonerroryear ofend of barrierwhen itheader home ofresumedrenamedstrong>heatingretainscloudfrway of March 1knowingin partBetweenlessonsclosestvirtuallinks\">crossedEND -->famous awardedLicenseHealth fairly wealthyminimalAfricancompetelabel\">singingfarmersBrasil)discussreplaceGregoryfont copursuedappearsmake uproundedboth ofblockedsaw theofficescoloursif(docuwhen heenforcepush(fuAugust UTF-8\">Fantasyin mostinjuredUsuallyfarmingclosureobject defenceuse of Medical<body>\nevidentbe usedkeyCodesixteenIslamic#000000entire widely active (typeofone cancolor =speakerextendsPhysicsterrain<tbody>funeralviewingmiddle cricketprophetshifteddoctorsRussell targetcompactalgebrasocial-bulk ofman and</td>\n he left).val()false);logicalbankinghome tonaming Arizonacredits);\n});\nfounderin turnCollinsbefore But thechargedTitle\">CaptainspelledgoddessTag -->Adding:but wasRecent patientback in=false&Lincolnwe knowCounterJudaismscript altered']);\n has theunclearEvent',both innot all\n\n<!-- placinghard to centersort ofclientsstreetsBernardassertstend tofantasydown inharbourFreedomjewelry/about..searchlegendsis mademodern only ononly toimage\" linear painterand notrarely acronymdelivershorter00&as manywidth=\"/* <![Ctitle =of the lowest picked escapeduses ofpeoples PublicMatthewtacticsdamagedway forlaws ofeasy to windowstrong simple}catch(seventhinfoboxwent topaintedcitizenI don'tretreat. Some ww.\");\nbombingmailto:made in. Many carries||{};wiwork ofsynonymdefeatsfavoredopticalpageTraunless sendingleft\"><comScorAll thejQuery.touristClassicfalse\" Wilhelmsuburbsgenuinebishops.split(global followsbody ofnominalContactsecularleft tochiefly-hidden-banner</li>\n\n. When in bothdismissExplorealways via thespaC1olwelfareruling arrangecaptainhis sonrule ofhe tookitself,=0&(calledsamplesto makecom/pagMartin Kennedyacceptsfull ofhandledBesides//--></able totargetsessencehim to its by common.mineralto takeways tos.org/ladvisedpenaltysimple:if theyLettersa shortHerbertstrikes groups.lengthflightsoverlapslowly lesser social </p>\n\t\tit intoranked rate oful>\r\n attemptpair ofmake itKontaktAntoniohaving ratings activestreamstrapped\").css(hostilelead tolittle groups,Picture-->\r\n\r\n rows=\" objectinverse<footerCustomV><\\/scrsolvingChamberslaverywoundedwhereas!= 'undfor allpartly -right:Arabianbacked centuryunit ofmobile-Europe,is homerisk ofdesiredClintoncost ofage of become none ofp"Middle ead')[0Criticsstudios>©group\">assemblmaking pressedwidget.ps:\" ? rebuiltby someFormer editorsdelayedCanonichad thepushingclass=\"but arepartialBabylonbottom carrierCommandits useAs withcoursesa thirddenotesalso inHouston20px;\">accuseddouble goal ofFamous ).bind(priests Onlinein Julyst + \"gconsultdecimalhelpfulrevivedis veryr'+'iptlosing femalesis alsostringsdays ofarrivalfuture <objectforcingString(\" />\n\t\there isencoded. The balloondone by/commonbgcolorlaw of Indianaavoidedbut the2px 3pxjquery.after apolicy.men andfooter-= true;for usescreen.Indian image =family,http://  driverseternalsame asnoticedviewers})();\n is moreseasonsformer the newis justconsent Searchwas thewhy theshippedbr><br>width: height=made ofcuisineis thata very Admiral fixed;normal MissionPress, ontariocharsettry to invaded=\"true\"spacingis mosta more totallyfall of});\r\n immensetime inset outsatisfyto finddown tolot of Playersin Junequantumnot thetime todistantFinnishsrc = (single help ofGerman law andlabeledforestscookingspace\">header-well asStanleybridges/globalCroatia About [0];\n it, andgroupedbeing a){throwhe madelighterethicalFFFFFF\"bottom\"like a employslive inas seenprintermost ofub-linkrejectsand useimage\">succeedfeedingNuclearinformato helpWomen'sNeitherMexicanprotein<table by manyhealthylawsuitdevised.push({sellerssimply Through.cookie Image(older\">us.js\"> Since universlarger open to!-- endlies in']);\r\n marketwho is (\"DOMComanagedone fortypeof Kingdomprofitsproposeto showcenter;made itdressedwere inmixtureprecisearisingsrc = 'make a securedBaptistvoting \n\t\tvar March 2grew upClimate.removeskilledway the</head>face ofacting right\">to workreduceshas haderectedshow();action=book ofan area== \"htt<header\n<html>conformfacing cookie.rely onhosted .customhe wentbut forspread Family a meansout theforums.footage\">MobilClements\" id=\"as highintense--><!--female is seenimpliedset thea stateand hisfastestbesidesbutton_bounded\"><img Infoboxevents,a youngand areNative cheaperTimeoutand hasengineswon the(mostlyright: find a -bottomPrince area ofmore ofsearch_nature,legallyperiod,land ofor withinducedprovingmissilelocallyAgainstthe wayk"px;\">\r\npushed abandonnumeralCertainIn thismore inor somename isand, incrownedISBN 0-createsOctobermay notcenter late inDefenceenactedwish tobroadlycoolingonload=it. TherecoverMembersheight assumes<html>\npeople.in one =windowfooter_a good reklamaothers,to this_cookiepanel\">London,definescrushedbaptismcoastalstatus title\" move tolost inbetter impliesrivalryservers SystemPerhapses and contendflowinglasted rise inGenesisview ofrising seem tobut in backinghe willgiven agiving cities.flow of Later all butHighwayonly bysign ofhe doesdiffersbattery&lasinglesthreatsintegertake onrefusedcalled =US&See thenativesby thissystem.head of:hover,lesbiansurnameand allcommon/header__paramsHarvard/pixel.removalso longrole ofjointlyskyscraUnicodebr />\r\nAtlantanucleusCounty,purely count\">easily build aonclicka givenpointerh"events else {\nditionsnow the, with man whoorg/Webone andcavalryHe diedseattle00,000 {windowhave toif(windand itssolely m"renewedDetroitamongsteither them inSenatorUs</a><King ofFrancis-produche usedart andhim andused byscoringat hometo haverelatesibilityfactionBuffalolink\"><what hefree toCity ofcome insectorscountedone daynervoussquare };if(goin whatimg\" alis onlysearch/tuesdaylooselySolomonsexual - <a hrmedium\"DO NOT France,with a war andsecond take a >\r\n\r\n\r\nmarket.highwaydone inctivity\"last\">obligedrise to\"undefimade to Early praisedin its for hisathleteJupiterYahoo! termed so manyreally s. The a woman?value=direct right\" bicycleacing=\"day andstatingRather,higher Office are nowtimes, when a pay foron this-link\">;borderaround annual the Newput the.com\" takin toa brief(in thegroups.; widthenzymessimple in late{returntherapya pointbanninginks\">\n();\" rea place\\u003Caabout atr>\r\n\t\tccount gives a<SCRIPTRailwaythemes/toolboxById(\"xhumans,watchesin some if (wicoming formats Under but hashanded made bythan infear ofdenoted/iframeleft involtagein eacha"base ofIn manyundergoregimesaction </p>\r\n<ustomVa;></importsor thatmostly &re size=\"</a></ha classpassiveHost = WhetherfertileVarious=[];(fucameras/></td>acts asIn some>\r\n\r\n<!organis <br />BeijingcatalC deutscheuropeueuskaragaeilgesvenskaespaC1amensajeusuariotrabajomC)xicopC!ginasiempresistemaoctubreduranteaC1adirempresamomentonuestroprimeratravC)sgraciasnuestraprocesoestadoscalidadpersonanC:meroacuerdomC:sicamiembroofertasalgunospaC-sesejemploderechoademC!sprivadoagregarenlacesposiblehotelessevillaprimeroC:ltimoeventosarchivoculturamujeresentradaanuncioembargomercadograndesestudiomejoresfebrerodiseC1oturismocC3digoportadaespaciofamiliaantoniopermiteguardaralgunaspreciosalguiensentidovisitastC-tuloconocersegundoconsejofranciaminutossegundatenemosefectosmC!lagasesiC3nrevistagranadacompraringresogarcC-aacciC3necuadorquienesinclusodeberC!materiahombresmuestrapodrC-amaC1anaC:ltimaestamosoficialtambienningC:nsaludospodemosmejorarpositionbusinesshomepagesecuritylanguagestandardcampaignfeaturescategoryexternalchildrenreservedresearchexchangefavoritetemplatemilitaryindustryservicesmaterialproductsz-index:commentssoftwarecompletecalendarplatformarticlesrequiredmovementquestionbuildingpoliticspossiblereligionphysicalfeedbackregisterpicturesdisabledprotocolaudiencesettingsactivityelementslearninganythingabstractprogressoverviewmagazineeconomictrainingpressurevarious <strong>propertyshoppingtogetheradvancedbehaviordownloadfeaturedfootballselectedLanguagedistanceremembertrackingpasswordmodifiedstudentsdirectlyfightingnortherndatabasefestivalbreakinglocationinternetdropdownpracticeevidencefunctionmarriageresponseproblemsnegativeprogramsanalysisreleasedbanner\">purchasepoliciesregionalcreativeargumentbookmarkreferrerchemicaldivisioncallbackseparateprojectsconflicthardwareinterestdeliverymountainobtained= false;for(var acceptedcapacitycomputeridentityaircraftemployedproposeddomesticincludesprovidedhospitalverticalcollapseapproachpartnerslogo\"><adaughterauthor\" culturalfamilies/images/assemblypowerfulteachingfinisheddistrictcriticalcgi-bin/purposesrequireselectionbecomingprovidesacademicexerciseactuallymedicineconstantaccidentMagazinedocumentstartingbottom\">observed: "extendedpreviousSoftwarecustomerdecisionstrengthdetailedslightlyplanningtextareacurrencyeveryonestraighttransferpositiveproducedheritageshippingabsolutereceivedrelevantbutton\" violenceanywherebenefitslaunchedrecentlyalliancefollowedmultiplebulletinincludedoccurredinternal$(this).republic><tr><tdcongressrecordedultimatesolution<ul id=\"discoverHome</a>websitesnetworksalthoughentirelymemorialmessagescontinueactive\">somewhatvictoriaWestern title=\"LocationcontractvisitorsDownloadwithout right\">\nmeasureswidth = variableinvolvedvirginianormallyhappenedaccountsstandingnationalRegisterpreparedcontrolsaccuratebirthdaystrategyofficialgraphicscriminalpossiblyconsumerPersonalspeakingvalidateachieved.jpg\" />machines</h2>\n keywordsfriendlybrotherscombinedoriginalcomposedexpectedadequatepakistanfollow\" valuable</label>relativebringingincreasegovernorplugins/List of Header\">\" name=\" ("graduate</head>\ncommercemalaysiadirectormaintain;height:schedulechangingback to catholicpatternscolor: #greatestsuppliesreliable</ul>\n\t\t<select citizensclothingwatching<li id=\"specificcarryingsentence<center>contrastthinkingcatch(e)southernMichael merchantcarouselpadding:interior.split(\"lizationOctober ){returnimproved-->\n\ncoveragechairman.png\" />subjectsRichard whateverprobablyrecoverybaseballjudgmentconnect..css\" /> websitereporteddefault\"/></a>\r\nelectricscotlandcreationquantity. ISBN 0did not instance-search-\" lang=\"speakersComputercontainsarchivesministerreactiondiscountItalianocriteriastrongly: 'http:'script'coveringofferingappearedBritish identifyFacebooknumerousvehiclesconcernsAmericanhandlingdiv id=\"William provider_contentaccuracysection andersonflexibleCategorylawrence<script>layout=\"approved maximumheader\"></table>Serviceshamiltoncurrent canadianchannels/themes//articleoptionalportugalvalue=\"\"intervalwirelessentitledagenciesSearch\" measuredthousandspending…new Date\" size=\"pageNamemiddle\" \" /></a>hidden\">sequencepersonaloverflowopinionsillinoislinks\">\n\t<title>versionssaturdayterminalitempropengineersectionsdesignerproposal=\"false\"EspaC1olreleasessubmit\" er"additionsymptomsorientedresourceright\"><pleasurestationshistory.leaving border=contentscenter\">.\n\nSome directedsuitablebulgaria.show();designedGeneral conceptsExampleswilliamsOriginal\"><span>search\">operatorrequestsa "allowingDocumentrevision. \n\nThe yourselfContact michiganEnglish columbiapriorityprintingdrinkingfacilityreturnedContent officersRussian generate-8859-1\"indicatefamiliar qualitymargin:0 contentviewportcontacts-title\">portable.length eligibleinvolvesatlanticonload=\"default.suppliedpaymentsglossary\n\nAfter guidance</td><tdencodingmiddle\">came to displaysscottishjonathanmajoritywidgets.clinicalthailandteachers<head>\n\taffectedsupportspointer;toString</small>oklahomawill be investor0\" alt=\"holidaysResourcelicensed (which . After considervisitingexplorerprimary search\" android\"quickly meetingsestimate;return ;color:# height=approval, " checked.min.js\"magnetic></a></hforecast. While thursdaydvertiseéhasClassevaluateorderingexistingpatients Online coloradoOptions\"campbell<!-- end</span><<br />\r\n_popups|sciences," quality Windows assignedheight: <b classle" value=\" Companyexamples<iframe believespresentsmarshallpart of properly).\n\nThe taxonomymuch of </span>\n\" data-srtuguC*sscrollTo project<head>\r\nattorneyemphasissponsorsfancyboxworld's wildlifechecked=sessionsprogrammpx;font- Projectjournalsbelievedvacationthompsonlightingand the special border=0checking</tbody><button Completeclearfix\n<head>\narticle <sectionfindingsrole in popular Octoberwebsite exposureused to changesoperatedclickingenteringcommandsinformed numbers </div>creatingonSubmitmarylandcollegesanalyticlistingscontact.loggedInadvisorysiblingscontent\"s")s. This packagescheckboxsuggestspregnanttomorrowspacing=icon.pngjapanesecodebasebutton\">gamblingsuch as , while </span> missourisportingtop:1px .</span>tensionswidth=\"2lazyloadnovemberused in height=\"cript\">\n </<tr><td height:2/productcountry include footer\" <!-- title\"></jquery.</form>\n(g.\0d=\x13)(g9\x01i+\x14)hrvatskiitalianoromC\"nD\x03tC<rkC'eX'X1X/Y\btambiC)nnoticiasmensajespersonasderechosnacionalserviciocontactousuariosprogramagobiernoempresasanunciosvalenciacolombiadespuC)sdeportesproyectoproductopC:bliconosotroshistoriapresentemillonesmediantepreguntaanteriorrecursosproblemasantiagonuestrosopiniC3nimprimirmientrasamC)ricavendedorsociedadrespectorealizarregistropalabrasinterC)sentoncesespecialmiembrosrealidadcC3rdobazaragozapC!ginassocialesbloqueargestiC3nalquilersistemascienciascompletoversiC3ncompletaestudiospC:blicaobjetivoalicantebuscadorcantidadentradasaccionesarchivossuperiormayorC-aalemaniafunciC3nC:ltimoshaciendoaquellosediciC3nfernandoambientefacebooknuestrasclientesprocesosbastantepresentareportarcongresopublicarcomerciocontratojC3venesdistritotC)cnicaconjuntoenergC-atrabajarasturiasrecienteutilizarboletC-nsalvadorcorrectatrabajosprimerosnegocioslibertaddetallespantallaprC3ximoalmerC-aanimalesquiC)nescorazC3nsecciC3nbuscandoopcionesexteriorconceptotodavC-agalerC-aescribirmedicinalicenciaconsultaaspectoscrC-ticadC3laresjusticiadeberC!nperC-odonecesitamantenerpequeC1orecibidatribunaltenerifecanciC3ncanariasdescargadiversosmallorcarequieretC)cnicodeberC-aviviendafinanzasadelantefuncionaconsejosdifC-cilciudadesantiguasavanzadatC)rminounidadessC!nchezcampaC1asoftonicrevistascontienesectoresmomentosfacultadcrC)ditodiversassupuestofactoressegundospequeC1aP3P>P4P0P5Q\x01P;P8P5Q\x01Q\x02Q\fP1Q\x0BP;P>P1Q\x0BQ\x02Q\fQ\rQ\x02P>P<P\x15Q\x01P;P8Q\x02P>P3P>P<P5P=Q\x0FP2Q\x01P5Q\x05Q\rQ\x02P>P9P4P0P6P5P1Q\x0BP;P8P3P>P4Q\x03P4P5P=Q\fQ\rQ\x02P>Q\x02P1Q\x0BP;P0Q\x01P5P1Q\x0FP>P4P8P=Q\x01P5P1P5P=P0P4P>Q\x01P0P9Q\x02Q\x04P>Q\x02P>P=P5P3P>Q\x01P2P>P8Q\x01P2P>P9P8P3Q\0Q\x0BQ\x02P>P6P5P2Q\x01P5P<Q\x01P2P>Q\x0EP;P8Q\bQ\fQ\rQ\x02P8Q\x05P?P>P:P0P4P=P5P9P4P>P<P0P<P8Q\0P0P;P8P1P>Q\x02P5P<Q\x03Q\x05P>Q\x02Q\x0FP4P2Q\x03Q\x05Q\x01P5Q\x02P8P;Q\x0EP4P8P4P5P;P>P<P8Q\0P5Q\x02P5P1Q\x0FQ\x01P2P>P5P2P8P4P5Q\x07P5P3P>Q\rQ\x02P8P<Q\x01Q\x07P5Q\x02Q\x02P5P<Q\x0BQ\x06P5P=Q\x0BQ\x01Q\x02P0P;P2P5P4Q\fQ\x02P5P<P5P2P>P4Q\x0BQ\x02P5P1P5P2Q\x0BQ\bP5P=P0P<P8Q\x02P8P?P0Q\x02P>P<Q\x03P?Q\0P0P2P;P8Q\x06P0P>P4P=P0P3P>P4Q\x0BP7P=P0Q\x0EP<P>P3Q\x03P4Q\0Q\x03P3P2Q\x01P5P9P8P4P5Q\x02P:P8P=P>P>P4P=P>P4P5P;P0P4P5P;P5Q\x01Q\0P>P:P8Q\x0EP=Q\x0FP2P5Q\x01Q\fP\x15Q\x01Q\x02Q\fQ\0P0P7P0P=P0Q\bP8X'Y\x04Y\x04Y\x07X'Y\x04X*Y\nX,Y\x05Y\nX9X.X'X5X)X'Y\x04X0Y\nX9Y\x04Y\nY\x07X,X/Y\nX/X'Y\x04X\"Y\x06X'Y\x04X1X/X*X-Y\x03Y\x05X5Y\x01X-X)Y\x03X'Y\x06X*X'Y\x04Y\x04Y\nY\nY\x03Y\bY\x06X4X(Y\x03X)Y\x01Y\nY\x07X'X(Y\x06X'X*X-Y\bX'X!X#Y\x03X+X1X.Y\x04X'Y\x04X'Y\x04X-X(X/Y\x04Y\nY\x04X/X1Y\bX3X'X6X:X7X*Y\x03Y\bY\x06Y\x07Y\x06X'Y\x03X3X'X-X)Y\x06X'X/Y\nX'Y\x04X7X(X9Y\x04Y\nY\x03X4Y\x03X1X'Y\nY\x05Y\x03Y\x06Y\x05Y\x06Y\x07X'X4X1Y\x03X)X1X&Y\nX3Y\x06X4Y\nX7Y\x05X'X0X'X'Y\x04Y\x01Y\x06X4X(X'X(X*X9X(X1X1X-Y\x05X)Y\x03X'Y\x01X)Y\nY\x02Y\bY\x04Y\x05X1Y\x03X2Y\x03Y\x04Y\x05X)X#X-Y\x05X/Y\x02Y\x04X(Y\nY\nX9Y\x06Y\nX5Y\bX1X)X7X1Y\nY\x02X4X'X1Y\x03X,Y\bX'Y\x04X#X.X1Y\tY\x05X9Y\x06X'X'X(X-X+X9X1Y\bX6X(X4Y\x03Y\x04Y\x05X3X,Y\x04X(Y\x06X'Y\x06X.X'Y\x04X/Y\x03X*X'X(Y\x03Y\x04Y\nX)X(X/Y\bY\x06X#Y\nX6X'Y\nY\bX,X/Y\x01X1Y\nY\x02Y\x03X*X(X*X#Y\x01X6Y\x04Y\x05X7X(X.X'Y\x03X+X1X(X'X1Y\x03X'Y\x01X6Y\x04X'X-Y\x04Y\tY\x06Y\x01X3Y\x07X#Y\nX'Y\x05X1X/Y\bX/X#Y\x06Y\x07X'X/Y\nY\x06X'X'Y\x04X'Y\x06Y\x05X9X1X6X*X9Y\x04Y\x05X/X'X.Y\x04Y\x05Y\x05Y\x03Y\x06\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\x01\0\x02\0\x02\0\x02\0\x02\0\x04\0\x04\0\x04\0\x04\0\0\x01\x02\x03\x04\x05\x06\x07\x07\x06\x05\x04\x03\x02\x01\0\b\t\n\x0B\f\r\x0E\x0F\x0F\x0E\r\f\x0B\n\t\b\x10\x11\x12\x13\x14\x15\x16\x17\x17\x16\x15\x14\x13\x12\x11\x10\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F\x1F\x1E\x1D\x1C\x1B\x1A\x19\x18\x7F\x7F\x7F\x7F\0\0\0\0\0\0\0\0\x7F\x7F\x7F\x7F\x01\0\0\0\x02\0\0\0\x02\0\0\0\x01\0\0\0\x01\0\0\0\x03\0\0\0\x7F\x7F\0\x01\0\0\0\x01\0\0\x7F\x7F\0\x01\0\0\0\b\0\b\0\b\0\b\0\0\0\x01\0\x02\0\x03\0\x04\0\x05\0\x06\0\x07resourcescountriesquestionsequipmentcommunityavailablehighlightDTD/xhtmlmarketingknowledgesomethingcontainerdirectionsubscribeadvertisecharacter\" value=\"</select>Australia\" class=\"situationauthorityfollowingprimarilyoperationchallengedevelopedanonymousfunction functionscompaniesstructureagreement\" title=\"potentialeducationargumentssecondarycopyrightlanguagesexclusivecondition</form>\r\nstatementattentionBiography} else {\nsolutionswhen the Analyticstemplatesdangeroussatellitedocumentspublisherimportantprototypeinfluence»</effectivegenerallytransformbeautifultransportorganizedpublishedprominentuntil thethumbnailNational .focus();over the migrationannouncedfooter\">\nexceptionless thanexpensiveformationframeworkterritoryndicationcurrentlyclassNamecriticismtraditionelsewhereAlexanderappointedmaterialsbroadcastmentionedaffiliate</option>treatmentdifferent/default.Presidentonclick=\"biographyotherwisepermanentFranC'aisHollywoodexpansionstandards</style>\nreductionDecember preferredCambridgeopponentsBusiness confusion>\n<title>presentedexplaineddoes not worldwideinterfacepositionsnewspaper</table>\nmountainslike the essentialfinancialselectionaction=\"/abandonedEducationparseInt(stabilityunable to\nrelationsNote thatefficientperformedtwo yearsSince thethereforewrapper\">alternateincreasedBattle ofperceivedtrying tonecessaryportrayedelectionsElizabethdiscoveryinsurances.length;legendaryGeographycandidatecorporatesometimesservices.inheritedCommunityreligiouslocationsCommitteebuildingsthe worldno longerbeginningreferencecannot befrequencytypicallyinto the relative;recordingpresidentinitiallytechniquethe otherit can beexistenceunderlinethis timetelephoneitemscopepracticesadvantage);return For otherprovidingdemocracyboth the extensivesufferingsupportedcomputers functionpracticalsaid thatit may beEnglish\nsuspectedmargin: 0spiritual\n\nmicrosoftgraduallydiscussedhe becameexecutivejquery.jshouseholdconfirmedpurchasedliterallydestroyedup to thevariationremainingit is notcenturiesJapanese among thecompletedalgorithminterestsrebellionundefinedencourageresizableinvolvingsensitiveuniversalprovision(althoughfeaturingconducted), which continued-header\">February numerous overflow:componentfragmentsexcellentcolspan=\"technicalnear the Advanced source ofexpressedHong Kong Facebookmultiple mechanismelevationoffensive\n\tsponsoreddocument.or "there arethose whomovementsprocessesdifficultsubmittedrecommendconvincedpromoting\" width=\".replace(classicalcoalitionhis firstdecisionsassistantindicatedevolution-wrapper\"enough toalong thedelivered-->\r\n\n\r\n
Archbishop class=\"nobeing usedapproachesprivilegesnoscript>\nresults inmay be theEaster eggmechanismsreasonablePopulationCollectionselected\">noscript>\r/index.phparrival of-jssdk'));managed toincompletecasualtiescompletionChristiansSeptember arithmeticproceduresmight haveProductionit appearsPhilosophyfriendshipleading togiving thetoward theguaranteeddocumentedcolor:#000video gamecommissionreflectingchange theassociatedsans-serifonkeypress; padding:He was theunderlyingtypically , and the srcElementsuccessivesince the should be networkingaccountinguse of thelower thanshows that\n\t\tcomplaintscontinuousquantitiesastronomerhe did notdue to itsapplied toan averageefforts tothe futureattempt toTherefore,capabilityRepublicanwas formedElectronickilometerschallengespublishingthe formerindigenousdirectionssubsidiaryconspiracydetails ofand in theaffordablesubstancesreason forconventionitemtype=\"absolutelysupposedlyremained aattractivetravellingseparatelyfocuses onelementaryapplicablefound thatstylesheetmanuscriptstands for no-repeat(sometimesCommercialin Americaundertakenquarter ofan examplepersonallyindex.php?\npercentagebest-knowncreating a\" dir=\"ltrLieutenant\n
is said tostructuralreferendummost oftena separate->\n
soundtracksearchFormtend to beinput id=\"opening ofrestrictedadopted byaddressingtheologianmethods ofvariant ofChristian very largeautomotiveby far therange frompursuit offollow thebrought toin Englandagree thataccused ofcomes frompreventingdiv style=his or hertremendousfreedom ofconcerning0 1em 1em;Basketball/style.cssan earliereven after/\" title=\".com/indextaking thepittsburghcontent\">\r + + Emby + + + + + +
+
+
+
+
+
+ +
+
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/item/item.css b/item/item.css new file mode 100644 index 0000000..9e1249c --- /dev/null +++ b/item/item.css @@ -0,0 +1 @@ +.itemView.dialog-medium-tall{width:180ch;max-width:90%}.item-fixed-side{width:28em;max-width:32vw}.padded-top-page-item-dialog{padding-top:5em!important}.detailImageContainer-side{position:relative}.reduce-font-size{font-size:92%}.topDetailsMain{overflow:hidden;box-sizing:border-box}.topDetailsMain.padded-left{-webkit-padding-start:2.5%;padding-inline-start:2.5%}@media all and (orientation:landscape){.topDetailsMain-textshadow{text-shadow:.14em .14em .28em rgba(0,0,0,.45)}.topDetailsMain-graphic-tv{min-height:70vh;min-height:calc(100vh - 8em - env(safe-area-inset-top,0));-webkit-justify-content:flex-end;justify-content:flex-end}}.detailImage-transparent{background-color:transparent!important}.detailImageContainerCard{contain:layout style!important}.detailImage{box-shadow:0 .278em 1.39em rgb(0 0 0 / 20%)!important}.detailImageContainerCard:not(.imageWidthTest){width:100%!important}.detailImageContainerCard-cardBox{-webkit-margin-end:0!important;margin-inline-end:0!important;margin-top:0!important;margin-bottom:0!important}.detailImageContainerCard-side{max-width:40vh}.detailImageContainerCard-side-cardBox{margin:0!important}.detailImageContainerCard .cardImageIcon{font-size:600%!important}.detailImageContainer-main{position:relative;-webkit-flex-shrink:0;flex-shrink:0;width:14vw;margin-bottom:1em}.detailImageContainer-main.detailImageContainer-portrait{width:clamp(6vw,23.5em,min(25vw,calc(70vh * (2 / 3))))}.detailImageContainer-main-tv.detailImageContainer-portrait{width:clamp(6vw,23.5em,20vw)}.detailImageContainer-main.detailImageContainer-square{width:clamp(6vw,20.5em,min(40vw,40vh))}.detailImageContainer-main-tv.detailImageContainer-square{width:clamp(6vw,23.5em,20vw)}.detailImageContainer-main.detailImageContainer-backdrop{width:28vw;width:clamp(20vw,49.5em,28vw)}.detailImageContainer-main.detailImageContainer-banner{width:28vw;width:clamp(20vw,49.5em,28vw)}.detailImageContainer-main.detailImageContainer-fourThree{width:28vw;width:clamp(20vw,49.5em,28vw)}.detailImageContainer-main.detailImageContainer-small{max-width:20vw}@media all and (orientation:landscape){.detailImageContainer-main.detailImageContainer-small{max-width:14vw}}.itemName-primary{margin:0}.itemName-secondary{margin:0;font-weight:500}@supports selector(:hover) and (display:revert) and (column-gap:1em){.itemSecondaryNameContainer-condense{margin:-.35rem 0 -.25rem}}.btnDetailEdit{font-size:72%;margin-top:0;margin-bottom:0;-webkit-margin-start:1.25em;margin-inline-start:1.25em;-webkit-margin-end:0;margin-inline-end:0}.btnDetailEdit+.btnDetailEdit{-webkit-margin-start:.5em;margin-inline-start:.5em}.trackSelectionFieldContainer{max-width:100%}.detailMediaStreamsItemsContainer{font-size:92%}.mediaStreamTypeIcon{width:1em;height:1em;-webkit-margin-end:.5em;margin-inline-end:.5em;font-size:130%}.mediaStreamPadder{padding-bottom:32em;aspect-ratio:16/29.5}.mediaStreamPadder-tv{padding-bottom:190%;aspect-ratio:16/29.5}@supports (aspect-ratio:16 / 9){.mediaStreamPadder,.mediaStreamPadder-tv{padding-bottom:0!important}}.mediaStreamInnerCardFooter{right:0;top:0;inset-inline-start:0;inset-inline-end:0;padding:.5em 1.25em;color:inherit;text-shadow:none!important}.mediaStreamInnerCardFooter-cardText{padding:.1em 0}.mediaInfoStream{-webkit-margin-end:2em;margin-inline-end:2em}.mediaInfoAttributeLabel{-webkit-margin-end:1em;margin-inline-end:1em}.mediaInfoAttributeValue{white-space:normal;--theme-text-color-alpha:.7}.itemName-primary-logo{height:2.4em;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center}.itemLogoAsTitle{margin:0!important;border:0!important;max-height:100%;max-width:80%;object-fit:contain;object-position:left center;object-position:var(--logo-object-position)}@supports (object-fit:contain){.itemLogoAsTitle{max-width:18em;max-height:initial;height:100%;width:100%}}.itemName-primary-logo-tv{height:2em}.itemBackdropContainer{height:40vh;position:relative}.itemBackdropContainer-small{height:20vh}.itemBackdrop{background-size:cover;background-position:center center;background-repeat:no-repeat;-webkit-mask-image:linear-gradient(to top,transparent 0%,black 30%);mask-image:linear-gradient(to top,transparent 0%,black 30%);position:absolute;top:0;left:0;right:0;bottom:0;inset-inline-start:0;inset-inline-end:0}.itemBackdrop-contain{background-size:contain}.overview-text{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;font-weight:400}.btnOverviewText.emby-button-focusscale:focus{-webkit-transform:scale(1.04);transform:scale(1.04)}.detailButton{margin-top:0!important;margin-bottom:0!important;-webkit-margin-start:0!important;margin-inline-start:0!important;-webkit-margin-end:.5em!important;margin-inline-end:.5em!important;-webkit-flex-shrink:0;flex-shrink:0;box-shadow:none!important}.detailButton.raised{-webkit-justify-content:center;justify-content:center}@supports selector(:hover) and (display:revert) and (column-gap:1em){.detailButtons-margin{margin:.25em 0}.detailButtons{-webkit-column-gap:.5em;column-gap:.5em;row-gap:.5em}.detailButton{-webkit-margin-end:0!important;margin-inline-end:0!important}@media not all and (min-width:60em){.detail-mediaInfoPrimary-autocondense{margin:-.1em 0}}.detail-mediaInfoPrimary-tv{margin:-.1em 0}}@media not all and (min-width:60em){.detail-mediaInfoPrimary-autocondense{font-size:92%}}.detailResumeInfo{position:relative;-webkit-flex-basis:100%;flex-basis:100%;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-order:2;order:2;margin-top:.75em}.resumeName{font-weight:600;text-align:start}.resumeTimeRemaining{-webkit-margin-start:1em;margin-inline-start:1em;white-space:nowrap;font-size:94%;-webkit-user-select:none;user-select:none}.itemPrimaryNameContainer-logo{-webkit-flex-wrap:nowrap;flex-wrap:nowrap}@media all and (min-width:50em){.detailButton-lowres{display:none!important}.resumeName{white-space:nowrap}.resumeInfoDetail{-webkit-padding-start:.15em;padding-inline-start:.15em}.itemBackdropContainer{display:none;background-image:none!important}.itemBackdrop{background-image:none!important}.detailImageContainer-main{-webkit-margin-end:3ch;margin-inline-end:3ch;margin-bottom:1em}.trackList-marginleftcards{-webkit-margin-start:min(.74em,max(.38em,1.06vw));margin-inline-start:min(.74em,max(.38em,1.06vw))}}.tracklist-sidemargin{padding-left:.5em;padding-right:.5em}.detailTextContainer{margin:0 -1em;padding:0 1.6em;-webkit-padding-end:0;padding-inline-end:0}.detailTextContainer-tracklist{-webkit-padding-start:1em;padding-inline-start:1em}.tagline{margin:0}.tagline-margin{margin:.25rem 0}.resumeInfoProgressBar{-webkit-flex-grow:1;flex-grow:1;max-width:16em}.overview-twoline{-webkit-line-clamp:2}.detail-lineItem{-webkit-order:2;order:2}.detailNameContainer,.detail-mediaInfoPrimary{-webkit-order:-1;order:-1}.detailText-moveup-force{-webkit-order:0;order:0}@media not all and (min-width:50em){.btnDetailEdit{display:none!important}.detailButton{-webkit-order:3;order:3}.detailButton-autotext{-webkit-flex-direction:column;flex-direction:column;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;padding:0 .7em!important;background:0 0!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;font-weight:400!important;margin-top:.65em!important;margin-bottom:.25em!important;border-radius:0!important;box-shadow:none!important}.detailButton-autotext-icon{padding:.05em!important;margin-top:0;margin-bottom:.1em;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:0;margin-inline-end:0;border:0!important;font-size:2.1em!important;border-radius:100%}.detailButton-autotext-text{font-size:84%}.btnResume,.btnMainPlay{-webkit-order:0;order:0}.btnPlayTrailer{-webkit-order:1;order:1}.reduce-font-size-mobile{font-size:92%}.reduce-font-size-mobile.detail-mediaInfoPrimary{font-size:90%}.resumeInfoDetail{-webkit-justify-content:center;justify-content:center}.resumeSpacer1,.resumeSpacer2{display:none}.detailButton-highres{display:none!important}.itemMainScrollSlider-nopaddingtop{padding-top:0!important}.detailImageContainer-hidemobile,.item-fixed-side,.backdropContainer-preventbackdrop{display:none!important}.detailImageContainer-hidemobile .detailImage{background-image:none!important}.detailMainContainer{position:relative}.detailMainContainer-withitembackdrop{margin-top:-3em}.detailMainContainer-vertical{-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}.overview-text-tracklist{-webkit-line-clamp:1}.detailButtons{-webkit-justify-content:center;justify-content:center}.detailButton.raised{-webkit-flex-basis:100%;flex-basis:100%}.detailButton-stacked{-webkit-flex-basis:calc(50% - .6em)!important;flex-basis:calc(50% - .6em)!important;-webkit-flex-grow:1;flex-grow:1}.detailButton.raised:not(.detailButton-stacked){margin-top:0!important;margin-bottom:0!important}.detailResumeInfo{text-align:center;margin:.25em 0 0}.detailTextContainer{padding:0 calc(1em + min(.74em,max(.38em,1.06vw)));width:100%}.mediaInfo-centered,.itemPrimaryNameContainer-centered{-webkit-justify-content:center;justify-content:center}.detailNameContainer-centered{text-align:center}.itemPrimaryNameContainer-centered h1{font-size:1.5em}.detailImageContainer-main{width:60vw!important;max-width:initial!important}}@media all and (orientation:landscape){@supports (height:calc(3.125em + 2 * max(3em,4em))){.detailMainContainerParent-fade{position:relative}.detailMainContainerParent-fade::before{content:" ";position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;background:rgba(0,0,0,.2);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,black 50%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,black 50%,transparent 100%)}.itemMainScrollSlider-fade{position:relative}.itemMainScrollSlider-fade::before{content:" ";position:absolute;top:0;left:0;right:0;z-index:-1;bottom:0;background:rgba(0,0,0,.86);-webkit-mask-image:linear-gradient(to bottom,transparent -10vh,black 80vh);mask-image:linear-gradient(to bottom,transparent -10vh,black 80vh)}}}@media not all and (min-width:80em){.detailButton-highres3{display:none!important}}@media all and (min-width:50em){.details-additionalContent-fadein{-webkit-animation:backdrop-fadein .4s ease-out normal both;animation:backdrop-fadein .4s ease-out normal both}.detailButton-autotext-text{display:none}.detailButton-autotext-icon{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;display:inline-block;box-sizing:initial;padding:0}.detailButton-autotext-icon:not(.playstatebutton-icon-played){background:0 0!important}}@media all and (min-width:70em){.details-largefont .detailButtons{font-size:108%;-webkit-align-items:center;align-items:center}.details-largefont .overview-container{font-size:108%}.details-largefont .detailResumeInfo{font-size:93%}}@media all and (min-width:85em){.details-largefont .overview-container{font-size:120%}}.mediainfo-forcehide{display:none!important}.detailSelectSeasonContainer .selectLabelText{display:none!important}.detailSeasonSelect-actionsheet{width:70ch}.detailSeasonSelect-actionsheet-listItem-content{padding:0 .75em}.seasonTabs-emby-tabs{margin-top:-.5em;padding-top:.5em;margin-bottom:-.5em;padding-bottom:.5em}.detailSeasonTab{padding:.35em 1em;border-radius:.6em}.detailSeasonTab.emby-tab-button-active:not(:focus){background:0 0}@media (orientation:portrait){.detailEndsAt{display:none!important}}.detailHeader-noIcons .headerSearchButton,.detailHeader-noIcons .headerUserButton{display:none!important} \ No newline at end of file diff --git a/item/item.html b/item/item.html new file mode 100644 index 0000000..fda0008 --- /dev/null +++ b/item/item.html @@ -0,0 +1,387 @@ +
+
+ +
+
+ +
+
+ +
+ +
+
+
+
+
+ +
+
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+ +

+
+ +
+
+ +
+
+ +
+ +
+ + + ${HeaderReadMore} +
+ +
+ +
+ +
+ +
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+

${HeaderAdditionalParts}

+ +
+ +
+
+
+ +
+
+ +
+ +
+
+
+
+
+

+
+ +
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+

${Items}

+
+
+ +
+

+ +
+ +
+
+
+
+

${Specials}

+ +
+ +
+
+
+
+

${HeaderCastCrew}

+ +
+ +
+
+
+
+

${Extras}

+ +
+ +
+
+
+
+
+

${Chapters}

+
+
+ +
+

+
+ +
+
+
+ +
+

${HeaderAlbumsAsComposer}

+
+ +
+
+
+
+

${HeaderUpcomingOnTV}

+ +
+ +
+
+
+ +
+

${HeaderIncludedIn}

+ +
+ +
+
+
+ +
+ +
+ +
+

${HeaderMoreLikeThis}

+ +
+ +
+
+
+ +
+

${HeaderMoreLikeThisOnLiveTV}

+ +
+ +
+
+
+ +
+

+ ${Schedule} +

+
+
+ +
+ +

${About}

+ + +
+ +
+

${Genres}

+
+
+ +
+

${Tags}

+
+
+ +
+

${Studios}

+
+
+ + + +
+

${HeaderMediaInfo}

+ +
+ +
+ +
+
+ +
+ +
+
+ +
+
\ No newline at end of file diff --git a/item/item.js b/item/item.js new file mode 100644 index 0000000..887f5e8 --- /dev/null +++ b/item/item.js @@ -0,0 +1 @@ +define(["exports","./../modules/loading/loading.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/emby-apiclient/apiclient.js","./../modules/emby-apiclient/events.js","./../modules/common/globalize.js","./../modules/common/playback/playbackmanager.js","./../modules/common/playback/playbackactions.js","./../modules/appheader/appheader.js","./../modules/backdrop/backdrop.js","./../modules/common/itemhelper.js","./../modules/common/appsettings.js","./../modules/common/dataformatter.js","./../modules/common/itemmanager/itemmanager.js","./../modules/layoutmanager.js","./../modules/common/usersettings/usersettings.js","./../modules/viewmanager/baseview.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-tabs/emby-tabs.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/sync/emby-downloadbutton.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../modules/listview/listview.js","./../modules/cardbuilder/cardbuilder.js","./../modules/itemcontextmenu.js","./../modules/indicators/indicators.js","./../modules/navdrawer/navdrawer.js","./../modules/common/textencoding.js","./../modules/dom.js","./../modules/approuter.js","./../modules/common/datetime.js","./../modules/mediainfo/mediainfo.js","./../modules/common/servicelocator.js","./../modules/focusmanager.js","./../modules/common/imagehelper.js","./../modules/skinmanager.js","./../modules/common/input/api.js","./linkeditems.js"],function(_exports,_loading,_connectionmanager,_apiclient,_events,_globalize,_playbackmanager,_playbackactions,_appheader,_backdrop,_itemhelper,_appsettings,_dataformatter,_itemmanager,_layoutmanager,_usersettings,_baseview,_embyScroller,_embyTabs,_embyItemscontainer,_embyButton,_embyDownloadbutton,_embySelect,_embyDialogclosebutton,_listview,_cardbuilder,_itemcontextmenu,_indicators,_navdrawer,_textencoding,_dom,_approuter,_datetime,_mediainfo,_servicelocator,_focusmanager,_imagehelper,_skinmanager,_api,_linkeditems){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles","css!item/item.css"]);var backdropContainer=document.querySelector(".backdropContainer"),backgroundContainer=document.querySelector(".backgroundContainer"),skinHeader=document.querySelector(".skinHeader"),decodingAttribute=_dom.default.supportsAsyncDecodedImages()?' decoding="async"':"";function showActionSheet(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}function renderTrackSelectionsWithoutUser(page,instance,item,forceReload){_connectionmanager.default.getApiClient(item.ServerId).getCurrentUser().then(function(user){renderTrackSelections(page,instance,item,user,forceReload)})}function isMediaStreamDisplayed(stream){return"Data"!==stream.Type}function isMediaSourceDisplayed(version,renderAdminFields){for(var i=0,length=version.MediaStreams.length;i'+_globalize.default.translate("HeaderMediaInfo")+"":groupedVersions.innerHTML=_globalize.default.translate("HeaderMediaInfo");for(var _i=0,_length=mediaSources.length;_i<_length;_i++){var _mediaSource=mediaSources[_i];isMediaSourceDisplayed(_mediaSource,renderAdminFields)&&!function(parentElem,renderAdminFields,item,mediaSource,scrollX){var elem=document.createElement("div"),html=(elem.classList.add("mediaSource"),""),renderAdminFields=(html+=scrollX?'
':'
',mediaSource.Path&&renderAdminFields&&(html+="
"+mediaSource.Path+"
"),html+='
',mediaSource.Container&&(html+=mediaSource.Container.toUpperCase()),mediaSource.Size&&(html+=''+_dataformatter.default.sizeToString(mediaSource.Size)+""),new Date(Date.parse(item.DateCreated))),renderAdminFields=(html+=''+_globalize.default.translate("AddedOnValue",_datetime.default.toLocaleDateString(renderAdminFields)+" "+_datetime.default.getDisplayTime(renderAdminFields))+"",elem.innerHTML=html=(html=html+"
"+"
")&&'
'+html+"
",elem.insertAdjacentHTML("beforeend",scrollX?'
':'
'),parentElem.appendChild(elem),mediaSource.MediaStreams.filter(isMediaStreamDisplayed).map(function(s){return _itemhelper.default.normalizeMediaStreamForDisplay(item,mediaSource,s)}));scrollX?_cardbuilder.default.buildCards(renderAdminFields,{shape:"backdrop",overlayText:!0,fields:["MediaStreamInfo"],itemsContainer:elem.querySelector(".itemsContainer"),action:"none",multiSelect:!1,ratingButton:!1,playedButton:!1,defaultIcon:!1,typeIndicator:!1,playedIndicator:!1,syncIndicator:!1,downloadButton:!1,timerIndicator:!1,randomDefaultBackground:!1,imageFallback:!1,cardPadderClass:_layoutmanager.default.tv?"mediaStreamPadder-tv":"mediaStreamPadder",innerCardFooterClass:"mediaStreamInnerCardFooter",cardTextCssClass:"mediaStreamInnerCardFooter-cardText",enableUserData:!1,draggable:!1,enableFocusScaling:!1,horizontal:!0}):_listview.default.buildItems(renderAdminFields,{image:!1,fields:["MediaStreamInfo"],itemsContainer:elem.querySelector(".itemsContainer"),action:"none",multiSelect:!1,ratingButton:!1,playedButton:!1,defaultIcon:!1,typeIndicator:!1,playedIndicator:!1,syncIndicator:!1,downloadButton:!1,timerIndicator:!1,randomDefaultBackground:!1,imageFallback:!1,innerCardFooterClass:"mediaStreamInnerCardFooter",enableUserDataButtons:!1,draggable:!1,draggableXActions:!1})}(parentElem,renderAdminFields,item,_mediaSource,anyDisplayed=!0)}anyDisplayed&&_usersettings.default.showFullMediaInfoOnDetailScreen()?page.querySelector(".audioVideoMediaInfo").classList.remove("hide"):page.querySelector(".audioVideoMediaInfo").classList.add("hide")}function isRenderingTrackSelections(item){return!(!_itemhelper.default.supportsMediaSourceSelection(item)||-1===_playbackmanager.default.getSupportedCommands().indexOf("PlayMediaSource")||!_playbackmanager.default.canPlay(item))}function setTrackSelectionFieldDisabled(elem,disabled){disabled?elem.setAttribute("disabled","disabled"):elem.removeAttribute("disabled");elem=elem.closest(".selectContainer");(elem=elem&&elem.querySelector(".emby-select-wrapper-inline"))&&(disabled?elem.classList.add("emby-select-wrapper-inline-disabled"):elem.classList.remove("emby-select-wrapper-inline-disabled"))}function refreshChapters(view){var elem=view.querySelector(".chaptersItemsContainer");elem.waitForCustomElementUpgrade().then(function(){elem.refreshItems()})}function renderTrackSelections(view,instance,item,user,forceReload,mediaSources){var select=view.querySelector(".selectSource"),apiClient=_connectionmanager.default.getApiClient(item);isRenderingTrackSelections(item)?(mediaSources?Promise.resolve(mediaSources):_playbackmanager.default.getPlaybackMediaSources(item)).then(function(mediaSources){var renderAdminFields=user.Policy.IsAdministrator,renderAdminFields=(renderMediaSources(view,renderAdminFields,item,mediaSources),instance._currentPlaybackMediaSources=mediaSources,select.value),selectedId=renderAdminFields||mediaSources[0].Id,renderAdminFields=(select.innerHTML=mediaSources.map(function(v){var selected=v.Id===selectedId?" selected":"";return'"}).join(""),1"+_textencoding.default.htmlEncode(v.DisplayTitle||(null==(selected=v.Codec)?void 0:selected.toUpperCase())||"")+""}).join(""),setTrackSelectionFieldDisabled(select,!0),mediaSources.length?page.querySelector(".selectVideoContainer").classList.remove("hide"):page.querySelector(".selectVideoContainer").classList.add("hide")}function renderAudioSelections(page,mediaSources){var mediaSourceId=page.querySelector(".selectSource").value,mediaSources=mediaSources.filter(function(m){return m.Id===mediaSourceId})[0],tracks=mediaSources.MediaStreams.filter(function(m){return"Audio"===m.Type&&(-1!==m.Index||null!=m.DisplayTitle||null!=m.Codec)}),select=page.querySelector(".selectAudio"),selectedId=mediaSources.DefaultAudioStreamIndex;select.innerHTML=tracks.map(function(v){var selected=v.Index===selectedId?" selected":"",embeddedTitle=v.Title&&!(v.DisplayTitle||"").includes(v.Title)?v.Title:null;return""+_textencoding.default.htmlEncode(v.DisplayTitle||(null==(embeddedTitle=v.Codec)?void 0:embeddedTitle.toUpperCase())||"")+""}).join(""),1"+tracks.map(function(v){selected=v.Index===selectedId?" selected":"";var embeddedTitle=v.Title&&!(v.DisplayTitle||"").includes(v.Title)?v.Title:null;return""+_textencoding.default.htmlEncode(v.DisplayTitle)+""}).join(""),page.querySelector(".selectSubtitlesContainer").classList.remove("hide")):(select.innerHTML="",page.querySelector(".selectSubtitlesContainer").classList.add("hide"))}function setButtonText(page,query,html){for(var elems=page.querySelectorAll(query),i=0,length=elems.length;i'+_globalize.default.translate("TimeRemainingValue",_datetime.default.getHumanReadableRuntime(ticksLeft))+"
",resumeInfoElement.innerHTML=_indicators.default.getProgressBarHtml(item,{containerClass:"resumeInfoProgressBar",animated:!0})+ticksLeft,resumeInfoElement.classList.remove("hide")):resumeInfoElement.classList.add("hide")}function reloadPlayButtons(instance,page,item,isUserDataChangeEvent){var now,activeElement,btnPlay,btnResume,btnPlayTrailer,btnShuffle,canResume,playButtons=page.querySelectorAll(".btnPlay");"Program"===item.Type?((now=new Date)>=new Date(Date.parse(item.StartDate))&&now'+resumeName+""),resumeNameElement.innerHTML=resumeName,resumeNameElement.classList.remove("hide"),setResumeProgress(resumeInfo,result),result.UserData&&0'+_textencoding.default.htmlEncode(artist.Name)+"")}return html=html.join(" / ")}function inferContext(item){switch(item.Type){case"Series":case"Season":case"Episode":return"tvshows";case"Movie":return"movies";case"Game":case"GameSystem":return"games";case"MusicArtist":case"MusicAlbum":case"Audio":case"AudioBook":case"MusicVideo":case"MusicGenre":return"music";case"Program":case"TvChannel":case"Timer":case"SeriesTimer":return"livetv";default:return null}}function isTrailerButtonVisible(item){if(_playbackmanager.default.getSupportedCommands().includes("PlayTrailers")){if(item.LocalTrailerCount)return 1;if(item.RemoteTrailers&&item.RemoteTrailers.length)return 1}}function setTrailerButtonVisibility(page,item){isTrailerButtonVisible(item)?hideAll(page,"btnPlayTrailer",!0):hideAll(page,"btnPlayTrailer")}function enableTrackList(item){return!!_layoutmanager.default.tv&&("Playlist"===item.Type||"MusicAlbum"===item.Type&&!item.SupportsResume)}function enableItemBackdropAsTopImage(item){return"Playlist"!==item.Type&&"MusicAlbum"!==item.Type&&"TvChannel"!==item.Type&&"Audio"!==item.Type}function hideAll(page,className,show){for(var elems="string"==typeof className?page.querySelectorAll("."+className):className,i=0,length=elems.length;i"+_textencoding.default.htmlEncode(p.Name)+"":''+_textencoding.default.htmlEncode(p.Name)+""}).join(", "),elem=view.querySelector(".directors");elem.innerHTML=1'+text+"")}itemGenres.innerHTML=genreElements.join(""),genreElements.length?page.querySelector(".genresSection").classList.remove("hide"):page.querySelector(".genresSection").classList.add("hide")}(view,item,inferContext(item)),!function(page,item){for(var itemTags=page.querySelector(".itemTags"),tagElements=[],tags=item.TagItems||[],i=0,length=tags.length;i'+text+"")}itemTags.innerHTML=tagElements.join(""),tagElements.length?page.querySelector(".tagsSection").classList.remove("hide"):page.querySelector(".tagsSection").classList.add("hide")}(view,item),!function(page,item){for(var itemStudios=page.querySelector(".itemStudios"),studioElements=[],studios=item.Studios||[],i=0,length=studios.length;i'+text+"")}itemStudios.innerHTML=studioElements.join(""),studioElements.length?page.querySelector(".studiosSection").classList.remove("hide"):page.querySelector(".studiosSection").classList.add("hide")}(view,item),!function(page,item){var page=page.querySelector(".linksSection"),links=[];if(item.ExternalUrls&&_servicelocator.appHost.supports("externallinks")&&_servicelocator.appHost.supports("targetblank")&&!_layoutmanager.default.tv)for(var i=0,length=item.ExternalUrls.length;i'+text+"")}page.querySelector(".itemLinks").innerHTML=links.join(""),links.length?page.classList.remove("hide"):page.classList.add("hide")}(view,item),view.querySelector(".aboutSection"));switch(item.Type){case"TvChannel":case"Playlist":case"Tag":case"Studio":case"Genre":case"GameGenre":case"MusicGenre":case"Season":case"Timer":case"SeriesTimer":case"Program":aboutSection.classList.add("hide");break;default:aboutSection.querySelector("a,button:not(.btnSplitVersions)")||isRenderingTrackSelections(item)?aboutSection.classList.remove("hide"):aboutSection.classList.add("hide")}return Promise.all(promises)}function onRecordingChanged(){reloadItem(this,!0)}function onTrackSelectionsSubmit(e){return e.preventDefault(),!1}function bindAll(view,selector,eventName,fn){for(var elems=view.querySelectorAll(selector),i=0,length=elems.length;i
'+items.map(function(item){item='";return index++,item}).join("")+"
",seasonTabsParent.innerHTML=items,seasonTabsParent.classList.remove("hide")):(seasonTabsParent.classList.add("hide"),seasonTabsParent.innerHTML="")}(hasMultipleSeasons,result.Items),instance.seasonTabs=section.querySelector(".seasonTabs-emby-tabs"),instance.seasonTabs.addEventListener("tabchange",function(e){var id,seasonTabs=this.seasonTabs;seasonTabs&&(e=e.detail.selectedTabIndex,seasonTabs=seasonTabs.querySelector('.detailSeasonTab[data-index="'+e+'"]'))&&(id=seasonTabs.getAttribute("data-id"),e=(this.seasonItems||[]).filter(function(s){return s.Id===id})[0])&&scrollEpisodesToSeason(this,e.Id)}.bind(instance))):(sectionTitleElement.closest(".sectionTitleContainer").classList.remove("hide"),hasMultipleSeasons.classList.add("hide"),hasMultipleSeasons.innerHTML="",instance.seasonTabs=null)):(sectionTitleElement.closest(".sectionTitleContainer").classList.remove("hide"),hasMultipleSeasons.innerHTML="",hasMultipleSeasons.classList.add("hide"),instance.seasonTabs=null),(instance.detailSelectSeason=detailSelectSeason)&&(detailSelectSeason.getItems=getSeasons.bind(instance),detailSelectSeason.addEventListener("change",function(e){e=e.target.value;e&&scrollEpisodesToSeason(this,e)}.bind(instance))),itemsContainer.fetchData=function(query){{var fields;if(this.renderAllEpisodes)return fields=this.getRequestedItemFields()+",PrimaryImageAspectRatio",fields+=",Overview,PremiereDate,ProductionYear,RunTimeTicks,SpecialEpisodeNumbers",getSeriesEpisodes(this,query=Object.assign({Fields:fields},query))}return getSeasons.call(this,query)}.bind(instance),itemsContainer.getListOptions=function(items){var includeParentInfoInTitle,fields=["Name"];this.renderAllEpisodes&&!this.hasMultipleSeasons&&(includeParentInfoInTitle=!1);var centerText=!0;this.renderAllEpisodes&&(fields.push("Overview"),fields.push("MediaInfo"),centerText=!1);return{renderer:_cardbuilder.default,options:{shape:"auto",scalable:!0,centerText:centerText,fields:fields,overlayText:!1,focusTransformTitleAdjust:!0,includeParentInfoInTitle:includeParentInfoInTitle},virtualScrollLayout:"horizontal-grid"}}.bind(instance),seriesDisplay&&(itemsContainer.afterRefresh=function(totalResult){if(totalResult.Items.length&&this.currentItem){var view=this.view;if(view){var instance=this,itemsContainer=view.querySelector(".childrenItemsContainer");if(itemsContainer)return getNextUpItems.call(this,{Limit:1,EnableTotalRecordCount:!1,EnableUserData:!1,EnableImages:!1,Fields:null}).then(function(nextUpResult){var nextUpResult=nextUpResult.Items[0],detailSelectSeason=view.querySelector(".detailSelectSeason");if(nextUpResult){onSeriesEpisodeFocusedOrScrolled(instance,nextUpResult);var select,index=itemsContainer.indexOfItemId(nextUpResult.Id);if(-1===index)return nextUpResult={Limit:0,StartItemId:nextUpResult.Id},getSeriesEpisodes(instance,nextUpResult).then(function(result){index=Math.max(totalResult.TotalRecordCount-result.TotalRecordCount,0),itemsContainer.scrollToIndex(Math.min(index,totalResult.TotalRecordCount-1),{behavior:"instant",offset:"-padding-inline-start"},!1)});itemsContainer.scrollToIndex(index,{behavior:"instant",offset:"-padding-inline-start"},!1)}else itemsContainer.scrollToIndex(0,{behavior:"instant",offset:"-padding-inline-start"},!1),detailSelectSeason&&(select=detailSelectSeason).getItems({StartIndex:0,Limit:1}).then(function(result){result.Items.length&&select.setValues([result.Items[0].Id],!1,[result.Items[0]])})})}}}.bind(instance),(detailSelectSeasonContainer=instance.view.querySelector(".childrenItemsScroller")).addScrollEventListener(function(e){var scrollSize,padding;_layoutmanager.default.tv||(e=e.currentTarget,padding=e.getPadding(),padding=e.getScrollLeft()+padding.inlineStart+padding.inlineEnd,scrollSize=e.getScrollWidth(),padding=Math.min(1,padding/scrollSize),scrollSize=e.querySelector(".childrenItemsContainer"),e=scrollSize.getItems(),(padding=Math.floor(padding*e.length))',item=(item=(item+='

')+_globalize.default.translate("Songs"))+"

",headerText.innerHTML=item,(apiClient=view.querySelector(".artistSongsItemsContainer")).classList.add("generalItemsContainer"),apiClient.fetchData=function(query){var item=this.currentItem,item=_connectionmanager.default.getApiClient(item);return item.getItems(item.getCurrentUserId(),Object.assign({Recursive:!0,IncludeItemTypes:"Audio",CollectionTypes:"music",ArtistIds:this.currentItem.Id,SortBy:"PlayCount,SortName",SortOrder:"Descending,Ascending",ImageTypeLimit:1,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio"},query))}.bind(instance),apiClient.getListOptions=getArtistSongsListOptions,apiClient.parentContainer=apiClient.closest(".verticalSection"),_layoutmanager.default.tv)||((headerText=apiClient.parentContainer.querySelector(".sectionTitleContainer")).classList.remove("sectionTitleContainer-cards"),headerText.classList.add("sectionTitleContainer-wrappedlistview"))}(this,view,item,responses),function(instance,item,apiClient){var section=instance.view.querySelector(".artistAlbumsSection"),itemsContainer=section.querySelector(".itemsContainer"),apiClient=(itemsContainer.parentContainer=section,_approuter.default.getRouteUrl("list",{serverId:apiClient.serverId(),itemTypes:"MusicAlbum",albumArtistId:item.Id}));section.querySelector(".sectionTitleTextButton").href=apiClient,itemsContainer.setAttribute("data-virtualscrolllayout","horizontal-grid"),itemsContainer.fetchData=function(query){var item=this.currentItem;if("MusicArtist"!==item.Type)return Promise.resolve({Items:[],TotalRecordCount:0});var apiClient=_connectionmanager.default.getApiClient(item);return(query=Object.assign({IncludeItemTypes:"MusicAlbum",Recursive:!0,SortBy:"ProductionYear,PremiereDate,SortName",SortOrder:"Descending,Descending,Ascending",ImageTypeLimit:1,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio,ProductionYear"},query)).AlbumArtistIds=item.Id,apiClient.getItems(apiClient.getCurrentUserId(),query)}.bind(instance),itemsContainer.getListOptions=getMusicArtistChildrenListOptions}(this,item,responses),function(instance,item,apiClient){var trackList=instance.view.querySelector(".trackList"),section=trackList.closest(".trackListSection");trackList.parentContainer=section,"Season"===item.Type?(trackList.fetchData=function(serverId,seriesId,seasonId){return function(query){var apiClient=_connectionmanager.default.getApiClient(serverId);return apiClient.getEpisodes(seriesId,Object.assign({SeasonId:seasonId,ImageTypeLimit:1,UserId:apiClient.getCurrentUserId(),Fields:"Overview,PrimaryImageAspectRatio,PremiereDate,ProductionYear,SyncStatus"},query))}}(apiClient.serverId(),item.SeriesId,item.Id),trackList.getListOptions=function(item){return function(){return{renderer:_listview.default,options:{showIndexNumber:!1,imageSize:"large",highlight:!1,action:"link",imagePlayButton:!_layoutmanager.default.tv,includeParentInfoInTitle:!1,enableSpecialEpisodePrefix:0!==item.IndexNumber,fields:["Name","Overview"],autoMoveFavoriteButton:!1},virtualScrollLayout:"vertical-list"}}}(item),trackList.setAttribute("data-virtualscrolllayout","vertical-grid"),trackList.classList.add("padded-bottom-page")):"MusicAlbum"===item.Type?(trackList.fetchData=function(query){var item=this.currentItem,apiClient=_connectionmanager.default.getApiClient(item),includeOverview=!0===item.SupportsResume,fields=this.getRequestedItemFields()+",PrimaryImageAspectRatio,SyncStatus";includeOverview&&(fields+=",Overview");return apiClient.getItems(apiClient.getCurrentUserId(),Object.assign({ParentId:item.Id,Fields:fields,ImageTypeLimit:1,SortBy:null,EnableTotalRecordCount:!1}))}.bind(instance),trackList.getListOptions=(!0===item.SupportsResume?function(item){return function(items){var fields=[];return function(items){for(var i=0,length=items.length;iquery.Limit&&(people.length=query.Limit),Promise.resolve({Items:people,TotalRecordCount:totalRecordCount})}}(instance),view.parentContainer=view.closest(".verticalSection"),view.getListOptions=getPeopleListOptions,view.classList.add("generalItemsContainer")}(this,view),function(instance,view,item){_itemmanager.default.supportsSimilarItems(item)&&((view=view.querySelector(".similarItemsContainer")).fetchData=function(){var item=this.currentItem,apiClient=_connectionmanager.default.getApiClient(item),options={Limit:12,UserId:apiClient.getCurrentUserId(),ImageTypeLimit:1,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio,ProductionYear,Status,EndDate",EnableTotalRecordCount:!1};("Program"===item.Type||"Timer"===item.Type&&item.ProgramId&&!item.IsSports)&&(options.GroupProgramsBySeries=!0);"MusicAlbum"===item.Type&&item.AlbumArtists&&item.AlbumArtists.length&&(options.ExcludeArtistIds=item.AlbumArtists[0].Id);item="Timer"===item.Type?item.ProgramId:item.Id;return apiClient.getSimilarItems(item,options)}.bind(instance),view.parentContainer=view.closest(".verticalSection"),view.getListOptions=function(instance,item){return function(items){var asDialog="true"===instance.params.asDialog,fields=["Name"];return"Movie"!==item.Type&&"Trailer"!==item.Type&&"Program"!==item.Type&&"Game"!==item.Type&&"Series"!==item.Type||fields.push("ProductionYear"),"MusicAlbum"!==item.Type&&"Game"!==item.Type||fields.push("ParentName"),"Program"===item.Type&&fields.unshift("ParentName"),{renderer:_cardbuilder.default,options:{shape:"auto",lines:"Game"===item.Type?3:"Program"===item.Type?2:null,centerText:!0,fields:fields,overlayText:!1,multiSelect:"Program"!==item.Type&&"Timer"!==item.Type,contextMenu:"Program"!==item.Type&&"Timer"!==item.Type,draggable:"Program"!==item.Type&&"Timer"!==item.Type,focusTransformTitleAdjust:!0,action:asDialog?"linkdialog":null},virtualScrollLayout:"horizontal-grid"}}}(instance,item),view.classList.add("generalItemsContainer"))}(this,view,item),function(instance,view,item,apiClient){_itemmanager.default.supportsSimilarItemsOnLiveTV(item,apiClient)&&((item=view.querySelector(".similarOnLiveTVItemsContainer")).fetchData=function(){var item=this.currentItem,apiClient=_connectionmanager.default.getApiClient(item);return apiClient.getSimilarItems(item.Id,{userId:apiClient.getCurrentUserId(),limit:12,fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio,ProductionYear",IncludeItemTypes:"Program",EnableTotalRecordCount:!1,GroupProgramsBySeries:!0})}.bind(instance),item.parentContainer=item.closest(".verticalSection"),item.getListOptions=getMoreLikeThisOnLiveTVListOptions,item.classList.add("generalItemsContainer"))}(this,view,item,responses),function(instance,view,item){("Series"===item.Type||"Program"===item.Type||"Timer"===item.Type&&item.ProgramId)&&((view=view.querySelector(".seriesScheduleItemsContainer")).fetchData=function(query){var item=this.currentItem,apiClient=_connectionmanager.default.getApiClient(item);query=Object.assign({UserId:apiClient.getCurrentUserId(),HasAired:!1,SortBy:"StartDate",ImageTypeLimit:1,EnableImageTypes:"Primary,Thumb,Backdrop",EnableUserData:!1,Fields:"PrimaryImageAspectRatio,ChannelInfo"},query),"Program"===item.Type||"Timer"===item.Type&&item.ProgramId?item.AsSeries?query.SeriesFromProgramId=item.Id:(query.ShowingsFromProgramId=item.ProgramId||item.Id,query.ExcludeItemIds=item.ProgramId||item.Id):query.LibrarySeriesId=item.Id;return apiClient.getLiveTvPrograms(query)}.bind(instance),view.parentContainer=view.closest(".verticalSection"),view.getListOptions=function(items){var asDialog="true"===this.params.asDialog;return{renderer:_cardbuilder.default,options:{preferThumb:"auto",shape:"autooverflow",fields:["Name","ChannelName","AirTime"],centerText:!0,overlayText:!1,showAirDateTime:!0,multiSelect:!1,draggable:!1,focusTransformTitleAdjust:!0,action:asDialog?"linkdialog":null,playQueueIndicator:!1},virtualScrollLayout:"horizontal-grid"}}.bind(instance),view.classList.add("generalItemsContainer"),"Program"!==item.Type&&"Timer"!==item.Type||(item.AsSeries?view.parentContainer.querySelector(".sectionTitle").innerHTML=_globalize.default.translate("Showings"):view.parentContainer.querySelector(".sectionTitle").innerHTML=_globalize.default.translate("HeaderOtherShowings")))}(this,view,item),function(instance,view,item,apiClient){"Series"===item.Type&&apiClient.isMinServerVersion("4.9.0.39")&&((item=view.querySelector(".specialsItemsContainer")).fetchData=function(query){return this.renderAllEpisodes?getSeriesEpisodes(this,Object.assign({IsSpecialEpisode:!0},query)):Promise.resolve({Items:[],TotalRecordCount:0})}.bind(instance),item.parentContainer=item.closest(".verticalSection"),item.getListOptions=getSpecialsListOptions,item.classList.add("generalItemsContainer"))}(this,view,item,responses),function(instance,view,item){_itemhelper.default.supportsExtras(item)&&((item=view.querySelector(".extrasItemsContainer")).fetchData=function(query){var item=this.currentItem,apiClient=_connectionmanager.default.getApiClient(item);return apiClient.getSpecialFeatures(apiClient.getCurrentUserId(),item.Id,{Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio"}).then(function(items){var totalRecordCount=items.length;return query&&(items=items.slice(query.StartIndex||0),query.Limit)&&items.length>query.Limit&&(items.length=query.Limit),{Items:items,TotalRecordCount:totalRecordCount}})}.bind(instance),item.parentContainer=item.closest(".verticalSection"),item.getListOptions=getExtrasListOptions,item.classList.add("generalItemsContainer"))}(this,view,item),function(instance,view,item,apiClient){var itemType=item.Type,elem=view.querySelector(".linkedItems");switch(itemType){case"Genre":case"MusicGenre":case"GameGenre":case"Person":case"Studio":case"MusicArtist":case"Tag":case"BoxSet":case"MusicAlbum":elem.classList.remove("hide");break;default:return elem.classList.remove("add")}instance._linkedItemsView||(instance._linkedItemsView=new _linkeditems.default(elem,instance.params,{item:item,apiClient:apiClient,requestedItemFields:instance.getRequestedItemFields(),requestedImageTypes:instance.getRequestedImageTypes()}))}(this,view,item,responses),function(instance,view,item){var section=view.querySelector(".chaptersSection"),html="";"Audio"===item.MediaType?(html+='
',section.classList.remove("verticalSection-cards"),section.classList.add("verticalSection-extrabottompadding"),(sectionTitleContainer=section.querySelector(".sectionTitleContainer")).classList.add("trackList-marginleftcards"),sectionTitleContainer.classList.remove("sectionTitleContainer-cards"),section.querySelector(".sectionTitle").classList.remove("sectionTitle-cards")):html=(html+='
')+'
';section.insertAdjacentHTML("beforeend",html);var sectionTitleContainer=view.querySelector(".chaptersItemsContainer");sectionTitleContainer.fetchData=function(query){var item=this.currentItem,mediaSourceId=this.view.querySelector(".selectSource").value,mediaSource=(this._currentPlaybackMediaSources||[]).filter(function(m){return m.Id===mediaSourceId})[0]||{},chapters=(null==mediaSource?void 0:mediaSource.Chapters)||item.Chapters||[];chapters.length&&"Video"===item.MediaType&&!chapters[0].ImageTag&&(chapters=[]);var videoStream=(mediaSource.MediaStreams||[]).filter(function(i){return"Video"===i.Type})[0]||{},aspect=null;videoStream.Width&&videoStream.Height&&(aspect=videoStream.Width/videoStream.Height);for(var i=0,length=chapters.length;iquery.Limit&&(chapters.length=query.Limit);return Promise.resolve({Items:chapters,TotalRecordCount:videoStream})}.bind(instance),sectionTitleContainer.parentContainer=sectionTitleContainer.closest(".verticalSection"),"Audio"===item.MediaType?sectionTitleContainer.getListOptions=getChaptersListViewOptions:sectionTitleContainer.getListOptions=getChaptersCardOptions}(this,view,item),function(instance,view){view=view.querySelector(".additionalPartsItemsContainer");view.fetchData=function(){var item=this.currentItem,mediaSourceId=this.view.querySelector(".selectSource").value,partCount=((this._currentPlaybackMediaSources||[]).filter(function(m){return m.Id===mediaSourceId})[0]||{}).PartCount;null==partCount&&(partCount=item.PartCount);partCount=partCount||1;if(partCount<2)return Promise.resolve({TotalRecordCount:0,Items:[]});partCount=_connectionmanager.default.getApiClient(item);return partCount.getAdditionalVideoParts(partCount.getCurrentUserId(),item.Id,mediaSourceId)}.bind(instance),view.parentContainer=view.closest(".verticalSection"),view.getListOptions=getAdditionalPartsListOptions}(this,view),function(instance,view,item){"TvChannel"===item.Type&&((item=view.querySelector(".programGuideItemsContainer")).fetchData=function(query){var item=this.currentItem,apiClient=_connectionmanager.default.getApiClient(item);return apiClient.getLiveTvPrograms(Object.assign({ChannelIds:item.Id,UserId:apiClient.getCurrentUserId(),HasAired:!1,SortBy:"StartDate",ImageTypeLimit:1,EnableUserData:!1,Fields:"PrimaryImageAspectRatio,Overview"},query))}.bind(instance),item.parentContainer=item.closest(".programGuideSection"),item.getListOptions=function(items){var asDialog="true"===this.params.asDialog,smallerLayout=asDialog&&_layoutmanager.default.tv,fields=["ParentName","Name","StartToEndDateTime"];smallerLayout||fields.push("Overview");return{renderer:_listview.default,options:{imageSize:smallerLayout?"medium":"large",enableUserDataButtons:!1,mediaInfo:!1,mediaInfoWithTitle:!0,draggable:!1,draggableXActions:!1,multiSelect:!1,defaultShape:"portrait",fields:fields,action:asDialog?"linkdialog":null,playQueueIndicator:!1},virtualScrollLayout:"vertical-grid"}}.bind(instance),item.classList.add("generalItemsContainer"))}(this,view,item),function(instance,view,item){"SeriesTimer"===item.Type&&((item=view.querySelector(".seriesTimerScheduleItemsContainer")).fetchData=function(){var item=this.currentItem,apiClient=_connectionmanager.default.getApiClient(item);return apiClient.getLiveTvTimers({UserId:apiClient.getCurrentUserId(),ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",SortBy:"StartDate",EnableTotalRecordCount:!1,EnableUserData:!1,SeriesTimerId:item.Id,Fields:"ChannelInfo,ChannelImage"})}.bind(instance),item.parentContainer=item.closest(".verticalSection"),item.getListOptions=getSeriesTimerListOptions,item.classList.add("generalItemsContainer"))}(this,view,item),function(instance,view,item){var itemsContainer=function(view,item){var sideImageContainer=view.querySelector(".detailImageContainer-side"),view=view.querySelector(".detailImageContainer-main");return enableTrackList(item)?(view.classList.add("hide"),sideImageContainer.classList.remove("hide"),sideImageContainer):(view.classList.remove("hide"),sideImageContainer.classList.add("hide"),view)}(view,item),detailImage=itemsContainer,view=view.querySelector(".detailImageContainer-main");enableTrackList(item)||"Person"!==item.Type&&"BoxSet"!==item.Type&&"Season"!==item.Type&&"TvChannel"!==item.Type&&"Playlist"!==item.Type&&"MusicGenre"!==item.Type||detailImage.classList.add("detailImageContainer-small");_layoutmanager.default.tv?view.classList.add("detailImageContainer-main-tv"):view.classList.remove("detailImageContainer-main-tv");enableItemBackdropAsTopImage(item)?view.classList.add("detailImageContainer-hidemobile"):view.classList.remove("detailImageContainer-hidemobile");view=_imagehelper.default.getShape([item],{});detailImage.classList.remove("detailImageContainer-backdrop","detailImageContainer-square","detailImageContainer-portrait","detailImageContainer-fourThree","detailImageContainer-banner"),view&&detailImage.classList.add("detailImageContainer-"+view);itemsContainer.fetchData=function(){var item=this.currentItem,items=[];item&&enableDetailPoster(this,item)&&items.push(item);return Promise.resolve({Items:items,TotalRecordCount:items.length})}.bind(instance),(itemsContainer.parentContainer=itemsContainer).getListOptions=function(itemType,cardClass,imageContainerClassName){imageContainerClassName=imageContainerClassName.split(" ").filter(function(c){return c.includes("detailImage")}).join(" ");var cardBoxClass="detailImageContainerCard-cardBox";imageContainerClassName.includes("detailImageContainer-side")&&(imageContainerClassName+=" item-fixed-side",cardBoxClass+=" detailImageContainerCard-side-cardBox");return imageContainerClassName+=" imageWidthTest",function(items){return{renderer:_cardbuilder.default,options:{overlayText:!0,fields:[],action:"none",imageClass:"detailImage",imageWidthTestClass:imageContainerClassName,multiSelect:!1,contextMenu:!1,ratingButton:!1,playedButton:!1,cardClass:cardClass,cardBoxClass:cardBoxClass,defaultIcon:!0,typeIndicator:!1,playedIndicator:!1,downloadButton:!1,syncIndicator:!1,timerIndicator:!1,randomDefaultBackground:!1,staticElement:!0,progress:"Program"===itemType||"Timer"===itemType,enableUserData:!1,draggable:!1,moreButton:!1,programIndicators:!1,keepImageAnimation:!0,playQueueIndicator:!1},virtualScrollLayout:"vertical-grid"}}}(item.Type,"detailImageContainerCard",detailImage.className),itemsContainer.afterRefresh=afterDetailImageRefreshed,itemsContainer.classList.add("generalItemsContainer"),enableDetailPoster(instance,item)||itemsContainer.classList.add("hide")}(this,view,item)),!function(view){var elem=view.querySelector(".additionalPartsItemsContainer");elem.waitForCustomElementUpgrade().then(function(){elem.resume({})})}(this.view),!function(view){var elem=view.querySelector(".chaptersItemsContainer");elem.waitForCustomElementUpgrade().then(function(){elem.resume({})})}(this.view),view.querySelector(".details-additionalContent")),asDialog=("TvChannel"===item.Type||"Playlist"===item.Type||"Season"===item.Type?itemHasOwnBackdrops.classList.remove("padded-bottom-page"):itemHasOwnBackdrops.classList.add("padded-bottom-page"),this.mainSection),setNewBackdrop=(willHaveBackdrop?(itemHasOwnBackdrops.classList.add("details-additionalContent-withbackdrop"),asDialog.classList.add("detailMainContainer-withbackdrop")):(itemHasOwnBackdrops.classList.remove("details-additionalContent-withbackdrop"),asDialog.classList.remove("detailMainContainer-withbackdrop")),enableTrackList(item)?("Season"===item.Type?setTitle(item):setTitle(item,0,_layoutmanager.default.tv),view.querySelector(".detailTextContainer").classList.add("detailTextContainer-tracklist")):(setTitle(item,0,"float"===getLogoPlacement(item)&&"MusicAlbum"!==item.Type),view.querySelector(".detailTextContainer").classList.remove("detailTextContainer-tracklist")),view.querySelector(".topDetailsMain")),backdropOptions=view.querySelector(".item-fixed-side"),mainDetailButtons=view.querySelector(".mainDetailButtons");return _layoutmanager.default.tv||mainDetailButtons.classList.add("detailButtons-margin"),enableTrackList(item)?(setNewBackdrop.classList.remove("topDetailsMain-graphic","topDetailsMain-graphic-tv","topDetailsMain-textshadow"),asDialog.classList.remove("detailMainContainer-withitembackdrop","detailMainContainer-vertical"),backdropOptions.classList.remove("hide"),_layoutmanager.default.tv&&"Season"!==item.Type?setNewBackdrop.classList.add("padded-left","padded-left-page","padded-right"):setNewBackdrop.classList.remove("padded-left","padded-left-page","padded-right")):(enableItemBackdropAsTopImage(item)?(asDialog.classList.add("detailMainContainer-withitembackdrop"),asDialog.classList.remove("detailMainContainer-vertical")):(asDialog.classList.remove("detailMainContainer-withitembackdrop"),asDialog.classList.add("detailMainContainer-vertical")),enableTvDetailImageLayout(this,item)?_layoutmanager.default.tv?(setNewBackdrop.classList.add("topDetailsMain-graphic","topDetailsMain-graphic-tv"),isDarkContentContainer&&setNewBackdrop.classList.add("topDetailsMain-textshadow")):(setNewBackdrop.classList.add("topDetailsMain-graphic"),setNewBackdrop.classList.remove("topDetailsMain-graphic-tv","topDetailsMain-textshadow")):setNewBackdrop.classList.remove("topDetailsMain-graphic","topDetailsMain-graphic-tv","topDetailsMain-textshadow"),backdropOptions.classList.add("hide"),setNewBackdrop.classList.remove("padded-left","padded-left-page","padded-right")),function(instance,item,apiClient,user,containers){var parentRoute,itemForTitle="Timer"===item.Type&&item.ProgramInfo||item,context=inferContext(itemForTitle),parentNameHtml=[],parentNameLast=!1,hasFocusableButton=!1,fontSize=parseFloat(window.getComputedStyle(document.body,null).getPropertyValue("font-size")),fontSize=Math.round(2*fontSize*2.4)+Math.round(.2*fontSize),apiClient="title"!==getLogoPlacement(itemForTitle)?null:apiClient.getLogoImageUrl(itemForTitle,{maxHeight:Math.max(fontSize,260)},_skinmanager.default.getPreferredLogoImageTypes()),fontSize="itemName-primary",itemPrimaryNameContainerClass="itemPrimaryNameContainer",html=(itemForTitle.AlbumArtists&&itemForTitle.AlbumArtists.length?(parentNameHtml.push(getArtistLinksHtml(itemForTitle.AlbumArtists,itemForTitle.ServerId)),parentNameLast=!0):itemForTitle.ArtistItems&&itemForTitle.ArtistItems.length&&"MusicVideo"===itemForTitle.Type?(parentNameHtml.push(getArtistLinksHtml(itemForTitle.ArtistItems,itemForTitle.ServerId)),parentNameLast=!0):itemForTitle.GameSystem&&itemForTitle.GameSystemId?(parentRoute=_approuter.default.getRouteUrl({Id:itemForTitle.GameSystemId,Name:itemForTitle.GameSystem,Type:"GameSystem",IsFolder:parentNameLast=!0,ServerId:itemForTitle.ServerId},{context:context}),hasFocusableButton=!0,parentNameHtml.push(''+_textencoding.default.htmlEncode(itemForTitle.GameSystem)+"")):itemForTitle.SeriesName&&itemForTitle.SeriesId?(parentRoute=_approuter.default.getRouteUrl({Id:itemForTitle.SeriesId,Name:itemForTitle.SeriesName,Type:"Series",IsFolder:!0,ServerId:itemForTitle.ServerId},{context:context}),seriesName=_textencoding.default.htmlEncode(itemForTitle.SeriesName),apiClient?(fontSize+=" itemName-primary-logo",_layoutmanager.default.tv&&(fontSize+=" itemName-primary-logo-tv"),itemPrimaryNameContainerClass+=" itemPrimaryNameContainer-logo",hasFocusableButton=!0,parentNameHtml.push(''+(seriesName=''+seriesName+'')+"")):(hasFocusableButton=!0,parentNameHtml.push(''+seriesName+""))):itemForTitle.SeriesName?parentNameHtml.push(_textencoding.default.htmlEncode(itemForTitle.SeriesName)):(itemForTitle.IsSeries||itemForTitle.EpisodeTitle)&&parentNameHtml.push(_textencoding.default.htmlEncode(itemForTitle.Name)),itemForTitle.Album&&itemForTitle.AlbumId&&("MusicVideo"===itemForTitle.Type||"Audio"===itemForTitle.Type)?(parentRoute=_approuter.default.getRouteUrl({Id:itemForTitle.AlbumId,Name:itemForTitle.Album,Type:"MusicAlbum",IsFolder:!0,ServerId:itemForTitle.ServerId},{context:context}),hasFocusableButton=!0,parentNameHtml.push(''+_textencoding.default.htmlEncode(itemForTitle.Album)+"")):itemForTitle.Album&&parentNameHtml.push(_textencoding.default.htmlEncode(itemForTitle.Album)),""),seriesName="";_layoutmanager.default.tv||(_itemmanager.default.canEdit([item],user)&&(hasFocusableButton=!0,seriesName+=''),_itemmanager.default.canEditImages(item,user)&&(hasFocusableButton=!0,seriesName+='')),enableItemBackdropAsTopImage(itemForTitle)||(itemPrimaryNameContainerClass+=" itemPrimaryNameContainer-centered"),parentNameHtml.length&&(html=parentNameLast?'

'+parentNameHtml.join(" - ")+"

":'

'+parentNameHtml.join(" - ")+"

"),context=(context=_itemmanager.default.getDisplayName(itemForTitle,{includeParentInfo:!0,hideEpisodeSpoilerInfo:_usersettings.default.hideEpisodeSpoilerInfo(),autoBlankName:!1}))&&_textencoding.default.htmlEncode(context),html&&context&&!parentNameLast?html+='

'+context+"

"+seriesName+"
":(parentNameLast||(apiClient&&(context=''+context+'',fontSize+=" itemName-primary-logo",itemPrimaryNameContainerClass+=" itemPrimaryNameContainer-logo",_layoutmanager.default.tv)&&(fontSize+=" itemName-primary-logo-tv"),context)||seriesName)&&(html='

'+context+"

"+seriesName+"
"+html);for(var i=0,length=containers.length;i",errorInfo.title&&(html=(html+='

')+_textencoding.default.htmlEncode(errorInfo.title)+"

"),html+='

',apiClient.isMinServerVersion("4.8.4")?html+=_textencoding.default.htmlEncode(errorInfo.text):html+="Content no longer available.",html+="

",_approuter.default.getRouteUrl("home",{serverId:apiClient.serverId()})),html=(html=(html+='')+_globalize.default.translate("Home"))+""+"
";return view.querySelector(".detailMainContainer").innerHTML=html,_focusmanager.default.focus(view.querySelector(".btnHomeItemNotFound")),Promise.reject(errorResponse)})})}function getItemWithMediaSource(instance,apiClient){return function(instance,apiClient){var options,fields;return(instance=instance.params).seriesTimerId?apiClient.getLiveTvSeriesTimer(instance.seriesTimerId):instance.timerId?apiClient.getLiveTvTimer(instance.timerId):(options={},fields=[],"true"===instance.asSeries?options.AsSeries=!0:fields.push("ShareLevel"),fields.push("SyncStatus"),fields.push("ContainerSyncStatus"),fields.length&&(options.fields=fields.join(",")),options.ExcludeFields="VideoChapters,VideoMediaSources,MediaStreams",apiClient.getItem(apiClient.getCurrentUserId(),instance.id,options))}(instance,apiClient).then(function(item){var playbackMediaSourcesPromise=isRenderingTrackSelections(item)?_playbackmanager.default.getPlaybackMediaSources(item):Promise.resolve([]);return playbackMediaSourcesPromise.then(function(mediaSources){return{item:item,mediaSources:mediaSources}})})}function startDataLoad(instance,signal){var params=instance.params,apiClient=_connectionmanager.default.getApiClient(params.serverId),params=Promise.all([getItemWithMediaSource(instance,apiClient),apiClient.getCurrentUser()]).then(function(response){return null!=signal&&signal.throwIfAborted(),onDataFetched.call(instance,response,signal)},function(err){return console.log("error loading item: "+err),null!=signal&&signal.throwIfAborted(),onItemFetchError(instance,err,apiClient)});instance.dataPromise=params}function playCurrentItem(instance,mode){(_layoutmanager.default.tv?Promise.resolve(null):Emby.importModule("./modules/multiselect/multiselect.js")).then(function(MultiSelect){var startPositionTicks,view;null!=MultiSelect&&MultiSelect.canPlay()?"shuffle"===mode?MultiSelect.shuffle():MultiSelect.play():(MultiSelect=instance.currentItem,view=instance.view,startPositionTicks=(MultiSelect=MultiSelect).UserData&&"resume"===mode?null:0,view=function(view,params,startPositionTicks){var audioStreamIndex=view.querySelector(".selectAudio").value||null;return{startPositionTicks:startPositionTicks,mediaSourceId:view.querySelector(".selectSource").value,audioStreamIndex:audioStreamIndex,subtitleStreamIndex:view.querySelector(".selectSubtitles").value,parentId:params.parentId}}(view,instance.params,startPositionTicks),"shuffle"===mode&&(view.shuffle=!0),view.items=[MultiSelect],_playbackactions.default.play(view))})}function onPlayClick(e){playCurrentItem(this,e.currentTarget.getAttribute("data-mode"))}function onEdited(){reloadItem(this,!0)}function onEditCancel(){}function onEditMetadataClick(){var currentItem=this.currentItem,instance=this;Emby.importModule("./modules/metadataeditor/metadataeditor.js").then(function(MetadataEditor){return(new MetadataEditor).show(currentItem.Id,currentItem.ServerId).then(onEdited.bind(instance),onEditCancel)})}function onEditImagesClick(){var currentItem=this.currentItem,instance=this;Emby.importModule("./modules/imageeditor/imageeditor.js").then(function(imageEditor){imageEditor.show({itemId:currentItem.Id,serverId:currentItem.ServerId}).then(onEdited.bind(instance),onEditCancel)})}function onDeleteClick(){var currentItem=this.currentItem;_itemmanager.default.deleteItems({items:[currentItem],navigate:"back"})}function onDownloadChange(){reloadItem(this,!0)}function splitVersions(instance,page,apiClient,params){var options;options="Are you sure you wish to split the media sources into separate items?",Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)}).then(function(){_loading.default.show(),apiClient.ungroupVersions(params.id).then(function(){_loading.default.hide(),reloadItem(instance,!0)})})}function onReadMoreClick(e){var options,e=e.currentTarget.closest(".overview-container").querySelector(".overview-text");options={preFormattedText:e.innerHTML,confirmButton:!1,title:_itemmanager.default.getDisplayName(this.currentItem)||this.currentItem.Name,centerText:!1,item:this.currentItem},Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function onPromiseRejected(e){console.log("itemContextMenu close: "+e)}function getSortMenuOptions(item){switch(item.Type){case"Playlist":return _itemmanager.default.getSortMenuOptions({apiClient:_connectionmanager.default.getApiClient(item),itemType:"PlaylistItem"});case"BoxSet":return _itemmanager.default.getSortMenuOptions({apiClient:_connectionmanager.default.getApiClient(item),itemType:"BoxSetItem"});default:return[]}}function getSortMenuOption(sortMenuOptions,sortBy){for(var i=0,length=sortMenuOptions.length;i'))}Object.assign(ItemPage.prototype,_baseview.default.prototype),ItemPage.prototype.onInputCommand=function(e){var command=e.detail.command;switch(command){case"play":return playCurrentItem(this,"resume"),e.preventDefault(),void e.stopPropagation();case"delete":return onDeleteClick.call(this),e.preventDefault(),void e.stopPropagation();case"record":return executeCommandWithCommandProcessor(command,this.currentItem,{positionTo:e.target}),e.preventDefault(),void e.stopPropagation()}_baseview.default.prototype.onInputCommand.apply(this,arguments)},ItemPage.prototype.autoFocusMainSection=function(options){for(var btns=this.view.querySelectorAll(".detailButton"),i=0,length=btns.length;i +
+
+ +
+ +
+
+
+ +
${LabelDateAddedBehaviorHelp}
+
+
+
+
+ +
+ +
+
+ +
+ + + +
+ +
${OptionEnableExternalContentInSuggestionsHelp}
+
+
+
+ +
+ ${HeaderPreferredMetadataLanguage} + +

${DefaultMetadataLangaugeDescription}

+ +
+
+ +
+ +
+ +
${CertificationCountryHelp}
+
+
+
+ + +
+
+
+ \ No newline at end of file diff --git a/librarysetup/advancedtab.js b/librarysetup/advancedtab.js new file mode 100644 index 0000000..63ed652 --- /dev/null +++ b/librarysetup/advancedtab.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/basesettingstab.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/common/responsehelper.js"],function(_exports,_basesettingstab,_loading,_globalize,_embyInput,_embyButton,_embyToggle,_embySelect,_responsehelper){function View(view,params){_basesettingstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_basesettingstab.default.prototype),View.prototype.onTemplateLoaded=function(){_basesettingstab.default.prototype.onTemplateLoaded.apply(this,arguments);var view=this.view;view.querySelector(".metadataPathDescription").innerHTML=_globalize.default.translate("LabelMetadataPathHelp",'',""),view.querySelector(".btnSelectMetadataPath").addEventListener("click",function(){Emby.importModule("./modules/directorybrowser/directorybrowser.js").then(function(directoryBrowser){var picker=new directoryBrowser;picker.show({path:view.querySelector(".txtMetadataPath").value,networkSharePath:view.querySelector(".txtMetadataNetworkPath").value,callback:function(path,networkPath){path&&(view.querySelector(".txtMetadataPath").value=path,view.querySelector(".txtMetadataNetworkPath").value=networkPath),picker.close()},validateWriteable:!0,header:_globalize.default.translate("HeaderSelectMetadataPath"),instruction:_globalize.default.translate("HeaderSelectMetadataPathHelp"),enableNetworkSharePath:!0})})}),view.querySelector("form").addEventListener("submit",function(e){_loading.default.show();var form=e.target,apiClient=this.getApiClient();return apiClient.getServerConfiguration().then(function(config){config.PreferredMetadataLanguage=form.querySelector(".selectLanguage").value,config.MetadataCountryCode=form.querySelector(".selectCountry").value,config.MetadataPath=form.querySelector(".txtMetadataPath").value,config.MetadataNetworkPath=form.querySelector(".txtMetadataNetworkPath").value,config.EnableExternalContentInSuggestions=form.querySelector(".chkExternalContentInSuggestions").checked,config.EnableSavedMetadataForPeople=form.querySelector(".chkPeopleMetadata").checked,apiClient.updateServerConfiguration(config).then(_responsehelper.default.handleConfigurationSavedResponse,_responsehelper.default.handleErrorResponse)}),function(form,apiClient){apiClient.getNamedConfiguration("metadata").then(function(config){config.UseFileCreationTimeForDateAdded="1"===form.querySelector(".selectDateAdded").value,apiClient.updateNamedConfiguration("metadata",config)})}(form,apiClient),e.preventDefault(),e.stopPropagation(),!1}.bind(this))},View.prototype.loadSettingsInternal=function(){var view=this.view,apiClient=this.getApiClient();return apiClient.isMinServerVersion("4.8.0.54")?view.querySelector(".fldPeopleMetadata").classList.remove("hide"):view.querySelector(".fldPeopleMetadata").classList.add("hide"),Promise.all([apiClient.getServerConfiguration(),function(select,apiClient){return apiClient.getCultures().then(function(languages){var html="";html+="";for(var i=0,length=languages.length;i"+culture.DisplayName+""}select.innerHTML=html})}(view.querySelector(".selectLanguage"),apiClient),function(select,apiClient){return apiClient.getCountries().then(function(allCountries){var html="";html+="";for(var i=0,length=allCountries.length;i"+culture.DisplayName+""}select.innerHTML=html})}(view.querySelector(".selectCountry"),apiClient),apiClient.getSystemInfo(),apiClient.getNamedConfiguration("metadata")]).then(function(responses){var systemInfo=responses[3];!function(page,config,systemInfo){var metadataPath=(metadataPath=config.MetadataPath||"")||systemInfo.InternalMetadataPath;page.querySelector(".txtMetadataPath").value=metadataPath,page.querySelector(".txtMetadataNetworkPath").value=config.MetadataNetworkPath||"",page.querySelector(".chkExternalContentInSuggestions").checked=config.EnableExternalContentInSuggestions,page.querySelector(".chkPeopleMetadata").checked=config.EnableSavedMetadataForPeople,page.querySelector(".selectLanguage").value=config.PreferredMetadataLanguage||"",page.querySelector(".selectCountry").value=config.MetadataCountryCode||"",_loading.default.hide()}(view,responses[0],systemInfo),systemInfo=responses[4],view.querySelector(".selectDateAdded").value=systemInfo.UseFileCreationTimeForDateAdded?"1":"0"})},View.prototype.loadTemplate=function(){return require(["text!librarysetup/advancedtab.html"])};_exports.default=View}); \ No newline at end of file diff --git a/librarysetup/librariescontroller.js b/librarysetup/librariescontroller.js new file mode 100644 index 0000000..158ac21 --- /dev/null +++ b/librarysetup/librariescontroller.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/globalize.js","./../modules/common/itemmanager/itemmanager.js","./../modules/emby-apiclient/connectionmanager.js"],function(_exports,_globalize,_itemmanager,_connectionmanager){function addVirtualFolder(e){var options,view=this.view;_connectionmanager.default.currentApiClient().isMinServerVersion("4.9.0.70")?Emby.importModule("./components/medialibrarycreator/medialibrarycreator.js").then(function(medialibrarycreator){(new medialibrarycreator).show({collectionTypeOptions:function(){var options=[{name:"",value:""},{value:"movies",message:getLink("MovieLibraryHelp","https://github.com/MediaBrowser/Wiki/wiki/Movie%20naming")},{value:"music"},{value:"tvshows",message:getLink("TvLibraryHelp","https://github.com/MediaBrowser/Wiki/wiki/TV%20naming")}];options.push({value:"audiobooks"}),options.push({value:"books",message:getLink("BookLibraryHelp","https://github.com/MediaBrowser/Wiki/wiki/Book%20naming")}),options.push({value:"games",message:_globalize.default.translate("MessageGamePluginRequired")}),options.push({value:"musicvideos"}),options.push({value:"homevideos"}),options.push({name:_globalize.default.translate("MixedContent"),value:"mixed"});for(var i=1,length=options.length;i',"")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={addButtons:function(instance,addScanButton){var view=instance.view,sibling=view.querySelector(".listTotalRecordCount"),html='";addScanButton&&(html=html+('
'),sibling.insertAdjacentHTML("afterend",html),view.querySelector(".btnNewLibrary").addEventListener("click",addVirtualFolder.bind(instance))}}}); \ No newline at end of file diff --git a/librarysetup/librarysetup.html b/librarysetup/librarysetup.html new file mode 100644 index 0000000..17f1530 --- /dev/null +++ b/librarysetup/librarysetup.html @@ -0,0 +1,9 @@ +
+ +
+
+ +
+
+ +
\ No newline at end of file diff --git a/librarysetup/librarysetup.js b/librarysetup/librarysetup.js new file mode 100644 index 0000000..4ca0ab3 --- /dev/null +++ b/librarysetup/librarysetup.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/globalize.js","./../modules/tabbedview/tabbedview.js"],function(_exports,_globalize,_tabbedview){function LibrarySetupView(view,params){_tabbedview.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(LibrarySetupView.prototype,_tabbedview.default.prototype),LibrarySetupView.prototype.getTabs=function(){return[{name:_globalize.default.translate("Library"),id:"library"},{name:_globalize.default.translate("Advanced"),id:"advanced"}]},LibrarySetupView.prototype.loadTabController=function(id){return Emby.importModule("./librarysetup/"+id+"tab.js")};_exports.default=LibrarySetupView}); \ No newline at end of file diff --git a/librarysetup/librarytab.js b/librarysetup/librarytab.js new file mode 100644 index 0000000..37ef7c0 --- /dev/null +++ b/librarysetup/librarytab.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/itemstab.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/common/globalize.js","./../components/taskbutton.js","./librariescontroller.js"],function(_exports,_itemstab,_embyButton,_embyScroller,_embyItemscontainer,_globalize,_taskbutton,_librariescontroller){function LibraryTab(view,params){this.supportsViewSettings=!1,this.hasOtherViewButtons=!0,this.enableAlphaNumericShortcuts=!1,_itemstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(LibraryTab.prototype,_itemstab.default.prototype),LibraryTab.prototype.onTemplateLoaded=function(){_itemstab.default.prototype.onTemplateLoaded.apply(this,arguments),this.itemsContainer.refreshOnItemUpdated=!0,_librariescontroller.default.addButtons(this,!0);var btnRefresh=this.view.querySelector(".btnRefresh");btnRefresh&&(this.libraryScanTaskButton=new _taskbutton.default({progressElem:this.view.querySelector(".refreshProgress"),taskKey:"RefreshLibrary",button:btnRefresh}))},LibraryTab.prototype.onResume=function(options){var _this$libraryScanTask;_itemstab.default.prototype.onResume.apply(this,arguments),null!=(_this$libraryScanTask=this.libraryScanTaskButton)&&_this$libraryScanTask.resume({})},LibraryTab.prototype.onPause=function(){var _this$libraryScanTask2;_itemstab.default.prototype.onPause.apply(this,arguments),null!=(_this$libraryScanTask2=this.libraryScanTaskButton)&&_this$libraryScanTask2.pause()},LibraryTab.prototype.loadTemplate=function(){return this.loadItemsTemplate()},LibraryTab.prototype.getItems=function(query){return this.getApiClient().getVirtualFolders(query)},LibraryTab.prototype.getItemTypes=function(){return["VirtualFolder"]},LibraryTab.prototype.getSettingsKey=function(){return"libraries"},LibraryTab.prototype.getEmptyListMessage=function(){return Promise.resolve("")},LibraryTab.prototype.getItemCountText=function(numItems){return 1===numItems?_globalize.default.translate("OneLibrary"):_globalize.default.translate("LibraryCountValue",numItems)},LibraryTab.prototype.getContext=function(){return null},LibraryTab.prototype.getBaseListRendererOptions=function(){var options=_itemstab.default.prototype.getBaseListRendererOptions.apply(this,arguments);return options.draggable=!1,options.draggableXActions=!0,options.multiSelect=!1,options.action="edit",options.playQueueIndicator=!1,options},LibraryTab.prototype.getCardOptions=function(items,settings){var options=_itemstab.default.prototype.getCardOptions.apply(this,arguments);return Object.assign(options,{shape:"backdrop",fields:["Name","CollectionType","LibraryFolders"],cardLayout:!0,hoverPlayButton:!1,defaultBackground:!0,linkButtonAction:"edit"})},LibraryTab.prototype.getSortMenuOptions=function(){return[]},LibraryTab.prototype.destroy=function(){var _this$libraryScanTask3;_itemstab.default.prototype.destroy.apply(this,arguments),null!=(_this$libraryScanTask3=this.libraryScanTaskButton)&&_this$libraryScanTask3.destroy(),this.libraryScanTaskButton=null};_exports.default=LibraryTab}); \ No newline at end of file diff --git a/list/list.html b/list/list.html new file mode 100644 index 0000000..71aa572 --- /dev/null +++ b/list/list.html @@ -0,0 +1,57 @@ +
+ +
+ +
+ +
+
+
+
+
+ +
+
+
+ + + + + + + + + + + + +
+ + +
+
diff --git a/list/list.js b/list/list.js new file mode 100644 index 0000000..2a370ed --- /dev/null +++ b/list/list.js @@ -0,0 +1 @@ +define(["exports","./../modules/emby-apiclient/connectionmanager.js","./../modules/emby-apiclient/events.js","./../modules/common/globalize.js","./../modules/common/playback/playbackmanager.js","./../modules/appheader/appheader.js","./../modules/backdrop/backdrop.js","./../modules/common/itemmanager/itemmanager.js","./../modules/layoutmanager.js","./../modules/common/usersettings/usersettings.js","./../modules/viewmanager/baseview.js","./../search/searchfields.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-tabs/emby-tabs.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/tabbedview/listcontroller.js"],function(_exports,_connectionmanager,_events,_globalize,_playbackmanager,_appheader,_backdrop,_itemmanager,_layoutmanager,_usersettings,_baseview,_searchfields,_embyScroller,_embyTabs,_embyItemscontainer,_listcontroller){function hideOrShowAll(elems,hide){for(var i=0,length=elems.length;i
')+tabs.map(function(tab,index){var pluralName="all"===tab.Id?tab.Name:_itemmanager.default.getPluralItemTypeName(tab.Name);return'"}).join("")+"
");var html,tabs=this.view.querySelector(".searchTabs");(tabs.innerHTML=html)?(tabs.classList.remove("hide"),tabs.querySelector(".searchTabsContainer").addEventListener("tabchange",function(){this.itemsContainer.refreshItems()}.bind(this))):tabs.classList.add("hide")},ItemsView.prototype.setTitle=function(){var title;!1!==this.params.setTitle&&(title=this.getTitle(),_appheader.default.setTitle(title||""))},ItemsView.prototype.getSortBySettingsKey=function(sortMenuOptions){return"OnNow"===this.params.type?_usersettings.default.getLiveTvChannelSortSettingsKey():_listcontroller.default.prototype.getSortBySettingsKey.apply(this,arguments)},ItemsView.prototype.getSortByValue=function(){var query;return"OnNow"===this.params.type?(_usersettings.default.addLiveTvChannelSortingToQuery(query={},_globalize.default),query.SortBy):_listcontroller.default.prototype.getSortByValue.apply(this,arguments)},ItemsView.prototype.getDefaultSorting=function(){var query;return"OnNow"===this.params.type?(_usersettings.default.addLiveTvChannelSortingToQuery(query={},_globalize.default),{sortBy:query.SortBy,sortOrder:query.SortOrder}):_listcontroller.default.prototype.getDefaultSorting.apply(this,arguments)},ItemsView.prototype.supportsPlay=function(){var params=this.params,parentItem=this.getParentItem(),parentItem=null==parentItem?void 0:parentItem.CollectionType;return"downloads"!==params.parentId&&"search"!==params.type&&"missingepisodes"!==params.type&&"playlists"!==parentItem&&"boxsets"!==parentItem&&_listcontroller.default.prototype.supportsPlay.apply(this,arguments)},ItemsView.prototype.supportsShuffle=function(){var params=this.params,parentItem=this.getParentItem(),itemType=null==parentItem?void 0:parentItem.Type,parentItem=null==parentItem?void 0:parentItem.CollectionType;return"downloads"!==params.parentId&&"search"!==params.type&&"missingepisodes"!==params.type&&"playlists"!==parentItem&&"boxsets"!==parentItem&&("MusicGenre"===itemType||"Program"!==params.type&&"TvChannel"!==params.type&&"OnNow"!==params.type&&"nextup"!==params.type&&"Game"!==params.type&&"Channel"!==itemType&&"GameSystem"!==itemType&&"GameGenre"!==itemType)&&this.supportsPlay()},ItemsView.prototype.supportsQueue=function(){var params=this.params,parentItem=this.getParentItem(),parentItem=null==parentItem?void 0:parentItem.CollectionType;if("downloads"!==params.parentId&&"search"!==params.type&&"missingepisodes"!==params.type&&"playlists"!==parentItem&&"boxsets"!==parentItem&&this.supportsPlay()){params=this.getParentItem();if(params)return _playbackmanager.default.canQueue(params)}return!1},ItemsView.prototype.getSortMenuOptions=function(){var params=this.params;if("downloads"===params.parentId)return[];switch(params.type){case"nextup":case"search":case"missingepisodes":return[];case"OnNow":return _usersettings.default.getLiveTvChannelSortOrders(_globalize.default);default:return _listcontroller.default.prototype.getSortMenuOptions.apply(this,arguments)}},ItemsView.prototype.getVisibleFilters=function(){var params=this.params;if("downloads"===params.parentId)return[];switch(params.type){case"nextup":case"OnNow":case"search":case"missingepisodes":return[];default:return _listcontroller.default.prototype.getVisibleFilters.apply(this,arguments)}},ItemsView.prototype.getDisplayPreset=function(){var params=this.params;return params.mediaTypes?params.mediaTypes.split(",")[0]:_listcontroller.default.prototype.getDisplayPreset.apply(this,arguments)},ItemsView.prototype.getViewSettingDefaults=function(parentItem,listItems,availableFieldIds){var activeSearchTab,defaults=_listcontroller.default.prototype.getViewSettingDefaults.apply(this,arguments),params=this.params;return"search"===params.type?(defaults.fields=["Name"],!(activeSearchTab=this.view.querySelector(".emby-searchable-tab-button.emby-tab-button-active"))||"all"===(activeSearchTab=activeSearchTab.getAttribute("data-searchtype"))?(defaults.fields.push("Type"),defaults.fields.push("ProductionYear")):"Movie"===activeSearchTab||"Series"===activeSearchTab||"Trailer"===activeSearchTab?defaults.fields.push("ProductionYear"):"Audio"===activeSearchTab&&(defaults.imageType="list")):"nextup"===params.type&&(defaults.imageType=this.params.defaultView||"thumb"),defaults},ItemsView.prototype.getItemTypes=function(){var params=this.params,paramsType=params.type;switch(paramsType){case"nextup":case"missingepisodes":return["Episode"];case"OnNow":return["TvChannel"];case"search":return[];case"Recordings":return"true"===params.GroupItems?["Series","Video","Movie"]:["Episode","Video","Movie"];default:return paramsType?paramsType.split(","):[]}},ItemsView.prototype.getSettingsKey=function(){var values=[],params=(values.push("items"),this.params);return params.type?values.push(params.type):params.mediaTypes?values.push(params.mediaTypes):params.parentId&&values.push(params.parentId),params.IsAiring&&values.push("IsAiring"),params.IsMovie&&values.push("IsMovie"),params.IsKids&&values.push("IsKids"),params.IsSports&&values.push("IsSports"),params.IsNews&&values.push("IsNews"),params.IsSeries&&values.push("IsSeries"),params.IsFavorite&&values.push("IsFavorite"),params.genreId&&values.push("Genre"),params.gameGenreId&&values.push("GameGenre"),params.musicGenreId&&values.push("MusicGenre"),params.studioId&&values.push("Studio"),params.tagId&&values.push("Tag"),params.personId&&values.push("Person"),params.parentId&&values.push("Folder"),values.join("-")};_exports.default=ItemsView}); \ No newline at end of file diff --git a/livetv/channels.js b/livetv/channels.js new file mode 100644 index 0000000..bb4e502 --- /dev/null +++ b/livetv/channels.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/itemstab.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/common/usersettings/usersettings.js","./../modules/common/globalize.js"],function(_exports,_itemstab,_embyItemscontainer,_embyButton,_embyScroller,_usersettings,_globalize){function ChannelsTab(view,params,options){_itemstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(ChannelsTab.prototype,_itemstab.default.prototype),ChannelsTab.prototype.getItemTypes=function(){return["TvChannel"]},ChannelsTab.prototype.getSettingsKey=function(){return"livetvchannels"},ChannelsTab.prototype.saveSortingOnServer=function(){return!0},ChannelsTab.prototype.getCardOptions=function(items){var options=_itemstab.default.prototype.getCardOptions.apply(this,arguments);return-1!==(this.getSortValues().sortBy||"").toLowerCase().indexOf("channelnumber,sortname")&&(options.channelNumberFirst=!0),options},ChannelsTab.prototype.getSortBySettingsKey=function(sortMenuOptions){return _usersettings.default.getLiveTvChannelSortSettingsKey()},ChannelsTab.prototype.getSortMenuOptions=function(){return _usersettings.default.getLiveTvChannelSortOrders(_globalize.default)},ChannelsTab.prototype.getDefaultSorting=function(){var query={};return _usersettings.default.addLiveTvChannelSortingToQuery(query,_globalize.default),{sortBy:query.SortBy,sortOrder:query.SortOrder}},ChannelsTab.prototype.getSortByValue=function(){var query={};return _usersettings.default.addLiveTvChannelSortingToQuery(query,_globalize.default),query.SortBy},ChannelsTab.prototype.loadTemplate=function(){return this.loadItemsTemplate()};_exports.default=ChannelsTab}); \ No newline at end of file diff --git a/livetv/guide.css b/livetv/guide.css new file mode 100644 index 0000000..01f867c --- /dev/null +++ b/livetv/guide.css @@ -0,0 +1 @@ +.guideSelectedInfo{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;height:36%;padding-top:0;padding-bottom:0;margin-top:-3em;margin-bottom:.25em}.guide-focusPreviewOverview{-webkit-line-clamp:1}@media (min-width:60em){.page-withDockedDrawer .guideContainer{-webkit-padding-start:3.5rem;padding-inline-start:3.5rem}}@media (min-width:90em){.page-withDockedDrawer .guideContainer{-webkit-padding-start:4rem;padding-inline-start:4rem}} \ No newline at end of file diff --git a/livetv/guide.js b/livetv/guide.js new file mode 100644 index 0000000..95ba115 --- /dev/null +++ b/livetv/guide.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/basetab.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/emby-apiclient/events.js","./../modules/appheader/appheader.js","./../modules/layoutmanager.js","./../modules/backdrop/backdrop.js","./../modules/emby-elements/guide/guide.js"],function(_exports,_basetab,_embyItemscontainer,_embyButton,_embyScroller,_connectionmanager,_events,_appheader,_layoutmanager,_backdrop,_guide){function GuideTab(view,params){_basetab.default.apply(this,arguments),this.apiClient=_connectionmanager.default.getApiClient(params.serverId),this.view=view,this.params=params,_layoutmanager.default.tv&&view.classList.add("guideContainer-tv"),this.boundonGuideFocus=function(e,detail){this._lastFocusInfo=detail,this.onFocusIn(detail.element)}.bind(this),this.boundonGuideFocusOut=function(e,detail){this._lastFocusInfo=null,this.onFocusOut()}.bind(this)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!livetv/guide.css"]),Object.assign(GuideTab.prototype,_basetab.default.prototype),GuideTab.prototype.getFocusPreviewItem=function(element){var focusInfo=this._lastFocusInfo;return(null==focusInfo?void 0:focusInfo.element)===element?focusInfo.item:null},GuideTab.prototype.refetchItemForFocusPreview=function(){return!0},GuideTab.prototype.enableFocusPreview=function(){return!!_layoutmanager.default.tv},GuideTab.prototype.createFocusPreviewElement=function(){var elem=this.view.querySelector(".guideSelectedInfo");return this.fillFocusPreviewContainer(elem),elem.querySelector(".focusPreviewOverview").classList.add("guide-focusPreviewOverview"),elem},GuideTab.prototype.onResume=function(options){_basetab.default.prototype.onResume.apply(this,arguments),options=options||{},_appheader.default.ensureVisible(),_backdrop.default.clear();var isNew,promise,guideInstance=this.guideInstance,guideContainer=this.view,focusGuideOnLoad=options.autoFocus||guideContainer.contains(document.activeElement),guideContainer=(guideInstance||(isNew=!0,guideInstance=this.guideInstance=new _guide.default({element:guideContainer,serverId:this.params.serverId,condensed:_layoutmanager.default.tv}),_layoutmanager.default.tv&&(_events.default.on(this.guideInstance,"focus",this.boundonGuideFocus),guideContainer.addEventListener("focusout",this.boundonGuideFocusOut),this.view.querySelector(".guideSelectedInfo").classList.remove("hide")),options.refresh=!0),_layoutmanager.default.tv?this.view.classList.add("liveGuideTab-tv"):this.view.classList.remove("liveGuideTab-tv"),this.getApiClient());return(promise=(promise=isNew&&_layoutmanager.default.tv?guideContainer.getItems(guideContainer.getCurrentUserId(),{IncludeItemTypes:"TvChannel",EnableTotalRecordCount:!1,Limit:1,SortBy:"DatePlayed",SortOrder:"Descending",Fields:"UserDataPlayCount",Recursive:!0,EnableImages:!1,AddCurrentProgram:!1}):promise)||Promise.resolve({Items:[]})).then(function(result){var _lastPlayedChannel$Us,result=result.Items[0];return null!=result&&null!=(_lastPlayedChannel$Us=result.UserData)&&_lastPlayedChannel$Us.PlayCount&&(options.scrollToChannelId=result.Id,options.focusOnScroll=focusGuideOnLoad,options.scrollBehavior="instant"),options.resetScroll="true"!==(null==(_lastPlayedChannel$Us=options.previousViewInfo)||null==(_lastPlayedChannel$Us=_lastPlayedChannel$Us.params)?void 0:_lastPlayedChannel$Us.asDialog),guideInstance.resume(options)})},GuideTab.prototype.enableFocusPreviewImage=function(){return!0},GuideTab.prototype.hideFocusPreviewElementUsingDisplay=function(){return!1},GuideTab.prototype.onPause=function(){_basetab.default.prototype.onPause.apply(this,arguments);var guideInstance=this.guideInstance;guideInstance&&guideInstance.pause()},GuideTab.prototype.destroy=function(){var view=this.view,guideInstance=(_basetab.default.prototype.destroy.apply(this,arguments),this.guideInstance);guideInstance&&(this.boundonGuideFocus&&(_events.default.off(guideInstance,"focus",this.boundonGuideFocus),this.boundonGuideFocus=null),this.boundonGuideFocusOut&&(null!=view&&view.removeEventListener("focusout",this.boundonGuideFocusOut),this.boundonGuideFocusOut=null),guideInstance.destroy()),this._lastFocusInfo=null,this.guideInstance=null};_exports.default=GuideTab}); \ No newline at end of file diff --git a/livetv/livetv.html b/livetv/livetv.html new file mode 100644 index 0000000..976a95e --- /dev/null +++ b/livetv/livetv.html @@ -0,0 +1,44 @@ +
+ +
+ +
+

+ + +
+
+ +
+ +
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+ +
+ + +
+ +
+ +
+ +
+ +
+
\ No newline at end of file diff --git a/livetv/livetv.js b/livetv/livetv.js new file mode 100644 index 0000000..32c4edc --- /dev/null +++ b/livetv/livetv.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/tabbedview.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/focusmanager.js","./../modules/registrationservices/registrationservices.js","./../modules/common/usersettings/usersettings.js","./../modules/maintabsmanager.js"],function(_exports,_tabbedview,_globalize,_embyItemscontainer,_embyButton,_embyScroller,_focusmanager,_registrationservices,_usersettings,_maintabsmanager){function hideShowAll(view,className,hide){for(var elems=view.querySelectorAll("."+className),i=0,length=elems.length;i'+'')+(""+_globalize.default.translate("HeaderAddRecording")+"")+"")+('"),function(instance){for(var btnCreateRecordings=instance.view.querySelectorAll(".btnCreateRecording"),boundOnAddRecordingClick=onAddRecordingClick.bind(instance),i=0,length=btnCreateRecordings.length;i +
+
+ +
+ +
+
+
+ +
${LiveBufferSizeHoursHelp}
+
+
+ +
${LabelNumberOfGuideDaysHelp}
+
+
+ +
${LabelAutomaticallyWakeServerForRecordingsHelp}
+
+ +
+ +
${RecordingFolderHelp}
+
+ +
+ +
${MovieRecordingFolderHelp}
+
+ +
+ +
${SeriesRecordingFolderHelp}
+
+ +
+
+
+ +
+ +
+
${RecordingFolderHelp}
+
+
+
+
+ +
+ +
+
${MovieRecordingFolderHelp}
+
+
+
+
+ +
+ +
+
${SeriesRecordingFolderHelp}
+
+
+
+ +
+ ${HeaderDefaultRecordingSettings} +
+
+
+
+ +
+
+ ${MinutesBefore} +
+
+
+
+
+
+ +
+
+ ${MinutesAfter} +
+
+
+
+
+ +
+ ${HeaderRecordingPostProcessing} + +
+
+
+
+ +
+ +
+
+
+ +
${PostProcessorArgumentsHelp}
+
${DvrPostProcessorPathArgument}
+
+
+
+
+ +
+ +
+
+
+
+ \ No newline at end of file diff --git a/livetvsetup/advancedtab.js b/livetvsetup/advancedtab.js new file mode 100644 index 0000000..e59dc2e --- /dev/null +++ b/livetvsetup/advancedtab.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/basetab.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/common/responsehelper.js"],function(_exports,_basetab,_loading,_globalize,_embyInput,_embyButton,_embyToggle,_embySelect,_responsehelper){function onSubmit(e){_loading.default.show();var form=this;return ApiClient.getNamedConfiguration("livetv").then(function(config){config.GuideDays=form.querySelector(".selectGuideDays").value||null,config.BufferLimitInMinutes=60*parseInt(form.querySelector(".selectBufferSize").value);var recordingPath=form.querySelector(".txtRecordingPath").value||void 0,movieRecordingPath=form.querySelector(".txtMovieRecordingPath").value||void 0,seriesRecordingPath=form.querySelector(".txtSeriesRecordingPath").value||void 0,recordingPathChanged=recordingPath!==config.RecordingPath||movieRecordingPath!==config.MovieRecordingPath||seriesRecordingPath!==config.SeriesRecordingPath;config.RecordingPath=recordingPath,config.MovieRecordingPath=movieRecordingPath,config.SeriesRecordingPath=seriesRecordingPath,config.RecordingFolderId=form.querySelector(".selectRecordingFolder").value||null,config.MovieRecordingFolderId=form.querySelector(".selectMovieRecordingFolder").value||null,config.SeriesRecordingFolderId=form.querySelector(".selectSeriesRecordingFolder").value||null,config.WakeServer=form.querySelector(".chkWakeServer").checked,config.RecordingEncodingFormat="mkv",config.PrePaddingSeconds=60*form.querySelector(".txtPrePaddingMinutes").value,config.PostPaddingSeconds=60*form.querySelector(".txtPostPaddingMinutes").value,config.RecordingPostProcessor=form.querySelector(".txtPostProcessor").value,config.RecordingPostProcessorArguments=form.querySelector(".txtPostProcessorArguments").value,ApiClient.updateNamedConfiguration("livetv",config).then(function(){_responsehelper.default.handleConfigurationSavedResponse(),function(recordingPathChanged){var msg="";recordingPathChanged&&(msg+=_globalize.default.translate("RecordingPathChangeMessage"));msg&&!function(options){Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}(msg)}(recordingPathChanged)})}),e.preventDefault(),e.stopPropagation(),!1}function getRecordingFoldersFromPropertyName(instance,query,propertyName){return instance.getAvailableRecordingOptions().then(function(availableRecordingOptions){var availableRecordingOptions=availableRecordingOptions[propertyName].slice(0),total=availableRecordingOptions.length;return availableRecordingOptions.unshift({Name:"",Type:"Folder",Id:"",ServerId:instance.getApiClient().serverId()}),{TotalRecordCount:total+=1,Items:availableRecordingOptions}})}function View(view,params){_basetab.default.apply(this,arguments)}function showOrHideAll(page,className,show){for(var elems="string"==typeof className?page.querySelectorAll("."+className):className,i=0,length=elems.length;i"),extraPostProcessingArgs.length?extraPostProcessingArgsElem.classList.remove("hide"):extraPostProcessingArgsElem.classList.add("hide"),page.querySelector(".selectRecordingFolder").getItems=function(query){return getRecordingFoldersFromPropertyName(this,0,"RecordingFolders")}.bind(this),page.querySelector(".selectMovieRecordingFolder").getItems=function(query){return getRecordingFoldersFromPropertyName(this,0,"MovieRecordingFolders")}.bind(this),page.querySelector(".selectSeriesRecordingFolder").getItems=function(query){return getRecordingFoldersFromPropertyName(this,0,"SeriesRecordingFolders")}.bind(this),this.getApiClient().isMinServerVersion("4.8.0.58")?(showOrHideAll(page,"fldRecordingFolderById",!0),showOrHideAll(page,"fldRecordingFolderByPath",!1)):(showOrHideAll(page,"fldRecordingFolderById",!1),showOrHideAll(page,"fldRecordingFolderByPath",!0)),this.getApiClient().isMinServerVersion("4.8.0.68")?showOrHideAll(page,"fldBufferSize",!0):showOrHideAll(page,"fldBufferSize",!1)},View.prototype.destroy=function(){_basetab.default.prototype.destroy.apply(this,arguments),this._availableRecordingOptions=null};_exports.default=View}); \ No newline at end of file diff --git a/livetvsetup/channelstab.js b/livetvsetup/channelstab.js new file mode 100644 index 0000000..1867bfc --- /dev/null +++ b/livetvsetup/channelstab.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/itemstab.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/layoutmanager.js","./../modules/commandprocessor.js","./../modules/loading/loading.js","./../modules/emby-apiclient/connectionmanager.js"],function(_exports,_itemstab,_embyInput,_embyButton,_embySelect,_layoutmanager,_commandprocessor,_loading,_connectionmanager){function LiveTVSetupView(view,params){this.supportsViewSettings=!1,this.enableTotalRecordCountDisplay=!1,_itemstab.default.apply(this,arguments)}function onItemsChecked(options){var items=options.items,options=options.checked,item=items[0],items=_connectionmanager.default.getApiClient(item),disabled=(_loading.default.show(),!options);return items.setChannelDisabled(item,disabled).then(function(updatedChannel){item.Disabled=disabled,_loading.default.hide()})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(LiveTVSetupView.prototype,_itemstab.default.prototype),LiveTVSetupView.prototype.onResume=function(options){_itemstab.default.prototype.onResume.apply(this,arguments)},LiveTVSetupView.prototype.onPause=function(){_itemstab.default.prototype.onPause.apply(this,arguments)},LiveTVSetupView.prototype.getApiClientQueryMethodName=function(){return"getLiveTvChannelsForManagement"},LiveTVSetupView.prototype.getBaseListRendererOptions=function(){var options=_itemstab.default.prototype.getBaseListRendererOptions.apply(this,arguments);return options.action=_layoutmanager.default.tv?"menu":"custom",options.multiSelect=!1,options},LiveTVSetupView.prototype.getListViewOptions=function(items,settings){var options=_itemstab.default.prototype.getListViewOptions.apply(this,arguments),enableDragReordering=!this.getQueryInfo().hasFilters;return Object.assign(options,{fields:["Name","ItemCheckbox","TunerName","MappedChannelInfo"],draggable:enableDragReordering,dragReorder:enableDragReordering,image:!0,roundCheckbox:!0,checkboxAction:onItemsChecked})},LiveTVSetupView.prototype.getCardOptions=function(items,settings){var options=_itemstab.default.prototype.getCardOptions.apply(this,arguments);return Object.assign(options,{draggable:!1,draggableXActions:!1,fields:["Name","TunerName"]})},LiveTVSetupView.prototype.getSettingsKey=function(){return"managechannels"},LiveTVSetupView.prototype.getSortMenuOptions=function(){return[]},LiveTVSetupView.prototype.getDefaultSorting=function(){return{sortBy:"DefaultChannelOrder",sortOrder:"Ascending"}},LiveTVSetupView.prototype.getVisibleFilters=function(){return["ChannelMappingStatus"]},LiveTVSetupView.prototype.getItemTypes=function(){return["ChannelManagementInfo"]},LiveTVSetupView.prototype.setTitle=function(){},LiveTVSetupView.prototype.loadTemplate=function(){return this.loadItemsTemplate()},LiveTVSetupView.prototype.onTemplateLoaded=function(){_itemstab.default.prototype.onTemplateLoaded.apply(this,arguments);var itemsContainer=this.itemsContainer;itemsContainer.setAttribute("data-monitor","ChannelManagementInfoUpdated"),itemsContainer.addEventListener("action-null",function(e){var item=e.detail.item;item.Disabled||_commandprocessor.default.executeCommand("edit",[item],{}).then(function(){e.target.closest(".itemsContainer").notifyRefreshNeeded(!0)})}.bind(this))};_exports.default=LiveTVSetupView}); \ No newline at end of file diff --git a/livetvsetup/guideprovider.html b/livetvsetup/guideprovider.html new file mode 100644 index 0000000..bd51d49 --- /dev/null +++ b/livetvsetup/guideprovider.html @@ -0,0 +1,22 @@ +
+
+
+ +

+ ${HeaderAddGuideSource} +

+ +
+ +
+
+ +
+ +
+ + +
+
+
+
\ No newline at end of file diff --git a/livetvsetup/guideprovider.js b/livetvsetup/guideprovider.js new file mode 100644 index 0000000..394ca89 --- /dev/null +++ b/livetvsetup/guideprovider.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/basesettingsview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/approuter.js"],function(_exports,_basesettingsview,_loading,_embySelect,_approuter){function onCountryChange(e){var e=e.target,country=e.value,e=e.closest("FORM").querySelector(".fldGuideProvider"),selectProvider=(country?e.classList.remove("hide"):(e.classList.add("hide"),_loading.default.hide()),e.querySelector(".selectProvider"));selectProvider.innerHTML="",country&&(_loading.default.show(),(e=this.getApiClient()).getJSON(e.getUrl("LiveTv/ListingProviders/Available",{Country:country})).then(function(options){!function(select,options){select.innerHTML=''+options.map(function(o){return'"}).join("")}(selectProvider,options),_loading.default.hide()}))}function cancel(){_approuter.default.back()}function onSubmit(e){var selectProvider=this.querySelector(".selectProvider"),country=this.querySelector(".selectCountry").value,selectProvider=selectProvider.options[selectProvider.selectedIndex].getAttribute("data-url");selectProvider.includes("?")?selectProvider+="&":selectProvider+="?",_approuter.default.show(selectProvider+="country="+country),e.preventDefault(),e.stopPropagation()}function View(view,params){_basesettingsview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",onSubmit),view.querySelector(".btnCancel").addEventListener("click",cancel),view.querySelector(".selectCountry").addEventListener("change",onCountryChange.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_basesettingsview.default.prototype),View.prototype.loadSettingsInternal=function(){var select,selectCountry=this.view.querySelector(".selectCountry");return select=selectCountry,this.getApiClient().getCountries().then(function(allCountries){var html="";html+="";for(var i=0,length=allCountries.length;i"+culture.DisplayName+""}select.innerHTML=html})};_exports.default=View}); \ No newline at end of file diff --git a/livetvsetup/livetvsetup.html b/livetvsetup/livetvsetup.html new file mode 100644 index 0000000..f3e4098 --- /dev/null +++ b/livetvsetup/livetvsetup.html @@ -0,0 +1,12 @@ +
+ +
+
+ +
+
+ +
+
+ +
\ No newline at end of file diff --git a/livetvsetup/livetvsetup.js b/livetvsetup/livetvsetup.js new file mode 100644 index 0000000..0a35d24 --- /dev/null +++ b/livetvsetup/livetvsetup.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/globalize.js","./../modules/tabbedview/tabbedview.js"],function(_exports,_globalize,_tabbedview){function LiveTVSetupView(view,params){_tabbedview.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(LiveTVSetupView.prototype,_tabbedview.default.prototype),LiveTVSetupView.prototype.getTabs=function(){return[{name:_globalize.default.translate("Setup"),id:"setup"},{name:_globalize.default.translate("Channels"),id:"channels"},{name:_globalize.default.translate("Advanced"),id:"advanced"}]},LiveTVSetupView.prototype.loadTabController=function(id){return Emby.importModule("./livetvsetup/"+id+"tab.js")};_exports.default=LiveTVSetupView}); \ No newline at end of file diff --git a/livetvsetup/livetvtuner.html b/livetvsetup/livetvtuner.html new file mode 100644 index 0000000..32f21b7 --- /dev/null +++ b/livetvsetup/livetvtuner.html @@ -0,0 +1,70 @@ +
+
+
+ +
+ + + + + +
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+ +
${SupplyCustomValueIfNeeded}
+
+ +
+ +
${SupplyCustomValueIfNeeded}
+
+ +
+ +
${SimultaneousConnectionLimitHelp}
+
+ +
+ +
${ImportFavoriteChannelsHelp}
+
+
+ +
${AllowHWTranscodingHelp}
+
+
+

${DrmChannelsNotImported}

+
+ + +
+ + + +
+
+
+
\ No newline at end of file diff --git a/livetvsetup/livetvtuner.js b/livetvsetup/livetvtuner.js new file mode 100644 index 0000000..f0427cb --- /dev/null +++ b/livetvsetup/livetvtuner.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/basesettingsview.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/approuter.js","./../modules/common/responsehelper.js","./../components/tunerpicker.js"],function(_exports,_basesettingsview,_loading,_globalize,_embyInput,_embyButton,_embyToggle,_embySelect,_embyScroller,_approuter,_responsehelper,_tunerpicker){function onBackClick(){_approuter.default.back()}function fillTunerHostInfo(view,info){!function(view,value){var mayIncludeUnsupportedDrmChannels="hdhomerun"===value,supportsTranscoding="hdhomerun"===value,supportsFavorites="hdhomerun"===value,supportsTunerIpAddress="hdhomerun"===value,supportsTunerFileOrUrl="m3u"===value,supportsTunerCount="m3u"===value,supportsUserAgent="m3u"===value,suppportsSubmit="other"!==value,supportsSelectablePath=supportsTunerFileOrUrl,txtDevicePath=view.querySelector(".txtDevicePath");supportsTunerIpAddress?(txtDevicePath.label(_globalize.default.translate("LabelTunerIpAddress")),view.querySelector(".fldPath").classList.remove("hide")):supportsTunerFileOrUrl?(txtDevicePath.label(_globalize.default.translate("LabelFileOrUrl")),view.querySelector(".fldPath").classList.remove("hide")):view.querySelector(".fldPath").classList.add("hide");"hdhomerun"===value||"hauppauge"===value?view.querySelector(".btnDetect").classList.remove("hide"):view.querySelector(".btnDetect").classList.add("hide");supportsSelectablePath?(view.querySelector(".btnSelectPath").classList.remove("hide"),view.querySelector(".txtDevicePath").setAttribute("required","required")):(view.querySelector(".btnSelectPath").classList.add("hide"),view.querySelector(".txtDevicePath").removeAttribute("required"));supportsUserAgent?(view.querySelector(".fldUserAgent").classList.remove("hide"),view.querySelector(".fldReferrer").classList.remove("hide")):(view.querySelector(".fldUserAgent").classList.add("hide"),view.querySelector(".fldReferrer").classList.add("hide"));supportsFavorites?view.querySelector(".fldFavorites").classList.remove("hide"):view.querySelector(".fldFavorites").classList.add("hide");supportsTranscoding?view.querySelector(".fldTranscode").classList.remove("hide"):view.querySelector(".fldTranscode").classList.add("hide");supportsTunerCount?(view.querySelector(".fldTunerCount").classList.remove("hide"),view.querySelector(".txtTunerCount").setAttribute("required","required")):(view.querySelector(".fldTunerCount").classList.add("hide"),view.querySelector(".txtTunerCount").removeAttribute("required"));mayIncludeUnsupportedDrmChannels?view.querySelector(".drmMessage").classList.remove("hide"):view.querySelector(".drmMessage").classList.add("hide");suppportsSubmit?view.querySelector(".button-submit").classList.remove("hide"):view.querySelector(".button-submit").classList.add("hide")}(view,info.Type||""),view.querySelector(".txtDevicePath").value=info.Url||"",view.querySelector(".txtFriendlyName").value=info.FriendlyName||"",view.querySelector(".txtUserAgent").value=info.UserAgent||"",view.querySelector(".txtReferrer").value=info.Referrer||"",view.querySelector(".fldDeviceId").value=info.DeviceId||"",view.querySelector(".chkFavorite").checked=info.ImportFavoritesOnly,view.querySelector(".chkTranscode").checked=info.AllowHWTranscoding,view.querySelector(".txtTunerCount").value=info.TunerCount||"0"}function View(view,params){function submitForm(page){_loading.default.show();var info={Type:params.type,Url:page.querySelector(".txtDevicePath").value||null,UserAgent:page.querySelector(".txtUserAgent").value||null,Referrer:page.querySelector(".txtReferrer").value||null,FriendlyName:page.querySelector(".txtFriendlyName").value||null,DeviceId:page.querySelector(".fldDeviceId").value||null,TunerCount:page.querySelector(".txtTunerCount").value||0,ImportFavoritesOnly:page.querySelector(".chkFavorite").checked,AllowHWTranscoding:page.querySelector(".chkTranscode").checked},page=params.id;page&&(info.Id=page),ApiClient.saveTunerHostConfiguration(info).then(function(result){_responsehelper.default.handleConfigurationSavedResponse(),_approuter.default.show(_approuter.default.getRouteUrl("LiveTVSetup",{SavedTunerHostId:(result||{}).Id||info.Id,IsNew:null==params.id}))},function(){var options;_loading.default.hide(),options={text:_globalize.default.translate("ErrorSavingTvProvider")},Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})})}_basesettingsview.default.apply(this,arguments),params.id?view.querySelector(".saveButtonText").innerHTML=_globalize.default.translate("Save"):view.querySelector(".saveButtonText").innerHTML=_globalize.default.translate("HeaderAddTvSource"),view.querySelector(".btnCancel").addEventListener("click",onBackClick),view.querySelector("form").addEventListener("submit",function(e){return e.preventDefault(),e.stopPropagation(),submitForm(view),!1}),view.querySelector(".btnDetect").addEventListener("click",function(){(new _tunerpicker.default).show({serverId:ApiClient.serverId()}).then(function(info){fillTunerHostInfo(view,info)})}),view.querySelector(".btnSelectPath").addEventListener("click",function(){Emby.importModule("./modules/directorybrowser/directorybrowser.js").then(function(directoryBrowser){var picker=new directoryBrowser;picker.show({includeFiles:!0,callback:function(path){path&&(view.querySelector(".txtDevicePath").value=path),picker.close()}})})})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_basesettingsview.default.prototype),View.prototype.loadSettingsInternal=function(){var view=this.view,params=this.params,currentId=params.id;return function(view,type){return ApiClient.getJSON(ApiClient.getUrl("LiveTv/TunerHosts/Types")).then(function(types){types=types.filter(function(t){return t.Id===type})[0];types&&(view.querySelector(".typeName").innerHTML=types.Name)})}(view,params.type).then(function(){return function(view,providerInfo){return view.querySelector(".txtDevicePath").value="",view.querySelector(".chkFavorite").checked=!1,view.querySelector(".txtDevicePath").value="",providerInfo.Id?ApiClient.getTunerHostConfiguration(providerInfo.Id).then(function(info){fillTunerHostInfo(view,info||providerInfo)}):(fillTunerHostInfo(view,providerInfo),Promise.resolve())}(view,{Id:currentId,Type:params.type})})};_exports.default=View}); \ No newline at end of file diff --git a/livetvsetup/setuptab.html b/livetvsetup/setuptab.html new file mode 100644 index 0000000..cae2696 --- /dev/null +++ b/livetvsetup/setuptab.html @@ -0,0 +1,40 @@ +
+
+ +
+ +
+ +
+
+

+ ${HeaderTVSources} +

+ + + +
+ +
+
+
+ +
+
+

${HeaderGuideProviders}

+ +
+ +
+
+
+
\ No newline at end of file diff --git a/livetvsetup/setuptab.js b/livetvsetup/setuptab.js new file mode 100644 index 0000000..78bdc82 --- /dev/null +++ b/livetvsetup/setuptab.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/basetab.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js","./../components/taskbutton.js","./../modules/cardbuilder/cardbuilder.js","./../modules/approuter.js"],function(_exports,_basetab,_globalize,_embyInput,_embyButton,_embySelect,_embyScroller,_embyItemscontainer,_embyPremierecontainer,_taskbutton,_cardbuilder,_approuter){function setTunerNames(providers,tunerDevices){for(var i=0,length=providers.length;i',"")},Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)}).then(function(typeId){!function(allTunerTypes,typeId){allTunerTypes=(allTunerTypes=allTunerTypes.filter(function(t){return t.Id===typeId})[0].SetupUrl)||"livetvsetup/livetvtuner.html?type="+typeId,_approuter.default.show(allTunerTypes)}(allTunerTypes,typeId)})})}function LiveTVSetupTab(view,params){_basetab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles","material-icons"]),Object.assign(LiveTVSetupTab.prototype,_basetab.default.prototype),LiveTVSetupTab.prototype.loadTemplate=function(){return require(["text!livetvsetup/setuptab.html"])},LiveTVSetupTab.prototype.onTemplateLoaded=function(){_basetab.default.prototype.onTemplateLoaded.apply(this,arguments);var view=this.view;view.querySelector(".btnAddDevice").addEventListener("click",function(){addDevice(this)}),view.querySelector(".btnAddProvider").addEventListener("click",function(){_approuter.default.show("livetvsetup/guideprovider.html")}),view.querySelector(".premiereInfo").innerHTML=_globalize.default.translate("DvrSubscriptionRequired",'',""),this.apiClient=ApiClient,this.tunersItemsContainer=view.querySelector(".devicesList"),this.tunersItemsContainer.fetchData=getTunerDevices.bind(this),this.tunersItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{fields:["Name","Url"],multiSelect:!1,draggable:!1,action:"edit",shape:"backdrop",defaultBackground:!0,playQueueIndicator:!1},virtualScrollLayout:"vertical-grid"}}.bind(this),this.providersItemsContainer=view.querySelector(".providerList"),this.providersItemsContainer.fetchData=getListingProviders.bind(this),this.providersItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{fields:["Name","Url","TunerName"],multiSelect:!1,draggable:!1,action:"edit",shape:"backdrop",defaultBackground:!0,playQueueIndicator:!1},virtualScrollLayout:"vertical-grid"}}.bind(this),this.guideRefreshTaskButton=new _taskbutton.default({progressElem:this.view.querySelector(".refreshGuideProgress"),taskKey:"RefreshGuide",button:this.view.querySelector(".btnRefresh")})},LiveTVSetupTab.prototype.onResume=function(options){var _this$guideRefreshTas;return _basetab.default.prototype.onResume.apply(this,arguments),null!=(_this$guideRefreshTas=this.guideRefreshTaskButton)&&_this$guideRefreshTas.resume({}),Promise.all([this.tunersItemsContainer.resume(options),this.providersItemsContainer.resume(options)])},LiveTVSetupTab.prototype.onPause=function(){var _this$guideRefreshTas2;_basetab.default.prototype.onPause.apply(this,arguments),this.tunersItemsContainer.pause(),this.providersItemsContainer.pause(),null!=(_this$guideRefreshTas2=this.guideRefreshTaskButton)&&_this$guideRefreshTas2.pause()},LiveTVSetupTab.prototype.destroy=function(){var _this$guideRefreshTas3;_basetab.default.prototype.destroy.apply(this,arguments),null!=(_this$guideRefreshTas3=this.guideRefreshTaskButton)&&_this$guideRefreshTas3.destroy(),this.guideRefreshTaskButton=null};_exports.default=LiveTVSetupTab}); \ No newline at end of file diff --git a/logs/applogsettingstab.html b/logs/applogsettingstab.html new file mode 100644 index 0000000..36eb018 --- /dev/null +++ b/logs/applogsettingstab.html @@ -0,0 +1,17 @@ +
+
+ +
+ +
+
+ +
${EnableAppLoggingHelp}
+
+
+ +
+
+
\ No newline at end of file diff --git a/logs/applogsettingstab.js b/logs/applogsettingstab.js new file mode 100644 index 0000000..778e91a --- /dev/null +++ b/logs/applogsettingstab.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/basesettingstab.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js"],function(_exports,_basesettingstab,_embyInput,_embyButton,_embySelect,_embyToggle,_embyScroller,_embyItemscontainer){function LogSettingsTab(view,params){_basesettingstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles","material-icons"]),Object.assign(LogSettingsTab.prototype,_basesettingstab.default.prototype),LogSettingsTab.prototype.loadTemplate=function(){return require(["text!logs/applogsettingstab.html"])},LogSettingsTab.prototype.loadSettingsInternal=function(){return this.loadAutoSettings()};_exports.default=LogSettingsTab}); \ No newline at end of file diff --git a/logs/log.css b/logs/log.css new file mode 100644 index 0000000..ae4023b --- /dev/null +++ b/logs/log.css @@ -0,0 +1 @@ +.logViewScroller{overflow-x:scroll!important}.logView .virtual-scroller{contain:layout size!important;contain:style size!important;container-type:initial!important}.logView .listItem{width:auto;min-width:100%} \ No newline at end of file diff --git a/logs/log.js b/logs/log.js new file mode 100644 index 0000000..c06dfcb --- /dev/null +++ b/logs/log.js @@ -0,0 +1 @@ +define(["exports","./../list/list.js","./../modules/common/globalize.js","./../modules/common/servicelocator.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/common/textencoding.js","./../modules/commandprocessor.js","./../modules/common/itemmanager/itemmanager.js"],function(_exports,_list,_globalize,_servicelocator,_embyScroller,_embyButton,_embyToggle,_textencoding,_commandprocessor,_itemmanager){function LogPage(view,params){this.supportsViewSettings=!1,this.enableTotalRecordCountDisplay=!1,this.enableAlphaNumericShortcuts=!1;var html="",html=(html=(html=(html+="
")+('

'+_textencoding.default.htmlEncode(params.name)+"

"))+'
'+'
',params.logType=params.serverId?"server":"app","server"===params.logType&&(html=(html+='
'),html=(html+='")+('"),"server"===params.logType&&_servicelocator.appHost.supports("targetblank")&&(html+=''+_globalize.default.translate("HeaderOpenInNewWindow")+""),html=(html+="
")+"
"+"
",view.querySelector(".itemsViewSettingsContainer").insertAdjacentHTML("beforebegin",html),view.querySelector(".btnDownload")),html=(html&&html.addEventListener("click",function(){var _this$view$querySelec;_commandprocessor.default.executeCommand("download",[this.getParentItem()],{Sanitize:null==(_this$view$querySelec=this.view.querySelector(".chkSanitize"))?void 0:_this$view$querySelec.checked})}.bind(this)),view.querySelector(".btnShare"));html&&html.addEventListener("click",function(){var _this$view$querySelec2;_commandprocessor.default.executeCommand("share",[this.getParentItem()],{Sanitize:null==(_this$view$querySelec2=this.view.querySelector(".chkSanitize"))?void 0:_this$view$querySelec2.checked})}.bind(this)),null!=(html=view.querySelector(".chkSanitize"))&&html.addEventListener("change",function(){this.setNewWindowHref(),this.itemsContainer.refreshItems()}.bind(this)),view.classList.add("logView"),_list.default.call(this,view,params),this.scroller.classList.add("logViewScroller"),this.setNewWindowHref()}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles","css!logs/log.css"]),Object.assign(LogPage.prototype,_list.default.prototype),LogPage.prototype.fetchItem=function(){var defaultItem={Name:this.params.name,Type:"Log",ServerId:this.params.serverId},logsPromise=this.params.serverId?this.getApiClient().getLogs({}):_servicelocator.appLogger.getLogFiles({});return logsPromise.then(function(result){for(var items=result.Items,i=0,length=items.length;i + +
+
+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/logs/logs.js b/logs/logs.js new file mode 100644 index 0000000..c325c1a --- /dev/null +++ b/logs/logs.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/globalize.js","./../modules/tabbedview/tabbedview.js"],function(_exports,_globalize,_tabbedview){function LogsView(view,params){_tabbedview.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(LogsView.prototype,_tabbedview.default.prototype),LogsView.prototype.getMode=function(){return-1===window.location.href.toString().toLowerCase().indexOf("applog")?"server":"app"},LogsView.prototype.getTabs=function(){return[{name:_globalize.default.translate("Logs"),id:"logs"},{name:_globalize.default.translate("Settings"),id:"serverlogsettings",enabled:"server"===this.getMode()},{name:_globalize.default.translate("Settings"),id:"applogsettings",enabled:"app"===this.getMode()}]},LogsView.prototype.loadTabController=function(id){return Emby.importModule("./logs/"+id+"tab.js")};_exports.default=LogsView}); \ No newline at end of file diff --git a/logs/logstab.js b/logs/logstab.js new file mode 100644 index 0000000..09542eb --- /dev/null +++ b/logs/logstab.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/itemstab.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/common/globalize.js","./../modules/common/servicelocator.js"],function(_exports,_itemstab,_embyScroller,_embyButton,_globalize,_servicelocator){function LogsTab(view,params){this.enableAlphaNumericShortcuts=!1,_itemstab.default.call(this,view,params)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles"]),Object.assign(LogsTab.prototype,_itemstab.default.prototype),LogsTab.prototype.getMode=function(){return-1===window.location.href.toString().toLowerCase().indexOf("applog")?"server":"app"},LogsTab.prototype.getApiClientQueryMethodName=function(){return"getLogs"},LogsTab.prototype.getItems=function(query){return"server"===this.getMode()?_itemstab.default.prototype.getItems.apply(this,arguments):_servicelocator.appLogger.getLogFiles(query||{})},LogsTab.prototype.getBaseListRendererOptions=function(){var options=_itemstab.default.prototype.getBaseListRendererOptions.apply(this,arguments);return options.draggable=!1,options.draggableXActions=!0,options.action="link",options.playQueueIndicator=!1,options},LogsTab.prototype.getListViewOptions=function(items,settings){var options=_itemstab.default.prototype.getListViewOptions.apply(this,arguments);return options.transparentIcon=!0,options.enableDefaultIcon=!0,options.roundImage=!0,options.moreButton=!0,options.downloadButton=!0,options},LogsTab.prototype.getCardOptions=function(items,settings){var options=_itemstab.default.prototype.getCardOptions.apply(this,arguments);return options.shape="backdrop",options.defaultBackground=!0,options},LogsTab.prototype.getItemTypes=function(){return["Log"]},LogsTab.prototype.getSettingsKey=function(){return"logs"},LogsTab.prototype.setTitle=function(){},LogsTab.prototype.getItemCountText=function(numItems){return 1===numItems?_globalize.default.translate("OneLog"):_globalize.default.translate("LogCountValue",numItems)},LogsTab.prototype.loadTemplate=function(){return this.loadItemsTemplate()};_exports.default=LogsTab}); \ No newline at end of file diff --git a/logs/serverlogsettingstab.html b/logs/serverlogsettingstab.html new file mode 100644 index 0000000..d3cc784 --- /dev/null +++ b/logs/serverlogsettingstab.html @@ -0,0 +1,20 @@ +
+
+ +
+ +
+
+ +
${EnableDebugLoggingHelp}
+
+
+ +
+
+
\ No newline at end of file diff --git a/logs/serverlogsettingstab.js b/logs/serverlogsettingstab.js new file mode 100644 index 0000000..372e5fd --- /dev/null +++ b/logs/serverlogsettingstab.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/basesettingstab.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js"],function(_exports,_basesettingstab,_embyInput,_embyButton,_embySelect,_embyToggle,_embyScroller,_embyItemscontainer){function LogSettingsTab(view,params){_basesettingstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles","material-icons"]),Object.assign(LogSettingsTab.prototype,_basesettingstab.default.prototype),LogSettingsTab.prototype.loadTemplate=function(){return require(["text!logs/serverlogsettingstab.html"])},LogSettingsTab.prototype.onTemplateLoaded=function(){_basesettingstab.default.prototype.onTemplateLoaded.apply(this,arguments),this.view.querySelector(".selectLogLevel").addEventListener("change",function(e){var value=e.target.value,apiClient=this.getApiClient();apiClient.getServerConfiguration().then(function(config){config.EnableDebugLevelLogging=!!value,config.EnableDebugLevelLogging?config.RevertDebugLogging="yes"===value?null:value:config.RevertDebugLogging=null,apiClient.updateServerConfiguration(config)})}.bind(this))},LogSettingsTab.prototype.loadSettingsInternal=function(){var instance=this;return this.getApiClient().getServerConfiguration().then(function(config){var value="";return config.EnableDebugLevelLogging&&(value="restart"===config.RevertDebugLogging?"restart":"rotate"===config.RevertDebugLogging?"rotate":"yes"),instance.view.querySelector(".selectLogLevel").value=value,instance.loadAutoSettings()})};_exports.default=LogSettingsTab}); \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..8ef8e30 --- /dev/null +++ b/manifest.json @@ -0,0 +1,71 @@ +{ + "name": "Emby", + "short_name": "Emby", + "start_url": "/web/index.html", + "description": "Your media, your way.", + "lang": "en-US", + "related_applications": [ + { + "platform": "play", + "url": "https://play.google.com/store/apps/details?id=com.mb.android" + }, + { + "platform": "itunes", + "url": "https://itunes.apple.com/us/app/emby/id992180193?ls=1&mt=8" + } + ], + "icons": [ + { + "src": "images/icon-72x72.png", + "sizes": "72x72", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "images/icon-96x96.png", + "sizes": "96x96", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "images/icon-128x128.png", + "sizes": "128x128", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "images/icon-144x144.png", + "sizes": "144x144", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "images/icon-152x152.png", + "sizes": "152x152", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "images/icon-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "images/icon-384x384.png", + "sizes": "384x384", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "images/icon-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any maskable" + } + ], + "display_override": [ "window-controls-overlay", "standalone" ], + "display": "standalone", + "theme_color": "#52B54B", + "background_color": "#000" +} \ No newline at end of file diff --git a/metadatamanager/librarytree.js b/metadatamanager/librarytree.js new file mode 100644 index 0000000..8cb2aa1 --- /dev/null +++ b/metadatamanager/librarytree.js @@ -0,0 +1 @@ +define(["exports","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/listview/listview.js","./../modules/shortcuts.js","./../modules/common/globalize.js"],function(_exports,_embyItemscontainer,_listview,_shortcuts,_globalize){function getListViewOptions(){return{fields:["Name"],highlight:!1,mediaInfo:!1,enableSideMediaInfo:!1,dropTarget:!1,hoverPlayButton:!1,imagePlayButton:!1,multiSelect:!1,draggable:!1,draggableXActions:!1,contextMenu:!1,enableOverview:!1,hoverMenu:!1,action:"custom",enableUserDataButtons:!1,moreButton:!1,listItemBodyClassName:"libraryTreeListItemBody",imageContainerClass:"libraryTreeListItemImageContainer",iconClass:"libraryTreeItemIcon",enableDefaultIcon:!0,preferIcon:!0,treeButton:!0,treeButtonClass:"btnToggleLibraryTreeNode",itemClass:"libraryTreeItem",artist:!1,gameSystem:!1,isBoundListItem:!1,playQueueIndicator:!1}}function onItemAction(e){var _instance$getCurrentI,item=e.detail.item;"livetv"===item.CollectionType||"UserView"===item.Type||"CollectionFolder"===item.Type||item.CollectionType||"AppCategory"===item.Type||item.Id!==(null==(_instance$getCurrentI=this.getCurrentItem())?void 0:_instance$getCurrentI.Id)&&((_instance$getCurrentI=e.target.closest(".listItem")).classList.add("navMenuOption-selected"),this.setCurrentItem(item,_instance$getCurrentI),this.options.view.dispatchEvent(new CustomEvent("itemchange",{detail:{item:item},bubbles:!0,cancelable:!1})))}function getSubtree(instance,listItem,create){var tree=listItem.nextElementSibling;return tree&&tree.classList.contains("librarySubTree")?tree:create?(listItem.insertAdjacentHTML("afterend",'
'),(tree=listItem.nextElementSibling).addEventListener("click",onClick.bind(instance)),tree.addEventListener("action-null",onItemAction.bind(instance)),tree):null}function getSubtreeItems(listItem,apiClient){var item=_shortcuts.default.getItemFromElement(listItem);if("livetv"===item.CollectionType)return apiClient.getLiveTvChannels({AddCurrentProgram:!1});if("categories"===item.Id)return function(apiClient){var items=[],serverId=apiClient.serverId();return items.push({Id:"category_videos",ServerId:serverId,Type:"Video",MediaType:"Video",Name:_globalize.default.translate("Videos")}),items.push({Id:"category_audio",ServerId:serverId,Type:"Audio",MediaType:"Audio",Name:_globalize.default.translate("Audio")}),items.push({Id:"category_photos",ServerId:serverId,Type:"Photo",MediaType:"Photo",Name:_globalize.default.translate("Photos")}),items.push({Id:"category_games",ServerId:serverId,Type:"Game",MediaType:"Game",Name:_globalize.default.translate("Games")}),items.push({Id:"category_books",ServerId:serverId,Type:"Book",MediaType:"Book",Name:_globalize.default.translate("Books")}),apiClient.isMinServerVersion("4.8.2")&&items.push({Id:"category_missingepisodes",ServerId:serverId,Type:"Folder",Name:_globalize.default.translate("HeaderMissingEpisodes")}),Promise.resolve(items)}(apiClient);if("CollectionFolder"===item.Type)switch(item.CollectionType){case"playlists":case"boxsets":break;default:return function(apiClient,item){var items=[],apiClient=apiClient.serverId(),idPrefix="mmview_"+item.Id+"_",collectionType=item.CollectionType,subviews=item.Subviews||[];if(!subviews.length)switch(collectionType){case"tvshows":subviews=["series"];break;case"movies":subviews=["movies"];break;case"games":subviews=["games","gamesystems"];break;case"homevideos":case"photos":subviews=["photos","videos"]}return subviews.includes("gamesystems")&&items.push({Id:idPrefix+"itemtype_GameSystem",ServerId:apiClient,Name:_globalize.default.translate("Systems"),OriginalItem:item,Type:"AppCategory",IsFolder:!0}),subviews.includes("games")&&items.push({Id:idPrefix+"itemtype_Game",ServerId:apiClient,Name:_globalize.default.translate("Games"),OriginalItem:item,Type:"AppCategory",IsFolder:!0}),subviews.includes("videos")&&items.push({Id:idPrefix+"itemtype_Video",ServerId:apiClient,Name:_globalize.default.translate("Videos"),OriginalItem:item,Type:"AppCategory",IsFolder:!0}),subviews.includes("photos")&&items.push({Id:idPrefix+"itemtype_Photo",ServerId:apiClient,Name:_globalize.default.translate("Photos"),OriginalItem:item,Type:"AppCategory",IsFolder:!0}),subviews.includes("movies")&&items.push({Id:idPrefix+"itemtype_Movie",ServerId:apiClient,Name:_globalize.default.translate("Movies"),OriginalItem:item,Type:"AppCategory",IsFolder:!0}),subviews.includes("series")&&items.push({Id:idPrefix+"itemtype_Series",ServerId:apiClient,Name:_globalize.default.translate("Shows"),OriginalItem:item,Type:"AppCategory",IsFolder:!0}),items.push({Id:idPrefix+"folders",ServerId:apiClient,Name:_globalize.default.translate("Folders"),OriginalItem:item,Type:"AppCategory",IsFolder:!0}),Promise.resolve(items)}(apiClient,item)}return item.Id.startsWith("mmview_")?(listItem=item.Id.split("_"),getViewContent(apiClient,item,listItem[2],listItem[3])):getViewContent(apiClient,item,"folders")}function getViewContent(apiClient,listItem,viewType,itemType){listItem={ParentId:(listItem.OriginalItem||listItem).Id,Fields:"Settings",EnableTotalRecordCount:!1,EnableImages:!1,EnableUserData:!1};return"itemtype"===viewType?(listItem.IncludeItemTypes=itemType,listItem.Recursive=!0):(listItem.IsMissing=!1,listItem.IsVirtualUnaired=!1,listItem.GroupByPresentationUniqueKey=!1),apiClient.getItems(apiClient.getCurrentUserId(),listItem)}function showSubtree(instance,listItem){var tree=getSubtree(instance,listItem,!0);tree._itemsLoaded||(tree._itemsLoaded=!0,function(listItem,tree,apiClient){getSubtreeItems(listItem,apiClient).then(function(result){var result=result.Items||result,options=getListViewOptions();options.itemsContainer=tree,_listview.default.buildItems(result,options)})}(listItem,tree,instance.getApiClient())),tree.classList.remove("hide")}function onClick(e){var listItem,e=e.target.closest(".btnToggleLibraryTreeNode");e&&(listItem=e.closest(".listItem"),e.classList.toggle("btnToggleLibraryTreeNode-expanded")?showSubtree(this,listItem):null!=(e=getSubtree(this,listItem))&&e.classList.add("hide"))}function LibraryTree(options){this.options=options;options=this.options.view;options.addEventListener("click",onClick.bind(this)),options.addEventListener("action-null",onItemAction.bind(this)),options.fetchData=function(query){var apiClient=this.getApiClient();return apiClient.getUserViews(Object.assign({},query),apiClient.getCurrentUserId()).then(function(result){result=result.Items;return(result=result.slice(0)).push({Name:_globalize.default.translate("Views"),Id:"categories",ServerId:apiClient.serverId(),Type:"AppCategory",IsFolder:!0}),result},function(err){return console.log("error getting user views: "+err),[]})}.bind(this),options.getListOptions=function(){return{renderer:_listview.default,options:getListViewOptions(),virtualScrollLayout:"vertical-grid"}}.bind(this),options.refreshOnItemUpdated=!1,this.itemsContainer=options}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons","css!metadatamanager/metadatamanager.css"]),LibraryTree.prototype.getApiClient=function(){return this.options.apiClient},LibraryTree.prototype.getCurrentItem=function(){return this.currentItem},LibraryTree.prototype.setCurrentItem=function(item,listItem){var _this$currentListItem;null!=(_this$currentListItem=this.currentListItem)&&_this$currentListItem.classList.remove("navMenuOption-selected"),this.currentListItem=listItem,this.currentItem=item},LibraryTree.prototype.resume=function(options){return this.itemsContainer.resume(options)},LibraryTree.prototype.destroy=function(){this.options=null,this.currentListItem=null,this.currentItem=null};_exports.default=LibraryTree}); \ No newline at end of file diff --git a/metadatamanager/metadatamanager.css b/metadatamanager/metadatamanager.css new file mode 100644 index 0000000..f57a610 --- /dev/null +++ b/metadatamanager/metadatamanager.css @@ -0,0 +1 @@ +.metadataEditorPage .editMetadataForm{margin:0}.editPageSidebar-scroller{overflow-x:auto;-webkit-border-end:.08em solid var(--line-background);border-inline-end:.08em solid var(--line-background)}.libraryTree{-webkit-padding-start:calc(1ch + env(safe-area-inset-left,0));padding-inline-start:calc(1ch + env(safe-area-inset-left,0));-webkit-padding-end:.1ch;padding-inline-end:.1ch}.libraryTreeItem{border-radius:.6em;contain:none}.libraryTreeItem>.listItem-content{contain:none}.libraryTreeItemIcon{font-size:120%;padding:0!important}.libraryTreeListItemBody{min-height:initial!important;-webkit-padding-start:.25em;padding-inline-start:.25em;-webkit-padding-end:.25em;padding-inline-end:.25em;overflow:visible}.libraryTreeListItemImageContainer{width:auto!important;height:auto!important;margin-top:0!important;margin-bottom:0!important;-webkit-margin-start:0!important;margin-inline-start:0!important;-webkit-margin-end:.45ch!important;margin-inline-end:.45ch!important;aspect-ratio:initial!important;contain:none!important}.editPageSidebar{width:30%;width:clamp(30ch,50ch,30%);height:100%;box-sizing:border-box;-webkit-flex-shrink:0;flex-shrink:0}.editPageInnerContent .viewContent-fixed{left:clamp(30ch,50ch,30%);inset-inline-start:clamp(30ch,50ch,30%);inset-inline-end:0}.editPageInnerContent{height:100%;box-sizing:border-box;overflow:hidden}.btnToggleLibraryTreeNode{margin:0!important;transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out;-webkit-flex-shrink:0;flex-shrink:0}@media all and (pointer:fine){.btnToggleLibraryTreeNode{padding:.3em!important}}.btnToggleLibraryTreeNode-expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.librarySubTree{-webkit-margin-start:2ch;margin-inline-start:2ch}.editorListView{height:100%} \ No newline at end of file diff --git a/metadatamanager/metadatamanager.html b/metadatamanager/metadatamanager.html new file mode 100644 index 0000000..5f2fb88 --- /dev/null +++ b/metadatamanager/metadatamanager.html @@ -0,0 +1,13 @@ +
+ +
+
+
+ +
+
+
+ +
+
+
\ No newline at end of file diff --git a/metadatamanager/metadatamanager.js b/metadatamanager/metadatamanager.js new file mode 100644 index 0000000..797625c --- /dev/null +++ b/metadatamanager/metadatamanager.js @@ -0,0 +1 @@ +define(["exports","./../modules/loading/loading.js","./librarytree.js","./../modules/metadataeditor/metadataeditor.js","./../modules/viewmanager/baseview.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/common/globalize.js","./../list/list.js"],function(_exports,_loading,_librarytree,_metadataeditor,_baseview,_embyScroller,_globalize,_list){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!metadatamanager/metadatamanager.css"]);var idPrefix="category_";function refresh(instance,item){_loading.default.show(),instance.destroyCurrentContent(),item?item.Id.startsWith(idPrefix)?function(instance,item){require(["text!list/list.html"]).then(function(responses){var responses=responses[0],responses=(instance.contentElement.classList.remove("padded-top-page"),instance.contentElement.innerHTML=_globalize.default.translateDocument(responses),instance.contentElement.querySelector(".view")),params=(responses.classList.remove("view"),responses.classList.add("flex-grow","editorListView"),{setTitle:!1,defaultView:"datagrid"});switch(item.Id){case idPrefix+"videos":params.mediaTypes="Video";break;case idPrefix+"games":params.mediaTypes="Game";break;case idPrefix+"books":params.mediaTypes="Book";break;case idPrefix+"photos":params.mediaTypes="Photo";break;case idPrefix+"audio":params.mediaTypes="Audio";break;case idPrefix+"missingepisodes":params.type="missingepisodes"}instance.editor=new _list.default(responses,params),instance.editor.onResume({refresh:!0})})}(instance,item):(instance.contentElement.classList.add("padded-top-page"),instance.currentMetadataEditor&&(instance.currentMetadataEditor.destroy(),instance.currentMetadataEditor=null),instance.currentMetadataEditor=new _metadataeditor.default,instance.currentMetadataEditor.embed(instance.contentElement,item.Id,item.ServerId)):(instance.contentElement.innerHTML="",_loading.default.hide())}function MetadataManagerView(view,params){_baseview.default.apply(this,arguments);var libraryTreeElem=view.querySelector(".libraryTree"),instance=(this.libraryTree=new _librarytree.default({view:libraryTreeElem,apiClient:this.getApiClient()}),this);this.contentElement=view.querySelector(".editPageInnerContent"),libraryTreeElem.addEventListener("itemchange",function(event){event=event.detail.item;refresh(instance,event)})}Object.assign(MetadataManagerView.prototype,_baseview.default.prototype),MetadataManagerView.prototype.onResume=function(options){var _this$editor;_baseview.default.prototype.onResume.apply(this,arguments),options.refresh&&(refresh(this,this.libraryTree.getCurrentItem()),this.libraryTree.resume(options)),null!=(_this$editor=this.editor)&&_this$editor.onResume&&this.editor.onResume(options),null!=(_this$editor=this.currentMetadataEditor)&&_this$editor.resume(options)},MetadataManagerView.prototype.onPause=function(){var _this$editor2;_baseview.default.prototype.onResume.apply(this,arguments),null!=(_this$editor2=this.editor)&&_this$editor2.onPause&&this.editor.onPause(),null!=(_this$editor2=this.currentMetadataEditor)&&_this$editor2.pause()},MetadataManagerView.prototype.destroyCurrentContent=function(){var editor=this.editor;editor&&(editor.onPause&&editor.onPause(),editor.destroy&&editor.destroy(),this.editor=null)},MetadataManagerView.prototype.destroy=function(){_baseview.default.prototype.destroy.apply(this,arguments),this.destroyCurrentContent(),this.currentMetadataEditor&&(this.currentMetadataEditor.destroy(),this.currentMetadataEditor=null),this.libraryTree&&(this.libraryTree.destroy(),this.libraryTree=null),this.contentElement=null};_exports.default=MetadataManagerView}); \ No newline at end of file diff --git a/modules/actionsheet/actionsheet.css b/modules/actionsheet/actionsheet.css new file mode 100644 index 0000000..996526c --- /dev/null +++ b/modules/actionsheet/actionsheet.css @@ -0,0 +1 @@ +.actionSheet{-webkit-flex-direction:column;flex-direction:column;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;padding:0;border:none;min-width:16ch;max-height:84%;max-width:90%;-webkit-user-select:none;user-select:none}.actionSheet-virtualscroll{max-height:70vh;max-height:min(30em,70vh);min-height:20em}.actionSheet-focusscale{contain:style}.actionsheet-centered{text-align:center;-webkit-align-items:center;align-items:center}.actionSheetMenuItem{font-weight:inherit;box-shadow:none;-webkit-flex-shrink:0;flex-shrink:0}.actionsheetListItemBody{padding-top:.5em!important;padding-bottom:.5em!important;-webkit-padding-start:.6em!important;padding-inline-start:.6em!important;-webkit-padding-end:1em!important;padding-inline-end:1em!important;min-height:initial!important}.actionsheet-draghandle{padding:0!important}.actionsheetListItemBody-multiple{min-height:initial!important;padding-top:.6em!important;padding-bottom:.6em!important}.actionsheetListItemBody-iconright{-webkit-padding-start:1em!important;padding-inline-start:1em!important;-webkit-padding-end:2em!important;padding-inline-end:2em!important;min-width:8em}@media not all and (pointer:fine){.actionsheetListItemBody-iconright{-webkit-padding-end:3em!important;padding-inline-end:3em!important}}.actionSheetScroller-padding-inline .actionsheetListItemBody-iconright{-webkit-padding-start:.25em!important;padding-inline-start:.25em!important}.actionSheetItemText{vertical-align:middle;-webkit-flex-grow:1;flex-grow:1;-webkit-justify-content:flex-start;justify-content:flex-start}.actionSheetItemAsideText{font-size:90%;display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-margin-start:5ch;margin-inline-start:5ch;-webkit-margin-end:.5em;margin-inline-end:.5em}.actionSheetMenuItem-iconright .listItem-content,.actionSheetMenuItem-iconright.actionSheetMenuItem{-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.actionSheetMenuItem-iconright .actionSheetItemAsideText{-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-margin-end:5ch;margin-inline-end:5ch;-webkit-margin-start:.5em;margin-inline-start:.5em}.actionSheetMenuItem:last-child .listItem-border::after,.actionsheet-noborder::after{display:none!important}@media all and (pointer:fine){.actionsheet-noborderconditional::after{display:none!important}}.actionSheetScroller{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box}.actionSheetScroller-padding-inline{-webkit-padding-start:1.15em;padding-inline-start:1.15em;-webkit-padding-end:1.15em;padding-inline-end:1.15em}.actionSheetScroller-padding-top{padding-top:.5em}.actionSheetScroller-padding-bottom{padding-bottom:.5em}@media not all and (pointer:fine){.actionSheetScroller-padding-inline{-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:0;padding-inline-end:0}.actionSheetScroller-padding-inline .listItem-content{-webkit-padding-start:1.25em!important;padding-inline-start:1.25em!important;-webkit-padding-end:1.25em!important;padding-inline-end:1.25em!important}.actionSheetScroller-padding-inline .actionSheetMenuItem-noicon .listItem-content{-webkit-padding-start:.5em!important;padding-inline-start:.5em!important;-webkit-padding-end:.5em!important;padding-inline-end:.5em!important}}.actionSheetScroller-focusscale{margin:0 -1em;padding:0 1.6em;width:auto}.actionSheetScroller-fullscreen{max-height:74%;max-width:64%;width:auto}.actionSheetScroller-fullscreen-virtual{max-width:initial;width:60ch;width:min(64%,60ch)}.actionsheetScrollSlider{container-type:initial!important;container-name:initial!important;-webkit-flex-shrink:0;flex-shrink:0}.actionsheetScrollSlider.virtual-scroller-overflowvisible{contain:style size}.actionsheetScrollSlider-bottompadded{padding-bottom:.35em}.actionsheet-scrollSlider-multiple{padding:.5em .25em}.actionSheetTitle{padding:0 .8em;-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;text-align:center}.actionSheetTitle-small{font-weight:700;margin:1em 0 .5em}@media not all and (pointer:fine){.actionSheetTitle-small{font-size:116%}}@media all and (min-width:50em) and (min-height:50em){.actionSheetTitle-hideNonFullscreen{display:none!important}}.actionSheetText{padding:0 1.15em;-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0}.actionSheetBottomText{padding:1em;-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;text-align:start;font-size:92%;max-width:60em}.actionSheetItemImageContainer{content-visibility:initial!important;contain:style!important}.actionSheetItemImageContainer-transparent{background:0 0!important}.actionSheetItemImageContainer-customsize{height:2em!important;aspect-ratio:initial!important}.actionSheetItemImageContainer-customwidth:not(.d){width:3.99em!important}.actionsheetMenuItemIcon{margin-top:0!important;margin-bottom:0!important;-webkit-margin-start:0!important;margin-inline-start:0!important;-webkit-margin-end:0!important;margin-inline-end:0!important;padding:0!important}@media all and (pointer:fine){.actionSheet-smallfont{font-size:91%!important}}.actionsheetItemPreviewContent{padding-top:.5em;padding-bottom:.5em;-webkit-padding-start:1em;padding-inline-start:1em;-webkit-padding-end:2.1em;padding-inline-end:2.1em;margin:0 -1em;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-justify-content:center;justify-content:center;font-size:94%;-webkit-flex-grow:1;flex-grow:1;text-align:start;max-width:15em}.actionsheetItemPreviewContent-long{max-width:50ch}@media not all and (min-height:36em),not all and (min-width:25em){.actionsheetItemPreviewContent{max-width:initial}}.btnCloseActionSheet{position:fixed;top:.75em;left:.5em;inset-inline-start:.5em;inset-inline-end:initial!important}.actionSheet-bottom{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;padding:0 1.5em}.actionsheetItemPreview{padding-top:.5em}.actionsheetItemPreviewImage-bg{margin-top:.5em;margin-bottom:.5em;-webkit-margin-start:1.1em;margin-inline-start:1.1em;-webkit-margin-end:1em;margin-inline-end:1em;height:4.8em;border-radius:.42em;background-position:center center;background-size:contain;background-repeat:no-repeat;-webkit-flex-shrink:0;flex-shrink:0;-webkit-align-self:center;align-self:center}.actionsheetItemPreviewImage-bg-backdrop{height:2.7em;width:4.8em}.actionsheetItemPreviewImage-bg-fourThree{height:3.6em;width:4.8em}.actionsheetItemPreviewImage-bg-portrait{width:3.2em}.actionsheetItemPreviewImage-bg-square{width:4.8em}@supports (aspect-ratio:2 / 3){.actionsheetItemPreviewImage-bg-backdrop{width:auto}.actionsheetItemPreviewImage-bg-portrait{width:auto}.actionsheetItemPreviewImage-bg-square{width:auto}.actionsheetItemPreviewImage-bg-fourThree{width:auto}}.actionsheetItemPreviewImage-iconcontainer{margin-top:.5em;margin-bottom:.5em;-webkit-margin-start:1.1em;margin-inline-start:1.1em;-webkit-margin-end:.9em;margin-inline-end:.9em;padding:.7em;border-radius:.42em;background:rgba(120,120,120,.3);-webkit-flex-shrink:0;flex-shrink:0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.actionsheetItemPreviewImage-icon{height:1em;width:1em;font-size:2.4em}.actionsheetItemPreviewText{overflow:hidden;text-overflow:ellipsis;margin:0 -1em!important;padding:0 1em!important;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-flex-wrap:wrap;flex-wrap:wrap}.actionsheetItemPreviewText-main{-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.actionsheetPreviewTextItem{max-width:100%;max-width:min(100%,60ch);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}.actionsheetItemPreviewText:focus-within{overflow:visible}.actionsheetItemPreviewText:not(.secondaryText){font-weight:600}.actionsheetItemPreviewImage-round{border-radius:100em}.icon_circle_strike{position:relative;border:.12em solid currentcolor;border-radius:100em;font-size:140%!important}.icon_circle_strike::after{position:absolute;left:0;right:0;inset-inline-start:0;inset-inline-end:0;content:" ";width:200%;height:.14em;background:currentcolor;-webkit-transform:rotateZ(40deg);transform:rotateZ(40deg);-webkit-transform-origin:left top;transform-origin:left top} \ No newline at end of file diff --git a/modules/actionsheet/actionsheet.js b/modules/actionsheet/actionsheet.js new file mode 100644 index 0000000..3b09684 --- /dev/null +++ b/modules/actionsheet/actionsheet.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/connectionmanager.js","./../dom.js","./../common/globalize.js","./../layoutmanager.js","./../common/itemmanager/itemmanager.js","./../common/imagehelper.js","./../dialoghelper/dialoghelper.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../approuter.js","./../focusmanager.js","./../listview/listview.js","./../shortcuts.js","./../common/textencoding.js"],function(_exports,_connectionmanager,_dom,_globalize,_layoutmanager,_itemmanager,_imagehelper,_dialoghelper,_embyButton,_embyScroller,_embyItemscontainer,_approuter,_focusmanager,_listview,_shortcuts,_textencoding){function onCancelClick(e){_dialoghelper.default.close(this.closest(".actionSheet"))}function getTextLinkButton(item){var href=_approuter.default.getRouteUrl(item);return''+_textencoding.default.htmlEncode(item.Name)+""}function autoFocusInternal(dlg,options){var focused=_focusmanager.default.autoFocus(dlg.querySelector(".itemsContainer"),options);focused||null!=options&&options.skipIfNotEnabled&&!_focusmanager.default.isAutoFocusEnabled()||_focusmanager.default.autoFocus(dlg,options)}function onItemsContainerUpgraded(){return this.querySelector(".itemsContainer").resume({refresh:!0})}function refreshItemsContainer(){var itemsContainer=this.querySelector(".itemsContainer");return itemsContainer.resume?onItemsContainerUpgraded.call(this):function(instance,itemsContainer){return new Promise(function(resolve,reject){_dom.default.addEventListener(itemsContainer,"upgraded",function(){onItemsContainerUpgraded.call(instance).then(resolve,reject)},{once:!0})})}(this,itemsContainer)}function getListViewItemFromInputItem(option,options){var isSelected,item={Name:option.Name||option.name||option.textContent||option.innerText,ServerId:option.ServerId||null,MediaType:option.MediaType||null,IsFolder:option.IsFolder,Type:option.Type,Overview:option.Overview,PrimaryImageAspectRatio:option.PrimaryImageAspectRatio,RunTimeTicks:option.RunTimeTicks,IndexNumber:option.IndexNumber,IndexNumberEnd:option.IndexNumberEnd,SupportsResume:option.SupportsResume,ParentIndexNumber:option.ParentIndexNumber,ProductionYear:option.ProductionYear,PremiereDate:option.PremiereDate,SeriesName:option.SeriesName,NameSubtitle:option.nameSubtitle,Artists:option.Artists,ArtistItems:option.ArtistItems,AlbumArtists:option.AlbumArtists,Composers:option.Composers,AlbumArtist:option.AlbumArtist,Album:option.Album,AlbumId:option.AlbumId,SeriesId:option.SeriesId,SeasonId:option.SeasonId,SeasonName:option.SeasonName,ImageTags:option.ImageTags,BackdropImageTags:option.BackdropImageTags,PrimaryImageTag:option.PrimaryImageTag,AlbumPrimaryImageTag:option.AlbumPrimaryImageTag,SeriesPrimaryImageTag:option.SeriesPrimaryImageTag,ParentThumbItemId:option.ParentThumbItemId,ParentThumbImageTag:option.ParentThumbImageTag,ParentLogoItemId:option.ParentLogoItemId,ParentLogoImageTag:option.ParentLogoImageTag,ParentBackdropItemId:option.ParentBackdropItemId,ParentBackdropImageTags:option.ParentBackdropImageTags,ImageUrl:option.ImageUrl,hasDivider:option.dividerAfter,CanReorder:option.CanReorder},selectedValuesIncludesId=(options.nameProperty&&null!=option[options.nameProperty]&&(item.Name=option[options.nameProperty]),options.getItemId?item.Id=options.getItemId(option):null!=option.Id?item.Id=option.Id:null!=option.id&&""!==option.id?item.Id=option.id:null!=option.value?item.Id=option.value:item.Id=option.Name||option.name,null!=item.Id&&options.selectedValuesClone.includes(item.Id));return options.multiple?(isSelected=options.emptyValueSetEqualsAll&&!options.selectedValuesClone.length||selectedValuesIncludesId,item.Selected=isSelected):item.Selected=option.selected||option.Selected||selectedValuesIncludesId,item.Icon=option.icon||option.Icon||(options.useIconForSelection&&item.Selected&&options.hasItemSelectionState?"":null),item.iconClass=option.iconClass,item.asideText=option.asideText,item.asideIcon=option.asideIcon||(options.useAsideIconForSelection&&item.Selected&&options.hasItemSelectionState?"":null),item.executeActionOnClick=option.executeActionOnClick,item.ShortOverview=options.getItemSecondaryText?options.getItemSecondaryText(option):option.secondaryText||option.title||option.ShortOverview,item.originalItem=option,item}function getItemsFn(options){return function(query){if(query=query||{},options.getItems)return function(options,query){return options.getItems(query).then(function(result){for(var items=result.Items.slice(0),i=0,length=items.length;iquery.Limit&&(items.length=Math.min(items.length,query.Limit)),Promise.resolve({Items:items,TotalRecordCount:totalRecordCount})}}function onItemsChecked(options){for(var items=options.items,checked=options.checked,i=0,length=items.length;i':useVirtualScroller&&(forceAutoFocus+='');(!options.title||options.hasItemIcon||options.hasItemImage||options.hasItemSelectionState)&&!isFullscreen||dlg.classList.add("actionsheet-centered");for(var selectNoneText,enablePaddingInline,previewHtml="",previewHtml=(options.item&&(previewHtml=function(options,item){var html="",apiClient=(html+='
',_connectionmanager.default.getApiClient(item)),imageUrl=(imageUrlInfo=_imagehelper.default.getImageUrl(item,apiClient,{height:60,width:200})).imgUrl,imgClass="",round="MusicArtist"===item.Type,html=imageUrl?(imageUrlInfo=imageUrlInfo.aspect||1,imgClass=(imgClass+=" actionsheetItemPreviewImage-bg")+" actionsheetItemPreviewImage-bg-"+(shape=_imagehelper.default.getShapeFromAspect(imageUrlInfo)),round&&"square"===shape&&(imgClass+=" actionsheetItemPreviewImage-round"),html+('
'):(imgClass+=" actionsheetItemPreviewImage-iconcontainer",round&&(imgClass+=" actionsheetItemPreviewImage-round"),(html=html+('
')+_itemmanager.default.getDefaultIcon(item)+"
"),lines=(html+='
',[]),shape=(item.SeriesName?item.SeriesId?lines.push(getTextLinkButton({Type:"Series",Id:item.SeriesId,Name:item.SeriesName,IsFolder:!0,ServerId:item.ServerId})):lines.push(_textencoding.default.htmlEncode(item.SeriesName||"")):"Program"===item.Type&&lines.push(_textencoding.default.htmlEncode(item.Name||"")),_textencoding.default.htmlEncode(_itemmanager.default.getDisplayName(item,{})||"")),imageUrlInfo='
'+shape+"
",round=("Audio"!==item.MediaType||_layoutmanager.default.tv||!1===options.linkToItem||(imageUrlInfo+=''),lines.push(imageUrlInfo),"Server"===item.Type&&apiClient&&apiClient.serverVersion()&&lines.push(apiClient.serverVersion()),"User"===item.Type&&options.showServerName&&(imageUrl=apiClient.serverName())&&lines.push(_textencoding.default.htmlEncode(imageUrl)),item.IsFolder&&item.AlbumArtists&&item.AlbumArtists.length?lines.push(getTextLinkButton({Type:"MusicArtist",Id:item.AlbumArtists[0].Id,Name:item.AlbumArtists[0].Name,ServerId:item.ServerId})):item.ArtistItems&&item.ArtistItems.length?lines.push(getTextLinkButton({Type:"MusicArtist",Id:item.ArtistItems[0].Id,Name:item.ArtistItems[0].Name,ServerId:item.ServerId})):item.AlbumArtists&&item.AlbumArtists.length&&lines.push(getTextLinkButton({Type:"MusicArtist",Id:item.AlbumArtists[0].Id,Name:item.AlbumArtists[0].Name,ServerId:item.ServerId})),[]);item.Album&&item.AlbumId?round.push(getTextLinkButton({Type:"Photo"===item.MediaType?"PhotoAlbum":"MusicAlbum",Id:item.AlbumId,Name:item.Album,ServerId:item.ServerId})):item.Album&&round.push('
'+_textencoding.default.htmlEncode(item.Album)+"
"),item.ProductionYear&&"Episode"!==item.Type&&"Audio"!==item.Type&&round.push('
'+item.ProductionYear+"
"),round.length&&lines.push(round.join(""));for(var i=0,length=Math.min(lines.length,3);i')+lines[i]+"
":(html+='
')+lines[i]+"
";return html=html+"
"+""}(options,options.item)),forceAutoFocus+=previewHtml,options.title&&(previewHtml="actionSheetTitle",options.hideTitleWhenNotFullscreen&&!isFullscreen&&(previewHtml+=" actionSheetTitle-hideNonFullscreen"),forceAutoFocus=isFullscreen?(forceAutoFocus+='

')+options.title+"

":(forceAutoFocus+='

')+options.title+"

"),options.text&&(forceAutoFocus=(forceAutoFocus+='

')+options.text+"

"),"actionSheetScroller focuscontainer-x"),scrollSliderClass=" actionsheetScrollSlider scrollSlider flex flex-direction-column itemsContainer",dialogOptions=(isFullscreen?(previewHtml+=" actionSheetScroller-fullscreen",useVirtualScroller&&(previewHtml+=" actionSheetScroller-fullscreen-virtual")):(useVirtualScroller&&(previewHtml+=" flex-grow"),options.title&&!options.hideTitleWhenNotFullscreen&&(enablePaddingTop=!1)),dialogOptions&&(previewHtml+=" actionSheetScroller-focusscale",enablePaddingTop=enablePaddingBottom=!0),(options.title||options.text)&&(previewHtml+=" actionSheetScroller-withheader"),enablePaddingInline&&(previewHtml+=" actionSheetScroller-padding-inline"),enablePaddingTop&&(scrollSliderClass+=" actionSheetScroller-padding-top"),(enablePaddingBottom=isFullscreen||options.multiple&&!useVirtualScroller||!1!==options.highlight?enablePaddingBottom:!0)&&(scrollSliderClass+=" actionSheetScroller-padding-bottom"),options.multiple&&(scrollSliderClass+=" actionsheet-scrollSlider-multiple"),""),btnCloseActionSheets=(useVirtualScroller&&(dialogOptions+=' data-virtualscrolllayout="vertical-grid"'),forceAutoFocus=(forceAutoFocus=forceAutoFocus+('
')+('
"))+"
"+"
",options.bottomText&&(forceAutoFocus=(forceAutoFocus+='
')+options.bottomText+"
"),options.multiple&&useVirtualScroller&&(forceAutoFocus+='
',enablePaddingInline="btnActionSheetSelectNone",options.selectAllOnSelectNone?(selectNoneText=_globalize.default.translate("SelectAll"),enablePaddingInline+=" dlg-close"):selectNoneText=_globalize.default.translate("SelectNone"),forceAutoFocus=forceAutoFocus+'
"),dlg.innerHTML=forceAutoFocus,dlg.querySelectorAll(".btnCloseActionSheet")),_i=0,_length=btnCloseActionSheets.length;_i<_length;_i++)btnCloseActionSheets[_i].addEventListener("click",onCancelClick);return new Promise(function(resolve,reject){var _dlg$querySelector,selectedItem,isResolved,hasSelectionChanged;function getResolveResult(){return options.multiple?hasSelectionChanged?options.selectedValuesClone:null:options.resolveWithSelectedItem?(null==selectedItem?void 0:selectedItem.originalItem)||selectedItem:null==selectedItem?void 0:selectedItem.Id}options.selectedValuesClone=(options.selectedValues||[]).slice(0);var itemsContainer=dlg.querySelector(".itemsContainer");function onValueChange(refreshItems){hasSelectionChanged=!0,options.onChange&&options.onChange(getResolveResult()),options.refreshItemsOnChange&&!1!==refreshItems&&(itemsContainer.scrollToIndex(0,{},itemsContainer.contains(document.activeElement)),itemsContainer.refreshItems())}itemsContainer.addEventListener("action-null",function(e){var resolveResult;options.multiple||(e=e.detail.item,e=(null==(selectedItem=e)?void 0:selectedItem.originalItem)||selectedItem,resolveResult=options.resolveWithSelectedItem?e:null==selectedItem?void 0:selectedItem.Id,!e.executeActionOnClick&&(!options.resolveOnClick||options.resolveOnClick.indexOf&&-1===options.resolveOnClick.indexOf(null==selectedItem?void 0:selectedItem.Id))||(resolve(resolveResult),isResolved=!0),_dialoghelper.default.close(dlg))}),itemsContainer.fetchData=getItemsFn(options),itemsContainer.getListOptions=getListOptions.bind(options),null!=(_dlg$querySelector=dlg.querySelector(".btnActionSheetSelectNone"))&&_dlg$querySelector.addEventListener("click",function(){options.selectedValuesClone=[],this.classList.contains("dlg-close")?(onValueChange(!1),_dialoghelper.default.close(dlg)):onValueChange()}),itemsContainer.addEventListener("change",function(e){hasSelectionChanged=!0;var arr,value,e=e.target.closest("input"),itemValue=_shortcuts.default.getItemFromChildNode(e,null,this).Id;arr=options.selectedValuesClone,value=itemValue,-1<(value=arr.indexOf(value))&&arr.splice(value,1),e.checked&&options.selectedValuesClone.push(itemValue),onValueChange()}),itemsContainer.addEventListener("itemdrop",function(e){e.preventDefault();var e=e.detail,item=e.items[0],item=options.selectedValuesClone.indexOf(item.Id);-1===item||e.newIndex>=options.selectedValuesClone.length||(options.selectedValuesClone=function(arr,old_index,new_index){if(new_index>=arr.length)throw new Error("out of bounds");return arr.splice(new_index,0,arr.splice(old_index,1)[0]),arr}(options.selectedValuesClone,item,e.newIndex),onValueChange())}),itemsContainer.afterRefresh=function(){itemsContainer.virtualScroller||callUpdateElement(itemsContainer,options)};var openingPromise=new Promise(function(resolve,reject){dlg.addEventListener("open",resolve)}),openedPromise=new Promise(function(resolve,reject){dlg.addEventListener("opened",resolve)}),closePromise=_dialoghelper.default.open(dlg);(useVirtualScroller?Promise.resolve():refreshItemsContainer.call(dlg)).then(function(){var timeout,refreshPromise;return dlg.dialogOptions.setDialogSize=!0,_dialoghelper.default.positionDialog(dlg),options.timeout&&(timeout=setTimeout(function(){_dialoghelper.default.close(dlg)},options.timeout)),useVirtualScroller&&(refreshPromise=refreshItemsContainer.call(dlg)),openingPromise.then(function(){_dialoghelper.default.positionDialog(dlg)}),openedPromise.then(function(){return(refreshPromise||Promise.resolve()).then(function(){var skipIfNotEnabled;this.classList.contains("dlg-autofocus")&&(skipIfNotEnabled=!this.classList.contains("dlg-autofocus-force"),autoFocusInternal(this,{skipIfNotEnabled:skipIfNotEnabled}))}.bind(dlg)),itemsContainer.virtualScroller&&itemsContainer.virtualScroller.onResized(),closePromise.then(function(){var resolveResult;if(instance.dlg=null,timeout&&(clearTimeout(timeout),timeout=null),!isResolved)return null!=(resolveResult=getResolveResult())?(options.callback&&options.callback(resolveResult),resolveResult):Promise.reject()})})}).then(resolve,reject)})},ActionSheet.prototype.refreshItems=function(){var _this$dlg=null==(_this$dlg=this.dlg)?void 0:_this$dlg.querySelector(".itemsContainer");_this$dlg&&_this$dlg.refreshItems()},ActionSheet.prototype.isShowing=function(){return null!=this.dlg},ActionSheet.prototype.autoFocus=function(options){console.log("focusing actionsheet"),autoFocusInternal(this.dlg,options)},ActionSheet.prototype.close=function(){var dlg=this.dlg;dlg&&_dialoghelper.default.close(dlg)},ActionSheet.prototype.destroy=function(){var _this$dlg2=null==(_this$dlg2=this.dlg)?void 0:_this$dlg2.querySelector(".itemsContainer");_this$dlg2&&_this$dlg2.pause(),this.dlg=null};_exports.default={show:function(options){var actionSheet=new ActionSheet;return actionSheet.show(options).then(function(result){return actionSheet.destroy(),Promise.resolve(result)},function(result){return actionSheet.destroy(),Promise.reject(result)})},constructor:ActionSheet}}); \ No newline at end of file diff --git a/modules/addtolist/addtolist.js b/modules/addtolist/addtolist.js new file mode 100644 index 0000000..366fd5f --- /dev/null +++ b/modules/addtolist/addtolist.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/connectionmanager.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../loading/loading.js","./../dialoghelper/dialoghelper.js","./../layoutmanager.js","./../dom.js","./../common/globalize.js","./../common/usersettings/usersettings.js","./../focusmanager.js","./../common/playback/playbackmanager.js","./../listview/listview.js","./../common/itemmanager/itemmanager.js","./../alphapicker/alphapicker.js","./../shortcuts.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_connectionmanager,_embyButton,_embyScroller,_embyItemscontainer,_loading,_dialoghelper,_layoutmanager,_dom,_globalize,_usersettings,_focusmanager,_playbackmanager,_listview,_itemmanager,_alphapicker,_shortcuts,_embyDialogclosebutton){function onItemsContainerFocus(e){var alphaPicker=this.alphaPicker;alphaPicker&&(e=_shortcuts.default.getItemFromChildNode(e.target,null,this.itemsContainer))&&alphaPicker.setCurrentFromItem(e)}function AddToList(){}function onDialogClosed(){var result=this.result,options=this.options;return result?"new"===result?this.newList():("queue"===result&&(_playbackmanager.default.queue({serverId:_connectionmanager.default.getApiClient(options.items[0]).serverId(),ids:this.getItemIds()}),function(options){Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}({text:_globalize.default.translate("HeaderAddedToPlayQueue"),icon:""})),this.cleanup(),Promise.resolve()):(this.cleanup(),Promise.reject())}function onItemAction(e){e=e.detail.item;"Playlist"!==e.Type&&"BoxSet"!==e.Type||("new"===e.Id?function(){this.result="new",this.closeDialog()}.call(this):this.addToList(e))}function updateAlphaPickerState(instance,numItems){var alphaPicker;!function(instance){Emby.importModule("./modules/alphanumericshortcuts/alphanumericshortcuts.js").then(function(AlphaNumericShortcuts){instance.alphaNumericShortcuts=new AlphaNumericShortcuts({itemsContainer:instance.itemsContainer}),instance.alphaNumericShortcuts.onAlphaNumericValueEntered=function(value){trySelectValue(this,this.scroller,this.dlg,value,!0)}.bind(instance)})}(instance),instance.alphaPicker&&(alphaPicker=instance.alphaPickerElement)&&(30'+'')+'

'+("Collection"===options.type?_globalize.default.translate("HeaderAddToCollection"):_globalize.default.translate("HeaderAddToPlaylist")))+"

"+"")+function(options){var html="",scrollerStyle="width:100%;",scrollerStyle=(_layoutmanager.default.tv&&(scrollerStyle+="max-width:70ch;"),html=(html=(html=(html=(html=(html+='
')+('
')+'
')+'
'+'
')+('

'+_globalize.default.translate("Recent")+"

")+'
')+"
"+"
")+'
'+'

',"Collection"===options.type?_globalize.default.translate("AllCollections"):_globalize.default.translate("AllPlaylists"));return html=(html=(html=(html=html+scrollerStyle+"

")+'
'+"
")+"
"+"
")+"
"+"
"}(options),dialogOptions.innerHTML=html,this.dlg=dialogOptions,this.options=options,dialogOptions.querySelector(".btnQueue")),options=(html&&html.addEventListener("click",function(){this.result="queue",this.closeDialog()}.bind(this)),dialogOptions.querySelector(".allItemsContainer")),html=(options.addEventListener("action-null",onItemAction.bind(this)),options.fetchData=this.getItems.bind(this),options.getListOptions=this.getListOptions.bind(this),options.onDataFetched=function(result){return _dom.default.removeEventListener(this.itemsContainer,"focus",onItemsContainerFocus.bind(this),{capture:!0,passive:!0}),_layoutmanager.default.tv&&_dom.default.addEventListener(this.itemsContainer,"focus",onItemsContainerFocus.bind(this),{capture:!0,passive:!0}),Promise.resolve(result)}.bind(this),options.onRefreshing=this.onRefreshing.bind(this),this.itemsContainer=options,dialogOptions.querySelector(".recentItemsContainer")),options=(html.addEventListener("action-null",onItemAction.bind(this)),html.fetchData=this.getRecentItems.bind(this),html.getListOptions=this.getListOptions.bind(this),html.parentContainer=html.closest(".verticalSection"),this.recentItemsContainer=html,dialogOptions.addEventListener("opened",function(){var recentItemsContainer=this.recentItemsContainer;recentItemsContainer.resume?onRecentItemsContainerUpgraded.call(this):_dom.default.addEventListener(recentItemsContainer,"upgraded",onRecentItemsContainerUpgraded.bind(this),{once:!0}),(recentItemsContainer=this.itemsContainer).resume?onAllItemsContainerUpgraded.call(this):_dom.default.addEventListener(recentItemsContainer,"upgraded",onAllItemsContainerUpgraded.bind(this),{once:!0}),this.initAlphaPicker()}.bind(this)),onDialogClosed.bind(this));return _dialoghelper.default.open(dialogOptions).then(options,options)},AddToList.prototype.getItemIds=function(){return this.options.items.map(mapItem)},AddToList.prototype.addToList=function(list){var itemIds=this.getItemIds(),instance=this;return _itemmanager.default.addToListHelper(list,itemIds).then(function(result){instance.result="1",instance.closeDialog()})},AddToList.prototype.newList=function(){var options,title="Collection"===this.options.type?_globalize.default.translate("HeaderNewCollection"):_globalize.default.translate("HeaderNewPlaylist"),dlgClosedFn=onNewPromptClosed.bind(this);return options={title:title,label:_globalize.default.translate("LabelName"),confirmText:_globalize.default.translate("Create")},Emby.importModule("./modules/prompt/prompt.js").then(function(prompt){return prompt(options)}).then(dlgClosedFn,dlgClosedFn)},AddToList.prototype.closeDialog=function(){var dlg=this.dlg;dlg&&_dialoghelper.default.close(dlg)},AddToList.prototype.destroyAlphaNumericShortcuts=function(){var alphaNumericShortcuts=this.alphaNumericShortcuts;alphaNumericShortcuts&&(alphaNumericShortcuts.destroy(),this.alphaNumericShortcuts=null)},AddToList.prototype.cleanup=function(){this.listName=null,this.options=null,this.dlg=null,this.itemsContainer=null,this.recentItemsContainer=null,this.destroyAlphaNumericShortcuts(),this.alphaPicker&&(this.alphaPicker.destroy(),this.alphaPicker=null)};_exports.default=AddToList}); \ No newline at end of file diff --git a/modules/alameda/alameda.js b/modules/alameda/alameda.js new file mode 100644 index 0000000..1a3d65e --- /dev/null +++ b/modules/alameda/alameda.js @@ -0,0 +1 @@ +var undef,queue=[],urlRegExp=/^\/|\:|\?|\.js$/;function trimDots(ary){for(var part,length=ary.length,i=0;i'+keyInfo.name+""}(k,vertical)})}function mapToKeyInfo(character){return{name:character,value:character}}function mapLettersToHtml(letters,vertical){return mapKeysToHtml(letters.map(mapToKeyInfo),vertical)}function setInnerHtml(element,html){element.innerHTML=html,element.classList.add("focusable"),element.focus=focus}function clearAlphaFocusTimeout(instance){instance.alphaFocusTimeout&&(clearTimeout(instance.alphaFocusTimeout),instance.alphaFocusTimeout=null)}function onAlphaPickerFocusIn(e){this.alphaFocusTimeout&&(clearTimeout(this.alphaFocusTimeout),this.alphaFocusTimeout=null);var e=e.target.closest(".alphaPickerButton"),delay=1500;this.previousActiveElement||(delay=3e3),(this.previousActiveElement=e)&&(this.alphaFocusedElement=e,this.alphaFocusTimeout=setTimeout(function(){var value;this.alphaFocusTimeout=null,this.previousActiveElement=null,document.activeElement===this.alphaFocusedElement&&(value=this.alphaFocusedElement.getAttribute("data-value"),this.value(value,!0))}.bind(this),delay))}function AlphaPicker(options){this.options=options,this.bound_onAlphaPickerInKeyboardModeClick=function(e){(e=e.target.closest(".alphaPickerButton"))&&(e=e.getAttribute("data-value"),this.options.element.dispatchEvent(new CustomEvent("alphavalueclicked",{cancelable:!1,detail:{value:e}})))}.bind(this),this.bound_onAlphaPickerFocusIn=onAlphaPickerFocusIn.bind(this),this.bound_onAlphaPickerClick=function(e){clearAlphaFocusTimeout(this),(e=e.target.closest(".alphaPickerButton"))&&(e=e.getAttribute("data-value"),this.value(e,!0))}.bind(this),function(element,options){element.classList.add("alphaPicker");var vertical=element.classList.contains("alphaPicker-vertical"),html=(vertical||element.classList.add("focuscontainer-x"),""),alphaPickerButtonClassName=getAlphaPickerButtonClassName(vertical),rowClassName="alphaPickerRow";if(vertical&&(rowClassName+=" alphaPickerRow-vertical secondaryText",_layoutmanager.default.tv||(rowClassName+=" scrollY hiddenScrollY")),"keyboard"===options.mode){var rows=[];"numeric"===options.type?rows.push({keys:["0","1","2","3","4","5","6","7","8","9"].map(mapToKeyInfo)}):(rows.push({keys:["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"].map(mapToKeyInfo)},{keys:["0","1","2","3","4","5","6","7","8","9"].map(mapToKeyInfo)}),rows[0].keys.unshift({name:"SPACE",value:" "}));for(var i=0,length=rows.length;i')+mapKeysToHtml(rows[i].keys,vertical).join("");0===i&&(html=html+''),html+=""}setInnerHtml(element,html)}else setInnerHtml(element,html=(html+='
')+mapLettersToHtml(options.prefixes||[],vertical).join("")+"
")}(options.element,options),this.enabled(!0),this.visible(!0)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/alphapicker/alphapicker.css","css!!tv|modules/alphapicker/alphapicker_nontv.css","css!tv|modules/alphapicker/alphapicker_tv.css","material-icons"]),AlphaPicker.prototype.enabled=function(enabled){var options=this.options,element=options.element;enabled?"keyboard"===options.mode?element.addEventListener("click",this.bound_onAlphaPickerInKeyboardModeClick):(_layoutmanager.default.tv&&element.addEventListener("focus",this.bound_onAlphaPickerFocusIn,!0),element.addEventListener("click",this.bound_onAlphaPickerClick)):(clearAlphaFocusTimeout(this),element.removeEventListener("click",this.bound_onAlphaPickerInKeyboardModeClick,!0),element.removeEventListener("click",this.bound_onAlphaPickerClick),(enabled=element.onAlphaPickerClickFn)&&(element.removeEventListener("click",enabled),element.onAlphaPickerClickFn=null))},AlphaPicker.prototype.value=function(value,applyValue){var element=this.options.element;value=value.toUpperCase(),applyValue&&element.dispatchEvent(new CustomEvent("alphavaluechanged",{cancelable:!1,detail:{value:value}}))},AlphaPicker.prototype.setCurrentFromItem=function(item){var prefix=(prefix=item.Prefix)||(prefix=item.SortName||item.Name)&&prefix[0];prefix&&!function(instance,button){var current=instance._currentButton;current!==button&&(current&¤t.classList.remove("alphaPickerButton-current"),instance._currentButton=button)&&button.classList.add("alphaPickerButton-current")}(this,function(instance){var buttonMap=instance._buttonMap;if(!buttonMap){for(var buttonMap={},buttons=instance.options.element.querySelectorAll(".alphaPickerButton[data-value]"),i=0,length=buttons.length;i':'',isUserAdmin=user?(headerUserButton.classList.remove("hide"),_layoutmanager.default.tv?headerSettingsButton.classList.add("hide"):headerSettingsButton.classList.remove("hide"),user.Policy.IsAdministrator):(headerUserButton.classList.add("hide"),headerSettingsButton.classList.add("hide"),!1)}function onUserUpdated(e,apiClient,data){apiClient.getCurrentUserId()===data.Id&&apiClient.serverId()===currentServerId&&updateUserInHeader(data)}function resetPremiereButton(){_servicelocator.appHost.supports("premiereinheader")&&_connectionmanager.default.currentApiClient()&&_connectionmanager.default.currentApiClient().serverId()&&userSignedIn&&Emby.importModule("./modules/registrationservices/registrationservices.js").then(function(registrationServices){registrationServices.validateFeature("themes",{viewOnly:!0,showDialog:!1}).then(removePremiereButton,addPremiereButton)})}function onPremiereButtonClick(){Emby.importModule("./modules/registrationservices/registrationservices.js").then(function(registrationServices){registrationServices.validateFeature("themes",{viewOnly:!0}).then(resetPremiereButton)})}function addPremiereButton(){var html='";document.querySelector(".btnHeaderPremiere")||(document.querySelector(".headerRight").insertAdjacentHTML("afterbegin",html),document.querySelector(".btnHeaderPremiere").addEventListener("click",onPremiereButtonClick))}function removePremiereButton(){var btn=document.querySelector(".btnHeaderPremiere");btn&&btn.remove()}function onLocalUserSignedIn(e,serverId,userId){currentServerId=serverId,userSignedIn=!0,_connectionmanager.default.getApiClient(serverId).getUser(userId).then(updateUserInHeader),resetPremiereButton(),setRemoteControlVisibility(),setSearchVisibility({})}function onHeaderMenuButtonClick(){_navdrawer.default.open()}function onHomeClick(){_approuter.default.goHome()}function onBackClick(e){_inputmanager.default.trigger("back",{sourceElement:_viewmanager.default.currentView(),originalEvent:e})}function onSearchClick(e){_inputmanager.default.trigger("search",{sourceElement:_viewmanager.default.currentView(),originalEvent:e})}function onUserButtonClick(){_approuter.default.showUserMenu({positionTo:this,positionY:"bottom",positionX:"right",transformOrigin:"right top"})}function onSettingsButtonClick(){var manageServerRouteUrl=_approuter.default.getRouteUrl("manageserver");if(!isUserAdmin||!_approuter.default.getRouteInfo(manageServerRouteUrl))return onUserButtonClick.call(this);_approuter.default.show(manageServerRouteUrl)}function onCastButtonClick(){var btn=this;Emby.importModule("./modules/playback/playerselection.js").then(function(playerSelectionMenu){playerSelectionMenu.show(btn)})}function updateFontSize(){var fontSize=parseInt(_appsettings.default.fontSize()||"0");fontSize&&_layoutmanager.default.tv?document.documentElement.style.fontSize=2.5+.2*fontSize+"vh":document.documentElement.style.removeProperty("font-size")}function onLayoutModeChange(){var detail;updateFontSize(),!_layoutmanager.default.tv&&_dom.default.allowBackdropFilter()?skinHeaderElement.classList.add("skinHeader-withbackdropfilter"):skinHeaderElement.classList.remove("skinHeader-withbackdropfilter"),ensureHeaderSettingsButton(),_layoutmanager.default.tv||headerUserButton.classList.contains("hide")?headerSettingsButton.classList.add("hide"):headerSettingsButton.classList.remove("hide"),_layoutmanager.default.tv?headerRight.classList.add("secondaryText"):(headerRight.classList.remove("secondaryText"),bottomTabsLoaded||(bottomTabsLoaded=!0,Emby.importModule("./modules/dockedtabs/dockedtabs.js"))),headerMiddle=headerMiddle||document.querySelector(".headerMiddle"),this.destroyClock(),this.loadClock(),setRemoteControlVisibility(),currentViewEvent&&(updateDrawerLayout(detail=currentViewEvent.detail,allowDrawer(detail)),_navdrawer.default.onViewShow(currentViewEvent))}function updateCastIcon(){var info,btnCast=headerCastButton;btnCast&&((info=_playbackmanager.default.getPlayerInfo())&&!info.isLocalPlayer?(btnCast.innerHTML="",selectedPlayerText.innerHTML=info.deviceName||info.name):(btnCast.innerHTML="",selectedPlayerText.innerHTML=""))}function onNewPlayQueueStart(e,player,state){!function(state){return _layoutmanager.default.tv&&state.NowPlayingItem&&"Audio"===state.NowPlayingItem.MediaType}(state)||state.IsBackgroundPlayback||_approuter.default.showNowPlaying()}function setRemoteControlVisibility(){_servicelocator.appHost.supports("remotecontrol")&&userSignedIn&&(!_layoutmanager.default.tv||_appsettings.default.enableRemoteControlInTVMode())?(headerCastButton.classList.remove("hide"),selectedPlayerText.classList.remove("hide")):(headerCastButton.classList.add("hide"),selectedPlayerText.classList.add("hide"))}function onAppSettingsChange(e,name){switch(name){case"enableRemoteControlInTVMode":setRemoteControlVisibility();break;case"fontSize":updateFontSize()}}function setSearchVisibility(viewDetail){null!=currentDrawerState&&(!userSignedIn||!1===viewDetail.searchButton||"search"===(null==(viewDetail=viewDetail.params)?void 0:viewDetail.type)||!_layoutmanager.default.tv&&[1,2,3].includes(currentDrawerState)?headerSearchButton.classList.add("hide"):headerSearchButton.classList.remove("hide"))}function allowDrawer(detail){if(!1===detail.drawer)return!1;if(!userSignedIn)return!1;if(detail.hideDrawerWithOtherUserIdParam){detail=detail.params;if(detail&&detail.userId&&detail.serverId){var apiClient=_connectionmanager.default.getApiClient(detail.serverId);if(apiClient&&apiClient.getCurrentUserId()!==detail.userId)return!1}}return!0}function onNavDrawerStateChange(e,drawerState){currentDrawerState=drawerState,appFooter=appFooter||document.querySelector(".appfooter"),3===drawerState?(headerHomeButton.classList.add("headerHomeButton-withdockeddrawer"),headerMenuButton.classList.add("headerMenuButton-withdockeddrawer"),backgroundContainer.classList.add("backgroundContainer-withdockeddrawer"),_viewmanager.default.addViewClass("page-withMiniDrawer","page-withDockedDrawer"),_viewmanager.default.removeViewClass("page-withFullDrawer"),docElem.classList.remove("withFullDrawer"),skinHeaderElement.classList.remove("skinHeader-withfulldrawer"),skinHeaderElement.classList.add("skinHeader-withminidrawer"),headerLeft.classList.add("headerLeft-withdockeddrawer"),appFooter&&(appFooter.classList.add("appfooter-withMiniDrawer"),appFooter.classList.remove("appfooter-withFullDrawer"))):2===drawerState?(headerHomeButton.classList.add("headerHomeButton-withdockeddrawer"),headerMenuButton.classList.add("headerMenuButton-withdockeddrawer"),backgroundContainer.classList.add("backgroundContainer-withdockeddrawer"),docElem.classList.add("withFullDrawer"),_viewmanager.default.addViewClass("page-withFullDrawer","page-withDockedDrawer"),_viewmanager.default.removeViewClass("page-withMiniDrawer"),skinHeaderElement.classList.add("skinHeader-withfulldrawer"),headerLeft.classList.add("headerLeft-withdockeddrawer"),skinHeaderElement.classList.remove("skinHeader-withminidrawer"),appFooter&&(appFooter.classList.add("appfooter-withFullDrawer"),appFooter.classList.remove("appfooter-withMiniDrawer"))):1===drawerState?3===_navdrawer.default.closeState?(headerHomeButton.classList.add("headerHomeButton-withdockeddrawer"),headerMenuButton.classList.add("headerMenuButton-withdockeddrawer"),backgroundContainer.classList.add("backgroundContainer-withdockeddrawer"),docElem.classList.remove("withFullDrawer"),skinHeaderElement.classList.remove("skinHeader-withfulldrawer"),_viewmanager.default.removeViewClass("page-withFullDrawer"),_viewmanager.default.addViewClass("page-withMiniDrawer","page-withDockedDrawer"),skinHeaderElement.classList.add("skinHeader-withminidrawer"),headerLeft.classList.add("headerLeft-withdockeddrawer"),appFooter&&(appFooter.classList.remove("appfooter-withFullDrawer"),appFooter.classList.add("appfooter-withMiniDrawer"))):(headerHomeButton.classList.remove("headerHomeButton-withdockeddrawer"),headerMenuButton.classList.remove("headerMenuButton-withdockeddrawer"),backgroundContainer.classList.remove("backgroundContainer-withdockeddrawer"),docElem.classList.remove("withFullDrawer"),_viewmanager.default.removeViewClass("page-withMiniDrawer","page-withDockedDrawer","page-withFullDrawer"),skinHeaderElement.classList.remove("skinHeader-withfulldrawer","skinHeader-withminidrawer"),headerLeft.classList.remove("headerLeft-withdockeddrawer"),appFooter&&appFooter.classList.remove("appfooter-withMiniDrawer","appfooter-withFullDrawer")):(docElem.classList.remove("withFullDrawer"),_viewmanager.default.removeViewClass("page-withMiniDrawer","page-withDockedDrawer","page-withFullDrawer"),skinHeaderElement.classList.remove("skinHeader-withfulldrawer","skinHeader-withminidrawer"),headerLeft.classList.remove("headerLeft-withdockeddrawer"),backgroundContainer.classList.remove("backgroundContainer-withdockeddrawer"),headerHomeButton.classList.remove("headerHomeButton-withdockeddrawer"),headerMenuButton.classList.remove("headerMenuButton-withdockeddrawer"),appFooter&&appFooter.classList.remove("appfooter-withMiniDrawer","appfooter-withFullDrawer"));drawerState=_viewmanager.default.currentViewInfo();drawerState&&setSearchVisibility(drawerState)}function updateDrawerLayout(detail,drawerAllowed){drawerAllowed&&!_layoutmanager.default.tv&&("docked"===(drawerAllowed=detail.settingsTheme?"docked":_usersettings.default.drawerStyle())||"docked-mini"===drawerAllowed)?(_layoutmanager.default.tv&&(drawerAllowed="docked-mini"),detail.drawerInline=!0,_navdrawer.default.open(!0,"docked-mini"===drawerAllowed)):(_navdrawer.default.closeState=null,_navdrawer.default.close())}function onViewShow(e){var _detail$params,detail=(currentViewEvent=e).detail;"true"!==(null==(_detail$params=detail.params)?void 0:_detail$params.asDialog)&&(detail.clearBackdrop&&_backdrop.default.clear(),updateDrawerLayout(detail,_detail$params=allowDrawer(detail)),function(detail){var backButtonConfig=detail.backButton;!1===(backButtonConfig=null==backButtonConfig&&detail.headerTabs?!1:backButtonConfig)||!_approuter.default.canGoBack()||hasPhysicalBackButton&&!0!==backButtonConfig&&!_layoutmanager.default.tv?headerBackButton.classList.add("hide"):!supportsFullscreenMediaQueries||!0===backButtonConfig||_layoutmanager.default.tv?headerBackButton.classList.remove("headerBackButton-showfullscreen","hide"):(headerBackButton.classList.add("headerBackButton-showfullscreen"),headerBackButton.classList.remove("hide"))}(detail),function(detail){userSignedIn&&!1!==detail.homeButton?headerHomeButton.classList.remove("hide"):headerHomeButton.classList.add("hide")}(detail),setSearchVisibility(detail),function(drawerAllowed){!_layoutmanager.default.tv&&userSignedIn&&drawerAllowed?headerMenuButton.classList.remove("hide"):headerMenuButton.classList.add("hide")}(_detail$params),function(detail){(detail=detail.helpUrl)&&SupportsExternalLinks?(headerHelpButton.href=detail,headerHelpButton.classList.remove("hide")):headerHelpButton.classList.add("hide")}(detail),function(detail){!_layoutmanager.default.tv&&detail.adjustHeaderForEmbeddedScroll?skinHeaderElement.classList.add("adjustHeaderForEmbeddedScroll"):skinHeaderElement.classList.remove("adjustHeaderForEmbeddedScroll")}(detail),function(detail){!1===detail.secondaryHeaderFeatures?headerRight.classList.add("hide"):headerRight.classList.remove("hide")}(detail,e.target),function(header,detail){detail.defaultTitle?header.setDefaultTitle():null!=(detail=detail.title)&&header.setTitle(_globalize.default.translate(detail))}(this,detail,e.target),(_detail$params=(_detail$params=this).pageTitleElement)&&(_layoutmanager.default.tv?_detail$params.classList.add("pageTitle-marginstart"):_detail$params.classList.remove("pageTitle-marginstart")),_navdrawer.default.onViewShow(e))}function removeTransformFromHeader(){skinHeaderElement.style[TranslateProperty]="none"}function onViewBeforeShow(e){var _detail$params2,e=e.detail;"true"!==(null==(_detail$params2=e.params)?void 0:_detail$params2.asDialog)&&(e.headerTabs||_maintabsmanager.default.setTabs(null),!1===e.headerBackground?skinHeaderElement.classList.remove("skinHeader-withBackground"):skinHeaderElement.classList.add("skinHeader-withBackground"),e.adjustHeaderForEmbeddedScroll||removeTransformFromHeader(),this.setTransparent(e.transparentHeader))}function shouldShowLeftNav(e){var _viewManager$currentV;return!1!==(null==(_viewManager$currentV=_viewmanager.default.currentViewInfo())?void 0:_viewManager$currentV.drawer)&&(null==(_viewManager$currentV=e.detail)||null==(_viewManager$currentV=_viewManager$currentV.originalEvent)||!_viewManager$currentV.repeat)}function onHeaderCommand(e){switch(e.detail.command){case"moveleftedge":"rtl"!==document.dir&&shouldShowLeftNav(e)&&(_navdrawer.default.openIfClosed(),e.preventDefault());break;case"moverightedge":"rtl"===document.dir&&shouldShowLeftNav(e)&&(_navdrawer.default.openIfClosed(),e.preventDefault())}}function render(instance){var Back,Home,Menu,Help;instance.element=skinHeaderElement,headerLeft=skinHeaderElement.querySelector(".headerLeft"),Menu=_globalize.default.translate("Menu"),Home=_globalize.default.translate("Home"),Back=_globalize.default.translate("Back"),Help=_globalize.default.translate("Help"),headerLeft.innerHTML='\n \n \n \n

 

\n\n \n \n \n ',Back=_globalize.default.translate("ManageEmbyServer"),Home=_globalize.default.translate("Settings"),Menu=_globalize.default.translate("Search"),Help=_globalize.default.translate("PlayOnAnotherDevice"),skinHeaderElement.querySelector(".headerRight").innerHTML='\n
\n\n
\n \n \n \n \n
\n ',function(instance){var parent=instance.element;headerBackButton=parent.querySelector(".headerBackButton"),headerHomeButton=parent.querySelector(".headerHomeButton"),headerMenuButton=parent.querySelector(".headerMenuButton"),headerCastButton=parent.querySelector(".headerCastButton"),headerHelpButton=parent.querySelector(".headerHelpButton"),headerSearchButton=parent.querySelector(".headerSearchButton"),selectedPlayerText=parent.querySelector(".headerSelectedPlayer"),headerRight=parent.querySelector(".headerRight"),headerBackButton.addEventListener("click",onBackClick),headerHomeButton.addEventListener("click",onHomeClick),headerSearchButton.addEventListener("click",onSearchClick),headerCastButton.addEventListener("click",onCastButtonClick),parent.querySelector(".headerUserButton").addEventListener("click",onUserButtonClick),parent.querySelector(".headerSettingsButton").addEventListener("click",onSettingsButtonClick),headerMenuButton.addEventListener("click",onHeaderMenuButtonClick),boundLayoutModeChangeFn=onLayoutModeChange.bind(instance),_events.default.on(_layoutmanager.default,"modechange",boundLayoutModeChangeFn),_events.default.on(_playbackmanager.default,"playerchange",updateCastIcon),_events.default.on(_playbackmanager.default,"playqueuestart",onNewPlayQueueStart),_events.default.on(_connectionmanager.default,"localusersignedin",onLocalUserSignedIn),_events.default.on(_connectionmanager.default,"localusersignedout",onLocalUserSignedOut),_events.default.on(_api.default,"UserUpdated",onUserUpdated),document.addEventListener("viewbeforeshow",onViewBeforeShow.bind(instance)),document.addEventListener("viewshow",onViewShow.bind(instance)),_inputmanager.default.on(skinHeaderElement,onHeaderCommand),instance.pageTitleElement=parent.querySelector(".pageTitle"),resetPremiereButton(),_events.default.on(_connectionmanager.default,"resetregistrationinfo",resetPremiereButton),_events.default.on(_appsettings.default,"change",onAppSettingsChange)}(instance),setRemoteControlVisibility(),onLayoutModeChange.call(instance),_events.default.on(_navdrawer.default,"drawer-state-change",onNavDrawerStateChange),_events.default.on(_navdrawercontent.default,"dynamic-title",function(e,title){this.setTitle(title)}.bind(instance))}function AppHeader(){}(document.scrollingElement||document.documentElement).classList.add("noScrollY"),AppHeader.prototype.init=function(){return render(this)},AppHeader.prototype.stopClockInterval=function(){var interval=this.clockInterval;interval&&(interval.destroy(),this.clockInterval=null)},AppHeader.prototype.startClockInterval=function(){this.clockInterval=new _methodtimer.default({onInterval:updateClock.bind(this),timeoutMs:5e4,type:"interval"})},AppHeader.prototype.loadClock=function(){var elem;_layoutmanager.default.tv?((elem=document.querySelector(".headerClock")).classList.remove("hide"),this.clockElement=elem,this.stopClockInterval(),this.startClockInterval(),updateClock.call(this)):this.destroyClock()};var defaultDocumentTitle=document.title||"Emby";AppHeader.prototype.setDefaultTitle=function(){var pageTitleElement=this.pageTitleElement;pageTitleElement&&(pageTitleElement.classList.add("pageTitleWithLogo","pageTitleWithDefaultLogo"),pageTitleElement.style.backgroundImage=null,pageTitleElement.innerHTML=""),document.title=defaultDocumentTitle},AppHeader.prototype.setTitle=function(title,documentTitle){var html,pageTitleElement;null==title?this.setDefaultTitle():(html=function(title){return title?("string"!=typeof title&&(title=title.Name||""),_textencoding.default.htmlEncode(title)):""}(title="-"===title?"":title),(pageTitleElement=this.pageTitleElement)&&(pageTitleElement.classList.remove("pageTitleWithLogo","pageTitleWithDefaultLogo"),pageTitleElement.style.backgroundImage=null,pageTitleElement.innerHTML=html||""),document.title=title?"string"==typeof title?documentTitle||title:documentTitle||title.Name||defaultDocumentTitle:documentTitle||defaultDocumentTitle)},AppHeader.prototype.setLogoTitle=function(options){var pageTitleElement;if(!(url=options.url))for(var items=options.items,i=0,length=items.length;i'+_textencoding.default.htmlEncode(address)+""}function addressFormatToText(address){return _textencoding.default.htmlEncode(address)}function showWebAppConnectionError(server,addresses){var addressHtml,supportsLinks,html=[];return html.push('

'+_globalize.default.translate("MessageUnableToConnectToServer")+"

"),"https:"!==(window.location.protocol||"").toLowerCase()||function(addresses){for(var i=0,length=addresses.length;i",addressHtml=(addressHtml+="
    ")+("
  • Use the web app built into your Emby Server at "+((supportsLinks=_servicelocator.appHost.supports("externallinks")&&_servicelocator.appHost.supports("targetblank"))?addresses.map(addressFormatToHtml):addresses.map(addressFormatToText)).join(" or ")+", depending on your current location.
  • "),addressHtml=supportsLinks?addressHtml+("
  • "+_globalize.default.translate("SetupHttpsForYourServer",'',""))+'
  • Use the HTTP version of this app at http://app.emby.media instead.
  • ':addressHtml+("
  • "+_globalize.default.translate("SetupHttpsForYourServer","",""))+"
  • Use the HTTP versionof this app at http://app.emby.media instead.
  • ",html.push(addressHtml=addressHtml+"
  • Use an installed Emby app such as Emby for Windows, Android, Apple, Amazon, Samsung, LG, etc.
  • "+"
"),showAlertAndResolve({html:html.join(""),title:server.Name?_globalize.default.translate("TitleUnableToReachName",_textencoding.default.htmlEncode(server.Name)):_globalize.default.translate("TitleUnableToReachServer"),centerText:!1}))}AppRouter.prototype.setPinValidated=function(userId){if(_baseapprouter.default.prototype.setPinValidated.apply(this,arguments),AllowSessionStorageUsage&&"undefined"!=typeof sessionStorage)try{userId?sessionStorage.setItem("pinvalidated",userId):sessionStorage.removeItem("pinvalidated")}catch(err){console.log("error setting sessionStorage")}},AppRouter.prototype.isPinValidated=function(userId){if(AllowSessionStorageUsage&&"undefined"!=typeof sessionStorage)try{return sessionStorage.getItem("pinvalidated")===userId}catch(err){console.log("error accessing sessionStorage")}return _baseapprouter.default.prototype.isPinValidated.apply(this,arguments)},AppRouter.prototype.showServerLogin=function(options){return options.loginType||options.username?show(getServerLoginRouteUrl(options)):_baseapprouter.default.prototype.showServerLogin.apply(this,arguments)},Object.assign(AppRouter.prototype,{showSelectServer:function(){return show(getRouteUrl("selectserver"))},showWelcome:function(){return _servicelocator.appHost.supports("multiserver")?show("/startup/welcome.html"):show("/startup/login.html?serverId="+_connectionmanager.default.currentApiClient().serverId())},showConnectLogin:function(){return show(getRouteUrl("connectlogin"))},showSettings:function(options){return show(getRouteUrl("settings",Object.assign({serverId:_connectionmanager.default.currentApiClient().serverId()},options||{})))},showUserMenu:function(options){return Emby.importModule("./modules/backmenu/backmenu.js").then(function(backMenu){return backMenu(options)})},showSearch:function(){return show(getRouteUrl("search"))},showGuide:function(){return show(this.getRouteUrl("livetv",{serverId:_connectionmanager.default.currentApiClient().serverId(),section:"guide"}))},showLiveTV:function(){return show(this.getRouteUrl("livetv",{serverId:_connectionmanager.default.currentApiClient().serverId()}))},showRecordedTV:function(){return show(this.getRouteUrl("recordedtv",{serverId:_connectionmanager.default.currentApiClient().serverId()}))},showFavorites:function(){return show("/home&tab=favorites")},showNowPlaying:function(){return showVideoOsd()}}),AppRouter.prototype.beginConnectionWizard=function(){_backdrop.default.clear(),_loading.default.show();var instance=this;return _servicelocator.appHost.supports("multiserver")?_connectionmanager.default.connect({}).then(function(result){return instance.handleConnectionResult(result,{allowWelcome:!0})}):this.showServerLogin({apiClient:_connectionmanager.default.currentApiClient()})},AppRouter.prototype.logout=function(apiClient){var instance=this;loadPlaybackManager().then(function(playbackManager){_loading.default.show(),playbackManager.stop(),_connectionmanager.default.logout(apiClient).then(instance.beginConnectionWizard.bind(instance))})},AppRouter.prototype.showConnectionErrorAlert=function(result,options){if(_servicelocator.appHost.supports("rejectinsecureaddresses")){var addresses=function(result){var list=[];return result.Address?list.push(result.Address):(result=result.Server||{})&&(result.ManualAddress&&!list.includes(result.ManualAddress)&&list.push(result.ManualAddress),result.LocalAddress&&!list.includes(result.LocalAddress)&&list.push(result.LocalAddress),result.RemoteAddress)&&!list.includes(result.RemoteAddress)&&list.push(result.RemoteAddress),list}(result);if(0arr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i=currentRotatingImages.length&&(force=0),setBackdropImage(currentRotatingImages[currentRotationIndex=force],animationEnabledByCaller),animationEnabledByCaller=!0)}function clearRotation(){rotationInterval&&rotationInterval.destroy(),rotationInterval=null,currentRotatingImages=[],currentRotationIndex=-1}_exports.default={getBackdropsFromOptions:function(items,options){return getImageInfos(items,(options=options||{}).imageOptions,options.enablePrimaryImageBeforeInherited,options.allowPrimaryImage)},setBackdrops:function(items,options){(items=getImageInfos(items,(options=options||{}).imageOptions,options.enablePrimaryImageBeforeInherited,options.allowPrimaryImage)).length?function(images,enableImageRotation,enableAnimation){!function(a,b){if(a===b)return 1;if(null!=a&&null!=b&&a.length===b.length){for(var i=0;i.cardBox-focustransform{-webkit-transform:scale(1.18,1.18);transform:scale(1.18,1.18)}.card:focus>.cardBox-focustransform-titleadjust{-webkit-transform:scale(1.18,1.18) translateY(.5em);transform:scale(1.18,1.18) translateY(.5em)}.card-focustransform:focus .cardText{--theme-text-color-alpha:1!important}.cardBox-bottompadded{margin-bottom:1.8em!important}.card:focus{z-index:10!important;contain:layout style}.staticCard-xGrid:focus{position:relative}.cardBox-sideFooter{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;overflow:hidden;position:relative}.cardSideFooter-bottomsections{-webkit-flex-basis:100%;flex-basis:100%}.cardFooterContent{-webkit-flex-grow:1;flex-grow:1;padding:0 1.5em;-webkit-justify-content:center;justify-content:center;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;overflow:hidden;font-weight:600;min-height:3em;box-sizing:border-box}.cardFooterContent-start{text-align:start;padding:0 .75em}.mediaSourceIndicator{display:-webkit-flex;display:flex;position:absolute;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;top:.3em;left:.3em;inset-inline-start:.3em;inset-inline-end:initial;text-align:center;vertical-align:middle;width:1.6em;height:1.6em;border-radius:50%;color:#fff;background:#38c}.cardContent{overflow:hidden;display:block;margin:0!important;height:100%;-webkit-tap-highlight-color:transparent;contain:strict;position:relative}.cardImageContainer{background-size:contain;background-repeat:no-repeat;background-position:center center;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;position:relative;color:inherit;height:100%;border-radius:.42em;contain:strict}@supports (aspect-ratio:16 / 9){.cardImageContainer{background-clip:content-box!important}}.chapterCardImageContainer{background-color:#000;border-radius:0}.cardContent-button{border:0!important;-webkit-padding-start:0!important;padding-inline-start:0!important;-webkit-padding-end:0!important;padding-inline-end:0!important;padding-top:0!important;cursor:pointer;color:inherit;width:100%;vertical-align:middle;font-family:inherit;font-size:inherit;outline:0}.cardContent-bg-black{background-color:#000!important}.paddedImage{background-size:auto 70%}.grayscaleImage{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.cardContent-nobr{border-bottom-left-radius:0;border-bottom-right-radius:0;border-end-start-radius:0;border-end-end-radius:0}.cardImageContainer-sideFooter{position:relative;width:5.4em;height:5.4em;border-radius:0;-webkit-flex-shrink:0;flex-shrink:0;padding:0!important}.cardImageContainer-smallSideFooter{height:3.6em;width:3.6em;padding:0!important}.cardImage{position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;background-size:contain;background-repeat:no-repeat;background-position:center bottom;width:100%;height:100%;object-position:center center;object-fit:contain;border:0!important;contain:layout style paint}.cardImage-padded{height:70%;top:15%;bottom:15%;width:80%;left:10%;right:10%}.cardContent-round{border-radius:100em;background-size:cover;background-position:center center;object-fit:cover}.coveredImage{background-size:100% 100%;background-position:center center;object-fit:fill}.coveredImage-noScale{background-size:cover;object-fit:cover}.coveredImage-contain{background-size:contain;object-fit:contain}.cardFooter{padding:.4em .5em .85em .5em;position:relative}.cardFooter-side{padding-top:0;padding-bottom:0}.cardFooter-vibrant::before{position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;background:rgba(0,0,0,.1);content:" "}.cardFooter-vibrant{font-weight:500;position:relative}.visualCardBox{border-radius:.6em}.visualCardBox-vibrant{overflow:hidden;background-size:cover;background-repeat:no-repeat}.innerCardFooter{background-color:transparent;position:absolute;bottom:0;text-align:start;overflow:hidden;max-width:100%;color:#fff;left:0;right:0;inset-inline-start:0;inset-inline-end:0;text-shadow:.14em .14em .28em rgba(0,0,0,.45)}.cardText{padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cardText-tagline{white-space:normal;height:3em;text-align:left}.cardText-tagline-text{-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.cardText-overview{white-space:normal;height:4.5em;text-align:left}.cardText-overview-text{-webkit-line-clamp:3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.cardText-mediaInfo{font-weight:500}.cardText-secondary{font-size:92%}.cardText-first-padded{padding-top:.22em}.innerFooter-cardText{padding:.1em .35em}.cardText-nowplaying{position:relative;-webkit-padding-start:1em;padding-inline-start:1em;-webkit-padding-end:1em;padding-inline-end:1em}.cardText-nowplaying::before{content:' ';position:absolute;top:0;bottom:0;inset-inline-start:0;width:1em;background:url(./../listview/ani_equalizer_white.gif) no-repeat center center;background-size:contain}.cardFooter-withlogo{-webkit-padding-start:4em;padding-inline-start:4em;position:relative}.cardFooterLogo{position:absolute;top:0;bottom:0;left:0;inset-inline-start:0;inset-inline-end:initial;width:4.5em;background-size:70% auto;background-repeat:no-repeat;background-position:center center}.cardDefaultText{white-space:normal;text-align:center;position:absolute;top:30%;left:10%;inset-inline-start:10%;inset-inline-end:initial;width:80%}@supports (aspect-ratio:16 / 9){.cardDefaultText{position:static;top:initial;left:initial;right:initial;inset-inline-start:initial;inset-inline-end:initial;width:auto}}.textActionButton{border:0!important;background:0 0;border:0!important;padding:0!important;cursor:pointer;-webkit-tap-highlight-color:transparent;color:inherit!important;display:inline-block;vertical-align:middle;font-family:inherit;font-size:inherit;outline:0!important;font-weight:inherit;line-height:normal!important;-webkit-border-fit:border!important}.cardTextActionButton{width:auto;text-overflow:ellipsis;text-align:inherit;line-height:1!important}.cardImageIcon{font-size:4em!important;color:inherit}.cardImageIcon-sideFooter{font-size:3em!important}.cardImageIcon-smallSideFooter{font-size:1.64em!important}.cardImageIcon-center{width:1em;height:1em;position:absolute;top:50%;left:50%;inset-inline-start:50%;inset-inline-end:initial;-webkit-margin-start:-.5em;margin-inline-start:-.5em;margin-top:-.5em}@supports (aspect-ratio:16 / 9){.cardImageIcon-center{width:auto;height:auto;position:initial;margin-top:0;-webkit-margin-start:0;margin-inline-start:0}}.cardRefreshIndicator-sideFooter{position:absolute!important}:root{--backdrop-cards:1;--small-sidefooter-cards:1.3;--sidefooter-cards:1;--banner-cards:1;--four-three-cards:2;--square-cards:2;--portrait-cards:3;--user-cards-size-adjust:0;--app-cards-size-adjust:0}.itemsContainer-defaultCardSize{--user-cards-size-adjust:0}.cardImageContainer-nowplaying::after{background-size:contain;background-image:url(./../listview/ani_equalizer_white.gif);background-position:center center;background-repeat:no-repeat;background-size:auto;position:absolute;top:0;bottom:0;inset-inline-start:0;inset-inline-end:0;content:' '} \ No newline at end of file diff --git a/modules/cardbuilder/card_nontv.css b/modules/cardbuilder/card_nontv.css new file mode 100644 index 0000000..625d376 --- /dev/null +++ b/modules/cardbuilder/card_nontv.css @@ -0,0 +1 @@ +@media not all and (pointer:fine){.cardBox-touchzoom{transition:-webkit-transform .6s ease-out;transition:transform .6s ease-out;transition-delay:0.1s}.card-autoactive:active,.itemElement-activetouch{z-index:10;contain:layout style}.card-autoactive:active>.cardBox-touchzoom,.itemElement-activetouch>.cardBox-touchzoom{-webkit-transform:scale(1.08);transform:scale(1.08)}}@media all and (min-width:60em) and (max-width:99em){.withFullDrawer{--app-cards-size-adjust:-1}}@media all and (orientation:landscape){:root{--backdrop-cards:2}}@media all and (orientation:portrait) and (min-width:24em){:root{--backdrop-cards:2}}@media all and (orientation:portrait) and (min-width:31.25em){:root{--square-cards:3}}@media all and (min-width:31.25em){:root{--four-three-cards:3}}@media all and (min-width:36em){:root{--square-cards:3;--portrait-cards:4}}@media all and (min-width:40em){:root{--square-cards:4;--small-sidefooter-cards:2}}@media all and (orientation:landscape) and (min-width:40em){:root{--portrait-cards:5}}@media all and (orientation:landscape) and (min-width:50em){:root{--square-cards:5}}@media all and (min-width:45em){:root{--four-three-cards:4;--sidefooter-cards:2}}@media all and (min-width:50em){:root{--small-sidefooter-cards:3}}@media (min-width:50em){:root{--backdrop-cards:3}}@media all and (min-width:55em){:root{--banner-cards:2;--square-cards:5;--portrait-cards:5}}@media (min-width:62.5em){:root{--backdrop-cards:4}}@media all and (min-width:66em){:root{--small-sidefooter-cards:4}}@media all and (min-width:70em){:root{--four-three-cards:5;--square-cards:6;--portrait-cards:6}}@media all and (min-width:76em){:root{--sidefooter-cards:3}}@media all and (min-width:82.5em){:root{--backdrop-cards:5}}@media all and (min-width:85em){:root{--square-cards:7;--portrait-cards:7}}@media all and (min-width:100em){:root{--banner-cards:3;--small-sidefooter-cards:5;--four-three-cards:6;--square-cards:8;--portrait-cards:8}}@media all and (min-width:115em){:root{--small-sidefooter-cards:6;--portrait-cards:9;--square-cards:9}}@media all and (min-width:120em){:root{--small-sidefooter-cards:6}}@media all and (min-width:130em){:root{--square-cards:10;--portrait-cards:10}}@media all and (min-width:131.25em){:root{--backdrop-cards:6;--four-three-cards:7;--sidefooter-cards:4}}@media all and (min-width:145em){:root{--square-cards:11;--portrait-cards:11}}@media all and (min-width:150em){:root{--banner-cards:4}}@media all and (min-width:160em){:root{--backdrop-cards:7;--small-sidefooter-cards:7;--four-three-cards:8;--square-cards:12;--portrait-cards:12}}@media all and (min-width:175em){:root{--square-cards:13;--portrait-cards:13}}@media all and (min-width:180em){:root{--small-sidefooter-cards:8;--four-three-cards:9}}@media all and (min-width:190em){:root{--square-cards:14;--portrait-cards:14}}@media all and (min-width:200em){:root{--banner-cards:5;--sidefooter-cards:5;--backdrop-cards:8;--small-sidefooter-cards:9;--four-three-cards:10}}@media all and (min-width:205em){:root{--square-cards:15;--portrait-cards:15}}@media all and (min-width:220em){:root{--sidefooter-cards:6;--backdrop-cards:9;--small-sidefooter-cards:10;--four-three-cards:11;--square-cards:16;--portrait-cards:16}}@media all and (min-width:240em){:root{--banner-cards:6;--sidefooter-cards:7;--small-sidefooter-cards:11;--four-three-cards:12;--square-cards:17;--portrait-cards:17}} \ No newline at end of file diff --git a/modules/cardbuilder/card_nontv2.css b/modules/cardbuilder/card_nontv2.css new file mode 100644 index 0000000..e515401 --- /dev/null +++ b/modules/cardbuilder/card_nontv2.css @@ -0,0 +1 @@ +.cardOverlayButton{color:rgba(255,255,255,.76);margin:0;z-index:1}.cardOverlayButton-br{position:absolute;bottom:.5em;right:.25em;inset-inline-start:initial;inset-inline-end:.25em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:flex-end;justify-content:flex-end}.cardOverlayButton-fab{padding:.25em;font-size:140%}@media all and (orientation:portrait) and (max-width:35em){.scrollX{--backdrop-cards:1.2}}.cardOverlayContainer{background:rgba(51,51,51,.5);opacity:0;transition:opacity .2s ease-out;position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;-webkit-user-select:none;user-select:none;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;border-radius:.42em;z-index:2;contain:layout style;-webkit-user-select:none;user-select:none}@media not all and (pointer:fine){.cardOverlayContainer{display:none}}.cardContent-button+.cardOverlayContainer{cursor:pointer}.chkCardSelectContainer{font-size:88%;width:auto!important;margin:0!important;display:-webkit-inline-flex!important;display:inline-flex!important;-webkit-align-items:flex-start!important;align-items:flex-start!important;padding-top:.8em!important;position:absolute!important;top:0;left:0;inset-inline-start:0;inset-inline-end:initial;padding:.35em .25em!important}@media (pointer:fine){.card-hoverable:hover .cardOverlayContainer{opacity:1;display:-webkit-flex;display:flex}}.chkCardSelect{top:0;left:0;inset-inline-start:0;inset-inline-end:initial}.chkCardSelect-checkboxLabel::before{border-radius:100em!important;box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.chkCardSelect-checkboxLabel::after{border-width:.2em!important}.cardOverlayFab-primary{font-size:280%;padding:.1em;position:absolute;top:50%;left:50%;inset-inline-start:50%;inset-inline-end:initial;margin-top:-.6em!important;margin-bottom:0!important;-webkit-margin-start:-.6em!important;margin-inline-start:-.6em!important;-webkit-margin-end:0!important;margin-inline-end:0!important}.multi-select-active .cardIndicator{display:none}.multi-select-active .cardOverlayContainer{opacity:1!important;display:-webkit-flex!important;display:flex!important}.multi-select-active .cardOverlayButton:not(.chkCardSelectContainer){display:none!important}.item-multiselected .cardOverlayContainer{background:0 0!important} \ No newline at end of file diff --git a/modules/cardbuilder/card_post.css b/modules/cardbuilder/card_post.css new file mode 100644 index 0000000..c340c4c --- /dev/null +++ b/modules/cardbuilder/card_post.css @@ -0,0 +1 @@ +.cardPlayedIndicator,.cardTimerIndicator,.cardUserDisabledIcon{border-radius:100em;font-size:1.1em;height:1.25em;width:1.25em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;top:.18em;position:absolute;right:.18em;inset-inline-start:initial;inset-inline-end:.18em;contain:layout style}.cardTimerIndicator{font-size:1.28em}.cardUserDisabledIcon{font-size:1.4em;color:#777;background:#d3d3d3;height:1.4em;width:1.4em}.cardPlayedIndicator+.cardTimerIndicator{right:1.5em;inset-inline-start:initial;inset-inline-end:1.5em}.cardCountIndicator{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;top:.225em;position:absolute;right:.225em;inset-inline-start:initial;inset-inline-end:.225em;contain:layout style}.cardProgramIndicator{contain:layout style;display:-webkit-inline-flex;display:inline-flex;margin-top:0;margin-bottom:.2em;-webkit-margin-start:.35em;margin-inline-start:.35em;-webkit-margin-end:0;margin-inline-end:0;padding:.08em .5em;border-radius:.42em;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;text-transform:uppercase;text-shadow:none;font-size:86%;font-weight:600}.appfooter-drag-reorder-active{display:none!important}.dragClone .cardBox{transition:-webkit-transform ease-out .3s!important;transition:transform ease-out .3s!important}.dragClone.dragging .cardBox{-webkit-transform:scale(70%)!important;transform:scale(70%)!important}.dragClone .cardOverlayContainer{display:none!important}.cardIndicatorIcon{font-size:1.6em;top:.225em;left:.225em;inset-inline-start:.225em;inset-inline-end:initial;position:absolute;color:#fff}.cardIndicatorIcon-dragHandle{right:.225em;inset-inline-start:initial;inset-inline-end:.225em;text-shadow:.14em .14em .28em rgba(0,0,0,.45);cursor:pointer}.cardMediaInfoItems{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-column-gap:initial!important;column-gap:initial!important;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.cardMediaInfoItem{-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}.cardMediaInfoItem+.cardMediaInfoItem{-webkit-margin-start:.5em!important;margin-inline-start:.5em!important}.cardMediaInfoItem .starIcon{line-height:.96}.card.dragging-over{position:relative;contain:none!important;z-index:1}.dragging-over-left::before{content:' ';width:.24em;position:absolute;top:.8em;bottom:.8em;left:-.14em;inset-inline-start:-.14em;inset-inline-end:initial;z-index:99999;border-radius:100em}.dragging-over-right::after{content:' ';width:.24em;position:absolute;right:-.14em;top:.8em;bottom:.8em;inset-inline-start:initial;inset-inline-end:-.14em;z-index:99999;border-radius:100em}.cardProgressBarContainer{background:0 0!important;height:.22em}.visualCardBox-vibrant-lg::before{content:" ";position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;background:rgba(0,0,0,.2);z-index:-1}.autoWidthCardBox{contain:layout style}.card:focus .cardContent-bxsborder{contain:initial;content-visibility:initial;overflow:visible}.card:focus-visible .cardContent-bxsborder-fv{contain:initial;content-visibility:initial;overflow:visible}.sideFooterCard:focus .cardBox-sideFooter-f{overflow:visible}.sideFooterCard:focus .cardContent-sideFooter-f{border-start-start-radius:inherit;border-end-start-radius:inherit}.card:focus .cardContent-bxsborder::before{content:" ";position:absolute;top:-.34em;left:-.34em;right:-.34em;bottom:-.34em;border-width:.22em;border-style:solid;border-radius:.6em}.card:focus-visible .cardContent-bxsborder-fv::before{content:" ";position:absolute;top:-.34em;left:-.34em;right:-.34em;bottom:-.34em;border-width:.22em;border-style:solid;border-radius:.6em}.card:focus .cardContent-round::before{border-radius:100em}.cardImage-bxsborder{border-radius:inherit}.cardImage-bxsborder-fv{border-radius:inherit}.buttonCardBox{border-radius:100em;margin:.4em}.buttonCardBox::before,.cardBox-sideFooter::before{display:none!important}.cardText-watching{visibility:hidden}.cardText-currentwatching{visibility:visible} \ No newline at end of file diff --git a/modules/cardbuilder/card_sizes_base.css b/modules/cardbuilder/card_sizes_base.css new file mode 100644 index 0000000..a2e99e4 --- /dev/null +++ b/modules/cardbuilder/card_sizes_base.css @@ -0,0 +1 @@ +.squareCard{width:16.6666667%}.squareCard-horiz{width:15.3333333vw}.portraitCard{width:16.6666667%}.portraitCard-horiz{width:15.3333333vw}.bannerCard{width:33.333333%}.bannerCard-horiz{width:30.66667vw}.sideFooterCard{width:25%}.sideFooterCard-horiz{width:23vw}.fourThreeCard{width:25%}.fourThreeCard-horiz{width:23vw}.backdropCard{width:25%}.backdropCard-horiz{width:23vw} \ No newline at end of file diff --git a/modules/cardbuilder/card_sizes_container.css b/modules/cardbuilder/card_sizes_container.css new file mode 100644 index 0000000..e69de29 diff --git a/modules/cardbuilder/card_sizes_horizontal_all.css b/modules/cardbuilder/card_sizes_horizontal_all.css new file mode 100644 index 0000000..ae1bc86 --- /dev/null +++ b/modules/cardbuilder/card_sizes_horizontal_all.css @@ -0,0 +1 @@ +.spotlightItemsContainer{height:auto}.spotlightButtonsItemsContainer{container-type:initial;height:auto}.spotlightButtonCard-horizontal{width:33.333333%} \ No newline at end of file diff --git a/modules/cardbuilder/card_sizes_horizontal_base.css b/modules/cardbuilder/card_sizes_horizontal_base.css new file mode 100644 index 0000000..21d75b1 --- /dev/null +++ b/modules/cardbuilder/card_sizes_horizontal_base.css @@ -0,0 +1 @@ +.squareCard-xGrid{width:7em}.portraitCard-xGrid{width:7em}.fourThreeCard-xGrid{width:9em}.backdropCard-xGrid{width:12em}.wideSpotlightCard{width:24em!important}.spotlightButtonCardContent-horizontal{height:calc((55vh / 3) - .6em);aspect-ratio:initial!important;padding-bottom:0!important} \ No newline at end of file diff --git a/modules/cardbuilder/card_sizes_horizontal_container.css b/modules/cardbuilder/card_sizes_horizontal_container.css new file mode 100644 index 0000000..d310560 --- /dev/null +++ b/modules/cardbuilder/card_sizes_horizontal_container.css @@ -0,0 +1 @@ +.squareCard-xGrid{width:calc((((100cqh / (max((3 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (1 / 1)) + .6em)}.portraitCard-xGrid{width:calc((((100cqh / (max((2 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (3 / 2)) + .6em)}.fourThreeCard-xGrid{width:calc((((100cqh / (max((3 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (3 / 4)) + .6em)}.backdropCard-xGrid{width:calc((((100cqh / (max((3 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (9 / 16)) + .6em)}.wideSpotlightCard{width:calc((((100cqh * 2 / 3) - .6em)/ (9 / 16)) + .6em)}.spotlightButtonCardContent-horizontal{height:calc((100cqh / 3) - .6em);aspect-ratio:initial!important;padding-bottom:0!important} \ No newline at end of file diff --git a/modules/cardbuilder/card_sizes_horizontal_var.css b/modules/cardbuilder/card_sizes_horizontal_var.css new file mode 100644 index 0000000..200a380 --- /dev/null +++ b/modules/cardbuilder/card_sizes_horizontal_var.css @@ -0,0 +1 @@ +.squareCard-xGrid{width:calc((((55vh / (3 + var(--app-cards-size-adjust) + var(--user-cards-size-adjust))) - .6em)/ (1 / 1)) + .6em)}.portraitCard-xGrid{width:calc((((55vh / (2 + var(--app-cards-size-adjust) + var(--user-cards-size-adjust))) - .6em)/ (3 / 2)) + .6em)}.fourThreeCard-xGrid{width:calc((((55vh / (3 + var(--app-cards-size-adjust) + var(--user-cards-size-adjust))) - .6em)/ (3 / 4)) + .6em)}.backdropCard-xGrid{width:calc((((55vh / (3 + var(--app-cards-size-adjust) + var(--user-cards-size-adjust))) - .6em)/ (9 / 16)) + .6em)}.wideSpotlightCard{width:calc((((55vh * 2 / 3) - .6em)/ (9 / 16)) + .6em)}.spotlightButtonCardContent-horizontal{height:calc((55vh / 3) - .6em);aspect-ratio:initial!important;padding-bottom:0!important} \ No newline at end of file diff --git a/modules/cardbuilder/card_sizes_horizontal_varcalcmax.css b/modules/cardbuilder/card_sizes_horizontal_varcalcmax.css new file mode 100644 index 0000000..7e4ba4a --- /dev/null +++ b/modules/cardbuilder/card_sizes_horizontal_varcalcmax.css @@ -0,0 +1 @@ +.squareCard-xGrid{width:calc((((55vh / (max((3 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (1 / 1)) + .6em)}.portraitCard-xGrid{width:calc((((55vh / (max((2 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (3 / 2)) + .6em)}.fourThreeCard-xGrid{width:calc((((55vh / (max((3 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (3 / 4)) + .6em)}.backdropCard-xGrid{width:calc((((55vh / (max((3 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (9 / 16)) + .6em)}.wideSpotlightCard{width:calc((((55vh * 2 / 3) - .6em)/ (9 / 16)) + .6em)}.spotlightButtonCardContent-horizontal{height:calc((55vh / 3) - .6em);aspect-ratio:initial!important;padding-bottom:0!important} \ No newline at end of file diff --git a/modules/cardbuilder/card_sizes_var.css b/modules/cardbuilder/card_sizes_var.css new file mode 100644 index 0000000..441e7df --- /dev/null +++ b/modules/cardbuilder/card_sizes_var.css @@ -0,0 +1 @@ +.squareCard{width:16.6666667%;width:calc(100% / (var(--square-cards) + var(--app-cards-size-adjust)))}.squareCard-horiz{width:15.3333333vw;width:calc(93vw / var(--square-cards))}.portraitCard{width:16.6666667%;width:calc(100% / (var(--portrait-cards) + var(--app-cards-size-adjust)))}.portraitCard-horiz{width:15.3333333vw;width:calc(93vw / var(--portrait-cards))}.bannerCard{width:33.333333%;width:calc(100% / (var(--banner-cards) + var(--app-cards-size-adjust)))}.bannerCard-horiz{width:30.66667vw;width:calc(93vw / var(--banner-cards))}.sideFooterCard{width:25%;width:calc(100% / (var(--sidefooter-cards) + var(--app-cards-size-adjust)))}.sideFooterCard-horiz{width:23vw;width:calc(93vw / var(--sidefooter-cards))}.smallSideFooterCard{width:16.6666667%;width:calc(100% / (var(--small-sidefooter-cards) + var(--app-cards-size-adjust)))}.smallSideFooterCard-horiz{width:15.3333333vw;width:calc(93vw / (var(--small-sidefooter-cards)))}.fourThreeCard{width:25%;width:calc(100% / (var(--four-three-cards) + var(--app-cards-size-adjust)))}.fourThreeCard-horiz{width:23vw;width:calc(93vw / var(--four-three-cards))}.backdropCard{width:25%;width:calc(100% / (var(--backdrop-cards) + var(--app-cards-size-adjust)))}.backdropCard-horiz{width:23vw;width:calc(93vw / var(--backdrop-cards))} \ No newline at end of file diff --git a/modules/cardbuilder/card_sizes_varcalcmax.css b/modules/cardbuilder/card_sizes_varcalcmax.css new file mode 100644 index 0000000..bdd1f56 --- /dev/null +++ b/modules/cardbuilder/card_sizes_varcalcmax.css @@ -0,0 +1 @@ +@supports (width:max(10em,5vw)){.squareCard{width:calc(100% / max((var(--square-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),2))}.squareCard-horiz{width:calc(93vw / max((var(--square-cards) + var(--user-cards-size-adjust)),2))}.portraitCard{width:calc(100% / max((var(--portrait-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),3))}.portraitCard-horiz{width:calc(93vw / max((var(--portrait-cards) + var(--user-cards-size-adjust)),3))}.bannerCard{width:calc(100% / max((var(--banner-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))}.bannerCard-horiz{width:calc(93vw / max((var(--banner-cards) + var(--user-cards-size-adjust)),1))}.sideFooterCard{width:calc(100% / max((var(--sidefooter-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))}.sideFooterCard-horiz{width:calc(93vw / max((var(--sidefooter-cards) + var(--user-cards-size-adjust)),1))}.smallSideFooterCard{width:calc(100% / max((var(--small-sidefooter-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1.3))}.smallSideFooterCard-horiz{width:calc(93vw / max((var(--small-sidefooter-cards) + var(--user-cards-size-adjust)),1.3))}.fourThreeCard{width:calc(100% / max((var(--four-three-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),2))}.fourThreeCard-horiz{width:calc(93vw / max((var(--four-three-cards) + var(--user-cards-size-adjust)),2))}.backdropCard{width:calc(100% / max((var(--backdrop-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))}.backdropCard-horiz{width:calc(93vw / max((var(--backdrop-cards) + var(--user-cards-size-adjust)),1))}} \ No newline at end of file diff --git a/modules/cardbuilder/card_tv2.css b/modules/cardbuilder/card_tv2.css new file mode 100644 index 0000000..e2edd5e --- /dev/null +++ b/modules/cardbuilder/card_tv2.css @@ -0,0 +1 @@ +:root{--square-cards:5;--banner-cards:3;--sidefooter-cards:3;--small-sidefooter-cards:4;--portrait-cards:6;--backdrop-cards:4;--four-three-cards:5} \ No newline at end of file diff --git a/modules/cardbuilder/cardbuilder.js b/modules/cardbuilder/cardbuilder.js new file mode 100644 index 0000000..36a6739 --- /dev/null +++ b/modules/cardbuilder/cardbuilder.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/connectionmanager.js","./../emby-apiclient/events.js","./../common/textencoding.js","./../common/globalize.js","./../common/datetime.js","./../common/itemmanager/itemmanager.js","./../common/playback/playbackmanager.js","./../common/appsettings.js","./../dom.js","./../browser.js","./../focusmanager.js","./../layoutmanager.js","./../mediainfo/mediainfo.js","./../common/dataformatter.js","./../indicators/indicators.js","./../shortcuts.js","./../common/servicelocator.js","./../common/imagehelper.js","./../lazyloader/lazyimageloader.js","./../emby-elements/userdatabuttons/emby-playstatebutton.js","./../emby-elements/userdatabuttons/emby-ratingbutton.js","./../emby-elements/sync/emby-downloadbutton.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../common/usersettings/usersettings.js"],function(_exports,_connectionmanager,_events,_textencoding,_globalize,_datetime,_itemmanager,_playbackmanager,_appsettings,_dom,_browser,_focusmanager,_layoutmanager,_mediainfo,_dataformatter,_indicators,_shortcuts,_servicelocator,_imagehelper,_lazyimageloader,_embyPlaystatebutton,_embyRatingbutton,_embyDownloadbutton,_paperIconButtonLight,_usersettings){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;CSS.supports("aspect-ratio","16 / 9");require(["cardStyle","programStyles"]);var CurrentPlayingItemId,refreshIndicatorLoaded,embyCheckboxLoaded,decodingAttribute=_dom.default.supportsAsyncDecodedImages()?' decoding="async"':"",supportsObjectFit=CSS.supports("object-fit","contain"),supportsCssVariables=CSS.supports("color","var(--fake-var)"),supportsCalc=CSS.supports("width","min(45.2%,calc(100% - .65em))"),supportsMin=CSS.supports("width","min(10em, 5vw)"),EnableFocusTransfrom=_dom.default.allowFocusScaling(),supportsNativeLazyLoading="loading"in HTMLImageElement.prototype,SupportsContainerQueries="undefined"!=typeof CSS&&CSS.supports("width","1cqw"),SupportsPositionTry="undefined"!=typeof CSS&&CSS.supports("position-try-fallbacks: top"),SupportsHorizontalRenderingWithoutCardColumns=SupportsContainerQueries&&SupportsPositionTry&&_browser.default.chrome;function onPlaybackStart(e,player,state){state=state.NowPlayingItem,state="Audio"===(null==state?void 0:state.MediaType)?state.Id:null;CurrentPlayingItemId=state}_events.default.on(_playbackmanager.default,"playbackstart",onPlaybackStart),_events.default.on(_playbackmanager.default,"statechange",onPlaybackStart),_events.default.on(_playbackmanager.default,"playbackstop",function(){CurrentPlayingItemId=null});var cachedWidths={};function setListOptions(items,options){null==options.isBoundListItem&&(options.isBoundListItem=!0),null==options.hideEpisodeSpoilerInfo&&(options.hideEpisodeSpoilerInfo=_usersettings.default.hideEpisodeSpoilerInfo()),options.rtl="rtl"===document.dir,options.loadingLazyAttribute=' loading="lazy"',options.cardSize&&"default"!==options.cardSize||(options.cardSize=_appsettings.default.cardSize()),options.itemSelector=".card",options.playAction||(options.playAction="playallfromhere"===options.action?"playallfromhere":"play"),options.imageFallback=!1!==options.imageFallback;for(var shape=options.shape||"auto",fieldMap=(options.sideFooter&&(options.textLinks=!(shape="banner")),options.fields||(options.fields=[]),{}),i=0,length=options.fields.length;i
91%
'),options.PersonRole&&lines.push(""),options.ChapterTime&&lines.push(""),options.ChapterWatching&&lines.push(""),options.ChannelName&&lines.push(""),options.LastServerAddress&&lines.push(""),options.Tagline&&lines.push(getTaglineText("")),options.Overview&&lines.push(getOverviewText("")),options.MediaInfo&&lines.push(""),options.Album&&lines.push(""),options.Director&&lines.push(""),options.Type&&lines.push(""),options.LastActivityDateRelative&&lines.push(""),options.DateCreated&&lines.push(""),options.DateModified&&lines.push(""),options.DatePlayed&&lines.push(""),options.Version&&lines.push(""),options.Url&&lines.push(""),options.InstalledVersion&&lines.push(""),options.ItemImageName&&lines.push(""),options.Filename&&lines.push(""),options.FilenameOrName&&lines.push(""),(options.Size||options.Container||options.Bitrate)&&lines.push(""),options.VideoCodec&&lines.push(""),options.AudioCodec&&lines.push(""),(options.Resolution||options.Framerate)&&lines.push(""),options.ParentName&&lines.push(""),options.CollectionType&&lines.push(""),options.LibraryFolders&&lines.push(""),options.AppNameVersion&&lines.push(""),options.AppName&&lines.push(""),options.DeviceUserInfo&&lines.push(""),options.CurrentProgramTime&&lines.push(""),options.CurrentProgramParentName&&lines.push(""),options.CurrentProgramParentNameOrName&&lines.push(""),options.CurrentProgramName&&lines.push(""),options.SeriesTimerChannel&&lines.push(""),options.SeriesTimerTime&&lines.push(""),options.ImageEditorStandardButtons&&lines.push(""),options.ImageEditorBackdropButtons&&lines.push(""),options.IpAddress&&lines.push(""),options.TunerName&&lines.push(""),options.Genres&&lines.push(""),options.Tags&&lines.push(""),options.Studios&&lines.push(""),options.SessionNowPlayingInfo&&(lines.push(""),lines.push(""),lines.push("")),options.AirTime&&lines.push(""),options.AccessToken&&lines.push(""),options.DownloadableImageInfo&&(lines.push(""),lines.push("")),lines}(options),autoShape=(options.lines||options.overlayText||(options.lines=templateLines.length),"auto"===shape||"autooverflow"===shape),items=shape=autoShape?_imagehelper.default.getShape(items,options):shape,autoShape=(options.sideFooter&&(items="square"),"auto"===options.preferThumb&&(options.preferThumb="square"===items?null:"backdrop"===items||"fourThree"===items),!0===options.preferThumb&&autoShape&&(items="backdrop",options.sideFooter||(shape="backdrop")),!0===options.preferLogo&&autoShape&&(items="backdrop",options.sideFooter||(shape="backdrop")),options.uiAspect=_imagehelper.default.getAspectFromShape(items,options).aspect,!options.width&&options.widths&&(options.width=options.widths[items]),options.horizontalGrid&&!SupportsHorizontalRenderingWithoutCardColumns&&(options.rows={portrait:2,square:3,backdrop:3,fourThree:3,banner:3}),options.rows&&"number"!=typeof options.rowCount&&(options.smallSideFooter?options.rowCount=5:options.rowCount=options.rows[items]),"card"),isLayoutTV=(shape&&(autoShape+=" "+shape+"Card"),options.horizontal&&(autoShape+=" card-horiz "+shape+"Card-horiz"),options.horizontalGrid&&(autoShape+=" "+shape+"Card-xGrid",options.isVirtualList||(autoShape+=" staticCard-xGrid")),options.cardClass&&(autoShape+=" "+options.cardClass),options.autoWidth&&(autoShape+=" autoWidthCard"),_layoutmanager.default.tv),isSingleClickElement=(isLayoutTV||(autoShape+=" card-hoverable"),options.enableFocusScaling=!1!==options.enableFocusScaling&&isLayoutTV&&EnableFocusTransfrom,options.enableCardBox=options.enableFocusScaling||options.cardLayout||options.sideFooter||!isLayoutTV||!options.isVirtualList,options.hoverMenu=!_layoutmanager.default.tv&&!1!==options.hoverMenu,isLayoutTV&&!options.staticElement||!1===options.hoverMenu&&"none"!==options.action),lineContents=(options.enableFocusScaling&&(autoShape+=" card-focustransform"),options.sideFooter&&(autoShape+=" sideFooterCard",options.horizontal)&&(autoShape+=" sideFooterCard-horiz"),options.smallSideFooter&&(autoShape+=" smallSideFooterCard",options.horizontal)&&(autoShape+=" smallSideFooterCard-horiz"),options.contextMenu=!1!==options.contextMenu,isSingleClickElement?(tagName="button",autoShape+=" itemAction card-itemAction",options.contextMenu&&(autoShape+=" longpress")):(tagName="div",options.staticElement||(options.addTabIndex=!0)),null==options.reOrder&&(options.reOrder=options.dragReorder&&options.draggable),isLayoutTV?(options.draggable=!1,options.anyDraggable=options.draggable,options.dropTarget=!1,options.dragReorder=!1):(options.draggable=!1!==options.draggable,options.anyDraggable=options.draggable,options.dragReorder&&options.draggable?autoShape+=" drop-target ordered-drop-target-x":options.dropTarget&&(autoShape+=" drop-target full-drop-target")),[]);for(options.lines&&(lineContents.length=options.lines),i=0,length=lineContents.length;i
':card.innerHTML='
',options.useItemsContainerForImageSize&&options.itemsContainer?(card.style.position="absolute",card.style.visibility="hidden",options.itemsContainer.appendChild(card),elemToRemove=card):((cardClass=document.createElement("div")).className="itemsContainer padded-left padded-right",options.cardSize&&setUserPreferredSize(cardClass,options.cardSize),cardClass.style.visibility="hidden",cardClass.appendChild(card),elemToRemove=cardClass,document.body.appendChild(cardClass)),screenWidth=options.sideFooter?cachedWidths[key]=card.querySelector(".cardImageContainer").offsetWidth||400:cachedWidths[key]=card.querySelector(".cardScalable").offsetWidth||400,elemToRemove.remove(),console.log("card width: "+screenWidth+" - "+key)),screenWidth}(autoShape,cardBoxClass,cardContentClass,options,cardImageClass),cardImageClass=cardImageClass,(screen=window.screen)&&20':""),cardDefaultTextClass=cardDefaultTextClass.join(" "),innerCardFooterClass=innerCardFooterClass.join(" "),cardImageClass=(isSingleClickElement||"none"===options.action?screen+='
':screen+='',"cardFooter"),cardImageClass=(options.vibrant&&(cardImageClass+=" cardFooter-vibrant"),options.outerFooterClass=cardImageClass,options.cardLayout&&(screen+='
'),screen+=cardTextFirstClass,options.cardLayout&&(screen+="
"),options.enableCardBox&&(screen+=""),null==options.defaultIcon&&(options.sideFooter||options.lines||fieldMap.Name?options.defaultIcon=!0:options.defaultIcon=!1),options.moreTitle=_globalize.default.translate("More"),options.multiSelectTitle=_globalize.default.translate("MultiSelect"),options.multiSelect=!1!==options.multiSelect&&!isLayoutTV,!options.multiSelect||embyCheckboxLoaded||(embyCheckboxLoaded=!0,Emby.importModule("./modules/emby-elements/emby-checkbox/emby-checkbox.js")),options.enableUserData=!1!==options.enableUserData,"");options.addTabIndex&&(cardImageClass+=' tabindex="0"'),options.anyDraggable&&(cardImageClass+=' draggable="true"'),"button"===tagName&&(cardImageClass+=' type="button"'),options.fixedAttributes=cardImageClass.trim(),options.templateInnerHTML=screen,options.cardPadderClass=cardDefaultTextClass,options.innerCardFooterClass=innerCardFooterClass,options.tagName=tagName,options.shape=shape,options.imageShape=items,options.className=autoShape,options.isSingleClickElement=isSingleClickElement,options.cardContentClass=cardContentClass,options.cardBoxClass=cardBoxClass}function buildCardsHtmlInternal(items,options){setListOptions(items,options);for(var hasOpenRow,html="",itemsInRow=0,rows=options.rowCount,i=0,length=items.length;i",hasOpenRow=!1),html+='
',hasOpenRow=!0),html+=getCardHtml(items[i],i,options),itemsInRow++,rows&&rows<=itemsInRow&&(html+="
",hasOpenRow=!1,itemsInRow=0);return hasOpenRow&&(html+=""),html}function getCardTextLines(item,lines,cssClass,forceLines,isOuterFooter,maxLines,options){for(var html="",valid=0,currentCssClass=(isOuterFooter||(cssClass+=" innerFooter-cardText"),cssClass),i=0,length=lines.length;i')+text+"",valid++,maxLines)&&maxLines<=valid)break}if(forceLines)for(length=maxLines||Math.min(lines.length,maxLines||lines.length);valid ',valid++;return html}function isUsingLiveTvNaming(itemType){return"Program"===itemType||"Timer"===itemType||"Recording"===itemType}function getTaglineText(text){var html='
';return{html:html+_textencoding.default.htmlEncode(text||"")+"
"}}function getOverviewText(text){var html='
';return{html:html+_textencoding.default.htmlEncode(text||"")+"
"}}function getTextLinksLine(options,item,linkItems,linkItemType,limit){linkItems=linkItems||[];for(var html="",i=0,length=limit=Math.min(linkItems.length,limit);i'+html+""}function getCardFooterText(item,itemController,options,fieldMap,imgUrl,footerClass,progressHtml,logoUrl,isOuterFooter){var parentTitleUnderneath,itemType=item.Type,html="",lines=(logoUrl&&(html+=''),[]);switch(itemType){case"MusicAlbum":case"Audio":case"MusicVideo":case"Game":case"Photo":parentTitleUnderneath=!0}var serverId=item.ServerId||options.serverId,parentTitle=(fieldMap.Album&&options.albumFirst&&(isOuterFooter&&item.AlbumId&&item.Album?lines.push(getTextActionButton(options,{Id:item.AlbumId,ServerId:serverId,Name:item.Album,Type:"MusicAlbum",IsFolder:!0})):lines.push(item.Album||"")),!fieldMap.ParentName&&!fieldMap.ParentNameOrName||parentTitleUnderneath||(isOuterFooter&&"Episode"===itemType&&item.SeriesName?item.SeriesId?lines.push(getTextActionButton(options,{Id:item.SeriesId,ServerId:serverId,Name:item.SeriesName,Type:"Series",IsFolder:!0})):lines.push(_textencoding.default.htmlEncode(item.SeriesName)):isUsingLiveTvNaming(itemType)?(lines.push(_textencoding.default.htmlEncode(item.Name)),item.EpisodeTitle||(titleAdded=!0)):((parentTitle=item.SeriesName||item.Series||item.Album||(item.AlbumArtist?item.AlbumArtist.Name||item.AlbumArtist:null)||item.GameSystem||"")||fieldMap.Name)&&lines.push(_textencoding.default.htmlEncode(parentTitle))),fieldMap.Name&&!titleAdded||fieldMap.ParentNameOrName&&!lines.length);if((parentTitle=parentTitle||titleAdded||!fieldMap.Name?parentTitle:!0)&&(titleAdded=itemController.getDisplayName(item,{includeParentInfo:options.includeParentInfoInTitle,channelNumberFirst:options.channelNumberFirst,enableSpecialEpisodePrefix:options.enableSpecialEpisodePrefix,includeIndexNumber:options.includeIndexNumber,hideEpisodeSpoilerInfo:options.hideEpisodeSpoilerInfo}))&&(isOuterFooter?lines.push(getTextActionButton(options,item,titleAdded,serverId,options.parentId,!0)):lines.push(_textencoding.default.htmlEncode(titleAdded))),fieldMap.Type&&lines.push(itemController.getItemTypeName(item)),fieldMap.ParentName&&parentTitleUnderneath&&(isOuterFooter&&item.AlbumArtists&&item.AlbumArtists.length&&"MusicAlbum"===itemType?(item.AlbumArtists[0].Type="MusicArtist",item.AlbumArtists[0].IsFolder=!0,lines.push(getTextActionButton(options,item.AlbumArtists[0],null,serverId))):isOuterFooter&&item.ArtistItems&&item.ArtistItems.length?(item.ArtistItems[0].Type="MusicArtist",item.ArtistItems[0].IsFolder=!0,lines.push(getTextActionButton(options,item.ArtistItems[0],null,serverId))):isOuterFooter&&item.AlbumArtists&&item.AlbumArtists.length?(item.AlbumArtists[0].Type="MusicArtist",item.AlbumArtists[0].IsFolder=!0,lines.push(getTextActionButton(options,item.AlbumArtists[0],null,serverId))):isOuterFooter&&item.GameSystem&&item.GameSystemId?lines.push(getTextActionButton(options,{Id:item.GameSystemId,ServerId:serverId,Name:item.GameSystem,Type:"GameSystem",IsFolder:!0})):lines.push(_textencoding.default.htmlEncode(isUsingLiveTvNaming(itemType)?item.Name:item.SeriesName||item.Series||item.Album||(item.AlbumArtist?item.AlbumArtist.Name||item.AlbumArtist:null)||item.GameSystem||""))),options.textLines)for(var additionalLines=options.textLines(item),i=0,length=additionalLines.length;i'+lineParts.join("")+"")),fieldMap.ProductionYear),titleAdded=fieldMap.OfficialRating,lineParts=fieldMap.Runtime;if((parentTitle||titleAdded||lineParts)&&(_lineParts=[],parentTitle&&("Series"===itemType?"Continuing"===item.Status?item.ProductionYear&&_lineParts.push(_globalize.default.translate("SeriesYearToPresent",item.ProductionYear||"")):(parentTitle=item.EndDate?new Date(Date.parse(item.EndDate)).getFullYear():null)&&item.ProductionYear&&parentTitle!==item.ProductionYear?_lineParts.push(item.ProductionYear+" – "+parentTitle):item.ProductionYear&&_lineParts.push(item.ProductionYear):item.ProductionYear&&_lineParts.push(item.ProductionYear)),lineParts&&item.RunTimeTicks&&_lineParts.push(_datetime.default.getHumanReadableRuntime(item.RunTimeTicks)),titleAdded&&item.OfficialRating&&_lineParts.push(item.OfficialRating),lines.push(_lineParts.join("  "))),fieldMap.Director&&lines.push(function(options,item,people,personType,limit){return getTextLinksLine(options,item,people=people.filter(function(i){return i.Type===personType}),"Person",limit)}(options,item,item.People||[],"Director",2)),fieldMap.Genres)if(null!=(parentTitle=item.GenreItems)&&parentTitle.length){switch(itemType){case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicVideo":genreType="MusiGenre";break;case"Game":case"GameSystem":genreType="GameGenre";break;default:genreType="Genre"}lines.push(getTextLinksLine(options,item,item.GenreItems,genreType,2))}else emptyLines.push('
 
');if(fieldMap.Studios&&(null!=(lineParts=item.Studios)&&lineParts.length?lines.push(getTextLinksLine(options,item,item.Studios,"Studio",1)):emptyLines.push('
 
')),fieldMap.Tags&&(null!=(titleAdded=item.TagItems)&&titleAdded.length?lines.push(getTextLinksLine(options,item,item.TagItems,"Tag",2)):emptyLines.push('
 
')),fieldMap.AirTime&&lines.push(_mediainfo.default.getAirTimeText(item,options.showAirDateTime,options.showAirEndTime)||""),fieldMap.ChannelName&&(item.ChannelId?lines.push(getTextActionButton(options,{Id:item.ChannelId,ServerId:serverId,Name:item.ChannelName,ChannelNumber:item.ChannelNumber,Type:"TvChannel",MediaType:item.MediaType,IsFolder:!1})):lines.push(item.ChannelName||" ")),fieldMap.CurrentProgramParentName&&lines.push((null==(_lineParts=item.CurrentProgram)?void 0:_lineParts.Name)||""),fieldMap.CurrentProgramParentNameOrName&&(lineParts=(null==(parentTitle=item.CurrentProgram)?void 0:parentTitle.Name)||itemController.getDisplayName(item,{includeParentInfo:options.includeParentInfoInTitle,channelNumberFirst:options.channelNumberFirst,enableSpecialEpisodePrefix:options.enableSpecialEpisodePrefix,includeIndexNumber:options.includeIndexNumber}),lines.push(_textencoding.default.htmlEncode(lineParts||""))),fieldMap.CurrentProgramName&&lines.push((null==(titleAdded=item.CurrentProgram)?void 0:titleAdded.EpisodeTitle)||""),fieldMap.CurrentProgramTime&&(item.CurrentProgram?lines.push(_mediainfo.default.getAirTimeText(item.CurrentProgram,!1,!0)||""):lines.push("")),fieldMap.SeriesTimerTime&&(item.RecordAnyTime?lines.push(_globalize.default.translate("Anytime")):item.StartDate?lines.push(_datetime.default.getDisplayTime(item.StartDate)):lines.push("")),fieldMap.SeriesTimerChannel&&(item.RecordAnyChannel||null==(_lineParts=item.ChannelIds)||!_lineParts.length?lines.push(_globalize.default.translate("AllChannels")):1<(null==(parentTitle=item.ChannelIds)?void 0:parentTitle.length)?lines.push(_globalize.default.translate("NumberChannelsValue",null==(lineParts=item.ChannelIds)?void 0:lineParts.length)):item.ChannelName?lines.push(_itemmanager.default.getDisplayName({Id:item.ChannelId,ServerId:serverId,Name:item.ChannelName,ChannelNumber:item.ChannelNumber,Type:"TvChannel",MediaType:item.MediaType,IsFolder:!1},{})):lines.push(_globalize.default.translate("OneChannel"))),fieldMap.PersonRole&&(item.Role?lines.push(_globalize.default.translate(item.Role)):item.PersonType?lines.push(_globalize.default.translate(item.PersonType)):lines.push("")),fieldMap.ChapterTime&&(null!=item.StartPositionTicks?lines.push(_datetime.default.getDisplayRunningTime(item.StartPositionTicks)):lines.push("")),fieldMap.ChapterWatching&&(_lineParts=(titleAdded=_playbackmanager.default.currentTime())>=item.StartPositionTicks&&titleAdded<=item.StartPositionTicks+(item.DurationTicks||0),lines.push({html:'
'+_globalize.default.translate("Watching")+"
"})),fieldMap.LastActivityDateRelative&&lines.push(itemController.resolveField(item,"LastActivityDateRelative")),fieldMap.AppName&&lines.push(itemController.resolveField(item,"AppName")),fieldMap.AccessToken&&lines.push(itemController.resolveField(item,"AccessToken")),fieldMap.DateCreated){var parentTitle=item.DateCreated,dateText=parentTitle?_datetime.default.toLocaleDateString(new Date(Date.parse(parentTitle))):null;switch(itemType){case"User":case"ApiKey":lines.push(dateText?_globalize.default.translate("CreatedOnValue",dateText):"");break;default:lines.push(dateText?_globalize.default.translate("AddedOnValue",dateText):"")}}return fieldMap.DatePlayed&&(_lineParts=(titleAdded=null==(lineParts=item.UserData)?void 0:lineParts.LastPlayedDate)?_datetime.default.toLocaleDateString(new Date(Date.parse(titleAdded))):null,lines.push(_lineParts?_globalize.default.translate("PlayedOnValue",_lineParts):"")),fieldMap.Url&&lines.push(item.Url||""),fieldMap.Version&&lines.push(_textencoding.default.htmlEncode(item.Version||"")),fieldMap.CollectionType&&(item.Id?lines.push(_itemmanager.default.getContentTypeName(item.CollectionType)):lines.push("")),fieldMap.LibraryFolders&&(item.Locations&&"boxsets"!==item.CollectionType?1===item.Locations.length?lines.push(item.Locations[0]):lines.push(_globalize.default.translate("NumLocationsValue",item.Locations.length)):lines.push("")),fieldMap.AppNameVersion&&lines.push(itemController.resolveField(item,"AppNameVersion")),fieldMap.InstalledVersion&&(item.InstalledVersion?lines.push(_globalize.default.translate("LabelVersionInstalled",item.InstalledVersion)):lines.push("")),fieldMap.InstalledVersion&&lines.push(_textencoding.default.htmlEncode(item.Version||"")),fieldMap.MediaInfo&&lines.push({html:'
'+_mediainfo.default.getPrimaryMediaInfoHtml(item,{episodeTitle:!1,subtitles:!1,endsAt:!1})+"
"}),fieldMap.Tagline&&lines.push(getTaglineText(item.Taglines?item.Taglines[0]:null)),fieldMap.Overview&&(options.hideEpisodeSpoilerInfo&&"Episode"===itemType&&!1===(null==(parentTitle=item.UserData)?void 0:parentTitle.Played)?lines.push(getOverviewText(null)):lines.push(getOverviewText(item.Overview))),(fieldMap.Container||fieldMap.Size||fieldMap.Bitrate)&&(lineParts=[],fieldMap.Container&&item.Container&&lineParts.push(item.Container.toUpperCase()),fieldMap.Size&&item.Size&&(titleAdded=_dataformatter.default.sizeToString(item.Size))&&lineParts.push(titleAdded),fieldMap.Bitrate&&item.Bitrate&&lineParts.push(_dataformatter.default.bitrateToString(item.Bitrate)),lines.push(lineParts.join("  ")||" ")),fieldMap.VideoCodec&&lines.push((null==(_lineParts=item.VideoCodec)?void 0:_lineParts.toUpperCase())||" "),(fieldMap.Resolution||fieldMap.Framerate)&&(parentTitle=[],fieldMap.Resolution&&item.Width&&item.Height&&(titleAdded=_dataformatter.default.getResolutionText(item))&&parentTitle.push(titleAdded),fieldMap.Framerate&&(lineParts=item.AverageFrameRate||item.RealFrameRate)&&(_lineParts=_dataformatter.default.numberToString(lineParts,3))&&parentTitle.push(_lineParts+"fps"),lines.push(parentTitle.join("  ")||" ")),fieldMap.AudioCodec&&lines.push((null==(titleAdded=item.AudioCodec)?void 0:titleAdded.toUpperCase())||" "),fieldMap.DownloadableImageInfo&&(lines.push(function(item){var text="",lang=item.DisplayLanguage||item.Language;return item.Width&&item.Height?(text+=item.Width+"x"+item.Height,lang&&(text+=" - "+lang)):lang&&(text+=lang),text}(item)||""),lines.push(function(item){var text;return"Likes"===item.RatingType?text=1===item.CommunityRating?_globalize.default.translate("OneLike"):_globalize.default.translate("LikeCountValue",item.CommunityRating):item.CommunityRating?(text=_dataformatter.default.numberToString(item.CommunityRating,1),item.VoteCount&&(text+=" - "+(1===item.VoteCount?_globalize.default.translate("OneVote"):_globalize.default.translate("VoteCountValue",item.VoteCount)))):text=_globalize.default.translate("Unrated"),text}(item)||"")),fieldMap.DateModified&&(lineParts=item.DateModified,_lineParts="Log"===itemType?lineParts?_datetime.default.toLocaleString(new Date(Date.parse(lineParts))):null:lineParts?_datetime.default.toLocaleDateString(new Date(Date.parse(lineParts))):null,lines.push(_lineParts?_globalize.default.translate("UpdatedOnValue",_lineParts):"")),fieldMap.DeviceUserInfo&&(parentTitle="",item.LastUserName&&(item.LastUserId?parentTitle+=getTextActionButton(options,{Id:item.LastUserId,Name:item.LastUserName,ServerId:serverId,Type:"User"},item.LastUserName+", "+_dataformatter.default.formatRelativeTime(item.DateLastActivity),null,null):item.LastUserName&&(parentTitle+=item.LastUserName+", "+_dataformatter.default.formatRelativeTime(item.DateLastActivity))),lines.push(parentTitle)),fieldMap.IpAddress&&lines.push(item.IpAddress||""),fieldMap.TunerName&&lines.push(item.TunerName||""),fieldMap.MediaStreamInfo&&_mediainfo.default.pushMediaStreamLines(item,options,lines,itemController.getDefaultIcon(item)),fieldMap.ImageEditorStandardButtons&&lines.push(function(item){var searchText,html="";return item.Providers.length&&(html+=''),item.ImageTag||_servicelocator.appHost.supports("fileinput")&&(html+=''),item.ImageTag&&(html+=''),html}(item)),fieldMap.ImageEditorBackdropButtons&&lines.push(function(){var html="";return html+=''}()),fieldMap.SessionNowPlayingInfo&&function(lines,item){var playstate=item.PlayState,item=item.NowPlayingItem||{};lines.push(item.SeriesName||item.Name),"Episode"===item.Type?lines.push(_itemmanager.default.getDisplayName(item,{includeParentInfo:!0})):item.ArtistItems&&item.ArtistItems.length?lines.push(item.ArtistItems[0].Name):item.ProductionYear&&lines.push(item.ProductionYear),item.RunTimeTicks&&lines.push(_datetime.default.getDisplayRunningTime(playstate.PositionTicks||0)+" / "+_datetime.default.getDisplayRunningTime(item.RunTimeTicks))}(lines,item),fieldMap.LastServerAddress&&("Server"===item.Type&&(itemType=(null==(titleAdded=_connectionmanager.default.getApiClient(item))?void 0:titleAdded.serverAddress())||"")?lines.push(_globalize.default.translate("LastUsedAddressValue",itemType)):lines.push("")),html+=getCardTextLines(item,lines=lines.concat(emptyLines),options.cardTextCssClass,isOuterFooter,isOuterFooter,options.lines,options),progressHtml&&(html+=progressHtml),html&&(!isOuterFooter||logoUrl||options.cardLayout)&&(html='
'+html,html+="
"),html}function getTextActionButton(options,item,text,serverId,parentId,isSameItemAsCard){var dataAttributes;return text=text||_itemmanager.default.getDisplayName(item,{hideEpisodeSpoilerInfo:options.hideEpisodeSpoilerInfo}),!_layoutmanager.default.tv&&!1!==options.textLinks&&item.Id?(text=_textencoding.default.htmlEncode(text),item=isSameItemAsCard?(dataAttributes="",options.linkButtonAction||options.action||"link"):(dataAttributes=_shortcuts.default.getShortcutAttributesHtml(item,{serverId:serverId,parentId:parentId,isBoundListItem:options.isBoundListItem&&isSameItemAsCard}),"link"),'"):_textencoding.default.htmlEncode(text)}function getActiveSessionFooterHtml(options,item,apiClient){var html="";return(html+='
')+function(item){var imgClass,imageUrl,html="";return item.NowPlayingItem&&(html+='
",imgClass="secondaryText activeSession-deviceimage",html=(imageUrl=item.AppIconUrl)?html+('
':(html=html+'
')+_itemmanager.default.getDefaultIcon(item)+"
",html+="
",item.Client&&(html=(html+="
")+_textencoding.default.htmlEncode(item.Client+" "+item.ApplicationVersion)+"
"),item.DeviceName&&(html=(html+='
')+_textencoding.default.htmlEncode(item.DeviceName)+"
"),item.RemoteEndPoint&&(html=html+'
'+item.RemoteEndPoint,(imageUrl=(item.Protocol||"").toLowerCase())&&(html+=" "+imageUrl),imageUrl.includes("https")&&(html+='https'),html+="
"),html+="
"),html}(item)+function(item){for(var html="",playstate=item.PlayState||{},nowplayingItem=item.NowPlayingItem||{},item=item.TranscodingInfo||{},transcodeReasons=(html=(html=(html=html+'
'+'
')+_globalize.default.translate("Stream"))+"
"+"
",nowplayingItem.Container&&(html=(html+="
")+nowplayingItem.Container.toUpperCase(),nowplayingItem.Bitrate&&(html+=" ("+_dataformatter.default.bitrateToString(nowplayingItem.Bitrate)+")"),html+="
"),html=html+"
"+'',"Transcode"===playstate.PlayMethod?(nowplayingItem=[],item.SubProtocol&&"progressive"!==item.SubProtocol?nowplayingItem.push(item.SubProtocol.toUpperCase()):item.Container&&nowplayingItem.push(item.Container.toUpperCase()),item.Bitrate&&(playstate="(",item.Bitrate&&(playstate+=_dataformatter.default.bitrateToString(item.Bitrate)),item.Framerate&&(playstate+=" "+_dataformatter.default.numberToString(item.Framerate,3)+" fps"),nowplayingItem.push(playstate+=")")),item.CurrentThrottle&&nowplayingItem.push('Throttling'),html+=nowplayingItem.join(" ")):html+=_globalize.default.translate("HeaderDirectPlay"),html+="
",item.TranscodeReasons||[]),i=0,length=transcodeReasons.length;i")+_globalize.default.translate(transcodeReasons[i])+"
";return html=html+"
"+"
"}(item)+function(item){for(var mediaStream,html="",playstate=item.PlayState||{},mediaStreams=(item.NowPlayingItem||{}).MediaStreams||[],videoStreamIndex=playstate.VideoStreamIndex,playstate=item.TranscodingInfo||{},i=0,length=mediaStreams.length;i'+'
')+_globalize.default.translate("Video"))+"
"+"
",mediaStream.DisplayTitle&&(html=(html+='
')+_textencoding.default.htmlEncode(mediaStream.DisplayTitle),playstate.VideoDecoderHwAccel&&(html+=''),html+="
"),html=html+'
'+'',!1===playstate.IsVideoDirect?(html=(html=html+_globalize.default.translate("Transcode")+" (")+(playstate.VideoCodec||"").toUpperCase()+" ",playstate.VideoBitrate&&(html+=_dataformatter.default.bitrateToString(playstate.VideoBitrate)),html+=")",playstate.VideoEncoderHwAccel&&(html+='')):html+=_globalize.default.translate("HeaderDirectPlay"),html+="
",!1===playstate.IsVideoDirect)for(var pipeline=playstate.VideoPipelineInfo||[],_i=0,_length=pipeline.length;_i<_length;_i++){var extra,step=pipeline[_i];"ToneMapping"!==step.StepType&&"Deinterlace"!==step.StepType&&"SubTitleBurnIn"!==step.StepType&&"SubtitleOverlay"!==step.StepType||(html+='
',"ToneMapping"===step.StepType?html+=_globalize.default.translate("HeaderToneMapping"):"Deinterlace"===step.StepType?html+=_globalize.default.translate("Deinterlacing"):"SubTitleBurnIn"!==step.StepType&&"SubtitleOverlay"!==step.StepType||(html+=_globalize.default.translate("HeaderBurningInSubtitles")),extra=[],step.ParamShort?extra.push(step.ParamShort):step.Param?"Subtitles"!==step.Param&&extra.push(step.Param):step.FfmpegOptions&&extra.push(step.FfmpegOptions),extra.length&&(html+=' ('+extra.join(" ")+")"),html+="
")}html=html+"
"+""}return html}(item)+function(item){for(var mediaStream,html="",playstate=item.PlayState||{},mediaStreams=(item.NowPlayingItem||{}).MediaStreams||[],audioStreamIndex=playstate.AudioStreamIndex,playstate=item.TranscodingInfo||{},i=0,length=mediaStreams.length;i
')+_globalize.default.translate("Audio")+"
",html=(mediaStream.DisplayTitle?(html+="
")+_textencoding.default.htmlEncode(mediaStream.DisplayTitle)+"
":html)+'
',!1===playstate.IsAudioDirect?(html=(html=html+_globalize.default.translate("Transcode")+" (")+(playstate.AudioCodec||"").toUpperCase()+" ",playstate.AudioBitrate&&(html+=_dataformatter.default.bitrateToString(playstate.AudioBitrate)),html+=")"):html+=_globalize.default.translate("HeaderDirectPlay"),html+="
"),html}(item)+function(item,apiClient){var html="";if(item.UserId){html+='
";var names=[];item.UserId&&names.push(item.UserName);for(var i=0,length=item.AdditionalUsers.length;i'),html=html+("
"+names.join(", ")+"
")+"
"}return html}(item,apiClient)+function(options,item){var html="";return options.isSingleClickElement||item.DeviceId===_connectionmanager.default.deviceId()||(item.ServerId&&item.NowPlayingItem&&item.SupportsRemoteControl&&(html=(html+='")+''),item.ServerId&&item.SupportedCommands.includes("DisplayMessage")&&item.DeviceId!==_connectionmanager.default.deviceId()&&(html+=''),html&&(html='
'+html,html+="
")),html}(options,item)+""}function getCardHtml(item,index,options){var itemType=item.Type,isPhoto="Photo"===item.MediaType,action=function(itemType,isFolder,options){var action=options.action||"link";switch(action){case"play":isFolder&&(action="playallfromhere");break;case"none":break;default:switch(itemType){case"Photo":action="playallfromhere";break;case"AddServer":case"EmbyConnect":case"Downloads":action="link"}}return action}(itemType,item.IsFolder,options),shape=options.shape,imageShape=options.imageShape,isSingleClickElement=options.isSingleClickElement,serverId=item.ServerId||options.serverId,serverId=serverId?_connectionmanager.default.getApiClient(serverId):null,imageItem=options.showCurrentProgramImage?item.CurrentProgram||item:"ActiveSession"===itemType?item.NowPlayingItem:item.ProgramInfo||item,blurImageOptions=(!1!==options.image&&imageItem?(imgInfo=_imagehelper.default.getImageUrl(imageItem,serverId,options,imageShape),blurImageOptions="large"===options.vibrantMode?{width:12,blur:2,adjustForPixelRatio:!1}:{width:1,adjustForPixelRatio:!1},vibrantImgInfo=options.vibrant?_imagehelper.default.getImageUrl(imageItem,serverId,blurImageOptions,imageShape):null,imgInfo.imgUrl||imageItem===item||(imgInfo=_imagehelper.default.getImageUrl(imageItem=item,serverId,options,imageShape),vibrantImgInfo=options.vibrant?_imagehelper.default.getImageUrl(imageItem,serverId,blurImageOptions,imageShape):null)):imgInfo={},imgInfo.imgUrl),imageShape=(vibrantImgInfo||imgInfo).imgUrl,vibrantImgInfo=imgInfo.forceName&&!isPhoto,overlayText=options.overlayText,fieldMap=options.fieldMap,cardContentClass=options.cardContentClass,cardImageClass=options.cardImageClass,imageItem=!1===options.coverImage?null:_imagehelper.default.getCoveredImageClass(imageItem,serverId,imgInfo,options.uiAspect,options.coverImage);(imageItem=isPhoto&&options.ignoreUIAspect?" coveredImage coveredImage-contain":imageItem)&&(cardContentClass+=imageItem,cardImageClass+=imageItem),options.paddedImage&&(cardImageClass+=" cardImage-padded"),item.Policy&&item.Policy.IsDisabled&&(cardContentClass+=" grayscaleImage"),options.defaultBackground||blurImageOptions||options.cardLayout||(cardContentClass+=" defaultCardBackground");options.round||("MusicArtist"!==itemType||"square"!==shape)||(cardContentClass+=" cardContent-round"),!1===options.playQueueIndicator||!(imgInfo=CurrentPlayingItemId)||imgInfo!==item.PlaylistItemId&&imgInfo!==item.Id||_layoutmanager.default.tv||_playbackmanager.default.paused()||(cardContentClass+=" itemelement-nowplaying cardImageContainer-nowplaying");var cardImageContainerOpen,footerCssClass,logoUrl,isPhoto=options.cardBoxClass,imageItem=(options.playQueueIndicator&&item.PlaylistItemId&&(_playbackmanager.default.currentItem()||{}).PlaylistItemId===item.PlaylistItemId&&(isPhoto+=" activePlaylistCardBox"),!1===options.progress?null:_indicators.default.getProgressBarHtml(item,{containerClass:"cardProgressBarContainer",animated:!1})),shape="",imgInfo=(options.showChannelLogo&&item.ChannelPrimaryImageTag&&(logoUrl=serverId.getImageUrl(item.ChannelId,{type:"Primary",height:40,tag:item.ChannelPrimaryImageTag})),!1===options.programIndicators||"Program"!==itemType&&"Timer"!==itemType&&"TvChannel"!==itemType||(imageItem=function(item){var html="";return(item=item.CurrentProgram||item).IsLive?html+='
'+_globalize.default.translate("Live")+"
":item.IsPremiere?html+='
'+_globalize.default.translate("Premiere")+"
":item.IsNew&&(html+='
'+_globalize.default.translate("New")+"
"),html}(item)+(imageItem||"")),_itemmanager.default.getItemController(itemType)),vibrantImgInfo=(overlayText||vibrantImgInfo?(footerCssClass=options.innerCardFooterClass,shape+=getCardFooterText(item,imgInfo,options,function(options,fieldMap,overlayText,forceName){return overlayText?!forceName||fieldMap.Name||fieldMap.ParentNameOrName||fieldMap.ParentName?fieldMap:options.fieldMapWithForceName:!forceName||fieldMap.Name||fieldMap.ParentNameOrName||fieldMap.ParentName?{}:{ParentNameOrName:!0}}(options,fieldMap,overlayText,vibrantImgInfo),0,footerCssClass,imageItem,logoUrl=null,!1),imageItem=""):imageItem&&(shape=(shape+='
')+imageItem+"
",imageItem=""),""),fieldMap=(overlayText||(footerCssClass=options.cardLayout?options.outerFooterClass:"cardFooter cardFooter-transparent",options.sideFooter&&(footerCssClass+=" cardFooter-side"),logoUrl&&(footerCssClass+=" cardFooter-withlogo"),options.vibrant&&imageShape&&"large"!==options.vibrantMode&&(footerCssClass+=" darkContentContainer"),vibrantImgInfo=getCardFooterText(item,imgInfo,options,fieldMap,0,footerCssClass,imageItem,logoUrl=options.cardLayout?logoUrl:null,!0),options.sideFooter&&(overlayText="cardFooterContent",options.centerText||(overlayText+=" cardFooterContent-start"),vibrantImgInfo='
'+vibrantImgInfo+"
","ActiveSession"===itemType)&&(vibrantImgInfo+=getActiveSessionFooterHtml(options,item,serverId))),"");return options.sideFooter||(cardContentClass+=" "+options.cardPadderClass),fieldMap=isSingleClickElement?(cardImageContainerOpen=blurImageOptions?2===options.lazy?supportsObjectFit?'
 ':'
':supportsNativeLazyLoading?'
 ':'
':'
',"
"):"none"===action?(cardImageContainerOpen=blurImageOptions?2===options.lazy?supportsObjectFit?'
 ':'
':supportsNativeLazyLoading?'
 ':'
':'
',"
"):(cardImageContainerOpen=blurImageOptions?2===options.lazy?supportsObjectFit?'"),!1===options.image&&!1===options.imageContainer&&(cardImageContainerOpen=fieldMap=""),options.vibrant&&imageShape?("large"===options.vibrantMode&&(isPhoto+=" darkContentContainer"),cardImageContainerOpen='
'+cardImageContainerOpen):options.enableCardBox&&(cardImageContainerOpen='
'+cardImageContainerOpen),options.typeIndicator&&(footerCssClass=_itemmanager.default.getDefaultIcon(item,options))&&(cardImageContainerOpen+=''+footerCssClass+""),!1!==options.playedIndicator&&(cardImageContainerOpen+=_indicators.default.getPlayedIndicatorHtml(item,"cardIndicator card")),!1!==options.timerIndicator&&(cardImageContainerOpen+=_indicators.default.getTimerIndicator(item,"cardIndicator card")),null!=(imageItem=item.Policy)&&imageItem.IsDisabled&&(cardImageContainerOpen+='person_off'),"CollectionFolder"===itemType||item.CollectionType?(logoUrl=item.RefreshProgress?"":"hide",options.sideFooter&&(logoUrl+=" cardRefreshIndicator-sideFooter"),_layoutmanager.default.tv||(cardImageContainerOpen+='
',refreshIndicatorLoaded)||(refreshIndicatorLoaded=!0,Emby.importModule("./modules/emby-elements/emby-itemrefreshindicator/emby-itemrefreshindicator.js"))):"User"===itemType&&item.ConnectLinkType&&(cardImageContainerOpen+='cloud'),!blurImageOptions&&options.imageFallback&&(cardImageContainerOpen+=function(item,options){if(null!=options.defaultTextContent)return'
'+options.defaultTextContent+"
";if("ItemImage"===item.Type)return function(item,options){return'

'+item.Name+"

"}(item,options);var icon=item.Icon||(!1===options.defaultIcon?null:_itemmanager.default.getDefaultIcon(item,options));if(icon)return options.smallSideFooter?''+icon+"":options.sideFooter?''+icon+"":''+icon+"";icon=isUsingLiveTvNaming(item.Type)?item.Name:_itemmanager.default.getDisplayName(item,{includeParentInfo:options.includeParentInfoInTitle,channelNumberFirst:options.channelNumberFirst,enableSpecialEpisodePrefix:options.enableSpecialEpisodePrefix,includeIndexNumber:options.includeIndexNumber,hideEpisodeSpoilerInfo:options.hideEpisodeSpoilerInfo});return'
'+icon+"
"}(item,options)),overlayText=_layoutmanager.default.tv||!1===options.hoverMenu?"":function(item,itemController,action,options,menuClass){var html="",hasContent=!1;html+='
';menuClass="fab cardOverlayButton-fab buttonItems-item itemAction",action=item.Type;options.multiSelect&&(hasContent=!0,html+='');var overlayFabClass=menuClass+" cardOverlayFab-primary button-hoveraccent";!1!==options.hoverPlayButton&&_playbackmanager.default.canPlay(item)&&(hasContent=!0,playButtonAction=function(item,options){return item.IsFolder?"resume":"Photo"===item.MediaType?"playallfromhere":options.playAction}(item,options),html+='');options.hoverDownloadButton&&(hasContent=!0,html+='');html+='
';var playButtonAction=item.UserData||{};supportsSync&&!1!==options.downloadButton&&_itemmanager.default.canSync(item)&&(hasContent=!0,html+=_embyDownloadbutton.default.getHtml(item,menuClass,null,"fab"));!1!==options.playedButton&&_itemmanager.default.canMarkPlayed(item)&&"CollectionFolder"!==action&&(hasContent=!0,html+=_embyPlaystatebutton.default.getHtml(playButtonAction.Played,menuClass,null,"fab"));!1!==options.ratingButton&&_itemmanager.default.canRate(item)&&(hasContent=!0,html+=_embyRatingbutton.default.getHtml(playButtonAction.IsFavorite,menuClass,null,"fab"));options.contextMenu&&itemController.supportsContextMenu(item)&&(hasContent=!0,html+='');options.previewImageButton&&supportsTargetBlank&&(hasContent=!0,html+='');return hasContent?html+="
":""}(item,imgInfo,action,options,options.cardPadderClass),options.dragReorder&&(overlayText+=''),options.cardParts?(serverId=_shortcuts.default.getShortcutAttributes(item,options),options.isSingleClickElement&&serverId.push({name:"data-action",value:action}),options.isVirtualList||serverId.push({name:"data-index",value:index}),options.sideFooter?fieldMap+=shape:fieldMap=shape+fieldMap,isSingleClickElement=cardImageContainerOpen+fieldMap+overlayText+vibrantImgInfo,options.enableCardBox&&(isSingleClickElement+="
"),{attributes:serverId,html:isSingleClickElement}):(cardImageClass=_shortcuts.default.getShortcutAttributesHtml(item,options),options.isSingleClickElement&&(cardImageClass+=' data-action="'+action+'"'),options.isVirtualList||(cardImageClass+=' data-index="'+index+'"'),cardContentClass=options.tagName,options.sideFooter?fieldMap+=shape:fieldMap=shape+fieldMap,(imageShape=options.fixedAttributes)&&(cardImageClass+=" "+imageShape),isPhoto="<"+cardContentClass+cardImageClass+' class="'+options.className+'">'+cardImageContainerOpen+fieldMap+overlayText+vibrantImgInfo,options.enableCardBox&&(isPhoto+="
"),isPhoto+"")}var supportsTargetBlank=_servicelocator.appHost.supports("targetblank"),supportsSync=_servicelocator.appHost.supports("sync");function setUserPreferredSize(element,cardSize){if(supportsCalc&&supportsMin&&supportsCssVariables){var value,offset=0;switch(element&&(offset=parseInt(element.getAttribute("data-cardsizeoffset")||"0")),value=null!=(value=element?cardSize:value)||element&&!offset?value:_appsettings.default.cardSize()){case"extrasmall":value=3;break;case"smaller":value=2;break;case"small":value=1;break;case"large":value=-1;break;case"larger":value=-2;break;case"extralarge":value=-3;break;case"normal":value=0;break;default:value=element&&!offset?"null":0}"number"==typeof value&&(offset&&(value+=-1*offset,value=Math.min(3,value),value=Math.max(-3,value)),value=value.toString());try{element&&"null"===value?element.style.removeProperty("--user-cards-size-adjust"):(element||document.documentElement).style.setProperty("--user-cards-size-adjust",value)}catch(err){console.log("error in setUserPreferredSize: "+err)}}}_events.default.on(_connectionmanager.default,"localusersignedin",function(){setUserPreferredSize()}),_events.default.on(_usersettings.default,"change",function(e,name,value){"cardSize"===name&&setUserPreferredSize()});_exports.default={setListOptions:setListOptions,getItemsHtml:function(items,options){return buildCardsHtmlInternal(items=1===arguments.length?(options=arguments[0]).items:items,options)},getItemParts:function(item,index,options){return options.cardParts=!0,getCardHtml(item,index,options)},buildCards:function(items,options){var itemsContainer=options.itemsContainer;if(document.body.contains(itemsContainer)){var parentContainer=options.parentContainer;if(parentContainer){if(!items.length)return void parentContainer.classList.add("hide");parentContainer.classList.remove("hide")}parentContainer=buildCardsHtmlInternal(items,options);itemsContainer.innerHTML=parentContainer,itemsContainer.items=items,options.multiSelect&&(itemsContainer.enableMultiSelect?itemsContainer.enableMultiSelect(!0):itemsContainer.setAttribute("data-multiselect","true")),options.contextMenu&&(itemsContainer.enableContextMenu?itemsContainer.enableContextMenu(!0):itemsContainer.setAttribute("data-contextmenu","true")),parentContainer&&_lazyimageloader.default.lazyChildren(itemsContainer),options.autoFocus&&_focusmanager.default.autoFocus(itemsContainer)}},virtualChunkSize:50,setListClasses:function(elem,listOptions){var _listOptions$options,classList=elem.classList;null!=(_listOptions$options=listOptions.options)&&_listOptions$options.horizontalGrid?classList.add("itemsContainer-horizontalgrid"):classList.remove("itemsContainer-horizontalgrid"),listOptions.options&&null!=(_listOptions$options=listOptions.options)&&_listOptions$options.horizontalGrid&&!listOptions.virtualScrollLayout&&(listOptions.options.itemsContainer=elem,listOptions.options.useItemsContainerForImageSize=!0),null!=(_listOptions$options=listOptions.options)&&_listOptions$options.horizontalGrid&&!SupportsHorizontalRenderingWithoutCardColumns?classList.add("itemsContainer-horizontalgrid-withcolumns"):classList.remove("itemsContainer-horizontalgrid-withcolumns"),null!=(elem=listOptions.options)&&elem.horizontalGrid||(listOptions.virtualScrollLayout||"").includes("horizontal")?classList.remove("vertical-wrap"):classList.add("vertical-wrap"),classList.remove("vertical-list")},setUserPreferredSize:setUserPreferredSize,removeNowPlayingIndicator:function(indicator){indicator.classList.remove("itemelement-nowplaying","cardImageContainer-nowplaying","cardText-nowplaying")},addNowPlayingIndicator:function(itemElement){var cardText;_layoutmanager.default.tv?(cardText=itemElement.querySelector(".cardText-first"))&&cardText.classList.add("itemelement-nowplaying","cardText-nowplaying"):(cardText=itemElement.querySelector(".cardImageContainer"))&&cardText.classList.add("itemelement-nowplaying","cardImageContainer-nowplaying")}}}); \ No newline at end of file diff --git a/modules/cardbuilder/cardpadder_legacy.css b/modules/cardbuilder/cardpadder_legacy.css new file mode 100644 index 0000000..d31cc72 --- /dev/null +++ b/modules/cardbuilder/cardpadder_legacy.css @@ -0,0 +1 @@ +.cardOverlayContainer{bottom:initial!important}.cardPadder-backdrop{padding-bottom:56.25%}.cardPadder-margin.cardPadder-backdrop{margin-bottom:56.25%}.cardPadder-square{padding-bottom:100%}.cardPadder-margin.cardPadder-square{margin-bottom:100%}.cardPadder-portrait{padding-bottom:150%}.cardPadder-margin.cardPadder-portrait{margin-bottom:150%}.cardPadder-fourThree{padding-bottom:75%}.cardPadder-margin.cardPadder-fourThree{margin-bottom:75%}.cardPadder-banner{padding-bottom:18.5%}.cardPadder-margin.cardPadder-banner{margin-bottom:18.5%} \ No newline at end of file diff --git a/modules/channelchanger/channelchanger.js b/modules/channelchanger/channelchanger.js new file mode 100644 index 0000000..40e8d77 --- /dev/null +++ b/modules/channelchanger/channelchanger.js @@ -0,0 +1 @@ +define(["exports","./../dom.js","./../emby-apiclient/connectionmanager.js","./../emby-apiclient/events.js","./../common/usersettings/usersettings.js","./../common/playback/playbackmanager.js","./../common/itemmanager/itemmanager.js","./../common/globalize.js","./../loading/loading.js","./../dialoghelper/dialoghelper.js"],function(_exports,_dom,_connectionmanager,_events,_usersettings,_playbackmanager,_itemmanager,_globalize,_loading,_dialoghelper){var currentChangeOptions,inputDisplayElement,alpanumericShortcutTimeout;function clearState(){clearAlphaNumericShortcutTimeout(),currentChangeOptions=null;var elem=inputDisplayElement;elem&&(elem.innerHTML="",elem.classList.add("hide"))}function onAlphanumericShortcutTimeout(){var options=currentChangeOptions,options=(clearState(),null==options?void 0:options.newItem);options&&(_loading.default.show(),_playbackmanager.default.play({items:[options]}))}function clearAlphaNumericShortcutTimeout(){alpanumericShortcutTimeout&&(clearTimeout(alpanumericShortcutTimeout),alpanumericShortcutTimeout=null)}function updateDisplayElement(options){var item=options.currentItem,offset=options.offset;!function(apiClient,options){var query;return options.channelsResult?Promise.resolve(options.channelsResult):(query={UserId:apiClient.getCurrentUserId(),IsAiring:!0,ImageTypeLimit:1,EnableImageTypes:"Primary,Thumb,Backdrop",Fields:"ProgramPrimaryImageAspectRatio,PrimaryImageAspectRatio",EnableUserData:!1,SortBy:"ChannelNumber,SortName",AddCurrentProgram:!1},_usersettings.default.addLiveTvChannelSortingToQuery(query,_globalize.default),apiClient.getLiveTvChannels(query).then(function(result){return options.channelsResult=result}))}(_connectionmanager.default.getApiClient(item),options).then(function(result){for(var index=-1,channels=result.Items,i=0,length=channels.length;i"}function showLyrics(item){var apiClient=_connectionmanager.default.getApiClient(item);return apiClient.getItem(apiClient.getCurrentUserId(),item.Id,{ExcludeFields:"Chapters,People,Overview,MediaStreams"}).then(function(item){var mediaSource=item.MediaSources[0],stream=function(item,mediaSource){return mediaSource.MediaStreams.filter(function(s){return"Subtitle"===s.Type&&s.Index===item.DefaultSubtitleStreamIndex})[0]||mediaSource.MediaStreams.filter(function(s){return"Subtitle"===s.Type})[0]}(item,mediaSource);return apiClient.getJSON(apiClient.getUrl("Items/"+item.Id+"/"+mediaSource.Id+"/Subtitles/"+stream.Index+"/Stream.js")).then(function(result){return showAlertAndResolve({html:result.TrackEvents.map(getLyricsTrackEventHtml).join(""),confirmButton:!1,title:_itemmanager.default.getDisplayName(item),centerText:!1,confirmText:_globalize.default.translate("Close"),item:item})})})}function getItemsContainerParentId(itemsContainer){return(null==itemsContainer?void 0:itemsContainer.getAttribute("data-parentid"))||null}function executeCommandInternal(command,items,options){var apiClient,virtualFolder,button,item=items[0];if("open"===command||"link"===command||"linkdialog"===command){if("Photo"!==item.MediaType)return"linkdialog"===command&&((options=options||{}).asDialog=!0),showItem(item,options);command="play"}if("download"===command)return downloadItems(items,options);if("identify"===command)return function(item){return Emby.importModule("./modules/itemidentifier/itemidentifier.js").then(function(itemIdentifier){return itemIdentifier.show(item)})}(item);if("resetmetadata"===command)return function(items){return Emby.importModule("./modules/itemidentifier/itemidentifier.js").then(function(itemIdentifier){return itemIdentifier.resetMetadata(items)})}(items);if("preview"===command)return previewItem(item);if("removefromresume"===command)return removeFromResume(items);if("removefromnextup"===command)return removeFromResume(items);if("playtrailer"===command)return function(item){var apiClient=_connectionmanager.default.getApiClient(item);return apiClient.getLocalTrailers(apiClient.getCurrentUserId(),item.Id).then(function(trailers){_playbackmanager.default.play({items:trailers})})}(item);if("connecttoserver"===command)return function(item){return"AddServer"===item.Type||"Downloads"===item.Type?_approuter.default.showItem(item):"EmbyConnect"===item.Type?_approuter.default.showConnectLogin():(_loading.default.show(),item=_connectionmanager.default.getServerInfo(item.Id)||item,_connectionmanager.default.connectToServer(item,{}).then(function(result){return _approuter.default.handleConnectionResult(result)}))}(item);if("setplaylistindex"===command)return _playbackmanager.default.setCurrentPlaylistItem(item.PlaylistItemId);if("multiselect"===command)return function(options){return options.positionTo.closest(".itemsContainer").showMultiSelect(options.positionTo,!0),Promise.resolve()}(options);if("wakeserver"===command)return wakeServer(_connectionmanager.default.getApiClient(item));switch(command){case"leaveshareditems":case"delete":case"canceltimer":case"cancelseriestimer":return function(items,options,command){return items={items:items,navigate:options.navigateOnDelete||!1,positionTo:options.positionTo,deleteType:command},null!=(command=options.itemsContainer)&&null!=(command=command.currentListOptions)&&null!=(command=command.options.commandActions)&&command.deleteItems?options.itemsContainer.currentListOptions.options.commandActions.deleteItems(items).then(function(result){!1!==(null==result?void 0:result.refreshItems)&&options.itemsContainer.notifyRefreshNeeded(!0)}):_itemmanager.default.deleteItems(items)}(items,options,command);case"edit":return function(items,options){var item=items[0];return"Device"===item.Type||"User"===item.Type||"ActiveSession"===item.Type||"SeriesTimer"===item.Type||"Timer"===item.Type||"LiveTVTunerDevice"===item.Type||"LiveTVGuideSource"===item.Type?showItem(item,options):null!=(item=options.itemsContainer)&&null!=(item=item.currentListOptions)&&null!=(item=item.options.commandActions)&&item.edit?options.itemsContainer.currentListOptions.options.commandActions.edit(items,options).then(function(result){!1!==(null==result?void 0:result.refreshItems)&&options.itemsContainer.notifyRefreshNeeded(!0)}):_itemmanager.default.editItems(items,options)}(items,options);case"editimages":return function(item){return Emby.importModule("./modules/imageeditor/imageeditor.js").then(function(ImageEditor){return ImageEditor.show({itemId:item.Id,serverId:item.ServerId})})}(item);case"instantmix":return _playbackmanager.default.instantMix(item);case"shuffle":return play(items,!1,null,null,!0,getItemsContainerParentId(options.itemsContainer));case"playallfromhereautoplay":return playAllFromHere(options.itemElement,item.ServerId,null,!0);case"playallfromhere":return playAllFromHere(options.itemElement,item.ServerId);case"queueallfromhere":return playAllFromHere(options.itemElement,item.ServerId,!0);case"play":return play(items,!0,null,null,null,getItemsContainerParentId(options.itemsContainer));case"playfrombeginning":return play(items,!1,null,null,null,getItemsContainerParentId(options.itemsContainer));case"resume":case"playpause":return play(items,!0,null,null,null,getItemsContainerParentId(options.itemsContainer));case"queue":return play(items,!1,!0,null,null,getItemsContainerParentId(options.itemsContainer));case"queuenext":return play(items,!1,!0,!0,null,getItemsContainerParentId(options.itemsContainer));case"artist":return _approuter.default.showItem(item.ArtistItems[0].Id,item.ServerId),Promise.resolve();case"album":return _approuter.default.showItem(item.AlbumId,item.ServerId),Promise.resolve();case"series":return _approuter.default.showItem(item.SeriesId,item.ServerId),Promise.resolve();case"season":return _approuter.default.showItem(item.SeasonId,item.ServerId),Promise.resolve();case"overview":var overviewParts=[];return item.Date&&overviewParts.push('

'+_datetime.default.toLocaleString(new Date(Date.parse(item.Date)))+"

"),item.Overview&&overviewParts.push(item.Overview),showAlertAndResolve({preFormattedText:overviewParts.join(""),confirmButton:!1,title:_itemmanager.default.getDisplayName(item)||item.Name,centerText:!1,item:item});case"programlink":overviewParts=item.CurrentProgram||item;return overviewParts.ServerId||(overviewParts.ServerId=item.ServerId),showItem(overviewParts,options);case"addtoplaylist":return _itemmanager.default.addToPlaylist(items,options);case"addtocollection":return _itemmanager.default.addToCollection(items,options);case"markplayed":return function(items){var apiClient=_connectionmanager.default.getApiClient(items[0]);return apiClient.markPlayed(apiClient.getCurrentUserId(),items.map(mapToId))}(items);case"markunplayed":return function(items){var apiClient=_connectionmanager.default.getApiClient(items[0]);return apiClient.markUnplayed(apiClient.getCurrentUserId(),items.map(mapToId))}(items);case"favorite":return markFavorite(items,!0);case"unfavorite":return markFavorite(items,!1);case"searchimageproviders":return function(item){return Emby.importModule("./modules/imagedownloader/imagedownloader.js").then(function(ImageDownloader){return(new ImageDownloader).show({item:item.OwnerItem,imageType:item.ImageType,imageIndex:item.ImageIndex})})}(item);case"addimage":return function(item){return Emby.importModule("./modules/imageuploader/imageuploader.js").then(function(imageUploader){return imageUploader.show({imageType:item.ImageType,imageIndex:item.ImageIndex,item:item.OwnerItem})})}(item);case"moveinorder":return moveInOrder(items,options,options.newIndex);case"moveupinorder":return moveByOffsetInOrder(items,options,-1);case"movedowninorder":return moveByOffsetInOrder(items,options,1);case"addimagefromurl":return function(item){return showPrompt({title:_globalize.default.translate(item.ImageTag?"HeaderSetImageFromUrl":"HeaderAddImageFromUrl"),label:_globalize.default.translate("LabelUrl")}).then(function(url){return _connectionmanager.default.getApiClient(item).updateItemImageFromUrl(item.ItemId,item.ImageType,item.ImageIndex,url)})}(item);case"toggleitemchecked":return function(items,options){var checked,itemsContainer,promise;return"change"===options.eventType&&(checked=options.eventTarget.checked,promise=(itemsContainer=options.itemsContainer)?null==(options=itemsContainer.currentListOptions)?void 0:options.options.checkboxAction({items:items,checked:checked}).then(function(){for(var i=0,length=items.length;i'+_globalize.default.translate("Version")+"")+"
"+apiClient.serverVersion()+"
"),item.LastConnectionMode?html+='

'+_globalize.default.translate("HeaderLastConnectedTo")+"

":html+='

'+_globalize.default.translate("HeaderServerAddress")+"

",html+="
"+apiClient.serverAddress()+"
"),item.RemoteAddress&&(html=(html+='

'+_globalize.default.translate("RemoteWAN")+"

")+"
"+item.RemoteAddress+"
"),showAlertAndResolve({title:item.Name,html:html+="
",centerText:!1})}(item);case"record":return record(item,options);case"lyrics":return showLyrics(item);case"manageaccess":return function(item){return Emby.importModule("./modules/itemaccessdialog/itemaccessdialog.js").then(function(ItemAccessDialog){return(new ItemAccessDialog).show({item:item})})}(item);case"mergeversions":return _itemmanager.default.groupVersions(items,options);case"showmissingepisodes":return function(items){return Emby.importModule("./modules/missingepisodesdialog/missingepisodesdialog.js").then(function(MissingEpisodesDialog){return(new MissingEpisodesDialog).show({items:items})})}(items);case"none":case"toggletreenode":return Promise.resolve();default:return _itemmanager.default.executeCommand(command,items,options)}}_exports.default={executeCommand:function(command,items,options){var promise;try{promise=executeCommandInternal(command,items,options)}catch(err){promise=Promise.reject(err)}return!1===(null==options?void 0:options.showErrorMessage)?promise:promise.catch(function(err){return err?_responsehelper.default.handleErrorResponse(err):Promise.reject(err)})}}}); \ No newline at end of file diff --git a/modules/common/appsettings.js b/modules/common/appsettings.js new file mode 100644 index 0000000..68aa2f6 --- /dev/null +++ b/modules/common/appsettings.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/events.js","./servicelocator.js","./qualitydetection.js"],function(_exports,_events,_servicelocator,_qualitydetection){function getKey(name,userId){return name=userId?userId+"-"+name:name}function AppSettings(){}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,AppSettings.prototype.autoLogin=function(val){if(null==val)return this.get("autoLogin")||"lastuser";this.set("autoLogin",val.toString())},AppSettings.prototype.enableAutomaticBitrateDetection=function(networkType,mediaType,val){var key="enableautobitratebitrate-"+mediaType+"-"+("wan"===(networkType=networkType||"lan")?"false":"cellular"===networkType?networkType:"true");return null!=val&&this.set(key,(val="lan"===networkType&&"Audio"===mediaType?!0:val).toString()),"lan"===networkType&&"Audio"===mediaType||"false"!==this.get(key)},AppSettings.prototype.maxStreamingBitrate=function(networkType,mediaType,val){var key="maxbitrate-"+mediaType+"-"+("wan"===(networkType=networkType||"lan")?"false":"cellular"===networkType?networkType:"true");return null==val||"lan"===networkType&&"Audio"===mediaType||this.set(key,val),"lan"===networkType&&"Audio"===mediaType?2e8:(val=parseInt(this.get(key)||"0"))||_qualitydetection.default.getDefaultQuality(networkType)},AppSettings.prototype.slideshowIntervalMs=function(val){void 0!==val&&this.set("slideshowIntervalMs",val);return parseInt(this.get("slideshowIntervalMs")||1e4.toString())||1e4},AppSettings.prototype.forceTranscodingForContainers=function(val){return null!=val&&this.set("forceTranscodingForContainers",val.join(",")),(val=this.get("forceTranscodingForContainers"))?val.split(","):[]},AppSettings.prototype.forceTranscodingForVideoCodecs=function(val){return null!=val&&this.set("forceTranscodingForVideoCodecs",val.join(",")),(val=this.get("forceTranscodingForVideoCodecs"))?val.split(","):[]},AppSettings.prototype.enableThemeSongs=function(val){return null!=val?this.set("enableThemeSongs",val.toString()):"false"!==(val=this.get("enableThemeSongs"))},AppSettings.prototype.enableThemeVideos=function(val){return null!=val?this.set("enableThemeVideos",val.toString()):!!(val=this.get("enableThemeVideos"))&&"false"!==val},AppSettings.prototype.repeatThemes=function(val){return null!=val?this.set("repeatThemes",val.toString()):"true"===(val=this.get("repeatThemes"))},AppSettings.prototype.convertUnsupportedSurroundAudio=function(val){return null!=val?this.set("convertUnsupportedSurroundAudio",val.toString()):"true"===(val=this.get("convertUnsupportedSurroundAudio"))},AppSettings.prototype.screensaver=function(val){return null!=val?this.set("screensaver",val):this.get("screensaver")||null},AppSettings.prototype.soundEffects=function(val){return null!=val?this.set("soundeffects",val):this.get("soundeffects")||null},AppSettings.prototype.cardSize=function(val){return null!=val?this.set("cardSize",val.toString()):this.get("cardSize")||"normal"},AppSettings.prototype.fontSize=function(val){return null!=val?this.set("fontSize",val.toString()):this.get("fontSize")},AppSettings.prototype.videoPlayerLongPressAction=function(val){return null!=val?this.set("videoPlayerLongPressAction",val.toString()):this.get("videoPlayerLongPressAction")},AppSettings.prototype.videoOrientation=function(val){return null!=val?this.set("videoOrientation",val.toString()):this.get("videoOrientation")||"auto"},AppSettings.prototype.enableVideoUnderUI=function(val){return null!=val?this.set("enableVideoUnderUI",val.toString()):"true"===this.get("enableVideoUnderUI")},AppSettings.prototype.hideMediaTransportButtons=function(val){return null!=val?this.set("hideMediaTransportButtons",val.toString()):this.get("hideMediaTransportButtons")||"auto"},AppSettings.prototype.enableCinemaMode=function(val){return null!=val?this.set("enableCinemaMode",val.toString()):!(val=this.get("enableCinemaMode"))||"false"!==val},AppSettings.prototype.maxStaticMusicBitrate=function(val){void 0!==val&&this.set("maxStaticMusicBitrate",val);return parseInt(this.get("maxStaticMusicBitrate")||32e4.toString())||32e4},AppSettings.prototype.maxChromecastBitrate=function(val){return null!=val&&this.set("chromecastBitrate1",val),(val=this.get("chromecastBitrate1"))?parseInt(val):null},AppSettings.prototype.volume=function(val){void 0!==val&&this.set("mediavolume",val);return parseInt(this.get("mediavolume")||100..toString())||100},AppSettings.prototype.themeSongVolume=function(val){void 0!==val&&this.set("themeSongVolume",val);val=parseInt(this.get("themeSongVolume")||70..toString());return"number"==typeof val?val:70},AppSettings.prototype.introSkipDisplayCount=function(val){return null!=val&&this.set("introSkipDisplayCount",val),(val=this.get("introSkipDisplayCount"))?parseInt(val):0},AppSettings.prototype.enableLogging=function(val){return null!=val&&this.set("enableLogging",val.toString()),"true"===this.get("enableLogging")},AppSettings.prototype.syncOnlyOnWifi=function(val){return null!=val&&this.set("syncOnlyOnWifi",val.toString()),"false"!==this.get("syncOnlyOnWifi")},AppSettings.prototype.allowDirectStreamLiveTV=function(val){return null!=val&&this.set("allowDirectStreamLiveTV",val.toString()),"false"!==this.get("allowDirectStreamLiveTV")},AppSettings.prototype.cameraUploadOnlyOnWifi=function(val){return null!=val&&this.set("cameraUploadOnlyOnWifi",val.toString()),"false"!==this.get("cameraUploadOnlyOnWifi")},AppSettings.prototype.syncWhenRoaming=function(val){return null!=val&&this.set("syncWhenRoaming",val.toString()),"false"!==this.get("syncWhenRoaming")},AppSettings.prototype.enableProfilePin=function(userId,val){if(userId)return null!=val&&this.set("enableProfilePin",val,userId),"true"===this.get("enableProfilePin",userId);throw new Error("userId required")},AppSettings.prototype.syncPath=function(val){return null!=val&&this.set("syncPath",val),this.get("syncPath")},AppSettings.prototype.cameraUploadFolders=function(val){return null!=val&&this.set("cameraUploadFolders",val.join("||")),(val=this.get("cameraUploadFolders"))?val.split("||"):[]},AppSettings.prototype.cameraUploadServers=function(val){return null!=val&&this.set("cameraUploadServers",val.join(",")),(val=this.get("cameraUploadServers"))?val.split(","):[]},AppSettings.prototype.runAtStartup=function(val){return null!=val&&this.set("runatstartup",val.toString()),"true"===this.get("runatstartup")},AppSettings.prototype.enableRefreshRateSwitching=function(val){return null!=val&&this.set("enableRefreshRateSwitching",val.toString()),"true"===this.get("enableRefreshRateSwitching")},AppSettings.prototype.enableResolutionSwitching=function(val){return null!=val&&this.set("enableResolutionSwitching",val.toString()),"true"===this.get("enableResolutionSwitching")},AppSettings.prototype.enableRemoteControlInTVMode=function(val){return null!=val&&this.set("enableRemoteControlInTVMode",val.toString()),"true"===this.get("enableRemoteControlInTVMode")},AppSettings.prototype.backgroundVideo=function(val){return null!=val&&this.set("backgroundVideo",val),this.get("backgroundVideo")},AppSettings.prototype.preferredVideoPlayer=function(val){return null!=val&&this.set("preferredVideoPlayer",val),this.get("preferredVideoPlayer")},AppSettings.prototype.set=function(name,value,userId){var currentValue=this.get(name,userId),userId=getKey(name,userId);_servicelocator.appStorage.setItem(userId,value),currentValue!==value&&_events.default.trigger(this,"change",[name,value])},AppSettings.prototype.enableBackdrops=function(val){return null!=val?this.set("enableBackdrops",val.toString()):!!(val=this.get("enableBackdrops"))&&"false"!==val},AppSettings.prototype.backBehaviorOnHome=function(val){return null!=val&&this.set("backBehaviorOnHome",val.toString()),this.get("backBehaviorOnHome")||"exit"},AppSettings.prototype.language=function(val){return null!=val?this.set("language",val.toString()):this.get("language")},AppSettings.prototype.dateTimeLocale=function(val){return null!=val?this.set("datetimelocale",val.toString()):this.get("datetimelocale")},AppSettings.prototype.get=function(name,userId){name=getKey(name,userId);return _servicelocator.appStorage.getItem(name)},AppSettings.prototype.enableSystemExternalPlayers=function(val){return null!=val&&this.set("enableSystemExternalPlayers",val.toString()),"true"===this.get("enableSystemExternalPlayers")};_exports.default=new AppSettings}); \ No newline at end of file diff --git a/modules/common/baseapprouter.js b/modules/common/baseapprouter.js new file mode 100644 index 0000000..66892f6 --- /dev/null +++ b/modules/common/baseapprouter.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/connectionmanager.js","./../emby-apiclient/events.js","./../loading/loading.js","./globalize.js","./textencoding.js","./responsehelper.js","./servicelocator.js","./appsettings.js","./../layoutmanager.js"],function(_exports,_connectionmanager,_events,_loading,_globalize,_textencoding,_responsehelper,_servicelocator,_appsettings,_layoutmanager){function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function loadPlaybackManager(){return Emby.importModule("./modules/common/playback/playbackmanager.js")}function showAlertAndResolve(options){return showAlert(options).catch(function(){return Promise.resolve()})}function BaseAppRouter(){}function catchToResolve(err){return Promise.resolve()}function enableWelcome(result,options,checkServers){if(null!=options&&options.allowWelcome&&_servicelocator.appHost.supports("multiserver")){if(checkServers)if(null==(options=result.Servers)||!options.length)return 1;return"1"!==_appsettings.default.get("welcome_seen")&&(_appsettings.default.set("welcome_seen","1"),1)}}function onChangeToUserErrorPublic(err){return _loading.default.hide(),Promise.reject(err)}function stopPlaying(playbackManager,forceStopAll){return!forceStopAll&&playbackManager.isPlayingAudio()||playbackManager.stop(),Promise.resolve()}function loadPlaybackManagerAndStopPlaying(forceStopAll){return loadPlaybackManager().then(function(playbackManager){return stopPlaying(playbackManager,forceStopAll)})}function changeToUserOnAppResume(instance,apiClient,userId){loadPlaybackManager().then(function(playbackManager){if(playbackManager.isPictureInPictureEnabled())return Promise.resolve();(apiClient.getCurrentUserId()===userId?Promise.resolve():stopPlaying(!0)).then(function(){instance.showServerLogin({apiClient:apiClient}).then(function(){instance.changeToUser({apiClient:apiClient,userId:userId,forceShowProfilePinPrompt:!0})})})})}var dateAppPaused;Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,BaseAppRouter.prototype.setPinValidated=function(userId){this._pinValidated=userId},BaseAppRouter.prototype.isPinValidated=function(userId){return this._pinValidated===userId},BaseAppRouter.prototype.showServerLogin=function(options){var instance=this;return function(instance,options){var apiClient,userId=options.userId;return userId?(apiClient=options.apiClient).getUser(userId).then(function(user){return user.HasPassword?instance.showServerLogin({apiClient:apiClient,username:user.Name,loginType:"manual"}):instance.authenticateUser({serverId:user.ServerId,username:user.Name})}):Promise.reject()}(this,options).catch(function(){var apiClient=options.apiClient;return console.log("appRouter - showServerLogin: "+apiClient.serverId()),apiClient.getPublicUsersQueryResult({Limit:0}).then(function(result){return result.TotalRecordCount?options.loginType="visual":options.loginType="manual",instance.showServerLogin(options)})})},BaseAppRouter.prototype.showEnableProfilePinPrompt=function(options){var user=options.user;return function(options){return Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)})}({title:_globalize.default.translate("TitleProfilePin"),cancelText:_globalize.default.translate("No"),confirmText:_globalize.default.translate("Yes"),text:_globalize.default.translate("RequireEnteringPinToReturnQuestion")}).then(function(){_appsettings.default.enableProfilePin(user.Id,!0)},function(){_appsettings.default.enableProfilePin(user.Id,!1)})},BaseAppRouter.prototype.authenticateUser=function(options){_loading.default.show();var instance=this,apiClient=_connectionmanager.default.getApiClient(options.serverId);return loadPlaybackManagerAndStopPlaying(!0).then(function(){return apiClient.authenticateUserByName(options.username,options.password).then(function(result){return instance.setPinValidated(result.User.Id),("none"!==_appsettings.default.autoLogin()&&result.User.Configuration.ProfilePin?(_loading.default.hide(),instance.showEnableProfilePinPrompt({apiClient:apiClient,user:result.User}).catch(catchToResolve)):(result.User.Configuration.ProfilePin?_appsettings.default.enableProfilePin(result.User.Id,!0):_appsettings.default.enableProfilePin(result.User.Id,!1),Promise.resolve())).then(function(){return instance.handleConnectionResult({State:"SignedIn",ApiClient:apiClient},{enableProfilePin:!1})})},function(result){apiClient.isMinServerVersion("4.8.4")?(result.errorTitle=_globalize.default.translate("HeaderSignInError"),_responsehelper.default.handleErrorResponse(result)):(_loading.default.hide(),showAlert({text:_globalize.default.translate("MessageInvalidUser"),title:_globalize.default.translate("HeaderSignInError")}))})})},BaseAppRouter.prototype.showConnectionErrorAlert=function(result,options){var _result$Server=null==(_result$Server=result.Server)?void 0:_result$Server.Name;return showAlertAndResolve({text:result.ErrorMessage||_globalize.default.translate("MessageUnableToConnectToServer"),title:_result$Server?_globalize.default.translate("TitleUnableToReachName",_textencoding.default.htmlEncode(_result$Server)):_globalize.default.translate("TitleUnableToReachServer")})},BaseAppRouter.prototype.handleConnectionResult=function(result,options){switch(console.log("handleConnectionResult: "+(result.State||"")),result.State){case"SignedIn":this.isPinValidated(result.ApiClient.getCurrentUserId())||this.setPinValidated(null),this.handleSignedInResult(result,options);break;case"ServerSignIn":enableWelcome(result,options,!0)?this.showWelcome():this.showServerLogin({apiClient:result.ApiClient});break;case"ServerSelection":_servicelocator.appHost.supports("multiserver")?enableWelcome(result,options,!1)?this.showWelcome():this.showSelectServer():this.showServerLogin({apiClient:_connectionmanager.default.currentApiClient()});break;case"ConnectSignIn":!0===(null==options?void 0:options.allowWelcome)?this.showWelcome():this.showConnectLogin();break;case"ServerUpdateNeeded":!1===(null==options?void 0:options.allowServerUpdateNeedAlert)?this.showSelectServer():(_loading.default.hide(),function(instance){var html,text=_globalize.default.translate("ServerUpdateNeeded","https://emby.media");showAlertAndResolve({html:html=_servicelocator.appHost.supports("externallinks")&&_servicelocator.appHost.supports("targetblank")&&_servicelocator.appHost.supports("externalappinfo")?_globalize.default.translate("ServerUpdateNeeded",'https://emby.media'):html,text:text}).then(function(){return instance.showSelectServer()})}(this));break;case"Unavailable":_loading.default.hide(),this.showConnectionErrorAlert(result,options)}},BaseAppRouter.prototype.promptForProfilePin=function(apiClient,userId,forceShow){var instance=this;return _connectionmanager.default.isLoggedIntoConnect()||!_appsettings.default.enableProfilePin(userId)||this.isPinValidated(userId)&&!forceShow?Promise.resolve():apiClient.getUser(userId).then(function(user){return user.Configuration.ProfilePin?function(instance,apiClient,user){return _loading.default.hide(),instance.showProfilePinPrompt({apiClient:apiClient,user:user}).then(function(result){return instance.setPinValidated(user.Id),Promise.resolve(result)})}(instance,apiClient,user):Promise.resolve()})},BaseAppRouter.prototype.forgotPin=function(options){return this.showServerLogin(options)},BaseAppRouter.prototype.changeToUser=function(options){var apiClient=options.apiClient,userId=options.userId,serverId=apiClient.serverId(),instance=(_loading.default.show(),this),boundOnError=function(err){_loading.default.hide();var errorName=((null==err?void 0:err.name)||"").toLowerCase(),instance=this.instance,apiClient=(options=this.options).apiClient,options=options.userId;return"forgotpin"!==errorName?Promise.reject(err):apiClient.getUser(options).then(function(user){user.HasPassword?instance.showServerLogin({apiClient:apiClient,username:user.Name,loginType:"manual"}):instance.showServerLogin({apiClient:apiClient})})}.bind({instance:instance,options:options});return _connectionmanager.default.validateCanChangeToUser(apiClient,userId).then(function(){return instance.promptForProfilePin(apiClient,userId,options.forceShowProfilePinPrompt).then(function(){return(apiClient.getCurrentUserId()===userId?Promise.resolve():loadPlaybackManagerAndStopPlaying(!0)).then(function(){return _connectionmanager.default.changeToUser(apiClient,userId).then(function(){var server=_connectionmanager.default.getSavedServers().filter(function(s){return s.Id===serverId})[0];return server?_connectionmanager.default.connectToServer(server,{userId:userId,autoLogin:"lastuser"}).then(function(result){switch(_loading.default.hide(),result.State){case"SignedIn":case"ServerUpdateNeeded":return instance.handleConnectionResult(result,{enableProfilePin:!1}),Promise.resolve();default:return Promise.reject(result)}}):Promise.reject("server not found")},boundOnError)},boundOnError)},boundOnError)},onChangeToUserErrorPublic)},BaseAppRouter.prototype.isDisplayingAuthenticatedContent=function(){return!0};function onAppPause(){dateAppPaused=Date.now()}function onAppResume(){_connectionmanager.default.onAppResume();var apiClient,userId,autoLoginMode;6e5<=Date.now()-(dateAppPaused||0)&&dateAppPaused&&this.isDisplayingAuthenticatedContent()&&(autoLoginMode=_appsettings.default.autoLogin(),null!=(apiClient=_connectionmanager.default.currentApiClient()))&&apiClient.isLoggedIn()&&("none"===autoLoginMode||"showlogin"===autoLoginMode?(console.log("redirecting back to login on app resume"),_layoutmanager.default.tv&&function(instance,apiClient){loadPlaybackManager().then(function(playbackManager){return playbackManager.isPictureInPictureEnabled()?Promise.resolve():stopPlaying(playbackManager,!0).then(function(){return instance.showServerLogin({apiClient:apiClient})})})}(this,apiClient)):"lastuser"===autoLoginMode?(userId=apiClient.getCurrentUserId(),_appsettings.default.enableProfilePin(userId)&&_layoutmanager.default.tv&&changeToUserOnAppResume(this,apiClient,userId)):2===(apiClient=autoLoginMode.split("|")).length&&(userId=apiClient[0],autoLoginMode=_connectionmanager.default.getApiClient(userId))&&changeToUserOnAppResume(this,autoLoginMode,apiClient[1]))}BaseAppRouter.prototype.start=function(options){_events.default.on(_servicelocator.appHost,"pause",onAppPause),_events.default.on(_servicelocator.appHost,"resume",onAppResume.bind(this))};_exports.default=BaseAppRouter}); \ No newline at end of file diff --git a/modules/common/dataformatter.js b/modules/common/dataformatter.js new file mode 100644 index 0000000..b69b9cb --- /dev/null +++ b/modules/common/dataformatter.js @@ -0,0 +1 @@ +define(["exports","./globalize.js"],function(_exports,_globalize){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var units=[["year",31536e6],["month",2592e6],["week",6048e5],["day",864e5],["hour",36e5],["minute",6e4],["second",1e3]];function numberToString(value,maximumFractionDigits){try{return new Intl.NumberFormat(_globalize.default.getCurrentLocales(),{style:"decimal",maximumFractionDigits:null==maximumFractionDigits?1:maximumFractionDigits}).format(value)}catch(err){return console.log("Error in NumberFormat: "+err),value}}function getRawResolutionText(item){return item.Width&&item.Height?item.Width+"x"+item.Height:null}_exports.default={formatRelativeTime:function(date,isPastEvent){for(var unit,date=(date="string"==typeof date?new Date(Date.parse(date)):date).getTime()-Date.now(),elapsedMsAbs=Math.abs(date),i=0,length=units.length;i=(unit=units[i])[1]);i++);return date=Math.round(date/unit[1]),!1!==isPastEvent&&-1<(date=Math.min(date,1))&&(date=-1,unit=units[units.length-1]),new Intl.RelativeTimeFormat(_globalize.default.getCurrentLocales(),{numeric:"always",style:"long"}).format(date,unit[0])},bitrateToString:function(value){return 1e3<(value/=1e3)?numberToString(value/=1e3,0)+" mbps":numberToString(parseInt(value))+" kbps"},sizeToString:function(size){var gb=1073741824;return gb<=size?numberToString(size/gb,1)+" GB":numberToString(size/1048576,1)+" MB"},numberToString:numberToString,getResolutionText:function(item){var videoStream,width,height;return"Video"===item.MediaType&&(videoStream=function(item){for(var _,mediaStreams=(null==(_=(item.MediaSources||[])[0])?void 0:_.MediaStreams)||item.MediaStreams||[],i=0,length=mediaStreams.length;i=text.length}function allowNavInSelectionRange(elem,command){return("left"===command?"rtl"===document.dir?allowNavAtEnd:allowNavAtStart:"rtl"===document.dir?allowNavAtStart:allowNavAtEnd)(elem)}function allowLeftOrRightNav(elem,command){if(!function(elem){var readOnly=elem.readOnly;if(!readOnly&&!1===readOnly){if("TEXTAREA"===elem.tagName)return 1;switch(elem.type){case"checkbox":case"radio":case"file":case"hidden":case"range":return;default:return 1}}}(elem))return!0;switch(elem.tagName){case"TEXTAREA":return allowNavInSelectionRange(elem,command);case"INPUT":switch(elem.type){case"text":case"tel":case"url":case"password":case"search":return allowNavInSelectionRange(elem,command);case"number":return!1;default:return!!_layoutmanager.default.tv}default:return!0}}function handleChannelChangeCommand(offset){if(_playbackmanager.default.isPlayingVideo()){var item=_playbackmanager.default.currentItem();if(item&&"TvChannel"===item.Type)return void function(currentItem,offset){Emby.importModule("./modules/channelchanger/channelchanger.js").then(function(ChannelChanger){return ChannelChanger.onChannelChangeRequest({currentItem:currentItem,offset:offset})})}(item,offset)}0"+_globalize.default.translate("FollowingFilesWillBeDeleted")+"

";for(var i=0,length=deleteInfo.Paths.length;i'+deleteInfo.Paths[i]+"
";msg+='

'+_globalize.default.translate("AreYouSureToContinue")+"

"}else msg=_globalize.default.translate("DeleteItemConfirmation",item.Name);return msg}(deleteInfo,item),confirmText:_globalize.default.translate("Delete"),primary:"cancel",centerText:!1})})},BaseItemController.prototype.deleteItems=function(options){var instance,optionsClone,apiClient;return"leaveshareditems"===options.deleteType?function(instance,items,options){var item=items[0],title=getLeaveSharedItemTitle(item);return showConfirm({title:title,text:_globalize.default.translate("RemoveSharedItemConfirmation"),confirmText:title,primary:"cancel"}).then(function(){var apiClient=_connectionmanager.default.getApiClient(item);return apiClient.leaveSharedItems({UserId:apiClient.getCurrentUserId(),ItemIds:items.map(mapToId)}).then(function(result){return onItemsDeleted(instance,options,result,!1)})})}(this,options.items,options):(instance=this,optionsClone=Object.assign({},options),(null!=(apiClient=_connectionmanager.default.getApiClient(optionsClone.items[0]))&&apiClient.getCurrentUserId()&&"Server"!==optionsClone.items[0].Type?apiClient.getCurrentUser():Promise.resolve()).then(function(user){user=filterItemsByMethod(instance,optionsClone.items,"canDelete",user);return user.length?(optionsClone.items=user,(!1===(null==options?void 0:options.confirm)?Promise.resolve():instance.showDeleteConfirmation(options)).then(function(deleteConfirmationResult){return _loading.default.show(),instance.deleteItemsInternal(optionsClone,deleteConfirmationResult).then(function(result){return _loading.default.hide(),onItemsDeleted(instance,options,result,!0)})})):rejectNoItems()}))},BaseItemController.prototype.getItemTypeName=function(type){if(!type)return null;var item=type;switch(type=type.Type||type){case"Genre":case"MusicGenre":case"GameGenre":return _globalize.default.translate("Genre");case"BoxSet":return _globalize.default.translate("Collection");case"Audio":return item.SupportsResume?_globalize.default.translate("Episode"):_globalize.default.translate("Song");case"MusicArtist":return _globalize.default.translate("Artist");case"MusicAlbum":return item.SupportsResume?_globalize.default.translate("HeaderAudioBook"):_globalize.default.translate("Album");case"MusicVideo":return _globalize.default.translate("HeaderMusicVideo");case"TvChannel":return _globalize.default.translate("Channel");case"LiveTvProgram":return _globalize.default.translate("Program");case"ApiKey":return _globalize.default.translate("HeaderApiKey");case"Timer":return _globalize.default.translate("Recording");case"SeriesTimer":return _globalize.default.translate("SeriesRecording")}return _globalize.default.translate(type)},BaseItemController.prototype.getPluralItemTypeName=function(type){switch(type){case"Genre":case"MusicGenre":case"GameGenre":return _globalize.default.translate("Genres");case"BoxSet":return _globalize.default.translate("Collections");case"Audio":return _globalize.default.translate("Songs");case"MusicArtist":return _globalize.default.translate("Artists");case"MusicAlbum":return _globalize.default.translate("Albums");case"MusicVideo":return _globalize.default.translate("HeaderMusicVideos");case"Person":return _globalize.default.translate("People");case"TvChannel":return _globalize.default.translate("Channels");case"Series":return _globalize.default.translate("Shows");case"LiveTvProgram":return _globalize.default.translate("Programs");case"ApiKey":return _globalize.default.translate("HeaderApiKeys")}return _globalize.default.translate(type+"s")},BaseItemController.prototype.showAfterDeleteNotification=function(deleteOptions,deleteResult){var items=deleteOptions.items,deleteOptions=deleteOptions.deleteMessages||this.getDeleteMessages(items[0])||DeleteMessages.Item,deleteOptions=(1'+lastUserName+"":lastUserName;case"DateCreated":val=item.DateCreated;return val?_datetime.default.toLocaleDateString(new Date(Date.parse(val))):null;case"DateModified":var lastUserName=item.DateModified;return lastUserName?_datetime.default.toLocaleString(new Date(Date.parse(lastUserName))):null;case"ShortOverviewHtml":return item.ShortOverviewHtml;case"Container":return htmlEncode(null==(val=item.Container)?void 0:val.toUpperCase());case"AppNameVersion":lastUserName=[];return item.AppName&&lastUserName.push(item.AppName),item.AppVersion&&lastUserName.push(item.AppVersion),_textencoding.default.htmlEncode(lastUserName.join(" "))||null;case"VideoCodec":return _textencoding.default.htmlEncode((null==(val=item.VideoCodec)?void 0:val.toUpperCase())||"")||null;case"AudioCodec":return _textencoding.default.htmlEncode((null==(lastUserName=item.AudioCodec)?void 0:lastUserName.toUpperCase())||"")||null;case"Framerate":val=item.AverageFrameRate||item.RealFrameRate;return val?_dataformatter.default.numberToString(val,3):null;case"Size":lastUserName=item.Size;return null!=lastUserName?_dataformatter.default.sizeToString(lastUserName):null;case"Bitrate":val=item.Bitrate;return null!=val?_dataformatter.default.bitrateToString(val):null;default:return htmlEncode(item[field])}},BaseItemController.prototype.deleteItemsInternal=function(options,deleteConfirmationResult){var items=options.items,item=items[0];switch(item.Type){case"Device":return _connectionmanager.default.getApiClient(item).deleteDevices(options.items);case"Plugin":return _connectionmanager.default.getApiClient(item).uninstallPlugins(options.items);case"User":return _connectionmanager.default.getApiClient(item).deleteUsers(options.items);case"VirtualFolder":return function(virtualFolder,apiClient,options){return options="true"===(null==(options=options.positionTo.closest("[data-refreshlibrary]"))?void 0:options.getAttribute("data-refreshlibrary")),apiClient.removeVirtualFolder(virtualFolder,options)}(item,_connectionmanager.default.getApiClient(item),options);case"SeriesTimer":return _connectionmanager.default.getApiClient(item).cancelLiveTvSeriesTimer(item.Id);case"Timer":case"Recording":return _connectionmanager.default.getApiClient(item).cancelLiveTvTimer(item.TimerId||item.Id);case"ItemImage":return _connectionmanager.default.getApiClient(item).deleteItemImage(item.ItemId,item.ImageType,item.ImageIndex);case"LiveTVGuideSource":return _connectionmanager.default.getApiClient(item).deleteLiveTVGuideSource(item.Id);case"LiveTVTunerDevice":return _connectionmanager.default.getApiClient(item).deleteLiveTVTunerDevice(item.Id);case"ApiKey":return _connectionmanager.default.getApiClient(item).deleteApiKeys(items);case"Server":return _connectionmanager.default.deleteServer(item.Id);case"Series":return"deletelastplayed"===(null==deleteConfirmationResult?void 0:deleteConfirmationResult.deleteType)?(options.navigate=null,_connectionmanager.default.getApiClient(item).deleteItems([deleteConfirmationResult.item])):_connectionmanager.default.getApiClient(item).deleteItems(items);case"MediaStream":return"Subtitle"===item.StreamType?_connectionmanager.default.getApiClient(item).deleteSubtitles(item.ItemId,item.MediaSourceId,item.Index):rejectNoSupportedCommands();default:return _connectionmanager.default.getApiClient(item).deleteItems(items)}},BaseItemController.prototype.getDeleteCommand=function(items){var items=items[0].Type,isPrimaryCommand=this.isDeletePrimaryCommand(items);switch(items){case"Plugin":return{name:_globalize.default.translate("Uninstall"),id:"delete",icon:"delete",primaryCommand:isPrimaryCommand,horizontalDragSection:"right"};case"VirtualFolder":return{name:_globalize.default.translate("Remove"),id:"delete",icon:"remove_circle_outline",primaryCommand:isPrimaryCommand};case"Timer":return{name:_globalize.default.translate("HeaderCancelRecording"),id:"canceltimer",icon:"",primaryCommand:isPrimaryCommand};case"SeriesTimer":return{name:_globalize.default.translate("HeaderCancelSeries"),id:"cancelseriestimer",icon:"",primaryCommand:isPrimaryCommand};case"Server":return{name:_globalize.default.translate("ForgetThisServer"),id:"delete",icon:"remove_circle_outline",primaryCommand:isPrimaryCommand,horizontalDragSection:"right"};default:return{name:_globalize.default.translate("Delete"),id:"delete",icon:"delete",primaryCommand:isPrimaryCommand,horizontalDragSection:"right"}}};var SupportsSync=_servicelocator.appHost.supports("sync");function addToList(items,listType){return Emby.importModule("./modules/addtolist/addtolist.js").then(function(AddToList){return(new AddToList).show({items:items,type:listType})})}function getNumberSortOption(itemType){return"TvChannel"!==itemType?{name:_globalize.default.translate("Number"),value:"ParentIndexNumber,IndexNumber,SortName",defaultSortOrder:"Ascending"}:{name:_globalize.default.translate("ChannelNumber"),value:"ChannelNumber,SortName",defaultSortOrder:"Ascending"}}function getFileSortOption(){return{name:_globalize.default.translate("FileName"),value:"IsFolder,Filename"}}function getDateLastActiveSortOption(itemType,apiClient){switch(itemType){case"User":case"Device":return null!=apiClient&&apiClient.isMinServerVersion("4.8.0.47")?{name:_globalize.default.translate("DateLastActive"),value:"DateLastActivity,SortName",defaultSortOrder:"Descending"}:null}}function getIpAddressSortOption(itemType,apiClient){if("Device"===itemType)return null!=apiClient&&apiClient.isMinServerVersion("4.8.0.48")?{name:_globalize.default.translate("IpAddress"),value:"IpAddress,DateLastActivity,SortName",defaultSortOrder:"Ascending",sortOrderAscending:"Ascending,Descending,Ascending",sortOrderDescending:"Descending,Descending,Ascending"}:null}function getDateModifiedSortOption(itemType){if("Playlist"===itemType)return{name:_globalize.default.translate("DateModified"),value:"DateModified,SortName",defaultSortOrder:"Descending"}}function getDateAddedSortOption(itemType,apiClient){switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicVideo":case"Video":case"Game":case"Book":case"Person":case"Photo":case"TvChannel":case"Playlist":return{name:_globalize.default.translate("DateAdded"),value:"DateCreated,SortName",defaultSortOrder:"Descending"};case"User":return null!=apiClient&&apiClient.isMinServerVersion("4.8.0.47")?{name:_globalize.default.translate("DateCreated"),value:"DateCreated,SortName",defaultSortOrder:"Descending"}:null}}function getDatePlayedSortOption(itemType){return"Series"!==itemType?{name:_globalize.default.translate("DatePlayed"),value:"DatePlayed,SortName",defaultSortOrder:"Descending"}:{name:_globalize.default.translate("DatePlayed"),value:"SeriesDatePlayed,SortName",defaultSortOrder:"Descending"}}function getCriticRatingSortOption(){return{name:_globalize.default.translate("CriticRating"),value:"CriticRating,SortName",defaultSortOrder:"Descending"}}function getPlayCountSortOption(){return{name:_globalize.default.translate("Plays"),value:"PlayCount,SortName",defaultSortOrder:"Descending"}}function getRuntimeSortOption(){return{name:_globalize.default.translate("Runtime"),value:"Runtime,SortName",defaultSortOrder:"Ascending"}}function getParentalRatingSortOption(){return{name:_globalize.default.translate("ParentalRating"),value:"OfficialRating,SortName",defaultSortOrder:"Descending"}}function getProductionYearSortOption(){return{name:_globalize.default.translate("Year"),value:"ProductionYear,SortName",defaultSortOrder:"Descending"}}function getStartDateSortOption(itemType){return"Program"!==itemType?null:{name:_globalize.default.translate("AirDate"),value:"StartDate",defaultSortOrder:"Ascending"}}function getCommunityRatingOptionName(itemType){switch(itemType){case"Movie":case"Trailer":case"Series":return _globalize.default.translate("ImdbRating")}return _globalize.default.translate("CommunityRating")}function getCommunityRatingSortOption(itemType){return{name:getCommunityRatingOptionName(itemType),value:"CommunityRating,SortName",defaultSortOrder:"Descending"}}function getFramerateSortOption(){return{name:_globalize.default.translate("Framerate"),value:"Framerate,SortName",defaultSortOrder:"Descending"}}function getVideoCodecSortOption(){return{name:_globalize.default.translate("LabelVideoCodec"),value:"VideoCodec,SortName",defaultSortOrder:"Asscending"}}function getContainerSortOption(){return{name:_globalize.default.translate("Container"),value:"Container,SortName",defaultSortOrder:"Descending"}}function getSizeSortOption(itemType){return"Log"!==itemType?{name:_globalize.default.translate("Size"),value:"Size,SortName",defaultSortOrder:"Descending"}:null}function getBitrateSortOption(){return{name:_globalize.default.translate("Bitrate"),value:"TotalBitrate,SortName",defaultSortOrder:"Descending"}}function getResolutionSortOption(){return{name:_globalize.default.translate("Resolution"),value:"Resolution,SortName",defaultSortOrder:"Descending"}}function getReleaseDateSortOption(){return{name:_globalize.default.translate("ReleaseDate"),value:"ProductionYear,PremiereDate,SortName",defaultSortOrder:"Descending"}}function getSeriesSortOption(itemType){return"Episode"!==itemType?null:{name:_globalize.default.translate("Series"),value:"SeriesSortName,ParentIndexNumber,IndexNumber,SortName",defaultSortOrder:"Ascending"}}function getAlbumSortOption(){return{name:_globalize.default.translate("Album"),value:"Album,ParentIndexNumber,IndexNumber"}}function getArtistSortValue(){return"Artist,Album,ParentIndexNumber,IndexNumber,SortName"}function getArtistSortOption(){return{name:_globalize.default.translate("Artist"),value:getArtistSortValue()}}function getDirectorSortOption(apiClient){return apiClient.isMinServerVersion("4.9.0.48")?{name:_globalize.default.translate("Director"),value:"Director,SortName"}:null}function getComposerSortOption(){return{name:_globalize.default.translate("Composer"),value:getArtistSortValue().replace("Artist","Composer")}}function getAlbumArtistSortOption(){return{name:_globalize.default.translate("AlbumArtist"),value:getArtistSortValue().replace("Artist","AlbumArtist")}}function getColumnSize(id){switch(id){case"IndexNumber":case"ParentIndexNumber":case"Video3DFormat":return 3;case"ProductionYear":case"PlayCount":return 4;case"Image":case"Icon":return 4;case"CommunityRating":case"CriticRating":case"Number":return 6;case"EpisodeNumber":case"Runtime":return 10;case"Date":case"Bitrate":case"Size":case"Resolution":case"Container":case"Version":return 12;case"DateTime":return 20;case"Artist":case"AlbumArtist":case"Composer":case"SeriesName":case"Album":case"Genres":case"Email":case"Filename":case"IpAddress":return 30;case"Studios":case"Name":case"OriginalTitle":case"SortName":return 40;case"Path":return 80;default:return 15}}function compareByName(a,b){a=a.menuSortKey||a.name,b=b.menuSortKey||b.name;return a',size:getColumnSize("Icon"),sortBy:null,gridColumnType:"icon",viewTypes:"datagrid",defaultVisible:"datagrid"}),itemType){case"":case"Episode":fields.push({id:"SeriesName",name:_globalize.default.translate("Series"),size:getColumnSize("SeriesName"),sortBy:null==(_getSeriesSortOption=getSeriesSortOption(itemType))?void 0:_getSeriesSortOption.value,viewTypes:"datagrid",defaultVisible:"datagrid",fillGrid:!0}),fields.push({id:"EpisodeNumber",name:_globalize.default.translate("Number"),size:getColumnSize("EpisodeNumber"),sortBy:null,viewTypes:"datagrid",defaultVisible:"datagrid"})}switch(itemType){case"Photo":case"PhotoAlbum":fields.push({id:"Name",name:_globalize.default.translate("Title"),size:getColumnSize("Name"),sortBy:null==(_this$getNameSortOpti=this.getNameSortOption(itemType,apiClient))?void 0:_this$getNameSortOpti.value,defaultVisible:"datagrid",fillGrid:!0});break;case"ApiKey":break;case"Log":fields.push({id:"Name",name:_globalize.default.translate("FileName"),size:getColumnSize("Filename"),sortBy:null==(_this$getNameSortOpti=this.getNameSortOption(itemType,apiClient))?void 0:_this$getNameSortOpti.value,defaultVisible:"*",fillGrid:!0});break;default:fields.push({id:"Name",name:_globalize.default.translate("Title"),size:getColumnSize("Name"),sortBy:null==(_this$getNameSortOpti=this.getNameSortOption(itemType,apiClient))?void 0:_this$getNameSortOpti.value,defaultVisible:"*",fillGrid:!0})}if(SupportsSync)switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicVideo":case"Video":case"Game":case"Book":case"Photo":case"Playlist":fields.push({id:"Download",name:_globalize.default.translate("Download"),gridDisplayNameHtml:'',size:getColumnSize("Icon"),sortBy:null,gridColumnType:"button",viewTypes:"datagrid",defaultVisible:"datagrid",center:!0})}switch("User"===itemType&&fields.push({id:"ConnectUserName",name:"Emby Connect",size:getColumnSize("Email"),sortBy:null,fillGrid:!0}),"ApiKey"===itemType&&fields.push({id:"AppName",name:_globalize.default.translate("AppName"),size:getColumnSize("Name"),sortBy:null,defaultVisible:"*",fillGrid:!0}),"Device"===itemType&&fields.push({id:"AppNameVersion",name:_globalize.default.translate("AppName"),size:getColumnSize("Name"),sortBy:null,defaultVisible:"*",fillGrid:!0}),"ApiKey"===itemType&&fields.push({id:"AccessToken",name:_globalize.default.translate("HeaderApiKey"),size:getColumnSize("Name"),sortBy:null,defaultVisible:"*",fillGrid:!0}),"User"===itemType&&fields.push({id:"LastActivityDateRelative",name:_globalize.default.translate("DateLastActive"),size:getColumnSize("Name"),sortBy:null==(_getDateLastActiveSor=getDateLastActiveSortOption(itemType,apiClient))?void 0:_getDateLastActiveSor.value,viewTypes:"cards",defaultVisible:"cards,list"}),itemType){case"Device":case"User":fields.push({id:"LastActivityDate",name:_globalize.default.translate("DateLastActive"),size:getColumnSize("DateTime"),sortBy:null==(_getDateLastActiveSor2=getDateLastActiveSortOption(itemType,apiClient))?void 0:_getDateLastActiveSor2.value,viewTypes:"datagrid",defaultVisible:"datagrid"})}switch("Device"===itemType&&fields.push({id:"LastUser",name:_globalize.default.translate("User"),size:getColumnSize("Name"),sortBy:null,viewTypes:"datagrid",defaultVisible:"datagrid",fillGrid:!0}),itemType){case"":case"TvChannel":fields.push({id:"Number",name:_globalize.default.translate("Number"),size:getColumnSize("Number"),sortBy:null==(_getNumberSortOption=getNumberSortOption(itemType))?void 0:_getNumberSortOption.value,viewTypes:"datagrid"});break;case"Audio":fields.push({id:"Number",name:_globalize.default.translate("Number"),gridDisplayNameText:"#",size:getColumnSize("IndexNumber"),sortBy:null==(_getNumberSortOption=getNumberSortOption(itemType))?void 0:_getNumberSortOption.value,viewTypes:"datagrid"})}switch("Program"===itemType&&fields.push({id:"StartDate",name:_globalize.default.translate("AirDate"),size:getColumnSize("StartDate"),sortBy:null==(_getDateLastActiveSor=getStartDateSortOption(itemType))?void 0:_getDateLastActiveSor.value,viewTypes:"datagrid",defaultVisible:"datagrid"}),itemType){case"":case"Movie":case"Video":case"Trailer":case"MusicVideo":case"Series":case"Game":fields.push({id:"OriginalTitle",name:_globalize.default.translate("OriginalTitle"),size:getColumnSize("OriginalTitle"),sortBy:null==(_getOriginalTitleSort={name:_globalize.default.translate("OriginalTitle"),value:"OriginalTitle,SortName",defaultSortOrder:"Descending"})?void 0:_getOriginalTitleSort.value,viewTypes:"datagrid",fillGrid:!0})}switch(itemType){case"":case"Folder":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicGenre":case"MusicVideo":case"Playlist":case"Video":case"Game":case"Book":case"Genre":case"GameGenre":case"Person":case"GameSystem":case"Photo":case"PhotoAlbum":case"TvChannel":case"Studio":case"Channel":case"UserView":case"Tag":fields.push({id:"SortName",name:_globalize.default.translate("SortName"),size:getColumnSize("SortName"),sortBy:null==(_this$getNameSortOpti4=this.getNameSortOption(itemType,apiClient))?void 0:_this$getNameSortOpti4.value,viewTypes:"datagrid",fillGrid:!0})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":case"Game":case"Photo":case"Book":case"Playlist":fields.push({id:"Filename",name:_globalize.default.translate("FileName"),size:getColumnSize("Filename"),sortBy:null==(_getFileSortOption=getFileSortOption())?void 0:_getFileSortOption.value,fillGrid:!0}),fields.push({id:"Path",name:_globalize.default.translate("Path"),size:getColumnSize("Path"),sortBy:null==(_getFileSortOption=getFileSortOption())?void 0:_getFileSortOption.value,viewTypes:"datagrid",fillGrid:!0})}switch(itemType){case"":case"Audio":case"MusicAlbum":case"MusicVideo":fields.push({id:"Artist",name:_globalize.default.translate("Artist"),size:getColumnSize("Artist"),sortBy:null==(_getArtistSortOption=getArtistSortOption())?void 0:_getArtistSortOption.value,viewTypes:"datagrid",defaultVisible:"datagrid",fillGrid:!0}),fields.push({id:"AlbumArtist",name:_globalize.default.translate("AlbumArtist"),size:getColumnSize("AlbumArtist"),sortBy:null==(_getArtistSortOption=getAlbumArtistSortOption())?void 0:_getArtistSortOption.value,viewTypes:"datagrid",defaultVisible:"datagrid",fillGrid:!0}),fields.push({id:"Composer",name:_globalize.default.translate("Composer"),size:getColumnSize("Composer"),sortBy:null==(_getArtistSortOption=getComposerSortOption())?void 0:_getArtistSortOption.value,viewTypes:"datagrid",fillGrid:!0})}switch(itemType){case"":case"Audio":fields.push({id:"Album",name:_globalize.default.translate("Album"),size:getColumnSize("Album"),sortBy:null==(_getAlbumSortOption=getAlbumSortOption())?void 0:_getAlbumSortOption.value,viewTypes:"datagrid",defaultVisible:"datagrid",fillGrid:!0})}switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"Audio":case"MusicAlbum":case"MusicVideo":case"Video":case"Game":case"Book":case"Photo":case"Program":case"TvChannel":fields.push({id:"CommunityRating",name:getCommunityRatingOptionName(itemType),size:getColumnSize("CommunityRating"),sortBy:null==(_getCommunityRatingSo=getCommunityRatingSortOption(itemType))?void 0:_getCommunityRatingSo.value,defaultVisible:"datagrid"})}switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"MusicAlbum":case"MusicVideo":case"Video":case"Game":case"Book":case"Photo":case"Program":case"TvChannel":fields.push({id:"CriticRating",name:_globalize.default.translate("CriticRating"),size:getColumnSize("CriticRating"),sortBy:null==(_getCriticRatingSortO=getCriticRatingSortOption())?void 0:_getCriticRatingSortO.value,defaultVisible:"datagrid"})}switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"MusicAlbum":case"MusicVideo":case"Playlist":case"Video":case"Game":case"Book":case"Photo":case"Program":case"TvChannel":fields.push({id:"OfficialRating",name:_globalize.default.translate("ParentalRating"),size:getColumnSize("OfficialRating"),sortBy:null==(_getParentalRatingSor=getParentalRatingSortOption())?void 0:_getParentalRatingSor.value,defaultVisible:"datagrid"});break;case"Audio":fields.push({id:"OfficialRating",name:_globalize.default.translate("ParentalRating"),size:getColumnSize("OfficialRating"),sortBy:null==(_getParentalRatingSor=getParentalRatingSortOption())?void 0:_getParentalRatingSor.value})}switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"Audio":case"MusicAlbum":case"MusicVideo":case"Video":case"Game":case"Book":case"Person":case"Photo":case"Program":switch(itemType){case"Season":case"Episode":case"Audio":case"MusicAlbum":case"MusicVideo":case"Video":case"Game":case"Book":case"Person":case"Photo":defaultVisible="datagrid";break;case"BoxSet":case"Playlist":break;default:defaultVisible="*"}fields.push({id:"ProductionYear",name:_globalize.default.translate("Year"),size:getColumnSize("ProductionYear"),sortBy:null==(_getProductionYearSor=getProductionYearSortOption())?void 0:_getProductionYearSor.value,defaultVisible:defaultVisible})}switch(itemType){case"":case"Episode":case"MusicVideo":case"Video":case"Game":case"Book":case"Person":case"Photo":case"Program":fields.push({id:"PremiereDate",name:_globalize.default.translate("ReleaseDate"),size:getColumnSize("Date"),sortBy:null==(_getReleaseDateSortOp=getReleaseDateSortOption())?void 0:_getReleaseDateSortOp.value,viewTypes:"datagrid",defaultVisible:"datagrid"});break;case"Audio":case"Trailer":case"MusicAlbum":case"Movie":case"Series":case"Season":fields.push({id:"PremiereDate",name:_globalize.default.translate("ReleaseDate"),size:getColumnSize("Date"),sortBy:null==(_getReleaseDateSortOp=getReleaseDateSortOption())?void 0:_getReleaseDateSortOp.value,viewTypes:"datagrid"})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"MusicVideo":case"Video":case"Audio":case"MusicAlbum":case"Playlist":case"Series":case"Season":fields.push({id:"Runtime",name:_globalize.default.translate("Runtime"),gridDisplayNameText:_globalize.default.translate("Time"),size:getColumnSize("Runtime"),sortBy:null==(_getRuntimeSortOption=getRuntimeSortOption())?void 0:_getRuntimeSortOption.value,defaultVisible:"datagrid"})}switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"Trailer":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicVideo":case"Video":case"Game":case"Book":case"Program":fields.push({id:"Genres",name:_globalize.default.translate("Genres"),size:getColumnSize("Genres"),sortBy:null,fillGrid:!0,defaultVisible:"datagrid"})}switch(itemType){case"Folder":case"Photo":case"GameSystem":case"Playlist":fields.push({id:"Genres",name:_globalize.default.translate("Genres"),size:getColumnSize("Genres"),sortBy:null,fillGrid:!0})}switch(itemType){case"":case"Movie":case"Trailer":case"Series":case"MusicVideo":case"Episode":case"Video":fields.push({id:"Director",name:_globalize.default.translate("Director"),size:getColumnSize("Artist"),sortBy:null==(_getDirectorSortOptio=getDirectorSortOption(apiClient))?void 0:_getDirectorSortOptio.value,fillGrid:!0})}switch(itemType){case"":case"Folder":case"Movie":case"Series":case"Season":case"Episode":case"Trailer":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicVideo":case"Playlist":case"Video":case"Game":case"Book":case"Person":case"GameSystem":case"Photo":case"Program":case"TvChannel":fields.push({id:"Tags",name:_globalize.default.translate("Tags"),size:getColumnSize("Tags"),sortBy:null,fillGrid:!0})}switch(itemType){case"":case"Folder":case"Movie":case"Series":case"Season":case"Episode":case"Trailer":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicVideo":case"Playlist":case"Video":case"Game":case"Book":case"GameSystem":case"Photo":case"Program":case"TvChannel":fields.push({id:"Studios",name:_globalize.default.translate("Studios"),size:getColumnSize("Studios"),sortBy:null,fillGrid:!0})}switch(itemType){case"":case"Movie":case"Trailer":case"Series":case"MusicVideo":case"Video":fields.push({id:"Tagline",name:_globalize.default.translate("Tagline"),size:getColumnSize("Path"),sortBy:null,fillGrid:!0})}switch(itemType){case"":case"Folder":case"BoxSet":case"Movie":case"Series":case"Season":case"Episode":case"Trailer":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicVideo":case"Playlist":case"Video":case"Game":case"Book":case"Person":case"GameSystem":case"Photo":case"Program":fields.push({id:"Overview",name:_globalize.default.translate("Overview"),size:getColumnSize("Path"),sortBy:null,fillGrid:!0})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":case"Game":case"Photo":case"Book":fields.push({id:"Container",name:_globalize.default.translate("Container"),size:getColumnSize("Container"),sortBy:null==(_getContainerSortOpti=getContainerSortOption())?void 0:_getContainerSortOpti.value})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"MusicVideo":case"Video":case"TvChannel":case"Program":case"Photo":fields.push({id:"Resolution",name:_globalize.default.translate("Resolution"),size:getColumnSize("Resolution"),sortBy:null==(_getResolutionSortOpt=getResolutionSortOption())?void 0:_getResolutionSortOpt.value})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":fields.push({id:"Bitrate",name:_globalize.default.translate("Bitrate"),size:getColumnSize("Bitrate"),sortBy:null==(_getBitrateSortOption=getBitrateSortOption())?void 0:_getBitrateSortOption.value})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":case"Game":case"Photo":case"Book":fields.push({id:"Size",name:_globalize.default.translate("Size"),size:getColumnSize("Size"),sortBy:null==(_getSizeSortOption=getSizeSortOption(itemType))?void 0:_getSizeSortOption.value})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"MusicVideo":case"Video":fields.push({id:"Video3DFormat",name:"3D",size:getColumnSize("Video3DFormat"),sortBy:null,viewTypes:"datagrid"})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":case"Game":case"Book":case"TvChannel":case"Series":fields.push({id:"DatePlayed",name:_globalize.default.translate("DatePlayed"),size:getColumnSize("Date"),sortBy:null==(_getDatePlayedSortOpt=getDatePlayedSortOption(itemType))?void 0:_getDatePlayedSortOpt.value})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":case"Game":case"Book":case"TvChannel":fields.push({id:"PlayCount",name:_globalize.default.translate("Plays"),size:getColumnSize("PlayCount"),sortBy:null==(_getPlayCountSortOpti=getPlayCountSortOption())?void 0:_getPlayCountSortOpti.value,viewTypes:"datagrid",defaultVisible:"datagrid"})}switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":case"Game":case"Book":case"TvChannel":case"MusicAlbum":"MusicAlbum"===itemType&&"audiobooks"!==(null==(_options$parentItem=options.parentItem)?void 0:_options$parentItem.CollectionType)||fields.push({id:"Played",name:_globalize.default.translate("Played"),gridDisplayNameHtml:'',size:getColumnSize("Icon"),sortBy:null,gridColumnType:"button",viewTypes:"datagrid",defaultVisible:"datagrid",center:!0})}switch("User"===itemType&&fields.push({id:"HasPassword",name:_globalize.default.translate("Password"),size:getColumnSize("Icon"),sortBy:null,gridColumnType:"button",viewTypes:"datagrid",defaultVisible:"datagrid"}),null!=apiClient&&apiClient.isMinServerVersion("4.8.0.50")&&"User"===itemType&&fields.push({id:"HasProfilePin",name:_globalize.default.translate("TitleProfilePin"),size:getColumnSize("Icon"),sortBy:null,gridColumnType:"button",viewTypes:"datagrid",defaultVisible:"datagrid"}),"User"===itemType&&fields.push({id:"EnableRemoteAccess",name:_globalize.default.translate("RemoteAccess"),size:getColumnSize("Icon"),sortBy:null,gridColumnType:"icon",viewTypes:"datagrid",defaultVisible:"datagrid"}),"User"===itemType&&fields.push({id:"IsDisabled",name:_globalize.default.translate("Disabled"),size:getColumnSize("Icon"),sortBy:null,gridColumnType:"icon",viewTypes:"datagrid",defaultVisible:"datagrid"}),itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicVideo":case"Video":case"Game":case"Book":case"Person":case"Photo":case"TvChannel":case"Playlist":fields.push({id:"DateCreated",name:_globalize.default.translate("DateCreated"),size:getColumnSize("Date"),sortBy:null==(_getDateAddedSortOpti=getDateAddedSortOption(itemType,apiClient))?void 0:_getDateAddedSortOpti.value});break;case"User":fields.push({id:"DateCreated",name:_globalize.default.translate("DateCreated"),size:getColumnSize("Date"),sortBy:null==(_getDateAddedSortOpti=getDateAddedSortOption(itemType,apiClient))?void 0:_getDateAddedSortOpti.value});break;case"ApiKey":fields.push({id:"DateCreated",name:_globalize.default.translate("DateCreated"),size:getColumnSize("Date"),sortBy:null==(_getDateAddedSortOpti=getDateAddedSortOption(itemType,apiClient))?void 0:_getDateAddedSortOpti.value,defaultVisible:"*"})}switch(itemType){case"":case"Video":case"Movie":case"MusicVideo":case"Episode":case"Trailer":null!=apiClient&&apiClient.isMinServerVersion("4.9.1.12")&&(fields.push({id:"VideoCodec",name:_globalize.default.translate("LabelVideoCodec"),size:getColumnSize("Container"),sortBy:null==(_getVideoCodecSortOpt=getVideoCodecSortOption())?void 0:_getVideoCodecSortOpt.value}),fields.push({id:"Framerate",name:_globalize.default.translate("Framerate"),size:getColumnSize("Container"),sortBy:null==(_getVideoCodecSortOpt=getFramerateSortOption())?void 0:_getVideoCodecSortOpt.value}))}switch(itemType){case"":case"Video":case"Movie":case"MusicVideo":case"Episode":case"Trailer":case"Audio":null!=apiClient&&apiClient.isMinServerVersion("4.9.1.12")&&fields.push({id:"AudioCodec",name:_globalize.default.translate("LabelAudioCodec"),size:getColumnSize("Container"),sortBy:null==(_getAudioCodecSortOpt={name:_globalize.default.translate("LabelAudioCodec"),value:"AudioCodec,SortName",defaultSortOrder:"Asscending"})?void 0:_getAudioCodecSortOpt.value})}switch("Device"===itemType&&null!=apiClient&&apiClient.isMinServerVersion("4.8.0.47")&&fields.push({id:"IpAddress",name:_globalize.default.translate("IpAddress"),size:getColumnSize("IpAddress"),sortBy:null==(_getDateLastActiveSor=getIpAddressSortOption(itemType,apiClient))?void 0:_getDateLastActiveSor.value,defaultVisible:"datagrid"}),itemType){case"Log":fields.push({id:"DateModified",name:_globalize.default.translate("DateModified"),size:getColumnSize("DateTime"),sortBy:null==(_getDateModifiedSortO=getDateModifiedSortOption(itemType))?void 0:_getDateModifiedSortO.value,defaultVisible:"*"});break;case"Playlist":null!=apiClient&&apiClient.isMinServerVersion("4.9.1.1")&&fields.push({id:"DateModified",name:_globalize.default.translate("DateModified"),size:getColumnSize("DateTime"),sortBy:null==(_getDateModifiedSortO=getDateModifiedSortOption(itemType))?void 0:_getDateModifiedSortO.value})}switch("Log"===itemType&&fields.push({id:"Size",name:_globalize.default.translate("Size"),size:getColumnSize("Size"),sortBy:null==(_getDateLastActiveSor=getSizeSortOption(itemType))?void 0:_getDateLastActiveSor.value,defaultVisible:"datagrid"}),"Plugin"===itemType&&fields.push({id:"Version",name:_globalize.default.translate("Version"),size:getColumnSize("Version"),sortBy:null,defaultVisible:"*"}),itemType){case"":case"Folder":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicVideo":case"Playlist":case"Video":case"Game":case"Book":case"Person":case"Photo":case"TvChannel":fields.push({id:"IsFavorite",name:_globalize.default.translate("Favorite"),gridDisplayNameHtml:'',size:getColumnSize("Icon"),sortBy:null,gridColumnType:"button",viewTypes:"datagrid",defaultVisible:"datagrid",center:!0})}for(var i=0,length=fields.length;ifield.size&&(field.size=Math.max(fieldName.length,field.size))}return fields},BaseItemController.prototype.getNameSortOption=function(itemType,apiClient){switch(itemType){case"ApiKey":case"Log":case"Plugin":case"ActivityLogEntry":return null;case"Device":return null!=apiClient&&apiClient.isMinServerVersion("4.8.0.47")?{name:_globalize.default.translate("Title"),value:"SortName,DateLastActivity",defaultSortOrder:"Ascending"}:null;case"User":return null!=apiClient&&apiClient.isMinServerVersion("4.8.0.47")?{name:_globalize.default.translate("Title"),value:"SortName",defaultSortOrder:"Ascending"}:null;default:return{name:_globalize.default.translate("Title"),value:"SortName",defaultSortOrder:"Ascending"}}},BaseItemController.prototype.getDefaultSorting=function(options){var field,itemType=options.itemType||"",apiClient=options.apiClient;switch(itemType){case"Episode":field=getSeriesSortOption(itemType);break;case"Program":field=getStartDateSortOption(itemType);break;case"Device":field=getDateLastActiveSortOption(itemType,apiClient)}return(field=field||this.getNameSortOption(itemType,apiClient))?{sortBy:field.value,sortOrder:field.defaultSortOrder}:null},BaseItemController.prototype.getSortMenuOptions=function(options){var sortBy=[],itemType=options.itemType||"",apiClient=options.apiClient,options=options.availableFieldIds;switch(itemType){case"PlaylistItem":return getPlaylistOrCollectionSortMenuOptions("Playlist");case"BoxSetItem":return apiClient.isMinServerVersion("4.8.0.16")?getPlaylistOrCollectionSortMenuOptions("BoxSet"):[]}(options.Name||options.SortName)&&(option=this.getNameSortOption(itemType,apiClient))&&sortBy.push(option),options.Album&&(option=getAlbumSortOption())&&sortBy.push(option),options.AlbumArtist&&(option=getAlbumArtistSortOption())&&sortBy.push(option),options.Artist&&(option=getArtistSortOption())&&sortBy.push(option),options.StartDate&&(option=getStartDateSortOption(itemType))&&sortBy.push(option),(options.Filename||options.Path)&&(option=getFileSortOption())&&sortBy.push(option),options.Bitrate&&(option=getBitrateSortOption())&&sortBy.push(option),options.CommunityRating&&(option=getCommunityRatingSortOption(itemType))&&sortBy.push(option),options.Composer&&(option=getComposerSortOption())&&sortBy.push(option),options.Director&&(option=getDirectorSortOption(apiClient))&&sortBy.push(option),options.Container&&(option=getContainerSortOption())&&sortBy.push(option),options.VideoCodec&&(option=getVideoCodecSortOption())&&sortBy.push(option),options.Framerate&&(option=getFramerateSortOption())&&sortBy.push(option),options.CriticRating&&(option=getCriticRatingSortOption())&&sortBy.push(option),options.DateCreated&&(option=getDateAddedSortOption(itemType,apiClient))&&sortBy.push(option),options.DateModified&&(option=getDateModifiedSortOption(itemType))&&sortBy.push(option),(options.LastActivityDate||options.LastActivityDateRelative)&&(option=getDateLastActiveSortOption(itemType,apiClient))&&sortBy.push(option),options.IpAddress&&(option=getIpAddressSortOption(itemType,apiClient))&&sortBy.push(option);var _option16,option=function(itemType,apiClient){switch(itemType){case"":return apiClient.isMinServerVersion("4.9.1.25")?{name:_globalize.default.translate("LastContentDateAdded"),value:"DateLastContentAdded,SortName",defaultSortOrder:"Descending"}:null;case"MusicAlbum":return apiClient.isMinServerVersion("4.9.1.90")?{name:_globalize.default.translate("LastContentDateAdded"),value:"DateLastContentAdded,SortName",defaultSortOrder:"Descending"}:null;case"Series":return{name:_globalize.default.translate("LastEpisodeDateAdded"),value:"DateLastContentAdded,SortName",defaultSortOrder:"Descending"};default:return null}}(itemType,apiClient);return option&&sortBy.push(option),(option=function(itemType,apiClient){return!apiClient.isMinServerVersion("4.9.0.17")||"Series"!==itemType?null:{name:_globalize.default.translate("LastEpisodeDateAired"),value:"LastContentPremiereDate,SortName",defaultSortOrder:"Descending"}}(itemType,apiClient))&&sortBy.push(option),options.DatePlayed&&(_option16=getDatePlayedSortOption(itemType))&&sortBy.push(_option16),(option=function(itemType){return"TvChannel"!==itemType?null:{name:_globalize.default.translate("Favorites"),value:"IsFavorite,DatePlayed,ChannelNumber,SortName",defaultSortOrder:"Ascending",sortOrderAscending:"Ascending,Descending,Ascending",sortOrderDescending:"Descending,Ascending,Ascending"}}(itemType))&&sortBy.push(option),options.OfficialRating&&(_option16=getParentalRatingSortOption())&&sortBy.push(_option16),options.PlayCount&&(_option16=getPlayCountSortOption())&&sortBy.push(_option16),options.ProductionYear&&(_option16=getProductionYearSortOption())&&sortBy.push(_option16),options.PremiereDate&&(_option16=getReleaseDateSortOption())&&sortBy.push(_option16),options.Resolution&&(_option16=getResolutionSortOption())&&sortBy.push(_option16),options.Runtime&&(_option16=getRuntimeSortOption())&&sortBy.push(_option16),options.SeriesName&&(_option16=getSeriesSortOption(itemType))&&sortBy.push(_option16),options.Size&&(_option16=getSizeSortOption(itemType))&&sortBy.push(_option16),options.Number&&(_option16=getNumberSortOption(itemType))&&sortBy.push(_option16),(option=function(itemType,apiClient){switch(itemType){case"Movie":case"Series":case"Episode":case"Audio":case"MusicAlbum":case"MusicArtist":case"Photo":case"Video":case"MusicVideo":case"Trailer":break;default:return null}return apiClient&&apiClient.isMinServerVersion("4.8.0.11")?{name:_globalize.default.translate("Random"),value:"Random",defaultSortOrder:"Ascending"}:null}(itemType,apiClient))&&sortBy.push(option),sortBy.sort(compareByName),sortBy},BaseItemController.prototype.createListHelper=function(apiClient,type,name,itemIds){return _loading.default.show(),apiClient.createList(apiClient.getCurrentUserId(),type,name,itemIds).then(function(result){_loading.default.hide();var newListName=result.Name||name;return onAddedToList(type,result.Id),notifyAddedToList(newListName,type,result.ItemAddedCount),Promise.resolve()})},BaseItemController.prototype.addToListHelper=function(list,itemIds){var apiClient=_connectionmanager.default.getApiClient(list.ServerId),userId=apiClient.getCurrentUserId();return function(apiClient,userId,type,id,addIds){return"Playlist"!==type?Promise.resolve():apiClient.getAddToPlaylistInfo(userId,id,addIds).then(function(result){return result.ContainsDuplicates?((result={text:1=Date.parse(timer.StartDate)&&now=interceptors.length)return void resolve();var interceptor=interceptors[index];interceptor.intercept(options).then(function(){runNextPrePlay(interceptors,index+1,options,resolve,reject)},reject)}(interceptors,0,options,resolve,reject)):resolve()})}function updateResultSetStartingPoint(result,firstItem,options,isQueueing){for(var startIndex=-1,i=0,length=result.Items.length;i=reportPlaylist.getTime()&&instance.onSleepTimerFired(player)}function PlaybackManager(){var currentTargetInfo,self=this,players=[],currentPairingId=null;function removeCurrentPlayer(player){var previousPlayer=self._currentPlayer;previousPlayer&&player.id!==previousPlayer.id||setCurrentPlayerInternal(null)}function setCurrentPlayerInternal(player,targetInfo){var previousPlayer=self._currentPlayer,previousTargetInfo=currentTargetInfo;if(player&&!targetInfo&&player.isLocalPlayer&&(targetInfo=createTarget(self,player)),player&&!targetInfo)throw new Error("targetInfo cannot be null");currentPairingId=null,self._currentPlayer=player,(currentTargetInfo=targetInfo)&&targetInfo.Id!==(null==previousTargetInfo?void 0:previousTargetInfo.Id)&&console.log("Active player: "+JSON.stringify(targetInfo)),previousPlayer&&self.endPlayerUpdates(previousPlayer),player&&self.beginPlayerUpdates(player),function(playbackManagerInstance,newPlayer,newTarget,previousPlayer,previousTargetInfo){!newPlayer&&!previousPlayer||newTarget&&previousTargetInfo&&newTarget.id===previousTargetInfo.id||_events.default.trigger(playbackManagerInstance,"playerchange",[newPlayer,newTarget,previousPlayer])}(self,player,targetInfo,previousPlayer,previousTargetInfo)}function changeStream(player,ticks,params,progressEventName){var signal,liveStreamId,lastMediaInfoQuery,playSessionId,currentItem;return canPlayerSeek(self,player)&&null==params?(player.currentTime(parseInt(ticks/1e4)),Promise.resolve()):(signal=(new AbortController).signal,params=params||{},liveStreamId=getPlayerData(player).streamInfo.liveStreamId,lastMediaInfoQuery=getPlayerData(player).streamInfo.lastMediaInfoQuery,playSessionId=self.playSessionId(player),currentItem=self.currentItem(player),getDeviceProfile(player,currentItem,{isRetry:!1===params.EnableDirectPlay}).then(function(deviceProfile){var audioStreamIndex=null==params.AudioStreamIndex?getPlayerData(player).audioStreamIndex:params.AudioStreamIndex,subtitleStreamIndex=null==params.SubtitleStreamIndex?getPlayerData(player).subtitleStreamIndex:params.SubtitleStreamIndex,currentMediaSource=self.currentMediaSource(player),apiClient=_connectionmanager.default.getApiClient(currentItem),maxBitrate=(ticks=ticks&&parseInt(ticks),params.MaxStreamingBitrate||self.getMaxStreamingBitrate(player)),currentPlayOptions=currentItem.playOptions||{},enableAutomaticQuality=self.enableAutomaticBitrateDetection(player);return getPlaybackInfo(player,apiClient,currentItem,deviceProfile,maxBitrate,enableAutomaticQuality,ticks,!0,currentMediaSource.Id,audioStreamIndex,subtitleStreamIndex,playSessionId,liveStreamId,params.EnableDirectPlay,params.EnableDirectStream,params.AllowVideoStreamCopy,params.AllowAudioStreamCopy,signal).then(function(result){if(result.ErrorCode)return Promise.reject({errorCode:result.ErrorCode});currentMediaSource=result.MediaSources[0];result=createStreamInfo(apiClient,currentItem.MediaType,currentItem,currentMediaSource,result.PlaySessionId,ticks);return result.fullscreen=currentPlayOptions.fullscreen,result.lastMediaInfoQuery=lastMediaInfoQuery,result.url?(getPlayerData(player).subtitleStreamIndex=subtitleStreamIndex,getPlayerData(player).audioStreamIndex=audioStreamIndex,getPlayerData(player).maxStreamingBitrate=maxBitrate,function(apiClient,player,playSessionId,streamInfo,progressEventName,signal){return getPlayerData(player).streamInfo&&playSessionId?apiClient.stopActiveEncodings(playSessionId).then(function(){return setSrcIntoPlayer(apiClient,player,streamInfo,progressEventName,playSessionId,signal)}):setSrcIntoPlayer(apiClient,player,streamInfo,progressEventName,null,signal)}(apiClient,player,playSessionId,result,progressEventName,signal)):Promise.reject({errorCode:"NoCompatibleStream",skipToNextItem:!0})})}))}function setSrcIntoPlayer(apiClient,player,streamInfo,progressEventName,previousPlaySessionId,signal){return normalizePlayOptions(streamInfo),getPlayerData(player).streamInfo=streamInfo,player.play(streamInfo,signal).then(function(){streamInfo.started=!0,"subtitletrackchange"===progressEventName||"audiotrackchange"===progressEventName?_events.default.trigger(player,progressEventName):sendProgressUpdate(self,player,progressEventName||"timeupdate"),previousPlaySessionId&&apiClient.stopActiveEncodings(previousPlaySessionId)},function(err){return console.error("player.play error: "+err),previousPlaySessionId&&apiClient.stopActiveEncodings(previousPlaySessionId),streamInfo.started=!1,onPlaybackError.call(player,err,{type:err&&err.name?err.name:"mediadecodeerror",streamInfo:streamInfo,returnPromise:!0})})}function playFromFetchedItems(options,items,showLoading,signal){return translateItemsForPlayback(items,options,showLoading,null,signal).then(function(translatedResult){return function(items,options,autoplay,signal){var playStartIndex=options.startIndex;null==playStartIndex&&(playStartIndex=options.shuffle&&items.length?function(min,max){return Math.floor(Math.random()*(max-min+1)+min)}(0,items.length):0);var firstItemApiClient,firstItem=items[playStartIndex];firstItem=firstItem||items[playStartIndex=0];return firstItem?(firstItemApiClient=_connectionmanager.default.getApiClient(firstItem)).getCurrentUser({signal:signal}).then(function(user){return null==options.startPositionTicks&&(options.startPositionTicks=firstItem.UserData&&firstItem.UserData.PlaybackPositionTicks||0,options.startPositionTicks)&&(user=1e7*(user.Configuration.ResumeRewindSeconds||0),options.startPositionTicks=Math.max(0,options.startPositionTicks-user)),function(items,firstItem,firstItemApiClient,playStartIndex,options,autoplay,signal){return function(firstItem,apiClient,options,signal){return options.shuffle||options.startPositionTicks||!1===options.fullscreen||"Video"!==(options=firstItem).MediaType||"TvChannel"===options.Type||"InProgress"===options.Status||!options.Id||!_appsettings.default.enableCinemaMode()?getDefaultIntros():(_loading.default.show(),options={},_servicelocator.appHost.supports("youtube_embedded")||(options.ExcludeSources=["youtube"]),apiClient.getIntros(firstItem.Id,options,signal).catch(getDefaultIntros))}(firstItem,firstItemApiClient,options,signal).then(function(introsResult){var introPlayOptions,introsResult=introsResult.Items;introsResult.length&&playStartIndex&&(items=items.slice(playStartIndex),playStartIndex=0),firstItem.playOptions={autoplay:options.autoplay,fullscreen:options.fullscreen,mediaSourceId:options.mediaSourceId,audioStreamIndex:options.audioStreamIndex,subtitleStreamIndex:options.subtitleStreamIndex,startPositionTicks:options.startPositionTicks,shuffle:options.shuffle},introPlayOptions=introsResult.length?{fullscreen:firstItem.playOptions.fullscreen}:firstItem.playOptions,self._isBackgroundPlaybackHack=!1===introPlayOptions.fullscreen;for(var i=0,length=(items=introsResult.concat(items)).length;i=Math.floor(runtimeTicks/1e4))&&(console.log("restarting live channel"),self.play({items:[currentItem]}))}})}function bindStopped(player){enableLocalPlaylistManagement(player)&&(_events.default.off(player,"stopped",onPlaybackStopped),_events.default.on(player,"stopped",onPlaybackStopped))}function onPlaybackTimeUpdate(e){sendProgressUpdate(self,this,"timeupdate")}function onAudioTrackChange(e){sendProgressUpdate(self,this,"audiotrackchange")}function onSubtitleTrackChange(e){sendProgressUpdate(self,this,"subtitletrackchange")}function onPlaybackPause(e){enableLocalPlaylistManagement(this)&&sendProgressUpdate(self,this,"pause"),_events.default.trigger(self,"pause",[this])}function onPlaybackUnpause(e){enableLocalPlaylistManagement(this)&&sendProgressUpdate(self,this,"unpause"),_events.default.trigger(self,"unpause",[this])}function onPlaybackVolumeChange(e){sendProgressUpdate(self,this,"volumechange")}function onRepeatModeChange(e){sendProgressUpdate(self,this,"repeatmodechange")}function onSleepTimerChange(e){sendProgressUpdate(self,this,"sleeptimerchange")}function onShuffleChange(e){sendProgressUpdate(self,this,"shufflechange"),_events.default.trigger(this,"playlistitemmove",[])}function onSubtitleOffsetChange(e){sendProgressUpdate(self,this,"subtitleoffsetchange")}function onPlaybackRateChange(e){sendProgressUpdate(self,this,"playbackratechange")}function onPlaylistItemMove(e){sendProgressUpdate(self,this,"playlistitemmove",!0)}function onPlaylistItemRemove(e,info){sendProgressUpdate(self,this,"playlistitemremove",!0,{PlaylistItemIds:info?info.PlaylistItemIds:null})}function onPlaylistItemAdd(e){sendProgressUpdate(self,this,"playlistitemadd",!0)}function onPlayerShutdown(e){removeCurrentPlayer(this)}function initMediaPlayer(player){players.push(player),players.sort(function(a,b){return(a.priority||0)-(b.priority||0)}),!1!==player.isLocalPlayer&&(player.isLocalPlayer=!0),player.currentState={},player.getVolume&&player.setVolume||function(player){player.getVolume=function(){return player.volume()},player.setVolume=function(val){return player.volume(val)}}(player),enableLocalPlaylistManagement(player)?(_events.default.on(player,"error",onPlaybackError),_events.default.on(player,"timeupdate",onPlaybackTimeUpdate),_events.default.on(player,"audiotrackchange",onAudioTrackChange),_events.default.on(player,"subtitletrackchange",onSubtitleTrackChange),_events.default.on(player,"pause",onPlaybackPause),_events.default.on(player,"unpause",onPlaybackUnpause),_events.default.on(player,"volumechange",onPlaybackVolumeChange),_events.default.on(player,"repeatmodechange",onRepeatModeChange),_events.default.on(player,"sleeptimerchange",onSleepTimerChange),_events.default.on(player,"shufflechange",onShuffleChange),_events.default.on(player,"subtitleoffsetchange",onSubtitleOffsetChange),_events.default.on(player,"playbackratechange",onPlaybackRateChange),_events.default.on(player,"playlistitemmove",onPlaylistItemMove),_events.default.on(player,"playlistitemremove",onPlaylistItemRemove),_events.default.on(player,"playlistitemadd",onPlaylistItemAdd)):player.isLocalPlayer&&(_events.default.on(player,"pause",onPlaybackPause),_events.default.on(player,"unpause",onPlaybackUnpause),_events.default.on(player,"itemstarted",onPlaybackStartedFromSelfManagingPlayer),_events.default.on(player,"itemstopped",onPlaybackStoppedFromSelfManagingPlayer),_events.default.on(player,"playqueuestarted",onPlayQueueStartedFromSelfManagingPlayer),_events.default.on(player,"sleeptimerfired",onSleepTimerFiredFromSelfManagingPlayer),_events.default.on(player,"audiotrackchange",onAudioTrackChange),_events.default.on(player,"subtitletrackchange",onSubtitleTrackChange),_events.default.on(player,"subtitleoffsetchange",onSubtitleOffsetChange),_events.default.on(player,"playbackratechange",onPlaybackRateChange),_events.default.on(player,"playlistitemmove",onPlaylistItemMove),_events.default.on(player,"playlistitemremove",onPlaylistItemRemove),_events.default.on(player,"playlistitemadd",onPlaylistItemAdd),_events.default.on(player,"shutdown",onPlayerShutdown)),player.isLocalPlayer&&function(player){_events.default.on(_servicelocator.fullscreenManager,"fullscreenchange",function(){_events.default.trigger(player,"fullscreenchange")})}(player),bindStopped(player)}this._playQueueManager=new _playqueuemanager.default,self.getPlayerInfo=function(player){var target;return(player=player||self._currentPlayer)?(target=currentTargetInfo||{},{name:player.name,isLocalPlayer:player.isLocalPlayer,id:target.id,playerName:target.playerName,deviceName:target.deviceName,playableMediaTypes:target.playableMediaTypes,supportedCommands:target.supportedCommands}):null},self.setActivePlayer=function(player,targetInfo){if("localplayer"===player||"localplayer"===player.name)return self._currentPlayer&&self._currentPlayer.isLocalPlayer?void 0:void setCurrentPlayerInternal(null,null);if(!(player="string"==typeof player?players.filter(function(p){return p.name===player})[0]:player))throw new Error("null player");setCurrentPlayerInternal(player,targetInfo)},self.trySetActivePlayer=function(player,targetInfo){if("localplayer"===player||"localplayer"===player.name)self._currentPlayer&&self._currentPlayer.isLocalPlayer,self._isPairing=!1;else{if(!(player="string"==typeof player?players.filter(function(p){return p.name===player})[0]:player))throw new Error("null player");var promise;currentPairingId===targetInfo.id?self._isPairing=!1:(currentPairingId=targetInfo.id,promise=player.tryPair?player.tryPair(targetInfo):Promise.resolve(),self._isPairing=!0,_events.default.trigger(self,"pairing"),promise.then(function(){self._isPairing=!1,_events.default.trigger(self,"paired"),setCurrentPlayerInternal(player,targetInfo)},function(){self._isPairing=!1,_events.default.trigger(self,"pairerror"),currentPairingId===targetInfo.id&&(currentPairingId=null)}))}},self.getTargets=function(){var promises=players.filter(displayPlayerIndividually).map(getPlayerTargets);return Promise.all(promises).then(function(responses){for(var targets=[],i=0;iDate.parse(item.EndDate)||Date.now()=supported.length&&(index=0),this.setAspectRatio(supported[index].id,player)}},PlaybackManager.prototype.setAspectRatio=function(val,player){(player=player||this._currentPlayer)&&player.setAspectRatio&&player.setAspectRatio(val)},PlaybackManager.prototype.getSupportedAspectRatios=function(player){return(player=player||this._currentPlayer)&&player.getSupportedAspectRatios?player.getSupportedAspectRatios():[]},PlaybackManager.prototype.getAspectRatio=function(player){if((player=player||this._currentPlayer)&&player.getAspectRatio)return player.getAspectRatio()},PlaybackManager.prototype.setBrightness=function(val,player){(player=player||this._currentPlayer)&&player.setBrightness(val)},PlaybackManager.prototype.getBrightness=function(player){if(player=player||this._currentPlayer)return player.getBrightness()},PlaybackManager.prototype.setVolume=function(val,player){(player=player||this._currentPlayer)&&player.setVolume(val)},PlaybackManager.prototype.getVolume=function(player){if(player=player||this._currentPlayer)return player.getVolume()},PlaybackManager.prototype.volumeUp=function(player){(player=player||this._currentPlayer)&&player.volumeUp()},PlaybackManager.prototype.volumeDown=function(player){(player=player||this._currentPlayer)&&player.volumeDown()},PlaybackManager.prototype.sendAbortSignal=function(){var controller=this._abortController;controller&&(this._abortController=null,controller.abort())},PlaybackManager.prototype.newAbortSignal=function(){this.sendAbortSignal();var controller=new AbortController;return(this._abortController=controller).signal},PlaybackManager.prototype.getCurrentPlayer=function(){return this._currentPlayer},PlaybackManager.prototype.currentTime=function(player){return!(player=player||this._currentPlayer)||enableLocalPlaylistManagement(player)||player.isLocalPlayer?this.getCurrentTicks(player):player.currentTime()},PlaybackManager.prototype.nextItem=function(player){var apiClient;return(player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player)?player.nextItem():(player=this._playQueueManager.getNextItemInfo())&&player.item?(apiClient=_connectionmanager.default.getApiClient(player.item)).getItem(apiClient.getCurrentUserId(),player.item.Id,{ExcludeFields:"VideoChapters,VideoMediaSources,MediaStreams,People,Overview"}):Promise.reject()},PlaybackManager.prototype.canQueue=function(item){if(this._currentPlayer)switch(item.Type){case"Program":case"TvChannel":return!1;case"MusicAlbum":case"MusicArtist":return this.canPlay(item)&&this.canQueueMediaType("Audio");default:return this.canPlay(item)&&canPlayerPlayMediaType(this._currentPlayer,item.MediaType)}return!1},PlaybackManager.prototype.canQueueMediaType=function(mediaType){return!!this._currentPlayer&&canPlayerPlayMediaType(this._currentPlayer,mediaType)},PlaybackManager.prototype.isMuted=function(player){return!!(player=player||this._currentPlayer)&&player.isMuted()},PlaybackManager.prototype.setMute=function(mute,player){(player=player||this._currentPlayer)&&player.setMute(mute)},PlaybackManager.prototype.toggleMute=function(mute,player){(player=player||this._currentPlayer)&&(player.toggleMute?player.toggleMute():player.setMute(!player.isMuted()))},PlaybackManager.prototype.nextChapter=function(player){player=player||this._currentPlayer;var ticks=this.getCurrentTicks(player),nextChapter=(this.currentMediaSource(player).Chapters||this.currentItem(player).Chapters||[]).filter(function(i){return i.StartPositionTicks>ticks})[0];nextChapter?this.seek(nextChapter.StartPositionTicks,player):this.nextTrack(player)},PlaybackManager.prototype.previousChapter=function(player){player=player||this._currentPlayer;var ticks=this.getCurrentTicks(player);ticks-=1e8,0===this.getCurrentPlaylistIndex(player)&&(ticks=Math.max(ticks,0));var previousChapters=(this.currentMediaSource(player).Chapters||this.currentItem(player).Chapters||[]).filter(function(i){return i.StartPositionTicks<=ticks});previousChapters.length?this.seek(previousChapters[previousChapters.length-1].StartPositionTicks,player):this.previousTrack(player)},PlaybackManager.prototype.fastForward=function(player){player=player||this._currentPlayer;var offsetTicks=1e4*_usersettings.default.skipForwardLength();this.seekRelative(offsetTicks,player)},PlaybackManager.prototype.rewind=function(player){player=player||this._currentPlayer;var offsetTicks=0-1e4*_usersettings.default.skipBackLength();this.seekRelative(offsetTicks,player)},PlaybackManager.prototype.frameStepForward=function(player){var offsetTicks=getFrameTicks((player=player||this._currentPlayer).streamInfo);offsetTicks&&this.seekRelative(offsetTicks+=1e4,player)},PlaybackManager.prototype.frameStepBack=function(player){var offsetTicks=getFrameTicks((player=player||this._currentPlayer).streamInfo);offsetTicks&&this.seekRelative(-1*(offsetTicks+=1e4),player)},PlaybackManager.prototype.seekPercent=function(percent,player){player=player||this._currentPlayer,console.log("seeking to "+percent+"%");var ticks=this.duration(player)||0;ticks*=percent/=100,ticks=parseInt(ticks),console.log("seeking to "+ticks+" ticks"),this.seek(ticks,player)},PlaybackManager.prototype.playTrailers=function(item){var instance,player=this._currentPlayer;return player&&player.playTrailers?player.playTrailers(item):(player=_connectionmanager.default.getApiClient(item),instance=this,player.getAllTrailers({LocalTrailers:0<(item.LocalTrailerCount||0),RemoteTrailers:0===(item.LocalTrailerCount||0)},item).then(function(result){return instance.play({items:result.Items})}))},PlaybackManager.prototype.getSubtitleUrl=function(textStream,serverId){serverId=_connectionmanager.default.getApiClient(serverId);return textStream.IsExternalUrl?textStream.DeliveryUrl:serverId.getUrl(textStream.DeliveryUrl)},PlaybackManager.prototype.stop=function(player){return player=player||this._currentPlayer,this.sendAbortSignal(),player?(enableLocalPlaylistManagement(player)&&this._playQueueManager.reset(),player.stop(!0)):Promise.resolve()},PlaybackManager.prototype.getBufferedRanges=function(player){return(player=player||this._currentPlayer)&&player.getBufferedRanges?player.getBufferedRanges():[]},PlaybackManager.prototype.getSeekableRanges=function(player){return(player=player||this._currentPlayer)&&player.getSeekableRanges?player.getSeekableRanges():[]},PlaybackManager.prototype.playPause=function(player){if(player=player||this._currentPlayer)return player.playPause?player.playPause():player.paused()?this.unpause(player):this.pause(player)},PlaybackManager.prototype.paused=function(player){if(player=player||this._currentPlayer)return player.paused()},PlaybackManager.prototype.pause=function(player){(player=player||this._currentPlayer)&&player.pause()},PlaybackManager.prototype.unpause=function(player){(player=player||this._currentPlayer)&&player.unpause()},PlaybackManager.prototype.instantMix=function(item,player){var options,instance;return(player=player||this._currentPlayer)&&player.instantMix?player.instantMix(item):(player=_connectionmanager.default.getApiClient(item),(options={}).UserId=player.getCurrentUserId(),options.Limit=5e3,instance=this,player.getInstantMixFromItem(item.Id,options).then(function(result){return instance.play({items:result.Items})}))},PlaybackManager.prototype.shuffle=function(shuffleItem,player,queryOptions){return(player=player||this._currentPlayer)&&player.shuffle?player.shuffle(shuffleItem):((queryOptions=queryOptions||{}).items=[shuffleItem],queryOptions.shuffle=!0,this.play(queryOptions))},PlaybackManager.prototype.audioTracks=function(player){if((player=player||this._currentPlayer).audioTracks){var result=player.audioTracks();if(result)return result}result=this.currentMediaSource(player);return((null==result?void 0:result.MediaStreams)||[]).filter(function(s){return"Audio"===s.Type})},PlaybackManager.prototype.subtitleTracks=function(player){if((player=player||this._currentPlayer).subtitleTracks){var result=player.subtitleTracks();if(result)return result}result=this.currentMediaSource(player);return((null==result?void 0:result.MediaStreams)||[]).filter(function(s){return"Subtitle"===s.Type})},PlaybackManager.prototype.getSupportedCommands=function(player){var list,forceSupportVolume;return!(player=player||this._currentPlayer)||player.isLocalPlayer?(list=["GoHome","GoToSettings","SetAudioStreamIndex","SetSubtitleStreamIndex","RefreshMediaSource","SetMaxStreamingBitrate","DisplayContent","GoToSearch","DisplayMessage","TriggerTranscodingFallback","SetRepeatMode","SetShuffle","PlayMediaSource","PlayTrailers"],_servicelocator.appHost.supports("fullscreenchange")&&list.push("ToggleFullscreen"),_servicelocator.appHost.supports("sleeptimer")&&list.push("SetSleepTimer"),null!=player&&player.supports&&(forceSupportVolume="libmpvmediaplayer"===(null==player?void 0:player.id),(player.supports("VolumeUp")||forceSupportVolume)&&list.push("VolumeUp"),(player.supports("VolumeDown")||forceSupportVolume)&&list.push("VolumeDown"),(player.supports("Mute")||forceSupportVolume)&&list.push("Mute"),(player.supports("Unmute")||forceSupportVolume)&&list.push("Unmute"),(player.supports("ToggleMute")||forceSupportVolume)&&list.push("ToggleMute"),(player.supports("SetVolume")||forceSupportVolume)&&list.push("SetVolume"),player.supports("PictureInPicture")&&list.push("PictureInPicture"),player.supports("AutoPictureInPicture")&&list.push("AutoPictureInPicture"),player.supports("SetBrightness")&&list.push("SetBrightness"),player.supports("SetAspectRatio")&&list.push("SetAspectRatio"),player.supports("SetSubtitleOffset")&&list.push("SetSubtitleOffset"),player.supports("SetSubtitleAppearance")&&list.push("SetSubtitleAppearance"),player.supports("SetPlaybackRate"))&&list.push("SetPlaybackRate"),list):(forceSupportVolume=this.getPlayerInfo(player))?forceSupportVolume.supportedCommands:[]},PlaybackManager.prototype.toggleRepeatMode=function(player){switch(player=player||this._currentPlayer,this.getRepeatMode(player)){case"RepeatNone":this.setRepeatMode("RepeatAll",player);break;case"RepeatAll":this.setRepeatMode("RepeatOne",player);break;case"RepeatOne":this.setRepeatMode("RepeatNone",player)}},PlaybackManager.prototype.setRepeatMode=function(value,player){if((player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player))return player.setRepeatMode(value);this._playQueueManager.setRepeatMode(value),_events.default.trigger(player,"repeatmodechange")},PlaybackManager.prototype.getRepeatMode=function(player){return((player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player)?player:this._playQueueManager).getRepeatMode()},PlaybackManager.prototype.setSleepTimer=function(options,player){var playerData;return(player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player)?player.setSleepTimer(options):((playerData=getPlayerData(player)).sleepTimerMode=options.sleepTimerMode||"None",(options=options.sleepTimerEndTime)&&"string"==typeof options&&(options=_datetime.default.parseISO8601Date(options)),playerData.sleepTimerEndTime=options,_events.default.trigger(player,"sleeptimerchange"),Promise.resolve())},PlaybackManager.prototype.onSleepTimerFired=function(player){player=player||this._currentPlayer,this.setSleepTimer({sleepTimerMode:"None"},player),this.pause(player)},PlaybackManager.prototype.getSleepTimerMode=function(player){return(player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player)?player.getSleepTimerMode():getPlayerData(player).sleepTimerMode||"None"},PlaybackManager.prototype.getSleepTimerEndTime=function(player){return(player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player)?player.getSleepTimerEndTime():getPlayerData(player).sleepTimerEndTime},PlaybackManager.prototype.toggleShuffle=function(player){player=player||this._currentPlayer,this.setShuffle(!this.getShuffle(player),player)},PlaybackManager.prototype.setShuffle=function(value,player){if((player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player))return player.setShuffle(value);this._playQueueManager.setShuffle(value),_events.default.trigger(player,"shufflechange")},PlaybackManager.prototype.getShuffle=function(player){return((player=player||this._currentPlayer)&&!enableLocalPlaylistManagement(player)?player:this._playQueueManager).getShuffle()},PlaybackManager.prototype.setSubtitleOffset=function(value,player){(player=player||this._currentPlayer).setSubtitleOffset&&(player.setSubtitleOffset(value),_events.default.trigger(player,"subtitleoffsetchange"))},PlaybackManager.prototype.incrementSubtitleOffset=function(value,player){(player=player||this._currentPlayer).incrementSubtitleOffset&&(player.incrementSubtitleOffset(value),_events.default.trigger(player,"subtitleoffsetchange"))},PlaybackManager.prototype.getSubtitleOffset=function(player){return(player=player||this._currentPlayer).getSubtitleOffset?player.getSubtitleOffset():0},PlaybackManager.prototype.getPlaybackRate=function(player){return(player=player||this._currentPlayer).getPlaybackRate?player.getPlaybackRate():1},PlaybackManager.prototype.setPlaybackRate=function(value,player){(player=player||this._currentPlayer).setPlaybackRate&&player.setPlaybackRate(value)},PlaybackManager.prototype.trySetActiveDeviceName=function(name){name=normalizeName(name);var instance=this;instance.getTargets().then(function(result){result=result.filter(function(p){return normalizeName(p.name)===name})[0];result&&instance.trySetActivePlayer(result.playerName,result)})},PlaybackManager.prototype.displayContent=function(options,player){(player=player||this._currentPlayer)&&player.displayContent&&player.displayContent(options)},PlaybackManager.prototype.beginPlayerUpdates=function(player){player.beginPlayerUpdates&&player.beginPlayerUpdates()},PlaybackManager.prototype.endPlayerUpdates=function(player){player.endPlayerUpdates&&player.endPlayerUpdates()},PlaybackManager.prototype.setDefaultPlayerActive=function(){this.setActivePlayer("localplayer")},PlaybackManager.prototype.removeActivePlayer=function(name){var playerInfo=this.getPlayerInfo();playerInfo&&playerInfo.playerName===name&&this.setDefaultPlayerActive()},PlaybackManager.prototype.removeActiveTarget=function(id){var playerInfo=this.getPlayerInfo();playerInfo&&playerInfo.id===id&&this.setDefaultPlayerActive()},PlaybackManager.prototype.sendCommand=function(cmd,player){switch(console.log("MediaController received command: "+cmd.Name),cmd.Name){case"SetPlaybackRate":this.setPlaybackRate(parseFloat(cmd.Arguments.PlaybackRate),player);break;case"SetSubtitleOffset":this.setSubtitleOffset(parseFloat(cmd.Arguments.SubtitleOffset),player);break;case"IncrementSubtitleOffset":this.incrementSubtitleOffset(parseFloat(cmd.Arguments.Increment),player);break;case"TriggerTranscodingFallback":this.triggerTranscodingFallback(player);break;case"SetRepeatMode":this.setRepeatMode(cmd.Arguments.RepeatMode,player);break;case"SetSleepTimer":this.setSleepTimer(cmd.Arguments||{},player);break;case"SetShuffle":var shuffle=cmd.Arguments.Shuffle;this.setShuffle(!0===shuffle||"true"===(shuffle||"").toString().toLowerCase(),player);break;case"VolumeUp":this.volumeUp(player);break;case"VolumeDown":this.volumeDown(player);break;case"Mute":this.setMute(!0,player);break;case"Unmute":this.setMute(!1,player);break;case"ToggleMute":this.toggleMute(player);break;case"SetVolume":this.setVolume(cmd.Arguments.Volume,player);break;case"SetAspectRatio":this.setAspectRatio(cmd.Arguments.AspectRatio,player);break;case"SetBrightness":this.setBrightness(cmd.Arguments.Brightness,player);break;case"SetAudioStreamIndex":this.setAudioStreamIndex(parseInt(cmd.Arguments.Index),player);break;case"SetSubtitleStreamIndex":this.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index),player,cmd.Arguments.RefreshMediaSource);break;case"SetMaxStreamingBitrate":break;case"ToggleFullscreen":this.toggleFullscreen(player);break;default:player.sendCommand&&player.sendCommand(cmd)}};_exports.default=new PlaybackManager}); \ No newline at end of file diff --git a/modules/common/playback/playbackvalidation.js b/modules/common/playback/playbackvalidation.js new file mode 100644 index 0000000..a19e0d3 --- /dev/null +++ b/modules/common/playback/playbackvalidation.js @@ -0,0 +1 @@ +define(["exports","./playbackmanager.js","./../../emby-apiclient/apiclient.js"],function(_exports,_playbackmanager,_apiclient){function validatePlayback(options){var feature="playback";if("playback"===(feature=!options.item||"TvChannel"!==options.item.Type&&"Recording"!==options.item.Type?feature:"livetv")){var player=_playbackmanager.default.getCurrentPlayer();if(player&&!player.isLocalPlayer)return Promise.resolve()}return function(feature,options){return Emby.importModule("./modules/registrationservices/registrationservices.js").then(function(registrationServices){return registrationServices.validateFeature(feature,options)})}(feature,options).then(function(result){result&&result.enableTimeLimit&&(stopAutoStopTimer(),autoStopTimeout=setTimeout(onAutoStopTimeout,63e3))})}var autoStopTimeout;function onAutoStopTimeout(){stopAutoStopTimer(),_playbackmanager.default.stop()}function stopAutoStopTimer(){autoStopTimeout&&(clearTimeout(autoStopTimeout),autoStopTimeout=null)}function PlaybackValidation(){this.name="Playback validation",this.type="preplayintercept",this.id="playbackvalidation",this.order=-1}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,PlaybackValidation.prototype.intercept=function(options){return!options.fullscreen||options.item&&_apiclient.default.isLocalItem(options.item)?Promise.resolve():validatePlayback(options)};_exports.default=PlaybackValidation}); \ No newline at end of file diff --git a/modules/common/playback/playersettingsmenu.js b/modules/common/playback/playersettingsmenu.js new file mode 100644 index 0000000..1bd5437 --- /dev/null +++ b/modules/common/playback/playersettingsmenu.js @@ -0,0 +1 @@ +define(["exports","./../globalize.js","./playbackmanager.js","./../../emby-apiclient/connectionmanager.js","./../../actionsheet/actionsheet.js","./../qualityoptions.js","./../dataformatter.js"],function(_exports,_globalize,_playbackmanager,_connectionmanager,_actionsheet,_qualityoptions,_dataformatter){function showSpeedMenu(options){for(var menuItems=[],player=options.player,currentValue=_playbackmanager.default.getPlaybackRate(player),values=[.25,.5,.75,1,1.25,1.5,1.75,2],i=0,length=values.length;ilimit&&(options.length=limit),{Items:options,TotalRecordCount:total}},PlayQueueManager.prototype.getPlaylist=function(){return this._playlist.slice(0)},PlayQueueManager.prototype.setPlaylist=function(items){for(var i=0,length=(items=items.slice(0)).length;i=playlist.length)throw new Error("newIndex out of bounds");return from=oldIndex,playlist.splice(newIndex,0,playlist.splice(from,1)[0]),this._playlist=playlist,this.refreshPlaylistIndex(),{result:"moved",playlistItemId:playlistItemId,oldIndex:oldIndex,newIndex:newIndex}},PlayQueueManager.prototype.reset=function(){console.log("PlayQueueManager reset"),this._playlist=[],this._currentPlaylistItemId=null,this._currentPlaylistIndex=-1,this._repeatMode="RepeatNone",this._shuffle=!1},PlayQueueManager.prototype.setRepeatMode=function(value){this._repeatMode=value},PlayQueueManager.prototype.getRepeatMode=function(){return this._repeatMode},PlayQueueManager.prototype.setShuffle=function(value){if(this._shuffle!==value){this._shuffle=value;var currentPlaylistItemId=this.getCurrentPlaylistItemId(),items=this._playlist;if(value){!function(items){for(var startValue=0,i=0,length=items.length;i
")||_globalize.default.translate("DefaultErrorMessage"),response:response,centerText:msg.length<2}}function getErrorInfo(response,options){var _response$headers,errorCode=response.errorCode||response,errorTitle=response.errorTitle;switch(errorCode){case"noitems":return Promise.resolve({text:_globalize.default.translate("NoSelectedItemsSupportOperation"),response:response});case"nocommands":return Promise.resolve({text:_globalize.default.translate("NoOperationsForSelectedItems"),response:response});case"RateLimitExceeded":return Promise.resolve({title:errorTitle||_globalize.default.translate("HeaderPlaybackError"),text:_globalize.default.translate("RateLimitExceeded"),response:response});case"NoPlayableItems":case"NoCompatibleStream":case"PlaceHolder":return Promise.resolve({title:errorTitle||_globalize.default.translate("HeaderPlaybackError"),text:_globalize.default.translate("PlaybackError"+errorCode),response:response})}errorTitle||401===response.status&&(errorTitle=_globalize.default.translate("HeaderSignInError"));var msg=[];return response.json&&"application/json"===(null==(_response$headers=response.headers)?void 0:_response$headers.get("Content-Type"))?response.json().then(function(responseInfo){return responseInfo.Message&&msg.push(responseInfo.Message),responseInfo.Title&&(errorTitle=responseInfo.Title),getErrorObject(response,msg,errorTitle,options)}):response.text?response.text().then(function(responseText){return responseText&&msg.push(responseText),getErrorObject(response,msg,errorTitle,options)}):Promise.resolve(getErrorObject(response,msg,errorTitle,options))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,ResponseHelper.prototype.handleConfigurationSavedResponse=function(response){var options;return _loading.default.hide(),options=_globalize.default.translate("SettingsSaved"),Emby.importModule("./modules/toast/toast.js").then(function(toast){toast(options)}),Promise.resolve(response)},ResponseHelper.prototype.getErrorInfo=getErrorInfo,ResponseHelper.prototype.handleErrorResponse=function(response){return _loading.default.hide(),console.error(response||"Error",new Error),getErrorInfo(response).then(function(errorInfo){return showAlertAndReject(errorInfo)})};_exports.default=new ResponseHelper}); \ No newline at end of file diff --git a/modules/common/servershutdown.js b/modules/common/servershutdown.js new file mode 100644 index 0000000..fef4b28 --- /dev/null +++ b/modules/common/servershutdown.js @@ -0,0 +1 @@ +define(["exports","./dialogs/confirm.js","./globalize.js"],function(_exports,_confirm,_globalize){function formatTextWithDisruptions(text,disruptions){return text=disruptions.length?(text=(text+="\n\n")+_globalize.default.translate("FollowingActivityWillBeDisrupted")+"\n\n")+disruptions.map(function(i){return"- "+i}).join("\n"):text}function formatHtmlWithDisruptions(text,disruptions){return disruptions.length?(text=(text+="

")+_globalize.default.translate("FollowingActivityWillBeDisrupted")+"

    ")+disruptions.map(function(i){return"
  • "+i+"
  • "}).join("")+"
":null}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={confirmRestartOrShutdown:function(options){return function(options){return options=[(options=options.apiClient).getSessions({IsPlaying:!0}),options.getLiveTvRecordings({IsInProgress:!0})],Promise.all(options).then(function(responses){var sessions=responses[0],responses=responses[1].Items,list=[];return 1===sessions.length?list.push(_globalize.default.translate("OneActivePlaybackSession")):sessions.length&&list.push(_globalize.default.translate("NumActivePlaybackSessions",sessions.length)),1===responses.length?list.push(_globalize.default.translate("OneActiveRecording")):responses.length&&list.push(_globalize.default.translate("NumActiveRecordings",responses.length)),list})}(options).then(function(disruptions){return("shutdown"===options.type?function(disruptions){return(0,_confirm.default)({title:_globalize.default.translate("Shutdown"),text:formatTextWithDisruptions(_globalize.default.translate("MessageConfirmShutdown"),disruptions),html:formatHtmlWithDisruptions(_globalize.default.translate("MessageConfirmShutdown"),disruptions),confirmText:_globalize.default.translate("Shutdown"),primary:"cancel",centerText:0===disruptions.length})}:function(disruptions){return(0,_confirm.default)({title:_globalize.default.translate("Restart"),text:formatTextWithDisruptions(_globalize.default.translate("MessageConfirmRestart"),disruptions),html:formatHtmlWithDisruptions(_globalize.default.translate("MessageConfirmRestart"),disruptions),confirmText:_globalize.default.translate("Restart"),primary:"cancel",centerText:0===disruptions.length})})(disruptions)})}}}); \ No newline at end of file diff --git a/modules/common/servicelocator.js b/modules/common/servicelocator.js new file mode 100644 index 0000000..71a6b19 --- /dev/null +++ b/modules/common/servicelocator.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.iapManager=_exports.fullscreenManager=_exports.fileRepository=_exports.cameraUpload=_exports.appStorage=_exports.appLogger=_exports.appHost=_exports.apiClientFactory=void 0,_exports.initialize=function(services){services.appStorage&&(_exports.appStorage=services.appStorage);services.appHost&&(_exports.appHost=services.appHost);services.fullscreenManager&&(_exports.fullscreenManager=services.fullscreenManager);services.shell&&(_exports.shell=services.shell);services.iapManager&&(_exports.iapManager=services.iapManager);services.wakeOnLan&&(_exports.wakeOnLan=services.wakeOnLan);services.serverDiscovery&&(_exports.serverDiscovery=services.serverDiscovery);services.fileRepository&&(_exports.fileRepository=services.fileRepository);services.itemRepository&&(_exports.itemRepository=services.itemRepository);services.transferManager&&(_exports.transferManager=services.transferManager);services.userActionRepository&&(_exports.userActionRepository=services.userActionRepository);services.localSync&&(_exports.localSync=services.localSync);services.cameraUpload&&(_exports.cameraUpload=services.cameraUpload);services.apiClientFactory&&(_exports.apiClientFactory=services.apiClientFactory);services.appLogger&&(_exports.appLogger=services.appLogger)},_exports.wakeOnLan=_exports.userActionRepository=_exports.transferManager=_exports.shell=_exports.serverDiscovery=_exports.localSync=_exports.itemRepository=void 0}); \ No newline at end of file diff --git a/modules/common/strings/ar.json b/modules/common/strings/ar.json new file mode 100644 index 0000000..44b0b83 --- /dev/null +++ b/modules/common/strings/ar.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "تم تصميم إمبي لمساعدتك في إدارة مكتبة الوسائط الشخصية ، مثل مقاطع الفيديو والصور المنزلية. يرجى الاطلاع على {0} شروط الاستخدام {1}. يعد استخدام اي برنامج إمبي قبولًا لهذه الشروط.", + "MessageUnableToConnectToServer": "يتعذر علينا الاتصال بالخادم المحدد الآن. يرجى التأكد من تشغيله والمحاولة مرة أخرى.", + "EmbyIntroMessage": "مع Emby ، يمكنك بسهولة بث مقاطع الفيديو والموسيقى والصور إلى الهواتف الذكية والأجهزة اللوحية والأجهزة الأخرى من خادم Emby.", + "HeaderSignInWithConnect": "قم بتسجيل الدخول باستخدام Emby Connect", + "HeaderWelcomeToEmby": "مرحبًا بك في Emby", + "HeaderNewUsers": "مستخدمون جدد", + "HeaderPleaseSignIn": "الرجاء تسجيل الدخول", + "MessageInvalidUser": "خطأ في اسم المستخدم أو كلمة مرور. حاول مرة اخرى", + "MessageUnlockAppWithPurchaseOrSupporter": "افتح هذه الميزة من خلال عملية شراء صغيرة لمرة واحدة ، أو مع اشتراك Emby Premiere نشط.", + "MessageUnlockAppWithSupporter": "افتح هذه الميزة من خلال اشتراك Emby Premiere النشط.", + "MessageToValidateSupporter": "إذا كان لديك اشتراك Emby Premiere نشط ، فتأكد من إعداد Emby Premiere في لوحة تحكم Emby Server الخاصة بك ، والتي يمكنك الوصول إليها بالنقر فوق Emby Premiere من القائمة الرئيسية.", + "ValueSpecialEpisodeName": "خاص - {0}", + "HeaderSignIn": "تسجيل الدخول", + "Share": "مشاركة", + "Shared": "Shared", + "Info": "معلومات", + "Add": "إضافة", + "Speed": "السرعة", + "PlaybackSpeed": "Playback Speed", + "Chapters": "الفصول", + "Password": "كلمه السر", + "SavePassword": "Save Password", + "LabelPassword": "كلمه السر:", + "HeaderResetPassword": "إعادة تعيين كلمة المرور", + "Series": "مسلسل", + "Preview": "معاينة", + "Submit": "إرسال", + "Never": "أبداً", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "أعلى النتائج", + "HeaderPinSidebar": "تثبيت الشريط الجانبي", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "تشغيل الفيديو في الخلفية:", + "BackgroundVideoPlaybackHelp": "يتيح تشغيل الخلفية تشغيل الفيديو حتى عند إيقاف تشغيل الشاشة.", + "AlwaysOn": "دائماً مفعل", + "HeadphonesOrExternalSpeakersConnected": "تم توصيل سماعات الرأس أو مكبرات الصوت الخارجية", + "HeaderKeyboardAndRemote": "لوحة المفاتيح وجهاز التحكم عن بعد", + "NoSelectedItemsSupportOperation": "لم يتم تحديد أي عناصر تدعم هذه العملية.", + "NoOperationsForSelectedItems": "لا توجد عمليات متاحة للعناصر المحددة.", + "UploadOnlyOnWifi": "تحميل فقط على واي فاي", + "HeaderFoldersToUpload": "المجلدات المراد رفعها", + "LabelPasswordConfirm": "تأكيد كلمة السر:", + "HeaderMoveUpInOrder": "تحرك للاعلى بالترتيب", + "HeaderDownUpInOrder": "تحرك للاسفل بالترتيب", + "LabelUsername": "اسم المستخدم:", + "HeaderAddServer": "إضافة خادم", + "HeaderSubtitleOffset": "إزاحة الترجمة", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "إزالة من متابعة المشاهدة", + "RemoveThisTitleFromContinueWatching": "إزالة هذا العنوان من متابعة المشاهدة", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "زيادة إزاحة الترجمة", + "HeaderDecreaseSubtitleOffset": "إنقاص إزاحة الترجمة", + "Close": "إغلاق", + "HeaderSeeAll": "عرض الكل", + "HeaderOpenInNewWindow": "افتح في نافذة جديدة", + "LabelEmail": "البريد الإلكتروني:", + "LabelHost": "المضيف", + "LabelHostHelp": "192.168.1.100 أو https://myserver.com", + "LabelPort": "المنفذ:", + "Disabled": "تعطيل", + "Uninstall": "إلغاء التثبيت", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "التالي: {0}", + "HeaderNextItem": "العنصر التالي", + "HeaderPreviousItem": "العنصر السابق", + "NoTrailersMessage": "لم يتم العثور على دعايات. لإضافة دعايات ، يرجى تثبيت المكوّن الإضافي للمقاطع الدعائية من {0} كتالوج المكون الإضافي Emby {1}.", + "UninstallPluginConfirmation": "هل أنت متأكد أنك تريد إلغاء تثبيت هذه الإضافة ؟", + "HeaderUninstallPlugin": "إلفاء تثبيت الإضافة", + "AreYouStillWatching": "هل ما زلت تشاهد ؟", + "LabelCurrentPassword": "كلمة المرور الحالية:", + "LabelNewPassword": "كلمة السر الجديدة:", + "LabelNewPasswordConfirm": "تأكيد كلمة السر الجديدة:", + "HeaderRemovePassword": "إزالة كلمة السر", + "ServerUpdateNeeded": "يحتاج خادم Emby هذا إلى التحديث. لتنزيل أحدث إصدار ، يرجى زيارة {0}", + "MessageThankYouForConnectSignUp": "شكرًا لك على التسجيل في Emby Connect. سيتم إرسال بريد إلكتروني إلى عنوانك مع تعليمات حول كيفية تأكيد حسابك الجديد. يرجى تأكيد الحساب ثم العودة هنا لتسجيل الدخول.", + "MessageThankYouForConnectSignUpNoValidation": "شكرًا لك على التسجيل في Emby Connect! سيُطلب منك الآن تسجيل الدخول باستخدام معلومات Emby Connect الخاصة بك.", + "ErrorMessagePasswordNotMatchConfirm": "يجب أن تتطابق كلمة المرور وتأكيد كلمة المرور.", + "ErrorMessageUsernameInUse": "اسم المستخدم قيد الاستخدام بالفعل. يرجى اختيار اسم جديد وحاول مرة أخرى.", + "ErrorMessageEmailInUse": "عنوان البريد الإلكتروني مستخدم من قبل. يرجى إدخال عنوان بريد إلكتروني جديد والمحاولة مرة أخرى ، أو استخدام ميزة نسيت كلمة المرور.", + "HeaderUpcomingOnTV": "القادمة على شاشة التلفزيون", + "HeaderOtherShowings": "عروض أخرى", + "Showings": "العروض", + "HeaderConnectToServer": "اتصل بالخادم", + "ConnectToServerManually": "اتصل بالخادم يدوياً", + "LabelEnterConnectUserNameHelp": "هذا هو أسم حسابك أو بريدك الخاص بـ Emby Online", + "HeaderSignInError": "خطأ في تسجيل الدخول", + "HeaderManualLogin": "تسديل الدخول يدوياً", + "PasswordResetConfirmation": "هل أنت متأكد أنك ترغب في إعادة تعيين كلمة المرور؟", + "ContactAdminToResetPassword": "برجاء التواصل مع مسؤول النظام لإعادة تعيين كلمة المرور الخاصة بك.", + "ForgotPasswordInNetworkRequired": "يرجى المحاولة مرة أخرى داخل شبكتك المنزلية لبدء عملية إعادة تعيين كلمة المرور.", + "ForgotPasswordFileCreated": "تم إنشاء الملف التالي على الخادم الخاص بك ويحتوي على إرشادات حول كيفية المتابعة:", + "ForgotPasswordFileExpiration": "ستنتهي صلاحية رقم التعريف الشخصي في {0}.", + "InvalidForgotPasswordPin": "تم إدخال رقم تعريفي غير صالح أو منتهي الصلاحية. حاول مرة اخرى.", + "PasswordResetForUsers": "تمت إزالة كلمات المرور للمستخدمين التاليين. لتسجيل الدخول ، قم بتسجيل الدخول بكلمة مرور فارغة.", + "HeaderForgotPassword": "نسيت كلمة السّر", + "ForgotPasswordUsernameHelp": "أدخل اسم المستخدم الخاص بك ، إذا كنت تتذكره.", + "HeaderPasswordReset": "إعادة تعيين كلمة المرور", + "AttributeNew": "جديد", + "Done": "تم", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "التميّز", + "LabelPinCode": "الرمز السري:", + "LabelLocalNetworkPinCode": "الرقم السري للشبكة المحلية:", + "LabelLocalNetworkPasswordMode": "وضع تسجيل الدخول إلى الشبكة المحلية:", + "RequirePasswordInLocalNetwork": "طلب كلمة مرور على الشبكة المحلية", + "NoPasswordInLocalNetwork": "لا تطلب كلمة مرور على الشبكة المحلية", + "PinCodeInLocalNetwork": "السماح برقم سري رقمي على الشبكة المحلية", + "LocalNetworkPasswordModeHelp": "حدد طريقة تسجيل الدخول للأجهزة الموجودة على نفس الشبكة المحلية مثل خادم Emby الخاص بك.", + "HeaderLocalNetworkAccess": "الوصول إلى الشبكة المحلية", + "Live": "مباشر", + "Reset": "إعادة تعيين", + "Repeat": "تكرار", + "Track": "Track", + "Tracks": "المسارات", + "HeaderCameraUpload": "رفع ملفات الكاميرا", + "TrackCount": "{0} المسارات", + "ItemCount": "{0} العناصر", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "أحدث الموسيقى", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "أحدث مقاطع الفيديو التي تم تنزيلها", + "HeaderRecentlyPlayed": "المشغلة مؤخراً", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "المشغلة بشكل متكرر", + "HeaderMoreLikeThis": "المزيد مثل هذا", + "HeaderMoreLikeThisOnLiveTV": "المزيد مثل هذا على مباشر TV", + "OriginalAirDateValue": "تاريخ البث الأصلي: {0}", + "EndsAtValue": "ينتهي في {0}", + "Date": "Date", + "AirDate": "تاريخ العرض", + "Played": "مشغل", + "Daily": "يومي", + "Weekly": "Weekly", + "RequireHashMatch": "تتطلب مطابقة تجزئة", + "RequireHashMatchHelp": "سيؤدي طلب مطابقة تجزئة إلى تصفية الترجمات المصاحبة لتضمين فقط تلك التي تم اختبارها مع ملف الفيديو الخاص بك. سيؤدي إلغاء تحديد هذا إلى زيادة عدد الترجمات المتطابقة ، ولكنه سيزيد أيضًا من فرص نص الترجمة الخاطئة أو غير الصحيحة.", + "SearchForForcedSubtitlesOnly": "الترجمات المفروضة فقط", + "SearchForForcedSubtitlesOnlyHelp": "سيؤدي طلب الترجمات المفروضة إلى قصر النتائج على الترجمة المصنفة على أنها لغة أجنبية.", + "LastEpisodeDateAdded": "تمت إضافة تاريخ الحلقة الأخيرة", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "حالة التشغيل:", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "الصوت", + "Video": "فيديو", + "Subtitle": "الترجمة", + "Image": "صورة", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "ترميز الصوت:", + "LabelAudioLanguage": "لغة الصوت:", + "LabelSubtitleLanguage": "لغة الترجمة:", + "LabelVideoCodec": "ترميز الفيديو:", + "LabelSubtitleCodec": "ترميز الترجمة:", + "LabelParentalRating": "تصنيف الوالدين:", + "BecauseYouLikeValue": "لأنك أحببت {0}", + "BecauseYouWatchedValue": "لأنك شاهدت {0}", + "DirectedByValue": "إخراج {0}", + "StarringValue": "بطولة {0}", + "Invitations": "دعوات", + "ActorAsRole": "باسم {0}", + "ButtonOk": "حسنا", + "GroupItemsIntoCollections": "تجميع العناصر في مجموعات", + "GroupItemsIntoCollectionsHelp": "عناصر المجموعة استنادًا إلى المجموعات التي تمت إضافتها إليها. قد يؤدي تمكين عوامل تصفية معينة أو أوامر الفرز إلى تعطيل هذا تلقائيًا.", + "GroupItemsIntoTags": "تجميع العناصر في علامات", + "GroupItemsIntoTagsHelp": "تجميع العناصر بناءً على العلامات التي تمت إضافتها إليها. قد يؤدي تمكين بعض الفلاتر أو أوامر الفرز إلى تعطيل هذا تلقائيًا.", + "User": "User", + "Access": "Access", + "Users": "المستخدمين", + "Library": "المكتبة", + "Devices": "الأجهزة", + "Cancel": "الغاء", + "Restart": "إعادة التشغيل", + "Shutdown": "إيقاف التشغيل", + "Logs": "السجلات", + "Visibility": "Visibility", + "Notifications": "إشعارات", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "إضافات", + "Systems": "أنظمة", + "Server": "الخادم", + "Dashboard": "لوحة القيادة", + "PlayOnAnotherDevice": "التشغيل على جهاز آخر", + "HeaderConnectionHelp": "مساعدة الاتصال", + "AccessRestrictedTryAgainLater": "الوصول مقيد حاليا. الرجاء معاودة المحاولة في وقت لاحق.", + "ButtonGotIt": "فهمت", + "RememberMe": "تذكرني", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "إدارة خادم Emby", + "ShutdownServer": "إيقاف تشغيل خادم Emby", + "RestartServer": "إعادة تشغيل خادم Emby", + "RecordingCancelled": "تم إلغاء التسجيل.", + "SeriesCancelled": "تم إلغاء المسلسل.", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "تمت جدولة التسجيل.", + "SeriesRecordingScheduled": "تمت جدولة تسجيل المسلسل.", + "HeaderNewRecording": "تسجيل جديد", + "HeaderWakeServer": "إيقاظ الخادم", + "AttemptingWakeServer": "محاولة إيقاظ الخادم. ارجوك انتظر...", + "WakeServerSuccess": "نجاح!", + "HeaderCustomizeHomeScreen": "تخصيص الشاشة الرئيسية", + "WakeServerError": "تم إرسال حزم Wake On LAN إلى جهاز الخادم الخاص بك ، ولكن يتعذر علينا الاتصال بخادم Emby الخاص بك. قد يحتاج جهازك إلى مزيد من الوقت للاستيقاظ ، أو ربما لا يعمل خادم Emby بنشاط على الجهاز.", + "Days": "أيام", + "Network": "شبكة", + "Networks": "شبكات", + "SortByValue": "فرز حسب {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "ألبومات الصور", + "Photos": "صور", + "HeaderAppearsOn": "يظهر على", + "List": "القائمة", + "HeaderRecordSeries": "تسجيل المسلسل", + "HeaderCinemaMode": "مقدمات سينمائية", + "Conversions": "محادثات", + "Downloads": "تنزيلات", + "HeaderManageDownloads": "إدارة التنزيلات", + "InternalStorage": "التخزين الداخلي", + "ExternalStorage": "تخزين خارجي", + "UploadToFollowingServers": "رفع إلى الخوادم", + "UploadingNumItems": "رفع{0} من {1}", + "DownloadNumItems": "تنزيل {0} من {1}", + "HeaderSampleRate": "معدل العينة", + "HeaderReferenceFrames": "الإطارات المرجعية", + "HeaderBitDepth": "عمق البت", + "HeaderPixelFormat": "تنسيق بكسل", + "Profile": "الملف الشخصي", + "Bitrate": "معدل البت", + "Expand": "Expand", + "Container": "حاوية", + "Format": "التنسيق", + "Path": "مسار", + "Size": "حجم", + "Resolution": "الدقة", + "HeaderCodecTag": "وسم الترميز", + "Framerate": "معدل الإطار", + "Interlaced": "متشابك", + "Anamorphic": "صورة بصرية مشوهة", + "Level": "المستوى", + "Timestamp": "الطابع الزمني", + "Language": "اللغة", + "Codec": "الترميز", + "Stream": "Stream", + "HeaderExtradata": "بيانات اضافية", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "وسائط دون اتصال", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "قم بتنزيل الوسائط على أجهزتك لاستخدامها دون اتصال بسهولة.", + "LiveTvFeatureDescription": "دفق مباشر TV إلى أي تطبيق Emby ، مع جهاز موالف تلفزيون متوافق مثبت على خادم Emby.", + "DvrFeatureDescription": "يمكنك جدولة تسجيلات البث التلفزيوني المباشر الفردية وتسجيلات المسلسل والمزيد باستخدام Emby DVR.", + "CinemaModeFeatureDescription": "تمنحك مقدمات السينما تجربة السينما الحقيقية مع عروض مختصرة للأفلام والمقدمات المخصصة قبل الميزة الرئيسية.", + "HeaderFreeApps": "تطبيقات Emby مجانية", + "FreeAppsFeatureDescription": "تمتع بالوصول المجاني إلى تطبيقات Emby لأجهزتك.", + "HeaderBecomeProjectSupporter": "أحصل على تميّز الـ Emby", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "يتطلب تشغيل الوسائط في وضع التلفزيون {0} اشتراك Emby تميّز{1} نشط.", + "FeatureRequiresEmbyPremiere": "تتطلب هذه الميزة {0} اشتراك Emby تميّز{1} نشط.", + "HeaderConvertYourRecordings": "تحويل تسجيلاتك", + "Record": "تسجيل", + "Save": "حفظ", + "Edit": "تعديل", + "HeaderSavePlaylist": "حفظ قائمة التشغيل", + "Latest": "الأحدث", + "Download": "تنزيل", + "Downloaded": "تم التنزيل", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "جارٍ التنزيل", + "Advanced": "متقدم", + "LinkedToEmbyConnect": "مرتبط بـ Emby Connect", + "Delete": "حذف", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "حذف العنصر", + "HeaderDeleteUser": "حذف المستخدم", + "DeleteItemConfirmation": "هل أنت متاكد من حذف {0}؟", + "DeleteUserConfirmation": "هل تريد بالتأكيد حذف المستخدم {0}؟", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "حذف الجهاز", + "DeleteDeviceConfirmation": "هل أنت متأكد أنك تريد حذف هذا الجهاز؟ سيظهر مرة أخرى في المرة التالية التي يسجل الدخول فيها المستخدم.", + "ConfirmDeleteItem": "سيؤدي حذف هذا العنصر إلى حذفه من كل من نظام الملفات ومكتبة الوسائط الخاصة بك.", + "FollowingFilesWillBeDeleted": "سيتم حذف الملفات والمجلدات التالية:", + "AreYouSureToContinue": "هل أنت متأكد من رغبتك في الاستمرار؟", + "Refresh": "تحديث", + "RefreshingMetadataDots": "تحديث البيانات الوصفية ...", + "ScanningLibraryFilesDots": "جارٍ فحص ملفات المكتبة ...", + "HeaderFavoritesThenByChannelNumber": "المفضلة ، ثم برقم القناة", + "HeaderAddToCollection": "أضف إلى المجموعة", + "HeaderFavoritesThenByTitle": "المفضلة ، ثم حسب العنوان", + "HeaderFavoritesThenByDefault": "المفضلة ، ثم حسب ترتيب القناة الافتراضي", + "HeaderDefaultChannelOrder": "ترتيب القناة الافتراضي", + "HeaderAddToFavorites": "اضافة الى المفضلة", + "HeaderRemoveFromFavorites": "إزالة من المفضلة", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "مجموعة جديدة", + "HeaderNewPlaylist": "قائمة تشغيل جديدة", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "إنشاء", + "HeaderAddedToPlaylist": "إضافة الى قائمة التشغيل", + "HeaderAddedToCollection": "إضافة الى مجموعة", + "OneItemAddedTo": "تم إضافة عنصر الى \"{0}\".", + "ItemsAddedTo": "{0} عناصر تم إضافتها الى \"{1}\".", + "HeaderAddedToPlayQueue": "تم الإضافة الى قائمة أنتظار التشغيل", + "HeaderPlayingNext": "يعرض تالياْ", + "Help": "مساعدة", + "HeaderGetHelp": "أطلب مساعدة", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "سطح المكتب", + "Mobile": "موبايل / تابلت", + "Navigation": "التنقل", + "HeaderVideoPlayback": "تشغيل الفيديو", + "TV": "تلفاز", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "مواسم", + "OneTrack": "مسار 1", + "OneSeason": "الموسم 1", + "Libraries": "مكتبات", + "NumberSeasonsValue": "{0} المواسم", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "لغة العرض", + "LabelDisplayLanguageHelp": "ترجمة Emby هو مشروع مستمر.", + "LearnHowYouCanContribute": "تعلم كيف يمكنك المساهمة.", + "NewCollectionHelp": "تتيح لك المجموعات إنشاء مجموعات مخصصة من الأفلام ومحتويات المكتبة الأخرى.", + "SearchForCollectionInternetMetadata": "ابحث في الإنترنت عن الأعمال الفنية والبيانات الوصفية", + "DisplayMissingEpisodesWithinSeasons": "عرض الحلقات المفقودة في المواسم", + "DisplayMissingEpisodesWithinSeasonsHelp": "يجب تمكين هذا أيضًا لمكتبات التلفزيون في إعداد خادم Emby .", + "EnableThemeSongs": "تفعيل أغنية الشارة", + "EnableBackdrops": "تفعيل الخلفيات", + "EnableThemeSongsHelp": "عند التفعيل، فإن أغنية الشارة ستشغل في الخلفية عند تصفح المكتبة.", + "EnableBackdropsHelp": "في حالة التمكين ، سيتم عرض الخلفيات في خلفية بعض الصفحات أثناء تصفح المكتبة.", + "EnableThemeVideos": "تمكين مقاطع الفيديو ذات الشارة", + "EnableThemeVideosHelp": "في حالة التمكين ، سيتم تشغيل مقاطع الفيديو ذات الشارات في الخلفية أثناء تصفح المكتبة.", + "RunAtStartup": "تشغيل عند بدء التشغيل", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "حافظة الشاشة:", + "LabelSoundEffects": "مؤثرات صوتية:", + "LabelName": "الاسم:", + "NewCollectionNameExample": "مثال: مجموعة Star Wars", + "MessageItemsAdded": "تمت إضافة عناصر.", + "OptionNew": "جديد...", + "LabelPlaylist": "قائمة التشغيل:", + "AddToPlaylist": "أضف إلى قائمة التشغيل", + "HeaderAddToPlaylist": "أضف إلى قائمة التشغيل", + "Subtitles": "ترجمات", + "LabelTheme": "موضوع", + "LabelSettingsTheme": "إعدادات الموضوع:", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "إبحث عن ترجمات", + "LabelLanguage": "اللغة:", + "Search": "بحث", + "NoSubtitleSearchResultsFound": "لم يتم العثور على نتائج. هل قمت بإعداد{0} تنزيل الترجمة {1}؟", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "ملف", + "Exit": "خروج", + "Sleep": "سكون", + "Setup": "يثبت", + "MessageAreYouSureDeleteSubtitles": "هل أنت متأكد أنك تريد حذف ملف الترجمة هذا؟", + "ConfirmDeletion": "تأكيد الحذف", + "MySubtitles": "ترجماتي", + "MessageDownloadQueued": "أدرج التنزيل إلى فائمة الإنتظار", + "HeaderEditSubtitles": "تعديل الترجمة", + "UnlockGuide": "دليل فك القفل", + "HeaderRefreshMetadata": "تحديث البيانات الوصفية", + "HeaderRefreshAllMetadata": "تحديث كافة البيانات الوصفية", + "ReplaceExistingImages": "استبدال الصور الموجودة", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "استبدل جميع البيانات الوصفية", + "SearchForMissingMetadata": "ابحث عن البيانات الوصفية المفقودة", + "LabelRefreshMode": "وضع التحديث:", + "NoItemsFound": "لم يتم العثور على العناصر.", + "HeaderSaySomethingLike": "قل شيئًا مثل ...", + "ButtonTryAgain": "حاول مجدداً", + "HeaderYouSaid": "أنت قلت...", + "MessageWeDidntRecognizeCommand": "عذرًا ، لم نتعرف على هذا الأمر.", + "MessageIfYouBlockedVoice": "إذا رفضت الوصول الصوتي إلى التطبيق ، فستحتاج إلى إعادة الإعداد قبل إعادة المحاولة.", + "ValueDiscNumber": "القرص {0}", + "Unrated": "غير مصنف", + "Favorite": "المفضلة", + "Like": "أعجبني", + "Dislike": "لم يعجبني", + "RefreshDialogHelp": "يتم تحديث البيانات الوصفية بناءً على الإعدادات وخدمات الإنترنت التي تم تمكينها في لوحة معلومات خادم Emby .", + "Open": "إفتح", + "Play": "تشغيل", + "Pause": "إيقاف مؤقت", + "HeaderPlayQueue": "شغل قائمة الإنتظار", + "HeaderAddToPlayQueue": "أُضيف للتشغيل في قائمة الإنتظار.", + "Shuffle": "خلط", + "Identify": "تحديد", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "تعديل البيانات الوصفية", + "Convert": "تحويل", + "Resume": "استئنف", + "HeaderInstantMix": "مزيج فوري", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "تشغيل الكل", + "PictureInPicture": "صورة في صورة", + "Fullscreen": "شاشة كاملة", + "ExitFullscreen": "الخروج من وضع ملئ للشاشة", + "Rewind": "الترجيع", + "FastForward": "التقديم السريع", + "Remove": "إزالة", + "Rename": "إعادة التسمية", + "Queue": "قائمة الإنتظار", + "QueueAllFromHere": "قائمة إنتظار للكل هنا", + "PlayAllFromHere": "تشغيل الكل هنا", + "PlayFromBeginning": "تشغيل من البداية", + "FromBeginning": "From Beginning", + "ResumeAt": "استئناف من {0}", + "HeaderRemoveFromPlaylist": "إزالة من قائمة التشغيل", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "إزالة من المجموعة", + "Sort": "فرز", + "Trailer": "عرض مختصر لفيلم", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "وضع علامة تم تشغيله", + "HeaderMarkUnplayed": "وضع علامة غير مشغل", + "HeaderGroupVersions": "إصدارات المجموعة", + "PleaseSelectTwoItems": "يرجى تحديد عنصرين على الأقل.", + "HeaderConfirmRecordingCancellation": "تأكيد إلغاء التسجيل", + "MessageConfirmRecordingCancellation": "هل تريد إلغاء التسجيل؟", + "Album": "ألبوم", + "AlbumArtist": "ألبوم الفنان", + "Error": "خطأ", + "VoiceInput": "مدخل الصوت", + "LabelContentType": "نوع المحتوى:", + "LabelPath": "مسار:", + "Playlists": "قوائم التشغيل", + "LabelTitle": "عنوان:", + "LabelOriginalTitle": "العنوان الأصلي:", + "LabelSortTitle": "فرز العنوان:", + "LabelDateAdded": "تاريخ الإضافة:", + "DateAdded": "تاريخ الإضافة:", + "DateModified": "Date Modified", + "DatePlayed": "تاريخ التشغيل", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "قم بإعداد كيفية تحديد التاريخ المضاف في لوحة معلومات خادم Emby ضمن إعدادات المكتبة", + "LabelStatus": "الحالة:", + "LabelArtistsHelp": "فصل التعداد بإستخدام ;", + "HeaderAlbumArtists": "فناني الألبوم", + "LabelAlbumArtists": "فنانو الألبوم:", + "LabelAlbum": "الألبوم:", + "Artist": "فنان", + "Artists": "فنانين", + "ImdbRating": "تصنيف IMDb", + "CommunityRating": "تصنيف المجتمع", + "LabelCommunityRating": "تصنيف المجتمع:", + "LabelCriticRating": "تصنيف النقاد:", + "CriticRating": "تصنيف النقاد", + "LabelWebsite": "موقع الكتروني:", + "Tagline": "Tagline", + "LabelOverview": "نظرة عامة:", + "LabelShortOverview": "نظرة عامة قصيرة:", + "LabelReleaseDate": "تاريخ الإصدار:", + "LabelPlaceOfBirth": "مكان الولادة:", + "Aired": "بثت", + "LabelAirDays": "أيام البث:", + "LabelAirTime": "وقت البث:", + "LabelRuntimeMinutes": "مدة التشغيل (بالدقائق):", + "LabelCustomRating": "تصنيف مخصص:", + "LabelOriginalAspectRatio": "نسبة العرض إلى الارتفاع الأصلية:", + "Label3DFormat": "تنسيق ثلاثي الأبعاد:", + "FormatValue": "التنسيق: {0}", + "DownloadsValue": "التنزيلات: {0}", + "HashMatch": "تطابق التجزئة", + "EnableExternalVideoPlayers": "تمكين مشغلات الفيديو الخارجية", + "EnableExternalVideoPlayersHelp": "سيتم عرض قائمة مشغل خارجي عند بدء تشغيل الفيديو.", + "HeaderSpecialEpisodeInfo": "معلومات الحلقة الخاصة", + "LabelAirsDuringSeason": "البث خلال الموسم:", + "LabelAirsAfterSeason": "أطلق بعد الموسم:", + "LabelAirsBeforeEpisode": "أطلق قبل الحلقة:", + "HeaderExternalIds": "المعرفات الخارجية:", + "HeaderDisplaySettings": "اعدادات العرض", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "ترتيب العرض:", + "LabelFileOrder": "File order", + "Display": "عرض", + "Countries": "بلدان", + "Genres": "الأنواع", + "Studios": "استوديوهات", + "Tags": "وسوم", + "Links": "الروابط", + "Movie": "فلم", + "Program": "Program", + "Channel": "Channel", + "Episode": "حلقة", + "Season": "موسم", + "HeaderMetadataSettings": "إعدادات البيانات الوصفية", + "People": "اشخاص", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "لغة تنزيل البيانات الوصفية المفضلة:", + "LabelImageDownloadLanguage": "لغة تنزيل الصورة المفضلة:", + "LabelLockItemToPreventChanges": "قفل هذا العنصر لمنع التغييرات المستقبلية", + "LockThisField": "قم بقفل هذا الحقل لمنع التغييرات المستقبلية عند تحديث البيانات الوصفية", + "MessageLeaveEmptyToInherit": "اتركه فارغًا لوراثة الإعدادات من عنصر أصلي ، أو القيمة الافتراضية العامة.", + "LabelCountry": "بلد:", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} المعرف:", + "LabelBirthYear": "سنة الميلاد:", + "LabelBirthDate": "تاريخ الميلاد:", + "LabelDeathDate": "تاريخ الوفاة:", + "LabelEndDate": "تاريخ الانتهاء:", + "LabelSeasonNumber": "رقم الموسم:", + "LabelEpisodeNumber": "رقم الحلقة:", + "LabelTrackNumber": "رقم المقطع", + "LabelNumber": "رقم:", + "LabelDiscNumber": "رقم القرص:", + "LabelParentNumber": "رقم الوالدين:", + "SortName": "اسم الترتيب", + "OriginalTitle": "Original Title", + "ReleaseDate": "تاريخ الإصدار", + "Continuing": "مستمر", + "Ended": "انتهى", + "HeaderEnabledFields": "تمكين الحقول", + "HeaderEnabledFieldsHelp": "قم بإلغاء تحديد حقل لقفله ومنع تغيير بياناته.", + "Backdrops": "الخلفيات", + "Images": "صور", + "Runtime": "مدة العرض", + "ProductionLocations": "مواقع الإنتاج", + "BirthLocation": "مكان الميلاد", + "ParentalRating": "التقييم الأبوي", + "PlayCount": "مرات التشغيل", + "Name": "الاسم", + "Overview": "نظرة عامة", + "LabelType": "النوع:", + "LabelPersonRole": "دور", + "LabelPersonRoleHelp": "مثال: سائق شاحنة الآيس كريم", + "Actor": "الممثل", + "Composers": "الملحنون", + "Composer": "الملحن", + "Director": "المخرج", + "GuestStar": "ضيف الشرف", + "Producer": "المنتج", + "Writer": "الكاتب", + "MessageNoSyncJobsFound": "لم يتم العثور على تنزيلات. قم بإنشاء وظائف التنزيل باستخدام أزرار التنزيل الموجودة في التطبيق.", + "MessageNoDownloadsFound": "ليست هناك تنزيلات بلا إنترنت. قم بتنزيل الوسائط للاستخدام في وضع عدم الاتصال عن طريق النقر فوق تنزيل عبر التطبيق.", + "InstallingPackage": "يتم التثبيت {0}", + "PackageInstallCompleted": "تم التثبيت {0}.", + "PackageInstallFailed": "فشل التثبيت {0}.", + "PackageInstallCancelled": "تم إلغاء التثبيت {0}.", + "SeriesYearToPresent": "{0} - الحاضر", + "OneDevice": "1 جهاز", + "DeviceCountValue": "{0} الأجهزة", + "OneLog": "1 سجل", + "LogCountValue": "{0} السجلات", + "OneVote": "1 تصويت", + "VoteCountValue": "{0} الأصوات", + "OneLike": "1 إعجاب", + "LikeCountValue": "{0} الإعجابات", + "OneUser": "1 مستخدم", + "UserCountValue": "{0} المستخدمون", + "OneLibrary": "1 مكتبة", + "LibraryCountValue": "{0} المكتبات", + "ValueOneItem": "1 عنصر", + "ValueOneEpisode": "1 حلقة", + "ValueEpisodeCount": "{0} الحلقات", + "Albums": "الألبومات", + "Song": "أغنية", + "Songs": "الأغاني", + "Authors": "الناشرين", + "Books": "الكتب", + "AudioBooks": "كتب صوتية", + "HeaderAudioBooks": "كتب صوتية", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "أدخل معيار بحث واحد أو أكثر. إزالة المعايير لزيادة نتائج البحث.", + "PleaseEnterNameOrId": "يرجى إدخال اسم أو معرف خارجي.", + "MessageItemSaved": "تم حفظ العنصر.", + "SearchResults": "نتائح البحث", + "ServerNameIsRestarting": "خادم Emby - تتم إعادة تشغيل {0}.", + "ServerNameIsShuttingDown": "خادم Emby - يتم إيقاف التشغيل{0}.", + "HeaderDeleteItems": "حذف العناصر", + "ConfirmDeleteItems": "سيؤدي حذف هذه العناصر إلى حذفها من كل من نظام الملفات ومكتبة الوسائط الخاصة بك.", + "PleaseRestartServerName": "يرجى إعادة تشغيل خادم Emby - {0}.", + "ConvertingDots": "جارِ التحويل", + "LabelSyncNoTargetsHelp": "يبدو أنه ليس لديك حاليًا أي تطبيقات تدعم التنزيل في وضع عدم الاتصال.", + "DownloadingDots": "جارٍ التنزيل", + "LearnMore": "إعرف المزيد", + "LabelBitrateMbps": "معدّل البت (بالميغابت):", + "ConvertUnwatchedVideosOnly": "تحويل مقاطع الفيديو غير المشاهدة فقط", + "SyncUnwatchedVideosOnly": "تنزيل مقاطع الفيديو غير المشاهدة فقط", + "ConvertUnwatchedVideosOnlyHelp": "سيتم تحويل مقاطع الفيديو غير المشاهدة فقط.", + "SyncUnwatchedVideosOnlyHelp": "سيتم تنزيل مقاطع الفيديو غير المشاهدة فقط ، وستتم إزالة مقاطع الفيديو التي تمت مشاهدتها من الجهاز.", + "AutomaticallySyncNewContent": "تنزيل المحتوى جديد تلقائيًا", + "AutomaticallySyncNewContentHelp": "سيتم تنزيل المحتوى الجديد المضاف إلى هذا المجلد تلقائيًا على الجهاز.", + "AutomaticallyConvertNewContent": "تحويل المحتوى الجديد تلقائيًا", + "AutomaticallyConvertNewContentHelp": "سيتم تحويل المحتوى الجديد المضاف إلى هذا المجلد تلقائيًا.", + "LabelItemLimit": "حد العنصر:", + "ConvertItemLimitHelp": "اختياري. قم بتعيين حد لعدد العناصر التي سيتم تحويلها.", + "DownloadItemLimitHelp": "اختياري. قم بتعيين حد لعدد العناصر التي سيتم تنزيلها.", + "PleaseSelectDeviceToSyncTo": "يرجى تحديد جهاز للتنزيل.", + "Screenshots": "لقطات الشاشة", + "MoveRight": "انتقل يميناً", + "MoveLeft": "انتقل يساراً", + "HeaderUploadNewImage": "تحميل صورة جديدة", + "HeaderDeleteImage": "حذف صورة", + "ConfirmDeleteImage": "حذف صورة؟", + "HeaderEditImages": "تعديل الصور", + "Settings": "اعدادات", + "ShowIndicatorsFor": "عرض مؤشرات لـ:", + "Episodes": "الحلقات", + "Programs": "البرامج", + "HeaderCastCrew": "الممثلين وطاقم العمل", + "DvrSubscriptionRequired": "يتطلب Emby Live TV & DVR اشتراكًا نشطًا {0} Emby Premiere {1}.", + "HeaderCancelRecording": "إلغاء التسجيل", + "HeaderKeepRecording": "الاحتفاظ بالتسجيل", + "HeaderCancelSeries": "إلغاء المسلسل", + "HeaderKeepSeries": "الحفاظ على سلسلة", + "HeaderLearnMore": "إعرف المزيد", + "SeriesSettings": "إعدادات المسلسل", + "HeaderRecordingOptions": "خيارات التسجيل", + "HeaderDoNotRecord": "لا تسجل", + "HeaderSeriesOptions": "خيارات المسلسل", + "Layout": "نسق", + "Channels": "القنوات", + "ChannelNameOnly": "القناة {0} فقط", + "Anytime": "في أي وقت", + "AnyLanguage": "أي لغة", + "AroundTime": "حول {0}", + "HeaderLatestMovies": "أحدث الافلام", + "All": "الكل", + "Stop": "إيقاف", + "AllChannels": "كل القنوات", + "NewEpisodesOnly": "الحلقات الجديدة فقط", + "AllEpisodes": "جميع الحلقات", + "LabelStartWhenPossible": "ابدأ متى أمكن:", + "LabelStopWhenPossible": "إيقاف متى أمكن:", + "MinutesBefore": "قبل دقائق", + "MinutesAfter": "بعد دقائق", + "SkipEpisodesAlreadyInMyLibrary": "لا تسجل الحلقات الموجودة بالفعل في مكتبتي", + "SkipEpisodesAlreadyInMyLibraryHelp": "ستتم مقارنة الحلقات باستخدام أرقام الموسم والحلقات ، عند توفرها.", + "LabelKeepUpTo": "أبقِ حتى:", + "AsManyAsPossible": "أكبر عدد ممكن", + "DefaultErrorMessage": "كان هناك خطأ في معالجة الطلب. الرجاء معاودة المحاولة في وقت لاحق.", + "UntilIDelete": "حتى أحذف", + "UntilSpaceNeeded": "حتى أحتاج إلى مساحة", + "Categories": "التصنيفات", + "Sports": "رياضات", + "News": "أخبار", + "Movies": "أفلام", + "Music": "موسيقى", + "Kids": "أطفال", + "MoreFromValue": "المزيد من {0}", + "DiedValue": "توفي: {0}", + "BornValue": "وُلد: {0}", + "EnableColorCodedBackgrounds": "تمكين الخلفيات الملونة", + "SortChannelsBy": "فرز القنوات حسب:", + "ChannelNumber": "رقم القناة", + "HeaderBenefitsEmbyPremiere": "فوائد تميّز Emby", + "ThankYouForTryingEnjoyOneMinute": "يرجى الاستمتاع بدقيقة واحدة من التشغيل. شكرا لك على تجربة Emby.", + "HeaderTryPlayback": "جرب التشغيل", + "HowDidYouPay": "كيف دفعت؟", + "IHaveEmbyPremiere": "لدي تميّز Emby", + "IPurchasedThisApp": "اشتريت هذا التطبيق", + "ButtonRestorePreviousPurchase": "استعادة شراء", + "ButtonUnlockWithPurchase": "فتح عن طريق الشراء", + "ButtonUnlockPrice": "فتح {0}", + "EmbyPremiereMonthlyWithPrice": "Emby تميّز شهري {0}", + "HeaderAlreadyPaid": "مدفوع بالفعل؟", + "ButtonPlayOneMinute": "تشغيل دقيقة واحدة", + "PlaceFavoriteChannelsAtBeginning": "ضع القنوات المفضلة في البداية", + "HeaderUnlockFeature": "إفتح الميزة", + "MessageDidYouKnowCinemaMode": "هل تعلم أنه مع تميّز Emby، يمكنك تحسين تجربتك مع ميزات مثل مقدمات السينما؟", + "HeaderPlayMyMedia": "تشغيل الوسائط الخاصة بي", + "HeaderDiscoverEmbyPremiere": "إكتشف تميّز Emby", + "HeaderNowPlaying": "المشغل الآن", + "Items": "العناصر", + "AppName": "App Name", + "OneChannel": "قناة واحدة", + "ConfirmRemoveDownload": "إزالة التنزيل؟", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "إزالة التنزيل", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "إحقظ التنزيل", + "AddedOnValue": "تمت إضافة {0}", + "RemovingFromDevice": "الإزالة من الجهاز", + "KeepOnDevice": "إبقاء على الجهاز", + "CancelDownload": "إلغاء التنزيل", + "SyncJobItemStatusReadyToTransfer": "جاهز للنقل", + "SyncJobItemStatusSyncedMarkForRemoval": "تتم الإزالة من الجهاز", + "SyncJobItemStatusQueued": "في قائمة الانتظار", + "SyncJobItemStatusConverting": "جارِ التحويل", + "SyncJobItemStatusTransferring": "جارِ النقل", + "SyncJobItemStatusSynced": "تم التنزيل", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "تمت الإزالة من الجهاز", + "Cancelled": "Cancelled", + "Retry": "أعد المحاولة", + "Continue": "إستمر", + "ContinueInSecondsValue": "استمر في {0} ثانية.", + "HeaderRemoteControl": "التحكم عن بعد", + "Disconnect": "قطع الاتصال", + "EnableDisplayMirroring": "تمكين انعكاس العرض", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "تشغيل على", + "Quality": "الجودة", + "Auto": "تلقائي", + "AndroidUnlockRestoreHelp": "لاستعادة عملية الشراء السابقة ، يرجى التأكد من تسجيل الدخول إلى الجهاز بنفس حساب Google (أو Amazon) الذي أجرى عملية الشراء في الأصل. تأكد من تمكين متجر التطبيقات وعدم تقييده بواسطة أي أدوات رقابة أبوية ، وتأكد من وجود اتصال إنترنت نشط. سيكون عليك القيام بذلك مرة واحدة فقط لاستعادة عملية الشراء السابقة.", + "HeaderAspectRatio": "نسبة العرض إلى الارتفاع الأصلية:", + "Original": "أصلي", + "Fill": "ملء", + "Cover": "غلاف", + "MessageNoServersAvailableToConnect": "لا توجد خوادم متاحة للاتصال بها. إذا تمت دعوتك لمشاركة خادم ، فتأكد من قبوله أدناه أو بالنقر فوق الرابط الموجود في البريد الإلكتروني.", + "MessagePlayAccessRestricted": "تشغيل هذا المحتوى محظور حاليا. يرجى الاتصال بمسؤول خادم Emby للحصول على مزيد من المعلومات.", + "Accept": "قبول", + "Reject": "رفض", + "Connect": "اتصل", + "HeaderMyMedia": "وسائطي", + "HeaderMyMediaSmall": "وسائطي (مصغرة)", + "LatestFromLibrary": "الأحدث {0}", + "HeaderLatestEpisodes": "احدث الحلقات", + "ContinuePlaying": "الاستمرار في العرض", + "ContinueWatching": "استئناف المشاهدة", + "HeaderLatestChannelMedia": "أحدث عناصر القناة", + "HeaderContinueWatching": "استئناف المشاهدة", + "HeaderContinueListening": "إستئناف الإستماع", + "HeaderActiveRecordings": "التسجيلات النشطة", + "HeaderLatestRecordings": "أحدث التسجيلات", + "LabelConvertTo": "حول الى:", + "LabelDownloadTo": "تنزيل إلى:", + "HeaderDownloadToDots": "تنزيل إلى ...", + "Next": "التالي", + "LabelSource": "المصدر:", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "كل اللغات", + "Previous": "السابق", + "HeaderNextUp": "التالى", + "HeaderPlayNextUp": "تشغيل التالي", + "HeaderLatestFrom": "الأحدث من {0}", + "LabelHomeScreenSectionValue": "قسم الشاشة الرئيسية {0}:", + "PasswordResetComplete": "لقد تم اعادة تعيين كلمة السر.", + "PasswordSaved": "تم حفظ كلمة السر.", + "SettingsSaved": "تم حفظ الإعدادات.", + "Upcoming": "القادم", + "HeaderSelectImageFile": "حدد ملف الصورة", + "None": "لا يوجد", + "More": "المزيد", + "Up": "أعلى", + "Down": "أسفل", + "Home": "الرئيسية", + "Back": "رجوع", + "Random": "Random", + "Playback": "تشغيل", + "Favorites": "المفضلة", + "HeaderHomeScreen": "الشاشة الرئيسية", + "HeaderLatestChannelItems": "أحدث عناصر القناة", + "HeaderLibraryOrder": "ترتيب المكتبة", + "HeaderOnNow": "الآن", + "HeaderForKids": "للأطفال", + "HeaderPlaybackError": "خطأ في التشغيل", + "PlaybackErrorNotAllowed": "غير مصرح لك حاليًا بتشغيل هذا المحتوى. يرجى الاتصال بمسؤول النظام للحصول على التفاصيل.", + "RateLimitExceeded": "تجاوز حسابك الحد الأقصى للبث الذي تم تعيينه بواسطة مسؤول خادم Emby. يرجى الاتصال بهم للمساعدة.", + "PlaybackErrorNoCompatibleStream": "لا تتوفر تدفقات متوافقة حاليا. يرجى المحاولة مرة أخرى لاحقًا أو اتصل بمسؤول النظام للحصول على التفاصيل.", + "PlaybackErrorPlaceHolder": "يرجى إدخال القرص لتشغيل هذا الفيديو.", + "PlaybackErrorNoPlayableItems": "لم يتم العثور على عناصر قابلة للتشغيل. هل تحاول تشغيل مجلد فارغ؟", + "Guide": "الدليل", + "Games": "الألعاب", + "GameSystem": "Game System", + "Suggestions": "مقترحات", + "HeaderFavoriteChannels": "القناة المفضلة", + "HeaderFavoriteCollections": "المجموعات المفضلة", + "HeaderFavoritePlaylists": "قوائم التشغيل المفضلة", + "Collection": "مجموعة", + "Collections": "المجموعات", + "LabelSelectFolderGroups": "تجميع المحتوى تلقائيًا من المجلدات التالية في طرق عرض مثل الأفلام والموسيقى والتلفزيون:", + "LabelSelectFolderGroupsHelp": "المجلدات غير المختارة ستظهر لوحدها في شاشتها الخاصة.", + "Mute": "كتم", + "Unmute": "إلغاء الكتم", + "Folder": "Folder", + "Folders": "مجلدات", + "FileName": "أسم الملف", + "DisplayInOtherHomeScreenSections": "عرض في أقسام الشاشة الرئيسية الثانوية مثل أحدث الوسائط واستمر في المشاهدة", + "DisplayInMyMedia": "إعرض على الشاشة الرئيسية", + "Shows": "عروض", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "فيديو موسيقي", + "HeaderMusicVideos": "الفيديوهات الموسيقية", + "MusicVideos": "الفيديوهات الموسيقية", + "Videos": "الفيديوهات", + "MixedContent": "محتوى متنوع", + "HomeVideos": "القيديوهات المنزلية", + "HomeVideosAndPhotos": "الفيديوهات والصور المنزلية", + "TVShows": "عروض التلفزيون", + "HeaderLibraryFolders": "مجلدات المكتبة", + "HeaderTermsOfPurchase": "شروط الشراء", + "PrivacyPolicy": "سياسة الخصوصية", + "TermsOfUse": "شروط الاستخدام", + "HeaderRepeatMode": "وضع التكرار", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "كرر واحده", + "RepeatAll": "كرر الكل", + "LabelDefaultScreen": "الشاشة الافتراضية:", + "ConfirmEndPlayerSession": "هل ترغب في إيقاف تشغيل Emby في {0}؟", + "Yesterday": "البارحة", + "Yes": "نعم", + "No": "لا", + "HeaderScanLibraryFiles": "فحص ملفات المكتبة", + "LiveTV": "تلفزيون مباشر", + "Schedule": "الجدول", + "Recordings": "التسجيلات", + "ScanForNewAndUpdatedFiles": "ابحث عن الملفات الجديدة والمحدثة", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "الوسائط متوافقة مع الجهاز فيما يتعلق بالدقة ونوع الوسائط (H.264 ، AC3 ، وما إلى ذلك) ، ولكنها في حاوية ملفات غير متوافقة (.mkv ، .avi ، .wmv ، إلخ.). سيتم إعادة حزم الفيديو بسرعة قبل بثه إلى الجهاز.", + "DirectStreamHelp2": "يستخدم الدفق المباشر للملف طاقة معالجة قليلة جدًا دون أي خسارة في جودة الفيديو.", + "MediaIsBeingConverted": "يتم تحويل الوسائط إلى تنسيق متوافق مع الجهاز الذي يقوم بتشغيل الوسائط.", + "StatsForNerds": "احصائيات للمهووسين", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "التشغيل المباشر", + "DirectStreaming": "بث التدفق المباشر", + "Transcode": "Transcode", + "Transcoding": "تحويل الشفرة", + "ContainerBitrateExceedsLimit": "معدل البت للوسائط يتجاوز الحد.", + "VideoCodecNotSupported": "برنامج ترميز الفيديو غير مدعوم", + "AudioCodecNotSupported": "برنامج ترميز الصوت غير مدعوم", + "SubtitleCodecNotSupported": "تنسيق الترجمة غير مدعوم", + "DirectPlayError": "خطأ في التشغيل المباشر", + "ContainerNotSupported": "الحاوية غير مدعومة", + "VideoLevelNotSupported": "مستوى الفيديو غير مدعوم", + "AudioBitrateNotSupported": "معدل البت الصوتي غير مدعوم", + "AudioChannelsNotSupported": "قنوات الصوت غير مدعومة", + "VideoResolutionNotSupported": "دقة الفيديو غير مدعومة", + "AudioProfileNotSupported": "الملف الصوتي غير مدعوم", + "AudioSampleRateNotSupported": "معدل عينة الصوت غير مدعوم", + "AnamorphicVideoNotSupported": "فيديو مشوه غير مدعوم", + "InterlacedVideoNotSupported": "الفيديو المتشابك غير مدعوم", + "SecondaryAudioNotSupported": "تبديل مسار الصوت غير مدعوم", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "حدث خطأ أثناء إزالة حساب Emby Connect. يرجى التأكد من وجود اتصال إنترنت نشط وحاول مرة أخرى.", + "HeaderEmbyAccountRemoved": "تمت إزالة حساب Emby", + "MessageEmbyAccontRemoved": "تمت إزالة حساب Emby من هذا المستخدم.", + "HeaderInvitationSent": "تم إرسال الدعوة", + "Offline": "غير متصل على الانترنت", + "HeaderSignUp": "إشترك", + "ServerDownloadMessage": "لتنزيل خادم Emby المجاني وتثبيته ، تفضل بزيارة {0}", + "ServerDownloadMessageWithoutLink": "لتنزيل خادم Emby المجاني وتثبيته ، قم بزيارة موقع Emby الإلكتروني.", + "MessageInvitationSentToUser": "تم إرسال بريد إلكتروني إلى {0} ، لدعوتهم لقبول دعوة المشاركة الخاصة بك.", + "MessageInvitationSentToNewUser": "تم إرسال بريد إلكتروني إلى {0} لدعوتهم للاشتراك في Emby.", + "GuestUserNotFound": "المستخدم ليس موجود. يرجى التأكد من صحة الاسم والمحاولة مرة أخرى ، أو حاول إدخال عنوان بريدهم الإلكتروني.", + "ErrorReachingEmbyConnect": "حدث خطأ في الوصول إلى خادم Emby Connect. يرجى التأكد من وجود اتصال إنترنت نشط وحاول مرة أخرى.", + "ErrorAddingEmbyConnectAccount1": "حدث خطأ أثناء إضافة حساب Emby Connect. هل قمت بإنشاء حساب Emby؟ اشترك في {0}.", + "ErrorAddingEmbyConnectAccount2": "إذا كنت لا تزال تواجه مشكلة ، فيرجى إرسال بريد إلكتروني إلى {0} من عنوان البريد الإلكتروني المستخدم مع حساب Emby.", + "ErrorAddingGuestAccount1": "حدث خطأ أثناء إضافة حساب Emby Connect. هل قام ضيفك بإنشاء حساب Emby؟ يمكنهم الاشتراك في {0}.", + "ErrorAddingGuestAccount2": "إذا كنت لا تزال تواجه مشكلة ، فيرجى إرسال بريد إلكتروني إلى {0} ، وتضمين عنوان بريدك الإلكتروني بالإضافة إلى عنوانه.", + "MessageEmbyAccountAdded": "تمت إضافة حساب Emby إلى هذا المستخدم.", + "MessagePendingEmbyAccountAdded": "تمت إضافة حساب Emby إلى هذا المستخدم. سيتم إرسال بريد إلكتروني إلى صاحب الحساب. يجب تأكيد الدعوة من خلال النقر على رابط داخل البريد الإلكتروني.", + "HeaderEmbyAccountAdded": "تمت إضافة حساب Emby", + "Skip": "تخطّي", + "HeaderAdditionalParts": "الأجزاء الأضافية", + "ButtonGenerateNewPin": "إنشاء رقم تعريف شخصي جديد", + "ConnectLoginHelp1": "مع Emby Connect ، يمكنك الوصول بسهولة إلى خادم Emby الخاص بك أينما كنت ومشاركة الخوادم مع عائلتك وأصدقائك.", + "CreatePinErrorMessage": "حدث خطأ أثناء إنشاء رمز تعريف شخصي. الرجاء النقر فوق إنشاء رمز تعريف شخصي جديد للمحاولة مرة أخرى.", + "PinExpiredMessage": "انتهت صلاحية الرمز السري. الرجاء النقر فوق إنشاء رمز تعريف شخصي جديد للمحاولة مرة أخرى.", + "ConnectPinCodeHeader": "لتسجيل الدخول باستخدام Emby Connect ، استخدم جهاز جوال أو كمبيوتر لزيارة {0} وأدخل رمز التعريف الشخصي التالي:", + "LabelSubtitlePlaybackMode": "وضع الترجمة:", + "ErrorDeletingItem": "حدث خطأ في حذف العنصر من خادم Emby. يرجى التحقق من أن خادم Emby لديه حق الوصول للكتابة إلى مجلد الوسائط وحاول مرة أخرى.", + "NoSubtitles": "لا توجد ترجمة", + "Default": "الافتراضي", + "Absolute": "مطلق", + "Smart": "ذكي", + "Small": "صغير", + "Smaller": "أصغر", + "Medium": "وسط", + "Large": "كبير", + "Larger": "Larger", + "ExtraLarge": "كبير جداً", + "ExtraSmall": "Extra small", + "Forced": "قسري", + "External": "خارجي", + "HeaderEmbeddedTitle": "العنوان المضمن", + "OnlyForcedSubtitles": "ترجمات إجبارية فقط", + "AlwaysPlaySubtitles": "تشغيل الترجمة دائما", + "DefaultSubtitlesHelp": "يتم تحميل الترجمات استنادًا إلى العلامات الافتراضية والقسرية في البيانات الوصفية المضمنة. تعتبر تفضيلات اللغة عند توفر خيارات متعددة.", + "SmartSubtitlesHelp": "سيتم تحميل الترجمة التي تطابق تفضيل اللغة عندما يكون الصوت بلغة أجنبية.", + "HeaderSubtitleSettings": "إعدادات الترجمة", + "HeaderSubtitleAppearance": "مظهر الترجمة", + "OnlyForcedSubtitlesHelp": "سيتم تحميل الترجمة المصنفة على أنها مفروضة فقط.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "سيتم تحميل الترجمات المصاحبة لتفضيلات اللغة بغض النظر عن اللغة الصوتية.", + "NoSubtitlesHelp": "لن يتم تحميل الترجمة بشكل افتراضي. لا يزال من الممكن تشغيلها يدويًا أثناء التشغيل.", + "LabelPreferredSubtitleLanguage": "لغة الترجمة المفضلة:", + "LabelTextSize": "حجم النص:", + "TheseSettingsAffectSubtitlesOnThisDevice": "تؤثر هذه الإعدادات على الترجمة على هذا الجهاز", + "LabelDropShadow": "أسقط الظل:", + "LabelTextBackgroundColor": "لون خلفية النص:", + "LabelWindowBackgroundColor": "لون خلفية النص:", + "LabelFont": "الخط:", + "LabelTextColor": "لون النص:", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "رفع", + "Depressed": "منخفض", + "Uniform": "زى موحد", + "DropShadow": "أسقط الظل", + "SmallCaps": "قبعات صغيرة", + "SubtitleAppearanceSettingsDisclaimer": "لن تنطبق هذه الإعدادات على الترجمات الرسومية (PGS ، DVD ، إلخ) ، أو الترجمات المصاحبة لأنماطها الخاصة (ASS / SSA).", + "Normal": "عادي", + "HeaderWaitingForWifi": "في انتظار واي فاي", + "WifiRequiredToDownload": "مطلوب اتصال Wifi لمتابعة التنزيل.", + "DownloadOnlyOnWifi": "تنزيل فقط على Wifi", + "LabelMusicDownloadQuality": "جودة تنزيل الموسيقى:", + "MusicDownloadQualityHelp": "سيتم تحويل ملفات الصوت ذات معدل البت الأعلى بواسطة خادم Emby. حدد قيمة أعلى لجودة أفضل ، أو قيمة أقل للحفاظ على مساحة التخزين المحلية.", + "HeaderDownloadSettings": "إعدادات التنزيل", + "LabelDownloadLocation": "موقع التنزيل:", + "BrowseForFolder": "تصفح للمجلد", + "Unlimited": "غير محدود", + "NoLimit": "No limit", + "Hide": "إخفاء", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "عمق بت الصوت غير مدعوم", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "ملف تعريف الفيديو غير مدعوم", + "VideoFramerateNotSupported": "معدل إطارات الفيديو غير مدعوم", + "VideoBitDepthNotSupported": "عمق بت الفيديو غير مدعوم", + "RefFramesNotSupported": "عدد الإطارات المرجعية للفيديو غير مدعومة", + "ErrorConnectServerUnreachable": "حدث خطأ في تنفيذ العملية المطلوبة. خادمك غير قادر على الاتصال بخادم Emby Connect على {0}. يرجى التأكد من أن الخادم الخاص بك لديه اتصال إنترنت نشط وأن الاتصالات مسموح بها بواسطة أي جدار حماية أو برنامج أمان قمت بتثبيته.", + "HeaderStopRecording": "إيقاف التسجيل", + "ManageRecording": "إدارة التسجيل", + "LabelDropImageHere": "اسحب الصورة وأفلتها هنا ، أو انقر لتحديد صورة لتحميلها.", + "MessageFileReadError": "حدث خطأ في قراءة الملف. حاول مرة اخرى.", + "Browse": "تصفح", + "HeaderUploadImage": "رفع صورة", + "HeaderAddUpdateImage": "إضافة / تحديث صورة", + "HeaderShowFields": "إظهار الحقول", + "LabelView": "عرض:", + "LabelImageType": "نوع الصورة:", + "Upload": "رفع", + "Primary": "أساسي", + "PrimaryImageBlur": "Primary image blur", + "Art": "فن", + "Backdrop": "الخلفية", + "Banner": "راية", + "Box": "صندوق", + "BoxRear": "صندوق (خلفي)", + "Disc": "القرص", + "Logo": "شعار", + "LogoDark": "الشعار (نسخة غامقة)", + "LogoLight": "الشعار (نسخة خفيفة)", + "LogoLightColor": "الشعار (فاتح مع اللون)", + "Menu": "القائمة", + "Screenshot": "لقطة شاشة", + "Thumb": "إبهام", + "HeaderAudioSettings": "إعدادات الصوت", + "LabelAudioLanguagePreference": "اللغة المفضلة للصوت:", + "LabelPlayDefaultAudioTrack": "تشغيل المقطع الصوتي الافتراضي بغض النظر عن اللغة", + "HeaderVideoQuality": "جودة الفيديو", + "CinemaModeConfigurationHelp": "تقدم مقدمات السينما تجربة المسرح مباشرة إلى غرفة المعيشة الخاصة بك مع القدرة على تشغيل عرض مختصر لفيلم والمقدمات المخصصة قبل الميزة الرئيسية.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "تشغيل الحلقة التالية تلقائيًا", + "LabelMaxChromecastBitrate": "جودة بث Chromecast:", + "LabelSkipBackLength": "تخطي الطول إلى الوراء:", + "LabelSkipForwardLength": "تخطي طول إلى الأمام:", + "EnableCinemaMode": "تمكين مقدمات السينما", + "LabelInternetQuality": "جودة الإنترنت:", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "جودة الموسيقى", + "LabelHomeNetworkQuality": "جودة الشبكة المنزلية:", + "HeaderLatestMedia": "آحدث الوسائط", + "HeaderRestartingEmbyServer": "إعادة تشغيل خادم Emby", + "RestartPleaseWaitMessage": "الرجاء الانتظار بينما يتم إيقاف تشغيل خادم Emby وإعادة تشغيله. قد يستغرق هذا دقيقة أو دقيقتين.", + "HeaderPlayNext": "تشغيل التالي", + "AutoBasedOnLanguageSetting": "تلقائي (بناءً على إعداد الجهاز)", + "SameAsMainTheme": "مثل الموضوع الرئيسي", + "LabelDateTimeLocale": "تاريخ التوقيت المحلي", + "Genre": "النوع", + "DirectorValue": "المخرج: {0}", + "DirectorsValue": "المخرجون: {0}", + "GenreValue": "النوع: {0}", + "GenresValue": "الأنواع: {0}", + "TagsValue": "الوسوم: {0}", + "Off": "إيقاف", + "Title": "عنوان", + "Year": "عام", + "Filter": "Filter", + "Filters": "منقي", + "Unplayed": "غير مشغل", + "LabelTVHomeScreen": "الشاشة الرئيسية لوضع التلفزيون:", + "Horizontal": "أفقي", + "Vertical": "عمودي", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "جمع حسب المسلسل", + "HeaderVideoType": "نوع الفيديو", + "HeaderSeriesStatus": "حالة المسلسل", + "Features": "الميزات", + "Trailers": "العروض الإعلانية", + "Extras": "المزيد", + "ThemeSongs": "أغاني الشارة", + "ThemeVideos": "فيديوهات الشارة", + "HeaderFavoriteMovies": "الأفلام المفضلة", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "المسلسلات المفضلة", + "HeaderFavoriteEpisodes": "الحلقات المفضلة", + "HeaderFavoriteVideos": "مقاطع الفيديو المفضلة", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "الألعاب المفضلة", + "HeaderFavoriteArtists": "الفنانون المفضلون", + "HeaderFavoriteAlbums": "الألبومات المفضلة", + "HeaderFavoriteSongs": "الأغاني المفضلة", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "تصاعدي", + "Descending": "تنازلي", + "HeaderColorPrimaries": "اللون الأساسي", + "HeaderColorSpace": "مساحة اللون", + "HeaderColorTransfer": "نقل الألوان", + "HeaderVideoRange": "نطاق الفيديو", + "SeriesDisplayOrderHelp": "حلقات الطلب عن طريق تاريخ البث أو طلب قرص DVD أو الترقيم المطلق.", + "LabelVerticalPositionFromBottom": "الوضع العمودي (من الأسفل):", + "HeaderFavoritePeople": "أناس مفضلين", + "MultiSelect": "اختيار متعدد", + "HeaderSignOut": "تسجيل الخروج", + "HeaderSelectServer": "إختر الخادم", + "HeaderChangeServer": "تغيير الخادم", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "إعدادات تسجيل الدخول", + "LabelRememberLogin": "تذكر تسجيل الدخول:", + "LabelAutomaticallySignOut": "تسجيل الخروج تلقائيًا:", + "BetaTesterMessage": "شكرا لكونك أحد مختبري Emby beta! يرجى ترك تعليق في {0} منطقة الاختبار في مجتمع Emby {1}.", + "HardwareAccelerated": "شكرًا لك لكونك أحد مختبري Emby Hardware المعجل! يرجى ترك تعليق في {0} منطقة الاختبار في مجتمع Emby {1}.", + "Software": "البرنامج", + "Metadata": "البيانات الوصفية", + "HeaderMediaInfo": "معلومات الوسائط", + "Locked": "مقفل", + "HeaderSplitVersionsApart": "فصل الإصدارات المختلفة على حدة", + "Any": "أي", + "Admin": "المدير", + "HeaderReadMore": "إقرأ المزيد", + "CustomRatingHelp": "يتم استخدام تصنيف مخصص لتقييم الرقابة الأبوية ولكن لا يتم عرضه. لا يزال حقل التصنيف الأبوي معروضًا.", + "KeepUpToHelp": "يتم حذف التسجيلات التي تتجاوز الحد عندما يبدأ التسجيل التالي. يتم حذف التسجيلات الأقدم أولاً ، حسب تاريخ الإضافة.", + "NoItemsMatchingFound": "لم يتم العثور على عناصر مطابقة لمعايير البحث الخاصة بك.", + "TwoSearchCharsRequired": "يرجى إدخال حرفين للبحث على الأقل.", + "PreventPlaybackContinuing": "امنع التشغيل من الاستمرار إلى أجل غير مسمى من خلال المطالبة بشكل دوري بإدخال المستخدم.", + "PromptStillWatching": "تمكين إشعار \"هل ما زلت تشاهد؟\"", + "HeaderMissingMetadata": "البيانات الوصفية مفقودة", + "HeaderIncludedIn": "متضمن في", + "EmbyConnectUserAlreadyLinked": "تم ربط مستخدم Emby Connect بالفعل بمستخدم آخر على هذا الخادم.", + "VideoFilesWillBeConvertedTo": "سيتم حفظ مقاطع الفيديو المحولة باسم {0}.", + "VideoWillBeConvertedTo": "سيتم تحويل تدفقات الفيديو إلى {0} ، أو نسخها من الملف الأصلي إذا كانت بالفعل {0} وتناسب الجودة ضمن خيارات التحويل.", + "VideoWillBeConvertedToOrCopied": "سيتم تحويل تدفقات الفيديو إلى {0} ، أو نسخها من الملف الأصلي إذا كانت أي من ({1}) ، وتناسب الجودة ضمن خيارات التحويل.", + "AudioWillBeConvertedTo": "سيتم تحويل تدفقات الصوت إلى {0} ، أو نسخها من الملف الأصلي إذا كانت بالفعل {0} وتناسب الجودة ضمن خيارات التحويل.", + "AudioWillBeConvertedToOrCopied": "سيتم تحويل تدفقات الصوت إلى {0} ، أو نسخها من الملف الأصلي إذا كانت أي من ({1}) ، وتناسب الجودة ضمن خيارات التحويل.", + "HeaderSpecialKeys": "مفاتيح خاصة", + "FollowingSpecialKeys": "المفاتيح الخاصة التالية مدعومة في معظم لوحات المفاتيح وأجهزة التحكم عن بُعد:", + "HeaderDeleteSeries": "حذف المسلسل", + "HeaderDeleteLastPlayedEpisode": "حذف آخر حلقة تمت مشاهدتها", + "HeaderConnectingToServer": "جاري الأتصال بالخادم", + "ServerNameValue": "اسم الخادم: {0}", + "DomainValue": "النطاق: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "سيتم إعادة توجيهك الآن إلى النطاق الذي يمتلكه ويديره مسؤول الخادم الذي اخترت الاتصال به:", + "AllMediaOwnedHosted": "يتم إستضافة جميع الوسائط وإدارتها من قبل المالك {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "تمكين عرض تبديل معدل التحديث", + "EnableDisplayRefreshRateSwitchingHelp": "يمكّن هذا Emby من تغيير معدل تحديث العرض إلى نفس القيمة (أو مضاعفات) مثل معدل الإطارات الذي تم ترميز الفيديو فيه قبل بدء التشغيل. يساعد هذا في تقليل مقدار التأتأة / الاهتزاز التي قد تراها بخلاف ذلك عند تشغيل مقاطع الفيديو التي لا تتطابق بشكل جيد.", + "RememberSelectedAudioTracks": "تذكر تحديدات المسار الصوتي", + "RememberSelectedSubtitleTracks": "تذكر تحديدات الترجمات", + "RememberSelectedSubtitleTracksHelp": "سيتم تذكر اختيارات مسار الترجمة على أساس كل فيديو وإعادة تطبيقها عند تشغيل نفس الفيديو مرة أخرى.", + "RememberSelectedAudioTracksHelp": "سيتم تذكر تحديدات المسار الصوتي على أساس كل فيديو وإعادة تطبيقها عند تشغيل نفس الفيديو مرة أخرى.", + "ClearSavedTrackSelections": "مسح تحديدات المسار المحفوظة", + "HeaderClearTrackSelections": "مسح تحديدات المسار المحفوظة", + "QuestionClearSavedTracks": "مسح كافة تحديدات المسار المحفوظة؟", + "LabelChannelTags": "علامات القناة:", + "AfterThisPlaysConfirmation": "بعد تشغيل هذا ، هل تريد الاستمرار في تشغيل الموسيقى التي قمت بوضعها في قائمة الانتظار أو مسحها؟", + "Keep": "إبقاء", + "Clear": "تصفية", + "HeaderClearFilters": "مسح عوامل التصفية", + "HeaderSearchForImages": "ابحث عن الصور", + "HeaderSearchNewImage": "ابحث عن صورة جديدة", + "HeaderSearchForAnImage": "ابحث عن صورة", + "DragDropToReorder": "قم بالسحب والإفلات لإعادة الترتيب", + "HeaderAddImageFromUrl": "أضف صورة من URL", + "HeaderSetImageFromUrl": "تعيين صورة من URL", + "LabelUrl": "عنوان Url:", + "LabelChannelNumber": "رقم القناة:", + "LabelGuideDataChannel": "قناة بيانات الدليل:", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "حفظ تشغيل قائمة الانتظار إلى قائمة التشغيل", + "EnableLogoImagesAsTitle": "عرض صور الشعار كعناوين على شاشات التفاصيل", + "EnableLogoImagesAsTitleHelp": "عند توفر صور الشعار ، يمكن استخدامها بدلاً من نص العنوان في الفيديو والمسلسل وشاشات التفاصيل الأخرى. سيعود العنوان إلى النص عندما لا تتوفر صورة الشعار.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "تخطي المقدمة", + "HeaderCreateRecording": "إنشاء تسجيل", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/bg.json b/modules/common/strings/bg.json new file mode 100644 index 0000000..35135e6 --- /dev/null +++ b/modules/common/strings/bg.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby е създаден да ви помогне да управлявате вашата лична медийна библиотека, като домашни видеоклипове и снимки. Моля, вижте нашите {0}условия за ползване{1}. Използването на който и да е софтуер на Emby означава приемане на тези условия.", + "MessageUnableToConnectToServer": "В момента не можем да се свържем с избрания сървър. Моля, уверете се, че работи и опитайте отново.", + "EmbyIntroMessage": "С Emby можете лесно да предавате поточно видео, музика и снимки към смарт телефони, таблети и други устройства от вашия Emby Server.", + "HeaderSignInWithConnect": "Влезте с Emby Connect", + "HeaderWelcomeToEmby": "Добре дошли в Emby", + "HeaderNewUsers": "Нови потребители", + "HeaderPleaseSignIn": "Моля, влезте в профила си", + "MessageInvalidUser": "Невалидно потребителско име или парола. Моля опитайте отново.", + "MessageUnlockAppWithPurchaseOrSupporter": "Отключете тази функция с малка еднократна покупка или с активен абонамент за Emby Premiere.", + "MessageUnlockAppWithSupporter": "Отключете тази функция с активен абонамент за Emby Premiere.", + "MessageToValidateSupporter": "Ако имате активен абонамент за Emby Premiere, уверете се, че сте настроили Emby Premiere в таблото за управление на Emby Server, до което можете да получите достъп, като щракнете върху Emby Premiere в главното меню.", + "ValueSpecialEpisodeName": "Специални - {0}", + "HeaderSignIn": "Впиши се", + "Share": "Споделяне", + "Shared": "Споделено", + "Info": "Информация", + "Add": "Добавяне", + "Speed": "Скорост", + "PlaybackSpeed": "Скорост възпр.", + "Chapters": "Глави", + "Password": "Парола", + "SavePassword": "Запис парола", + "LabelPassword": "Парола:", + "HeaderResetPassword": "Нулиране На Парола", + "Series": "Серии", + "Preview": "Преглед", + "Submit": "Изпращане", + "Never": "Никога", + "Table": "таблица", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Последно използван {0}", + "LabelKeywordType": "Тип ключова дума:", + "HeaderSelectColumns": "Избери колони", + "HeaderTopResults": "Резултати", + "HeaderPinSidebar": "Фиксиране на страничната лента", + "Collapse": "Свиване", + "LabelBackgroundVideoPlayback": "Фоново възпроизвеждане на видео:", + "BackgroundVideoPlaybackHelp": "Възпроизвеждането във фонов режим позволява видеото да продължи да се възпроизвежда дори когато екранът е изключен.", + "AlwaysOn": "Винаги включен", + "HeadphonesOrExternalSpeakersConnected": "Свързани слушалки или външни високоговорители", + "HeaderKeyboardAndRemote": "Клавиатура и дистанционно", + "NoSelectedItemsSupportOperation": "Няма избрани елементи, които поддържат тази операция.", + "NoOperationsForSelectedItems": "Няма налични операции за избраните елементи.", + "UploadOnlyOnWifi": "Качване само през Wifi", + "HeaderFoldersToUpload": "Папки за качване", + "LabelPasswordConfirm": "Парола (потвърждаване):", + "HeaderMoveUpInOrder": "Преместване нагоре", + "HeaderDownUpInOrder": "Преместване надолу", + "LabelUsername": "Потребителско име:", + "HeaderAddServer": "Добавяне на сървър", + "HeaderSubtitleOffset": "Отместване на субтитрите", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Премахване от Продължаване на гледането", + "RemoveThisTitleFromContinueWatching": "Премахване от Продължаване на гледането?", + "HeaderRemoveFromContinueListening": "Премахване от Продължете да слушате", + "RemoveThisTitleFromContinueListening": "Премахване от Продължете да слушате", + "HeaderIncreaseSubtitleOffset": "Увеличете отместването на субтитрите", + "HeaderDecreaseSubtitleOffset": "Намалете отместването на субтитрите", + "Close": "Затвори", + "HeaderSeeAll": "Виж всички", + "HeaderOpenInNewWindow": "Отвори в нов прозорец", + "LabelEmail": "Имейл:", + "LabelHost": "Хост:", + "LabelHostHelp": "192.168.1.100 или https://myserver.com", + "LabelPort": "Порт:", + "Disabled": "Изключен", + "Uninstall": "Деинсталиране", + "Enable": "Вкл.", + "AllTuners": "All Tuners", + "Disable": "Изкл.", + "NextValue": "Следващ {0}", + "HeaderNextItem": "Следващ елемент", + "HeaderPreviousItem": "Предишен елемент", + "NoTrailersMessage": "Няма намерени трейлъри. За да добавите трейлъри, моля, инсталирайте приставката за трейлъри от {0}каталога на приставки Emby{1}.", + "UninstallPluginConfirmation": "Сигурни ли сте, че искате да деинсталирате този плъгин?", + "HeaderUninstallPlugin": "Деинсталирайте приставката", + "AreYouStillWatching": "Все още ли гледате?", + "LabelCurrentPassword": "Текуща парола:", + "LabelNewPassword": "Нова парола:", + "LabelNewPasswordConfirm": "Потвърждаване на нова парола:", + "HeaderRemovePassword": "Премахване На Паролата", + "ServerUpdateNeeded": "Сървърът трябва да бъде обновен. Моля, посетете {0}, за да свалите последната версия.", + "MessageThankYouForConnectSignUp": "Благодарим ви, че се регистрирахте за Emby Connect. На вашия адрес ще бъде изпратен имейл с инструкции как да потвърдите новия си акаунт. Моля, потвърдете акаунта и след това се върнете тук, за да влезете.", + "MessageThankYouForConnectSignUpNoValidation": "Благодарим ви, че се регистрирахте за Emby Connect! Сега ще бъдете помолени да влезете с вашата информация за Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "Паролата и потвърждението на паролата трябва да съвпадат.", + "ErrorMessageUsernameInUse": "Потребителското име е заето. Моля изберете друго име и опитайте отново.", + "ErrorMessageEmailInUse": "Имейл адресът вече се използва. Моля, въведете нов имейл адрес и опитайте отново или използвайте функцията за забравена парола.", + "HeaderUpcomingOnTV": "Предстоящо по Телевизия на живо", + "HeaderOtherShowings": "Други показвания", + "Showings": "Показвания", + "HeaderConnectToServer": "Свържете се със сървъра", + "ConnectToServerManually": "Ръчно свързване със сървъра", + "LabelEnterConnectUserNameHelp": "Това е имейл адресът, който сте използвали, за да настроите акаунта си в Emby Connect.", + "HeaderSignInError": "Грешка При Вписването", + "HeaderManualLogin": "Ръчно Вписване", + "PasswordResetConfirmation": "Сигурни ли сте, че искате да занулите паролата си?", + "ContactAdminToResetPassword": "Моля, свържете се с вашия системен администратор, за да нулирате паролата си.", + "ForgotPasswordInNetworkRequired": "Моля, опитайте отново във вашата домашна мрежа, за да стартирате процеса на повторно задаване на парола.", + "ForgotPasswordFileCreated": "Следният файл е създаден на вашия сървър и съдържа инструкции как да продължите:", + "ForgotPasswordFileExpiration": "ПИН-кодът за нулиране ще изтече на {0}.", + "InvalidForgotPasswordPin": "Въведен е невалиден или изтекъл ПИН. Моля, опитайте отново.", + "PasswordResetForUsers": "Паролите са премахнати за следните потребители. За да влезете, влезте с празна парола.", + "HeaderForgotPassword": "Забравена Парола?", + "ForgotPasswordUsernameHelp": "Въведете потребителското си име ако го помните.", + "HeaderPasswordReset": "Нулиране на парола", + "AttributeNew": "Нови", + "Done": "Готово", + "HeaderResetToDefault": "Нулиране до стандартно", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Премиера", + "LabelPinCode": "ПИН код:", + "LabelLocalNetworkPinCode": "ПИН код за локалната мрежа", + "LabelLocalNetworkPasswordMode": "Режим на влизане в локална мрежа", + "RequirePasswordInLocalNetwork": "Изисквай парола на локалната мрежа", + "NoPasswordInLocalNetwork": "Не изисквай парола на локалната мрежа", + "PinCodeInLocalNetwork": "Позволи цифрен ПИН код на локалната мрежа", + "LocalNetworkPasswordModeHelp": "Изберете метода за влизане за устройства в същата локална мрежа като вашия Emby сървър.", + "HeaderLocalNetworkAccess": "Достъп до локална мрежа", + "Live": "На живо", + "Reset": "Нулиране", + "Repeat": "Повтаряне", + "Track": "Пътечка", + "Tracks": "Пътечки", + "HeaderCameraUpload": "Качване от камера", + "TrackCount": "{0} Песни", + "ItemCount": "{0} елемента", + "NumberChannelsValue": "{0} канала", + "HeaderLatestMusic": "Най-новата музика", + "HeaderLatestAudioBooks": "Най-новите аудио книги", + "HeaderLatestDownloadedVideos": "Най-новите изтеглени видеоклипове", + "HeaderRecentlyPlayed": "Изпълнени Наскоро", + "Recent": "Скорошни", + "HeaderFrequentlyPlayed": "Често Изпълнявани", + "HeaderMoreLikeThis": "Подобни", + "HeaderMoreLikeThisOnLiveTV": "Още като това по Телевизия на живо", + "OriginalAirDateValue": "Дата на първоначално излъчване: {0}", + "EndsAtValue": "Приключва в {0}", + "Date": "Дата", + "AirDate": "Дата на излъчване", + "Played": "Изпълнено", + "Daily": "Ежедневно", + "Weekly": "Седмично", + "RequireHashMatch": "Изисквай хеш съвпадение", + "RequireHashMatchHelp": "Изискването за хеш съвпадение ще филтрира субтитрите, за да включва само тези, които са тествани с точния ви видео файл. Премахването на отметката ще увеличи броя на съответстващите субтитри, но също така ще увеличи шансовете за неправилен или неправилен текст на субтитрите.", + "SearchForForcedSubtitlesOnly": "Само вградени субтитри", + "SearchForForcedSubtitlesOnlyHelp": "Изискването на допълнителни субтитри ще ограничи резултатите до субтитри, които са маркирани като притежаващи чужд език.", + "LastEpisodeDateAdded": "Датата на последния добавен епизод", + "LastEpisodeDateAired": "Дата на излизане на последния епизод", + "LabelPlaystate": "Статус на възпр.", + "Studio": "Студио", + "Tag": "Таг", + "EpisodeTitle": "Заглавие на епизода", + "Audio": "Звук", + "Video": "Видео", + "Subtitle": "Субтитри", + "Image": "Изображение", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Звук тип", + "LabelAudioCodec": "Звуков кодек", + "LabelAudioLanguage": "Език на звука", + "LabelSubtitleLanguage": "Език на субтитрите", + "LabelVideoCodec": "Видео кодек", + "LabelSubtitleCodec": "Кодек на субтитри", + "LabelParentalRating": "Родителска оценка", + "BecauseYouLikeValue": "Защото харесвате {0}", + "BecauseYouWatchedValue": "Защото гледахте {0}", + "DirectedByValue": "Режисиран от {0}", + "StarringValue": "С участието на {0}", + "Invitations": "Покани", + "ActorAsRole": "като {0}", + "ButtonOk": "Добре", + "GroupItemsIntoCollections": "Групирайте елементи в колекции", + "GroupItemsIntoCollectionsHelp": "Групирайте елементи въз основа на колекции, към които са добавени. Активирането на определени филтри или редове на сортиране може автоматично да деактивира това.", + "GroupItemsIntoTags": "Групирайте елементи в етикети", + "GroupItemsIntoTagsHelp": "Групирайте елементи въз основа на етикети, към които са добавени. Активирането на определени филтри или редове на сортиране може автоматично да деактивира това.", + "User": "Потребител", + "Access": "Достъп", + "Users": "Потребители", + "Library": "Библиотека", + "Devices": "Устройства", + "Cancel": "Отказ", + "Restart": "Рестартиране", + "Shutdown": "Изключване", + "Logs": "Логове", + "Visibility": "Видимост", + "Notifications": "Известия", + "SendTestNotification": "Изпрати тестово известие", + "NotificationSent": "Известието изпратено", + "DeleteNotificationConfirmation": "Сигурни ли сте че искате да изтриете това известие?", + "DeleteNotification": "Изтриване известие", + "AddNotification": "Добавяне известие", + "EditNotification": "Редакция известие", + "LimitUserEventsTo": "Лимит на потребителки събития на", + "LimitLibraryEventsTo": "Лимит на библиотечни събития на", + "LimitDeviceEventsTo": "Лимит на събития от устройството на", + "ForAdditionalNotificationOptions": "Допълнителните услуги за уведомяване могат да се инсталират от администратора на сървъра в {0}каталога с добавки{1} на Emby.", + "Plugins": "Плъгини", + "Systems": "Системи", + "Server": "Сървър", + "Dashboard": "Табло", + "PlayOnAnotherDevice": "Изпълняване на друго устройство", + "HeaderConnectionHelp": "Помощ за свързване", + "AccessRestrictedTryAgainLater": "Достъпът е временно ограничен. Моля опитайте по-късно.", + "ButtonGotIt": "Разбрах", + "RememberMe": "Запомни ме", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Управление на Емби Сървър", + "ShutdownServer": "Изключване на Емби Сървър", + "RestartServer": "Рестартиране на Емби Сървър", + "RecordingCancelled": "Записването е отказано.", + "SeriesCancelled": "Серията е отменена", + "Recording": "Запис", + "SeriesRecording": "Записване на сериал", + "RecordingScheduled": "Планиран запис", + "SeriesRecordingScheduled": "Насрочен запис на сериала", + "HeaderNewRecording": "Нов запис", + "HeaderWakeServer": "Събуди Сървъра", + "AttemptingWakeServer": "Прави се опит за събуждане на сървъра. Моля изчакайте...", + "WakeServerSuccess": "Успех!", + "HeaderCustomizeHomeScreen": "Персонализиране на Началния Екран", + "WakeServerError": "Пакетите Wake On LAN бяха изпратени до вашата сървърна машина, но не можем да се свържем с вашия Emby сървър. Вашата машина може да се нуждае от малко повече време, за да се събуди, или Emby Server може да не работи активно на машината.", + "Days": "Дни", + "Network": "Мрежа", + "Networks": "Мрежи", + "SortByValue": "Подреждане по {0}", + "HeaderSortBy": "Подреждане по", + "HeaderPhotoAlbums": "Фото Албуми", + "Photos": "Снимки", + "HeaderAppearsOn": "Появява се на", + "List": "Списък", + "HeaderRecordSeries": "Запис на Серия", + "HeaderCinemaMode": "Кино интро", + "Conversions": "Преобразувания", + "Downloads": "Изтегляния", + "HeaderManageDownloads": "Управление на изтеглянията", + "InternalStorage": "Вградена памет", + "ExternalStorage": "Външна памет", + "UploadToFollowingServers": "Качване на сървъри", + "UploadingNumItems": "Качване на {0} от {1}", + "DownloadNumItems": "Изтегля се {0} от {1}", + "HeaderSampleRate": "Честота на извадка", + "HeaderReferenceFrames": "Референтни кадри", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Формат На Пикселa", + "Profile": "Профил", + "Bitrate": "Битрейт", + "Expand": "Разширяване", + "Container": "Контейнер", + "Format": "Формат", + "Path": "Път", + "Size": "Размер", + "Resolution": "Резолюция", + "HeaderCodecTag": "Етикет на кодека", + "Framerate": "Честота на кадрите", + "Interlaced": "Interlaced", + "Anamorphic": "Анаморфен", + "Level": "Ниво", + "Timestamp": "Timestamp", + "Language": "Език", + "Codec": "Кодек", + "Stream": "Поток", + "HeaderExtradata": "Допълнителна Информация", + "HeaderHardwareAcceleratedTranscoding": "Хардуерно ускорено транскодиране", + "HeaderHardwareAcceleratedTranscodingDescription": "Използва Вашето GPU. Emby разполага с най-бързото и разширено хардуерно ускорение в индустрията.", + "HeaderOfflineDownloads": "Офлайн Медия", + "AndMuchMoreExclamation": "И много повече!", + "HeaderOfflineDownloadsDescription": "Изтеглете на вашите устройства за лесна офлайн употреба.", + "LiveTvFeatureDescription": "Предавайте Телевизия на живо към всяко приложение на Emby със съвместим телевизионен тунер, инсталиран на вашия Emby сървър.", + "DvrFeatureDescription": "Планирайте индивидуални телевизионни записи на живо, записи на сериали и други с Emby DVR.", + "CinemaModeFeatureDescription": "Cinema Intros ви дава истинското кино изживяване с трейлъри и персонализирани въведения преди основната функция.", + "HeaderFreeApps": "Безплатни Емби Приложения", + "FreeAppsFeatureDescription": "Насладете се на свободен достъп до приложенията Emby за вашите устройства.", + "HeaderBecomeProjectSupporter": "Вземете премиерното издание на Емби", + "HeaderViewServerInfo": "Вижте информация за сървъра", + "PlaybackTvModeRequiresEmbyPremiere": "Възпроизвеждането на мултимедия в телевизионен режим изисква активен {0}абонамент за Emby Premiere{1}.", + "FeatureRequiresEmbyPremiere": "Тази функция изисква активен {0}абонамент за Emby Premiere{1}.", + "HeaderConvertYourRecordings": "Преобразувайте вашите записи", + "Record": "Записване", + "Save": "Запазване", + "Edit": "Редактиране", + "HeaderSavePlaylist": "Запазване На Плейлист", + "Latest": "Последни", + "Download": "Изтегли", + "Downloaded": "Изтеглени", + "Converted": "Конвертиран", + "RemoveFromHistory": "Премахване от историята", + "ConfirmRemoveFromHistory": "Премахване на този елемент от историята?", + "Downloading": "Изтегляне", + "Advanced": "Разширени", + "LinkedToEmbyConnect": "Свързан с Emby Connect", + "Delete": "Изтриване", + "Both": "И двете", + "LabelChannelDisplay": "Показване на канал", + "HeaderDeleteItem": "Изтриване на елемент", + "HeaderDeleteUser": "Изтриване На Потребител", + "DeleteItemConfirmation": "Сигурни ли сте, че искате да изтриете {0}?", + "DeleteUserConfirmation": "Сигурни ли сте, че искате да изтриете потребителя {0}?", + "DeleteUsersConfirmation": "Сигурни ли сте, че искате да изтриете следните потребители: {0}?", + "HeaderDeleteDevice": "Изтриване На Устройство", + "DeleteDeviceConfirmation": "Сигурни ли сте, че искате да изтриете това устройство? То ще се появи отново следващият път, когато потребител се впише чрез него.", + "ConfirmDeleteItem": "Изтриването на този елемент ще го изтрие както от файловата система, така и от вашата медийна библиотека.", + "FollowingFilesWillBeDeleted": "Следните папки и файлове ще бъдат изтрити:", + "AreYouSureToContinue": "Сигурни ли сте, че искате да продължите?", + "Refresh": "Обновяване", + "RefreshingMetadataDots": "Метаданните се опресняват...", + "ScanningLibraryFilesDots": "Сканиране на библиотечни файлове...", + "HeaderFavoritesThenByChannelNumber": "Любими, след това по номер на канал", + "HeaderAddToCollection": "Добавяне към Колекция", + "HeaderFavoritesThenByTitle": "Любими, след това по заглавие", + "HeaderFavoritesThenByDefault": "Любими, след това по подразбиране на каналите", + "HeaderDefaultChannelOrder": "Стандартно подреждане на канали", + "HeaderAddToFavorites": "Добавяне в Любими", + "HeaderRemoveFromFavorites": "Премахване от Любими", + "Favorited": "Добавен в Любими", + "Unfavorited": "Премахнат от Любими", + "HeaderNewCollection": "Нова Колекция", + "HeaderNewPlaylist": "Нов Плейлист", + "AllCollections": "Всички колекции", + "AllPlaylists": "Всички списъци", + "Create": "Създаване", + "HeaderAddedToPlaylist": "Добавен в списък", + "HeaderAddedToCollection": "Добавен в колекция", + "OneItemAddedTo": "1 елемент добавен в \"{0}\".", + "ItemsAddedTo": "{0} елементи добавени в \"{1}\".", + "HeaderAddedToPlayQueue": "Добавен в опашката за възпр.", + "HeaderPlayingNext": "Следващ елемент", + "Help": "Помощ", + "HeaderGetHelp": "Помощ", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Работен плот", + "Mobile": "Мобилно устройство / Таблет", + "Navigation": "Навигация", + "HeaderVideoPlayback": "Видео възпр.", + "TV": "Телевизор", + "HeaderEmbyConnect": "Емби Конект", + "Seasons": "Сезони", + "OneTrack": "1 пътечка", + "OneSeason": "1 Сезон", + "Libraries": "Библиотеки", + "NumberSeasonsValue": "{0} Сезони", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Език на показване:", + "LabelDisplayLanguageHelp": "Превеждането на Емби е текущ проект.", + "LearnHowYouCanContribute": "Научете как може да помогнете.", + "NewCollectionHelp": "Колекциите позволяват да се групират медийни елементи.", + "SearchForCollectionInternetMetadata": "Търсене в интернет за картини и метаданни", + "DisplayMissingEpisodesWithinSeasons": "Показване на липсващите епизоди в сезоните", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Тематични песни", + "EnableBackdrops": "Фонове", + "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": "Пускане при стартиране", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Скрийнсейвър", + "LabelSoundEffects": "Звукови ефекти", + "LabelName": "Име:", + "NewCollectionNameExample": "Пример: Колекция Междузвездни Войни", + "MessageItemsAdded": "Items added.", + "OptionNew": "Нов...", + "LabelPlaylist": "Плейлист:", + "AddToPlaylist": "Добавяне към плейлист", + "HeaderAddToPlaylist": "Добавяне Към Плейлист", + "Subtitles": "Субтитри", + "LabelTheme": "Облик:", + "LabelSettingsTheme": "Настройки на облика:", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Търсене На Субтитри", + "LabelLanguage": "Език:", + "Search": "Търсене", + "NoSubtitleSearchResultsFound": "Няма намерени резултати.", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "Файл", + "Exit": "Изход", + "Sleep": "Заспиване", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "ConfirmDeletion": "Confirm Deletion", + "MySubtitles": "Моите субтитри", + "MessageDownloadQueued": "Download queued.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Unlock Guide", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Replace existing images", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "Replace all metadata", + "SearchForMissingMetadata": "Търсене за лисващи метаданни", + "LabelRefreshMode": "Refresh mode", + "NoItemsFound": "No items found.", + "HeaderSaySomethingLike": "Say Something Like...", + "ButtonTryAgain": "Опитайте Отново", + "HeaderYouSaid": "You Said...", + "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "ValueDiscNumber": "Диск {0}", + "Unrated": "Unrated", + "Favorite": "Любими", + "Like": "Харесване", + "Dislike": "Нехаресване", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup.", + "Open": "Отваряне", + "Play": "Изпълняване", + "Pause": "Пауза", + "HeaderPlayQueue": "Изпълняване На Опашката", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Пускане в разбъркан ред", + "Identify": "Разпознаване", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Редактиране на метаданните", + "Convert": "Конвертиране", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Цял екран", + "ExitFullscreen": "Изход от цял екран", + "Rewind": "Превъртане назад", + "FastForward": "Превъртане напред", + "Remove": "Премахване", + "Rename": "Преименуване", + "Queue": "Опашка", + "QueueAllFromHere": "Queue all from here", + "PlayAllFromHere": "Пускане на всичко от тук", + "PlayFromBeginning": "Пускане отначало", + "FromBeginning": "Пускане отначало", + "ResumeAt": "Продължаване от {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Премахване от колекцията", + "Sort": "Подреждане", + "Trailer": "Трейлър", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Маркирай като изпълнено", + "HeaderMarkUnplayed": "Маркирай като неизпълнено", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderConfirmRecordingCancellation": "Потвърди Спирането На Записа", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Грешка", + "VoiceInput": "Voice Input", + "LabelContentType": "Тип на съдържанието:", + "LabelPath": "Път:", + "Playlists": "Списъци", + "LabelTitle": "Заглавие:", + "LabelOriginalTitle": "Оригинално заглавие:", + "LabelSortTitle": "Sort title", + "LabelDateAdded": "Дата на добавяне:", + "DateAdded": "Дата на добавяне", + "DateModified": "Date Modified", + "DatePlayed": "Дата на пускане", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Състояние:", + "LabelArtistsHelp": "Отделете няколко с ;", + "HeaderAlbumArtists": "Изпълнители на албуми", + "LabelAlbumArtists": "Изпълнители на албума:", + "LabelAlbum": "Албум:", + "Artist": "Artist", + "Artists": "Изпълнители", + "ImdbRating": "Оценка в IMDb", + "CommunityRating": "Обществена ощенка", + "LabelCommunityRating": "Обществена оценка", + "LabelCriticRating": "Оценка на критиците:", + "CriticRating": "Оценка на критиците", + "LabelWebsite": "Сайт:", + "Tagline": "Tagline", + "LabelOverview": "Обобщение:", + "LabelShortOverview": "Кратко обобщение:", + "LabelReleaseDate": "Дата на издаване:", + "LabelPlaceOfBirth": "Рождено място:", + "Aired": "Излъчено", + "LabelAirDays": "Дни на излъчване:", + "LabelAirTime": "Час на излъчване:", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelCustomRating": "Оценка по избор:", + "LabelOriginalAspectRatio": "Оригинално съотношение:", + "Label3DFormat": "Триизмерен формат:", + "FormatValue": "Формат: {0}", + "DownloadsValue": "{0} изтегляния", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Настройки на показване", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Ред на показване:", + "LabelFileOrder": "File order", + "Display": "Показване", + "Countries": "Държави", + "Genres": "Жанрове", + "Studios": "Студиа", + "Tags": "Етикети", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Настройки на метаданните", + "People": "Хора", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Предпочитан език на сваляне:", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LabelCountry": "Държава:", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Birth year", + "LabelBirthDate": "Birth date", + "LabelDeathDate": "Death date", + "LabelEndDate": "End date", + "LabelSeasonNumber": "Номер на сезона:", + "LabelEpisodeNumber": "Номер на епизода:", + "LabelTrackNumber": "Track number", + "LabelNumber": "Number", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Sort Title", + "OriginalTitle": "Original Title", + "ReleaseDate": "Дата на издаване", + "Continuing": "Продължаващо", + "Ended": "Приключило", + "HeaderEnabledFields": "Включени полета", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed.", + "Backdrops": "Фонове", + "Images": "Изображения", + "Runtime": "Времетраене", + "ProductionLocations": "Production locations", + "BirthLocation": "Birth location", + "ParentalRating": "Родителска оценка", + "PlayCount": "Play count", + "Name": "Име", + "Overview": "Обобщение", + "LabelType": "Вид:", + "LabelPersonRole": "Роля:", + "LabelPersonRoleHelp": "Example: Ice cream truck driver", + "Actor": "Актьор", + "Composers": "Composers", + "Composer": "Съчинител", + "Director": "Режисьор", + "GuestStar": "Гостуваща звезда", + "Producer": "Продуцент", + "Writer": "Писател", + "MessageNoSyncJobsFound": "Няма изтегляния. Създайте задачи чрез копчетата за сваляне.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Инсталиране на {0}", + "PackageInstallCompleted": "{0} installation completed.", + "PackageInstallFailed": "{0} installation failed.", + "PackageInstallCancelled": "{0} installation cancelled.", + "SeriesYearToPresent": "{0} - Настояще", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 епизод", + "ValueEpisodeCount": "{0} епизода", + "Albums": "Албуми", + "Song": "Song", + "Songs": "Песни", + "Authors": "Authors", + "Books": "Книги", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "PleaseEnterNameOrId": "Please enter a name or an external Id.", + "MessageItemSaved": "Item saved.", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Сървърно издание Емби - {0} се пуска повторно.", + "ServerNameIsShuttingDown": "Сървърно издание Емби - {0} се изключва.", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "PleaseRestartServerName": "Моля, пуснете сървъра отново - {0}.", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Изтегляне...", + "LearnMore": "Научете повече", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Автоматично сваляне на ново съдържание", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Снимки на екрана", + "MoveRight": "Move right", + "MoveLeft": "Move left", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Изтриване на изображението?", + "HeaderEditImages": "Редактиране на изображенията", + "Settings": "Настройки", + "ShowIndicatorsFor": "Show Indicators", + "Episodes": "Епизоди", + "Programs": "Програми", + "HeaderCastCrew": "Екип и актьори", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}.", + "HeaderCancelRecording": "Cancel Recording", + "HeaderKeepRecording": "Keep Recording", + "HeaderCancelSeries": "Cancel Series", + "HeaderKeepSeries": "Keep Series", + "HeaderLearnMore": "Научете повече", + "SeriesSettings": "Series settings", + "HeaderRecordingOptions": "Recording Options", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Series Options", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Anytime", + "AnyLanguage": "Any language", + "AroundTime": "Around {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "All channels", + "NewEpisodesOnly": "Само нови епизоди", + "AllEpisodes": "All episodes", + "LabelStartWhenPossible": "Start when possible", + "LabelStopWhenPossible": "Stop when possible", + "MinutesBefore": "минути преди", + "MinutesAfter": "минути след", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", + "LabelKeepUpTo": "Keep up to", + "AsManyAsPossible": "As many as possible", + "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "UntilIDelete": "Until I delete", + "UntilSpaceNeeded": "Until space needed", + "Categories": "Categories", + "Sports": "Спортни", + "News": "Новини", + "Movies": "Филми", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Предимства на премиерното издание", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "Имам премиерно издание", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "ButtonUnlockWithPurchase": "Отключване с покупка", + "ButtonUnlockPrice": "Отключване на {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "HeaderUnlockFeature": "Отключване на функцията", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Открийте премиерното издание", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Добавено на {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "В готовност за прехвърляне", + "SyncJobItemStatusSyncedMarkForRemoval": "Премахване от устройството", + "SyncJobItemStatusQueued": "В опашка", + "SyncJobItemStatusConverting": "Преобразуване", + "SyncJobItemStatusTransferring": "Прехвърляне", + "SyncJobItemStatusSynced": "Изтеглено", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Премахнато", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Продължаване", + "ContinueInSecondsValue": "Продължаване след {0} секунди.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Пускане на", + "Quality": "Качество", + "Auto": "Автоматично", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "Моята медия", + "HeaderMyMediaSmall": "Моята медия (малък)", + "LatestFromLibrary": "Последни {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Продължаване на възпоризвеждането", + "ContinueWatching": "Продължаване на гледането", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Продължаване на гледането", + "HeaderContinueListening": "Продължаване на слушането", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Последни записи", + "LabelConvertTo": "Преобразуване в:", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Следва", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Раздел {0} на началния екран:", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Настройките са запазени.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "Нищо", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Начало", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Любими", + "HeaderHomeScreen": "Начален екран", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Подредба на библиотеката", + "HeaderOnNow": "На живо сега", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Справочник", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Предложения", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Любими колекции", + "HeaderFavoritePlaylists": "Любими списъци", + "Collection": "Collection", + "Collections": "Колекции", + "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.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Предавания", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Папки на библиотеката", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Телевизия на живо", + "Schedule": "Разписание", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Сметката в Емби е премахната", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Поканата е изпратена", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Сметката в Емби е добавена", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Режим на субтитрите:", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "Без субтитри", + "Default": "По подразбиране", + "Absolute": "Absolute", + "Smart": "Умни", + "Small": "Малък", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Голям", + "Larger": "Larger", + "ExtraLarge": "Много голям", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Настройки на субтитрите", + "HeaderSubtitleAppearance": "Облик на субтитрите", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Предпочитан език на субтитрите:", + "LabelTextSize": "Размер на текста:", + "TheseSettingsAffectSubtitlesOnThisDevice": "Тези настройки променят субтитрите на текущото устройство", + "LabelDropShadow": "Сянка:", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Шрифт:", + "LabelTextColor": "Цвят на текста:", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Нормален", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "Нужна е Wi-Fi връзка за продължаване на свалянето.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "Hide": "Скриване", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Пуснете изображение тук или щракнете за разглеждане.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Разглеждане", + "HeaderUploadImage": "Качване на изображение", + "HeaderAddUpdateImage": "Добавяне/редактиране на изображение", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Вид изображение:", + "Upload": "Качване", + "Primary": "Главно", + "PrimaryImageBlur": "Primary image blur", + "Art": "Картина", + "Backdrop": "Фон", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Диск", + "Logo": "Логотип", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Меню", + "Screenshot": "Снимка на екрана", + "Thumb": "Миниатюра", + "HeaderAudioSettings": "Настройки на звука", + "LabelAudioLanguagePreference": "Предпочитан език на звука:", + "LabelPlayDefaultAudioTrack": "Да се пуска първоначалната звукова пътечка независимо от езика", + "HeaderVideoQuality": "Качество на видеото", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Автоматично пускане на следващия епизод", + "LabelMaxChromecastBitrate": "Максимално качество на излъчване:", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Включване на режим \"Киносалон\"", + "LabelInternetQuality": "Качество на интернетната връзка:", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Качество на музиката", + "LabelHomeNetworkQuality": "Качество на домашната мрежа:", + "HeaderLatestMedia": "Последни медии", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Автоматично (според езика)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Местоположение за дата и час:", + "Genre": "Genre", + "DirectorValue": "Режисьор: {0}", + "DirectorsValue": "Режисьори: {0}", + "GenreValue": "Жанр: {0}", + "GenresValue": "Жанрове: {0}", + "TagsValue": "Етикети: {0}", + "Off": "Изключено", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Филтри", + "Unplayed": "Непускано", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Водоравно", + "Vertical": "Отвесно", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Трейлъри", + "Extras": "Екстри", + "ThemeSongs": "Фонови песни", + "ThemeVideos": "Фонови видеоклипове", + "HeaderFavoriteMovies": "Любими филми", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Любими предавания", + "HeaderFavoriteEpisodes": "Любими епизоди", + "HeaderFavoriteVideos": "Любими клипове", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Любими игри", + "HeaderFavoriteArtists": "Любими изпълнители", + "HeaderFavoriteAlbums": "Любими албуми", + "HeaderFavoriteSongs": "Любими песни", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "ForgetThisServer": "Forget This Server", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/ca.json b/modules/common/strings/ca.json new file mode 100644 index 0000000..d4208ab --- /dev/null +++ b/modules/common/strings/ca.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby està dissenyat per ajudar-te a gestionar la teva biblioteca multimèdia personal, com vídeos casolans i fotos. Consulta els nostres {0}termes d'ús{1}. L'ús de qualsevol programari d'Emby constitueix l'acceptació d'aquests termes.", + "MessageUnableToConnectToServer": "Ara mateix no podem connectar amb el servidor seleccionat. Assegura't que està en funcionament i torna-ho a intentar.", + "EmbyIntroMessage": "Amb Emby pots transmetre fàcilment vídeos, música i fotos a telèfons intel·ligents, tauletes i altres dispositius des del teu servidor d'Emby.", + "HeaderSignInWithConnect": "Iniciar sessió amb Emby Connect", + "HeaderWelcomeToEmby": "Benvingut a Emby", + "HeaderNewUsers": "Nous Usuaris", + "HeaderPleaseSignIn": "Si et plau, inicia sessió", + "MessageInvalidUser": "Usuari o contrasenya no vàlids. Si et plau, intenta-ho de nou.", + "MessageUnlockAppWithPurchaseOrSupporter": "Activa aquesta funcionalitat amb un únic pagament, o amb una subscripció activa d'Emby Premiere.", + "MessageUnlockAppWithSupporter": "Activa aquesta funcionalitat amb una subscripció activa d'Emby Premiere.", + "MessageToValidateSupporter": "Si tens una subscripció 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ó d'Emby Premiere al menú principal.", + "ValueSpecialEpisodeName": "Especial - {0}", + "HeaderSignIn": "Inicia Sessió", + "Share": "Comparteix", + "Shared": "Compartit", + "Info": "Informació", + "Add": "Afegeix", + "Speed": "Velocitat", + "PlaybackSpeed": "Velocitat de Reproducció", + "Chapters": "Capítols", + "Password": "Contrasenya", + "SavePassword": "Desa Contrasenya", + "LabelPassword": "Contrasenya", + "HeaderResetPassword": "Reiniciar Contrasenya", + "Series": "Sèries", + "Preview": "Previsualització", + "Submit": "Envia", + "Never": "Mai", + "Table": "Taula", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Reproduccions", + "LastUsedAddressValue": "Darrer ús {0}", + "LabelKeywordType": "Tipus de paraula clau", + "HeaderSelectColumns": "Seleccionar col·lumnes", + "HeaderTopResults": "Millors resultats", + "HeaderPinSidebar": "Fixa la barra lateral", + "Collapse": "Redueix", + "LabelBackgroundVideoPlayback": "Reproducció de vídeo en segon pla", + "BackgroundVideoPlaybackHelp": "La reproducció en segon pla permet que el vídeo continuï reproduint-se fins i tot quan la pantalla està apagada.", + "AlwaysOn": "Sempre activat", + "HeadphonesOrExternalSpeakersConnected": "Auriculars o altaveus externs connectats", + "HeaderKeyboardAndRemote": "Teclat i comandament a distància", + "NoSelectedItemsSupportOperation": "No hi ha cap element seleccionat que admeti aquesta operació.", + "NoOperationsForSelectedItems": "No hi ha cap operació disponible per als elements seleccionats.", + "UploadOnlyOnWifi": "Carrega només amb Wi-Fi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Contrasenya (confirma-la)", + "HeaderMoveUpInOrder": "Mou amunt en ordre", + "HeaderDownUpInOrder": "Mou avall en ordre", + "LabelUsername": "Nom d'usuari", + "HeaderAddServer": "Afegeix Servidor", + "HeaderSubtitleOffset": "Desplaçament dels subtítols", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Elimina de Continua Veient", + "RemoveThisTitleFromContinueWatching": "Eliminar-lo de Continua Veient?", + "HeaderRemoveFromContinueListening": "Elimina de Continua Escoltant", + "RemoveThisTitleFromContinueListening": "Vols eliminar aquest títol de Continua Escoltant?", + "HeaderIncreaseSubtitleOffset": "Augmenta el desplaçament dels subtítols", + "HeaderDecreaseSubtitleOffset": "Redueix el desplaçament dels subtítols", + "Close": "Tanca", + "HeaderSeeAll": "Veure tot", + "HeaderOpenInNewWindow": "Obre en una nova finestra", + "LabelEmail": "Email", + "LabelHost": "Amfitrió", + "LabelHostHelp": "Exemple: 192.168.1.100 o https://elmeuservidor.cat", + "LabelPort": "Port", + "Disabled": "Desactivat", + "Uninstall": "Desinstal·la", + "Enable": "Activa", + "AllTuners": "Tots els sintonitzadors", + "Disable": "Desactiva", + "NextValue": "Següent: {0}", + "HeaderNextItem": "Ítem Següent", + "HeaderPreviousItem": "Ítem Anterior", + "NoTrailersMessage": "No s'ha trobat cap tràiler. Per afegir tràilers, instal·la el complement de tràilers des del {0}catàleg de complements d'Emby{1}.", + "UninstallPluginConfirmation": "Estàs segur que vols desinstal·lar aquest complement?", + "HeaderUninstallPlugin": "Desinstal·lar Complement", + "AreYouStillWatching": "Encara ho estàs veient?", + "LabelCurrentPassword": "Contrasenya actual", + "LabelNewPassword": "Nova contrasenya", + "LabelNewPasswordConfirm": "Confirmació de la nova contrasenya", + "HeaderRemovePassword": "Eliminar Contrasenya", + "ServerUpdateNeeded": "El Servidor Emby necessita ser actualitzat. Per descarregar la darrera versió, si et plau, visita {0}", + "MessageThankYouForConnectSignUp": "Gràcies per registrar-te a Emby Connect. Rebràs un correu electrònic amb instruccions per confirmar el teu nou compte. Confirma'l i després torna aquí per iniciar sessió.", + "MessageThankYouForConnectSignUpNoValidation": "Gràcies per registrar-te a Emby Connect! Ara se't demanarà que iniciïs sessió amb la teva informació d'Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "La contrasenya i la confirmació de la contrasenya han de coincidir.", + "ErrorMessageUsernameInUse": "Aquest nom d'usuari ja està en ús. Si et plau, escull un altre nom i torna a provar.", + "ErrorMessageEmailInUse": "L'adreça de correu electrònic ja està en ús. Introdueix-ne una de nova i torna-ho a intentar, o utilitza la funció de recuperació de contrasenya.", + "HeaderUpcomingOnTV": "Properament a la TV en directe", + "HeaderOtherShowings": "Altres emissions", + "Showings": "Emissions", + "HeaderConnectToServer": "Connectar al Servidor", + "ConnectToServerManually": "Connecta al servidor manualment", + "LabelEnterConnectUserNameHelp": "Aquesta és l'adreça de correu que vas fer servir quan vas configurar el teu compte d'Emby Connect.", + "HeaderSignInError": "Error d'inici de sessió", + "HeaderManualLogin": "Inici de Sessió Manual", + "PasswordResetConfirmation": "Estàs segur que vols restablir la contrasenya?", + "ContactAdminToResetPassword": "Siusplau contacta amb l'adiministrador per restablir la contrasenya.", + "ForgotPasswordInNetworkRequired": "Siusplau, intenta-ho de nou dins la teva xarxa domèstica per iniciar el procés de restabliment de contrasenya.", + "ForgotPasswordFileCreated": "S'ha creat el fitxer següent al teu servidor i conté instruccions sobre com procedir:", + "ForgotPasswordFileExpiration": "El codi de restabliment caducarà a les {0}.", + "InvalidForgotPasswordPin": "S'ha introduït un codi no vàlid o caducat. Siusplau, torna-ho a intentar.", + "PasswordResetForUsers": "S'han eliminat les contrasenyes dels usuaris següents. Per iniciar sessió, entra sense contrasenya.", + "HeaderForgotPassword": "Contrasenya Perduda?", + "ForgotPasswordUsernameHelp": "Deixa-ho en blanc si no recordes el teu nom d'usuari.", + "HeaderPasswordReset": "Reiniciar Contrasenya", + "AttributeNew": "Nou", + "Done": "Fet", + "HeaderResetToDefault": "Restableix als valors per defecte", + "Deinterlacing": "Desentrellaçat", + "HeaderBurningInSubtitles": "Incrustació de subtítols", + "Premiere": "Première", + "LabelPinCode": "Codi pin", + "LabelLocalNetworkPinCode": "Codi pin de la xarxa local", + "LabelLocalNetworkPasswordMode": "Mode d'inici de sessió a la xarxa local", + "RequirePasswordInLocalNetwork": "Requereix una contrasenya a la xarxa local", + "NoPasswordInLocalNetwork": "No requereixis contrasenya a la xarxa local", + "PinCodeInLocalNetwork": "Permet un codi PIN numèric a la xarxa local", + "LocalNetworkPasswordModeHelp": "Selecciona el mètode d'inici de sessió per als dispositius a la mateixa xarxa local que el teu servidor d'Emby.", + "HeaderLocalNetworkAccess": "Accés a la Xarxa Local", + "Live": "Directe", + "Reset": "Reinicia", + "Repeat": "Repeteix", + "Track": "Pista", + "Tracks": "Pistes", + "HeaderCameraUpload": "Càrregues de Càmera", + "TrackCount": "{0} pistes", + "ItemCount": "{0} ítems", + "NumberChannelsValue": "{0} Canals", + "HeaderLatestMusic": "Darrera Música", + "HeaderLatestAudioBooks": "Darrers Audiollibres", + "HeaderLatestDownloadedVideos": "Darrers Vídeos Descarregats", + "HeaderRecentlyPlayed": "Reproduït Recentment", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Reproduït Freqüentment", + "HeaderMoreLikeThis": "Coses Semblants", + "HeaderMoreLikeThisOnLiveTV": "Coses semblants a TV en directe", + "OriginalAirDateValue": "Data original d'emissió: {0}", + "EndsAtValue": "Acabaria a les {0}", + "Date": "Data", + "AirDate": "Data en què s'emet", + "Played": "Reproduït", + "Daily": "Diari", + "Weekly": "Setmanal", + "RequireHashMatch": "Requereix una coincidència de hash", + "RequireHashMatchHelp": "Requerir una coincidència de hash filtrarà els subtítols per incloure només aquells que s'han provat amb el teu fitxer de vídeo exacte. Si ho desmarques, augmentarà el nombre de subtítols coincidents, però també augmentarà el risc de text desincronitzat o incorrecte.", + "SearchForForcedSubtitlesOnly": "Només subtítols forçats", + "SearchForForcedSubtitlesOnlyHelp": "Requerir subtítols forçats limitarà els resultats als subtítols etiquetats com a llengua estrangera.", + "LastEpisodeDateAdded": "Data del darrer episodi afegit", + "LastEpisodeDateAired": "Data de llançament del darrer episodi", + "LabelPlaystate": "Estat de reproducció", + "Studio": "Estudi", + "Tag": "Etiqueta", + "EpisodeTitle": "Títol de l'episodi", + "Audio": "Àudio", + "Video": "Vídeo", + "Subtitle": "Subtítol", + "Image": "Imatge", + "CopyStream": "Copia el flux original", + "LabelAudioLayout": "Disposició d'àudio", + "LabelAudioCodec": "Còdec d'àudio", + "LabelAudioLanguage": "Idioma de l'àudio", + "LabelSubtitleLanguage": "Idioma del subtítol", + "LabelVideoCodec": "Còdec de vídeo", + "LabelSubtitleCodec": "Còdec de subtítols", + "LabelParentalRating": "Valoració parental", + "BecauseYouLikeValue": "Com que t'agrada {0}", + "BecauseYouWatchedValue": "Com que has vist {0}", + "DirectedByValue": "Dirigit per {0}", + "StarringValue": "Protagonitzat per {0}", + "Invitations": "Invitacions", + "ActorAsRole": "com {0}", + "ButtonOk": "D'acord", + "GroupItemsIntoCollections": "Agrupa ítems en col·leccions", + "GroupItemsIntoCollectionsHelp": "Agrupa els elements segons les col·leccions a les quals s'han afegit. L'activació de certs filtres o ordres de classificació pot desactivar-ho automàticament.", + "GroupItemsIntoTags": "Agrupa els elements en etiquetes", + "GroupItemsIntoTagsHelp": "Agrupa els elements segons les etiquetes a les quals s'han afegit. L'activació de certs filtres o ordres de classificació pot desactivar-ho automàticament.", + "User": "Usuari", + "Access": "Accés", + "Users": "Usuaris", + "Library": "Biblioteca", + "Devices": "Dispositius", + "Cancel": "Cancel·la", + "Restart": "Reinicia", + "Shutdown": "Apaga", + "Logs": "Registres", + "Visibility": "Visibilitat", + "Notifications": "Notificacions", + "SendTestNotification": "Envia una notificació de prova", + "NotificationSent": "Notificació enviada", + "DeleteNotificationConfirmation": "Estàs segur que vols esborrar aquesta notificació?", + "DeleteNotification": "Esborra Notificació", + "AddNotification": "Afegeix Notificació", + "EditNotification": "Edita Notificació", + "LimitUserEventsTo": "Limita els esdeveniments de l'usuari a", + "LimitLibraryEventsTo": "Limita els esdeveniments de la biblioteca a", + "LimitDeviceEventsTo": "Limita els esdeveniments dels dispositius a", + "ForAdditionalNotificationOptions": "Serveis de notificació addicionals es poden instal·lar per l'administrador del servidor al {0}catàleg de complements d'Emby{1}.", + "Plugins": "Complements", + "Systems": "Sistemes", + "Server": "Servidor", + "Dashboard": "Tauler de Control", + "PlayOnAnotherDevice": "Reprodueix en un altre dispositiu", + "HeaderConnectionHelp": "Ajuda de Connexió", + "AccessRestrictedTryAgainLater": "L'accés està restringit actualment. Intenta-ho de nou més tard si et plau.", + "ButtonGotIt": "Entesos", + "RememberMe": "Recorda'm", + "EmbyServer": "Servidor d'Emby", + "ManageEmbyServer": "Gestiona el Servidor d'Emby", + "ShutdownServer": "Apaga el Servidor d'Emby", + "RestartServer": "Reinicia el Servidor d'Emby", + "RecordingCancelled": "Enregistrament cancel·lat", + "SeriesCancelled": "Sèrie cancel·lada", + "Recording": "Enregistrament", + "SeriesRecording": "Enregistrament de sèries", + "RecordingScheduled": "Enregistrament programat", + "SeriesRecordingScheduled": "Enregistrament de la sèrie programat", + "HeaderNewRecording": "Nou Enregistrament", + "HeaderWakeServer": "Despertar Servidor", + "AttemptingWakeServer": "Intentant engegar el servidor, espera si et plau...", + "WakeServerSuccess": "Fet!", + "HeaderCustomizeHomeScreen": "Personalitzar Pàgina d'Inici", + "WakeServerError": "S'han enviat paquets Wake On LAN a la teva màquina servidor, però no podem connectar amb el teu servidor d'Emby. La màquina pot necessitar més temps per activar-se, o el servidor d'Emby podria no estar en funcionament.", + "Days": "Dies", + "Network": "Cadena", + "Networks": "Networks", + "SortByValue": "Endreça per {0}", + "HeaderSortBy": "Ordena per", + "HeaderPhotoAlbums": "Àlbums de Fotos", + "Photos": "Fotos", + "HeaderAppearsOn": "Apareix A", + "List": "Llista", + "HeaderRecordSeries": "Enregistra Sèries", + "HeaderCinemaMode": "Introduccions de Cine", + "Conversions": "Conversions", + "Downloads": "Descàrregues", + "HeaderManageDownloads": "Gestiona les descàrregues", + "InternalStorage": "Emmagatzematge intern", + "ExternalStorage": "Emmagatzematge extern", + "UploadToFollowingServers": "Carrega als servidors", + "UploadingNumItems": "Carregant {0} de {1}", + "DownloadNumItems": "Descarregant {0} de {1}", + "HeaderSampleRate": "Freqüència de mostreig", + "HeaderReferenceFrames": "Frames de referència", + "HeaderBitDepth": "Profunditat de bits", + "HeaderPixelFormat": "Format de píxels", + "Profile": "Perfil", + "Bitrate": "Taxa de bits", + "Expand": "Expandeix", + "Container": "Contenidor", + "Format": "Format", + "Path": "Directori", + "Size": "Mida", + "Resolution": "Resolució", + "HeaderCodecTag": "Etiqueta del còdec", + "Framerate": "Freqüència de fotogrames", + "Interlaced": "Entrellaçat", + "Anamorphic": "Anamòrfic", + "Level": "Nivell", + "Timestamp": "Marca de temps", + "Language": "Idioma", + "Codec": "Còdec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Mitjans Sense Connexió", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Descarrega mitjans als teus dispositius per a un fàcil ús fora de línia.", + "LiveTvFeatureDescription": "Stream Live TV to any Emby app, with a compatible TV tuner device installed on your Emby Server.", + "DvrFeatureDescription": "Programa enregistraments de TV en directe individuals, de sèries i molt més amb Emby DVR.", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature.", + "HeaderFreeApps": "Free Emby Apps", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", + "HeaderBecomeProjectSupporter": "Obtenir Emby Premiere", + "HeaderViewServerInfo": "Veure informació del servidor", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "This feature requires an active {0}Emby Premiere subscription{1}.", + "HeaderConvertYourRecordings": "Convertir Els Teus Enregistraments", + "Record": "Grava", + "Save": "Desa", + "Edit": "Edita", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Descarrega", + "Downloaded": "Descarregat", + "Converted": "Converted", + "RemoveFromHistory": "Elimina de l'historial", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Descarregant", + "Advanced": "Avançat", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Esborra", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Esborrar Ítem", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library.", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Refresca", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Afegeix a col·lecció", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Afegeix a preferits", + "HeaderRemoveFromFavorites": "Elimina de preferits", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Afegit a la cua", + "HeaderPlayingNext": "Playing Next", + "Help": "Ajuda", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Escriptori", + "Mobile": "Mòbil / Tauleta", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Temporades", + "OneTrack": "1 Pista", + "OneSeason": "1 Temporada", + "Libraries": "Biblioteques", + "NumberSeasonsValue": "{0} Temporades", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Idioma de visualització", + "LabelDisplayLanguageHelp": "La traducció d'Emby és un projecte en curs.", + "LearnHowYouCanContribute": "Aprèn com pots contribuir.", + "NewCollectionHelp": "Les col·leccions et permeten crear agrupacions personalitzades de pel·lícules i altres continguts.", + "SearchForCollectionInternetMetadata": "Cerca a internet artwork i metadades", + "DisplayMissingEpisodesWithinSeasons": "Mostra també els episodis que no tingui a les temporades", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Habilita les cançons temàtiques", + "EnableBackdrops": "Habilita els fons", + "EnableThemeSongsHelp": "Si ho actives, les cançons temàtiques es reproduiran de fons mentre naveguis per la biblioteca.", + "EnableBackdropsHelp": "Si ho habilites, es mostraran imatges de fons en algunes pàgines mentre naveguis per la biblioteca.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "RunAtStartup": "Arrenca en iniciar", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Salva pantalla", + "LabelSoundEffects": "Efectes de so", + "LabelName": "Nom", + "NewCollectionNameExample": "Exemple: Col·leció Star Wars", + "MessageItemsAdded": "Ítems afegits.", + "OptionNew": "Nou...", + "LabelPlaylist": "Llista de rep.", + "AddToPlaylist": "Afegeix a la llista de reproducció", + "HeaderAddToPlaylist": "Afegeix a la llista de reproducció", + "Subtitles": "Subtítols", + "LabelTheme": "Tema", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Cerca Subtítols", + "LabelLanguage": "Idioma", + "Search": "Cerca", + "NoSubtitleSearchResultsFound": "No s'han trobat resultats. Has configurat la {0}descàrrega de subtítols{1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "Fitxer", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Estàs segur que vols eliminar aquest fitxer de subtítols?", + "ConfirmDeletion": "Confirma supressió", + "MySubtitles": "Els meus subtítols", + "MessageDownloadQueued": "Descàrrega encuada.", + "HeaderEditSubtitles": "Edita subtítols", + "UnlockGuide": "Guia de desbloqueig", + "HeaderRefreshMetadata": "Refresca les metadades", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Reemplaça imatges existents", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "Reemplaça totes les metadades", + "SearchForMissingMetadata": "Cerca metadades perdudes", + "LabelRefreshMode": "Mode de refresc", + "NoItemsFound": "No s'han trobat ítems.", + "HeaderSaySomethingLike": "Digues alguna cosa com...", + "ButtonTryAgain": "Intenta-ho de nou", + "HeaderYouSaid": "Has dit...", + "MessageWeDidntRecognizeCommand": "Ho sentim, no reconeixem aquesta comanda.", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "ValueDiscNumber": "Disc {0}", + "Unrated": "Sense valorar", + "Favorite": "Favorit", + "Like": "M'agrada", + "Dislike": "No m'agrada", + "RefreshDialogHelp": "Les metadades es refresquen basant-se en les preferències i els proveïdors de metadades que hi hagi habilitats a la teva configuració de la biblioteca d'Emby.", + "Open": "Obre", + "Play": "Reprodueix", + "Pause": "Pause", + "HeaderPlayQueue": "Cua de reproducció", + "HeaderAddToPlayQueue": "Afegeix a la cua", + "Shuffle": "Aleatori", + "Identify": "Identifica", + "HeaderRemoveIdentification": "Elimina la identificació", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edita metadades", + "Convert": "Converteix", + "Resume": "Reprendre", + "HeaderInstantMix": "Mescla instantània", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Ves a la temporada", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Reproduir-ho tot", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Cua", + "QueueAllFromHere": "Afegeix tots a la cua des d'aquí", + "PlayAllFromHere": "Reprodueix tots des d'aquí", + "PlayFromBeginning": "Reprodueix des de l'inici", + "FromBeginning": "From Beginning", + "ResumeAt": "Reprodueix des de {0}", + "HeaderRemoveFromPlaylist": "Elimina de la llista de reproducció", + "HeaderRemoveFromPlayQueue": "Elimina de la cua de reproducció", + "HeaderRemoveFromCollection": "Elimina de la col·lecció", + "Sort": "Endreça", + "Trailer": "Tràiler", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Marca'l com a reproduït", + "HeaderMarkUnplayed": "Marca'l com a no reproduït", + "HeaderGroupVersions": "Agrupa versions", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderConfirmRecordingCancellation": "Confirmar Cancel·lació de l'Enregistrament", + "MessageConfirmRecordingCancellation": "Cancel·lar enregistrament?", + "Album": "Àlbum", + "AlbumArtist": "Album Artist", + "Error": "Error", + "VoiceInput": "Entrada de Veu", + "LabelContentType": "Tipus de contingut", + "LabelPath": "Directori", + "Playlists": "Llistes de reproducció", + "LabelTitle": "Títol", + "LabelOriginalTitle": "Títol original", + "LabelSortTitle": "Títol d'endreçat", + "LabelDateAdded": "Data en què s'ha afegit", + "DateAdded": "Data en què s'ha afegit", + "DateModified": "Date Modified", + "DatePlayed": "Data en què es s'ha reproduït", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Estat", + "LabelArtistsHelp": "Separa'n varis emprant ;", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Album artists", + "LabelAlbum": "Àlbum", + "Artist": "Artist", + "Artists": "Artistes", + "ImdbRating": "Qualificació d'IMDb", + "CommunityRating": "Valoració de la comunitat", + "LabelCommunityRating": "Valoració de la comunitat", + "LabelCriticRating": "Valoració crítica", + "CriticRating": "Valoració crítica", + "LabelWebsite": "Website", + "Tagline": "Tagline", + "LabelOverview": "Sinopsi", + "LabelShortOverview": "Sinopsi curta", + "LabelReleaseDate": "Data de publicació", + "LabelPlaceOfBirth": "Lloc de naixement", + "Aired": "Aired", + "LabelAirDays": "Air days", + "LabelAirTime": "Air time", + "LabelRuntimeMinutes": "Durada (minuts)", + "LabelCustomRating": "Valoració pròpia", + "LabelOriginalAspectRatio": "Relació d'aspecte original", + "Label3DFormat": "Format 3D", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} descàrregues", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Habilitar reproductors de vídeo externs", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "Identificadors externs", + "HeaderDisplaySettings": "Opcions de Visualització", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Ordre de visualització", + "LabelFileOrder": "File order", + "Display": "Visualització", + "Countries": "Països", + "Genres": "Gèneres", + "Studios": "Estudis", + "Tags": "Etiquetes", + "Links": "Enllaços", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Preferències de Metadades", + "People": "Gent", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Idioma preferit de descàrrega de les metadades", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Bloca aquest ítem per evitar canvis futurs", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LabelCountry": "País", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "Identificador {0}", + "LabelBirthYear": "Any de naixement", + "LabelBirthDate": "Data de naixement", + "LabelDeathDate": "Data de defunció", + "LabelEndDate": "Data de finalització", + "LabelSeasonNumber": "Temporada", + "LabelEpisodeNumber": "Episodi", + "LabelTrackNumber": "Pista", + "LabelNumber": "Nombre", + "LabelDiscNumber": "Disc", + "LabelParentNumber": "Parent number", + "SortName": "Nom per endreçar", + "OriginalTitle": "Original Title", + "ReleaseDate": "Data de publicació", + "Continuing": "Continua", + "Ended": "Acabades", + "HeaderEnabledFields": "Camps Habilitats", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed.", + "Backdrops": "Fons", + "Images": "Imatges", + "Runtime": "Durada", + "ProductionLocations": "Production locations", + "BirthLocation": "Birth location", + "ParentalRating": "Valoració parental", + "PlayCount": "Nombre de reproduccions", + "Name": "Nom", + "Overview": "Overview", + "LabelType": "Tipus", + "LabelPersonRole": "Rol", + "LabelPersonRoleHelp": "Exemple: Conductor de camió de gelats", + "Actor": "Actor", + "Composers": "Compositors", + "Composer": "Compositor", + "Director": "Director", + "GuestStar": "Artista convidat", + "Producer": "Productor", + "Writer": "Escriptor", + "MessageNoSyncJobsFound": "No s'han trobat descàrregues. Crea noves tasques de descàrrega emprant els botons de \"Descarrega\" que trobaràs per tota l'app.", + "MessageNoDownloadsFound": "No s'han trobat descàrregues sense connexió. Descarrega mitjans per reproduir sense connexió emprant els botons de \"Descarrega\" que trobaràs per tota l'app.", + "InstallingPackage": "Instal·lant {0}", + "PackageInstallCompleted": "{0} installation completed.", + "PackageInstallFailed": "{0} installation failed.", + "PackageInstallCancelled": "Instal·lació {0} cancel·lada.", + "SeriesYearToPresent": "{0} - Present", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episodis", + "Albums": "Àlbums", + "Song": "Song", + "Songs": "Cançons", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audiollibres", + "HeaderAudioBooks": "Audiollibres", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "PleaseEnterNameOrId": "Please enter a name or an external Id.", + "MessageItemSaved": "Ítem desat.", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Emby Server - {0} is restarting.", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "PleaseRestartServerName": "Reinicia el Servidor d'Emby {0} si et plau", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Descarregant...", + "LearnMore": "Saber-ne més", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Converteix només els vídeos no reproduïts", + "SyncUnwatchedVideosOnly": "Descarrega només els vídeos no reproduïts", + "ConvertUnwatchedVideosOnlyHelp": "Només es convertiran els vídeos que no estiguin marcats com a completament reproduïts.", + "SyncUnwatchedVideosOnlyHelp": "Només els vídeos no marcats com a reproduïts seran descarregats, i els vídeos seran eliminats del dispositiu un cop hagin estat reproduïts.", + "AutomaticallySyncNewContent": "Descarrega nou contingut automàticament", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Converteix nou contingut automàticament", + "AutomaticallyConvertNewContentHelp": "Els nous continguts afegits a aquest directori es convertiran automàticament.", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Selecciona el dispositiu on ho vulguis descarregar.", + "Screenshots": "Captures de pantalla", + "MoveRight": "Moure a la dreta", + "MoveLeft": "Moure a l'esquerra", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Esborrar imatge?", + "HeaderEditImages": "Edita Imatges", + "Settings": "Preferències", + "ShowIndicatorsFor": "Mostra indicadors", + "Episodes": "Episodis", + "Programs": "Programes", + "HeaderCastCrew": "Repartiment i Equip", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}.", + "HeaderCancelRecording": "Cancel·lar Enregistrament", + "HeaderKeepRecording": "Continuar Enregistrant", + "HeaderCancelSeries": "Cancel·lar Sèries", + "HeaderKeepSeries": "Mantenir Sèries", + "HeaderLearnMore": "Saber-ne Més", + "SeriesSettings": "Preferències de la sèrie", + "HeaderRecordingOptions": "Opcions d'Enregistrament", + "HeaderDoNotRecord": "No enregistris", + "HeaderSeriesOptions": "Opcions de Sèries", + "Layout": "Disposició", + "Channels": "Canals", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Anytime", + "AnyLanguage": "Qualsevol idioma", + "AroundTime": "Cap a les {0}", + "HeaderLatestMovies": "Darreres Pel·lícules", + "All": "All", + "Stop": "Atura", + "AllChannels": "Tots els canals", + "NewEpisodesOnly": "Només nous episodis", + "AllEpisodes": "Tots els episodis", + "LabelStartWhenPossible": "Inicia quan sigui possible", + "LabelStopWhenPossible": "Atura quan sigui possible", + "MinutesBefore": "minuts abans", + "MinutesAfter": "minuts després", + "SkipEpisodesAlreadyInMyLibrary": "No enregistris episodis que ja estan a la meva biblioteca", + "SkipEpisodesAlreadyInMyLibraryHelp": "Els episodis es compararan emprant la temporada i el nombre d'episodi quan siguin disponibles.", + "LabelKeepUpTo": "Mantingues fins a", + "AsManyAsPossible": "Tants com sigui possible", + "DefaultErrorMessage": "Hi ha hagut un error processant la petició. Intenta-ho més tard si et plau.", + "UntilIDelete": "Until I delete", + "UntilSpaceNeeded": "Until space needed", + "Categories": "Categories", + "Sports": "Sports", + "News": "Actualitat", + "Movies": "Pel·lícules", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "I have Emby Premiere", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restaura Compra", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "ButtonUnlockPrice": "Unlock {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "HeaderUnlockFeature": "Unlock Feature", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", + "HeaderNowPlaying": "Reproduïnt", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Afegit el {0}", + "RemovingFromDevice": "Eliminant del dispositiu", + "KeepOnDevice": "Mantingues al dispositiu", + "CancelDownload": "Cancel·la descàrrega", + "SyncJobItemStatusReadyToTransfer": "Llest per transferir", + "SyncJobItemStatusSyncedMarkForRemoval": "Eliminant del dispositiu", + "SyncJobItemStatusQueued": "Encuat", + "SyncJobItemStatusConverting": "Convertint", + "SyncJobItemStatusTransferring": "Transferint", + "SyncJobItemStatusSynced": "Descarregat", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Eliminat del dispositiu", + "Cancelled": "Cancelled", + "Retry": "Reintenta", + "Continue": "Continua", + "ContinueInSecondsValue": "Continua en {0} segons", + "HeaderRemoteControl": "Control Remot", + "Disconnect": "Desconnecta", + "EnableDisplayMirroring": "Habilita la vista de mirall", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Qualitat", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Relació d'aspecte", + "Original": "Original", + "Fill": "Omplir", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accepta", + "Reject": "Rebutja", + "Connect": "Connecta", + "HeaderMyMedia": "Els meus mitjans", + "HeaderMyMediaSmall": "Els meus mitjans (petit)", + "LatestFromLibrary": "Novetats a {0}", + "HeaderLatestEpisodes": "Darrers Episodis", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continua Veient", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continua Veient", + "HeaderContinueListening": "Continua Escoltant", + "HeaderActiveRecordings": "Enregistraments Actius", + "HeaderLatestRecordings": "Darrers Enregistraments", + "LabelConvertTo": "Convertir a", + "LabelDownloadTo": "Descarrega a", + "HeaderDownloadToDots": "Descarrega a...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Versió {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "A continuació", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Novetats a {0}", + "LabelHomeScreenSectionValue": "Secció {0} de la pàgina d'inici", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Preferències desades.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "Cap", + "More": "Més", + "Up": "Amunt", + "Down": "Avall", + "Home": "Inici", + "Back": "Back", + "Random": "Random", + "Playback": "Reproducció", + "Favorites": "Preferits", + "HeaderHomeScreen": "Pàgina d'Inici", + "HeaderLatestChannelItems": "Darrers ítems del canal", + "HeaderLibraryOrder": "Ordre de la Biblioteca", + "HeaderOnNow": "En Directe Ara", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Error de Reproducció", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guia", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggerències", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Col·leccions Preferides", + "HeaderFavoritePlaylists": "Llistes de Reproducció Preferides", + "Collection": "Collection", + "Collections": "Col·leccions", + "LabelSelectFolderGroups": "Agrupa automàticament el contingut de les següents carpetes en col·leccions com Pel·lícules, Música i TV:", + "LabelSelectFolderGroupsHelp": "Les carpetes desmarcades seran mostrades individualment en la seva pròpia vista.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Directoris", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Mostra-ho a la pàgina d'inici", + "Shows": "Programes", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "Programes de TV", + "HeaderLibraryFolders": "Directoris de la Biblioteca", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Pantalla per defecte", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Sí", + "No": "No", + "HeaderScanLibraryFiles": "Escaneja els fitxers de la biblioteca", + "LiveTV": "TV en Directe", + "Schedule": "Horari", + "Recordings": "Enregistraments", + "ScanForNewAndUpdatedFiles": "Escaneja fitxers nous i modificats", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Convertint vídeo a còdec compatible", + "AudioCodecNotSupported": "Convertint àudio a còdec compatible", + "SubtitleCodecNotSupported": "Convertint subtítols directament al vídeo", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Convertint a contenidor suportat", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Convertint a taxa de bits d'àudio compatible", + "AudioChannelsNotSupported": "Convertint a un nombre compatible de canals d'àudio", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Convertint a un perfil d'àudio compatible", + "AudioSampleRateNotSupported": "Convertint a una freqüència de mostreig d'àudio compatible", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Desentrellaçant vídeo", + "SecondaryAudioNotSupported": "Seleccionant pista d'àudio secundària", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Sense connexió", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Mode de subtítol", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "Sense subtítols", + "Default": "Per defecte", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forçats", + "External": "Extern", + "HeaderEmbeddedTitle": "Títol incrustat", + "OnlyForcedSubtitles": "Només subtítols forçats", + "AlwaysPlaySubtitles": "Reprodueix sempre amb subtítols", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Preferències de subtítols", + "HeaderSubtitleAppearance": "Apariència de subtítols", + "OnlyForcedSubtitlesHelp": "Només es carregaran aquells subtítols marcats com a forçats.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Idioma preferit de subtítols", + "LabelTextSize": "Text size", + "TheseSettingsAffectSubtitlesOnThisDevice": "Aquestes preferències afecten els subtítols d'aquest dispositiu", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Esperant Wifi", + "WifiRequiredToDownload": "Es requereix una connexió Wifi per continuar descarregant.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Preferències de descàrregues", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "Sense límit", + "Hide": "Amaga", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Atura l'enregistrament", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "Mostra Camps", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Preferències d'Àudio", + "LabelAudioLanguagePreference": "Idioma preferit per als àudios", + "LabelPlayDefaultAudioTrack": "Reprodueix la pista d'àudio per defecte ignorant l'idioma", + "HeaderVideoQuality": "Video Quality", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Reprodueix el següent episodi automàticament", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Temps de rebobinat", + "LabelSkipForwardLength": "Temps d'avançament", + "EnableCinemaMode": "Habilitar Intros de Cine", + "LabelInternetQuality": "Qualitat d'internet", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Darrers MItjans", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "Genre": "Genre", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directors: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Gèneres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Deshabilita", + "Title": "Títol", + "Year": "Year", + "Filter": "Filtra", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Tràilers", + "Extras": "Extras", + "ThemeSongs": "Cançons temàtiques", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Pel·lícules Preferides", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Programes Preferits", + "HeaderFavoriteEpisodes": "Episodis Preferits", + "HeaderFavoriteVideos": "Vídeos Preferits", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Jocs Preferits", + "HeaderFavoriteArtists": "Artistes Preferits", + "HeaderFavoriteAlbums": "Àlbums Preferits", + "HeaderFavoriteSongs": "Cançons Preferides", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Audiollibres Preferits", + "Ascending": "Ascendent", + "Descending": "Descendent", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Gent Preferida", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Tanca Sessió", + "HeaderSelectServer": "Seleccionar servidor", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Canvia d'usuari", + "HeaderAppSettings": "Configura l'aplicació", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Informació Multimèdia", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Qualsevol", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Habilita la pregunta \"Encara ho estàs veient?\"", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Inclòs a", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Recorda la selecció de pistes d'àudio", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "Quan continuïs, rebobina automàticament", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Estil del fons reproduint àudio", + "LabelNowPlayingVideoBackgroundStyle": "Estil del fons reproduint vídeo", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Salta Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Saltat d'introduccions", + "ShowSkipIntroButton": "Mostra el botó de \"Salta Intro\"", + "AutoSkipIntro": "Salta introduccions automàticament", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Mostra un botó de \"Salta Intro\" o salta les introduccions automàticament per a episodis on el servidor d'Emby hagi detectat marcadors d'introduccions. La detecció d'introduccions ha d'estar habilitada a les opcions de la biblioteca del servidor d'Emby.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Defineix la teva mida preferida per a les imatges de les graelles.", + "LabelImageSize": "Mida d'imatges", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Continua reproduint de fons", + "LabelVideoBackBehavior": "Comportament del botó d'anar enrere al reproductor", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "Veure els episodis que falten", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Elimina de la biblioteca", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Orientació de la pantalla durant la reproducció", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Pel·lícules Publicades Recentment", + "RecentlyReleasedEpisodes": "Episodis Publicats Recentment", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Iniciar sessió a {0}", + "About": "Detalls", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Mostra un pòster a la pantalla de detalls", + "ShowPosterOnDetailsHelp": "Escull si mostrar un pòster a la pantalla de detalls de vídeos, o amagar-lo per a un aspecte més minimalista que emfatitza el fons. Aquesta opció no es fa servir en dispositius amb pantalles petites. Alguns ítems ignoraran aquesta opció.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Comportament d'arrencada", + "RememberLastUser": "Recordar darrer usuari", + "ShowLoginScreen": "Mostrar pantalla d'inici de sessió", + "SignInAsValue": "Iniciar sessió com a {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/cs.json b/modules/common/strings/cs.json new file mode 100644 index 0000000..368de5f --- /dev/null +++ b/modules/common/strings/cs.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby je navrženo tak, aby pomohlo spravovat Vaši osobní sbírku médií jako jsou videa a fotky. Prosím přečtěte si naše {0}podmínky použití{1}. Používáním programu Emby vyjadřujete souhlas s těmito podmínkami.", + "MessageUnableToConnectToServer": "Momentálně nejsme schopni se připojit k vybranému serveru. Prosím, ujistěte se, že je spuštěn a zkuste to znovu.", + "EmbyIntroMessage": "S Emby můžete snadno streamovat videa, hudbu a fotografie na chytré telefony, tablety a další zařízení ze svého Emby serveru.", + "HeaderSignInWithConnect": "Přihlásit se pomocí Emby Connect", + "HeaderWelcomeToEmby": "Vítejte v Emby", + "HeaderNewUsers": "Noví uživatelé", + "HeaderPleaseSignIn": "Prosím, přihlašte se", + "MessageInvalidUser": "Neplatné uživatelské jméno nebo heslo. Zkuste, prosím, znovu.", + "MessageUnlockAppWithPurchaseOrSupporter": "Odemknout tuto funkci pomocí jednorázové platby, nebo pomocí aktivace předplatného Emby Premiere.", + "MessageUnlockAppWithSupporter": "Odemknout tuto funkci pomocí aktivního předplatného Emby Premiere.", + "MessageToValidateSupporter": "Pokud máte aktivní předplatné Emby Premiere, ujistěte se, že máte nastaven Emby Premiere v panelu Nastavení pod Nápověda -> Emby Premiere.", + "ValueSpecialEpisodeName": "Speciál - {0}", + "HeaderSignIn": "Přihlásit se", + "Share": "Sdílet", + "Shared": "Sdíleno", + "Info": "Info", + "Add": "Přidat", + "Speed": "Rychlost", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Kapitoly", + "Password": "Heslo", + "SavePassword": "Uložit heslo", + "LabelPassword": "Heslo:", + "HeaderResetPassword": "Obnovit heslo", + "Series": "Seriály", + "Preview": "Náhled", + "Submit": "Potvrdit", + "Never": "Nikdy", + "Table": "Tabulka", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Hraje", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Typ klíčového slova:", + "HeaderSelectColumns": "Vyber sloupce", + "HeaderTopResults": "Nejlepší výsledky", + "HeaderPinSidebar": "Připnout sidebar", + "Collapse": "Sbalit", + "LabelBackgroundVideoPlayback": "Přehrávání videa na pozadí:", + "BackgroundVideoPlaybackHelp": "Přehrávání na pozadí umožňuje nepřerušené přehrávání i v případě, že je obrazovka vypnutá.", + "AlwaysOn": "Vždy v popředí", + "HeadphonesOrExternalSpeakersConnected": "Připojeny sluchátka nebo externí reproduktory", + "HeaderKeyboardAndRemote": "Klávesnice a dálkové ovládání", + "NoSelectedItemsSupportOperation": "Nejsou vybrané žádné položky, které podporují tuto funkci.", + "NoOperationsForSelectedItems": "Nejsou k dispozici žádné funkce pro vybrané položky.", + "UploadOnlyOnWifi": "Nahrávat pouze přes Wifi", + "HeaderFoldersToUpload": "Složky k nahrání", + "LabelPasswordConfirm": "Heslo (potvrzení)", + "HeaderMoveUpInOrder": "Přesunout výše v pořadí", + "HeaderDownUpInOrder": "Přesunout níže v pořadí", + "LabelUsername": "Uživatelské jméno:", + "HeaderAddServer": "Přidat server", + "HeaderSubtitleOffset": "Posun titulků", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Odebrat ze sekce Pokračovat ve sledování", + "RemoveThisTitleFromContinueWatching": "Odstranit titul ze sekce Pokračovat ve sledování?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Odstranit titul ze sekce Pokračovat v poslechu?", + "HeaderIncreaseSubtitleOffset": "Zvýšit posun titulků", + "HeaderDecreaseSubtitleOffset": "Snížit posun titulků", + "Close": "Zavřít", + "HeaderSeeAll": "Zobrazit vše", + "HeaderOpenInNewWindow": "Otevřít v novém okně", + "LabelEmail": "Email:", + "LabelHost": "Host:", + "LabelHostHelp": "Příklad: 192.168.1.100 nebo https://mujserver.cz", + "LabelPort": "Port:", + "Disabled": "Zakázáno", + "Uninstall": "Odinstalovat", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Další: {0}", + "HeaderNextItem": "Další položka", + "HeaderPreviousItem": "Předchozí položka", + "NoTrailersMessage": "Nenalezen žádný trailer. Aby bylo možné trailery přidávat, nainstalujte, prosím, zásuvný modul Trailery z {0}Emby katalogu zásuvných modulů{1}.", + "UninstallPluginConfirmation": "Doopravdy chcete odinstalovat tento zásuvný modul?", + "HeaderUninstallPlugin": "Odinstalovat zásuvný modul", + "AreYouStillWatching": "Stále sledujete?", + "LabelCurrentPassword": "Současné heslo:", + "LabelNewPassword": "Nové heslo:", + "LabelNewPasswordConfirm": "Potvrzení nového hesla:", + "HeaderRemovePassword": "Odebrat heslo", + "ServerUpdateNeeded": "Tento Emby Server je třeba aktualizovat. Chcete-li stáhnout nejnovější verzi, navštivte prosím {0}", + "MessageThankYouForConnectSignUp": "Děkujeme za přihlášení se k Emby Connect. Další pokyny, jak potvrdit svůj nový účet, Vám budou zaslány na vaší emailovou adresu. Prosím potvrďte účet a pak se vráťte pro přihlášení.", + "MessageThankYouForConnectSignUpNoValidation": "Děkujeme za registraci v Emby Connect! Nyní budete vyzván k přihlášení pomocí údajů Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "Potvrzení Hesla a Heslo se musí shodovat.", + "ErrorMessageUsernameInUse": "Uživatelské jméno se již používá. Prosím, vyberte nový název a zkuste to znovu.", + "ErrorMessageEmailInUse": "E-mailová adresa je již používána. Zadejte novou e-mailovou adresu a zkuste to znovu, nebo použijte funkci zapomenutého hesla.", + "HeaderUpcomingOnTV": "Nadcházející v živé TV", + "HeaderOtherShowings": "Ostatní představení", + "Showings": "Představení", + "HeaderConnectToServer": "Připojit k serveru", + "ConnectToServerManually": "Připojit k serveru manuálně", + "LabelEnterConnectUserNameHelp": "Toto je e-mailová adresa, která byla použita pro nastavení Vašeho účtu Emby Connect nebo Vašeho uživatelského jména Emby Connect.", + "HeaderSignInError": "Chyba přihlášení", + "HeaderManualLogin": "Manuální přihlášení", + "PasswordResetConfirmation": "Opravdu chcete obnovit heslo?", + "ContactAdminToResetPassword": "K obnovení Vašeho hesla kontaktujte, prosím, svého správce systému.", + "ForgotPasswordInNetworkRequired": "Pro zahájení procesu obnovy hesla zkuste, prosím, znovu v rámci Vaší domací sítě.", + "ForgotPasswordFileCreated": "Následující soubor byl vytvořen na Vašem serveru a obsahuje pokyny, jak postupovat:", + "ForgotPasswordFileExpiration": "Resetování pinu vyprší v {0}.", + "InvalidForgotPasswordPin": "Byl zadán nesprávný či neplatný PIN. Zkuste, prosím, znovu.", + "PasswordResetForUsers": "Hesla byla odstraněna následujícím uživatelům. Chcete-li se přihlásit, přihlašte se s prázdným heslem.", + "HeaderForgotPassword": "Zapomenuté heslo", + "ForgotPasswordUsernameHelp": "Ponechte prázdné, pokud si nepamatujete své uživatelské jméno.", + "HeaderPasswordReset": "Obnova hesla", + "AttributeNew": "Nové", + "Done": "Hotovo", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Odstranění prokládání.", + "HeaderBurningInSubtitles": "Vložení titulků do obrazu.", + "Premiere": "Premiéra", + "LabelPinCode": "PIN kód:", + "LabelLocalNetworkPinCode": "PIN k lokální síti", + "LabelLocalNetworkPasswordMode": "Režim přihlášení v lokální síti:", + "RequirePasswordInLocalNetwork": "Požadovat heslo v lokální síti.", + "NoPasswordInLocalNetwork": "Nepožadovat heslo v lokální síti", + "PinCodeInLocalNetwork": "Povolit numerický PIN kód v lokální síti", + "LocalNetworkPasswordModeHelp": "Vyberte způsob přihlášení pro zařízení ve stejné lokální síti jako Váš Emby server.", + "HeaderLocalNetworkAccess": "Přístup k lokální síti", + "Live": "Živě", + "Reset": "Obnovit", + "Repeat": "Opakovat", + "Track": "Stopa", + "Tracks": "Stopy", + "HeaderCameraUpload": "Nahrát z fotoaparátu", + "TrackCount": "{0} stop", + "ItemCount": "{0} položek", + "NumberChannelsValue": "{0} Kanály", + "HeaderLatestMusic": "Poslední hudba", + "HeaderLatestAudioBooks": "Nejnovější audioknihy", + "HeaderLatestDownloadedVideos": "Poslední stažená videa", + "HeaderRecentlyPlayed": "Nedávno přehráno", + "Recent": "Nedávné", + "HeaderFrequentlyPlayed": "Nejčastěji přehráváno", + "HeaderMoreLikeThis": "Podobné položky", + "HeaderMoreLikeThisOnLiveTV": "Více na Live TV", + "OriginalAirDateValue": "Původní datum vysílání: {0}", + "EndsAtValue": "Končí v {0}", + "Date": "Date", + "AirDate": "Datum vysílání", + "Played": "Přehráno", + "Daily": "Denně", + "Weekly": "Weekly", + "RequireHashMatch": "Vyžadovat dokonalou shodu", + "RequireHashMatchHelp": "Vyžaduje dokonalou shodu a filtruje titulky tak, aby obsahovaly pouze ty, které byly otestovány a ověřeny pomocí přesného souboru videa. Zrušením této volby se zvýší pravděpodobnost stahování titulků, ale zvýší se pravděpodobnost chybného nebo špatného textu titulků.", + "SearchForForcedSubtitlesOnly": "Pouze vynucené titulky", + "SearchForForcedSubtitlesOnlyHelp": "Požadavek nucených titulků omezí výsledky na titulky použité ve filmu jako nedabovaná část audio stopy v cizím jazyce.", + "LastEpisodeDateAdded": "Datum poslední přidané epizody", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Stav přehrávání:", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Název epizody", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Titulky", + "Image": "Obrázek", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio kodek:", + "LabelAudioLanguage": "Jazyk zvuku", + "LabelSubtitleLanguage": "Jazyk titulků", + "LabelVideoCodec": "Video kodek:", + "LabelSubtitleCodec": "Formát titulků:", + "LabelParentalRating": "Rodičovské hodnocení:", + "BecauseYouLikeValue": "Protože se vám líbí {0}", + "BecauseYouWatchedValue": "Protože jste sledovali {0}", + "DirectedByValue": "Režie {0}", + "StarringValue": "V hlavní roli {0}", + "Invitations": "Pozvánky", + "ActorAsRole": "jako {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Seskupit položky do kolekcí", + "GroupItemsIntoCollectionsHelp": "Seskupit položky z kolekcí, které byly přidány. Zapnutí některých filtrů nebo třídění položek může toto automaticky vypnout.", + "GroupItemsIntoTags": "Seskupit položky do tagů", + "GroupItemsIntoTagsHelp": "Seskupit položky na základě tagů, ke kterým byly přiřazené. Toto se automaticky zruší zapnutím některých filtrů nebo pořadím řazení.", + "User": "Uživatel", + "Access": "Přístup", + "Users": "Uživatelé", + "Library": "Knihovna", + "Devices": "Zařízení", + "Cancel": "Zrušit", + "Restart": "Restart", + "Shutdown": "Vypnout", + "Logs": "Záznamy", + "Visibility": "Visibility", + "Notifications": "Oznámení", + "SendTestNotification": "Odeslat testovací oznámení", + "NotificationSent": "Oznámení odesláno", + "DeleteNotificationConfirmation": "Jste si jisti, že chcete smazat toto oznámení?", + "DeleteNotification": "Smazat oznámení", + "AddNotification": "Přidat oznámení", + "EditNotification": "Upravit oznámení", + "LimitUserEventsTo": "Omezit události uživatele na:", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Zásuvné moduly", + "Systems": "Systémy", + "Server": "Server", + "Dashboard": "Ovládací panel", + "PlayOnAnotherDevice": "Přehrát na jiném zařízení", + "HeaderConnectionHelp": "Nápověda připojení", + "AccessRestrictedTryAgainLater": "Přístup je v současné době omezen. Zkuste, prosím, znovu později.", + "ButtonGotIt": "Chápu to", + "RememberMe": "Zapamatovat", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Spravovat Emby server", + "ShutdownServer": "Vypnout Emby server", + "RestartServer": "Restartovat Emby server", + "RecordingCancelled": "Nahrávání zrušeno.", + "SeriesCancelled": "Seriál zrušen.", + "Recording": "Nahrávání", + "SeriesRecording": "Nahrávání seriálu", + "RecordingScheduled": "Plán nahrávání.", + "SeriesRecordingScheduled": "Plán nahrávání seriálu.", + "HeaderNewRecording": "Nový záznam", + "HeaderWakeServer": "Probuzení serveru", + "AttemptingWakeServer": "Pokouším se probudit váš server...", + "WakeServerSuccess": "Hotovo!", + "HeaderCustomizeHomeScreen": "Přizpůsobení domovské obrazovky", + "WakeServerError": "Pakety Wake On LAN byly odeslány do vašeho serveru, ale nemůžeme se k Emby serveru připojit. Váš stroj může potřebovat trochu víc času k probouzení nebo Emby server nemusí být na stroji spuštěn.", + "Days": "Dny", + "Network": "Síť", + "Networks": "Sítě", + "SortByValue": "Třídit dle {0}", + "HeaderSortBy": "Třídit dle", + "HeaderPhotoAlbums": "Fotoalbum", + "Photos": "Fotky", + "HeaderAppearsOn": "Objeví se na", + "List": "Seznam", + "HeaderRecordSeries": "Záznam seriálů", + "HeaderCinemaMode": "Kino úvody", + "Conversions": "Konverze", + "Downloads": "Stahování", + "HeaderManageDownloads": "Spravovat stahování", + "InternalStorage": "Interní úložiště", + "ExternalStorage": "Externí úložiště", + "UploadToFollowingServers": "Nahrát na servery", + "UploadingNumItems": "Nahrávání {0} z {1}", + "DownloadNumItems": "Stahování {0} z {1}", + "HeaderSampleRate": "Vzorkovací frekvence", + "HeaderReferenceFrames": "Referenční rámce", + "HeaderBitDepth": "Bitová hloubka", + "HeaderPixelFormat": "Pixel formát", + "Profile": "Profil", + "Bitrate": "Datový tok", + "Expand": "Expand", + "Container": "Kontejner", + "Format": "Formát", + "Path": "Cesta k souboru", + "Size": "Velikost", + "Resolution": "Rozlišení", + "HeaderCodecTag": "Značka kodeku", + "Framerate": "Snímková frekvence", + "Interlaced": "Prokládané", + "Anamorphic": "Anamorfní nastavení", + "Level": "Úroveň", + "Timestamp": "Časové razítko", + "Language": "Jazyk", + "Codec": "Kodek", + "Stream": "Stream", + "HeaderExtradata": "Extra data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Offline média", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Stáhnout média do vašeho zařízení pro snadné použití offline.", + "LiveTvFeatureDescription": "Streamujte živé televizní vysílání na libovolnou aplikaci Emby s kompatibilním televizním tunerem nainstalovaným na vašem serveru Emby.", + "DvrFeatureDescription": "Naplánujte nahrávky televizních pořadů, seriálů a další s Emby DVR.", + "CinemaModeFeatureDescription": "Cinema Intros Vám přináší skutečný zážitek jako v kině, před hlavním filmem přehraje trailery a uživatelská intra.", + "HeaderFreeApps": "Emby Apps zdarma", + "FreeAppsFeatureDescription": "Užijte si výběr Emby aplikací zdarma pro vaše zařízení.", + "HeaderBecomeProjectSupporter": "Získat Emby Premiere", + "HeaderViewServerInfo": "Zobrazit info o serveru", + "PlaybackTvModeRequiresEmbyPremiere": "Přehrávání médií v režimu TV vyžaduje aktivni {0}předplatné Emby Premiere{1}.", + "FeatureRequiresEmbyPremiere": "Tato funkce vyžaduje aktivní {0}předplatné Emby Premiere{1}.", + "HeaderConvertYourRecordings": "Konverze vašich nahrávek", + "Record": "Nahrávat", + "Save": "Uložit", + "Edit": "Upravit", + "HeaderSavePlaylist": "Uložit playlist", + "Latest": "Poslední", + "Download": "Stáhnout", + "Downloaded": "Staženo", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Stahování", + "Advanced": "Pokročilé", + "LinkedToEmbyConnect": "Propojeno s Emby Connect", + "Delete": "Odstranit", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Smazat položku", + "HeaderDeleteUser": "Odstranit uživatele", + "DeleteItemConfirmation": "Skutečně si přejete smazat {0}?", + "DeleteUserConfirmation": "Doopravdy chcete smazat uživatele {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Odebrat zařízení", + "DeleteDeviceConfirmation": "Doopravdy smazat toto zařízení? Zařízení se znovu objeví, jakmile se s ním uživatel příště přihlásí.", + "ConfirmDeleteItem": "Smazáním položky odstraníte soubor jak z knihovny médií, tak ze souborového systému.", + "FollowingFilesWillBeDeleted": "Následující soubory a složky budou smazány:", + "AreYouSureToContinue": "Opravdu chcete pokračovat?", + "Refresh": "Obnovit", + "RefreshingMetadataDots": "Obnovování metadat...", + "ScanningLibraryFilesDots": "Prohledávání souborů knihovny...", + "HeaderFavoritesThenByChannelNumber": "Oblíbené, pak podle čísla kanálu", + "HeaderAddToCollection": "Přidat do Kolekce", + "HeaderFavoritesThenByTitle": "Oblíbené, pak podle názvu", + "HeaderFavoritesThenByDefault": "Oblíbené, pak podle výchozího řazení kanálů", + "HeaderDefaultChannelOrder": "Výchozí řazení kanálů", + "HeaderAddToFavorites": "Přidat k oblíbeným", + "HeaderRemoveFromFavorites": "Odstranit z oblíbených", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "Nová kolekce", + "HeaderNewPlaylist": "Nový playlist", + "AllCollections": "Všechny kolekce", + "AllPlaylists": "All Playlists", + "Create": "Vytvořit", + "HeaderAddedToPlaylist": "Přidáno do playlistu", + "HeaderAddedToCollection": "Přidáno do kolekce", + "OneItemAddedTo": "1 položka přidána do \"{0}\".", + "ItemsAddedTo": "{0} položek přidáno do \"{1}\".", + "HeaderAddedToPlayQueue": "Přidáno do fronty k přehrání", + "HeaderPlayingNext": "Přehrávání Následující", + "Help": "Nápověda", + "HeaderGetHelp": "Získat pomoc", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "PC", + "Mobile": "Mobil / Tablet", + "Navigation": "Navigace", + "HeaderVideoPlayback": "Přehrávání videa", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Série", + "OneTrack": "1 stopa", + "OneSeason": "1 sezóna", + "Libraries": "Knihovny", + "NumberSeasonsValue": "{0} Série", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Jazyk rozhraní:", + "LabelDisplayLanguageHelp": "Překlad Emby je projekt ve fázi neustálého vývoje.", + "LearnHowYouCanContribute": "Zjistěte, jak můžete přispět.", + "NewCollectionHelp": "Kolekce dovolí vytvořit personalizované seskupení filmů a dalšího obsahu knihoven.", + "SearchForCollectionInternetMetadata": "Vyhledat metadata a obrázky na Internetu.", + "DisplayMissingEpisodesWithinSeasons": "Zobrazit chybějící epizody", + "DisplayMissingEpisodesWithinSeasonsHelp": "Musí být zapnuto pro knihovny TV v nastavení Emby Server", + "EnableThemeSongs": "Povolit tématickou hudbu na pozadí", + "EnableBackdrops": "Povolit pozadí", + "EnableThemeSongsHelp": "Pokud povolíte, bude při procházení knihovny na pozadí přehrávána tématická melodie.", + "EnableBackdropsHelp": "Pokud je povoleno, během procházení knihovny budou na několika stránkách zobrazována pozadí.", + "EnableThemeVideos": "Povolit tématické video", + "EnableThemeVideosHelp": "Pokud povolíte, bude při procházení knihovny přehráváno tématické video na pozadí.", + "RunAtStartup": "Spustit po startu", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Šetřič obrazovky:", + "LabelSoundEffects": "Zvukové efekty:", + "LabelName": "Jméno:", + "NewCollectionNameExample": "Příklad: Kolekce Star Wars", + "MessageItemsAdded": "Položky přidány.", + "OptionNew": "Nový...", + "LabelPlaylist": "Playlist:", + "AddToPlaylist": "Přidat do playlistu", + "HeaderAddToPlaylist": "Přidat do playlistu", + "Subtitles": "Titulky", + "LabelTheme": "Téma:", + "LabelSettingsTheme": "Nastavení tématu:", + "LabelThemeAccentColor": "Barva zvýraznění:", + "ThemeAccentColorDescription": "Ovládá barvu důležitých ukazatelů, ikon a textu.", + "SearchForSubtitles": "Vyhledat titulky", + "LabelLanguage": "Jazyk:", + "Search": "Vyhledávání", + "NoSubtitleSearchResultsFound": "Žádné výsledky nenalezeny. Máte nastavené stahování{1} {0}titulků?", + "NoLyricsSearchResultsFound": "Nenalezen žádný výsledek. Máte nastavené stahování{1} {0}slov?", + "Lyrics": "Slova", + "SearchForLyrics": "Vyhledat slova", + "Finish": "Dokončit", + "File": "Soubor", + "Exit": "Zavřít", + "Sleep": "Uspat", + "Setup": "Nastavení", + "MessageAreYouSureDeleteSubtitles": "Jste si jisti, že chcete smazat tyto titulky?", + "ConfirmDeletion": "Potvrdit smazání", + "MySubtitles": "Dostupné titulky", + "MessageDownloadQueued": "Stažení zařazeno.", + "HeaderEditSubtitles": "Upravit titulky", + "UnlockGuide": "Průvodce pro odemčení", + "HeaderRefreshMetadata": "Obnovit metadata", + "HeaderRefreshAllMetadata": "Obnovit všechna metadata", + "ReplaceExistingImages": "Nahradit existující obrázky", + "ReplaceExistingImagesHelp": "Budou vymazány všechny stávající obrázky a staženy nové. Toto může mít v některých případech za následek menší počet obrázků než před tím.", + "ReplaceAllMetadata": "Přepsat všechna metadata", + "SearchForMissingMetadata": "Hledání chybějících metadat", + "LabelRefreshMode": "Mód obnovy:", + "NoItemsFound": "Nenalezeny žádné položky.", + "HeaderSaySomethingLike": "Vyslovte něco jako...", + "ButtonTryAgain": "Zkusit znovu", + "HeaderYouSaid": "Zmínil ses...", + "MessageWeDidntRecognizeCommand": "Je nám líto, příkaz nebyl rozpoznán.", + "MessageIfYouBlockedVoice": "Pokud byl Váš přístup odepřen pomocí hlasové aplikace, budete ji muset překonfigurovat před dalším pokusem.", + "ValueDiscNumber": "Disk {0}", + "Unrated": "Nehodnoceno", + "Favorite": "Oblíbené", + "Like": "Mám rád", + "Dislike": "Nemám rád", + "RefreshDialogHelp": "Metadata se aktualizují na základě nastavení a poskytovatelů metadat, kteří jsou povoleni v konfiguraci knihovny Emby.", + "Open": "Otevřít", + "Play": "Přehrát", + "Pause": "Pozastavit", + "HeaderPlayQueue": "Přehraj frontu", + "HeaderAddToPlayQueue": "Přidat do fronty k přehrání", + "Shuffle": "Náhodně", + "Identify": "Identifikuj", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Upravit metadata", + "Convert": "Konverze", + "Resume": "Pokračovat", + "HeaderInstantMix": "Okamžitý mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Přehrát vše", + "PictureInPicture": "Obraz v obraze", + "Fullscreen": "Celá obrazovka", + "ExitFullscreen": "Opustit celou obrazovku", + "Rewind": "Přetočit zpět", + "FastForward": "Rychle vpřed", + "Remove": "Odstranit", + "Rename": "Přejmenovat", + "Queue": "Fronta", + "QueueAllFromHere": "Zařadit vše do fronty", + "PlayAllFromHere": "Přehrát vše odsud", + "PlayFromBeginning": "Přehrát od začátku", + "FromBeginning": "From Beginning", + "ResumeAt": "Obnovit přehrávání od {0}", + "HeaderRemoveFromPlaylist": "Odstranit z playlistu", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Odstranit z kolekce", + "Sort": "Třídění", + "Trailer": "Ukázka/trailer", + "SelectNone": "Nevybírat žádný", + "SelectAll": "Vybrat vše", + "HeaderMarkPlayed": "Označit přehrané", + "HeaderMarkUnplayed": "Označit nepřehrané", + "HeaderGroupVersions": "Seskupit verze", + "PleaseSelectTwoItems": "Vyberte nejméně dvě položky prosím.", + "HeaderConfirmRecordingCancellation": "Potvrzení zrušení nahrávání", + "MessageConfirmRecordingCancellation": "Zrušit nahrávání", + "Album": "Album", + "AlbumArtist": "Umělec alba", + "Error": "Chyba", + "VoiceInput": "Hlasový vstup", + "LabelContentType": "Typ obsahu:", + "LabelPath": "Cesta k souboru:", + "Playlists": "Playlisty", + "LabelTitle": "Název:", + "LabelOriginalTitle": "Originální název:", + "LabelSortTitle": "Třídit dle názvu:", + "LabelDateAdded": "Datum přidání:", + "DateAdded": "Datum přidání", + "DateModified": "Date Modified", + "DatePlayed": "Datum přehrání", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Konfigurace přidání data je definována v nastavení knihovny v ovládacím panelu", + "LabelStatus": "Stav:", + "LabelArtistsHelp": "Odděl pomocí ;", + "HeaderAlbumArtists": "Umělci alba", + "LabelAlbumArtists": "Umělci alba:", + "LabelAlbum": "Album:", + "Artist": "Interpret", + "Artists": "Umělci", + "ImdbRating": "Hodnocení IMDb", + "CommunityRating": "Hodnocení komunity", + "LabelCommunityRating": "Hodnocení komunity:", + "LabelCriticRating": "Hodnocení kritiků:", + "CriticRating": "Hodnocení kritiků", + "LabelWebsite": "Webové stránky:", + "Tagline": "Tagline", + "LabelOverview": "Přehled:", + "LabelShortOverview": "Hlavní linie:", + "LabelReleaseDate": "Datum vydání:", + "LabelPlaceOfBirth": "Místo narození:", + "Aired": "Vysíláno", + "LabelAirDays": "Vysíláno:", + "LabelAirTime": "Vysílací čas:", + "LabelRuntimeMinutes": "Délka (v minutách):", + "LabelCustomRating": "Vlastní hodnocení:", + "LabelOriginalAspectRatio": "Původní poměr stran:", + "Label3DFormat": "3D formát:", + "FormatValue": "Formát: {0}", + "DownloadsValue": "{0} stahování", + "HashMatch": "Dokonalá shoda", + "EnableExternalVideoPlayers": "Povolit externí video přehrávače", + "EnableExternalVideoPlayersHelp": "Při spuštění přehrávání videa se zobrazí externí nabídka přehrávače.", + "HeaderSpecialEpisodeInfo": "Infromace o speciální epizodě", + "LabelAirsDuringSeason": "Vysíláno během sezóny:", + "LabelAirsAfterSeason": "Vysíláno po sezóně:", + "LabelAirsBeforeEpisode": "Vysíláno před epizodou:", + "HeaderExternalIds": "Externí ID:", + "HeaderDisplaySettings": "Nastavení zobrazení", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Pořadí zobrazení:", + "LabelFileOrder": "File order", + "Display": "Zobrazení", + "Countries": "Země", + "Genres": "Žánry", + "Studios": "Studia", + "Tags": "Tagy", + "Links": "Odkazy", + "Movie": "Film", + "Program": "Program", + "Channel": "Channel", + "Episode": "Epizoda", + "Season": "Řada", + "HeaderMetadataSettings": "Nastavení metadat", + "People": "Lidé", + "Number": "Číslo", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Upřednostňovaný jazyk stahovaných metadat:", + "LabelImageDownloadLanguage": "Upřednostňovaný jazyk stahovaných obrázků", + "LabelLockItemToPreventChanges": "Uzamknout položku pro zabránění budoucích změn", + "LockThisField": "Zamknout toto pole pro zabránění budoucích změn při obnově metadat.", + "MessageLeaveEmptyToInherit": "Při ponechání prázdné položky bude zděděno nastavení z položky nadřazené nebo z globální defaultní hodnoty.", + "LabelCountry": "Země:", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id:", + "LabelBirthYear": "Rok narození:", + "LabelBirthDate": "Datum narození:", + "LabelDeathDate": "Datum úmrtí:", + "LabelEndDate": "Datum ukončení:", + "LabelSeasonNumber": "Číslo sezóny:", + "LabelEpisodeNumber": "Číslo epizody:", + "LabelTrackNumber": "Číslo stopy:", + "LabelNumber": "Číslo:", + "LabelDiscNumber": "Číslo disku:", + "LabelParentNumber": "Číslo rodičovského prvku", + "SortName": "Setřídit dle názvu", + "OriginalTitle": "Originální název", + "ReleaseDate": "Datum vydání", + "Continuing": "Pokračování", + "Ended": "Ukončeno", + "HeaderEnabledFields": "Povolené pole", + "HeaderEnabledFieldsHelp": "Zrušte zaškrtnutí, abyste zamkli data a zabránili jejich změnám.", + "Backdrops": "Pozadí", + "Images": "Obrázky", + "Runtime": "Délka", + "ProductionLocations": "Místo výroby", + "BirthLocation": "Místo narození", + "ParentalRating": "Rodičovské hodnocení", + "PlayCount": "Počet přehrání", + "Name": "Název", + "Overview": "Přehled/Obsah", + "LabelType": "Typ:", + "LabelPersonRole": "Role:", + "LabelPersonRoleHelp": "Příklad: Řidič kamiónu se zmrzlinou", + "Actor": "Herec", + "Composers": "Skladatelé", + "Composer": "Skladatel", + "Director": "Režisér", + "GuestStar": "Hostující hvězda", + "Producer": "Producent", + "Writer": "Napsal", + "MessageNoSyncJobsFound": "Nebylo nalezeno žádné stahování. Vytvořte úlohy stahování pomocí tlačítek ke stažení v aplikaci.", + "MessageNoDownloadsFound": "Žádné stažené offline soubory. Stáhněte médium pro offline použití klepnutím na Stáhnout v celé aplikaci.", + "InstallingPackage": "Instalace {0}", + "PackageInstallCompleted": "Instalace {0} dokončena.", + "PackageInstallFailed": "Instalace {0} selhala!!!", + "PackageInstallCancelled": "Instalace {0} zrušena.", + "SeriesYearToPresent": "{0} - Současnost", + "OneDevice": "1 zařízení", + "DeviceCountValue": "{0} Zařízení", + "OneLog": "1 záznam", + "LogCountValue": "{0} záznamů", + "OneVote": "1 hlas", + "VoteCountValue": "{0} hlasů", + "OneLike": "1 líbí se mi", + "LikeCountValue": "{0} líbí se mi", + "OneUser": "1 uživatel", + "UserCountValue": "{0} uživatelů", + "OneLibrary": "1 knihovna", + "LibraryCountValue": "{0} knihoven", + "ValueOneItem": "1 položka", + "ValueOneEpisode": "1 epizoda", + "ValueEpisodeCount": "{0} epizod", + "Albums": "Alba", + "Song": "Skladba", + "Songs": "Skladby", + "Authors": "Autoři", + "Books": "Knihy", + "AudioBooks": "Audio knihy", + "HeaderAudioBooks": "Audio knihy", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Zadejte jedno nebo více vyhledávacích kritérií. Odstraňte kritéria pro vyhledání více výsledků.", + "PleaseEnterNameOrId": "Prosím, zadejte název nebo externí Id.", + "MessageItemSaved": "Položka uložena.", + "SearchResults": "Výsledky vyhledávání", + "ServerNameIsRestarting": "Emby Server - {0} je restartován.", + "ServerNameIsShuttingDown": "Emby Server - {0} je vypínán.", + "HeaderDeleteItems": "Odstranit položky", + "ConfirmDeleteItems": "Odstraněním těchto položek odstraníte vaše média jak z knihovny médií, tak i ze souborového systému.", + "PleaseRestartServerName": "Prosím, restartujte Emby Server - {0}.", + "ConvertingDots": "Konverze...", + "LabelSyncNoTargetsHelp": "Zdá se, že momentálně nemáte žádné aplikace, které podporují stahování offline.", + "DownloadingDots": "Stahování...", + "LearnMore": "Zjistit více", + "LabelBitrateMbps": "Datový tok (Mbps):", + "ConvertUnwatchedVideosOnly": "Převést pouze nepřehraná videa", + "SyncUnwatchedVideosOnly": "Stáhnout pouze nepřehraná videa", + "ConvertUnwatchedVideosOnlyHelp": "Budou převedena pouze videa, která nejsou označena jako kompletně přehraná.", + "SyncUnwatchedVideosOnlyHelp": "Budou stažena pouze videa, která nejsou označena jako kompletně přehraná, zároveň budou odebrána ze zařízení, která je přehrála.", + "AutomaticallySyncNewContent": "Automaticky stahovat nový obsah", + "AutomaticallySyncNewContentHelp": "Nový obsah přidaný do této složky bude automaticky stažen do zařízení.", + "AutomaticallyConvertNewContent": "Automaticky překódovat nový obsah", + "AutomaticallyConvertNewContentHelp": "Nový obsah přidaný do této složky bude automaticky překódován.", + "LabelItemLimit": "Limit položek:", + "ConvertItemLimitHelp": "Volitelné. Nastavení limitu počtu položek, které budou překódovány.", + "DownloadItemLimitHelp": "Volitelné. Nastavení limitu počtu položek, které budou staženy.", + "PleaseSelectDeviceToSyncTo": "Vyberte zařízení ke stažení.", + "Screenshots": "Snímky obrazovky", + "MoveRight": "Posunout vpravo", + "MoveLeft": "Posunout vlevo", + "HeaderUploadNewImage": "Nahrát nový obrázek", + "HeaderDeleteImage": "Smazat obrázek", + "ConfirmDeleteImage": "Odstranit obrázek?", + "HeaderEditImages": "Editace obrázků", + "Settings": "Nastavení", + "ShowIndicatorsFor": "Zobrazit indikátory", + "Episodes": "Epizody", + "Programs": "Programy", + "HeaderCastCrew": "Herci a obsazení", + "DvrSubscriptionRequired": "Emby DVR vyžaduje {0}aktivní předplatné Emby Premiere{1}.", + "HeaderCancelRecording": "Zrušit nahrávání", + "HeaderKeepRecording": "Udržet nahrávání", + "HeaderCancelSeries": "Ukončit seriál", + "HeaderKeepSeries": "Udržet seriál", + "HeaderLearnMore": "Zjistit více", + "SeriesSettings": "Nastavení seriálu", + "HeaderRecordingOptions": "Nastavení nahrávání", + "HeaderDoNotRecord": "Nenahrávat", + "HeaderSeriesOptions": "Nastavení seriálu", + "Layout": "Rozvržení", + "Channels": "Kanály", + "ChannelNameOnly": "Kanál {0} jen", + "Anytime": "Kdykoliv", + "AnyLanguage": "Jakýkoli jazyk", + "AroundTime": "Okolo {0}", + "HeaderLatestMovies": "Poslední filmy", + "All": "Vše", + "Stop": "Zastavit", + "AllChannels": "Všechny kanály", + "NewEpisodesOnly": "Jen nové epizody", + "AllEpisodes": "Všechny epizody", + "LabelStartWhenPossible": "Začít jakmile je to možné:", + "LabelStopWhenPossible": "Zastavit jakmile je to možné:", + "MinutesBefore": "minut předem", + "MinutesAfter": "minut po", + "SkipEpisodesAlreadyInMyLibrary": "Přeskočit nahrávání epizod, které jsou v knihovně", + "SkipEpisodesAlreadyInMyLibraryHelp": "Epizody budou porovnávány s použitím období a čísla epizody, pokud jsou k dispozici.", + "LabelKeepUpTo": "Aktualizovat k:", + "AsManyAsPossible": "Tolikrát jak je možné", + "DefaultErrorMessage": "Došlo k chybě při zpracování požadavku. Zkuste, prosím, znovu později.", + "UntilIDelete": "Dokud nesmažu", + "UntilSpaceNeeded": "Do potřebného prostoru", + "Categories": "Kategorie", + "Sports": "Sport", + "News": "Zpravodajství", + "Movies": "Filmy", + "Music": "Hudba", + "Kids": "Dětské", + "MoreFromValue": "Více z {0}", + "DiedValue": "Zemřel(a): {0}", + "BornValue": "Narozen(a): {0}", + "EnableColorCodedBackgrounds": "Použít zabarvené pozadí pořadů na základě jejich kategorie.", + "SortChannelsBy": "Třídit kanály dle:", + "ChannelNumber": "Číslo kanálu", + "HeaderBenefitsEmbyPremiere": "Výhody Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Prosím užijte si jednu minutu přehrávání. Děkujeme vám za vyzkoušení Emby.", + "HeaderTryPlayback": "Zkusit playback", + "HowDidYouPay": "Jak chcete platit?", + "IHaveEmbyPremiere": "Již mám Emby Premiere", + "IPurchasedThisApp": "Tuto aplikaci mám již zaplacenu", + "ButtonRestorePreviousPurchase": "Obnovit nákup", + "ButtonUnlockWithPurchase": "Odemkněte pomocí koupě", + "ButtonUnlockPrice": "Odemknout {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere měsíčně {0}", + "HeaderAlreadyPaid": "Již zaplaceno?", + "ButtonPlayOneMinute": "Přehrát jednu minutu", + "PlaceFavoriteChannelsAtBeginning": "Umístit oblíbené kanály na začátek", + "HeaderUnlockFeature": "Odemknout funkci", + "MessageDidYouKnowCinemaMode": "Víte, že s Emby Premiere můžete zlepšit své zážitky ze sledování pomocí funkce jako Cinema Intros?", + "HeaderPlayMyMedia": "Přehrát má Média", + "HeaderDiscoverEmbyPremiere": "Objevte výhody Emby Premiere", + "HeaderNowPlaying": "Přehrává se", + "Items": "Položky", + "AppName": "App Name", + "OneChannel": "Jeden kanál", + "ConfirmRemoveDownload": "Odebrat stažení?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Odebrat stažení", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Stáhnout", + "AddedOnValue": "Přidáno {0}", + "RemovingFromDevice": "Odebírání ze zařízení", + "KeepOnDevice": "Ponechat na zařízení", + "CancelDownload": "Zrušit stahování", + "SyncJobItemStatusReadyToTransfer": "Připraveno k přenosu", + "SyncJobItemStatusSyncedMarkForRemoval": "Odebírání ze zařízení", + "SyncJobItemStatusQueued": "Přidáno do fronty", + "SyncJobItemStatusConverting": "Konverze", + "SyncJobItemStatusTransferring": "Přenášení", + "SyncJobItemStatusSynced": "Staženo", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Odebráno ze zařízení", + "Cancelled": "Cancelled", + "Retry": "Opakovat", + "Continue": "Pokračovat", + "ContinueInSecondsValue": "Pokračovat za {0} sekund.", + "HeaderRemoteControl": "Dálkový ovladač", + "Disconnect": "Odpojit", + "EnableDisplayMirroring": "Povolit zrcadlení obrazu", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Přehrávat", + "Quality": "Kvalita", + "Auto": "Automaticky", + "AndroidUnlockRestoreHelp": "Chcete-li obnovit předchozí nákup, ujistěte se, že jste přihlášeni do zařízení se stejným účtem Google (nebo Amazonem), který původně uskutečnil nákup. Ujistěte se, že úložiště aplikací je povoleno a není omezeno žádnou rodičovskou kontrolou a zajistěte, abyste měli aktivní připojení k internetu. Budete to muset udělat pouze jednou, abyste obnovili svůj předchozí nákup.", + "HeaderAspectRatio": "Poměr stran", + "Original": "Originál", + "Fill": "Vyplnit", + "Cover": "Obal", + "MessageNoServersAvailableToConnect": "Žádné servery nejsou k dispozici. Pokud jste byli pozváni na sdílený server, ujistěte se, že jste pozvánku níže akceptovali nebo klikly na odkaz v e-mailu.", + "MessagePlayAccessRestricted": "Přehrávání tohoto obsahu je momentálně omezeno. Pro více informací kontaktujte prosím Vašeho správce Emby Serveru.", + "Accept": "Přijmout", + "Reject": "Odmítnout", + "Connect": "Připojit", + "HeaderMyMedia": "Má média", + "HeaderMyMediaSmall": "Má média (malé)", + "LatestFromLibrary": "Nejnovější {0}", + "HeaderLatestEpisodes": "Poslední epizoda", + "ContinuePlaying": "Pokračovat v přehrávání", + "ContinueWatching": "Pokračovat ve sledování", + "HeaderLatestChannelMedia": "Nejnovější položky kanálu", + "HeaderContinueWatching": "Pokračovat ve sledování", + "HeaderContinueListening": "Pokračovat v poslechu", + "HeaderActiveRecordings": "Aktivní nahrávání", + "HeaderLatestRecordings": "Nejnovější nahrávky", + "LabelConvertTo": "Překódovat na:", + "LabelDownloadTo": "Stáhnout do:", + "HeaderDownloadToDots": "Stáhnout do...", + "Next": "Další", + "LabelSource": "Zdroj:", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "Všechny jazyky", + "Previous": "Předchozí", + "HeaderNextUp": "Nadcházející", + "HeaderPlayNextUp": "Přehrát následující", + "HeaderLatestFrom": "Nejnovější od {0}", + "LabelHomeScreenSectionValue": "Domovská obrazovka sekce {0}", + "PasswordResetComplete": "Heslo bylo obnoveno.", + "PasswordSaved": "Heslo uloženo.", + "SettingsSaved": "Nastavení uloženo.", + "Upcoming": "Nadcházející", + "HeaderSelectImageFile": "Vybrat soubor s obrázkem", + "None": "Žádný", + "More": "Více", + "Up": "Nahoru", + "Down": "Dolů", + "Home": "Domů", + "Back": "Zpět", + "Random": "Random", + "Playback": "Přehrávání", + "Favorites": "Oblíbené", + "HeaderHomeScreen": "Domovská obrazovka", + "HeaderLatestChannelItems": "Nejnovější položky kanálu", + "HeaderLibraryOrder": "Pořadí knihovny", + "HeaderOnNow": "Právě teď", + "HeaderForKids": "Pro děti", + "HeaderPlaybackError": "Chyba přehrávání", + "PlaybackErrorNotAllowed": "V současné době nejste oprávněni přehrávat tento obsah. Pro více informací se obraťte se na správce systému.", + "RateLimitExceeded": "Váš účet překročil limit streamování, který nastavil Váš administrátor serveru Emby. Kontaktujte jej, aby Vám mohl pomoci..", + "PlaybackErrorNoCompatibleStream": "Žádné kompatibilní streamy nejsou v současné době k dispozici. Zkuste to, prosím, později nebo pro více podrobností kontaktujte svého správce systému", + "PlaybackErrorPlaceHolder": "Pro přehrání videa nejdříve vložte disk", + "PlaybackErrorNoPlayableItems": "Nenalezeny žádné přehratelné položky. Nezkoušíte přehrávat prazdnou složku?", + "Guide": "Průvodce", + "Games": "Hry", + "GameSystem": "Game System", + "Suggestions": "Návrhy", + "HeaderFavoriteChannels": "Oblíbené kanály", + "HeaderFavoriteCollections": "Oblíbené sbírky", + "HeaderFavoritePlaylists": "Oblíbené playlisty", + "Collection": "Kolekce", + "Collections": "Kolekce", + "LabelSelectFolderGroups": "Automaticky seskupit obsah z následujících složek do zobrazení, jako jsou Filmy, Hudba a TV:", + "LabelSelectFolderGroupsHelp": "Složky, které nejsou zaškrtnuty budou zobrazeny ve vlastním pohledu.", + "Mute": "Ztlumit", + "Unmute": "Nahlas", + "Folder": "Folder", + "Folders": "Složky", + "FileName": "Název souboru", + "DisplayInOtherHomeScreenSections": "Zobrazit v sekundárních sekcích domovské obrazovky podobně, jako jsou nejnovější média a pokračovat v přehrávání.", + "DisplayInMyMedia": "Zobrazit na domovské obrazovce", + "Shows": "Seriály", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Hudební video", + "HeaderMusicVideos": "Videoklipy", + "MusicVideos": "Videoklipy", + "Videos": "Videa", + "MixedContent": "Smíšený obsah", + "HomeVideos": "Domáci videa", + "HomeVideosAndPhotos": "Domácí videa a fotografie", + "TVShows": "TV seriály", + "HeaderLibraryFolders": "Složky knihovny", + "HeaderTermsOfPurchase": "Podmínky nákupu", + "PrivacyPolicy": "Zásady ochrany osobních údajů", + "TermsOfUse": "Podmínky použití", + "HeaderRepeatMode": "Režim opakování", + "HeaderToneMapping": "Mapování tonality", + "RepeatOne": "Opakovat jeden", + "RepeatAll": "Opakovat vše", + "LabelDefaultScreen": "Výchozí obrazovka:", + "ConfirmEndPlayerSession": "Chcete vypnout Emby na {0}?", + "Yesterday": "Včera", + "Yes": "Ano", + "No": "Ne", + "HeaderScanLibraryFiles": "Prohledat soubory knihovny", + "LiveTV": "Živá TV", + "Schedule": "Naplánování úlohy", + "Recordings": "Nahrávky", + "ScanForNewAndUpdatedFiles": "Vyhledat nové a aktualizované soubory", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "Médium je kompatibilní se zařízením, pokud jde o rozlišení a typ média (H.264, AC3, atd.), ale je v nekompatibilním kontejneru (.mkv, .avi, .wmv, atd.). Video bude za běhu přebaleno než bude streamováno do zařízení.", + "DirectStreamHelp2": "Přímé vysílání souborů používá velmi malý výkon, aniž by došlo ke ztrátě kvality videa.", + "MediaIsBeingConverted": "Média se převádějí na formát, který je kompatibilní se zařízením, které ho přehrává.", + "StatsForNerds": "Podrobná statistika", + "HeaderHardwareAcceleratedDecoding": "Hardwarově akcelerované dekódování", + "HeaderHardwareAcceleratedEncoding": "Hardwarově akcelerované překódování", + "HeaderDirectPlay": "Přímé přehrávání", + "DirectPlaying": "Přímé přehrání", + "DirectStreaming": "Přímé streamování", + "Transcode": "Překodování", + "Transcoding": "Překódování", + "ContainerBitrateExceedsLimit": "Snížení datového toku pro nastavení kvality", + "VideoCodecNotSupported": "Převod videa na podporovaný kodek", + "AudioCodecNotSupported": "Převod audia na podporovaný kodek", + "SubtitleCodecNotSupported": "Převod titulků přímo do videa", + "DirectPlayError": "Zotavení z chyby přehrávání", + "ContainerNotSupported": "Převod na podporovaný kontejner", + "VideoLevelNotSupported": "Převod na podporovanou úroveň videa", + "AudioBitrateNotSupported": "Převod na podporovaný datový tok audia", + "AudioChannelsNotSupported": "Převod na podporovaný počet zvukových stop", + "VideoResolutionNotSupported": "Převod na podporované rozlišení videa", + "AudioProfileNotSupported": "Převod na podporovaný audio profil", + "AudioSampleRateNotSupported": "Převod na podporovanou vzorkovací frekvenci audia", + "AnamorphicVideoNotSupported": "Anamorfní video není podporováno", + "InterlacedVideoNotSupported": "Odstranění prokládání videa", + "SecondaryAudioNotSupported": "Výběr druhé zvukové stopy", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "Při odebrání účtu Emby Connect došlo k chybě. Ujistěte se, že máte aktivní připojení k internetu a zkuste to znovu.", + "HeaderEmbyAccountRemoved": "Emby účet odebrán", + "MessageEmbyAccontRemoved": "Účet Emby byl odstraněn pro tohoto uživatele.", + "HeaderInvitationSent": "Pozvánka odeslána", + "Offline": "Offline", + "HeaderSignUp": "Registrovat", + "ServerDownloadMessage": "Pro stažení a instalaci Emby serveru zdarma navštivte {0}", + "ServerDownloadMessageWithoutLink": "Pro stažení a instalaci Emby serveru zdarma navštivte stránky Emby.", + "MessageInvitationSentToUser": "E-mail byl odeslán na adresu {0} a přijmutím této pozvnánky akceptujete vaší pozvánku ke sdílení.", + "MessageInvitationSentToNewUser": "E-mail byl odeslán na adresu {0} s výzvou k registraci s Emby.", + "GuestUserNotFound": "Uživatel nenalezen. Prosím, ujistěte se, že název je správný a zkuste to znovu, nebo zkuste zadat jejich e-mailovou adresu.", + "ErrorReachingEmbyConnect": "Došlo k chybě při navázání spojení k serveru Emby Connect. Ujistěte se, zda je funkční připojení k internetu a zkuste to znovu.", + "ErrorAddingEmbyConnectAccount1": "Nastala chyba při přidávání účtu Emby Connect. Opravdu máte vytvořen účet u Emby? Přihlaste se zde {0}.", + "ErrorAddingEmbyConnectAccount2": "Pokud stále máte problémy, pošlete prosím e-mail na adresu {0} z e-mailové adresy použité na účtu Emby.", + "ErrorAddingGuestAccount1": "Došlo k chybě při přidávání účtu Emby Connect. Má váš host vytvořený účet Emby? Může se přihlásit na {0}.", + "ErrorAddingGuestAccount2": "Pokud stále máte problémy, pošlete prosím e-mail na adresu {0} a přiložte Vaši i jejich e-mailovou adresu.", + "MessageEmbyAccountAdded": "Emby účet byl přidáno k tomuto uživateli.", + "MessagePendingEmbyAccountAdded": "Účet Emby byl přidán pro tohoto uživatele. E-mail bude zaslán majiteli účtu. Pozvánku bude nutné potvrdit kliknutím na odkaz uvnitř e-mailu.", + "HeaderEmbyAccountAdded": "Emby účet přidán", + "Skip": "Přeskočit", + "HeaderAdditionalParts": "Další části", + "ButtonGenerateNewPin": "Generovat nový pin", + "ConnectLoginHelp1": "S Emby Connect se můžete snadno připojit na Emby server kdekoli jste a sdílet servery s rodinou a přáteli.", + "CreatePinErrorMessage": "Chyba při vytváření pin kódu. Klikněte prosím na Generovat nový pin a zkuste to znovu.", + "PinExpiredMessage": "Platnost pin kódu vypršela. Klikněte prosím na Generovat nový pin a zkuste to znovu.", + "ConnectPinCodeHeader": "Abyste se připojili přes Emby Connect, použijte mobilní zařízení nebo počítač, navštivte {0} a zadejte následující pin kód:", + "LabelSubtitlePlaybackMode": "Mód titulků:", + "ErrorDeletingItem": "Nastala chyba při mazání položky z Emby Serveru. Zkontrolujte prosím, že Emby Server má oprávnění k zápisu do složky médií a zkuste to prosím znovu.", + "NoSubtitles": "Žádné titulky", + "Default": "Výchozí", + "Absolute": "Absolutní", + "Smart": "Chytrý", + "Small": "Malý", + "Smaller": "Menší", + "Medium": "Střední", + "Large": "Velký", + "Larger": "Larger", + "ExtraLarge": "Extra velký", + "ExtraSmall": "Extra small", + "Forced": "Vynucené", + "External": "Externí", + "HeaderEmbeddedTitle": "Vložený název", + "OnlyForcedSubtitles": "Pouze vynucené titulky", + "AlwaysPlaySubtitles": "Vždy zobrazit titulky", + "DefaultSubtitlesHelp": "Titulky jsou načteny na základě výchozích a vynucených nastavení ve vložených metadatech. Jazykové preference jsou vzaty v úvahu, pokud je k dispozici více možností.", + "SmartSubtitlesHelp": "Titulky budou načteny po porovnání s preferovaným jazykem, pokud je zvuk v cizím jazyce.", + "HeaderSubtitleSettings": "Nastavení titulků", + "HeaderSubtitleAppearance": "Vzhled titulků", + "OnlyForcedSubtitlesHelp": "Jen vynucené titulky budou nahrány.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Titulky odpovídající jazykové předvolbě se načtou bez ohledu na jazyk audia.", + "NoSubtitlesHelp": "Ve výchozím nastavení nebudou titulky načteny. Během přehrávání však mohou být manuálně zapnuty.", + "LabelPreferredSubtitleLanguage": "Preferovaný jazyk titulků:", + "LabelTextSize": "Velikost textu:", + "TheseSettingsAffectSubtitlesOnThisDevice": "Tato nastavení ovlivní titulky na tomto zařízení", + "LabelDropShadow": "Vrhat stín:", + "LabelTextBackgroundColor": "Barva pozadí textu:", + "LabelWindowBackgroundColor": "Barva pozadí textu:", + "LabelFont": "Písmo:", + "LabelTextColor": "Barva textu:", + "LabelBackgroundColor": "Barva pozadí:", + "LabelBackgroundOpacity": "Průhlednost pozadí:", + "Raised": "Zvednutý", + "Depressed": "Stlačený", + "Uniform": "Uniformní", + "DropShadow": "Vrhat stín", + "SmallCaps": "Kapitálky", + "SubtitleAppearanceSettingsDisclaimer": "Tato nastavení se nevztahují na grafické titulky (PGS, DVD atd.) nebo titulky, které mají vložené vlastní styly (ASS / SSA).", + "Normal": "Normální", + "HeaderWaitingForWifi": "Čekání na Wifi", + "WifiRequiredToDownload": "Pro pokračování stahování je zapotřebí připojení Wifi.", + "DownloadOnlyOnWifi": "Stahovat pouze na wifi", + "LabelMusicDownloadQuality": "Kvalita stahování hudby:", + "MusicDownloadQualityHelp": "Audio soubory s vyšším datovým tokem budou konvertovány pomocí serveru Emby. Vyberte vyšší hodnotu pro lepší kvalitu nebo nižší hodnotu pro úsporu velikosti.", + "HeaderDownloadSettings": "Stáhnout nastavení", + "LabelDownloadLocation": "Umístění stahování:", + "BrowseForFolder": "Procházet složku", + "Unlimited": "Neomezeno", + "NoLimit": "No limit", + "Hide": "Skrýt", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Převod na podporovanou bitovou hloubku zvuku", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Převod na podporovaný video profil", + "VideoFramerateNotSupported": "Převod na podporovanou snímkovou frekvenci videa", + "VideoBitDepthNotSupported": "Převod na podporovanou bitovou hloubku videa", + "RefFramesNotSupported": "Převod na podporovaný počet referenčních snímků videa", + "ErrorConnectServerUnreachable": "Při provádění požadované operace došlo k chybě. Váš server nemůže kontaktovat náš server Emby Connect na adrese {0}. Ujistěte se, že váš server má aktivní připojení k internetu a že komunikace jsou povoleny jakýmkoli nainstalovaným firewallem nebo bezpečnostním softwarem.", + "HeaderStopRecording": "Zastavit záznam", + "ManageRecording": "Spravovat nahrávání", + "LabelDropImageHere": "Sem přetáhněte obrázek nebo klikněte pro výběr obrázku k nahrání.", + "MessageFileReadError": "Došlo k chybě při čtení souboru. Zkuste, prosím, znovu.", + "Browse": "Procházet", + "HeaderUploadImage": "Nahrát obrázek", + "HeaderAddUpdateImage": "Přidat/Aktualizovat obrázek", + "HeaderShowFields": "Zobrazit pole", + "LabelView": "Zobrazit", + "LabelImageType": "Typ obrázku:", + "Upload": "Nahrát", + "Primary": "Primární", + "PrimaryImageBlur": "Rozostření základního obrázku", + "Art": "Umění", + "Backdrop": "Pozadí", + "Banner": "Banner", + "Box": "Pouzdro", + "BoxRear": "Box (zadní)", + "Disc": "Disk", + "Logo": "Logo", + "LogoDark": "Logo (tmavá verze)", + "LogoLight": "Logo (světlá verze)", + "LogoLightColor": "Logo (světlé barevné)", + "Menu": "Nabídka", + "Screenshot": "Snímek obrazovky", + "Thumb": "Miniatura", + "HeaderAudioSettings": "Nastavení zvuku", + "LabelAudioLanguagePreference": "Preferovaný jazyk zvuku:", + "LabelPlayDefaultAudioTrack": "Přehrávat defaultní audio stopu bez ohledu na jazyk", + "HeaderVideoQuality": "Kvalita videa", + "CinemaModeConfigurationHelp": "kino úvody přinášejí zážitky z kina přímo do vašeho obývacího pokoje s možností přehrát ukázky a vlastní úvody před hlavním programem.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Automaticky přehrávat další epizodu", + "LabelMaxChromecastBitrate": "Maximální datový tok pro Chromecast:", + "LabelSkipBackLength": "Délka posunu zpět:", + "LabelSkipForwardLength": "Délka posunu vpřed:", + "EnableCinemaMode": "Povolit Kino úvody", + "LabelInternetQuality": "Kvalita přes internet:", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Kvalita hudby", + "LabelHomeNetworkQuality": "Kvalita přes domácí síť:", + "HeaderLatestMedia": "Nejnovější média", + "HeaderRestartingEmbyServer": "Restartování Emby serveru", + "RestartPleaseWaitMessage": "Počkejte prosím, než se Emby Server vypne a restartuje. Může to trvat pár minut.", + "HeaderPlayNext": "Přehrát další", + "AutoBasedOnLanguageSetting": "Auto (na základě nastavení zařízení)", + "SameAsMainTheme": "Stejné jako hlavní téma", + "LabelDateTimeLocale": "Místní datum a čas:", + "Genre": "Žánr", + "DirectorValue": "Režisér: {0}", + "DirectorsValue": "Režiséři: {0}", + "GenreValue": "Žánr: {0}", + "GenresValue": "Žánry: {0}", + "TagsValue": "Tagy: {0}", + "Off": "Vypnuto", + "Title": "Název", + "Year": "Rok", + "Filter": "Filter", + "Filters": "Filtry", + "Unplayed": "Nepřehrané", + "LabelTVHomeScreen": "Domovská obrazovka TV režimu:", + "Horizontal": "Horizontální", + "Vertical": "Vertikální", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Seskupit podle série", + "HeaderVideoType": "Typ videa", + "HeaderSeriesStatus": "Stav seriálu", + "Features": "Funkce", + "Trailers": "Trailery", + "Extras": "Extra", + "ThemeSongs": "Tématická hudba", + "ThemeVideos": "Tématické video", + "HeaderFavoriteMovies": "Oblíbená videa", + "HeaderFavoritePhotos": "Oblíbené fotografie", + "HeaderFavoriteShows": "Oblíbené seriály", + "HeaderFavoriteEpisodes": "Oblíbené epizody", + "HeaderFavoriteVideos": "Oblíbená videa", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Oblíbené hry", + "HeaderFavoriteArtists": "Oblíbení umělci", + "HeaderFavoriteAlbums": "Oblíbená alba", + "HeaderFavoriteSongs": "Oblíbená hudba", + "HeaderFavoriteAuthors": "Oblíbení tvůrci", + "HeaderFavoriteAudioBooks": "Oblíbené audioknihy", + "Ascending": "Vzestupně", + "Descending": "Sestupně", + "HeaderColorPrimaries": "Barva primárek", + "HeaderColorSpace": "Barevný prostor", + "HeaderColorTransfer": "Přenos barvy", + "HeaderVideoRange": "Rozsah videa", + "SeriesDisplayOrderHelp": "Seřaďte epizody podle datumu, dvd nebo absolutního číslování.", + "LabelVerticalPositionFromBottom": "Svislá pozice (zespodu):", + "HeaderFavoritePeople": "Oblíbení lidé", + "MultiSelect": "Více-výběr", + "HeaderSignOut": "Odhlásit se", + "HeaderSelectServer": "Výběr serveru", + "HeaderChangeServer": "Změnit server", + "HeaderChangeUser": "Změnit uživatele", + "HeaderAppSettings": "Nastavení aplikace", + "HeaderLoginSettings": "Nastavení přihlášení", + "LabelRememberLogin": "Zapamatovat přihlášení", + "LabelAutomaticallySignOut": "Automaticky odhlásit:", + "BetaTesterMessage": "Děkujeme, že jste beta tester Emby serveru! Zpětnou vazbu zanechte prosím na {0}. Testovací prostor Emby komunity {1}.", + "HardwareAccelerated": "Hardwarová akcelerace", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Informace o médiu", + "Locked": "Zamčeno", + "HeaderSplitVersionsApart": "Rozdělit verze", + "Any": "Vše", + "Admin": "Administrátor", + "HeaderReadMore": "Číst více", + "CustomRatingHelp": "Vlastní hodnocení je použito pro klasifikaci rodičovského hodnocení, avšak nezobrazuje se. Stále se zobrazuje rodičovské hodnocení.", + "KeepUpToHelp": "Nahrávky přesahující limit jsou smazány pokaždé, když začne další nahrávání. Na základě data přidání jsou jako první nejprve smazány nejstarší záznamy.", + "NoItemsMatchingFound": "Nebyly nalezeny žádné položky odpovídající vašim kriteriím vyhledávání.", + "TwoSearchCharsRequired": "Zadejte, prosím, alespoň 2 znaky k vyhledávání.", + "PreventPlaybackContinuing": "Zabránit nekonečnému přehrávání pravidelnou výzvou uživatele k potvrzení.", + "PromptStillWatching": "Povolit oznámení 'Stále sledujete?'", + "HeaderMissingMetadata": "Chybějící metadata", + "HeaderIncludedIn": "Obsaženo v", + "EmbyConnectUserAlreadyLinked": "Uživatel Emby Connect je už propojený s jiným uživatelem tohoto serveru.", + "VideoFilesWillBeConvertedTo": "Překódovaná videa budou uložena jako {0}.", + "VideoWillBeConvertedTo": "Video streamy budou překódovány do {0} nebo zkopírovány z původního souboru pokud jsou už {0} a kvalitou odpovídají možnostem překódování.", + "VideoWillBeConvertedToOrCopied": "Video streamy budou překódovány do {0} nebo zkopírovány z původního souboru pokud jsou některé z {1} a kvalitou odpovídají možnostem překódování.", + "AudioWillBeConvertedTo": "Audio streamy budou překódovány do {0} nebo zkopírovány z původního souboru pokud jsou už {0} a kvalitou odpovídají možnostem překódování.", + "AudioWillBeConvertedToOrCopied": "Audio streamy budou překódovány do {0} nebo zkopírovány z původního souboru pokud jsou některé z {1} a kvalitou odpovídají možnostem překódování.", + "HeaderSpecialKeys": "Speciální klávesy", + "FollowingSpecialKeys": "Následující speciální klávesy podporuje většina klávesnic a dálkových ovládání:", + "HeaderDeleteSeries": "Smazat seriály", + "HeaderDeleteLastPlayedEpisode": "Smazat naposledy zhlédnutou epizodu", + "HeaderConnectingToServer": "Připojování k serveru", + "ServerNameValue": "Název serveru: {0}", + "DomainValue": "Doména: {0}", + "RatedValue": "Hodnoceno {0}", + "LocalServerRedirectMessage": "Nyní budete přesměrován na doménu, kterou vlastní a spravuje administrátor serveru, který byl vybrán pro připojení:", + "AllMediaOwnedHosted": "Všechna média jsou hostována a spravována vlastníkem {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Povolit přepínání obnovovací frekvence displeje", + "EnableDisplayRefreshRateSwitchingHelp": "Umožní Emby před spuštěním přehrávání změnit obnovovací frekvenci displeje na stejnou hodnotu (nebo vyšší) jako má video. Pomůže se tím minimalizovat množství sekání/trhání.", + "RememberSelectedAudioTracks": "Pamatovat si výběr zvukové stopy", + "RememberSelectedSubtitleTracks": "Pamatovat si výběr titulků", + "RememberSelectedSubtitleTracksHelp": "Výběr titulků bude zapamatován pro každé video zvlášť a v případě znovupřehrání videa bude znovu uplatněn.", + "RememberSelectedAudioTracksHelp": "Výběr zvukové stopy bude zapamatován pro každé video zvlášť a v případě znovupřehrání videa bude znovu uplatněn.", + "ClearSavedTrackSelections": "Vymazat uložené výběry stop.", + "HeaderClearTrackSelections": "Vymazat uložené výběry stop.", + "QuestionClearSavedTracks": "Vymazat všechny uložené výběry stop?", + "LabelChannelTags": "Štítky kanálu:", + "AfterThisPlaysConfirmation": "Až toto dohraje, chcete pokračovat v přehrávání anebo odstranit přidanou hudbu z fronty k přehrání?", + "Keep": "Pokračovat", + "Clear": "Odstranit", + "HeaderClearFilters": "Vymazat filtry", + "HeaderSearchForImages": "Hledat obrázky", + "HeaderSearchNewImage": "Hledat nový obrázek", + "HeaderSearchForAnImage": "Hledat obrázek", + "DragDropToReorder": "Přetažením přeuspořádat", + "HeaderAddImageFromUrl": "Přidat obrázek pomocí URL", + "HeaderSetImageFromUrl": "Nastavit obrázek z URL", + "LabelUrl": "URL:", + "LabelChannelNumber": "Číslo kanálu:", + "LabelGuideDataChannel": "Průvodce kanálu:", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Zkopírovat do schránky", + "TimeRemainingValue": "{0} zbývá", + "LabelResumeRewindSeconds": "Automaticky přesunout zpět při pokračování:", + "ResumeRewindSecondsHelp": "Mělo by Vám pomoci si zapamatovat, kde jste skončili.", + "HeaderSavePlayQueueToPlaylist": "Uložit frontu k přehrání do playlistu", + "EnableLogoImagesAsTitle": "Zobrazit obrázky s logem jako nadpisy na stránkách s podrobnostmi.", + "EnableLogoImagesAsTitleHelp": "Obrázky s logem, pokud jsou k dispozici, mohou být použity místo textového nadpisu u videí, seriálů a na ostatních stránkách s podrobnostmi. Pokud nebude k dispozici obrázek s logem, nadpis bude nahrazen textem.", + "LabelNowPlayingAudioBackgroundStyle": "Nyní se přehrává styl hudebního podkresu:", + "LabelNowPlayingVideoBackgroundStyle": "Nyní se přehrává styl obrazového podkresu:", + "NowPlayingVideoBackgroundStyleHelp": "Určuje styl pozadí při vzdáleném ovladání přehrávání videa na jiném zařízení.", + "Rotation": "Rotace", + "Minutes": "Minuty", + "LabelMaxRecordingLength": "Maximální délka nahrávky:", + "MaxRecordingLengthHelp": "Omezí nahrávky na určitý čas bez ohledu na dobu vysílání. Pro žádné omezení nastavte hodnotu 0.", + "RemoteWAN": "Vzdálená (WAN) adresa", + "HeaderLastConnectedTo": "Poslední spojení s", + "Version": "Verze", + "Keyword": "Klíčové slovo", + "HeaderServerAddress": "Adresa serveru", + "HeaderSkipIntro": "Přeskočit intro", + "HeaderCreateRecording": "Vytvořit nahrávku", + "HeaderAddRecording": "Přidání nahrávky", + "HeaderChannelAndTime": "Kanál a čas", + "LabelRecordProgramOrSeriesFrom": "Nahrát pořad nebo seriál z:", + "LabelStartTime": "Začátek:", + "LabelEndTime": "Konec:", + "LabelFrequency": "Četnost:", + "Recurring": "Opakování", + "Once": "Jednou", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Přeskakování úvodu:", + "ShowSkipIntroButton": "Zobrazit tlačítko \"Přeskočit úvod\"", + "AutoSkipIntro": "Automaticky přeskakovat úvodní intra.", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Zobrazí tlačítko \"Přeskočit úvod\" nebo automaticky přeskočí úvod u epizod, u kterých Emby server zjistí značky intra. Detekce úvodu musí být povolena v možnostech knihovny serveru Emby.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "Zobrazit chybějící epizody", + "HeaderMissingEpisodes": "Chybějící epizody", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/da.json b/modules/common/strings/da.json new file mode 100644 index 0000000..671d76b --- /dev/null +++ b/modules/common/strings/da.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby er designet til at hjælpe dig med at administrere dit personlige mediebibliotek, såsom hjemmevideoer og fotos. Se venligst vores {0}brugsbetingelser{1}. Brug af enhver Emby-software udgør accept af disse betingelser.", + "MessageUnableToConnectToServer": "Vi kan ikke forbinde til den valgte server på nuværende tidspunkt. Sikrer dig venligst at serveren kører og prøv igen.", + "EmbyIntroMessage": "Med Emby kan du nemt streame videoer, musik og fotos til smartphones, tablets og andre enheder fra din Emby-server.", + "HeaderSignInWithConnect": "Log ind med Emby Connect", + "HeaderWelcomeToEmby": "Velkommen til Emby", + "HeaderNewUsers": "Nye brugere", + "HeaderPleaseSignIn": "Log venligst ind", + "MessageInvalidUser": "Ukendt brugernavn eller adgangskode. Prøv igen.", + "MessageUnlockAppWithPurchaseOrSupporter": "Lås op for dette feature med en lille enkeltstående betaling, eller med et aktivt Emby Premiere abonnement.", + "MessageUnlockAppWithSupporter": "Lås op for dette feature med et aktivt Emby Premiere abonnement.", + "MessageToValidateSupporter": "Hvis du har et aktivt Emby Premiere abonnement, skal du være sikker på at Emby Premiere er konfigureret i dit Emby Server-kontrolpanel, som kan tilgåes ved at klikke på Emby Premiere i hovedmenuen.", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Log Ind", + "Share": "Del", + "Shared": "Delt", + "Info": "Info", + "Add": "Tilføj", + "Speed": "Hastighed", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Kapitler", + "Password": "Adgangskode", + "SavePassword": "Save Password", + "LabelPassword": "Adgangskode:", + "HeaderResetPassword": "Nulstil adgangskode", + "Series": "Serier", + "Preview": "Forhåndsvisning", + "Submit": "Indsend", + "Never": "Aldrig", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Afspilninger", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Søgeordstype:", + "HeaderSelectColumns": "Vælg kolonner", + "HeaderTopResults": "Bedste søgeresultater", + "HeaderPinSidebar": "Fastgør sidepanel", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Always on", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Upload only on Wifi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Password (confirm)", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Username", + "HeaderAddServer": "Add Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Close", + "HeaderSeeAll": "See All", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "Email", + "LabelHost": "Host", + "LabelHostHelp": "Example: 192.168.1.100 or https://myserver.com", + "LabelPort": "Port", + "Disabled": "Disabled", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Are you still watching?", + "LabelCurrentPassword": "Current password", + "LabelNewPassword": "New password", + "LabelNewPasswordConfirm": "New password confirm", + "HeaderRemovePassword": "Remove Password", + "ServerUpdateNeeded": "Denne Emby server bør opdateres. For at downloade den nyeste version besøg venligst {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Forbind til server", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "Ny", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premiere", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Live", + "Reset": "Reset", + "Repeat": "Gentag", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} numre", + "ItemCount": "{0} elementer", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Seneste musik", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Senest afspillet", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Ofte afspillet", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "Mere som dette på Live TV", + "OriginalAirDateValue": "Originalt sendt: {0}", + "EndsAtValue": "Er færdig {0}", + "Date": "Date", + "AirDate": "Vist på TV", + "Played": "Afspillet", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Sidste episode tilføjet", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio codec:", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Video codec:", + "LabelSubtitleCodec": "Undertekst codec:", + "LabelParentalRating": "Aldersgrænse:", + "BecauseYouLikeValue": "Fordi du kunne lide {0}", + "BecauseYouWatchedValue": "Fordi du har set {0}", + "DirectedByValue": "Instrueret af {0}", + "StarringValue": "Roller {0}", + "Invitations": "Invitationer", + "ActorAsRole": "som {0}", + "ButtonOk": "Ok", + "GroupItemsIntoCollections": "Saml elementer i samlinger", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "User", + "Access": "Access", + "Users": "Brugere", + "Library": "Bibliotek", + "Devices": "Enheder", + "Cancel": "Annuller", + "Restart": "Genstart", + "Shutdown": "Luk ned", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Systemer", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Forstået", + "RememberMe": "Husk mig", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Administrer Emby server", + "ShutdownServer": "Luk Emby server ned", + "RestartServer": "Genstart Emby server", + "RecordingCancelled": "Optagelse annulleret.", + "SeriesCancelled": "Serie annulleret.", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Optagelse planlagt.", + "SeriesRecordingScheduled": "Optagelse af serie planlagt.", + "HeaderNewRecording": "Ny optagelse", + "HeaderWakeServer": "Væk Server", + "AttemptingWakeServer": "Prøver at vække server. Vent venligst...", + "WakeServerSuccess": "Succes!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "\"Wake on LAN\" pakker er blevet sendt til din server, men vi kunne ikke for forbindelse til din Emby server. Din server har måske behov for mere til til at starte op, eller Emby kører ikke på serveren.", + "Days": "Dage", + "Network": "Network", + "Networks": "Netværk", + "SortByValue": "Sorter med {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Fotoalbummer", + "Photos": "Fotoer", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Biograftilstand", + "Conversions": "Conversions", + "Downloads": "Downloads", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profil", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Offline Medier", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Download medier til dine enheder for nem offline-brug.", + "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.", + "CinemaModeFeatureDescription": "Biograftilstand giver dig den ægte biografoplevelse med trailers og brugertilpassede introer, før selve filmen.", + "HeaderFreeApps": "Gratis Emby Apps", + "FreeAppsFeatureDescription": "God fornøjelse med gratis adgang til Emby apps til dine enheder.", + "HeaderBecomeProjectSupporter": "Få Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "Denne funktion kræver et aktivt {0}Emby Premiere abonnement{1}.", + "HeaderConvertYourRecordings": "Konverter Dine Optagelser", + "Record": "Optag", + "Save": "Gem", + "Edit": "Rediger", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Seneste", + "Download": "Hent", + "Downloaded": "Downloadet", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloader", + "Advanced": "Avanceret", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Slet", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Slet element", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Hvis dette element slettes, fjernes det både fra dit filsystem samt din mediebibliotek. Er du sikker på du ønsker at fortsætte?", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Opdater", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Tilføj til samling", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Hjælp", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Computer", + "Mobile": "Mobil / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Vis sprog:", + "LabelDisplayLanguageHelp": "Oversættelser af Emby er en løbende proces.", + "LearnHowYouCanContribute": "Lær hvordan du kan bidrage.", + "NewCollectionHelp": "Samlinger lader dig oprette personaliserede grupper af film og andet biblioteksindhold.", + "SearchForCollectionInternetMetadata": "Søg på internettet efter billeder og metadata", + "DisplayMissingEpisodesWithinSeasons": "Vis manglende episoder i hver sæson", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Aktiver kendingsmelodier", + "EnableBackdrops": "Aktiver bagrundsbilleder", + "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": "Aktiver kendingsvideoer", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "RunAtStartup": "Kør ved start", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Pauseskærm:", + "LabelSoundEffects": "Lydeffekter:", + "LabelName": "Navn:", + "NewCollectionNameExample": "Eksempel: Star Wars samling", + "MessageItemsAdded": "Emne tilføjet.", + "OptionNew": "Ny...", + "LabelPlaylist": "Afspilningsliste:", + "AddToPlaylist": "Tilføj til afspilningsliste", + "HeaderAddToPlaylist": "Tilføj til afspilningsliste", + "Subtitles": "Undertekster", + "LabelTheme": "Tema:", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Søg efter undertekster", + "LabelLanguage": "Sprog:", + "Search": "Søg", + "NoSubtitleSearchResultsFound": "Ingen resultater fundet.", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "Fil", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Er du sikker på du ønsker at slette denne undertekstfil?", + "ConfirmDeletion": "Bekræft sletning", + "MySubtitles": "Mine Undertekster", + "MessageDownloadQueued": "Download sat i kø.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Oplås guide", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Erstat eksisterende billeder", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "Erstat alle metadata", + "SearchForMissingMetadata": "Søg efter manglende metadata", + "LabelRefreshMode": "Genopfrisk tilstand:", + "NoItemsFound": "Ingen emner fundet.", + "HeaderSaySomethingLike": "Sig noget i stil med...", + "ButtonTryAgain": "Prøv Igen", + "HeaderYouSaid": "Du sagde...", + "MessageWeDidntRecognizeCommand": "Beklager, men vi genkendte ikke denne kommando.", + "MessageIfYouBlockedVoice": "Hvis du afslog adgang til tale for appen, skal du re-konfigurere før du prøver igen.", + "ValueDiscNumber": "Disk {0}", + "Unrated": "Ingen bedømmelse", + "Favorite": "Favorit", + "Like": "Like", + "Dislike": "Dislike", + "RefreshDialogHelp": "Metadata opdateres alt efter hvilke indstillinger og internet-servicer der er aktiveret i Emby Server-kontrolpanelet.", + "Open": "Åben", + "Play": "Afspil", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Bland", + "Identify": "Identificer", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Konverter", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Afspil alle", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Kø", + "QueueAllFromHere": "Set alt her i kø", + "PlayAllFromHere": "Afspil alt fra her", + "PlayFromBeginning": "Afspil fra begyndelsen", + "FromBeginning": "From Beginning", + "ResumeAt": "Genoptag fra {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sorter", + "Trailer": "Trailer", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Vælg venligst mindst to elementer.", + "HeaderConfirmRecordingCancellation": "Bekræft annullering af optagelse", + "MessageConfirmRecordingCancellation": "Annuller denne optagelse?", + "Album": "Album", + "AlbumArtist": "Albumkunstner", + "Error": "Fejl", + "VoiceInput": "Taleinput", + "LabelContentType": "Indholdstype:", + "LabelPath": "Sti:", + "Playlists": "Playlister", + "LabelTitle": "Titel:", + "LabelOriginalTitle": "Original titel:", + "LabelSortTitle": "Sortér titel:", + "LabelDateAdded": "Dato for tilføjelse:", + "DateAdded": "Dato tilføjet", + "DateModified": "Date Modified", + "DatePlayed": "Dato afspillet", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Konfigurer hvordan tilføjet-dato bestemmes, under Emby Server-kontrolpanelet under Biblioteksindstillinger", + "LabelStatus": "Status:", + "LabelArtistsHelp": "Angiv flere ved at sætte ; mellem dem.", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Albumartister:", + "LabelAlbum": "Album:", + "Artist": "Artist", + "Artists": "Kunstnere", + "ImdbRating": "IMDb rating", + "CommunityRating": "Community rating", + "LabelCommunityRating": "Fællesskabsvurdering:", + "LabelCriticRating": "Kritikervurdering:", + "CriticRating": "Critic rating", + "LabelWebsite": "Hjemmeside:", + "Tagline": "Tagline", + "LabelOverview": "Oversigt:", + "LabelShortOverview": "Kort oversigt:", + "LabelReleaseDate": "Udgivelsesdato:", + "LabelPlaceOfBirth": "Fødeby:", + "Aired": "Vist i TV", + "LabelAirDays": "Sendedage:", + "LabelAirTime": "Sendetid:", + "LabelRuntimeMinutes": "Spilletid (minutter):", + "LabelCustomRating": "Brugerdefineret bedømmelse:", + "LabelOriginalAspectRatio": "Originalt formatforhold:", + "Label3DFormat": "3D format:", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} downloader", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Aktiver eksterne videoafspillere", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Information om specialepisoder", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Sendes efter sæson:", + "LabelAirsBeforeEpisode": "Sendes før episode:", + "HeaderExternalIds": "Eksterne ID'er:", + "HeaderDisplaySettings": "Visningsindstillinger", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Visningsorden:", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Lande", + "Genres": "Genre", + "Studios": "Studier", + "Tags": "Tags", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Indstillinger for metadata", + "People": "Personer", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Foretrukket sprog for nedhentning:", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lås for at undgå fremtidige ændringer", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Efterlad tom for at arve indstillinger fra en overliggende post eller den globale standardværdi.", + "LabelCountry": "Land:", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id:", + "LabelBirthYear": "Fødselsår:", + "LabelBirthDate": "Fødselsdato:", + "LabelDeathDate": "Dødsdato:", + "LabelEndDate": "Slutdato:", + "LabelSeasonNumber": "Sæsonnummer:", + "LabelEpisodeNumber": "Episodenummer:", + "LabelTrackNumber": "Spor nummer:", + "LabelNumber": "Nummer:", + "LabelDiscNumber": "Disk-nummer", + "LabelParentNumber": "Forældre-nummer:", + "SortName": "Sorteringsnavn", + "OriginalTitle": "Original Title", + "ReleaseDate": "Udgivelsesdato", + "Continuing": "Forsættes", + "Ended": "Færdig", + "HeaderEnabledFields": "Aktivér Felter", + "HeaderEnabledFieldsHelp": "Fjern fluebenet fra et felt for at låse det og forhindre dets data fra at blive ændret.", + "Backdrops": "Backdrops", + "Images": "Billeder", + "Runtime": "Afspilningstid", + "ProductionLocations": "Produktionslokationer", + "BirthLocation": "Fødselslokation", + "ParentalRating": "Parental Rating", + "PlayCount": "Antal afspilninger", + "Name": "Navn", + "Overview": "Overblik", + "LabelType": "Type:", + "LabelPersonRole": "Rolle:", + "LabelPersonRoleHelp": "Eksempel: Isbilschauffør", + "Actor": "Skuespiller", + "Composers": "Composers", + "Composer": "Komponist", + "Director": "Instruktør", + "GuestStar": "Gæsteskuespiller", + "Producer": "Producent", + "Writer": "Forfatter", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Installerer {0}", + "PackageInstallCompleted": "{0} installation udført.", + "PackageInstallFailed": "{0} installationen mislykkedes.", + "PackageInstallCancelled": "{0} installation afbrudt.", + "SeriesYearToPresent": "{0} - Nuværende", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 emne", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episoder", + "Albums": "Albummer", + "Song": "Song", + "Songs": "Sange", + "Authors": "Authors", + "Books": "Bøger", + "AudioBooks": "Lydbøger", + "HeaderAudioBooks": "Lydbøger", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Indtast et eller flere søgekriterier.Fjern kriterier for at få flere søgeresultater.", + "PleaseEnterNameOrId": "Indtast venligst et navn eller eksternt Id.", + "MessageItemSaved": "Element gemt.", + "SearchResults": "Søgeresultater", + "ServerNameIsRestarting": "Emby Server - {0} genstarter.", + "ServerNameIsShuttingDown": "Emby Server - {0} lukker ned.", + "HeaderDeleteItems": "Slet emner", + "ConfirmDeleteItems": "Sletning af disse emner vil både fjerne dem fra filsystemet og dit mediebibliotek. Er du sikker på at du vil fortsætte?", + "PleaseRestartServerName": "Genstart venligst Emby Server - {0}.", + "ConvertingDots": "Konverterer...", + "LabelSyncNoTargetsHelp": "Det ser ud til du p.t. ikke har nogle apps der understøtter offline downloading", + "DownloadingDots": "Downloader...", + "LearnMore": "Lær mere", + "LabelBitrateMbps": "Bitrate (Mbps):", + "ConvertUnwatchedVideosOnly": "Konverter kun usete videoer", + "SyncUnwatchedVideosOnly": "Download kun usete videoer", + "ConvertUnwatchedVideosOnlyHelp": "Kun usete videoer vil blive konverteret.", + "SyncUnwatchedVideosOnlyHelp": "Kun usete videoer vil blive downloadet, og videoer vil blive slettet fra enheden når de er set.", + "AutomaticallySyncNewContent": "Automatisk download nyt indhold", + "AutomaticallySyncNewContentHelp": "Nyt indhold i denne mappe vil automatisk blive downloadet til enheden.", + "AutomaticallyConvertNewContent": "Automatisk konverter nyt indhold", + "AutomaticallyConvertNewContentHelp": "Nyt indhold i denne mappe vil automatisk blive konverteret.", + "LabelItemLimit": "Maks. filer:", + "ConvertItemLimitHelp": "Valgfrit. Sæt et antal på hvor meget der vil blive konverteret.", + "DownloadItemLimitHelp": "Valgfrit. Sæt et antal på hvor meget der vil blive downloadet.", + "PleaseSelectDeviceToSyncTo": "Venligst vælg en enhed at downloade til.", + "Screenshots": "Skærmbilleder", + "MoveRight": "Flyt mod højre", + "MoveLeft": "Flyt mod venstre", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Slet billede?", + "HeaderEditImages": "Rediger billeder", + "Settings": "Indstillinger", + "ShowIndicatorsFor": "Vis indikatorer for:", + "Episodes": "Episoder", + "Programs": "Programmer", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby Live TV DVR kræver et aktivt {0}Emby Premiere abonnement{1}.", + "HeaderCancelRecording": "Annuller Optagelse", + "HeaderKeepRecording": "Bevar Optagelse", + "HeaderCancelSeries": "Annuller Serie", + "HeaderKeepSeries": "Bevar Serie", + "HeaderLearnMore": "Lær Mere", + "SeriesSettings": "Serieindstillinger", + "HeaderRecordingOptions": "Optagelsesindstillinger", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Serieindstillinger", + "Layout": "Layout", + "Channels": "Kanaler", + "ChannelNameOnly": "Udelukkende kanal {0}", + "Anytime": "Altid", + "AnyLanguage": "Enhvert sprog", + "AroundTime": "Omkring {0}", + "HeaderLatestMovies": "Seneste film", + "All": "Alt", + "Stop": "Stop", + "AllChannels": "Alle kanaler", + "NewEpisodesOnly": "Kun nye episoder", + "AllEpisodes": "Alle episoder", + "LabelStartWhenPossible": "Start når muligt:", + "LabelStopWhenPossible": "Stop når muligt:", + "MinutesBefore": "minutter før", + "MinutesAfter": "minutter efter", + "SkipEpisodesAlreadyInMyLibrary": "Optag ikke episoder som allerede findes i mit bibliotek", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episoder bliver sammenlignet på sæson og episodenummer, når muligt.", + "LabelKeepUpTo": "Bevar op til:", + "AsManyAsPossible": "Så mange som muligt", + "DefaultErrorMessage": "Det opstod en fejl ved behandlingen af forespørgslen. Prøv igen senere.", + "UntilIDelete": "Til jeg sletter", + "UntilSpaceNeeded": "Til pladsen er nødvendig", + "Categories": "Kategorier", + "Sports": "Sport", + "News": "Nyheder", + "Movies": "Film", + "Music": "Musik", + "Kids": "Børn", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Aktiver farvekodet baggrunde", + "SortChannelsBy": "Sortér kanaler efter:", + "ChannelNumber": "Kanalnummer", + "HeaderBenefitsEmbyPremiere": "Fordele ved Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Nyd venligst et minuts afspilning. Tak fordi du prøver Emby.", + "HeaderTryPlayback": "Prøv Afspilning", + "HowDidYouPay": "Hvordan betalte du?", + "IHaveEmbyPremiere": "Jeg har Emby Premiere", + "IPurchasedThisApp": "Jeg købte denne app", + "ButtonRestorePreviousPurchase": "Genskab Indkøb", + "ButtonUnlockWithPurchase": "Lås op for med Køb", + "ButtonUnlockPrice": "Lås op for {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Månedlig {0}", + "HeaderAlreadyPaid": "Allerede Betalt?", + "ButtonPlayOneMinute": "Afspil Ét Minut", + "PlaceFavoriteChannelsAtBeginning": "Placer favoritkanaler i begyndelsen", + "HeaderUnlockFeature": "Lås op for Feature", + "MessageDidYouKnowCinemaMode": "Vidste du, at med Emby Premiere kan du opleve features så som Biograftilstand?", + "HeaderPlayMyMedia": "Afspil mit Medie", + "HeaderDiscoverEmbyPremiere": "Oplev Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "emner", + "AppName": "App Name", + "OneChannel": "En kanal", + "ConfirmRemoveDownload": "Fjern download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Fjern download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Behold download", + "AddedOnValue": "Tilføjet {0}", + "RemovingFromDevice": "Fjerner fra enhed", + "KeepOnDevice": "Bevar på enhed", + "CancelDownload": "Annuller download", + "SyncJobItemStatusReadyToTransfer": "Klar til at Overføre", + "SyncJobItemStatusSyncedMarkForRemoval": "Fjerner fra enhed", + "SyncJobItemStatusQueued": "Sat i kø", + "SyncJobItemStatusConverting": "Konverterer", + "SyncJobItemStatusTransferring": "Overfører", + "SyncJobItemStatusSynced": "Downloadet", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Fjern fra enhed", + "Cancelled": "Cancelled", + "Retry": "Prøv igen", + "Continue": "Fortsæt", + "ContinueInSecondsValue": "Fortsæt om {0} sekunder.", + "HeaderRemoteControl": "Fjernbetjening", + "Disconnect": "Afbryd", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Kvalitet", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Standard", + "Fill": "Udfyld", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Godkend", + "Reject": "Afvis", + "Connect": "Forbind", + "HeaderMyMedia": "Mine medier", + "HeaderMyMediaSmall": "Mine medier (lille)", + "LatestFromLibrary": "Seneste {0}", + "HeaderLatestEpisodes": "Seneste episoder", + "ContinuePlaying": "Fortsæt afspilning", + "ContinueWatching": "Fortsæt med at se", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Fortsæt med at se", + "HeaderContinueListening": "Fortsæt med at lyt", + "HeaderActiveRecordings": "Aktive optagelser", + "HeaderLatestRecordings": "Seneste optagelser", + "LabelConvertTo": "Konverter til:", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Næste", + "LabelSource": "Kilde:", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Tidligere", + "HeaderNextUp": "Næste", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Seneste fra {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Indstillinger gemt.", + "Upcoming": "Kommende", + "HeaderSelectImageFile": "Select Image File", + "None": "Intet", + "More": "Mere", + "Up": "Ingen", + "Down": "Ned", + "Home": "Hjem", + "Back": "Tilbage", + "Random": "Random", + "Playback": "Afspil", + "Favorites": "Favoritter", + "HeaderHomeScreen": "Hjemmeskærm", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Fejl i afspilning", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "PlaybackErrorNoCompatibleStream": "No compatible streams are currently available. Please try again later or contact your system administrator for details.", + "PlaybackErrorPlaceHolder": "Venligst indsæt disken for at afspille denne video.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Spil", + "GameSystem": "Game System", + "Suggestions": "Forslag", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Favorit samlinger", + "HeaderFavoritePlaylists": "Favorit playlister", + "Collection": "Collection", + "Collections": "Samlinger", + "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.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Mapper", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Vis på hjemmeskærmen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Musikvideoer", + "MusicVideos": "Musikvideoer", + "Videos": "Videoer", + "MixedContent": "Blandet indhold", + "HomeVideos": "Hjemmevideoer", + "HomeVideosAndPhotos": "Hjemmevideoer og fotoer", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Gentag en", + "RepeatAll": "Gentag alt", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Vil du gerne lukke Emby ned på {0}?", + "Yesterday": "Yesterday", + "Yes": "Ja", + "No": "Nej", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Tidsplan", + "Recordings": "Optagelser", + "ScanForNewAndUpdatedFiles": "Skan efter nye og opdateret filer", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for nørder", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Bitrate på medie er over grænsen.", + "VideoCodecNotSupported": "Video codec er ikke understøttet", + "AudioCodecNotSupported": "Audio codec er ikke understøttet", + "SubtitleCodecNotSupported": "Undertekst format er ikke understøttet", + "DirectPlayError": "Fejl ved direct play", + "ContainerNotSupported": "Container er ikke understøttet", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Audioens bitrate er ikke understøttet", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Videoens opløsning er ikke understøttet", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby konto fjernet", + "MessageEmbyAccontRemoved": "Emby kontoen er blevet fjernet fra denne bruger.", + "HeaderInvitationSent": "Invitation er sendt", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "En email er sendt til {0} for at invitere til få adgang til din server.", + "MessageInvitationSentToNewUser": "En email invitation er sendt til {0} for at tilmelde sig Emby.", + "GuestUserNotFound": "Bruger ikke fundet. Venligst sikre sig navnet er korrekt eller kan du forsøge med emailadressen.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "Emby kontoen er blevet tilføjet til denne bruger.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby konto tilføjet.", + "Skip": "Spring over", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generer ny pinkode", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "Der opstod en fejl i forbindelse med ny pinkode blev genereret. Venligst generer en ny pinkode for at prøve igen.", + "PinExpiredMessage": "Pinkoden er udløbet. Venligst generer en ny pinkode for at prøve igen.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "Ingen undertekster", + "Default": "Standard", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Lille", + "Smaller": "Mindre", + "Medium": "Mellem", + "Large": "Stor", + "Larger": "Larger", + "ExtraLarge": "Ekstra stor", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Kun tvungne undertekster", + "AlwaysPlaySubtitles": "Brug altid undertekster", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Undertekstinstillinger", + "HeaderSubtitleAppearance": "Udseende for undertekster", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Foretrukket undertekstsprog", + "LabelTextSize": "Tekststørrelse:", + "TheseSettingsAffectSubtitlesOnThisDevice": "Disse indstillinger påvirker undertekster på denne enhed", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Skrifttype:", + "LabelTextColor": "Tekstfarve:", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Små bogstaver", + "SubtitleAppearanceSettingsDisclaimer": "Disse indstillinger påvirker ikke grafiske undertekster (PGS, DVD, osv), eller undertekster der har deres egen typografi indlejret (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Venter på wifi", + "WifiRequiredToDownload": "En wifi forbindelse er krævet for at fortsat at downloade.", + "DownloadOnlyOnWifi": "Download kun på Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Downloadindstillinger", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Ubegrænset", + "NoLimit": "No limit", + "Hide": "Skjul", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop med at optage", + "ManageRecording": "Administrer optagelse", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload billede", + "HeaderAddUpdateImage": "Tilføj/Updater billede", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primært", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Baggrund", + "Banner": "Banner", + "Box": "Boks", + "BoxRear": "Boks (bagsiden)", + "Disc": "Disk", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Lydinstillinger", + "LabelAudioLanguagePreference": "Foretrukket lydsprog:", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Videokvalitet", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Afspil næste episode automatisk", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Aktiver biograftilstand", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Seneste medier", + "HeaderRestartingEmbyServer": "Genstarter Emby", + "RestartPleaseWaitMessage": "Vent venligst mens Emby genstarter. Dette kan tage et minut eller 2.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (baseret på sprogindstillinger)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "Genre": "Genre", + "DirectorValue": "Instruktør: {0}", + "DirectorsValue": "Instruktører: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genrer: {0}", + "TagsValue": "Tags: {0}", + "Off": "Fra", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Filtre", + "Unplayed": "Uafspillet", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Vandret", + "Vertical": "Lodret", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Kendingsmelodier", + "ThemeVideos": "Kendingsvideoer", + "HeaderFavoriteMovies": "Favoritfilm", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Favorite Shows", + "HeaderFavoriteEpisodes": "Favoritepisoder", + "HeaderFavoriteVideos": "Favoritvideoer", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Favoritspil", + "HeaderFavoriteArtists": "Favoritkunstnere", + "HeaderFavoriteAlbums": "Favoritalbummer", + "HeaderFavoriteSongs": "Favoritsange", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Stigende", + "Descending": "Faldende", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Vælg server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Login indstillinger", + "LabelRememberLogin": "Husk login:", + "LabelAutomaticallySignOut": "Automatisk log ud:", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelereret", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profil", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profil PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Gem Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/de.json b/modules/common/strings/de.json new file mode 100644 index 0000000..ac0de81 --- /dev/null +++ b/modules/common/strings/de.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Ersetze vorhandene Videovorschau-Miniaturansichten", + "ReplaceExistingThumbnailImagesHelp": "Alle vorhandenen Videovorschaubilder werden gelöscht und neue generiert, wenn dies in den Optionen für die Bibliothek aktiviert ist.", + "DateCreated": "Erstellungsdatum", + "CreatedOnValue": "Erstellt {0}", + "UpdatedOnValue": "Aktualisiert {0}", + "EmbyLoginTerms": "Emby hilft dir bei der Verwaltung deiner persönlichen Medienbibliothek, wie z. B. Heimvideos und Fotos. Bitte beachte unsere {0}Nutzungsbedingungen{1}. Mit der Nutzung der Emby Software erklärst du dich mit diesen Bedingungen einverstanden.", + "MessageUnableToConnectToServer": "Zur Zeit lässt sich keine Verbindung zum gewählten Server herstellen. Bitte stelle sicher, dass dieser läuft und versuche es erneut.", + "EmbyIntroMessage": "Mit Emby kannst du auf einfache Art und Weise Videos, Musik und Fotos von deinem Emby Server auf Smartphones, Tablets und andere Geräte streamen.", + "HeaderSignInWithConnect": "Mit Emby Connect anmelden", + "HeaderWelcomeToEmby": "Willkommen bei Emby", + "HeaderNewUsers": "Neue Benutzer", + "HeaderPleaseSignIn": "Bitte einloggen", + "MessageInvalidUser": "Falscher Benutzername oder Passwort. Bitte versuche es erneut.", + "MessageUnlockAppWithPurchaseOrSupporter": "Schalte diese Funktion mit einer kleinen einmaligen Gebühr oder einem aktiven Emby Premiere-Abo frei.", + "MessageUnlockAppWithSupporter": "Schalte diese Funktion mit einem aktiven Emby Premiere-Abo frei.", + "MessageToValidateSupporter": "Wenn du ein aktives Emby-Premiere-Abonnement hast, stelle bitte sicher, dass dies in den Emby Server-Einstellungen eingerichtet ist (Hauptmenu -> Emby Premiere).", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Login", + "Share": "Teilen", + "Shared": "Geteilt", + "Info": "Info", + "Add": "Hinzufügen", + "Speed": "Geschwindigkeit", + "PlaybackSpeed": "Abspielgeschwindigkeit", + "Chapters": "Kapitel", + "Password": "Passwort", + "SavePassword": "Passwort speichern", + "LabelPassword": "Passwort", + "HeaderResetPassword": "Passwort zurücksetzen", + "Series": "Serien", + "Preview": "Vorschau", + "Submit": "Absenden", + "Never": "Niemals", + "Table": "Tabelle", + "HeaderScheduledTasks": "Geplante Aufgaben", + "Plays": "Wiedergabeanzahl", + "LastUsedAddressValue": "Zuletzt genutzt {0}", + "LabelKeywordType": "Schlagwort-Typ", + "HeaderSelectColumns": "Spalten auswählen", + "HeaderTopResults": "Beste Ergebnisse", + "HeaderPinSidebar": "Seitenleiste fixieren", + "Collapse": "Einklappen", + "LabelBackgroundVideoPlayback": "Hintergrund-Videowiedergabe", + "BackgroundVideoPlaybackHelp": "Hintergrundwiedergabe erlaubt dir Videos weiter abzuspielen, auch wenn der Bildschirm ausgeschaltet wurde.", + "AlwaysOn": "Immer eingeschaltet", + "HeadphonesOrExternalSpeakersConnected": "Kopfhörer oder externe Lautsprecher verbunden", + "HeaderKeyboardAndRemote": "Tastatur und Fernbedienung", + "NoSelectedItemsSupportOperation": "Keine Elemente ausgewählt, die diese Funktion unterstützen.", + "NoOperationsForSelectedItems": "Keine Funktionen für die ausgewählten Elemente vorhanden.", + "UploadOnlyOnWifi": "Nur über WLAN hochladen", + "HeaderFoldersToUpload": "Hochzuladende Ordner", + "LabelPasswordConfirm": "Passwort (Bestätigung)", + "HeaderMoveUpInOrder": "In Reihenfolge hochbewegen", + "HeaderDownUpInOrder": "In Reihenfolge herunterbewegen", + "LabelUsername": "Benutzername", + "HeaderAddServer": "Server hinzufügen", + "HeaderSubtitleOffset": "Untertitelversatz", + "Watching": "Schaue", + "HeaderRemoveFromContinueWatching": "Aus 'Weiterschauen' entfernen", + "RemoveThisTitleFromContinueWatching": "Diesen Titel aus 'Weiterschauen' entfernen?", + "HeaderRemoveFromContinueListening": "Aus Weiterhören entfernen", + "RemoveThisTitleFromContinueListening": "Diesen Titel aus Weiterhören entfernen?", + "HeaderIncreaseSubtitleOffset": "Untertitelversatz vergrößern", + "HeaderDecreaseSubtitleOffset": "Untertitelversatz verringern", + "Close": "Schliessen", + "HeaderSeeAll": "Alles ansehen", + "HeaderOpenInNewWindow": "In neuem Fenster öffnen", + "LabelEmail": "E-Mail", + "LabelHost": "Adresse", + "LabelHostHelp": "Beispiel: 192.168.1.100 oder https://meinserver.de", + "LabelPort": "Port", + "Disabled": "Deaktiviert", + "Uninstall": "Deinstallieren", + "Enable": "Aktivieren", + "AllTuners": "Alle Tuner", + "Disable": "Deaktivieren", + "NextValue": "Nächstes: {0}", + "HeaderNextItem": "Nächstes Element", + "HeaderPreviousItem": "Vorheriges Element", + "NoTrailersMessage": "Keine Trailer gefunden. Um Trailer hinzuzufügen, bitte das Trailer-Plugin aus dem {0}Emby-Plugin-Katalog{1} installieren.", + "UninstallPluginConfirmation": "Möchtest du dieses Plugin wirklich deinstallieren?", + "HeaderUninstallPlugin": "Plugin deinstallieren", + "AreYouStillWatching": "Schaust du noch?", + "LabelCurrentPassword": "Aktuelles Passwort", + "LabelNewPassword": "Neues Passwort", + "LabelNewPasswordConfirm": "Neues Passwort bestätigen", + "HeaderRemovePassword": "Passwort entfernen", + "ServerUpdateNeeded": "Dieser Emby Server muss aktualisiert werden. Um die neueste Version herunterzuladen, besuche bitte {0}", + "MessageThankYouForConnectSignUp": "Vielen Dank für die Registrierung bei Emby Connect. Eine E-Mail mit weiteren Schritten zur Anmeldung des neuen Kontos wird dir in Kürze zugestellt. Bitte bestätige das Konto und kehre dann hierher zurück, um dich anzumelden.", + "MessageThankYouForConnectSignUpNoValidation": "Danke für die Registrierung bei Emby Connect! Du wirst nun darum gebeten, dich mit deinen Emby-Connect-Informationen einzuloggen.", + "ErrorMessagePasswordNotMatchConfirm": "Das Passwort und die Passwort-Bestätigung müssen übereinstimmen.", + "ErrorMessageUsernameInUse": "Dieser Benutzername wird bereits verwendet. Bitte einen anderen Benutzernamen wählen und erneut versuchen.", + "ErrorMessageEmailInUse": "Diese E-Mail-Adresse wird bereits verwendet. Bitte eine andere E-Mail-Adresse eingeben oder die \"Passwort vergessen\"-Funktion benutzen.", + "HeaderUpcomingOnTV": "Demnächst im Live TV", + "HeaderOtherShowings": "Andere Sendetermine", + "Showings": "Sendetermine", + "HeaderConnectToServer": "Mit Server verbinden", + "ConnectToServerManually": "Manuell mit Server verbinden", + "LabelEnterConnectUserNameHelp": "Dies ist die E-Mail-Adresse, die du zur Einrichtung deines Emby Connect-Kontos verwendet hast.", + "HeaderSignInError": "Anmeldefehler", + "HeaderManualLogin": "Manuelle Anmeldung", + "PasswordResetConfirmation": "Möchtest du das Passwort wirklich zurücksetzen?", + "ContactAdminToResetPassword": "Bitte kontaktiere deinen Systemadministrator, um dein Passwort zurücksetzen zu lassen.", + "ForgotPasswordInNetworkRequired": "Bitte versuche es erneut innerhalb deines Heimnetzwerks, um die Passwort-Zurücksetzung zu starten.", + "ForgotPasswordFileCreated": "Die folgende Datei wurde auf deinem Server erstellt und enthält eine Anleitung, wie fortgefahren werden muss:", + "ForgotPasswordFileExpiration": "Die Zurücksetz-PIN wird am {0} ablaufen.", + "InvalidForgotPasswordPin": "Es wurde eine ungültige oder abgelaufene PIN eingegeben. Bitte erneut versuchen.", + "PasswordResetForUsers": "Passwörter wurden für die folgenden Benutzer entfernt. Verwende zur Anmeldung ein leeres Passwort.", + "HeaderForgotPassword": "Passwort vergessen?", + "ForgotPasswordUsernameHelp": "Lass das Feld leer, wenn du deinen Benutzernamen vergessen hast.", + "HeaderPasswordReset": "Passwort zurücksetzen", + "AttributeNew": "Neu", + "Done": "Fertig", + "HeaderResetToDefault": "Standardeinstellungen wiederherstellen", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Untertitel einbrennen", + "Premiere": "Premiere", + "LabelPinCode": "PIN-Code", + "LabelLocalNetworkPinCode": "PIN-Code für das lokale Netzwerk", + "LabelLocalNetworkPasswordMode": "Anmeldemodus für das lokale Netzwerk", + "RequirePasswordInLocalNetwork": "Benötigt ein Passwort im lokalen Netzwerk", + "NoPasswordInLocalNetwork": "Benötigt kein Passwort im lokalen Netzwerk", + "PinCodeInLocalNetwork": "Erlaube numerischen PIN-Code im lokalen Netzwerk", + "LocalNetworkPasswordModeHelp": "Wähle die Anmeldemethode für Geräte, die sich im gleichen lokalen Netzwerk wie dein Emby Server befinden.", + "HeaderLocalNetworkAccess": "Lokaler Netzwerkzugriff", + "Live": "Live", + "Reset": "Zurücksetzen", + "Repeat": "Wiederholen", + "Track": "Titel", + "Tracks": "Titel", + "HeaderCameraUpload": "Kamera-Upload", + "TrackCount": "{0} Titel", + "ItemCount": "{0} Elemente", + "NumberChannelsValue": "{0} Kanäle", + "HeaderLatestMusic": "Neueste Musik", + "HeaderLatestAudioBooks": "Neueste Hörbücher", + "HeaderLatestDownloadedVideos": "Zuletzt heruntergeladene Videos", + "HeaderRecentlyPlayed": "Kürzlich abgespielt", + "Recent": "Kürzlich", + "HeaderFrequentlyPlayed": "Häufig gespielt", + "HeaderMoreLikeThis": "Ähnlich wie dieses", + "HeaderMoreLikeThisOnLiveTV": "Mehr davon im Live TV", + "OriginalAirDateValue": "Erstausstrahlung: {0}", + "EndsAtValue": "Endet um {0}", + "Date": "Datum", + "AirDate": "Ausstrahlungsdatum", + "Played": "Abgespielt", + "Daily": "Täglich", + "Weekly": "Wöchentlich", + "RequireHashMatch": "Benötigt eine Hash-Übereinstimmung", + "RequireHashMatchHelp": "Die Hash-Übereinstimmung filtert Untertitel heraus, die mit genau deiner Video-Datei getestet wurden. Durch das Deaktivieren dieser Einstellung werden zwar mehr Untertitel gefunden, aber die Chance auf nicht passende oder fehlerhafte Untertitel steigt.", + "SearchForForcedSubtitlesOnly": "Nur erzwungene Untertitel", + "SearchForForcedSubtitlesOnlyHelp": "\"Nur erzwungene Untertitel\" begrenzt die Auswahl auf Untertitel, die als fremdsprachig markiert sind.", + "LastEpisodeDateAdded": "Letzte Episode hinzugefügt am", + "LastEpisodeDateAired": "Erscheinungsdatum der letzten Episode", + "LabelPlaystate": "Abspielstatus", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episodentitel", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Untertitel", + "Image": "Bild", + "CopyStream": "Kopiere Originalstream", + "LabelAudioLayout": "Audio Layout", + "LabelAudioCodec": "Audio-Codec", + "LabelAudioLanguage": "Audiosprache", + "LabelSubtitleLanguage": "Untertitelsprache", + "LabelVideoCodec": "Video Codec", + "LabelSubtitleCodec": "Untertitel-Codec", + "LabelParentalRating": "Altersfreigabe", + "BecauseYouLikeValue": "Weil du {0} magst", + "BecauseYouWatchedValue": "Weil du {0} gesehen hast", + "DirectedByValue": "Unter der Regie von {0}", + "StarringValue": "In der Hauptrolle {0}", + "Invitations": "Einladungen", + "ActorAsRole": "als {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Medien in Kollektionen gruppieren", + "GroupItemsIntoCollectionsHelp": "Gruppiere Medien entsprechend den Kollektionen, zu denen sie hinzugefügt wurden. Das Aktivieren bestimmter Filter oder Sortierungen hebt dies möglicherweise automatisch auf.", + "GroupItemsIntoTags": "Gruppiere Elemente in Tags", + "GroupItemsIntoTagsHelp": "Ordnet Elemente entsprechend der Tags an, denen sie zugeordnet wurden. Das Aktivieren bestimmter Filter oder Sortierungen hebt dies möglicherweise automatisch auf.", + "User": "Benutzer", + "Access": "Zugriff", + "Users": "Benutzer", + "Library": "Bibliothek", + "Devices": "Geräte", + "Cancel": "Abbrechen", + "Restart": "Neustart", + "Shutdown": "Herunterfahren", + "Logs": "Protokolle", + "Visibility": "Sichtbarkeit", + "Notifications": "Benachrichtigungen", + "SendTestNotification": "Testbenachrichtigung senden", + "NotificationSent": "Benachrichtigung gesendet", + "DeleteNotificationConfirmation": "Bist du sicher, dass du diese Benachrichtigung löschen möchtest?", + "DeleteNotification": "Benachrichtigung löschen", + "AddNotification": "Benachrichtigung hinzufügen", + "EditNotification": "Benachrichtigung bearbeiten", + "LimitUserEventsTo": "Benutzerereignisse beschränken auf", + "LimitLibraryEventsTo": "Bibliotheksereignisse beschränken auf", + "LimitDeviceEventsTo": "Geräteereignisse beschränken auf", + "ForAdditionalNotificationOptions": "Zusätzliche Benachrichtigungsdienste können vom Serveradministrator im Emby {0}Plugin-Katalog{1} installiert werden.", + "Plugins": "Plugins", + "Systems": "Systeme", + "Server": "Server", + "Dashboard": "Übersicht", + "PlayOnAnotherDevice": "Auf einem anderen Gerät wiedergeben", + "HeaderConnectionHelp": "Verbindungshilfe", + "AccessRestrictedTryAgainLater": "Der Zugriff ist derzeit eingeschränkt. Bitte versuche es später erneut.", + "ButtonGotIt": "Verstanden", + "RememberMe": "Angemeldet bleiben", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Emby Server verwalten", + "ShutdownServer": "Emby Server herunterfahren", + "RestartServer": "Emby Server neustarten", + "RecordingCancelled": "Aufnahme abgebrochen", + "SeriesCancelled": "Serie abgebrochen", + "Recording": "Aufnahme", + "SeriesRecording": "Serienaufnahme", + "RecordingScheduled": "Aufnahme geplant", + "SeriesRecordingScheduled": "Serienaufnahme geplant", + "HeaderNewRecording": "Neue Aufnahme", + "HeaderWakeServer": "Server aufwecken", + "AttemptingWakeServer": "Versuche Server aufzuwecken. Bitte warten...", + "WakeServerSuccess": "Erfolgreich!", + "HeaderCustomizeHomeScreen": "Startseite konfigurieren", + "WakeServerError": "Die Wake-On-LAN-Pakete wurden verschickt, aber der Emby Server ließ sich nicht erreichen. Das Gerät braucht vielleicht etwas länger um aufzuwachen oder der darauf befindliche Emby Server wird zur Zeit nicht ausgeführt.", + "Days": "Tage", + "Network": "Netzwerk", + "Networks": "Sendergruppen", + "SortByValue": "Sortieren nach {0}", + "HeaderSortBy": "Sortiert nach", + "HeaderPhotoAlbums": "Fotoalben", + "Photos": "Fotos", + "HeaderAppearsOn": "Erscheint auf", + "List": "Liste", + "HeaderRecordSeries": "Serie aufnehmen", + "HeaderCinemaMode": "Kino-Modus", + "Conversions": "Konvertierungen", + "Downloads": "Downloads", + "HeaderManageDownloads": "Downloads verwalten", + "InternalStorage": "Interner Speicher", + "ExternalStorage": "Externer Speicher", + "UploadToFollowingServers": "Zu Servern hochladen", + "UploadingNumItems": "Lade hoch {0} von {1}", + "DownloadNumItems": "Lade {0} von {1} herunter", + "HeaderSampleRate": "Abtastrate", + "HeaderReferenceFrames": "Referenz-Frames", + "HeaderBitDepth": "Bit-Tiefe", + "HeaderPixelFormat": "Pixelformat", + "Profile": "Profil", + "Bitrate": "Bitrate", + "Expand": "Erweitern", + "Container": "Container", + "Format": "Format", + "Path": "Pfad", + "Size": "Größe", + "Resolution": "Auflösung", + "HeaderCodecTag": "Codec-Tag", + "Framerate": "Bildwiederholungsrate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorph", + "Level": "Level", + "Timestamp": "Zeitstempel", + "Language": "Sprache", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Zusätzliche Daten", + "HeaderHardwareAcceleratedTranscoding": "Hardwarebeschleunigtes Transkodieren", + "HeaderHardwareAcceleratedTranscodingDescription": "Nutze die Vorteile deiner Grafikkarte. Emby bietet die fortschrittlichste und schnellste Hardwarebeschleunigung auf dem Markt.", + "HeaderOfflineDownloads": "Offline-Medien", + "AndMuchMoreExclamation": "Und vieles mehr!", + "HeaderOfflineDownloadsDescription": "Lade Medien auf deine Geräte herunter, um sie einfach offline zu nutzen.", + "LiveTvFeatureDescription": "Streame Live TV, mit einem kompatiblen auf Deinem Emby Server installierten TV-Tuner, zu einer Emby-App.", + "DvrFeatureDescription": "Plane individuelle Aufnahmen von Live-TV, Serienaufnahmen und mehr mit Emby DVR.", + "CinemaModeFeatureDescription": "Der Kino-Modus bringt das richtige Kinogefühl mit Trailern und eigenen Intros vor dem Hauptfilm.", + "HeaderFreeApps": "Kostenlose Emby-Apps", + "FreeAppsFeatureDescription": "Genieße vollen Zugriff auf Emby-Apps für deine Geräte.", + "HeaderBecomeProjectSupporter": "Hol dir Emby Premiere", + "HeaderViewServerInfo": "Server-Info ansehen", + "PlaybackTvModeRequiresEmbyPremiere": "Wiedergabe im TV-Modus erfordert eine aktive {0}Emby-Premiere-Mitgliedschaft{1}.", + "FeatureRequiresEmbyPremiere": "Diese Funktion benötigt eine aktive {0}Emby Premiere-Mitgliedschaft{1}.", + "HeaderConvertYourRecordings": "Deine Aufnahmen konvertieren", + "Record": "Aufnahme", + "Save": "Speichern", + "Edit": "Bearbeiten", + "HeaderSavePlaylist": "Wiedergabeliste speichern", + "Latest": "Neueste", + "Download": "Download", + "Downloaded": "Heruntergeladen", + "Converted": "Konvertiert", + "RemoveFromHistory": "Aus dem Verlauf löschen", + "ConfirmRemoveFromHistory": "Dieses Element aus dem Verlauf entfernen?", + "Downloading": "Lädt herunter", + "Advanced": "Erweitert", + "LinkedToEmbyConnect": "Verbunden mit Emby Connect", + "Delete": "Löschen", + "Both": "Beides", + "LabelChannelDisplay": "Kanalanzeige", + "HeaderDeleteItem": "Element löschen", + "HeaderDeleteUser": "Benutzer löschen", + "DeleteItemConfirmation": "Bist du sicher, dass du {0} löschen möchtest?", + "DeleteUserConfirmation": "Bist du sicher, dass du Benutzer {0} löschen möchtest?", + "DeleteUsersConfirmation": "Bist du sicher, dass du diese {0} Benutzer löschen möchtest?", + "HeaderDeleteDevice": "Gerät löschen", + "DeleteDeviceConfirmation": "Bist du sicher, dass du dieses Gerät löschen möchtest? Wenn sich ein Benutzer beim nächsten mal damit anmeldet, wird es wieder hier erscheinen.", + "ConfirmDeleteItem": "Löschen dieses Elements entfernt es sowohl vom Dateisystem, als auch aus der Medienbibliothek.", + "FollowingFilesWillBeDeleted": "Die folgenden Dateien und Verzeichnisse werden gelöscht:", + "AreYouSureToContinue": "Möchtest du wirklich fortfahren?", + "Refresh": "Aktualisieren", + "RefreshingMetadataDots": "Aktualisiere Metadaten...", + "ScanningLibraryFilesDots": "Scanne Bibliothek...", + "HeaderFavoritesThenByChannelNumber": "Favoriten, danach nach Kanalnummer", + "HeaderAddToCollection": "In Sammlung", + "HeaderFavoritesThenByTitle": "Favoriten, dann per Titel", + "HeaderFavoritesThenByDefault": "Favoriten, danach nach der standard Kanalsortierung", + "HeaderDefaultChannelOrder": "Standard-Kanalsortierung", + "HeaderAddToFavorites": "In Favoriten", + "HeaderRemoveFromFavorites": "Aus Favoriten entfernen", + "Favorited": "Favorit", + "Unfavorited": "Nicht favorisiert", + "HeaderNewCollection": "Neue Sammlung", + "HeaderNewPlaylist": "Neue Wiedergabeliste", + "AllCollections": "Alle Kollektionen", + "AllPlaylists": "Alle Wiedergabelisten", + "Create": "Erstellen", + "HeaderAddedToPlaylist": "Zur Wiedergabeliste hinzugefügt", + "HeaderAddedToCollection": "Zur Sammlung hinzugefügt", + "OneItemAddedTo": "1 Element zu \"{0}\" hinzugefügt.", + "ItemsAddedTo": "{0} Elemente wurden \"{1}\" hinzugefügt.", + "HeaderAddedToPlayQueue": "Zur Warteschlange hinzugefügt", + "HeaderPlayingNext": "Als Nächstes abspielen", + "Help": "Hilfe", + "HeaderGetHelp": "Hilfe erhalten", + "LabelTVDisplayMode": "Aktiviere TV Anzeigemodus", + "Desktop": "Desktop", + "Mobile": "Mobil / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Videowiedergabe", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Staffeln", + "OneTrack": "1 Titel", + "OneSeason": "1 Staffel", + "Libraries": "Bibliotheken", + "NumberSeasonsValue": "{0} Staffeln", + "TVDisplayModeHelp": "Optimiere die Benutzeroberfläche auf diesem Gerät für die Anzeige auf einem Fernsehgerät und die Eingabe mit einer Fernbedienung. Dies wird im Allgemeinen nicht empfohlen, wenn Ihre primäre Eingabemethode Maus- oder touchbasiert ist.", + "LabelDisplayLanguage": "Anzeigesprache", + "LabelDisplayLanguageHelp": "Die Übersetzung von Emby ist ein fortlaufendes Projekt.", + "LearnHowYouCanContribute": "Erfahre, wie du beitragen kannst.", + "NewCollectionHelp": "Kollektionen ermöglichen personalisierte Gruppen von Filmen oder anderen Medien.", + "SearchForCollectionInternetMetadata": "Im Internet nach Bildmaterial und Metadaten suchen", + "DisplayMissingEpisodesWithinSeasons": "Fehlende Episoden in Staffeln anzeigen", + "DisplayMissingEpisodesWithinSeasonsHelp": "Dies muss auch in den Emby-Server-Einstellungen für Serienbibliotheken aktiviert sein.", + "EnableThemeSongs": "Titelmusik abspielen", + "EnableBackdrops": "Hintergründe aktivieren", + "EnableThemeSongsHelp": "Wenn aktiviert, wird während des Durchsuchens der Bibliothek im Hintergrund Titelmusik abgespielt.", + "EnableBackdropsHelp": "Wenn aktiviert, werden während des Durchsuchens der Bibliothek auf einigen Seiten passende Hintergründe angezeigt.", + "EnableThemeVideos": "Hintergrundvideos abspielen", + "EnableThemeVideosHelp": "Wenn aktiviert, werden während des Durchsuchens der Bibliothek im Hintergrund Videos abgespielt.", + "RunAtStartup": "Nach Hochfahren automatisch starten", + "ServerStartup": "Hochfahren des Servers", + "EmbyServerOnXHasStarted": "Emby Server auf {0} wurde gestartet.", + "LabelScreensaver": "Bildschirmschoner", + "LabelSoundEffects": "Soundeffekte", + "LabelName": "Name", + "NewCollectionNameExample": "Beispiel: Star-Wars-Sammlung", + "MessageItemsAdded": "Elemente hinzugefügt.", + "OptionNew": "Neu...", + "LabelPlaylist": "Wiedergabeliste", + "AddToPlaylist": "Zu Wiedergabeliste hinzufügen", + "HeaderAddToPlaylist": "In Wiedergabeliste", + "Subtitles": "Untertitel", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Einstellungs-Theme", + "LabelThemeAccentColor": "Akzentfarbe", + "ThemeAccentColorDescription": "Steuert die für wichtige Indikatoren, Icons und Texte genutzte Farbe.", + "SearchForSubtitles": "Nach Untertiteln suchen", + "LabelLanguage": "Sprache", + "Search": "Suche", + "NoSubtitleSearchResultsFound": "Keine Ergebnisse gefunden. Ist der {0}Untertitel-Download{1} konfiguriert?", + "NoLyricsSearchResultsFound": "Nichts gefunden. Ist das {0}Songtexte-Herunterladen{1} konfiguriert?", + "Lyrics": "Songtexte", + "SearchForLyrics": "Suche nach Songtexten", + "Finish": "Beenden", + "File": "Datei", + "Exit": "Beenden", + "Sleep": "Standby-Modus", + "Setup": "Einrichtung", + "MessageAreYouSureDeleteSubtitles": "Möchtest du diese Untertitel-Datei wirklich löschen?", + "ConfirmDeletion": "Löschen bestätigen", + "MySubtitles": "Meine Untertitel", + "MessageDownloadQueued": "Download eingereiht.", + "HeaderEditSubtitles": "Untertitel bearbeiten", + "UnlockGuide": "Guide freischalten", + "HeaderRefreshMetadata": "Metadaten aktualisieren", + "HeaderRefreshAllMetadata": "Alle Metadaten aktualisieren", + "ReplaceExistingImages": "Vorhandene Bilder ersetzen", + "ReplaceExistingImagesHelp": "Alle vorhandenen Bilder werden gelöscht und neue Bilder werden entsprechend den Optionen für die Bibliothek heruntergeladen. In einigen Fällen kann dies dazu führen, dass weniger Bilder als zuvor verfügbar sind.", + "ReplaceAllMetadata": "Alle Metadaten ersetzen", + "SearchForMissingMetadata": "Nach fehlenden Metadaten suchen", + "LabelRefreshMode": "Aktualisierungsmodus", + "NoItemsFound": "Keine Elemente gefunden.", + "HeaderSaySomethingLike": "Sage etwas wie...", + "ButtonTryAgain": "Erneut versuchen", + "HeaderYouSaid": "Du sagtest...", + "MessageWeDidntRecognizeCommand": "Entschuldigung, dieses Kommando konnten wir nicht erkennen.", + "MessageIfYouBlockedVoice": "Falls Du die Sprachsteuerung für die App nicht erlaubt hast, musst du dies vor einem erneuten Versuch ändern.", + "ValueDiscNumber": "Disc {0}", + "Unrated": "Nicht bewertet", + "Favorite": "Favorit", + "Like": "Mag ich", + "Dislike": "Mag ich nicht", + "RefreshDialogHelp": "Metadaten werden auf Grundlage der Einstellungen und Metadatenanbieter aktualisiert, die bei der Einrichtung der Emby-Bibliothek aktiviert wurden.", + "Open": "Öffnen", + "Play": "Abspielen", + "Pause": "Pause", + "HeaderPlayQueue": "Abspiel-Warteschlange", + "HeaderAddToPlayQueue": "Hinzufügen zu Abspiel-Warteschlange", + "Shuffle": "Zufallswiedergabe", + "Identify": "Identifizieren", + "HeaderRemoveIdentification": "Identifikation entfernen", + "ResetMetadataConfirmation": "Bist du sicher, dass du alle Metadaten zurücksetzen möchtest?", + "HeaderEditMetadata": "Metadaten bearbeiten", + "Convert": "Konvertieren", + "Resume": "Fortsetzen", + "HeaderInstantMix": "Schnellmix", + "HeaderGoToItem": "Gehe zum Objekt", + "HeaderGoToSeason": "Gehe zu Staffel", + "HeaderGoToSeries": "Serie aufrufen", + "HeaderGoToAlbum": "Gehe zu Album", + "HeaderGoToArtist": "Gehe zu Künstler", + "HeaderPlayAll": "Alle abspielen", + "PictureInPicture": "Bild-in-Bild", + "Fullscreen": "Vollbild", + "ExitFullscreen": "Vollbild beenden", + "Rewind": "Zurückspulen", + "FastForward": "Schnell-Vorspulen", + "Remove": "Entfernen", + "Rename": "Umbenennen", + "Queue": "Warteschlange", + "QueueAllFromHere": "Alles ab hier in Warteschlange", + "PlayAllFromHere": "Alles ab hier abspielen", + "PlayFromBeginning": "Von vorn abspielen", + "FromBeginning": "Von Vorne", + "ResumeAt": "Fortsetzen bei {0}", + "HeaderRemoveFromPlaylist": "Von Wiedergabeliste entfernen", + "HeaderRemoveFromPlayQueue": "Aus der Warteschlange entfernen", + "HeaderRemoveFromCollection": "Aus Sammlung entfernen", + "Sort": "Sortieren", + "Trailer": "Trailer", + "SelectNone": "Nichts auswählen", + "SelectAll": "Alles auswählen", + "HeaderMarkPlayed": "Als \"abgespielt\" markieren", + "HeaderMarkUnplayed": "Als \"nicht abgespielt\" markieren", + "HeaderGroupVersions": "Versionen gruppieren", + "PleaseSelectTwoItems": "Bitte wähle mindestens zwei Optionen aus.", + "HeaderConfirmRecordingCancellation": "Aufnahmeabbruch bestätigen", + "MessageConfirmRecordingCancellation": "Aufnahme abbrechen?", + "Album": "Album", + "AlbumArtist": "Album-Künstler", + "Error": "Fehler", + "VoiceInput": "Spracheingabe", + "LabelContentType": "Inhaltstyp", + "LabelPath": "Pfad", + "Playlists": "Wiedergabelisten", + "LabelTitle": "Titel", + "LabelOriginalTitle": "Originaltitel", + "LabelSortTitle": "Sortierungstitel", + "LabelDateAdded": "Hinzugefügt am", + "DateAdded": "Hinzugefügt am", + "DateModified": "Änderungsdatum", + "DatePlayed": "Abgespielt am", + "DateLastActive": "Datum der letzten Aktivität", + "ConfigureDateAdded": "Lege fest, wie das Hinzufügungsdatum im Emby Server Dashboard unter Bibliothekseinstellungen bestimmt wird", + "LabelStatus": "Status", + "LabelArtistsHelp": "Trenne mehrere Einträge durch ;", + "HeaderAlbumArtists": "Albumkünstler", + "LabelAlbumArtists": "Albumkünstler", + "LabelAlbum": "Album", + "Artist": "Künstler", + "Artists": "Künstler", + "ImdbRating": "IMDb-Bewertung", + "CommunityRating": "Community-Bewertung", + "LabelCommunityRating": "Community-Bewertung", + "LabelCriticRating": "Tomatometer", + "CriticRating": "Tomatometer", + "LabelWebsite": "Website", + "Tagline": "Slogan", + "LabelOverview": "Übersicht", + "LabelShortOverview": "Kurzzusammenfassung", + "LabelReleaseDate": "Veröffentlichungsdatum", + "LabelPlaceOfBirth": "Geburtsort", + "Aired": "Ausgestrahlt", + "LabelAirDays": "Ausstrahlungstage", + "LabelAirTime": "Sendezeit", + "LabelRuntimeMinutes": "Laufzeit (Minuten)", + "LabelCustomRating": "Eigene Bewertung", + "LabelOriginalAspectRatio": "Original-Seitenverhältnis", + "Label3DFormat": "3D-Format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash-Übereinstimmung", + "EnableExternalVideoPlayers": "Externen Videoplayer aktivieren", + "EnableExternalVideoPlayersHelp": "Bei der Wiedergabe wird das Menü eines externen Videoplayers angezeigt.", + "HeaderSpecialEpisodeInfo": "Info Spezial Episode", + "LabelAirsDuringSeason": "Wird ausgestrahlt während Staffel", + "LabelAirsAfterSeason": "Wird ausgestrahlt nach Staffel", + "LabelAirsBeforeEpisode": "Wird ausgestrahlt vor Episode", + "HeaderExternalIds": "Externe IDs", + "HeaderDisplaySettings": "Anzeigeeinstellungen", + "PlaylistOrder": "Sortierung Wiedergabelisten", + "CollectionOrder": "Sortierreihenfolge von Sammlungen", + "LabelDisplayOrder": "Anzeigereihenfolge", + "LabelFileOrder": "Dateireihenfolge", + "Display": "Anzeige", + "Countries": "Länder", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Tags", + "Links": "Links", + "Movie": "Film", + "Program": "Programm", + "Channel": "Kanal", + "Episode": "Episode", + "Season": "Staffel", + "HeaderMetadataSettings": "Metadaten-Einstellungen", + "People": "Personen", + "Number": "Nummer", + "Lock": "Sperren", + "HeaderScreenLocked": "Bildschirm gesperrt", + "HeaderUnlockControls": "Bedienelemente freischalten", + "HeaderTapToUnlock": "zum Entsperren tippen", + "LabelMetadataDownloadLanguage": "Bevorzugte Sprache für heruntergeladene Metadaten", + "LabelImageDownloadLanguage": "Bevorzugte Sprache für heruntergeladene Bilder", + "LabelLockItemToPreventChanges": "Dieses Element sperren, um zukünftige Änderungen zu verhindern", + "LockThisField": "Dieses Feld sperren, um zukünftige Änderungen zu verhindern, sobald Metadaten aktualisiert werden", + "MessageLeaveEmptyToInherit": "Freilassen, um Einstellungen von einem übergeordneten Element oder dem globalen Standardwert zu verwenden.", + "LabelCountry": "Land", + "LabelCertificationCountry": "Land für Altersfreigabe", + "CertificationCountryHelp": "Diese Einstellung legt fest, welches Inhaltsbewertungssystem genutzt wird.", + "LabelDynamicExternalId": "{0} ID", + "LabelBirthYear": "Geburtsjahr", + "LabelBirthDate": "Geburtsdatum", + "LabelDeathDate": "Todesdatum", + "LabelEndDate": "Enddatum", + "LabelSeasonNumber": "Staffelnummer", + "LabelEpisodeNumber": "Episodennummer", + "LabelTrackNumber": "Titelnummer", + "LabelNumber": "Nummer", + "LabelDiscNumber": "Disknummer", + "LabelParentNumber": "Ursprungsnummer", + "SortName": "Sortierungstitel", + "OriginalTitle": "Originaltitel", + "ReleaseDate": "Veröffentlichungsdatum", + "Continuing": "Fortlaufend", + "Ended": "Beendet", + "HeaderEnabledFields": "Aktivierte Felder", + "HeaderEnabledFieldsHelp": "Ein Feld abwählen, um es zu sperren und zu verhindern, dass seine Daten geändert werden.", + "Backdrops": "Hintergründe", + "Images": "Bilder", + "Runtime": "Laufzeit", + "ProductionLocations": "Drehorte", + "BirthLocation": "Geburtsort", + "ParentalRating": "Altersfreigabe", + "PlayCount": "Wiedergabezähler", + "Name": "Name", + "Overview": "Übersicht", + "LabelType": "Typ", + "LabelPersonRole": "Rolle", + "LabelPersonRoleHelp": "Beispiel: Eiswagenfahrer", + "Actor": "Schauspieler", + "Composers": "Komponisten", + "Composer": "Komponist", + "Director": "Regisseur", + "GuestStar": "Gaststar", + "Producer": "Produzent", + "Writer": "Drehbuchautor", + "MessageNoSyncJobsFound": "Keine Downloads gefunden. Um Download-Aufträge anzulegen, verwende die Download-Schaltflächen in der App.", + "MessageNoDownloadsFound": "Keine Offline-Downloads vorhanden. Lade deine Medien durch Anklicken von \"Download\" in der App herunter, um sie offline abzuspielen.", + "InstallingPackage": "Installiere {0}", + "PackageInstallCompleted": "{0} Installation abgeschlossen.", + "PackageInstallFailed": "{0} Installation fehlgeschlagen.", + "PackageInstallCancelled": "{0} Installation abgebrochen.", + "SeriesYearToPresent": "{0} - Heute", + "OneDevice": "1 Gerät", + "DeviceCountValue": "{0} Geräte", + "OneLog": "1 Protokoll", + "LogCountValue": "{0} Protokolle", + "OneVote": "1 Stimme", + "VoteCountValue": "{0} Stimmen", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 Benutzer", + "UserCountValue": "{0} Benutzer", + "OneLibrary": "1 Bibliothek", + "LibraryCountValue": "{0} Bibliotheken", + "ValueOneItem": "1 Eintrag", + "ValueOneEpisode": "1 Episode", + "ValueEpisodeCount": "{0} Episoden", + "Albums": "Alben", + "Song": "Song", + "Songs": "Songs", + "Authors": "Autoren", + "Books": "Bücher", + "AudioBooks": "Hörbücher", + "HeaderAudioBooks": "Hörbücher", + "HeaderAudioBook": "Hörbuch", + "HeaderIdentifyItemHelp": "Mindestens ein Suchkriterium eingeben. Kriterien entfernen, um die Suchergebnisse zu erweitern.", + "PleaseEnterNameOrId": "Bitte gib einen Namen oder eine externe ID an.", + "MessageItemSaved": "Element gespeichert.", + "SearchResults": "Suchergebnisse", + "ServerNameIsRestarting": "Emby Server - {0} startet neu.", + "ServerNameIsShuttingDown": "Emby Server - {0} fährt herunter.", + "HeaderDeleteItems": "Elemente löschen", + "ConfirmDeleteItems": "Das Löschen dieses Elements wird dieses sowohl aus Deiner Bibliothek als auch vom Speicherort entfernen.", + "PleaseRestartServerName": "Bitte Emby Server - {0} neustarten", + "ConvertingDots": "Konvertiere...", + "LabelSyncNoTargetsHelp": "Es scheint, als würdest du aktuell keine Apps verwenden, die Offline-Downloads unterstützen.", + "DownloadingDots": "Lädt herunter...", + "LearnMore": "Mehr erfahren", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Nur nicht abgespielte Videos konvertieren", + "SyncUnwatchedVideosOnly": "Nur nicht abgespielte Videos herunterladen", + "ConvertUnwatchedVideosOnlyHelp": "Nur als 'nicht vollständig abgespielt' markierte Videos werden konvertiert.", + "SyncUnwatchedVideosOnlyHelp": "Nur Videos, die nicht als 'vollständig abgespielt' gekennzeichnet sind, werden heruntergeladen. Nach ihrem vollständigen Abspielen werden sie von dem Gerät entfernt.", + "AutomaticallySyncNewContent": "Neue Inhalte automatisch herunterladen", + "AutomaticallySyncNewContentHelp": "Diesem Verzeichnis neu hinzugefügte Inhalte werden automatisch auf das Gerät heruntergeladen.", + "AutomaticallyConvertNewContent": "Neue Inhalte automatisch konvertieren", + "AutomaticallyConvertNewContentHelp": "Diesem Verzeichnis neu hinzugefügte Inhalte werden automatisch konvertiert.", + "LabelItemLimit": "Maximale Anzahl", + "ConvertItemLimitHelp": "Optional. Lege die maximale Anzahl der zu konvertierenden Elemente fest.", + "DownloadItemLimitHelp": "Optional. Lege die maximale Anzahl der herunterzuladenden Elemente fest.", + "PleaseSelectDeviceToSyncTo": "Bitte wähle ein Gerät als Download-Ziel.", + "Screenshots": "Bildschirmfotos", + "MoveRight": "Nach rechts", + "MoveLeft": "Nach links", + "HeaderUploadNewImage": "Neues Bild hochladen", + "HeaderDeleteImage": "Bild löschen", + "ConfirmDeleteImage": "Bild löschen?", + "HeaderEditImages": "Bilder bearbeiten", + "Settings": "Einstellungen", + "ShowIndicatorsFor": "Indikatoren anzeigen", + "Episodes": "Episoden", + "Programs": "Sendungen", + "HeaderCastCrew": "Besetzung & Mitwirkende", + "DvrSubscriptionRequired": "Emby Live TV & DVR benötigt ein aktives {0}Emby-Premiere- Abonnement{1}.", + "HeaderCancelRecording": "Aufnahme abbrechen", + "HeaderKeepRecording": "Aufnahme behalten", + "HeaderCancelSeries": "Aufnahme der Serie Abbrechen", + "HeaderKeepSeries": "Serie behalten", + "HeaderLearnMore": "Mehr erfahren", + "SeriesSettings": "Serieneinstellungen", + "HeaderRecordingOptions": "Aufnahmeeinstellungen", + "HeaderDoNotRecord": "Nicht aufnehmen", + "HeaderSeriesOptions": "Serienoptionen", + "Layout": "Darstellung", + "Channels": "Kanäle", + "ChannelNameOnly": "Nur Kanal {0}", + "Anytime": "Jederzeit", + "AnyLanguage": "Jede Sprache", + "AroundTime": "Um {0}", + "HeaderLatestMovies": "Neueste Filme", + "All": "Alle", + "Stop": "Stopp", + "AllChannels": "Alle Kanäle", + "NewEpisodesOnly": "Nur neue Episoden", + "AllEpisodes": "Alle Episoden", + "LabelStartWhenPossible": "Wenn möglich starte", + "LabelStopWhenPossible": "Wenn möglich stoppe", + "MinutesBefore": "Minuten davor", + "MinutesAfter": "Minuten danach", + "SkipEpisodesAlreadyInMyLibrary": "Zeichne keine Episoden auf, die bereits in meiner Bibliothek enthalten sind", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episoden werden mittels Staffel- und Episodennummern, falls verfügbar, abgeglichen.", + "LabelKeepUpTo": "Fortführen", + "AsManyAsPossible": "So viele wie möglich", + "DefaultErrorMessage": "Es trat ein Fehler beim Verarbeiten der Anfrage auf. Bitte versuche es später erneut.", + "UntilIDelete": "Bis ich lösche", + "UntilSpaceNeeded": "Bis Speicherplatz benötigt wird", + "Categories": "Kategorien", + "Sports": "Sport", + "News": "Nachrichten", + "Movies": "Filme", + "Music": "Musik", + "Kids": "Kinder", + "MoreFromValue": "Mehr von {0}", + "DiedValue": "Gestorben: {0}", + "BornValue": "Geboren: {0}", + "EnableColorCodedBackgrounds": "Ausgehend von ihrer Kategorie Hintergründe von Sendungen einfärben", + "SortChannelsBy": "Kanäle sortieren nach", + "ChannelNumber": "Kanalnummer", + "HeaderBenefitsEmbyPremiere": "Vorteile von Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Genieße eine Minute Wiedergabe. Danke, dass du Emby ausprobierst.", + "HeaderTryPlayback": "Wiedergabe ausprobieren", + "HowDidYouPay": "Wie hast Du bezahlt?", + "IHaveEmbyPremiere": "Ich besitze Emby Premiere", + "IPurchasedThisApp": "Ich habe diese App gekauft", + "ButtonRestorePreviousPurchase": "Kauf wiederherstellen", + "ButtonUnlockWithPurchase": "Durch Kauf freischalten", + "ButtonUnlockPrice": "{0} freischalten", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere monatlich {0}", + "HeaderAlreadyPaid": "Schon bezahlt?", + "ButtonPlayOneMinute": "Eine Minute wiedergeben", + "PlaceFavoriteChannelsAtBeginning": "Favorisierte Kanäle am Anfang platzieren", + "HeaderUnlockFeature": "Funktion freischalten", + "MessageDidYouKnowCinemaMode": "Wusstest du schon, das du mit Emby Premiere dein Erlebnis mit Funktionen wie dem Kino-Modus noch verbessern kannst?", + "HeaderPlayMyMedia": "Meine Medien abspielen", + "HeaderDiscoverEmbyPremiere": "Entdecke Emby Premiere", + "HeaderNowPlaying": "Aktuelle Wiedergabe", + "Items": "Elemente", + "AppName": "App-Name", + "OneChannel": "Ein Kanal", + "ConfirmRemoveDownload": "Download entfernen?", + "ConfirmRemoveItem": "Element entfernen?", + "RemoveDownload": "Download entfernen", + "ConfirmCancelConversion": "Konvertierung abbrechen?", + "CancelConversion": "Konvertierung abbrechen", + "KeepDownload": "Download behalten", + "AddedOnValue": "Hinzugefügt {0}", + "RemovingFromDevice": "Vom Gerät entfernen", + "KeepOnDevice": "Auf Gerät behalten", + "CancelDownload": "Download abbrechen", + "SyncJobItemStatusReadyToTransfer": "Bereit zur Übertragung", + "SyncJobItemStatusSyncedMarkForRemoval": "Vom Gerät entfernen", + "SyncJobItemStatusQueued": "Eingereiht", + "SyncJobItemStatusConverting": "Konvertiere", + "SyncJobItemStatusTransferring": "Übertrage", + "SyncJobItemStatusSynced": "Heruntergeladen", + "Failed": "Fehlgeschlagen", + "SyncJobItemStatusRemovedFromDevice": "Vom Gerät entfernt", + "Cancelled": "Abgebrochen", + "Retry": "Wiederholen", + "Continue": "Fortfahren", + "ContinueInSecondsValue": "Fortfahren in {0} Sekunden.", + "HeaderRemoteControl": "Fernbedienung", + "Disconnect": "Verbindung trennen", + "EnableDisplayMirroring": "Bildschirmspiegelung aktivieren", + "RemoteAccess": "Fernzugriff", + "HeaderPlayOn": "Abspielen auf", + "Quality": "Qualität", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "Um deinen vorherigen Kauf wiederherzustellen, stelle sicher, dass du auf dem Gerät mit demselben Google- (oder Amazon-)Konto angemeldet bist, mit dem du den Kauf ursprünglich getätigt hast. Der App Store muss aktiviert und darf nicht durch eine Kindersicherung eingeschränkt sein. Vergewissere dich außerdem, dass du über eine aktive Internetverbindung verfügst. Du musst dies nur einmal tun, um deinen vorherigen Kauf wiederherzustellen.", + "HeaderAspectRatio": "Seitenverhältnis", + "Original": "Original", + "Fill": "Ausfüllen", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "Keine Server zum Verbinden verfügbar. Falls du dazu eingeladen wurdest, einen Server zu teilen, bestätige die Einladung unten oder klicke auf den Link in der E-Mail.", + "MessagePlayAccessRestricted": "Das Abspielen dieses Inhaltes ist derzeit eingeschränkt. Bitte kontaktiere Deinen Emby-Server-Administrator für weitere Informationen.", + "Accept": "Annehmen", + "Reject": "Ablehnen", + "Connect": "Verbinden", + "HeaderMyMedia": "Meine Medien", + "HeaderMyMediaSmall": "Meine Medien (klein)", + "LatestFromLibrary": "Neueste {0}", + "HeaderLatestEpisodes": "Neueste Episoden", + "ContinuePlaying": "Fortsetzen", + "ContinueWatching": "Weiterschauen", + "HeaderLatestChannelMedia": "Neueste Programminhalte", + "HeaderContinueWatching": "Weiterschauen", + "HeaderContinueListening": "Weiterhören", + "HeaderActiveRecordings": "Aktive Aufnahmen", + "HeaderLatestRecordings": "Neueste Aufnahmen", + "LabelConvertTo": "Konvertiere nach", + "LabelDownloadTo": "Download nach", + "HeaderDownloadToDots": "Herunterladen nach...", + "Next": "Weiter", + "LabelSource": "Quelle", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "Alle Sprachen", + "Previous": "Vorheriges", + "HeaderNextUp": "Als Nächstes", + "HeaderPlayNextUp": "Nächstes abspielen", + "HeaderLatestFrom": "Neuestes von {0}", + "LabelHomeScreenSectionValue": "Startseitenbereich {0}", + "PasswordResetComplete": "Das Passwort wurde zurückgesetzt.", + "PasswordSaved": "Passwort gespeichert.", + "SettingsSaved": "Einstellungen gespeichert.", + "Upcoming": "Demnächst", + "HeaderSelectImageFile": "Bilddatei auswählen", + "None": "Kein", + "More": "Mehr", + "Up": "Hoch", + "Down": "Runter", + "Home": "Start", + "Back": "Zurück", + "Random": "Zufällig", + "Playback": "Wiedergabe", + "Favorites": "Favoriten", + "HeaderHomeScreen": "Startseite", + "HeaderLatestChannelItems": "Neueste Programminhalte", + "HeaderLibraryOrder": "Bibliotheksreihenfolge", + "HeaderOnNow": "Läuft gerade", + "HeaderForKids": "Für Kinder", + "HeaderPlaybackError": "Wiedergabefehler", + "PlaybackErrorNotAllowed": "Du verfügst derzeit über keine Berechtigung diesen Inhalt abzuspielen. Bitte kontaktiere deinen Systemadministrator für weitere Informationen.", + "RateLimitExceeded": "Dein Konto hat das maximale Streaming-Limit erreicht, welches dein Emby-Server-Administrator gesetzt hat. Kontaktiere ihn für weitere Hilfe.", + "PlaybackErrorNoCompatibleStream": "Derzeit sind keine kompatiblen Streams verfügbar. Bitte später erneut versuchen oder den Systemadministrator für weitere Informationen kontaktieren.", + "PlaybackErrorPlaceHolder": "Bitte lege die Disk ein, um das Video abzuspielen.", + "PlaybackErrorNoPlayableItems": "Keine abspielbaren Elemente gefunden. Handelt es sich um einen leeren Ordner?", + "Guide": "TV Guide", + "Games": "Spiele", + "GameSystem": "Spielesystem", + "Suggestions": "Empfehlungen", + "HeaderFavoriteChannels": "Favorisierte Kanäle", + "HeaderFavoriteCollections": "Favorisierte Kollektionen", + "HeaderFavoritePlaylists": "Favorisierte Wiedergabelisten", + "Collection": "Sammlung", + "Collections": "Kollektionen", + "LabelSelectFolderGroups": "Inhalte der folgenden Verzeichnisse automatisch zu Ansichten gruppieren wie beispielsweise Filme, Musik und TV:", + "LabelSelectFolderGroupsHelp": "Verzeichnisse, die nicht markiert sind, werden alleine mit ihren eigenen Ansichten angezeigt.", + "Mute": "Ton aus", + "Unmute": "Ton ein", + "Folder": "Ordner", + "Folders": "Verzeichnisse", + "FileName": "Dateiname", + "DisplayInOtherHomeScreenSections": "Zeige auf der zweiten Startseite Bereiche wie 'Neueste Medien' oder 'Weiterschauen'", + "DisplayInMyMedia": "Auf Startseite anzeigen", + "Shows": "Serien", + "MoviesAndShows": "Filme & Serien", + "HeaderMusicVideo": "Musikvideo", + "HeaderMusicVideos": "Musikvideos", + "MusicVideos": "Musikvideos", + "Videos": "Videos", + "MixedContent": "Gemischte Inhalte", + "HomeVideos": "Heimvideos", + "HomeVideosAndPhotos": "Heimvideos und Fotos", + "TVShows": "Serien", + "HeaderLibraryFolders": "Bibliotheksordner", + "HeaderTermsOfPurchase": "Kaufbedingungen", + "PrivacyPolicy": "Datenschutzbestimmungen", + "TermsOfUse": "Nutzungsbedingungen", + "HeaderRepeatMode": "Wiederholungsmodus", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Eines wiederholen", + "RepeatAll": "Alles wiederholen", + "LabelDefaultScreen": "Standardbildschirm", + "ConfirmEndPlayerSession": "Möchtest du Emby auf {0} beenden?", + "Yesterday": "Gestern", + "Yes": "Ja", + "No": "Nein", + "HeaderScanLibraryFiles": "Bibliothek scannen", + "LiveTV": "Live TV", + "Schedule": "Zeitplan", + "Recordings": "Aufnahmen", + "ScanForNewAndUpdatedFiles": "Nach neuen und aktualisierten Dateien scannen", + "NewVersionOfXAvailableForY": "{0} ist verfügbar für {1}", + "DirectStreamHelp1": "Das Medium ist mit dem Abspielgerät kompatibel bzgl. Auflösung und Codecs (H.264, AC3, etc.), besitzt jedoch ein inkompatibles Containerformat (.mkv, .avi, .wmv, etc.). Das Video wird in Echtzeit neugepackt, bevor es zum Abspielgerät gestreamt wird.", + "DirectStreamHelp2": "Direktes Streaming von Dateien benötigt sehr wenig Rechenleistung, ohne Einbußen bei der Videoqualität.", + "MediaIsBeingConverted": "Das Medium wird in ein Format konvertiert, das mit dem Abspielgerät kompatibel ist.", + "StatsForNerds": "Statistiken für Tüftler", + "HeaderHardwareAcceleratedDecoding": "Hardwarebeschleunigte Dekodierung", + "HeaderHardwareAcceleratedEncoding": "Hardwarebeschleunigte Kodierung", + "HeaderDirectPlay": "Direktwiedergabe", + "DirectPlaying": "Direktes Abspielen", + "DirectStreaming": "Direktes Streaming", + "Transcode": "Transkodieren", + "Transcoding": "Transkodieren", + "ContainerBitrateExceedsLimit": "Bitraten-Reduzierung aufgrund der Qualitätseinstellung", + "VideoCodecNotSupported": "Konvertiere Video in kompatibles Codec-Format", + "AudioCodecNotSupported": "Konvertiere Audio in kompatibles Codec-Format", + "SubtitleCodecNotSupported": "Konvertiere Untertitel direkt in das Video", + "DirectPlayError": "Wiedergabefehler wird behoben", + "ContainerNotSupported": "Konvertiere in kompatibles Container-Format", + "VideoLevelNotSupported": "Konvertiere in ein kompatibles Video-Level", + "AudioBitrateNotSupported": "Konvertiere in kompatible Audio-Bitrate", + "AudioChannelsNotSupported": "Konvertiere in eine kompatible Anzahl an Audiokanälen", + "VideoResolutionNotSupported": "Konvertiere in kompatible Videoauflösung", + "AudioProfileNotSupported": "Konvertiere in kompatibles Audioprofil", + "AudioSampleRateNotSupported": "Konvertiere in kompatible Audio-Sample-Rate", + "AnamorphicVideoNotSupported": "Anamorphes Video nicht unterstützt", + "InterlacedVideoNotSupported": "Video wird deinterlaced", + "SecondaryAudioNotSupported": "Wähle sekundäre Tonspur aus", + "ExternalAudioNotSupported": "Wähle externe Tonspur aus", + "ErrorRemovingEmbyConnectAccount": "Es trat ein Fehler beim Entfernen des Emby Connect Kontos auf. Bitte stelle sicher, dass du über eine aktive Internetverbindung verfügst und versuche es erneut.", + "HeaderEmbyAccountRemoved": "Emby-Konto entfernt", + "MessageEmbyAccontRemoved": "Das diesem Benutzer zugeordnete Emby-Konto wurde entfernt.", + "HeaderInvitationSent": "Einladung verschickt", + "Offline": "Offline", + "HeaderSignUp": "Registrieren", + "ServerDownloadMessage": "Um den kostenlosen Emby Server herunterzuladen und zu installieren besuche {0}", + "ServerDownloadMessageWithoutLink": "Um den kostenlosen Emby Server herunterzuladen und zu installieren besuche die Emby-Website.", + "MessageInvitationSentToUser": "Eine E-Mail mit der Einladung zum Teilen wurde an {0} geschickt.", + "MessageInvitationSentToNewUser": "Eine E-Mail mit einer Einladung zur Registrierung bei Emby wurde an {0} geschickt.", + "GuestUserNotFound": "Benutzer nicht gefunden. Bitte stelle die korrekte Schreibweise sicher und versuche es erneut oder probiere die E-Mail-Adresse einzugeben.", + "ErrorReachingEmbyConnect": "Beim Versuch sich mit dem Emby Connect Server zu verbinden ist ein Fehler aufgetreten. Stelle bitte sicher, dass du über eine aktive Internetverbindung verfügst und versuche es erneut.", + "ErrorAddingEmbyConnectAccount1": "Es trat ein Fehler beim Hinzufügen des Emby Connect Kontos auf. Hast du bereits ein Emby-Konto? Registriere dich hier: {0}.", + "ErrorAddingEmbyConnectAccount2": "Falls immer noch ein Problem auftritt, sende bitte von der E-Mail-Adresse, mit der du dich bei dem Emby-Konto registriert hast, eine E-Mail an {0}.", + "ErrorAddingGuestAccount1": "Es trat ein Fehler beim Hinzufügen des Emby Connect Kontos auf. Hat dein Gast bereits ein Emby Konto? Registriermöglichkeit hier: {0}.", + "ErrorAddingGuestAccount2": "Wenn immer noch ein Problem auftritt, sende bitte eine E-Mail an {0} und benenne darin deine E-Mail-Adresse und die der anderen.", + "MessageEmbyAccountAdded": "Das Emby-Konto wurde diesem Benutzer hinzugefügt.", + "MessagePendingEmbyAccountAdded": "Das Emby-Konto wurde diesem Benutzer hinzugefügt. Eine E-Mail wird an den Besitzer des Kontos gesendet. Die Einladung ist durch einen Klick auf den Link in der E-Mail zu bestätigen.", + "HeaderEmbyAccountAdded": "Emby-Konto hinzugefügt", + "Skip": "Überspringen", + "HeaderAdditionalParts": "Zusätzliche Teile", + "ButtonGenerateNewPin": "Neue PIN erstellen", + "ConnectLoginHelp1": "Mit Emby Connect kannst Du auf einfache Art und Weise von überall auf deinen Emby Server zugreifen und den Server mit Familie und Freunden teilen.", + "CreatePinErrorMessage": "Es trat ein Fehler bei der Generierung des PIN-Codes auf. Bitte auf \"Neue PIN erstellen\" klicken, um es erneut zu versuchen.", + "PinExpiredMessage": "Der PIN-Code ist abgelaufen. Bitte klicke auf \"Neue PIN erstellen\", um es erneut zu versuchen.", + "ConnectPinCodeHeader": "Um dich mit Emby Connect anzumelden, nutze ein mobiles Gerät oder einen Computer um {0} zu besuchen und gebe folgenden PIN-Code ein:", + "LabelSubtitlePlaybackMode": "Untertitelmodus", + "ErrorDeletingItem": "Fehler beim Löschen des Elements vom Emby Server. Bitte überprüfe, ob der Emby Server Schreibzugriff auf das Medienverzeichnis hat, und versuche es erneut.", + "NoSubtitles": "Keine Untertitel", + "Default": "Standard", + "Absolute": "Absolut", + "Smart": "Intelligent", + "Small": "Klein", + "Smaller": "Kleiner", + "Medium": "Mittel", + "Large": "Groß", + "Larger": "Größer", + "ExtraLarge": "Extragroß", + "ExtraSmall": "Extra klein", + "Forced": "Erzwungen", + "External": "Extern", + "HeaderEmbeddedTitle": "Eingebetteter Titel", + "OnlyForcedSubtitles": "Nur erzwungene Untertitel", + "AlwaysPlaySubtitles": "Untertitel immer anzeigen", + "DefaultSubtitlesHelp": "Untertitel werden gemäß der \"Standard\"- und \"Erzwungen\"-Kennzeichnungen der eingebetteten Metadaten geladen. Spracheinstellungen werden berücksichtigt, falls mehrere Sprachen verfügbar sind.", + "SmartSubtitlesHelp": "Untertitel, die den Spracheinstellungen entsprechen, werden nur bei einer in fremder Sprache vorliegenden Tonspur heruntergeladen.", + "HeaderSubtitleSettings": "Untertiteleinstellungen", + "HeaderSubtitleAppearance": "Untertiteldarstellung", + "OnlyForcedSubtitlesHelp": "Nur Untertitel, die als erzwungen markiert wurden, werden geladen.", + "AutoSelectHearingImpairedHelp": "Es werden Untertitel geladen, die der bevorzugten Sprache entsprechen, wobei Titel bevorzugt werden, die als hörgeschädigt (SDH) gekennzeichnet sind.", + "AlwaysPlaySubtitlesHelp": "Untertitel, die den Spracheinstellungen entsprechen, werden unabhängig von der Tonspur geladen.", + "NoSubtitlesHelp": "Untertitel werden standardmäßig nicht geladen. Sie können aber während der Wiedergabe manuell aktiviert werden.", + "LabelPreferredSubtitleLanguage": "Bevorzugte Untertitelsprache", + "LabelTextSize": "Textgröße", + "TheseSettingsAffectSubtitlesOnThisDevice": "Diese Einstellungen beeinflussen Untertitel auf diesem Gerät", + "LabelDropShadow": "Schlagschatten", + "LabelTextBackgroundColor": "Hintergrundfarbe des Textes", + "LabelWindowBackgroundColor": "Hintergrundfarbe des Textes", + "LabelFont": "Schriftart", + "LabelTextColor": "Textfarbe", + "LabelBackgroundColor": "Hintergrundfarbe", + "LabelBackgroundOpacity": "Hintergrundtransparenz", + "Raised": "Erhöht", + "Depressed": "Vertieft", + "Uniform": "Einheitlich", + "DropShadow": "Schlagschatten", + "SmallCaps": "Kapitälchen", + "SubtitleAppearanceSettingsDisclaimer": "Diese Einstellungen werden nicht auf grafische Untertitel (PGS, DVD, etc.) oder Untertitel mit eingebettetem Style-Elementen (ASS/SSA) angewendet.", + "Normal": "Normal", + "HeaderWaitingForWifi": "Warte auf WLAN", + "WifiRequiredToDownload": "Um das Herunterladen fortzusetzen, wird eine WLAN-Verbindung benötigt.", + "DownloadOnlyOnWifi": "Download nur über WLAN", + "LabelMusicDownloadQuality": "Musik-Download-Qualität", + "MusicDownloadQualityHelp": "Audiodateien mit einer höheren Bitrate werden durch den Emby Server konvertiert. Wähle für eine bessere Qualität einen höheren Wert aus, um lokalen Speicherplatz zu sparen einen niedrigeren.", + "HeaderDownloadSettings": "Downloadeinstellungen", + "LabelDownloadLocation": "Speicherort für Download", + "BrowseForFolder": "SucheNachOrdner", + "Unlimited": "Unbeschränkt", + "NoLimit": "Kein Limit", + "Hide": "Ausblenden", + "HeaderKeepWatching": "Weiterschauen", + "HeaderNextEpisode": "Nächste Episode", + "AudioBitDepthNotSupported": "Konvertiere in kompatible Audio-Bittiefe", + "VideoBitrateNotSupported": "Konvertierung in eine kompatible Videobitrate", + "VideoProfileNotSupported": "Konvertiere in kompatibles Videoprofil", + "VideoFramerateNotSupported": "Konvertiere in kompatible Video-Framerate", + "VideoBitDepthNotSupported": "Konvertiere in kompatible Video-Bittiefe", + "RefFramesNotSupported": "Konvertiere in kompatible Video-Referenzframe-Anzahl", + "ErrorConnectServerUnreachable": "Es gab einen Fehler bei der Ausführung der Funktion. Dein Server ist nicht in der Lage unseren Emby-Connect-Server unter {0} zu erreichen. Stelle bitte sicher, dass dein Server eine aktive Internetverbindung hat und die Kommunikation durch Firewalls oder andere installierte Sicherheitssoftware erlaubt wurde.", + "HeaderStopRecording": "Aufnahme stoppen", + "ManageRecording": "Aufnahme verwalten", + "LabelDropImageHere": "Bilder hierher ziehen oder für Bildauswahl klicken.", + "MessageFileReadError": "Fehler beim Lesen der Datei. Bitte erneut versuchen.", + "Browse": "Blättern", + "HeaderUploadImage": "Bild hochladen", + "HeaderAddUpdateImage": "Bild hinzufügen/aktualisieren", + "HeaderShowFields": "Felder anzeigen", + "LabelView": "Ansicht", + "LabelImageType": "Bildtyp", + "Upload": "Hochladen", + "Primary": "Primär", + "PrimaryImageBlur": "Hauptbild-Unschärfe", + "Art": "Art", + "Backdrop": "Hintergrund", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rückseite)", + "Disc": "Disk", + "Logo": "Logo", + "LogoDark": "Logo (Dunkle Variante)", + "LogoLight": "Logo (Helle Variante)", + "LogoLightColor": "Logo (Hell und farbig)", + "Menu": "Menü", + "Screenshot": "Bildschirmfoto", + "Thumb": "Miniaturansicht", + "HeaderAudioSettings": "Audioeinstellungen", + "LabelAudioLanguagePreference": "Bevorzugte Audiosprache", + "LabelPlayDefaultAudioTrack": "Spiele unabhängig von der Sprache die Standardtonspur", + "HeaderVideoQuality": "Videoqualität", + "CinemaModeConfigurationHelp": "Der Kino-Modus bringt das Kinoerlebnis direkt in dein Wohnzimmer, dank der Möglichkeit vor dem Hauptfilm Trailer und benutzerdefinierte Intros abzuspielen.", + "ShowUpNextPreview": "Nächste Vorschau anzeigen", + "ShowUpNextPreviewHelp": "Zeigt Informationen für das nächsten Element zum Ende des aktuellen an.", + "PlayNextEpisodeAutomatically": "Nächste Episode automatisch abspielen", + "LabelMaxChromecastBitrate": "Chromecast-Streaming-Qualität", + "LabelSkipBackLength": "Sprungweite rückwärts", + "LabelSkipForwardLength": "Sprungweite vorwärts", + "EnableCinemaMode": "Kino-Modus aktivieren", + "LabelInternetQuality": "Streaming-Qualität über Internet", + "LabelCellularQuality": "Streaming-Qualität über Mobilfunk", + "HeaderMusicQuality": "Musikqualität", + "LabelHomeNetworkQuality": "Streaming-Qualität im Heimnetz", + "HeaderLatestMedia": "Neueste Medien", + "HeaderRestartingEmbyServer": "Emby Server neu starten", + "RestartPleaseWaitMessage": "Warte bitte bis der Emby Server heruntergefahren und neugestartet wurde. Dieser Vorgang dauert ein bis zwei Minuten.", + "HeaderPlayNext": "Als Nächstes abspielen", + "AutoBasedOnLanguageSetting": "Automatisch (basierend auf Geräteeinstellungen)", + "SameAsMainTheme": "Dasselbe wie das Haupt-Theme", + "LabelDateTimeLocale": "Datum-/Zeit-Gebietsschema", + "Genre": "Genre", + "DirectorValue": "Regisseur: {0}", + "DirectorsValue": "Regisseure: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Aus", + "Title": "Titel", + "Year": "Jahr", + "Filter": "Filter", + "Filters": "Filter", + "Unplayed": "Nicht abgespielt", + "LabelTVHomeScreen": "TV-Modus-Startseite", + "Horizontal": "Horizontal", + "Vertical": "Vertikal", + "HeaderGroupBy": "Gruppieren nach", + "HeaderMediaType": "Medientyp", + "GroupBySeries": "Nach Serien gruppieren", + "HeaderVideoType": "Art des Videos", + "HeaderSeriesStatus": "Status der Serie", + "Features": "Eigenschaften", + "Trailers": "Trailer", + "Extras": "Extras", + "ThemeSongs": "Titelmusik", + "ThemeVideos": "Titelvideos", + "HeaderFavoriteMovies": "Favorisierte Filme", + "HeaderFavoritePhotos": "Favorisierte Fotos", + "HeaderFavoriteShows": "Favorisierte Serien", + "HeaderFavoriteEpisodes": "Favorisierte Episoden", + "HeaderFavoriteVideos": "Favorisierte Videos", + "HeaderFavoriteMusicVideos": "Favorisierte Musikvideos", + "HeaderFavoriteGames": "Favorisierte Spiele", + "HeaderFavoriteArtists": "Favorisierte Künstler", + "HeaderFavoriteAlbums": "Favorisierte Alben", + "HeaderFavoriteSongs": "Favorisierte Songs", + "HeaderFavoriteAuthors": "Favorisierte Autoren", + "HeaderFavoriteAudioBooks": "Favorisierte Hörbücher", + "Ascending": "Aufsteigend", + "Descending": "Absteigend", + "HeaderColorPrimaries": "Primärfarben", + "HeaderColorSpace": "Farbraum", + "HeaderColorTransfer": "Farbtransfer", + "HeaderVideoRange": "Videobereich", + "SeriesDisplayOrderHelp": "Episoden nach Ausstrahlungsdatum, DVD-Reihenfolge oder absoluter Nummerierung sortieren.", + "LabelVerticalPositionFromBottom": "Vertikale Position (von unten)", + "HeaderFavoritePeople": "Favorisierte Personen", + "MultiSelect": "Mehrfachauswahl", + "HeaderSignOut": "Abmelden", + "HeaderSelectServer": "Server wählen", + "HeaderChangeServer": "Server wechseln", + "HeaderChangeUser": "Benutzer wechseln", + "HeaderAppSettings": "App-Einstellungen", + "HeaderLoginSettings": "Anmeldeeinstellungen", + "LabelRememberLogin": "Login merken", + "LabelAutomaticallySignOut": "Automatisch abmelden", + "BetaTesterMessage": "Danke, dass du Beta-Tester bist! Bitte gebe Feedback im {0} 'Testing Area' der Emby-Community {1}.", + "HardwareAccelerated": "Hardware-beschleunigt", + "Software": "Software", + "Metadata": "Metadaten", + "HeaderMediaInfo": "Medieninformationen", + "Locked": "Gesperrt", + "HeaderSplitVersionsApart": "Versionen aufteilen", + "Any": "Alle", + "Admin": "Administration", + "HeaderReadMore": "Mehr lesen", + "CustomRatingHelp": "Eine benutzerdefinierte Bewertung wird für die Altersfreigabe ausgewertet, aber nicht angezeigt. Das Altersfreigabefeld wird weiterhin angezeigt.", + "KeepUpToHelp": "Aufnahmen über dem Limit werden gelöscht, sobald die nächste Aufnahme startet. Die ältesten Aufnahmen werden als erste entfernt.", + "NoItemsMatchingFound": "Es wurden keine Einträge entdeckt, die den Suchkriterien entsprechen.", + "TwoSearchCharsRequired": "Bitte mindestens zwei Suchzeichen eingeben.", + "PreventPlaybackContinuing": "Regelmäßig zu einer Benutzereingabe auffordern, um eine endlose Wiedergabe zu verhindern.", + "PromptStillWatching": "\"Schaust du noch?\"-Meldung aktivieren", + "HeaderMissingMetadata": "Fehlende Metadaten", + "HeaderIncludedIn": "Enthalten in", + "EmbyConnectUserAlreadyLinked": "Der Emby-Connect-Nutzer ist bereits mit einem anderen Nutzer auf diesem Server verknüpft.", + "VideoFilesWillBeConvertedTo": "Konvertierte Videos werden gespeichert als {0}.", + "VideoWillBeConvertedTo": "Video-Streams werden nach {0} konvertiert oder von der Originaldatei kopiert, falls sie bereits als {0} vorliegen und die Qualität zu den Konvertierungseinstellungen passt.", + "VideoWillBeConvertedToOrCopied": "Video-Streams werden nach {0} konvertiert oder von der Originaldatei kopiert, falls sie als eine davon ({1}) vorliegen und die Qualität zu den Konvertierungseinstellungen passt.", + "AudioWillBeConvertedTo": "Audio-Streams werden nach {0} konvertiert oder von der Originaldatei kopiert, falls sie bereits als {0} vorliegen und die Qualität zu den Konvertierungseinstellungen passt.", + "AudioWillBeConvertedToOrCopied": "Audio-Streams werden nach {0} konvertiert oder von der Originaldatei kopiert, falls sie als eine davon ({1}) vorliegen und die Qualität zu den Konvertierungseinstellungen passt.", + "HeaderSpecialKeys": "Spezialtasten", + "FollowingSpecialKeys": "Die folgenden Spezialtasten werden von den meisten Tastaturen und Fernbedienungen unterstützt:", + "HeaderDeleteSeries": "Serie löschen", + "HeaderDeleteLastPlayedEpisode": "Zuletzt abgespielte Episode löschen", + "HeaderConnectingToServer": "Verbinde mit Server", + "ServerNameValue": "Server-Name: {0}", + "DomainValue": "Domäne: {0}", + "RatedValue": "Altersfreigabe {0}", + "LocalServerRedirectMessage": "Es erfolgt nun eine Weiterleitung zu der Domain, die von dem Administrator des gewählten Servers betrieben wird:", + "AllMediaOwnedHosted": "Alle Medien werden vom Besitzer von {0} bereitgestellt und verwaltet.", + "EnableResolutionSwitching": "Videoauflösung anpassen", + "EnableResolutionSwitchingHelp": "Dadurch kann Emby die Auflösung auf den gleichen Wert ändern, mit dem das Video vor dem Start der Wiedergabe codiert wurde. Dies kann dazu beitragen, das Stottern/Ruckeln zu minimieren, das sonst beim Abspielen von Videos auftreten könnte, die nicht gut zusammenpassen.", + "EnableDisplayRefreshRateSwitching": "Bildwiederholraten-Anpassung aktivieren", + "EnableDisplayRefreshRateSwitchingHelp": "Damit kann Emby die Bildwiederholfrequenz auf den gleichen Wert (oder ein Vielfaches davon) wie die Framerate ändern, mit der das Video vor Beginn der Wiedergabe kodiert wurde. Dies kann dazu beitragen, das Stottern/Ruckeln zu minimieren, das sonst bei der Wiedergabe von Videos, die nicht gut zusammenpassen, auftreten kann.", + "RememberSelectedAudioTracks": "Gewählte Tonspuren merken", + "RememberSelectedSubtitleTracks": "Gewählte Untertitel merken", + "RememberSelectedSubtitleTracksHelp": "Die gewählten Untertitel werden pro Video gespeichert und wieder eingestellt, wenn das selbe Video erneut abspielt wird.", + "RememberSelectedAudioTracksHelp": "Die gewählte Tonspur wird pro Video gespeichert und wieder eingestellt, wenn das selbe Video erneut abspielt wird.", + "ClearSavedTrackSelections": "Gespeicherte Spurauswahl löschen", + "HeaderClearTrackSelections": "Gespeicherte Spurauswahl löschen", + "QuestionClearSavedTracks": "Alle gespeicherten Spurauswahlen löschen?", + "LabelChannelTags": "Kanal-Tags", + "AfterThisPlaysConfirmation": "Die Wiedergabe nach dem Abspielen fortsetzen oder die zuvor in die Warteschlange gestellte Musik löschen?", + "Keep": "Fortsetzen", + "Clear": "Löschen", + "HeaderClearFilters": "Filter zurücksetzen", + "HeaderSearchForImages": "Nach Bildern suchen", + "HeaderSearchNewImage": "Nach neuem Bild suchen", + "HeaderSearchForAnImage": "Nach Bild suchen", + "DragDropToReorder": "Drag & Drop für Neuanordnung", + "HeaderAddImageFromUrl": "Bild über URL hinzufügen", + "HeaderSetImageFromUrl": "Bild über URL einstellen", + "LabelUrl": "URL", + "LabelChannelNumber": "Kanalnummer", + "LabelGuideDataChannel": "Programmführer Kanal", + "GuideDataSource": "Datenquelle Programmführer", + "HeaderCopyToClipboard": "In Zwischenablage kopieren", + "TimeRemainingValue": "{0} übrig", + "LabelResumeRewindSeconds": "Beim Fortsetzen automatisch Zurückspulen", + "ResumeRewindSecondsHelp": "Dies kann dir helfen, dich daran zu erinnern, wo du aufgehört hast. Dies gilt für die anfängliche Wiederaufnahme und nicht für jede einzelne Pause während der Wiedergabe.", + "HeaderSavePlayQueueToPlaylist": "Warteschlange in Abspielliste sichern", + "EnableLogoImagesAsTitle": "Logo-Grafiken als Titel auf Detailansichten zeigen", + "EnableLogoImagesAsTitleHelp": "Falls vorhanden, lassen sich Logos als Titel in Video-, Serien- und anderen Detailansichten nutzen. Ansonsten wird der Titel als Text angezeigt.", + "LabelNowPlayingAudioBackgroundStyle": "Audio-Hintergrund-Stil für aktuelle Wiedergabe", + "LabelNowPlayingVideoBackgroundStyle": "Video-Hintergrund-Stil für aktuelle Wiedergabe", + "NowPlayingVideoBackgroundStyleHelp": "Bestimmt den Hintergrundstil bei ferngesteuerter Videowiedergabe auf einem anderen Gerät.", + "Rotation": "Rotation", + "Minutes": "Minuten", + "LabelMaxRecordingLength": "Max. Aufnahmedauer", + "MaxRecordingLengthHelp": "Begrenzt die Aufnahmedauer unabhängig von der tatsächlichen Sendedauer. Für unbeschränkte Aufnahmen auf '0' setzen.", + "RemoteWAN": "Fernzugriff (WAN)-Adresse", + "HeaderLastConnectedTo": "Letzte Verbindung mit", + "Version": "Version", + "Keyword": "Schlagwort", + "HeaderServerAddress": "Server-Adresse", + "HeaderSkipIntro": "Intro überspringen", + "HeaderCreateRecording": "Aufnahme erstellen", + "HeaderAddRecording": "Aufnahme hinzufügen", + "HeaderChannelAndTime": "Kanal und Zeit", + "LabelRecordProgramOrSeriesFrom": "Sendung oder Serie aufnehmen von", + "LabelStartTime": "Startzeit", + "LabelEndTime": "Endzeit", + "LabelFrequency": "Frequenz", + "Recurring": "Wiederkehrend", + "Once": "Einmalig", + "Start": "Start", + "Unpause": "Pause beenden", + "LabelIntroSkipMode": "Intro-Überspringen Modus", + "ShowSkipIntroButton": "'Intro überspringen'-Knopf anzeigen", + "AutoSkipIntro": "Intro automatisch überspringen", + "DisplayRatingInformationOnVideoPlaybackStart": "Bewertungsinformationen beim Start der Videowiedergabe anzeigen", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Die Bewertungsinformationen werden kurz angezeigt, wenn die Videowiedergabe beginnt.", + "IntroSkipModeHelp": "'Intro überspringen'-Knopf anzeigen oder Intros automatisch für Episoden überspringen, in denen Emby Server Intro-Markierungen entdeckt hat. Dazu muss in den Bibliotheksoptionen des Emby Server die Intro-Erkennung aktiviert sein.", + "EnableHomeScreenFocusPreview": "Verwendet ein Layout auf der Startseite, das eine detaillierte Vorschau des ausgewählten Artikels anzeigt", + "EnableHomeScreenFocusPreviewHelp": "Funktioniert möglicherweise eingeschränkt, wenn die Startseite eine Mischung verschiedener Medientypen enthält.", + "LabelHideMediaTransportButtons": "Video-Player-Steuertasten ausblenden", + "HideMediaTransportButtonsHelp": "Schaffe eine einfachere Benutzeroberfläche für die Wiedergabe, indem Du grundlegende Transporttasten wie Vorwärts-, Rückwärts- und Pausentaste ausblendest. Du kannst diese Funktionen weiterhin mit den Pfeiltasten und OK/Enter verwenden. Auto blendet die Steuertasten aus, wenn in der App keine Mausbenutzung erkannt wird.", + "ImageSizeHelp": "Lege die gewünschte Größe der Bildraster fest.", + "LabelImageSize": "Bildgröße", + "ThisImageIsOnlyPreview": "Dieses Bild ist nur eine Vorschau, die von der Metadaten-Suchmaschine stammt. Das tatsächliche Bild, das Emby Server herunterlädt, kann anders aussehen und hängt von den Optionen ab, die du bei der Einrichtung der Emby-Bibliothek konfiguriert hast.", + "ResultsRangeValue": "{0} bis {1} von {2}", + "NotificationsDescription": "Benachrichtigungen einrichten, um über wichtige Ereignisse auf deinem Emby Server informiert zu bleiben.", + "DeleteEmbyConnectAccount": "Lösche Emby-Connect-Konto", + "DeleteEmbyConnectAccountHelp": "Um dein Emby Connect-Konto zu löschen, melde dich bitte bei der {0}Emby-Community{1} unter {2} an. Klicke nach der Anmeldung oben rechts auf deinen Benutzernamen, dann auf Kontoeinstellungen und dann auf Mein Konto löschen.", + "KeepPlayingInBackground": "Weiter im Hintergrund abspielen", + "LabelVideoBackBehavior": "Verhalten der Zurück-Taste des Videoplayers", + "HeaderViewLyrics": "Songtexte anzeigen", + "HeaderViewMissingEpisodes": "Fehlende Episoden anzeigen", + "HeaderMissingEpisodes": "Fehlende Episoden", + "HeaderManageAccess": "Zugriff verwalten", + "HeaderManageCollaboration": "Zusammenarbeit verwalten", + "HeaderLeaveCollaboration": "Zusammenarbeit verlassen", + "HeaderRemoveFromLibrary": "Aus Bibliothek entfernen", + "RemoveSharedItemConfirmation": "Bist Du Dir sicher, dass Du dieses Objekt aus Deiner Bibliothek entfernen möchtest? Für erneuten Zugriff müssen Dir die Rechte vom Eigentümer erneut erteilt werden.", + "SubtitlesDownloaded": "Untertitel heruntergeladen", + "HeaderMakePrivate": "Privatisieren", + "HeaderMakePublic": "Veröffentlichen", + "MakePublicDescription": "Alle Benutzer können dieses Element sehen. Benutzern kann Bearbeitungszugriff gewährt werden.", + "MakePrivateDescription": "Benutzern kann weiterhin individuell Zugriff gewährt werden.", + "Private": "Privat", + "Public": "Öffentlich", + "Collaborative": "Zusammenarbeit", + "PreferredShowDisplay": "Bevorzugte Anzeige für TV-Sendung", + "ShowAllEpisodesAllSeasons": "Alle Episoden aller Staffeln zusammen anzeigen", + "ShowAllEpisodesSingleSeason": "Alle Episoden nur für Sendungen einer einzelnen Staffel anzeigen", + "ShowSeasonFolders": "Staffel Ordner immer anzeigen", + "HeaderAddAgain": "Erneut hinzufügen", + "UpNext": "Als Nächstes", + "ItemsAlreadyInPlaylist": "Einige dieser Elemente befinden sich bereits in deiner Wiedergabeliste.", + "ItemAlreadyInPlaylist": "Dieses Element ist bereits in Deiner Wiedergabeliste.", + "HeaderPlayChannel": "Kanal abspielen", + "LabelScreenOrientationDuringVideo": "Bildschirmausrichtung während der Videowiedergabe", + "UseDeviceSetting": "Geräteeinstellung verwenden", + "LockToLandscape": "Auf Querformat sperren", + "UsernameForFolderHelp": "Der Benutzername, der für den Zugriff auf diesen Ordner in deinem Netzwerk erforderlich ist (falls zutreffend).", + "PasswordForFolderHelp": "Das Passwort, das für den Zugriff auf diesen Ordner in deinem Netzwerk erforderlich ist (falls zutreffend).", + "ShowMediaInfoOnDetailScreens": "Zeige vollständige Medieninformationen auf Audio- und Videodetailbildschirmen an", + "ForgotPasswordNoUserFound": "Es wurden keine Benutzer mit dem eingegebenen Namen gefunden. Bitte versuch es erneut oder lass den Namen leer, um das Passwort für alle Benutzer auf diesem Server zurückzusetzen.", + "Silver": "Silber", + "DimGray": "Dämmergrau", + "DarkGray": "Dunkelgrau", + "LightGray": "Hellgrau", + "Black": "Schwarz", + "Blue": "Blau", + "Cyan": "Zyan", + "Gray": "Grau", + "Green": "Grün", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Rot", + "Yellow": "Gelb", + "White": "Weiß", + "Purple": "Lila", + "RecentlyReleasedMovies": "Kürzlich veröffentlichte Filme", + "RecentlyReleasedEpisodes": "Kürzlich veröffentlichte Episoden", + "DolbyProfile": "Dolby Profil", + "IpAddress": "IP-Adresse", + "VideoType": "Videotyp", + "HidePlayedMediaFrom": "Abgespielte Medien ausblenden von", + "BottomEdgePosition": "Position der unteren Kante", + "VerticalPositionFromBottomScreen": "Lege die vertikale Position der Untertitel relativ zum unteren Bildschirmrand fest.", + "TopEdgePosition": "Position der oberen Kante", + "TopEdgePositionHelp": "Lege die höchste zulässige vertikale Position der Untertitel relativ zum oberen Bildschirmrand fest. Dies wird verwendet, wenn die Untertitel Positionierungsanweisungen enthalten, die oben platziert werden sollen.", + "HeaderSubtitlePosition": "Untertitel Position", + "TitleProfilePin": "Profil-PIN", + "ProfilePinConfirm": "Profil-PIN (bestätigen)", + "SaveProfilePin": "Pin speichern", + "ProfilePinDescription": "Erstelle einen optionale PIN, um zur Eingabe aufgefordert zu werden, wenn du zu einer Emby-App auf einem Gerät zurückkehrst, bei dem du dich bereits angemeldet hast. Dies ist nützlich, wenn du Geräte hast, die von mehreren Benutzern gemeinsam genutzt werden. Du kannst es je nach Bedarf selektiv auf jedem Gerät aktivieren.", + "TitleNewEpisodes": "Neue Episoden", + "EnterYourPinToContinue": "Gebe deinen PIN ein, um fortzufahren.", + "YourPinMustBe": "Dein PIN muss aus {0} Ziffern bestehen.", + "ForgotPin": "PIN vergessen?", + "RequireEnteringPinToReturn": "Ich muss meine Profil-PIN eingeben, wenn ich zu dieser App zurückkehre.", + "RequireEnteringPinToReturnQuestion": "Sollen wir dich jedes Mal zur Eingabe deiner Profil-PIN auffordern, wenn du zu dieser App zurückkehrst? Wenn dieses Gerät von mehreren Benutzern gemeinsam genutzt wird, kann deine Profil-PIN dazu beitragen, dass die anderen Benutzer nicht auf deine Daten zugreifen.", + "RequireEnteringPinToReturnHelp": "Nützlich, wenn dieses Gerät von mehreren Benutzern gemeinsam genutzt wird.", + "WrongPinPleaseTryAgain": "Hoppla, falsche PIN. Bitte versuche es erneut.", + "ProfilePinIsOn": "Profil-PIN ist derzeit aktiviert.", + "IfTryingToConnectToHttp": "Wenn du versuchst, eine Verbindung zu deinem Emby-Server über einer HTTP-Adresse herzustellen, lässt dein Browser dies möglicherweise aufgrund der Erfordernis von HTTPS nicht zu. Bitte versuche einen der folgenden Schritte:", + "SetupHttpsForYourServer": "Richte {0}HTTPS für deinen Emby-Server{1} ein, damit du eine Verbindung über HTTPS herstellen kannst.", + "TitleUnableToReachServer": "Der Server kann nicht erreicht werden", + "TitleUnableToReachName": "{0} kann nicht erreicht werden", + "HearingImpaired": "Hörgeschädigte", + "SignIntoServerName": "Anmelden bei {0}", + "About": "Über", + "Specials": "Extras", + "NSettings": "{0} Einstellungen", + "NPreferences": "{0} Präferenzen", + "DetailScreenOptions": "Detailansichten", + "LabelGenreDisplayLimit": "Anzeigelimit für Genres", + "GenreDisplayLimitHelp": "Begrenze die Anzahl der Genres, die oben auf den Mediendetailbildschirmen angezeigt werden.", + "GenreDisplayLimitForListsHelp": "Begrenze die Anzahl der Genres, die oben auf den Wiedergabelisten-, Sammlungs- und Künstlerdetailbildschirmen angezeigt werden.", + "LabelGenreDisplayLimitForLists": "Genre-Anzeigelimit für Listen", + "ShowPosterOnDetails": "Zeige ein Poster auf dem Detailbildschirm an", + "ShowPosterOnDetailsHelp": "Wählen, ob ein Poster auf Videodetailbildschirmen angezeigt werden soll, oder blende es aus, um einen minimalistischeren Look zu erzielen, der den Hintergrund hervorhebt. Diese Einstellung wird bei kleineren Bildschirmlayouts nicht verwendet. Einige Elementtypen ignorieren diese Einstellung.", + "EnableAppLogging": "Aktiviere App-Protokollierung", + "EnableAppLoggingHelp": "Die Protokollierung kann die App-Leistung beeinträchtigen und sollte nur bei Bedarf zur Fehlerbehebung aktiviert werden. Änderungen erfordern einen Neustart der App.", + "LabelSlideshowInterval": "Diashow Zeit pro Bild", + "TVChannelImageEditorHelp": "Mehrere Logo-Versionen werden unterstützt. Emby Apps wählen automatisch das passende Logo basierend auf dem momentan ausgewählten Theme.", + "PlaySlideshow": "Diashow abspielen", + "CheckForExistingEpisodesInAllLibraries": "Prüfe auf existierende Episoden in allen Bibliotheken", + "GroupNotificationsBySeriesOrAlbum": "Gruppenbenachrichtigungen basierend auf Serien und Alben", + "ThemeSettings": "Theme-Einstellungen", + "FollowingActivityWillBeDisrupted": "Die nachfolgende Aktivität wird unterbrochen und benötigt möglicherweise einen manuellen Eingriff zum Neustarten:", + "OneActivePlaybackSession": "1 aktive Wiedergabe-Session", + "NumActivePlaybackSessions": "{0} aktive Wiedergabe-Sessions", + "OneActiveRecording": "1 aktive Aufnahme", + "NumActiveRecordings": "{0} aktive Aufnahmen", + "PlayFromLivePosition": "Wiedergabe ab LIVE-Position", + "PlayFromStartOfRecording": "Wiedergabe ab Beginn der Aufnahme", + "ThisChannelIsActivelyRecording": "Der Kanal wird gerade aufgenommen. Wie möchtest du mit der Wiedergabe beginnen?", + "ThemeSongVolume": "Lautstärke der Titelsongs", + "HeaderForceConversionForFormats": "Erzwinge Konvertierung für Formate", + "ForceConversionForFormatsHelp": "Verwende dies, um eine serverseitige Transkodierung oder Remuxen für Formate zu erzwingen, die auf diesem Gerät nicht gut direkt abgespielt werden.", + "StartupBehavior": "Startverhalten", + "RememberLastUser": "Letzten Benutzer merken", + "ShowLoginScreen": "Loginbildschirm anzeigen", + "SignInAsValue": "Anmelden als {0}", + "ConvertUnsupportedAudio": "Nicht unterstütztes Surround-Audio in Dolby Digital umwandeln", + "ConvertUnsupportedAudioHelp": "Vermeide das Heruntermischen von nicht unterstützten Surround-Formaten auf Stereo, indem du sie von Emby Server in Dolby Digital umwandeln lässt.", + "HeaderPlaybackCorrection": "Wiedergabekorrektur", + "HeaderAttemptPlaybackCorrection": "Wiedergabekorrektur versuchen", + "PlaybackCorrectionConfirm": "Wiedergabekorrektur versuchen?", + "PlaybackCorrectionDescription": "Weist das aktuelle Element ein Wiedergabeproblem auf, z. B. kein Video oder keinen Ton? Es wird versucht, Wiedergabeprobleme zu beheben, indem mittels Transkodierung die Datei in ein streamingfreundlicheres Format umgewandelt wird. Dies führt zu einem erhöhten Ressourcenverbrauch auf diesem Emby-Server.", + "PlaybackCorrectionDescription2": "Du kannst dies bis zu dreimal pro Video tun, wobei Remuxing, Videotranscoding und Audiotranscoding jeweils einzeln aktiviert werden.", + "HeaderAlbumsAsContributingArtist": "Alben als mitwirkender Künstler", + "HeaderAlbumsAsComposer": "Alben als Komponist", + "Duplicates": "Duplikate", + "HeaderSleepTimer": "Schlaftimer", + "AfterCurrentItem": "Nach dem jetzigen Element", + "HeaderStopPlayback": "Stoppe Wiedergabe", + "TurnOffTimer": "Timer ausschalten", + "SleepTimerIsSet": "Dein Schlaftimer ist eingeschaltet", + "SleepTimerIsOff": "Dein Schlaftimer ist ausgeschaltet", + "LabelEnableRemoteControlTVMode": "Zeige die Cast- und Fernbedienungsfunktionen", + "EnableRemoteControlTVModeHelp": "Aktiviere diese Option, wenn du dieses Gerät zum Senden von Medien an andere Geräte verwenden möchtest.", + "ShowOnScreenControls": "Bildschirmbedienelemente anzeigen", + "LabelVideoScreenUpAction": "Aktion beim Drücken der Aufwärtstaste", + "VideoScreenUpActionHelp": "Wähle die Aktion aus, die ausgeführt werden soll, wenn du die Aufwärtstaste auf dem Bildschirm des Videoplayers drückst. Dies gilt, wenn derzeit keine Bedienelemente auf dem Bildschirm sichtbar sind. Wenn die Steuerelemente bereits sichtbar sind, wird die Aufwärtstaste zur Navigation verwendet.", + "LabelVideoPlayerLongPressAction": "Aktion beim langen Drücken der OK-Taste", + "LetsGetSetup": "Starten wir mit der Einrichtung", + "VideoPlayerLongPressActionHelp": "Lege fest, welche Funktion oder welches Menü angezeigt werden soll, wenn du während der Videowiedergabe lange auf die OK-Taste drückst. Dies ist nur wirksam, wenn die Videosteuerung ausgeblendet ist oder die Suchleiste den Fokus hat.", + "AskAdminToGetPremiere": "Dieser Kauf muss vom Server-Administrator getätigt werden. Bitte den Administrator dieses Emby Servers, sich anzumelden und Emby Premiere zu erwerben, damit du Zugang zu den Premium-Funktionen erhältst.", + "AutoOpenSingleItemsFolders": "Automatisches Öffnen einzelner Elemente in der Ordneransicht", + "AutoOpenSingleItemsFoldersHelp": "Wenn ein Ordner nur einen einzigen Artikel enthält, wird dieser Artikel automatisch geöffnet.", + "PlayedOnValue": "{0} abgespielt", + "TheseSettingsApplyAppDevice": "Diese Einstellungen gelten für alle Benutzer, die etwas auf diesem Gerät abspielen.", + "LastContentDateAdded": "Datum der letzten Inhaltshinzufügung", + "RepeatThemeMedia": "Themen in Endlosschleife abspielen", + "HideEpisodeSpoilerInfo": "Spoiler-Informationen von ungesehenen Episoden ausblenden", + "HideEpisodeSpoilerInfoHelp": "Blendet das Bild und die Übersicht für ungesehene Episoden auf den meisten Bildschirmen aus.", + "BornValueAge": "Geboren: {0} (age {1})", + "PreferDirectStreamLiveTV": "Direktes Streaming von Live-TV bevorzugen", + "PreferDirectStreamLiveTVHelp": "Durch direktes Streaming von Live-TV wird der Ressourcenverbrauch auf deinem Emby-Server reduziert, jedoch ist die Suchfunktion während der Wiedergabe möglicherweise eingeschränkt. Wenn du diese Option aktivierst, wird Live-TV direkt gestreamt, sofern das Format unterstützt wird und innerhalb deiner konfigurierten Qualitätseinstellungen liegt. Deaktiviere diese Option, um während der Wiedergabe eine bessere Suchfunktion zu nutzen, was jedoch mit einem höheren Ressourcenverbrauch verbunden ist.", + "HeaderAllRecordings": "Alle Aufnahmen", + "RememberLoginDescription": "Nach der Anmeldung kannst du in den App-Einstellungen das Startverhalten so konfigurieren, dass die Anmeldung gespeichert wird, du dich als bestimmter Benutzer anmeldest oder immer der Anmeldebildschirm angezeigt wird.", + "ForgetServerConfirmation": "Möchtest du diesen Server vergessen?", + "ForgetThisServer": "Diesen Server vergessen", + "HeaderThisDevice": "dieses Gerät", + "ChaptersGuide": "Kapitel / Live TV Guide", + "ChaptersGuideHelp": "Zeigt die Kapitel für die Medien an die Kapitel haben. Für Medien ohne Kapitel, wird stattdessen der Live TV Guide, falls verfügbar, gezeigt.", + "HeaderShowSeriesImages": "Bilder der Serie anzeigen", + "AppExitConfirmation": "Möchtest Du Emby verlassen?", + "AppExitMenu": "Exit menu", + "SideMenu": "seitliches Navigationsmenü", + "SystemStorage": "Systemspeicher ({0})" +} diff --git a/modules/common/strings/el.json b/modules/common/strings/el.json new file mode 100644 index 0000000..2d42276 --- /dev/null +++ b/modules/common/strings/el.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Το Emby έχει σχεδιαστεί για να σας βοηθήσει να διαχειριστείτε την προσωπική σας βιβλιοθήκη πολυμέσων, όπως τα οικιακά βίντεο και οι φωτογραφίες. Παρακαλούμε δείτε τους {0}όρους χρήσης {1}. Η χρήση οποιουδήποτε λογισμικού Emby συνιστά αποδοχή των παρόντων όρων.", + "MessageUnableToConnectToServer": "Δεν είναι δυνατή η σύνδεση με τον επιλεγμένο διακομιστή αυτή τη στιγμή. Βεβαιωθείτε ότι εκτελείται και προσπαθήστε ξανά.", + "EmbyIntroMessage": "Με το Emby μπορείτε εύκολα να μεταδίδετε βίντεο, μουσική και φωτογραφίες σε έξυπνα τηλέφωνα, tablet και άλλες συσκευές από τον διακομιστή Emby σας.", + "HeaderSignInWithConnect": "Συνδεθείτε με το Emby Connect", + "HeaderWelcomeToEmby": "Καλώς ήρθατε στο Emby", + "HeaderNewUsers": "Νέοι Χρήστες", + "HeaderPleaseSignIn": "Παρακαλώ Συνδεθείτε", + "MessageInvalidUser": "Μη έγκυρο όνομα χρήστη ή κωδικός πρόσβασης. Παρακαλώ προσπαθήστε ξανά.", + "MessageUnlockAppWithPurchaseOrSupporter": "Ξεκλειδώστε αυτή τη δυνατότητα καταβάλλοντας ένα πολύ μικρό κόστος ή με μία ενεργή συνδρομή Emby Premiere.", + "MessageUnlockAppWithSupporter": "Ξεκλειδώστε αυτή τη δυνατότητα με μία ενεργή συνδρομή Emby Premiere.", + "MessageToValidateSupporter": "Αν έχετε ενεργή συνδρομή Emby Premiere, βεβαιωθείτε ότι έχετε κάνει εγκατάσταση του Emby Premiere στον πίνακα ελέγχου Emby, στο οποίο μπορείτε να αποκτήσετε πρόσβαση κάνοντας κλικ στην επιλογή Emby Premiere μέσα στο κύριο μενού.", + "ValueSpecialEpisodeName": "Ειδικά - {0} ", + "HeaderSignIn": "Σύνδεση", + "Share": "Κοινή χρήση", + "Shared": "Κοινόχρηστα", + "Info": "Πληροφορίες", + "Add": "Προσθήκη", + "Speed": "Ταχύτητα", + "PlaybackSpeed": "Ταχ΄ύτητα Αναπαραγωγής", + "Chapters": "Κεφάλαια", + "Password": "Κωδικός", + "SavePassword": "Αποθήκευση Κωδικού", + "LabelPassword": "Κωδικός:", + "HeaderResetPassword": "Επαναφορά Κωδικού", + "Series": "Σειρές", + "Preview": "Προεπισκόπηση", + "Submit": "Υποβολή", + "Never": "Ποτέ", + "Table": "Πίνακας", + "HeaderScheduledTasks": "Προγραμματισμένες Εργασίες", + "Plays": "Αναπαραγωγές", + "LastUsedAddressValue": "Τελευταία χρήση {0}", + "LabelKeywordType": "Τύπος λέξης-κλειδιού:", + "HeaderSelectColumns": "Επιλογή Στηλών", + "HeaderTopResults": "Κορυφαία Αποτελέσματα", + "HeaderPinSidebar": "Καρφίτσωμα Πλευρικής Μπάρας", + "Collapse": "Σύμπτυξη", + "LabelBackgroundVideoPlayback": "Αναπαραγωγή βίντεο στο παρασκήνιο:", + "BackgroundVideoPlaybackHelp": "Η αναπαραγωγή βίντεο στο παρασκήνιο επιτρέπει τη συνέχιση της αναπαραγωγής του βίντεο όταν η οθόνη σβήσει.", + "AlwaysOn": "Πάντα ενεργό", + "HeadphonesOrExternalSpeakersConnected": "Συνδέθηκαν ακουστικά ή εξωτερικά ηχεία", + "HeaderKeyboardAndRemote": "Πληκτρολόγιο και Τηλεχειριστήριο", + "NoSelectedItemsSupportOperation": "Δεν έχουν επιλεχτεί αντικείμενα που να υποστηρίζουν αυτή τη λειτουργία.", + "NoOperationsForSelectedItems": "Δεν υπάρχουν διαθέσιμες λειτουργίες για τα επιλεγμένα αντικείμενα.", + "UploadOnlyOnWifi": "Αποστολή μόνω μέσω Wifi", + "HeaderFoldersToUpload": "Φάκελοι προς Μεταφόρτωση", + "LabelPasswordConfirm": "Κωδικός (επιβεβαίωση):", + "HeaderMoveUpInOrder": "Μετακίνηση Πάνω στη Σειρά", + "HeaderDownUpInOrder": "Μετακίνηση Κάτω στη Σειρά", + "LabelUsername": "Όνομα Χρήστη:", + "HeaderAddServer": "Προσθήκη Διακομιστή", + "HeaderSubtitleOffset": "Χρονική Μετατόπιση Υπότιτλου", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Αφαίρεση από την Συνέχεια Προβολής", + "RemoveThisTitleFromContinueWatching": "Αφαίρεση αυτού του τίτλου από την Συνέχεια Προβολής;", + "HeaderRemoveFromContinueListening": "Αφαίρεση από τη Συνέχιση Ακρόασης", + "RemoveThisTitleFromContinueListening": "Αφαίρεση αυτού του τίτλου από τη Συνέχιση Ακρόασης;", + "HeaderIncreaseSubtitleOffset": "Αύξηση Χρονικής Μετατόπισης Υπότιτλου", + "HeaderDecreaseSubtitleOffset": "Μείωση Χρονικής Μετατόπισης Υπότιτλου", + "Close": "Κλείσιμο", + "HeaderSeeAll": "Προβολή Όλων", + "HeaderOpenInNewWindow": "Άνοιγμα σε Νέο Παράθυρο", + "LabelEmail": "Email:", + "LabelHost": "Εξυπηρετητής:", + "LabelHostHelp": "Παράδειγμα: 192.168.1.100 ή https://myserver.com", + "LabelPort": "Θύρα:", + "Disabled": "Απενεργοποιημένο", + "Uninstall": "Απεγκατάσταση", + "Enable": "Ενεργοποίηση", + "AllTuners": "Όλοι οι δέκτες", + "Disable": "Απενεργοποίηση", + "NextValue": "Επόμενο: {0}", + "HeaderNextItem": "Επόμενο Αντικείμενο", + "HeaderPreviousItem": "Προηγούμενο Αντικείμενο", + "NoTrailersMessage": "Δεν βρέθηκαν τρέιλερ. Για να προσθέσετε τρέιλερ, παρακαλώ εγκαταστήστε το πρόσθετο Τρέιλερ από τον {0}Κατάλογο πρόσθετων Emby{1}.", + "UninstallPluginConfirmation": "Είστε σίγουροι ότι θέλετε να απεγκαταστήσετε αυτό το πρόσθετο;", + "HeaderUninstallPlugin": "Απεγκατάσταση Πρόσθετου", + "AreYouStillWatching": "Παρακολουθείτε ακόμα;", + "LabelCurrentPassword": "Τρέχων κωδικός:", + "LabelNewPassword": "Νέος κωδικός:", + "LabelNewPasswordConfirm": "Επιβεβαίωση νέου κωδικού:", + "HeaderRemovePassword": "Κατάργηση Κωδικού", + "ServerUpdateNeeded": "Αυτός ο διακομιστής Emby πρέπει να ενημερωθεί. Για να κάνετε λήψη της πιο πρόσφατης έκδοσης, επισκεφτείτε την {0}", + "MessageThankYouForConnectSignUp": "Σας ευχαριστούμε για την εγγραφή σας στο Emby Connect. Ένα email θα σταλεί στη διεύθυνσή σας με οδηγίες για το πώς να επιβεβαιώσετε το νέο σας λογαριασμό. Επιβεβαιώστε το λογαριασμό και στη συνέχεια επιστρέψτε εδώ για να συνδεθείτε.", + "MessageThankYouForConnectSignUpNoValidation": "Σας ευχαριστούμε για την εγγραφή σας στο Emby Connect! Τώρα θα σας ζητηθεί να συνδεθείτε με τις πληροφορίες σας για το Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "Ο κωδικός και η επιβεβαίωση του κωδικού πρέπει να ταιριάζουν.", + "ErrorMessageUsernameInUse": "Το όνομα χρήστη χρησιμοποιείται ήδη. Παρακαλώ επιλέξτε ένα νέο και προσπαθήστε ξανά.", + "ErrorMessageEmailInUse": "Η διεύθυνση ηλεκτρονικού ταχυδρομείου χρησιμοποιείται ήδη. Παρακαλώ εισάγετε μια νέα διεύθυνση ηλεκτρονικού ταχυδρομείου και προσπαθήστε ξανά ή χρησιμοποιήστε τη δυνατότητα \"Ξέχασα τον κωδικό πρόσβασης\".", + "HeaderUpcomingOnTV": "Προσεχώς στην Ζωντανή TV", + "HeaderOtherShowings": "Άλλες Εκδηλώσεις", + "Showings": "Εκδηλώσεις", + "HeaderConnectToServer": "Σύνδεση στο Διακομιστή", + "ConnectToServerManually": "Χειροκίνητη σύνδεση στο διακομιστή", + "LabelEnterConnectUserNameHelp": "Αυτή είναι η διεύθυνση email που χρησιμοποιήσατε για τη δημιουργία του λογαριασμού σας στο Emby Connect.", + "HeaderSignInError": "Σφάλμα Σύνδεσης", + "HeaderManualLogin": "Χειροκίνητη Είσοδος", + "PasswordResetConfirmation": "Θέλετε σίγουρα να κάνετε επαναφορά του κωδικού πρόσβασης;", + "ContactAdminToResetPassword": "Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματός σας για να επαναφέρετε τον κωδικό πρόσβασης.", + "ForgotPasswordInNetworkRequired": "Παρακαλώ δοκιμάστε ξανά μέσα από το οικιακό σας δίκτυο για να ξεκινήσετε τη διαδικασία επαναφοράς κωδικού πρόσβασης.", + "ForgotPasswordFileCreated": "Το παρακάτω αρχείο έχει δημιουργηθεί στο διακομιστή σας και περιέχει οδηγίες για το πως να συνεχίσετε:", + "ForgotPasswordFileExpiration": "Το pin επαναφοράς θα λήξει στις {0}.", + "InvalidForgotPasswordPin": "Εισάγατε άκυρο ή ληγμένο pin. Παρακαλώ προσπαθήστε ξανά.", + "PasswordResetForUsers": "Οι κωδικοί έχουν αφαιρεθεί για τους παρακάτω χρήστες. Για σύνδεση χρησιμοποιήστε κενό κωδικό.", + "HeaderForgotPassword": "Ξεχάσατε τον Κωδικό;", + "ForgotPasswordUsernameHelp": "Αφήστε το κενό αν δεν θυμάστε το όνομα του χρήστη σας.", + "HeaderPasswordReset": "Επαναφορά Κωδικού", + "AttributeNew": "Νέο", + "Done": "Ολοκληρώθηκε", + "HeaderResetToDefault": "Επαναφορά στις Προεπιλογές", + "Deinterlacing": "Aποδιακοποποίηση (Deinterlacing)", + "HeaderBurningInSubtitles": "Ενσωμάτωση Υπότιτλων", + "Premiere": "Πρεμιέρα", + "LabelPinCode": "Κωδικός Pin:", + "LabelLocalNetworkPinCode": "Κωδικός Pin τοπικού δικτύου:", + "LabelLocalNetworkPasswordMode": "Λειτουργία σύνδεσης τοπικού δικτύου:", + "RequirePasswordInLocalNetwork": "Να απαιτείται κωδικός πρόσβασης στο τοπικό δίκτυο", + "NoPasswordInLocalNetwork": "Να μην απαιτείται κωδικός πρόσβασης στο τοπικό δίκτυο", + "PinCodeInLocalNetwork": "Να επιτρέπεται ένας αριθμητικός κωδικός pin στο τοπικό δίκτυο", + "LocalNetworkPasswordModeHelp": "Επιλέξτε μέθοδο σύνδεσης για τις συσκευές που βρίσκονται στο ίδιο τοπικό δίκτυο με το διακομιστή σας Emby.", + "HeaderLocalNetworkAccess": "Πρόσβαση Τοπικού Δικτύου", + "Live": "Ζωντανά", + "Reset": "Επαναφορά", + "Repeat": "Επανάληψη", + "Track": "Κομμάτι", + "Tracks": "Κομμάτια", + "HeaderCameraUpload": "Μεταφόρτωση Κάμερας", + "TrackCount": "{0} Κομμάτια", + "ItemCount": "{0} Αντικείμενα", + "NumberChannelsValue": "{0} Κανάλια", + "HeaderLatestMusic": "Τελευταία Μουσική", + "HeaderLatestAudioBooks": "Τελευταία Ηχητικά Βιβλία", + "HeaderLatestDownloadedVideos": "Τελευταία Ληφθέντα Βίντεο", + "HeaderRecentlyPlayed": "Παίχτηκε Πρόσφατα", + "Recent": "Πρόσφατα", + "HeaderFrequentlyPlayed": "Παίζεται Συχνά", + "HeaderMoreLikeThis": "Περισσότερα Σαν Αυτό", + "HeaderMoreLikeThisOnLiveTV": "Περισσότερα σαν αυτό στη ζωντανή τηλεόραση", + "OriginalAirDateValue": "Αρχική ημερομηνία κυκλοφορίας: {0}", + "EndsAtValue": "Τελειώνει στις {0}", + "Date": "Ημερομηνία", + "AirDate": "Ημερομηνία Προβολής", + "Played": "Έγινε Αναπαραγωγή", + "Daily": "Καθημερινά", + "Weekly": "Εβδομαδιαία", + "RequireHashMatch": "Να απαιτείται αντιστοίχιση hash", + "RequireHashMatchHelp": "Η απαίτηση ταιριάσματος hash θα φιλτράρει τους υπότιτλους ώστε να περιλαμβάνονται μόνο αυτοί που έχουν δοκιμαστεί με το ακριβές αρχείο βίντεο σας. Η απεπιλογή αυτής της επιλογής θα αυξήσει τον αριθμό των υπότιτλων που ταιριάζουν, αλλά θα αυξήσει επίσης τις πιθανότητες εμφάνισης λανθασμένου ή μη χρονισμένου κειμένου υποτίτλων.", + "SearchForForcedSubtitlesOnly": "Μόνο αναγκαστικοί υπότιτλοι", + "SearchForForcedSubtitlesOnlyHelp": "Η απαίτηση για αναγκαστικούς υπότιτλους θα περιορίσει τα αποτελέσματα σε υπότιτλους που φέρουν ετικέτα ως ξένη γλώσσα.", + "LastEpisodeDateAdded": "Ημερομηνία προσθήκης τελεταίου επεισοδίου", + "LastEpisodeDateAired": "Ημερομηνία Προβολής Τελευταίου Επεισοδίου", + "LabelPlaystate": "Κατάσταση αναπαραγωγής:", + "Studio": "Στούντιο", + "Tag": "Ετικέτα", + "EpisodeTitle": "Τίτλος Επεισοδίου", + "Audio": "Ήχος", + "Video": "Βίντεο", + "Subtitle": "Υπότιτλος", + "Image": "Εικόνα", + "CopyStream": "Αντιγραφή αρχικής ροής", + "LabelAudioLayout": "Εμφάνιση ήχου:", + "LabelAudioCodec": "Κωδικοποιητής ήχου:", + "LabelAudioLanguage": "Γλώσσα ήχου:", + "LabelSubtitleLanguage": "Γλώσσα υπότιτλων:", + "LabelVideoCodec": "Κωδικοποιητής βίντεο:", + "LabelSubtitleCodec": "Κωδικοποιητής υπότιτλου:", + "LabelParentalRating": "Γονική αξιολόγηση:", + "BecauseYouLikeValue": "Επειδή σας αρέσουν τα {0}", + "BecauseYouWatchedValue": "Επειδή παρακολουθήσατε τα {0}", + "DirectedByValue": "Σκηνοθεσία από {0}", + "StarringValue": "Πρωταγωνιστούν {0}", + "Invitations": "Προσκλήσεις", + "ActorAsRole": "ως {0}", + "ButtonOk": "ΟΚ", + "GroupItemsIntoCollections": "Ομαδοποίηση στοιχείων σε συλλογές", + "GroupItemsIntoCollectionsHelp": "Ομαδοποίηση στοιχείων με βάση τις συλλογές στις οποίες έχουν προστεθεί. Η ενεργοποίηση ορισμένων φίλτρων ή σειρών ταξινόμησης ενδέχεται να απενεργοποιήσει αυτόματα αυτήν την επιλογή.", + "GroupItemsIntoTags": "Ομαδοποίηση στοιχείων σε ετικέτες", + "GroupItemsIntoTagsHelp": "Ομαδοποίηση στοιχείων με βάση ετικέτες στις οποίες έχουν προστεθεί. Η ενεργοποίηση συγκεκριμένων φίλτρων ή σειρών ταξινόμησης μπορεί να το απενεργοποιήσει αυτό αυτόματα.", + "User": "Χρήστης", + "Access": "Πρόσβαση", + "Users": "Χρήστες", + "Library": "Βιβλιοθήκη", + "Devices": "Συσκευές", + "Cancel": "Ακύρωση", + "Restart": "Επανεκκίνηση", + "Shutdown": "Τερματισμός λειτουργίας", + "Logs": "Αρχεία καταγραφής", + "Visibility": "Oρατότητα", + "Notifications": "Ειδοποιήσεις", + "SendTestNotification": "Αποστολή Δοκιμαστικής Ειδοποίησης", + "NotificationSent": "Η ειδοποίηση απεστάλη", + "DeleteNotificationConfirmation": "Σίγουρα θέλετε να διαγράψετε αυτή την ειδοποίηση;", + "DeleteNotification": "Διαγραφή Ειδοποίησης", + "AddNotification": "Προσθήκη Ειδοποίησης", + "EditNotification": "Επεξεργασία Ειδοποίησης", + "LimitUserEventsTo": "Περιορισμός συμβάντων χρηστών σε:", + "LimitLibraryEventsTo": "Περιορισμός συμβάντων βιβλιοθήκης σε:", + "LimitDeviceEventsTo": "Περιορισμός συμβάντων συσκευών σε:", + "ForAdditionalNotificationOptions": "Πρόσθετες υπηρεσίες ειδοποιήσεων μπορούν να εγκατασταθούν από τον διαχειριστή του διακομιστή στον {0}κατάλογο προσθηκών{1} του Emby.", + "Plugins": "Πρόσθετα", + "Systems": "Συστήματα", + "Server": "Διακομιστής", + "Dashboard": "Πίνακας Ελέγχου", + "PlayOnAnotherDevice": "Αναπαραγωγή σε άλλη συσκευή", + "HeaderConnectionHelp": "Βοήθεια για τη σύνδεση", + "AccessRestrictedTryAgainLater": "Η πρόσβαση είναι περιορισμένη αυτήν τη στιγμή. Παρακαλώ προσπαθήστε ξανά αργότερα.", + "ButtonGotIt": "Το Κατάλαβα", + "RememberMe": "Να με θυμάσαι", + "EmbyServer": "Διακομιστής Emby", + "ManageEmbyServer": "Διαχείριση Διακομιστή Emby", + "ShutdownServer": "Τερματισμός λειτουργίας Διακομιστή Emby", + "RestartServer": "Επανεκκίνηση Διακομιστή Emby", + "RecordingCancelled": "Η Εγγραφή Ακυρώθηκε.", + "SeriesCancelled": "Η Σειρά Ακυρώθηκε.", + "Recording": "Εγγραφή", + "SeriesRecording": "Εγγραφή Σειρών", + "RecordingScheduled": "Η Εγγραφή Προγραμματίστηκε", + "SeriesRecordingScheduled": "Η Εγγραφή Σειράς Προγραμματίστηκε", + "HeaderNewRecording": "Νέα Εγγραφή", + "HeaderWakeServer": "Αφύπνιση Διακομιστή", + "AttemptingWakeServer": "Προσπάθεια αφύπνισης διακομιστή. Παρακαλώ περιμένετε...", + "WakeServerSuccess": "Επιτυχία!", + "HeaderCustomizeHomeScreen": "Προσαρμογή Αρχικής Οθόνης", + "WakeServerError": "Τα πακέτα Wake On LAN στάλθηκαν στον διακομιστή σας, αλλά δεν είναι δυνατή η σύνδεση με τον διακομιστή Emby. Το μηχάνημά σας μπορεί να χρειαστεί λίγο περισσότερο χρόνο για να ενεργοποιηθεί, ή ο διακομιστής Emby ενδέχεται να μην εκτελείται ενεργά στο μηχάνημα.", + "Days": "Ημέρες", + "Network": "Δίκτυο", + "Networks": "Κανάλια", + "SortByValue": "Ταξινόμηση κατά {0}", + "HeaderSortBy": "Ταξινόμηση Κατά", + "HeaderPhotoAlbums": "Άλμπουμ Φωτογραφιών", + "Photos": "Φωτογραφίες", + "HeaderAppearsOn": "Εμφανίζεται Σε", + "List": "Λίστα", + "HeaderRecordSeries": "Εγγραφή Σειρών", + "HeaderCinemaMode": "Intros Κινηματογράφου", + "Conversions": "Μετατροπές", + "Downloads": "Λήψεις", + "HeaderManageDownloads": "Διαχείριση Λήψεων", + "InternalStorage": "Εσωτερικός χώρος αποθήκευσης", + "ExternalStorage": "Εξωτερικός χώρος αποθήκευσης", + "UploadToFollowingServers": "Μεταφόρτωση στους Διακομιστές", + "UploadingNumItems": "Μεταφορτώνεται {0} από {1}", + "DownloadNumItems": "Γίνεται λήψη {0} από {1}", + "HeaderSampleRate": "Ρυθμός Δειγματοληψίας", + "HeaderReferenceFrames": "Καρέ Αναφοράς", + "HeaderBitDepth": "Βάθος bit", + "HeaderPixelFormat": "Μορφή Πίξελ", + "Profile": "Προφίλ", + "Bitrate": "Bitrate", + "Expand": "Επέκταση", + "Container": "Κοντέινερ", + "Format": "Μορφή", + "Path": "Διαδρομή", + "Size": "Μέγεθος", + "Resolution": "Ανάλυση", + "HeaderCodecTag": "Ετικέτα Κωδικοποιητή", + "Framerate": "Ρυθμός Καρέ", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Επίπεδο", + "Timestamp": "Χρονοσήμανση", + "Language": "Γλώσσα", + "Codec": "Κωδικοποιητής", + "Stream": "Ροή", + "HeaderExtradata": "Έξτρα Δεδομένα", + "HeaderHardwareAcceleratedTranscoding": "Διακωδικοποίηση με Επιτάχυνση Υλικού", + "HeaderHardwareAcceleratedTranscodingDescription": "Εκμεταλλευτείτε την GPU του διακομιστή σας. Το Emby έχει την πιο εξελιγμένη και πιο γρήγορη επιτάχυνση υλικού στο είδος του.", + "HeaderOfflineDownloads": "Πολυμέσα εκτός σύνδεσης", + "AndMuchMoreExclamation": "Και πολλά περισσότερα!", + "HeaderOfflineDownloadsDescription": "Λήψη πολυμέσων στις συσκευές σας για εύκολη χρήση χωρίς σύνδεση.", + "LiveTvFeatureDescription": "Κάντε stream ζωντανής τηλεόρασης σε οποιαδήποτε εφαρμογή Emby, με μια συμβατή συσκευή τηλεοπτικού δέκτη εγκατεστημένη στον διακομιστή σας Emby.", + "DvrFeatureDescription": "Προγραμματίστε μεμονωμένες εγγραφές ζωντανής τηλεόρασης, εγγραφές σειρών και πολλά άλλα με το Emby DVR.", + "CinemaModeFeatureDescription": "Τα Intros Κινηματογράφου σας προσφέρουν την αληθινή κινηματογραφική εμπειρία με τρέιλερ και προσαρμοσμένα intro πριν από τη λειτουργία.", + "HeaderFreeApps": "Δωρεάν Εφαρμογές Emby", + "FreeAppsFeatureDescription": "Απολαύστε δωρεάν πρόσβαση στις εφαρμογές Emby για τις συσκευές σας.", + "HeaderBecomeProjectSupporter": "Αποκτήστε Emby Premiere", + "HeaderViewServerInfo": "Προβολή Πληροφοριών Διακομιστή", + "PlaybackTvModeRequiresEmbyPremiere": "Η λειτουργία αναπαραγωγής στην TV απαιτεί μια ενεργή {0}συνδρομή Emby Premiere{1}.", + "FeatureRequiresEmbyPremiere": "Αυτή η δυνατότητα απαιτεί μια ενεργή {0} συνδρομή Emby Premiere{1}.", + "HeaderConvertYourRecordings": "Μετατροπή των εγγραφών σας", + "Record": "Εγγραφή", + "Save": "Αποθήκευση", + "Edit": "Επεξεργασία", + "HeaderSavePlaylist": "Αποθήκευση Λίστας Αναπαραγωγής", + "Latest": "Πρόσφατα", + "Download": "Λήψη", + "Downloaded": "Λήφθηκαν", + "Converted": "Μετατράπηκαν", + "RemoveFromHistory": "Αφαίρεση από το Ιστορικό", + "ConfirmRemoveFromHistory": "Αφαίρεση αυτού του αντικειμένου από το ιστορικό;", + "Downloading": "Γίνεται λήψη", + "Advanced": "Για προχωρημένους", + "LinkedToEmbyConnect": "Συνδέεται με το Emby Connect", + "Delete": "Διαγραφή", + "Both": "Και τα δύο", + "LabelChannelDisplay": "Προβολή καναλιού:", + "HeaderDeleteItem": "Διαγραφή Αντικειμένου", + "HeaderDeleteUser": "Διαγραφή Χρήστη", + "DeleteItemConfirmation": "Σίγουρα θέλετε να διαγράψετε το {0};", + "DeleteUserConfirmation": "Θέλετε σίγουρα να διαγράψετε το χρήστη {0};", + "DeleteUsersConfirmation": "Σίγουρα θέλετε να διαγράψετε αυτούς τους {0} χρήστες;", + "HeaderDeleteDevice": "Διαγραφή Συσκευής", + "DeleteDeviceConfirmation": "Θέλετε σίγουρα να σβήσετε αυτή τη συσκευή; Θα ξαναεμφανιστεί την επόμενη φορά που κάποιος χρήστης θα συνδεθεί απο αυτήν.", + "ConfirmDeleteItem": "Η διαγραφή αυτού του στοιχείου θα το διαγράψει τόσο από το σύστημα αρχείων όσο και από τη βιβλιοθήκη πολυμέσων σας.", + "FollowingFilesWillBeDeleted": "Τα ακόλουθα αρχεία και φάκελοι θα διαγραφούν:", + "AreYouSureToContinue": "Είστε βέβαιοι ότι θέλετε να συνεχίσετε;", + "Refresh": "Ανανέωση", + "RefreshingMetadataDots": "Ανανέωση μεταδεδομένων...", + "ScanningLibraryFilesDots": "Σάρωση αρχείων βιβλιοθήκης...", + "HeaderFavoritesThenByChannelNumber": "Αγαπημένα. Μετά ανά Νούμερο Καναλιού", + "HeaderAddToCollection": "Προσθήκη στη Συλλογή", + "HeaderFavoritesThenByTitle": "Αγαπημένα. Μετά ανά Τίτλο", + "HeaderFavoritesThenByDefault": "Αγαπημένα. Μετά ανά Προεπιλεγμένη Σειρά Καναλιών", + "HeaderDefaultChannelOrder": "Προεπιλεγμένη Σειρά Καναλιών", + "HeaderAddToFavorites": "Προσθήκη στα Αγαπημένα", + "HeaderRemoveFromFavorites": "Αφαίρεση από τα Αγαπημένα", + "Favorited": "Αγαπημένο", + "Unfavorited": "Μη αγαπημένο", + "HeaderNewCollection": "Νέα Συλλογή", + "HeaderNewPlaylist": "Νέα Λίστα Αναπαραγωγής", + "AllCollections": "Όλες οι Συλλογές", + "AllPlaylists": "Όλες οι Λίστες Αναπαραγωγής", + "Create": "Δημιουργία", + "HeaderAddedToPlaylist": "Προστέθηκε στη Λίστα Αναπαραγωγής", + "HeaderAddedToCollection": "Προθήκη στη Συλλογή", + "OneItemAddedTo": "1 αντικείμενο προστέθηκε στο \"{0}\".", + "ItemsAddedTo": "{0} αντικείμενα προστέθηκαν στο \"{1}\".", + "HeaderAddedToPlayQueue": "Προστέθηκε στην Ουρά Αναπαραγωγής", + "HeaderPlayingNext": "Θα παίξει Μετά", + "Help": "Βοήθεια", + "HeaderGetHelp": "Λήψη Βοήθειας", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Επιφάνεια εργασίας", + "Mobile": "Κινητό / Τάμπλετ", + "Navigation": "Πλοήγηση", + "HeaderVideoPlayback": "Αναπαραγωγή Βίντεο", + "TV": "Τηλεόραση", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Κύκλοι", + "OneTrack": "1 Κομμάτι", + "OneSeason": "1 Κύκλος", + "Libraries": "Βιβλιοθήκες", + "NumberSeasonsValue": "{0} Κύκλοι", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Γλώσσα εμφάνισης:", + "LabelDisplayLanguageHelp": "Η μετάφραση του Emby είναι ένα συνεχιζόμενο έργο.", + "LearnHowYouCanContribute": "Μάθετε πώς μπορείτε να συμβάλλετε.", + "NewCollectionHelp": "Οι συλλογές σάς επιτρέπουν να δημιουργείτε εξατομικευμένες ομαδοποιήσεις ταινιών και άλλου περιεχομένου βιβλιοθήκης.", + "SearchForCollectionInternetMetadata": "Αναζήτηση στο διαδίκτυο για εικόνες και μεταδεδομένα", + "DisplayMissingEpisodesWithinSeasons": "Εμφάνιση επεισοδίων που λείπουν από τους κύκλους", + "DisplayMissingEpisodesWithinSeasonsHelp": "Αυτό πρέπει επίσης να είναι ενεργοποιημένο για τις βιβλιοθήκες τηλεόρασης στην εγκατάσταση του διακομιστή Emby.", + "EnableThemeSongs": "Ενεργοποίηση θεματικών τραγουδιών", + "EnableBackdrops": "Ενεργοποίηση Σκηνικών", + "EnableThemeSongsHelp": "Αν είναι ενεργό, τα τραγούδια θεμάτων θα αναπαράγονται στο παρασκήνιο κατά την περιήγηση στη βιβλιοθήκη.", + "EnableBackdropsHelp": "Αν είναι ενεργό, τα σκηνικά θα εμφανίζονται στο φόντο ορισμένων σελίδων κατά την περιήγηση στη βιβλιοθήκη.", + "EnableThemeVideos": "Ενεργοποίηση βίντεο θέματος", + "EnableThemeVideosHelp": "Αν είναι ενεργό, τα βίντεο θεμάτων θα αναπαράγονται στο παρασκήνιο κατά την περιήγηση στη βιβλιοθήκη.", + "RunAtStartup": "Εκτέλεση κατά την εκκίνηση", + "ServerStartup": "Εκκίνηση Διακομιστή", + "EmbyServerOnXHasStarted": "Ο διακομιστής Emby στο {0} ξεκίνησε.", + "LabelScreensaver": "Προφύλαξη οθόνης:", + "LabelSoundEffects": "Ηχητικά εφέ:", + "LabelName": "Όνομα:", + "NewCollectionNameExample": "Παράδειγμα: Συλλογή \"Πόλεμος των Άστρων\"", + "MessageItemsAdded": "Τα στοιχεία προστέθηκαν.", + "OptionNew": "Νέο...", + "LabelPlaylist": "Λίστα αναπαραγωγής:", + "AddToPlaylist": "Προσθήκη στη λίστα αναπαραγωγής", + "HeaderAddToPlaylist": "Προσθήκη στη Λίστα αναπαραγωγής", + "Subtitles": "Υπότιτλοι", + "LabelTheme": "Θέμα:", + "LabelSettingsTheme": "Θέμα ρυθμίσεων:", + "LabelThemeAccentColor": "Χρώμα έμφασης:", + "ThemeAccentColorDescription": "Ελέγχει το χρώμα των σημαντικών δεικτών, εικονιδίων και κειμένου.", + "SearchForSubtitles": "Αναζήτηση για υπότιτλους", + "LabelLanguage": "Γλώσσα:", + "Search": "Αναζήτηση", + "NoSubtitleSearchResultsFound": "Δεν βρέθηκαν αποτελέσματα. Έχετε ρυθμίσει τη {0}λήψη υπότιτλων{1};", + "NoLyricsSearchResultsFound": "Δε βρέθηκαν αποτελέσματα. Έχετε ρυθμίσει τη {0}λήψη στίχων{1};", + "Lyrics": "Στίχοι", + "SearchForLyrics": "Αναζήτηση για Στίχους", + "Finish": "Ολοκλήρωση", + "File": "Αρχείο", + "Exit": "Έξοδος", + "Sleep": "Αναστολή", + "Setup": "Εγκατάσταση", + "MessageAreYouSureDeleteSubtitles": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το αρχείο υποτίτλων;", + "ConfirmDeletion": "Επιβεβαίωση Διαγραφής", + "MySubtitles": "Οι υπότιτλοι μου", + "MessageDownloadQueued": "Η λήψη προγραμματίστηκε.", + "HeaderEditSubtitles": "Επεξεργασία Υπότιτλων", + "UnlockGuide": "Οδηγός Ξεκλειδώματος", + "HeaderRefreshMetadata": "Ανανέωση Μεταδεδομένων", + "HeaderRefreshAllMetadata": "Ανανέωση Όλων των Μεταδεδομένων", + "ReplaceExistingImages": "Αντικατάσταση υπάρχουσων εικόνων", + "ReplaceExistingImagesHelp": "Όλες οι υπάρχουσες εικόνες θα διαγραφούν και θα ληφθούν νέες. Σε κάποιες περιπτώσεις, αυτό μπορεί να έχει σαν αποτέλεσμα λιγότερες διαθέσιμες εικόνες από πριν.", + "ReplaceAllMetadata": "Αντικατάσταση όλων των μεταδεδομένων", + "SearchForMissingMetadata": "Αναζήτηση μεταδεδομένων που λείπουν", + "LabelRefreshMode": "Λειτουργία ανανέωσης:", + "NoItemsFound": "Δεν βρέθηκαν στοιχεία.", + "HeaderSaySomethingLike": "Πείτε κάτι σαν...", + "ButtonTryAgain": "Προσπαθήστε Ξανά", + "HeaderYouSaid": "Είπατε...", + "MessageWeDidntRecognizeCommand": "Λυπούμαστε, δεν αναγνωρίσαμε αυτή την εντολή.", + "MessageIfYouBlockedVoice": "Αν αρνηθήκατε τη φωνητική πρόσβαση στην εφαρμογή, θα χρειαστεί να επαναρυθμίσετε τη ρύθμιση πριν δοκιμάσετε ξανά.", + "ValueDiscNumber": "Δίσκος {0}", + "Unrated": "Χωρίς Βαθμολογία", + "Favorite": "Αγαπημένο", + "Like": "Μου αρέσει", + "Dislike": "Δεν μου αρέσει", + "RefreshDialogHelp": "Τα metadata ανανεώνονται βάσει των ρυθμίσεων και των υπηρεσιών διαδικτύου που είναι ενεργοποιημένα στις ρυθμίσεις της βιβλιοθήκης του Emby.", + "Open": "Άνοιγμα", + "Play": "Αναπαραγωγή", + "Pause": "Παύση", + "HeaderPlayQueue": "Αναπαραγωγή Ουράς", + "HeaderAddToPlayQueue": "Προσθήκη στην Ουρά Αναπαραγωγής", + "Shuffle": "Ανάμιξη", + "Identify": "Αναγνώριση", + "HeaderRemoveIdentification": "Αφαίρεση Αναγνωριστικού", + "ResetMetadataConfirmation": "Σίγουρα θέλετε να κάνετε επαναφορά όλων των μεταδεδομένων;", + "HeaderEditMetadata": "Επεξεργασία Μεταδεδομένων", + "Convert": "Μετατροπή", + "Resume": "Συνέχιση", + "HeaderInstantMix": "Άμεση Μίξη", + "HeaderGoToItem": "Πήγαινε στο Στοιχείο", + "HeaderGoToSeason": "Πήγαινε στη Σεζόν", + "HeaderGoToSeries": "Πήγαινε στη Σειρά", + "HeaderGoToAlbum": "Πήγαινε στο Άλμπουμ", + "HeaderGoToArtist": "Πήγαινε στον Καλλιτέχνη", + "HeaderPlayAll": "Αναπαραγωγή Όλων", + "PictureInPicture": "Εικόνα στην εικόνα (picture in picture)", + "Fullscreen": "Πλήρης οθόνη", + "ExitFullscreen": "Έξοδος από την πλήρη οθόνη", + "Rewind": "Επαναφορά", + "FastForward": "Γρήγορη προώθηση", + "Remove": "Κατάργηση", + "Rename": "Μετονομασία", + "Queue": "Ουρά", + "QueueAllFromHere": "Τοποθέτηση στην ουρά όλων των επόμενων ", + "PlayAllFromHere": "Αναπαραγωγή όλων των επόμενων ", + "PlayFromBeginning": "Αναπαραγωγή από την αρχή", + "FromBeginning": "Από την Αρχή", + "ResumeAt": "Συνέχιση από {0}", + "HeaderRemoveFromPlaylist": "Κατάργηση από τη Λίστα αναπαραγωγής", + "HeaderRemoveFromPlayQueue": "Αφαίρεση από την Ουρά Αναπαραγωγής", + "HeaderRemoveFromCollection": "Κατάργηση από την Συλλογή", + "Sort": "Ταξινόμηση", + "Trailer": "Τρέιλερ", + "SelectNone": "Επιλογή Κανενός", + "SelectAll": "Επιλογή Όλων", + "HeaderMarkPlayed": "Σήμανση ως έχει αναπαραχθεί", + "HeaderMarkUnplayed": "Σήμανση ως δεν έχει αναπαραχθεί", + "HeaderGroupVersions": "Ομαδοποίηση Εκδόσεων", + "PleaseSelectTwoItems": "Επιλέξτε τουλάχιστον δύο στοιχεία.", + "HeaderConfirmRecordingCancellation": "Επιβεβαίωση ακύρωσης εγγραφής", + "MessageConfirmRecordingCancellation": "Ακύρωση εγγραφής;", + "Album": "Άλμπουμ", + "AlbumArtist": "Άλμπουμ Καλλιτέχνη", + "Error": "Σφάλμα", + "VoiceInput": "Είσοδος φωνής", + "LabelContentType": "Τύπος περιεχομένου:", + "LabelPath": "Διαδρομή:", + "Playlists": "Λίστες αναπαραγωγής", + "LabelTitle": "Τίτλος:", + "LabelOriginalTitle": "Πρωτότυπος τίτλος:", + "LabelSortTitle": "Ταξινόμηση τίτλου:", + "LabelDateAdded": "Ημερομηνία προσθήκης:", + "DateAdded": "Ημερομηνία Προσθήκης", + "DateModified": "Ημερομηνία Επεξεργασίας", + "DatePlayed": "Ημερομηνία Αναπαραγωγής", + "DateLastActive": "Ημερομηνία Τελευταίας Δραστηριότητας", + "ConfigureDateAdded": "Διαμόρφωση του τρόπου με τον οποίο προσδιορίζεται η ημερομηνία προσθήκης στον πίνακα ελέγχου του διακομιστή Emby κάτω από τις ρυθμίσεις βιβλιοθήκης", + "LabelStatus": "Κατάσταση:", + "LabelArtistsHelp": "Διαχωρισμός των πολλαπλών χρησιμοποιώντας ;", + "HeaderAlbumArtists": "Άλμπουμ καλλιτέχνες", + "LabelAlbumArtists": "Άλμπουμ καλλιτέχνες:", + "LabelAlbum": "Άλμπουμ:", + "Artist": "Καλλιτέχνης", + "Artists": "Καλλιτέχνες", + "ImdbRating": "Αξιολόγηση IMDb", + "CommunityRating": "Αξιολόγηση Κοινότητας", + "LabelCommunityRating": "Αξιολόγηση κοινότητας:", + "LabelCriticRating": "Αξιολόγηση κριτικών:", + "CriticRating": "Αξιολόγηση Κριτικών", + "LabelWebsite": "Ιστοσελίδα:", + "Tagline": "Περιγραφή", + "LabelOverview": "Επισκόπηση:", + "LabelShortOverview": "Σύντομη επισκόπηση:", + "LabelReleaseDate": "Ημ/νία κυκλοφορίας:", + "LabelPlaceOfBirth": "Τόπος γέννησης:", + "Aired": "Προβλήθηκε", + "LabelAirDays": "Ημέρες προβολής:", + "LabelAirTime": "Ώρα προβολής:", + "LabelRuntimeMinutes": "Διάρκεια (λεπτά):", + "LabelCustomRating": "Προσαρμοσμένη αξιολόγηση:", + "LabelOriginalAspectRatio": "Πρωτότυπη αναλογία διαστάσεων:", + "Label3DFormat": "Μορφή 3D:", + "FormatValue": "Μορφή: {0}", + "DownloadsValue": "{0} Λήψεις", + "HashMatch": "Αντιστοίχιση Hash", + "EnableExternalVideoPlayers": "Ενεργοποίηση εξωτερικών παικτών βίντεο", + "EnableExternalVideoPlayersHelp": "Όταν ξεκινάτε την αναπαραγωγή βίντεο, θα εμφανίζεται ένα εξωτερικό μενού παικτών.", + "HeaderSpecialEpisodeInfo": "Ειδικές πληροφορίες επεισοδίου", + "LabelAirsDuringSeason": "Προβάλλεται κατά τη διάρκεια της σεζόν:", + "LabelAirsAfterSeason": "Προβάλλεται μετά τον κύκλο:", + "LabelAirsBeforeEpisode": "Προβάλλεται πριν το επεισόδιο:", + "HeaderExternalIds": "Εξωτερικά ids:", + "HeaderDisplaySettings": "Ρυθμίσεις εμφάνισης", + "PlaylistOrder": "Σειρά Ταξινόμησης Λίστας Αναπαραγωγής", + "CollectionOrder": "Σειρά Ταξινόμησης Συλλογής", + "LabelDisplayOrder": "Σειρά εμφάνισης:", + "LabelFileOrder": "Ταξινόμηση Αρχείου:", + "Display": "Εμφάνιση", + "Countries": "Χώρες", + "Genres": "Είδη", + "Studios": "Στούντιο", + "Tags": "Ετικέτες", + "Links": "Σύνδεσμοι", + "Movie": "Ταινία", + "Program": "Πρόγραμμα", + "Channel": "Κανάλι", + "Episode": "Επεισόδιο", + "Season": "Σεζόν", + "HeaderMetadataSettings": "Ρυθμίσεις Μεταδεδομένων", + "People": "Πρόσωπα", + "Number": "Αριθμός", + "Lock": "Κλείδωμα", + "HeaderScreenLocked": "Οθόνη Κλειδωμένη", + "HeaderUnlockControls": "Ξεκλείδωμα πλήκτρων Ελέγχου", + "HeaderTapToUnlock": "Πατήστε για Ξεκλείδωμα", + "LabelMetadataDownloadLanguage": "Προτιμώμενη γλώσσα λήψης μεταδεδομένων:", + "LabelImageDownloadLanguage": "Προτιμώμενη γλώσσα μεταφόρτωσης εικόνων:", + "LabelLockItemToPreventChanges": "Κλείδωμα αυτού του στοιχείου για αποτροπή μελλοντικών αλλαγών", + "LockThisField": "Κλείδωμα αυτού του πεδίου για αποτροπή μελλοντικών αλλαγών κατά την ανανέωση των μεταδεδομένων", + "MessageLeaveEmptyToInherit": "Αφήστε κενό για να κληρονομήσετε τις ρυθμίσεις από ένα γονικό στοιχείο ή την παγκόσμια προεπιλεγμένη τιμή.", + "LabelCountry": "Χώρα:", + "LabelCertificationCountry": "Χώρα πιστοποίησης", + "CertificationCountryHelp": "Αυτό θα επηρεάσει πιο σύστημα αξιολόγησης περιεχομένου χρησιμοποιείται.", + "LabelDynamicExternalId": "{0} Id:", + "LabelBirthYear": "Έτος γέννησης:", + "LabelBirthDate": "Ημερομηνία γέννησης:", + "LabelDeathDate": "Ημερομηνία θανάτου:", + "LabelEndDate": "Ημερομηνία λήξης:", + "LabelSeasonNumber": "Αριθμός κύκλου:", + "LabelEpisodeNumber": "Αριθμός επεισοδίου:", + "LabelTrackNumber": "Αριθμός κομματιού:", + "LabelNumber": "Αριθμός:", + "LabelDiscNumber": "Αριθμός δίσκου:", + "LabelParentNumber": "Γονικός αριθμός:", + "SortName": "Σύντομος Τίτλος", + "OriginalTitle": "Πρωτότυπος Τίτλος", + "ReleaseDate": "Ημερομηνία Κυκλοφορίας", + "Continuing": "Συνεχίζεται", + "Ended": "Τελείωσε", + "HeaderEnabledFields": "Ενεργοποιημένα πεδία", + "HeaderEnabledFieldsHelp": "Αποεπιλέξτε ένα πεδίο για να το κλειδώσετε και να αποτρέψετε την αλλαγή των δεδομένων του.", + "Backdrops": "Σκηνικά", + "Images": "Εικόνες", + "Runtime": "Διάρκεια", + "ProductionLocations": "Τοποθεσίες γυρισμάτων", + "BirthLocation": "Τόπος γέννησης:", + "ParentalRating": "Γονική Αξιολόγηση", + "PlayCount": "Πλήθος αναπαραγωγής", + "Name": "Όνομα", + "Overview": "Επισκόπηση", + "LabelType": "Τύπος:", + "LabelPersonRole": "Ρόλος:", + "LabelPersonRoleHelp": "Παράδειγμα: οδηγός φορτηγού παγωτού", + "Actor": "Ηθοποιός", + "Composers": "Συνθέτες", + "Composer": "Συνθέτης", + "Director": "Σκηνοθέτης", + "GuestStar": "Φιλική συμμετοχή", + "Producer": "Παραγωγός", + "Writer": "Σεναριογράφος", + "MessageNoSyncJobsFound": "Δεν βρέθηκαν λήψεις. Δημιουργήστε εργασίες λήψης χρησιμοποιώντας τα κουμπιά λήψης που βρίσκονται σε ολόκληρη την εφαρμογή.", + "MessageNoDownloadsFound": "Δεν υπάρχουν λήψεις χωρίς σύνδεση. Κατεβάστε τα πολυμέσα σας για χρήση χωρίς σύνδεση κάνοντας κλικ στο κουμπί λήψη σε όλη την εφαρμογή.", + "InstallingPackage": "Γίνεται εγκατάσταση {0}", + "PackageInstallCompleted": "ολοκληρώθηκε η εγκατάσταση του {0}.", + "PackageInstallFailed": "η εγκατάσταση του {0} απέτυχε.", + "PackageInstallCancelled": "ακυρώθηκε η εγκατάσταση του {0}.", + "SeriesYearToPresent": "{0} - Σήμερα", + "OneDevice": "1 Συσκευή", + "DeviceCountValue": "{0} Συσκευές", + "OneLog": "1 Καταγραφή", + "LogCountValue": "{0} Καταγραφές", + "OneVote": "1 Ψήφος", + "VoteCountValue": "{0} Ψήφοι", + "OneLike": "1 Μου αρέσει", + "LikeCountValue": "{0} Μου αρέσει", + "OneUser": "1 Χρήστης", + "UserCountValue": "{0} Χρήστες", + "OneLibrary": "1 Βιβλιοθήκη", + "LibraryCountValue": "{0} Βιβλιοθήκες", + "ValueOneItem": "1 Αντικείμενο", + "ValueOneEpisode": "1 επεισόδιο", + "ValueEpisodeCount": "{0} επεισόδια", + "Albums": "Άλμπουμ", + "Song": "Τραγούδι", + "Songs": "Τραγούδια", + "Authors": "Συντάκτες", + "Books": "Βιβλία", + "AudioBooks": "Ηχητικά βιβλία", + "HeaderAudioBooks": "Ηχητικά Βιβλία", + "HeaderAudioBook": "Ηχητικό Βιβλίο", + "HeaderIdentifyItemHelp": "Εισαγάγετε ένα ή περισσότερα κριτήρια αναζήτησης. Κατάργηση κριτηρίων για την αύξηση των αποτελεσμάτων αναζήτησης.", + "PleaseEnterNameOrId": "Εισαγάγετε ένα όνομα ή ένα εξωτερικό αναγνωριστικό.", + "MessageItemSaved": "Το στοιχείο αποθηκεύτηκε.", + "SearchResults": "Αποτελέσματα αναζήτησης", + "ServerNameIsRestarting": "Ο διακομιστής Emby - {0} επανεκκινεί.", + "ServerNameIsShuttingDown": "Ο διακομιστής Emby - {0} τερματίζεται.", + "HeaderDeleteItems": "Διαγραφή στοιχείων", + "ConfirmDeleteItems": "Η διαγραφή αυτών των στοιχείων θα τα διαγράψει τόσο από το σύστημα αρχείων όσο και από τη βιβλιοθήκη πολυμέσων σας.", + "PleaseRestartServerName": "Παρακαλώ κάντε επανεκκίνηση του διακομιστή Emby σε {0}.", + "ConvertingDots": "Μετατροπή...", + "LabelSyncNoTargetsHelp": "Φαίνεται ότι δεν διαθέτετε επί του παρόντος εφαρμογές που υποστηρίζουν λήψη χωρίς σύνδεση.", + "DownloadingDots": "Λήψη...", + "LearnMore": "Μάθετε περισσότερα", + "LabelBitrateMbps": "Ρυθμός δειγματοληψίας (Bitrate Mbps):", + "ConvertUnwatchedVideosOnly": "Μετατροπή μόνο των βίντεο που δεν έχουν αναπαραχθεί", + "SyncUnwatchedVideosOnly": "Λήψη μόνο των βίντεο που δεν έχουν αναπαραχθεί", + "ConvertUnwatchedVideosOnlyHelp": "Μόνο τα βίντεο που δεν είναι σημειωμένα ότι έχουν πλήρως αναπαραχθεί θα μετατραπούν.", + "SyncUnwatchedVideosOnlyHelp": "Θα ληφθούν μόνο τα βίντεο που δεν έχουν επισημανθεί ως πλήρως αναπαραγμένα, και τα βίντεο θα διαγράφονται από τη συσκευή όταν θα ολοκληρωθεί πλήρως η αναπαραγωγή.", + "AutomaticallySyncNewContent": "Αυτόματη λήψη νέου περιεχομένου", + "AutomaticallySyncNewContentHelp": "Το νέο περιεχόμενο που προστίθεται σε αυτόν το φάκελο θα ληφθεί αυτόματα στη συσκευή.", + "AutomaticallyConvertNewContent": "Αυτόματη μετατροπή νέου περιεχομένου", + "AutomaticallyConvertNewContentHelp": "Το νέο περιεχόμενο που προστίθεται σε αυτόν το φάκελο θα μετατραπεί αυτόματα.", + "LabelItemLimit": "Όριο στοιχείου:", + "ConvertItemLimitHelp": "Προαιρετικό. Ορίστε ένα όριο στον αριθμό των στοιχείων που θα μετατραπούν.", + "DownloadItemLimitHelp": "Προαιρετικό. Ορίστε ένα όριο στον αριθμό των στοιχείων που θα ληφθούν.", + "PleaseSelectDeviceToSyncTo": "Παρακαλώ επιλέξτε μια συσκευή για την οποία θέλετε να κάνετε λήψη.", + "Screenshots": "Στιγμιότυπα οθόνης", + "MoveRight": "Μετακίνηση δεξιά", + "MoveLeft": "Μετακίνηση αριστερά", + "HeaderUploadNewImage": "Μεταφόρτωση Νέας Εικόνας", + "HeaderDeleteImage": "Διαγραφή Εικόνας", + "ConfirmDeleteImage": "Διαγραφή εικόνας;", + "HeaderEditImages": "Επεξεργασία εικόνων", + "Settings": "Ρυθμίσεις", + "ShowIndicatorsFor": "Εμφάνιση Δεικτών", + "Episodes": "Επεισόδια", + "Programs": "Προγράμματα", + "HeaderCastCrew": "Ηθοποιοί & Συντελεστές", + "DvrSubscriptionRequired": "Το Emby Live TV & DVR απαιτεί μια ενεργή συνδρομή {0} Emby Premiere {1}.", + "HeaderCancelRecording": "Ακύρωση Εγγραφής", + "HeaderKeepRecording": "Διατήρηση ΅Εγγραφής", + "HeaderCancelSeries": "Ακύρωση Σειράς", + "HeaderKeepSeries": "Διατήρηση Σειράς", + "HeaderLearnMore": "Μάθετε Περισσότερα", + "SeriesSettings": "Ρυθμίσεις Σειράς", + "HeaderRecordingOptions": "Επιλογές Εγγραφής", + "HeaderDoNotRecord": "Να μην γίνει εγγραφή", + "HeaderSeriesOptions": "Επιλογές Σειράς", + "Layout": "Εμφάνιση", + "Channels": "Κανάλια", + "ChannelNameOnly": "Μόνο το κανάλι {0}", + "Anytime": "Οποτεδήποτε", + "AnyLanguage": "Οποιαδήποτε γλώσσα", + "AroundTime": "Γύρω από το {0}", + "HeaderLatestMovies": "Τελευταίες ταινίες", + "All": "Όλα", + "Stop": "Διακοπή", + "AllChannels": "Όλα τα κανάλια", + "NewEpisodesOnly": "Μόνο νέα επεισόδια", + "AllEpisodes": "Όλα τα επεισόδια", + "LabelStartWhenPossible": "Έναρξη όταν είναι δυνατόν:", + "LabelStopWhenPossible": "Διακοπή όταν είναι δυνατόν:", + "MinutesBefore": "λεπτά πριν", + "MinutesAfter": "λεπτά μετά", + "SkipEpisodesAlreadyInMyLibrary": "Να μην γίνεται εγγραφή επεισοδίων που βρίσκονται ήδη στη βιβλιοθήκη μου", + "SkipEpisodesAlreadyInMyLibraryHelp": "Τα επεισόδια θα συγκριθούν με τους αριθμούς κύκλου και επεισοδίων, όταν είναι διαθέσιμοι.", + "LabelKeepUpTo": "Διατήρηση μέχρι:", + "AsManyAsPossible": "Όσο το δυνατόν περισσότερα", + "DefaultErrorMessage": "Παρουσιάστηκε σφάλμα κατά την επεξεργασία του αιτήματος. Παρακαλώ προσπαθήστε ξανά αργότερα.", + "UntilIDelete": "Μέχρι να το διαγράψω", + "UntilSpaceNeeded": "Μέχρι να χρειαστεί χώρος", + "Categories": "Κατηγορίες", + "Sports": "Αθλητικά", + "News": "Ειδήσεις", + "Movies": "Ταινίες", + "Music": "Μουσική", + "Kids": "Παιδικά", + "MoreFromValue": "Περισσότερα από {0}", + "DiedValue": "Πέθανε: {0}", + "BornValue": "Γεννήθηκε: {0}", + "EnableColorCodedBackgrounds": "Ενεργοποίηση χρωματικών φόντων (backgrounds) στις σειρές, βασισμένων στην κατηγορία τους", + "SortChannelsBy": "Ταξινόμηση Καναλιών κατά:", + "ChannelNumber": "Αριθμός Καναλιού", + "HeaderBenefitsEmbyPremiere": "Οφέλη από το Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Απολαύστε ένα λεπτό αναπαραγωγής. Σας ευχαριστούμε που δοκιμάσατε το Emby.", + "HeaderTryPlayback": "Δοκιμάστε την αναπαραγωγή", + "HowDidYouPay": "Πώς πληρώσατε;", + "IHaveEmbyPremiere": "Έχω Emby Premiere", + "IPurchasedThisApp": "Αγόρασα αυτήν την εφαρμογή", + "ButtonRestorePreviousPurchase": "Επαναφορά Αγοράς", + "ButtonUnlockWithPurchase": "Ξεκλείδωμα με Αγορά", + "ButtonUnlockPrice": "Ξεκλείδωμα {0}", + "EmbyPremiereMonthlyWithPrice": "Μηνιαίο Emby Premiere {0}", + "HeaderAlreadyPaid": "Έχετε ήδη πληρώσει;", + "ButtonPlayOneMinute": "Αναπαραγωγή για ένα λεπτό", + "PlaceFavoriteChannelsAtBeginning": "Τοποθέτηση των αγαπημένων καναλιών στην αρχή", + "HeaderUnlockFeature": "Ξεκλείδωμα λειτουργίας", + "MessageDidYouKnowCinemaMode": "Γνωρίζατε ότι με το Emby Premiere, μπορείτε να βελτιώσετε την εμπειρία σας με λειτουργίες όπως τα Intros Κινηματογράφου;", + "HeaderPlayMyMedia": "Αναπαραγωγή των πολυμέσων μου", + "HeaderDiscoverEmbyPremiere": "Ανακαλύψτε το Emby Premiere", + "HeaderNowPlaying": "Παίζουν τώρα", + "Items": "Στοιχεία", + "AppName": "Όνομα Εφαρμογής", + "OneChannel": "Ένα κανάλι", + "ConfirmRemoveDownload": "Κατάργηση λήψης;", + "ConfirmRemoveItem": "Αφαίρεση αντικειμένου;", + "RemoveDownload": "Κατάργηση Λήψης", + "ConfirmCancelConversion": "Ακύρωση μετατροπής;", + "CancelConversion": "Ακύρωση Μετατροπής", + "KeepDownload": "Διατήρηση λήψης", + "AddedOnValue": "Προστέθηκαν {0}", + "RemovingFromDevice": "Κατάργηση από τη συσκευή", + "KeepOnDevice": "Διατήρηση στη συσκευή", + "CancelDownload": "Ακύρωση λήψης", + "SyncJobItemStatusReadyToTransfer": "Έτοιμο για μεταφορά", + "SyncJobItemStatusSyncedMarkForRemoval": "Καταργείται από τη συσκευή", + "SyncJobItemStatusQueued": "Προστέθηκε στην ουρά", + "SyncJobItemStatusConverting": "Γίνεται μετατροπή", + "SyncJobItemStatusTransferring": "Γίνεται μεταφορά", + "SyncJobItemStatusSynced": "Έγινε λήψη", + "Failed": "Απέτυχε", + "SyncJobItemStatusRemovedFromDevice": "Καταργήθηκε από τη συσκευή", + "Cancelled": "Ακυρώθηκε", + "Retry": "Επανάληψη", + "Continue": "Συνέχεια", + "ContinueInSecondsValue": "Συνεχίστε σε {0} δευτερόλεπτα.", + "HeaderRemoteControl": "Τηλεχειριστήριο", + "Disconnect": "Αποσύνδεση", + "EnableDisplayMirroring": "Ενεργοποίηση κατοπτρισμού οθόνης", + "RemoteAccess": "Απομακρυσμένη Πρόσβαση", + "HeaderPlayOn": "Αναπαραγωγή σε", + "Quality": "Ποιότητα", + "Auto": "Αυτόματο", + "AndroidUnlockRestoreHelp": "Για να επαναφέρετε την προηγούμενη αγορά σας, βεβαιωθείτε ότι έχετε συνδεθεί στη συσκευή με τον ίδιο λογαριασμό Google (ή Amazon) που πραγματοποιήσατε αρχικά την αγορά. Βεβαιωθείτε ότι το κατάστημα εφαρμογών (app store) είναι ενεργοποιημένο και δεν περιορίζεται από κανένα γονικό έλεγχο και βεβαιωθείτε ότι έχετε ενεργή σύνδεση στο διαδίκτυο. Θα χρειαστεί να το κάνετε μόνο μία φορά για να επαναφέρετε την προηγούμενη αγορά σας.", + "HeaderAspectRatio": "Αναλογία Διαστάσεων", + "Original": "Πρωτότυπο (Original)", + "Fill": "Γέμισμα (Fill)", + "Cover": "Εξώφυλλο", + "MessageNoServersAvailableToConnect": "Δεν υπάρχουν διαθέσιμοι διακομιστές για σύνδεση. Αν έχετε προσκληθεί να μοιραστείτε ένα διακομιστή, φροντίστε να το αποδεχτείτε παρακάτω ή κάνοντας κλικ στο σύνδεσμο στο μήνυμα ηλεκτρονικού ταχυδρομείου.", + "MessagePlayAccessRestricted": "Η αναπαραγωγή αυτού του περιεχομένου είναι περιορισμένη αυτήν τη στιγμή. Για περισσότερες πληροφορίες, επικοινωνήστε με το διαχειριστή του διακομιστή Emby.", + "Accept": "Αποδοχή", + "Reject": "Απόρριψη", + "Connect": "Σύνδεση", + "HeaderMyMedia": "Τα πολυμέσα μου", + "HeaderMyMediaSmall": "Τα Πολυμέσα μου (μικρά)", + "LatestFromLibrary": "Τελευταία {0}", + "HeaderLatestEpisodes": "Τελευταία επεισόδια", + "ContinuePlaying": "Συνέχιση αναπαραγωγής", + "ContinueWatching": "Συνέχιση παρακολούθησης", + "HeaderLatestChannelMedia": "Τελευταία στοιχεία καναλιού", + "HeaderContinueWatching": "Συνέχιση Παρακολούθησης", + "HeaderContinueListening": "Συνέχιση Ακρόασης", + "HeaderActiveRecordings": "Ενεργές εγγραφές", + "HeaderLatestRecordings": "Τελευταίες εγγραφές", + "LabelConvertTo": "Μετατροπή σε:", + "LabelDownloadTo": "Λήψη στο:", + "HeaderDownloadToDots": "Λήψη στο...", + "Next": "Επόμενο", + "LabelSource": "Πηγή:", + "VersionNumber": "Έκδοση {0}", + "HeaderAllLanguages": "Όλες οι γλώσσες", + "Previous": "Προηγούμενο", + "HeaderNextUp": "Επόμενα για αναπαραγωγή", + "HeaderPlayNextUp": "Αναπαραγωγή Επόμενου", + "HeaderLatestFrom": "Τελευταία από {0}", + "LabelHomeScreenSectionValue": "Ενότητα αρχικής οθόνης {0}:", + "PasswordResetComplete": "Έγινε επαναφορά του κωδικού πρόσβασης.", + "PasswordSaved": "Ο κωδικός πρόσβασης αποθηκεύτηκε.", + "SettingsSaved": "Οι ρυθμίσεις αποθηκεύτηκαν.", + "Upcoming": "Επερχόμενα", + "HeaderSelectImageFile": "Επιλογή Αρχείου Εικόνας", + "None": "Κανένα", + "More": "Περισσότερα ", + "Up": "Επάνω", + "Down": "Κάτω", + "Home": "Αρχική", + "Back": "Πίσω", + "Random": "Τυχαίο", + "Playback": "Αναπαραγωγή", + "Favorites": "Αγαπημένα", + "HeaderHomeScreen": "Αρχική οθόνη", + "HeaderLatestChannelItems": "Τελευταία στοιχεία καναλιού", + "HeaderLibraryOrder": "Σειρά βιβλιοθήκης", + "HeaderOnNow": "Τώρα", + "HeaderForKids": "Για τα παιδιά", + "HeaderPlaybackError": "Σφάλμα αναπαραγωγής", + "PlaybackErrorNotAllowed": "Αυτή τη στιγμή δεν έχετε εξουσιοδότηση για την αναπαραγωγή αυτού του περιεχομένου. Για λεπτομέρειες, επικοινωνήστε με το διαχειριστή του συστήματός σας.", + "RateLimitExceeded": "Ο λογαριασμός σας υπερέβει το μέγιστο όριο streaming που έχει οριστεί από το διαχειριστή του διακομιστή Emby. Παρακαλώ επικοινωνήστε μαζί του για βοήθεια.", + "PlaybackErrorNoCompatibleStream": "Δεν υπάρχουν διαθέσιμες συμβατές ροές αυτήν τη στιγμή. Προσπαθήστε ξανά αργότερα ή επικοινωνήστε με το διαχειριστή του συστήματός σας για λεπτομέρειες.", + "PlaybackErrorPlaceHolder": "Τοποθετήστε το δίσκο για να γίνει αναπαραγωγή αυτού του βίντεο.", + "PlaybackErrorNoPlayableItems": "Δεν βρέθηκαν αντικείμενα που να μπορούν να αναπαραχθούν. Μήπως προσπαθείτε να αναπαράγετε αντικείμενα από έναν άδειο φάκελο;", + "Guide": "Οδηγός", + "Games": "Παιχνίδια", + "GameSystem": "Σύστημα Παιχνιδιού", + "Suggestions": "Προτάσεις", + "HeaderFavoriteChannels": "Αγαπημένα Κανάλια", + "HeaderFavoriteCollections": "Αγαπημένες συλλογές", + "HeaderFavoritePlaylists": "Αγαπημένες λίστες αναπαραγωγής", + "Collection": "Συλλογή", + "Collections": "Συλλογές", + "LabelSelectFolderGroups": "Αυτόματη ομαδοποίηση περιεχομένου από τους ακόλουθους φακέλους σε προβολές όπως ταινίες, μουσική και τηλεόραση:", + "LabelSelectFolderGroupsHelp": "Οι φάκελοι που δεν έχουν επιλεγεί θα εμφανίζονται από μόνοι τους στη δική τους προβολή.", + "Mute": "Σίγαση", + "Unmute": "Κατάργηση σίγασης", + "Folder": "Φάκελος", + "Folders": "Φάκελοι", + "FileName": "Όνομα Αρχείου", + "DisplayInOtherHomeScreenSections": "Εμφάνιση στα δευτερεύοντα τμήματα της αρχικής οθόνης, όπως τα πρόσφατα πολυμέσα και το συνεχίστε να παρακολουθείτε", + "DisplayInMyMedia": "Εμφάνιση στην αρχική οθόνη", + "Shows": "Σειρές", + "MoviesAndShows": "Ταινίες & Σειρές", + "HeaderMusicVideo": "Μουσικό Βίντεο", + "HeaderMusicVideos": "Μουσικά Βίντεο", + "MusicVideos": "Μουσικά βίντεο", + "Videos": "Βίντεο", + "MixedContent": "Μεικτό περιεχόμενο", + "HomeVideos": "Προσωπικά βίντεο", + "HomeVideosAndPhotos": "Προσωπικά βίντεο & φωτογραφίες", + "TVShows": "Τηλεοπτικές σειρές", + "HeaderLibraryFolders": "Φάκελοι βιβλιοθήκης", + "HeaderTermsOfPurchase": "Όροι αγοράς", + "PrivacyPolicy": "Πολιτική απορρήτου", + "TermsOfUse": "Όροι χρήσης", + "HeaderRepeatMode": "Λειτουργία Επανάληψης", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Επανάληψη ενός", + "RepeatAll": "Επανάληψη όλων", + "LabelDefaultScreen": "Προεπιλεγμένη οθόνη:", + "ConfirmEndPlayerSession": "Θέλετε να τερματίσετε τον Emby στο {0};", + "Yesterday": "Εχθές", + "Yes": "Ναι", + "No": "Όχι", + "HeaderScanLibraryFiles": "Σάρωση Αρχείων Βιβλιοθήκης", + "LiveTV": "Ζωντανή τηλεόραση", + "Schedule": "Πρόγραμμα", + "Recordings": "Εγγραφές", + "ScanForNewAndUpdatedFiles": "Σάρωση για νέα και ενημερωμένα αρχεία", + "NewVersionOfXAvailableForY": "{0} είναι Διαθέσιμη για {1}", + "DirectStreamHelp1": "Το πολυμέσο είναι συμβατό με τη συσκευή σε σχέση με την ανάλυση και τον τύπο πολυμέσου (H.264, AC3 κ.λπ.), αλλά βρίσκεται σε μη συμβατό περιέκτη αρχείων (container) (.mkv, .avi, .wmv, κ.λπ.). Το βίντεο θα συσκευαστεί (re-packaged) εκ νέου, πριν μεταφερθεί (streaming) στη συσκευή.", + "DirectStreamHelp2": "Η άμεση ροή (direct streaming) ενός αρχείου χρησιμοποιεί πολύ λίγη επεξεργαστική ισχύ χωρίς καμία απώλεια στην ποιότητα του βίντεο.", + "MediaIsBeingConverted": "Το μέσο μετατρέπεται σε μορφή που είναι συμβατή με τη συσκευή που αναπαράγει το μέσο.", + "StatsForNerds": "Στατιστικά για σπασίκλες", + "HeaderHardwareAcceleratedDecoding": "Αποκωδικοποίηση με Επιτάχυνση Υλικού", + "HeaderHardwareAcceleratedEncoding": "Κωδικοποίηση με Επιτάχυνση Υλικού", + "HeaderDirectPlay": "Απευθείας Αναπαραγωγή", + "DirectPlaying": "Απευθείας αναπαραγωγή (direct playing)", + "DirectStreaming": "Άμεση ροή (direct streaming)", + "Transcode": "Transcode", + "Transcoding": "Διακωδικοποίηση (transcoding)", + "ContainerBitrateExceedsLimit": "Μείωση του ρυθμού μετάδοσης πολυμέσου (bitrate) λόγω ρύθμισης ποιότητας", + "VideoCodecNotSupported": "Μετατροπή του βίντεο σε συμβατό κωδικοποιητή (codec)", + "AudioCodecNotSupported": "Μετατροπή του ήχου σε συμβατό κωδικοποιητή (codec)", + "SubtitleCodecNotSupported": "Μετατροπή των υποτίτλων απευθείας στο βίντεο", + "DirectPlayError": "Ανάκτηση από σφάλμα αναπαραγωγής", + "ContainerNotSupported": "Μετατροπή σε συμβατό τύπο αρχείου (container)", + "VideoLevelNotSupported": "Μετατροπή σε συμβατό επίπεδο βίντεο", + "AudioBitrateNotSupported": "Μετατροπή σε συμβατό ρυθμό bit ήχου (audio bitrate)", + "AudioChannelsNotSupported": "Μετατροπή σε συμβατό αριθμό καναλιών ήχου (audio channels)", + "VideoResolutionNotSupported": "Μετατροπή σε συμβατή ανάλυση βίντεο", + "AudioProfileNotSupported": "Μετατροπή σε συμβατό προφίλ ήχου", + "AudioSampleRateNotSupported": "Μετατροπή σε συμβατό ρυθμό δειγματοληψίας ήχου (audio sample rate)", + "AnamorphicVideoNotSupported": "Το αναμορφικό βίντεο (anamorphic video) δεν υποστηρίζεται", + "InterlacedVideoNotSupported": "Απελευθέρωση από την αλληλοκατάραξη του βίντεο", + "SecondaryAudioNotSupported": "Επιλογή δευτερεύοντος ήχου", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "Παρουσιάστηκε σφάλμα κατά την κατάργηση του λογαριασμού Emby Connect. Βεβαιωθείτε ότι έχετε ενεργή σύνδεση στο internet και προσπαθήστε ξανά.", + "HeaderEmbyAccountRemoved": "Ο λογαριασμός Emby καταργήθηκε", + "MessageEmbyAccontRemoved": "Ο λογαριασμός Emby καταργήθηκε από αυτόν τον χρήστη.", + "HeaderInvitationSent": "Η πρόσκληση εστάλη", + "Offline": "Εκτός Σύνδεσης", + "HeaderSignUp": "Εγγραφή", + "ServerDownloadMessage": "Για λήψη και εγκατάσταση του δωρεάν Διακομιστή Emby επισκεφτείτε το {0}", + "ServerDownloadMessageWithoutLink": "Για να κατεβάσετε και να εγκαταστήσετε το δωρεάν διακομιστή Emby επισκεφθείτε την ιστοσελίδα Emby.", + "MessageInvitationSentToUser": "Έγινε αποστολή ενός μηνύματος ηλεκτρονικού ταχυδρομείου στο {0}, καλώντας τους να αποδεχθούν την πρόσκληση σας για κοινή χρήση.", + "MessageInvitationSentToNewUser": "Έγινε αποστολή ενός μηνύματος ηλεκτρονικού ταχυδρομείου στο {0}, καλώντας τους να εγγραφούν στο Emby.", + "GuestUserNotFound": "Ο χρήστης δεν βρέθηκε. Βεβαιωθείτε ότι το όνομα είναι σωστό και δοκιμάστε ξανά ή δοκιμάστε να εισαγάγετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου τους.", + "ErrorReachingEmbyConnect": "Παρουσιάστηκε ένα σφάλμα στο διακομιστή Emby Connect. Βεβαιωθείτε ότι έχετε μια ενεργή σύνδεση στο Internet και προσπαθήστε ξανά.", + "ErrorAddingEmbyConnectAccount1": "Παρουσιάστηκε ένα σφάλμα κατά την προσθήκη του λογαριασμού Emby Connect. Έχετε δημιουργήσει έναν λογαριασμό Emby; Εγγραφείτε στο {0}.", + "ErrorAddingEmbyConnectAccount2": "Εάν εξακολουθείτε να αντιμετωπίζετε κάποιο πρόβλημα, παρακαλώ στείλτε ένα μήνυμα ηλεκτρονικού ταχυδρομείου στο {0} από τη διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποιείται με το λογαριασμό Emby.", + "ErrorAddingGuestAccount1": "Παρουσιάστηκε ένα σφάλμα κατά την προσθήκη του λογαριασμού Emby Connect. Έχει ο φιλοξενούμενος σας δημιουργήσει έναν λογαριασμό Emby; Μπορούν να εγγραφούν στο {0}.", + "ErrorAddingGuestAccount2": "Εάν εξακολουθείτε να αντιμετωπίζετε κάποιο πρόβλημα, παρακαλώ στείλτε ένα μήνυμα ηλεκτρονικού ταχυδρομείου στο {0} και συμπεριλάβετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου σας καθώς και τη δική τους.", + "MessageEmbyAccountAdded": "Ο λογαριασμός Emby έχει προστεθεί σε αυτόν τον χρήστη.", + "MessagePendingEmbyAccountAdded": "Ο λογαριασμός Emby έχει προστεθεί σε αυτόν τον χρήστη. Θα σταλεί ένα μήνυμα ηλεκτρονικού ταχυδρομείου στον κάτοχο του λογαριασμού. Η πρόσκληση θα πρέπει να επιβεβαιωθεί κάνοντας κλικ σε ένα σύνδεσμο μέσα στο email.", + "HeaderEmbyAccountAdded": "Ο λογαριασμός Emby προστέθηκε", + "Skip": "Παράλειψη", + "HeaderAdditionalParts": "Πρόσθετα μέρη", + "ButtonGenerateNewPin": "Δημιουργία νέου Pin", + "ConnectLoginHelp1": "Με το Emby Connect μπορείτε εύκολα να έχετε πρόσβαση στον διακομιστής σας Emby όπου και αν βρίσκεστε και να μοιράζεστε διακομιστές με την οικογένεια και τους φίλους σας.", + "CreatePinErrorMessage": "Παρουσιάστηκε σφάλμα κατά τη δημιουργία κωδικού pin. Κάντε κλικ στην επιλογή Δημιουργία Νέου Pin για να προσπαθήσετε ξανά.", + "PinExpiredMessage": "Ο κωδικός pin έχει λήξει. Κάντε κλικ στην επιλογή Δημιουργία Νέου Pin για να προσπαθήσετε ξανά.", + "ConnectPinCodeHeader": "Για να συνδεθείτε με το Emby Connect, χρησιμοποιήστε μια κινητή συσκευή ή έναν υπολογιστή για να επισκεφτείτε το {0} και πληκτρολογήστε τον ακόλουθο κωδικό pin:", + "LabelSubtitlePlaybackMode": "Λειτουργία υπότιτλων:", + "ErrorDeletingItem": "Παρουσιάστηκε σφάλμα κατά τη διαγραφή του στοιχείου από τον διακομιστή Emby. Βεβαιωθείτε ότι ο διακομιστής Emby έχει πρόσβαση εγγραφής (write access) στο φάκελο πολυμέσων και προσπαθήστε ξανά.", + "NoSubtitles": "Χωρίς υπότιτλους", + "Default": "Προεπιλογή", + "Absolute": "Απόλυτο", + "Smart": "Έξυπνο", + "Small": "Μικρό", + "Smaller": "Μικρότερο", + "Medium": "Μεσαίο", + "Large": "Μεγάλο", + "Larger": "Μεγαλύτερα", + "ExtraLarge": "Πολύ μεγάλο", + "ExtraSmall": "Πολύ μικρά", + "Forced": "Αναγκαστικοί", + "External": "Εξωτερικό", + "HeaderEmbeddedTitle": "Ενσωματωμένος Τίτλος", + "OnlyForcedSubtitles": "Μόνο αναγκαστικοί υπότιτλοι", + "AlwaysPlaySubtitles": "Να γίνεται πάντα αναπαραγωγή υπότιτλων", + "DefaultSubtitlesHelp": "Οι υπότιτλοι φορτώνονται με βάση τις προεπιλεγμένες και αναγκαστικές σημαίες στα ενσωματωμένα μεταδεδομένα. Οι προτιμήσεις γλώσσας εξετάζονται όταν υπάρχουν διαθέσιμες πολλές επιλογές.", + "SmartSubtitlesHelp": "Οι υπότιτλοι που ταιριάζουν με την προτίμηση γλώσσας θα φορτωθούν όταν ο ήχος είναι σε ξένη γλώσσα.", + "HeaderSubtitleSettings": "Ρυθμίσεις υπότιτλων", + "HeaderSubtitleAppearance": "Εμφάνιση υπότιτλων", + "OnlyForcedSubtitlesHelp": "Θα φορτωθούν μόνο οι υπότιτλοι που έχουν επισημανθεί ως αναγκαστικοί.", + "AutoSelectHearingImpairedHelp": "Οι υπότιτλοι που ταιριάζουν με την προτίμηση γλώσσας θα φορτώνονται, με προτεραιότητα να δίνεται σε υπότιτλους που έχουν σημειωθεί πως είναι για άτομα με προβλήματα ακοής (SDH).", + "AlwaysPlaySubtitlesHelp": "Οι υπότιτλοι που ταιριάζουν με την προτίμηση γλώσσας θα φορτωθούν ανεξάρτητα από τη γλώσσα ήχου.", + "NoSubtitlesHelp": "Οι υπότιτλοι δεν θα φορτωθούν από προεπιλογή.Μπορούν όμως να ενεργοποιηθούν χειροκίνητα κατά την αναπαραγωγή.", + "LabelPreferredSubtitleLanguage": "Προτιμώμενη γλώσσα υπότιτλων:", + "LabelTextSize": "Μέγεθος κειμένου:", + "TheseSettingsAffectSubtitlesOnThisDevice": "Αυτές οι ρυθμίσεις επηρεάζουν τους υπότιτλους αυτής της συσκευής", + "LabelDropShadow": "Σκίαση:", + "LabelTextBackgroundColor": "Χρώμα φόντου κειμένου:", + "LabelWindowBackgroundColor": "Χρώμα φόντου κειμένου:", + "LabelFont": "Γραμματοσειρά:", + "LabelTextColor": "Χρώμα κειμένου:", + "LabelBackgroundColor": "Χρώμα φόντου:", + "LabelBackgroundOpacity": "Αδιαφάνεια φόντου:", + "Raised": "Αυξήθηκε", + "Depressed": "Μειώθηκε", + "Uniform": "Ομοιόμορφος", + "DropShadow": "Σκίαση", + "SmallCaps": "Μικρά κεφαλαία", + "SubtitleAppearanceSettingsDisclaimer": "Αυτές οι ρυθμίσεις δεν θα ισχύουν για γραφικούς υποτίτλους (PGS, DVD, κ.λπ.) ή για υπότιτλους που έχουν ενσωματωμένο το δικό τους στυλ (ASS/SSA).", + "Normal": "Κανονικός", + "HeaderWaitingForWifi": "Αναμονή για Wifi", + "WifiRequiredToDownload": "Για να συνεχίσετε τη λήψη, απαιτείται σύνδεση Wifi.", + "DownloadOnlyOnWifi": "Λήψη μόνο σε Wifi", + "LabelMusicDownloadQuality": "Ποιότητα λήψης μουσικής:", + "MusicDownloadQualityHelp": "Τα αρχεία ήχου με υψηλότερο bitrate θα μετατρέπονται από τον διακομιστή Emby. Επιλέξτε υψηλότερη τιμή για καλύτερη ποιότητα ή χαμηλότερη τιμή για τη διατήρηση του τοπικού χώρου αποθήκευσης.", + "HeaderDownloadSettings": "Ρυθμίσεις λήψης", + "LabelDownloadLocation": "Θέση λήψης:", + "BrowseForFolder": "Αναζήτηση φακέλου", + "Unlimited": "Απεριόριστη", + "NoLimit": "Χωρίς Όριο", + "Hide": "Απόκρυψη", + "HeaderKeepWatching": "Συνέχιση Προβολής", + "HeaderNextEpisode": "Επόμενο Επεισόδιο", + "AudioBitDepthNotSupported": "Μετατροπή σε συμβατό βάθος ψηφίων ήχου (audio bit depth)", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Μετατροπή σε συμβατό προφίλ βίντεο", + "VideoFramerateNotSupported": "Μετατροπή σε συμβατό ρυθμό καρέ βίντεο (video framerate)", + "VideoBitDepthNotSupported": "Μετατροπή σε συμβατό βάθος bit βίντεο (video bit depth)", + "RefFramesNotSupported": "Μετατροπή σε συμβατό αριθμό πλαισίων αναφοράς βίντεο (video reference frames)", + "ErrorConnectServerUnreachable": "Παρουσιάστηκε σφάλμα κατά την εκτέλεση της ζητούμενης ενέργειας. Ο διακομιστής σας δεν μπορεί να επικοινωνήσει με το διακομιστή μας Emby Connect στο {0}. Παρακαλώ βεβαιωθείτε ότι ο διακομιστής σας διαθέτει ενεργή σύνδεση στο internet και ότι οι επικοινωνίες επιτρέπονται από οποιοδήποτε τείχος προστασίας ή λογισμικό ασφαλείας που έχετε εγκαταστήσει.", + "HeaderStopRecording": "Διακοπή Εγγραφής", + "ManageRecording": "Διαχείριση εγγραφής", + "LabelDropImageHere": "Σύρετε μια εικόνα εδώ ή κάντε κλικ για να επιλέξετε μια εικόνα και να την ανεβάσετε.", + "MessageFileReadError": "Παρουσιάστηκε σφάλμα κατά την ανάγνωση του αρχείου. Παρακαλώ προσπαθήστε ξανά.", + "Browse": "Αναζήτηση", + "HeaderUploadImage": "Μεταφόρτωση (upload) εικόνας", + "HeaderAddUpdateImage": "Προσθήκη/ενημέρωση εικόνας", + "HeaderShowFields": "Προβολή Πεδίων", + "LabelView": "Προβολή:", + "LabelImageType": "Τύπος εικόνας:", + "Upload": "Μεταφόρτωση (upload)", + "Primary": "Kύρια", + "PrimaryImageBlur": "Θόλωμα πρωτεύουσας εικόνας", + "Art": "Γραφικά (art)", + "Backdrop": "Φόντο", + "Banner": "Πανό", + "Box": "Κουτί", + "BoxRear": "Κουτί (πίσω)", + "Disc": "Δίσκος", + "Logo": "Λογότυπο", + "LogoDark": "Λογότυπο (Σκοτεινή Έκδοση)", + "LogoLight": "Λογότυπο (Φωτεινή Έκδοση)", + "LogoLightColor": "Λογότυπο (Φωτεινό με Χρώμα)", + "Menu": "Μενού", + "Screenshot": "Στιγμιότυπο ", + "Thumb": "Μικρογραφία", + "HeaderAudioSettings": "Ρυθμίσεις ήχου", + "LabelAudioLanguagePreference": "Προτιμώμενη γλώσσα ήχου:", + "LabelPlayDefaultAudioTrack": "Αναπαραγωγή προεπιλεγμένου κομματιού ήχου ανεξάρτητα από τη γλώσσα", + "HeaderVideoQuality": "Ποιότητα βίντεο", + "CinemaModeConfigurationHelp": "Τα Cinema Intros φέρνουν την εμπειρία του κινηματογράφου απευθείας στο καθιστικό σας, με τη δυνατότητα αναπαραγωγής τρέιλερ και προσαρμοσμένων Intros πριν από την ταινία.", + "ShowUpNextPreview": "Προβολή Προεπισκόπησης του Επόμενου", + "ShowUpNextPreviewHelp": "Προβολή πληροφοριών του επόμενου αντικειμένου λίγο πριν το τέλος του τρέχοντος.", + "PlayNextEpisodeAutomatically": "Αυτόματη αναπαραγωγή επόμενου επεισοδίου", + "LabelMaxChromecastBitrate": "Ποιότητα ροής (streaming) Chromecast:", + "LabelSkipBackLength": "Μετάβαση πίσω:", + "LabelSkipForwardLength": "Μετάβαση προς τα εμπρός:", + "EnableCinemaMode": "Ενεργοποίηση Intros Κινηματογράφου", + "LabelInternetQuality": "Ποιότητα internet:", + "LabelCellularQuality": "Απομακρυσμένη ποιότητα streaming (δίκτυο κινητής)", + "HeaderMusicQuality": "Ποιότητα μουσικής", + "LabelHomeNetworkQuality": "Ποιότητα οικιακού δικτύου:", + "HeaderLatestMedia": "Τελευταία Πολυμέσα", + "HeaderRestartingEmbyServer": "Επανεκκίνηση του διακομιστή Emby", + "RestartPleaseWaitMessage": "Παρακαλώ περιμένετε μέχρι να τερματιστεί η λειτουργία του διακομιστή Emby και να γίνει επανεκκίνηση. Αυτό μπορεί να πάρει ένα ή δύο λεπτά.", + "HeaderPlayNext": "Αναπαραγωγή Επόμενου", + "AutoBasedOnLanguageSetting": "Αυτόματα (με βάση τη ρύθμιση της συσκευής)", + "SameAsMainTheme": "Ίδιο με το κυρίως θέμα", + "LabelDateTimeLocale": "Ημερομηνία τοπική ώρα:", + "Genre": "Είδος", + "DirectorValue": "Σκηνοθέτης: {0}", + "DirectorsValue": "Σκηνοθέτες: {0}", + "GenreValue": "Είδος: {0}", + "GenresValue": "Είδη: {0}", + "TagsValue": "Ετικέτες: {0}", + "Off": "Κλειστό", + "Title": "Τίτλος", + "Year": "Έτος", + "Filter": "Φίλτρο", + "Filters": "Φίλτρα", + "Unplayed": "Δεν παίχθηκε", + "LabelTVHomeScreen": "Αρχική οθόνη λειτουργίας τηλεόρασης:", + "Horizontal": "Οριζόντια", + "Vertical": "Κάθετα", + "HeaderGroupBy": "Ομαδοποίηση Κατά", + "HeaderMediaType": "Τύπος Πολυμέσων", + "GroupBySeries": "Ομαδοποίηση κατά σειρά", + "HeaderVideoType": "Τύπος Βίντεο", + "HeaderSeriesStatus": "Κατάσταση Σειράς", + "Features": "Χαρακτηριστικά", + "Trailers": "Τρέιλερς", + "Extras": "Επιπλέον υλικό", + "ThemeSongs": "Θεματικά τραγούδια", + "ThemeVideos": "Θεματικά βίντεο", + "HeaderFavoriteMovies": "Αγαπημένες Ταινίες", + "HeaderFavoritePhotos": "Αγαπημένες Φωτογραφίες", + "HeaderFavoriteShows": "Αγαπημένες Σειρές", + "HeaderFavoriteEpisodes": "Αγαπημένα Επεισόδια", + "HeaderFavoriteVideos": "Αγαπημένα Βίντεο", + "HeaderFavoriteMusicVideos": "Αγαπημένα Μουσικά Βίντεο", + "HeaderFavoriteGames": "Αγαπημένα Παιχνίδια", + "HeaderFavoriteArtists": "Αγαπημένοι Καλλιτέχνες", + "HeaderFavoriteAlbums": "Αγαπημένα Άλμπουμ", + "HeaderFavoriteSongs": "Αγαπημένα Τραγούδια", + "HeaderFavoriteAuthors": "Αγαπημένοι Συγγραφείς", + "HeaderFavoriteAudioBooks": "Αγαπημένα Ηχητικά Βιβλία", + "Ascending": "Αύξουσα", + "Descending": "Φθίνουσα", + "HeaderColorPrimaries": "Πρωτεύοντα Χρώματα", + "HeaderColorSpace": "Χρωματική Παλέτα", + "HeaderColorTransfer": "Μεταφορά Χρώματος", + "HeaderVideoRange": "Εύρος Βίντεο", + "SeriesDisplayOrderHelp": "Ταξινόμηση επεισοδίων κατά ημερομηνία προβολής, σειράς DVD ή απόλυτη αρίθμηση.", + "LabelVerticalPositionFromBottom": "Κάθετη θέση (από κάτω):", + "HeaderFavoritePeople": "Αγαπημένα πρόσωπα", + "MultiSelect": "Πολλαπλή Επιλογή", + "HeaderSignOut": "Αποσύνδεση", + "HeaderSelectServer": "Επιλογή διακομιστή", + "HeaderChangeServer": "Αλλαγή Διακομιστή", + "HeaderChangeUser": "Αλλαγή Χρήστη", + "HeaderAppSettings": "Ρυθμίσεις Εφαρμογής", + "HeaderLoginSettings": "Ρυθμίσεις σύνδεσης", + "LabelRememberLogin": "Απομνημόνευση σύνδεσης:", + "LabelAutomaticallySignOut": "Αυτόματη αποσύνδεση:", + "BetaTesterMessage": "Σας ευχαριστούμε που είστε δοκιμαστής του Emby beta! Παρακαλούμε αφήστε τα σχόλιά σας στην περιοχή δοκιμών {0} της κοινότητας Emby {1}.", + "HardwareAccelerated": "Επιτάχυνση υλικού (hardware accelerated)", + "Software": "Λογισμικό", + "Metadata": "Μεταδεδομένα", + "HeaderMediaInfo": "Πληροφορίες Μέσου", + "Locked": "Κλειδωμένο", + "HeaderSplitVersionsApart": "Διαχωρισμός Εκδόσεων", + "Any": "Όλα", + "Admin": "Διαχειριστής", + "HeaderReadMore": "Περισσότερα", + "CustomRatingHelp": "Η προσαρμοσμένη αξιολόγηση χρησιμοποιείται για αξιολογήσεις γονικού ελέγχου αλλά δεν εμφανίζεται. Το πεδίο γονικής αξιολόγησης συνεχίζει και εμφανίζεται.", + "KeepUpToHelp": "Οι εγγραφές πάνω από το όριο διαγράφονται όταν ξεκινά η επόμενη εγγραφή. Οι παλαιότερες εγγραφές είναι αυτές που διαγράφονται πρώτα με κατάταξη την ημερομηνία προσθήκης.", + "NoItemsMatchingFound": "Δεν βρέθηκαν αντικείμενα που να ταιριάζουν με τα κριτήρια αναζήτησης.", + "TwoSearchCharsRequired": "Παρακαλώ εισάγετε τουλάχιστον δύο χαρακτήρες αναζήτησης.", + "PreventPlaybackContinuing": "Αποτροπή της επ' αόριστο συνεχόμενης αναπαραγωγής προτρέποντας απάντηση από το χρήστη.", + "PromptStillWatching": "Ενεργοποίηση προτροπής \"Παρακολουθείτε Ακόμα;\"", + "HeaderMissingMetadata": "Μεταδεδομένα που Λείπουν", + "HeaderIncludedIn": "Συμπεριλαμβάνονται στο", + "EmbyConnectUserAlreadyLinked": "Ο χρήστης Emby Connect είναι ήδη συνδεδεμένος με έναν άλλο χρήστη σε αυτό το διακομιστή.", + "VideoFilesWillBeConvertedTo": "Τα βίντεο που έχουν μετατραπεί θα αποθηκεύονται ως {0}.", + "VideoWillBeConvertedTo": "Τα stream βίντεο θα μετατρέπονται σε {0}, ή θα αντιγράφονται από το αρχικό αρχείο αν είναι ήδη {0} και η ποιότητα ταιριάζει με τις επιλογές μετατροπής.", + "VideoWillBeConvertedToOrCopied": "Τα stream βίντεο θα μετατρέπονται σε {0}, ή θα αντιγράφονται από το αρχικό αρχείο αν είναι κάτι από {1} και η ποιότητα ταιριάζει με τις επιλογές μετατροπής.", + "AudioWillBeConvertedTo": "Τα stream ήχου θα μετατρέπονται σε {0}, ή θα αντιγράφονται από το αρχικό αρχείο αν είναι ήδη {0} και η ποιότητα ταιριάζει με τις επιλογές μετατροπής.", + "AudioWillBeConvertedToOrCopied": "Τα stream ήχου θα μετατρέπονται σε {0}, ή θα αντιγράφονται από το αρχικό αρχείο αν είναι κάτι από {1} και η ποιότητα ταιριάζει με τις επιλογές μετατροπής.", + "HeaderSpecialKeys": "Ειδικά Κουμπιά", + "FollowingSpecialKeys": "Τα παρακάτω ειδικά κουμπιά υποστηρίζονται στα περισσότερα πληκτρολόγια και τηλεχειριστήρια:", + "HeaderDeleteSeries": "Διαγραφή Σειρών", + "HeaderDeleteLastPlayedEpisode": "Διαγραφή Τελευταίου Επεισοδίου που Αναπαράχθηκε", + "HeaderConnectingToServer": "Σύνδεση στο Διακομιστή", + "ServerNameValue": "Όνομα διακομιστή: {0}", + "DomainValue": "Τομέας: {0}", + "RatedValue": "Καταλληλότητα {0}", + "LocalServerRedirectMessage": "Τώρα θα μεταφερθείτε στον τομέα που έχει και λειτουργεί ο διαχειριστής του διακομιστή που επιλέξατε να συνδεθείτε:", + "AllMediaOwnedHosted": "Όλα τα πολυμέσα φιλοξενούνται και διαχειρίζονται από τον ιδιοκτήτη του {0}.", + "EnableResolutionSwitching": "Αντιστοίχιση ανάλυσης βίντεο", + "EnableResolutionSwitchingHelp": "Αυτό επιτρέπει στο Emby να αλλάξει την ανάλυση στην ίδια ανάλυση στην οποία ήταν κωδικοποιημένο το βίντεο, πριν να ξεκινήσει η αναπαραγωγή. Αυτό μπορεί να βοηθήσει ελαχιστοποιώντας τα κολλήματα/σπασίματα της εικόνας που αλλιώς θα βλέπατε όταν αναπαράγονται βίντεο που η αναλύσεις δεν ταιριάζουν ακριβώς με την αρχική.", + "EnableDisplayRefreshRateSwitching": "Ενεργοποίηση εναλλαγής ρυθμού ανανέωσης οθόνης", + "EnableDisplayRefreshRateSwitchingHelp": "Αυτό επιτρέπει στο Emby να αλλάξει το ρυθμό ανανέωσης της οθόνης στην ίδια τιμή (ή πολλαπλάσια αυτής) με τον αριθμό καρέ που κωδικοποιήθηκε το βίντεο, πριν την εκκίνηση της αναπαραγωγής του. Αυτό βοηθά στο να ελαχιστοποιηθεί το κόψιμο/τρεμόπαιγμα που ενδεχομένως να βλέπατε κατά την αναπαραγωγή των βίντεο όταν ο ρυθμός ανανέωσης δεν ταιριάζει ακριβώς.", + "RememberSelectedAudioTracks": "Απομνημόνευση των επιλογών κομματιών ήχου", + "RememberSelectedSubtitleTracks": "Απομνημόνευση των επιλογών αρχείων υπότιτλων", + "RememberSelectedSubtitleTracksHelp": "Οι επιλογές αρχείων υπότιτλων θα απομνημονεύονται ανά βίντεο και θα ξαναεφαρμόζονται όταν θα αναπαράγεται ξανά αυτό το βίντεο.", + "RememberSelectedAudioTracksHelp": "Οι επιλογές των κομματιών ήχου θα απομνημονεύονται ανά βίντεο και θα ξαναεφαρμόζονται όταν θα αναπαράγεται ξανά αυτό το βίντεο.", + "ClearSavedTrackSelections": "Εκκαθάριση αποθηκευμένων επιλογών κομματιών", + "HeaderClearTrackSelections": "Εκκαθάριση Αποθηκευμένων Επιλογών Κομματιών", + "QuestionClearSavedTracks": "Εκκαθάριση όλων των αποθηκευμένων επιλογών κομματιών;", + "LabelChannelTags": "Ετικέτες καναλιών:", + "AfterThisPlaysConfirmation": "Μόλις αυτό αναπαραχθεί, θέλετε να συνεχίσετε την αναπαραγωγή ή να γίνει εκκαθάριση της μουσικής που προηγουμένως προγραμματίσατε στην ουρά;", + "Keep": "Διατήρηση", + "Clear": "Εκκαθάριση", + "HeaderClearFilters": "Εκκαθάριση φίλτρων", + "HeaderSearchForImages": "Αναζήτηση για Εικόνες", + "HeaderSearchNewImage": "Αναζήτηση για Νέα Εικόνα", + "HeaderSearchForAnImage": "Αναζήτηση για μια Εικόνα", + "DragDropToReorder": "Μεταφορά και Απόθεση για Αναδιάταξη", + "HeaderAddImageFromUrl": "Προσθήκη Εικόνας από URL", + "HeaderSetImageFromUrl": "Ορισμός Εικόνας από URL", + "LabelUrl": "Url:", + "LabelChannelNumber": "Αριθμός καναλιού:", + "LabelGuideDataChannel": "Κανάλι με δεδομένα προγράμματος:", + "GuideDataSource": "Πηγή δεδομένων Οδηγού", + "HeaderCopyToClipboard": "Αντιγραφή στο Πρόχειρο", + "TimeRemainingValue": "{0} απομένουν", + "LabelResumeRewindSeconds": "Κατά τη συνέχιση πήγαινε αυτόματα πίσω:", + "ResumeRewindSecondsHelp": "Αυτό μπορεί να σας βοηθήσει να θυμάστε πού σταματήσατε. Ισχύει για την αρχική συνέχιση και όχι για κάθε ξεχωριστή παύση κατά τη διάρκεια της αναπαραγωγής.", + "HeaderSavePlayQueueToPlaylist": "Αποθήκευση Ουράς Αναπαραγωγής στη Λίστα Αναπαραγωγής", + "EnableLogoImagesAsTitle": "Προβολή εικόνων λογότυπων σαν τίτλοι στις οθόνες λεπτομερειών", + "EnableLogoImagesAsTitleHelp": "Όταν είναι διαθέσιμες, οι εικόνες λογότυπων μπορούν να χρησιμοποιηθούν στη θέση του κειμένου του τίτλου στα βίντεο, τις σειρές και σε άλλες οθόνες λεπτομερειών. Ο τίτλος θα έχει σαν εναλλακτική επιλογή το κείμενο όταν κάποια εικόνα λογότυπου δεν είναι διαθέσιμη.", + "LabelNowPlayingAudioBackgroundStyle": "Στυλ εμφάνισης παρασκηνίου του αναπαράγεται τώρα για τους ήχους", + "LabelNowPlayingVideoBackgroundStyle": "Στυλ εμφάνισης παρασκηνίου του αναπαράγεται τώρα για τα βίντεο", + "NowPlayingVideoBackgroundStyleHelp": "Καθορίζει το στυλ εμφάνισης παρασκηνίου όταν γίνεται απομακρυσμένος έλεγχος αναπαραγωγής βίντεο σε άλλη συσκευή", + "Rotation": "Περιστροφή", + "Minutes": "Λεπτά", + "LabelMaxRecordingLength": "Μέγιστη διάρκεια εγγραφής:", + "MaxRecordingLengthHelp": "Περιορίζει τις εγγραφές σε μια καθορισμένη διάρκεια, άσχετα από τη διάρκεια του προγράμματος. Βάλτε 0 για χωρίς όριο.", + "RemoteWAN": "Απομακρυσμένη (WAN) Διεύθυνση", + "HeaderLastConnectedTo": "Τελευταία Σύνδεση Στο", + "Version": "Έκδοση", + "Keyword": "Λέξη-κλειδί", + "HeaderServerAddress": "Διέυθυνση Διακομιστή", + "HeaderSkipIntro": "Παράλειψη Βί΄ντεο εισαγωγής", + "HeaderCreateRecording": "Δημιουργία Εγγραφής", + "HeaderAddRecording": "Προσθήκη Εγγραφής", + "HeaderChannelAndTime": "Κανάλι και Ώρα", + "LabelRecordProgramOrSeriesFrom": "Εγγραφή ενός προγράμματος ή σειράς από:", + "LabelStartTime": "Ώρα εκκίνησης:", + "LabelEndTime": "Ώρα λήξης:", + "LabelFrequency": "Συχνότητα:", + "Recurring": "Επαναλαμβανόμενο", + "Once": "Μια φορά", + "Start": "Εκκίνηση", + "Unpause": "Συνέχιση", + "LabelIntroSkipMode": "Παράλειψη βίντεο εισαγωγής:", + "ShowSkipIntroButton": "Προβολή κουμπιού 'Παράλειψη Εισαγωγής'", + "AutoSkipIntro": "Αυτόματη παράλειψη βίντεο εισαγωγής", + "DisplayRatingInformationOnVideoPlaybackStart": "Προβολή πληροφοριών καταλληλότητας κατά την εκκίνηση της αναπαραγωγής βίντεο", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Οι πληροφορίες καταλληλότητας θα εμφανίζονται για λίγο όταν ξεκινά η αναπαραγωγή του βίντεο.", + "IntroSkipModeHelp": "Προβολή ενός κουμπιού 'Παράλειψη Εισαγωγής' ή αυτόματη παράλειψη βίντεο εισαγωγής για τα επεισόδια στα οποία ο διακομιστής Emby έχει εντοπίσει κεφαλίδες εισαγωγής. Ο εντοπισμός βίντεο εισαγωγής πρέπει να είναι ενεργός στις επιλογές της βιβλιοθήκης του διακομιστή Emby.", + "EnableHomeScreenFocusPreview": "Χρήση εμφάνισης στην αρχική οθόνη που να δείχνει λεπτομερή προεπισκόπηση του επιλεγμένου αντικειμένου.", + "EnableHomeScreenFocusPreviewHelp": "Αυτό μπορεί να μη δουλεύει σωστά αν η αρχική σας οθόνη περιέχει μίξη από διαφορετικούς τύπους αρχείων πολυμέσων.", + "LabelHideMediaTransportButtons": "Απόκρυψη κουμπιών μεταφοράς κατά την αναπαραγωγή βίντεο:", + "HideMediaTransportButtonsHelp": "Δημιουργία μιας πιο απλής εμφάνισης κατά την αναπαραγωγή, αποκρύπτοντας κουμπιά μεταφοράς όπως το μετάβαση μπροστά, πίσω και παύση. Θα μπορείτε και πάλι να χρησιμοποιήσετε αυτές τις λειτουργίες με τα βελάκια και τα OK/Enter. Στο Αυτόματο θα κρύβει τα κουμπιά όταν δεν ανιχνεύεται χρήση του ποντικιού μέσα στην εφαρμογή.", + "ImageSizeHelp": "Ορίστε το προτιμώμενο μέγεθος πλέγματος εικόνων.", + "LabelImageSize": "Μέγεθος εικόνας:", + "ThisImageIsOnlyPreview": "Η εικόνα είναι μόνο μια προεπισκόπηση που προήλθε από τη μηχανή αναζήτησης μεταδεδομένων. Η πραγματική εικόνα που μεταφορτώνει ο Διακομιστής Emby μπορεί να είναι διαφορετική και θα εξαρτηθεί από τις επιλογές που έχετε ρυθμίσει στην εγκατάσταση της βιβλιοθήκης Emby.", + "ResultsRangeValue": "{0} έως {1} από {2}", + "NotificationsDescription": "Ρυθμίστε ειδοποιήσεις για να ενημερώνεστε για σημαντικά γεγονότα στον Emby διακομιστή σας.", + "DeleteEmbyConnectAccount": "Διαγραφή του Λογαριασμού Emby Connect", + "DeleteEmbyConnectAccountHelp": "Για να διαγράψετε το λογαριασμό σας στο Emby Connect, παρακαλούμε συνδεθείτε στην {0}Κοινότητα Emby{1} στο {2}. Αφού συνδεθείτε, κάντε κλικ στο όνομα χρήστη σας στην επάνω δεξιά γωνία, στη συνέχεια κάντε κλικ στις Ρυθμίσεις Λογαριασμού και, τέλος, κάντε κλικ στο Διαγραφή Λογαριασμού μου.", + "KeepPlayingInBackground": "Συνέχεια αναπαραγωγής στο παρασκήνιο", + "LabelVideoBackBehavior": "Συμπεριφορά του κουμπιού πίσω στην εφαρμογή αναπαραγωγής βίντεο:", + "HeaderViewLyrics": "Προβολή Στίχων", + "HeaderViewMissingEpisodes": "Προβολή Επεισοδίων που Λείπουν", + "HeaderMissingEpisodes": "Επεισόδια που λείπουν", + "HeaderManageAccess": "Διαχείριση Πρόσβασης", + "HeaderManageCollaboration": "Διαχείριση Συνεργασίας", + "HeaderLeaveCollaboration": "Αποχώρηση από τη Συνεργασία (Collaboration)", + "HeaderRemoveFromLibrary": "Αφαίρεση από τη Βιβλιοθήκη", + "RemoveSharedItemConfirmation": "Είστε σίγουρος/η ότι θέλετε να αφαιρέσετε αυτό το στοιχείο από τη βιβλιοθήκη σας; Για να το επαναφέρετε, ο ιδιοκτήτης θα πρέπει να σας χορηγήσει ξανά πρόσβαση.", + "SubtitlesDownloaded": "Υπότιτλοι που Κατέβηκαν", + "HeaderMakePrivate": "Κάντο Προσωπικό", + "HeaderMakePublic": "Κάντο Δημόσιο", + "MakePublicDescription": "Όλοι οι χρήστες θα μπορούν να δουν αυτό το στοιχείο. Οι χρήστες μπορούν να λάβουν πρόσβαση με δυνατότητα επεξεργασίας.", + "MakePrivateDescription": "Οι χρήστες μπορούν ακόμα να λάβουν μεμονωμένα πρόσβαση.", + "Private": "Προσωπικό", + "Public": "Δημόσιο", + "Collaborative": "Αποτέλεσμα Συνεργασίας", + "PreferredShowDisplay": "Προτιμώμενη προβολή τηλεοπτικής σειράς:", + "ShowAllEpisodesAllSeasons": "Εμφάνιση όλων των επεισοδίων όλων των κύκλων μαζί", + "ShowAllEpisodesSingleSeason": "Προβολή όλων των επεισοδίων μόνο για σειρές που έχουν μόνο μια σεζόν", + "ShowSeasonFolders": "Εμφάνιση πάντα των φακέλων των σεζόν", + "HeaderAddAgain": "Προσθήκη Ξανά", + "UpNext": "Επόμενο για Αναπαραγωγή", + "ItemsAlreadyInPlaylist": "Κάποια από αυτά τα αντικείμενα είναι ήδη στη λίστα αναπαραγωγής σας.", + "ItemAlreadyInPlaylist": "Αυτό το αντικείμενο είναι ήδη στη λίστα αναπαραγωγής σας.", + "HeaderPlayChannel": "Αναπαραγωγή Καναλιού", + "LabelScreenOrientationDuringVideo": "Προσανατολισμός οθόνης κατά την αναπαραγωγή βίντεο:", + "UseDeviceSetting": "Χρήση ρύθμισης της συσκευής", + "LockToLandscape": "Κλείδωμα σε οριζόντιο προσανατολισμό", + "UsernameForFolderHelp": "Το όνομα χρήστη που απαιτείται για πρόσβαση σε αυτόν τον φάκελο του δικτύου σας (αν υπάρχει).", + "PasswordForFolderHelp": "Ο κωδικός πρόσβασης που απαιτείται για πρόσβαση σε αυτόν τον φάκελο του δικτύου σας (αν υπάρχει).", + "ShowMediaInfoOnDetailScreens": "Προβολή όλων των λεπτομερειών του πολ΄υμέσου στις οθόνες λεπτομερειών ήχου και βίντεο", + "ForgotPasswordNoUserFound": "Δεν βρέθηκαν χρήστες με το όνομα που καταχωρίσατε. Παρακαλώ δοκιμάστε ξανά, ή αφήστε το όνομα κενό για να κάνετε επαναφορά των κωδικών για όλους τους χρήστες του διακομιστή.", + "Silver": "Ασημί", + "DimGray": "Αχνό Γκρι", + "DarkGray": "Σκούρο Γκρι", + "LightGray": "Ανοιχτό Γκρι", + "Black": "Μαύρο", + "Blue": "Μπλε", + "Cyan": "Κυανό", + "Gray": "Γκρι", + "Green": "Πράσινο", + "Lime": "Λάιμ", + "Magenta": "Ματζέντα", + "Orange": "Πορτοκαλί", + "Pink": "Ροζ", + "Red": "Κόκκινο", + "Yellow": "Κίτρινο", + "White": "Άσπρο", + "Purple": "Μωβ", + "RecentlyReleasedMovies": "Ταινίες που Κυκλοφόρησαν Πρόσφατα", + "RecentlyReleasedEpisodes": "Επεισόδια που Κυκλοφόρησαν Πρόσφατα", + "DolbyProfile": "Προφίλ Dolby", + "IpAddress": "Διεύθυνση IP", + "VideoType": "Τύπος Βίντεο", + "HidePlayedMediaFrom": "Απόκρυψη Πολυμέσων που Αναπαράχθηκαν Από", + "BottomEdgePosition": "Θέση Κάτω Γωνίας", + "VerticalPositionFromBottomScreen": "Ορίστε την κάθεστη θέση των υπότιτλων σε σχέση με το κάτω μέρος της οθόνης.", + "TopEdgePosition": "Θέση στην Κορυφή στην Άκρη", + "TopEdgePositionHelp": "Ορίστε την υψηλότερα δυνατή κάθετη θέση των υπότιτλων σε σχέση με την κορυφή της οθόνης. Αυτό χρησιμοποιείται όταν οι υπότιτλοι περιέχουν οδηγίες τοποθέτησης για να εμφανίζονται στην κορυφή.", + "HeaderSubtitlePosition": "Θέση Υπότιτλου", + "TitleProfilePin": "Pin του προφίλ", + "ProfilePinConfirm": "Pin του προφίλ (επιβεβαίωση)", + "SaveProfilePin": "Αποθήκευση Pin", + "ProfilePinDescription": "Δημιουργήστε έναν προαιρετικό κωδικό PIN για να σας ζητείται κατά την επιστροφή σε μια εφαρμογή Emby σε μια συσκευή στην οποία έχετε ήδη συνδεθεί. Αυτό είναι χρήσιμο εάν έχετε συσκευές που χρησιμοποιούν πολλοί χρήστες. Μπορείτε να ενεργοποιήσετε αυτήν τη λειτουργία εκλεκτικά σε κάθε συσκευή όπως χρειάζεται.", + "TitleNewEpisodes": "Νέα Επεισόδια", + "EnterYourPinToContinue": "Εισάγετε το PIN σας για να συνεχίσετε.", + "YourPinMustBe": "Το PIN σας πρέπει να είναι {0} ψηφία.", + "ForgotPin": "Ξεχάσατε το PIN;", + "RequireEnteringPinToReturn": "Να απαιτείται εισαγωγή του PIN του προφίλ μου κάθε φορά που επιστρέφω στην εφαρμογή", + "RequireEnteringPinToReturnQuestion": "Να σας ρωτάμε για το PIN του προφίλ σας όποτε επιστρέφετε σε αυτή την εφαρμογή; Αν αυτή η συσκευή χρησιμοποιείται από πολλούς χρήστες, το PIN του προφίλ σας μπορεί να εμποδίσει στους άλλους χρήστες πρόσβαση στα δεδομένα σας.", + "RequireEnteringPinToReturnHelp": "Χρήσιμο αν αυτή η συσκευή χρησιμοποιείται από πολλούς χρήστες.", + "WrongPinPleaseTryAgain": "Ουουπς, λάθος PIN. Παρακαλώ δοκιμάστε ξανά.", + "ProfilePinIsOn": "Το PIN του προφίλ είναι ενεργό.", + "IfTryingToConnectToHttp": "Αν προσπαθείτε να συνδεθείτε σε μια διεύθυνση http, ο περιηγητής μπορεί να μην το επιτρέπει. Μπορείτε να δοκιμάσετε κάποιο από τα ακόλουθα:", + "SetupHttpsForYourServer": "Ρυθμίστε {0}https για τον Emby Διακομιστή σας{1} ώστε να μπορείτε να συνδεθείτε με χρήση https.", + "TitleUnableToReachServer": "Αδυναμία Σύνδεσης στο Διακομιστή", + "TitleUnableToReachName": "Αδυναμία Σύνδεσης στο {0}", + "HearingImpaired": "Με Προβλήματα Ακοής", + "SignIntoServerName": "Σύνδεση στο {0}", + "About": "Σχετικά", + "Specials": "Specials", + "NSettings": "{0} Ρυθμίσεις", + "NPreferences": "{0} Προτιμήσεις", + "DetailScreenOptions": "Οθόνες Λεπτομερειών", + "LabelGenreDisplayLimit": "Περιορισμός εμφάνισης είδους:", + "GenreDisplayLimitHelp": "Περιορισμός του αριθμού των ειδών που θα μπορούν να εμφανίζονται στην κορυφή των οθονών λεπτομερειών του αντικειμένου.", + "GenreDisplayLimitForListsHelp": "Περιορισμός του αριθμού των ειδών που θα μπορούν να εμφανίζονται στην κορυφή της λίστας αναπαραγωγής και στις οθόνες λεπτομερειών των συλλογών και των καλλιτεχνών.", + "LabelGenreDisplayLimitForLists": "Περιορισμός εμφάνισης είδους για λίστες:", + "ShowPosterOnDetails": "Εμφάνιση αφίσας στην οθόνη λεπτομερειών", + "ShowPosterOnDetailsHelp": "Επιλέξτε να δείξετε μια αφίσα στις οθόνες λεπτομερειών του βίντεο, ή να την αποκρύψετε για πιο μινιμαλιστική εμφάνιση που δίνει έμφαση στο παρασκήνιο. Αυτή η ρύθμιση δεν χρησιμοποιείται σε προβολές για μικρότερες οθόνες. Μερικοί τύποι αντικειμένων δεν λαμβάνουν υπόψη αυτή τη ρύθμιση.", + "EnableAppLogging": "Ενεργοποίηση καταγραφής εφαρμογής", + "EnableAppLoggingHelp": "Η καταγραφή μπορεί να επιβραδύνει την απόδοση της εφαρμογής και πρέπει να ενεργοποιείται μόνο όταν απαιτείται για σκοπούς επίλυσης προβλημάτων. Οι αλλαγές απαιτούν την επανεκκίνηση της εφαρμογής.", + "LabelSlideshowInterval": "Προβολή διαφανειών φωτογραφιών χρόνος ανά διαφάνεια", + "TVChannelImageEditorHelp": "Υποστηρίζονται πολλαπλές εκδόσεις λογότυπου. Οι εφαρμογές Emby διαλέγουν αυτόματα το κατάλληλο ανάλογα με το τρέχον θέμα.", + "PlaySlideshow": "Αναπαραγωγή Προβολής Διαφανειών", + "CheckForExistingEpisodesInAllLibraries": "Έλεγχος για υπάρχοντα επεισόδια σε όλες τις βιβλιοθήκες", + "GroupNotificationsBySeriesOrAlbum": "Ομαδοποίηση ειδοποιήσεων ανά σειρά και άλμπουμ", + "ThemeSettings": "Ρυθμίσεις Θέματος", + "FollowingActivityWillBeDisrupted": "Η ακόλουθη δραστηριότητα θα διακοπεί και μπορεί να χρειαστεί χειροκίνητη παρέμβαση για να επανεκκινήσει:", + "OneActivePlaybackSession": "1 Ενεργή Συνεδρία Αναπαραγωγής", + "NumActivePlaybackSessions": "{0} Ενεργές Συνεδρίες Αναπαραγωγής", + "OneActiveRecording": "1 Ενεργή Εγγραφή", + "NumActiveRecordings": "{0} Ενεργές Εγγραφές", + "PlayFromLivePosition": "Αναπαραγωγή από τη θέση του ζωντανού προγρ΄άμματος", + "PlayFromStartOfRecording": "Αναπαραγωγή από την αρχή της εγγραφής", + "ThisChannelIsActivelyRecording": "Αυτό το κανάλι αυτή τη στιγμή εγγράφεται. Πως θέλετε να ξεκινήσετε την αναπαραγωγή;", + "ThemeSongVolume": "Ένταση Τραγουδιού Θέματος", + "HeaderForceConversionForFormats": "Εξαναγκασμός Μετατροπής για Μορφές", + "ForceConversionForFormatsHelp": "Χρησιμοποιήστε το για να εξαναγκάσετε το transcoding ή το remuxing από την πλευρά του διακομιστή για μορφές αρχείων που δεν παίζουν πολύ καλά με απευθείας αναπαραγωγή σε αυτή τη συσκευή.", + "StartupBehavior": "Συμπεριφορά Εκκίνησης", + "RememberLastUser": "Απομνημόνευση Τελευταίου Χρήστη", + "ShowLoginScreen": "Προβολή Οθόνης Σύνδεσης", + "SignInAsValue": "Σύνδεση σαν {0}", + "ConvertUnsupportedAudio": "Μετατροπή Μη Υποστηριζόμενου surround Ήχου σε Dolby Digital", + "ConvertUnsupportedAudioHelp": "Αποφυγή downmixing μη υποστηριζόμενων μορφών σε στέρεο βάζοντας το διακομιστή Emby να τα κάνει transcode σε Dolby Digital.", + "HeaderPlaybackCorrection": "Διόρθωση Αναπαραγωγής...", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Ενεργοποίηση διόρθωσης αναπαραγωγής;", + "PlaybackCorrectionDescription": "Έχει το τρέχον αντικείμενο πρόβλημα αναπαραγωγής όπως για παράδειγμα δεν υπάρχει εικόνα ή ήχος; Αυτό θα δοκιμάσει να διορθώσει τα προβλήματα αναπαραγωγήςμε τη χρήση transcoding στο διακομιστή για να μετατραπεί το αρχείο σε κάποια μορφή πιο φιλική για streaming. Αυτό θα έχει σαν αποτέλεσμα αυξημένη κατανάλωση πόρων σε αυτόν το διακομιστή Emby.", + "PlaybackCorrectionDescription2": "Μπορείτε να το κάνετε αυτό μέχρι τρεις φορές ανα βίντεο, όπου το remuxing, το βίντεο transcoding και το trascoding ήχου, ενεργοποιούνται ένα τη φορά.", + "HeaderAlbumsAsContributingArtist": "Άλμπουμ σαν Βοηθητικός Καλλιτέχνης", + "HeaderAlbumsAsComposer": "Άλμπουμ σαν Συνθέτης", + "Duplicates": "Διπλοεγγραφές", + "HeaderSleepTimer": "Χρονοδιακόπτης Αναστολής", + "AfterCurrentItem": "Μετά από το τρέχον αντικείμενο", + "HeaderStopPlayback": "Διακοπή Αναπαραγωγής", + "TurnOffTimer": "Απενεργοποίηση χρονοδιακόπτη", + "SleepTimerIsSet": "Ο χρονοδιακόπτης σας ορίστηκε", + "SleepTimerIsOff": "Ο χρονοδιακόπτης σας απενεργοποιήθηκε", + "LabelEnableRemoteControlTVMode": "Προβολή λειτουργιών casting και απομακρυσμένης διαχείρισης", + "EnableRemoteControlTVModeHelp": "Ενεργοποιήστε το αν σκοπεύετε να χρησιμοποιήσετε αυτή τη συσκευή για αποστολή πολυμέσων σε άλλες συσκευές.", + "ShowOnScreenControls": "Προβολή κουμπιών χειρισμού στην οθόνη", + "LabelVideoScreenUpAction": "Λειτουργία του επάνω κουμπιού στην οθόνη", + "VideoScreenUpActionHelp": "Επιλέξτε τη λειτουργία θα επιτελεί το πάτημα του κουμπιού επάνω στην οθόνη. Αυτό εφαρμόζεται όταν δεν είναι ορατά τα κουμπιά χειρισμού στην οθόνη. Όταν τα κουμπιά είναι ορατά το κουμπί επάνω θα χρησιμοποιείται για πλοήγηση.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/en-GB.json b/modules/common/strings/en-GB.json new file mode 100644 index 0000000..a202358 --- /dev/null +++ b/modules/common/strings/en-GB.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our {0}terms of use{1}. The use of any Emby software constitutes acceptance of these terms.", + "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server.", + "HeaderSignInWithConnect": "Sign in with Emby Connect", + "HeaderWelcomeToEmby": "Welcome to Emby", + "HeaderNewUsers": "New Users", + "HeaderPleaseSignIn": "Please Sign In", + "MessageInvalidUser": "Invalid username or password. Please try again.", + "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.", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Sign In", + "Share": "Share", + "Shared": "Shared", + "Info": "Info", + "Add": "Add", + "Speed": "Speed", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapters", + "Password": "Password", + "SavePassword": "Save Password", + "LabelPassword": "Password", + "HeaderResetPassword": "Reset Password", + "Series": "Series", + "Preview": "Preview", + "Submit": "Submit", + "Never": "Never", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Top Results", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Always on", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Upload only on Wi-Fi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Password (confirm)", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "User name", + "HeaderAddServer": "Add Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Close", + "HeaderSeeAll": "See All", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "E-mail", + "LabelHost": "Host", + "LabelHostHelp": "Example: 192.168.1.100 or https://myserver.com", + "LabelPort": "Port", + "Disabled": "Disabled", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalogue{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Are you still watching?", + "LabelCurrentPassword": "Current password", + "LabelNewPassword": "New password", + "LabelNewPasswordConfirm": "New password confirm", + "HeaderRemovePassword": "Remove Password", + "ServerUpdateNeeded": "This Emby Server needs to be updated. To download the latest version, please visit {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Connect to Server", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the e-mail address that you used to setup your Emby Connect account.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset PIN will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired PIN was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your user name.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "New", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premiere", + "LabelPinCode": "PIN code", + "LabelLocalNetworkPinCode": "Local network PIN code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric PIN code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Live", + "Reset": "Reset", + "Repeat": "Repeat", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} Tracks", + "ItemCount": "{0} Items", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Latest Music", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Recently Played", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Frequently Played", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "OriginalAirDateValue": "Original air date: {0}", + "EndsAtValue": "Ends at {0}", + "Date": "Date", + "AirDate": "Air Date", + "Played": "Played", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unticking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Date Last Episode Added", + "LastEpisodeDateAired": "Date Last Episode Released", + "LabelPlaystate": "Play state", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio codec", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Parental rating", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Because you watched {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Invitations", + "ActorAsRole": "as {0}", + "ButtonOk": "Okay", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "User", + "Access": "Access", + "Users": "Users", + "Library": "Library", + "Devices": "Devices", + "Cancel": "Cancel", + "Restart": "Restart", + "Shutdown": "Shutdown", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plug-in catalogue{1}.", + "Plugins": "Plugins", + "Systems": "Systems", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Got It", + "RememberMe": "Remember me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Manage Emby Server", + "ShutdownServer": "Shutdown Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Recording Cancelled", + "SeriesCancelled": "Series Cancelled", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Recording Scheduled", + "SeriesRecordingScheduled": "Series Recording Scheduled", + "HeaderNewRecording": "New Recording", + "HeaderWakeServer": "Wake Server", + "AttemptingWakeServer": "Attempting to wake server. Please wait...", + "WakeServerSuccess": "Success!", + "HeaderCustomizeHomeScreen": "Customise Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine but we're unable to connect to your Emby Server. Your machine may need a little more time to wake or Emby Server may not be actively running on the machine.", + "Days": "Days", + "Network": "Network", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Cinema Intros", + "Conversions": "Conversions", + "Downloads": "Downloads", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server's GPU. Emby has the most advanced and fastest hardware acceleration in the industry.", + "HeaderOfflineDownloads": "Offline Media", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", + "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.", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature.", + "HeaderFreeApps": "Free Emby Apps", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", + "HeaderBecomeProjectSupporter": "Get Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "This feature requires an active {0}Emby Premiere subscription{1}.", + "HeaderConvertYourRecordings": "Convert Your Recordings", + "Record": "Record", + "Save": "Save", + "Edit": "Edit", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Download", + "Downloaded": "Downloaded", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloading", + "Advanced": "Advanced", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Delete", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Delete Item", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library.", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Refresh", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favourites, then by Channel Number", + "HeaderAddToCollection": "Add to Collection", + "HeaderFavoritesThenByTitle": "Favourites, then by Title", + "HeaderFavoritesThenByDefault": "Favourites, then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favourites", + "HeaderRemoveFromFavorites": "Remove from Favourites", + "Favorited": "Favourited", + "Unfavorited": "Unfavourited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Help", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimise the user interface on this device for display on a TV and input with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "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": "Play 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": "Play theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "RunAtStartup": "Run at startup", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Name", + "NewCollectionNameExample": "Example: Star Wars Collection", + "MessageItemsAdded": "Items added.", + "OptionNew": "New...", + "LabelPlaylist": "Playlist", + "AddToPlaylist": "Add to playlist", + "HeaderAddToPlaylist": "Add to Playlist", + "Subtitles": "Subtitles", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent colour", + "ThemeAccentColorDescription": "Controls the colour of important indicators, icons and text.", + "SearchForSubtitles": "Search for Subtitles", + "LabelLanguage": "Language", + "Search": "Search", + "NoSubtitleSearchResultsFound": "No results found. Have you configured {0}subtitle downloading{1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "File", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "ConfirmDeletion": "Confirm Deletion", + "MySubtitles": "My Subtitles", + "MessageDownloadQueued": "Download queued.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Unlock Guide", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Replace existing images", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "Replace all metadata", + "SearchForMissingMetadata": "Search for missing metadata", + "LabelRefreshMode": "Refresh mode", + "NoItemsFound": "No items found.", + "HeaderSaySomethingLike": "Say Something Like...", + "ButtonTryAgain": "Try Again", + "HeaderYouSaid": "You Said...", + "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognise that command.", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "ValueDiscNumber": "Disc {0}", + "Unrated": "Unrated", + "Favorite": "Favourite", + "Like": "Like", + "Dislike": "Dislike", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup.", + "Open": "Open", + "Play": "Play", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Shuffle", + "Identify": "Identify", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Convert", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Queue", + "QueueAllFromHere": "Queue all from here", + "PlayAllFromHere": "Play all from here", + "PlayFromBeginning": "Play From Beginning", + "FromBeginning": "From Beginning", + "ResumeAt": "Resume from {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sort", + "Trailer": "Trailer", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Error", + "VoiceInput": "Voice Input", + "LabelContentType": "Content type", + "LabelPath": "Path", + "Playlists": "Playlists", + "LabelTitle": "Title", + "LabelOriginalTitle": "Original title", + "LabelSortTitle": "Sort title", + "LabelDateAdded": "Date added", + "DateAdded": "Date Added", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Status", + "LabelArtistsHelp": "Separate multiple using ;", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Album artists", + "LabelAlbum": "Album", + "Artist": "Artist", + "Artists": "Artists", + "ImdbRating": "IMDb Rating", + "CommunityRating": "Community Rating", + "LabelCommunityRating": "Community rating", + "LabelCriticRating": "Critic rating", + "CriticRating": "Critic Rating", + "LabelWebsite": "Website", + "Tagline": "Tagline", + "LabelOverview": "Overview", + "LabelShortOverview": "Short overview", + "LabelReleaseDate": "Release date", + "LabelPlaceOfBirth": "Place of birth", + "Aired": "Aired", + "LabelAirDays": "Air days", + "LabelAirTime": "Air time", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelCustomRating": "Custom rating", + "LabelOriginalAspectRatio": "Original aspect ratio", + "Label3DFormat": "3D format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "External IDs", + "HeaderDisplaySettings": "Display Settings", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Display order", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Countries", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Tags", + "Links": "Links", + "Movie": "Movie", + "Program": "Programme", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Metadata Settings", + "People": "People", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Preferred metadata download language", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LabelCountry": "Country", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} ID", + "LabelBirthYear": "Birth year", + "LabelBirthDate": "Birth date", + "LabelDeathDate": "Death date", + "LabelEndDate": "End date", + "LabelSeasonNumber": "Season number", + "LabelEpisodeNumber": "Episode number", + "LabelTrackNumber": "Track number", + "LabelNumber": "Number", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Sort Title", + "OriginalTitle": "Original Title", + "ReleaseDate": "Release Date", + "Continuing": "Continuing", + "Ended": "Ended", + "HeaderEnabledFields": "Enabled Fields", + "HeaderEnabledFieldsHelp": "Untick a field to lock it and prevent its data from being changed.", + "Backdrops": "Backdrops", + "Images": "Images", + "Runtime": "Runtime", + "ProductionLocations": "Production locations", + "BirthLocation": "Birth location", + "ParentalRating": "Parental Rating", + "PlayCount": "Play count", + "Name": "Name", + "Overview": "Overview", + "LabelType": "Type", + "LabelPersonRole": "Role", + "LabelPersonRoleHelp": "Example: Ice cream truck driver", + "Actor": "Actor", + "Composers": "Composers", + "Composer": "Composer", + "Director": "Director", + "GuestStar": "Guest star", + "Producer": "Producer", + "Writer": "Writer", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Installing {0}", + "PackageInstallCompleted": "{0} installation completed.", + "PackageInstallFailed": "{0} installation failed.", + "PackageInstallCancelled": "{0} installation cancelled.", + "SeriesYearToPresent": "{0} - Present", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episodes", + "Albums": "Albums", + "Song": "Song", + "Songs": "Songs", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "PleaseEnterNameOrId": "Please enter a name or an external ID.", + "MessageItemSaved": "Item saved.", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Emby Server - {0} is restarting.", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "PleaseRestartServerName": "Please Restart Emby Server on {0}", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Downloading...", + "LearnMore": "Learn more", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Screenshots", + "MoveRight": "Move right", + "MoveLeft": "Move left", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Delete image?", + "HeaderEditImages": "Edit Images", + "Settings": "Settings", + "ShowIndicatorsFor": "Show Indicators", + "Episodes": "Episodes", + "Programs": "Programmes", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}.", + "HeaderCancelRecording": "Cancel Recording", + "HeaderKeepRecording": "Keep Recording", + "HeaderCancelSeries": "Cancel Series", + "HeaderKeepSeries": "Keep Series", + "HeaderLearnMore": "Learn More", + "SeriesSettings": "Series settings", + "HeaderRecordingOptions": "Recording Options", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Series Options", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Anytime", + "AnyLanguage": "Any language", + "AroundTime": "Around {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "All channels", + "NewEpisodesOnly": "New episodes only", + "AllEpisodes": "All episodes", + "LabelStartWhenPossible": "Start when possible", + "LabelStopWhenPossible": "Stop when possible", + "MinutesBefore": "minutes before", + "MinutesAfter": "minutes after", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", + "LabelKeepUpTo": "Keep up to", + "AsManyAsPossible": "As many as possible", + "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "UntilIDelete": "Until I delete", + "UntilSpaceNeeded": "Until space needed", + "Categories": "Categories", + "Sports": "Sports", + "News": "News", + "Movies": "Movies", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Apply coloured backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "I have Emby Premiere", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "ButtonUnlockPrice": "Unlock {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favourite channels at the beginning", + "HeaderUnlockFeature": "Unlock Feature", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Added {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Continue", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Quality", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active Internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "My Media", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "Latest {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continue Watching", + "HeaderContinueListening": "Continue Listening", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Latest Recordings", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Settings saved.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Favourites", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorised to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Favourite Channels", + "HeaderFavoriteCollections": "Favourite Collections", + "HeaderFavoritePlaylists": "Favourite Playlists", + "Collection": "Collection", + "Collections": "Collections", + "LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:", + "LabelSelectFolderGroupsHelp": "Folders that are unticked will be displayed by themselves in their own view.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Schedule", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active Internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server, visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server, visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0}, inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again. Alternatively, try entering their e-mail address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active Internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an e-mail to {0} from the e-mail address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an e-mail to {0}, and include your e-mail address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An e-mail will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the e-mail.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "No subtitles", + "Default": "Default", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Subtitle Settings", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelTextSize": "Text size", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background colour", + "LabelWindowBackgroundColor": "Text background colour", + "LabelFont": "Font", + "LabelTextColor": "Text colour", + "LabelBackgroundColor": "Background colour", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc.) or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wi-Fi", + "WifiRequiredToDownload": "A Wi-Fi connection is required to continue downloading.", + "DownloadOnlyOnWifi": "Download only on Wi-Fi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "Hide": "Hide", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active Internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Colour)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Audio Settings", + "LabelAudioLanguagePreference": "Preferred audio language", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Video Quality", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theatre experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (mobile)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Latest Media", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date/time locale", + "Genre": "Genre", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directors: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Theme songs", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Favourite Movies", + "HeaderFavoritePhotos": "Favourite Photos", + "HeaderFavoriteShows": "Favourite Shows", + "HeaderFavoriteEpisodes": "Favourite Episodes", + "HeaderFavoriteVideos": "Favourite Videos", + "HeaderFavoriteMusicVideos": "Favourite Music Videos", + "HeaderFavoriteGames": "Favourite Games", + "HeaderFavoriteArtists": "Favourite Artists", + "HeaderFavoriteAlbums": "Favourite Albums", + "HeaderFavoriteSongs": "Favourite Songs", + "HeaderFavoriteAuthors": "Favourite Authors", + "HeaderFavoriteAudioBooks": "Favourite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Colour Primaries", + "HeaderColorSpace": "Colour Space", + "HeaderColorTransfer": "Colour Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, DVD order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favourite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimise the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimise the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "URL", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified period of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a programme or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, click your user name in the top right, then click Account Settings and click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behaviour", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back, the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The user name required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Grey", + "DarkGray": "Dark Grey", + "LightGray": "Light Grey", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Grey", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save PIN", + "ProfilePinDescription": "Create an optional PIN to be prompted for entry whenever you return to an Emby app on a device that you've already authenticated with. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens or hide it for a more minimal look that emphasises the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Transcoding for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behaviour", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video screen up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the Up key on the video screen. This applies when no on-screen controls are currently visible. When controls are already visible, the Up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Date Last Content Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the image and overview for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback, at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behaviour to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/en-US.json b/modules/common/strings/en-US.json new file mode 100644 index 0000000..c0be371 --- /dev/null +++ b/modules/common/strings/en-US.json @@ -0,0 +1,1340 @@ +{ + "EmbyLoginTerms": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our {0}terms of use{1}. The use of any Emby software constitutes acceptance of these terms.", + "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server.", + "HeaderSignInWithConnect": "Sign in with Emby Connect", + "HeaderWelcomeToEmby": "Welcome to Emby", + "HeaderNewUsers": "New Users", + "HeaderPleaseSignIn": "Please Sign In", + "MessageInvalidUser": "Invalid username or password. Please try again.", + "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.", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Sign In", + "Share": "Share", + "Shared": "Shared", + "Info": "Info", + "Add": "Add", + "Speed": "Speed", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapters", + "Password": "Password", + "SavePassword": "Save Password", + "LabelPassword": "Password", + "HeaderResetPassword": "Reset Password", + "Series": "Series", + "Preview": "Preview", + "Submit": "Submit", + "Never": "Never", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Top Results", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Always on", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Upload only on Wifi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Password (confirm)", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Username", + "HeaderAddServer": "Add Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Close", + "HeaderSeeAll": "See All", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "Email", + "LabelHost": "Host", + "LabelHostHelp": "Example: 192.168.1.100 or https:\/\/myserver.com", + "LabelPort": "Port", + "Disabled": "Disabled", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Are you still watching?", + "LabelCurrentPassword": "Current password", + "LabelNewPassword": "New password", + "LabelNewPasswordConfirm": "New password confirm", + "HeaderRemovePassword": "Remove Password", + "ServerUpdateNeeded": "This Emby Server needs to be updated. To download the latest version, please visit {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Connect to Server", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "New", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premiere", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Live", + "Reset": "Reset", + "Repeat": "Repeat", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} Tracks", + "ItemCount": "{0} Items", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Latest Music", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Recently Played", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Frequently Played", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "OriginalAirDateValue": "Original air date: {0}", + "EndsAtValue": "Ends at {0}", + "Date": "Date", + "AirDate": "Air Date", + "Played": "Played", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastContentDateAdded": "Date Last Content Added", + "LastEpisodeDateAdded": "Date Last Episode Added", + "LastEpisodeDateAired": "Date Last Episode Released", + "LabelPlaystate": "Playstate", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio codec", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Parental rating", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Because you watched {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Invitations", + "ActorAsRole": "as {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "User", + "Access": "Access", + "Users": "Users", + "Library": "Library", + "Devices": "Devices", + "Cancel": "Cancel", + "Restart": "Restart", + "Shutdown": "Shutdown", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Systems", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Got It", + "RememberMe": "Remember me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Manage Emby Server", + "ShutdownServer": "Shutdown Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Recording Cancelled", + "SeriesCancelled": "Series Cancelled", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Recording Scheduled", + "SeriesRecordingScheduled": "Series Recording Scheduled", + "HeaderNewRecording": "New Recording", + "HeaderWakeServer": "Wake Server", + "AttemptingWakeServer": "Attempting to wake server. Please wait...", + "WakeServerSuccess": "Success!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine.", + "Days": "Days", + "Network": "Network", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Cinema Intros", + "Conversions": "Conversions", + "Downloads": "Downloads", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Offline Media", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", + "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.", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature.", + "HeaderFreeApps": "Free Emby Apps", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", + "HeaderBecomeProjectSupporter": "Get Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "This feature requires an active {0}Emby Premiere subscription{1}.", + "HeaderConvertYourRecordings": "Convert Your Recordings", + "Record": "Record", + "Save": "Save", + "Edit": "Edit", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Download", + "Downloaded": "Downloaded", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloading", + "Advanced": "Advanced", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Delete", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Delete Item", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library.", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Refresh", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Add to Collection", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Help", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "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": "Play 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": "Play theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "RunAtStartup": "Run at startup", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Name", + "NewCollectionNameExample": "Example: Star Wars Collection", + "MessageItemsAdded": "Items added.", + "OptionNew": "New...", + "LabelPlaylist": "Playlist", + "AddToPlaylist": "Add to playlist", + "HeaderAddToPlaylist": "Add to Playlist", + "Subtitles": "Subtitles", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Search for Subtitles", + "LabelLanguage": "Language", + "Search": "Search", + "NoSubtitleSearchResultsFound": "No results found. Have you configured {0}subtitle downloading{1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "File", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "ConfirmDeletion": "Confirm Deletion", + "MySubtitles": "My Subtitles", + "MessageDownloadQueued": "Download queued.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Unlock Guide", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Replace existing images", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "ReplaceAllMetadata": "Replace all metadata", + "SearchForMissingMetadata": "Search for missing metadata", + "LabelRefreshMode": "Refresh mode", + "NoItemsFound": "No items found.", + "HeaderSaySomethingLike": "Say Something Like...", + "ButtonTryAgain": "Try Again", + "HeaderYouSaid": "You Said...", + "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "ValueDiscNumber": "Disc {0}", + "Unrated": "Unrated", + "Favorite": "Favorite", + "Like": "Like", + "Dislike": "Dislike", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup.", + "Open": "Open", + "Play": "Play", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Shuffle", + "Identify": "Identify", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Convert", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Queue", + "QueueAllFromHere": "Queue all from here", + "PlayAllFromHere": "Play all from here", + "PlayFromBeginning": "Play From Beginning", + "FromBeginning": "From Beginning", + "ResumeAt": "Resume from {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sort", + "Trailer": "Trailer", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Error", + "VoiceInput": "Voice Input", + "LabelContentType": "Content type", + "LabelPath": "Path", + "Playlists": "Playlists", + "LabelTitle": "Title", + "LabelOriginalTitle": "Original title", + "LabelSortTitle": "Sort title", + "LabelDateAdded": "Date added", + "DateAdded": "Date Added", + "DateCreated": "Date Created", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Status", + "LabelArtistsHelp": "Separate multiple using ;", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Album artists", + "LabelAlbum": "Album", + "Artist": "Artist", + "Artists": "Artists", + "ImdbRating": "IMDb Rating", + "CommunityRating": "Community Rating", + "LabelCommunityRating": "Community rating", + "LabelCriticRating": "Critic rating", + "CriticRating": "Critic Rating", + "LabelWebsite": "Website", + "Tagline": "Tagline", + "LabelOverview": "Overview", + "LabelShortOverview": "Short overview", + "LabelReleaseDate": "Release date", + "LabelPlaceOfBirth": "Place of birth", + "Aired": "Aired", + "LabelAirDays": "Air days", + "LabelAirTime": "Air time", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelCustomRating": "Custom rating", + "LabelOriginalAspectRatio": "Original aspect ratio", + "Label3DFormat": "3D format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Display Settings", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Display order", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Countries", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Tags", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Metadata Settings", + "People": "People", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Preferred metadata download language", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LabelCountry": "Country", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Birth year", + "LabelBirthDate": "Birth date", + "LabelDeathDate": "Death date", + "LabelEndDate": "End date", + "LabelSeasonNumber": "Season number", + "LabelEpisodeNumber": "Episode number", + "LabelTrackNumber": "Track number", + "LabelNumber": "Number", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Sort Title", + "OriginalTitle": "Original Title", + "ReleaseDate": "Release Date", + "Continuing": "Continuing", + "Ended": "Ended", + "HeaderEnabledFields": "Enabled Fields", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed.", + "Backdrops": "Backdrops", + "Images": "Images", + "Runtime": "Runtime", + "ProductionLocations": "Production locations", + "BirthLocation": "Birth location", + "ParentalRating": "Parental Rating", + "PlayCount": "Play count", + "Name": "Name", + "Overview": "Overview", + "LabelType": "Type", + "LabelPersonRole": "Role", + "LabelPersonRoleHelp": "Example: Ice cream truck driver", + "Actor": "Actor", + "Composers": "Composers", + "Composer": "Composer", + "Director": "Director", + "GuestStar": "Guest star", + "Producer": "Producer", + "Writer": "Writer", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Installing {0}", + "PackageInstallCompleted": "{0} installation completed.", + "PackageInstallFailed": "{0} installation failed.", + "PackageInstallCancelled": "{0} installation cancelled.", + "SeriesYearToPresent": "{0} - Present", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episodes", + "Albums": "Albums", + "Song": "Song", + "Songs": "Songs", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "PleaseEnterNameOrId": "Please enter a name or an external Id.", + "MessageItemSaved": "Item saved.", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Emby Server - {0} is restarting.", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "PleaseRestartServerName": "Please Restart Emby Server on {0}", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Downloading...", + "LearnMore": "Learn more", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Screenshots", + "MoveRight": "Move right", + "MoveLeft": "Move left", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Delete image?", + "HeaderEditImages": "Edit Images", + "Settings": "Settings", + "ShowIndicatorsFor": "Show Indicators", + "Episodes": "Episodes", + "Programs": "Programs", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}.", + "HeaderCancelRecording": "Cancel Recording", + "HeaderKeepRecording": "Keep Recording", + "HeaderCancelSeries": "Cancel Series", + "HeaderKeepSeries": "Keep Series", + "HeaderLearnMore": "Learn More", + "SeriesSettings": "Series settings", + "HeaderRecordingOptions": "Recording Options", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Series Options", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Anytime", + "AnyLanguage": "Any language", + "AroundTime": "Around {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "All channels", + "NewEpisodesOnly": "New episodes only", + "AllEpisodes": "All episodes", + "LabelStartWhenPossible": "Start when possible", + "LabelStopWhenPossible": "Stop when possible", + "MinutesBefore": "minutes before", + "MinutesAfter": "minutes after", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", + "LabelKeepUpTo": "Keep up to", + "AsManyAsPossible": "As many as possible", + "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "UntilIDelete": "Until I delete", + "UntilSpaceNeeded": "Until space needed", + "Categories": "Categories", + "Sports": "Sports", + "News": "News", + "Movies": "Movies", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "BornValueAge": "Born: {0} (age {1})", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "I have Emby Premiere", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "ButtonUnlockPrice": "Unlock {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "HeaderUnlockFeature": "Unlock Feature", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Added {0}", + "PlayedOnValue": "Played {0}", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Continue", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Quality", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "My Media", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "Latest {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continue Watching", + "HeaderContinueListening": "Continue Listening", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Latest Recordings", + "HeaderAllRecordings": "All Recordings", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Settings saved.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Favorites", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Favorite Collections", + "HeaderFavoritePlaylists": "Favorite Playlists", + "Collection": "Collection", + "Collections": "Collections", + "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.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Schedule", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "No subtitles", + "Default": "Default", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Subtitle Settings", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelTextSize": "Text size", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS\/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "Hide": "Hide", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add\/Update Image", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Audio Settings", + "LabelAudioLanguagePreference": "Preferred audio language", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Video Quality", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Latest Media", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "Genre": "Genre", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directors: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Theme songs", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Favorite Movies", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Favorite Shows", + "HeaderFavoriteEpisodes": "Favorite Episodes", + "HeaderFavoriteVideos": "Favorite Videos", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Favorite Games", + "HeaderFavoriteArtists": "Favorite Artists", + "HeaderFavoriteAlbums": "Favorite Albums", + "HeaderFavoriteSongs": "Favorite Songs", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter\/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter\/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK\/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already authenticated with. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Transcoding for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up button behavior", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the image and overview for unwatched episodes on most screens.", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "AppExitConfirmation": "Are you ready to exit Emby?", + "SystemStorage": "System storage ({0})" +} \ No newline at end of file diff --git a/modules/common/strings/es-AR.json b/modules/common/strings/es-AR.json new file mode 100644 index 0000000..25cbdb5 --- /dev/null +++ b/modules/common/strings/es-AR.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our {0}terms of use{1}. The use of any Emby software constitutes acceptance of these terms.", + "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server.", + "HeaderSignInWithConnect": "Sign in with Emby Connect", + "HeaderWelcomeToEmby": "Welcome to Emby", + "HeaderNewUsers": "New Users", + "HeaderPleaseSignIn": "Please Sign In", + "MessageInvalidUser": "Invalid username or password. Please try again.", + "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.", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Sign In", + "Share": "Share", + "Shared": "Shared", + "Info": "Info", + "Add": "Add", + "Speed": "Speed", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapters", + "Password": "Password", + "SavePassword": "Save Password", + "LabelPassword": "Password", + "HeaderResetPassword": "Reset Password", + "Series": "Series", + "Preview": "Preview", + "Submit": "Submit", + "Never": "Never", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Top Results", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Always on", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Upload only on Wifi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Password (confirm)", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Username", + "HeaderAddServer": "Add Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Close", + "HeaderSeeAll": "See All", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "Email", + "LabelHost": "Host", + "LabelHostHelp": "Example: 192.168.1.100 or https://myserver.com", + "LabelPort": "Port", + "Disabled": "Disabled", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Are you still watching?", + "LabelCurrentPassword": "Current password", + "LabelNewPassword": "New password", + "LabelNewPasswordConfirm": "New password confirm", + "HeaderRemovePassword": "Remove Password", + "ServerUpdateNeeded": "This Emby Server needs to be updated. To download the latest version, please visit {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Connect to Server", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "New", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premiere", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Live", + "Reset": "Reset", + "Repeat": "Repeat", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} Tracks", + "ItemCount": "{0} Items", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Latest Music", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Recently Played", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Frequently Played", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "OriginalAirDateValue": "Original air date: {0}", + "EndsAtValue": "Ends at {0}", + "Date": "Date", + "AirDate": "Air Date", + "Played": "Played", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Last Episode Date Added", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio codec", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Parental rating", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Because you watched {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Invitations", + "ActorAsRole": "as {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "User", + "Access": "Access", + "Users": "Users", + "Library": "Library", + "Devices": "Devices", + "Cancel": "Cancel", + "Restart": "Restart", + "Shutdown": "Shutdown", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Systems", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Got It", + "RememberMe": "Remember me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Manage Emby Server", + "ShutdownServer": "Shutdown Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Recording Cancelled", + "SeriesCancelled": "Series Cancelled", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Recording Scheduled", + "SeriesRecordingScheduled": "Series Recording Scheduled", + "HeaderNewRecording": "New Recording", + "HeaderWakeServer": "Wake Server", + "AttemptingWakeServer": "Attempting to wake server. Please wait...", + "WakeServerSuccess": "Success!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine.", + "Days": "Days", + "Network": "Network", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Cinema Intros", + "Conversions": "Conversions", + "Downloads": "Downloads", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Offline Media", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", + "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.", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature.", + "HeaderFreeApps": "Free Emby Apps", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", + "HeaderBecomeProjectSupporter": "Get Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "This feature requires an active {0}Emby Premiere subscription{1}.", + "HeaderConvertYourRecordings": "Convert Your Recordings", + "Record": "Record", + "Save": "Save", + "Edit": "Edit", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Download", + "Downloaded": "Downloaded", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloading", + "Advanced": "Advanced", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Delete", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Delete Item", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library.", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Refresh", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Add to Collection", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Help", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "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", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Name", + "NewCollectionNameExample": "Ejemplo: Colección de Star Wars", + "MessageItemsAdded": "Items added.", + "OptionNew": "New...", + "LabelPlaylist": "Playlist", + "AddToPlaylist": "Add to playlist", + "HeaderAddToPlaylist": "Add to Playlist", + "Subtitles": "Subtitles", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Search for Subtitles", + "LabelLanguage": "Language", + "Search": "Search", + "NoSubtitleSearchResultsFound": "No results found. Have you configured {0}subtitle downloading{1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "File", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "ConfirmDeletion": "Confirm Deletion", + "MySubtitles": "My Subtitles", + "MessageDownloadQueued": "Download queued.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Unlock Guide", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Replace existing images", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "Replace all metadata", + "SearchForMissingMetadata": "Search for missing metadata", + "LabelRefreshMode": "Refresh mode", + "NoItemsFound": "No items found.", + "HeaderSaySomethingLike": "Say Something Like...", + "ButtonTryAgain": "Try Again", + "HeaderYouSaid": "You Said...", + "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "ValueDiscNumber": "Disc {0}", + "Unrated": "Unrated", + "Favorite": "Favorite", + "Like": "Like", + "Dislike": "Dislike", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup.", + "Open": "Open", + "Play": "Play", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Shuffle", + "Identify": "Identify", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Convert", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Queue", + "QueueAllFromHere": "Queue all from here", + "PlayAllFromHere": "Play all from here", + "PlayFromBeginning": "Play From Beginning", + "FromBeginning": "From Beginning", + "ResumeAt": "Resume from {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sort", + "Trailer": "Trailer", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Error", + "VoiceInput": "Voice Input", + "LabelContentType": "Content type", + "LabelPath": "Path", + "Playlists": "Playlists", + "LabelTitle": "Title", + "LabelOriginalTitle": "Original title", + "LabelSortTitle": "Sort title", + "LabelDateAdded": "Date added", + "DateAdded": "Date Added", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Status", + "LabelArtistsHelp": "Separate multiple using ;", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Album artists", + "LabelAlbum": "Album", + "Artist": "Artist", + "Artists": "Artists", + "ImdbRating": "IMDb Rating", + "CommunityRating": "Community Rating", + "LabelCommunityRating": "Community rating", + "LabelCriticRating": "Critic rating", + "CriticRating": "Critic Rating", + "LabelWebsite": "Website", + "Tagline": "Tagline", + "LabelOverview": "Overview", + "LabelShortOverview": "Short overview", + "LabelReleaseDate": "Release date", + "LabelPlaceOfBirth": "Place of birth", + "Aired": "Aired", + "LabelAirDays": "Air days", + "LabelAirTime": "Air time", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelCustomRating": "Custom rating", + "LabelOriginalAspectRatio": "Original aspect ratio", + "Label3DFormat": "3D format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Display Settings", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Display order", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Countries", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Tags", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Metadata Settings", + "People": "People", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Preferred metadata download language", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LabelCountry": "Country", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Birth year", + "LabelBirthDate": "Birth date", + "LabelDeathDate": "Death date", + "LabelEndDate": "End date", + "LabelSeasonNumber": "Season number", + "LabelEpisodeNumber": "Episode number", + "LabelTrackNumber": "Track number", + "LabelNumber": "Number", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Sort Title", + "OriginalTitle": "Original Title", + "ReleaseDate": "Release Date", + "Continuing": "Continuing", + "Ended": "Ended", + "HeaderEnabledFields": "Enabled Fields", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed.", + "Backdrops": "Backdrops", + "Images": "Images", + "Runtime": "Runtime", + "ProductionLocations": "Production locations", + "BirthLocation": "Birth location", + "ParentalRating": "Parental Rating", + "PlayCount": "Play count", + "Name": "Name", + "Overview": "Overview", + "LabelType": "Type", + "LabelPersonRole": "Role", + "LabelPersonRoleHelp": "Example: Ice cream truck driver", + "Actor": "Actor", + "Composers": "Composers", + "Composer": "Composer", + "Director": "Director", + "GuestStar": "Guest star", + "Producer": "Producer", + "Writer": "Writer", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Installing {0}", + "PackageInstallCompleted": "{0} installation completed.", + "PackageInstallFailed": "{0} installation failed.", + "PackageInstallCancelled": "{0} installation cancelled.", + "SeriesYearToPresent": "{0} - Present", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episodes", + "Albums": "Albums", + "Song": "Song", + "Songs": "Songs", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "PleaseEnterNameOrId": "Please enter a name or an external Id.", + "MessageItemSaved": "Item saved.", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Emby Server - {0} is restarting.", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "PleaseRestartServerName": "Please Restart Emby Server on {0}", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Downloading...", + "LearnMore": "Learn more", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Screenshots", + "MoveRight": "Move right", + "MoveLeft": "Move left", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Delete image?", + "HeaderEditImages": "Edit Images", + "Settings": "Settings", + "ShowIndicatorsFor": "Show Indicators", + "Episodes": "Episodes", + "Programs": "Programs", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}.", + "HeaderCancelRecording": "Cancel Recording", + "HeaderKeepRecording": "Keep Recording", + "HeaderCancelSeries": "Cancel Series", + "HeaderKeepSeries": "Keep Series", + "HeaderLearnMore": "Learn More", + "SeriesSettings": "Series settings", + "HeaderRecordingOptions": "Recording Options", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Series Options", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Anytime", + "AnyLanguage": "Any language", + "AroundTime": "Around {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "All channels", + "NewEpisodesOnly": "New episodes only", + "AllEpisodes": "All episodes", + "LabelStartWhenPossible": "Start when possible", + "LabelStopWhenPossible": "Stop when possible", + "MinutesBefore": "minutes before", + "MinutesAfter": "minutes after", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", + "LabelKeepUpTo": "Keep up to", + "AsManyAsPossible": "As many as possible", + "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "UntilIDelete": "Until I delete", + "UntilSpaceNeeded": "Until space needed", + "Categories": "Categories", + "Sports": "Sports", + "News": "News", + "Movies": "Movies", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "I have Emby Premiere", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "ButtonUnlockPrice": "Unlock {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "HeaderUnlockFeature": "Unlock Feature", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Added {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Continue", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Quality", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "My Media", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "Latest {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continue Watching", + "HeaderContinueListening": "Continue Listening", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Latest Recordings", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Settings saved.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Favorites", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Favorite Collections", + "HeaderFavoritePlaylists": "Favorite Playlists", + "Collection": "Collection", + "Collections": "Collections", + "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.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Schedule", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "No subtitles", + "Default": "Default", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Subtitle Settings", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelTextSize": "Text size", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "Hide": "Hide", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Audio Settings", + "LabelAudioLanguagePreference": "Preferred audio language", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Video Quality", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Latest Media", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "Genre": "Genre", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directors: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Theme songs", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Favorite Movies", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Favorite Shows", + "HeaderFavoriteEpisodes": "Favorite Episodes", + "HeaderFavoriteVideos": "Favorite Videos", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Favorite Games", + "HeaderFavoriteArtists": "Favorite Artists", + "HeaderFavoriteAlbums": "Favorite Albums", + "HeaderFavoriteSongs": "Favorite Songs", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/es-MX.json b/modules/common/strings/es-MX.json new file mode 100644 index 0000000..c6a44b0 --- /dev/null +++ b/modules/common/strings/es-MX.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby esta diseñado para ayudarlo a administrar su biblioteca de medios personal, tales como vídeos caseros y fotografías. Por favor vea nuestros {0}términos de uso{1}. Al usar cualquier software de Emby constituye la aceptación de dichos términos.", + "MessageUnableToConnectToServer": "No es posible conectarse al servidor seleccionado en este momento. Por favor asegúrese de que se encuentra en ejecución e inténtelo nuevamente.", + "EmbyIntroMessage": "Con Emby usted puede transmitir videos, musica y fotos hacia su telefono inteligente, tabla u otros equipos desde su Servidor Emby.", + "HeaderSignInWithConnect": "Inicie con su cuenta de Emby Connect", + "HeaderWelcomeToEmby": "Bienvenidos a Emby", + "HeaderNewUsers": "Nuevos Usuarios", + "HeaderPleaseSignIn": "Por favor Inicie Sesión", + "MessageInvalidUser": "Usuario o contraseña inválidos. Por favor intenta de nuevo.", + "MessageUnlockAppWithPurchaseOrSupporter": "Desbloquee esta característica con una pequeña compra única, o con una suscripción activa de Emby Premier.", + "MessageUnlockAppWithSupporter": "Desbloquee esta característica con una suscripción activa de Emby Premier.", + "MessageToValidateSupporter": "Si tiene una subscripción de Emby Premiere activa, asegúrese 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ú principal.", + "ValueSpecialEpisodeName": "Especial - {0}", + "HeaderSignIn": "Iniciar Sesión", + "Share": "Compartir", + "Shared": "Compartido", + "Info": "Info", + "Add": "Agregar", + "Speed": "Velocidad", + "PlaybackSpeed": "Velocidad de Reproducción", + "Chapters": "Capítulos", + "Password": "Contraseña", + "SavePassword": "Guardar Contraseña", + "LabelPassword": "Contraseña", + "HeaderResetPassword": "Restablecer Contraseña", + "Series": "Series", + "Preview": "Vista Previa", + "Submit": "Enviar", + "Never": "Nunca", + "Table": "Tabla", + "HeaderScheduledTasks": "Tareas Programadas", + "Plays": "Reproducciones", + "LastUsedAddressValue": "Ultima vez usado {0}", + "LabelKeywordType": "Tipo de Palabra Clave", + "HeaderSelectColumns": "Seleccionar Columnas", + "HeaderTopResults": "Top Resultados", + "HeaderPinSidebar": "Fijar Barra Lateral", + "Collapse": "Colapsar", + "LabelBackgroundVideoPlayback": "Reproducción de vídeo de fondo", + "BackgroundVideoPlaybackHelp": "La reproducción de vídeo de fondo permite que la reproducción del vídeo continúe aun cuando la pantalla haya sido apagada.", + "AlwaysOn": "Siempre encendido", + "HeadphonesOrExternalSpeakersConnected": "Audífonos o altavoces externos conectados.", + "HeaderKeyboardAndRemote": "Teclado y Control Remoto", + "NoSelectedItemsSupportOperation": "No hay elementos seleccionados que soporten esta operación.", + "NoOperationsForSelectedItems": "No hay operaciones disponibles para los elementos seleccionados.", + "UploadOnlyOnWifi": "Subir solo en Wifi", + "HeaderFoldersToUpload": "Carpetas a Subir", + "LabelPasswordConfirm": "Contraseña (confirmar)", + "HeaderMoveUpInOrder": "Mover Hacia Arriba en el Orden", + "HeaderDownUpInOrder": "Mover Hacia Abajo en el Orden", + "LabelUsername": "Nombre Usuario", + "HeaderAddServer": "Agregar Servidor", + "HeaderSubtitleOffset": "Compensación de Subtitulo", + "Watching": "Viendo", + "HeaderRemoveFromContinueWatching": "Quitar de Continuar Viendo", + "RemoveThisTitleFromContinueWatching": "¿Quitar este titulo de Continuar Viendo?", + "HeaderRemoveFromContinueListening": "Quitar de Continuar Escuchando", + "RemoveThisTitleFromContinueListening": "Quitar este titulo de Continuar Escuchando?", + "HeaderIncreaseSubtitleOffset": "Incrementar Compensación de Subtitulo", + "HeaderDecreaseSubtitleOffset": "Disminuir Compensación de Subtitulo", + "Close": "Cerrar", + "HeaderSeeAll": "Ver Todo", + "HeaderOpenInNewWindow": "Abrir en una Ventana Nueva", + "LabelEmail": "Email", + "LabelHost": "Servidor", + "LabelHostHelp": "Ejemplo: 192.168.1.100 o https://miservidor.com", + "LabelPort": "Puerto", + "Disabled": "Deshabilitado", + "Uninstall": "Desinstalar", + "Enable": "Habilitar", + "AllTuners": "Todas los sintonizadores", + "Disable": "Deshabilitar", + "NextValue": "Siguiente: {0}", + "HeaderNextItem": "Siguiente Ítem", + "HeaderPreviousItem": "Ítem Anterior", + "NoTrailersMessage": "No se encontraron Trailers. Para agregar Trailers, por favor instale el complemento de Trailers del {0}catalogo de complementos Emby{1}", + "UninstallPluginConfirmation": "¿Esta seguro de que desea desinstalar este complemento?", + "HeaderUninstallPlugin": "Desinstalar Complemento", + "AreYouStillWatching": "¿Seguir Mirando?", + "LabelCurrentPassword": "Contraseña actual", + "LabelNewPassword": "Nueva contraseña", + "LabelNewPasswordConfirm": "Confirmación de contraseña nueva", + "HeaderRemovePassword": "Eliminar Contraseña", + "ServerUpdateNeeded": "Este Servidor Emby necesita ser actualizado. Para descargar la ultima versión, por favor visite {0}", + "MessageThankYouForConnectSignUp": "Gracias por registrarse a Emby Connect. Un correo electrónico sera enviado a su dirección con instrucciones de como confirmar su nueva cuenta. Por favor confirme la cuente y regrese aquí para iniciar sesión.", + "MessageThankYouForConnectSignUpNoValidation": "¡Gracias por registrarse en Emby Connect! Ahora se le solicitara iniciar sesión con su información de Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "La Contraseña y la confirmación de la contraseña deben coincidir.", + "ErrorMessageUsernameInUse": "El Nombre de Usuario ya esta en uso. Por favor seleccione un nuevo nombre e intente de nuevo.", + "ErrorMessageEmailInUse": "La dirección de correo electrónico ya esta en uso. Por favor ingrese un correo electrónico nuevo e intente de nuevo, o si olvido la contraseña use la opción \"Olvide mi contraseña\".", + "HeaderUpcomingOnTV": "Próximamente en TV en Vivo", + "HeaderOtherShowings": "Otras Programaciones", + "Showings": "Programaciones", + "HeaderConnectToServer": "Conectarse al servidor", + "ConnectToServerManually": "Conectar al servidor manualmente", + "LabelEnterConnectUserNameHelp": "Esta es la dirección de correo electrónico que uso para configurar su cuenta de Emby Connect.", + "HeaderSignInError": "Error al Iniciar Sesión", + "HeaderManualLogin": "Inicio de Sesión Manual", + "PasswordResetConfirmation": "¿Está seguro de querer restablecer la contraseña?", + "ContactAdminToResetPassword": "Por favor contacte a su administrador de sistema para restablecer su contraseña.", + "ForgotPasswordInNetworkRequired": "Por favor intente de nuevo dentro de su red de hogar para iniciar el proceso de restablecimiento de contraseña.", + "ForgotPasswordFileCreated": "El siguiente archivo fue creado en tu servidor y contiene instrucciones de como proceder:", + "ForgotPasswordFileExpiration": "El pin de restablecimiento expirara en {0}.", + "InvalidForgotPasswordPin": "Se introdujo un pin expirado o invalido. Por favor intente de nuevo.", + "PasswordResetForUsers": "Las contraseñas han sido eliminadas para los siguientes usuarios. Para acceder, inicie sesión con la contraseña en blanco.", + "HeaderForgotPassword": "¿Olvidó la Contraseña?", + "ForgotPasswordUsernameHelp": "Déjelo en blanco si no recuerda su nombre de usuario.", + "HeaderPasswordReset": "Restablecer Contraseña", + "AttributeNew": "Nuevo", + "Done": "Hecho", + "HeaderResetToDefault": "Restaurar a predeterminadas", + "Deinterlacing": "Dezentrelazado", + "HeaderBurningInSubtitles": "Quemado de Subtítulos", + "Premiere": "Premier", + "LabelPinCode": "Código pin", + "LabelLocalNetworkPinCode": "Código pin para red local", + "LabelLocalNetworkPasswordMode": "Modo de inicio de sesión en red local", + "RequirePasswordInLocalNetwork": "Pedir contraseña en la red local", + "NoPasswordInLocalNetwork": "No pedir contraseña en la red local", + "PinCodeInLocalNetwork": "Permitir un código pin numérico en la red local", + "LocalNetworkPasswordModeHelp": "Elija el método de inicio de sesión para dispositivos en la misma red local que la de su Servidor Emby", + "HeaderLocalNetworkAccess": "Acceso en la Red Local", + "Live": "En Vivo", + "Reset": "Resetear", + "Repeat": "Repetir", + "Track": "Pista", + "Tracks": "Pistas", + "HeaderCameraUpload": "Subir desde la Cámara", + "TrackCount": "{0} Pistas", + "ItemCount": "{0} Items", + "NumberChannelsValue": "{0} Canales", + "HeaderLatestMusic": "Música Reciente", + "HeaderLatestAudioBooks": "Recientes Audio Libros", + "HeaderLatestDownloadedVideos": "Últimos Videos Descargados", + "HeaderRecentlyPlayed": "Reproducido Recientemente", + "Recent": "Reciente", + "HeaderFrequentlyPlayed": "Reproducido Frecuentemente", + "HeaderMoreLikeThis": "Mas Como Esto", + "HeaderMoreLikeThisOnLiveTV": "Similares en TV en Vivo", + "OriginalAirDateValue": "Fecha de emisión original: {0}", + "EndsAtValue": "Termina a las {0}", + "Date": "Fecha", + "AirDate": "Fecha de Emisión", + "Played": "Reproducido", + "Daily": "A Diario", + "Weekly": "Semanalmente", + "RequireHashMatch": "Necesita coicidencia perfecta", + "RequireHashMatchHelp": "Al requerir una coincidencia perfecta se filtraran los subtitulos para incluir solo aquellos que han sido probados con tu mismo archivo de video. Deshabilitar esta opcion incrementara el numero de subtitulos encontrados, pero tambien incrementara las posibilidades de encontrar subtituols no sincronizados o incorrectos.", + "SearchForForcedSubtitlesOnly": "Únicamente subtítulos forzados", + "SearchForForcedSubtitlesOnlyHelp": "Al requerir subtitulos forzados limitara los resultados a subtitulos que esten etiquetados como los que estan en un idioma extranjero.", + "LastEpisodeDateAdded": "Fecha del Ultimo Episodio Agregada", + "LastEpisodeDateAired": "Fecha de Estreno del Ultimo Episodio", + "LabelPlaystate": "Estatus de Reproducción", + "Studio": "Estudio", + "Tag": "Etiqueta", + "EpisodeTitle": "Título del Episodio", + "Audio": "Audio", + "Video": "Vídeo", + "Subtitle": "Subtitulo", + "Image": "Imagen", + "CopyStream": "Copiar transmisión original", + "LabelAudioLayout": "Configuración de audio", + "LabelAudioCodec": "Codec de audio", + "LabelAudioLanguage": "Idioma de Audio", + "LabelSubtitleLanguage": "Idioma de Subtitulo", + "LabelVideoCodec": "Codec de video", + "LabelSubtitleCodec": "Codec de subtitulos", + "LabelParentalRating": "Clasificación parental", + "BecauseYouLikeValue": "Porque te gustó {0}", + "BecauseYouWatchedValue": "Porque viste {0}", + "DirectedByValue": "Dirigido por {0}", + "StarringValue": "Protagonizado por {0}", + "Invitations": "Invitaciones", + "ActorAsRole": "como {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Agrupar elementos en colecciones", + "GroupItemsIntoCollectionsHelp": "Agrupar elementos basado en las colecciones a las que han sido agregados. Al habilitar ciertos filtros u orden podría deshabilitar esto automáticamente.", + "GroupItemsIntoTags": "Agrupar elementos en etiquetas", + "GroupItemsIntoTagsHelp": "Agrupa elementos basado en las etiquetas a las que han sidos agregados. Habilitar algunos filtros o cambiar el orden podría desactivarlo automáticamente.", + "User": "Usuario", + "Access": "Acceso", + "Users": "Usuarios", + "Library": "Biblioteca", + "Devices": "Dispositivos", + "Cancel": "Cancelar", + "Restart": "Reiniciar", + "Shutdown": "Apagar", + "Logs": "Bitácoras", + "Visibility": "Visibilidad", + "Notifications": "Notificaciones", + "SendTestNotification": "Enviar Notificación de Prueba", + "NotificationSent": "Notificación enviada", + "DeleteNotificationConfirmation": "¿Esta seguro de que desea borrar esta notificación?", + "DeleteNotification": "Borrar Notificación", + "AddNotification": "Agregar Notificación", + "EditNotification": "Editar Notificación", + "LimitUserEventsTo": "Limitar los eventos de usuario a", + "LimitLibraryEventsTo": "Limitar los eventos de biblioteca a", + "LimitDeviceEventsTo": "Limitar eventos de dispositivos a", + "ForAdditionalNotificationOptions": "Servicios de notificación adicionales pueden ser instalados por el administrador del servidor en el {0}catalogo de complementos{1} de Emby.", + "Plugins": "Complementos", + "Systems": "Sistemas", + "Server": "Servidor", + "Dashboard": "Panel de Control", + "PlayOnAnotherDevice": "Reproducir en otro dispositivo", + "HeaderConnectionHelp": "Ayuda con la Conexión", + "AccessRestrictedTryAgainLater": "El acceso esta restringido en este momento. Por favor intente de nuevo mas tarde.", + "ButtonGotIt": "Hecho", + "RememberMe": "Recuerdame", + "EmbyServer": "Servidor Emby", + "ManageEmbyServer": "Administrar Servidor Emby", + "ShutdownServer": "Apagar el Servidor Emby", + "RestartServer": "Reiniciar el Servidor Emby", + "RecordingCancelled": "Grabación Cancelada", + "SeriesCancelled": "Serie Cancelada", + "Recording": "Grabando", + "SeriesRecording": "Grabación de Series", + "RecordingScheduled": "Grabación Programada", + "SeriesRecordingScheduled": "Grabación de Serie Programadas", + "HeaderNewRecording": "Nueva Grabación", + "HeaderWakeServer": "Despertar Servidor", + "AttemptingWakeServer": "Intentando despertar el servidor. Por favor espere...", + "WakeServerSuccess": "¡Éxito!", + "HeaderCustomizeHomeScreen": "Personalizar la Pantalla de Inicio", + "WakeServerError": "Se enviaron los paquetes Wake On LAN (Despertar por red) a su computadora servidor, pero no ha sido posible contactar a su Servidor Emby. Su computadora quizás necesite un poco mas de tiempo para despertar, o tal vez la aplicación de Servidor Emby no se esta ejecutando en la computadora.", + "Days": "Días", + "Network": "Red", + "Networks": "Cadenas", + "SortByValue": "Ordenar por {0}", + "HeaderSortBy": "Ordenar Por", + "HeaderPhotoAlbums": "Álbumes de Fotos", + "Photos": "Fotos", + "HeaderAppearsOn": "Aparece En", + "List": "Lista", + "HeaderRecordSeries": "Grabar Series", + "HeaderCinemaMode": "Intros de Cine", + "Conversions": "Conversiones", + "Downloads": "Descargas", + "HeaderManageDownloads": "Administrar Descargas", + "InternalStorage": "Almacenamiento interno", + "ExternalStorage": "Almacenamiento externo", + "UploadToFollowingServers": "Subir a los Servidores:", + "UploadingNumItems": "Subiendo {0} de {1}", + "DownloadNumItems": "Descargando {0} de {1}", + "HeaderSampleRate": "Tasa de muestreo", + "HeaderReferenceFrames": "Cuadros de Referencia", + "HeaderBitDepth": "Profundidad de bit", + "HeaderPixelFormat": "Formato de pixel", + "Profile": "Perfil", + "Bitrate": "Tasa de bits", + "Expand": "Expandir", + "Container": "Contenedor", + "Format": "Formato", + "Path": "Ruta", + "Size": "Tamaño", + "Resolution": "Resolución", + "HeaderCodecTag": "Etiqueta de Codec", + "Framerate": "Cuadros por segundo", + "Interlaced": "Entrelazado", + "Anamorphic": "Anamórfico", + "Level": "Nivel", + "Timestamp": "Fecha y hora", + "Language": "Idioma", + "Codec": "Codec", + "Stream": "Transmisión", + "HeaderExtradata": "Datos Extra", + "HeaderHardwareAcceleratedTranscoding": "Transcodificacion Acelerada por Hardware", + "HeaderHardwareAcceleratedTranscodingDescription": "Aproveche la GPU de su servidor. Emby tiene la mas avanzada y rápida aceleración por hardware en la industria.", + "HeaderOfflineDownloads": "Medios sin conexion", + "AndMuchMoreExclamation": "¡Y mucho mas!", + "HeaderOfflineDownloadsDescription": "Descargue sus medios en su dispositivo para fácil uso mientras esta desconectado.", + "LiveTvFeatureDescription": "Transmita TV en vivo a una aplicación 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": "Los Intros de Cine le dan una verdadera experiencia de cine con trailers e intros personalizados antes de la función.", + "HeaderFreeApps": "Aplicaciones Emby Gratuitas", + "FreeAppsFeatureDescription": "Disfrute acceso gratuito para elegir aplicaciones Emby para sus dispositivos.", + "HeaderBecomeProjectSupporter": "Obtener Emby Premier", + "HeaderViewServerInfo": "Ver Información el Servidor", + "PlaybackTvModeRequiresEmbyPremiere": "La reproducción de medios en el modo TV requiere una suscripción activa de {0}Emby Premiere{1}", + "FeatureRequiresEmbyPremiere": "Esta característica requiere de una suscripción activa {0} de Emby Premiere {1}.", + "HeaderConvertYourRecordings": "Convertir Sus Grabaciones", + "Record": "Grabar", + "Save": "Guardar", + "Edit": "Editar", + "HeaderSavePlaylist": "Guardar Lista de Reproducción", + "Latest": "Recientes", + "Download": "Descargar", + "Downloaded": "Descargado", + "Converted": "Convertido", + "RemoveFromHistory": "Eliminar del Historial", + "ConfirmRemoveFromHistory": "¿Eliminar este ítem del historial?", + "Downloading": "Descargando", + "Advanced": "Avanzado", + "LinkedToEmbyConnect": "Enlazado a Emby Connect", + "Delete": "Eliminar", + "Both": "Ambos", + "LabelChannelDisplay": "Mostrar canal", + "HeaderDeleteItem": "Eliminar Ítem", + "HeaderDeleteUser": "Eliminar Usuario", + "DeleteItemConfirmation": "¿Esta seguro de que desea eliminar {0}?", + "DeleteUserConfirmation": "¿Esta seguro de que desea eliminar el usuario {0}?", + "DeleteUsersConfirmation": "¿Esta seguro que desea eliminar estos {0} usuarios?", + "HeaderDeleteDevice": "Eliminar Dispositivo", + "DeleteDeviceConfirmation": "¿Esta seguro de que desea eliminar este dispositivo? Volverá a aparecer la próxima vez que un usuario inicie sesión con el.", + "ConfirmDeleteItem": "Al eliminar este ítem se eliminará tanto del sistema de archivos como de su biblioteca de medios.", + "FollowingFilesWillBeDeleted": "Los siguientes archivos y carpetas seran borrados:", + "AreYouSureToContinue": "¿Esta seguro de que desea continuar?", + "Refresh": "Actualizar", + "RefreshingMetadataDots": "Actualizando metadatos...", + "ScanningLibraryFilesDots": "Escaneando archivos de biblioteca...", + "HeaderFavoritesThenByChannelNumber": "Favoritos, Luego Canales por Numero", + "HeaderAddToCollection": "Agregar a Colección", + "HeaderFavoritesThenByTitle": "Favoritos, Luego por Titulo", + "HeaderFavoritesThenByDefault": "Favoritos, Luego por Orden Predeterminado de Canales", + "HeaderDefaultChannelOrder": "Orden Predeterminado de Canales", + "HeaderAddToFavorites": "Agregar a Favoritos", + "HeaderRemoveFromFavorites": "Quitar de Favoritos", + "Favorited": "Agregado a Favoritos", + "Unfavorited": "Eliminado de Favoritos", + "HeaderNewCollection": "Nueva Colección", + "HeaderNewPlaylist": "Nueva lista de reproducción", + "AllCollections": "Todas las Colecciones", + "AllPlaylists": "Todas las Listas de Reproducción", + "Create": "Crear", + "HeaderAddedToPlaylist": "Agregado a Lista de Reproduccion", + "HeaderAddedToCollection": "Agregado a Colección", + "OneItemAddedTo": "1 elemento añadido a \"{0}\".", + "ItemsAddedTo": "{0} elementos añadidos a \"{1}\"", + "HeaderAddedToPlayQueue": "Agregado a Cola de Reproducción", + "HeaderPlayingNext": "Reproducir Siguiente", + "Help": "Ayuda", + "HeaderGetHelp": "Obtener ayuda", + "LabelTVDisplayMode": "Habilitar modo Pantalla de TV", + "Desktop": "Escritorio", + "Mobile": "Móvil / Tableta", + "Navigation": "Navegación", + "HeaderVideoPlayback": "Reproducción de Vídeo", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Temporadas", + "OneTrack": "1 Pista", + "OneSeason": "1 Temporada", + "Libraries": "Bibliotecas", + "NumberSeasonsValue": "{0} Temporadas", + "TVDisplayModeHelp": "Optimiza la interfaz de usuario en este dispositivo para una pantalla de TV y con el método de entrada de un control remoto. Esto generalmente no esta recomendado si su método de entrada principal es un mouse o basado en tacto.", + "LabelDisplayLanguage": "Idioma en pantalla", + "LabelDisplayLanguageHelp": "La traducción de Emby es un proyecto en curso.", + "LearnHowYouCanContribute": "Aprenda como puede contribuír.", + "NewCollectionHelp": "Las colecciones le permiten disfrutar de agrupaciones personalizadas de películas y otros contenidos de la biblioteca.", + "SearchForCollectionInternetMetadata": "Buscar en internet ilustraciones y metadatos", + "DisplayMissingEpisodesWithinSeasons": "Desplegar episiodos faltantes en las temporadas", + "DisplayMissingEpisodesWithinSeasonsHelp": "Debe habilitarse también en las bibliotecas de TV en la configuraciòn del Servidor Emby.", + "EnableThemeSongs": "Habilitar canciones de tema", + "EnableBackdrops": "Habilitar imágenes de fondo", + "EnableThemeSongsHelp": "Al habilitarse, las canciones de tema serán reproducidas en el fondo mientras navega en la biblioteca.", + "EnableBackdropsHelp": "Al habilitarse, las imágenes de fondo serán deplegadas en el fondo de algunas páginas mientras navega en la biblioteca.", + "EnableThemeVideos": "Habilitar videos de tema", + "EnableThemeVideosHelp": "Al habilitarse, los videos de tema serán reproducidos en el fondo mientras navega en la biblioteca.", + "RunAtStartup": "Ejecutar al iniciar", + "ServerStartup": "Inicio del Servidor", + "EmbyServerOnXHasStarted": "Se ha iniciado el Servidor Emby en {0}.", + "LabelScreensaver": "Protector de Pantalla", + "LabelSoundEffects": "Efectos de Sonido", + "LabelName": "Nombre", + "NewCollectionNameExample": "Ejemplo: Colección Guerra de las Galaxias", + "MessageItemsAdded": "Ítems agregados.", + "OptionNew": "Nuevo...", + "LabelPlaylist": "Lista de Reproducción", + "AddToPlaylist": "Agregar a lista de reproducción", + "HeaderAddToPlaylist": "Agregar a Lista de Reproducción", + "Subtitles": "Subtítulos", + "LabelTheme": "Tema", + "LabelSettingsTheme": "Tema de configuraciones", + "LabelThemeAccentColor": "Color de resaltado", + "ThemeAccentColorDescription": "Controla el color de los indicadores importantes, iconos y texto.", + "SearchForSubtitles": "Buscar Subtitulos", + "LabelLanguage": "Idioma", + "Search": "Buscar", + "NoSubtitleSearchResultsFound": "No se encontraron resultados. ¿Ha configurado la {0}descarga de subtitulos{1}?", + "NoLyricsSearchResultsFound": "No se encontraron resultados. ¿Ha configurado la {0}descarga de letras{1}?", + "Lyrics": "Letras", + "SearchForLyrics": "Buscar Letras", + "Finish": "Terminar", + "File": "Archivo", + "Exit": "Salir", + "Sleep": "Suspender", + "Setup": "Configuración", + "MessageAreYouSureDeleteSubtitles": "¿Está seguro de querer eliminar este archivo de subtitulos?", + "ConfirmDeletion": "Confirmar Eliminación", + "MySubtitles": "Mis Subtitulos", + "MessageDownloadQueued": "Descargar cola.", + "HeaderEditSubtitles": "Editar Subtítulos", + "UnlockGuide": "Desbloquear Guía", + "HeaderRefreshMetadata": "Actualizar Metadatos", + "HeaderRefreshAllMetadata": "Actualizar Todos los metadatos", + "ReplaceExistingImages": "Reemplazar imágenes existentes", + "ReplaceExistingImagesHelp": "Todas las imágenes existentes serán borradas y se descargaran nuevas. En algunos casos esto puede resultar en menos imágenes disponibles que antes.", + "ReplaceAllMetadata": "Remplazar todos los metadatos", + "SearchForMissingMetadata": "Buscar metadatos faltantes", + "LabelRefreshMode": "Modo de actualización", + "NoItemsFound": "No se encontraron ítems.", + "HeaderSaySomethingLike": "Decir Algo Como...", + "ButtonTryAgain": "Intentar de Nuevo", + "HeaderYouSaid": "Ha Dicho...", + "MessageWeDidntRecognizeCommand": "Lo sentimos, no reconocimos ese comando.", + "MessageIfYouBlockedVoice": "Si ha negado el acceso a la voz a la aplicación necesitara reconfigurar antes de intentarlo de nuevo.", + "ValueDiscNumber": "Disco {0}", + "Unrated": "Sin clasificar", + "Favorite": "Favorito", + "Like": "Me gusta", + "Dislike": "No me gusta", + "RefreshDialogHelp": "Los metadatos son actualizados con información nueva basándose en las configuraciones y fuentes de metadatos que estén activados en las configuraciones de cada biblioteca de Emby.", + "Open": "Abrir", + "Play": "Reproducir", + "Pause": "Pausa", + "HeaderPlayQueue": "Reproducir Cola", + "HeaderAddToPlayQueue": "Agregar a la Cola de Reproducción", + "Shuffle": "Aleatorio", + "Identify": "Identificar", + "HeaderRemoveIdentification": "Eliminar Identificación", + "ResetMetadataConfirmation": "¿Esta seguro que desea restaurar todos los metadatos?", + "HeaderEditMetadata": "Editar Metadatos", + "Convert": "Convertir", + "Resume": "Continuar", + "HeaderInstantMix": "Mix instantáneo", + "HeaderGoToItem": "Ir al Ítem", + "HeaderGoToSeason": "Ir a Temporada", + "HeaderGoToSeries": "Ir a Serie", + "HeaderGoToAlbum": "Ir a Álbum", + "HeaderGoToArtist": "Ir a Artista", + "HeaderPlayAll": "Reproducir todo", + "PictureInPicture": "Pantalla en pantalla.", + "Fullscreen": "Pantalla Completa", + "ExitFullscreen": "Salir de pantalla completa", + "Rewind": "Regresar", + "FastForward": "Avance Rápido", + "Remove": "Eliminar", + "Rename": "Renombrar", + "Queue": "A cola", + "QueueAllFromHere": "Encolar todos desde aquí", + "PlayAllFromHere": "Reproducir todos desde aquí", + "PlayFromBeginning": "Reproducir Desde el Inicio", + "FromBeginning": "Desde el Inicio", + "ResumeAt": "Reanudar desde {0}", + "HeaderRemoveFromPlaylist": "Eliminar de la Lista de Reproducción", + "HeaderRemoveFromPlayQueue": "Quitar de Cola de Reproducción", + "HeaderRemoveFromCollection": "Remover de la Colección", + "Sort": "Ordenar", + "Trailer": "Trailer", + "SelectNone": "Borrar Selección", + "SelectAll": "Seleccionar Todo", + "HeaderMarkPlayed": "Marcar como Reproducido", + "HeaderMarkUnplayed": "Marcar como No Reproducido", + "HeaderGroupVersions": "Agrupar Versiones", + "PleaseSelectTwoItems": "Por favor selecciona al menos dos ítems.", + "HeaderConfirmRecordingCancellation": "Confirmar Cancelación de la Grabación", + "MessageConfirmRecordingCancellation": "¿cancelar esta grabación?", + "Album": "Álbum", + "AlbumArtist": "Artista del Album", + "Error": "Error", + "VoiceInput": "Entrada de Voz", + "LabelContentType": "Tipo de Contenido", + "LabelPath": "Ruta", + "Playlists": "Listas de reproducción", + "LabelTitle": "Titulo", + "LabelOriginalTitle": "Titulo original", + "LabelSortTitle": "Titulo para ordenar", + "LabelDateAdded": "Fecha de adición", + "DateAdded": "Fecha de Adición", + "DateModified": "Fecha de Modificación", + "DatePlayed": "Fecha de Reproducción", + "DateLastActive": "Fecha de Ultima Actividad", + "ConfigureDateAdded": "Configure como la fecha de adición es determinada en el Panel de Control del Servidor Emby bajo la configuración de Bibliotecas", + "LabelStatus": "Estado", + "LabelArtistsHelp": "Separar múltiples empleando:", + "HeaderAlbumArtists": "Artistas del álbum", + "LabelAlbumArtists": "Artistas del álbum", + "LabelAlbum": "Álbum", + "Artist": "Artista", + "Artists": "Artistas", + "ImdbRating": "Calificación de IMDb", + "CommunityRating": "Calificación de la Comunidad", + "LabelCommunityRating": "Calificación de la comunidad", + "LabelCriticRating": "Calificación de la crítica", + "CriticRating": "Calificación de la Crítica", + "LabelWebsite": "Sitio web", + "Tagline": "Eslogan", + "LabelOverview": "Sinopsis", + "LabelShortOverview": "Sinopsis corta", + "LabelReleaseDate": "Fecha de estreno", + "LabelPlaceOfBirth": "Lugar de nacimiento", + "Aired": "Transmitido", + "LabelAirDays": "Se emite los días", + "LabelAirTime": "Duración", + "LabelRuntimeMinutes": "Duración (minutos)", + "LabelCustomRating": "Calificación personalizada", + "LabelOriginalAspectRatio": "Relación de aspecto original", + "Label3DFormat": "Formato de 3D", + "FormatValue": "Formato: {0}", + "DownloadsValue": "{0} Descargas", + "HashMatch": "Coincidencia Perfecta", + "EnableExternalVideoPlayers": "Habilitar reproductores externos de video", + "EnableExternalVideoPlayersHelp": "Un menú de reproductor externo se mostrara cuando inicie la reproducción de un video.", + "HeaderSpecialEpisodeInfo": "Información del Episodio Especial", + "LabelAirsDuringSeason": "Se transmite en la temporada", + "LabelAirsAfterSeason": "Se transmite después de la temporada", + "LabelAirsBeforeEpisode": "Transmisión antes del episodio", + "HeaderExternalIds": "IDs Externos", + "HeaderDisplaySettings": "Configuración de Pantalla", + "PlaylistOrder": "Orden en Listas de Reproducción", + "CollectionOrder": "Orden en Colecciones", + "LabelDisplayOrder": "Orden para mostrar", + "LabelFileOrder": "Orden de los archivos", + "Display": "Pantalla", + "Countries": "Países", + "Genres": "Géneros", + "Studios": "Estudios", + "Tags": "Etiquetas", + "Links": "Enlaces", + "Movie": "Película", + "Program": "Programa", + "Channel": "Canal", + "Episode": "Episodio", + "Season": "Temporada", + "HeaderMetadataSettings": "Configuración de metadatos", + "People": "Personas", + "Number": "Número", + "Lock": "Bloquear", + "HeaderScreenLocked": "Pantalla Bloqueada", + "HeaderUnlockControls": "Controles de Desbloqueo", + "HeaderTapToUnlock": "Tocar para Desbloquear", + "LabelMetadataDownloadLanguage": "Idioma preferido para descarga de metadatos", + "LabelImageDownloadLanguage": "Idioma preferido para descarga de imágenes", + "LabelLockItemToPreventChanges": "Bloquear este ítem para evitar cambios futuros", + "LockThisField": "Bloquear este campo para prevenir futuros cambios al actualizar los metadatos", + "MessageLeaveEmptyToInherit": "Dejar vacío para heredar la configuración del ítem padre, o el valor global por omisión.", + "LabelCountry": "País", + "LabelCertificationCountry": "País de certificación", + "CertificationCountryHelp": "Esto afectara que sistema de clasificación es usado.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Año de nacimiento", + "LabelBirthDate": "Fecha de Nacimiento", + "LabelDeathDate": "Fecha de defunción", + "LabelEndDate": "Fecha de Fin", + "LabelSeasonNumber": "Temporada numero", + "LabelEpisodeNumber": "Episodio numero", + "LabelTrackNumber": "Número de Pista", + "LabelNumber": "Número", + "LabelDiscNumber": "Número de disco", + "LabelParentNumber": "Número antecesor", + "SortName": "Nombre para Ordenar", + "OriginalTitle": "Título Original", + "ReleaseDate": "Fecha de Estreno", + "Continuing": "Continuando", + "Ended": "Finalizado", + "HeaderEnabledFields": "Campos Habilitados", + "HeaderEnabledFieldsHelp": "Desmarcar un campo para bloquearlo y prevenir que sus datos cambien.", + "Backdrops": "Imágenes de fondo", + "Images": "Imágenes", + "Runtime": "Duración", + "ProductionLocations": "Lugares de produccion", + "BirthLocation": "Lugar de nacimiento", + "ParentalRating": "Clasificación Parental", + "PlayCount": "Cantidad de reproducciones", + "Name": "Nombre", + "Overview": "Sinopsis", + "LabelType": "Tipo", + "LabelPersonRole": "Rol", + "LabelPersonRoleHelp": "Ejemplo: Conductor de camión de helados", + "Actor": "Actor", + "Composers": "Compositores", + "Composer": "Compositor", + "Director": "Director", + "GuestStar": "Estrella invitada", + "Producer": "Productor", + "Writer": "Escritor", + "MessageNoSyncJobsFound": "No se han encontrado descargas. Cree descargas empleando los botones de Sincronizar en la app.", + "MessageNoDownloadsFound": "No hay elementos sin conexión. Descargue sus medios para usarlos sin conexion haciendo clic en Descargar través de la app.", + "InstallingPackage": "Instalando {0}", + "PackageInstallCompleted": "{0} instalación completada.", + "PackageInstallFailed": "{0} instalación fallida.", + "PackageInstallCancelled": "{0} instalación cancelada.", + "SeriesYearToPresent": "{0} - Actualidad", + "OneDevice": "1 Dispositivo", + "DeviceCountValue": "{0} Dispositivos", + "OneLog": "1 Bitácora", + "LogCountValue": "{0} Bitácoras", + "OneVote": "1 Voto", + "VoteCountValue": "{0} Votos", + "OneLike": "1 Me Gusta", + "LikeCountValue": "{0} Me gusta", + "OneUser": "1 Usuario", + "UserCountValue": "{0} Usuarios", + "OneLibrary": "1 Biblioteca", + "LibraryCountValue": "{0} Bibliotecas", + "ValueOneItem": "1 Ítem", + "ValueOneEpisode": "1 episodio", + "ValueEpisodeCount": "{0} episodios", + "Albums": "Álbumes", + "Song": "Canciones", + "Songs": "Canciones", + "Authors": "Autores", + "Books": "Libros", + "AudioBooks": "Audio Libros", + "HeaderAudioBooks": "Audio Libros", + "HeaderAudioBook": "Audio Libro", + "HeaderIdentifyItemHelp": "Introduzca uno o más criterios de búsqueda. Elimine criterios para expandir los resultados.", + "PleaseEnterNameOrId": "Por favor introduzca un nombre o id externo.", + "MessageItemSaved": "Ítem guardado.", + "SearchResults": "Resultados de la búsqueda", + "ServerNameIsRestarting": "El Servidor Emby - {0} se esta reiniciando.", + "ServerNameIsShuttingDown": "El Servidor Emby - {0} se esta apagando.", + "HeaderDeleteItems": "Borrar items", + "ConfirmDeleteItems": "Al borrar estos items serán eliminados tanto del sistema de archivos como de la biblioteca de medios.", + "PleaseRestartServerName": "Por Favor Reinicie el Servidor Emby en {0}", + "ConvertingDots": "Convirtiendo...", + "LabelSyncNoTargetsHelp": "Parece que actualmente no cuentas con ninguna app que soporte descargas sin conexión.", + "DownloadingDots": "Descargando...", + "LearnMore": "Aprenda más", + "LabelBitrateMbps": "Tasa de bits (Mbps)", + "ConvertUnwatchedVideosOnly": "Convertir únicamente vídeos no reproducidos", + "SyncUnwatchedVideosOnly": "Descargar únicamente vídeos no reproducidos", + "ConvertUnwatchedVideosOnlyHelp": "Solo los vídeos que no han sido marcados como reproducidos en su totalidad serán convertidos.", + "SyncUnwatchedVideosOnlyHelp": "Solo los vídeos no han sido marcados como reproducidos en su totalidad serán descargados, se eliminarán los vídeos del dispositivo conforme éstos se vayan reproduciendo en su totalidad.", + "AutomaticallySyncNewContent": "Descargar automáticamente nuevos contenidos", + "AutomaticallySyncNewContentHelp": "Los contenidos nuevos agregados a esta carpeta serán descargados automáticamente al dispositivo.", + "AutomaticallyConvertNewContent": "Convertir contenidos nuevos automáticamente", + "AutomaticallyConvertNewContentHelp": "Los contenidos nuevos agregados a esta carpeta serán convertidos automáticamente.", + "LabelItemLimit": "Límite de Ítems", + "ConvertItemLimitHelp": "Opcional. Establecer un límite en el número de ítems que serán convertidos.", + "DownloadItemLimitHelp": "Opcional. Establecer un límite en el número de ítems que serán descargados.", + "PleaseSelectDeviceToSyncTo": "Por favor seleccione un dispositivo con al que desee descargar.", + "Screenshots": "Capturas de pantalla", + "MoveRight": "Mover a la derecha", + "MoveLeft": "Mover a la izquierda", + "HeaderUploadNewImage": "Subir Nueva Imagen", + "HeaderDeleteImage": "Eliminar imagen", + "ConfirmDeleteImage": "¿Eliminar imagen?", + "HeaderEditImages": "Editar imágenes", + "Settings": "Configuración", + "ShowIndicatorsFor": "Mostrar indicadores", + "Episodes": "Episodios", + "Programs": "Programas", + "HeaderCastCrew": "Elenco", + "DvrSubscriptionRequired": "La TV en Vivo y a Grabadora Emby necesitan una suscripción activa {0} de Emby Premiere {1}.", + "HeaderCancelRecording": "Cancelar Grabación", + "HeaderKeepRecording": "Conservar Grabaciones", + "HeaderCancelSeries": "Cancelar Serie", + "HeaderKeepSeries": "Conservar Serie", + "HeaderLearnMore": "Aprenda más", + "SeriesSettings": "Configuración de la Serie", + "HeaderRecordingOptions": "Opciones de Grabación", + "HeaderDoNotRecord": "No grabar", + "HeaderSeriesOptions": "Opciones de Serie", + "Layout": "Diseño", + "Channels": "Canales", + "ChannelNameOnly": "Canal {0} solamente", + "Anytime": "En cualquier momento", + "AnyLanguage": "Cualquier lenguaje", + "AroundTime": "Alrededor de {0}", + "HeaderLatestMovies": "Películas Recientes", + "All": "Todo", + "Stop": "Detener", + "AllChannels": "Todos los canales", + "NewEpisodesOnly": "Solo episodios nuevos", + "AllEpisodes": "Todos los episodios", + "LabelStartWhenPossible": "Iniciar cuando sea posible", + "LabelStopWhenPossible": "Detener cuando sea posible", + "MinutesBefore": "Minutos antes", + "MinutesAfter": "minutos despues", + "SkipEpisodesAlreadyInMyLibrary": "No grabar episodios que ya se encuentran en mi biblioteca", + "SkipEpisodesAlreadyInMyLibraryHelp": "Los episodios serán comparados usando el numero de temporada y de episodio, cuando estén disponibles.", + "LabelKeepUpTo": "Mantener hasta", + "AsManyAsPossible": "Tantos como sea posible", + "DefaultErrorMessage": "Ha ocurrido un error al procesar la solicitud. Por favor inténtelo de nuevo mas tarde.", + "UntilIDelete": "Hasta que yo lo borre", + "UntilSpaceNeeded": "Hasta que se necesite espacio", + "Categories": "Categorías", + "Sports": "Deportes", + "News": "Noticias", + "Movies": "Películas", + "Music": "Música", + "Kids": "Niños", + "MoreFromValue": "Mas de {0}", + "DiedValue": "Falleció: {0}", + "BornValue": "Nacimiento: {0}", + "EnableColorCodedBackgrounds": "Aplicar fondos de color a los programas, basado en su categoría", + "SortChannelsBy": "Ordenar canales por", + "ChannelNumber": "Numero de Canal", + "HeaderBenefitsEmbyPremiere": "Beneficios de Emby Premier", + "ThankYouForTryingEnjoyOneMinute": "Por favor disfrute de un minuto de reproducción. Gracias por probar Emby.", + "HeaderTryPlayback": "Intente Reproducir", + "HowDidYouPay": "¿Cual sera su forma de pago?", + "IHaveEmbyPremiere": "Ya cuento con Emby Premiere", + "IPurchasedThisApp": "Ya he comprado esta app", + "ButtonRestorePreviousPurchase": "Restaurar Compra", + "ButtonUnlockWithPurchase": "Desbloquear con una Compra", + "ButtonUnlockPrice": "Desbloquear {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premier Mensual {0}", + "HeaderAlreadyPaid": "¿Ya ha pagado?", + "ButtonPlayOneMinute": "Reproducir un minuto", + "PlaceFavoriteChannelsAtBeginning": "Colocar canales favoritos al inicio", + "HeaderUnlockFeature": "Desbloquear Característica", + "MessageDidYouKnowCinemaMode": "¿Sabía que con Emby Premier, puede mejorar su experiencia con características como los Intros de Cine?", + "HeaderPlayMyMedia": "Reproducir mis Medios", + "HeaderDiscoverEmbyPremiere": "Descubra Emby Premier", + "HeaderNowPlaying": "Reproduciendo Ahora", + "Items": "Ítems", + "AppName": "Nombre del App", + "OneChannel": "Un canal", + "ConfirmRemoveDownload": "¿Eliminar descarga?", + "ConfirmRemoveItem": "¿Eliminar Ítem?", + "RemoveDownload": "Eliminar Descarga", + "ConfirmCancelConversion": "¿Cancelar conversión?", + "CancelConversion": "Cancelar Conversión", + "KeepDownload": "Seguir descargando", + "AddedOnValue": "Agregado {0}", + "RemovingFromDevice": "Eliminando del dispositivo", + "KeepOnDevice": "Conservar en el dispositivo", + "CancelDownload": "Cancelar descarga", + "SyncJobItemStatusReadyToTransfer": "Listo para Transferir", + "SyncJobItemStatusSyncedMarkForRemoval": "Eliminando del dispositivo", + "SyncJobItemStatusQueued": "En cola", + "SyncJobItemStatusConverting": "Convirtiendo", + "SyncJobItemStatusTransferring": "Transfiriendo", + "SyncJobItemStatusSynced": "Descargado", + "Failed": "Fallido", + "SyncJobItemStatusRemovedFromDevice": "Eliminado del dispositivo", + "Cancelled": "Cancelado", + "Retry": "Volver a intentar", + "Continue": "Continuar", + "ContinueInSecondsValue": "Continua en {0} segundos.", + "HeaderRemoteControl": "Control Remoto", + "Disconnect": "Desconectar", + "EnableDisplayMirroring": "Habilitar duplicación de pantalla", + "RemoteAccess": "Acceso Remoto", + "HeaderPlayOn": "Reproducir En", + "Quality": "Calidad", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "Para restaurar su compra previa, por favor asegúrese de que se encuentra registrado en el dispositivo con la misma cuenta de Google (o Amazon) con que hizo la compra. Asegúrese que la tienda de aplicaciones esta habilitada, no esta restringida por cualquier control parental y que tiene una conexión de internet activa. Esto se tiene que hacer solo una vez para restaurar su compra previa.", + "HeaderAspectRatio": "Relación de aspecto", + "Original": "Original", + "Fill": "Llenar", + "Cover": "Portada", + "MessageNoServersAvailableToConnect": "No hay servidores disponibles para conectarse. Si se le ha invitado a compartir un servidor, asegúrese de aceptarlo aquí abajo o haciendo clic en la liga del correo electrónico.", + "MessagePlayAccessRestricted": "La reproducción de este contenido se encuentra restringida actualmente. Por favor contacte a su administrador del Servidor Emby para mas información.", + "Accept": "Aceptar", + "Reject": "Rechazar", + "Connect": "Conectar", + "HeaderMyMedia": "Mis Medios", + "HeaderMyMediaSmall": "Mis medios (pequeño)", + "LatestFromLibrary": "Recientes {0}", + "HeaderLatestEpisodes": "Episodios Recientes", + "ContinuePlaying": "Continuar reproduciendo", + "ContinueWatching": "Continuar viendo", + "HeaderLatestChannelMedia": "Ítems Recientes de Canales", + "HeaderContinueWatching": "Continuar Viendo", + "HeaderContinueListening": "Continuar Escuchando", + "HeaderActiveRecordings": "Grabaciones Activas", + "HeaderLatestRecordings": "Grabaciones Recientes", + "LabelConvertTo": "Convertir a", + "LabelDownloadTo": "Descargar a", + "HeaderDownloadToDots": "Descargar a...", + "Next": "Siguiente", + "LabelSource": "Fuente", + "VersionNumber": "Versión {0}", + "HeaderAllLanguages": "Todos los Idiomas", + "Previous": "Anterior", + "HeaderNextUp": "A Continuación", + "HeaderPlayNextUp": "Reproducir A Continuación", + "HeaderLatestFrom": "Más recientes desde {0}", + "LabelHomeScreenSectionValue": "Sección de pagina de inicio {0}", + "PasswordResetComplete": "La contraseña ha sido restablecida.", + "PasswordSaved": "Contraseña guardada.", + "SettingsSaved": "Configuración guardada.", + "Upcoming": "Proximamente", + "HeaderSelectImageFile": "Elegir Archivo de Imagen", + "None": "Ninguno", + "More": "Mas", + "Up": "Arriba", + "Down": "Abajo", + "Home": "Inicio", + "Back": "Regresar", + "Random": "Aleatorio", + "Playback": "Reproduccion", + "Favorites": "Favoritos", + "HeaderHomeScreen": "Pantalla de Inicio", + "HeaderLatestChannelItems": "Ítems Recientes de Canales", + "HeaderLibraryOrder": "Orden de Bibliotecas", + "HeaderOnNow": "Transmitiéndo Ahora", + "HeaderForKids": "Para Niños", + "HeaderPlaybackError": "Error de Reproducción", + "PlaybackErrorNotAllowed": "Actualmente no esta autorizado para reproducir este contenido. Por favor contacte a su administrador de sistema para mas información.", + "RateLimitExceeded": "Su cuenta ha excedido el limite máximo de transmisiones configuradas por su administrador del Servidor Emby. Por favor contactelo para asistencia.", + "PlaybackErrorNoCompatibleStream": "No hay streams compatibles en este en este momento. Por favor intente de nuevo mas tarde o contacte a su administrador de sistema para mas detalles.", + "PlaybackErrorPlaceHolder": "Por favor introduzca el disco para poder reproducir este video.", + "PlaybackErrorNoPlayableItems": "Se encontraron elementos reproducibles. ¿Está intentando reproducir una carpeta vacía?", + "Guide": "Guía", + "Games": "Juegos", + "GameSystem": "Sistema de juegos", + "Suggestions": "Sugerencias", + "HeaderFavoriteChannels": "Canales Favoritos", + "HeaderFavoriteCollections": "Colecciones Favoritas", + "HeaderFavoritePlaylists": "Listas de Reproducción Favoritas", + "Collection": "Colección", + "Collections": "Colecciones", + "LabelSelectFolderGroups": "Agrupar automáticamente el contenido de las siguientes carpetas en vistas tales como Películas, Música y TV:", + "LabelSelectFolderGroupsHelp": "Las carpetas sin marcar serán mostradas individualmente en su propia vista.", + "Mute": "Silenciar", + "Unmute": "Activar Sonido", + "Folder": "Carpeta", + "Folders": "Carpetas", + "FileName": "Nombre del Archivo", + "DisplayInOtherHomeScreenSections": "Mostrar en secciones secundarias de la pantalla principal, como Recientes y Continuar viendo", + "DisplayInMyMedia": "Mostrar en pantalla de inicio", + "Shows": "Programas", + "MoviesAndShows": "Películas y Series de TV", + "HeaderMusicVideo": "Vídeo Musical", + "HeaderMusicVideos": "Videos Musicales", + "MusicVideos": "Videos musicales", + "Videos": "Videos", + "MixedContent": "Contenido mezclado", + "HomeVideos": "Videos caseros", + "HomeVideosAndPhotos": "Videos caseros y fotografías", + "TVShows": "Programas de TV", + "HeaderLibraryFolders": "Carpetas de Biblioteca", + "HeaderTermsOfPurchase": "Términos de Compra", + "PrivacyPolicy": "Política de privacidad", + "TermsOfUse": "Términos de Uso", + "HeaderRepeatMode": "Modo de repetición", + "HeaderToneMapping": "Mapeo de Tonos", + "RepeatOne": "Repetir uno", + "RepeatAll": "Repetir todas", + "LabelDefaultScreen": "Pantalla por defecto", + "ConfirmEndPlayerSession": "¿Desea cerrar Emby en {0}?", + "Yesterday": "Ayer", + "Yes": "Sí", + "No": "No", + "HeaderScanLibraryFiles": "Escanear Archivos de la Biblioteca", + "LiveTV": "TV en Vivo", + "Schedule": "Programacion", + "Recordings": "Grabaciones", + "ScanForNewAndUpdatedFiles": "Buscar archivos nuevos y actualizados", + "NewVersionOfXAvailableForY": "{0} esta Disponible para {1}", + "DirectStreamHelp1": "El medio es compatible con el dispositivo en cuanto a la resolución y tipo de medio (H.264, AC3, etc.), pero es un es un contenedor de archivo incompatible (.mkv, .avi, .wmv, etc.). El video sera re empaquetado al vuelo antes de transmitirlo al dispositivo.", + "DirectStreamHelp2": "La Transmisión Directa de un archivo usa muy poco poder de procesamiento sin ninguna perdida en la calidad de video.", + "MediaIsBeingConverted": "Los medios están siendo convertidos a un formato compatible con el dispositivo que esta reproduciendo el medio.", + "StatsForNerds": "Estadísticas para los Nerds", + "HeaderHardwareAcceleratedDecoding": "Decodificación Acelerada por Hardware", + "HeaderHardwareAcceleratedEncoding": "Codificación Acelerada por Hardware", + "HeaderDirectPlay": "Reproducción Directa", + "DirectPlaying": "Reproducción directa", + "DirectStreaming": "Transmisión Directa", + "Transcode": "Transcodificado", + "Transcoding": "Transcodificando", + "ContainerBitrateExceedsLimit": "Reduciendo la tasa de bits por la configuración de calidad", + "VideoCodecNotSupported": "Convirtiendo video a un codec compatible", + "AudioCodecNotSupported": "Convirtiendo audio a un codec compatible", + "SubtitleCodecNotSupported": "Convirtiendo subtitulos directamente en el video", + "DirectPlayError": "Recuperándose de un error de reproducción", + "ContainerNotSupported": "Convirtiendo a un contenedor compatible", + "VideoLevelNotSupported": "Convirtiendo a un nivel de video compatible", + "AudioBitrateNotSupported": "Convirtiendo a un tasa de bits de audio compatible", + "AudioChannelsNotSupported": "Convirtiendo a un numero de canales de audio compatible", + "VideoResolutionNotSupported": "Convirtiendo a una resolución de video compatible", + "AudioProfileNotSupported": "Convirtiendo a un perfil de audio compatible", + "AudioSampleRateNotSupported": "Convirtiendo a un muestreo de audio compatible", + "AnamorphicVideoNotSupported": "Video anamorfico no soportado", + "InterlacedVideoNotSupported": "Desentrelazando video", + "SecondaryAudioNotSupported": "Seleccionando pista de audio secundaria", + "ExternalAudioNotSupported": "Seleccionando una pista de audio externa", + "ErrorRemovingEmbyConnectAccount": "Hubo un error retirando la cuenta de Emby Connect. Por favor asegúrese que su conexión a internet esta activa e intente de nuevo.", + "HeaderEmbyAccountRemoved": "Cuenta Emby Eliminada", + "MessageEmbyAccontRemoved": "La cuenta Emby ha sido eliminada de este usuario.", + "HeaderInvitationSent": "Invitación Enviada", + "Offline": "Desconectado", + "HeaderSignUp": "Registrarse", + "ServerDownloadMessage": "Para descargar e instalar el Servidor Emby gratuitamente visite {0}.", + "ServerDownloadMessageWithoutLink": "Para descargar e instalar el Servidor Emby gratuitamente, visite el sitio web de Emby", + "MessageInvitationSentToUser": "Se ha enviado un correo electrónico a {0}, invitándolo a aceptar tu invitación para compartir.", + "MessageInvitationSentToNewUser": "Un correo electrónico se ha enviado a {0} invitándolos a registrarse en Emby.", + "GuestUserNotFound": "Usuario no encontrado. Por favor asegúrese de que el nombre es correcto e intente de nuevo, o intente introducir la dirección de correo de su invitado.", + "ErrorReachingEmbyConnect": "Hubo un error al tratar de contactar el servidor de Emby Connect. Por favor asegúrese de que tiene una conexión activa de internet e intente de nuevo.", + "ErrorAddingEmbyConnectAccount1": "Hubo un error agregando la cuenta de Emby Connect. ¿Ya ha creado una cuenta de Emby? Registrese en {0}.", + "ErrorAddingEmbyConnectAccount2": "Si continua teniendo problemas, por favor envíe un correo electrónico a {0} desde la dirección de correo electrónico usada con la cuenta Emby.", + "ErrorAddingGuestAccount1": "Hubo un error agregando la cuenta de Emby Connect. ¿Su invitado ya ha creado una cuenta de Emby Connect? Puede registrarse en {0}.", + "ErrorAddingGuestAccount2": "Si continua teniendo problemas, escriba un correo electrónico a {0}, e incluya su dirección de correo electrónico ademas de la de su invitado.", + "MessageEmbyAccountAdded": "La cuenta Emby ha sido agregada a este usuario.", + "MessagePendingEmbyAccountAdded": "La cuenta Emby ha sido agregada a este usuario. Se enviara un correo electrónico al propietario de la cuenta. La invitación necesitara ser confirmada dando clic al enlace dentro del correo electrónico.", + "HeaderEmbyAccountAdded": "Cuenta Emby Agregada", + "Skip": "Omitir", + "HeaderAdditionalParts": "Partes Adicionales", + "ButtonGenerateNewPin": "Generar nuevo Pin", + "ConnectLoginHelp1": "Con Emby Connect usted puede acceder facilmente a su servidor Emby desde cualquier lugar en el que se encuentre y compartirlo con sus familiares y amigos.", + "CreatePinErrorMessage": "Ha ocurrido un error al crear un código pin. Por favor haga clic en Generar Nuevo Pin para intentarlo de nuevo.", + "PinExpiredMessage": "El código pin ha expirado. Por favor haga clic en Generar Nuevo Pin para intentarlo de nuevo.", + "ConnectPinCodeHeader": "Para iniciar sesión en Emby Connect, usa un dispositivo móvil o una computadora para visitar {0} e ingresar el siguiente código pin:", + "LabelSubtitlePlaybackMode": "Modo de subtítulo", + "ErrorDeletingItem": "Hubo un error eliminando el ítem del Servidor Emby. Por favor verifique tenga permisos de escritura en la carpeta de medios e intente de nuevo.", + "NoSubtitles": "Sin Subtitulos", + "Default": "Por defecto", + "Absolute": "Absoluto", + "Smart": "Inteligente", + "Small": "Pequeño", + "Smaller": "Más pequeño", + "Medium": "Mediano", + "Large": "Grande", + "Larger": "Mas grande", + "ExtraLarge": "Extra grande", + "ExtraSmall": "Extra chico", + "Forced": "Forzados", + "External": "Externos", + "HeaderEmbeddedTitle": "Titulo Embebido", + "OnlyForcedSubtitles": "Únicamente subtítulos forzados", + "AlwaysPlaySubtitles": "Siempre mostrar subtítulos", + "DefaultSubtitlesHelp": "Los subtitulos son cargados basados en los indicadores \"por defecto\" y \"forzado\" incluidos en los metadatos. Las preferencias de idioma son consideradas cuando hay múltiples opciones disponibles.", + "SmartSubtitlesHelp": "Los subtítulos que coincidan con el lenguaje preferido serán cargados cuando el audio se encuentre en un lenguaje extranjero.", + "HeaderSubtitleSettings": "Configuración de Subtitulos", + "HeaderSubtitleAppearance": "Apariencia de Subtitulos", + "OnlyForcedSubtitlesHelp": "Se cargarán únicamente subtítulos marcados como forzados.", + "AutoSelectHearingImpairedHelp": "Serán cargados los subtítulos en el idioma preferido, dando preferencia a las pistas marcadas como \"para personas con discapacidad auditiva (SDH)\"", + "AlwaysPlaySubtitlesHelp": "Los subtítulos que coincidan con el lenguaje preferido serán cargados independientemente del lenguaje del audio.", + "NoSubtitlesHelp": "Los subtítulos no serán cargados por defecto. Pero pueden ser activados manualmente durante la reproducción.", + "LabelPreferredSubtitleLanguage": "Idioma preferido para subtitulos", + "LabelTextSize": "Tamaño de texto", + "TheseSettingsAffectSubtitlesOnThisDevice": "Estas configuraciones solo afectan subtitulo de este dispositivo", + "LabelDropShadow": "Mostrar sombra", + "LabelTextBackgroundColor": "Color de fondo para el texto", + "LabelWindowBackgroundColor": "Color de fondo para el texto", + "LabelFont": "Fuente", + "LabelTextColor": "Color de texto", + "LabelBackgroundColor": "Color de fondo", + "LabelBackgroundOpacity": "Transparencia del fondo", + "Raised": "Elevacion", + "Depressed": "Depresión", + "Uniform": "Uniforme", + "DropShadow": "Mostrar sombra", + "SmallCaps": "Mayúsculas pequeñas", + "SubtitleAppearanceSettingsDisclaimer": "Estas configuraciones no se aplicaran a subtitulos gráficos (PGS, DVD, etc.) o a subtitulos que tienen sus propias fuentes embebidas (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Esperando Wifi", + "WifiRequiredToDownload": "Se necesita de una conexión Wifi para continuar descargando.", + "DownloadOnlyOnWifi": "Descargar solo en Wifi", + "LabelMusicDownloadQuality": "Calidad para descarga de música", + "MusicDownloadQualityHelp": "Archivos de audio con una tasa de bits mas alta serán convertidos por el Servidor Emby. Elija un valor mas alto para una mejor calidad, o uno mas bajo para ahorrar espacio de almacenamiento local.", + "HeaderDownloadSettings": "Configuración de Descargas", + "LabelDownloadLocation": "Ruta para descarga", + "BrowseForFolder": "ExplorarCarpetas", + "Unlimited": "Ilimitado", + "NoLimit": "Sin Limite", + "Hide": "Ocultar", + "HeaderKeepWatching": "Continuar Viendo", + "HeaderNextEpisode": "Siguiente Episodio", + "AudioBitDepthNotSupported": "Convirtiendo audio a una profundidad de bits compatible", + "VideoBitrateNotSupported": "Convirtiendo a una tasa de bits de video compatible", + "VideoProfileNotSupported": "Convirtiendo a un perfil de video compatible", + "VideoFramerateNotSupported": "Convirtiendo a un \"framerate\" compatible", + "VideoBitDepthNotSupported": "Convirtiendo video a una profundidad de bits compatible", + "RefFramesNotSupported": "Convirtiendo a un numero compatible de cuadros de referencia en el video", + "ErrorConnectServerUnreachable": "Hubo un error al ejecutar la operación solicitada. Su servidor no puede contactar nuestro servidor de Emby Connect en {0}. Por favor asegúrese de que su servidor tiene una conection a internet activa y que el firewall o software de seguridad permita la comunicación.", + "HeaderStopRecording": "Detener Grabación", + "ManageRecording": "Administrar grabaciones", + "LabelDropImageHere": "Arrastre la imagen aquí, o de clic para elegir una imagen para subir.", + "MessageFileReadError": "Hubo un error al leer el archivo. Por favor intente de nuevo.", + "Browse": "Navegar", + "HeaderUploadImage": "Subir Imagen", + "HeaderAddUpdateImage": "Agregar/Actualizar Imagen", + "HeaderShowFields": "Mostrar Campos", + "LabelView": "Vista", + "LabelImageType": "Tipo de imagen", + "Upload": "Subir", + "Primary": "Principal", + "PrimaryImageBlur": "Desenfoque de la imagen principal", + "Art": "Arte", + "Backdrop": "Imagen de Fondo", + "Banner": "Cartél", + "Box": "Caja", + "BoxRear": "Caja (Reverso)", + "Disc": "DIsco", + "Logo": "Logotipo", + "LogoDark": "Logotipo (Versión Oscura)", + "LogoLight": "Logotipo (Versión Brillante)", + "LogoLightColor": "Logo (Brillante con Color)", + "Menu": "Menú", + "Screenshot": "Captura de pantalla", + "Thumb": "Miniatura", + "HeaderAudioSettings": "Configuración de Audio", + "LabelAudioLanguagePreference": "Idioma preferido de audio", + "LabelPlayDefaultAudioTrack": "Reproducir la pista de audio por defecto independientemente del lenguaje", + "HeaderVideoQuality": "Calidad de Video", + "CinemaModeConfigurationHelp": "Los Intros de Cine traen la experiencia del cine directo al la sala de TV con la habilidad de reproducir tráilers e intros personalizados antes de la presentación estelar.", + "ShowUpNextPreview": "Mostrar vista previa A Continuación", + "ShowUpNextPreviewHelp": "Muestra información del próximo ítem cerca del final del actual.", + "PlayNextEpisodeAutomatically": "Reproducir el siguiente episodio automáticamente", + "LabelMaxChromecastBitrate": "Tasa maxima de bits para El Chromecast", + "LabelSkipBackLength": "Longitud de salto hacia atrás", + "LabelSkipForwardLength": "Longitud de salto hacia adelante", + "EnableCinemaMode": "Activar Intros de Cine", + "LabelInternetQuality": "Calidad para transmisión remota", + "LabelCellularQuality": "Calidad de transmisión remota (celular)", + "HeaderMusicQuality": "Calidad de Musica", + "LabelHomeNetworkQuality": "Calidad para transmisión en casa", + "HeaderLatestMedia": "Agregadas Recientemente", + "HeaderRestartingEmbyServer": "Reiniciando el Servidor Emby", + "RestartPleaseWaitMessage": "Por favor espere mientras el Servidor Emby cierra y reinicia. Este puede tomar un minuto o dos.", + "HeaderPlayNext": "Reproducir Siguiente", + "AutoBasedOnLanguageSetting": "Auto (basado en la configuración del dispositivo)", + "SameAsMainTheme": "La misma que el tema principal", + "LabelDateTimeLocale": "Configuración regional de Fecha y Hora", + "Genre": "Genero", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directores: {0}", + "GenreValue": "Genero: {0}", + "GenresValue": "Géneros: {0}", + "TagsValue": "Etiquetas: {0}", + "Off": "Apagar", + "Title": "Título", + "Year": "Año", + "Filter": "Filtrar", + "Filters": "Filtros", + "Unplayed": "No reproducido", + "LabelTVHomeScreen": "Pantalla de Inicio de Modo TV", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Agrupar Por", + "HeaderMediaType": "Tipo de Medio", + "GroupBySeries": "Agrupar por series", + "HeaderVideoType": "Tipo de Video", + "HeaderSeriesStatus": "Estado de la Serie", + "Features": "Características", + "Trailers": "Tráilers", + "Extras": "Extras", + "ThemeSongs": "Canciones de Tema", + "ThemeVideos": "Videos de Tema", + "HeaderFavoriteMovies": "Películas Favoritas", + "HeaderFavoritePhotos": "Fotos Favoritas", + "HeaderFavoriteShows": "Programas Favoritos", + "HeaderFavoriteEpisodes": "Episodios Favoritos", + "HeaderFavoriteVideos": "Videos Favoritos", + "HeaderFavoriteMusicVideos": "Vídeos Musicales Favoritos", + "HeaderFavoriteGames": "Juegos Favoritos", + "HeaderFavoriteArtists": "Artistas Favoritos", + "HeaderFavoriteAlbums": "Álbumes Favoritos", + "HeaderFavoriteSongs": "Canciones Favoritas", + "HeaderFavoriteAuthors": "Autores Favoritos", + "HeaderFavoriteAudioBooks": "Audio Libros Favoritos", + "Ascending": "Ascendente", + "Descending": "Descendente", + "HeaderColorPrimaries": "Colores primarios", + "HeaderColorSpace": "Espacio de color", + "HeaderColorTransfer": "Transferencia de color", + "HeaderVideoRange": "Rango de video", + "SeriesDisplayOrderHelp": "Ordenar los episodios por fecha transmisión, orden del dvd o por su numeración absoluta.", + "LabelVerticalPositionFromBottom": "Posición vertical (desde abajo)", + "HeaderFavoritePeople": "Personas Favoritas", + "MultiSelect": "Selección Múltiple", + "HeaderSignOut": "Cerrar Sesión", + "HeaderSelectServer": "Seleccionar Servidor", + "HeaderChangeServer": "Cambiar de servidor", + "HeaderChangeUser": "Cambiar Usuario", + "HeaderAppSettings": "Configuraciones de la App", + "HeaderLoginSettings": "Configuraciones de acceso", + "LabelRememberLogin": "Recordar inicio de sesión", + "LabelAutomaticallySignOut": "Cerrar sesión automáticamente", + "BetaTesterMessage": "¡Gracias por evaluar las versiones beta de Emby! Por favor deja tu retroalimentación en el {0} Área de Pruebas de la Comunidad Emby{1}.", + "HardwareAccelerated": "Acelerado por Hardware", + "Software": "Software", + "Metadata": "Metadatos", + "HeaderMediaInfo": "Info del Medio", + "Locked": "Bloqueado", + "HeaderSplitVersionsApart": "Separar Versiones", + "Any": "Cualquiera", + "Admin": "Admin", + "HeaderReadMore": "Leer Mas", + "CustomRatingHelp": "Una clasificación personalizada es usada para la evaluación del control parental pero no es mostrada. El campo del clasificación personal se continuara mostrando.", + "KeepUpToHelp": "Las grabaciones por encima del limite son eliminadas cuando la siguiente grabación inicie. Las grabaciones mas antiguas serán eliminadas primero, según la fecha en que se agregaron.", + "NoItemsMatchingFound": "No se encontró ningún ítem que coincidiera con su criterio de búsqueda.", + "TwoSearchCharsRequired": "Por favor ingrese al menos dos caracteres para la búsqueda.", + "PreventPlaybackContinuing": "Impedir que la reproducción continué indefinidamente preguntando periódicamente actividad del usuario.", + "PromptStillWatching": "Habilitar la ventana \"¿Seguir Mirando?\"", + "HeaderMissingMetadata": "Metadatos faltantes", + "HeaderIncludedIn": "Incluido En", + "EmbyConnectUserAlreadyLinked": "El usuario de Emby Connect ya esta vinculado a otro usuario en este servidor.", + "VideoFilesWillBeConvertedTo": "Los vídeos convertidos serán guardados como {0}.", + "VideoWillBeConvertedTo": "La transmisión de vídeo sera convertida a {0}, o sera copiada del vídeo original si ya es {0} y la calidad coincide con las opciones de conversión.", + "VideoWillBeConvertedToOrCopied": "La transmisión de vídeo sera convertida a {0}, o sera copiada del vídeo original si hay algún ({1}) y la calidad coincide con las opciones de conversión.", + "AudioWillBeConvertedTo": "La pistas de audio sera convertida a {0}, o sera copiada del archivo original si ya es {0} y la calidad coincide con las opciones de conversión.", + "AudioWillBeConvertedToOrCopied": "La pista de audiosera convertida a {0}, o sera copiada del archivo original si hay algún ({1}) y la calidad coincide con las opciones de conversión.", + "HeaderSpecialKeys": "Teclas Especiales", + "FollowingSpecialKeys": "Las siguientes teclas especiales son soportadas por la mayoría de los teclados y controles remotos:", + "HeaderDeleteSeries": "Eliminar Series", + "HeaderDeleteLastPlayedEpisode": "Eliminar Ultimo Episodio Reproducido", + "HeaderConnectingToServer": "Conectando al Servidor", + "ServerNameValue": "Nombre del servidor: {0}", + "DomainValue": "Dominio: {0}", + "RatedValue": "Clasificación {0}", + "LocalServerRedirectMessage": "Ahora será direccionado al dominio adquirido y operado por el administrador del servidor al que eligió conectarse.", + "AllMediaOwnedHosted": "Todos los medios son hospedados y administrados por el propietario de {0}.", + "EnableResolutionSwitching": "Coincidir con resolución de Vídeo", + "EnableResolutionSwitchingHelp": "Esto permite que emby cambie la resolución de la pantalla al iniciar la reproducción al mismo valor en el que el video fue codificado. Esto podría ayudar a minimizar la cantidad de parpadeos/trabas que podría encontrar cuando la reproducción de videos no coinciden adecuadamente.", + "EnableDisplayRefreshRateSwitching": "Habilitar el cambio de frecuencia de pantalla.", + "EnableDisplayRefreshRateSwitchingHelp": "Esto permite que emby cambie la frecuencia de actualización de la pantalla al iniciar la reproducción al mismo valor (o un multiplo del mismo) que el de los cuadros por segundo en el que el vídeo fue codificado. Esto ayuda a minimizar la cantidad de parpadeos o trabas que de otra manera se notarían al reproducir vídeos que no coinciden con la frecuencia actual de la pantalla.", + "RememberSelectedAudioTracks": "Recordar selecciones de pistas de audio", + "RememberSelectedSubtitleTracks": "Recordar selecciones de pistas de subtítulos", + "RememberSelectedSubtitleTracksHelp": "La selección de las pistas de subtítulos será recordada para cada video y re-aplicada cuando se reproduzca el mismo video de nuevo.", + "RememberSelectedAudioTracksHelp": "La selección de las pistas de audio será recordada para cada video y re-aplicada cuando se reproduzca el mismo video de nuevo.", + "ClearSavedTrackSelections": "Eliminar las selecciones de pistas guardadas", + "HeaderClearTrackSelections": "Eliminar las Selecciones de Pistas Guardadas", + "QuestionClearSavedTracks": "¿Desea eliminar todas las selecciones de pistas guardadas?", + "LabelChannelTags": "Etiquetas del canal", + "AfterThisPlaysConfirmation": "Después de que se reproduzca esto, desea continuar reproduciendo la lista de música que anteriormente estaba en cola o desea borrarla.", + "Keep": "Continuar", + "Clear": "Borrar", + "HeaderClearFilters": "Quitar Filtros", + "HeaderSearchForImages": "Buscar Imágenes", + "HeaderSearchNewImage": "Buscar una Nueva Imagen", + "HeaderSearchForAnImage": "Buscar una Imagen", + "DragDropToReorder": "Arrastrar y Soltar para Reordenar", + "HeaderAddImageFromUrl": "Agregar Imagen desde URL", + "HeaderSetImageFromUrl": "Establecer la Imagen de la URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Numero de canal", + "LabelGuideDataChannel": "Canal de información de Guía", + "GuideDataSource": "Fuente de Información de Guía", + "HeaderCopyToClipboard": "Copiar a Porta papeles", + "TimeRemainingValue": "Faltan {0}", + "LabelResumeRewindSeconds": "Al continuar viendo, regresar automáticamente", + "ResumeRewindSecondsHelp": "Esto podría ayudarle a recordar en donde se quedó. Aplica solo al continuar viendo, no a cuando se continua después de una pausa.", + "HeaderSavePlayQueueToPlaylist": "Guardar Cola a Lista de Reproducción", + "EnableLogoImagesAsTitle": "Mostrar las logos como títulos en las pantallas de detalles", + "EnableLogoImagesAsTitleHelp": "Cuando estén disponibles, las imágenes de logos pueden ser usadas en lugar del titulo en texto en vídeos, series y otras pantallas de detalles. El titulo sera mostrado en texto si no hay una imagen de logo disponible.", + "LabelNowPlayingAudioBackgroundStyle": "Estilo de fondo en \"Reproduciendo Ahora\" (audio)", + "LabelNowPlayingVideoBackgroundStyle": "Estilo de fondo en \"Reproduciendo Ahora\" (video)", + "NowPlayingVideoBackgroundStyleHelp": "Determina el estilo del fondo cuando se controla remotamente la reproducción en otro dispositivo.", + "Rotation": "Rotación", + "Minutes": "Minutos", + "LabelMaxRecordingLength": "Duración Max. de Grabación", + "MaxRecordingLengthHelp": "Limitar las grabaciones a una duración especifica, sin importar la duración de la transmisión. Ponga 0 para ilimitado.", + "RemoteWAN": "Dirección Remota (WAN)", + "HeaderLastConnectedTo": "Ultima Conexión A:", + "Version": "Versión", + "Keyword": "Palabra Clave", + "HeaderServerAddress": "Dirección del Servidor", + "HeaderSkipIntro": "Saltar Intro", + "HeaderCreateRecording": "Crear Grabación", + "HeaderAddRecording": "Agregar Grabación", + "HeaderChannelAndTime": "Canal y Hora", + "LabelRecordProgramOrSeriesFrom": "Grabar un programa o serie de", + "LabelStartTime": "Hora de inicio", + "LabelEndTime": "Hora de fin", + "LabelFrequency": "Frecuencia", + "Recurring": "Recurrente", + "Once": "Una vez", + "Start": "Iniciar", + "Unpause": "Quitar pausa", + "LabelIntroSkipMode": "Modo de \"Saltar intros\"", + "ShowSkipIntroButton": "Mostrar botón \"Saltar Intro\"", + "AutoSkipIntro": "Saltar intros automáticamente", + "DisplayRatingInformationOnVideoPlaybackStart": "Mostrar la clasificación al inicio de la reproducción de videos", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "La información de la clasificación se mostrara brevemente cuando se comienza a reproducir el video.", + "IntroSkipModeHelp": "Muestra un botón de \"Saltar Intro\" o salta intros automáticamente para episodios en los que el Servidor Emby ha detectado marcadores de intro. La detección de intros debe estar activada en las opciones de biblioteca.", + "EnableHomeScreenFocusPreview": "Usa un esquema en la pantalla principal que muestra una vista previa detallada el ítem seleccionado", + "EnableHomeScreenFocusPreviewHelp": "Esto podría no funcionar bien si su pantalla principal contiene una mezcla de diferentes tipos de medios.", + "LabelHideMediaTransportButtons": "Ocultar botones de navegación del reproductor", + "HideMediaTransportButtonsHelp": "Crea una interfaz de reproducción mas sencilla ocultando iconos básicos de navegación como saltar hacia adelante, hacia atrás y pausa. Podrá seguir usando estas funciones usando las teclas de flecha y OK/Enter. Ocultara automáticamente los botones de navegación cuando no se detecte movimiento del mouse dentro de la app.", + "ImageSizeHelp": "Elija el tamaño preferido para la cuadricula de imágenes.", + "LabelImageSize": "Tamaño de la imagen", + "ThisImageIsOnlyPreview": "Esta imagen es solo una vista previa del buscador de metadatos. La imagen real que descargara el Servidor Emby dependerá de las configuraciones de Biblioteca de Emby.", + "ResultsRangeValue": "{0} al {1} de {2}", + "NotificationsDescription": "Configure las notificaciones para mantenerse informado de los eventos en su Servidor Emby.", + "DeleteEmbyConnectAccount": "Borrar Cuenta de Emby Connect", + "DeleteEmbyConnectAccountHelp": "Para eliminar su cuenta de Emby Connect, por favor inicie sesión en la {0}Comunidad Emby{1} en {2}. Ya iniciada la sesión de clic en su nombre de usuario en la esquina superior derecha, luego de clic en \"Account Settings\" y de clic en \"Delete My Account\"", + "KeepPlayingInBackground": "Seguir reproduciendo en el fondo", + "LabelVideoBackBehavior": "Comportamiento del botón regresar en la reproductor de video", + "HeaderViewLyrics": "Ver Letras", + "HeaderViewMissingEpisodes": "Ver Episodios Faltantes", + "HeaderMissingEpisodes": "Episodios Faltantes", + "HeaderManageAccess": "Administrar Acceso", + "HeaderManageCollaboration": "Administrar Colaboración", + "HeaderLeaveCollaboration": "Dejar Colaboración", + "HeaderRemoveFromLibrary": "Eliminar de Biblioteca", + "RemoveSharedItemConfirmation": "¿Esta seguro que desea eliminar este ítem de su biblioteca? Para poder volver a obtenerla necesita que el propietario le de acceso de nuevo.", + "SubtitlesDownloaded": "Subtitulos Descargados", + "HeaderMakePrivate": "Hacer Privado", + "HeaderMakePublic": "Hacer Público", + "MakePublicDescription": "Todos los usuarios podrán ver este ítem. Se le pueden conceder permisos para editar.", + "MakePrivateDescription": "Aun se les puede conceder a los usuarios permisos individualmente.", + "Private": "Privado", + "Public": "Publico", + "Collaborative": "Colaborativo", + "PreferredShowDisplay": "Modo preferido para mostrar Series de TV", + "ShowAllEpisodesAllSeasons": "Mostrar todos los episodios de todas las temporadas juntos", + "ShowAllEpisodesSingleSeason": "Mostrar todos los episodios solo para series de una temporada", + "ShowSeasonFolders": "Siempre mostrar carpetas de temporada", + "HeaderAddAgain": "Agregar de Nuevo", + "UpNext": "Siguiente", + "ItemsAlreadyInPlaylist": "Algunos de estos ítems ya están en su lista de reproducción.", + "ItemAlreadyInPlaylist": "Este ítem ya esta en su lista de reproducción.", + "HeaderPlayChannel": "Reproducir Canal", + "LabelScreenOrientationDuringVideo": "Orientación de la pantalla durante la reproducción", + "UseDeviceSetting": "Usar configuración del dispositivo", + "LockToLandscape": "Bloquear en modo horizontal", + "UsernameForFolderHelp": "El nombre de usuario necesario para acceder a esta carpeta en la red (si es necesario).", + "PasswordForFolderHelp": "La contraseña necesario para acceder a esta carpeta en la red (si es necesaria).", + "ShowMediaInfoOnDetailScreens": "Mostrar información de los medios completa debajo de la pantalla de detalles de audio y video.", + "ForgotPasswordNoUserFound": "No se encontraron usuarios con el nombre ingresado. Por favor intente de nuevo, o deje el nombre en blanco para resetear la contraseña de todos los usuarios en este servidor.", + "Silver": "Plateado", + "DimGray": "Gris Oscuro", + "DarkGray": "Gris Oscuro", + "LightGray": "Gris Claro", + "Black": "Negro", + "Blue": "Azul", + "Cyan": "Cyan", + "Gray": "Gris", + "Green": "Verde", + "Lime": "Lima", + "Magenta": "Magenta", + "Orange": "Naranja", + "Pink": "Rosa", + "Red": "Rojo", + "Yellow": "Amarillo", + "White": "Blanco", + "Purple": "Morado", + "RecentlyReleasedMovies": "Películas Estrenadas Recientemente", + "RecentlyReleasedEpisodes": "Episodios Estrenados Recientemente", + "DolbyProfile": "Perfil de Dolby", + "IpAddress": "Dirección IP", + "VideoType": "Tipo de Video", + "HidePlayedMediaFrom": "Ocultar Medios Reproducidos de", + "BottomEdgePosition": "Posición Desde la Parte Inferior", + "VerticalPositionFromBottomScreen": "Ajuste la posición vertical de los subtitulos en relación a la parte inferior de la pantalla.", + "TopEdgePosition": "Posición de la Parte Superior", + "TopEdgePositionHelp": "Establezca la posición mas altar permitida de los subtitulos en relación a la parte superior de la pantalla. Esto se usa cuando los subtitulo contienes instrucciones para ser colocados arriba.", + "HeaderSubtitlePosition": "Posición de los Subtitulos", + "TitleProfilePin": "PIN del Perfil", + "ProfilePinConfirm": "PIN del Perfil (confirmar)", + "SaveProfilePin": "Guardar Pin", + "ProfilePinDescription": "Crea un pin opcional para ser solicitado cuando sea que regrese a la app de Emby en un dispositivo en el que ya haya iniciado sesión. Esto es util si tiene dispositivos de uso compartido con varios usuarios. Puede elegir habilitarlo selectivamente en cada dispositivo.", + "TitleNewEpisodes": "Nuevos Episodios", + "EnterYourPinToContinue": "Ingrese su PIN para continuar", + "YourPinMustBe": "Su PIN debe contener {0} dígitos.", + "ForgotPin": "¿Olvidó su PIN?", + "RequireEnteringPinToReturn": "Solicitar mi PIN de perfil cuando regrese a esta app.", + "RequireEnteringPinToReturnQuestion": "¿Deberíamos preguntar por su PIN de perfil cuando regrese a esa app? Si este dispositivo es compartido con multiples usuario, su PIN de perfil puede ayudar a prevenir que otros usuarios ingresen a su información.", + "RequireEnteringPinToReturnHelp": "Es util si este dispositivo es compartido con multiples usuarios.", + "WrongPinPleaseTryAgain": "Ups, PIN incorrecto. Por favor intente de nuevo.", + "ProfilePinIsOn": "PIN de perfil esta habilitado.", + "IfTryingToConnectToHttp": "Si está intentando conectarse a su servidor Emby usando una dirección http, su navegador podría no permitirlo debido a los requerimientos de HTTPS. Por favor intente alguna de estás opciones:", + "SetupHttpsForYourServer": "Configurar {0}HTTPS para su Servidor Emby{1} para que pueda conectarse usando HTTPS.", + "TitleUnableToReachServer": "No Fue Posible Conectarse al Servidor", + "TitleUnableToReachName": "No Fue Posible conectarse a {0}", + "HearingImpaired": "Personas con Discapacidad Auditiva", + "SignIntoServerName": "Iniciar sesión en {0}", + "About": "Acerca de", + "Specials": "Especiales", + "NSettings": "{0} Configuraciones", + "NPreferences": "{0} Preferencias", + "DetailScreenOptions": "Pantalla de Detalles", + "LabelGenreDisplayLimit": "Limite de géneros a mostrar", + "GenreDisplayLimitHelp": "Limita el numero de géneros mostrados en la parte superior de la pantalla de detalles del ítem.", + "GenreDisplayLimitForListsHelp": "Limita el numero de géneros mostrados en la parte superior de las pantallas de detalles de listas de reproducción, colección y artistas.", + "LabelGenreDisplayLimitForLists": "Limite de géneros a mostrar para listas", + "ShowPosterOnDetails": "Mostrar un poster en la pantalla de detalles", + "ShowPosterOnDetailsHelp": "Elija para mostrar un poster en las pantallas de detalles de video, u ocultarlo para una apariencia mas minimista que pone énfasis en el fondo. Esta configuración no se usa en pantallas con diseños mas pequeños. Algunos ítems ignoraran esta configuración.", + "EnableAppLogging": "Habilitar bitácoras de la app", + "EnableAppLoggingHelp": "Guardar bitácoras puede degradar el rendimiento y solo debe usarse cuando se necesita para solucionar problemas. Para aplicar los cambios se necesita reiniciar la app.", + "LabelSlideshowInterval": "Tiempo de cada fotografía en la presentation", + "TVChannelImageEditorHelp": "Se soportan multiples versiones del logo. Las aplicaciones Emby elegirán automáticamente la apropiada dependiendo del tema actual.", + "PlaySlideshow": "Reproducir Presentación", + "CheckForExistingEpisodesInAllLibraries": "Buscar episodios existentes en todas las bibliotecas", + "GroupNotificationsBySeriesOrAlbum": "Notificaciones de grupo por serie y álbum", + "ThemeSettings": "Configuración de Tema", + "FollowingActivityWillBeDisrupted": "Esta actividad será interrumpida y podría necesitar intervención manual para reiniciarla:", + "OneActivePlaybackSession": "1 Sesión de Reproducción Activa", + "NumActivePlaybackSessions": "{0} Sesiones de Reproducción Activas", + "OneActiveRecording": "1 Grabación Activa", + "NumActiveRecordings": "{0} Grabaciones Activas", + "PlayFromLivePosition": "Reproducir desdé la posición en vivo", + "PlayFromStartOfRecording": "Reproducir desde el inicio de la grabación", + "ThisChannelIsActivelyRecording": "Este canal esta siendo grabado. ¿Cómo desea empezar la reproducción?", + "ThemeSongVolume": "Volumen de Canción de Tema", + "HeaderForceConversionForFormats": "Forzar Conversion para los Formatos", + "ForceConversionForFormatsHelp": "Use esta opción para forzar una transcodificacion o remux en el servidor para formatos que no se reproducen bien en este dispositivo", + "StartupBehavior": "Comportamiento al iniciar", + "RememberLastUser": "Recordar el ultimo usuario", + "ShowLoginScreen": "Mostrar pantalla de inicio de sesión", + "SignInAsValue": "Iniciar sesión como {0}", + "ConvertUnsupportedAudio": "Convertir audio no soportado a Dolby Digital", + "ConvertUnsupportedAudioHelp": "Evita convertir formatos de audio envolvente no soportado a estéreo haciendo que Emby Server los transcodifique a Dolby Digital", + "HeaderPlaybackCorrection": "Corrección de Reproducción", + "HeaderAttemptPlaybackCorrection": "Intentar Corrección de Reproducción", + "PlaybackCorrectionConfirm": "¿Intentar corrección de reproducción?", + "PlaybackCorrectionDescription": "¿El elemento actual muestra problemas de reproducción como no tener video o audio? Esta opción intentara corregir errores de reproducción usando la transcodificacion del servidor para convertirlo en un formato mas amigable. Esto resultara en un mayo consumo de recursos en el Servidor Emby.", + "PlaybackCorrectionDescription2": "Puede hacer esto hasta tres veces por video, donde remuxar, transcodificar audio y transcodificar video son activados uno a la vez.", + "HeaderAlbumsAsContributingArtist": "Álbumes como Artista Contribuyente", + "HeaderAlbumsAsComposer": "Álbumes como Compositor", + "Duplicates": "Duplicados", + "HeaderSleepTimer": "Temporizador para Dormir", + "AfterCurrentItem": "Después del elemento actual", + "HeaderStopPlayback": "Detener Reproducción", + "TurnOffTimer": "Apagar temporizador", + "SleepTimerIsSet": "Su temporizador se ha establecido", + "SleepTimerIsOff": "Su temporizador esta apagado", + "LabelEnableRemoteControlTVMode": "Mostrar funciones de transmisión y control remoto", + "EnableRemoteControlTVModeHelp": "Habilitar si planea usar este dispositivo para enviar medios a otros dispositivos.", + "ShowOnScreenControls": "Mostrar controles en pantalla", + "LabelVideoScreenUpAction": "Acción de tecla \"arriba\" en videos", + "VideoScreenUpActionHelp": "Elija la acción que se mostrara cuando se presione la tecla \"arriba\" en la pantalla de video. Esto aplica cuando no hay elementos en pantalla visibles. Cuando los controles ya están visibles la tecla \"arriba\" se usara para navegación.", + "LabelVideoPlayerLongPressAction": "Acción del reproductor al mantener presionado", + "LetsGetSetup": "Empecemos la Configuración", + "VideoPlayerLongPressActionHelp": "Elija que función o menús se muestran cuando mantiene presionado el botón OK durante la reproducción de videos. Esto solo afecta cuando no se muestran los controles en pantalla o el enfoque esta en la barra de búsqueda.", + "AskAdminToGetPremiere": "Esta compra debe ser realizada por el administrador del servidor. Por favor, pida al administrador de este Servidor Emby que inicie sesión y obtenga Emby Premiere para que pueda disfrutar del acceso a funciones premium.", + "AutoOpenSingleItemsFolders": "Abrir automáticamente ítems con un solo elemento en la vista de carpetas", + "AutoOpenSingleItemsFoldersHelp": "Cuando una carpeta contiene solo un elemento abre automáticamente ese elemento.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/es-US.json b/modules/common/strings/es-US.json new file mode 100644 index 0000000..0e2faa7 --- /dev/null +++ b/modules/common/strings/es-US.json @@ -0,0 +1,1340 @@ +{ + "Help": "Help", + "Authors": "Authors", + "Items": "Items", + "Guide": "Guide", + "Once": "Once", + "HeaderUninstallPlugin": "Uninstall Plugin", + "Tag": "Tag", + "Backdrops": "Backdrops", + "MixedContent": "Mixed content", + "Off": "Off", + "LabelAutomaticallySignOut": "Automatically sign out", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "Rotation": "Rotation", + "Song": "Song", + "Fill": "Fill", + "Genre": "Genre", + "SearchForLyrics": "Search for Lyrics", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "Schedule": "Schedule", + "LabelPlaylist": "Playlist", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "LabelView": "View", + "Tracks": "Tracks", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine.", + "HeaderGoToAlbum": "Go to Album", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server.", + "LabelVideoBackBehavior": "Video player back button behavior", + "Audio": "Audio", + "HeaderInstantMix": "Instant Mix", + "CommunityRating": "Community Rating", + "Menu": "Menu", + "HeaderResetToDefault": "Reset to Default", + "Suggestions": "Suggestions", + "IHaveEmbyPremiere": "I have Emby Premiere", + "ExtraSmall": "Extra small", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoType": "Video Type", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "ShutdownServer": "Shutdown Emby Server", + "Episode": "Episode", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "SyncJobItemStatusConverting": "Converting", + "Devices": "Devices", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "Disabled": "Disabled", + "HeaderToneMapping": "Tone Mapping", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "Speed": "Speed", + "CancelConversion": "Cancel Conversion", + "HeaderSeriesStatus": "Series Status", + "HeaderSubtitleSettings": "Subtitle Settings", + "MessageInvalidUser": "Invalid username or password. Please try again.", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "LabelAudioLanguage": "Audio language", + "HeaderStopRecording": "Stop Recording", + "OneChannel": "One channel", + "Screenshots": "Screenshots", + "PlaybackErrorPlaceHolder": "Please insert the disc in order to play this video.", + "About": "About", + "HeaderManualLogin": "Manual Login", + "HeaderVideoQuality": "Video Quality", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "HeaderConnectingToServer": "Connecting to Server", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "OneUser": "1 User", + "Video": "Video", + "LabelStatus": "Status", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "SaveProfilePin": "Save Pin", + "HearingImpaired": "Hearing Impaired", + "PleaseEnterNameOrId": "Please enter a name or an external Id.", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "HeaderFavoriteCollections": "Favorite Collections", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelHostHelp": "Example: 192.168.1.100 or https://myserver.com", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "Movie": "Movie", + "CriticRating": "Critic Rating", + "HeaderDeleteSeries": "Delete Series", + "LabelOriginalTitle": "Original title", + "Settings": "Settings", + "LabelBackgroundVideoPlayback": "Background video playback", + "HeaderFavoriteAlbums": "Favorite Albums", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "Framerate": "Framerate", + "OneLog": "1 Log", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "Previous": "Previous", + "HeaderLatestRecordings": "Latest Recordings", + "DvrFeatureDescription": "Schedule individual Live TV recordings, series recordings, and more with Emby DVR.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "HeaderPinSidebar": "Pin Sidebar", + "LabelMusicDownloadQuality": "Music download quality", + "OriginalTitle": "Original Title", + "OneVote": "1 Vote", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "OneActiveRecording": "1 Active Recording", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "HeaderConvertYourRecordings": "Convert Your Recordings", + "DeleteNotification": "Delete Notification", + "LabelItemLimit": "Item limit", + "HeaderEmbyAccountAdded": "Emby Account Added", + "SearchResults": "Search Results", + "DiedValue": "Died: {0}", + "RemovingFromDevice": "Removing from device", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "KeepDownload": "Keep download", + "Network": "Network", + "ButtonOk": "OK", + "HeaderCinemaMode": "Cinema Intros", + "Like": "Like", + "HeaderPlayOn": "Play On", + "Banner": "Banner", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "Folder": "Folder", + "LabelUsername": "Username", + "HeaderPlayingNext": "Playing Next", + "HeaderSignOut": "Sign Out", + "Default": "Default", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "Duplicates": "Duplicates", + "Quality": "Quality", + "HeaderDeleteDevice": "Delete Device", + "HidePlayedMediaFrom": "Hide Played Media From", + "HeaderSubtitlePosition": "Subtitle Position", + "RecentlyReleasedMovies": "Recently Released Movies", + "HeaderAddRecording": "Add Recording", + "Pause": "Pause", + "RemoteWAN": "Remote (WAN) Address", + "HeaderMissingMetadata": "Missing Metadata", + "Director": "Director", + "ResumeAt": "Resume from {0}", + "LabelTitle": "Title", + "Trailers": "Trailers", + "LabelBackgroundOpacity": "Background opacity", + "HeaderScheduledTasks": "Scheduled Tasks", + "IPurchasedThisApp": "I purchased this app", + "Channels": "Channels", + "Resolution": "Resolution", + "TitleUnableToReachName": "Unable to Reach {0}", + "LabelDiscNumber": "Disc number", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderLearnMore": "Learn More", + "Latest": "Latest", + "LabelContentType": "Content type", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "ConnectToServerManually": "Connect to server manually", + "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation", + "ExtraLarge": "Extra large", + "HeaderAdditionalParts": "Additional Parts", + "LabelReleaseDate": "Release date", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "UntilSpaceNeeded": "Until space needed", + "VideoLevelNotSupported": "Converting to compatible video level", + "HeaderViewLyrics": "View Lyrics", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "DarkGray": "Dark Gray", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "SeriesYearToPresent": "{0} - Present", + "EmbyLoginTerms": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our {0}terms of use{1}. The use of any Emby software constitutes acceptance of these terms.", + "OneTrack": "1 Track", + "PlayCount": "Play count", + "HeaderAddAgain": "Add Again", + "LabelWindowBackgroundColor": "Text background color", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "NumberSeasonsValue": "{0} Seasons", + "Error": "Error", + "HeaderSampleRate": "Sample Rate", + "AroundTime": "Around {0}", + "LabelBackgroundColor": "Background color", + "Browse": "Browse", + "Folders": "Folders", + "Lime": "Lime", + "HeaderCopyToClipboard": "Copy to Clipboard", + "UploadToFollowingServers": "Upload to Servers", + "Preview": "Preview", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "Image": "Image", + "Seasons": "Seasons", + "DateAdded": "Date Added", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "ProfilePinIsOn": "Profile PIN is currently on.", + "SettingsSaved": "Settings saved.", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature.", + "Conversions": "Conversions", + "HeaderGroupBy": "Group By", + "Absolute": "Absolute", + "StatsForNerds": "Stats for Nerds", + "EnableCinemaMode": "Enable Cinema Intros", + "Silver": "Silver", + "HeaderCodecTag": "Codec Tag", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "EnableBackdrops": "Enable backdrops", + "Never": "Never", + "HeaderStopPlayback": "Stop Playback", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "Features": "Features", + "UserCountValue": "{0} Users", + "Art": "Art", + "InstallingPackage": "Installing {0}", + "ServerNameIsRestarting": "Emby Server - {0} is restarting.", + "HeaderAddUpdateImage": "Add/Update Image", + "LiveTV": "Live TV", + "HeaderContinueListening": "Continue Listening", + "StartupBehavior": "Startup behavior", + "BrowseForFolder": "BrowseForFolder", + "WakeServerSuccess": "Success!", + "HeaderContinueWatching": "Continue Watching", + "Share": "Share", + "Actor": "Actor", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "ValueDiscNumber": "Disc {0}", + "RememberMe": "Remember me", + "Recording": "Recording", + "HeaderCancelRecording": "Cancel Recording", + "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.", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "SavePassword": "Save Password", + "HeaderNewPlaylist": "New Playlist", + "HeaderFavoriteGames": "Favorite Games", + "Connect": "Connect", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "HeaderLeaveCollaboration": "Leave Collaboration", + "Refresh": "Refresh", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderOtherShowings": "Other Showings", + "Large": "Large", + "Visibility": "Visibility", + "HowDidYouPay": "How did you pay?", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "HeaderSelectImageFile": "Select Image File", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelAudioLanguagePreference": "Preferred audio language", + "HeaderSignUp": "Sign Up", + "HeaderSelectColumns": "Select Columns", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed.", + "HeaderAddedToCollection": "Added to Collection", + "RecordingCancelled": "Recording Cancelled", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "IpAddress": "IP Address", + "Small": "Small", + "LabelDropShadow": "Drop shadow", + "Clear": "Clear", + "Submit": "Submit", + "OptionNew": "New...", + "LabelPlaystate": "Playstate", + "Path": "Path", + "Songs": "Songs", + "DirectorValue": "Director: {0}", + "LabelEpisodeNumber": "Episode number", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "Books": "Books", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderPleaseSignIn": "Please Sign In", + "LabelHost": "Host", + "HeaderPlaybackCorrection": "Playback Correction", + "Ended": "Ended", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "SeriesRecording": "Series Recording", + "Favorite": "Favorite", + "LabelAirDays": "Air days", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "Deinterlacing": "Deinterlacing", + "Smart": "Smart", + "EndsAtValue": "Ends at {0}", + "LabelIntroSkipMode": "Intro skip mode", + "Size": "Size", + "HeaderCastCrew": "Cast & Crew", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DirectPlaying": "Direct playing", + "LabelFont": "Font", + "Bitrate": "Bitrate", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "HeaderGoToArtist": "Go to Artist", + "KeepPlayingInBackground": "Keep playing in the background", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "HeaderFavoriteMovies": "Favorite Movies", + "SyncJobItemStatusTransferring": "Transferring", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "Reject": "Reject", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "Medium": "Medium", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "LabelFrequency": "Frequency", + "Play": "Play", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "All": "All", + "PackageInstallCancelled": "{0} installation cancelled.", + "TurnOffTimer": "Turn off timer", + "RemoteAccess": "Remote Access", + "Users": "Users", + "PackageInstallFailed": "{0} installation failed.", + "HeaderScreenLocked": "Screen Locked", + "HeaderEditMetadata": "Edit Metadata", + "Played": "Played", + "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", + "RecordingScheduled": "Recording Scheduled", + "SyncJobItemStatusSynced": "Downloaded", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "AndMuchMoreExclamation": "And much more!", + "HeaderConnectionHelp": "Connection Help", + "ScanningLibraryFilesDots": "Scanning library files...", + "Unmute": "Unmute", + "EmbyServer": "Emby Server", + "LabelStartWhenPossible": "Start when possible", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", + "Upcoming": "Upcoming", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "Shuffle": "Shuffle", + "Skip": "Skip", + "ReplaceExistingImages": "Replace existing images", + "Timestamp": "Timestamp", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderLocalNetworkAccess": "Local Network Access", + "Recordings": "Recordings", + "PasswordSaved": "Password saved.", + "NoSubtitleSearchResultsFound": "No results found. Have you configured {0}subtitle downloading{1}?", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderRemoteControl": "Remote Control", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ResultsRangeValue": "{0} to {1} of {2}", + "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.", + "AfterCurrentItem": "After current item", + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "Lyrics": "Lyrics", + "LabelDisplayLanguage": "Display language", + "HeaderClearFilters": "Clear Filters", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "NSettings": "{0} Settings", + "LabelRefreshMode": "Refresh mode", + "LimitUserEventsTo": "Limit user events to", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "HeaderExtradata": "Extra Data", + "HeaderPasswordReset": "Password Reset", + "Trailer": "Trailer", + "Box": "Box", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "Accept": "Accept", + "Software": "Software", + "Public": "Public", + "GuideDataSource": "Guide Data Source", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AllEpisodes": "All episodes", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "Keyword": "Keyword", + "LabelInternetQuality": "Remote streaming quality", + "AllChannels": "All channels", + "LabelWebsite": "Website", + "GenreValue": "Genre: {0}", + "HeaderNewCollection": "New Collection", + "Unrated": "Unrated", + "Create": "Create", + "Collaborative": "Collaborative", + "StarringValue": "Starring {0}", + "Fullscreen": "Full screen", + "AddNotification": "Add Notification", + "UntilIDelete": "Until I delete", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "Resume": "Resume", + "ForgotPin": "Forgot PIN?", + "HeaderShowFields": "Show Fields", + "Composers": "Composers", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "Close": "Close", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "Year": "Year", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "Larger": "Larger", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "Continue": "Continue", + "HeaderMarkPlayed": "Mark Played", + "LabelOriginalAspectRatio": "Original aspect ratio", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "HeaderGetHelp": "Get Help", + "HeaderBitDepth": "Bit Depth", + "GroupItemsIntoTags": "Group items into tags", + "HeaderAppearsOn": "Appears On", + "ItemCount": "{0} Items", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "ButtonGotIt": "Got It", + "ThemeSettings": "Theme Settings", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "Upload": "Upload", + "Playback": "Playback", + "ReplaceAllMetadata": "Replace all metadata", + "SelectNone": "Select None", + "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.", + "GroupBySeries": "Group by series", + "SortChannelsBy": "Sort channels by", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "HeaderNowPlaying": "Now Playing", + "LabelTVHomeScreen": "TV mode home screen", + "Kids": "Kids", + "LabelTextColor": "Text color", + "LabelTextSize": "Text size", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "Logo": "Logo", + "HeaderRemoveFromLibrary": "Remove from Library", + "LabelType": "Type", + "EnableThemeSongs": "Enable theme songs", + "ButtonTryAgain": "Try Again", + "BoxRear": "Box (Rear)", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "ButtonGenerateNewPin": "Generate New Pin", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "Sleep": "Sleep", + "EnableAppLogging": "Enable app logging", + "HeaderFrequentlyPlayed": "Frequently Played", + "MoreFromValue": "More from {0}", + "Failed": "Failed", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "ContainerNotSupported": "Converting to compatible container", + "Minutes": "Minutes", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "Hide": "Hide", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "Display": "Display", + "KeepOnDevice": "Keep on device", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderInvitationSent": "Invitation Sent", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "PlayOnAnotherDevice": "Play on another device", + "HeaderSignIn": "Sign In", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "HardwareAccelerated": "Hardware accelerated", + "LearnHowYouCanContribute": "Learn how you can contribute.", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "VoteCountValue": "{0} Votes", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "Filter": "Filter", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "DownloadingDots": "Downloading...", + "Programs": "Programs", + "NoItemsFound": "No items found.", + "LabelPort": "Port", + "SleepTimerIsSet": "Your sleep timer is set", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "ConfirmRemoveItem": "Remove item?", + "HeaderMyMedia": "My Media", + "EnableThemeVideos": "Enable theme videos", + "ContinueWatching": "Continue watching", + "HeaderHomeScreen": "Home Screen", + "AlwaysOn": "Always on", + "TitleProfilePin": "Profile PIN", + "Chapters": "Chapters", + "HeaderUploadImage": "Upload Image", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "Up": "Up", + "LimitLibraryEventsTo": "Limit library events to", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "SyncJobItemStatusQueued": "Queued", + "LabelCustomRating": "Custom rating", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ProfilePinConfirm": "Profile PIN (confirm)", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "LabelDownloadLocation": "Download location", + "DropShadow": "Drop shadow", + "Disconnect": "Disconnect", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "Edit": "Edit", + "VoiceInput": "Voice Input", + "HeaderAddImageFromUrl": "Add Image from URL", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "HeaderCameraUpload": "Camera Upload", + "Thumb": "Thumb", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Private": "Private", + "AutomaticallySyncNewContent": "Automatically download new content", + "FastForward": "Fast-forward", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "AttemptingWakeServer": "Attempting to wake server. Please wait...", + "HeaderLoginSettings": "Login Settings", + "Offline": "Offline", + "VersionNumber": "Version {0}", + "PrimaryImageBlur": "Primary image blur", + "DirectedByValue": "Directed by {0}", + "CollectionOrder": "Collection Order", + "LabelLocalNetworkPinCode": "Local network pin code", + "HeaderLatestEpisodes": "Latest Episodes", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "HeaderGoToSeason": "Go to Season", + "Movies": "Movies", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "Original": "Original", + "HeaderSelectServer": "Select Server", + "Sort": "Sort", + "LabelChannelNumber": "Channel number", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "Open": "Open", + "Yesterday": "Yesterday", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "HeaderNextUp": "Next Up", + "HomeVideos": "Home videos", + "HeaderMusicQuality": "Music Quality", + "HeaderForKids": "For Kids", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", + "Orange": "Orange", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "No": "No", + "Setup": "Setup", + "Cancel": "Cancel", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "MakePrivateDescription": "Users can still be granted access individually.", + "HeaderIncludedIn": "Included In", + "RatedValue": "Rated {0}", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "OneActivePlaybackSession": "1 Active Playback Session", + "MusicVideos": "Music videos", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "LabelBitrateMbps": "Bitrate (Mbps)", + "TimeRemainingValue": "{0} remaining", + "HeaderWakeServer": "Wake Server", + "HeaderUnlockFeature": "Unlock Feature", + "HeaderSeriesOptions": "Series Options", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "HeaderSavePlaylist": "Save Playlist", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "Rewind": "Rewind", + "Yes": "Yes", + "TVShows": "TV shows", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "LabelOverview": "Overview", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Number": "Number", + "Add": "Add", + "Downloading": "Downloading", + "HeaderOnNow": "On Now", + "LabelAirsBeforeEpisode": "Airs before episode", + "RepeatOne": "Repeat one", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderDeleteUser": "Delete User", + "Systems": "Systems", + "LimitDeviceEventsTo": "Limit devices events to", + "HeaderDeleteImage": "Delete Image", + "LabelPersonRoleHelp": "Example: Ice cream truck driver", + "HeaderColorPrimaries": "Color Primaries", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "HeaderKeepSeries": "Keep Series", + "ThemeSongVolume": "Theme song volume", + "Albums": "Albums", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "Both": "Both", + "ButtonPlayOneMinute": "Play One Minute", + "LabelSkipBackLength": "Skip back length", + "HeaderYouSaid": "You Said...", + "ServerUpdateNeeded": "This Emby Server needs to be updated. To download the latest version, please visit {0}", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "Rename": "Rename", + "HeaderSearchForAnImage": "Search for an Image", + "SeriesSettings": "Series settings", + "LabelDateTimeLocale": "Date time locale", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "HeaderFavoritePeople": "Favorite People", + "LockToLandscape": "Lock to landscape", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "AlbumArtist": "Album Artist", + "LabelNumber": "Number", + "HeaderFoldersToUpload": "Folders to Upload", + "PlayFromLivePosition": "Play from the live position", + "HeaderChangeUser": "Change User", + "HeaderLatestFrom": "Latest from {0}", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "HeaderAudioBooks": "Audio Books", + "AllPlaylists": "All Playlists", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "MessageDownloadQueued": "Download queued.", + "HeaderCancelSeries": "Cancel Series", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "LastEpisodeDateAdded": "Last Episode Date Added", + "Mobile": "Mobile / Tablet", + "ConfirmRemoveDownload": "Remove download?", + "HeaderLibraryOrder": "Library Order", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "LabelPath": "Path", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup.", + "LabelHomeNetworkQuality": "Home streaming quality", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "ConfirmDeleteImage": "Delete image?", + "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "AreYouStillWatching": "Are you still watching?", + "LabelFileOrder": "File order", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "UpdatedOnValue": "Updated {0}", + "HeaderNextEpisode": "Next Episode", + "Tags": "Tags", + "InternalStorage": "Internal storage", + "FromBeginning": "From Beginning", + "PlaylistOrder": "Playlist Order", + "Downloads": "Downloads", + "ParentalRating": "Parental Rating", + "Metadata": "Metadata", + "HeaderPlayNextUp": "Play Next Up", + "LabelDynamicExternalId": "{0} Id", + "LabelCommunityRating": "Community rating", + "HeaderScanLibraryFiles": "Scan Library Files", + "RestartServer": "Restart Emby Server", + "Links": "Links", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "Invitations": "Invitations", + "HeaderSkipIntro": "Skip Intro", + "DragDropToReorder": "Drag and Drop to Reorder", + "Back": "Back", + "PlaybackErrorNoCompatibleStream": "No compatible streams are currently available. Please try again later or contact your system administrator for details.", + "LabelParentNumber": "Parent number", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "Channel": "Channel", + "Exit": "Exit", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "PlaybackSpeed": "Playback Speed", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "Raised": "Raised", + "Pink": "Pink", + "VideoProfileNotSupported": "Converting to compatible video profile", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "Auto": "Auto", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderMakePrivate": "Make Private", + "Gray": "Gray", + "LabelConvertTo": "Convert to", + "LabelChannelDisplay": "Channel display", + "HeaderPlayAll": "Play All", + "TitleNewEpisodes": "New Episodes", + "HeaderRefreshMetadata": "Refresh Metadata", + "Writer": "Writer", + "HeaderColorSpace": "Color Space", + "HeaderManageAccess": "Manage Access", + "HeaderFavoriteVideos": "Favorite Videos", + "MultiSelect": "Multi-Select", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}.", + "HeaderKeepRecording": "Keep Recording", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "LabelAlbum": "Album", + "Stream": "Stream", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "Sports": "Sports", + "Games": "Games", + "LabelPassword": "Password", + "RunAtStartup": "Run at startup", + "LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.", + "User": "User", + "HeaderAlreadyPaid": "Already Paid?", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "LabelName": "Name", + "RepeatAll": "Repeat all", + "Watching": "Watching", + "HeaderMediaType": "Media Type", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "LikeCountValue": "{0} Likes", + "LabelEndDate": "End date", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "HeaderEmbyConnect": "Emby Connect", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "Collapse": "Collapse", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "Done": "Done", + "LabelStartTime": "Start time", + "HeaderMakePublic": "Make Public", + "Premiere": "Premiere", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "HeaderEmbeddedTitle": "Embedded Title", + "OneDevice": "1 Device", + "SearchForSubtitles": "Search for Subtitles", + "ServerStartup": "Server Startup", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "AddedOnValue": "Added {0}", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", + "DownloadsValue": "{0} Downloads", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "File": "File", + "LogCountValue": "{0} Logs", + "LabelPersonRole": "Role", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "Recurring": "Recurring", + "Anamorphic": "Anamorphic", + "Title": "Title", + "Plugins": "Plugins", + "HeaderChannelAndTime": "Channel and Time", + "Green": "Green", + "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", + "HeaderSubtitleOffset": "Subtitle Offset", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderDeleteItem": "Delete Item", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "LabelKeepUpTo": "Keep up to", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "LabelLanguage": "Language", + "LabelCertificationCountry": "Certification country", + "Networks": "Networks", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "LabelDownloadTo": "Download to", + "Start": "Start", + "NoLimit": "No limit", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "Plays": "Plays", + "HeaderPlaybackError": "Playback Error", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "HeaderPlayNext": "Play Next", + "LabelDateAdded": "Date added", + "BecauseYouLikeValue": "Because you like {0}", + "OriginalAirDateValue": "Original air date: {0}", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "Retry": "Retry", + "PlaySlideshow": "Play Slideshow", + "RememberSelectedAudioTracks": "Remember audio track selections", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "TermsOfUse": "Terms of Use", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "Record": "Record", + "HeaderGoToItem": "Go to Item", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatedOnValue": "Created {0}", + "HeaderDeleteItems": "Delete Items", + "EnableResolutionSwitching": "Match video resolution", + "HeaderPlayChannel": "Play Channel", + "PleaseRestartServerName": "Please Restart Emby Server on {0}", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "HeaderKeepWatching": "Keep Watching", + "HeaderLibraryFolders": "Library Folders", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "Episodes": "Episodes", + "HeaderSaySomethingLike": "Say Something Like...", + "Downloaded": "Downloaded", + "HeaderWaitingForWifi": "Waiting for Wifi", + "MoveLeft": "Move left", + "Subtitle": "Subtitle", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "HeaderFavoriteSongs": "Favorite Songs", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderPhotoAlbums": "Photo Albums", + "NewCollectionNameExample": "Example: Star Wars Collection", + "UseDeviceSetting": "Use device setting", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "HeaderGoToSeries": "Go to Series", + "Daily": "Daily", + "Collection": "Collection", + "HeaderUnlockControls": "Unlock Controls", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "DomainValue": "Domain: {0}", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "MoviesAndShows": "Movies & Shows", + "HeaderConnectToServer": "Connect to Server", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "LabelDefaultScreen": "Default screen", + "Favorited": "Favorited", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "HeaderChangeServer": "Change Server", + "LabelKeywordType": "Keyword type", + "LastEpisodeDateAired": "Last Episode Date Released", + "SmallCaps": "Small caps", + "News": "News", + "HeaderSeeAll": "See All", + "HeaderAspectRatio": "Aspect Ratio", + "HeaderLatestMovies": "Latest Movies", + "HeaderRecordSeries": "Record Series", + "HeaderDoNotRecord": "Do not record", + "LabelBirthYear": "Birth year", + "LabelGuideDataChannel": "Guide data channel", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "LabelThemeAccentColor": "Accent color", + "LastUsedAddressValue": "Last used {0}", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "Screenshot": "Screenshot", + "Admin": "Admin", + "HeaderAllLanguages": "All Languages", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "Remove": "Remove", + "DeviceCountValue": "{0} Devices", + "HeaderLatestChannelItems": "Latest Channel Items", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "RemoveDownload": "Remove Download", + "OnlyForcedSubtitles": "Only forced subtitles", + "ConfirmCancelConversion": "Cancel conversion?", + "HeaderNewUsers": "New Users", + "LabelCriticRating": "Critic rating", + "Overview": "Overview", + "TagsValue": "Tags: {0}", + "Logs": "Logs", + "SelectAll": "Select All", + "LabelAirTime": "Air time", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "LabelParentalRating": "Parental rating", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "ShowOnScreenControls": "Show on-screen controls", + "NPreferences": "{0} Preferences", + "LabelEndTime": "End time", + "LabelUrl": "Url", + "HeaderSetImageFromUrl": "Set Image from URL", + "HeaderOfflineDownloads": "Offline Media", + "HeaderRemoveFromCollection": "Remove from Collection", + "Genres": "Genres", + "PrivacyPolicy": "Privacy policy", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderDirectPlay": "Direct Play", + "LabelPinCode": "Pin code", + "LabelCurrentPassword": "Current password", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Table": "Table", + "LogoLight": "Logo (Light Version)", + "AutoSkipIntro": "Automatically skip intros", + "Recent": "Recent", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:", + "HeaderMetadataSettings": "Metadata Settings", + "LabelSubtitleLanguage": "Subtitle language", + "HeaderRemoveIdentification": "Remove Identification", + "HeaderPreviousItem": "Previous Item", + "Shutdown": "Shutdown", + "PictureInPicture": "Picture in picture", + "ValueOneEpisode": "1 episode", + "HeaderPlayQueue": "Play Queue", + "AppName": "App Name", + "HeaderAddToPlaylist": "Add to Playlist", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "HeaderFreeApps": "Free Emby Apps", + "SubtitlesDownloaded": "Subtitles Downloaded", + "Library": "Library", + "HeaderLatestMedia": "Latest Media", + "HeaderPixelFormat": "Pixel Format", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "HeaderDownUpInOrder": "Move Down In Order", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "Backdrop": "Backdrop", + "Unpause": "Unpause", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "Series": "Series", + "TrackCount": "{0} Tracks", + "Mute": "Mute", + "AllTuners": "All Tuners", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "LabelAirsDuringSeason": "Airs during season", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "Smaller": "Smaller", + "Search": "Search", + "Runtime": "Runtime", + "Tagline": "Tagline", + "ValueSpecialEpisodeName": "Special - {0}", + "Favorites": "Favorites", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "RefreshingMetadataDots": "Refreshing metadata...", + "HeaderDisplaySettings": "Display Settings", + "HeaderMoreLikeThis": "More Like This", + "DateLastActive": "Date Last Active", + "Convert": "Convert", + "DateModified": "Date Modified", + "DirectStreaming": "Direct streaming", + "LabelCountry": "Country", + "ExternalAudioNotSupported": "Selecting external audio track", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LogoLightColor": "Logo (Light with Color)", + "Server": "Server", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "Identify": "Identify", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "HeaderLastConnectedTo": "Last Connection To", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "Reset": "Reset", + "Countries": "Countries", + "Container": "Container", + "Forced": "Forced", + "HeaderNewRecording": "New Recording", + "TopEdgePosition": "Top Edge Position", + "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", + "AirDate": "Air Date", + "Blue": "Blue", + "HomeVideosAndPhotos": "Home videos & photos", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "LabelAirsAfterSeason": "Airs after season", + "List": "List", + "LightGray": "Light Gray", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "MinutesAfter": "minutes after", + "Playlists": "Playlists", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "VideoCodecNotSupported": "Converting video to compatible codec", + "HeaderFavoritePlaylists": "Favorite Playlists", + "Converted": "Converted", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "Track": "Track", + "ProductionLocations": "Production locations", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account.", + "NoSubtitles": "No subtitles", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "Showings": "Showings", + "LabelScreensaver": "Screensaver", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "DetailScreenOptions": "Detail Screens", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "Studios": "Studios", + "HeaderMoveUpInOrder": "Move Up In Order", + "Name": "Name", + "Extras": "Extras", + "LabelAudioLayout": "Audio layout", + "ActorAsRole": "as {0}", + "LabelGenreDisplayLimit": "Genre display limit", + "LabelEmail": "Email", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "Aired": "Aired", + "ChannelNameOnly": "Channel {0} only", + "EnableDisplayMirroring": "Enable display mirroring", + "Artists": "Artists", + "Version": "Version", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "LabelTrackNumber": "Track number", + "Music": "Music", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "AnyLanguage": "Any language", + "Stop": "Stop", + "ConvertingDots": "Converting...", + "HeaderRepeatMode": "Repeat Mode", + "DownloadNumItems": "Downloading {0} of {1}", + "RemoveFromHistory": "Remove from History", + "LabelBirthDate": "Birth date", + "HeaderForgotPassword": "Forgot Password?", + "BirthLocation": "Birth location", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderAudioSettings": "Audio Settings", + "ServerNameValue": "Server name: {0}", + "LabelTextBackgroundColor": "Text background color", + "Libraries": "Libraries", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library.", + "ValueOneItem": "1 Item", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "Lock": "Lock", + "FeatureRequiresEmbyPremiere": "This feature requires an active {0}Emby Premiere subscription{1}.", + "ExternalStorage": "External storage", + "RememberLastUser": "Remember last user", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "Navigation": "Navigation", + "MessageItemSaved": "Item saved.", + "Download": "Download", + "Password": "Password", + "AudioBooks": "Audio books", + "HeaderRemovePassword": "Remove Password", + "Purple": "Purple", + "BottomEdgePosition": "Bottom Edge Position", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "AsManyAsPossible": "As many as possible", + "FormatValue": "Format: {0}", + "YourPinMustBe": "Your PIN must be {0} digits.", + "HeaderLatestMusic": "Latest Music", + "PlayFromBeginning": "Play From Beginning", + "ShowSeasonFolders": "Always show season folders", + "HeaderReferenceFrames": "Reference Frames", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Vertical": "Vertical", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "HeaderAudioBook": "Audio Book", + "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "EpisodeTitle": "Episode Title", + "Videos": "Videos", + "GuestStar": "Guest star", + "None": "None", + "Artist": "Artist", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "Level": "Level", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "Live": "Live", + "Interlaced": "Interlaced", + "LabelChannelTags": "Channel tags", + "Profile": "Profile", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "HeaderManageDownloads": "Manage Downloads", + "NumActiveRecordings": "{0} Active Recordings", + "HeaderOpenInNewWindow": "Open in New Window", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Album artists", + "ShowUpNextPreview": "Show up next preview", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "Collections": "Collections", + "LabelTheme": "Theme", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "External": "External", + "LabelDisplayOrder": "Display order", + "Red": "Red", + "HeaderExternalIds": "External Ids", + "LabelMetadataDownloadLanguage": "Preferred metadata download language", + "CancelDownload": "Cancel download", + "OneSeason": "1 Season", + "Info": "Info", + "HashMatch": "Hash Match", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "Cyan": "Cyan", + "HeaderSpecialKeys": "Special Keys", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "LabelSubtitleCodec": "Subtitle codec", + "MoveRight": "Move right", + "HeaderTryPlayback": "Try Playback", + "TitleUnableToReachServer": "Unable to Reach Server", + "HeaderSignInWithConnect": "Sign in with Emby Connect", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Codec": "Codec", + "HeaderServerAddress": "Server Address", + "HeaderCreateRecording": "Create Recording", + "Descending": "Descending", + "DimGray": "Dim Gray", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "PasswordResetComplete": "The password has been reset.", + "HeaderDownloadToDots": "Download to...", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "HeaderFavoriteEpisodes": "Favorite Episodes", + "NextValue": "Next: {0}", + "HeaderAddToPlayQueue": "Add to Play Queue", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "Unfavorited": "Unfavorited", + "Yellow": "Yellow", + "HeaderVideoPlayback": "Video Playback", + "HeaderEditSubtitles": "Edit Subtitles", + "HeaderMusicVideos": "Music Videos", + "DisplayInMyMedia": "Display on home screen", + "MySubtitles": "My Subtitles", + "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", + "LabelNewPassword": "New password", + "SendTestNotification": "Send Test Notification", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "LabelMaxRecordingLength": "Max recording length", + "Transcode": "Transcode", + "LabelAudioCodec": "Audio codec", + "ReleaseDate": "Release Date", + "QueueAllFromHere": "Queue all from here", + "LogoDark": "Logo (Dark Version)", + "LabelVideoScreenUpAction": "Video player up button behavior", + "HeaderPlayMyMedia": "Play my Media", + "LabelSkipForwardLength": "Skip forward length", + "AlwaysPlaySubtitles": "Always play subtitles", + "White": "White", + "HeaderEnabledFields": "Enabled Fields", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "Save": "Save", + "LabelImageType": "Image type", + "HeaderNextItem": "Next Item", + "ManageRecording": "Manage recording", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "LabelPlaceOfBirth": "Place of birth", + "LearnMore": "Learn more", + "ConfirmDeletion": "Confirm Deletion", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "ImdbRating": "IMDb Rating", + "ShowLoginScreen": "Show login screen", + "HeaderBecomeProjectSupporter": "Get Emby Premiere", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "HeaderDefaultChannelOrder": "Default Channel Order", + "Delete": "Delete", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "HeaderFavoriteArtists": "Favorite Artists", + "Cancelled": "Cancelled", + "PlayFromStartOfRecording": "Play from the start of the recording", + "OneItemAddedTo": "1 item added to \"{0}\".", + "TV": "TV", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "SameAsMainTheme": "Same as main theme", + "Locked": "Locked", + "HeaderAddToCollection": "Add to Collection", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderManageCollaboration": "Manage Collaboration", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "LabelStopWhenPossible": "Stop when possible", + "HeaderReadMore": "Read More", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "DateCreated": "Date Created", + "AllCollections": "All Collections", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "HeaderResetPassword": "Reset Password", + "Days": "Days", + "Images": "Images", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "HeaderDownloadSettings": "Download Settings", + "NotificationSent": "Notification sent", + "HeaderActiveRecordings": "Active Recordings", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", + "Photos": "Photos", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "LabelImageDownloadLanguage": "Preferred image download language", + "HeaderTopResults": "Top Results", + "HeaderGroupVersions": "Group Versions", + "LabelSoundEffects": "Sound effects", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "EnableExternalVideoPlayers": "Enable external video players", + "More": "More", + "Unplayed": "Unplayed", + "HeaderAddToFavorites": "Add to Favorites", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "HeaderMissingEpisodes": "Missing Episodes", + "PlayAllFromHere": "Play all from here", + "Disable": "Disable", + "Dashboard": "Dashboard", + "LiveTvFeatureDescription": "Stream Live TV to any Emby app, with a compatible TV tuner device installed on your Emby Server.", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "Producer": "Producer", + "UploadingNumItems": "Uploading {0} of {1}", + "Restart": "Restart", + "HeaderSortBy": "Sort By", + "Label3DFormat": "3D format", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SignInAsValue": "Sign in as {0}", + "VideoType": "Video Type", + "Subtitles": "Subtitles", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "LabelSeasonNumber": "Season number", + "Keep": "Keep", + "Season": "Season", + "Notifications": "Notifications", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "ButtonUnlockPrice": "Unlock {0}", + "HeaderSignInError": "Sign In Error", + "HeaderAddServer": "Add Server", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "LabelSource": "Source", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "DirectPlayError": "Recovering from playback error", + "AddToPlaylist": "Add to playlist", + "Continuing": "Continuing", + "ChannelNumber": "Channel Number", + "Date": "Date", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "BornValue": "Born: {0}", + "ManageEmbyServer": "Manage Emby Server", + "Album": "Album", + "Filters": "Filters", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "Dislike": "Dislike", + "HeaderMusicVideo": "Music Video", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "Uninstall": "Uninstall", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelRememberLogin": "Remember login", + "Shared": "Shared", + "LabelArtistsHelp": "Separate multiple using ;", + "HeaderLatestAudioBooks": "Latest Audio Books", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "Disc": "Disc", + "LabelSettingsTheme": "Settings theme", + "ContinuePlaying": "Continue playing", + "HeaderWelcomeToEmby": "Welcome to Emby", + "DirectorsValue": "Directors: {0}", + "HeaderMyMediaSmall": "My Media (small)", + "GroupItemsIntoCollections": "Group items into collections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "HeaderEditImages": "Edit Images", + "Repeat": "Repeat", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "LabelDeathDate": "Death date", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "SleepTimerIsOff": "Your sleep timer is off", + "UploadOnlyOnWifi": "Upload only on Wifi", + "SignIntoServerName": "Sign in to {0}", + "Program": "Program", + "Specials": "Specials", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", + "ClearSavedTrackSelections": "Clear saved track selections", + "People": "People", + "LibraryCountValue": "{0} Libraries", + "InterlacedVideoNotSupported": "Deinterlacing video", + "GenresValue": "Genres: {0}", + "Studio": "Studio", + "Horizontal": "Horizontal", + "Depressed": "Depressed", + "HeaderViewServerInfo": "View Server Info", + "Composer": "Composer", + "PlayedOnValue": "Played {0}", + "Unlimited": "Unlimited", + "HeaderAddedToPlaylist": "Added to Playlist", + "Anytime": "Anytime", + "Queue": "Queue", + "SeriesRecordingScheduled": "Series Recording Scheduled", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "RequireHashMatch": "Require a hash match", + "Enable": "Enable", + "ValueEpisodeCount": "{0} episodes", + "Shows": "Shows", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Down": "Down", + "HeaderFavoriteShows": "Favorite Shows", + "Normal": "Normal", + "Expand": "Expand", + "BecauseYouWatchedValue": "Because you watched {0}", + "Finish": "Finish", + "ThemeSongs": "Theme songs", + "Next": "Next", + "HeaderAppSettings": "App Settings", + "Home": "Home", + "HeaderRecordingOptions": "Recording Options", + "Access": "Access", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "LabelTVDisplayMode": "Enable TV display mode", + "Magenta": "Magenta", + "Transcoding": "Transcoding", + "Categories": "Categories", + "HeaderSleepTimer": "Sleep Timer", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "FileName": "File Name", + "SeriesCancelled": "Series Cancelled", + "ExitFullscreen": "Exit full screen", + "HeaderTapToUnlock": "Tap to Unlock", + "AttributeNew": "New", + "GameSystem": "Game System", + "PreferredShowDisplay": "Preferred TV show display", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "UpNext": "Up Next", + "ThemeVideos": "Theme videos", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "Black": "Black", + "Layout": "Layout", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "MinutesBefore": "minutes before", + "LabelImageSize": "Image size", + "UnlockGuide": "Unlock Guide", + "SortByValue": "Sort by {0}", + "LabelSortTitle": "Sort title", + "ShowIndicatorsFor": "Show Indicators", + "OneLibrary": "1 Library", + "NumberChannelsValue": "{0} Channels", + "LabelPasswordConfirm": "Password (confirm)", + "Format": "Format", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "NewEpisodesOnly": "New episodes only", + "LabelShortOverview": "Short overview", + "Random": "Random", + "Primary": "Primary", + "Advanced": "Advanced", + "PackageInstallCompleted": "{0} installation completed.", + "LetsGetSetup": "Let's Get Set Up", + "DatePlayed": "Date Played", + "HeaderSearchForImages": "Search for Images", + "CopyStream": "Copy original stream", + "DolbyProfile": "Dolby Profile", + "MessageItemsAdded": "Items added.", + "OneLike": "1 Like", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "Ascending": "Ascending", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "Uniform": "Uniform", + "HeaderVideoRange": "Video Range", + "SearchForMissingMetadata": "Search for missing metadata", + "HeaderTermsOfPurchase": "Terms of Purchase", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "Language": "Language", + "Desktop": "Desktop", + "LabelNewPasswordConfirm": "New password confirm", + "Any": "Any", + "HeaderRecentlyPlayed": "Recently Played", + "Cover": "Cover", + "HeaderMediaInfo": "Media Info", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "LabelVideoCodec": "Video codec", + "Weekly": "Weekly", + "LatestFromLibrary": "Latest {0}", + "SortName": "Sort Title", + "EditNotification": "Edit Notification", + "HeaderUploadNewImage": "Upload New Image", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/es.json b/modules/common/strings/es.json new file mode 100644 index 0000000..34116b4 --- /dev/null +++ b/modules/common/strings/es.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Reemplazar las miniaturas de vista previa de vídeo existentes", + "ReplaceExistingThumbnailImagesHelp": "Se eliminarán todas las miniaturas de vista previa de vídeo existentes y se generarán otras nuevas, si esta opción está habilitada en las opciones de la biblioteca.", + "DateCreated": "Fecha de creación", + "CreatedOnValue": "Creado {0}", + "UpdatedOnValue": "Actualizado {0}", + "EmbyLoginTerms": "Emby está diseñado para ayudarlo a administrar su biblioteca multimedia personal, como videos caseros y fotos. Consulte nuestras {0}condiciones de uso{1}. El uso de cualquier software de Emby constituye la aceptación de estos términos.", + "MessageUnableToConnectToServer": "No podemos conectarnos al servidor seleccionado en este momento. Asegúrese de que se esté ejecutando y vuelva a intentarlo.", + "EmbyIntroMessage": "Con Emby puedes transmitir vídeos, música y fotos a smartphones, tablets y otros dispositivos desde tu Emby Server.", + "HeaderSignInWithConnect": "Iniciar sesión con Emby Connect", + "HeaderWelcomeToEmby": "Bienvenido a Emby", + "HeaderNewUsers": "Nuevos usuarios", + "HeaderPleaseSignIn": "Por favor, regístrese", + "MessageInvalidUser": "Nombre de Usuario o contraseña no valido. Por favor, inténtalo de nuevo.", + "MessageUnlockAppWithPurchaseOrSupporter": "Desbloquee esta función con una pequeña compra única o con una suscripción activa a Emby Premiere.", + "MessageUnlockAppWithSupporter": "Desbloquea esta función con una suscripción activa a Emby Premiere.", + "MessageToValidateSupporter": "Si tiene una suscripción activa a Emby Premiere, asegúrese de haber configurado Emby Premiere en su Panel de control del servidor Emby Server, al que puede acceder haciendo clic en Emby Premiere en el menú principal.", + "ValueSpecialEpisodeName": "Especial - {0}", + "HeaderSignIn": "Iniciar Sesión", + "Share": "Compartir", + "Shared": "Compartido", + "Info": "Informacion", + "Add": "Añadir", + "Speed": "Velocidad", + "PlaybackSpeed": "Velocidad de Reproducción", + "Chapters": "Capítulos", + "Password": "Contraseña", + "SavePassword": "Guardar contraseña", + "LabelPassword": "Contraseña:", + "HeaderResetPassword": "Reestablecer contraseña", + "Series": "Series", + "Preview": "Previsualización", + "Submit": "Enviar", + "Never": "Nunca", + "Table": "Mesa", + "HeaderScheduledTasks": "Tareas programadas", + "Plays": "Reproducciones", + "LastUsedAddressValue": "Ultimo uso {0}", + "LabelKeywordType": "Tipo de Palabra clave:", + "HeaderSelectColumns": "Seleccionar columnas", + "HeaderTopResults": "Mejores resultados", + "HeaderPinSidebar": "Fijar Barra lateral", + "Collapse": "Colapsar", + "LabelBackgroundVideoPlayback": "Reproducción de vídeo de fondo:", + "BackgroundVideoPlaybackHelp": "La reproducción en segundo plano permite que el vídeo se siga reproduciendo incluso cuando la pantalla está apagada.", + "AlwaysOn": "Siempre encendido", + "HeadphonesOrExternalSpeakersConnected": "Auriculares o altavoces externos conectados", + "HeaderKeyboardAndRemote": "Teclado y Mando a distancia", + "NoSelectedItemsSupportOperation": "No hay elementos seleccionados que admitan esta operación.", + "NoOperationsForSelectedItems": "No hay operaciones disponibles para los elementos seleccionados.", + "UploadOnlyOnWifi": "Subir sólo con WiFi", + "HeaderFoldersToUpload": "Carpetas para cargar", + "LabelPasswordConfirm": "Contraseña (confirmar):", + "HeaderMoveUpInOrder": "Mover arriba en el orden", + "HeaderDownUpInOrder": "Mover hacia abajo en el orden", + "LabelUsername": "Nombre de usuario:", + "HeaderAddServer": "Añadir Servidor", + "HeaderSubtitleOffset": "Desplazamiento de subtítulos", + "Watching": "Viendo", + "HeaderRemoveFromContinueWatching": "Eliminar de Continuar viendo", + "RemoveThisTitleFromContinueWatching": "¿Eliminar este título de Continuar viendo?", + "HeaderRemoveFromContinueListening": "Eliminar de Continuar Reproducción", + "RemoveThisTitleFromContinueListening": "¿Eliminar este título de Continuar Reproducción?", + "HeaderIncreaseSubtitleOffset": "Aumentar el desplazamiento de Subtítulos", + "HeaderDecreaseSubtitleOffset": "Disminuir el desplazamiento de Subtítulos", + "Close": "Cerrar", + "HeaderSeeAll": "Ver todo", + "HeaderOpenInNewWindow": "Abrir en nueva ventana", + "LabelEmail": "Correo:", + "LabelHost": "Equipo:", + "LabelHostHelp": "Ejemplo: 192.168.1.100 o https://miservidor.com", + "LabelPort": "Puerto:", + "Disabled": "Desactivado", + "Uninstall": "Desinstalar", + "Enable": "Habilitar", + "AllTuners": "Todos los sintonizadores", + "Disable": "Deshabilitar", + "NextValue": "Siguiente: {0}", + "HeaderNextItem": "Elemento Siguiente", + "HeaderPreviousItem": "Elemento Anterior", + "NoTrailersMessage": "No se han encontrado tráilers. Para añadir tráilers, instale el complemento de Tráilers del {0}catálogo de complementos de Emby{1}.", + "UninstallPluginConfirmation": "¿Estás seguro de que deseas desinstalar este complemento?", + "HeaderUninstallPlugin": "Desinstalar complemento", + "AreYouStillWatching": "¿Sigues viéndolo?", + "LabelCurrentPassword": "Contraseña actual:", + "LabelNewPassword": "Nueva contraseña:", + "LabelNewPasswordConfirm": "Confirmar nueva contraseña:", + "HeaderRemovePassword": "Eliminar Contraseña", + "ServerUpdateNeeded": "Es necesario actualizar Emby Server. Para descargar la última versión, visite {0}", + "MessageThankYouForConnectSignUp": "Gracias por registrarse en Emby Connect. Se enviará un correo electrónico a su dirección con instrucciones sobre cómo confirmar su nueva cuenta. Por favor, confirme la cuenta y luego regrese aquí para iniciar sesión.", + "MessageThankYouForConnectSignUpNoValidation": "¡Gracias por registrarse en Emby Connect! Ahora se le pedirá que inicie sesión con su información de Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "La contraseña y la confirmación de contraseña deben coincidir.", + "ErrorMessageUsernameInUse": "El nombre de usuario ya está en uso. Por favor, elija un nombre nuevo y vuelva a intentarlo.", + "ErrorMessageEmailInUse": "La dirección de correo electrónico ya está en uso. Ingrese una nueva dirección de correo electrónico e intente nuevamente, o use la función de restablecer contraseña.", + "HeaderUpcomingOnTV": "Próximamente en TV en directo", + "HeaderOtherShowings": "Otras funciones", + "Showings": "Posiciones", + "HeaderConnectToServer": "Conectar al servidor", + "ConnectToServerManually": "Conectarse al servidor manualmente", + "LabelEnterConnectUserNameHelp": "Esta es la dirección de correo electrónico que usó para configurar su cuenta de Emby Connect.", + "HeaderSignInError": "Error de inicio de sesión", + "HeaderManualLogin": "Inicio de sesión manual", + "PasswordResetConfirmation": "¿Está seguro de que desea restablecer la contraseña?", + "ContactAdminToResetPassword": "Comuníquese con el administrador del sistema para restablecer su contraseña.", + "ForgotPasswordInNetworkRequired": "Por favor, vuelva a intentarlo dentro de su red local para iniciar el proceso de restablecimiento de contraseña.", + "ForgotPasswordFileCreated": "El siguiente archivo ha sido creado en tu servidor y contiene instrucciones de como proceder:", + "ForgotPasswordFileExpiration": "El PIN de restablecimiento caducará en {0}.", + "InvalidForgotPasswordPin": "Se ingresó un PIN no válido o vencido. Inténtalo de nuevo.", + "PasswordResetForUsers": "Se han eliminado las contraseñas de los siguientes usuarios. Para iniciar sesión, inicie sesión con una contraseña en blanco.", + "HeaderForgotPassword": "¿Se te olvidó tu contraseña?", + "ForgotPasswordUsernameHelp": "Deje este campo en blanco si no recuerda su nombre de usuario.", + "HeaderPasswordReset": "Reestablecer contraseña", + "AttributeNew": "Nuevo", + "Done": "Hecho", + "HeaderResetToDefault": "Restablecer a predeterminado", + "Deinterlacing": "Desentrelazado", + "HeaderBurningInSubtitles": "Grabando Subtitulos", + "Premiere": "Estreno", + "LabelPinCode": "Código PIN:", + "LabelLocalNetworkPinCode": "Código PIN para red local:", + "LabelLocalNetworkPasswordMode": "Modo de inicio de sesión de red local:", + "RequirePasswordInLocalNetwork": "Requerir una contraseña en la red local", + "NoPasswordInLocalNetwork": "No pedir una contraseña en la red local", + "PinCodeInLocalNetwork": "Permitir un código PIN numérico en la red local", + "LocalNetworkPasswordModeHelp": "Seleccione el método de inicio de sesión para dispositivos en la misma red local que su servidor Emby Server.", + "HeaderLocalNetworkAccess": "Acceso a la red local", + "Live": "Directo", + "Reset": "Restablecer", + "Repeat": "Repetir", + "Track": "Pista", + "Tracks": "Pistas", + "HeaderCameraUpload": "Subir desde Cámara", + "TrackCount": "{0} Pistas", + "ItemCount": "{0} Elementos", + "NumberChannelsValue": "{0} Canales", + "HeaderLatestMusic": "Música más reciente", + "HeaderLatestAudioBooks": "Últimos Audio-libros", + "HeaderLatestDownloadedVideos": "Últimos vídeos descargados", + "HeaderRecentlyPlayed": "Reproducido recientemente", + "Recent": "Reciente", + "HeaderFrequentlyPlayed": "Reproducciones frecuentes", + "HeaderMoreLikeThis": "Más como esto", + "HeaderMoreLikeThisOnLiveTV": "Más como esto en TV en directo", + "OriginalAirDateValue": "Fecha de emisión original: {0}", + "EndsAtValue": "Termina a las {0}", + "Date": "Fecha", + "AirDate": "Fecha de emisión", + "Played": "Reproducido", + "Daily": "Diario", + "Weekly": "Semanalmente", + "RequireHashMatch": "Requerir una coincidencia de hash", + "RequireHashMatchHelp": "Requerir una coincidencia de hash filtrará los subtítulos para incluir solo aquellos que se han probado con su archivo de vídeo exacto. Desmarcar esto aumentará la cantidad de subtítulos coincidentes, pero también aumentará las posibilidades de que el texto de los subtítulos sea incorrecto o a destiempo.", + "SearchForForcedSubtitlesOnly": "Sólo subtitulos forzados", + "SearchForForcedSubtitlesOnlyHelp": "La exigencia de subtítulos forzados limitará los resultados a los subtítulos etiquetados como de idioma extranjero.", + "LastEpisodeDateAdded": "Fecha del último episodio añadido", + "LastEpisodeDateAired": "Fecha de emisión del último episodio", + "LabelPlaystate": "Estado de reproducción:", + "Studio": "Productoras", + "Tag": "Etiqueta", + "EpisodeTitle": "Título del Episodio", + "Audio": "Audio", + "Video": "Vídeo", + "Subtitle": "Subtítulo", + "Image": "Imagen", + "CopyStream": "Copiar la transmisión original", + "LabelAudioLayout": "Configuración de audio:", + "LabelAudioCodec": "Códec de audio:", + "LabelAudioLanguage": "Idioma de audio:", + "LabelSubtitleLanguage": "Idioma de subtítulo:", + "LabelVideoCodec": "Códec de vídeo:", + "LabelSubtitleCodec": "Códec de subtítulo:", + "LabelParentalRating": "Clasificación parental:", + "BecauseYouLikeValue": "Porque te gusta {0}", + "BecauseYouWatchedValue": "Porque viste {0}", + "DirectedByValue": "Dirigida por {0}", + "StarringValue": "Protagonizada por {0}", + "Invitations": "Invitaciones", + "ActorAsRole": "como {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Agrupar elementos en colecciones", + "GroupItemsIntoCollectionsHelp": "Agrupa los elementos según las colecciones a las que se hayan agregado. Habilitar ciertos filtros u órdenes de clasificación puede deshabilitar esto automáticamente.", + "GroupItemsIntoTags": "Agrupar elementos en etiquetas", + "GroupItemsIntoTagsHelp": "Agrupe los elementos según las etiquetas a las que se hayan agregado. Habilitar ciertos filtros u órdenes de clasificación puede deshabilitar esto automáticamente.", + "User": "Usuario", + "Access": "Acceso", + "Users": "Usuarios", + "Library": "Biblioteca", + "Devices": "Dispositivos", + "Cancel": "Cancelar", + "Restart": "Reiniciar", + "Shutdown": "Apagar", + "Logs": "Registros", + "Visibility": "Visibilidad", + "Notifications": "Notificaciones", + "SendTestNotification": "Enviar Notificación de prueba", + "NotificationSent": "Notificación enviada", + "DeleteNotificationConfirmation": "¿Estás seguro de que desea eliminar esta notificación?", + "DeleteNotification": "Eliminar Notificación", + "AddNotification": "Añadir Notificación", + "EditNotification": "Editar Notificación", + "LimitUserEventsTo": "Limitar eventos de usuario a:", + "LimitLibraryEventsTo": "Limitar eventos de la biblioteca a:", + "LimitDeviceEventsTo": "Limitar eventos de dispositivos a:", + "ForAdditionalNotificationOptions": "El administrador del servidor puede instalar los servicios de notificación en el {0}catálogo de complementos{1} de Emby.", + "Plugins": "Plugins", + "Systems": "Sistemas", + "Server": "Servidor", + "Dashboard": "Panel de control", + "PlayOnAnotherDevice": "Reproducir en otro dispositivo", + "HeaderConnectionHelp": "Ayuda de conexión", + "AccessRestrictedTryAgainLater": "Actualmente el acceso está restringido. Por favor, inténtelo de nuevo más tarde.", + "ButtonGotIt": "Entendido", + "RememberMe": "Recuérdame", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Gestionar Emby Server", + "ShutdownServer": "Apagar Emby Server", + "RestartServer": "Reiniciar Emby Server", + "RecordingCancelled": "Grabación cancelada", + "SeriesCancelled": "Series canceladas", + "Recording": "Grabando", + "SeriesRecording": "Grabando series", + "RecordingScheduled": "Grabación programada", + "SeriesRecordingScheduled": "Grabación de serie programada", + "HeaderNewRecording": "Nueva grabación", + "HeaderWakeServer": "Despertar Servidor", + "AttemptingWakeServer": "Intentando iniciar el servidor. Por favor, espere...", + "WakeServerSuccess": "¡Realizado correctamente!", + "HeaderCustomizeHomeScreen": "Personalizar la pantalla de inicio", + "WakeServerError": "Los paquetes Wake On LAN se enviaron a su máquina servidor, pero no podemos conectarnos a su servidor Emby. Es posible que su máquina necesite un poco más de tiempo para activarse o que Emby Server no se esté ejecutando activamente en la máquina.", + "Days": "Días", + "Network": "Red", + "Networks": "Redes", + "SortByValue": "Ordenar por {0}", + "HeaderSortBy": "Ordenar por", + "HeaderPhotoAlbums": "Álbumes de fotos", + "Photos": "Fotos", + "HeaderAppearsOn": "Aparece en", + "List": "Lista", + "HeaderRecordSeries": "Grabar series", + "HeaderCinemaMode": "Introducciones de Cine", + "Conversions": "Conversiones", + "Downloads": "Descargas", + "HeaderManageDownloads": "Administrar Descargas", + "InternalStorage": "Almacenamiento interno", + "ExternalStorage": "Almacenamiento externo", + "UploadToFollowingServers": "Subir a servidores", + "UploadingNumItems": "Subiendo {0} de {1}", + "DownloadNumItems": "Descargando {0} de {1}", + "HeaderSampleRate": "Frecuencia de muestreo", + "HeaderReferenceFrames": "Fotogramas de referencia", + "HeaderBitDepth": "Profundidad de bits", + "HeaderPixelFormat": "Formato de píxel", + "Profile": "Perfil", + "Bitrate": "Velocidad de bits", + "Expand": "Expandir", + "Container": "Contenedor", + "Format": "Formato", + "Path": "Ruta", + "Size": "Tamaño", + "Resolution": "Resolución", + "HeaderCodecTag": "Etiqueta de codec", + "Framerate": "Velocidad de fotogramas", + "Interlaced": "Entrelazado", + "Anamorphic": "Anamórfico", + "Level": "Nivel", + "Timestamp": "Marca de tiempo", + "Language": "Idioma", + "Codec": "Codec", + "Stream": "Transmisión", + "HeaderExtradata": "Datos extra", + "HeaderHardwareAcceleratedTranscoding": "Transcodificación acelerada por hardware", + "HeaderHardwareAcceleratedTranscodingDescription": "Aprovecha la GPU de tu servidor. Emby tiene la aceleración de hardware más avanzada y rápida de la industria.", + "HeaderOfflineDownloads": "Medios sin conexión", + "AndMuchMoreExclamation": "¡Y mucho más!", + "HeaderOfflineDownloadsDescription": "Descarga los medios en sus dispositivos para usarlos fácilmente sin conexión.", + "LiveTvFeatureDescription": "Transmita TV en directo a cualquier aplicación Emby con un dispositivo sintonizador de TV compatible instalado en su servidor Emby Server.", + "DvrFeatureDescription": "Programe grabaciones de TV en directo individuales, grabaciones de series y más con Emby DVR.", + "CinemaModeFeatureDescription": "Cinema Intros le brinda la verdadera experiencia cinematográfica con tráilers e intros personalizados antes de la función principal.", + "HeaderFreeApps": "Apps de Emby gratuitas", + "FreeAppsFeatureDescription": "Disfrute de acceso gratuito a las aplicaciones de Emby para sus dispositivos.", + "HeaderBecomeProjectSupporter": "Obtener Emby Premiere", + "HeaderViewServerInfo": "Ver información del servidor", + "PlaybackTvModeRequiresEmbyPremiere": "La reproducción de medios en modo TV requiere una {0}suscripción a Emby Premiere{1} activa.", + "FeatureRequiresEmbyPremiere": "Esta función requiere una {0}suscripción a Emby Premiere{1} activa.", + "HeaderConvertYourRecordings": "Convierte tus grabaciones", + "Record": "Grabar", + "Save": "Guardar", + "Edit": "Editar", + "HeaderSavePlaylist": "Guardar lista de reproducción", + "Latest": "Últimas", + "Download": "Descargar", + "Downloaded": "Descargado", + "Converted": "Convertido", + "RemoveFromHistory": "Eliminar del Historial", + "ConfirmRemoveFromHistory": "¿Eliminar este elemento del historial?", + "Downloading": "Descargando", + "Advanced": "Avanzado", + "LinkedToEmbyConnect": "Vinculado a Emby Connect", + "Delete": "Eliminar", + "Both": "Ambos", + "LabelChannelDisplay": "Visualización de canales:", + "HeaderDeleteItem": "Eliminar elemento", + "HeaderDeleteUser": "Borrar usuario", + "DeleteItemConfirmation": "¿Está seguro de que desea eliminar {0}?", + "DeleteUserConfirmation": "¿Está seguro de que desea eliminar el usuario {0}?", + "DeleteUsersConfirmation": "¿Está seguro de que desea eliminar estos {0} usuarios?", + "HeaderDeleteDevice": "Eliminar dispositivo", + "DeleteDeviceConfirmation": "¿Estás seguro de que deseas eliminar este dispositivo? Volverá a aparecer la próxima vez que un usuario inicie sesión con él.", + "ConfirmDeleteItem": "Eliminar este elemento lo eliminará tanto del sistema de archivos como de su biblioteca multimedia.", + "FollowingFilesWillBeDeleted": "Se eliminarán los siguientes archivos y carpetas:", + "AreYouSureToContinue": "¿Seguro que desea continuar?", + "Refresh": "Refrescar", + "RefreshingMetadataDots": "Actualizando metadatos...", + "ScanningLibraryFilesDots": "Escaneando archivos de la biblioteca...", + "HeaderFavoritesThenByChannelNumber": "Favoritos, además de por número de canal", + "HeaderAddToCollection": "Agregar a la colección", + "HeaderFavoritesThenByTitle": "Favoritos, además de por Título", + "HeaderFavoritesThenByDefault": "Favoritos, además de por Orden de Canal predeterminado", + "HeaderDefaultChannelOrder": "Orden de canal predeterminado", + "HeaderAddToFavorites": "Añadir a Favoritos", + "HeaderRemoveFromFavorites": "Eliminar de Favoritos", + "Favorited": "Favorito", + "Unfavorited": "No favorito", + "HeaderNewCollection": "Nueva colección", + "HeaderNewPlaylist": "Nueva lista de reproducción", + "AllCollections": "Todas las Colecciones", + "AllPlaylists": "Todas las Listas de reproducción", + "Create": "Crear", + "HeaderAddedToPlaylist": "Agregado a la lista de reproducción", + "HeaderAddedToCollection": "Agregado a la colección", + "OneItemAddedTo": "Se agregó 1 elemento a \"{0}\".", + "ItemsAddedTo": "{0} elementos agregados a \"{1}\".", + "HeaderAddedToPlayQueue": "Agregado a la cola de reproducción", + "HeaderPlayingNext": "Siguiente reproducción", + "Help": "Ayuda", + "HeaderGetHelp": "Consigue ayuda", + "LabelTVDisplayMode": "Activar el Modo de Pantalla de TV", + "Desktop": "Escritorio", + "Mobile": "Móvil / Tablet", + "Navigation": "Navegación", + "HeaderVideoPlayback": "Reproducción de Vídeo", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Temporadas", + "OneTrack": "1 Pista", + "OneSeason": "1 Temporada", + "Libraries": "Bibliotecas", + "NumberSeasonsValue": "{0} Temporadas", + "TVDisplayModeHelp": "Optimice la interfaz de usuario de este dispositivo para su visualización en un televisor y el uso de un control remoto como método de entrada. Generalmente, no se recomienda si su método de entrada principal es el ratón o es táctil.", + "LabelDisplayLanguage": "Idioma de la pantalla:", + "LabelDisplayLanguageHelp": "Traducir Emby es un proyecto en curso.", + "LearnHowYouCanContribute": "Aprenda cómo puede contribuir.", + "NewCollectionHelp": "Las colecciones le permiten crear agrupaciones personalizadas de películas y otro contenido de la biblioteca.", + "SearchForCollectionInternetMetadata": "Buscar en internet ilustraciones y metadatos", + "DisplayMissingEpisodesWithinSeasons": "Mostrar episodios faltantes dentro de las temporadas", + "DisplayMissingEpisodesWithinSeasonsHelp": "Esto también debe estar activado para las bibliotecas de TV en la configuración del servidor Emby Server.", + "EnableThemeSongs": "Reproducir canciones temáticas", + "EnableBackdrops": "Habilitar imágenes de fondo", + "EnableThemeSongsHelp": "Si está habilitado, las canciones temáticas se reproducirán en segundo plano mientras se navega por la biblioteca.", + "EnableBackdropsHelp": "Si está habilitado, los fondos se mostrarán en el fondo de algunas páginas mientras navega por la biblioteca.", + "EnableThemeVideos": "Reproducir vídeos temáticos", + "EnableThemeVideosHelp": "Si está habilitado, los vídeos temáticos se reproducirán en segundo plano mientras se navega por la biblioteca.", + "RunAtStartup": "Ejecutar en el arranque", + "ServerStartup": "Inicio del Servidor", + "EmbyServerOnXHasStarted": "El servidor Emby en {0} se ha iniciado.", + "LabelScreensaver": "Salvapantallas:", + "LabelSoundEffects": "Efectos de sonido:", + "LabelName": "Nombre:", + "NewCollectionNameExample": "Ejemplo: Colección de Star Wars", + "MessageItemsAdded": "Elementos añadidos.", + "OptionNew": "Nuevo...", + "LabelPlaylist": "Lista de reproducción:", + "AddToPlaylist": "Añadir a la lista de reproducción", + "HeaderAddToPlaylist": "Añadir a la lista de reproducción", + "Subtitles": "Subtítulos", + "LabelTheme": "Tema:", + "LabelSettingsTheme": "Opciones del tema:", + "LabelThemeAccentColor": "Color acentuado:", + "ThemeAccentColorDescription": "Controla el color de indicadores, iconos y texto importantes.", + "SearchForSubtitles": "Buscar subtítulos", + "LabelLanguage": "Idioma:", + "Search": "Buscar", + "NoSubtitleSearchResultsFound": "No se han encontrado resultados. ¿Ha configurado la {0}descarga de subtitulo{1}?", + "NoLyricsSearchResultsFound": "No se han encontrado resultados. ¿Has configurado la {0}descarga de letras{1}?", + "Lyrics": "Letras", + "SearchForLyrics": "Buscar por letras", + "Finish": "Finalizar", + "File": "Archivo", + "Exit": "Salir", + "Sleep": "Suspender", + "Setup": "Configuración", + "MessageAreYouSureDeleteSubtitles": "¿Está seguro de que desea eliminar este archivo de subtítulo?", + "ConfirmDeletion": "Confirmar eliminación", + "MySubtitles": "Mis Subtítulos", + "MessageDownloadQueued": "Descarga en cola.", + "HeaderEditSubtitles": "Editar subtítulos", + "UnlockGuide": "Guía de desbloqueo", + "HeaderRefreshMetadata": "Actualizar metadatos", + "HeaderRefreshAllMetadata": "Actualizar todos los metadatos", + "ReplaceExistingImages": "Reemplazar imágenes existentes", + "ReplaceExistingImagesHelp": "Se eliminarán todas las imágenes existentes y se descargarán otras nuevas. En algunos casos, esto puede resultar en menos imágenes disponibles que antes.", + "ReplaceAllMetadata": "Reemplazar todos los metadatos", + "SearchForMissingMetadata": "Buscar metadatos faltantes", + "LabelRefreshMode": "Modo de actualización:", + "NoItemsFound": "No se encontraron elementos.", + "HeaderSaySomethingLike": "Di algo como...", + "ButtonTryAgain": "Inténtalo de nuevo", + "HeaderYouSaid": "Dijiste...", + "MessageWeDidntRecognizeCommand": "Lo sentimos, no reconocimos ese comando.", + "MessageIfYouBlockedVoice": "Si denegó el acceso por voz a la aplicación, deberá volver a configurarla antes de volver a intentarlo.", + "ValueDiscNumber": "Disco {0}", + "Unrated": "Sin clasificar", + "Favorite": "Favorito", + "Like": "Me gusta", + "Dislike": "No me gusta", + "RefreshDialogHelp": "Los metadatos se actualizan según la configuración y los proveedores de metadatos que están habilitados en la configuración de la biblioteca de Emby.", + "Open": "Abrir", + "Play": "Reproducir", + "Pause": "Pausa", + "HeaderPlayQueue": "Cola de reproducción", + "HeaderAddToPlayQueue": "Agregar a la cola de reproducción", + "Shuffle": "Aleatorio", + "Identify": "Identificar", + "HeaderRemoveIdentification": "Eliminar identificación", + "ResetMetadataConfirmation": "¿Estás seguro de que deseas restablecer todos los metadatos?", + "HeaderEditMetadata": "Editar metadatos", + "Convert": "Convertir", + "Resume": "Continuar", + "HeaderInstantMix": "Mezcla Instantánea", + "HeaderGoToItem": "Ir al elemento", + "HeaderGoToSeason": "Ir a Temporada", + "HeaderGoToSeries": "Ir a Series", + "HeaderGoToAlbum": "Ir a Album", + "HeaderGoToArtist": "Ir a Artista", + "HeaderPlayAll": "Reproducir todo", + "PictureInPicture": "Imagen en Imagen (PIP)", + "Fullscreen": "Pantalla completa", + "ExitFullscreen": "Salir de pantalla completa", + "Rewind": "Rebobinar", + "FastForward": "Avance rápido", + "Remove": "Eliminar", + "Rename": "Renombrar", + "Queue": "En cola", + "QueueAllFromHere": "En cola todos desde aquí", + "PlayAllFromHere": "Reproducir todos desde aquí", + "PlayFromBeginning": "Reproducir desde el Principio", + "FromBeginning": "Desde el principio", + "ResumeAt": "Reanudar desde {0}", + "HeaderRemoveFromPlaylist": "Quitar de la lista de reproducción", + "HeaderRemoveFromPlayQueue": "Quitar de la cola de reproducción", + "HeaderRemoveFromCollection": "Quitar de la colección", + "Sort": "Ordenar", + "Trailer": "Trailer", + "SelectNone": "No seleccionar ninguno", + "SelectAll": "Seleccionar Todo", + "HeaderMarkPlayed": "Marcar como visto", + "HeaderMarkUnplayed": "Marcar como no visto", + "HeaderGroupVersions": "Agrupar versiones", + "PleaseSelectTwoItems": "Por favor, seleccione al menos dos elementos.", + "HeaderConfirmRecordingCancellation": "Confirmar cancelación de la grabación", + "MessageConfirmRecordingCancellation": "¿Cancelar la grabación?", + "Album": "Album", + "AlbumArtist": "Artista del álbum", + "Error": "Error", + "VoiceInput": "Entrada de voz", + "LabelContentType": "Tipo de contenido:", + "LabelPath": "Ruta:", + "Playlists": "Lista de reproducción", + "LabelTitle": "Título:", + "LabelOriginalTitle": "Título original:", + "LabelSortTitle": "Ordenar por titulo:", + "LabelDateAdded": "Fecha añadida:", + "DateAdded": "Fecha añadida", + "DateModified": "Fecha Modificada", + "DatePlayed": "Fecha de reproducción", + "DateLastActive": "Fecha de última actividad", + "ConfigureDateAdded": "Configure cómo se determina la fecha añadida en el panel de Emby Server en la configuración de la biblioteca", + "LabelStatus": "Estado:", + "LabelArtistsHelp": "Separe más de uno usando ;", + "HeaderAlbumArtists": "Artistas del álbum", + "LabelAlbumArtists": "Artistas de los álbumes", + "LabelAlbum": "Album:", + "Artist": "Artista", + "Artists": "Artistas", + "ImdbRating": "Calificación de IMDb", + "CommunityRating": "Calificación de la comunidad", + "LabelCommunityRating": "Calificación de la comunidad:", + "LabelCriticRating": "Valoración crítica", + "CriticRating": "Valoración crítica", + "LabelWebsite": "Sitio web:", + "Tagline": "Eslogan", + "LabelOverview": "Sinopsis:", + "LabelShortOverview": "Sinopsis corta:", + "LabelReleaseDate": "Fecha de lanzamiento:", + "LabelPlaceOfBirth": "Lugar de nacimiento:", + "Aired": "Emitido", + "LabelAirDays": "Días de emisión:", + "LabelAirTime": "Hora de emisión", + "LabelRuntimeMinutes": "Tiempo de ejecución (minutos):", + "LabelCustomRating": "Valoración personalizada:", + "LabelOriginalAspectRatio": "Relación de aspecto original:", + "Label3DFormat": "Formato 3D", + "FormatValue": "Formato: {0}", + "DownloadsValue": "{0} descargas", + "HashMatch": "coincidencia de hash", + "EnableExternalVideoPlayers": "Activar reproductores externos de vídeo", + "EnableExternalVideoPlayersHelp": "Se mostrará un menú de reproductor externo al iniciar la reproducción de vídeo.", + "HeaderSpecialEpisodeInfo": "Información del episodio especial", + "LabelAirsDuringSeason": "Se emite durante la temporada:", + "LabelAirsAfterSeason": "Se emite después de la temporada:", + "LabelAirsBeforeEpisode": "Se emite antes del episodio:", + "HeaderExternalIds": "IDs externos:", + "HeaderDisplaySettings": "Configuración de pantalla", + "PlaylistOrder": "Orden de la lista de reproducción", + "CollectionOrder": "Orden de la Colección", + "LabelDisplayOrder": "Orden de visualización:", + "LabelFileOrder": "Orden de archivo:", + "Display": "Pantalla", + "Countries": "Países", + "Genres": "Géneros", + "Studios": "Estudios", + "Tags": "Etiquetas", + "Links": "Enlaces", + "Movie": "Película", + "Program": "Programa", + "Channel": "Canal", + "Episode": "Episodio", + "Season": "Temporada", + "HeaderMetadataSettings": "Configuración de Metadatos", + "People": "Reparto:", + "Number": "Numero", + "Lock": "Bloquear", + "HeaderScreenLocked": "Pantalla bloqueada", + "HeaderUnlockControls": "Desbloquear controles", + "HeaderTapToUnlock": "Toca para desbloquear", + "LabelMetadataDownloadLanguage": "Idioma de descarga de metadatos preferido:", + "LabelImageDownloadLanguage": "Idioma preferido para descargar imágenes:", + "LabelLockItemToPreventChanges": "Bloquear este elemento para evitar cambios futuros", + "LockThisField": "Bloquear este campo para evitar cambios futuros al actualizar los metadatos", + "MessageLeaveEmptyToInherit": "Déjelo vacío para heredar la configuración de un elemento principal o el valor predeterminado global.", + "LabelCountry": "País:", + "LabelCertificationCountry": "País de certificación:", + "CertificationCountryHelp": "Esto influirá en el sistema de clasificación de contenidos que se use.", + "LabelDynamicExternalId": "ID {0}:", + "LabelBirthYear": "Año de nacimiento:", + "LabelBirthDate": "Fecha de nacimiento:", + "LabelDeathDate": "Fecha fallecimiento:", + "LabelEndDate": "Fecha de finalización:", + "LabelSeasonNumber": "Temporada número:", + "LabelEpisodeNumber": "Episodio número:", + "LabelTrackNumber": "Número de pista:", + "LabelNumber": "Número:", + "LabelDiscNumber": "Número de disco:", + "LabelParentNumber": "Número de padre:", + "SortName": "Ordenar por Titulo", + "OriginalTitle": "Título original", + "ReleaseDate": "Fecha de lanzamiento", + "Continuing": "Continuando", + "Ended": "Finalizado", + "HeaderEnabledFields": "Campos habilitados", + "HeaderEnabledFieldsHelp": "Desmarque un campo para bloquearlo y evitar que se modifiquen sus datos.", + "Backdrops": "Imágenes de fondo", + "Images": "Imágenes", + "Runtime": "Tiempo de ejecución", + "ProductionLocations": "Localizaciones de producción", + "BirthLocation": "Lugar de nacimiento", + "ParentalRating": "Clasificación parental", + "PlayCount": "Contador de reproducciones", + "Name": "Nombre", + "Overview": "Sinopsis", + "LabelType": "Tipo:", + "LabelPersonRole": "Papel:", + "LabelPersonRoleHelp": "Ejemplo: Conductor del camión de helados", + "Actor": "Actor", + "Composers": "Compositores", + "Composer": "Compositor", + "Director": "Director", + "GuestStar": "Actor invitado", + "Producer": "Productor", + "Writer": "Escritor", + "MessageNoSyncJobsFound": "No se encontraron descargas. Cree trabajos de descarga con los botones Descargar que se encuentran en toda la aplicación.", + "MessageNoDownloadsFound": "No hay descargas sin conexión. Descargue sus medios para usarlos sin conexión haciendo clic en Descargar en toda la aplicación.", + "InstallingPackage": "Instalando {0}", + "PackageInstallCompleted": "{0} instalación completada.", + "PackageInstallFailed": "{0} instalación fallida.", + "PackageInstallCancelled": "{0} instalación cancelada.", + "SeriesYearToPresent": "{0} - Actualidad", + "OneDevice": "1 Dispositivo", + "DeviceCountValue": "{0} Dispositivos", + "OneLog": "1 Registro", + "LogCountValue": "{0} Registros", + "OneVote": "1 Voto", + "VoteCountValue": "{0} Votos", + "OneLike": "1 Me gusta", + "LikeCountValue": "{0} Me gusta", + "OneUser": "1 Usuario", + "UserCountValue": "{0} Usuarios", + "OneLibrary": "1 Biblioteca", + "LibraryCountValue": "{0} Bibliotecas", + "ValueOneItem": "1 Elemento", + "ValueOneEpisode": "1 episodio", + "ValueEpisodeCount": "{0} episodios", + "Albums": "Álbumes", + "Song": "Canción", + "Songs": "Canciones", + "Authors": "Autores", + "Books": "Libros", + "AudioBooks": "Audio libros", + "HeaderAudioBooks": "Audio libros", + "HeaderAudioBook": "Audio-libro", + "HeaderIdentifyItemHelp": "Ingrese uno o más criterios de búsqueda. Elimine criterios para aumentar los resultados de la búsqueda.", + "PleaseEnterNameOrId": "Ingrese un nombre o un identificador externo.", + "MessageItemSaved": "Elemento guardado.", + "SearchResults": "Resultados de la búsqueda", + "ServerNameIsRestarting": "El servidor Emby - {0} se esta reiniciando.", + "ServerNameIsShuttingDown": "El servidor Emby - {0} se esta apagando.", + "HeaderDeleteItems": "Eliminar elementos", + "ConfirmDeleteItems": "Eliminar estos elementos los eliminará tanto del sistema de archivos como de su biblioteca multimedia.", + "PleaseRestartServerName": "Por favor, reinicie el servidor Emby en {0}", + "ConvertingDots": "Convirtiendo...", + "LabelSyncNoTargetsHelp": "Parece que actualmente no tiene ninguna aplicación que admita la descarga sin conexión.", + "DownloadingDots": "Descargando...", + "LearnMore": "Saber más", + "LabelBitrateMbps": "Velocidad de bits (Mbps):", + "ConvertUnwatchedVideosOnly": "Convertir solo videos no reproducidos", + "SyncUnwatchedVideosOnly": "Descargar solo videos no reproducidos", + "ConvertUnwatchedVideosOnlyHelp": "Sólo se convertirán los videos que no estén marcados como reproducidos por completo.", + "SyncUnwatchedVideosOnlyHelp": "Solo se descargarán los videos que no se hayan marcado como reproducidos por completo, y los videos se eliminarán del dispositivo a medida que se reproduzcan por completo.", + "AutomaticallySyncNewContent": "Descargar contenido nuevo automáticamente", + "AutomaticallySyncNewContentHelp": "El nuevo contenido agregado a esta carpeta se descargará automáticamente al dispositivo.", + "AutomaticallyConvertNewContent": "Convertir automáticamente nuevo contenido", + "AutomaticallyConvertNewContentHelp": "El contenido nuevo agregado a esta carpeta se convertirá automáticamente.", + "LabelItemLimit": "Límite de elementos:", + "ConvertItemLimitHelp": "Opcional. Establezca un límite al número de elementos que se convertirán.", + "DownloadItemLimitHelp": "Opcional. Establezca un límite para la cantidad de elementos que se descargarán.", + "PleaseSelectDeviceToSyncTo": "Por favor, seleccione un dispositivo para descargar.", + "Screenshots": "Capturas de pantalla", + "MoveRight": "Mover derecha", + "MoveLeft": "Mover izquierda", + "HeaderUploadNewImage": "Subir nueva imagen", + "HeaderDeleteImage": "Borrar imagen", + "ConfirmDeleteImage": "¿Borrar imagen?", + "HeaderEditImages": "Editar imágenes", + "Settings": "Ajustes", + "ShowIndicatorsFor": "Mostrar indicadores", + "Episodes": "Episodios", + "Programs": "Programas", + "HeaderCastCrew": "Reparto y Equipo Técnico", + "DvrSubscriptionRequired": "Emby Live TV y DVR requieren una {0}suscripción Emby Premiere{1} activa.", + "HeaderCancelRecording": "Cancelar grabación", + "HeaderKeepRecording": "Mantener grabación", + "HeaderCancelSeries": "Cancelar serie", + "HeaderKeepSeries": "Mantener serie", + "HeaderLearnMore": "Aprende más", + "SeriesSettings": "Configuración de Series", + "HeaderRecordingOptions": "Opciones de grabación", + "HeaderDoNotRecord": "No grabar", + "HeaderSeriesOptions": "Opciones de serie", + "Layout": "Diseño", + "Channels": "Canales", + "ChannelNameOnly": "Solo canal {0}", + "Anytime": "En cualquier momento", + "AnyLanguage": "Cualquier idioma", + "AroundTime": "Alrededor de {0}", + "HeaderLatestMovies": "Ultimas Películas", + "All": "Todo", + "Stop": "Detener", + "AllChannels": "Todos los canales", + "NewEpisodesOnly": "Solo nuevos episodios", + "AllEpisodes": "Todos los episodios", + "LabelStartWhenPossible": "Empezar cuando sea posible:", + "LabelStopWhenPossible": "Detener cuando sea posible:", + "MinutesBefore": "minutos antes", + "MinutesAfter": "minutos después", + "SkipEpisodesAlreadyInMyLibrary": "No grabar episodios que ya estén en mi biblioteca", + "SkipEpisodesAlreadyInMyLibraryHelp": "Los episodios se compararán usando números de episodios y temporadas, cuando estén disponibles.", + "LabelKeepUpTo": "Mantener hasta:", + "AsManyAsPossible": "El mayor número posible", + "DefaultErrorMessage": "Hubo un error al procesar la solicitud. Por favor, inténtelo de nuevo más tarde.", + "UntilIDelete": "Hasta que lo elimine", + "UntilSpaceNeeded": "Hasta que se necesite espacio", + "Categories": "Categorías", + "Sports": "Deportes", + "News": "Noticias", + "Movies": "Películas", + "Music": "Música", + "Kids": "Infantil", + "MoreFromValue": "Más de {0}", + "DiedValue": "Murió: {0}", + "BornValue": "Nacido: {0}", + "EnableColorCodedBackgrounds": "Aplicar fondos de colores a los programas, según su categoría", + "SortChannelsBy": "Ordenar canales por:", + "ChannelNumber": "Número de canal", + "HeaderBenefitsEmbyPremiere": "Beneficios de Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Disfrute de un minuto de reproducción. Gracias por probar Emby.", + "HeaderTryPlayback": "Prueba de reproducción", + "HowDidYouPay": "¿Cómo pagaste?", + "IHaveEmbyPremiere": "Tengo Emby Premiere", + "IPurchasedThisApp": "Compré esta aplicación", + "ButtonRestorePreviousPurchase": "Restaurar compra", + "ButtonUnlockWithPurchase": "Desbloquear con una compra", + "ButtonUnlockPrice": "Desbloquear {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere mensual {0}", + "HeaderAlreadyPaid": "¿Ya has pagado?", + "ButtonPlayOneMinute": "Reproducir un minuto", + "PlaceFavoriteChannelsAtBeginning": "Situar los canales favoritos al principio", + "HeaderUnlockFeature": "Desbloquear función", + "MessageDidYouKnowCinemaMode": "¿Sabía que con Emby Premiere, puede mejorar tu experiencia con funciones como Cinema Intros?", + "HeaderPlayMyMedia": "Reproducir mis contenidos", + "HeaderDiscoverEmbyPremiere": "Descubre Emby Premiere", + "HeaderNowPlaying": "Reproduciendo ahora", + "Items": "Elementos", + "AppName": "Nombre de la Aplicación", + "OneChannel": "Un canal", + "ConfirmRemoveDownload": "¿Quieres eliminar la descarga?", + "ConfirmRemoveItem": "¿Eliminar el elemento?", + "RemoveDownload": "Eliminar descarga", + "ConfirmCancelConversion": "¿Cancelar la conversión?", + "CancelConversion": "Cancelar la Conversión", + "KeepDownload": "Mantener descarga", + "AddedOnValue": "Añadido {0}", + "RemovingFromDevice": "Quitar del dispositivo", + "KeepOnDevice": "Mantener en el dispositivo", + "CancelDownload": "Cancelar descarga", + "SyncJobItemStatusReadyToTransfer": "Listo para transferir", + "SyncJobItemStatusSyncedMarkForRemoval": "Quitar del dispositivo", + "SyncJobItemStatusQueued": "En cola", + "SyncJobItemStatusConverting": "Convirtiendo", + "SyncJobItemStatusTransferring": "Transfiriendo", + "SyncJobItemStatusSynced": "Descargado", + "Failed": "Fallido", + "SyncJobItemStatusRemovedFromDevice": "Eliminado del dispositivo", + "Cancelled": "Cancelado", + "Retry": "Reintentar", + "Continue": "Continuar", + "ContinueInSecondsValue": "Continuar en {0} segundos.", + "HeaderRemoteControl": "Control remoto", + "Disconnect": "Desconectar", + "EnableDisplayMirroring": "Activar la duplicación de pantalla", + "RemoteAccess": "Acceso Remoto", + "HeaderPlayOn": "Reproducir en", + "Quality": "Calidad", + "Auto": "Automático", + "AndroidUnlockRestoreHelp": "Para restaurar su compra anterior, asegúrese de haber iniciado sesión en el dispositivo con la misma cuenta de Google (o Amazon) que originalmente realizó la compra. Asegúrese de que la tienda de aplicaciones esté habilitada y no esté restringida por ningún control parental, y asegúrese de tener una conexión a Internet activa. Solo tendrá que hacer esto una vez para restaurar su compra anterior.", + "HeaderAspectRatio": "Relación de aspecto", + "Original": "Original", + "Fill": "Rellenar", + "Cover": "Portada", + "MessageNoServersAvailableToConnect": "No hay servidores disponibles para conectarse. Si ha sido invitado a compartir un servidor, asegúrese de aceptarlo a continuación o haciendo clic en el enlace del correo electrónico.", + "MessagePlayAccessRestricted": "La reproducción de este contenido está actualmente restringida. Comuníquese con su administrador de Emby Server para obtener más información.", + "Accept": "Aceptar", + "Reject": "Rechazar", + "Connect": "Conectar", + "HeaderMyMedia": "Mis Contenidos", + "HeaderMyMediaSmall": "Mis Contenidos (pequeño)", + "LatestFromLibrary": "Lo último en {0}", + "HeaderLatestEpisodes": "Últimos episodios", + "ContinuePlaying": "Seguir reproduciendo", + "ContinueWatching": "Continuar viendo", + "HeaderLatestChannelMedia": "Últimos elementos del canal", + "HeaderContinueWatching": "Continuar viendo", + "HeaderContinueListening": "Reanudar reproducción", + "HeaderActiveRecordings": "Grabaciones activas", + "HeaderLatestRecordings": "Últimas grabaciones", + "LabelConvertTo": "Convertir a:", + "LabelDownloadTo": "Descargar en:", + "HeaderDownloadToDots": "Descargar en...", + "Next": "Siguiente", + "LabelSource": "Fuente:", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "Todos los idiomas", + "Previous": "Anterior", + "HeaderNextUp": "Siguiente", + "HeaderPlayNextUp": "Reproducir Siguiente", + "HeaderLatestFrom": "Lo último en {0}", + "LabelHomeScreenSectionValue": "Sección de la pantalla de inicio {0}:", + "PasswordResetComplete": "La contraseña ha sido restablecida.", + "PasswordSaved": "Contraseña guardada.", + "SettingsSaved": "Configuración guardada.", + "Upcoming": "Próximamente", + "HeaderSelectImageFile": "Seleccionar archivo de imagen", + "None": "Ninguno", + "More": "Más", + "Up": "Arriba", + "Down": "Abajo", + "Home": "Inicio", + "Back": "Atrás", + "Random": "Aleatorio", + "Playback": "Reproducción", + "Favorites": "Favoritos", + "HeaderHomeScreen": "Pantalla de inicio", + "HeaderLatestChannelItems": "Últimos elementos del canal", + "HeaderLibraryOrder": "Orden de biblioteca", + "HeaderOnNow": "En directo ahora", + "HeaderForKids": "Para niños", + "HeaderPlaybackError": "Error de reproducción", + "PlaybackErrorNotAllowed": "Actualmente no tienes autorización para reproducir este contenido. Comuníquese con el administrador del sistema para obtener más detalles.", + "RateLimitExceeded": "Su cuenta superó el límite máximo de transmisión establecido por su administrador de Emby Server. Comuníquese con ellos para obtener ayuda.", + "PlaybackErrorNoCompatibleStream": "Actualmente no hay transmisiones compatibles disponibles. Vuelva a intentarlo más tarde o póngase en contacto con el administrador del sistema para obtener más detalles.", + "PlaybackErrorPlaceHolder": "Por favor, inserte el disco para reproducir este vídeo.", + "PlaybackErrorNoPlayableItems": "No se encontraron elementos reproducibles. ¿Estás intentando reproducir una carpeta vacía?", + "Guide": "Guía", + "Games": "Juegos", + "GameSystem": "Sistema de juego", + "Suggestions": "Sugerencias", + "HeaderFavoriteChannels": "Canales Favoritos", + "HeaderFavoriteCollections": "Colecciones Favoritas", + "HeaderFavoritePlaylists": "Listas de reproducción favoritas", + "Collection": "Colección", + "Collections": "Colecciones", + "LabelSelectFolderGroups": "Agrupar automáticamente el contenido de las siguientes carpetas en vistas como Películas, Música y TV:", + "LabelSelectFolderGroupsHelp": "Las carpetas que no estén marcadas se mostrarán por sí mismas en su propia vista.", + "Mute": "Silenciado", + "Unmute": "No silenciado", + "Folder": "Carpeta", + "Folders": "Carpetas", + "FileName": "Nombre del archivo", + "DisplayInOtherHomeScreenSections": "Mostrar en las secciones de Pantalla de Inicio, Últimos medios y Continuar viendo", + "DisplayInMyMedia": "Mostrar en la pantalla de inicio", + "Shows": "Series", + "MoviesAndShows": "Películas y Programas", + "HeaderMusicVideo": "Vídeo musical", + "HeaderMusicVideos": "Videos musicales", + "MusicVideos": "Videos musicales", + "Videos": "Videos", + "MixedContent": "Contenido mixto", + "HomeVideos": "Vídeos de inicio", + "HomeVideosAndPhotos": "Vídeos y fotos personales", + "TVShows": "Programas de TV", + "HeaderLibraryFolders": "Carpetas de la Biblioteca", + "HeaderTermsOfPurchase": "Condiciones de Compra", + "PrivacyPolicy": "Política de privacidad", + "TermsOfUse": "Condiciones de uso", + "HeaderRepeatMode": "Modo de repetición", + "HeaderToneMapping": "Mapeo de tonos", + "RepeatOne": "Repetir uno", + "RepeatAll": "Repetir todo", + "LabelDefaultScreen": "Pantalla por defecto:", + "ConfirmEndPlayerSession": "¿Quieres cerrar Emby en {0}?", + "Yesterday": "Ayer", + "Yes": "Si", + "No": "No", + "HeaderScanLibraryFiles": "Escanear archivos de Biblioteca", + "LiveTV": "TV en directo", + "Schedule": "Programación", + "Recordings": "Grabaciones", + "ScanForNewAndUpdatedFiles": "Escanear archivos nuevos y actualizados", + "NewVersionOfXAvailableForY": "{0} está disponible para {1}", + "DirectStreamHelp1": "Los medios son compatibles con el dispositivo en cuanto a la resolución y el tipo de medios (H.264, AC3, etc.), pero se encuentran en un contenedor de archivos incompatibles (.mkv, .avi, .wmv, etc.). El video se volverá a empaquetar sobre la marcha antes de transmitirlo al dispositivo.", + "DirectStreamHelp2": "La transmisión directa de un archivo usa muy poca potencia de procesamiento sin ninguna pérdida en la calidad del vídeo.", + "MediaIsBeingConverted": "Los medios se están convirtiendo a un formato que es compatible con el dispositivo que está reproduciendo los medios.", + "StatsForNerds": "Estadísticas para nerds", + "HeaderHardwareAcceleratedDecoding": "Decodificación acelerada por Hardware", + "HeaderHardwareAcceleratedEncoding": "Codificación acelerada por Hardware", + "HeaderDirectPlay": "Reproducción Directa", + "DirectPlaying": "Reproducción directa", + "DirectStreaming": "Transmisión en directo", + "Transcode": "Transcodificar", + "Transcoding": "Transcodificación", + "ContainerBitrateExceedsLimit": "Reduciendo la velocidad de bits debido a la configuración de calidad", + "VideoCodecNotSupported": "Códec de vídeo no soportado", + "AudioCodecNotSupported": "Convirtiendo audio a códec compatible", + "SubtitleCodecNotSupported": "Convertir subtítulos directamente en vídeo", + "DirectPlayError": "Error de reproducción directa", + "ContainerNotSupported": "Contenedor no soportado", + "VideoLevelNotSupported": "Convirtiendo a nivel de vídeo compatible", + "AudioBitrateNotSupported": "Convirtiendo a una velocidad de bits de audio compatible", + "AudioChannelsNotSupported": "Canales de audio no soportados", + "VideoResolutionNotSupported": "Convertir a una resolución de vídeo compatible", + "AudioProfileNotSupported": "Perfil de audio no soportado", + "AudioSampleRateNotSupported": "Convirtiendo a una frecuencia de muestreo de audio compatible", + "AnamorphicVideoNotSupported": "Vídeo anamórfico no soportado", + "InterlacedVideoNotSupported": "Desentrelazado de vídeo", + "SecondaryAudioNotSupported": "Cambio de pista de audio no soportado", + "ExternalAudioNotSupported": "Seleccionar pista de audio externa", + "ErrorRemovingEmbyConnectAccount": "Se produjo un error al eliminar la cuenta de Emby Connect. Por favor, asegúrese de tener una conexión a Internet activa y vuelva a intentarlo.", + "HeaderEmbyAccountRemoved": "Cuenta de Emby eliminada", + "MessageEmbyAccontRemoved": "La cuenta de Emby se ha eliminado de este usuario.", + "HeaderInvitationSent": "Invitación enviada", + "Offline": "Fuera de línea", + "HeaderSignUp": "Registrarse", + "ServerDownloadMessage": "Para descargar e instalar el servidor gratuito Emby Server, visita {0}", + "ServerDownloadMessageWithoutLink": "Para descargar e instalar el servidor gratuito Emby Server, visite el sitio web de Emby.", + "MessageInvitationSentToUser": "Se envió un correo electrónico a {0} invitándolo a aceptar su invitación para compartir.", + "MessageInvitationSentToNewUser": "Se envió un correo electrónico a {0} invitándolos a registrarse en Emby.", + "GuestUserNotFound": "Usuario no encontrado. Asegúrese de que el nombre sea correcto e inténtelo de nuevo, o intente ingresar su dirección de correo electrónico.", + "ErrorReachingEmbyConnect": "Hubo un error al contactar con el servidor Emby Connect. Por favor, asegúrese de tener una conexión a Internet activa y vuelva a intentarlo.", + "ErrorAddingEmbyConnectAccount1": "Hubo un error al añadir la cuenta Emby Connect. ¿Ha creado una cuenta de Emby? Regístrese en {0}.", + "ErrorAddingEmbyConnectAccount2": "Si aún tiene un problema, envíe un correo electrónico a {0} desde la dirección de correo electrónico usada con la cuenta de Emby.", + "ErrorAddingGuestAccount1": "Hubo un error al agregar la cuenta de Emby Connect. ¿Tu invitado ha creado una cuenta Emby? Pueden registrarse en {0}.", + "ErrorAddingGuestAccount2": "Si sigues teniendo problemas, envía un correo electrónico a {0} e incluye tu dirección de correo electrónico y la de ellos.", + "MessageEmbyAccountAdded": "La cuenta de Emby se ha añadido a este usuario.", + "MessagePendingEmbyAccountAdded": "La cuenta de Emby se ha añadido a este usuario. Se enviará un correo electrónico al propietario de la cuenta. La invitación deberá confirmarse haciendo clic en un enlace dentro del correo electrónico.", + "HeaderEmbyAccountAdded": "Cuenta de Emby añadida", + "Skip": "Omitir", + "HeaderAdditionalParts": "Partes adicionales", + "ButtonGenerateNewPin": "Generar Nuevo PIN", + "ConnectLoginHelp1": "Con Emby Connect, puede acceder fácilmente a su servidor Emby donde sea que esté y compartir servidores con su familia y amigos.", + "CreatePinErrorMessage": "Se produjo un error al crear un código PIN. Haga clic en Generar Nuevo PIN para volver a intentarlo.", + "PinExpiredMessage": "El código pin ha caducado. Por favor, haga clic en Generar Nuevo PIN para volver a intentarlo.", + "ConnectPinCodeHeader": "Para iniciar sesión con Emby Connect, use un dispositivo móvil o computadora para visitar {0} e ingrese el siguiente código PIN:", + "LabelSubtitlePlaybackMode": "Modo de Subtitulo:", + "ErrorDeletingItem": "Se produjo un error al eliminar el elemento del servidor Emby. Compruebe que el servidor Emby tenga acceso de escritura a la carpeta de medios y vuelva a intentarlo.", + "NoSubtitles": "Sin subtítulos", + "Default": "Por defecto", + "Absolute": "Absoluto", + "Smart": "Inteligente", + "Small": "Pequeño", + "Smaller": "Más pequeño", + "Medium": "Mediano", + "Large": "Grande", + "Larger": "más grande", + "ExtraLarge": "Extragrande", + "ExtraSmall": "Extra pequeño", + "Forced": "Forzado", + "External": "Externo", + "HeaderEmbeddedTitle": "Título incrustado", + "OnlyForcedSubtitles": "Sólo subtitulos forzados", + "AlwaysPlaySubtitles": "Mostrar siempre subtítulos", + "DefaultSubtitlesHelp": "Los subtítulos se cargan según los indicadores predeterminados y forzados en los metadatos incrustados. Las preferencias de idioma se tienen en cuenta cuando hay varias opciones disponibles.", + "SmartSubtitlesHelp": "Los subtítulos que coincidan con la preferencia de idioma se cargarán cuando el audio esté en un idioma extranjero.", + "HeaderSubtitleSettings": "Ajustes de subtítulos", + "HeaderSubtitleAppearance": "Apariencia de los subtítulos", + "OnlyForcedSubtitlesHelp": "Sólo se cargarán los subtítulos marcados como forzados.", + "AutoSelectHearingImpairedHelp": "Se cargarán los subtítulos que coincidan con la preferencia de idioma, dando preferencia a las pistas marcadas como para personas con discapacidad auditiva (SDH).", + "AlwaysPlaySubtitlesHelp": "Los subtítulos que coincidan con la preferencia de idioma se cargarán independientemente del idioma de audio.", + "NoSubtitlesHelp": "Los subtítulos no se cargarán de forma predeterminada. Todavía se pueden activar manualmente durante la reproducción.", + "LabelPreferredSubtitleLanguage": "Idioma de subtítulos preferido:", + "LabelTextSize": "Tamaño de texto:", + "TheseSettingsAffectSubtitlesOnThisDevice": "Estas opciones afectan a los subtítulos en este dispositivo", + "LabelDropShadow": "Sombra paralela:", + "LabelTextBackgroundColor": "Color de fondo del texto:", + "LabelWindowBackgroundColor": "Color de fondo del texto:", + "LabelFont": "Fuente:", + "LabelTextColor": "Color del texto:", + "LabelBackgroundColor": "Color de Fondo:", + "LabelBackgroundOpacity": "Opacidad del Fondo:", + "Raised": "Elevado", + "Depressed": "Deprimido", + "Uniform": "Uniforme", + "DropShadow": "Sombra paralela", + "SmallCaps": "Letras minúsculas", + "SubtitleAppearanceSettingsDisclaimer": "Esta configuración no se aplicará a los subtítulos gráficos (PGS, DVD, etc.), o subtítulos que tienen su propio estilo Integrado (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Esperando a la red WiFi", + "WifiRequiredToDownload": "Se requiere una conexión WiFi para continuar con la descarga.", + "DownloadOnlyOnWifi": "Descargar solo en WiFi", + "LabelMusicDownloadQuality": "Calidad de descarga de música:", + "MusicDownloadQualityHelp": "Emby Server convertirá los archivos de audio con una velocidad de bits más alta. Seleccione un valor más alto para una mejor calidad o un valor más bajo para conservar el espacio de almacenamiento local.", + "HeaderDownloadSettings": "Configuración de descargas", + "LabelDownloadLocation": "Ubicación de descarga:", + "BrowseForFolder": "BuscaPorCarpetas", + "Unlimited": "Ilimitado", + "NoLimit": "Sin limite", + "Hide": "Ocultar", + "HeaderKeepWatching": "Continuar Viendo", + "HeaderNextEpisode": "Siguiente episodio", + "AudioBitDepthNotSupported": "Convirtiendo a una profundidad de bits de audio compatible", + "VideoBitrateNotSupported": "Convertir a una velocidad de bits de vídeo compatible", + "VideoProfileNotSupported": "Convirtiendo a un perfil de vídeo compatible", + "VideoFramerateNotSupported": "Cuadros por segundo de video no soportados", + "VideoBitDepthNotSupported": "Convirtiendo a una profundidad de bits de vídeo compatible", + "RefFramesNotSupported": "Convertir a un número compatible de fotogramas de referencia de vídeo", + "ErrorConnectServerUnreachable": "Hubo un error al realizar la operación solicitada. Su servidor no puede comunicarse con nuestro servidor Emby Connect en {0}. Asegúrese de que su servidor tenga una conexión a Internet activa y que las comunicaciones estén permitidas por cualquier firewall o software de seguridad que haya instalado.", + "HeaderStopRecording": "Detener Grabación", + "ManageRecording": "Gestionar grabación", + "LabelDropImageHere": "Arrastre y suelte la imagen aquí, o haga clic para seleccionar una imagen para cargar.", + "MessageFileReadError": "Hubo un error al leer el archivo. Por favor, inténtalo de nuevo.", + "Browse": "Explorar", + "HeaderUploadImage": "Subir imagen", + "HeaderAddUpdateImage": "Añadir/Actualizar imagen", + "HeaderShowFields": "Mostrar campos", + "LabelView": "Vista:", + "LabelImageType": "Tipo de imagen:", + "Upload": "Subir", + "Primary": "Principal", + "PrimaryImageBlur": "Desenfocar la imagen principal", + "Art": "Arte", + "Backdrop": "Imagen de fondo", + "Banner": "Banner", + "Box": "Caja", + "BoxRear": "Caja (Trasera)", + "Disc": "Disco", + "Logo": "Logo", + "LogoDark": "Logotipo (versión oscura)", + "LogoLight": "Logotipo (versión clara)", + "LogoLightColor": "Logotipo (claro con color)", + "Menu": "Menú", + "Screenshot": "Captura de pantalla", + "Thumb": "Miniatura", + "HeaderAudioSettings": "Ajustes de audio", + "LabelAudioLanguagePreference": "Idioma de audio preferido", + "LabelPlayDefaultAudioTrack": "Reproducir pista de audio predeterminada, independientemente del idioma", + "HeaderVideoQuality": "Calidad de vídeo", + "CinemaModeConfigurationHelp": "Cinema Intros lleva la experiencia del cine directamente a su sala de estar con la capacidad de reproducir tráilers e intros personalizadas antes de la función principal.", + "ShowUpNextPreview": "Mostrar la vista previa siguiente", + "ShowUpNextPreviewHelp": "Mostrar información del siguiente elemento cerca del final del actual.", + "PlayNextEpisodeAutomatically": "Reproducir siguiente episodio automáticamente", + "LabelMaxChromecastBitrate": "Calidad de transmisión para Chromecast:", + "LabelSkipBackLength": "Saltar hacia atrás:", + "LabelSkipForwardLength": "Saltar hacia delante:", + "EnableCinemaMode": "Activar Intros de Cine", + "LabelInternetQuality": "Calidad de Internet:", + "LabelCellularQuality": "Calidad de transmisión remota (celular)", + "HeaderMusicQuality": "Calidad musical", + "LabelHomeNetworkQuality": "Calidad de la Red local:", + "HeaderLatestMedia": "Últimos medios", + "HeaderRestartingEmbyServer": "Reiniciando Emby Server", + "RestartPleaseWaitMessage": "Espere mientras Emby Server se apaga y se reinicia. Esto puede tardar uno o dos minutos.", + "HeaderPlayNext": "Reproducir siguiente", + "AutoBasedOnLanguageSetting": "Automático (según la configuración del dispositivo)", + "SameAsMainTheme": "El mismo que el tema principal", + "LabelDateTimeLocale": "Lugar de fecha y hora:", + "Genre": "Género", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directores: {0}", + "GenreValue": "Género: {0}", + "GenresValue": "Géneros: {0}", + "TagsValue": "Etiquetas: {0}", + "Off": "Apagado", + "Title": "Título", + "Year": "Año", + "Filter": "Filtro", + "Filters": "Filtros", + "Unplayed": "No reproducido", + "LabelTVHomeScreen": "Pantalla de inicio del modo TV:", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Agrupar por", + "HeaderMediaType": "Tipo de medio", + "GroupBySeries": "Agrupar por series", + "HeaderVideoType": "Tipo de vídeo", + "HeaderSeriesStatus": "Estado de la Serie", + "Features": "Características", + "Trailers": "Tráilers", + "Extras": "Extras", + "ThemeSongs": "Canciones temáticas", + "ThemeVideos": "Vídeos temáticos", + "HeaderFavoriteMovies": "Películas Favoritas", + "HeaderFavoritePhotos": "Fotos favoritas", + "HeaderFavoriteShows": "Series Favoritas", + "HeaderFavoriteEpisodes": "Episodios Favoritos", + "HeaderFavoriteVideos": "Vídeos Favoritos", + "HeaderFavoriteMusicVideos": "Videos musicales favoritos", + "HeaderFavoriteGames": "Juegos Favoritos", + "HeaderFavoriteArtists": "Artistas Favoritos", + "HeaderFavoriteAlbums": "Álbumes Favoritos", + "HeaderFavoriteSongs": "Canciones Favoritas", + "HeaderFavoriteAuthors": "Autores Favoritos", + "HeaderFavoriteAudioBooks": "Audio libros Favoritos", + "Ascending": "Ascendente", + "Descending": "Descendente", + "HeaderColorPrimaries": "Colores principales", + "HeaderColorSpace": "Espacio de color", + "HeaderColorTransfer": "Transferencia de color", + "HeaderVideoRange": "Rango de vídeo", + "SeriesDisplayOrderHelp": "Ordene los episodios por fecha de emisión, orden de DVD o numeración absoluta.", + "LabelVerticalPositionFromBottom": "Posición vertical (desde abajo):", + "HeaderFavoritePeople": "Reparto favorito", + "MultiSelect": "Selección múltiple", + "HeaderSignOut": "Desconectarse", + "HeaderSelectServer": "Seleccionar servidor", + "HeaderChangeServer": "Cambiar servidor", + "HeaderChangeUser": "Cambiar Usuario", + "HeaderAppSettings": "Configuración de la aplicación", + "HeaderLoginSettings": "Ajustes de inicio de sesión", + "LabelRememberLogin": "Recordar inicio de sesión", + "LabelAutomaticallySignOut": "Cerrar sesión automáticamente:", + "BetaTesterMessage": "¡Gracias por ser un beta tester de Emby! Por favor, deje sus comentarios en el {0}Área de Pruebas de la Comunidad Emby{1}.", + "HardwareAccelerated": "Acelerado por hardware", + "Software": "Software", + "Metadata": "Metadatos", + "HeaderMediaInfo": "Información multimedia", + "Locked": "Bloqueado", + "HeaderSplitVersionsApart": "Separar versiones", + "Any": "Cualquiera", + "Admin": "Administrador", + "HeaderReadMore": "Leer más", + "CustomRatingHelp": "Se usa una valoración personalizada para las evaluaciones de control parental, pero no se muestra. El campo de clasificación parental todavía se muestra.", + "KeepUpToHelp": "Las grabaciones que superan el límite se eliminan cuando comienza la siguiente grabación. Las grabaciones más antiguas se eliminan primero, por fecha añadida.", + "NoItemsMatchingFound": "No se encontraron elementos que coincidan con sus criterios de búsqueda.", + "TwoSearchCharsRequired": "Por favor, ingresa al menos dos caracteres de búsqueda.", + "PreventPlaybackContinuing": "Evita que la reproducción continúe indefinidamente solicitando periódicamente la entrada del usuario.", + "PromptStillWatching": "Habilitar solicitud '¿Sigues viéndolo?'", + "HeaderMissingMetadata": "Metadatos faltantes", + "HeaderIncludedIn": "Incluido en", + "EmbyConnectUserAlreadyLinked": "El usuario de Emby Connect ya está vinculado a otro usuario en este servidor.", + "VideoFilesWillBeConvertedTo": "Los videos convertidos se guardarán como {0}.", + "VideoWillBeConvertedTo": "Las transmisiones de vídeo se convertirán a {0} o se copiarán del archivo original si ya son {0} y la calidad se ajusta a las opciones de conversión.", + "VideoWillBeConvertedToOrCopied": "Las transmisiones de vídeo se convertirán a {0}, o se copiarán del archivo original si son de ({1}), y la calidad se ajusta a las opciones de conversión.", + "AudioWillBeConvertedTo": "Las transmisiones de audio se convertirán a {0} o se copiarán del archivo original si ya son {0} y la calidad se ajusta a las opciones de conversión.", + "AudioWillBeConvertedToOrCopied": "Las transmisiones de audio se convertirán a {0} o se copiarán del archivo original si son de ({1}), y la calidad se ajusta a las opciones de conversión.", + "HeaderSpecialKeys": "Teclas especiales", + "FollowingSpecialKeys": "Las siguientes teclas especiales son compatibles con la mayoría de los teclados y mandos a distancia:", + "HeaderDeleteSeries": "Eliminar Serie", + "HeaderDeleteLastPlayedEpisode": "Eliminar último episodio reproducido", + "HeaderConnectingToServer": "Conectando al servidor", + "ServerNameValue": "Nombre del servidor: {0}", + "DomainValue": "Dominio: {0}", + "RatedValue": "{0} Calificado", + "LocalServerRedirectMessage": "Ahora será redirigido al dominio que pertenece y es operado por el administrador del servidor al que ha elegido conectarse:", + "AllMediaOwnedHosted": "Todos los medios están alojados y gestionados por el propietario de {0}.", + "EnableResolutionSwitching": "Igualar la resolución de vídeo", + "EnableResolutionSwitchingHelp": "Esto permite que Emby cambie la resolución al mismo valor en el que se codificó el vídeo antes de comenzar la reproducción. Esto puede ayudar a minimizar la cantidad de tartamudeo/vibración que de otro modo podría ver al reproducir vídeos que no coinciden bien.", + "EnableDisplayRefreshRateSwitching": "Activar el cambio de frecuencia de actualización de la pantalla", + "EnableDisplayRefreshRateSwitchingHelp": "Esto permite a Emby cambiar la frecuencia de actualización de la pantalla al mismo valor (o múltiplo de) que la velocidad de fotogramas en la que se codificó el video antes de comenzar la reproducción. Esto ayuda a minimizar la cantidad de tartamudeo/vibración que, de lo contrario, podría ver al reproducir videos que no coinciden bien.", + "RememberSelectedAudioTracks": "Recordar las selecciones de pistas de audio", + "RememberSelectedSubtitleTracks": "Recordar las selecciones de pistas de subtítulos", + "RememberSelectedSubtitleTracksHelp": "Las selecciones de pistas de subtítulos se recordarán por vídeo y se volverán a aplicar al reproducir el mismo vídeo nuevamente.", + "RememberSelectedAudioTracksHelp": "Las selecciones de pistas de audio se recordarán por vídeo y se volverán a aplicar al reproducir el mismo vídeo nuevamente.", + "ClearSavedTrackSelections": "Borrar selecciones de pistas guardadas", + "HeaderClearTrackSelections": "Borrar selecciones de pistas guardadas", + "QuestionClearSavedTracks": "¿Borrar todas las selecciones de pistas guardadas?", + "LabelChannelTags": "Etiquetas de canal:", + "AfterThisPlaysConfirmation": "Después de que se reproduzca, ¿Desea seguir reproduciendo o limpiar la música puesta en cola anteriormente?", + "Keep": "Mantener", + "Clear": "Limpiar", + "HeaderClearFilters": "Limpiar filtros", + "HeaderSearchForImages": "Buscar imágenes", + "HeaderSearchNewImage": "Buscar una nueva imagen", + "HeaderSearchForAnImage": "Buscar una imagen", + "DragDropToReorder": "Arrastrar y soltar para reordenar", + "HeaderAddImageFromUrl": "Agregar imagen desde URL", + "HeaderSetImageFromUrl": "Establecer imagen desde URL", + "LabelUrl": "URL:", + "LabelChannelNumber": "Número de canal:", + "LabelGuideDataChannel": "Guía de datos del canal:", + "GuideDataSource": "Fuente de datos de la guía", + "HeaderCopyToClipboard": "Copiar al portapapeles", + "TimeRemainingValue": "{0} restante", + "LabelResumeRewindSeconds": "Al reanudar, rebobinar automáticamente:", + "ResumeRewindSecondsHelp": "Esto puede ayudarte a recordar dónde lo dejaste.", + "HeaderSavePlayQueueToPlaylist": "Guardar la cola de reproducción en la lista de reproducción", + "EnableLogoImagesAsTitle": "Mostrar imágenes de logotipos como títulos en pantallas de detalles", + "EnableLogoImagesAsTitleHelp": "Cuando estén disponibles, las imágenes del logotipo se pueden usar en lugar del texto del título en vídeos, series y otras pantallas de detalles. El título se convertirá en texto cuando no haya una imagen de logotipo disponible.", + "LabelNowPlayingAudioBackgroundStyle": "Reproduciendo ahora audio de fondo:", + "LabelNowPlayingVideoBackgroundStyle": "Reproduciendo ahora estilo de fondo de vídeo:", + "NowPlayingVideoBackgroundStyleHelp": "Determina el estilo de fondo cuando se controla de forma remota la reproducción de vídeo en otro dispositivo.", + "Rotation": "Rotación", + "Minutes": "Minutos", + "LabelMaxRecordingLength": "Duración máxima de grabación:", + "MaxRecordingLengthHelp": "Limite las grabaciones a una cantidad de tiempo específica, independientemente de la duración de la transmisión. Establézcalo en 0 para no tener límite.", + "RemoteWAN": "Dirección remota (WAN)", + "HeaderLastConnectedTo": "Última conexión a", + "Version": "Version", + "Keyword": "Palabra clave", + "HeaderServerAddress": "Dirección del servidor", + "HeaderSkipIntro": "Saltar Intro", + "HeaderCreateRecording": "Crear grabación", + "HeaderAddRecording": "Añadir grabación", + "HeaderChannelAndTime": "Canal y Hora", + "LabelRecordProgramOrSeriesFrom": "Grabar un programa o serie de:", + "LabelStartTime": "Hora de inicio:", + "LabelEndTime": "Hora final:", + "LabelFrequency": "Frecuencia:", + "Recurring": "Recurrente", + "Once": "Una vez", + "Start": "Iniciar", + "Unpause": "Reanudar", + "LabelIntroSkipMode": "Modo de omitir introducción:", + "ShowSkipIntroButton": "Mostrar el botón 'Omitir introducción'", + "AutoSkipIntro": "Omitir introducciones automáticamente", + "DisplayRatingInformationOnVideoPlaybackStart": "Mostrar información de calificación al inicio de la reproducción de vídeo", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "La información de calificación se mostrará brevemente cuando comience la reproducción del vídeo.", + "IntroSkipModeHelp": "Muestre un botón 'Omitir introducción' o salte automáticamente las introducciones para episodios en los que Emby Server ha detectado marcadores de introducción. La detección de introducción debe estar habilitada en las opciones de la biblioteca de Emby Server.", + "EnableHomeScreenFocusPreview": "Usar el diseño en la pantalla de inicio que muestra una vista previa detallada del elemento seleccionado", + "EnableHomeScreenFocusPreviewHelp": "Es posible que esto no funcione bien si su pantalla de inicio contiene una combinación de diferentes tipos de medios.", + "LabelHideMediaTransportButtons": "Ocultar los botones de control del reproductor de vídeo", + "HideMediaTransportButtonsHelp": "Cree una interfaz de reproducción en pantalla más sencilla ocultando los botones de transporte básicos, como avanzar, retroceder y pausar. Aún podrá usar estas funciones usando las teclas de flecha y OK/Enter. Automático, ocultará los botones de transporte cuando no se detecte el uso del mouse dentro de la aplicación.", + "ImageSizeHelp": "Establezca su tamaño preferido de cuadrículas de imágenes.", + "LabelImageSize": "Tamaño de imagen:", + "ThisImageIsOnlyPreview": "Esta imagen es solo una vista previa obtenida del motor de búsqueda de metadatos. La imagen real que descargue Emby Server puede ser diferente y dependerá de las opciones que haya configurado en la configuración de la biblioteca de Emby.", + "ResultsRangeValue": "{0} a {1} de {2}", + "NotificationsDescription": "Configure notificaciones para mantenerse informado de eventos importantes en su servidor Emby Server.", + "DeleteEmbyConnectAccount": "Eliminar cuenta Emby Connect", + "DeleteEmbyConnectAccountHelp": "Para eliminar su cuenta Emby Connect, inicie sesión en la {0}Comunidad Emby{1} en {2}. Una vez que haya iniciado sesión, haga clic en su nombre de usuario en la parte superior derecha, luego haga clic en Configuración de la cuenta, luego haga clic en Eliminar mi cuenta.", + "KeepPlayingInBackground": "Mantener la reproducción en segundo plano", + "LabelVideoBackBehavior": "Comportamiento del botón \"Retroceder\" del reproductor de video:", + "HeaderViewLyrics": "Ver letras", + "HeaderViewMissingEpisodes": "Ver episodios que faltan", + "HeaderMissingEpisodes": "Episodios que faltan", + "HeaderManageAccess": "Administrar acceso", + "HeaderManageCollaboration": "Gestionar la colaboración", + "HeaderLeaveCollaboration": "Dejar colaboración", + "HeaderRemoveFromLibrary": "Eliminar de la Biblioteca", + "RemoveSharedItemConfirmation": "¿Está seguro de que desea eliminar este elemento de su biblioteca? Para recuperarlo, el propietario deberá concederle permiso nuevamente.", + "SubtitlesDownloaded": "Subtítulos descargados", + "HeaderMakePrivate": "Hacer Privado", + "HeaderMakePublic": "Hacer Publico", + "MakePublicDescription": "Todos los usuarios podrán ver este elemento. A los usuarios se les puede conceder acceso de escritura individualmente.", + "MakePrivateDescription": "A los usuarios aún se les puede otorgar acceso de lectura o escritura individualmente.", + "Private": "Privado", + "Public": "Publico", + "Collaborative": "Colaborativo", + "PreferredShowDisplay": "Mostrar Programa de TV preferido:", + "ShowAllEpisodesAllSeasons": "Mostrar todos los episodios de todas las temporadas juntas", + "ShowAllEpisodesSingleSeason": "Mostrar todos los episodios de series de una sola temporada", + "ShowSeasonFolders": "Mostrar siempre carpetas de temporada", + "HeaderAddAgain": "Añadir de nuevo", + "UpNext": "Próximamente", + "ItemsAlreadyInPlaylist": "Algunos de estos elementos ya están en tu lista de reproducción.", + "ItemAlreadyInPlaylist": "Este elemento ya está en tu lista de reproducción.", + "HeaderPlayChannel": "Reproducir canal", + "LabelScreenOrientationDuringVideo": "Orientación de la pantalla durante la reproducción de vídeo:", + "UseDeviceSetting": "Usar la configuración del dispositivo", + "LockToLandscape": "Bloquear en horizontal", + "UsernameForFolderHelp": "El nombre de usuario requerido para acceder a esta carpeta en su red (si corresponde).", + "PasswordForFolderHelp": "La contraseña requerida para acceder a esta carpeta en su red (si corresponde).", + "ShowMediaInfoOnDetailScreens": "Mostrar información multimedia completa en las pantallas de detalles de audio y vídeo", + "ForgotPasswordNoUserFound": "No se encontraron usuarios con el nombre ingresado. Vuelva a intentarlo o deje el nombre en blanco para restablecer la contraseña de todos los usuarios de este servidor.", + "Silver": "Plata", + "DimGray": "Gris Oscuro", + "DarkGray": "Gris Oscuro", + "LightGray": "Gris Claro", + "Black": "Negro", + "Blue": "Azul", + "Cyan": "Cian", + "Gray": "Gris", + "Green": "Verde", + "Lime": "Lima", + "Magenta": "Magenta", + "Orange": "Naranja", + "Pink": "Rosa", + "Red": "Rojo", + "Yellow": "Amarillo", + "White": "Blanco", + "Purple": "Purpura", + "RecentlyReleasedMovies": "Películas Estrenadas Recientemente", + "RecentlyReleasedEpisodes": "Episodios lanzados recientemente", + "DolbyProfile": "Perfil Dolby", + "IpAddress": "Dirección IP", + "VideoType": "Tipo de Vídeo", + "HidePlayedMediaFrom": "Ocultar medios reproducidos de", + "BottomEdgePosition": "Posición del borde inferior", + "VerticalPositionFromBottomScreen": "Establezca la posición vertical de los subtítulos en relación con la parte inferior de la pantalla.", + "TopEdgePosition": "Posición del borde superior", + "TopEdgePositionHelp": "Establezca la posición vertical más alta permitida de los subtítulos en relación con la parte superior de la pantalla. Esto se usa cuando los subtítulos contienen instrucciones de posicionamiento para colocarse en la parte superior.", + "HeaderSubtitlePosition": "Posición del Subtitulo", + "TitleProfilePin": "Pin del perfil", + "ProfilePinConfirm": "Pin del perfil (confirmar)", + "SaveProfilePin": "Guardar Pin", + "ProfilePinDescription": "Crea un pin opcional que se te solicitará cada vez que vuelvas a una aplicación de Emby en un dispositivo con el que ya te hayas autenticado. Esto es útil si tienes dispositivos compartidos por varios usuarios. Puedes habilitarlo selectivamente en cada dispositivo según sea necesario.", + "TitleNewEpisodes": "Nuevos episodios", + "EnterYourPinToContinue": "Ingrese su PIN para continuar.", + "YourPinMustBe": "Su PIN debe tener {0} dígitos.", + "ForgotPin": "¿Olvidaste tu PIN?", + "RequireEnteringPinToReturn": "Requiero ingresar el PIN de mi perfil cuando regrese a esta aplicación después de haber iniciado sesión.", + "RequireEnteringPinToReturnQuestion": "¿Deberíamos solicitarle el PIN de su perfil cada vez que regrese a esta aplicación? Si varios usuarios comparten este dispositivo, el PIN de su perfil puede ayudar a evitar que otros usuarios accedan a sus datos.", + "RequireEnteringPinToReturnHelp": "Útil si este dispositivo es compartido por varios usuarios. Requiere crear un PIN de perfil en la configuración del perfil de su servidor.", + "WrongPinPleaseTryAgain": "Vaya, PIN incorrecto. Inténtalo de nuevo.", + "ProfilePinIsOn": "El PIN del perfil ahora está activado.", + "IfTryingToConnectToHttp": "Si está intentando conectarse a una dirección http, es posible que su navegador no lo permita debido a los requisitos de HTTPS. Pruebe una de las siguientes opciones:", + "SetupHttpsForYourServer": "Configure {0}https para su servidor Emby{1} para que pueda conectarse mediante https.", + "TitleUnableToReachServer": "No se puede alcanzar el servidor", + "TitleUnableToReachName": "No se puede alcanzar el servidor {0}", + "HearingImpaired": "Personas con discapacidad auditiva", + "SignIntoServerName": "Inicia sesión en {0}", + "About": "Acerca de", + "Specials": "Especiales", + "NSettings": "Ajustes de {0}", + "NPreferences": "Preferencias de {0}", + "DetailScreenOptions": "Pantallas detalladas", + "LabelGenreDisplayLimit": "Límite de visualización de género:", + "GenreDisplayLimitHelp": "Limite la cantidad de géneros que se muestran en la parte superior de las pantallas de detalles del elemento.", + "GenreDisplayLimitForListsHelp": "Limite la cantidad de géneros que se muestran en la parte superior de las pantallas de lista de reproducción, colección y detalles del artista.", + "LabelGenreDisplayLimitForLists": "Límite de visualización de género para listas:", + "ShowPosterOnDetails": "Mostrar un cartel en la pantalla de detalles", + "ShowPosterOnDetailsHelp": "Elija mostrar un cartel en las pantallas de detalles del vídeo u ocultarlo para una apariencia más minimalista que enfatice el fondo. Esta configuración no se usa en diseños de pantalla más pequeñas. Algunos tipos de elementos ignorarán esta configuración.", + "EnableAppLogging": "Habilitar el registro de aplicaciones", + "EnableAppLoggingHelp": "El registro puede degradar el rendimiento de la aplicación y solo debe habilitarse según sea necesario para solucionar problemas. Los cambios requieren reiniciar la aplicación.", + "LabelSlideshowInterval": "Tiempo de presentación de fotos por diapositiva", + "TVChannelImageEditorHelp": "Se admiten varias versiones de logotipos. Las aplicaciones Emby elegirán automáticamente la adecuada según el tema actual.", + "PlaySlideshow": "Reproducir diapositivas", + "CheckForExistingEpisodesInAllLibraries": "Comprobar los episodios existentes en todas las Bibliotecas", + "GroupNotificationsBySeriesOrAlbum": "Notificaciones grupales por series y álbumes", + "ThemeSettings": "Opciones del tema", + "FollowingActivityWillBeDisrupted": "La siguiente actividad se verá interrumpida y puede requerir intervención manual para reiniciarse:", + "OneActivePlaybackSession": "1 Sesión de reproducción activa", + "NumActivePlaybackSessions": "{0} Sesión de reproducción activa", + "OneActiveRecording": "1 Grabación activa", + "NumActiveRecordings": "{0} Grabaciones activas", + "PlayFromLivePosition": "Reproducir desde la posición en directo", + "PlayFromStartOfRecording": "Reproducir desde el inicio de la grabación", + "ThisChannelIsActivelyRecording": "Este canal está grabando activamente. ¿Cómo te gustaría empezar a reproducir?", + "ThemeSongVolume": "Volumen de la canción temática", + "HeaderForceConversionForFormats": "Forzar la transcodificación de formatos", + "ForceConversionForFormatsHelp": "Use esto para forzar la transcodificación o remuxación del lado del servidor para formatos que no se reproducen directamente muy bien en este dispositivo.", + "StartupBehavior": "Comportamiento de inicio", + "RememberLastUser": "Recordar el último usuario", + "ShowLoginScreen": "Mostrar Pantalla de Inicio de Sesión", + "SignInAsValue": "Iniciar sesión como {0}", + "ConvertUnsupportedAudio": "Convertir audio envolvente no compatible a Dolby Digital", + "ConvertUnsupportedAudioHelp": "Evite mezclar formatos envolventes no compatibles a estéreo haciendo que el servidor Emby los transcodifique a Dolby Digital.", + "HeaderPlaybackCorrection": "Corrección de reproducción", + "HeaderAttemptPlaybackCorrection": "Intentar corregir la reproducción", + "PlaybackCorrectionConfirm": "¿Intentar corregir la reproducción?", + "PlaybackCorrectionDescription": "¿El elemento actual presenta un problema de reproducción, como la ausencia de vídeo o audio? Esto intentará corregir los problemas de reproducción mediante la transcodificación del servidor para convertir este archivo a un formato más compatible con la transmisión. Esto resultará en un mayor consumo de recursos en este servidor Emby.", + "PlaybackCorrectionDescription2": "Puedes hacer esto hasta tres veces por vídeo, donde la remuxación, la transcodificación de vídeo y la transcodificación de audio se activan una a la vez.", + "HeaderAlbumsAsContributingArtist": "Álbumes como Artista colaborador", + "HeaderAlbumsAsComposer": "Álbumes como compositor", + "Duplicates": "Duplicados", + "HeaderSleepTimer": "Temporizador de sueño", + "AfterCurrentItem": "Después del elemento actual", + "HeaderStopPlayback": "Detener la reproducción", + "TurnOffTimer": "Apagar el temporizador", + "SleepTimerIsSet": "Tu temporizador de sueño está configurado", + "SleepTimerIsOff": "Tu temporizador de sueño está apagado", + "LabelEnableRemoteControlTVMode": "Funciones de transmisión de pantalla y control remoto", + "EnableRemoteControlTVModeHelp": "Habilite esta opción si desea utilizar este dispositivo para enviar medios a otros dispositivos.", + "ShowOnScreenControls": "Mostrar controles en pantalla", + "LabelVideoScreenUpAction": "Comportamiento del botón de Reproducción de vídeo:", + "VideoScreenUpActionHelp": "Seleccione la acción que se realizará al pulsar la tecla arriba en la pantalla del reproductor de vídeo. Esto aplica cuando no hay controles visibles en pantalla. Cuando los controles ya estén visibles, se usará la tecla arriba para navegar.", + "LabelVideoPlayerLongPressAction": "Acción de pulsación prolongada del reproductor de vídeo", + "LetsGetSetup": "Empecemos", + "VideoPlayerLongPressActionHelp": "Seleccione qué función o menú se muestra al mantener pulsado el botón OK durante la reproducción de vídeo. Esto solo funciona cuando los controles de vídeo están ocultos o la barra de búsqueda está activa.", + "AskAdminToGetPremiere": "Esta compra debe ser realizada por el administrador del servidor. Solicite al administrador de este servidor Emby que inicie sesión y obtenga Emby Premiere para poder acceder a las funciones premium.", + "AutoOpenSingleItemsFolders": "Abrir automáticamente elementos individuales en la vista de carpeta", + "AutoOpenSingleItemsFoldersHelp": "Cuando una carpeta solo contiene un elemento, se abre automáticamente ese elemento.", + "PlayedOnValue": "Reproducido {0}", + "TheseSettingsApplyAppDevice": "Esta configuración se aplica a todos los usuarios que reproducen en este dispositivo.", + "LastContentDateAdded": "Fecha del último contenido añadido", + "RepeatThemeMedia": "Reproducir las melodías en bucle", + "HideEpisodeSpoilerInfo": "Ocultar información sobre spoilers de los episodios no vistos", + "HideEpisodeSpoilerInfoHelp": "Oculta la descripción y la imagen de los episodios no vistos en la mayoría de las pantallas.", + "BornValueAge": "Nacido: {0} (edad {1})", + "PreferDirectStreamLiveTV": "Preferir la transmisión directa de TV en directo", + "PreferDirectStreamLiveTVHelp": "La transmisión directa de TV en directo reducirá el consumo de recursos en su servidor Emby, pero podría no ser tan fácil de buscar durante la reproducción. Al habilitar esta opción, se transmitirá directamente TV en directo cuando el formato sea compatible y se encuentre dentro de su configuración de calidad. Desactívela para disfrutar de una mayor capacidad de búsqueda durante la reproducción, a coste de un mayor consumo de recursos.", + "HeaderAllRecordings": "Todas las Grabaciones", + "RememberLoginDescription": "Después de iniciar sesión, puede usar la configuración de la aplicación para configurar el comportamiento de inicio para recordar el inicio de sesión, iniciar sesión como un usuario específico o mostrar siempre la pantalla de inicio de sesión.", + "ForgetThisServer": "Olvidar este Servidor", + "ForgetServerConfirmation": "¿Estás seguro de que deseas olvidar este servidor?", + "HeaderThisDevice": "Este dispositivo", + "ChaptersGuide": "Capítulos / Guía de TV en Directo", + "ChaptersGuideHelp": "Mostrar capítulos para medios con capítulos. Para medios sin capítulos, muestre la Guía de TV en directo (cuando esté disponible).", + "HeaderShowSeriesImages": "Mostrar imágenes de Series", + "AppExitConfirmation": "¿Estás listo para salir de Emby?", + "AppExitMenu": "Salir del Menu", + "SideMenu": "Menú de navegación lateral", + "SystemStorage": "Almacenamiento del sistema ({0})" +} diff --git a/modules/common/strings/et.json b/modules/common/strings/et.json new file mode 100644 index 0000000..265b45e --- /dev/null +++ b/modules/common/strings/et.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby on loodud selleks, et aidata hallata oma isiklikku meediakogu, näiteks koduvideoid ja fotosid. Palun loe meie {0}kasutustingimusi{1}. Mis tahes Emby tarkvara kasutamine tähendab nende tingimustega nõustumist.", + "MessageUnableToConnectToServer": "Me ei saa praegu valitud serveriga ühendust luua. Veendu, et see töötab ja proovi uuesti.", + "EmbyIntroMessage": "Emby abil saad oma Emby serverist hõlpsalt voogesitada videoid, muusikat ja fotosid nutitelefonidesse, tahvelarvutitesse ja muudesse seadmetesse.", + "HeaderSignInWithConnect": "Logi sisse Emby Connectiga", + "HeaderWelcomeToEmby": "Emby tervitab!", + "HeaderNewUsers": "Uued kasutajad", + "HeaderPleaseSignIn": "Logi sisse", + "MessageInvalidUser": "Vale kasutajanimi või parool. Palun proovi uuesti.", + "MessageUnlockAppWithPurchaseOrSupporter": "Ava see funktsionaalsus väikese ühekordse ostuga või aktiivse Emby Premiere tellimusega.", + "MessageUnlockAppWithSupporter": "Ava see funktsionaalsus aktiivse Emby Premiere tellimusega.", + "MessageToValidateSupporter": "Omades kehtivat Emby Premiere tellimust veendu, et Emby Premiere on seadistatud Emby serveri juhtpaneeli peamenüüs leiduvas valikus 'Emby Premiere'.", + "ValueSpecialEpisodeName": "Eri - {0}", + "HeaderSignIn": "Logi sisse", + "Share": "Jaga", + "Shared": "Jagatud", + "Info": "Info", + "Add": "Lisa", + "Speed": "Kiirus", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Peatükid", + "Password": "Parool", + "SavePassword": "Save Password", + "LabelPassword": "Parool:", + "HeaderResetPassword": "Lähtesta parool", + "Series": "Seriaal", + "Preview": "Eelvaade", + "Submit": "Esita", + "Never": "Mitte kunagi", + "Table": "Tabel", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Esitusi", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Võtmesõna tüüp:", + "HeaderSelectColumns": "Tulpade valik", + "HeaderTopResults": "Parimad tulemused", + "HeaderPinSidebar": "Kinnita külgriba", + "Collapse": "Koonda", + "LabelBackgroundVideoPlayback": "Video taasesitus taustal:", + "BackgroundVideoPlaybackHelp": "Taasesitus taustal võimaldab videot edasi mängida ka siis, kui ekraan on välja lülitatud.", + "AlwaysOn": "Alati sees", + "HeadphonesOrExternalSpeakersConnected": "Ühendatud on kõrvaklapid või välised kõlarid", + "HeaderKeyboardAndRemote": "Klaviatuur ja pult", + "NoSelectedItemsSupportOperation": "Ühtegi toimingut toetavat üksust pole valitud.", + "NoOperationsForSelectedItems": "Valitud üksuste jaoks pole ühtegi toimingut saadaval.", + "UploadOnlyOnWifi": "Lae üles ainult Wifi ühendusega", + "HeaderFoldersToUpload": "Üleslaetavad kaustad", + "LabelPasswordConfirm": "Parool (kinnitus):", + "HeaderMoveUpInOrder": "Liiguta üles", + "HeaderDownUpInOrder": "Liiguta alla", + "LabelUsername": "Kasutajanimi:", + "HeaderAddServer": "Lisa server", + "HeaderSubtitleOffset": "Subtiitrite nihe", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Eemalda jaotisest 'Jätka vaatamist'", + "RemoveThisTitleFromContinueWatching": "Kas eemaldada üksus jaotisest 'Jätka vaatamist'", + "HeaderRemoveFromContinueListening": "Eemalda osast \"Jätka kuulamist\"", + "RemoveThisTitleFromContinueListening": "Eemaldada see pealkiri osast \"Jätka kuulamist\"?", + "HeaderIncreaseSubtitleOffset": "Suurenda subtiitrite nihet", + "HeaderDecreaseSubtitleOffset": "Vähenda subtiitrite nihet", + "Close": "Sulge", + "HeaderSeeAll": "Vaata kõik", + "HeaderOpenInNewWindow": "Ava uues aknas", + "LabelEmail": "E-post", + "LabelHost": "Host:", + "LabelHostHelp": "192.168.1.100 või https://minuserver.com", + "LabelPort": "Port:", + "Disabled": "Keelatud", + "Uninstall": "Eemalda", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Järgmine: {0}", + "HeaderNextItem": "Järgmine üksus", + "HeaderPreviousItem": "Eelmine üksus", + "NoTrailersMessage": "Treilereid ei leitud. Treilerite lisamiseks paigalda plugin 'Trailer' Emby {0}pluginate kataloogist{1}.", + "UninstallPluginConfirmation": "Kas eemaldada see plugin", + "HeaderUninstallPlugin": "Eemalda plugin", + "AreYouStillWatching": "Kas vaatad veel?", + "LabelCurrentPassword": "Praegune parool:", + "LabelNewPassword": "Uus parool:", + "LabelNewPasswordConfirm": "Uue parooli kinnitus:", + "HeaderRemovePassword": "Eemalda parool", + "ServerUpdateNeeded": "Emby serverit tuleb uuendada. Uue versiooni hankimiseks mine {0}", + "MessageThankYouForConnectSignUp": "Täname Emby Connect konto loomise eest. Sulle saadetakse e-kiri juhistega uue konto kinnitamiseks. Kinnita konto ja naase siia sisselogimiseks.", + "MessageThankYouForConnectSignUpNoValidation": "äname Emby Connect konto loomise eest. Nüüd palutakse sul oma Emby Connect andmetega sisse logida.", + "ErrorMessagePasswordNotMatchConfirm": "Parool ja parooli kinnitus peavad olema samad.", + "ErrorMessageUsernameInUse": "Kasutajanimi on juba kasutusel. Vali uus nimi ja proovi uuesti.", + "ErrorMessageEmailInUse": "E-posti aadress on juba kasutusel. Sisesta uus e-posti aadress ja proovi uuesti või kasutage unustatud parooli taastamise võimalust.", + "HeaderUpcomingOnTV": "Peatselt OTSE TV-s", + "HeaderOtherShowings": "Teised vaatamised", + "Showings": "Vaatamised", + "HeaderConnectToServer": "Ühenda serveriga", + "ConnectToServerManually": "Ühenda serveriga käsitsi", + "LabelEnterConnectUserNameHelp": "See on e-posti aadress, mida kasutad Emby Connect jaoks.", + "HeaderSignInError": "Viga sisse logimisel", + "HeaderManualLogin": "Käsitsi sisse logimine", + "PasswordResetConfirmation": "Kas lähtestada parool?", + "ContactAdminToResetPassword": "Parooli lähtestamiseks pöördu oma süsteemi administraatori poole.", + "ForgotPasswordInNetworkRequired": "Proovi uuesti oma koduvõrgus alutada parooli lähtestamise protsessi.", + "ForgotPasswordFileCreated": "Sinu serverisse loodi fail, mis sisaldab juhiseid jätkamiseks:", + "ForgotPasswordFileExpiration": "Lähtestamise PIN aegub kell {0}.", + "InvalidForgotPasswordPin": "Sisestati vale või aegunud PIN-kood. Palun proovi uuesti.", + "PasswordResetForUsers": "Järgmiste kasutajate paroolid on eemaldatud. Sisselogimiseks logi sisse tühja parooliga.", + "HeaderForgotPassword": "Unustasid parooli", + "ForgotPasswordUsernameHelp": "Sisesta oma kasutajanimi, kui mäletad seda.", + "HeaderPasswordReset": "Parooli lähtestamine", + "AttributeNew": "Uus", + "Done": "Tehtud", + "HeaderResetToDefault": "Lähtesta vaikeväärtustele", + "Deinterlacing": "Ülerealaotuse eemaldamine", + "HeaderBurningInSubtitles": "Sisse põletatud subtiitrid", + "Premiere": "Esilinastus", + "LabelPinCode": "Pin kood:", + "LabelLocalNetworkPinCode": "Kohaliku võrgu PIN kood:", + "LabelLocalNetworkPasswordMode": "Kohaliku võrgu sisselogimisrežiim:", + "RequirePasswordInLocalNetwork": "Nõua parooli kohalikus võrgus", + "NoPasswordInLocalNetwork": "Ära nõua parooli kohalikus võrgus", + "PinCodeInLocalNetwork": "Luba kohalikus võrgus numbriline PIN-kood", + "LocalNetworkPasswordModeHelp": "Valige sisselogimismeetod seadmetes, mis asuvad Emby serveriga samas kohtvõrgus.", + "HeaderLocalNetworkAccess": "Kohaliku võrgu juurdepääs", + "Live": "Otse", + "Reset": "Lähtesta", + "Repeat": "Kordus", + "Track": "Rada", + "Tracks": "Lood", + "HeaderCameraUpload": "Fotod telefonist", + "TrackCount": "{0} lugu", + "ItemCount": "{0} üksust", + "NumberChannelsValue": "{0} kanalit", + "HeaderLatestMusic": "Uus muusika", + "HeaderLatestAudioBooks": "Viimased audioraamatud", + "HeaderLatestDownloadedVideos": "Viimati allalaetud videod", + "HeaderRecentlyPlayed": "Hiljuti esitatud", + "Recent": "Hiljutised", + "HeaderFrequentlyPlayed": "Sageli esitatud", + "HeaderMoreLikeThis": "Veel sarnaseid", + "HeaderMoreLikeThisOnLiveTV": "Veel sarnaseid OTSE TV-s", + "OriginalAirDateValue": "Algne eetrikuupäev: {0}", + "EndsAtValue": "Lõpeb kell {0}", + "Date": "Date", + "AirDate": "Esituse aeg", + "Played": "Esitatud", + "Daily": "1x päevas", + "Weekly": "Weekly", + "RequireHashMatch": "Nõua räsi vastet", + "RequireHashMatchHelp": "Räsivaste nõudmine filtreerib välja subtiitrid, mida on täpselt selle videofailiga testitud. Selle märkimata jätmine suurendab sobivate subtiitrite arvu, kuid suurendab ka subtiitrite valesti või valede subtiitrite kuvamise tõenäosust.", + "SearchForForcedSubtitlesOnly": "Ainult sunnitud subtiitrid", + "SearchForForcedSubtitlesOnlyHelp": "Sunnitud subtiitrite nõudmine piirab tulemusi subtiitritega, mis on sildistatud võõrkeelseteks.", + "LastEpisodeDateAdded": "Viimase episoodi kuupäev lisatud", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Esituse olek:", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episoodi pealkiri", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtiitrid", + "Image": "Pilt", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audiokoodek:", + "LabelAudioLanguage": "Heli keel:", + "LabelSubtitleLanguage": "Subtiitrite keel", + "LabelVideoCodec": "Videokoodek:", + "LabelSubtitleCodec": "Subtiitrite koodek:", + "LabelParentalRating": "Vanusepiirang:", + "BecauseYouLikeValue": "Sest sulle meeldib {0}", + "BecauseYouWatchedValue": "Sest vaatasid {0}", + "DirectedByValue": "Režissöör {0}", + "StarringValue": "Peaosas {0}", + "Invitations": "Kutsed", + "ActorAsRole": "rollis {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Rühmita üksused kogumikesse", + "GroupItemsIntoCollectionsHelp": "Rühmita üksused kogumike põhjal, kuhu nad on lisatud. Teatud filtrite või järjestuse lubamine võib selle automaatselt keelata.", + "GroupItemsIntoTags": "Rühmita üksused siltide järgi", + "GroupItemsIntoTagsHelp": "Rühmita üksused nende siltide järgi, kuhu nad kuuluvad. Mõne filtri või sortimismeetodi kasutamine võib selle automaatselt välja lülitada.", + "User": "User", + "Access": "Access", + "Users": "Kasutajad", + "Library": "Meediakogu", + "Devices": "Seadmed", + "Cancel": "Tühista", + "Restart": "Taaskäivita", + "Shutdown": "Seiska", + "Logs": "Logid", + "Visibility": "Visibility", + "Notifications": "Teavitused", + "SendTestNotification": "Saada testteavitus", + "NotificationSent": "Teavitus saadetud", + "DeleteNotificationConfirmation": "Soovid ikka selle teavituse kustutada?", + "DeleteNotification": "Teavituse kustutamine", + "AddNotification": "Lisa teavitus", + "EditNotification": "Muuda teavitust", + "LimitUserEventsTo": "Piira kasutaja sündmusi:", + "LimitLibraryEventsTo": "Piira teegi sündmusi:", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Teavituste teenuseid saab paigaldada Emby {0}lisade kataloogist{1} serveri administraator.", + "Plugins": "Pluginad", + "Systems": "Süsteemid", + "Server": "Server", + "Dashboard": "Juhtpaneel", + "PlayOnAnotherDevice": "Esita teises seadmes", + "HeaderConnectionHelp": "Ühenduse abi", + "AccessRestrictedTryAgainLater": "Juurdepääs on praegu piiratud. Palun proovi hiljem uuesti.", + "ButtonGotIt": "Sain aru", + "RememberMe": "Pea mind meeles", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Halda Emby serverit", + "ShutdownServer": "Seiska Emby server", + "RestartServer": "Taaskäivita Emby server", + "RecordingCancelled": "Salvestus tühistatud", + "SeriesCancelled": "Seriaal tühistatud", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Salvestamine määratud", + "SeriesRecordingScheduled": "Seriaali salvestamine määratud", + "HeaderNewRecording": "Uus salvestus", + "HeaderWakeServer": "Ärata server", + "AttemptingWakeServer": "Üritatakse serverit äratada. Palun oota...", + "WakeServerSuccess": "Tehtud!", + "HeaderCustomizeHomeScreen": "Kujunda avaleht", + "WakeServerError": "Wake On LAN paketid saadeti sinu serverimasinasse, kuid me ei saa sinu Emby serveriga ühendust. Võimalik, et su masin vajab ärkamiseks natuke rohkem aega või Emby server ei pruugi masinal aktiivselt töötada.", + "Days": "Päevad", + "Network": "Võrk", + "Networks": "Võrgud", + "SortByValue": "Järjesta {0}", + "HeaderSortBy": "Sorteerimise alus", + "HeaderPhotoAlbums": "Fotoalbumid", + "Photos": "Fotod", + "HeaderAppearsOn": "Leidub", + "List": "Loend", + "HeaderRecordSeries": "Salvesta seriaal", + "HeaderCinemaMode": "Kinoteater", + "Conversions": "Teisendused", + "Downloads": "Allalaadimised", + "HeaderManageDownloads": "Halda allalaadimisi", + "InternalStorage": "Sisene salvesti", + "ExternalStorage": "Väline salvesti", + "UploadToFollowingServers": "Laadi üles serveritesse", + "UploadingNumItems": "{0} / {1} üleslaadimine", + "DownloadNumItems": "{0} / {1} allalaadimine", + "HeaderSampleRate": "Diskreetimissagedus", + "HeaderReferenceFrames": "Viitekaadrid", + "HeaderBitDepth": "Bitisügavus", + "HeaderPixelFormat": "Pikslivorming", + "Profile": "Profiil", + "Bitrate": "Bitikiirus", + "Expand": "Laienda", + "Container": "Konteiner", + "Format": "Vorming", + "Path": "Rada", + "Size": "Suurus", + "Resolution": "Eraldusvõime", + "HeaderCodecTag": "Koodeki silt", + "Framerate": "Kaadrisagedus", + "Interlaced": "Ülerealaotusega", + "Anamorphic": "Anamorfne", + "Level": "Tase", + "Timestamp": "Ajatempel", + "Language": "Keel", + "Codec": "Koodek", + "Stream": "Voog", + "HeaderExtradata": "Lisaandmed", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Võrguühenduseta meedium", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Laadi alla meedium oma seadmesse hõlpsaks võrguühenduseta kasutamiseks.", + "LiveTvFeatureDescription": "Voogesita otsesaateid igasse Emby rakendusse, kasutades serveriga ühilduvat tuunerit.", + "DvrFeatureDescription": "Salvesta Emby DVR abil üksikuid saateid, seriaale ja muud.", + "CinemaModeFeatureDescription": "Kinoteater pakub autentset kinoelamust koos treilerite ja muu kohandatud sisuga enne tegelikku filmi.", + "HeaderFreeApps": "Emby tasuta rakendused", + "FreeAppsFeatureDescription": "Naudi oma seadmetel vaba juurdepääsu Emby rakendustele.", + "HeaderBecomeProjectSupporter": "Hangi Emby Premiere", + "HeaderViewServerInfo": "Vaata serveri infot", + "PlaybackTvModeRequiresEmbyPremiere": "Meedia taasesitus telerežiimis nõuab aktiivset {0}Emby Premiere tellimust{1}.", + "FeatureRequiresEmbyPremiere": "Selle funktsionaalsuse jaoks on vaja kehtivat {0}Emby Premiere tellimust{1}.", + "HeaderConvertYourRecordings": "Teisenda salvestised", + "Record": "Salvesta", + "Save": "Salvesta", + "Edit": "Muuda", + "HeaderSavePlaylist": "Salvesta pleilisti", + "Latest": "Uusim", + "Download": "Laadi alla", + "Downloaded": "Alla laetud", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Allalaadimine", + "Advanced": "Täpsemad", + "LinkedToEmbyConnect": "Seotud Emby Connectiga", + "Delete": "Kustuta", + "Both": "Mõlemad", + "LabelChannelDisplay": "Kanali kuvamine:", + "HeaderDeleteItem": "Kustuta üksus", + "HeaderDeleteUser": "Kustuta kasutaja", + "DeleteItemConfirmation": "Kas kustutada {0}?", + "DeleteUserConfirmation": "Kas kustutada kasutaja {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Kustuta seade", + "DeleteDeviceConfirmation": "Kas kustutada see seade? See ilmub uuesti järgmine kord kui kasutaja sellega sisse logib.", + "ConfirmDeleteItem": "See üksus kustutatakse nii failisüsteemist kui ka meediakogust.", + "FollowingFilesWillBeDeleted": "Järgnevad failid ja kaustad kustutatakse:", + "AreYouSureToContinue": "Kas soovid kindlasti jätkata?", + "Refresh": "Värskenda", + "RefreshingMetadataDots": "Metaandmete värskendamine...", + "ScanningLibraryFilesDots": "Meediafailide skännimine...", + "HeaderFavoritesThenByChannelNumber": "Lemmikud, siis kanalinumber", + "HeaderAddToCollection": "Lisa kogumikku", + "HeaderFavoritesThenByTitle": "Lemmikud, siis pealkiri", + "HeaderFavoritesThenByDefault": "Lemmikud, siis kanalite vaikejärjestus", + "HeaderDefaultChannelOrder": "Kanalite vaikejärjestus", + "HeaderAddToFavorites": "Lisa lemmikutesse", + "HeaderRemoveFromFavorites": "Eemalda lemmikutest", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "Uus kogumik", + "HeaderNewPlaylist": "Uus pleilist", + "AllCollections": "Kõik kogumikud", + "AllPlaylists": "Kõik esitusnimekirjad", + "Create": "Loo", + "HeaderAddedToPlaylist": "Lisati pleilisti", + "HeaderAddedToCollection": "Lisati kogumikku", + "OneItemAddedTo": "1 üksus lisati sihtkohta \"{0}\".", + "ItemsAddedTo": "{0} üksust lisati sihtkohta \"{1}\".", + "HeaderAddedToPlayQueue": "Lisati esitusjärjekorda", + "HeaderPlayingNext": "Järgmiseks", + "Help": "Abi", + "HeaderGetHelp": "Otsi abi", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Töölaud", + "Mobile": "Mobiil / tahvelarvuti", + "Navigation": "Navigeerimine", + "HeaderVideoPlayback": "Video taasesitus", + "TV": "Teler", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Hooajad", + "OneTrack": "1 lugu", + "OneSeason": "1 hooaeg", + "Libraries": "Meediakogud", + "NumberSeasonsValue": "{0} hooaega", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Kasutajaliidese keel:", + "LabelDisplayLanguageHelp": "Emby tõlkimine on jätkuv projekt.", + "LearnHowYouCanContribute": "Siit saad teada, kuidas anda oma panus.", + "NewCollectionHelp": "Kogumikud lubavad luua isikupärastatud rühmi filmidest ja muust meediakogu sisust.", + "SearchForCollectionInternetMetadata": "Otsi internetist pilte ja metaandmeid", + "DisplayMissingEpisodesWithinSeasons": "Kuva hooaegades puuduvad episoodid", + "DisplayMissingEpisodesWithinSeasonsHelp": "See peab olema lubatud ka TV meediakogus Emby serveri sätetes", + "EnableThemeSongs": "Luba teemalaulud", + "EnableBackdrops": "Luba taustapildid", + "EnableThemeSongsHelp": "Kui see on lubatud, mängitakse meediakogu sirvimise ajal taustal teemalaule.", + "EnableBackdropsHelp": "Kui see on lubatud, kuvatakse meediakogu sirvimise ajal taustapilte.", + "EnableThemeVideos": "Luba teemavideod", + "EnableThemeVideosHelp": "Kui see on lubatud, mängitakse meediakogu sirvimise ajal teemavideoid.", + "RunAtStartup": "Käivita alglaadimisel", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Ekraanisäästja:", + "LabelSoundEffects": "Heliefektid:", + "LabelName": "Nimi:", + "NewCollectionNameExample": "Näide: Star Wars kogumik", + "MessageItemsAdded": "Üksused lisatud.", + "OptionNew": "Uus...", + "LabelPlaylist": "Pleilist:", + "AddToPlaylist": "Lisa pleilisti", + "HeaderAddToPlaylist": "Lisa pleilisti", + "Subtitles": "Subtiitrid", + "LabelTheme": "Teema:", + "LabelSettingsTheme": "Sätete teema:", + "LabelThemeAccentColor": "Rõhutamise värv:", + "ThemeAccentColorDescription": "Määrab olulisemate indikaatorite, ikoonide ja teksti värvi.", + "SearchForSubtitles": "Otsi subtiitreid", + "LabelLanguage": "Keel:", + "Search": "Otsing", + "NoSubtitleSearchResultsFound": "Vasteid ei leitud. Kas {0}subtiitrite allalaadimine{1}? on seadistatud?", + "NoLyricsSearchResultsFound": "Tulemused puuduvad. Oled ikka seadistanud {0}laulusõnade allalaadimise{1}?", + "Lyrics": "Laulusõnad", + "SearchForLyrics": "Otsi laulusõnu", + "Finish": "Valmis", + "File": "Fail", + "Exit": "Välju", + "Sleep": "Uinak", + "Setup": "Seadistamine", + "MessageAreYouSureDeleteSubtitles": "Kas kustutada see subtiitri fail?", + "ConfirmDeletion": "Kinnita kustutamine", + "MySubtitles": "Subtiitrid", + "MessageDownloadQueued": "Allalaadimine on ootel.", + "HeaderEditSubtitles": "Muuda subtiitreid", + "UnlockGuide": "Ava telekava lukk", + "HeaderRefreshMetadata": "Värskenda metaandmeid", + "HeaderRefreshAllMetadata": "Värskenda metaandmeid", + "ReplaceExistingImages": "Asenda olemasolevad pildid", + "ReplaceExistingImagesHelp": "Kõigi olemasolevad pildid kustutatakse ja alla laetakse uued. Mõnikord on tagajärjeks varasemaga võrreldes väiksem pildivalik.", + "ReplaceAllMetadata": "Asenda kõik metaandmed", + "SearchForMissingMetadata": "Otsi puuduvaid metaandmeid", + "LabelRefreshMode": "Värskenduse režiim:", + "NoItemsFound": "Üksusi ei leitud.", + "HeaderSaySomethingLike": "Ütle midagi...", + "ButtonTryAgain": "Proovi uuesti", + "HeaderYouSaid": "Sa ütlesid...", + "MessageWeDidntRecognizeCommand": "Kahjuks ei mõistnud me seda käsku.", + "MessageIfYouBlockedVoice": "Kui keelasid rakendusele hääljuurdepääsu, peab enne uuesti proovimist uuesti seadistama.", + "ValueDiscNumber": "Plaat {0}", + "Unrated": "Piiranguta", + "Favorite": "Lemmik", + "Like": "Meeldib", + "Dislike": "Ei meeldi", + "RefreshDialogHelp": "Metaandmeid värskendatakse Emby serveri juhtpaneelil määratud sätete ja Emby teekide seadistustes määratud metaandmete pakkujate alusel.", + "Open": "Ava", + "Play": "Esita", + "Pause": "Paus", + "HeaderPlayQueue": "Esita järjekord", + "HeaderAddToPlayQueue": "Lisa esitusjärjekorda", + "Shuffle": "Sega", + "Identify": "Tuvasta", + "HeaderRemoveIdentification": "Eemalda metaandmed", + "ResetMetadataConfirmation": "Kindel, et soovid kõik metaandmed lähtestada`?", + "HeaderEditMetadata": "Muuda metaandmeid", + "Convert": "Teisenda", + "Resume": "Jätka", + "HeaderInstantMix": "Kiirmiks", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Esita kõik", + "PictureInPicture": "Pilt pildis", + "Fullscreen": "Täisekraan", + "ExitFullscreen": "Välju täisekraanilt", + "Rewind": "Keri tagasi", + "FastForward": "Kiiresti edasi", + "Remove": "Eemalda", + "Rename": "Nimeta ümber", + "Queue": "Järjekorda", + "QueueAllFromHere": "Kõik siit järjekorda", + "PlayAllFromHere": "Esita siit kõik", + "PlayFromBeginning": "Esita algusest", + "FromBeginning": "From Beginning", + "ResumeAt": "Jätka kohalt {0}", + "HeaderRemoveFromPlaylist": "Eemalda pleilistist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Eemalda kogumikust", + "Sort": "Järjesta", + "Trailer": "Teiler", + "SelectNone": "Tühjenda valik", + "SelectAll": "Vali kõik", + "HeaderMarkPlayed": "Märgi esitatuks", + "HeaderMarkUnplayed": "Märgi mitte esitatuks", + "HeaderGroupVersions": "Grupi versioonid", + "PleaseSelectTwoItems": "Vali vähemalt kaks üksust.", + "HeaderConfirmRecordingCancellation": "Kinnita salvestuse tühistamine", + "MessageConfirmRecordingCancellation": "Kas tühistada salvestus?", + "Album": "Album", + "AlbumArtist": "Albumi esitaja", + "Error": "Viga", + "VoiceInput": "Häälsisend", + "LabelContentType": "Sisu tüüp:", + "LabelPath": "Asukoht:", + "Playlists": "Pleilistid", + "LabelTitle": "Pealkiri:", + "LabelOriginalTitle": "Algne pealkiri:", + "LabelSortTitle": "Pealkirja järgi:", + "LabelDateAdded": "Lisatud:", + "DateAdded": "Lisatud", + "DateModified": "Date Modified", + "DatePlayed": "Viimati esitatud", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Seadista, kuidas lisamise kuupäeva koheldakse Emby juhtpaneeli meediakogu sätetes", + "LabelStatus": "Olek:", + "LabelArtistsHelp": "Eraldi hulgikasutus;", + "HeaderAlbumArtists": "Albumi esitajad", + "LabelAlbumArtists": "Albumi esitajad", + "LabelAlbum": "Album:", + "Artist": "Esitaja", + "Artists": "Esitajad", + "ImdbRating": "IMDb hinnang", + "CommunityRating": "Kasutajate hinne", + "LabelCommunityRating": "Kasutaja hinne:", + "LabelCriticRating": "Kriitiku hinne:", + "CriticRating": "Kriitikute hinne", + "LabelWebsite": "Veebileht:", + "Tagline": "Tagline", + "LabelOverview": "Ülevaade:", + "LabelShortOverview": "Lühiülevaade:", + "LabelReleaseDate": "Avaldatud", + "LabelPlaceOfBirth": "Sünnikoht:", + "Aired": "Esitatud", + "LabelAirDays": "Esituse päevad:", + "LabelAirTime": "Esituse aeg:", + "LabelRuntimeMinutes": "Tööaeg (minutites):", + "LabelCustomRating": "Kohandatud hinne:", + "LabelOriginalAspectRatio": "Algne kuvasuhe:", + "Label3DFormat": "3D vorming:", + "FormatValue": "Vorming: {0}", + "DownloadsValue": "{0} allalaadimist", + "HashMatch": "Räsi vaste", + "EnableExternalVideoPlayers": "Välised videopleierid", + "EnableExternalVideoPlayersHelp": "Video taasesituse alustamisel kuvatakse välise mängija menüü.", + "HeaderSpecialEpisodeInfo": "Eriepisoodi info", + "LabelAirsDuringSeason": "Eetris hooajal:", + "LabelAirsAfterSeason": "Eetris pärast hooaega:", + "LabelAirsBeforeEpisode": "Eetris enne hooaega:", + "HeaderExternalIds": "Välised ID-d:", + "HeaderDisplaySettings": "Kuvaseaded", + "PlaylistOrder": "Esitusnimekirja järjekord", + "CollectionOrder": "Kogumiku järjestus", + "LabelDisplayOrder": "Kuvamise järjestus:", + "LabelFileOrder": "File order", + "Display": "Kuva", + "Countries": "Riigid", + "Genres": "Žanrid", + "Studios": "Stuudiod", + "Tags": "Sildid", + "Links": "Lingid", + "Movie": "Film", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episood", + "Season": "Hooaeg", + "HeaderMetadataSettings": "Metaandmete sätted", + "People": "Inimesed", + "Number": "Number", + "Lock": "Lukk", + "HeaderScreenLocked": "Ekraan lukustatud", + "HeaderUnlockControls": "Lahtilukustus", + "HeaderTapToUnlock": "Toksa lahtilukustuseks", + "LabelMetadataDownloadLanguage": "Eelistatud keel allalaadimisel:", + "LabelImageDownloadLanguage": "Eelistatud keel pildi allalaadimisel:", + "LabelLockItemToPreventChanges": "Lukusta üksus tulevaste muudatuste eest", + "LockThisField": "Lukusta see väli, et vältida muudatusi metaandmete uuendamisel", + "MessageLeaveEmptyToInherit": "Jäta tühjaks, et võtta sätted lähteüksusest või kasutada globaalset vaikeväärtust.", + "LabelCountry": "Riik:", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id:", + "LabelBirthYear": "Sünniaasta:", + "LabelBirthDate": "Sünnikuupäev:", + "LabelDeathDate": "Surmakuupäev:", + "LabelEndDate": "Lõppkuupäev:", + "LabelSeasonNumber": "Hooaja number:", + "LabelEpisodeNumber": "Episoodi number:", + "LabelTrackNumber": "Loo number:", + "LabelNumber": "Number:", + "LabelDiscNumber": "Plaadi number:", + "LabelParentNumber": "Vanema number:", + "SortName": "Nimi", + "OriginalTitle": "Algne pealkiri", + "ReleaseDate": "Avaldatud", + "Continuing": "Jätkub", + "Ended": "Lõppenud", + "HeaderEnabledFields": "Lubatud väljad", + "HeaderEnabledFieldsHelp": "Eemalda tähistus, et see lukustada ja vältida selle andmete muutmist.", + "Backdrops": "Taustapildid", + "Images": "Pildid", + "Runtime": "Kestus", + "ProductionLocations": "Tootmiskohad", + "BirthLocation": "Sünnikoht", + "ParentalRating": "Vanusepiirang", + "PlayCount": "Esituskorrad", + "Name": "Nimi", + "Overview": "Ülevaade", + "LabelType": "Tüüp:", + "LabelPersonRole": "Roll:", + "LabelPersonRoleHelp": "Näide: jäätiseauto juht", + "Actor": "Näitleja", + "Composers": "Heliloojad", + "Composer": "Helilooja", + "Director": "Lavastaja", + "GuestStar": "Külalisesineja", + "Producer": "Produtsent", + "Writer": "Stsenarist", + "MessageNoSyncJobsFound": "Allalaadimisi ei leitud. Loo allalaadimistöö, kasutades rakenduses leiduvaid nuppe.", + "MessageNoDownloadsFound": "Võrguühenduseta allalaadimisi pole. Laadi oma meedium alla võrguühenduseta kasutamiseks, klõpsates rakenduses nupul 'Laadi alla'.", + "InstallingPackage": "{0} paigaldamine", + "PackageInstallCompleted": "{0} paigaldati.", + "PackageInstallFailed": "{0} paigaldamine nurjus.", + "PackageInstallCancelled": "{0} paigaldamine tühistati.", + "SeriesYearToPresent": "{0} - tänaseni", + "OneDevice": "1 seade", + "DeviceCountValue": "{0} seadet", + "OneLog": "1 logi", + "LogCountValue": "{0} logi", + "OneVote": "1 hääl", + "VoteCountValue": "{0} häält", + "OneLike": "1meeldimine", + "LikeCountValue": "{0} meeldimist", + "OneUser": "1 kasutaja", + "UserCountValue": "{0} kasutajat", + "OneLibrary": "1 meediakogu", + "LibraryCountValue": "{0} meediakogu", + "ValueOneItem": "1 üksus", + "ValueOneEpisode": "1 episood", + "ValueEpisodeCount": "{0} episoodi", + "Albums": "Albumid", + "Song": "Lugu", + "Songs": "Lood", + "Authors": "Autorid", + "Books": "Raamatud", + "AudioBooks": "Heliraamatud", + "HeaderAudioBooks": "Heliraamatud", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Sisesta üks või mitu otsingukriteeriumi. Eemalda kriteeriumid otsitulemuste suurendamiseks.", + "PleaseEnterNameOrId": "Sisesta nimi või väline ID.", + "MessageItemSaved": "Üksus salvestati.", + "SearchResults": "Otsitulemused", + "ServerNameIsRestarting": "Emby server - {0} taaskäivitub.", + "ServerNameIsShuttingDown": "Emby server - {0} seiskub.", + "HeaderDeleteItems": "Kustuta üksused", + "ConfirmDeleteItems": "Nende üksuste kustutamisel kustutatakse need nii failisüsteemist kui meediakogust.", + "PleaseRestartServerName": "Palun taaskäivita Emby server - {0}.", + "ConvertingDots": "Teisendamine...", + "LabelSyncNoTargetsHelp": "Näib, et sul pole praegu ühtegi rakendust, mis toetaks võrguühenduseta allalaadimist.", + "DownloadingDots": "Allalaadimine...", + "LearnMore": "Lisateave", + "LabelBitrateMbps": "Bitikiirus (Mbps):", + "ConvertUnwatchedVideosOnly": "Teisenda ainult esitamata videod", + "SyncUnwatchedVideosOnly": "Laadi alla ainult esitamata videod", + "ConvertUnwatchedVideosOnlyHelp": "Ainult vaatamata videod teisendatakse.", + "SyncUnwatchedVideosOnlyHelp": "Ainult täielikult esitamata videod laetakse alla ja eemaldatakse pärast vaatamist seadmest.", + "AutomaticallySyncNewContent": "Lae uus sisu alla automaatselt", + "AutomaticallySyncNewContentHelp": "Sellesse kausta lisatud uus sisu laetakse seadmesse automaatselt.", + "AutomaticallyConvertNewContent": "Teisenda uus sisu automaatselt", + "AutomaticallyConvertNewContentHelp": "Sellesse kausta lisatud uus sisu teisendatakse automaatselt.", + "LabelItemLimit": "Üksuste piirang:", + "ConvertItemLimitHelp": "Valikuline. Sea teisendatavate üksuste arvu piirang.", + "DownloadItemLimitHelp": "Valikuline. Sea allalaetavate üksuste arvu piirang.", + "PleaseSelectDeviceToSyncTo": "Vali seade, kuhu soovid alla laadida.", + "Screenshots": "Ekraanipildid", + "MoveRight": "Liiguta paremale", + "MoveLeft": "Liiguta vasakule", + "HeaderUploadNewImage": "Laadi uus pilt üles", + "HeaderDeleteImage": "Kustuta pilt", + "ConfirmDeleteImage": "Kas kustutada pilt?", + "HeaderEditImages": "Muuda pilte", + "Settings": "Sätted", + "ShowIndicatorsFor": "Kuva indikaatorid", + "Episodes": "Episoodid", + "Programs": "Programmid", + "HeaderCastCrew": "Näitlejad ja tiim", + "DvrSubscriptionRequired": "Emby OTSE TV & SALVESTUSED vajavad kehtivat {0}Emby Premiere tellimust{1}.", + "HeaderCancelRecording": "Tühista salvestus", + "HeaderKeepRecording": "Säilita salvestis", + "HeaderCancelSeries": "Tühista seriaal", + "HeaderKeepSeries": "Säilita seriaal", + "HeaderLearnMore": "Lisateave", + "SeriesSettings": "Seriaali sätted", + "HeaderRecordingOptions": "Salvestamise valikud", + "HeaderDoNotRecord": "Ära salvesta", + "HeaderSeriesOptions": "Seriaali valikud", + "Layout": "Paigutus", + "Channels": "Kanalid", + "ChannelNameOnly": "Ainult kanal {0}", + "Anytime": "Igal ajal", + "AnyLanguage": "Igas keeles", + "AroundTime": "Umbes {0}", + "HeaderLatestMovies": "Uued filmid", + "All": "Kõik", + "Stop": "Stopp", + "AllChannels": "Kõik kanalid", + "NewEpisodesOnly": "Ainult uued episoodid", + "AllEpisodes": "Kõik episoodid", + "LabelStartWhenPossible": "Alusta võimaluse korral:", + "LabelStopWhenPossible": "Lõpeta võimaluse korral:", + "MinutesBefore": "minutit varem", + "MinutesAfter": "minutit hiljem", + "SkipEpisodesAlreadyInMyLibrary": "Ära salvesta episoode, mis on juba meediakogus", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episoode võrreldakse hooaja ja numbrite arvuga, kui need on saadaval.", + "LabelKeepUpTo": "Säilita kuni:", + "AsManyAsPossible": "Nii palju kui võimalik", + "DefaultErrorMessage": "Taotluse töötlemisel ilmnes viga. Palun proovi hiljem uuesti.", + "UntilIDelete": "Kustutamiseni", + "UntilSpaceNeeded": "Kuni ruumi vajatakse", + "Categories": "Kategooriad", + "Sports": "Sport", + "News": "Uudised", + "Movies": "Filmid", + "Music": "Muusika", + "Kids": "Lastele", + "MoreFromValue": "Veel esitajalt {0}", + "DiedValue": "Surnud: {0}", + "BornValue": "Sündinud: {0}", + "EnableColorCodedBackgrounds": "Kasuta saadetel värvilisi taustu vastavalt nende kategooriale", + "SortChannelsBy": "Järjesta kanalid:", + "ChannelNumber": "Kanali number", + "HeaderBenefitsEmbyPremiere": "Emby Premiere eelised", + "ThankYouForTryingEnjoyOneMinute": "Naudi minutist taasesitust. Täname Emby proovimise eest.", + "HeaderTryPlayback": "Proovi taasesitust", + "HowDidYouPay": "Kuidas sa maksid?", + "IHaveEmbyPremiere": "Mul on Emby Premiere", + "IPurchasedThisApp": "Ostsin selle rakenduse", + "ButtonRestorePreviousPurchase": "Taasta ost", + "ButtonUnlockWithPurchase": "Ava ostes", + "ButtonUnlockPrice": "Ava {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere igakuine {0}", + "HeaderAlreadyPaid": "Juba makstud?", + "ButtonPlayOneMinute": "Esita üks minut", + "PlaceFavoriteChannelsAtBeginning": "Aseta lemmikkanalid algusesse", + "HeaderUnlockFeature": "Ava funktsionaalsus", + "MessageDidYouKnowCinemaMode": "Kas teadsid et Emby Premiere abil saad oma kogemust täiustada selliste funktsionaalsusega nagu 'Kinoteater'?", + "HeaderPlayMyMedia": "Esita meediafaile", + "HeaderDiscoverEmbyPremiere": "Avasta Emby Premiere", + "HeaderNowPlaying": "Esitusel", + "Items": "Üksused", + "AppName": "App Name", + "OneChannel": "Üks kanal", + "ConfirmRemoveDownload": "Kas eemaldada allalaadimine?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Eemalda allalaadimine", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Säilita allalaadimine", + "AddedOnValue": "Lisatud {0}", + "RemovingFromDevice": "Seadmest eemaldamine", + "KeepOnDevice": "Säilita seadmes", + "CancelDownload": "Tühista allalaadimine", + "SyncJobItemStatusReadyToTransfer": "Valmis ülekandmiseks", + "SyncJobItemStatusSyncedMarkForRemoval": "Seadmest eemaldamine", + "SyncJobItemStatusQueued": "Järjekorras", + "SyncJobItemStatusConverting": "Teisendamine", + "SyncJobItemStatusTransferring": "Ülekandmine", + "SyncJobItemStatusSynced": "Alla laetud", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Seadmest eemaldatud", + "Cancelled": "Cancelled", + "Retry": "Uus katse", + "Continue": "Jätka", + "ContinueInSecondsValue": "Jätka {0} sekundi pärast.", + "HeaderRemoteControl": "Kaugjuhtimine", + "Disconnect": "Katkesta ühendus", + "EnableDisplayMirroring": "Luba ekraani peegeldamine", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Esita seadmes", + "Quality": "Kvaliteet", + "Auto": "Automaatne", + "AndroidUnlockRestoreHelp": "Eelmise ostu taastamiseks veendu, et oled seadmesse sisse logitud sama Google (või Amazoni) kontoga, mis algselt ostu soetas. Veendu, et rakenduste pood oleks lubatud ja seda ei piiraks lapselukk, ning veendu, et sul oleks aktiivne Internetiühendus. Eelmise ostu taastamiseks peab seda tegema ainult üks kord.", + "HeaderAspectRatio": "Kuvasuhe", + "Original": "Algne", + "Fill": "Täida", + "Cover": "Kaas", + "MessageNoServersAvailableToConnect": "Ühtegi serverit pole ühenduse loomiseks saadaval. Kui sind kutsuti serverit jagama, aktsepteeri see kindlasti allpool või klõpsates e-kirja lingil.", + "MessagePlayAccessRestricted": "Selle sisu taasesitus on praegu piiratud. Lisateabe saamiseks pöördu oma Emby serveri administraatori poole.", + "Accept": "Nõustu", + "Reject": "Keeldu", + "Connect": "Ühenda", + "HeaderMyMedia": "Meediafailid", + "HeaderMyMediaSmall": "Meediafailid (väike)", + "LatestFromLibrary": "{0} - uusim", + "HeaderLatestEpisodes": "Uued episoodid", + "ContinuePlaying": "Jätka taasesitust", + "ContinueWatching": "Jätka vaatamist", + "HeaderLatestChannelMedia": "Kanali uued üksused", + "HeaderContinueWatching": "Jätka vaatamist", + "HeaderContinueListening": "Jätka kuulamist", + "HeaderActiveRecordings": "Toimuvad salvestused", + "HeaderLatestRecordings": "Uued salvestused", + "LabelConvertTo": "Teisenda:", + "LabelDownloadTo": "Laadi alla asukohta:", + "HeaderDownloadToDots": "Laadi alla asukohta...", + "Next": "Järgmine", + "LabelSource": "Allikas:", + "VersionNumber": "Versioon {0}", + "HeaderAllLanguages": "Kõik keeled", + "Previous": "Eelmine", + "HeaderNextUp": "Järgmisena", + "HeaderPlayNextUp": "Esita järgmisena", + "HeaderLatestFrom": "Uus esitajalt {0}", + "LabelHomeScreenSectionValue": "Avalehe jaotis {0}:", + "PasswordResetComplete": "Parool on lähtestatud.", + "PasswordSaved": "Parool salvestati.", + "SettingsSaved": "Sätted salvestati.", + "Upcoming": "Peatselt", + "HeaderSelectImageFile": "Vali pildifail", + "None": "Pole", + "More": "Veel", + "Up": "Üles", + "Down": "Alla", + "Home": "Avaleht", + "Back": "Tagasi", + "Random": "Random", + "Playback": "Taasesitus", + "Favorites": "Lemmikud", + "HeaderHomeScreen": "Avaleht", + "HeaderLatestChannelItems": "Kanali uued üksused", + "HeaderLibraryOrder": "Meediakogu järjestus", + "HeaderOnNow": "Eetris", + "HeaderForKids": "Lastele", + "HeaderPlaybackError": "Taasesituse viga", + "PlaybackErrorNotAllowed": "Sul ei ole praegu luba selle sisu esitamiseks. Lisateabe saamiseks pöördu oma süsteemi administraatori poole.", + "RateLimitExceeded": "Sinu konto ületas Emby serveri admini poolt seatud maksimaalse voogesituste hulga. Proovi hiljem uuesti.", + "PlaybackErrorNoCompatibleStream": "Ühtegi ühilduvat voogu pole praegu saadaval. Proovi hiljem uuesti või pöördu lisateabe saamiseks süsteemi administraatori poole.", + "PlaybackErrorPlaceHolder": "Selle video esitamiseks sisesta plaat.", + "PlaybackErrorNoPlayableItems": "Esitavaid üksusi ei leitud. Kas üritad esitada tühja kausta?", + "Guide": "Telekava", + "Games": "Mängud", + "GameSystem": "Mängusüsteem", + "Suggestions": "Soovitused", + "HeaderFavoriteChannels": "Lemmikkanalid", + "HeaderFavoriteCollections": "Lemmik kogumikud", + "HeaderFavoritePlaylists": "Lemmik pleilistid", + "Collection": "Kogumik", + "Collections": "Kogumikud", + "LabelSelectFolderGroups": "Järjesta sisu järgmistest kaustadest automaatselt vaadeteks, näiteks 'Filmid', 'Muusika' ja 'TV':", + "LabelSelectFolderGroupsHelp": "Märgistamata kaustad kuvatakse nende enda vaates.", + "Mute": "Vaigista", + "Unmute": "Taasta heli", + "Folder": "Folder", + "Folders": "Kaustad", + "FileName": "Faili nimi", + "DisplayInOtherHomeScreenSections": "Kuva teise avalehe jaotistes 'Uued failid' ja 'Jätka vaatamist'", + "DisplayInMyMedia": "Kuva avalehel", + "Shows": "Saated", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Muusikavideo", + "HeaderMusicVideos": "Muusikavideod", + "MusicVideos": "Muusikavideod", + "Videos": "Videod", + "MixedContent": "Segatud sisu", + "HomeVideos": "Koduvideod", + "HomeVideosAndPhotos": "Koduvideod ja fotod", + "TVShows": "Seriaalid", + "HeaderLibraryFolders": "Meediakogu kaustad", + "HeaderTermsOfPurchase": "Ostutingimused", + "PrivacyPolicy": "Privaatsuspoliitika", + "TermsOfUse": "Kasutustingimused", + "HeaderRepeatMode": "Kordusrežiim", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Korda ühte", + "RepeatAll": "Korda kõik", + "LabelDefaultScreen": "Vaikimisi kuvatakse:", + "ConfirmEndPlayerSession": "Kas peatada Emby seadmes {0}?", + "Yesterday": "Eile", + "Yes": "Jah", + "No": "Ei", + "HeaderScanLibraryFiles": "Skaneeri meediakogu faile", + "LiveTV": "OTSE TV", + "Schedule": "Ajakava", + "Recordings": "Salvestised", + "ScanForNewAndUpdatedFiles": "Otsi uusi ja uuendatud faile", + "NewVersionOfXAvailableForY": "{0} on saadaval {1} jaoks", + "DirectStreamHelp1": "Meedium on eraldusvõime ja meediatüübi (H.264, AC3 jne) osas ühilduv seadmega, kuid asub ühildamatus failimahutis (.mkv, .avi, .wmv jne). Enne seadmesse voogesitust pakitakse see video lennult uuesti.", + "DirectStreamHelp2": "Faili otsene voogesitus kasutab väga vähe töötlemisvõimsust videokvaliteeti kaotamata.", + "MediaIsBeingConverted": "Meediafailid teisendatakse vormingusse, mis ühildub neid esitava seadmega.", + "StatsForNerds": "Statistika nohikutele", + "HeaderHardwareAcceleratedDecoding": "Riistvarakiirendusega dekodeerimine", + "HeaderHardwareAcceleratedEncoding": "Riistvarakiirendusega kodeerimine", + "HeaderDirectPlay": "Otseesitusega", + "DirectPlaying": "Otseesitus", + "DirectStreaming": "Otsene voogesitus", + "Transcode": "Transkodeerib", + "Transcoding": "Transkodeerimine", + "ContainerBitrateExceedsLimit": "Bitikiiruse vähendamine kvaliteedi seadistuste tõttu", + "VideoCodecNotSupported": "Video teisendamine ühilduvasse koodeki formaati", + "AudioCodecNotSupported": "Audio teisendamine ühilduvasse koodeki formaati", + "SubtitleCodecNotSupported": "Subtiitrite teisendamine otse video sisse", + "DirectPlayError": "Otseesituse veast taastumine", + "ContainerNotSupported": "Teisendamine ühilduvasse konteineri formaati", + "VideoLevelNotSupported": "Teisendamine ühilduvale video tasemele", + "AudioBitrateNotSupported": "Teisendamine ühilduvale heli bitikiirusele", + "AudioChannelsNotSupported": "Teisendamine ühilduvale audiokanalite arvule", + "VideoResolutionNotSupported": "Teisendamine ühilduvale video lahutusele", + "AudioProfileNotSupported": "Teisendamine ühilduvale heli profiilile", + "AudioSampleRateNotSupported": "Teisendamine ühilduvale heli diskreetimissagedusele", + "AnamorphicVideoNotSupported": "Anamorfset videot ei toetata", + "InterlacedVideoNotSupported": "Ülerealaotuse eemaldamine", + "SecondaryAudioNotSupported": "Teisese audioraja valik", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "Emby Connect konto eemaldamisel ilmnes viga. Veendu, et internetiühendus oleks aktiivne ja proovi uuesti.", + "HeaderEmbyAccountRemoved": "Emby konto on eemaldatud", + "MessageEmbyAccontRemoved": "Emby konto on sellelt kasutajalt eemaldatud.", + "HeaderInvitationSent": "Kutse on saadetud", + "Offline": "Võrguta", + "HeaderSignUp": "Registreeri", + "ServerDownloadMessage": "Tasuta Emby serveri hankimiseks mine {0}", + "ServerDownloadMessageWithoutLink": "Tasuta Emby serveri hankimiseks külasta Emby veebilehte.", + "MessageInvitationSentToUser": "E-posti aadressile {0} saadeti meil, milles kutsutakse neid jagamiskutset vastu võtma.", + "MessageInvitationSentToNewUser": "E-posti aadressile {0} saadeti meil, milles kutsutakse neid Emby kontot looma.", + "GuestUserNotFound": "Kasutajat ei leitud. Veendu, et nimi on õige ja proovi uuesti, või sisesta nende e-posti aadress.", + "ErrorReachingEmbyConnect": "Emby Connect serveri leidmisel ilmnes viga. Veendu, et netiühendus oleks aktiivne ja proovi uuesti.", + "ErrorAddingEmbyConnectAccount1": "Emby Connect konto lisamisel ilmnes tõrge. Kas Emby konto on olemas? Registreeru aadressil {0}.", + "ErrorAddingEmbyConnectAccount2": "Kui sul on endiselt probleeme, saada e-kiri aadressile {0} Emby kontoga kasutatud e-posti aadressilt.", + "ErrorAddingGuestAccount1": "Emby Connect konto lisamisel ilmnes tõrge. Kas külaline on Emby konto loonud? Registreerimine aadressil {0}.", + "ErrorAddingGuestAccount2": "Kui sul on endiselt probleeme, saada e-kiri aadressile {0} Emby kontoga kasutatud e-posti aadressilt.", + "MessageEmbyAccountAdded": "Emby konto on sellele kasutajale loodud.", + "MessagePendingEmbyAccountAdded": "Emby konto on sellele kasutajale loodud. Konto omanikule saadetakse e-kiri. Kutse tuleb kinnitada, klõpsates meilis oleval lingil.", + "HeaderEmbyAccountAdded": "Emby konto on lisatud", + "Skip": "Ülehüpe", + "HeaderAdditionalParts": "Lisaosad", + "ButtonGenerateNewPin": "Loo uus PIN", + "ConnectLoginHelp1": "Emby Connecti abil pääsed hõlpsalt oma Emby Serverile juurde kõikjal, ja jagad servereid oma pere ja sõpradega.", + "CreatePinErrorMessage": "PIN koodi loomisel ilmnes viga. Uuesti proovimiseks klõpsa valikul 'Loo uus PIN-kood'.", + "PinExpiredMessage": "PIN kood on aegunud. Uuesti proovimiseks klõpsa valikul 'Loo uus PIN kood.", + "ConnectPinCodeHeader": "Emby Connecti kaudu sisselogimiseks mine mobiilseadme või arvuti abil aadressile {0} ja sisesta järgmine PIN-kood:", + "LabelSubtitlePlaybackMode": "Subtiitrite režiim:", + "ErrorDeletingItem": "Üksuse kustutamisel Emby serverist ilmnes viga. Kontrolli, kas Emby serveril on meediumikausta kirjutamisõigus ja proovi uuesti.", + "NoSubtitles": "Subtiitreid pole", + "Default": "Vaikimisi", + "Absolute": "Täielik", + "Smart": "Nutikas", + "Small": "Väike", + "Smaller": "Väiksem", + "Medium": "Keskmine", + "Large": "Suur", + "Larger": "Suurem", + "ExtraLarge": "Väga suur", + "ExtraSmall": "Eriti väike", + "Forced": "Sunnitud", + "External": "Väline", + "HeaderEmbeddedTitle": "Manustatud nimi", + "OnlyForcedSubtitles": "Ainult sunnitud subtiitrid", + "AlwaysPlaySubtitles": "Kuva alati subtiitreid", + "DefaultSubtitlesHelp": "Subtiitrid laaditakse põimitud metaandmete vaikimisi ja sunniviisiliste tähiste alusel. Keele eelistusi võetakse arvesse siis, kui saadaval on mitu võimalust.", + "SmartSubtitlesHelp": "Keele eelistustele vastavad subtiitrid laaditakse, kui heli on võõrkeeles.", + "HeaderSubtitleSettings": "Subtiitrite sätted", + "HeaderSubtitleAppearance": "Subtiitrite välimus", + "OnlyForcedSubtitlesHelp": "Laaditakse ainult sunnutuks märgitud subtiitrid.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Keele eelistustele vastavad subtiitrid laaditakse sõltumata helikeelest.", + "NoSubtitlesHelp": "Subtiitreid vaikimisi ei laadita. Neid saab taasesituse ajal käsitsi sisse lülitada.", + "LabelPreferredSubtitleLanguage": "Eelistatud subtiitrite keel:", + "LabelTextSize": "Teksti suurus:", + "TheseSettingsAffectSubtitlesOnThisDevice": "Need sätted kehtivad subtiitritele selles seadmes", + "LabelDropShadow": "Vari:", + "LabelTextBackgroundColor": "Teksti taustavärv:", + "LabelWindowBackgroundColor": "Teksti taustavärv:", + "LabelFont": "Font:", + "LabelTextColor": "Teksti värv:", + "LabelBackgroundColor": "Tausta värv:", + "LabelBackgroundOpacity": "Tausta läbipaistvus:", + "Raised": "Tõstetud", + "Depressed": "Surutud", + "Uniform": "Ühtlane", + "DropShadow": "Vari:", + "SmallCaps": "Väiksed esitähed", + "SubtitleAppearanceSettingsDisclaimer": "Neid sätteid ei kohaldata graafiliste subtiitrite (PGS, DVD jne) ega subtiitrite suhtes, millele on manustatud oma stiil (ASS/SSA).", + "Normal": "Tavaline", + "HeaderWaitingForWifi": "Wifi ootel", + "WifiRequiredToDownload": "Allalaadimise jätkamiseks on vaja Wifi ühendust.", + "DownloadOnlyOnWifi": "Laadi alla ainult Wifi kaudu", + "LabelMusicDownloadQuality": "Muusika allalaadimise kvaliteet:", + "MusicDownloadQualityHelp": "Suurema bitikiirusega helifailid Emby server teisendab. Parema kvaliteedi jaoks vali suurem väärtus või kohaliku salvestusruumi säästmiseks väiksem väärtus.", + "HeaderDownloadSettings": "Allalaadimise sätted", + "LabelDownloadLocation": "Allalaadimiskoht:", + "BrowseForFolder": "Sirvi kausta", + "Unlimited": "Piiramatu", + "NoLimit": "No limit", + "Hide": "Peida", + "HeaderKeepWatching": "Jätka vaatamist", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Teisaldamine ühilduvale heli bitisügavusele", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Teisaldamine ühilduvale video profiilile", + "VideoFramerateNotSupported": "Teisaldamine ühilduvale video kaadrisagedusele", + "VideoBitDepthNotSupported": "Teisaldamine ühilduvale video bitisügavusele", + "RefFramesNotSupported": "Teisaldamine ühilduvale video referentskaadrite arvule", + "ErrorConnectServerUnreachable": "Taotletud toimingu teostamisel ilmnes tõrge. Sinu server ei saa aadressil {0} ühendust meie Emby Connect serveriga. Veendu, et suserveril oleks aktiivne internetiühendus ja et paigaldatud tulemüür või turvatarkvara võimaldaks suhtlust.", + "HeaderStopRecording": "Lõpeta salvestamine", + "ManageRecording": "Halda salvestamist", + "LabelDropImageHere": "Lohista pilt siia või klõpsa üleslaadimiseks.", + "MessageFileReadError": "Faili lugemisel toimus viga. Proovi uuesti.", + "Browse": "Sirvi", + "HeaderUploadImage": "Lae pilt üles", + "HeaderAddUpdateImage": "Lisa / värskenda pilt", + "HeaderShowFields": "Kuva väljad", + "LabelView": "Vaade:", + "LabelImageType": "Pilditüüp:", + "Upload": "Laadi üles", + "Primary": "Põhipilt", + "PrimaryImageBlur": "Primary image blur", + "Art": "Kunst", + "Backdrop": "Taustapilt", + "Banner": "Bänner", + "Box": "Karp", + "BoxRear": "Karp (tagune)", + "Disc": "Plaat", + "Logo": "Logo", + "LogoDark": "Logo (tume versioon)", + "LogoLight": "Logo (hele versioon)", + "LogoLightColor": "Logo (hele värviline)", + "Menu": "Menüü", + "Screenshot": "Ekraanipilt", + "Thumb": "Pisipilt", + "HeaderAudioSettings": "Heli sätted", + "LabelAudioLanguagePreference": "Eelistatud helikeel:", + "LabelPlayDefaultAudioTrack": "Esita vaikimisi heliriba olenemata keelest", + "HeaderVideoQuality": "Video kvaliteet", + "CinemaModeConfigurationHelp": "Kinoteater toob kinoelamuse otse elutuppa võimalusega vaadata enne põhifilmi treilereid ja kohandatud sisu.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Esita järgmine osa automaatselt", + "LabelMaxChromecastBitrate": "Chromecasti voogesituse kvaliteet:", + "LabelSkipBackLength": "Tagasihüppe suurus:", + "LabelSkipForwardLength": "Edasihüppe samm:", + "EnableCinemaMode": "Luba kinoteater", + "LabelInternetQuality": "Interneti kvaliteet:", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Muusika kvaliteet", + "LabelHomeNetworkQuality": "Koduvõrgu kvaliteet:", + "HeaderLatestMedia": "Uued meediafailid", + "HeaderRestartingEmbyServer": "Emby serveri taaskäivitamine", + "RestartPleaseWaitMessage": "Palun oota, kuni Emby server seiskub ja taaskäivitub. Selleks võib kuluda minut või kaks.", + "HeaderPlayNext": "Esita järgmisena", + "AutoBasedOnLanguageSetting": "Automaatne (põhineb seadme seadistusel)", + "SameAsMainTheme": "Järgib põhiteemat", + "LabelDateTimeLocale": "Kuupäev kellaaeg keel:", + "Genre": "Žanr", + "DirectorValue": "Lavastaja: {0}", + "DirectorsValue": "Lavastajad: {0}", + "GenreValue": "Žanr: {0}", + "GenresValue": "Žanrid: {0}", + "TagsValue": "Sildid: {0}", + "Off": "Väljas", + "Title": "Pealkiri", + "Year": "Aasta", + "Filter": "Filter", + "Filters": "Filtrid", + "Unplayed": "Esitamata", + "LabelTVHomeScreen": "TV režiimi avaleht:", + "Horizontal": "Horisontaalne", + "Vertical": "Vertikaalne", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Rühmita seriaalide kaupa", + "HeaderVideoType": "Video tüüp", + "HeaderSeriesStatus": "Seriaali seis", + "Features": "Võimalused", + "Trailers": "Treilerid", + "Extras": "Lisad", + "ThemeSongs": "Teemalaulud", + "ThemeVideos": "Teemavideod", + "HeaderFavoriteMovies": "Lemmikfilmid", + "HeaderFavoritePhotos": "Lemmikfotod", + "HeaderFavoriteShows": "Lemmiksaated", + "HeaderFavoriteEpisodes": "Lemmikepisoodid", + "HeaderFavoriteVideos": "Lemmikvideod", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Lemmikmängud", + "HeaderFavoriteArtists": "Lemmikesitajad", + "HeaderFavoriteAlbums": "Lemmikalbumid", + "HeaderFavoriteSongs": "Lemmiklood", + "HeaderFavoriteAuthors": "Lemmikautorid", + "HeaderFavoriteAudioBooks": "Lemmikaudioraamatud", + "Ascending": "Kasvav", + "Descending": "Kahanev", + "HeaderColorPrimaries": "Peamised värvid", + "HeaderColorSpace": "Värviruum", + "HeaderColorTransfer": "Värviülekanne", + "HeaderVideoRange": "Videovahemik", + "SeriesDisplayOrderHelp": "Järjesta episoodid edastuskuupäeva, dvd järjekorra või absoluutse numeratsiooni järgi.", + "LabelVerticalPositionFromBottom": "Vertikaalne asend (alt):", + "HeaderFavoritePeople": "Lemmikinimesed", + "MultiSelect": "Hulgivalik", + "HeaderSignOut": "Logi välja", + "HeaderSelectServer": "Vali server", + "HeaderChangeServer": "Muuda serverit", + "HeaderChangeUser": "Vaheta kasutajat", + "HeaderAppSettings": "Rak. seadistus", + "HeaderLoginSettings": "Sisselogimise sätted", + "LabelRememberLogin": "Jäta sisselogimine meelde:", + "LabelAutomaticallySignOut": "Logi automaatselt välja:", + "BetaTesterMessage": "Täname sind, et oled Emby beetatestija! Palun jäta tagasisidet {0}Emby foorumi testimisalas{1}.", + "HardwareAccelerated": "Riistvara kiirendatud", + "Software": "Tarkvara", + "Metadata": "Metaandmed", + "HeaderMediaInfo": "Meediainfo", + "Locked": "Lukustatud", + "HeaderSplitVersionsApart": "Eralda versioonid", + "Any": "Mistahes", + "Admin": "Admin", + "HeaderReadMore": "Loe rohkem", + "CustomRatingHelp": "Vanusepiirangu hindamisel kasutatakse kohandatud reitingut, kuid seda ei kuvata. Vanusepiirangu väli kuvatakse endiselt.", + "KeepUpToHelp": "Piirangu ületanud salvestised kustutatakse järgmise salvestuse algamisel. Salvestised kustutatakse lisamise kuupäeva järgi, vanemad esimesena.", + "NoItemsMatchingFound": "Otsingukriteeriumidele vastavaid üksusi ei leitud.", + "TwoSearchCharsRequired": "Sisesta vähemalt kaks tähemärki.", + "PreventPlaybackContinuing": "Takista taasesituse lõputut jätkumist, küsides perioodiliselt kasutaja sisendit.", + "PromptStillWatching": "Luba 'Kas oled veel siin?\" küsimine", + "HeaderMissingMetadata": "Puuduvad metaandmed", + "HeaderIncludedIn": "Sisaldub", + "EmbyConnectUserAlreadyLinked": "Emby Connecti kasutaja on selles serveris juba teise kasutajaga lingitud.", + "VideoFilesWillBeConvertedTo": "Teisendatud videod salvestatakse kui {0}.", + "VideoWillBeConvertedTo": "Videovood teisendatakse {0} või kopeeritakse algsest failist, kui need on juba {0} ja kvaliteet vastab teisendusseadetele.", + "VideoWillBeConvertedToOrCopied": "Videovood teisendatakse {0} või kopeeritakse algsest failist, kui need on {1} ja kvaliteet vastab teisendusseadetele.", + "AudioWillBeConvertedTo": "Helivood teisendatakse {0} või kopeeritakse algsest failist, kui need on juba {0} ja kvaliteet vastab teisendusseadetele.", + "AudioWillBeConvertedToOrCopied": "Helivood teisendatakse {0} või kopeeritakse algsest failist, kui need on {1} ja kvaliteet vastab teisendusseadetele.", + "HeaderSpecialKeys": "Eriklahvid", + "FollowingSpecialKeys": "Järgmisi eriklahve toetab enamik klaviatuure ja kaugjuhtimispulte:", + "HeaderDeleteSeries": "Kustuta seriaal", + "HeaderDeleteLastPlayedEpisode": "Kustuta viimati vaadatud episood", + "HeaderConnectingToServer": "Ühendumine serveriga", + "ServerNameValue": "Serveri nimi: {0}", + "DomainValue": "Domeen: {0}", + "RatedValue": "Hinnang {0}", + "LocalServerRedirectMessage": "Sind suunatakse domeeni, mille omanik ja haldaja on valitud serveri administraator:", + "AllMediaOwnedHosted": "Kogu meediumit haldab domeeni {0} omanik.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Luba ekraani värskendussageduse vahetamine", + "EnableDisplayRefreshRateSwitchingHelp": "See võimaldab Embyl enne taasesituse alustamist muuta ekraani värskendussagedust video kaadrisageduse (või selle kordajaga) vastavaks. See aitab minimeerida hakkimist/võbelemist, mis võib tekkida, kui video ja värskendussagedus ei sobi hästi.", + "RememberSelectedAudioTracks": "Pea heliriba valikud meeles", + "RememberSelectedSubtitleTracks": "Pea subtiitrite keele valikud meeles", + "RememberSelectedSubtitleTracksHelp": "Subtiitriraja valikud jäävad meelde iga video kohta ja rakendatakse sama video uuesti esitamisel.", + "RememberSelectedAudioTracksHelp": "Heliriba valikud jäävad meelde iga video kohta ja rakendatakse sama video uuesti esitamisel.", + "ClearSavedTrackSelections": "Eemalda salvestatud raja valikud", + "HeaderClearTrackSelections": "Eemalda salvestatud raja valikud", + "QuestionClearSavedTracks": "Kas eemaldada kõik salvestatud raja valikud?", + "LabelChannelTags": "Kanali tunnused:", + "AfterThisPlaysConfirmation": "Kas pärast selle loo lõppu jätkata esitust või tühjendada muusika järjekord?", + "Keep": "Hoia", + "Clear": "Tühjenda", + "HeaderClearFilters": "Tühjenda filtrid", + "HeaderSearchForImages": "Otsi pilte", + "HeaderSearchNewImage": "Otsi uut pilti", + "HeaderSearchForAnImage": "Otsi pilti", + "DragDropToReorder": "Muuda järjestust lohistades", + "HeaderAddImageFromUrl": "Lisa pilt URL-aadressilt", + "HeaderSetImageFromUrl": "Määra pilt URL-aadressilt", + "LabelUrl": "Url:", + "LabelChannelNumber": "Kanalinumber:", + "LabelGuideDataChannel": "Telekava andmekanal:", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Kopeeri lõikelauale", + "TimeRemainingValue": "{0} jäänud", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "minutit", + "LabelMaxRecordingLength": "Maksimaalne salvestuse pikkus:", + "MaxRecordingLengthHelp": "Piirab salvestamise kestvuse siin määratud ajaga, sõltumata teleülekande kestvusest. Väärtus 0 tähendab ilma piiranguta.", + "RemoteWAN": "Kaugligipääsu (WAN) aadress", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Versioon", + "Keyword": "Võtmesõna", + "HeaderServerAddress": "Serveri aadress", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Loo salvestus", + "HeaderAddRecording": "Lisa salvestus", + "HeaderChannelAndTime": "Kanal ja aeg", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/fa.json b/modules/common/strings/fa.json new file mode 100644 index 0000000..3de1eff --- /dev/null +++ b/modules/common/strings/fa.json @@ -0,0 +1,1340 @@ +{ + "GroupItemsIntoTags": "Group items into tags", + "User": "User", + "HeaderMetadataSettings": "Metadata Settings", + "OneDevice": "1 Device", + "Yes": "Yes", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "EmbyLoginTerms": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our {0}terms of use{1}. The use of any Emby software constitutes acceptance of these terms.", + "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server.", + "HeaderSignInWithConnect": "Sign in with Emby Connect", + "HeaderWelcomeToEmby": "Welcome to Emby", + "HeaderNewUsers": "New Users", + "HeaderPleaseSignIn": "Please Sign In", + "MessageInvalidUser": "Invalid username or password. Please try again.", + "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.", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Sign In", + "Share": "Share", + "Shared": "Shared", + "Info": "Info", + "Add": "Add", + "Speed": "Speed", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapters", + "Password": "Password", + "SavePassword": "Save Password", + "LabelPassword": "Password", + "HeaderResetPassword": "Reset Password", + "Series": "Series", + "Preview": "Preview", + "Submit": "Submit", + "Never": "Never", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Top Results", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Always on", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Upload only on Wifi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Password (confirm)", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Username", + "HeaderAddServer": "Add Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Close", + "HeaderSeeAll": "See All", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "Email", + "LabelHost": "Host", + "LabelHostHelp": "Example: 192.168.1.100 or https://myserver.com", + "LabelPort": "Port", + "Disabled": "Disabled", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Are you still watching?", + "LabelCurrentPassword": "Current password", + "LabelNewPassword": "New password", + "LabelNewPasswordConfirm": "New password confirm", + "HeaderRemovePassword": "Remove Password", + "ServerUpdateNeeded": "This Emby Server needs to be updated. To download the latest version, please visit {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Connect to Server", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "New", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premiere", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Live", + "Reset": "Reset", + "Repeat": "Repeat", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} Tracks", + "ItemCount": "{0} Items", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Latest Music", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Recently Played", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Frequently Played", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "OriginalAirDateValue": "Original air date: {0}", + "EndsAtValue": "Ends at {0}", + "Date": "Date", + "AirDate": "Air Date", + "Played": "Played", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Last Episode Date Added", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio codec", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Parental rating", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Because you watched {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Invitations", + "ActorAsRole": "as {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "Access": "Access", + "Users": "Users", + "Library": "Library", + "Devices": "Devices", + "Cancel": "Cancel", + "Restart": "Restart", + "Shutdown": "Shutdown", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Systems", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Got It", + "RememberMe": "Remember me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Manage Emby Server", + "ShutdownServer": "Shutdown Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Recording Cancelled", + "SeriesCancelled": "Series Cancelled", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Recording Scheduled", + "SeriesRecordingScheduled": "Series Recording Scheduled", + "HeaderNewRecording": "New Recording", + "HeaderWakeServer": "Wake Server", + "AttemptingWakeServer": "Attempting to wake server. Please wait...", + "WakeServerSuccess": "Success!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine.", + "Days": "Days", + "Network": "Network", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Cinema Intros", + "Conversions": "Conversions", + "Downloads": "Downloads", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Offline Media", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", + "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.", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature.", + "HeaderFreeApps": "Free Emby Apps", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", + "HeaderBecomeProjectSupporter": "Get Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "This feature requires an active {0}Emby Premiere subscription{1}.", + "HeaderConvertYourRecordings": "Convert Your Recordings", + "Record": "Record", + "Save": "Save", + "Edit": "Edit", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Download", + "Downloaded": "Downloaded", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloading", + "Advanced": "Advanced", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Delete", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Delete Item", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library.", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Refresh", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Add to Collection", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Help", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "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", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Name", + "NewCollectionNameExample": "Example: Star Wars Collection", + "MessageItemsAdded": "Items added.", + "OptionNew": "New...", + "LabelPlaylist": "Playlist", + "AddToPlaylist": "Add to playlist", + "HeaderAddToPlaylist": "Add to Playlist", + "Subtitles": "Subtitles", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Search for Subtitles", + "LabelLanguage": "Language", + "Search": "Search", + "NoSubtitleSearchResultsFound": "No results found. Have you configured {0}subtitle downloading{1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "File", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "ConfirmDeletion": "Confirm Deletion", + "MySubtitles": "My Subtitles", + "MessageDownloadQueued": "Download queued.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Unlock Guide", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Replace existing images", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "ReplaceAllMetadata": "Replace all metadata", + "SearchForMissingMetadata": "Search for missing metadata", + "LabelRefreshMode": "Refresh mode", + "NoItemsFound": "No items found.", + "HeaderSaySomethingLike": "Say Something Like...", + "ButtonTryAgain": "Try Again", + "HeaderYouSaid": "You Said...", + "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "ValueDiscNumber": "Disc {0}", + "Unrated": "Unrated", + "Favorite": "Favorite", + "Like": "Like", + "Dislike": "Dislike", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup.", + "Open": "Open", + "Play": "Play", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Shuffle", + "Identify": "Identify", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Convert", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Queue", + "QueueAllFromHere": "Queue all from here", + "PlayAllFromHere": "Play all from here", + "PlayFromBeginning": "Play From Beginning", + "FromBeginning": "From Beginning", + "ResumeAt": "Resume from {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sort", + "Trailer": "Trailer", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Error", + "VoiceInput": "Voice Input", + "LabelContentType": "Content type", + "LabelPath": "Path", + "Playlists": "Playlists", + "LabelTitle": "Title", + "LabelOriginalTitle": "Original title", + "LabelSortTitle": "Sort title", + "LabelDateAdded": "Date added", + "DateAdded": "Date Added", + "DateCreated": "Date Created", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Status", + "LabelArtistsHelp": "Separate multiple using ;", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Album artists", + "LabelAlbum": "Album", + "Artist": "Artist", + "Artists": "Artists", + "ImdbRating": "IMDb Rating", + "CommunityRating": "Community Rating", + "LabelCommunityRating": "Community rating", + "LabelCriticRating": "Critic rating", + "CriticRating": "Critic Rating", + "LabelWebsite": "Website", + "Tagline": "Tagline", + "LabelOverview": "Overview", + "LabelShortOverview": "Short overview", + "LabelReleaseDate": "Release date", + "LabelPlaceOfBirth": "Place of birth", + "Aired": "Aired", + "LabelAirDays": "Air days", + "LabelAirTime": "Air time", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelCustomRating": "Custom rating", + "LabelOriginalAspectRatio": "Original aspect ratio", + "Label3DFormat": "3D format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Display Settings", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Display order", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Countries", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Tags", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "People": "People", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Preferred metadata download language", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LabelCountry": "Country", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Birth year", + "LabelBirthDate": "Birth date", + "LabelDeathDate": "Death date", + "LabelEndDate": "End date", + "LabelSeasonNumber": "Season number", + "LabelEpisodeNumber": "Episode number", + "LabelTrackNumber": "Track number", + "LabelNumber": "Number", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Sort Title", + "OriginalTitle": "Original Title", + "ReleaseDate": "Release Date", + "Continuing": "Continuing", + "Ended": "Ended", + "HeaderEnabledFields": "Enabled Fields", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed.", + "Backdrops": "Backdrops", + "Images": "Images", + "Runtime": "Runtime", + "ProductionLocations": "Production locations", + "BirthLocation": "Birth location", + "ParentalRating": "Parental Rating", + "PlayCount": "Play count", + "Name": "Name", + "Overview": "Overview", + "LabelType": "Type", + "LabelPersonRole": "Role", + "LabelPersonRoleHelp": "Example: Ice cream truck driver", + "Actor": "Actor", + "Composers": "Composers", + "Composer": "Composer", + "Director": "Director", + "GuestStar": "Guest star", + "Producer": "Producer", + "Writer": "Writer", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Installing {0}", + "PackageInstallCompleted": "{0} installation completed.", + "PackageInstallFailed": "{0} installation failed.", + "PackageInstallCancelled": "{0} installation cancelled.", + "SeriesYearToPresent": "{0} - Present", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episodes", + "Albums": "Albums", + "Song": "Song", + "Songs": "Songs", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "PleaseEnterNameOrId": "Please enter a name or an external Id.", + "MessageItemSaved": "Item saved.", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Emby Server - {0} is restarting.", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "PleaseRestartServerName": "Please Restart Emby Server on {0}", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Downloading...", + "LearnMore": "Learn more", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Screenshots", + "MoveRight": "Move right", + "MoveLeft": "Move left", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Delete image?", + "HeaderEditImages": "Edit Images", + "Settings": "Settings", + "ShowIndicatorsFor": "Show Indicators", + "Episodes": "Episodes", + "Programs": "Programs", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}.", + "HeaderCancelRecording": "Cancel Recording", + "HeaderKeepRecording": "Keep Recording", + "HeaderCancelSeries": "Cancel Series", + "HeaderKeepSeries": "Keep Series", + "HeaderLearnMore": "Learn More", + "SeriesSettings": "Series settings", + "HeaderRecordingOptions": "Recording Options", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Series Options", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Anytime", + "AnyLanguage": "Any language", + "AroundTime": "Around {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "All channels", + "NewEpisodesOnly": "New episodes only", + "AllEpisodes": "All episodes", + "LabelStartWhenPossible": "Start when possible", + "LabelStopWhenPossible": "Stop when possible", + "MinutesBefore": "minutes before", + "MinutesAfter": "minutes after", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", + "LabelKeepUpTo": "Keep up to", + "AsManyAsPossible": "As many as possible", + "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "UntilIDelete": "Until I delete", + "UntilSpaceNeeded": "Until space needed", + "Categories": "Categories", + "Sports": "Sports", + "News": "News", + "Movies": "Movies", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "I have Emby Premiere", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "ButtonUnlockPrice": "Unlock {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "HeaderUnlockFeature": "Unlock Feature", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Added {0}", + "PlayedOnValue": "Played {0}", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Continue", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Quality", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "My Media", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "Latest {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continue Watching", + "HeaderContinueListening": "Continue Listening", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Latest Recordings", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Settings saved.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Favorites", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Favorite Collections", + "HeaderFavoritePlaylists": "Favorite Playlists", + "Collection": "Collection", + "Collections": "Collections", + "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.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Schedule", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "No subtitles", + "Default": "Default", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Subtitle Settings", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelTextSize": "Text size", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "Hide": "Hide", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Audio Settings", + "LabelAudioLanguagePreference": "Preferred audio language", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Video Quality", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Latest Media", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "Genre": "Genre", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directors: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Theme songs", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Favorite Movies", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Favorite Shows", + "HeaderFavoriteEpisodes": "Favorite Episodes", + "HeaderFavoriteVideos": "Favorite Videos", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Favorite Games", + "HeaderFavoriteArtists": "Favorite Artists", + "HeaderFavoriteAlbums": "Favorite Albums", + "HeaderFavoriteSongs": "Favorite Songs", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up button behavior", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/fi.json b/modules/common/strings/fi.json new file mode 100644 index 0000000..0bec3cd --- /dev/null +++ b/modules/common/strings/fi.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby on suunniteltu helpottamaan henkilökohtaisen mediasisällön, kuten kotivideoiden ja valokuvien hallintaa. Tutustu {0}käyttöehtoihimme{1}. Kaikkien Emby-sovellusten käyttö edellyttää näiden ehtojen hyväksyntää.", + "MessageUnableToConnectToServer": "Emme juuri nyt saaneet yhteyttä palvelimeen. Varmista, että se on käynnissä ja yritä uudelleen.", + "EmbyIntroMessage": "Emby-palvelimeltasi voit helposti suoratoistaa videoita ja musiikkia sekä katsella valokuvia älypuhelimilla, tableteilla ja useilla muilla mediatoistimilla.", + "HeaderSignInWithConnect": "Kirjaudu Emby Connect -tilillä", + "HeaderWelcomeToEmby": "Tervetuloa Embyyn", + "HeaderNewUsers": "Uudet käyttäjät", + "HeaderPleaseSignIn": "Kirjaudu sisään", + "MessageInvalidUser": "Virheellinen käyttäjätunnus tai salasana. Yritä uudelleen.", + "MessageUnlockAppWithPurchaseOrSupporter": "Avaa tämä ominaisuus pienellä kertamaksulla tai aktiivisella Emby Premiere -tilauksella.", + "MessageUnlockAppWithSupporter": "Avaa tämä ominaisuus aktiivisella Emby Premiere -tilauksella.", + "MessageToValidateSupporter": "Jos sinulla on aktiivinen Emby Premiere -tilaus, varmista, että olet määrittänyt Emby Premiere -tilauksen asetukset palvelimesi hallintapaneelista, päävalikosta löytyvän Emby Premiere -valinnan alta.", + "ValueSpecialEpisodeName": "Erikoisjakso - {0}", + "HeaderSignIn": "Kirjaudu sisään", + "Share": "Jako", + "Shared": "Jaettu", + "Info": "Tiedot", + "Add": "Lisää", + "Speed": "Nopeus", + "PlaybackSpeed": "Toistonopeus", + "Chapters": "Kappaleet", + "Password": "Salasana", + "SavePassword": "Tallenna salasana", + "LabelPassword": "Salasana", + "HeaderResetPassword": "Vaihda salasana", + "Series": "Sarja", + "Preview": "Esikatsele", + "Submit": "Lähetä", + "Never": "Ei koskaan", + "Table": "Taulukko", + "HeaderScheduledTasks": "Ajoitetut tehtävät", + "Plays": "Toistot", + "LastUsedAddressValue": "Viimeksi käytetty {0}", + "LabelKeywordType": "Avainsanan tyyppi", + "HeaderSelectColumns": "Valitse sarakkeet", + "HeaderTopResults": "Parhaat tulokset", + "HeaderPinSidebar": "Kiinnitä sivupalkki", + "Collapse": "Supista", + "LabelBackgroundVideoPlayback": "Videon toisto taustalla", + "BackgroundVideoPlaybackHelp": "Taustalla toisto mahdollistaa videon toiston vaikka näyttö olisi pois päältä.", + "AlwaysOn": "Aina käytössä", + "HeadphonesOrExternalSpeakersConnected": "Kuulokkeet tai ulkoiset kaiuttimet kytketty", + "HeaderKeyboardAndRemote": "Näppäimistö ja ohjaimet", + "NoSelectedItemsSupportOperation": "Tätä toimenpidettä tukevia kohteita ei ole valittuna.", + "NoOperationsForSelectedItems": "Valituille kohteille ei ole mahdollisia toimenpiteitä.", + "UploadOnlyOnWifi": "Lähetä vain Wifi-yhteyden kautta", + "HeaderFoldersToUpload": "Lähetettävät kansiot", + "LabelPasswordConfirm": "Salasanan vahvistus", + "HeaderMoveUpInOrder": "Siirrä ylöspäin", + "HeaderDownUpInOrder": "Siirrä alaspäin", + "LabelUsername": "Käyttäjätunnus", + "HeaderAddServer": "Lisää palvelin", + "HeaderSubtitleOffset": "Tekstityksen tahdistus", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Poista jatkettavista", + "RemoveThisTitleFromContinueWatching": "Poistetaanko tämä nimike jatkettavista?", + "HeaderRemoveFromContinueListening": "Poista jatkettavista", + "RemoveThisTitleFromContinueListening": "Poistetaanko tämä nimike jatkettavista?", + "HeaderIncreaseSubtitleOffset": "Lisää tekstityksen tahdistusta", + "HeaderDecreaseSubtitleOffset": "Vähennä tekstityksen tahdistusta", + "Close": "Sulje", + "HeaderSeeAll": "Näe kaikki", + "HeaderOpenInNewWindow": "Avaa uuteen ikkunaan", + "LabelEmail": "Sähköpostiosoite", + "LabelHost": "Osoite", + "LabelHostHelp": "Esimerkki: 192.168.1.100 tai https://esimerkkipalvelin.fi", + "LabelPort": "Portti", + "Disabled": "Ei käytössä", + "Uninstall": "Poista asennus", + "Enable": "Ota käyttöön", + "AllTuners": "Kaikki virittimet", + "Disable": "Poista käytöstä", + "NextValue": "Seuraava: {0}", + "HeaderNextItem": "Seuraava", + "HeaderPreviousItem": "Edellinen", + "NoTrailersMessage": "Trailereita ei löytynyt. Lisätäksesi tralereita, asenna Trailer-laajennus Embyn {0}laajennushakemistosta{1}.", + "UninstallPluginConfirmation": "Oletko varma, että haluat poistaa tämän laajennuksen?", + "HeaderUninstallPlugin": "Poista laajennus", + "AreYouStillWatching": "Vieläkö katsot?", + "LabelCurrentPassword": "Nykyinen salasana", + "LabelNewPassword": "Uusi salasana", + "LabelNewPasswordConfirm": "Vahvista uusi salasana", + "HeaderRemovePassword": "Poista salasana", + "ServerUpdateNeeded": "Tämä palvelin on päivitettävä. Ladataksesi viimeisimmän version, vieraile osoitteessa {0}", + "MessageThankYouForConnectSignUp": "Kiitos, kun rekisteröit Emby Connect -tilin. Osoitteeseesi lähetetään sähköposti, joka sisältää ohjeet uuden tilin vahvistukseen. Vahvista tilisi ja palaa sen jälkeen tänne sisäänkirjautumista varten.", + "MessageThankYouForConnectSignUpNoValidation": "Kiitos, kun rekisteröit Emby Connect -tilin! Nyt sinua pyydetään kirjautumaan Emby Connect -tilitiedoillasi.", + "ErrorMessagePasswordNotMatchConfirm": "Salasanan ja varmistuksen on täsmättävä.", + "ErrorMessageUsernameInUse": "Käyttäjänimi on jo käytössä. Valitse uusi nimi ja yritä uudelleen.", + "ErrorMessageEmailInUse": "Sähköpostiosoite on jo käytössä. Syötä uusi sähköposti ja yritä uudelleen, tai käytä \"unohditko salsanasi\" -ominaisuutta.", + "HeaderUpcomingOnTV": "Tulevat televisiolähetykset", + "HeaderOtherShowings": "Muut esitykset", + "Showings": "Esitykset", + "HeaderConnectToServer": "Yhdistä palvelimeen", + "ConnectToServerManually": "Yhdistä palvelimeen manuaalisesti", + "LabelEnterConnectUserNameHelp": "Tämä on se sähköpostiosoite, jota käytit Emby Connect -tilin määritykseen.", + "HeaderSignInError": "Kirjautumisvirhe", + "HeaderManualLogin": "Manuaalinen kirjautuminen", + "PasswordResetConfirmation": "Oletko varma, että haluat palauttaa salasanan?", + "ContactAdminToResetPassword": "Ota yhteyttä järjestelmänvalvojaasi palauttaaksesi salasanasi.", + "ForgotPasswordInNetworkRequired": "Yritä salasanan palautusta uudelleen kotiverkon kautta.", + "ForgotPasswordFileCreated": "Seuraava tiedosto on luotu palvelimellesi ja se sisältää ohjeita jatkoa varten:", + "ForgotPasswordFileExpiration": "Palautuksen PIN-koodi vanhenee {0}.", + "InvalidForgotPasswordPin": "Virheellinen tai vanhentunut PIN-koodi. Yritä uudelleen.", + "PasswordResetForUsers": "Salasanat on poistettu seuraavilta kättäjiltä. Kirjautuminen onnistuu nyt ilman salasanaa.", + "HeaderForgotPassword": "Unohditko salasanasi?", + "ForgotPasswordUsernameHelp": "Jätä tyhjäksi, jos et muista käyttäjätunnustasi.", + "HeaderPasswordReset": "Vaihda salasana", + "AttributeNew": "Uusi", + "Done": "Valmis", + "HeaderResetToDefault": "Palauta oletukset", + "Deinterlacing": "Lomituksen poisto", + "HeaderBurningInSubtitles": "Poltetaan tekstitykset", + "Premiere": "Ensi-ilta", + "LabelPinCode": "PIN-koodi", + "LabelLocalNetworkPinCode": "Lähiverkon PIN-koodi", + "LabelLocalNetworkPasswordMode": "Lähiverkon kirjautumistapa", + "RequirePasswordInLocalNetwork": "Vaadi salasana lähiverkossa normaalisti", + "NoPasswordInLocalNetwork": "Salasanaa ei tarvitse lähiverkossa", + "PinCodeInLocalNetwork": "Salli lähiverkossa numeerinen PIN-koodi", + "LocalNetworkPasswordModeHelp": "Valitse miten Emby-palvelimen kanssa samassa verkossa olevilta päätteiltä kirjaudutaan.", + "HeaderLocalNetworkAccess": "Käyttö paikallisessa lähiverkossa", + "Live": "Suora", + "Reset": "Palauta", + "Repeat": "Uudelleentoisto", + "Track": "Kappale", + "Tracks": "Kappaleet", + "HeaderCameraUpload": "Kameratallennus", + "TrackCount": "{0} kappaleet", + "ItemCount": "{0} kohdetta", + "NumberChannelsValue": "{0} kanavaa", + "HeaderLatestMusic": "Viimeisin musiikki", + "HeaderLatestAudioBooks": "Viimeisimmät äänikirjat", + "HeaderLatestDownloadedVideos": "Viimeisimmät videolataukset", + "HeaderRecentlyPlayed": "Toistettu hiljattain", + "Recent": "Uudet", + "HeaderFrequentlyPlayed": "Usein toistettu", + "HeaderMoreLikeThis": "Lisää samantapaisia", + "HeaderMoreLikeThisOnLiveTV": "Lisää samantapaisia televisiossa", + "OriginalAirDateValue": "Alunperin esitetty: {0}", + "EndsAtValue": "Päättyy klo {0}", + "Date": "Päiväys", + "AirDate": "Esityspäivä", + "Played": "Toistotila", + "Daily": "Päivittäin", + "Weekly": "Viikottain", + "RequireHashMatch": "Vaadi hajautusarvon täsmäys", + "RequireHashMatchHelp": "Hajautusarvon täsmäys suodattaa tekstitykset vain niihin, jotka on testattu juuri tämän videotiedoston kanssa. Valinnan poisto nostaa löydettyjen tekstitysten määrää, mutta samalla se nostaa myös epäsopivien ja väärien tekstitysten todennäköisyyttä.", + "SearchForForcedSubtitlesOnly": "Vain pakotetut tekstitykset", + "SearchForForcedSubtitlesOnlyHelp": "Pakotettujen tekstitysten käyttö rajoittaa hakutulokset vain vieraskielisiksi merkittyihin tuloksiin.", + "LastEpisodeDateAdded": "Viimeisimmän jakson päiväys lisätty", + "LastEpisodeDateAired": "Viimeisen jakson julkaisupäivä", + "LabelPlaystate": "Toistotila", + "Studio": "Studio", + "Tag": "Tunniste", + "EpisodeTitle": "Jakson nimi", + "Audio": "Ääni", + "Video": "Video", + "Subtitle": "Tekstitys", + "Image": "Kuva", + "CopyStream": "Kopioi alkuperäinen striimi", + "LabelAudioLayout": "Äänen asettelu", + "LabelAudioCodec": "Äänikoodekki", + "LabelAudioLanguage": "Äänen kieli", + "LabelSubtitleLanguage": "Tekstityksen kieli", + "LabelVideoCodec": "Videokoodekki", + "LabelSubtitleCodec": "Tekstityskoodekki", + "LabelParentalRating": "Ikäluokitus", + "BecauseYouLikeValue": "Koska pidät \"{0}\"", + "BecauseYouWatchedValue": "Koska katsoit \"{0}\"", + "DirectedByValue": "Ohjannut {0}", + "StarringValue": "Pääosassa {0}", + "Invitations": "Kutsut", + "ActorAsRole": "roolissa {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Ryhmittele kohteet kokoelmiin", + "GroupItemsIntoCollectionsHelp": "Ryhmittele kohteet perustuen kokoelmiin, joihin ne kuuluvat. Joidenkin suodattimien tai lajittelutapojen käyttö saattaa kytkeä tämän pois käytöstä automaattisesti.", + "GroupItemsIntoTags": "Ryhmittele kohteet tunnisteisiin", + "GroupItemsIntoTagsHelp": "Ryhmittele kohteet perustuen tunnisteisiin, joihin ne kuuluvat. Joidenkin suodattimien tai lajittelutapojen käyttö saattaa kytkeä tämän pois käytöstä automaattisesti.", + "User": "Käyttäjä", + "Access": "Oikeudet", + "Users": "Käyttäjät", + "Library": "Kirjasto", + "Devices": "Laitteet", + "Cancel": "Peruuta", + "Restart": "Käynnistä uudelleen", + "Shutdown": "Sulje", + "Logs": "Lokitiedot", + "Visibility": "Näkyvyys", + "Notifications": "Ilmoitukset", + "SendTestNotification": "Lähetä testi-ilmoitus", + "NotificationSent": "Ilmoitus lähetettiin", + "DeleteNotificationConfirmation": "Haluatko varmasti poistaa tämän ilmoituksen?", + "DeleteNotification": "Poista ilmoitus", + "AddNotification": "Lisää ilmoitus", + "EditNotification": "Muokkaa ilmoitusta", + "LimitUserEventsTo": "Rajoita käyttäjätapahtumien määräksi", + "LimitLibraryEventsTo": "Rajoita kirjastotapahtumien määrää", + "LimitDeviceEventsTo": "Rajoita laitetapahtumien määräksi", + "ForAdditionalNotificationOptions": "Palvelimen ylläpito voi asentaa ilmoituspalveluita Embyn {0}laajennushakemistosta{1}.", + "Plugins": "Laajennukset", + "Systems": "Järjestelmät", + "Server": "Palvelin", + "Dashboard": "Hallintapaneeli", + "PlayOnAnotherDevice": "Toista toisessa laitteessa", + "HeaderConnectionHelp": "Yhteysohjeita", + "AccessRestrictedTryAgainLater": "Pääsy on tällä hetkellä rajoitettu. Yritä myöhemmin uudelleen.", + "ButtonGotIt": "Selvä", + "RememberMe": "Muista minut", + "EmbyServer": "Emby-palvelin", + "ManageEmbyServer": "Hallitse palvelinta", + "ShutdownServer": "Sulje palvelin", + "RestartServer": "Käynnistä palvelin uudelleen", + "RecordingCancelled": "Tallennus peruttu", + "SeriesCancelled": "Sarja päättynyt", + "Recording": "Tallennus", + "SeriesRecording": "Sarjan tallennus", + "RecordingScheduled": "Tallennus ajoitettu", + "SeriesRecordingScheduled": "Sarjan tallennus ajoitettu", + "HeaderNewRecording": "Uusi tallenne", + "HeaderWakeServer": "Herätä palvelin", + "AttemptingWakeServer": "Yritetään herättää palvelin. Odota...", + "WakeServerSuccess": "Onnistui!", + "HeaderCustomizeHomeScreen": "Muokkaa kotinäyttöä", + "WakeServerError": "Wake-on-LAN (WoL) -paketit lähetettiin palvelinkoneellesi, mutta emme saaneet palvelimeen yhteyttä. Koneesi saattaa vaatia enemmän aikaa käynnistyäkseen tai palvelin ei ole käynnissä.", + "Days": "Päivät", + "Network": "Verkko", + "Networks": "Tuotantoyhtiöt", + "SortByValue": "Järjestä: {0}", + "HeaderSortBy": "Järjestä", + "HeaderPhotoAlbums": "Valokuva-albumit", + "Photos": "Valokuvat", + "HeaderAppearsOn": "Esiintyy", + "List": "Lista", + "HeaderRecordSeries": "Tallenna sarjat", + "HeaderCinemaMode": "Teatteritila", + "Conversions": "Muunnot", + "Downloads": "Lataukset", + "HeaderManageDownloads": "Hallitse latauksia", + "InternalStorage": "Sisäinen tallennustila", + "ExternalStorage": "Ulkoinen tallennustila", + "UploadToFollowingServers": "Lähetä palvelimille", + "UploadingNumItems": "Lähetetään {0}/{1}", + "DownloadNumItems": "Ladataan {0}/{1}", + "HeaderSampleRate": "Näytteenottotaajuus", + "HeaderReferenceFrames": "Viitekehykset", + "HeaderBitDepth": "Bittisyvyys", + "HeaderPixelFormat": "Pikselimuoto", + "Profile": "Profiili", + "Bitrate": "Bittinopeus", + "Expand": "Laajenna", + "Container": "Sisältötyyppi:", + "Format": "Formaatti", + "Path": "Polku:", + "Size": "Koko", + "Resolution": "Resoluutio", + "HeaderCodecTag": "Koodekin tunniste", + "Framerate": "Kuvataajuus", + "Interlaced": "Lomitettu", + "Anamorphic": "Anamorfinen", + "Level": "Taso", + "Timestamp": "Aikaleima", + "Language": "Kieli", + "Codec": "Koodekki", + "Stream": "Mediavirta", + "HeaderExtradata": "Lisätiedot", + "HeaderHardwareAcceleratedTranscoding": "Laitteistokiihdytetty transkoodaus", + "HeaderHardwareAcceleratedTranscodingDescription": "Hyödynnä palvelimen näytönohjainta. Emby tarjoaa markkinoiden kehittyneimmän ja nopeimman laitteistokiihdyksen.", + "HeaderOfflineDownloads": "Paikallinen media", + "AndMuchMoreExclamation": "Sekä paljon muuta!", + "HeaderOfflineDownloadsDescription": "Lataa media laitteisiin, jotta se on helposti käytettävissä myös ilman verkkoyhteyttä.", + "LiveTvFeatureDescription": "Suoratoista televisiolähetyksiä mihin tahansa Emby-sovellukseen käyttäen palvelinkoneessa olevaa, yhteensopivaa viritintä.", + "DvrFeatureDescription": "Aasta yksittäiset televisiotallennukset, sarjojen tallennukset, ja muuta Emby DVR -toiminnolla.", + "CinemaModeFeatureDescription": "Teatteritila tarjoaa sinulle aidon teatterikokemuksen trailereilla ja muulla mukautetulla sisällöllä ennen varsinaista elokuvaa.", + "HeaderFreeApps": "Ilmaiset Emby-sovellukset", + "FreeAppsFeatureDescription": "Nauti laitteidesi Emby sovellusten ilmaisesta käyttöoikeudesta.", + "HeaderBecomeProjectSupporter": "Tilaa Emby Premiere", + "HeaderViewServerInfo": "Näytä palvelimen tiedot", + "PlaybackTvModeRequiresEmbyPremiere": "Mediatoisto televisiotilassa vaatii aktiivisen {0}Emby Premiere -tilauksen{1}.", + "FeatureRequiresEmbyPremiere": "Tämä ominaisuus vaatii aktiivisen {0}Emby Premiere -tilauksen{1}.", + "HeaderConvertYourRecordings": "Muunna tallenteesi", + "Record": "Tallenna", + "Save": "Tallenna", + "Edit": "Muokkaa", + "HeaderSavePlaylist": "Tallenna toistolista", + "Latest": "Viimeisimmät", + "Download": "Lataa", + "Downloaded": "Ladatut", + "Converted": "Muunnettu", + "RemoveFromHistory": "Poista historiasta", + "ConfirmRemoveFromHistory": "Poistetaanko kohde historiasta?", + "Downloading": "Ladataan", + "Advanced": "Lisäasetukset", + "LinkedToEmbyConnect": "Liitetty Emby Connect -tiliin", + "Delete": "Poista", + "Both": "Molemmat", + "LabelChannelDisplay": "Kanavanäyttö", + "HeaderDeleteItem": "Poista kohde", + "HeaderDeleteUser": "Poista käyttäjä", + "DeleteItemConfirmation": "Oletko varma, että haluat poistaa kohteen \"{0}\"?", + "DeleteUserConfirmation": "Oletko varma, että haluat poistaa käyttäjän {0}?", + "DeleteUsersConfirmation": "Haluatko varmasti poistaa nämä {0} käyttäjää?", + "HeaderDeleteDevice": "Poista laite", + "DeleteDeviceConfirmation": "Oletko varma, että haluat poistaa sijainnin? Se palaa takaisin seuraavan kerran kun käyttäjä yhistää sieltä.", + "ConfirmDeleteItem": "Kohteen poisto poistaa sen sekä tiedostojärjestelmästä, että kirjastostasi.", + "FollowingFilesWillBeDeleted": "Seuraavat tiedostot ja kansiot poistetaan:", + "AreYouSureToContinue": "Haluatko varmasti jatkaa?", + "Refresh": "Päivitä", + "RefreshingMetadataDots": "Päivitetään metatietoja...", + "ScanningLibraryFilesDots": "Tarkistetaan kirjaston tiedostoja...", + "HeaderFavoritesThenByChannelNumber": "Suosikit, sitten kanavanumerolla", + "HeaderAddToCollection": "Lisää kokoelmaan", + "HeaderFavoritesThenByTitle": "Suosikit, sitten nimellä", + "HeaderFavoritesThenByDefault": "Suosikit, sitten kanavien oletusjärjestys", + "HeaderDefaultChannelOrder": "Kanavien oletusjärjestys", + "HeaderAddToFavorites": "Lisää suosikkeihin", + "HeaderRemoveFromFavorites": "Poista suosikeista", + "Favorited": "Lisätty suosikkeihin", + "Unfavorited": "Poistettu suosikeista", + "HeaderNewCollection": "Uusi kokoelma", + "HeaderNewPlaylist": "Uusi toistolista", + "AllCollections": "Kaikki kokoelmat", + "AllPlaylists": "Kaikki soittolistat", + "Create": "Luo", + "HeaderAddedToPlaylist": "Lisättiin toistolistalle", + "HeaderAddedToCollection": "Lisättiin kokoelmaan", + "OneItemAddedTo": "1 kohde lisättiin kohteeseen \"{0}\".", + "ItemsAddedTo": "{0} kohdetta lisättiin kohteeseen \"{1}\".", + "HeaderAddedToPlayQueue": "Lisättiin toistojonoon", + "HeaderPlayingNext": "Toistetaan seuraavaksi", + "Help": "Apua", + "HeaderGetHelp": "Hanki apua", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Työpöytä", + "Mobile": "Mobiililaite", + "Navigation": "Navigointi", + "HeaderVideoPlayback": "Toiston ohjaus", + "TV": "Televisio", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Kaudet", + "OneTrack": "1 kappale", + "OneSeason": "1 kausi", + "Libraries": "Kirjastot", + "NumberSeasonsValue": "{0} kautta", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Näyttökieli", + "LabelDisplayLanguageHelp": "Embyn kääntäminen on jatkuva projekti.", + "LearnHowYouCanContribute": "Katso, miten voit auttaa.", + "NewCollectionHelp": "Kokoelmien avulla voit luoda personoituja ryhmityksiä elokuvista ja muusta kirjaston sisällöstä.", + "SearchForCollectionInternetMetadata": "Hae metatietoja ja mediakuvituksia internetistä", + "DisplayMissingEpisodesWithinSeasons": "Näytä kausien puuttuvat jaksot", + "DisplayMissingEpisodesWithinSeasonsHelp": "Tämän täytyy olla valittuna myös palvelimella, televisiokirjastojen asetuksissa.", + "EnableThemeSongs": "Toista tunnusmusiikkia", + "EnableBackdrops": "Näytä taustakuvia", + "EnableThemeSongsHelp": "Kun aktivoitu, tunnusmusiikkia toistetaan taustalla kirjastoa selattaessa.", + "EnableBackdropsHelp": "Kun aktivoitu, taustakuvia näytetään joidenkin sivujen taustalla kirjastoa selattaessa.", + "EnableThemeVideos": "Toista tunnusvideoita", + "EnableThemeVideosHelp": "Kun aktivoitu, tunnusvideoita toistetaan taustalla kirjastoa selattaessa.", + "RunAtStartup": "Suorita kun laite käynnistyy", + "ServerStartup": "Palvelimen käynnistys", + "EmbyServerOnXHasStarted": "Emby-palvelin kohteessa \"{0}\" on käynnistynyt.", + "LabelScreensaver": "Näytönsäästäjä", + "LabelSoundEffects": "Äänitehosteet", + "LabelName": "Nimi", + "NewCollectionNameExample": "Esimerkki: Star Wars Collection", + "MessageItemsAdded": "Kohteet lisätty.", + "OptionNew": "Uusi...", + "LabelPlaylist": "Toistolista", + "AddToPlaylist": "Lisää toistolistalle", + "HeaderAddToPlaylist": "Lisää soittolistaan", + "Subtitles": "Tekstitykset", + "LabelTheme": "Teema", + "LabelSettingsTheme": "Hallintapaneelin teema", + "LabelThemeAccentColor": "Korostusväri", + "ThemeAccentColorDescription": "Määrittää tärkeiden kohteiden, kuvakkeiden ja tekstien värin.", + "SearchForSubtitles": "Etsi tekstityksiä", + "LabelLanguage": "Kieli", + "Search": "Etsi", + "NoSubtitleSearchResultsFound": "Tuloksia ei löytynyt. Oletko määrittänyt {0}tekstitysten latausasetukset{1}?", + "NoLyricsSearchResultsFound": "Tuloksia ei löytynyt. Oletko määrittänyt {0}sanoitusten latauksen{1}?", + "Lyrics": "Sanoitukset", + "SearchForLyrics": "Etsi sanoituksia", + "Finish": "Lopeta", + "File": "Tiedosto", + "Exit": "Poistu", + "Sleep": "Nuku", + "Setup": "Määritä", + "MessageAreYouSureDeleteSubtitles": "Oletko varma, että haluat poistaa tekstityksen?", + "ConfirmDeletion": "Vahvista poisto", + "MySubtitles": "Tekstitykset", + "MessageDownloadQueued": "Lataus lisätty jonoon.", + "HeaderEditSubtitles": "Muokkaa tekstityksiä", + "UnlockGuide": "Avausopas", + "HeaderRefreshMetadata": "Päivitä metatiedot", + "HeaderRefreshAllMetadata": "Päivitä kaikki metatiedot", + "ReplaceExistingImages": "Korvaa olemassa olevat kuvat", + "ReplaceExistingImagesHelp": "Kaikki nykyiset kuvat poistetaan ja ladataan uudet. Joissakin tapauksissa tämä voi aiheuttaa aiempaa pienemmän kuvien määrän.", + "ReplaceAllMetadata": "Korvaa kaikki metatiedot", + "SearchForMissingMetadata": "Etsi puuttuvia metatietoja", + "LabelRefreshMode": "Tilan päivitys", + "NoItemsFound": "Kohteita ei löytynyt", + "HeaderSaySomethingLike": "Sano jotain tällaista...", + "ButtonTryAgain": "Yritä uudelleen", + "HeaderYouSaid": "Sanoit...", + "MessageWeDidntRecognizeCommand": "Valitettavasti emme tunnistaneet tuota komentoa.", + "MessageIfYouBlockedVoice": "Jos estit sovellukselta äänen kaappauksen, tulee sinun muuttaa tämä asetus laitteesi asetuksista ennen kuin yrität uudestaan.", + "ValueDiscNumber": "Levy {0}", + "Unrated": "Rajoittamaton", + "Favorite": "Suosikki", + "Like": "Tykkää", + "Dislike": "Älä tykkää", + "RefreshDialogHelp": "Metatiedot päivitetään uusilla tiedoilla Embyn kirjastoille määritettyjen asetusten ja tietolähteiden mukaisesti.", + "Open": "Avaa", + "Play": "Toista", + "Pause": "Pysäytä", + "HeaderPlayQueue": "Toistojono", + "HeaderAddToPlayQueue": "Lisää toistojonoon", + "Shuffle": "Sekoitus", + "Identify": "Tunnista", + "HeaderRemoveIdentification": "Poista tunnistus", + "ResetMetadataConfirmation": "Haluatko varmasti poistaa kaikki metatiedot?", + "HeaderEditMetadata": "Muokkaa metatietoja", + "Convert": "Muunna", + "Resume": "Jatka", + "HeaderInstantMix": "Pikasekoitus", + "HeaderGoToItem": "Siirry kohteeseen", + "HeaderGoToSeason": "Siirry kauteen", + "HeaderGoToSeries": "Siirry sarjaan", + "HeaderGoToAlbum": "Siirry albumiin", + "HeaderGoToArtist": "Siirry esittäjään", + "HeaderPlayAll": "Kaikki", + "PictureInPicture": "Kuva-kuvassa", + "Fullscreen": "Koko näyttö", + "ExitFullscreen": "Poistu koko näytöstä", + "Rewind": "Kelaa taakse", + "FastForward": "Kelaa eteen", + "Remove": "Poista", + "Rename": "Nimeä uudelleen", + "Queue": "Toistojono", + "QueueAllFromHere": "Lisää kaikki toistojonoon tästä", + "PlayAllFromHere": "Toista kaikki tästä kohdasta", + "PlayFromBeginning": "Toista alusta", + "FromBeginning": "Alusta", + "ResumeAt": "Jatka toistoa kohdasta {0}", + "HeaderRemoveFromPlaylist": "Poista soittolistalta", + "HeaderRemoveFromPlayQueue": "Poista toistojonosta", + "HeaderRemoveFromCollection": "Poista kokoelmasta", + "Sort": "Järjestä", + "Trailer": "Traileri", + "SelectNone": "Valitse Ei mitään", + "SelectAll": "Valitse kaikki", + "HeaderMarkPlayed": "Merkitse toistetuksi", + "HeaderMarkUnplayed": "Merkitse toistamattomaksi", + "HeaderGroupVersions": "Ryhmittele versiot", + "PleaseSelectTwoItems": "Valitse vähintään kaksi kohdetta", + "HeaderConfirmRecordingCancellation": "Vahvista tallennuksen peruutus", + "MessageConfirmRecordingCancellation": "Peruutetaanko tallennus?", + "Album": "Albumien", + "AlbumArtist": "Albumin esittäjä", + "Error": "Virhe", + "VoiceInput": "Äänitulo", + "LabelContentType": "Sisältötyyppi", + "LabelPath": "Polku", + "Playlists": "Soittolistat", + "LabelTitle": "Nimi", + "LabelOriginalTitle": "Alkuperäinen nimi", + "LabelSortTitle": "Lajittelunimi", + "LabelDateAdded": "Lisäyspäivä", + "DateAdded": "Lisäyspäivä", + "DateModified": "Muokkauspäivä", + "DatePlayed": "Toistopäivä", + "DateLastActive": "Viimeksi aktiivinen", + "ConfigureDateAdded": "Määritä miten päivämäärä esitetään palvelimen hallintapaneelin Kirjasto-osiossa.", + "LabelStatus": "Tila", + "LabelArtistsHelp": "Erota useita puolipisteellä, ;", + "HeaderAlbumArtists": "Albumin esittäjät", + "LabelAlbumArtists": "Albumin esittäjät", + "LabelAlbum": "Albumi", + "Artist": "Esittäjien", + "Artists": "Esittäjät", + "ImdbRating": "IMDb-arvio", + "CommunityRating": "Yhteisön arvio", + "LabelCommunityRating": "Yhteisön arvio", + "LabelCriticRating": "Kriitikoiden arvio", + "CriticRating": "Kriitikoiden arvio", + "LabelWebsite": "Verkkosivusto", + "Tagline": "Iskulause", + "LabelOverview": "Yhteenveto", + "LabelShortOverview": "Lyhyt yhteenveto", + "LabelReleaseDate": "Julkaisupäivä", + "LabelPlaceOfBirth": "Syntymäpaikka", + "Aired": "Esitetty", + "LabelAirDays": "Esityspäivät", + "LabelAirTime": "Esitysaika", + "LabelRuntimeMinutes": "Kesto (minuuttia)", + "LabelCustomRating": "Oma ikäluokitus", + "LabelOriginalAspectRatio": "Alkuperäinen kuvasuhde", + "Label3DFormat": "3D-muoto", + "FormatValue": "Formaatti: {0}", + "DownloadsValue": "{0} latausta", + "HashMatch": "Hajautusarvon täsmäys", + "EnableExternalVideoPlayers": "Käytä ulkoisia videosoittimia", + "EnableExternalVideoPlayersHelp": "Erillisille soittimille näytetään valikko kun videon toisto aloitetaan.", + "HeaderSpecialEpisodeInfo": "Erikoisjakson tiedot", + "LabelAirsDuringSeason": "Esitetään kaudella", + "LabelAirsAfterSeason": "Esitetään kauden jälkeen", + "LabelAirsBeforeEpisode": "Esitetään ennen jaksoa", + "HeaderExternalIds": "Ulkoiset tietolähteet", + "HeaderDisplaySettings": "Näyttöasetukset", + "PlaylistOrder": "Toistolistan järjestys", + "CollectionOrder": "Kokoelman järjestys", + "LabelDisplayOrder": "Näyttöjärjestys", + "LabelFileOrder": "Tiedostojen järjestys", + "Display": "Näyttö", + "Countries": "Maat", + "Genres": "Tyylilajit", + "Studios": "Studiot", + "Tags": "Tunnisteet", + "Links": "Linkit", + "Movie": "Elokuva", + "Program": "Ohjelma", + "Channel": "Kanava", + "Episode": "Jakso", + "Season": "Kausien", + "HeaderMetadataSettings": "Metatietojen asetukset", + "People": "Henkilöt", + "Number": "Numero", + "Lock": "Lukitse", + "HeaderScreenLocked": "Näyttö lukittu", + "HeaderUnlockControls": "Avaa ohjauksen lukitus", + "HeaderTapToUnlock": "Avaa napauttamalla", + "LabelMetadataDownloadLanguage": "Ldattavien metatietojen ensisijainen kieli", + "LabelImageDownloadLanguage": "Ldattavien kuvitusten ensisijainen kieli", + "LabelLockItemToPreventChanges": "Lukitse tiedot ja estä automaattiset muutokset", + "LockThisField": "Lukitse kenttä estääksesi muutokset metatietojen päivityksen yhteydessä", + "MessageLeaveEmptyToInherit": "Kun tyhjä, peritään asetus ylemmältä tasolta tai käytetään globaalia oletusta.", + "LabelCountry": "Maa", + "LabelCertificationCountry": "Ikäluokituksen maa", + "CertificationCountryHelp": "Tämä määrittää käytettävän sisällönluokittelujärjestelmän.", + "LabelDynamicExternalId": "{0} ID", + "LabelBirthYear": "Syntymävuosi", + "LabelBirthDate": "Syntymäpäivä", + "LabelDeathDate": "Kuolinpäivä", + "LabelEndDate": "Päättymispäivä", + "LabelSeasonNumber": "Kauden numero", + "LabelEpisodeNumber": "Jakson numero", + "LabelTrackNumber": "Kappaleen numero", + "LabelNumber": "Numero", + "LabelDiscNumber": "Levyn numero", + "LabelParentNumber": "Isännän numero", + "SortName": "Lajittelunimi", + "OriginalTitle": "Alkuperäinen nimi", + "ReleaseDate": "Julkaisupäivä", + "Continuing": "Jatkuu", + "Ended": "Päättynyt", + "HeaderEnabledFields": "Aktiiviset kentät", + "HeaderEnabledFieldsHelp": "Lukitse kenttä poistamalla sen valinta ja estääksesi sisällön muutokset.", + "Backdrops": "Taustat", + "Images": "Kuvat", + "Runtime": "Kesto", + "ProductionLocations": "Tuotantosijainnit", + "BirthLocation": "Syntymäpaikka", + "ParentalRating": "Ikärajaluokitus", + "PlayCount": "Toistokerrat", + "Name": "Nimi", + "Overview": "Yhteenveto", + "LabelType": "Tyyppi", + "LabelPersonRole": "Rooli", + "LabelPersonRoleHelp": "Esimerkki: Jäätelöauton kuljettaja", + "Actor": "Näyttelijä", + "Composers": "Säveltäjät", + "Composer": "Säveltäjä", + "Director": "Ohjaaja", + "GuestStar": "Vieraileva tähti", + "Producer": "Tuottaja", + "Writer": "Kirjoittaja", + "MessageNoSyncJobsFound": "Latauksia ei löytynyt. Luo lataustehtävä käyttäen sovelluksen latauspainikkeita.", + "MessageNoDownloadsFound": "Ei yhteydetöntä toistoa varten ladattuja tiedostoja. Lataa mediasi yhteydetöntä käyttöä varten klikkaamalla sovellusten latauspainikkeita.", + "InstallingPackage": "Asennetaan {0}", + "PackageInstallCompleted": "{0} asennus on valmis.", + "PackageInstallFailed": "{0} asennus epäonnistui.", + "PackageInstallCancelled": "{0} asennus peruttu.", + "SeriesYearToPresent": "{0} - nykyhetki", + "OneDevice": "1 laite", + "DeviceCountValue": "{0} laitetta", + "OneLog": "1 loki", + "LogCountValue": "{0} lokia", + "OneVote": "1 ääni", + "VoteCountValue": "{0} ääntä", + "OneLike": "1 tykkäys", + "LikeCountValue": "{0} tykkäystä", + "OneUser": "1 käyttäjä", + "UserCountValue": "{0} käyttäjää", + "OneLibrary": "1 kirjasto", + "LibraryCountValue": "{0} kirjastoa", + "ValueOneItem": "1 kohde", + "ValueOneEpisode": "1 jakso", + "ValueEpisodeCount": "{0} jaksoa", + "Albums": "Albumit", + "Song": "Kappaleiden", + "Songs": "Kappaleet", + "Authors": "Tekijät", + "Books": "Kirjat", + "AudioBooks": "Äänikirjat", + "HeaderAudioBooks": "Äänikirjat", + "HeaderAudioBook": "Äänikirja", + "HeaderIdentifyItemHelp": "Syötä yksi tai useampi hakukriteeri. Poista kriteeri lisätäksesi hakutuloksia.", + "PleaseEnterNameOrId": "Lisää nimi tai ulkoinen ID-tunniste", + "MessageItemSaved": "Kohde tallennettu.", + "SearchResults": "Hakutulokset", + "ServerNameIsRestarting": "Palvelin - {0} - Käynnistyy uudelleen.", + "ServerNameIsShuttingDown": "Palvelin - {0} - Sammuu.", + "HeaderDeleteItems": "Poista kohteet", + "ConfirmDeleteItems": "Kohteiden poisto poistaa ne sekä tiedostojärjestelmästä, että kirjastostasi.", + "PleaseRestartServerName": "Käynnistä Emby-palvelin kohteessa {0} uudelleen", + "ConvertingDots": "Muunnetaan...", + "LabelSyncNoTargetsHelp": "Näyttää siltä, ettei sinulla ole sovelluksia, jotka tukevat yhteydetöntä latausta.", + "DownloadingDots": "Ladataan...", + "LearnMore": "Lue lisää", + "LabelBitrateMbps": "Bittinopeus (Mbps)", + "ConvertUnwatchedVideosOnly": "Muunna vain toistamattomat videot", + "SyncUnwatchedVideosOnly": "Lataa vain toistamattomat videot", + "ConvertUnwatchedVideosOnlyHelp": "Muunnetaan vain videot, joita ei ole toistettu.", + "SyncUnwatchedVideosOnlyHelp": "Vain videot, joita ei ole merkitty täysin toistetuksi ladataan ja poistetaan laitteelta kun ne on täysin toistettu.", + "AutomaticallySyncNewContent": "Lataa uusi sisältö automaattisesti", + "AutomaticallySyncNewContentHelp": "Tähän kansioon lisätty sisältö ladataan automaattisesti laitteeseen.", + "AutomaticallyConvertNewContent": "Muunna uusi sisältö automaattisesti", + "AutomaticallyConvertNewContentHelp": "Tähän kansioon lisätty sisältö muunnetaan automaattisesti.", + "LabelItemLimit": "Kohteiden raja", + "ConvertItemLimitHelp": "Aseta valinnainen raja muunnettavien kohteiden määrälle.", + "DownloadItemLimitHelp": "Aseta valinnainen raja ladattavien kohteiden määrälle.", + "PleaseSelectDeviceToSyncTo": "Valitse laite, jolle ladataan.", + "Screenshots": "Kuvakaappaukset", + "MoveRight": "Siirrä oikealle", + "MoveLeft": "Siirrä vasemmalle", + "HeaderUploadNewImage": "Lataa uusi kuva", + "HeaderDeleteImage": "Poista kuva", + "ConfirmDeleteImage": "Haluatko poistaa kuvan?", + "HeaderEditImages": "Muokkaa kuvia", + "Settings": "Asetukset", + "ShowIndicatorsFor": "Näytä ilmaisimet:", + "Episodes": "Jaksot", + "Programs": "Ohjelmat", + "HeaderCastCrew": "Näyttelijät ja tiimi", + "DvrSubscriptionRequired": "Embyn televisiolähetykset ja tallennus vaativat aktiivisen {0} Emby Premiere -tilauksen {1}.", + "HeaderCancelRecording": "Peruuta tallennus", + "HeaderKeepRecording": "Jatka tallennusta", + "HeaderCancelSeries": "Peruuta sarja", + "HeaderKeepSeries": "Pidä sarja", + "HeaderLearnMore": "Lue lisää", + "SeriesSettings": "Sarjan asetukset", + "HeaderRecordingOptions": "Tallennusvalinnat", + "HeaderDoNotRecord": "Älä tallenna", + "HeaderSeriesOptions": "Sarjan valinnat", + "Layout": "Asetelma", + "Channels": "Kanavat", + "ChannelNameOnly": "Vain kanava {0}", + "Anytime": "Koska tahansa", + "AnyLanguage": "Mikä tahansa", + "AroundTime": "Ympäri {0}", + "HeaderLatestMovies": "Viimeisimmät elokuvat", + "All": "Kaikki", + "Stop": "Lopeta", + "AllChannels": "Kaikki kanavat", + "NewEpisodesOnly": "Vain uudet jaksot", + "AllEpisodes": "Kaikki jaksot", + "LabelStartWhenPossible": "Aloita kun mahdollista", + "LabelStopWhenPossible": "Lopeta kun mahdollista", + "MinutesBefore": "minuuttia ennen", + "MinutesAfter": "minuuttia jälkeen", + "SkipEpisodesAlreadyInMyLibrary": "Älä tallenna jaksoja, jotka ovat jo kirjastossani", + "SkipEpisodesAlreadyInMyLibraryHelp": "Jaksoja verrataan käyttäen kauden ja jakson numeroita, jos ne ovat saatavilla.", + "LabelKeepUpTo": "Säilytä", + "AsManyAsPossible": "Niin monta kuin mahdollista", + "DefaultErrorMessage": "Pyynnön käsittelyssä ilmeni virhe. Yritä myöhemmin uudelleen.", + "UntilIDelete": "Kunnes poistan", + "UntilSpaceNeeded": "Kunnes levytilaa tarvitaan", + "Categories": "Kategoriat", + "Sports": "Urheilu", + "News": "Uutiset", + "Movies": "Elokuvat", + "Music": "Musiikki", + "Kids": "Lapset", + "MoreFromValue": "Lisää: {0}", + "DiedValue": "Kuoli: {0}", + "BornValue": "Syntymäaika: {0}", + "EnableColorCodedBackgrounds": "Käytä sarjoille niiden kategorioihin perustuvia taustavärejä", + "SortChannelsBy": "Järjestä kanavat", + "ChannelNumber": "Kanavan numero", + "HeaderBenefitsEmbyPremiere": "Emby Premier -tilauksen edut", + "ThankYouForTryingEnjoyOneMinute": "Nauti toistosta yksi minuutti. Kiitos kun kokeilit Embyä.", + "HeaderTryPlayback": "Kokeile toistoa", + "HowDidYouPay": "Kuinka sinä maksoit?", + "IHaveEmbyPremiere": "Minulla on Emby Premiere -tilaus", + "IPurchasedThisApp": "Ostin tämän sovelluksen", + "ButtonRestorePreviousPurchase": "Palauta osto", + "ButtonUnlockWithPurchase": "Avaa lukitus ostolla", + "ButtonUnlockPrice": "Avaa {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere -tilaus kuukausilaskutuksella {0}", + "HeaderAlreadyPaid": "Maksoitko jo?", + "ButtonPlayOneMinute": "Toista yksi minuutti", + "PlaceFavoriteChannelsAtBeginning": "Sijoita suosikkikanavat alkuun", + "HeaderUnlockFeature": "Avaa ominaisuus", + "MessageDidYouKnowCinemaMode": "Tiesitkö, että Emby Premierellä voit parantaa katselukokemustasi lisäominaisuuksilla kuten teatteritilalla?", + "HeaderPlayMyMedia": "Toista omaa mediaa", + "HeaderDiscoverEmbyPremiere": "Tutustu Emby Premier -tilaukseen", + "HeaderNowPlaying": "Toistetaan nyt", + "Items": "Kohteet", + "AppName": "Sovelluksen nimi", + "OneChannel": "Yksi kanava", + "ConfirmRemoveDownload": "Poista lataus?", + "ConfirmRemoveItem": "Poistetaanko kohde?", + "RemoveDownload": "Poista lataus", + "ConfirmCancelConversion": "Perutaanko muunto?", + "CancelConversion": "Peru muunto", + "KeepDownload": "Säilytä lataus", + "AddedOnValue": "Lisätty {0}", + "RemovingFromDevice": "Poistetaan laitteesta", + "KeepOnDevice": "Pidä laitteessa", + "CancelDownload": "Peru lataus", + "SyncJobItemStatusReadyToTransfer": "Valmis siirtoon", + "SyncJobItemStatusSyncedMarkForRemoval": "Poistetaan laitteesta", + "SyncJobItemStatusQueued": "Jonossa", + "SyncJobItemStatusConverting": "Muunnetaan", + "SyncJobItemStatusTransferring": "Siirretään", + "SyncJobItemStatusSynced": "Ladataan", + "Failed": "Epäonnistui", + "SyncJobItemStatusRemovedFromDevice": "Poistettu laitteesta", + "Cancelled": "Peruttu", + "Retry": "Uudelleen", + "Continue": "Jatka", + "ContinueInSecondsValue": "Jatka {0} sekunnin kuluttua.", + "HeaderRemoteControl": "Kauko-ohjaus", + "Disconnect": "Katkaise yhteys", + "EnableDisplayMirroring": "Käytä näytön peilausta", + "RemoteAccess": "Etäyhteys", + "HeaderPlayOn": "Toista soittimessa", + "Quality": "Laatu", + "Auto": "Automaattinen", + "AndroidUnlockRestoreHelp": "Palauttaaksesi edellisen ostosi, varmista, että olet kirjautunut laitteeseen samalla Google (tai Amazon) tunnuksella, jolla ostos on alunperin tehty. Varmista, että sovelluskauppa on toiminnassa ja etteivät ikärajoitukset vaikuta sen toimintaan. Varmista myös, että palvelimen internet-yhteys toimii. Sinun täytyy tehdä tämä vain kerran palauttaaksesi aiemman ostosi.", + "HeaderAspectRatio": "Kuvasuhde", + "Original": "Alkuperäinen", + "Fill": "Täytä", + "Cover": "Kansi", + "MessageNoServersAvailableToConnect": "Ei palvelimia, joihin yhdistää. Jos sinut on kutsuttu jakamaan palvelin, varmista, että hyväksyt kutsun alta ennen kuin klikkaat viestissä olevaa linkkiä.", + "MessagePlayAccessRestricted": "Tämän sisällön toistoa on rajoitettu. Ota yhteyttä palvelimen ylläpitoon saadaksesi lisätietoja.", + "Accept": "Hyväksy", + "Reject": "Kieltäydy", + "Connect": "Yhdistä", + "HeaderMyMedia": "Oma media", + "HeaderMyMediaSmall": "Oma media (pieni)", + "LatestFromLibrary": "Viimeisimmät: {0}", + "HeaderLatestEpisodes": "Viimeisimmät jaksot", + "ContinuePlaying": "Jatka toistoa", + "ContinueWatching": "Jatka katselua", + "HeaderLatestChannelMedia": "Viimeisin kanavasisältö", + "HeaderContinueWatching": "Jatka katselua", + "HeaderContinueListening": "Jatka kuuntelua", + "HeaderActiveRecordings": "Aktiiviset tallennukset", + "HeaderLatestRecordings": "Viimeisimmät tallennukset", + "LabelConvertTo": "Muunna kohteeseen", + "LabelDownloadTo": "Lataa kohteeseen", + "HeaderDownloadToDots": "Lataa kohteeseen...", + "Next": "Seuraava", + "LabelSource": "Lähde", + "VersionNumber": "Versio {0}", + "HeaderAllLanguages": "Kaikki kielet", + "Previous": "Edellinen", + "HeaderNextUp": "Seuraavaksi", + "HeaderPlayNextUp": "Toista seuraava", + "HeaderLatestFrom": "Viimeisin lähteestä {0}", + "LabelHomeScreenSectionValue": "Kotinäytön osio {0}", + "PasswordResetComplete": "Salasana on palauttettu.", + "PasswordSaved": "Salasana tallennettu.", + "SettingsSaved": "Asetukset tallennettu.", + "Upcoming": "Tulevat", + "HeaderSelectImageFile": "Valitse kuvatiedosto", + "None": "Ei mitään", + "More": "Enemmän", + "Up": "Ylös", + "Down": "Alas", + "Home": "Koti", + "Back": "Takaisin", + "Random": "Satunnainen", + "Playback": "Toisto", + "Favorites": "Suosikit", + "HeaderHomeScreen": "Kotinäyttö", + "HeaderLatestChannelItems": "Viimeisin kanavasisältö", + "HeaderLibraryOrder": "Kirjaston järjestys", + "HeaderOnNow": "Nyt käynnisssä", + "HeaderForKids": "Lapsille", + "HeaderPlaybackError": "Toistovirhe", + "PlaybackErrorNotAllowed": "Sinulla ei ole oikeutta toistaa tätä sisältöä. Ota yhteyttä järjestelmäsi ylläpitoon saadaksesi lisätietoja.", + "RateLimitExceeded": "Tilisi on ylittänyt sinulle palvelimella asetetun suoratoiston maksimimäärän. Ota yhteyttä palvelimen ylläpitoon saadaksesi lisätietoja.", + "PlaybackErrorNoCompatibleStream": "Yhteensopivia mediavirtoja ei ole saatavilla. Yritä uudelleen myöhemmin tai ota yhteyttä järjestelmäsi ylläpitoon saadaksesi lisätietoja.", + "PlaybackErrorPlaceHolder": "Aseta asemaan levy toistaaksesi tämän videon.", + "PlaybackErrorNoPlayableItems": "Toistettavia kohteita ei löytynyt. Yritätkö toistaa tyhjää kansiota?", + "Guide": "TV-opas", + "Games": "Pelit", + "GameSystem": "Pelijärjestelmä", + "Suggestions": "Ehdotukset", + "HeaderFavoriteChannels": "Suosikkikanavat", + "HeaderFavoriteCollections": "Suosikkikokoelmat", + "HeaderFavoritePlaylists": "Suosikkisoittolistat", + "Collection": "Kokoelma", + "Collections": "Kokoelmat", + "LabelSelectFolderGroups": "Ryhmittele sisältö automaattisesti seuraavista kansioista näkymiin, kuten \"Elokuvat\", \"Musiikki\" ja \"Televisio\":", + "LabelSelectFolderGroupsHelp": "Ei valitut kansiot näytetään erillään, omassa näkymässään.", + "Mute": "Mykistä", + "Unmute": "Poista mykistys", + "Folder": "Kansio", + "Folders": "Kansiot", + "FileName": "Tiedostonimi", + "DisplayInOtherHomeScreenSections": "Näytä kotinäytön osioissa, kuten \"Viimeisin media\" ja \"Jatka katselua\"", + "DisplayInMyMedia": "Näytä kotinäytössä", + "Shows": "Sarjat", + "MoviesAndShows": "Elokuvat ja sarjat", + "HeaderMusicVideo": "Musiikkivideoiden", + "HeaderMusicVideos": "Musiikkivideot", + "MusicVideos": "Musiikkivideot", + "Videos": "Videot", + "MixedContent": "Sekalainen sisältö", + "HomeVideos": "Kotivideot", + "HomeVideosAndPhotos": "Kotivideot & valokuvat", + "TVShows": "Sarjat", + "HeaderLibraryFolders": "Kirjaston kansiot", + "HeaderTermsOfPurchase": "Ostoehdot", + "PrivacyPolicy": "Tietosuojakäytäntö", + "TermsOfUse": "Käyttöehdot", + "HeaderRepeatMode": "Uudelleentoiston tila", + "HeaderToneMapping": "Sävykartoitus", + "RepeatOne": "Uudelleentoista yksi", + "RepeatAll": "Uudelleentoista kaikki", + "LabelDefaultScreen": "Oletusnäyttö", + "ConfirmEndPlayerSession": "Haluatko sulkea Embyn - {0}?", + "Yesterday": "Eilen", + "Yes": "Kyllä", + "No": "Ei", + "HeaderScanLibraryFiles": "Päivitä kirjasto", + "LiveTV": "Televisio", + "Schedule": "Aikataulu", + "Recordings": "Tallenteet", + "ScanForNewAndUpdatedFiles": "Skannaa uusia ja päivitettyjä tiedostoja", + "NewVersionOfXAvailableForY": "{0} on saatavilla kohteeseen {1}", + "DirectStreamHelp1": "Media on yhteensopiva resoluution ja tyypin (H.264, AC3, jne.) osalta, muttei sisältötyypin (.mkv, .avi, .wmv, jne.) osalta. Video paketoidaan uudelleen lennossa ennen sen välitystä soittimelle.", + "DirectStreamHelp2": "Kun suoratoistetaan ilman muunnosta, vaatii toisto vähemmän suorituskykyä laadun heikentymättä.", + "MediaIsBeingConverted": "Media muunnetaan formaattiin, joka on yhteensopiva soittimen kanssa.", + "StatsForNerds": "Statseja nörteille", + "HeaderHardwareAcceleratedDecoding": "Laitteistokiihdytetty dekoodaus", + "HeaderHardwareAcceleratedEncoding": "Laitteistokiihdytetty enkoodaus", + "HeaderDirectPlay": "Direct-toisto", + "DirectPlaying": "Direct-toisto", + "DirectStreaming": "Direct-suoratoisto", + "Transcode": "Transkoodaa", + "Transcoding": "Transkoodaus", + "ContainerBitrateExceedsLimit": "Median bittinopeutta lasketaan laatuasetuksen johdosta", + "VideoCodecNotSupported": "Muunnetaan video yhteensopivalle koodekille", + "AudioCodecNotSupported": "Muunnetaan ääni yhteensopivalle koodekille", + "SubtitleCodecNotSupported": "Upotetaan tekstitykset suoraan videoon", + "DirectPlayError": "Palaudutaan toistovirheestä", + "ContainerNotSupported": "Muunnetaan säiliömuoto yhteensopivaksi", + "VideoLevelNotSupported": "Muunnetaan videotaso yhteensopivaksi", + "AudioBitrateNotSupported": "Muunnetaan äänen bittionpeus yhteensopivaksi", + "AudioChannelsNotSupported": "Muunnetaan äänikanavien määrä yhteensopivaksi", + "VideoResolutionNotSupported": "Muunnetaan videon resoluutiota yhteensopivaksi", + "AudioProfileNotSupported": "Muunnetaan äänen profiili yhteensopivaksi", + "AudioSampleRateNotSupported": "Muunnetaan äänen näytteenottotaajuus yhteensopivaksi", + "AnamorphicVideoNotSupported": "Anamorfista videota ei tueta", + "InterlacedVideoNotSupported": "Poistetaan lomitus videosta", + "SecondaryAudioNotSupported": "Valitaan toinen ääniraita", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "Emby Connect -tilin poistossa ilmeni ongelma. Varmista, että palvelimen internet-yhteys toimii.", + "HeaderEmbyAccountRemoved": "Emby Connect -tili on poistettu", + "MessageEmbyAccontRemoved": "Emby Connect -tili on poistettu tältä käyttäjältä", + "HeaderInvitationSent": "Kutsu lähetetty", + "Offline": "Ei yhteyttä", + "HeaderSignUp": "Rekisteröidy", + "ServerDownloadMessage": "Ladataksesi ja asentaaksesi ilmaisen Emby-palvelimen, vieraile osoitteessa {0}", + "ServerDownloadMessageWithoutLink": "Ladataksesi ja asentaaksesi ilmaisen Emby-palvelimen, vieraile Embyn verkkosivuilla.", + "MessageInvitationSentToUser": "Sähköposti on lähetetty käyttäjälle {0}, sisältäen jakokutsusi hyväksyntäpyynnön.", + "MessageInvitationSentToNewUser": "Sähköposti on lähetetty käyttäjälle {0}, sisältäen kutsun Emby Connect -tilin luontiin.", + "GuestUserNotFound": "Käyttäjää ei löytynyt. Varmista, että nimi on oikein ja yritä uudelleen tai yritä syöttää heidän sähköpostiosoitteensa.", + "ErrorReachingEmbyConnect": "Emby Connect -palvelimen tavoittamissessa ilmeni ongelma. Varmista, että palvelimen internet-yhteys toimii ja yritä uudelleen.", + "ErrorAddingEmbyConnectAccount1": "Emby Connect -tilin lisäyksessä ilmeni ongelma. Oletko luonut Emby Connect -tilin? Luo tili osoitteessa {0}.", + "ErrorAddingEmbyConnectAccount2": "Jos sinulla on vielä ongelmia, lähetä sähköposti osoitteeseen {0} osoitteesta, jota käytit tilin luonnissa.", + "ErrorAddingGuestAccount1": "Emby Connect -tilin lisäyksessä havaittiin ongelma. Onko vieraasi luonut Emby Connect -tilin? He voivat tehdä sen täällä {0}.", + "ErrorAddingGuestAccount2": "Jos sinulla on vielä ongelmia, lähetä sähköposti osoitteeseen {0} ja sisällytä viestiin sekä sinun, että heidän sähköpostiosoitteet.", + "MessageEmbyAccountAdded": "Emby Connect -tili on lisätty tälle käyttäjälle.", + "MessagePendingEmbyAccountAdded": "Emby Connect -tili on lisätty tälle käyttäjälle. Tilin omistajalle lähetetään sähköposti, jonka sisältämää linkkiä klikkaamalla hänen on vahvistettava kutsu.", + "HeaderEmbyAccountAdded": "Emby Connect -tili on lisätty", + "Skip": "Ohita", + "HeaderAdditionalParts": "Lisäosat", + "ButtonGenerateNewPin": "Luo uusi PIN-koodi", + "ConnectLoginHelp1": "Emby Connect -tilin avulla pääset palvelimellesi helposti missä tahansa oletkaan ja voit jakaa palvelimesi perheesi ja kavereidesi kanssa.", + "CreatePinErrorMessage": "PIN-koodin luonnissa tapahtui virhe. Yritä uudelleen painamalla \"Luo uusi PIN-koodi\".", + "PinExpiredMessage": "PIN-koodi on vanhentunut. Luo uusi koodi painamalla \"Luo uusi PIN-koodi\".", + "ConnectPinCodeHeader": "Kirjautuaksesi Emby Connect -palveluun, avaa osoite {0} mobiililaiteella tai tietokoneella ja syötä seuraava PIN-koodi:", + "LabelSubtitlePlaybackMode": "Tekstitystila", + "ErrorDeletingItem": "Palvelimella tapahtui virhe kohdetta poistettaessa. Tarkista, että palvelimella on kirjoitusoikeudet mediakansioihin ja yritä uudelleen.", + "NoSubtitles": "Ei tekstityksiä", + "Default": "Oletus", + "Absolute": "Absoluuttinen", + "Smart": "Älykäs", + "Small": "Pieni", + "Smaller": "Pienempi", + "Medium": "Keskikoko", + "Large": "Suuri", + "Larger": "Suurempi", + "ExtraLarge": "Erittäin suuri", + "ExtraSmall": "Erittäin pieni", + "Forced": "Pakotettu", + "External": "Ulkoinen", + "HeaderEmbeddedTitle": "Upotettu nimi", + "OnlyForcedSubtitles": "Vain pakotetut tekstitykset", + "AlwaysPlaySubtitles": "Toista tekstitykset aina", + "DefaultSubtitlesHelp": "Tekstitykset ladataan perustuen metatietojen sisältöön. Kieliasetukset huomioidaan, kun useita vaihtoehtoja on saatavilla.", + "SmartSubtitlesHelp": "Kieliasetuksia vastaava tekstitys ladataan, kun ääniraita on vieraskielinen.", + "HeaderSubtitleSettings": "Tekstitysasetukset", + "HeaderSubtitleAppearance": "Tekstityksen ulkoasu", + "OnlyForcedSubtitlesHelp": "Vain pakotetut tekstitykset ladataan.", + "AutoSelectHearingImpairedHelp": "Kieliasetuksia vastaavat tekstitykset ladataan painottaen kuulorajoitteisille (SDH) tarkoitettuja ääniraitoja.", + "AlwaysPlaySubtitlesHelp": "Kieliasetuksia vastaava tekstitys ladataan riippumatta ääniraidan kielestä.", + "NoSubtitlesHelp": "Oletusarvoisesti tekstitystä ei käytetä, mutta ne voidaan kuitenkin ottaa käyttöön manuaalisesti toiston aikana.", + "LabelPreferredSubtitleLanguage": "Ensisijainen tekstityskieli", + "LabelTextSize": "Tekstin koko", + "TheseSettingsAffectSubtitlesOnThisDevice": "Nämä asetukset vaikuttavat tekstityksiin tässä laitteessa", + "LabelDropShadow": "Varjo", + "LabelTextBackgroundColor": "Tekstin taustaväri", + "LabelWindowBackgroundColor": "Tekstin taustaväri", + "LabelFont": "Fontti", + "LabelTextColor": "Tekstin väri", + "LabelBackgroundColor": "Taustaväri", + "LabelBackgroundOpacity": "Taustan näkyvyys", + "Raised": "Korotettu", + "Depressed": "Upotettu", + "Uniform": "Tasavahva", + "DropShadow": "Varjo", + "SmallCaps": "Kapiteelit", + "SubtitleAppearanceSettingsDisclaimer": "Nämä asetukset eivät vaikuta graafisiin tekstityksiin (PGS, DVD, jne.) tai tekstityksiin, jotka sisältävätä omia tyylejä (ASS/SSA).", + "Normal": "Normaali", + "HeaderWaitingForWifi": "Odotetaan Wi-Fi -yhteyttä", + "WifiRequiredToDownload": "Wi-Fi -yhteys vaaditaan latauksen jatkamiseksi.", + "DownloadOnlyOnWifi": "Lataa vain Wi-Fi -yhteydellä", + "LabelMusicDownloadQuality": "Musiikin latauslaatu", + "MusicDownloadQualityHelp": "Palvelin muuntaa suuremman bittinopeuden äänitiedostot. Valitse korkeampi arvo parempaa laatua varten tai pienempi arvo säästääksesi levytilaa.", + "HeaderDownloadSettings": "Latausasetukset", + "LabelDownloadLocation": "Lataussijainti", + "BrowseForFolder": "Selaa kansiota", + "Unlimited": "Rajoittamaton", + "NoLimit": "Ei rajoitusta", + "Hide": "Piilota", + "HeaderKeepWatching": "Jatka katselua", + "HeaderNextEpisode": "Seuraava jakso", + "AudioBitDepthNotSupported": "Muunnetaan äänen bittisyvyys yhteensopivaksi", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Muunnetaan videon profiili yhteensopivaksi", + "VideoFramerateNotSupported": "Muunnetaan videon kuvataajuus yhteensopivaksi", + "VideoBitDepthNotSupported": "Muunnetaan videon bittisyvyys yhteensopivaksi", + "RefFramesNotSupported": "Muunnetaan videon viitekehysten määrä yhteensopivaksi", + "ErrorConnectServerUnreachable": "Pyydetyn toiminnon suorittamisessa ilmeni ongelma. Palvelimesi ei voinut yhdistää Emby Connect -palvelimeemme {0}. Varmista, että palvelimen internet-yhteys toimii ja ettei palomuuri ja/tai tietoturvaohjelma estä tiedonsiirtoa.", + "HeaderStopRecording": "Lopeta tallennus", + "ManageRecording": "Hallitse tallennetta", + "LabelDropImageHere": "Pudota kuva tähän tai klikkaa selataksesi.", + "MessageFileReadError": "Virhe tiedoston lukemisessa. Yritä uudelleen.", + "Browse": "Selaa", + "HeaderUploadImage": "Lähetä kuva", + "HeaderAddUpdateImage": "Lisää/Poista kuva", + "HeaderShowFields": "Näytettävät tiedot", + "LabelView": "Näkymä", + "LabelImageType": "Kuvan tyyppi", + "Upload": "Lähetä", + "Primary": "Juliste", + "PrimaryImageBlur": "Pääkuvan sumennus", + "Art": "Taide", + "Backdrop": "Tausta", + "Banner": "Banneri", + "Box": "Kotelo", + "BoxRear": "Kotelo (takaa)", + "Disc": "Levy", + "Logo": "Logo", + "LogoDark": "Logo (tumma versio)", + "LogoLight": "Logo (vaalea versio)", + "LogoLightColor": "Logo (värikäs vaalea)", + "Menu": "Valikko", + "Screenshot": "Kuvakaappaus", + "Thumb": "Pienkuva", + "HeaderAudioSettings": "Ääniasetukset", + "LabelAudioLanguagePreference": "Äänen ensisijainen kieli", + "LabelPlayDefaultAudioTrack": "Toista oletusääniraita kielestä riippumatta", + "HeaderVideoQuality": "Videon laatu", + "CinemaModeConfigurationHelp": "Teatteritila tarjoaa sinulle aidon teatterikokemuksen trailereilla ja muulla mukautetulla sisällöllä ennen varsinaista elokuvaa.", + "ShowUpNextPreview": "Näyt seuraavan toiston esikatselu", + "ShowUpNextPreviewHelp": "Näytä nykyisen toiston lähestyessä loppua tietoja seuraavaksi toistettavasta kohteesta.", + "PlayNextEpisodeAutomatically": "Toista seuraava jakso automaattisesti", + "LabelMaxChromecastBitrate": "Chromecast-suoratoiston laatu", + "LabelSkipBackLength": "Taaksekelauksen painalluksen kesto", + "LabelSkipForwardLength": "Eteen kelauksen painalluksen kesto", + "EnableCinemaMode": "Teatteritila", + "LabelInternetQuality": "Toiston laatu etäverkossa", + "LabelCellularQuality": "Toiston laatu etäverkossa (mobiiliyhteydellä)", + "HeaderMusicQuality": "Musiikin laatu", + "LabelHomeNetworkQuality": "Toiston laatu lähiverkossa", + "HeaderLatestMedia": "Viimeisin media", + "HeaderRestartingEmbyServer": "Palvelin käynnistyy uudelleen", + "RestartPleaseWaitMessage": "Odota, että palvelin käynnistyy uudelleen. Tämä saattaa kestää hetken.", + "HeaderPlayNext": "Seuraava", + "AutoBasedOnLanguageSetting": "Automaattinen (laitteen oletus)", + "SameAsMainTheme": "Seuraa pääteemaa", + "LabelDateTimeLocale": "Päiväyksen ja kellonajan alue", + "Genre": "Lajityyppi", + "DirectorValue": "Ohjaaja: {0}", + "DirectorsValue": "Ohjaajat: {0}", + "GenreValue": "Tyylilaji: {0}", + "GenresValue": "Tyylilaji: {0}", + "TagsValue": "Tunnisteet: {0}", + "Off": "Pois", + "Title": "Nimi", + "Year": "Vuosi", + "Filter": "Suodata", + "Filters": "Suodattimet", + "Unplayed": "Toistamaton", + "LabelTVHomeScreen": "Televisiotilan kotinäyttö", + "Horizontal": "Vaakasuora", + "Vertical": "Pystysuora", + "HeaderGroupBy": "Ryhmittely", + "HeaderMediaType": "mediatyyppi", + "GroupBySeries": "Ryhmittele sarjan mukaan", + "HeaderVideoType": "Videon tyyppi", + "HeaderSeriesStatus": "Sarjan tila", + "Features": "Lisämateriaali", + "Trailers": "Trailerit", + "Extras": "Lisämateriaali", + "ThemeSongs": "Tunnusmusiikki", + "ThemeVideos": "Tunnusvideot", + "HeaderFavoriteMovies": "Suosikkielokuvat", + "HeaderFavoritePhotos": "Suosikkikuvat", + "HeaderFavoriteShows": "Suosikkisarjat", + "HeaderFavoriteEpisodes": "Suosikkijaksot", + "HeaderFavoriteVideos": "Suosikkivideot", + "HeaderFavoriteMusicVideos": "Musiikkivideosuosikit", + "HeaderFavoriteGames": "Suosikkipelit", + "HeaderFavoriteArtists": "Suosikkiesittäjät", + "HeaderFavoriteAlbums": "Suosikkialbumit", + "HeaderFavoriteSongs": "Suosikkikappaleet", + "HeaderFavoriteAuthors": "Suosikkikirjailijat", + "HeaderFavoriteAudioBooks": "Suosikkiäänikirjat", + "Ascending": "Nouseva", + "Descending": "Laskeva", + "HeaderColorPrimaries": "Ensisijaiset värit", + "HeaderColorSpace": "Väriavaruus", + "HeaderColorTransfer": "Värinsiirto", + "HeaderVideoRange": "Videoalue", + "SeriesDisplayOrderHelp": "Järjestä jaksot esitysajankohdan, DVD-järjestyksen tai absoluuttisen numeroinnin perusteella.", + "LabelVerticalPositionFromBottom": "Pystysuora sijainti (alhaalta)", + "HeaderFavoritePeople": "Suosikkihenkilöt", + "MultiSelect": "Monivalinta", + "HeaderSignOut": "Kirjaudu ulos", + "HeaderSelectServer": "Valitse palvelin", + "HeaderChangeServer": "Vaihda palvelinta", + "HeaderChangeUser": "Vaihda käyttäjää", + "HeaderAppSettings": "Sovelluksen asetukset", + "HeaderLoginSettings": "Kirjautumisasetukset", + "LabelRememberLogin": "Muista kirjautuminen", + "LabelAutomaticallySignOut": "Automaattinen uloskirjautuminen", + "BetaTesterMessage": "Kiitos, että olet Embyn betatestaaja! Jätä palautetta {0}yhteisön testausalueelle{1}.", + "HardwareAccelerated": "Laitteistokiihdytetty", + "Software": "Ohjelmisto", + "Metadata": "Metatiedot", + "HeaderMediaInfo": "Mediatiedot", + "Locked": "Lukittu", + "HeaderSplitVersionsApart": "Erota yhdistetyt mediatiedostot", + "Any": "Mikä tahansa", + "Admin": "Hallinta", + "HeaderReadMore": "Laajenna teksti", + "CustomRatingHelp": "Omaa ikärajaluokitusta käytetään lapsilukon ikärajaluokituksen arviointiin, mutta sitä ei näytetä. Normaali ikärajaluokitus näytetään.", + "KeepUpToHelp": "Tallenteet, jotka ovat yli rajan poistetaan kun seuraava tallennus alkaa. Vanhimmat tallenteet poistetaan ensin lisäyspäivän mukaan.", + "NoItemsMatchingFound": "Hakukriteereilläsi ei löytynyt tuloksia.", + "TwoSearchCharsRequired": "Syötä ainakin kaksi merkkiä.", + "PreventPlaybackContinuing": "Estä loputon toisto vaatimalla käyttäjältä ajoittain toimia.", + "PromptStillWatching": "Käytä \"Vieläkö katsot?\" kysymystä", + "HeaderMissingMetadata": "Puuttuvat metatiedot", + "HeaderIncludedIn": "Sisältyy", + "EmbyConnectUserAlreadyLinked": "Emby Connect -tili on jo liitetty olemassa olevaan paikalliseen käyttäjään. Tili voidaan liittää vain yhteen paikalliseen tiliin kerrallaan.", + "VideoFilesWillBeConvertedTo": "Muunnetut videot tallennetaan {0}.", + "VideoWillBeConvertedTo": "Videovirrat muunnetaan {0} tai kopioidaan alkuperäisestä tiedostosta jos ne ovat jo {0} ja laatu vastaa muuntoasetuksia.", + "VideoWillBeConvertedToOrCopied": "Videovirrat muunnetaan {0} tai kopioidaan alkuperäisestä tiedostosta jos ne ovat mitään seuraavista {1} ja laatu vastaa muuntoasetuksia.", + "AudioWillBeConvertedTo": "Äänivirrat muunnetaan {0} tai kopioidaan alkuperäisestä tiedostosta jos ne ovat jo {0} ja laatu vastaa muuntoasetuksia.", + "AudioWillBeConvertedToOrCopied": "Äänivirrat muunnetaan {0} tai kopioidaan alkuperäisestä tiedostosta jos ne ovat mitään seuraavista {1} ja laatu vastaa muuntoasetuksia.", + "HeaderSpecialKeys": "Erikoisnäppäimet", + "FollowingSpecialKeys": "Monet näppäimistöt ja kaukosäätimet tukevat seuraavia erikoisnäppäimiä:", + "HeaderDeleteSeries": "Poista sarja", + "HeaderDeleteLastPlayedEpisode": "Poista viimeksi katsottu jakso", + "HeaderConnectingToServer": "Yhdistetään palvelimeen", + "ServerNameValue": "Palvelimen nimi: {0}", + "DomainValue": "Verkkotunnus: {0}", + "RatedValue": "Luokiteltu {0}", + "LocalServerRedirectMessage": "Sinut ohjataan nyt verkkotunnukseen, jonka omistaa ja jota hallinnoi valitsemasi palvelimen järjestelmänvalvoja:", + "AllMediaOwnedHosted": "Kaikkea mediaa isännöi ja hallitsee palvelimen \"{0}\" omistaja.", + "EnableResolutionSwitching": "Käytä näytön resoluution vaihtoa", + "EnableResolutionSwitchingHelp": "Tämä sallii Embyn vaihtaa näytön resoluution videon enkoodauksessa käytettyä resoluutiota vastaavaksi ennen toiston aloitusta. Tämä auttaa minimoimaan tärinä/värinää, jota saattaa ilmetä, jos videon ja näytön resoluutiot eivät sovi hyvin yhteen.", + "EnableDisplayRefreshRateSwitching": "Käytä virkistystaajuuden vaihtoa", + "EnableDisplayRefreshRateSwitchingHelp": "Tämä sallii Embyn vaihtaa näytön virkistaajuuden videon enkoodauksessa käytettyä kuvataajuutta tai sen kerrointa vastaavaksi ennen toiston aloitusta. Tämä auttaa minimoimaan tärinä/värinää, jota saattaa ilmetä, jos videon ja näytön virkistystaajuudet eivät sovi hyvin yhteen.", + "RememberSelectedAudioTracks": "Muista ääniraitavalinnat", + "RememberSelectedSubtitleTracks": "Muista tekstityraitavalinnat", + "RememberSelectedSubtitleTracksHelp": "Tekstitysraidan valinta muistetaan videokohtaisesti ja palautetaan kun sama video toistetaan uudelleen.", + "RememberSelectedAudioTracksHelp": "Ääniraidan valinta muistetaan videokohtaisesti ja palautetaan kun sama video toistetaan uudelleen.", + "ClearSavedTrackSelections": "Tyhjennä tallennetut raitojen valinnat", + "HeaderClearTrackSelections": "Tyhjennä tallennetut raitojen valinnat", + "QuestionClearSavedTracks": "Tyhjennetäänkö tallennetut raitojen valinnat?", + "LabelChannelTags": "Kanavatunnisteet", + "AfterThisPlaysConfirmation": "Tämän toistuttua, tahdotko jatkaa toistoa vai tyhjentää aiemmin jonottamasi musiikin?", + "Keep": "Säilytä", + "Clear": "Tyhjennä", + "HeaderClearFilters": "Tyhjennä suodattimet", + "HeaderSearchForImages": "Etsi kuvia", + "HeaderSearchNewImage": "Etsi uutta kuvaa", + "HeaderSearchForAnImage": "Etsi kuvaa", + "DragDropToReorder": "Muuta järjestystä raahaamalla", + "HeaderAddImageFromUrl": "Lisää kuva URL-osoitteesta", + "HeaderSetImageFromUrl": "Aseta kuva URL-osoitteesta", + "LabelUrl": "URL-osoite", + "LabelChannelNumber": "Kanavan numero", + "LabelGuideDataChannel": "Oppaan tietokanava", + "GuideDataSource": "Ohjelmaoppaan tietolähde", + "HeaderCopyToClipboard": "Kopioi leikepöydälle", + "TimeRemainingValue": "{0} jäljellä", + "LabelResumeRewindSeconds": "Jatkettaessa, palaa automaattisesti taaksepäin", + "ResumeRewindSecondsHelp": "Tämä voi auttaa sinua jatkamaan siitä mihin jäit. Tämä koskee ensimmäistä jatkoa, muttei sitä seuraavia tauotuksia.", + "HeaderSavePlayQueueToPlaylist": "Tallenna toistojono soittolistaksi", + "EnableLogoImagesAsTitle": "Näytä logo-kuvat tietoruutujen otsikkoina", + "EnableLogoImagesAsTitleHelp": "Mikäli käytettävissä, voidaan videoiden, sarjojen ja muiden tietoruutujen otsikkotekstit korvata logoilla. Jos kuvaa ei ole käytettävissä, näytetään tekstiotsikko.", + "LabelNowPlayingAudioBackgroundStyle": "Parhaillaan toistettavan äänen taustan tyyli", + "LabelNowPlayingVideoBackgroundStyle": "Parhaillaan toistettavan videon taustan tyyli", + "NowPlayingVideoBackgroundStyleHelp": "Määrittää taustan tyylin etäohjattaessa videotoistoa toisella laitteella.", + "Rotation": "Kierto", + "Minutes": "Minuuttia", + "LabelMaxRecordingLength": "Tallenteen enimmäispituus", + "MaxRecordingLengthHelp": "Rajoita tallenteet tietyn pituisiksi riippumatta lähetyksen kestosta. Poista rajoitus syöttämällä arvoksi 0.", + "RemoteWAN": "Etäosoite (WAN)", + "HeaderLastConnectedTo": "Viimeisin yhteys kohteeseen", + "Version": "Versio", + "Keyword": "Avainsana", + "HeaderServerAddress": "Palvelimen osoite", + "HeaderSkipIntro": "Ohita intro", + "HeaderCreateRecording": "Luo tallennus", + "HeaderAddRecording": "Lisää tallennus", + "HeaderChannelAndTime": "Kanava ja aika", + "LabelRecordProgramOrSeriesFrom": "Tallenna ohjelma tai sarja lähteestä", + "LabelStartTime": "Aloitusaika", + "LabelEndTime": "Lopetusaika", + "LabelFrequency": "Taajuus", + "Recurring": "Toistuva", + "Once": "Kerran", + "Start": "Aloita", + "Unpause": "Lopeta tauotus", + "LabelIntroSkipMode": "Intro-ohituksen tila", + "ShowSkipIntroButton": "Näytä \"Ohita intro\" -painike", + "AutoSkipIntro": "Ohita introt automaattisesti", + "DisplayRatingInformationOnVideoPlaybackStart": "Näytä sisältöluokitustiedot videotoiston alkaessa", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Sisällön ikäluokitustiedot näytetään hetken aikaa, kun videon toisto alkaa.", + "IntroSkipModeHelp": "Näytä 'Ohita intro' -painike tai ohita introt automaattisesti niistä jaksoista, joissa Emby on tunnistanut intromerkinnät. Introntunnistuksen on oltava Embyn kirjastoasetuksissa käytössä.", + "EnableHomeScreenFocusPreview": "Käytä kotinäytössä asettelua, joka näyttää valitusta kohteesta yksityiskohtaisen esikatselun", + "EnableHomeScreenFocusPreviewHelp": "Tämä ei välttämättä toimi hyvin, jos kotinäyttösi sisältää sekoituksen eri mediatyyppejä.", + "LabelHideMediaTransportButtons": "Piilota videosoittimen siirtopainikkeet", + "HideMediaTransportButtonsHelp": "Yksinkertaista toiston ohjauksen käyttöliittymää piilottamalla peruspainikkeet, kuten siirto eteen/taakse ja tauotus. Voit edelleen käyttää näitä toimintoja nuolinäppäimillä ja OK/Enter-näppäimillä. \"Automaattinen\" piilottaa siirtopainikkeet, kun sovellus ei havaitse hiiren käyttöä.", + "ImageSizeHelp": "Valitse haluttu kuvaruudukoiden koko.", + "LabelImageSize": "Kuvan koko", + "ThisImageIsOnlyPreview": "Tämä kuva on vain metatietojen haun tarjoama esikatselu ja varsinainen kuva, jonka Emby-palvelin lataa voi olla erilainen ja riippuu Emby-kirjastojen asetuksista.", + "ResultsRangeValue": "lähteestä {0} kohteeseen {1}/{2}", + "NotificationsDescription": "Määritä ilmoituksia pysyäksesi ajan tasalla Emby-palvelimesi tärkeistä tapahtumista.", + "DeleteEmbyConnectAccount": "Poista Emby Connect -tili", + "DeleteEmbyConnectAccountHelp": "Poista Emby Connect -tilisi kirjautumalla {0}Emby-yhteisöön{1} osoitteessa {2}. Tämän jälkeen, paina oikeasta yläkulmasta käyttäjätunnustasi ja valitse \"Account Settings\". Paina lopuksi vasemmalta \"Remove My Account\".", + "KeepPlayingInBackground": "Jatka toistoa taustalla", + "LabelVideoBackBehavior": "Videosoittimen paluupainikkeen toiminta", + "HeaderViewLyrics": "Näytä sanoitukset", + "HeaderViewMissingEpisodes": "Näytä puuttuvat jaksot", + "HeaderMissingEpisodes": "Puuttuvat jaksot", + "HeaderManageAccess": "Hallitse käyttöoikeuksia", + "HeaderManageCollaboration": "Hallitse yhteistyötä", + "HeaderLeaveCollaboration": "Poistu yhteistyöstä", + "HeaderRemoveFromLibrary": "Poista kirjastosta", + "RemoveSharedItemConfirmation": "Haluatko varmasti poistaa kohteen kirjastostasi? Palauttaaksesi sen, sinun on pyydettävä sen omistajaa palauttamaan sen käyttöoikeus.", + "SubtitlesDownloaded": "Tekstitykset on ladattu", + "HeaderMakePrivate": "Määritä yksityiseksi", + "HeaderMakePublic": "Määritä julkiseksi", + "MakePublicDescription": "Kaikki käyttäjät voivat tarkastella kohdetta. Muokkausoikeudet voidaan myöntää käyttäjäkohtaisesti.", + "MakePrivateDescription": "Oikeudet voidaan silti myöntää käyttäjäkohtaisesti.", + "Private": "Yksityinen", + "Public": "Julkinen", + "Collaborative": "Yhteistyö", + "PreferredShowDisplay": "Ensisijainen sarjojen esitystapa", + "ShowAllEpisodesAllSeasons": "Näytä kaikkien kausien jaksot yhdessä", + "ShowAllEpisodesSingleSeason": "Näytä yksikautisten sarjojen kaikki jaksot ilman kausinäkymää", + "ShowSeasonFolders": "Näytä kaudet aina erikseen", + "HeaderAddAgain": "Lisää uudelleen", + "UpNext": "Seuraavaksi", + "ItemsAlreadyInPlaylist": "Osa kohteista on jo soittolistalla.", + "ItemAlreadyInPlaylist": "Kohde on jo soittolistalla.", + "HeaderPlayChannel": "Toista kanava", + "LabelScreenOrientationDuringVideo": "Näytön suuntaus videotoiston aikana", + "UseDeviceSetting": "Käytä laitteen asetuksia", + "LockToLandscape": "Lukitse vaakasuoraan", + "UsernameForFolderHelp": "Käyttäjätunnus, joka tarvitaan tämän kansion käyttöön verkossasi (jos tarpeen).", + "PasswordForFolderHelp": "Salasana, joka tarvitaan tämän kansion käyttöön verkossasi (jos tarpeen).", + "ShowMediaInfoOnDetailScreens": "Näytä koko media video- ja äänitiedostojen lisätietonäkymien alalaidassa.", + "ForgotPasswordNoUserFound": "Syötetyllä nimellä ei löytynyt käyttäjiä. Yritä uudelleen tai nollaa palvelimen kaikkien käyttäjien salasanat jättämällä nimi tyhjäksi.", + "Silver": "Hopea", + "DimGray": "Hämäränharmaa", + "DarkGray": "Tummanharmaa", + "LightGray": "Vaaleanharmaa", + "Black": "Musta", + "Blue": "Sininen", + "Cyan": "Syaani", + "Gray": "Harmaa", + "Green": "Vihreä", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Oranssi", + "Pink": "Pinkki", + "Red": "Punainen", + "Yellow": "Keltainen", + "White": "Valkoinen", + "Purple": "Violetti", + "RecentlyReleasedMovies": "Hiljattain julkaistut elokuvat", + "RecentlyReleasedEpisodes": "Hiljattain julkaistut jaksot", + "DolbyProfile": "Dolby-profiili", + "IpAddress": "IP-osoite", + "VideoType": "Videon tyyppi", + "HidePlayedMediaFrom": "Piilota toistettu media kohteesta", + "BottomEdgePosition": "Alareunan sijainti", + "VerticalPositionFromBottomScreen": "Aseta tekstityksen sijainti ruudun alalaidasta.", + "TopEdgePosition": "Yläreunan sijainti", + "TopEdgePositionHelp": "Aseta tekstityksen ylin sallittu pystysijainti suhteessa ruudun yläreunaan. Tätä käytetään, kun tekstitys sisältää määrityksen sen sijoittamisesta yläreunaan.", + "HeaderSubtitlePosition": "Tekstityksen sijainti", + "TitleProfilePin": "Profiilin PIN-koodi", + "ProfilePinConfirm": "Profiilin PIN-koodi (vahvistus)", + "SaveProfilePin": "Tallenna PIN-koodi", + "ProfilePinDescription": "Luo valinnainen PIN-koodi, joka on syötettävä aina palattaessa Emby-sovellukseen jo aiemmin sisäänkirjautuilla laitteilla. Tämä on hyödyllistä useiden käyttäjien jakamilla laitteilla. ASetus voidaan ottaa käyttöön laitekohtaisesti.", + "TitleNewEpisodes": "Uudet jaksot", + "EnterYourPinToContinue": "Jatka syöttämällä PIN-koodisi.", + "YourPinMustBe": "PIN-koodin tulee sisältää {0} numeroa", + "ForgotPin": "Unohditko PIN-koodisi?", + "RequireEnteringPinToReturn": "Vaadi profiilin PIN-koodi kun sovellukseen palataan.", + "RequireEnteringPinToReturnQuestion": "Pitäisikö meidän pyytää PIN-koodiasi aina, kun palaat sovellukseen? Jos laite on jaettu useiden käyttäjien kesken, profiilin suojaaminen PIN-koodilla voi estää muita pääsemästä tietoihisi.", + "RequireEnteringPinToReturnHelp": "Hyödyllinen useiden käyttäjien kesken jaetuilla laitteilla.", + "WrongPinPleaseTryAgain": "Hups, PIN-koodi on väärin. Yritä uudelleen.", + "ProfilePinIsOn": "Profiilin PIN-kysely on käytössä", + "IfTryingToConnectToHttp": "Jos yrität yhdistää Emby-palvelimeesi HTTP-osoitteella, ei selaimesi ehkä salli sitä HTTPS-pakotuksen vuoksi. Voit kokeilla jotakin seuraavista:", + "SetupHttpsForYourServer": "Määritä {0}HTTPS Emby-palvelimellesi{1}, jotta voit yhdistää HTTPS-protokollan välityksellä.", + "TitleUnableToReachServer": "Palvelinta ei tavoiteta", + "TitleUnableToReachName": "Palvelinta {0} ei tavoiteta", + "HearingImpaired": "Kuulorajoitteisille", + "SignIntoServerName": "Kirjaudu palvelimelle {0}", + "About": "Tietoja", + "Specials": "Erikoisjaksot", + "NSettings": "{0} asetukset", + "NPreferences": "{0} asetukset", + "DetailScreenOptions": "Tietonäyttö", + "LabelGenreDisplayLimit": "Lajityyppien näyttörajoitus", + "GenreDisplayLimitHelp": "Rajoita kohteiden tietonäyttöjen yläosassa näytettävien lajityyppien määrää.", + "GenreDisplayLimitForListsHelp": "Rajoita toistolistojen, kokoelmien ja eisttäjien tietonäyttöjen yläosassa näytettävien lajityyppien määrää.", + "LabelGenreDisplayLimitForLists": "Lajityyppien näyttörajoitus listoissa", + "ShowPosterOnDetails": "Näytä juliste tietonäytössä", + "ShowPosterOnDetailsHelp": "Näytä juliste tietonäytöissä tai piilota se, jos haluat minimaalisemman ja taustaa korostavan ulkoasun. Asetus ei vaikuta pienille näytöille tarkoitettuihin asetteluihin ja jotkin jokdetyypit eivät huomioi asetusta.", + "EnableAppLogging": "Käytä sovelluslokia", + "EnableAppLoggingHelp": "Lokitietojen kirjaus voi heikentää sovelluksen suorituskykyä ja se tulisi ottaa käyttöön ainoastaan vianselvitystä varten. Muutosten käyttöönotto vaatii sovelluksen uudelleenkäynnistyksen.", + "LabelSlideshowInterval": "Kuvakohtainen näyttöaika kuvaesityksessä", + "TVChannelImageEditorHelp": "Logojen useita versioita tuetaan ja Emby-sovellukset valitsevat oikean logon käytössä olevan teeman perusteella.", + "PlaySlideshow": "Toista kuvaesitys", + "CheckForExistingEpisodesInAllLibraries": "Etsi olemassa olevia jaksoja kaikista kirjastoista", + "GroupNotificationsBySeriesOrAlbum": "Ryhmittele ilmoitukset sarjojen ja albumien perusteella", + "ThemeSettings": "Tunnusmusiikin asetukset", + "FollowingActivityWillBeDisrupted": "Seuraavat toimenpiteet häiriintyvät ja niiden uudelleenaloitus saattaa vaatia manuaalisia toimenpiteitä:", + "OneActivePlaybackSession": "1 aktiivinen toistoistunto", + "NumActivePlaybackSessions": "{0} aktiivista toistoistuntoa", + "OneActiveRecording": "1 aktiivinen tallennus", + "NumActiveRecordings": "{0} aktiivista tallennusta", + "PlayFromLivePosition": "Toista nykyhetkestä", + "PlayFromStartOfRecording": "Toista tallenteen alusta", + "ThisChannelIsActivelyRecording": "Tätä kanavaa tallennetaan parhaillaan. Mistä haluat aloittaa toiston?", + "ThemeSongVolume": "Tunnusmusiikin voimakkuus", + "HeaderForceConversionForFormats": "Pakota muotojen muunnos", + "ForceConversionForFormatsHelp": "Pakottaa palvelimen transkoodaamaan tai remuxaamaan tällä laitteella huonosti toistuvat muodot.", + "StartupBehavior": "Käynnistyminen", + "RememberLastUser": "Muista edellinen käyttäjä", + "ShowLoginScreen": "Näytä kirjautumisruutu", + "SignInAsValue": "Kirjaudu tunnuksella {0}", + "ConvertUnsupportedAudio": "Muunna ei-tuetut monikanavaäänet Dolby Digitaliksi", + "ConvertUnsupportedAudioHelp": "Vältä ei-tuettujen monikanavaäänien alasmiksaus stereoksi asettamalla palvelin transkoodaamaan ne Dolby Digital -muotoon.", + "HeaderPlaybackCorrection": "Toiston korjaus", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Otetaanko toiston korjaus käyttöön", + "PlaybackCorrectionDescription": "Esiintyykö nykyisen kohteen toistossa ongelmia, kuten kuvan tai äänen puuttumista? Tämä pyrkii korjaamaan toisto-ongelmia muuntamalla tiedoston palvelimella suoratoistoystävällisempään muoitoon. Tämä kasvattaa palvelimen laitteistokuormitusta.", + "PlaybackCorrectionDescription2": "Voit tehdä tämän kolme kertaa per video. Korjausta yritetään vaiheittain aktivoimalla remuxaus, videon transkoodaus ja äänen transkoodaus.", + "HeaderAlbumsAsContributingArtist": "Albumit osallistuvien esittäjien perusteella", + "HeaderAlbumsAsComposer": "Albumit säveltäjien perusteella", + "Duplicates": "Kaksoiskappaleet", + "HeaderSleepTimer": "Uniajastin", + "AfterCurrentItem": "Nykyisen kohteen jälkeen", + "HeaderStopPlayback": "Lopeta toisto", + "TurnOffTimer": "Poista ajastus käytöstä", + "SleepTimerIsSet": "Uniajastin on asetettu", + "SleepTimerIsOff": "Uniajastinta ei ole asetettu", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/fr-CA.json b/modules/common/strings/fr-CA.json new file mode 100644 index 0000000..4cc6903 --- /dev/null +++ b/modules/common/strings/fr-CA.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby est conçu pour vous aider à gérer votre médiathèque personnelle, tels que vos photos et vidéos. Veuillez lire nos {0}conditions d'utilisation{1}. L'utilisation de tout logiciel Emby implique que vous acceptiez ces conditions.", + "MessageUnableToConnectToServer": "Nous sommes dans l'impossibilité de nous connecter au serveur sélectionné. Veuillez vérifier qu'il est opérationnel et réessayez.", + "EmbyIntroMessage": "Avec Emby, vous pouvez facilement diffuser des vidéos, de la musique et des photos sur des téléphones intelligents, des tablettes et d'autres appareils depuis votre serveur Emby.", + "HeaderSignInWithConnect": "Se connecter avec Emby Connect", + "HeaderWelcomeToEmby": "Bienvenue à Emby", + "HeaderNewUsers": "Nouveaux utilisateurs", + "HeaderPleaseSignIn": "Veuillez vous identifier", + "MessageInvalidUser": "Nom d'utilisateur ou mot de passe invalide. Veuillez réessayer.", + "MessageUnlockAppWithPurchaseOrSupporter": "Déverrouillez cette fonctionnalité avec un petit achat unique ou avec un abonnement Emby Premiere actif.", + "MessageUnlockAppWithSupporter": "Déverrouillez cette fonctionnalité avec un abonnement Emby Première actif.", + "MessageToValidateSupporter": "Si vous avez un abonnement Emby Première actif, assurez-vous d'avoir installé Emby Première sur le tableau de bord de votre serveur Emby, auquel vous pouvez accéder en cliquant sur Emby Première dans le menu principal.", + "ValueSpecialEpisodeName": "Spécial - {0}", + "HeaderSignIn": "Connexion", + "Share": "Partager", + "Shared": "Partagé", + "Info": "Info", + "Add": "Ajouter", + "Speed": "Vitesse", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapitres", + "Password": "Mot de passe", + "SavePassword": "Save Password", + "LabelPassword": "Mot de passe:", + "HeaderResetPassword": "Réinitialiser le mot de passe", + "Series": "Séries", + "Preview": "Aperçu", + "Submit": "Soumettre", + "Never": "Jamais", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Morceaux", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Type de mot clé:", + "HeaderSelectColumns": "Sélectionnez les colonnes", + "HeaderTopResults": "Meilleurs Résultats", + "HeaderPinSidebar": "Épingler la barre latérale", + "Collapse": "Réduire", + "LabelBackgroundVideoPlayback": "Lecture vidéo en arrière plan :", + "BackgroundVideoPlaybackHelp": "La lecture en arrière plan permet à la vidéo de jouer même si l'écran est éteinte.", + "AlwaysOn": "Toujours allumé", + "HeadphonesOrExternalSpeakersConnected": "Écouteur ou haut-parleur connecté", + "HeaderKeyboardAndRemote": "Clavier et Télécommande", + "NoSelectedItemsSupportOperation": "Aucun élément sélectionné ne prend en charge cette opération.", + "NoOperationsForSelectedItems": "Aucune opération n’est disponible pour les éléments sélectionnés.", + "UploadOnlyOnWifi": "Téléversement uniquement en Wi-Fi", + "HeaderFoldersToUpload": "Dossiers à téléverser", + "LabelPasswordConfirm": "Mot de passe (confirmation) :", + "HeaderMoveUpInOrder": "Monter dans l'ordre", + "HeaderDownUpInOrder": "Descendre dans l'ordre", + "LabelUsername": "Nom d'utilisateur :", + "HeaderAddServer": "Ajouter un serveur", + "HeaderSubtitleOffset": "Décalage des sous-titres", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Supprimer de Reprendre", + "RemoveThisTitleFromContinueWatching": "Supprimer cet élément de Reprendre ?", + "HeaderRemoveFromContinueListening": "Retirer de Reprendre l'écoute", + "RemoveThisTitleFromContinueListening": "Retirer ce titre de Reprendre l'écoute ?", + "HeaderIncreaseSubtitleOffset": "Augmenter le décalage des sous-titres", + "HeaderDecreaseSubtitleOffset": "Diminuer le décalage des sous-titres", + "Close": "Fermer", + "HeaderSeeAll": "Montrer tout", + "HeaderOpenInNewWindow": "Ouvrir dans une nouvelle fenêtre", + "LabelEmail": "Courriel :", + "LabelHost": "Hôte :", + "LabelHostHelp": "192.168.1.100 ou https://monserveur.com", + "LabelPort": "Port :", + "Disabled": "Désactivé", + "Uninstall": "Désinstaller", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Suivant: {0}", + "HeaderNextItem": "Élément suivant", + "HeaderPreviousItem": "Précédent", + "NoTrailersMessage": "Aucune Bande-annonce de trouvée. Pour ajouter des Bande-annonces, installer l'extension \"Introductions cinématographiques\" du {0}catalogue d'extension{1} Emby.", + "UninstallPluginConfirmation": "Êtes-vous sûr de vouloir désinstaller cette extension?", + "HeaderUninstallPlugin": "Désinstaller cette extension", + "AreYouStillWatching": "Vous regardez toujours ?", + "LabelCurrentPassword": "Mot de passe actuel :", + "LabelNewPassword": "Nouveau mot de passe :", + "LabelNewPasswordConfirm": "Confirmer le nouveau mot de passe :", + "HeaderRemovePassword": "Supprimer le mot de passe", + "ServerUpdateNeeded": "Ce serveur Emby doit être mis à jour. Pour télécharger la dernière version, veuillez visiter {0}", + "MessageThankYouForConnectSignUp": "Merci de vous être inscrit sur Emby Connect. Un courriel va vous être envoyé, avec les instructions pour confirmer votre nouveau compte. Merci de confirmer ce compte puis de revenir ici pour vous connecter.", + "MessageThankYouForConnectSignUpNoValidation": "Merci de vous être inscrit sur Emby Connect ! Vous devez maintenant vous connecter avec vos identifiants Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "Le mot de passe et la confirmation du mot de passe doivent correspondre.", + "ErrorMessageUsernameInUse": "Ce nom d'utilisateur est déjà utilisé. Veuillez en choisir un autre et réessayer.", + "ErrorMessageEmailInUse": "Cette adresse courriel est déjà utilisée. Veuillez en saisir une autre et réessayer, ou bien utiliser la fonction du mot de passe oublié.", + "HeaderUpcomingOnTV": "Bientôt à la TV", + "HeaderOtherShowings": "Autres présentations", + "Showings": "Présentations", + "HeaderConnectToServer": "Connexion au serveur", + "ConnectToServerManually": "Connexion manuelle au serveur", + "LabelEnterConnectUserNameHelp": "Ceci est votre nom d'utilisateur ou adresse courriel Emby.", + "HeaderSignInError": "Erreur d'ouverture de session", + "HeaderManualLogin": "Connexion manuelle", + "PasswordResetConfirmation": "Voulez-vous vraiment réinitialiser le mot de passe ?", + "ContactAdminToResetPassword": "Veuillez contacter votre administrateur système pour réinitialiser votre mot de passe.", + "ForgotPasswordInNetworkRequired": "Veuillez réessayer à partir de votre réseau local pour démarrer la procédure de réinitialisation du mot de passe.", + "ForgotPasswordFileCreated": "Le fichier suivant a été créé sur votre serveur et contient les instructions sur la procédure à suivre :", + "ForgotPasswordFileExpiration": "Le code PIN de réinitialisation expirera à {0}.", + "InvalidForgotPasswordPin": "Le code PIN saisi est invalide ou a expiré. Veuillez réessayer.", + "PasswordResetForUsers": "Les mot de passes ont été supprimés pour les utilisateurs suivants. Pour vous connecter, identifiez-vous avec un mot de passe vide.", + "HeaderForgotPassword": "Mot de passe oublié", + "ForgotPasswordUsernameHelp": "Saisissez votre nom d'utilisateur, si vous vous en souvenez.", + "HeaderPasswordReset": "Mot de passe réinitialisé", + "AttributeNew": "Nouveau", + "Done": "Terminer", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Désentrelacement", + "HeaderBurningInSubtitles": "Incrustation des sous-titres", + "Premiere": "Première", + "LabelPinCode": "Code PIN :", + "LabelLocalNetworkPinCode": "Code PIN du réseau local :", + "LabelLocalNetworkPasswordMode": "Mode de connexion du réseau local :", + "RequirePasswordInLocalNetwork": "Demander un mot de passe sur le réseau local", + "NoPasswordInLocalNetwork": "Ne pas demander un mot de passe sur le réseau local", + "PinCodeInLocalNetwork": "Autoriser un code PIN numérique sur le réseau local", + "LocalNetworkPasswordModeHelp": "Sélectionnez la méthode de connexion pour les appareils sur le même réseau local que votre serveur Emby.", + "HeaderLocalNetworkAccess": "Accès par le réseau local", + "Live": "En direct", + "Reset": "Réinitialiser", + "Repeat": "Répéter", + "Track": "Piste", + "Tracks": "Pistes", + "HeaderCameraUpload": "Transfert depuis l’appareil photo", + "TrackCount": "{0} pistes", + "ItemCount": "{0} éléments", + "NumberChannelsValue": "{0} Chaînes", + "HeaderLatestMusic": "Dernières musiques", + "HeaderLatestAudioBooks": "Derniers livres audio", + "HeaderLatestDownloadedVideos": "Dernières vidéos téléchargées", + "HeaderRecentlyPlayed": "Lu récemment", + "Recent": "Récent", + "HeaderFrequentlyPlayed": "Lu fréquemment", + "HeaderMoreLikeThis": "Similaires", + "HeaderMoreLikeThisOnLiveTV": "Plus de contenu similaire en direct", + "OriginalAirDateValue": "Date de diffusion originale: {0}", + "EndsAtValue": "Se termine à {0}", + "Date": "Date", + "AirDate": "Date de diffusion", + "Played": "Vu", + "Daily": "Quotidien", + "Weekly": "Weekly", + "RequireHashMatch": "Nécessite un hachage correspondant", + "RequireHashMatchHelp": "Demander une correspondance de hachage filtrera les sous-titres pour n'inclure que ceux qui ont été testés avec votre fichier vidéo exact. Si vous le désactivez, vous aurez plus de chances qu’un sous-titre soit téléchargé, mais également plus de chances que le texte des sous-titres soit mal synchronisé ou incorrect.", + "SearchForForcedSubtitlesOnly": "Sous-titres forcés seulement", + "SearchForForcedSubtitlesOnlyHelp": "Demander les sous-titres forcés limitera les résultats aux sous-titres qui sont marqués comme ayant une langue étrangère.", + "LastEpisodeDateAdded": "Date d'ajout du dernier épisode", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "État de lecture :", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Titre de l'épisode", + "Audio": "Audio", + "Video": "Vidéo", + "Subtitle": "Sous-titre", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Disposition audio :", + "LabelAudioCodec": "Codec audio :", + "LabelAudioLanguage": "Langue de l’audio:", + "LabelSubtitleLanguage": "Langue des sous-titres:", + "LabelVideoCodec": "Codec vidéo :", + "LabelSubtitleCodec": "Codec des sous-titres :", + "LabelParentalRating": "Classification parentale :", + "BecauseYouLikeValue": "Parce que vous aimez {0}", + "BecauseYouWatchedValue": "Parce que vous avez visionné {0}", + "DirectedByValue": "Dirigé par {0}", + "StarringValue": "Avec {0}", + "Invitations": "Invitations", + "ActorAsRole": "comme {0}", + "ButtonOk": "Ok", + "GroupItemsIntoCollections": "Grouper les éléments dans des collections", + "GroupItemsIntoCollectionsHelp": "Grouper les éléments en fonction des collections auxquelles ils ont été ajoutés. L'activation de certains filtres ou ordres de tris peut automatiquement le désactiver.", + "GroupItemsIntoTags": "Regrouper les éléments dans des balises", + "GroupItemsIntoTagsHelp": "Regroupez les éléments en fonction des balises auxquelles ils ont été ajoutés. L'activation de certains filtres ou ordres de tri peut le désactiver automatiquement.", + "User": "User", + "Access": "Access", + "Users": "Utilisateurs", + "Library": "Bibliothèque", + "Devices": "Appareils", + "Cancel": "Annuler", + "Restart": "Redémarrer", + "Shutdown": "Arrêter", + "Logs": "Journaux", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Les services de notifications peuvent être installés par l'administrateur du serveur dans le {0}catalogue d'extensions{1} d'Emby.", + "Plugins": "Extensions", + "Systems": "Systèmes", + "Server": "Serveur", + "Dashboard": "Tableau de bord", + "PlayOnAnotherDevice": "Lire sur un autre appareil", + "HeaderConnectionHelp": "Aide de connexion", + "AccessRestrictedTryAgainLater": "L'accès est présentement restreint. Veuillez ré-essayer ultérieurement.", + "ButtonGotIt": "J'ai compris", + "RememberMe": "Se souvenir de moi", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Gérer le serveur Emby", + "ShutdownServer": "Arrêter le serveur Emby", + "RestartServer": "Redémarrer le serveur Emby", + "RecordingCancelled": "Enregistrement annulé.", + "SeriesCancelled": "Série annulée.", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Enregistrement programmé.", + "SeriesRecordingScheduled": "Enregistrement en série programmé.", + "HeaderNewRecording": "Nouvel enregistrement", + "HeaderWakeServer": "Réveiller le serveur", + "AttemptingWakeServer": "Tentative de réveiller le serveur. Veuillez patienter....", + "WakeServerSuccess": "Succès!", + "HeaderCustomizeHomeScreen": "Personnaliser l'écran d'accueil", + "WakeServerError": "Les paquets Wake On LAN ont été envoyés à votre machine serveur, mais nous ne pouvons pas nous connecter à votre serveur Emby. Votre machine peut avoir besoin d'un peu plus de temps pour se réveiller, ou le serveur Emby peut ne pas être actif sur la machine.", + "Days": "Jours", + "Network": "Réseau", + "Networks": "Réseaux", + "SortByValue": "Trier par {0}", + "HeaderSortBy": "Trier par", + "HeaderPhotoAlbums": "Albums de photos", + "Photos": "Photos", + "HeaderAppearsOn": "Apparait dans", + "List": "Liste", + "HeaderRecordSeries": "Enregistrer la série", + "HeaderCinemaMode": "Introductions cinématographiques", + "Conversions": "Conversions", + "Downloads": "Téléchargements", + "HeaderManageDownloads": "Gérer les téléchargements", + "InternalStorage": "Stockage interne", + "ExternalStorage": "Stockage externe", + "UploadToFollowingServers": "Téléverser vers les serveurs :", + "UploadingNumItems": "Téléversement {0} de {1}", + "DownloadNumItems": "Téléchargement {0} sur {1}", + "HeaderSampleRate": "Débit échantillon", + "HeaderReferenceFrames": "Images de référence", + "HeaderBitDepth": "Résolution", + "HeaderPixelFormat": "Format de pixel", + "Profile": "Profil", + "Bitrate": "Débit", + "Expand": "Augmenter", + "Container": "Conteneur", + "Format": "Format", + "Path": "Chemin", + "Size": "Taille", + "Resolution": "Résolution", + "HeaderCodecTag": "Étiquette du codec", + "Framerate": "Images par seconde", + "Interlaced": "Entrelacé", + "Anamorphic": "Anamorphique", + "Level": "Niveau", + "Timestamp": "Horodatage", + "Language": "Langue", + "Codec": "Codec", + "Stream": "Flux", + "HeaderExtradata": "Donnée Supplémentaire", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Média hors ligne", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Téléchargez le média sur vos appareils pour une utilisation hors ligne facile.", + "LiveTvFeatureDescription": "Diffuser la TV en direct vers n'importe quelle application Emby avec un tuner TV compatible installé sur votre serveur Emby.", + "DvrFeatureDescription": "Planifiez des enregistrements de TV en direct individuels, des enregistrements de séries et bien plus avec le magnétoscope Emby.", + "CinemaModeFeatureDescription": "Les Introductions cinématographiques vous donne une véritable expérience de cinéma avec des bandes annonces et des introductions personnalisées avant le film.", + "HeaderFreeApps": "Applications Emby gratuites", + "FreeAppsFeatureDescription": "Profitez de l'accès gratuit aux applications Emby pour vos appareils.", + "HeaderBecomeProjectSupporter": "Obtenez Emby Première", + "HeaderViewServerInfo": "Afficher les informations du serveur", + "PlaybackTvModeRequiresEmbyPremiere": "La lecture des médias en mode TV nécessite un {0}abonnement Emby Premiere{1}.", + "FeatureRequiresEmbyPremiere": "Cette fonctionnalité nécessite un {0}abonnement Emby Premiere{1}.", + "HeaderConvertYourRecordings": "Convertir vos enregistrements", + "Record": "Enregistrement", + "Save": "Sauvegarder", + "Edit": "Modifier", + "HeaderSavePlaylist": "Sauvegarder la liste de lecture", + "Latest": "Récent", + "Download": "Télécharger", + "Downloaded": "Téléchargé", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Téléchargement en cours", + "Advanced": "Avancé", + "LinkedToEmbyConnect": "Lié à Emby Connect", + "Delete": "Supprimer", + "Both": "Les deux", + "LabelChannelDisplay": "Affichage de la chaîne :", + "HeaderDeleteItem": "Supprimer l'élément", + "HeaderDeleteUser": "Supprimer l’utilisateur", + "DeleteItemConfirmation": "Voulez-vous vraiment supprimer {0} ?", + "DeleteUserConfirmation": "Voulez-vous vraiment supprimer l'utilisateur {0} ?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Supprimer l’appareil", + "DeleteDeviceConfirmation": "Voulez-vous vraiment supprimer cet appareil ? Il réapparaitra la prochaine fois qu'un utilisateur se connectera avec.", + "ConfirmDeleteItem": "La suppression de cet élément le supprimera à la fois du système de fichiers et de votre médiathèque.", + "FollowingFilesWillBeDeleted": "Les fichiers et répertoires suivant seront supprimés:", + "AreYouSureToContinue": "Êtes-vous sûr de vouloir continuer?", + "Refresh": "Rafraîchir", + "RefreshingMetadataDots": "Actualisation des métadonnées…", + "ScanningLibraryFilesDots": "Actualisation des fichiers de la médiathèque…", + "HeaderFavoritesThenByChannelNumber": "Favoris, puis par numéro de chaîne", + "HeaderAddToCollection": "Ajouter à la Collection", + "HeaderFavoritesThenByTitle": "Favoris, puis par titre", + "HeaderFavoritesThenByDefault": "Favoris, puis par ordre des chaînes par défaut", + "HeaderDefaultChannelOrder": "Ordre des chaînes par défaut", + "HeaderAddToFavorites": "Ajouter aux Favoris", + "HeaderRemoveFromFavorites": "Retirer des favoris", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "Nouvelle Collection", + "HeaderNewPlaylist": "Nouvelle Liste de lecture", + "AllCollections": "Toutes les collections", + "AllPlaylists": "Toutes les listes de lecture", + "Create": "Créer", + "HeaderAddedToPlaylist": "À été ajouté à la liste de lecture", + "HeaderAddedToCollection": "À été ajouté à la collection", + "OneItemAddedTo": "1 article à été ajouté à {0}", + "ItemsAddedTo": "{0} articles ont été ajouté à {1}", + "HeaderAddedToPlayQueue": "À été ajouté à la file d'attente", + "HeaderPlayingNext": "Lecture du suivant", + "Help": "Aide", + "HeaderGetHelp": "Obtenir de l'aide", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Bureau", + "Mobile": "Mobile / Tablette", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Lecture vidéo", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Saisons", + "OneTrack": "1 Piste", + "OneSeason": "1 Saison", + "Libraries": "Médiathèques", + "NumberSeasonsValue": "{0} Saisons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "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éer des regroupements personnalisés de films et d'autres contenus de la bibliothèque.", + "SearchForCollectionInternetMetadata": "Rechercher sur Internet les images et les métadonnées", + "DisplayMissingEpisodesWithinSeasons": "Afficher les épisodes manquants dans les saisons", + "DisplayMissingEpisodesWithinSeasonsHelp": "Cette option doit aussi être activée pour les médiathèques TV dans les paramètres du serveur Emby.", + "EnableThemeSongs": "Activer les thèmes musicaux", + "EnableBackdrops": "Activer les images d'arrière-plans", + "EnableThemeSongsHelp": "Si activé, les thèmes musicaux seront lus en arrière-plan pendant la navigation dans la médiathèque.", + "EnableBackdropsHelp": "Si activé, les images d'arrière-plan seront affichées sur certaines pages pendant la navigation dans la médiathèque.", + "EnableThemeVideos": "Activer les thèmes vidéos", + "EnableThemeVideosHelp": "Si activé, les thèmes vidéos seront lus en arrière-plan tout en parcourant la médiathèque.", + "RunAtStartup": "Exécuter au démarrage", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Économiseur d'écran :", + "LabelSoundEffects": "Effets sonores :", + "LabelName": "Nom:", + "NewCollectionNameExample": "Exemple: Collection Star Wars", + "MessageItemsAdded": "Éléments ajoutés.", + "OptionNew": "Nouveau...", + "LabelPlaylist": "Liste de lecture:", + "AddToPlaylist": "Ajouter à la liste de lecture", + "HeaderAddToPlaylist": "Ajouter à la liste de lecture", + "Subtitles": "Sous-titres", + "LabelTheme": "Thème :", + "LabelSettingsTheme": "Paramètres du thème :", + "LabelThemeAccentColor": "Couleur des alertes:", + "ThemeAccentColorDescription": "Contrôle la couleur des indicateurs importants, icônes et textes.", + "SearchForSubtitles": "Rechercher des sous-titres", + "LabelLanguage": "Langage:", + "Search": "Rechercher", + "NoSubtitleSearchResultsFound": "Aucun résultat trouvé. Avez-vous configuré le {0}téléchargement de sous-titres{1} ?", + "NoLyricsSearchResultsFound": "Aucun résultat trouvé. Avez-vous configuré le {0}téléchargement des paroles{1} ?", + "Lyrics": "Paroles", + "SearchForLyrics": "Rechercher les paroles", + "Finish": "Terminer", + "File": "Fichier", + "Exit": "Quitter", + "Sleep": "Veille", + "Setup": "Configuration", + "MessageAreYouSureDeleteSubtitles": "Voulez-vous vraiment supprimer ce fichier de sous-titres ?", + "ConfirmDeletion": "Confirmer la suppression", + "MySubtitles": "Mes sous-titres", + "MessageDownloadQueued": "Téléchargement mis en file d'attente.", + "HeaderEditSubtitles": "Modifier les sous-titres", + "UnlockGuide": "Déverrouiller le guide", + "HeaderRefreshMetadata": "Actualiser les métadonnées", + "HeaderRefreshAllMetadata": "Actualiser toutes les métadonnées", + "ReplaceExistingImages": "Remplacer les images existantes", + "ReplaceExistingImagesHelp": "Toutes les images existantes seront supprimées et de nouvelles seront téléchargées. Dans certains cas, cela peut entraîner moins d'images disponibles qu'auparavant.", + "ReplaceAllMetadata": "Remplacer toutes les métadonnées", + "SearchForMissingMetadata": "Rechercher pour les métadonnées manquantes", + "LabelRefreshMode": "Mode d'actualisation :", + "NoItemsFound": "Aucun élément trouvé", + "HeaderSaySomethingLike": "Disez quelque chose comme....", + "ButtonTryAgain": "Ré-essayer", + "HeaderYouSaid": "Vous avez dit...", + "MessageWeDidntRecognizeCommand": "Nous sommes désolés, nous n'avons pas reconnu cette commande.", + "MessageIfYouBlockedVoice": "Si vous avez refusé l'accès vocal à l'application, vous devrez reconfigurer avant de réessayer.", + "ValueDiscNumber": "Disque {0}", + "Unrated": "Non noté", + "Favorite": "Favori", + "Like": "J'aime", + "Dislike": "Je n'aime pas", + "RefreshDialogHelp": "Les métadonnées sont actualisées en fonction des paramètres et des services Internet qui sont activés dans le tableau de bord du serveur Emby.", + "Open": "Ouvrir", + "Play": "Lire", + "Pause": "Pause", + "HeaderPlayQueue": "Jouer la file d'attente", + "HeaderAddToPlayQueue": "Ajouter à la file d'attente", + "Shuffle": "Aléatoire", + "Identify": "Identifier", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Modifier les métadonnées", + "Convert": "Convertir", + "Resume": "Reprendre", + "HeaderInstantMix": "Mix instantané", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Lire tout", + "PictureInPicture": "Image dans image", + "Fullscreen": "Plein écran", + "ExitFullscreen": "Sortir du plein écran", + "Rewind": "Rembobiner", + "FastForward": "Avance rapide", + "Remove": "Supprimer", + "Rename": "Renommer", + "Queue": "File d'attente", + "QueueAllFromHere": "Tout mettre en file d'attente à partir d'ici", + "PlayAllFromHere": "Tout lire à partir d'ici", + "PlayFromBeginning": "Lire du début", + "FromBeginning": "Depuis le début", + "ResumeAt": "Reprendre à partir de {0}", + "HeaderRemoveFromPlaylist": "Supprimer de la liste de lecture", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Supprimer de la collection", + "Sort": "Trier", + "Trailer": "Bande-annonce", + "SelectNone": "Ne rien sélectionner", + "SelectAll": "Tout sélectionner", + "HeaderMarkPlayed": "Marquer comme vu", + "HeaderMarkUnplayed": "Marquer comme non lu", + "HeaderGroupVersions": "Grouper les versions", + "PleaseSelectTwoItems": "Veuillez sélectionner au moins deux éléments.", + "HeaderConfirmRecordingCancellation": "Confirmer l'annulation de l'enregistrement", + "MessageConfirmRecordingCancellation": "Annuler l'enregistrement?", + "Album": "Album", + "AlbumArtist": "Artiste(s) de l'album", + "Error": "Erreur", + "VoiceInput": "Entrée vocale", + "LabelContentType": "Type de contenu :", + "LabelPath": "Chemin :", + "Playlists": "Listes de lecture", + "LabelTitle": "Titre :", + "LabelOriginalTitle": "Titre original :", + "LabelSortTitle": "Titre de tri :", + "LabelDateAdded": "Date d'ajout :", + "DateAdded": "Date d'ajout", + "DateModified": "Date Modified", + "DatePlayed": "Date de lecture", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configurez comment la date d'ajout est déterminée dans le tableau de bord du serveur Emby, dans Médiathèque, Avancé", + "LabelStatus": "État :", + "LabelArtistsHelp": "Séparer les différents éléments par ;", + "HeaderAlbumArtists": "Artistes de l'album", + "LabelAlbumArtists": "Artistes de l'album :", + "LabelAlbum": "Album :", + "Artist": "Artiste", + "Artists": "Artistes", + "ImdbRating": "Note IMDb", + "CommunityRating": "Note de la communauté", + "LabelCommunityRating": "Note de la communauté :", + "LabelCriticRating": "Note des critiques :", + "CriticRating": "Note de la critique", + "LabelWebsite": "Site internet :", + "Tagline": "Tagline", + "LabelOverview": "Synopsis :", + "LabelShortOverview": "Résumé :", + "LabelReleaseDate": "Date de sortie :", + "LabelPlaceOfBirth": "Lieu de naissance :", + "Aired": "Diffusé", + "LabelAirDays": "Jours de diffusion :", + "LabelAirTime": "Heure de diffusion :", + "LabelRuntimeMinutes": "Durée (minutes) :", + "LabelCustomRating": "Note personnalisée :", + "LabelOriginalAspectRatio": "Ratio d'aspect original :", + "Label3DFormat": "Format 3D :", + "FormatValue": "Format : {0}", + "DownloadsValue": "{0} téléchargements", + "HashMatch": "Hachage correspondant", + "EnableExternalVideoPlayers": "Activer les lecteurs vidéo externes", + "EnableExternalVideoPlayersHelp": "Une liste des lecteurs externes sera affichée au lancement de la lecture d'une vidéo.", + "HeaderSpecialEpisodeInfo": "Informations de l'épisode spécial", + "LabelAirsDuringSeason": "Diffusion durant la saison :", + "LabelAirsAfterSeason": "Diffusion après la saison :", + "LabelAirsBeforeEpisode": "Diffusion avant l'épisode :", + "HeaderExternalIds": "Identifiants externes :", + "HeaderDisplaySettings": "Paramètres d'affichage", + "PlaylistOrder": "Ordre de la playlist", + "CollectionOrder": "Ordre de la collection", + "LabelDisplayOrder": "Ordre d'affichage :", + "LabelFileOrder": "File order", + "Display": "Affichage", + "Countries": "Pays", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Étiquettes", + "Links": "Liens", + "Movie": "Film", + "Program": "Program", + "Channel": "Channel", + "Episode": "Épisode", + "Season": "Saison", + "HeaderMetadataSettings": "Paramètres des métadonnées", + "People": "Personnes", + "Number": "Numéro", + "Lock": "Verrouiller", + "HeaderScreenLocked": "Écran Verrouillé", + "HeaderUnlockControls": "Déverrouiller les touches", + "HeaderTapToUnlock": "Appuyer pour déverrouiller", + "LabelMetadataDownloadLanguage": "Langue de téléchargement des métadonnées préférée :", + "LabelImageDownloadLanguage": "Langue de téléchargement des images préférée :", + "LabelLockItemToPreventChanges": "Verrouiller cet élément pour éviter de futures modifications", + "LockThisField": "Verrouillez ce champ pour empêcher les modifications futures lors de l'actualisation des métadonnées", + "MessageLeaveEmptyToInherit": "Laisser vide pour hériter des paramètres de l'élément parent, ou de la valeur globale par défaut.", + "LabelCountry": "Pays :", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "ID {0} :", + "LabelBirthYear": "Année de naissance :", + "LabelBirthDate": "Date de naissance :", + "LabelDeathDate": "Date de décès :", + "LabelEndDate": "Date de fin :", + "LabelSeasonNumber": "Numéro de saison :", + "LabelEpisodeNumber": "Numéro d'épisode :", + "LabelTrackNumber": "Numéro de piste :", + "LabelNumber": "Numéro :", + "LabelDiscNumber": "Numéro de disque :", + "LabelParentNumber": "Numéro du parent :", + "SortName": "Nom de tri", + "OriginalTitle": "titre original", + "ReleaseDate": "Date de sortie", + "Continuing": "En cours", + "Ended": "Terminé", + "HeaderEnabledFields": "Activer les champs", + "HeaderEnabledFieldsHelp": "Décocher un champ pour le verrouiller et empêcher ses données d'être modifiées.", + "Backdrops": "Arrière-plans", + "Images": "Images", + "Runtime": "Durée", + "ProductionLocations": "Sites de production", + "BirthLocation": "Lieu de naissance", + "ParentalRating": "Classement parentale", + "PlayCount": "Nombre de lectures", + "Name": "Nom", + "Overview": "Synopsis", + "LabelType": "Type :", + "LabelPersonRole": "Rôle :", + "LabelPersonRoleHelp": "Exemple : Chauffeur de camion de crème glacée", + "Actor": "Acteur(trice)", + "Composers": "Compositeurs", + "Composer": "Compositeur(trice)", + "Director": "Réalisateur(trice)", + "GuestStar": "Artiste Invité", + "Producer": "Producteur(trice)", + "Writer": "Scénariste", + "MessageNoSyncJobsFound": "Aucun téléchargement trouvé. Vous pouvez créer des tâches de téléchargement grâce aux boutons Télécharger présents dans l'application.", + "MessageNoDownloadsFound": "Aucun téléchargement hors ligne. Téléchargez votre contenu multimédia pour une utilisation hors ligne en cliquant sur Télécharger dans l'application.", + "InstallingPackage": "Installation de {0}", + "PackageInstallCompleted": "L'installation de {0} est terminée.", + "PackageInstallFailed": "L'installation de {0} a échoué.", + "PackageInstallCancelled": "L'installation de {0} a été annulée.", + "SeriesYearToPresent": "{0} - Présent", + "OneDevice": "1 appareil", + "DeviceCountValue": "{0} appareils", + "OneLog": "1 journal", + "LogCountValue": "{0} journaux", + "OneVote": "1 vote", + "VoteCountValue": "{0} votes", + "OneLike": "1 j'aime", + "LikeCountValue": "{0} j'aime", + "OneUser": "1 utilisateur", + "UserCountValue": "{0} utilisateurs", + "OneLibrary": "1 médiathèque", + "LibraryCountValue": "{0} médiathèques", + "ValueOneItem": "1 élément", + "ValueOneEpisode": "1 épisode", + "ValueEpisodeCount": "{0} épisodes", + "Albums": "Albums", + "Song": "Chanson", + "Songs": "Chansons", + "Authors": "Auteurs", + "Books": "Livres", + "AudioBooks": "Livres audio", + "HeaderAudioBooks": "Livres audios", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Entrez un ou plusieurs critères de recherche. Retirez des critères pour élargir les résultats de la recherche.", + "PleaseEnterNameOrId": "Veuillez saisir un nom ou un identifiant externe.", + "MessageItemSaved": "Élément enregistré.", + "SearchResults": "Résultats de la recherche", + "ServerNameIsRestarting": "Serveur Emby - {0} redémarre.", + "ServerNameIsShuttingDown": "Serveur Emby - {0} s'arrête.", + "HeaderDeleteItems": "Supprimer les éléments", + "ConfirmDeleteItems": "La suppression de ces éléments les supprimeront à la fois du système de fichiers et de votre médiathèque.", + "PleaseRestartServerName": "Veuillez redémarrer le serveur Emby - {0}.", + "ConvertingDots": "Conversion...", + "LabelSyncNoTargetsHelp": "Il semble que vous n'ayez actuellement aucune application qui supporte le téléchargement hors ligne.", + "DownloadingDots": "Téléchargement...", + "LearnMore": "En savoir plus", + "LabelBitrateMbps": "Débit (Mbps) :", + "ConvertUnwatchedVideosOnly": "Convertir les vidéos non lues uniquement", + "SyncUnwatchedVideosOnly": "Télécharger seulement les vidéos non lues", + "ConvertUnwatchedVideosOnlyHelp": "Seulement les vidéos non lues seront converties", + "SyncUnwatchedVideosOnlyHelp": "Seule les vidéos non lues seront téléchargées et les vidéos seront supprimées de l'appareil au fur et à mesure que vous les regardez.", + "AutomaticallySyncNewContent": "Télécharger automatiquement le nouveau contenu", + "AutomaticallySyncNewContentHelp": "Le nouveau contenu ajouté à ce dossier sera automatiquement transféré vers l'appareil.", + "AutomaticallyConvertNewContent": "Convertir automatiquement les nouveaux contenus", + "AutomaticallyConvertNewContentHelp": "Les nouveaux contenus seront automatiquement convertis", + "LabelItemLimit": "Éléments maximum :", + "ConvertItemLimitHelp": "Optionnel. Définir une limite de nombre d'éléments à convertir.", + "DownloadItemLimitHelp": "Optionnel. Définir une limite de nombre d'éléments à télécharger.", + "PleaseSelectDeviceToSyncTo": "Veuillez sélectionner l'appareil auquel le téléchargement doit être envoyé.", + "Screenshots": "Captures d'écran", + "MoveRight": "Déplacer à droite", + "MoveLeft": "Déplacer à gauche", + "HeaderUploadNewImage": "Transférer une nouvelle image", + "HeaderDeleteImage": "Supprimer l'image", + "ConfirmDeleteImage": "Supprimer l'image ?", + "HeaderEditImages": "Modifier les images", + "Settings": "Paramètres", + "ShowIndicatorsFor": "Montrer les indicateurs pour :", + "Episodes": "Épisodes", + "Programs": "Programmes", + "HeaderCastCrew": "Acteurs et équipe", + "DvrSubscriptionRequired": "La TV en direct et le magnétoscope Emby nécessitent un {0}abonnement Emby Premiere{1}.", + "HeaderCancelRecording": "Annuler l'enregistrement", + "HeaderKeepRecording": "Conserver l'enregistrement", + "HeaderCancelSeries": "Annuler la série", + "HeaderKeepSeries": "Conserver la série", + "HeaderLearnMore": "En savoir plus", + "SeriesSettings": "Paramètres de la série", + "HeaderRecordingOptions": "Options d'enregistrement", + "HeaderDoNotRecord": "Ne pas enregistrer", + "HeaderSeriesOptions": "Options de la série", + "Layout": "Répartition", + "Channels": "Chaînes", + "ChannelNameOnly": "Seulement la chaîne {0}", + "Anytime": "N'importe quand", + "AnyLanguage": "N'importe quel langage", + "AroundTime": "Aux environs de {0}", + "HeaderLatestMovies": "Derniers films", + "All": "Tout", + "Stop": "Arrêt", + "AllChannels": "Toutes les chaînes", + "NewEpisodesOnly": "Uniquement les nouveaux épisodes", + "AllEpisodes": "Tous les épisodes", + "LabelStartWhenPossible": "Commencer si possible :", + "LabelStopWhenPossible": "Arrêter si possible :", + "MinutesBefore": "minutes avant", + "MinutesAfter": "minutes après", + "SkipEpisodesAlreadyInMyLibrary": "Ne pas enregistrer les épisodes déjà présents dans ma médiathèque", + "SkipEpisodesAlreadyInMyLibraryHelp": "Les épisodes seront comparés en utilisant le numéro de saison et le numéro d'épisode, s'ils sont disponibles.", + "LabelKeepUpTo": "Conserver jusqu'à :", + "AsManyAsPossible": "Autant que possible", + "DefaultErrorMessage": "Il y a eu une erreur lors de l'exécution de la requête. Veuillez réessayer plus tard.", + "UntilIDelete": "Jusqu'à ce que je le supprime", + "UntilSpaceNeeded": "Jusqu'à ce que l'espace disque soit nécessaire", + "Categories": "Catégories", + "Sports": "Sports", + "News": "Actualités", + "Movies": "Films", + "Music": "Musique", + "Kids": "Jeunesse", + "MoreFromValue": "Plus de {0}", + "DiedValue": "Décédé(e): {0}", + "BornValue": "Né(e): {0}", + "EnableColorCodedBackgrounds": "Activer les fonds avec code couleur, basé sur leur catégorie", + "SortChannelsBy": "Trier les chaînes par :", + "ChannelNumber": "Numéro de chaîne", + "HeaderBenefitsEmbyPremiere": "Les avantages d'Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Profitez d'une minute de lecture. Merci d'avoir essayé Emby.", + "HeaderTryPlayback": "Essayer la lecture", + "HowDidYouPay": "Comment avez-vous payé ?", + "IHaveEmbyPremiere": "J'ai Emby Premiere", + "IPurchasedThisApp": "J'ai acheté cette application", + "ButtonRestorePreviousPurchase": "Restaurer l'achat", + "ButtonUnlockWithPurchase": "Déverrouillez avec un achat", + "ButtonUnlockPrice": "Déverrouiller {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere {0} mensuel", + "HeaderAlreadyPaid": "Vous avez déjà payé ?", + "ButtonPlayOneMinute": "Lire une minute", + "PlaceFavoriteChannelsAtBeginning": "Mettre vos chaînes favorites au début", + "HeaderUnlockFeature": "Déverrouiller la fonctionnalité", + "MessageDidYouKnowCinemaMode": "Saviez-vous qu'avec Emby Première, vous pouvez améliorer votre expérience utilisateur grâce à des fonctionnalités comme les Introductions cinématographiques ?", + "HeaderPlayMyMedia": "Jouer mon média", + "HeaderDiscoverEmbyPremiere": "Découvrez Emby Premiere", + "HeaderNowPlaying": "Lecture en cours", + "Items": "Éléments", + "AppName": "App Name", + "OneChannel": "Une chaîne", + "ConfirmRemoveDownload": "Supprimer le téléchargement ?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Supprimer le téléchargement", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Conserver le téléchargement", + "AddedOnValue": "Ajouté le {0}", + "RemovingFromDevice": "Suppression de l'appareil", + "KeepOnDevice": "Conserver sur l'appareil", + "CancelDownload": "Annuler le téléchargement", + "SyncJobItemStatusReadyToTransfer": "Prêt pour le transfert", + "SyncJobItemStatusSyncedMarkForRemoval": "Suppression de l'appareil", + "SyncJobItemStatusQueued": "Mis en file d'attente", + "SyncJobItemStatusConverting": "Conversion en cours", + "SyncJobItemStatusTransferring": "Transfert en cours", + "SyncJobItemStatusSynced": "Téléchargé", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Supprimé de l'appareil", + "Cancelled": "Cancelled", + "Retry": "Réessayer", + "Continue": "Continuer", + "ContinueInSecondsValue": "Continuer dans {0} secondes.", + "HeaderRemoteControl": "Télécommande", + "Disconnect": "Se déconnecter", + "EnableDisplayMirroring": "Activer l'affichage mirroir", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Jouer sur", + "Quality": "Qualité", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "Pour restaurer votre achat précédent, assurez-vous de vous connecter à l'appareil avec le même compte Google (ou Amazon) qui a effectué l'achat. Assurez-vous que la boutique d'applications est activée et n'est restreinte par aucun contrôle parental, et assurez-vous d'avoir une connexion Internet fonctionnelle. Vous n'aurez à le faire qu'une seule fois, pour restaurer votre achat précédent.", + "HeaderAspectRatio": "Format d’image", + "Original": "Original", + "Fill": "Remplir", + "Cover": "Couverture", + "MessageNoServersAvailableToConnect": "Connexion impossible, aucun serveur disponible. Si vous avez été invité à partager un serveur, veuillez accepter ci-dessous ou en cliquant sur le lien dans le courriel.", + "MessagePlayAccessRestricted": "La lecture de ce contenu est actuellement restreinte. Contactez l'administrateur de votre serveur Emby pour plus d'informations.", + "Accept": "Accepter", + "Reject": "Refuser", + "Connect": "Se connecter", + "HeaderMyMedia": "Mes Médias", + "HeaderMyMediaSmall": "Mes médias (petit)", + "LatestFromLibrary": "{0}, ajouts récents", + "HeaderLatestEpisodes": "Derniers épisodes", + "ContinuePlaying": "Reprendre la lecture", + "ContinueWatching": "Continuez à regarder", + "HeaderLatestChannelMedia": "Derniers éléments de la chaîne", + "HeaderContinueWatching": "Continuer à regarder", + "HeaderContinueListening": "Reprendre l'écoute", + "HeaderActiveRecordings": "Enregistrements actifs", + "HeaderLatestRecordings": "Derniers enregistrements", + "LabelConvertTo": "Convertir en :", + "LabelDownloadTo": "Télécharger vers :", + "HeaderDownloadToDots": "Télécharger vers…", + "Next": "Suivant", + "LabelSource": "Source:", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "Toutes les langues", + "Previous": "Précédent", + "HeaderNextUp": "À Suivre", + "HeaderPlayNextUp": "Lire le suivant", + "HeaderLatestFrom": "{0}, ajouts récents", + "LabelHomeScreenSectionValue": "Section {0} de l'accueil :", + "PasswordResetComplete": "Le mot de passe a été réinitialisé.", + "PasswordSaved": "Mot de passe sauvegardé.", + "SettingsSaved": "Paramètres enregistrés.", + "Upcoming": "À venir", + "HeaderSelectImageFile": "Sélectionnez le fichier image", + "None": "Aucun", + "More": "Plus", + "Up": "Haut", + "Down": "Bas", + "Home": "Accueil", + "Back": "Retour", + "Random": "Aléatoire", + "Playback": "Lecture", + "Favorites": "Favoris", + "HeaderHomeScreen": "Écran d'accueil", + "HeaderLatestChannelItems": "Derniers éléments de la chaîne", + "HeaderLibraryOrder": "Ordre de la médiathèque", + "HeaderOnNow": "En ce moment", + "HeaderForKids": "Jeunesse", + "HeaderPlaybackError": "Erreur de lecture", + "PlaybackErrorNotAllowed": "Vous n'êtes pas autorisé à lire ce contenu. Veuillez contacter votre administrateur système pour plus de détails.", + "RateLimitExceeded": "Votre compte a dépassé la limite de diffusion maximum définie par l’administrateur de votre serveur Emby. Contactez-le pour toute assistance.", + "PlaybackErrorNoCompatibleStream": "Aucun flux compatible n'est actuellement disponible. Veuillez réessayer plus tard ou contactez votre administrateur système pour plus de détails.", + "PlaybackErrorPlaceHolder": "Veuillez insérer le disque pour lire cette vidéo.", + "PlaybackErrorNoPlayableItems": "Aucun élément jouable n'a été trouvé. Essayez-vous de lire un dossier vide ?", + "Guide": "Guide", + "Games": "Jeux", + "GameSystem": "Système de jeu", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Chaînes préférées", + "HeaderFavoriteCollections": "Collections Favorites", + "HeaderFavoritePlaylists": "Listes de lecture favorites", + "Collection": "Collection", + "Collections": "Collections", + "LabelSelectFolderGroups": "Grouper automatiquement le contenu des dossiers suivants dans des catégories telles que Films, Musique et TV :", + "LabelSelectFolderGroupsHelp": "Les dossiers qui ne sont pas cochés seront affichés tels quels, avec leur propre vue.", + "Mute": "Sourdine", + "Unmute": "Désactiver sourdine", + "Folder": "Folder", + "Folders": "Dossiers", + "FileName": "Nom de fichier", + "DisplayInOtherHomeScreenSections": "Afficher dans les sections secondaires de l’écran d’accueil comme Ajouts récents et Reprendre", + "DisplayInMyMedia": "Afficher sur l’écran d’accueil", + "Shows": "Émissions", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Vidéo musicale", + "HeaderMusicVideos": "Vidéos musicales", + "MusicVideos": "Vidéos musicales", + "Videos": "Vidéos", + "MixedContent": "Contenu mixte", + "HomeVideos": "Vidéos personnelles", + "HomeVideosAndPhotos": "Vidéos et photos personnelles", + "TVShows": "TV", + "HeaderLibraryFolders": "Dossiers de la médiathèque", + "HeaderTermsOfPurchase": "Conditions d'achat", + "PrivacyPolicy": "Politique de confidentialité", + "TermsOfUse": "Conditions d'utilisation", + "HeaderRepeatMode": "Mode répétition", + "HeaderToneMapping": "Mappage des tons", + "RepeatOne": "Répéter un média", + "RepeatAll": "Tout répéter", + "LabelDefaultScreen": "Écran par défaut", + "ConfirmEndPlayerSession": "Voulez-vous arrêter Emby sur {0} ?", + "Yesterday": "Hier", + "Yes": "Oui", + "No": "Non", + "HeaderScanLibraryFiles": "Actualiser les fichiers de la médiathèque", + "LiveTV": "TV en direct", + "Schedule": "Planning", + "Recordings": "Enregistrements", + "ScanForNewAndUpdatedFiles": "Actualiser pour détecter les nouveaux fichiers et les modifications", + "NewVersionOfXAvailableForY": "{0} est disponible pour {1}", + "DirectStreamHelp1": "Le média est compatible avec l'appareil en ce qui concerne la résolution et le type de média (H.264, AC3 etc), mais se trouve dans un conteneur de fichiers incompatible (.mkv, .avi, .wmv etc). La vidéo sera rempaquetée à la volée avant d'être diffusée à l'appareil.", + "DirectStreamHelp2": "Le streaming en direct d'un fichier utilise très peu de puissance de traitement sans perte de qualité vidéo.", + "MediaIsBeingConverted": "Le média est converti en un format compatible avec l'appareil qui lit le média.", + "StatsForNerds": "Statistiques pour les geeks", + "HeaderHardwareAcceleratedDecoding": "Décodage avec accélération matérielle", + "HeaderHardwareAcceleratedEncoding": "Encodage avec accélération matérielle", + "HeaderDirectPlay": "Lecture directe", + "DirectPlaying": "Lecture directe", + "DirectStreaming": "Streaming direct", + "Transcode": "Transcoder", + "Transcoding": "Transcodage", + "ContainerBitrateExceedsLimit": "Le débit du média dépasse la limite.", + "VideoCodecNotSupported": "Codec vidéo non supporté", + "AudioCodecNotSupported": "Codec audio non supporté", + "SubtitleCodecNotSupported": "Format des sous-titres non pris en charge", + "DirectPlayError": "Erreur de lecture directe", + "ContainerNotSupported": "Conteneur non pris en charge", + "VideoLevelNotSupported": "Niveau vidéo non pris en charge", + "AudioBitrateNotSupported": "Débit audio non pris en charge", + "AudioChannelsNotSupported": "Canaux audio non prises en charge", + "VideoResolutionNotSupported": "Résolution vidéo non prise en charge", + "AudioProfileNotSupported": "Profil audio non pris en charge", + "AudioSampleRateNotSupported": "Taux d'échantillonnage audio non pris en charge", + "AnamorphicVideoNotSupported": "Vidéo anamorphique non prise en charge", + "InterlacedVideoNotSupported": "Vidéo entrelacée non prise en charge", + "SecondaryAudioNotSupported": "Commutation de piste audio non prise en charge", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "Une erreur est survenue pendant la suppression du compte Emby Connect. Veuillez vous assurer que vous avez une connexion internet active puis réessayez.", + "HeaderEmbyAccountRemoved": "Compte Emby supprimé", + "MessageEmbyAccontRemoved": "Le compte Emby a été supprimé pour cet utilisateur.", + "HeaderInvitationSent": "Invitation envoyée", + "Offline": "Hors ligne", + "HeaderSignUp": "S'inscrire", + "ServerDownloadMessage": "Pour télécharger et installer le serveur Emby gratuit, visitez {0}.", + "ServerDownloadMessageWithoutLink": "Pour télécharger et installer le serveur Emby gratuit, visitez le site web d’Emby.", + "MessageInvitationSentToUser": "Un courriel a été envoyé à {0} avec votre invitation de partage.", + "MessageInvitationSentToNewUser": "Un courriel a été envoyé à {0}, les invitant à s'inscrire à Emby.", + "GuestUserNotFound": "Utilisateur non trouvé. Veuillez vérifier que le nom est correct et essayez à nouveau, ou essayez de renseigner l'adresse courriel.", + "ErrorReachingEmbyConnect": "Une erreur est survenue pendant la connexion au serveur Emby Connect. Veuillez vous assurer que vous avez une connexion internet active puis réessayez.", + "ErrorAddingEmbyConnectAccount1": "Une erreur est survenue lors de l'ajout du compte Emby Connect. Avez-vous créé un compte Emby ? Inscrivez-vous sur {0}.", + "ErrorAddingEmbyConnectAccount2": "Si le problème persiste, veuillez envoyer un courriel à {0} avec l'adresse utilisée lors de la création de votre compte Emby.", + "ErrorAddingGuestAccount1": "Une erreur est survenue lors de l'ajout du compte Emby Connect. Vos invités ont-ils créé un compte Emby ? Ils peuvent s'inscrire sur {0}.", + "ErrorAddingGuestAccount2": "Si le problème persiste, veuillez envoyer un courriel à {0} en précisant votre adresse courriel ainsi que la leur.", + "MessageEmbyAccountAdded": "Le compte Emby a été ajouté à cet utilisateur.", + "MessagePendingEmbyAccountAdded": "Le compte Emby a été ajouté à cet utilisateur. Un courriel sera envoyé au propriétaire du compte. Cette invitation devra être confirmée en cliquant sur un lien présent dans le courriel.", + "HeaderEmbyAccountAdded": "Compte Emby ajouté", + "Skip": "Passer", + "HeaderAdditionalParts": "Parties additionnelles", + "ButtonGenerateNewPin": "Générer un nouveau code PIN", + "ConnectLoginHelp1": "Avec Emby Connect vous pouvez aisément accéder à votre serveur Emby où que vous soyez et partager vos serveurs avec votre famille et vos amis.", + "CreatePinErrorMessage": "Une erreur est survenue lors de la création du code PIN. Veuillez cliquer sur Générer un nouveau code PIN pour réessayer.", + "PinExpiredMessage": "Le code PIN a expiré. Veuillez cliquer sur Générer un nouveau code PIN pour réessayer.", + "ConnectPinCodeHeader": "Pour vous connecter avec Emby Connect, utilisez un appareil mobile ou un ordinateur pour visiter {0} et saisissez le code PIN suivant :", + "LabelSubtitlePlaybackMode": "Mode des sous-titres :", + "ErrorDeletingItem": "Une erreur s'est produite lors de la suppression de l'élément du serveur Emby. Vérifiez que le serveur Emby a un accès en écriture au dossier multimédia et réessayez.", + "NoSubtitles": "Pas de sous-titres", + "Default": "Par défaut", + "Absolute": "Absolu", + "Smart": "Intelligent", + "Small": "Petit", + "Smaller": "Plus petit", + "Medium": "Moyen", + "Large": "Grand", + "Larger": "Plus grand", + "ExtraLarge": "Très grand", + "ExtraSmall": "Plus petit", + "Forced": "Forcé", + "External": "Externe", + "HeaderEmbeddedTitle": "Titre intégré", + "OnlyForcedSubtitles": "Seulement les sous-titres forcés", + "AlwaysPlaySubtitles": "Toujours lancer les sous-titres", + "DefaultSubtitlesHelp": "Les sous-titres seront chargés selon les marqueurs par défaut et forcé dans les métadonnées intégrées. Les langues préférées seront utilisées quand plusieurs options seront disponibles.", + "SmartSubtitlesHelp": "Les sous-titres correspondant à la langue préférée seront chargés lorsque l'audio est dans une langue étrangère.", + "HeaderSubtitleSettings": "Paramètres des sous-titres", + "HeaderSubtitleAppearance": "Apparence des sous-titres", + "OnlyForcedSubtitlesHelp": "Seuls les sous-titres marqués comme forcés seront chargés.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Les sous-titres correspondant à la préférence linguistique seront chargés indépendamment de la langue de l'audio.", + "NoSubtitlesHelp": "Les sous-titres ne seront pas chargés par défaut. Ils peuvent toujours être activés manuellement pendant la lecture.", + "LabelPreferredSubtitleLanguage": "Langue de sous-titrage préférée:", + "LabelTextSize": "Taille du texte :", + "TheseSettingsAffectSubtitlesOnThisDevice": "Ces paramètres affectent les sous-titres de cet appareil", + "LabelDropShadow": "Ombre portée :", + "LabelTextBackgroundColor": "Couleur de fond du texte :", + "LabelWindowBackgroundColor": "Couleur de fond du texte :", + "LabelFont": "Police :", + "LabelTextColor": "Couleur du texte :", + "LabelBackgroundColor": "Couleur du fond :", + "LabelBackgroundOpacity": "Transparence du fond :", + "Raised": "Augmenter", + "Depressed": "Diminuer", + "Uniform": "Uniforme", + "DropShadow": "Ombre portée", + "SmallCaps": "Petites majuscules", + "SubtitleAppearanceSettingsDisclaimer": "Ces paramètres ne s'appliqueront pas aux sous-titres graphiques (PGS, DVD etc) ou aux sous-titres qui ont leurs propres styles incorporés (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "En attente du Wi-Fi", + "WifiRequiredToDownload": "Une connexion Wi-Fi est nécessaire pour continuer le téléchargement.", + "DownloadOnlyOnWifi": "Télécharger uniquement en Wi-Fi", + "LabelMusicDownloadQuality": "Qualité du téléchargement de musique :", + "MusicDownloadQualityHelp": "Les fichiers audio ayant un débit plus élevé seront convertis par le serveur Emby. Sélectionnez une valeur élevée pour une meilleure qualité, ou une valeur faible pour conserver l'espace de stockage local.", + "HeaderDownloadSettings": "Paramètres de téléchargement", + "LabelDownloadLocation": "Emplacement de téléchargement :", + "BrowseForFolder": "Explorer les dossiers", + "Unlimited": "Illimité", + "NoLimit": "No limit", + "Hide": "Cacher", + "HeaderKeepWatching": "Continuer à regarder", + "HeaderNextEpisode": "Episode Suivant", + "AudioBitDepthNotSupported": "Profondeur des échantillons de l'audio non prise en charge", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Profil vidéo non pris en charge", + "VideoFramerateNotSupported": "Nombre d'images par seconde de la vidéo non pris en charge", + "VideoBitDepthNotSupported": "Profondeur des couleurs de la vidéo non prise en charge", + "RefFramesNotSupported": "Nombre d'images de référence de la vidéo non pris en charge", + "ErrorConnectServerUnreachable": "Une erreur est survenue pendant l'exécution de l'opération demandée. Votre serveur est dans l'incapacité de joindre le serveur d'Emby Connect à {0}. Veuillez vérifier que votre serveur est bien connecté à Internet et qu'aucun pare-feu ou autre logiciel de sécurité ne bloque les communications.", + "HeaderStopRecording": "Arrêter l'enregistrement", + "ManageRecording": "Gérer l'enregistrement", + "LabelDropImageHere": "Faites glisser l'image ici ou sélectionner une image à téléverser.", + "MessageFileReadError": "Une erreur est survenue lors de la lecture du fichier. Veuillez réessayer.", + "Browse": "Parcourir", + "HeaderUploadImage": "Envoyer une image", + "HeaderAddUpdateImage": "Ajouter/Mettre à jour une image", + "HeaderShowFields": "Afficher les champs", + "LabelView": "Vue :", + "LabelImageType": "Type d'image :", + "Upload": "Envoyer", + "Primary": "Principal", + "PrimaryImageBlur": "Image principale brouillée", + "Art": "Art", + "Backdrop": "Arrière-plan", + "Banner": "Bannière", + "Box": "Boîtier", + "BoxRear": "Boîtier (dos)", + "Disc": "Disque", + "Logo": "Logo", + "LogoDark": "Logo (version sombre)", + "LogoLight": "Logo (version clair)", + "LogoLightColor": "Logo (clair avec couleur)", + "Menu": "Menu", + "Screenshot": "Capture d'écran", + "Thumb": "Vignette", + "HeaderAudioSettings": "Réglages audio", + "LabelAudioLanguagePreference": "Langue audio préférée :", + "LabelPlayDefaultAudioTrack": "Utiliser le flux audio par défaut quelle que soit la langue", + "HeaderVideoQuality": "Qualité vidéo", + "CinemaModeConfigurationHelp": "Les Introductions cinématographiques apportent l'expérience du cinéma directement dans votre salon grâce à la possibilité de lire des bandes annonces et des introductions personnalisées avant le film principal.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Lancer l'épisode suivant automatiquement", + "LabelMaxChromecastBitrate": "Qualité maximum pour Chromecast :", + "LabelSkipBackLength": "Durée des sauts en arrière :", + "LabelSkipForwardLength": "Durée des sauts en avant :", + "EnableCinemaMode": "Activer les Introductions cinématographiques", + "LabelInternetQuality": "Qualité d'internet :", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Qualité de la musique :", + "LabelHomeNetworkQuality": "Qualité du réseau local :", + "HeaderLatestMedia": "Derniers médias", + "HeaderRestartingEmbyServer": "Redémarrage du serveur Emby", + "RestartPleaseWaitMessage": "Veuillez patienter pendant que le serveur Emby s'arrête et redémarre. Cela peut prendre une minute ou deux.", + "HeaderPlayNext": "Lire le suivant", + "AutoBasedOnLanguageSetting": "Auto (basé sur la langue de l'appareil)", + "SameAsMainTheme": "Identique au thème principal", + "LabelDateTimeLocale": "Date et heure locale :", + "Genre": "Genre", + "DirectorValue": "Réalisateur: {0}", + "DirectorsValue": "Réalisateurs: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Mots clés: {0}", + "Off": "Désactivés", + "Title": "Titre", + "Year": "Année", + "Filter": "Filtre", + "Filters": "Filtres", + "Unplayed": "Non vu", + "LabelTVHomeScreen": "Écran d'accueil du mode TV :", + "Horizontal": "Horizontal", + "Vertical": "Verticale", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Grouper par séries", + "HeaderVideoType": "Type de vidéo", + "HeaderSeriesStatus": "Statut de la série", + "Features": "Longs métrages", + "Trailers": "Bandes-annonces", + "Extras": "Extras", + "ThemeSongs": "Chansons thématiques", + "ThemeVideos": "Vidéos thématiques", + "HeaderFavoriteMovies": "Films Favoris", + "HeaderFavoritePhotos": "Photos préférées", + "HeaderFavoriteShows": "Séries Favorites", + "HeaderFavoriteEpisodes": "Episodes Favoris", + "HeaderFavoriteVideos": "Vidéos favoris", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Jeux Favoris", + "HeaderFavoriteArtists": "Artistes Favoris", + "HeaderFavoriteAlbums": "Albums Favoris", + "HeaderFavoriteSongs": "Chansons Favorites", + "HeaderFavoriteAuthors": "Auteurs favoris", + "HeaderFavoriteAudioBooks": "Livres audio favoris", + "Ascending": "Croissant", + "Descending": "Décroissant", + "HeaderColorPrimaries": "Couleurs primaires", + "HeaderColorSpace": "Espace colorimétrique", + "HeaderColorTransfer": "Transfert de couleur", + "HeaderVideoRange": "Gamme vidéo", + "SeriesDisplayOrderHelp": "Ranger les épisodes par date de diffusion, par ordre de DVD ou par numéro absolu.", + "LabelVerticalPositionFromBottom": "Position verticale (depuis le bas) :", + "HeaderFavoritePeople": "Personnes favorites", + "MultiSelect": "Sélection multiple", + "HeaderSignOut": "Déconnexion", + "HeaderSelectServer": "Sélectionner le serveur", + "HeaderChangeServer": "Changer de serveur", + "HeaderChangeUser": "Changer d'utilisateur", + "HeaderAppSettings": "Paramètres de l'application", + "HeaderLoginSettings": "Paramètres de connexion", + "LabelRememberLogin": "Se souvenir de la connexion :", + "LabelAutomaticallySignOut": "Déconnexion automatique :", + "BetaTesterMessage": "Merci d'être un testeur bêta Emby! Veuillez laisser vos commentaires dans le {0}\"Testing Area\" de la communauté Emby{1}.", + "HardwareAccelerated": "Accélération matérielle", + "Software": "Logiciel", + "Metadata": "Métadonnées", + "HeaderMediaInfo": "Informations du média", + "Locked": "Verrouillé", + "HeaderSplitVersionsApart": "Séparer les versions", + "Any": "N’importe lequel", + "Admin": "Administrateur", + "HeaderReadMore": "En lire plus", + "CustomRatingHelp": "Une note personnalisée pour les évaluations de contrôle parental est utilisée mais n’est pas affichée. Le champ de classification parentale est toujours affiché.", + "KeepUpToHelp": "Les enregistrements qui dépassent la limite sont supprimés quand l’enregistrement suivant commence. Les enregistrements les plus anciens sont supprimés d’abord, par date d’ajout.", + "NoItemsMatchingFound": "Aucun élément correspondant à vos critères de recherche n’a été trouvé.", + "TwoSearchCharsRequired": "Veuillez saisir au moins deux caractères à rechercher.", + "PreventPlaybackContinuing": "Empêche la lecture de continuer indéfiniment en demandant régulièrement une action de l’utilisateur.", + "PromptStillWatching": "Activer la demande « Vous regardez toujours ? »", + "HeaderMissingMetadata": "Métadonnées manquantes", + "HeaderIncludedIn": "Inclus dans", + "EmbyConnectUserAlreadyLinked": "Le compte Emby est déjà lié à un utilisateur local existant sur ce serveur.", + "VideoFilesWillBeConvertedTo": "Les vidéos converties seront enregistrées comme {0}.", + "VideoWillBeConvertedTo": "Les flux vidéo seront convertis en {0} ou copiés depuis le fichier original s’ils sont déjà en {0} et que la qualité correspond aux options de conversion.", + "VideoWillBeConvertedToOrCopied": "Les flux vidéo seront convertis en {0} ou copiés depuis le fichier original s’ils font partie de {1} et que la qualité correspond aux options de conversion.", + "AudioWillBeConvertedTo": "Les flux audio seront convertis en {0} ou copiés depuis le fichier original s’ils sont déjà en {0} et que la qualité correspond aux options de conversion.", + "AudioWillBeConvertedToOrCopied": "Les flux audio seront convertis en {0} ou copiés depuis le fichier original s’ils font partie de {1} et que la qualité correspond aux options de conversion.", + "HeaderSpecialKeys": "Touches Spéciales", + "FollowingSpecialKeys": "Les touches spéciales suivantes sont supportés sur la plupart des claviers et des télécommandes :", + "HeaderDeleteSeries": "Supprimer les séries", + "HeaderDeleteLastPlayedEpisode": "Supprimer le dernier épisode lu", + "HeaderConnectingToServer": "Connexion au serveur", + "ServerNameValue": "Nom du server : {0}", + "DomainValue": "Domaine : {0}", + "RatedValue": "Classifié {0}", + "LocalServerRedirectMessage": "Vous allez maintenant être redirigé vers le domaine détenu et géré par l'administrateur du serveur auquel vous avez choisi de vous connecter :", + "AllMediaOwnedHosted": "Tous les médias sont hébergés et gérés par le propriétaire de {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Activer la commutation du taux de rafraîchissement de l'affichage", + "EnableDisplayRefreshRateSwitchingHelp": "Permet à Emby de changer la fréquence de rafraîchissement de l'affichage sur la même valeur (ou multiple de) que la fréquence d'images dans laquelle la vidéo a été encodée avant de démarrer la lecture. Ceci permet de minimiser la quantité de saccades que vous pourriez voir lors de la lecture de vidéos qui ne correspondent pas bien.", + "RememberSelectedAudioTracks": "Se souvenir des pistes audio sélectionnées", + "RememberSelectedSubtitleTracks": "Se souvenir des sous-titres sélectionnés", + "RememberSelectedSubtitleTracksHelp": "Les sélections de pistes de sous-titres seront mémorisées par vidéo et réappliquées lors de la lecture de la même vidéo.", + "RememberSelectedAudioTracksHelp": "Les sélections de pistes audio seront mémorisées sur une base par vidéo et réappliquées lors de la lecture de la même vidéo.", + "ClearSavedTrackSelections": "Effacer les sélections de pistes enregistrées", + "HeaderClearTrackSelections": "Effacer les sélections de pistes enregistrées", + "QuestionClearSavedTracks": "Effacer toutes les sélections de pistes enregistrées?", + "LabelChannelTags": "Étiquettes de chaîne:", + "AfterThisPlaysConfirmation": "Après cette lecture, voulez-vous continuer à jouer ou effacer la musique que vous avez précédemment mise en file d'attente ?", + "Keep": "Conserver", + "Clear": "Effacer", + "HeaderClearFilters": "Effacer les filtres", + "HeaderSearchForImages": "Rechercher des images", + "HeaderSearchNewImage": "Rechercher une nouvelle image", + "HeaderSearchForAnImage": "Rechercher une image", + "DragDropToReorder": "Glisser-déposer pour réorganiser", + "HeaderAddImageFromUrl": "Ajouter une image à partir d'une URL", + "HeaderSetImageFromUrl": "Définir l'image à partir de l'URL", + "LabelUrl": "Url:", + "LabelChannelNumber": "Numéro de chaîne :", + "LabelGuideDataChannel": "Canal du guide :", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copier dans le presse-papier", + "TimeRemainingValue": "{0} restant", + "LabelResumeRewindSeconds": "En reprise de lecture, retour en arrière:", + "ResumeRewindSecondsHelp": "Peut aider à vous rappeler où vous vous êtes arrêté.", + "HeaderSavePlayQueueToPlaylist": "Enregistre dans la liste de lecture", + "EnableLogoImagesAsTitle": "Afficher des logos à la place des titres sur les écrans de détail", + "EnableLogoImagesAsTitleHelp": "Un logo sera affiché à la place du titre sur l'écran de détail des vidéos. Si le logo n'est pas disponible, le titre textuel sera affiché.", + "LabelNowPlayingAudioBackgroundStyle": "Style d'arrière-plan pour l'audio en cours :", + "LabelNowPlayingVideoBackgroundStyle": "Style d'arrière-plan pour la vidéo en cours :", + "NowPlayingVideoBackgroundStyleHelp": "Détermine le style d'arrière-plan lors du contrôle à distance de la lecture vidéo sur un autre appareil.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Durée maximale d'enregistrement:", + "MaxRecordingLengthHelp": "Limite les enregistrements à une durée déterminée, quelle que soit la durée de la diffusion. Mettre à 0 pour aucune limite.", + "RemoteWAN": "Adresse distante (WAN)", + "HeaderLastConnectedTo": "Dernière connexion à", + "Version": "Version", + "Keyword": "Mot-clé", + "HeaderServerAddress": "Adresse du serveur", + "HeaderSkipIntro": "Passer l'introduction", + "HeaderCreateRecording": "créer enregistrement", + "HeaderAddRecording": "Ajouter enregistrement", + "HeaderChannelAndTime": "Chaine et Heure", + "LabelRecordProgramOrSeriesFrom": "Enregistrer une émission ou une série à partir de:", + "LabelStartTime": "Heure de début:", + "LabelEndTime": "Heure de fin:", + "LabelFrequency": "Fréquence:", + "Recurring": "Récurrent", + "Once": "Une fois", + "Start": "Démarrer", + "Unpause": "Reprendre", + "LabelIntroSkipMode": "Passer l'intro:", + "ShowSkipIntroButton": "Afficher le bouton 'Passer l'intro'", + "AutoSkipIntro": "Sauter automatiquement les intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Afficher les informations de classification en début de lecture vidéo", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Affiche brièvement les informations de classification au démarrage de la lecture vidéo.", + "IntroSkipModeHelp": "Affiche un bouton 'Passer l'intro' ou saute automatiquement les intros pour les épisodes dans lesquels Emby Server a détecté des marqueurs d'intro. La détection d'intro doit être activée dans Emby Server.", + "EnableHomeScreenFocusPreview": "Utiliser une mise en page sur l'écran d'accueil qui affiche un aperçu détaillé de l'élément sélectionné", + "EnableHomeScreenFocusPreviewHelp": "Peut ne pas fonctionner correctement si votre écran d'accueil contient différents types de médias.", + "LabelHideMediaTransportButtons": "Masquer les touches de déplacement du lecteur vidéo:", + "HideMediaTransportButtonsHelp": "Crée une interface de lecture simplifiée en masquant les touches de déplacement basiques telles que Avancer, Reculer et Pause. Ces fonctions seront toujours accessibles en utilisant les flèches et la touche OK/Entrée. 'Auto' masque les boutons de déplacement quand la souris n'est pas détectée par l'application.", + "ImageSizeHelp": "Définissez la dimension des images sur la page.", + "LabelImageSize": "Taille de l'image:", + "ThisImageIsOnlyPreview": "Cette image est seulement une prévisualisation fournie par le moteur de recherche de métadonnées. L'image téléchargée par Emby Server pourrait être différente et dépendra des options que vous avez configuré dans les paramètres de bibliothèque d'Emby.", + "ResultsRangeValue": "{0} à {1} sur {2}", + "NotificationsDescription": "Paramétrez les notifications pour rester informés sur les évènements importants survenus sur votre serveur Emby.", + "DeleteEmbyConnectAccount": "Supprimer le compte Emby Connect", + "DeleteEmbyConnectAccountHelp": "Pour supprimer votre compte Emby Connect, veuillez vous authentifier auprès de la {0}Communauté Emby{1} à {2}. Une fois authentifié, cliquez ensuite sur votre nom d'utilisateur en haut à droite, puis cliquez sur Account Settings, puis cliquez sur Delete My Account.", + "KeepPlayingInBackground": "Continuer de lire en arrière-plan", + "LabelVideoBackBehavior": "Comportement du bouton retour du lecteur :", + "HeaderViewLyrics": "Voir les paroles", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Gérer l'accès", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Sous-titres téléchargés", + "HeaderMakePrivate": "Rendre privé", + "HeaderMakePublic": "Rendre public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/fr.json b/modules/common/strings/fr.json new file mode 100644 index 0000000..ab27d9b --- /dev/null +++ b/modules/common/strings/fr.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Remplacer les miniatures d'aperçu vidéo existantes", + "ReplaceExistingThumbnailImagesHelp": "Toutes les miniatures d'aperçu vidéo existantes seront supprimées et de nouvelles seront générées, si elles sont activées dans les options de la bibliothèque.", + "DateCreated": "Date de création", + "CreatedOnValue": "Créé le {0}", + "UpdatedOnValue": "Mis à jour le {0}", + "EmbyLoginTerms": "Emby est conçu de manière à vous aider à gérer votre médiathèque personnelle, comme les vidéos et les photos. Veuillez consulter nos {0}conditions d’utilisation{1}. L'utilisation d’un logiciel Emby entraîne l’acceptation de ces conditions.", + "MessageUnableToConnectToServer": "Nous sommes dans l'impossibilité de nous connecter au serveur sélectionné. Veuillez vérifier qu'il est bien démarré et réessayez.", + "EmbyIntroMessage": "Avec Emby, vous pouvez facilement diffuser vidéos, musiques et photos sur vos smartphones, tablettes et autres périphériques, depuis votre serveur Emby.", + "HeaderSignInWithConnect": "Se connecter avec Emby Connect", + "HeaderWelcomeToEmby": "Bienvenue sur Emby", + "HeaderNewUsers": "Nouveaux utilisateurs", + "HeaderPleaseSignIn": "Veuillez vous connecter", + "MessageInvalidUser": "Nom d'utilisateur ou mot de passe incorrect. Réessayez.", + "MessageUnlockAppWithPurchaseOrSupporter": "Déverrouillez cette fonctionnalité avec un petit achat, ou avec un abonnement Emby Premiere.", + "MessageUnlockAppWithSupporter": "Déverrouillez cette fonctionnalité avec un abonnement Emby Premiere.", + "MessageToValidateSupporter": "Si vous avez un abonnement Emby Premiere, veuillez-vous assurer que vous avez configuré Emby Premiere dans le tableau de bord de votre serveur Emby auquel vous pouvez accéder en cliquant sur Emby Premiere dans le menu principal.", + "ValueSpecialEpisodeName": "Spécial - {0}", + "HeaderSignIn": "Se connecter", + "Share": "Partager", + "Shared": "Partagé", + "Info": "Info", + "Add": "Ajouter", + "Speed": "Vitesse", + "PlaybackSpeed": "Vitesse de lecture", + "Chapters": "Chapitres", + "Password": "Mot de passe", + "SavePassword": "Enregistrer le mot de passe", + "LabelPassword": "Mot de passe", + "HeaderResetPassword": "Réinitialiser le mot de passe", + "Series": "Séries", + "Preview": "Aperçu", + "Submit": "Soumettre", + "Never": "Jamais", + "Table": "Table", + "HeaderScheduledTasks": "Tâches planifiées", + "Plays": "Morceaux", + "LastUsedAddressValue": "Dernière utilisation {0}", + "LabelKeywordType": "Type de mot clé", + "HeaderSelectColumns": "Sélectionnez les colonnes", + "HeaderTopResults": "Meilleurs Résultats", + "HeaderPinSidebar": "Epingler la barre latérale", + "Collapse": "Réduire", + "LabelBackgroundVideoPlayback": "Lecture vidéo en arrière-plan", + "BackgroundVideoPlaybackHelp": "La lecture en arrière-plan permet de continuer à lire la vidéo même si l'écran est éteint.", + "AlwaysOn": "Toujours activé", + "HeadphonesOrExternalSpeakersConnected": "Casque ou enceintes connectés", + "HeaderKeyboardAndRemote": "Clavier et télécommande", + "NoSelectedItemsSupportOperation": "Aucun élément sélectionné ne prend en charge cette opération.", + "NoOperationsForSelectedItems": "Aucune opération n’est disponible pour les éléments sélectionnés.", + "UploadOnlyOnWifi": "Envoyer seulement en Wi-Fi", + "HeaderFoldersToUpload": "Dossiers à téléverser", + "LabelPasswordConfirm": "Mot de passe (confirmation)", + "HeaderMoveUpInOrder": "Déplacer vers le haut", + "HeaderDownUpInOrder": "Déplacer vers la bas", + "LabelUsername": "Nom d'utilisateur", + "HeaderAddServer": "Ajouter un serveur", + "HeaderSubtitleOffset": "Décalage des sous-titres", + "Watching": "Lecture en cours", + "HeaderRemoveFromContinueWatching": "Supprimer de Reprendre", + "RemoveThisTitleFromContinueWatching": "Supprimer cet élément de Reprendre ?", + "HeaderRemoveFromContinueListening": "Retirer de Reprendre l'écoute", + "RemoveThisTitleFromContinueListening": "Retirer ce titre de Reprendre l'écoute ?", + "HeaderIncreaseSubtitleOffset": "Augmenter le décalage des sous-titres", + "HeaderDecreaseSubtitleOffset": "Diminuer le décalage des sous-titres", + "Close": "Fermer", + "HeaderSeeAll": "Tout voir", + "HeaderOpenInNewWindow": "Ouvrir dans une nouvelle fenêtre", + "LabelEmail": "Email", + "LabelHost": "Hôte", + "LabelHostHelp": "Exemple : 192.168.1.100 ou https://monserveur.com", + "LabelPort": "Port", + "Disabled": "Désactivé", + "Uninstall": "Désinstaller", + "Enable": "Activer", + "AllTuners": "Tous les tuners", + "Disable": "Désactiver", + "NextValue": "Suivant: {0}", + "HeaderNextItem": "Élément suivant", + "HeaderPreviousItem": "Élément Précédent", + "NoTrailersMessage": "Aucune bande-annonce trouvée. Pour ajouter des bandes-annonces, installez l’extension Trailer depuis le {0}catalogue d’extensions Emby{1}.", + "UninstallPluginConfirmation": "Voulez-vous vraiment désinstaller cette extension?", + "HeaderUninstallPlugin": "Désinstaller l’extension", + "AreYouStillWatching": "Vous regardez toujours?", + "LabelCurrentPassword": "Mot de passe actuel", + "LabelNewPassword": "Nouveau mot de passe", + "LabelNewPasswordConfirm": "Confirmer le nouveau mot de passe", + "HeaderRemovePassword": "Supprimer le mot de passe", + "ServerUpdateNeeded": "Le serveur Emby doit être mis à jour. Pour télécharger la dernière version, veuillez visiter {0}", + "MessageThankYouForConnectSignUp": "Merci de vous être inscrits sur Emby Connect. Un email va vous être envoyé, avec les instructions pour confirmer votre nouveau compte. Merci de confirmer ce compte puis de revenir à cet endroit pour vous connecter.", + "MessageThankYouForConnectSignUpNoValidation": "Merci de vous être inscrit à Emby Connect! Vous allez maintenant être invité à vous connecter avec vos informations Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "Le mot de passe et sa confirmation doivent correspondre.", + "ErrorMessageUsernameInUse": "Ce nom d'utilisateur est déjà utilisé. Veuillez en choisir un autre et réessayer.", + "ErrorMessageEmailInUse": "Cette adresse email est déjà utilisée. Veuillez en saisir une autre et réessayer, ou bien utiliser la fonction du mot de passe oublié.", + "HeaderUpcomingOnTV": "Bientôt à la TV", + "HeaderOtherShowings": "Autres projections", + "Showings": "Projections", + "HeaderConnectToServer": "Connexion au serveur", + "ConnectToServerManually": "Se connecter au serveur manuellement", + "LabelEnterConnectUserNameHelp": "Ceci est l'adresse e-mail que vous utilisez pour paramétrer votre compte Emby Connect", + "HeaderSignInError": "Erreur de connexion", + "HeaderManualLogin": "Connexion manuelle", + "PasswordResetConfirmation": "Voulez-vous vraiment réinitialiser le mot de passe ?", + "ContactAdminToResetPassword": "Veuillez contacter votre administrateur système pour réinitialiser votre mot de passe.", + "ForgotPasswordInNetworkRequired": "Veuillez réessayer à partir de votre réseau local pour démarrer la procédure de réinitialisation du mot de passe.", + "ForgotPasswordFileCreated": "Le fichier suivant a été créé sur votre serveur et contient les instructions sur la procédure à suivre:", + "ForgotPasswordFileExpiration": "Le code PIN de réinitialisation expirera à {0}.", + "InvalidForgotPasswordPin": "Le code PIN saisi est invalide ou a expiré. Veuillez réessayer.", + "PasswordResetForUsers": "Les mot de passes ont été supprimés pour les utilisateurs suivants. Pour vous connecter, identifiez-vous avec un mot de passe vide.", + "HeaderForgotPassword": "Mot de passe oublié ?", + "ForgotPasswordUsernameHelp": "Laissez ce champ vide si vous ne vous souvenez pas de votre nom d'utilisateur.", + "HeaderPasswordReset": "Mot de passe réinitialisé", + "AttributeNew": "Nouveau", + "Done": "Terminé", + "HeaderResetToDefault": "Rétablir la valeur par défaut", + "Deinterlacing": "Désentrelacement", + "HeaderBurningInSubtitles": "Incrustation des sous-titres", + "Premiere": "Premiere", + "LabelPinCode": "Code PIN", + "LabelLocalNetworkPinCode": "Code PIN du réseau local", + "LabelLocalNetworkPasswordMode": "Mode de connexion au réseau local", + "RequirePasswordInLocalNetwork": "Demander un mot de passe sur le réseau local", + "NoPasswordInLocalNetwork": "Ne pas demander un mot de passe sur le réseau local", + "PinCodeInLocalNetwork": "Autoriser un code PIN numérique sur le réseau local", + "LocalNetworkPasswordModeHelp": "Sélectionnez la méthode de connexion pour les appareils sur le même réseau local que votre serveur Emby.", + "HeaderLocalNetworkAccess": "Accès par le réseau local", + "Live": "En direct", + "Reset": "Réinitialiser", + "Repeat": "Répéter", + "Track": "Piste", + "Tracks": "Pistes", + "HeaderCameraUpload": "Transfert depuis l’appareil photo", + "TrackCount": "{0} pistes", + "ItemCount": "{0} éléments", + "NumberChannelsValue": "{0} Chaînes", + "HeaderLatestMusic": "Dernières musiques", + "HeaderLatestAudioBooks": "Derniers livres audio", + "HeaderLatestDownloadedVideos": "Dernières vidéos téléchargées", + "HeaderRecentlyPlayed": "Lu récemment", + "Recent": "Récent", + "HeaderFrequentlyPlayed": "Lu fréquemment", + "HeaderMoreLikeThis": "Similaire", + "HeaderMoreLikeThisOnLiveTV": "Plus de contenu similaire en direct", + "OriginalAirDateValue": "Date de diffusion originale: {0}", + "EndsAtValue": "Se termine à {0}", + "Date": "Date", + "AirDate": "Date de diffusion", + "Played": "Lu", + "Daily": "Chaque jour", + "Weekly": "Hebdomadaire", + "RequireHashMatch": "Exiger la correspondance des hachages", + "RequireHashMatchHelp": "Demander une correspondance de hachage filtrera les sous-titres pour n'inclure que ceux qui ont été testés avec votre fichier vidéo exact. Si vous le désactivez, vous aurez plus de chances qu’un sous-titre soit téléchargé, mais également plus de chances que le texte des sous-titres soit mal synchronisé ou incorrect.", + "SearchForForcedSubtitlesOnly": "Seulement les sous-titres forcés", + "SearchForForcedSubtitlesOnlyHelp": "Demander les sous-titres forcés limitera les résultats aux sous-titres qui sont marqués comme ayant une langue étrangère.", + "LastEpisodeDateAdded": "Date d'ajout du dernier épisode", + "LastEpisodeDateAired": "Date de sortie du dernier épisode", + "LabelPlaystate": "État de lecture", + "Studio": "Studio", + "Tag": "Étiquette", + "EpisodeTitle": "Titre de l'épisode", + "Audio": "Audio", + "Video": "Vidéo", + "Subtitle": "Sous-titres", + "Image": "Image", + "CopyStream": "Copier le flux original", + "LabelAudioLayout": "Disposition audio", + "LabelAudioCodec": "Codec audio", + "LabelAudioLanguage": "Langue audio", + "LabelSubtitleLanguage": "Langue des sous-titres", + "LabelVideoCodec": "Codec vidéo", + "LabelSubtitleCodec": "Codec des sous-titres", + "LabelParentalRating": "Classification parentale", + "BecauseYouLikeValue": "Parce que vous aimez {0}", + "BecauseYouWatchedValue": "Parce que vous avez regardé {0}", + "DirectedByValue": "Réalisé par {0}", + "StarringValue": "Avec {0}", + "Invitations": "Invitations", + "ActorAsRole": "{0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Grouper les éléments dans des collections", + "GroupItemsIntoCollectionsHelp": "Grouper les éléments en fonction des collections auxquelles ils ont été ajoutés. L'activation de certains filtres ou ordres de tris peut automatiquement le désactiver.", + "GroupItemsIntoTags": "Regrouper les éléments dans des tags", + "GroupItemsIntoTagsHelp": "Regrouper les éléments basés sur les tags dans lesquels ils ont été ajoutés. Activer certains filtres ou ordre de classement pourrait automatiquement désactiver ce regroupement.", + "User": "Utilisateur", + "Access": "Accès", + "Users": "Utilisateurs", + "Library": "Médiathèque", + "Devices": "Appareils", + "Cancel": "Annuler", + "Restart": "Redémarrer", + "Shutdown": "Éteindre", + "Logs": "Journaux", + "Visibility": "Visibilité", + "Notifications": "Notifications", + "SendTestNotification": "Envoyer une notification de test", + "NotificationSent": "Notification envoyée", + "DeleteNotificationConfirmation": "Êtes-vous sûr de vouloir supprimer cette notification ?", + "DeleteNotification": "Supprimer une notification", + "AddNotification": "Ajouter une notification", + "EditNotification": "Modifier une notification", + "LimitUserEventsTo": "Limiter les évènements utilisateur à", + "LimitLibraryEventsTo": "Limiter les évènements bibliothèque à", + "LimitDeviceEventsTo": "Limiter les évènements des appareils à", + "ForAdditionalNotificationOptions": "Les services de notifications additionnels peuvent être installés par l'administrateur du serveur dans le {0}catalogue d'extensions{1} d'Emby.", + "Plugins": "Extensions", + "Systems": "Systèmes", + "Server": "Serveur", + "Dashboard": "Tableau de bord", + "PlayOnAnotherDevice": "Lire sur un autre appareil", + "HeaderConnectionHelp": "Aide à la connexion", + "AccessRestrictedTryAgainLater": "L'accès est actuellement restreint. Veuillez réessayer plus tard.", + "ButtonGotIt": "Compris", + "RememberMe": "Se souvenir de moi", + "EmbyServer": "Serveur Emby", + "ManageEmbyServer": "Gérer le serveur Emby", + "ShutdownServer": "Éteindre le serveur Emby", + "RestartServer": "Redémarrer le serveur Emby", + "RecordingCancelled": "Enregistrement Annulé", + "SeriesCancelled": "Série Annulée", + "Recording": "Enregistrement", + "SeriesRecording": "Enregistrement de séries", + "RecordingScheduled": "Enregistrement Planifié", + "SeriesRecordingScheduled": "Enregistrement de la Série Planifié", + "HeaderNewRecording": "Nouvel enregistrement", + "HeaderWakeServer": "Réveiller le serveur", + "AttemptingWakeServer": "Essai de réveil du serveur. Veuillez patienter...", + "WakeServerSuccess": "Réussi!", + "HeaderCustomizeHomeScreen": "Personnaliser l'écran d'accueil", + "WakeServerError": "Des paquets Wake-On-LAN on été envoyé à votre serveur, mais nous ne pouvons pas nous connecter à votre serveur Emby. Votre machine a peut-être besoin de plus de temps pour se réveiller, ou le serveur Emby n'est peut-être pas lancé sur la machine.", + "Days": "Jours", + "Network": "Réseau", + "Networks": "Réseaux", + "SortByValue": "Trier par {0}", + "HeaderSortBy": "Trier par", + "HeaderPhotoAlbums": "Albums photo", + "Photos": "Photos", + "HeaderAppearsOn": "Apparait dans", + "List": "Liste", + "HeaderRecordSeries": "Enregistrer la série", + "HeaderCinemaMode": "Intros cinéma", + "Conversions": "Conversions", + "Downloads": "Téléchargements", + "HeaderManageDownloads": "Gérer les téléchargements", + "InternalStorage": "Stockage interne", + "ExternalStorage": "Stockage externe", + "UploadToFollowingServers": "Télécharger vers les serveurs", + "UploadingNumItems": "Envoi de {0} sur {1}", + "DownloadNumItems": "Téléchargement de {0} sur {1}", + "HeaderSampleRate": "Taux d’échantillonnage", + "HeaderReferenceFrames": "Images de référence", + "HeaderBitDepth": "Profondeur des échantillons", + "HeaderPixelFormat": "Format des pixels", + "Profile": "Profil", + "Bitrate": "Débit", + "Expand": "Augmenter", + "Container": "Conteneur", + "Format": "Format", + "Path": "Chemin", + "Size": "Taille", + "Resolution": "Résolution", + "HeaderCodecTag": "Codec", + "Framerate": "Images par seconde", + "Interlaced": "Entrelacé", + "Anamorphic": "Anamorphique", + "Level": "Niveau", + "Timestamp": "Horodatage", + "Language": "Langue", + "Codec": "Codec", + "Stream": "Flux", + "HeaderExtradata": "Données étendues", + "HeaderHardwareAcceleratedTranscoding": "Transcodage accéléré par matériel", + "HeaderHardwareAcceleratedTranscodingDescription": "Tirez profit du GPU de votre serveur. Emby dispose de l'accélération matérielle la plus avancée et la plus rapide de l'industrie.", + "HeaderOfflineDownloads": "Média hors ligne", + "AndMuchMoreExclamation": "Et bien plus encore !", + "HeaderOfflineDownloadsDescription": "Transférez vos médias vers vos appareils pour une utilisation hors ligne.", + "LiveTvFeatureDescription": "Diffuser la TV en direct vers n'importe quelle application Emby avec un tuner TV compatible installé sur votre serveur Emby.", + "DvrFeatureDescription": "Planifiez des enregistrements de TV en direct individuels, des enregistrements de séries et bien plus avec le magnétoscope Emby.", + "CinemaModeFeatureDescription": "Les intros cinéma vous offre une véritable expérience cinématographique avec des bandes-annonces et des intros personnalisées avant le film.", + "HeaderFreeApps": "Applications Emby gratuites", + "FreeAppsFeatureDescription": "Profitez d'un accès gratuit aux applications Emby pour vos appareils.", + "HeaderBecomeProjectSupporter": "Obtenez Emby Premiere", + "HeaderViewServerInfo": "Informations du serveur", + "PlaybackTvModeRequiresEmbyPremiere": "La lecture de média en mode TV nécessite un {0}abonnement Emby Premiere{1}.", + "FeatureRequiresEmbyPremiere": "Cette fonction nécessite un {0}abonnement Emby Premiere{1}.", + "HeaderConvertYourRecordings": "Convertissez vos enregistrements", + "Record": "Enregistrer", + "Save": "Sauvegarder", + "Edit": "Modifier", + "HeaderSavePlaylist": "Enregistrer la liste de lecture", + "Latest": "Récent", + "Download": "Téléchargement", + "Downloaded": "Téléchargé", + "Converted": "Converti", + "RemoveFromHistory": "Supprimer de l'historique", + "ConfirmRemoveFromHistory": "Supprimer cet élément de l'historique ?", + "Downloading": "Téléchargement en cours", + "Advanced": "Avancé", + "LinkedToEmbyConnect": "Lié à Emby Connect", + "Delete": "Supprimer", + "Both": "Les deux", + "LabelChannelDisplay": "Affichage de la chaîne", + "HeaderDeleteItem": "Supprimer l'élément", + "HeaderDeleteUser": "Supprimer l’utilisateur", + "DeleteItemConfirmation": "Êtes-vous certain de vouloir supprimer {0} ?", + "DeleteUserConfirmation": "Voulez-vous vraiment supprimer l’utilisateur {0} ?", + "DeleteUsersConfirmation": "Êtes-vous certain de vouloir supprimer ces {0} utilisateurs ?", + "HeaderDeleteDevice": "Supprimer l’appareil", + "DeleteDeviceConfirmation": "Voulez-vous vraiment supprimer cet appareil? Il réapparaitra la prochaine fois qu'un utilisateur se connectera avec.", + "ConfirmDeleteItem": "Supprimer cet élément l'effacera à la fois du système de fichiers et de votre médiathèque.", + "FollowingFilesWillBeDeleted": "Les fichiers et dossiers suivant seront supprimés:", + "AreYouSureToContinue": "Voulez-vous vraiment continuer?", + "Refresh": "Actualiser", + "RefreshingMetadataDots": "Actualisation des métadonnées...", + "ScanningLibraryFilesDots": "Actualisation des fichiers de la médiathèque…", + "HeaderFavoritesThenByChannelNumber": "Favoris, puis par Numéro de Chaine", + "HeaderAddToCollection": "Ajouter à la collection", + "HeaderFavoritesThenByTitle": "Favoris, puis par Titre", + "HeaderFavoritesThenByDefault": "Favoris, puis par Ordre de Chaine", + "HeaderDefaultChannelOrder": "Ordre des Chaines par défaut", + "HeaderAddToFavorites": "Ajouter aux favoris", + "HeaderRemoveFromFavorites": "Retirer des favoris", + "Favorited": "Favorisé", + "Unfavorited": "Non favorisé", + "HeaderNewCollection": "Nouvelle collection", + "HeaderNewPlaylist": "Nouvelle liste de lecture", + "AllCollections": "Toutes les collections", + "AllPlaylists": "Toutes les listes de lecture", + "Create": "Créer", + "HeaderAddedToPlaylist": "Ajouté à la liste de lecture", + "HeaderAddedToCollection": "Ajouté à la collection", + "OneItemAddedTo": "1 élément ajouté à \"{0}\".", + "ItemsAddedTo": "{0} éléments ajoutés à \"{1}\".", + "HeaderAddedToPlayQueue": "Ajouté à la file d'attente de lecture", + "HeaderPlayingNext": "Lire le suivant", + "Help": "Aide", + "HeaderGetHelp": "Obtenir de l'aide", + "LabelTVDisplayMode": "Activer le mode d'affichage TV", + "Desktop": "Bureau", + "Mobile": "Mobile / Tablette", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Lecture vidéo", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Saisons", + "OneTrack": "1 piste", + "OneSeason": "1 saison", + "Libraries": "Médiathèques", + "NumberSeasonsValue": "{0} saisons", + "TVDisplayModeHelp": "Optimisez l'interface utilisateur de cet appareil pour un affichage sur un téléviseur et une méthode de saisie avec une télécommande. Ceci n'est généralement pas recommandé si votre méthode d'entrée principale est une souris ou est basée sur le tactile.", + "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éer des groupes personnalisés de films et d'autres contenus.", + "SearchForCollectionInternetMetadata": "Rechercher les images et les métadonnées sur Internet", + "DisplayMissingEpisodesWithinSeasons": "Afficher les épisodes manquants dans les saisons", + "DisplayMissingEpisodesWithinSeasonsHelp": "Cette option doit aussi être activée pour les médiathèques TV dans les paramètres du serveur Emby.", + "EnableThemeSongs": "Activer les thèmes musicaux", + "EnableBackdrops": "Activer les images d'arrière-plans", + "EnableThemeSongsHelp": "Si activé, les thèmes musicaux seront lus en arrière-plan pendant la navigation dans la médiathèque.", + "EnableBackdropsHelp": "Si activé, les images d'arrière-plan seront affichées sur certaines pages pendant la navigation dans la médiathèque.", + "EnableThemeVideos": "Activer les thèmes vidéos", + "EnableThemeVideosHelp": "Si activé, les thèmes vidéos seront lus en arrière-plan tout en parcourant la médiathèque.", + "RunAtStartup": "Exécuter au démarrage", + "ServerStartup": "Démarrage du serveur", + "EmbyServerOnXHasStarted": "Le serveur Emby sur {0} a démarré.", + "LabelScreensaver": "Économiseur d'écran", + "LabelSoundEffects": "Effets sonores", + "LabelName": "Nom", + "NewCollectionNameExample": "Exemple: Collection Star Wars", + "MessageItemsAdded": " Éléments ajoutés.", + "OptionNew": "Nouveau...", + "LabelPlaylist": "Liste de lecture", + "AddToPlaylist": "Ajouter à la liste de lecture", + "HeaderAddToPlaylist": "Ajouter à la liste de lecture", + "Subtitles": "Sous-titres", + "LabelTheme": "Thème", + "LabelSettingsTheme": "Thème des paramètres", + "LabelThemeAccentColor": "Couleur d'accentuation", + "ThemeAccentColorDescription": "Contrôle la couleur des indicateurs importants, icônes et textes.", + "SearchForSubtitles": "Rechercher des sous-titres", + "LabelLanguage": "Langue", + "Search": "Recherche", + "NoSubtitleSearchResultsFound": "Aucun résultat trouvé. Avez-vous configuré le {0}téléchargement de sous-titres{1}?", + "NoLyricsSearchResultsFound": "Aucun résultat trouvé. Avez-vous configuré le {1}téléchargement de paroles{0}?", + "Lyrics": "Paroles", + "SearchForLyrics": "Recherche des paroles", + "Finish": "Terminer", + "File": "Fichier", + "Exit": "Quitter", + "Sleep": "Veille", + "Setup": "Installation", + "MessageAreYouSureDeleteSubtitles": "Voulez-vous vraiment supprimer ce fichier de sous-titres?", + "ConfirmDeletion": "Confirmer la suppression", + "MySubtitles": "Mes sous-titres", + "MessageDownloadQueued": "Téléchargement mis en file d'attente.", + "HeaderEditSubtitles": "Modifier les sous-titres", + "UnlockGuide": "Déverrouiller le guide", + "HeaderRefreshMetadata": "Actualiser les métadonnées", + "HeaderRefreshAllMetadata": "Actualiser toutes les métadonnées", + "ReplaceExistingImages": "Remplacer les images existantes", + "ReplaceExistingImagesHelp": "Toutes les images existantes seront supprimées et les nouvelles seront téléchargées en fonction des options de la bibliothèque. Dans certains cas, il se peut que le nombre d'images disponibles soit inférieur à ce qu'il était auparavant.", + "ReplaceAllMetadata": "Remplacer toutes les métadonnées", + "SearchForMissingMetadata": "Rechercher les métadonnées manquantes", + "LabelRefreshMode": "Mode d'actualisation", + "NoItemsFound": "Aucun élément trouvé", + "HeaderSaySomethingLike": "Dites quelque chose comme...", + "ButtonTryAgain": "Veuillez réessayer", + "HeaderYouSaid": "Vous avez dit...", + "MessageWeDidntRecognizeCommand": "Désolé, cette commande n'a pas été reconnue.", + "MessageIfYouBlockedVoice": "Si vous avez supprimé l'accès par commande vocale à l'application, vous devrez le reconfigurer avant de réessayer.", + "ValueDiscNumber": "Disque {0}", + "Unrated": "Non noté", + "Favorite": "Favori", + "Like": "J'aime", + "Dislike": "Je n'aime pas", + "RefreshDialogHelp": "Les métadonnées sont mises à jour avec de nouvelles données basées sur les paramètres et les fournisseurs de métadonnées activés dans la configuration de la bibliothèque Emby.", + "Open": "Ouvrir", + "Play": "Lire", + "Pause": "Pause", + "HeaderPlayQueue": "Lire la file d’attente", + "HeaderAddToPlayQueue": "Ajouter à la file d’attente", + "Shuffle": "Aléatoire", + "Identify": "Identifier", + "HeaderRemoveIdentification": "Supprimer l'identification", + "ResetMetadataConfirmation": "Êtes-vous sûr de vouloir réinitialiser toutes les métadonnées ?", + "HeaderEditMetadata": "Modifier les métadonnées", + "Convert": "Convertir", + "Resume": "Reprendre", + "HeaderInstantMix": "Mix instantané", + "HeaderGoToItem": "Aller à l'élément", + "HeaderGoToSeason": "Aller à la saison", + "HeaderGoToSeries": "Aller à la série", + "HeaderGoToAlbum": "Aller à l'album", + "HeaderGoToArtist": "Aller à l'artiste", + "HeaderPlayAll": "Tout lire", + "PictureInPicture": "Incrustation", + "Fullscreen": "Plein écran", + "ExitFullscreen": "Sortir du plein écran", + "Rewind": "Retour en arrière", + "FastForward": "Avance rapide", + "Remove": "Supprimer", + "Rename": "Renommer", + "Queue": "En file d'attente", + "QueueAllFromHere": "Tout mettre en file d'attente à partir d'ici", + "PlayAllFromHere": "Tout lire à partir d'ici", + "PlayFromBeginning": "Lire Depuis le Début", + "FromBeginning": "Depuis le début", + "ResumeAt": "Reprendre à {0}", + "HeaderRemoveFromPlaylist": "Supprimer de la liste de lecture", + "HeaderRemoveFromPlayQueue": "Supprimer de la file d'attente de lecture", + "HeaderRemoveFromCollection": "Supprimer de la collection", + "Sort": "Tri", + "Trailer": "Bande-annonce", + "SelectNone": "Ne rien sélectionner", + "SelectAll": "Tout sélectionner", + "HeaderMarkPlayed": "Marquer comme lu", + "HeaderMarkUnplayed": "Marquer comme non lu", + "HeaderGroupVersions": "Grouper les versions", + "PleaseSelectTwoItems": "Veuillez sélectionner au moins deux éléments.", + "HeaderConfirmRecordingCancellation": "Confirmez l'annulation de l'enregistrement", + "MessageConfirmRecordingCancellation": "Annuler l'enregistrement?", + "Album": "Album", + "AlbumArtist": "Artiste(s) de l'album", + "Error": "Erreur", + "VoiceInput": "Entrée vocale", + "LabelContentType": "Type de contenu", + "LabelPath": "Chemin", + "Playlists": "Listes de lecture", + "LabelTitle": "Titre", + "LabelOriginalTitle": "Titre original", + "LabelSortTitle": "Titre de tri", + "LabelDateAdded": "Date d'ajout", + "DateAdded": "Date d'ajout", + "DateModified": "Date modifiée", + "DatePlayed": "Date de lecture", + "DateLastActive": "Date de dernière activité", + "ConfigureDateAdded": "Configurez comment la date d'ajout est déterminée dans le tableau de bord de Emby Server, sous Médiathèque, Avancé", + "LabelStatus": "État", + "LabelArtistsHelp": "Séparer les différents éléments par;", + "HeaderAlbumArtists": "Artistes de l'album", + "LabelAlbumArtists": "Artistes de l'album", + "LabelAlbum": "Album", + "Artist": "Artiste", + "Artists": "Artistes", + "ImdbRating": "Notation IMDb", + "CommunityRating": "Note de la communauté", + "LabelCommunityRating": "Evaluation de la communauté", + "LabelCriticRating": "Evaluation des critiques", + "CriticRating": "Note de la critique", + "LabelWebsite": "Site web", + "Tagline": "Slogan", + "LabelOverview": "Synopsis", + "LabelShortOverview": "Résumé", + "LabelReleaseDate": "Date de sortie", + "LabelPlaceOfBirth": "Lieu de naissance", + "Aired": "Diffusé", + "LabelAirDays": "Jours de diffusion", + "LabelAirTime": "Heure de diffusion", + "LabelRuntimeMinutes": "Durée (min)", + "LabelCustomRating": "Evaluation personnalisée", + "LabelOriginalAspectRatio": "Ratio d'aspect original", + "Label3DFormat": "Format 3D", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} téléchargements", + "HashMatch": "Correspondance des hachages", + "EnableExternalVideoPlayers": "Activer les lecteurs vidéo externes", + "EnableExternalVideoPlayersHelp": "Une liste des lecteurs externes sera affichée au lancement de la lecture d'une vidéo.", + "HeaderSpecialEpisodeInfo": "Informations de l'épisode spécial", + "LabelAirsDuringSeason": "Diffusions pendant la saison", + "LabelAirsAfterSeason": "Diffusion après la saison", + "LabelAirsBeforeEpisode": "Diffusion avant l'épisode", + "HeaderExternalIds": "Identifiants externes", + "HeaderDisplaySettings": "Paramètres d'affichage", + "PlaylistOrder": "Ordre de la playlist", + "CollectionOrder": "Ordre de la collection", + "LabelDisplayOrder": "Ordre d'affichage", + "LabelFileOrder": "Ordre des fichiers", + "Display": "Affichage", + "Countries": "Pays", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Mot-clé", + "Links": "Liens", + "Movie": "Film", + "Program": "Programme", + "Channel": "Chaine", + "Episode": "Episode", + "Season": "Saison", + "HeaderMetadataSettings": "Paramètres des métadonnées", + "People": "Personnes", + "Number": "Numéro", + "Lock": "Verrouiller", + "HeaderScreenLocked": "Écran Verrouillé", + "HeaderUnlockControls": "Déverrouiller les touches", + "HeaderTapToUnlock": "Appuyer pour déverrouiller", + "LabelMetadataDownloadLanguage": "Langue préférée pour le téléchargement des métadonnées", + "LabelImageDownloadLanguage": "Langue préférée pour le téléchargement des images", + "LabelLockItemToPreventChanges": "Verrouiller cet élément pour éviter de futures modifications", + "LockThisField": "Verrouiller ce champ pour empêcher de futurs changements lors du rafraichissement des métadonnées", + "MessageLeaveEmptyToInherit": "Laisser vide pour hériter des paramètres de l'élément parent, ou de la valeur par défaut.", + "LabelCountry": "Pays", + "LabelCertificationCountry": "Pays de certification", + "CertificationCountryHelp": "Cela influencera le système d'évaluation du contenu utilisé.", + "LabelDynamicExternalId": "ID {0}", + "LabelBirthYear": "Année de naissance", + "LabelBirthDate": "Date de naissance", + "LabelDeathDate": "Date de décès", + "LabelEndDate": "Date de fin", + "LabelSeasonNumber": "Numéro de saison", + "LabelEpisodeNumber": "Numéro d'épisode", + "LabelTrackNumber": "Numéro de piste", + "LabelNumber": "Numéro", + "LabelDiscNumber": "Numéro de disque", + "LabelParentNumber": "Numéro du parent", + "SortName": "Trier par titre", + "OriginalTitle": "titre original", + "ReleaseDate": "Date de sortie", + "Continuing": "En cours", + "Ended": "Terminé", + "HeaderEnabledFields": "Activer les champs", + "HeaderEnabledFieldsHelp": "Décocher un champ pour le verrouiller et empêcher ses données d'être modifiées.", + "Backdrops": "Arrière-plans", + "Images": "Images", + "Runtime": "Durée", + "ProductionLocations": "Sites de production", + "BirthLocation": "Lieu de naissance", + "ParentalRating": "Classification parentale", + "PlayCount": "Nombre de lectures", + "Name": "Nom", + "Overview": "Synopsis", + "LabelType": "Type", + "LabelPersonRole": "Rôle", + "LabelPersonRoleHelp": "Exemple: Chauffeur du camion de crème glacée", + "Actor": "Acteur(trice)", + "Composers": "Compositeurs", + "Composer": "Compositeur", + "Director": "Réalisateur", + "GuestStar": "Vedette invitée", + "Producer": "Producteur", + "Writer": "Scénariste", + "MessageNoSyncJobsFound": "Aucun téléchargement trouvé. Créer des tâches de téléchargement grâce aux boutons Télécharger dans l'application.", + "MessageNoDownloadsFound": "Aucun téléchargement hors ligne. Téléchargez votre contenu multimédia pour une utilisation hors ligne en cliquant sur Télécharger dans l'application.", + "InstallingPackage": "Installation de {0}", + "PackageInstallCompleted": "L'installation de {0} est terminée.", + "PackageInstallFailed": "L'installation de {0} a échoué.", + "PackageInstallCancelled": "L'installation de {0} a été annulée.", + "SeriesYearToPresent": "{0} - Présent", + "OneDevice": "1 appareil", + "DeviceCountValue": "{0} appareils", + "OneLog": "1 journal", + "LogCountValue": "{0} journaux", + "OneVote": "1 vote", + "VoteCountValue": "{0} votes", + "OneLike": "1 j'aime", + "LikeCountValue": "{0} j'aime", + "OneUser": "1 utilisateur", + "UserCountValue": "{0} utilisateurs", + "OneLibrary": "1 médiathèque", + "LibraryCountValue": "{0} médiathèques", + "ValueOneItem": "1 élément", + "ValueOneEpisode": "1 épisode", + "ValueEpisodeCount": "{0} épisodes", + "Albums": "Albums", + "Song": "Chanson", + "Songs": "Chansons", + "Authors": "Auteurs", + "Books": "Livres", + "AudioBooks": "Livres audio", + "HeaderAudioBooks": "Livres audios", + "HeaderAudioBook": "Livre Audio", + "HeaderIdentifyItemHelp": "Entrez un ou plusieurs critères de recherche. Retirez des critères pour élargir les résultats de la recherche.", + "PleaseEnterNameOrId": "Veuillez saisir un nom ou un identifiant externe.", + "MessageItemSaved": "Élément enregistré.", + "SearchResults": "Résultats de la recherche", + "ServerNameIsRestarting": "Serveur Emby - {0} redémarrage en cours.", + "ServerNameIsShuttingDown": "Serveur Emby - {0} arrêt en cours.", + "HeaderDeleteItems": "Supprimer les éléments", + "ConfirmDeleteItems": "Supprimer ces éléments les effacera à la fois du système de fichiers et de votre médiathèque.", + "PleaseRestartServerName": "Veuillez redémarrer le serveur Emby sur {0}", + "ConvertingDots": "Conversion...", + "LabelSyncNoTargetsHelp": "Il semble que vous n'ayez aucune application qui supporte le téléchargement hors ligne.", + "DownloadingDots": "Téléchargement...", + "LearnMore": "En savoir plus", + "LabelBitrateMbps": "Débit (Mbps)", + "ConvertUnwatchedVideosOnly": "Convertir uniquement les vidéos non lues", + "SyncUnwatchedVideosOnly": "Télécharger uniquement les vidéos non lues", + "ConvertUnwatchedVideosOnlyHelp": "Seules les vidéos qui n'ont pas été lues entièrement seront converties", + "SyncUnwatchedVideosOnlyHelp": "Les vidéos non lues seront téléchargées et les vidéos lues seront supprimées de l'appareil.", + "AutomaticallySyncNewContent": "Télécharger automatiquement le nouveau contenu", + "AutomaticallySyncNewContentHelp": "Le nouveau contenu ajouté à ce dossier sera automatiquement transféré vers l'appareil.", + "AutomaticallyConvertNewContent": "Convertir automatiquement les nouveaux contenus", + "AutomaticallyConvertNewContentHelp": "Les nouveaux contenus seront automatiquement convertis", + "LabelItemLimit": "Éléments maximum", + "ConvertItemLimitHelp": "Optionnel. Définir une limite de nombre d'éléments à convertir.", + "DownloadItemLimitHelp": "Optionnel. Définir une limite de nombre d'éléments à télécharger.", + "PleaseSelectDeviceToSyncTo": "Veuillez sélectionner l'appareil auquel le téléchargement doit être envoyé.", + "Screenshots": "Captures d'écran", + "MoveRight": "Déplacer à droite", + "MoveLeft": "Déplacer à gauche", + "HeaderUploadNewImage": "Envoyer une nouvelle image", + "HeaderDeleteImage": "Supprimer l’image", + "ConfirmDeleteImage": "Supprimer l'image?", + "HeaderEditImages": "Modifier les images", + "Settings": "Paramètres", + "ShowIndicatorsFor": "Montrer les indicateurs:", + "Episodes": "Épisodes", + "Programs": "Programmes", + "HeaderCastCrew": "Distribution et équipe", + "DvrSubscriptionRequired": "La TV en direct et le magnétoscope Emby nécessitent un {0}abonnement Emby Premiere{1}.", + "HeaderCancelRecording": "Annuler l'enregistrement", + "HeaderKeepRecording": "Garder l'enregistrement", + "HeaderCancelSeries": "Annuler la série", + "HeaderKeepSeries": "Garder la série", + "HeaderLearnMore": "En savoir plus", + "SeriesSettings": "Paramètres des séries", + "HeaderRecordingOptions": "Options d'enregistrement", + "HeaderDoNotRecord": "Ne pas enregistrer", + "HeaderSeriesOptions": "Options des séries", + "Layout": "Disposition", + "Channels": "Chaînes", + "ChannelNameOnly": "Seulement la chaîne {0}", + "Anytime": "N'importe quand", + "AnyLanguage": "N'importe quelle langue", + "AroundTime": "Aux environs de {0}", + "HeaderLatestMovies": "Derniers films", + "All": "Tout", + "Stop": "Arrêter", + "AllChannels": "Toutes les chaînes", + "NewEpisodesOnly": "Uniquement les nouveaux épisodes", + "AllEpisodes": "Tous les épisodes", + "LabelStartWhenPossible": "Commencer dès que possible", + "LabelStopWhenPossible": "Arrêter dès que possible", + "MinutesBefore": "minutes avant", + "MinutesAfter": "minutes après", + "SkipEpisodesAlreadyInMyLibrary": "Ne pas enregistrer les épisodes déjà présents dans ma médiathèque", + "SkipEpisodesAlreadyInMyLibraryHelp": "Les épisodes seront comparés en utilisant le numéro de saison et le numéro d'épisode, s'ils sont disponibles.", + "LabelKeepUpTo": "Garder jusqu'à", + "AsManyAsPossible": "Autant que possible", + "DefaultErrorMessage": "Il y a eu une erreur lors de l'exécution de la requête. Veuillez réessayer plus tard.", + "UntilIDelete": "Jusqu'à ce que je le supprime", + "UntilSpaceNeeded": "Jusqu'à ce que l'espace disque soit nécessaire", + "Categories": "Catégories", + "Sports": "Sports", + "News": "Actualités", + "Movies": "Films", + "Music": "Musique", + "Kids": "Jeunesse", + "MoreFromValue": "Plus de {0}", + "DiedValue": "Décès: {0}", + "BornValue": "Naissance: {0}", + "EnableColorCodedBackgrounds": "Activer les fonds colorés aux séries, en fonction de leurs catégories", + "SortChannelsBy": "Trier les chaînes par", + "ChannelNumber": "Numéro de chaîne", + "HeaderBenefitsEmbyPremiere": "Les avantages d'Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Profitez d'une minute de lecture. Merci d'avoir essayé Emby.", + "HeaderTryPlayback": "Essayer la lecture", + "HowDidYouPay": "Comment avez-vous payé?", + "IHaveEmbyPremiere": "J'ai Emby Premiere", + "IPurchasedThisApp": "J'ai acheté cette application", + "ButtonRestorePreviousPurchase": "Restaurer l'achat", + "ButtonUnlockWithPurchase": "Déverrouillez avec un achat", + "ButtonUnlockPrice": "Déverrouiller {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere {0} mensuel", + "HeaderAlreadyPaid": "Vous avez déjà payé?", + "ButtonPlayOneMinute": "Lire une minute", + "PlaceFavoriteChannelsAtBeginning": "Mettre vos chaînes favorites au début", + "HeaderUnlockFeature": "Déverrouiller la fonctionnalité", + "MessageDidYouKnowCinemaMode": "Saviez-vous qu’avec Emby Première, vous pouviez améliorer votre expérience utilisateur grâce à des fonctionnalités comme les intros cinéma ?", + "HeaderPlayMyMedia": "Lire mon média", + "HeaderDiscoverEmbyPremiere": "Découvrez Emby Premiere", + "HeaderNowPlaying": "Lecture en cours", + "Items": "Éléments", + "AppName": "Nom de l'app", + "OneChannel": "Une chaîne", + "ConfirmRemoveDownload": "Supprimer le téléchargement?", + "ConfirmRemoveItem": "Supprimer l'élément ?", + "RemoveDownload": "Supprimer le téléchargement", + "ConfirmCancelConversion": "Annuler la conversion ?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Garder le téléchargement", + "AddedOnValue": "Ajouté le {0}", + "RemovingFromDevice": "Suppression de l'appareil", + "KeepOnDevice": "Garder sur l'appareil", + "CancelDownload": "Annuler le téléchargement", + "SyncJobItemStatusReadyToTransfer": "Prêt pour le transfert", + "SyncJobItemStatusSyncedMarkForRemoval": "Suppression de l'appareil", + "SyncJobItemStatusQueued": "Mis en file d'attente", + "SyncJobItemStatusConverting": "Conversion en cours", + "SyncJobItemStatusTransferring": "Transfert en cours", + "SyncJobItemStatusSynced": "Téléchargé", + "Failed": "Échoué", + "SyncJobItemStatusRemovedFromDevice": "Supprimé de l'appareil", + "Cancelled": "Annulé", + "Retry": "Réessayer", + "Continue": "Continuer", + "ContinueInSecondsValue": "Continuer dans {0} secondes.", + "HeaderRemoteControl": "Contrôle à distance", + "Disconnect": "Déconnecter", + "EnableDisplayMirroring": "Activer le partage d'écran", + "RemoteAccess": "Accès à distance", + "HeaderPlayOn": "Jouer sur", + "Quality": "Qualité", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "Pour restaurer votre achat précédent, assurez-vous de vous connecter à l'appareil avec le même compte Google (ou Amazon) qui a effectué l'achat. Assurez-vous que la boutique d'applications est activée et n'est restreinte par aucun contrôle parental, et assurez-vous d'avoir une connexion Internet fonctionnelle. Vous n'aurez à le faire qu'une seule fois, pour restaurer votre achat précédent.", + "HeaderAspectRatio": "Ratio d’aspect", + "Original": "Original", + "Fill": "Etirer", + "Cover": "Adapter", + "MessageNoServersAvailableToConnect": "Connexion impossible, aucun serveur disponible. Si vous avez été invité à partager un serveur, veuillez accepter ci-dessous ou en cliquant sur le lien dans le courriel.", + "MessagePlayAccessRestricted": "La lecture de ce contenu est actuellement restreinte. Contactez l'administrateur de votre serveur Emby pour plus d'informations.", + "Accept": "Accepter", + "Reject": "Refuser", + "Connect": "Se connecter", + "HeaderMyMedia": "Mes Médias", + "HeaderMyMediaSmall": "Mes Médias (Petit)", + "LatestFromLibrary": "{0}: Derniers ajouts", + "HeaderLatestEpisodes": "Derniers épisodes", + "ContinuePlaying": "Reprendre la lecture", + "ContinueWatching": "Continuez à regarder", + "HeaderLatestChannelMedia": "Derniers éléments de la chaîne", + "HeaderContinueWatching": "Reprendre la lecture", + "HeaderContinueListening": "Reprendre l'écoute", + "HeaderActiveRecordings": "Enregistrements actifs", + "HeaderLatestRecordings": "Derniers enregistrements", + "LabelConvertTo": "Convertir en", + "LabelDownloadTo": "Télécharger vers", + "HeaderDownloadToDots": "Télécharger vers…", + "Next": "Suivant", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "Toutes les langues", + "Previous": "Précédent", + "HeaderNextUp": "Séries à suivre", + "HeaderPlayNextUp": "Lire le suivant", + "HeaderLatestFrom": "{0}, ajouts récents", + "LabelHomeScreenSectionValue": "Section {0} de l'accueil", + "PasswordResetComplete": "Le mot de passe a été réinitialisé.", + "PasswordSaved": "Mot de passe sauvegardé.", + "SettingsSaved": "Paramètres enregistrés.", + "Upcoming": "À venir", + "HeaderSelectImageFile": "Choisir un fichier image", + "None": "Aucun", + "More": "Plus", + "Up": "Haut", + "Down": "Bas", + "Home": "Accueil", + "Back": "Retour", + "Random": "Aléatoire", + "Playback": "Lecture", + "Favorites": "Favoris", + "HeaderHomeScreen": "Écran d'accueil", + "HeaderLatestChannelItems": "Derniers éléments de la chaîne", + "HeaderLibraryOrder": "Ordre de la médiathèque", + "HeaderOnNow": "En ce moment", + "HeaderForKids": "Jeunesse", + "HeaderPlaybackError": "Erreur de lecture", + "PlaybackErrorNotAllowed": "Vous n'êtes pas autorisé à lire ce contenu. Veuillez contacter votre administrateur système pour plus de détails.", + "RateLimitExceeded": "Votre compte a dépassé la limite de diffusion maximum définie par l’administrateur de votre serveur Emby. Contactez-le pour toute assistance.", + "PlaybackErrorNoCompatibleStream": "Aucun flux compatible n'est actuellement disponible. Veuillez réessayer plus tard ou contactez votre administrateur système pour plus de détails.", + "PlaybackErrorPlaceHolder": "Veuillez insérer le disque pour lire cette vidéo.", + "PlaybackErrorNoPlayableItems": "Aucun élément ne peut être lu. Essayez-vous de lire un dossier vide ?", + "Guide": "Guide", + "Games": "Jeux", + "GameSystem": "Système de jeu", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Chaines favorites", + "HeaderFavoriteCollections": "Collections Favorites", + "HeaderFavoritePlaylists": "Listes de lecture favorites", + "Collection": "Collection", + "Collections": "Collections", + "LabelSelectFolderGroups": "Grouper automatiquement le contenu des dossiers suivants dans des catégories telles que Films, Musique et TV:", + "LabelSelectFolderGroupsHelp": "Les dossiers qui ne sont pas cochés seront affichés tels quels, avec leur propre vue.", + "Mute": "Muet", + "Unmute": "Activer le son", + "Folder": "Dossier", + "Folders": "Dossiers", + "FileName": "Nom de fichier", + "DisplayInOtherHomeScreenSections": "Affiche des sections secondaires à l’écran d’accueil comme 'Derniers ajouts' et 'Reprendre'", + "DisplayInMyMedia": "Afficher sur l’écran d’accueil", + "Shows": "Séries", + "MoviesAndShows": "Films & Séries", + "HeaderMusicVideo": "Clip Vidéo", + "HeaderMusicVideos": "Clips Vidéos", + "MusicVideos": "Clips Vidéos", + "Videos": "Vidéos", + "MixedContent": "Contenu mixte", + "HomeVideos": "Vidéos personnelles", + "HomeVideosAndPhotos": "Vidéos et photos personnelles", + "TVShows": "TV", + "HeaderLibraryFolders": "Dossiers de la médiathèque", + "HeaderTermsOfPurchase": "Conditions d'achat", + "PrivacyPolicy": "Politique de confidentialité", + "TermsOfUse": "Conditions d'Utilisation", + "HeaderRepeatMode": "Mode répétition", + "HeaderToneMapping": "Mappage des tons", + "RepeatOne": "Répéter un média", + "RepeatAll": "Tout répéter", + "LabelDefaultScreen": "Écran par défaut", + "ConfirmEndPlayerSession": "Voulez-vous arrêter Emby sur {0}?", + "Yesterday": "Hier", + "Yes": "Oui", + "No": "Non", + "HeaderScanLibraryFiles": "Actualiser les fichiers de la médiathèque", + "LiveTV": "TV en direct", + "Schedule": "Planning", + "Recordings": "Enregistrements", + "ScanForNewAndUpdatedFiles": "Actualiser les nouveaux fichiers et les mises à jour", + "NewVersionOfXAvailableForY": "{0} est disponible pour {1}", + "DirectStreamHelp1": "Le média est compatible avec la résolution et le type de média (H.264, AC3 etc) de l'appareil, mais son conteneur est incompatible (.mkv, .avi, .wmv etc). La vidéo sera rempaquetée à la volée avant d'être diffusée sur l'appareil.", + "DirectStreamHelp2": "Le streaming en direct d'un fichier utilise très peu de puissance de traitement sans perte de qualité vidéo.", + "MediaIsBeingConverted": "Le média est converti en un format compatible avec l'appareil de lecture.", + "StatsForNerds": "Statistiques pour les Nerds", + "HeaderHardwareAcceleratedDecoding": "Décodage avec accélération matérielle", + "HeaderHardwareAcceleratedEncoding": "Encodage avec accélération matérielle", + "HeaderDirectPlay": "Lecture directe", + "DirectPlaying": "Lecture directe", + "DirectStreaming": "Streaming direct", + "Transcode": "Transcoder", + "Transcoding": "Transcodage", + "ContainerBitrateExceedsLimit": "Réduction du bitrate en raison des paramètres qualité", + "VideoCodecNotSupported": "Conversion vidéo en codec compatible", + "AudioCodecNotSupported": "Conversion audio en codec compatible", + "SubtitleCodecNotSupported": "Convertion des sous-titres directement dans la vidéo", + "DirectPlayError": "Récupération d'une erreur de lecture", + "ContainerNotSupported": "Conversion en conteneur compatible", + "VideoLevelNotSupported": "Conversion en level vidéo compatible", + "AudioBitrateNotSupported": "Conversion en débit audio compatible", + "AudioChannelsNotSupported": "Conversion en nombre de canaux audio compatible", + "VideoResolutionNotSupported": "Conversion en résolution vidéo compatible", + "AudioProfileNotSupported": "Conversion en profil audio compatible", + "AudioSampleRateNotSupported": "Conversion en taux d'échantillonnage audio compatible", + "AnamorphicVideoNotSupported": "Vidéo anamorphique non prise en charge", + "InterlacedVideoNotSupported": "Désentrelacement de la vidéo", + "SecondaryAudioNotSupported": "Sélection de la piste audio secondaire", + "ExternalAudioNotSupported": "Sélection de la piste audio externe", + "ErrorRemovingEmbyConnectAccount": "Une erreur est survenue pendant la suppression du compte Emby Connect. Veuillez vous assurer que vous avez une connexion internet active puis réessayez.", + "HeaderEmbyAccountRemoved": "Compte Emby supprimé", + "MessageEmbyAccontRemoved": "Le compte Emby a été supprimé pour cet utilisateur.", + "HeaderInvitationSent": "Invitation envoyée", + "Offline": "Hors ligne", + "HeaderSignUp": "S'inscrire", + "ServerDownloadMessage": "Pour télécharger et installer le serveur Emby gratuit, visitez {0}.", + "ServerDownloadMessageWithoutLink": "Pour télécharger et installer le serveur Emby gratuit, visitez le site web d’Emby.", + "MessageInvitationSentToUser": "Un courriel a été envoyé à {0} avec votre invitation de partage.", + "MessageInvitationSentToNewUser": "Un mail d'invitation à s'inscrire à Emby a été envoyé à {0}.", + "GuestUserNotFound": "Utilisateur non trouvé. Veuillez vérifier que le nom est correct et essayez à nouveau, ou essayez de renseigner l'adresse email.", + "ErrorReachingEmbyConnect": "Une erreur est survenue pendant la connexion au serveur Emby Connect. Veuillez vous assurer que vous avez une connexion internet active puis réessayez.", + "ErrorAddingEmbyConnectAccount1": "Une erreur est survenue lors de l'ajout du compte Emby Connect. Avez-vous créé un compte Emby ? Inscrivez-vous sur {0}.", + "ErrorAddingEmbyConnectAccount2": "Si le problème persiste, veuillez envoyer un email à {0} depuis votre adresse utilisée lors de la création de votre compte Emby.", + "ErrorAddingGuestAccount1": "Une erreur est survenue lors de l'ajout du compte Emby Connect. Vos invités ont-ils créé un compte Emby ? Ils peuvent s'inscrire sur {0}.", + "ErrorAddingGuestAccount2": "Si le problème persiste, veuillez envoyer un email à {0} en précisant votre adresse courriel ainsi que la leur.", + "MessageEmbyAccountAdded": "Le compte Emby a été ajouté à cet utilisateur.", + "MessagePendingEmbyAccountAdded": "Le compte Emby a été ajouté à cet utilisateur. Un email sera envoyé au propriétaire du compte. Cette invitation devra être confirmée en cliquant sur le lien inclus dans le mail.", + "HeaderEmbyAccountAdded": "Compte Emby ajouté", + "Skip": "Passer", + "HeaderAdditionalParts": "Parties supplémentaires", + "ButtonGenerateNewPin": "Générer un nouveau code PIN", + "ConnectLoginHelp1": "Avec Emby Connect vous pouvez accéder facilement à votre serveur Emby où que vous soyez et partager les serveurs avec votre famille et amis.", + "CreatePinErrorMessage": "Une erreur est survenue lors de la création du code PIN. Veuillez cliquer sur Générer un nouveau code PIN pour réessayer.", + "PinExpiredMessage": "Le code PIN a expiré. Veuillez cliquer sur Générer un nouveau code PIN pour réessayer.", + "ConnectPinCodeHeader": "Pour vous connecter avec Emby Connect, utilisez un appareil mobile ou un ordinateur pour visiter {0} et saisissez le code PIN suivant:", + "LabelSubtitlePlaybackMode": "Mode des sous-titres", + "ErrorDeletingItem": "Une erreur s'est produite lors de la suppression de l'élément du serveur Emby. Vérifiez que le serveur Emby a un accès en écriture au dossier multimédia et réessayez.", + "NoSubtitles": "Pas de sous-titres", + "Default": "Par défaut", + "Absolute": "Absolu", + "Smart": "Intelligent", + "Small": "Petit", + "Smaller": "Plus petit", + "Medium": "Moyen", + "Large": "Grand", + "Larger": "Plus grand", + "ExtraLarge": "Très grand", + "ExtraSmall": "Plus petit", + "Forced": "Forcé", + "External": "Externe", + "HeaderEmbeddedTitle": "Titre intégré", + "OnlyForcedSubtitles": "Seulement les sous-titres forcés", + "AlwaysPlaySubtitles": "Toujours afficher les sous-titres", + "DefaultSubtitlesHelp": "Les sous-titres seront chargés selon les mots-clés par défaut et forcé dans les métadonnées intégrées. Langues préférées seront utilisées quand plusieurs options sont disponibles.", + "SmartSubtitlesHelp": "Les sous-titres correspondant à la langue préférée seront affichés lorsque l'audio sera dans une langue étrangère.", + "HeaderSubtitleSettings": "Paramètres des sous-titres", + "HeaderSubtitleAppearance": "Apparence des sous-titres", + "OnlyForcedSubtitlesHelp": "Afficher seulement les sous-titres forcés.", + "AutoSelectHearingImpairedHelp": "Les sous-titres correspondant à la langue choisie seront chargés, avec une préférence pour les pistes marquées comme malentendantes (SDH).", + "AlwaysPlaySubtitlesHelp": "Les sous-titres correspondant à la préférence linguistique seront affichés quelle que soit la langue audio.", + "NoSubtitlesHelp": "Les sous-titres ne seront pas affichés. Ils peuvent être activés manuellement pendant la lecture.", + "LabelPreferredSubtitleLanguage": "Langue préférée pour les sous-titres", + "LabelTextSize": "Taille du texte", + "TheseSettingsAffectSubtitlesOnThisDevice": "Ces paramètres affectent les sous-titres de cet appareil", + "LabelDropShadow": "Ombre portée", + "LabelTextBackgroundColor": "Couleur de fond du texte", + "LabelWindowBackgroundColor": "Couleur de fond du texte", + "LabelFont": "Police", + "LabelTextColor": "Couleur du texte", + "LabelBackgroundColor": "Couleur du fond", + "LabelBackgroundOpacity": "Transparence du fond", + "Raised": "Augmenter", + "Depressed": "Diminuer", + "Uniform": "Uniforme", + "DropShadow": "Ombre portée", + "SmallCaps": "Petites majuscules", + "SubtitleAppearanceSettingsDisclaimer": "Ces paramètres ne s'appliqueront pas aux sous-titres graphiques (PGS, DVD etc) ou aux sous-titres qui ont leurs propres styles incorporés (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "En attente du Wi-Fi", + "WifiRequiredToDownload": "Une connexion Wi-Fi est nécessaire pour continuer le téléchargement.", + "DownloadOnlyOnWifi": "Télécharger uniquement en Wi-Fi", + "LabelMusicDownloadQuality": "Qualité du téléchargement de musique", + "MusicDownloadQualityHelp": "Les fichiers audio ayant un débit plus élevé seront convertis par le serveur Emby. Sélectionnez une valeur élevée pour une meilleure qualité, ou une valeur faible pour préserver votre espace de stockage.", + "HeaderDownloadSettings": "Paramètres de téléchargement", + "LabelDownloadLocation": "Emplacement de téléchargement", + "BrowseForFolder": "Explorer les dossiers", + "Unlimited": "Illimité", + "NoLimit": "Aucune limite", + "Hide": "Cacher", + "HeaderKeepWatching": "Continuer à regarder", + "HeaderNextEpisode": "Episode Suivant", + "AudioBitDepthNotSupported": "Conversion en échantillage audio compatible", + "VideoBitrateNotSupported": "Conversion vers un débit vidéo compatible", + "VideoProfileNotSupported": "Conversion en profil vidéo compatible", + "VideoFramerateNotSupported": "Conversion en fréquence d'images vidéo compatible", + "VideoBitDepthNotSupported": "Conversion en profondeur de couleurs vidéo compatible", + "RefFramesNotSupported": "Conversion en nombre compatible d'images de référence vidéo", + "ErrorConnectServerUnreachable": "Une erreur est survenue pendant l'exécution de l'opération demandée. Votre serveur est dans l'incapacité de joindre le serveur Emby Connect à {0}. Veuillez vérifier que votre serveur est bien connecté à Internet et qu'aucun pare-feu ou autre logiciel de sécurité ne bloque les communications.", + "HeaderStopRecording": "Arrêter l'enregistrement", + "ManageRecording": "Gérer l'enregistrement", + "LabelDropImageHere": "Glissez déposez une image ici, ou cliquez pour sélectionner une image.", + "MessageFileReadError": "Une erreur est survenue lors de la lecture du fichier. Veuillez réessayer.", + "Browse": "Parcourir", + "HeaderUploadImage": "Envoyer une image", + "HeaderAddUpdateImage": "Ajouter/Mettre à jour une image", + "HeaderShowFields": "Afficher les champs", + "LabelView": "Vue", + "LabelImageType": "Type d'image", + "Upload": "Envoyer", + "Primary": "Principal", + "PrimaryImageBlur": "Flou de l'image primaire", + "Art": "Art", + "Backdrop": "Fond d'écran", + "Banner": "Bannière", + "Box": "Boîtier", + "BoxRear": "Boîtier (dos)", + "Disc": "Disque", + "Logo": "Logo", + "LogoDark": "Logo (Version sombre)", + "LogoLight": "Logo (Version claire)", + "LogoLightColor": "Logo (Clair avec couleur)", + "Menu": "Menu", + "Screenshot": "Capture d'écran", + "Thumb": "Vignette", + "HeaderAudioSettings": "Réglages audio", + "LabelAudioLanguagePreference": "Langue audio préférée", + "LabelPlayDefaultAudioTrack": "Utiliser le flux audio par défaut quelle que soit la langue", + "HeaderVideoQuality": "Qualité vidéo", + "CinemaModeConfigurationHelp": "Les intros cinéma Intros apporte l'expérience théâtrale directement dans votre salon avec la possibilité de lire des bandes-annonces et des intros personnalisées avant le film.", + "ShowUpNextPreview": "Afficher le prochain aperçu", + "ShowUpNextPreviewHelp": "Affiche les informations relatives à l'élément suivant à la fin de l'élément en cours.", + "PlayNextEpisodeAutomatically": "Lancer l'épisode suivant automatiquement", + "LabelMaxChromecastBitrate": "Qualité de diffusion du Chromecast", + "LabelSkipBackLength": "Durée des sauts en arrière", + "LabelSkipForwardLength": "Durée des sauts en avant", + "EnableCinemaMode": "Activer les Intros cinéma", + "LabelInternetQuality": "Qualité de diffusion à distance", + "LabelCellularQuality": "Qualité de diffusion à distance (cellulaire)", + "HeaderMusicQuality": "Qualité de la musique:", + "LabelHomeNetworkQuality": "Qualité de diffusion locale", + "HeaderLatestMedia": "Derniers médias", + "HeaderRestartingEmbyServer": "Redémarrage du serveur Emby", + "RestartPleaseWaitMessage": "Veuillez patienter pendant que le serveur Emby s'arrête et redémarre. Cela peut prendre une minute ou deux.", + "HeaderPlayNext": "Lire le suivant", + "AutoBasedOnLanguageSetting": "Auto (basé sur la langue de l'appareil)", + "SameAsMainTheme": "Identique au thème principal", + "LabelDateTimeLocale": "Date et heure locale", + "Genre": "Genre", + "DirectorValue": "Réalisateur: {0}", + "DirectorsValue": "Réalisateurs: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Mots clés: {0}", + "Off": "Désactivés", + "Title": "Titre", + "Year": "Année", + "Filter": "Filtre", + "Filters": "Filtres", + "Unplayed": "Non lu", + "LabelTVHomeScreen": "Écran d'accueil du mode TV", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Grouper par", + "HeaderMediaType": "Type de média", + "GroupBySeries": "Grouper par séries", + "HeaderVideoType": "Type de vidéo", + "HeaderSeriesStatus": "Statut de la série", + "Features": "Longs métrages", + "Trailers": "Bandes-annonces", + "Extras": "Extras", + "ThemeSongs": "Chansons thématiques", + "ThemeVideos": "Vidéos thématiques", + "HeaderFavoriteMovies": "Films préférés", + "HeaderFavoritePhotos": "Photos préférées", + "HeaderFavoriteShows": "Séries préférées", + "HeaderFavoriteEpisodes": "Episodes préférés", + "HeaderFavoriteVideos": "Vidéos préférées", + "HeaderFavoriteMusicVideos": "Vidéos musicales favorites", + "HeaderFavoriteGames": "Jeux préférés", + "HeaderFavoriteArtists": "Artistes préférés", + "HeaderFavoriteAlbums": "Albums préférés", + "HeaderFavoriteSongs": "Chansons préférées", + "HeaderFavoriteAuthors": "Auteurs favoris", + "HeaderFavoriteAudioBooks": "Livres audio favoris", + "Ascending": "Croissant", + "Descending": "Décroissant", + "HeaderColorPrimaries": "Couleurs primaires", + "HeaderColorSpace": "Espace colorimétrique", + "HeaderColorTransfer": "Transfert de couleur", + "HeaderVideoRange": "Gamme vidéo", + "SeriesDisplayOrderHelp": "Ranger les épisodes par date de diffusion, par ordre de DVD ou par numéro.", + "LabelVerticalPositionFromBottom": "Position verticale (depuis le bas)", + "HeaderFavoritePeople": "Personnes favorites", + "MultiSelect": "Sélection multiple", + "HeaderSignOut": "Déconnexion", + "HeaderSelectServer": "Sélectionner le serveur", + "HeaderChangeServer": "Changer de serveur", + "HeaderChangeUser": "Changer d'utilisateur", + "HeaderAppSettings": "Paramètres de l'application", + "HeaderLoginSettings": "Paramètres de connexion", + "LabelRememberLogin": "Se souvenir de la connexion", + "LabelAutomaticallySignOut": "Se déconnecter automatiquement", + "BetaTesterMessage": "Merci d'être un bêta-testeur d'Emby! Veuillez laisser vos commentaires dans la {0}zone de test de la communauté Emby{1}.", + "HardwareAccelerated": "Accélération matérielle", + "Software": "Logiciel", + "Metadata": "Métadonnées", + "HeaderMediaInfo": "Informations du média", + "Locked": "Verrouillé", + "HeaderSplitVersionsApart": "Séparer les versions", + "Any": "Tout", + "Admin": "Administrateur", + "HeaderReadMore": "Lire plus", + "CustomRatingHelp": "Une note personnalisée pour les évaluations de contrôle parental est utilisée mais n’est pas affichée. La classification parentale est toujours affiché.", + "KeepUpToHelp": "Les enregistrements qui dépassent la limite sont supprimés quand l’enregistrement suivant commence. Les enregistrements les plus anciens sont supprimés d’abord, par date d’ajout.", + "NoItemsMatchingFound": "Aucun élément correspondant à vos critères de recherche n’a été trouvé.", + "TwoSearchCharsRequired": "Veuillez saisir au moins deux caractères à rechercher.", + "PreventPlaybackContinuing": "Empêcher la lecture de continuer indéfiniment sans action de l’utilisateur", + "PromptStillWatching": "Activer la demande 'Vous regardez toujours?'", + "HeaderMissingMetadata": "Métadonnée manquante", + "HeaderIncludedIn": "Inclus dans", + "EmbyConnectUserAlreadyLinked": "L’utilisateur Emby Connect est déjà lié à un autre utilisateur sur ce serveur.", + "VideoFilesWillBeConvertedTo": "Les vidéos converties seront enregistrées comme {0}.", + "VideoWillBeConvertedTo": "Les flux vidéo seront convertis en {0} ou copiés depuis le fichier original s’ils sont déjà en {0} et que la qualité correspond aux options de conversion.", + "VideoWillBeConvertedToOrCopied": "Les flux vidéo seront convertis en {0} ou copiés depuis le fichier original s’ils font partie de {1} et que la qualité correspond aux options de conversion.", + "AudioWillBeConvertedTo": "Les flux audio seront convertis en {0} ou copiés depuis le fichier original s’ils sont déjà en {0} et que la qualité correspond aux options de conversion.", + "AudioWillBeConvertedToOrCopied": "Les flux audio seront convertis en {0} ou copiés depuis le fichier original s’ils font partie de {1} et que la qualité correspond aux options de conversion.", + "HeaderSpecialKeys": "Touches spéciales", + "FollowingSpecialKeys": "Les touches spéciales suivantes sont prises en charge sur la plupart des claviers et des télécommandes:", + "HeaderDeleteSeries": "Supprimer les séries", + "HeaderDeleteLastPlayedEpisode": "Supprimer le dernier épisode lu", + "HeaderConnectingToServer": "Connexion au serveur", + "ServerNameValue": "Nom du serveur: {0}", + "DomainValue": "Domaine: {0}", + "RatedValue": "Classé {0}", + "LocalServerRedirectMessage": "Vous allez maintenant être redirigé vers le domaine administré et appartenant à l'administrateur du serveur auquel vous avez choisi de vous connecter:", + "AllMediaOwnedHosted": "Tous les médias sont hébergés et gérés par le propriétaire de {0}.", + "EnableResolutionSwitching": "Faire correspondre à la résolution de la vidéo", + "EnableResolutionSwitchingHelp": "Ceci permet à Emby de modifier la résolution à la même valeur à laquelle la vidéo à été encodée avant de démarrer la lecture. Cela peut aider à minimiser la quantité de déchirements / saccades que vous pourriez autrement rencontrer lors de la lecture de vidéos qui ne correspondent pas parfaitement.", + "EnableDisplayRefreshRateSwitching": "Activer la commutation du taux de rafraîchissement de l'affichage", + "EnableDisplayRefreshRateSwitchingHelp": "Ceci permet à Emby de modifier le taux de rafraîchissement de l'affichage sur la même valeur (ou un multiple) que la fréquence d'images dans laquelle la vidéo a été encodée avant de commencer la lecture. Cela permet de minimiser le nombre de déchirements / saccades que vous pourriez autrement rencontrer lors de la lecture de vidéos qui ne correspondent pas parfaitement.", + "RememberSelectedAudioTracks": "Se souvenir des sélections de piste audio", + "RememberSelectedSubtitleTracks": "Se souvenir des sélections de sous-titres", + "RememberSelectedSubtitleTracksHelp": "Les sélections de sous-titres seront enregistrées pour chaque vidéo et réappliquées si la vidéo est de nouveau lue.", + "RememberSelectedAudioTracksHelp": "Les sélections de piste audio seront enregistrées pour chaque vidéo et réappliquées si la vidéo est de nouveau lue.", + "ClearSavedTrackSelections": "Vider les sélections de piste enregistrées", + "HeaderClearTrackSelections": "Vider les sélections de piste enregistrées", + "QuestionClearSavedTracks": "Vider toutes les sélections de piste enregistrées?", + "LabelChannelTags": "Tags de chaine", + "AfterThisPlaysConfirmation": "Après ce morceau, voulez-vous continuer la lecture ou bien vider la liste de morceaux qui sont en file d'attente?", + "Keep": "Conserver", + "Clear": "Vider", + "HeaderClearFilters": "Supprimer les filtres", + "HeaderSearchForImages": "Rechercher les images", + "HeaderSearchNewImage": "Rechercher une nouvelle image", + "HeaderSearchForAnImage": "Rechercher une image", + "DragDropToReorder": "Glisser-Déplacer pour réorganiser", + "HeaderAddImageFromUrl": "Ajouter une image depuis une URL", + "HeaderSetImageFromUrl": "Définir une image depuis une URL", + "LabelUrl": "URL", + "LabelChannelNumber": "Numéro de chaine", + "LabelGuideDataChannel": "Chaine du guide", + "GuideDataSource": "Source de données du guide", + "HeaderCopyToClipboard": "Copier dans le presse-papier", + "TimeRemainingValue": "{0} restantes", + "LabelResumeRewindSeconds": "En reprise de lecture, retour automatique en arrière", + "ResumeRewindSecondsHelp": "Peut aider à vous rappeler où vous vous êtes arrêté. Ceci s'applique à la pause initiale et pas à chaque pause individuelle réalisée pendant la lecture.", + "HeaderSavePlayQueueToPlaylist": "Enregistre dans la liste de lecture", + "EnableLogoImagesAsTitle": "Afficher des logos à la place des titres sur les écrans de détail", + "EnableLogoImagesAsTitleHelp": "Un logo sera affiché à la place du titre sur l'écran de détail des vidéos. Si le logo n'est pas disponible, le titre textuel sera affiché.", + "LabelNowPlayingAudioBackgroundStyle": "Style de fond de l'audio en cours de lecture", + "LabelNowPlayingVideoBackgroundStyle": "Style de fond de la vidéo en cours de lecture", + "NowPlayingVideoBackgroundStyleHelp": "Détermine l'arrière plan lors du contrôle à distance de la lecture sur un autre appareil.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Durée d'enregistrement maximale", + "MaxRecordingLengthHelp": "Limite la durée des enregistrements, quelle que soit la durée de la diffusion. (0 = aucune limite)", + "RemoteWAN": "Adresse (WAN)", + "HeaderLastConnectedTo": "Dernière connexion à", + "Version": "Version", + "Keyword": "Mot-clé", + "HeaderServerAddress": "Adresse du serveur", + "HeaderSkipIntro": "Passer l'introduction", + "HeaderCreateRecording": "créer enregistrement", + "HeaderAddRecording": "Ajouter enregistrement", + "HeaderChannelAndTime": "Chaine et Heure", + "LabelRecordProgramOrSeriesFrom": "Enregistrer une émission ou une série à partir de", + "LabelStartTime": "Heure de début", + "LabelEndTime": "Heure de fin", + "LabelFrequency": "Fréquence", + "Recurring": "Récurrent", + "Once": "Une fois", + "Start": "Démarrer", + "Unpause": "Reprendre", + "LabelIntroSkipMode": "Mode de saut d'intro", + "ShowSkipIntroButton": "Afficher le bouton 'Passer l'intro'", + "AutoSkipIntro": "Sauter automatiquement les intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Afficher les informations de classification en début de lecture vidéo", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Affiche brièvement les informations de classification au démarrage de la lecture vidéo.", + "IntroSkipModeHelp": "Affiche un bouton 'Passer l'intro' ou saute automatiquement les intros pour les épisodes dans lesquels Emby Server a détecté des marqueurs d'intro. La détection d'intro doit être activée dans Emby Server.", + "EnableHomeScreenFocusPreview": "Utiliser une mise en page sur l'écran d'accueil qui affiche un aperçu détaillé de l'élément sélectionné", + "EnableHomeScreenFocusPreviewHelp": "Peut ne pas fonctionner correctement si votre écran d'accueil contient différents types de médias.", + "LabelHideMediaTransportButtons": "Masquer les touches de déplacement du lecteur vidéo", + "HideMediaTransportButtonsHelp": "Crée une interface de lecture simplifiée en masquant les touches de déplacement basiques telles que Avancer, Reculer et Pause. Ces fonctions seront toujours accessibles en utilisant les flèches et la touche OK/Entrée. 'Auto' masque les boutons de déplacement quand la souris n'est pas détectée par l'application.", + "ImageSizeHelp": "Définissez la dimension des images sur la page.", + "LabelImageSize": "Taille de l'image", + "ThisImageIsOnlyPreview": "Cette image est seulement une prévisualisation fournie par le moteur de recherche de métadonnées. L'image téléchargée par Emby Server pourrait être différente et dépendra des options que vous avez configuré dans les paramètres de bibliothèque d'Emby.", + "ResultsRangeValue": "{0} à {1} sur {2}", + "NotificationsDescription": "Paramétrez les notifications pour rester informés sur les évènements importants survenus sur votre serveur Emby.", + "DeleteEmbyConnectAccount": "Supprimer le compte Emby Connect", + "DeleteEmbyConnectAccountHelp": "Pour supprimer votre compte Emby Connect, veuillez vous authentifier auprès de la {0}Communauté Emby{1} à {2}. Une fois authentifié, cliquez ensuite sur votre nom d'utilisateur en haut à droite, puis cliquez sur Account Settings, puis cliquez sur Delete My Account.", + "KeepPlayingInBackground": "Continuer de lire en arrière-plan", + "LabelVideoBackBehavior": "Comportement du bouton retour du lecteur", + "HeaderViewLyrics": "Voir les paroles", + "HeaderViewMissingEpisodes": "Voir les épisodes manquants", + "HeaderMissingEpisodes": "Episodes manquants", + "HeaderManageAccess": "Gérer l'accès", + "HeaderManageCollaboration": "Gérer la collaboration", + "HeaderLeaveCollaboration": "Quitter la collaboration", + "HeaderRemoveFromLibrary": "Retirer de la bibliothèque", + "RemoveSharedItemConfirmation": "Êtes-vous sûr de vouloir retirer ce document de votre bibliothèque ? Pour le récupérer, le propriétaire devra vous accorder à nouveau l'accès.", + "SubtitlesDownloaded": "Sous-titres téléchargés", + "HeaderMakePrivate": "Rendre privé", + "HeaderMakePublic": "Rendre public", + "MakePublicDescription": "Tous les utilisateurs seront en mesure de voir cet élément. Les utilisateurs peuvent se voir accorder l'accès pour modifier.", + "MakePrivateDescription": "Les utilisateurs peuvent toujours se voir accorder l'accès individuellement.", + "Private": "Privé", + "Public": "Public", + "Collaborative": "Collaboratif", + "PreferredShowDisplay": "Affichage de série préféré", + "ShowAllEpisodesAllSeasons": "Afficher tous les épisodes de toutes les saisons ensemble", + "ShowAllEpisodesSingleSeason": "Afficher tous les épisodes pour les séries n'ayant qu'une seule saison", + "ShowSeasonFolders": "Toujours afficher les dossiers de saison", + "HeaderAddAgain": "Ajouter de nouveau", + "UpNext": "À suivre", + "ItemsAlreadyInPlaylist": "Certains de ces éléments figurent déjà dans votre liste de lecture.", + "ItemAlreadyInPlaylist": "Cet élément figure déjà dans votre liste de lecture.", + "HeaderPlayChannel": "Lire la chaîne", + "LabelScreenOrientationDuringVideo": "Orientation de l'écran pendant la lecture vidéo", + "UseDeviceSetting": "Utiliser les paramètres de l'appareil", + "LockToLandscape": "Verrouiller en paysage", + "UsernameForFolderHelp": "Le nom d'utilisateur requis pour accéder à ce dossier sur votre réseau (le cas échéant).", + "PasswordForFolderHelp": "Le mot de passe requis pour accéder à ce dossier sur votre réseau (le cas échéant).", + "ShowMediaInfoOnDetailScreens": "Afficher les informations complètes sur les médias dans les écrans de détail audio et vidéo", + "ForgotPasswordNoUserFound": "Aucun utilisateur n'a été trouvé avec le nom saisi. Veuillez réessayer ou laisser le nom vide pour réinitialiser le mot de passe de tous les utilisateurs de ce serveur.", + "Silver": "Argenté", + "DimGray": "Gris foncé", + "DarkGray": "Gris foncé", + "LightGray": "Gris clair", + "Black": "Noir", + "Blue": "Bleu", + "Cyan": "Cyan", + "Gray": "Gris", + "Green": "Vert", + "Lime": "Vert citron", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Rose", + "Red": "Rouge", + "Yellow": "Jaune", + "White": "Blanc", + "Purple": "Violet", + "RecentlyReleasedMovies": "Films récemment sortis", + "RecentlyReleasedEpisodes": "Episodes diffusés récemment", + "DolbyProfile": "Profil Dolby", + "IpAddress": "Adresse IP", + "VideoType": "Type de Vidéo", + "HidePlayedMediaFrom": "Masquer les médias lus depuis", + "BottomEdgePosition": "Position du bord inférieur", + "VerticalPositionFromBottomScreen": "Définit la position verticale des sous-titres par rapport au bas de l'écran.", + "TopEdgePosition": "Position du bord supérieur", + "TopEdgePositionHelp": "Définit la position verticale maximale autorisée des sous-titres par rapport au haut de l'écran. Cette fonction est utilisée lorsque les sous-titres contiennent des instructions de positionnement en haut de l'écran.", + "HeaderSubtitlePosition": "Position des sous-titres", + "TitleProfilePin": "Code PIN du profil", + "ProfilePinConfirm": "Code PIN du profil (confirmer)", + "SaveProfilePin": "Sauvegarder le code PIN", + "ProfilePinDescription": "Créez un code PIN facultatif qui vous sera demandé à chaque fois que vous reviendrez à une application Emby sur un appareil auquel vous vous êtes déjà connecté. Ceci est utile si vous avez des appareils partagés par plusieurs utilisateurs. Vous pouvez choisir de l'activer séparément sur chaque appareil selon vos besoins.", + "TitleNewEpisodes": "Nouveaux Episodes", + "EnterYourPinToContinue": "Saisissez votre code PIN pour continuer.", + "YourPinMustBe": "Votre code PIN doit être composé de {0} chiffre(s).", + "ForgotPin": "Code PIN oublié ?", + "RequireEnteringPinToReturn": "Exiger la saisie du code PIN de mon profil à chaque fois que je reviens sur cette application.", + "RequireEnteringPinToReturnQuestion": "Devrions-nous vous demander votre code PIN à chaque fois que vous revenez à cette application ? Si cet appareil est partagé par plusieurs utilisateurs, votre code PIN peut empêcher les autres utilisateurs d'accéder à vos données.", + "RequireEnteringPinToReturnHelp": "Utile si cet appareil est partagé par plusieurs utilisateurs.", + "WrongPinPleaseTryAgain": "Oups, mauvais code PIN. Veuillez réessayer.", + "ProfilePinIsOn": "Le PIN du profil est actuellement activé.", + "IfTryingToConnectToHttp": "Si vous essayez de vous connecter à votre serveur Emby en utilisant une adresse HTTP, il se peut que votre navigateur ne l'autorise pas à cause des exigences HTTPS. Veuillez essayer l'une des options suivantes :", + "SetupHttpsForYourServer": "Configurez {0}HTTPS pour votre serveur Emby{1} afin de pouvoir vous connecter en utilisant HTTPS.", + "TitleUnableToReachServer": "Impossible de joindre le serveur", + "TitleUnableToReachName": "Impossible de joindre {0}", + "HearingImpaired": "Malentendants", + "SignIntoServerName": "Se connecter à {0}", + "About": "À propos", + "Specials": "Spéciaux", + "NSettings": "{0} Paramètres", + "NPreferences": "{0} Préférences", + "DetailScreenOptions": "Écrans de détail", + "LabelGenreDisplayLimit": "Limite d'affichage de genre", + "GenreDisplayLimitHelp": "Limiter le nombre de genres affichés en haut des écrans de détail des éléments.", + "GenreDisplayLimitForListsHelp": "Limiter le nombre de genres affichés en haut des écrans de détail des listes de lecture, des collections et des artistes.", + "LabelGenreDisplayLimitForLists": "Limite d'affichage de genre pour les listes", + "ShowPosterOnDetails": "Afficher un poster sur l'écran de détail", + "ShowPosterOnDetailsHelp": "Choisissez de montrer un poster sur des écrans de détail vidéo, ou de le masquer pour un look plus minimal qui met l'accent sur l'arrière-plan. Ce paramètre n'est pas utilisé sur les mises en page d'écran plus petites. Certains types d'éléments ignoreront ce paramètre.", + "EnableAppLogging": "Activer la journalisation de l'application", + "EnableAppLoggingHelp": "La journalisation peut dégrader les performances de l'application et ne doit être activée qu'en cas de besoin, à des fins de dépannage. Les modifications nécessitent le redémarrage de l'application.", + "LabelSlideshowInterval": "Durée du diaporama par diapositive", + "TVChannelImageEditorHelp": "Plusieurs versions de logo sont prises en charge. L'application Emby choisira automatiquement la version appropriée en fonction du thème en cours.", + "PlaySlideshow": "Lire le diaporama", + "CheckForExistingEpisodesInAllLibraries": "Vérifier la présence d'épisodes existants dans toutes les bibliothèques", + "GroupNotificationsBySeriesOrAlbum": "Regrouper les notifications par séries et albums", + "ThemeSettings": "Paramètres de thème", + "FollowingActivityWillBeDisrupted": "L'activité suivante sera interrompue et peut nécessiter une intervention manuelle pour redémarrer :", + "OneActivePlaybackSession": "1 session de lecture active", + "NumActivePlaybackSessions": "{0} sessions de lecture actives", + "OneActiveRecording": "1 enregistrement actif", + "NumActiveRecordings": "{0} enregistrements actifs", + "PlayFromLivePosition": "Reprendre le direct", + "PlayFromStartOfRecording": "Lire depuis le début de l'enregistrement", + "ThisChannelIsActivelyRecording": "Cette chaine est en cours d'enregistrement. Comment souhaitez-vous démarrer la lecture ?", + "ThemeSongVolume": "Volume des thèmes musicaux", + "HeaderForceConversionForFormats": "Forcer la conversion pour les formats", + "ForceConversionForFormatsHelp": "Utilisez cette option pour forcer le transcodage ou le remuxing côté serveur pour les formats qui ne se lisent pas correctement sur cet appareil.", + "StartupBehavior": "Comportement au démarrage", + "RememberLastUser": "Se souvenir du dernier utilisateur", + "ShowLoginScreen": "Afficher l'écran de connexion", + "SignInAsValue": "Se connecter en tant que {0}", + "ConvertUnsupportedAudio": "Convertir le son surround non pris en charge en Dolby Digital", + "ConvertUnsupportedAudioHelp": "Évitez de downmixer en stéréo des formats surround non pris en charge en demandant à Emby Server de les transcoder en Dolby Digital.", + "HeaderPlaybackCorrection": "Correction de la lecture", + "HeaderAttemptPlaybackCorrection": "Tentative de correction de la lecture", + "PlaybackCorrectionConfirm": "Voulez-vous tenter de corriger de la lecture ?", + "PlaybackCorrectionDescription": "L'élément actuel présente-t-il un problème de lecture tel que l'absence de vidéo ou d'audio ? Cette opération tentera de corriger les problèmes de lecture en utilisant le transcodage du serveur pour convertir ce fichier dans un format plus adapté à la diffusion en continu. Cela entraînera une augmentation de la consommation de ressources sur le serveur Emby.", + "PlaybackCorrectionDescription2": "Vous pouvez effectuer cette opération jusqu'à trois fois par vidéo, le remuxing, le transcodage vidéo et le transcodage audio étant activés un à la fois.", + "HeaderAlbumsAsContributingArtist": "Albums en tant qu'artiste collaborateur", + "HeaderAlbumsAsComposer": "Albums en tant que compositeur", + "Duplicates": "Doublons", + "HeaderSleepTimer": "Minuterie avant mise en veille", + "AfterCurrentItem": "Après l'élément actuel", + "HeaderStopPlayback": "Arrêter la lecture", + "TurnOffTimer": "Désactiver la minuterie", + "SleepTimerIsSet": "Votre minuterie de mise en veille est paramétrée", + "SleepTimerIsOff": "Votre minuterie de mise en veille est désactivée", + "LabelEnableRemoteControlTVMode": "Afficher les fonctions de diffusion (cast) et de télécommande", + "EnableRemoteControlTVModeHelp": "Activez cette option si vous avez l'intention d'utiliser cet appareil pour envoyer des fichiers multimédias à d'autres appareils.", + "ShowOnScreenControls": "Afficher les controles sur l'écran", + "LabelVideoScreenUpAction": "Action de la touche 'Haut' sur le lecteur vidéo", + "VideoScreenUpActionHelp": "Sélectionnez l'action à effectuer lorsque vous appuyez sur la touche 'Haut' sur l'écran du lecteur vidéo. Ceci s'applique lorsqu'aucune commande n'est visible à l'écran. Lorsque des commandes sont déjà visibles, la touche 'Haut' sera utilisée pour la navigation.", + "LabelVideoPlayerLongPressAction": "Action d'appui long sur le lecteur vidéo", + "LetsGetSetup": "Un peu de paramétrage", + "VideoPlayerLongPressActionHelp": "Choisissez la fonction ou le menu qui s'affiche lorsque vous appuyez longuement sur le bouton OK pendant la lecture d'une vidéo. Ce choix n'est effectif que lorsque les commandes vidéo sont masquées ou que la barre de recherche est mise en évidence.", + "AskAdminToGetPremiere": "Cet achat doit être effectué par l'administrateur du serveur. Veuillez demander à l'administrateur de ce serveur Emby de se connecter et d'obtenir Emby Premiere afin que vous puissiez bénéficier de l'accès aux fonctionnalités premium.", + "AutoOpenSingleItemsFolders": "Ouvrir automatiquement les éléments uniques dans la vue dossier", + "AutoOpenSingleItemsFoldersHelp": "Lorsqu'un dossier ne contient qu'un seul élément, ouvrir automatiquement cet élément.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Oublier Ce Serveur", + "ForgetServerConfirmation": "Voulez-vous vraiment oublier ce serveur ?", + "HeaderThisDevice": "Cet appareil", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/he.json b/modules/common/strings/he.json new file mode 100644 index 0000000..c740188 --- /dev/null +++ b/modules/common/strings/he.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "החלף תמונות תצוגה מקדימה קיימות של וידאו", + "ReplaceExistingThumbnailImagesHelp": "כל תמונות התצוגה המקדימה הקיימות של הווידאו יימחקו וייווצרו חדשות, אם האפשרות מופעלת בהגדרות הספרייה.", + "DateCreated": "תאריך יצירה", + "CreatedOnValue": "נוצר {0}", + "UpdatedOnValue": "עודכן {0}", + "EmbyLoginTerms": "Emby נועד לעזור לך לנהל את ספריית המדיה האישית שלך, כגון סרטונים ביתיים ותמונות. עיין {0} בתנאי השימוש {1} שלנו. השימוש בכל תוכנה של emby מהווה הסכמה לתנאים אלה.", + "MessageUnableToConnectToServer": "אין באפשרותנו להיכנס לשרת שנבחר כעת. ודא שהוא פועל ונסה שוב.", + "EmbyIntroMessage": "עם Emby אתה יכול בקלות לבצע סטרימינג לוידאו, מוזיקה ותמונות לטלפונים חכמים, טאבלטים והתקנים אחרים משרת הemby שלך.", + "HeaderSignInWithConnect": "היכנס עם Emby Connect", + "HeaderWelcomeToEmby": "ברוך הבא לEmby", + "HeaderNewUsers": "משתמש חדש", + "HeaderPleaseSignIn": "היכנס", + "MessageInvalidUser": "שם משתמש וסיסמה שגויים. אנא נסה שוב.", + "MessageUnlockAppWithPurchaseOrSupporter": "נעילת תכונה זו עם רכישה חד פעמית קטנה, או עם מנוי פעיל Emby Premiere.", + "MessageUnlockAppWithSupporter": "ביטול נעילה של תכונה זו עם מנוי פעיל של Emby Premiere.", + "MessageToValidateSupporter": "אם יש לך מנוי פעיל של Emby Premiere, ודא שהגדרת את Emby Premiere במרכז השליטה של שרת ​​Emby , שבו באפשרותך לגשת על ידי לחיצה על Emby Premiere בתפריט הראשי.", + "ValueSpecialEpisodeName": "ספיישל - {0}", + "HeaderSignIn": "היכנס", + "Share": "שתף", + "Shared": "משותף", + "Info": "תקציר ופרטים", + "Add": "הוסף", + "Speed": "מהירות הפעלה", + "PlaybackSpeed": "מהירות ניגון", + "Chapters": "קטעים", + "Password": "סיסמה", + "SavePassword": "שמור סיסמה", + "LabelPassword": "סיסמה", + "HeaderResetPassword": "שחזר סיסמה", + "Series": "סדרות", + "Preview": "‏תצוגה מקדימה‏", + "Submit": "שלח", + "Never": "לעולם לא", + "Table": "טבלה", + "HeaderScheduledTasks": "משימות מתוזמנות", + "Plays": "מצב הפעלה", + "LastUsedAddressValue": "נעשה שימוש לאחרונה ב־{0}", + "LabelKeywordType": "סוג מילת מפתח", + "HeaderSelectColumns": "בחר עמודות", + "HeaderTopResults": "‏תוצאות מובילות‏", + "HeaderPinSidebar": "‏הצמד סרגל צידי‏", + "Collapse": "כווץ", + "LabelBackgroundVideoPlayback": "‏הפעלת וידאו ברקע", + "BackgroundVideoPlaybackHelp": "אפשרות זו מאפשרת לווידאו להמשיך לפעול ברקע גם כשהמסך כבוי.", + "AlwaysOn": "פועל תמיד", + "HeadphonesOrExternalSpeakersConnected": "כאשר מחוברים אוזניות או רמקולים חיצוניים", + "HeaderKeyboardAndRemote": "מקלדת או שלט", + "NoSelectedItemsSupportOperation": "לא נבחרו כותרים התומכים בפעולה זו.", + "NoOperationsForSelectedItems": "אין פעולות זמינות עבור הכותרים שנבחרו.", + "UploadOnlyOnWifi": "העלה רק בחיבור לרשת WiFi", + "HeaderFoldersToUpload": "תיקיות להעלאה", + "LabelPasswordConfirm": "סיסמה (אישור)", + "HeaderMoveUpInOrder": "התקדם לפי הסדר", + "HeaderDownUpInOrder": "לזוז למטה לפי הסדר", + "LabelUsername": "שם משתמש", + "HeaderAddServer": "הוסף שרת", + "HeaderSubtitleOffset": "היסט כתוביות", + "Watching": "צפייה", + "HeaderRemoveFromContinueWatching": "הסרה מהמשך צפייה", + "RemoveThisTitleFromContinueWatching": "האם להסיר את הכותר הזה מהמשך צפייה?", + "HeaderRemoveFromContinueListening": "הסר מהמשך האזנה", + "RemoveThisTitleFromContinueListening": "האם להסיר את הפריט הזה מ'להמשיך להאזין?", + "HeaderIncreaseSubtitleOffset": "הגדל היסט כתוביות", + "HeaderDecreaseSubtitleOffset": "הקטן היסט כתוביות", + "Close": "סגור", + "HeaderSeeAll": "הצג הכל", + "HeaderOpenInNewWindow": "פתח בחלון חדש", + "LabelEmail": "אימייל", + "LabelHost": "מארח", + "LabelHostHelp": "לדוגמה: ‎192.168.1.100 או ‎https://myserver.com", + "LabelPort": "פורט", + "Disabled": "מבוטל", + "Uninstall": "הסר את ההתקנה", + "Enable": "הפעל", + "AllTuners": "כל הטיונרים", + "Disable": "השבת", + "NextValue": "הבא: {0}", + "HeaderNextItem": "פריט הבא", + "HeaderPreviousItem": "פריט קודם", + "NoTrailersMessage": "לא נמצאו טריילרים. כדי להוסיף טריילרים, הוסף את תוסף הטריילרים מ{0} קטלוג התוספים של Emby{1}.", + "UninstallPluginConfirmation": "האם אתה בטוח שברצונך להסיר תוסף זה?", + "HeaderUninstallPlugin": "הסר תוסף", + "AreYouStillWatching": "האם אתה עוד צופה?", + "LabelCurrentPassword": "סיסמה נוכחית", + "LabelNewPassword": "סיסמא חדשה", + "LabelNewPasswordConfirm": "אישור סיסמה חדשה", + "HeaderRemovePassword": "הסר סיסמה", + "ServerUpdateNeeded": "שרת Emby זה צריך להיות מעודכן. כדי להוריד את הגרסה העדכנית ביותר, בקר בכתובת {0}", + "MessageThankYouForConnectSignUp": "תודה שנרשמת לEmby Connect. הודעת אימייל תישלח לכתובת שלך עם הנחיות כיצד לאשר את החשבון החדש שלך. אשר את החשבון ולאחר מכן חזור לכאן כדי להיכנס.", + "MessageThankYouForConnectSignUpNoValidation": "תודה שנרשמת לEmby Connect! כעת תתבקש להתחבר עם המידע שלך בEmby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "סיסמה ואישור סיסמה חייבים להיות תואמים.", + "ErrorMessageUsernameInUse": "שם המשתמש תפוס. אנא בחר שם משתמש חדש ונסה שוב", + "ErrorMessageEmailInUse": "כתובת האימייל כבר נמצאת בשימוש. הזן כתובת דוא\"ל חדשה ונסה שוב, או השתמש בתכונה שכחתי סיסמה.", + "HeaderUpcomingOnTV": "שידורים קרובים", + "HeaderOtherShowings": "תצוגות אחרות", + "Showings": "תצוגות", + "HeaderConnectToServer": "התחבר לשרת", + "ConnectToServerManually": "התחבר לשרת ידנית", + "LabelEnterConnectUserNameHelp": "זוהי כתובת הדוא\"ל שבה השתמשת כדי להגדיר את חשבון Emby Connect שלך.", + "HeaderSignInError": "שגיאת התחברות", + "HeaderManualLogin": "התחברות ידנית", + "PasswordResetConfirmation": "האם אתה בטוח שברצונך לאפס את הסיסמה?", + "ContactAdminToResetPassword": "אנא פנה למנהל המערכת שלך כדי לאפס את הסיסמה שלך.", + "ForgotPasswordInNetworkRequired": "אנא נסה שוב ברשת הביתית שלך כדי להתחיל את תהליך איפוס הסיסמה.", + "ForgotPasswordFileCreated": "הקובץ הבא נוצר בשרת שלך ומכיל הוראות כיצד להמשיך:", + "ForgotPasswordFileExpiration": "תוקף קוד לאיפוס יפוג ב{0}.", + "InvalidForgotPasswordPin": "הוזן קוד לא חוקי או שפג תוקפו. בבקשה נסה שוב.", + "PasswordResetForUsers": "סיסמאות הוסרו עבור המשתמשים הבאים. כדי להיכנס, הכנס עם סיסמה ריקה.", + "HeaderForgotPassword": "שכחת סיסמה?", + "ForgotPasswordUsernameHelp": "השאר שדה זה ריק אם אינך זוכר את שם המשתמש שלך.", + "HeaderPasswordReset": "איפוס סיסמה", + "AttributeNew": "חדש", + "Done": "בוצע", + "HeaderResetToDefault": "אחזר לברירת המחדל", + "Deinterlacing": "ביטול השזירה", + "HeaderBurningInSubtitles": "כתוביות מוטמעות", + "Premiere": "הקרנת בכורה", + "LabelPinCode": "קוד PIN", + "LabelLocalNetworkPinCode": "קוד PIN לרשת המקומית", + "LabelLocalNetworkPasswordMode": "מצב כניסה דרך הרשת המקומית", + "RequirePasswordInLocalNetwork": "דרוש סיסמה ברשת המקומית", + "NoPasswordInLocalNetwork": "אל תדרוש סיסמה ברשת המקומית", + "PinCodeInLocalNetwork": "אפשר קוד PIN מספרי ברשת המקומית", + "LocalNetworkPasswordModeHelp": "בחר את שיטת הכניסה עבור מכשירים באותה רשת מקומית כמו שרת Emby שלך.", + "HeaderLocalNetworkAccess": "גישה לרשת מקומית", + "Live": "שידור חי", + "Reset": "אִתחוּל", + "Repeat": "חזור", + "Track": "קטע", + "Tracks": "שירים", + "HeaderCameraUpload": "העלאות מצלמה", + "TrackCount": "רצועות {0}", + "ItemCount": "{0} פריטים", + "NumberChannelsValue": "{0} ערוצים", + "HeaderLatestMusic": "נוספו לאחרונה במוזיקה", + "HeaderLatestAudioBooks": "נוספו לאחרונה בספרים מוקלטים", + "HeaderLatestDownloadedVideos": "הורדות וידאו אחרונות", + "HeaderRecentlyPlayed": "לאחרונה הופעל", + "Recent": "לאחרונה", + "HeaderFrequentlyPlayed": "מופעל לרוב", + "HeaderMoreLikeThis": "כותרים דומים", + "HeaderMoreLikeThisOnLiveTV": "עוד כמו זה בטלוויזיה בשידור חי", + "OriginalAirDateValue": "תאריך אוויר מקורי: {0}", + "EndsAtValue": "מסתיים ב:{0}", + "Date": "תאריך", + "AirDate": "תאריך שידור", + "Played": "הופעל", + "Daily": "יומי", + "Weekly": "שבועי", + "RequireHashMatch": "מצריך התאמת גיבוב", + "RequireHashMatchHelp": "דרישה להתאמה של גיבוב יסנן כתוביות כדי לכלול רק את אלה שנבדקו עם קובץ הווידאו המדויק שלך. ביטול הסימון יגדיל את מספר הכתוביות המותאמות, אך גם יגביר את הסיכויים לטקסט כתוב כתוב שגוי או שגוי.", + "SearchForForcedSubtitlesOnly": "הכרח כתוביות בלבד", + "SearchForForcedSubtitlesOnlyHelp": "דרישה לתרגום כפוי תגביל את התוצאות לכותרות המתויגות כבעלות שפה זרה.", + "LastEpisodeDateAdded": "תאריך הוספת הפרק האחרון", + "LastEpisodeDateAired": "תאריך שחרור פרק אחרון", + "LabelPlaystate": "מצב הפעלה", + "Studio": "אולפן", + "Tag": "תגית", + "EpisodeTitle": "כותרת פרק", + "Audio": "שמע", + "Video": "וידאו", + "Subtitle": "כתוביות", + "Image": "תמונה", + "CopyStream": "העתק את הסטרימינג המקורי", + "LabelAudioLayout": "תצורת שמע", + "LabelAudioCodec": "פורמט שמע", + "LabelAudioLanguage": "שפת שמע", + "LabelSubtitleLanguage": "שפת כתוביות", + "LabelVideoCodec": "פורמט וידאו", + "LabelSubtitleCodec": "פורמט כתוביות", + "LabelParentalRating": "דירוג הורים", + "BecauseYouLikeValue": "משום שאהבת את {0}", + "BecauseYouWatchedValue": "משום שצפית ב{0}", + "DirectedByValue": "בימוי {0}", + "StarringValue": "כוכבים {0}", + "Invitations": "הזמנות", + "ActorAsRole": "כ{0}", + "ButtonOk": "אישור", + "GroupItemsIntoCollections": "קבץ פריטים לאוספים", + "GroupItemsIntoCollectionsHelp": "קבץ פריטים לפי האוספים שלהם. הפעלת מסננים מסוימים או שינוי סדר התצוגה עשויים להשבית אפשרות זו אוטומטית.", + "GroupItemsIntoTags": "קבץ פריטים לתגיות", + "GroupItemsIntoTagsHelp": "קבץ פריטים לפי התגיות שאליהן הם נוספו. הפעלת מסננים מסוימים או שינוי סדר התצוגה עשויים להשבית אפשרות זו אוטומטית.", + "User": "משתמש", + "Access": "גישה", + "Users": "משתמשים", + "Library": "ספרייה", + "Devices": "מכשיר", + "Cancel": "ביטול", + "Restart": "אתחול", + "Shutdown": "כיבוי", + "Logs": "יומני לוג", + "Visibility": "נראות", + "Notifications": "התראות", + "SendTestNotification": "שלח התראת בדיקה", + "NotificationSent": "התראת בדיקה", + "DeleteNotificationConfirmation": "האם אתה בטוח שברצונך למחוק התראה זאת?", + "DeleteNotification": "מחק התראה", + "AddNotification": "הוסף התראה", + "EditNotification": "ערוך התראה", + "LimitUserEventsTo": "הגבל את אירועי המשתמש ל", + "LimitLibraryEventsTo": "הגבל את אירועי הספרייה ל", + "LimitDeviceEventsTo": "הגבל את אירועי המכשירים ל", + "ForAdditionalNotificationOptions": "שירותי התראות נוספים ניתנים להתקנה על ידי מנהל השרת מתוך {0}קטלוג התוספים{1} של Emby.", + "Plugins": "תוספים", + "Systems": "מערכת", + "Server": "שרת", + "Dashboard": "לוח בקרה", + "PlayOnAnotherDevice": "הפעל במכשיר אחר", + "HeaderConnectionHelp": "עזרה בקישוריות", + "AccessRestrictedTryAgainLater": "הכניסה מוגבלת כעת. אנא נסה שוב מאוחר יותר.", + "ButtonGotIt": "הבנתי", + "RememberMe": "זכור אותי", + "EmbyServer": "שרת Emby", + "ManageEmbyServer": "לוח בקרה", + "ShutdownServer": "כיבוי שרת Emby", + "RestartServer": "אתחול שרת Emby", + "RecordingCancelled": "הקלטה בוטלה", + "SeriesCancelled": "הקלטת סדרה בוטלה", + "Recording": "הקלטה", + "SeriesRecording": "הקלטת סדרות", + "RecordingScheduled": "ההקלטה מתוזמנת", + "SeriesRecordingScheduled": "הקלטת הסדרה מתוזמנת", + "HeaderNewRecording": "הקלטה חדשה", + "HeaderWakeServer": "הער שרת", + "AttemptingWakeServer": "מנסה להעיר שרת. אנא המתן...", + "WakeServerSuccess": "הצלחה!", + "HeaderCustomizeHomeScreen": "התאם מסך בית", + "WakeServerError": "מנות Wake On LAN נשלחו אל מכונת השרת שלך, אך לא הצלחנו להתחבר לשרת Emby שלך. ייתכן שהמחשב שלך זקוק לזמן קצר יותר להתעורר, או ששרת Emby לא פעילה במחשב.", + "Days": "ימים", + "Network": "רשת", + "Networks": "רשתות", + "SortByValue": "מיון לפי {0}", + "HeaderSortBy": "מיון לפי", + "HeaderPhotoAlbums": "אלבומים", + "Photos": "תמונות", + "HeaderAppearsOn": "מופיע על", + "List": "רשימה", + "HeaderRecordSeries": "הלקט סדרות", + "HeaderCinemaMode": "קדימוני קולנוע", + "Conversions": "המרה", + "Downloads": "הורדות", + "HeaderManageDownloads": "נהל הורדות", + "InternalStorage": "אחסון פנימי", + "ExternalStorage": "אחסון חיצוני", + "UploadToFollowingServers": "העלה לשרתים", + "UploadingNumItems": "מעלה {0} מתוך {1}", + "DownloadNumItems": "מוריד {0} מתוך {1}", + "HeaderSampleRate": "קצב דגימה", + "HeaderReferenceFrames": "מסגרות התייחסות", + "HeaderBitDepth": "עומק סיביות", + "HeaderPixelFormat": "פורמט פיקסל", + "Profile": "פרופיל", + "Bitrate": "קצב סיביות", + "Expand": "הרחב", + "Container": "סוג קובץ", + "Format": "פורמט", + "Path": "נתיב תיקייה", + "Size": "גודל קובץ", + "Resolution": "רזולוציה", + "HeaderCodecTag": "תיוג מקודד", + "Framerate": "קצב תמונה", + "Interlaced": "שלובים", + "Anamorphic": "אנאמורפי", + "Level": "רמה", + "Timestamp": "חותמת זמן", + "Language": "שפה", + "Codec": "מקודד", + "Stream": "סטרימינג", + "HeaderExtradata": "מידע נוסף", + "HeaderHardwareAcceleratedTranscoding": "המרה מואצת באמצעות חומרה\nנצל את כרטיס הגרפי של השרת שלך. Emby מציעה את ההאצה החומרתית המתקדמת והמהירה ביותר בתעשייה.", + "HeaderHardwareAcceleratedTranscodingDescription": "נצל את כרטיס המסך של השרת שלך. ל־Emby יש את ההאצה החומרתית המתקדמת והמהירה ביותר בתעשייה.", + "HeaderOfflineDownloads": "מדיה לא מקוונת", + "AndMuchMoreExclamation": "ועוד הרבה!", + "HeaderOfflineDownloadsDescription": "הורד מדיה למכשירים שלך לשימוש לא מקוון בקלות.", + "LiveTvFeatureDescription": "סטרימינג טלוויזיה בשידור חי לכל אפליקציית Emby, עם מכשיר מקלט טלוויזיה תואם המותקן בשרת Emby שלך.", + "DvrFeatureDescription": "תזמן הקלטות טלוויזיה בשידור חי, הקלטות סדרות ועוד עם EmbyI DVR.", + "CinemaModeFeatureDescription": "מצב קולנוע נותן לך חווית קולנוע אמיתית עם טריילרים מותאמים אישית לפני התוכן הנבחר.", + "HeaderFreeApps": "אפליקציות Emby בחינם", + "FreeAppsFeatureDescription": "באפשרותך ליהנות מגישה חופשית ליישומי Emby עבור המכשירים שלך.", + "HeaderBecomeProjectSupporter": "קבל Emby Premiere", + "HeaderViewServerInfo": "הצג מידע שרת", + "PlaybackTvModeRequiresEmbyPremiere": "בחירת תצוגה במצב טלוויזיה דורש {0}מנוי פעיל לEmby Premiere{1}.", + "FeatureRequiresEmbyPremiere": "תכונה זו דורשת {0}מינוי פעיל לEmby Premiere{1}.", + "HeaderConvertYourRecordings": "המרת הקלטות שלך", + "Record": "הקלט", + "Save": "שמור", + "Edit": "ערוך", + "HeaderSavePlaylist": "שמור רשימת השמעה", + "Latest": "נוספו לאחרונה ב", + "Download": "הורדה", + "Downloaded": "ירד", + "Converted": "הומר", + "RemoveFromHistory": "הסר מהיסטוריה", + "ConfirmRemoveFromHistory": "להסיר את הפריט הזה מההיסטוריה?", + "Downloading": "מוריד", + "Advanced": "מתקדם", + "LinkedToEmbyConnect": "מקושר לEmby Connect", + "Delete": "מחק", + "Both": "שניהם", + "LabelChannelDisplay": "תצוגת ערוץ", + "HeaderDeleteItem": "מחק פריט", + "HeaderDeleteUser": "מחק משתמש", + "DeleteItemConfirmation": "האם אתה בטוח שברצונך להסיר {0}?", + "DeleteUserConfirmation": "האם אתה בטוח שברצונך להסיר משתמש זה {0}?", + "DeleteUsersConfirmation": "האם אתה בטוח שברצונך למחוק את {0} המשתמשים האלה?", + "HeaderDeleteDevice": "מחק מכשיר", + "DeleteDeviceConfirmation": "האם אתה בטוח שברצונך למחוק את המכשיר הזה? זה יופיע שוב בפעם הבאה שמשתמש ייכנס אליו.", + "ConfirmDeleteItem": "מחיקת פריט זה תמחק אותו הן ממערכת הקבצים והן מספריית המדיה שלך.", + "FollowingFilesWillBeDeleted": "הקבצים והתיקיות הבאות ימחקו:", + "AreYouSureToContinue": "האם אתה בטוח שברצונך להמשיך?", + "Refresh": "רענון", + "RefreshingMetadataDots": "מרענן מטא-נתונים...", + "ScanningLibraryFilesDots": "סורק קבצי ספרייה...", + "HeaderFavoritesThenByChannelNumber": "אהובים, ואז לפי מספר ערוץ", + "HeaderAddToCollection": "הוספה לאוסף", + "HeaderFavoritesThenByTitle": "אהובים, ואז לפי כותרת", + "HeaderFavoritesThenByDefault": "אהובים, ואז לפי סדר ערוץ ברירת מחדל", + "HeaderDefaultChannelOrder": "סדר ערוץ ברירת מחדל", + "HeaderAddToFavorites": "הוספה לאהובים עליי", + "HeaderRemoveFromFavorites": "הסרה מהאהובים עליי", + "Favorited": "מועדף", + "Unfavorited": "לא מועדף", + "HeaderNewCollection": "אוסף חדש", + "HeaderNewPlaylist": "רשימת השמעה חדשה", + "AllCollections": "כל האוספים", + "AllPlaylists": "כל הרשימות", + "Create": "צור", + "HeaderAddedToPlaylist": "הוסף לרשימת השמעה", + "HeaderAddedToCollection": "נוסף לאוסף", + "OneItemAddedTo": "פריט אחד נוסף ל\"{0}\".", + "ItemsAddedTo": "{0} פריטים שנוספו ל\"{1}\".", + "HeaderAddedToPlayQueue": "נוסף לתור הפעלה", + "HeaderPlayingNext": "הפעל אחר כך", + "Help": "עזרה", + "HeaderGetHelp": "קבל עזרה", + "LabelTVDisplayMode": "הפעל מצב תצוגה לטלוויזיה", + "Desktop": "מסך מחשב", + "Mobile": "סמארטפון / טאבלט", + "Navigation": "ניווט", + "HeaderVideoPlayback": "הפעלת וידאו", + "TV": "טלוויזיה", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "עונות", + "OneTrack": "שיר אחד", + "OneSeason": "עונה אחת", + "Libraries": "ספריות", + "NumberSeasonsValue": "{0} עונה", + "TVDisplayModeHelp": "אופטימיזציה של הממשק למכשיר זה כך שיתאים להצגה על טלוויזיה ולשימוש בשלט רחוק. זה בדרך כלל לא מומלץ אם שיטת הקלט העיקרית שלך היא עכבר או מסך מגע.", + "LabelDisplayLanguage": "שפת תצוגה", + "LabelDisplayLanguageHelp": "תרגום ממשק Emby הוא תהליך מתמשך.", + "LearnHowYouCanContribute": "למד איך תוכל לתרום", + "NewCollectionHelp": "אוספים מאפשרים לך ליצור קיבוצים מותאמים אישית של סרטים ותוכן ספרייה אחר.", + "SearchForCollectionInternetMetadata": "חפש באינטרנט artwork ומטא-נתונים", + "DisplayMissingEpisodesWithinSeasons": "הצג פרקים חסרים בתוך העונות", + "DisplayMissingEpisodesWithinSeasonsHelp": "זה חייב להיות מופעל גם בהגדרות של ספריות טלוויזיה בשרת Emby.", + "EnableThemeSongs": "הפעל שירי נושא", + "EnableBackdrops": "אפשר תמונות רקע", + "EnableThemeSongsHelp": "אם מאופשר, נעימות נושא יופעלו ברקע במהלך גלישה בספרייה.", + "EnableBackdropsHelp": "אם מאופשר, הרקע יוצג בחלק מהדפים בעת הגלישה בספרייה.", + "EnableThemeVideos": "הפעל קטעי וידאו נושא", + "EnableThemeVideosHelp": "אם מאופשר, וידאו נושא יופעלו ברקע במהלך גלישה בספרייה.", + "RunAtStartup": "הפעל באתחול", + "ServerStartup": "הפעלת השרת", + "EmbyServerOnXHasStarted": "שרת Emby ב־{0} הוזמן והחל לפעול.", + "LabelScreensaver": "שומר מסך", + "LabelSoundEffects": "אפקטים קוליים", + "LabelName": "שם", + "NewCollectionNameExample": "לדוגמא: אוסף מלחמת הכוכבים", + "MessageItemsAdded": "כותרים שנוספו.", + "OptionNew": "חדש...", + "LabelPlaylist": "הרשימה שלי", + "AddToPlaylist": "הוספה לרשימה ", + "HeaderAddToPlaylist": "הוספה לרשימה ", + "Subtitles": "כתוביות", + "LabelTheme": "ערכת עיצוב", + "LabelSettingsTheme": "הגדרות ערכת עיצוב", + "LabelThemeAccentColor": "צבע הדגשה", + "ThemeAccentColorDescription": "מדגיש בצבע בחירות, סמלים וטקסט.", + "SearchForSubtitles": "חפש כתוביות ", + "LabelLanguage": "שפה", + "Search": "חיפוש", + "NoSubtitleSearchResultsFound": "לא נמצאו תוצאות. האם הוגדרה {0}הורדת כתוביות{1}?", + "NoLyricsSearchResultsFound": "לא נמצאו תוצאות. האם הגדרת {0}הורדת מילים{1}?", + "Lyrics": "מילים", + "SearchForLyrics": "חפש מילים", + "Finish": "סיים", + "File": "קובץ", + "Exit": "צא", + "Sleep": "הער ממצב שינה", + "Setup": "התקנה", + "MessageAreYouSureDeleteSubtitles": "האם אתה בטוח שברצונך למחוק קובץ כתובית זה?", + "ConfirmDeletion": "אשר מחיקה", + "MySubtitles": "הכתוביות שלי", + "MessageDownloadQueued": "הורד תור", + "HeaderEditSubtitles": "ערוך כתוביות", + "UnlockGuide": "נעילת מדריך", + "HeaderRefreshMetadata": "רענן מטא-נתונים", + "HeaderRefreshAllMetadata": "רענן את כל המטא-נתונים", + "ReplaceExistingImages": "החלף תמונות קיימות", + "ReplaceExistingImagesHelp": "כל התמונות הקיימות יימחקו ויורדו תמונות חדשות. במקרים מסוימים זה עלול לגרום לפחות תמונות זמינות מבעבר.", + "ReplaceAllMetadata": "החלף את כל המטא-נתונים", + "SearchForMissingMetadata": "חפש מטא-נתונים חסרים", + "LabelRefreshMode": "מצב ריענון", + "NoItemsFound": "לא נמצאו כותרים", + "HeaderSaySomethingLike": "תגיד משהו כמו ...", + "ButtonTryAgain": "נסה שנית", + "HeaderYouSaid": "אתה אמרת...", + "MessageWeDidntRecognizeCommand": "אנחנו מצטערים, לא זיהינו את הפקודה הזאת.", + "MessageIfYouBlockedVoice": "אם מנעת גישה קולית לאפליקציה שתצטרך להגדיר מחדש לפני שתנסה שוב.", + "ValueDiscNumber": "דיסק {0}", + "Unrated": "אין דירוג", + "Favorite": "האהובים עליי", + "Like": "אוהב", + "Dislike": "לא אוהב", + "RefreshDialogHelp": "המטא-נתונים מתעדכנים בהתאם להגדרות ולספקי המטא־נתונים שהופעלו בהגדרות הספרייה של Emby.", + "Open": "פתח", + "Play": "הפעל", + "Pause": "השהיה", + "HeaderPlayQueue": "הפעל את הבא בתור", + "HeaderAddToPlayQueue": "הוסף לתור הפעלה", + "Shuffle": "תפתיעו אותי", + "Identify": "זיהוי והתאמה", + "HeaderRemoveIdentification": "הסר זיהוי", + "ResetMetadataConfirmation": "האם אתה בטוח כי ברצונך לאתחל את כל המטא-נתונים?", + "HeaderEditMetadata": "ערוך מטא-נתונים", + "Convert": "המר", + "Resume": "המשך הפעלה", + "HeaderInstantMix": "מיקס מיידי", + "HeaderGoToItem": "עבור לפריט", + "HeaderGoToSeason": "עבור אל עונה", + "HeaderGoToSeries": "עבור לסדרה", + "HeaderGoToAlbum": "עבור לאלבום", + "HeaderGoToArtist": "עבור אל אמן", + "HeaderPlayAll": "הפעל לפי הסדר ", + "PictureInPicture": "תמונה בתוך תמונה", + "Fullscreen": "מסך מלא", + "ExitFullscreen": "צא ממסך מלא", + "Rewind": "דלג אחורה", + "FastForward": "דלג קדימה", + "Remove": "הסרה", + "Rename": "שנה שם", + "Queue": "תור", + "QueueAllFromHere": "הוסף הכל מכאן לתור", + "PlayAllFromHere": "הפעל לפי הסדר ", + "PlayFromBeginning": "הפעל מהתחלה", + "FromBeginning": "הפעל מהתחלה", + "ResumeAt": "המשך מ{0}", + "HeaderRemoveFromPlaylist": "הסרה מהרשימה שלי", + "HeaderRemoveFromPlayQueue": "הסר מרשימת ההשמעה", + "HeaderRemoveFromCollection": "הסרה מהאוסף", + "Sort": "הצג", + "Trailer": "הפעל טריילר", + "SelectNone": "בחר כלום", + "SelectAll": "בחר הכל", + "HeaderMarkPlayed": "סמן כהופעל", + "HeaderMarkUnplayed": "סמן כלא הופעל", + "HeaderGroupVersions": "קבוצת גרסאות", + "PleaseSelectTwoItems": "בחר לפחות שני כותרים.", + "HeaderConfirmRecordingCancellation": "אשר ביטול הקלטה", + "MessageConfirmRecordingCancellation": "לבטל הקלטה?", + "Album": "אלבום", + "AlbumArtist": "אמן אלבום", + "Error": "שגיאה", + "VoiceInput": "קלט קולי", + "LabelContentType": "סוג תוכן", + "LabelPath": "נתיב", + "Playlists": "הרשימה שלי", + "LabelTitle": "כותרת", + "LabelOriginalTitle": "כותרת מקורית", + "LabelSortTitle": "כותרת מוצגת", + "LabelDateAdded": "תאריך הוספה", + "DateAdded": "תאריך הוספה", + "DateModified": "תאריך עדכון", + "DatePlayed": "הופעל בתאריך", + "DateLastActive": "תאריך פעילות אחרונה", + "ConfigureDateAdded": "הגדר כיצד נקבע תאריך הוספה בלוח הבקרה של שרת Emby תחת הגדרות הספרייה", + "LabelStatus": "סטטוס", + "LabelArtistsHelp": "הפרד מרובים באמצעות;", + "HeaderAlbumArtists": "אלבום אמנים", + "LabelAlbumArtists": "אמני האלבום", + "LabelAlbum": "אלבום", + "Artist": "אמן", + "Artists": "אמנים", + "ImdbRating": "דירוג IMDb", + "CommunityRating": "דירוג קהילה", + "LabelCommunityRating": "דירוג הקהילה", + "LabelCriticRating": "דירוג המבקרים", + "CriticRating": "דירוג מבקרים", + "LabelWebsite": "אתר אינטרנט", + "Tagline": "משפט מפתח", + "LabelOverview": "תקציר עלילה", + "LabelShortOverview": "תמצית עלילה", + "LabelReleaseDate": "תאריך יציאה", + "LabelPlaceOfBirth": "מקום לידה", + "Aired": "שודרה", + "LabelAirDays": "ימי שידור", + "LabelAirTime": "שעת שידור", + "LabelRuntimeMinutes": "משך זמן (בדקות)", + "LabelCustomRating": "דירוג מותאם אישית", + "LabelOriginalAspectRatio": "יחס רוחב־גובה מקורי", + "Label3DFormat": "פורמט תלת־ממד", + "FormatValue": "פורמט: {0}", + "DownloadsValue": "{0} הורדות", + "HashMatch": "התאמת גיבוב", + "EnableExternalVideoPlayers": "אפשר נגני וידאו חיצוניים", + "EnableExternalVideoPlayersHelp": "תפריט נגן חיצוני יוצג בעת הפעלת וידאו.", + "HeaderSpecialEpisodeInfo": "פרטי אפיזודות מיוחדות", + "LabelAirsDuringSeason": "משודר במהלך העונה", + "LabelAirsAfterSeason": "משודר לאחר סיום העונה", + "LabelAirsBeforeEpisode": "משודר לפני פרק", + "HeaderExternalIds": "מזהים חיצוניים", + "HeaderDisplaySettings": "הגדרות תצוגה", + "PlaylistOrder": "סדר רשימת הפעלה", + "CollectionOrder": "סדר האוסף", + "LabelDisplayOrder": "סדר הצגה", + "LabelFileOrder": "סדר קבצים", + "Display": "תצוגה", + "Countries": "מדינות", + "Genres": "ז'אנרים", + "Studios": "אולפני הפקה והפצה", + "Tags": "תגים", + "Links": "קישור ל", + "Movie": "סרט", + "Program": "תוכנית", + "Channel": "ערוץ", + "Episode": "פרק", + "Season": "עונה", + "HeaderMetadataSettings": "הגדרות מטא-נתונים", + "People": "שחקנים וצוות ", + "Number": "מספר", + "Lock": "לנעול", + "HeaderScreenLocked": "מסך נעול", + "HeaderUnlockControls": "ביטול נעילת בקרות", + "HeaderTapToUnlock": "הקש כדי לבטל את הנעילה", + "LabelMetadataDownloadLanguage": "שפת הורדת מטא־נתונים מועדפת", + "LabelImageDownloadLanguage": "שפת הורדת תמונות מועדפת", + "LabelLockItemToPreventChanges": "נעל פריט זה כדי למנוע שינויים עתידיים", + "LockThisField": "נעל פריט זה כדי למנוע שינויים עתידיים במטא-נתונים", + "MessageLeaveEmptyToInherit": "השאר ריק כדי לרשת את ההגדרות מפריט אב, או את ערך ברירת המחדל הגלובלי.", + "LabelCountry": "מדינה", + "LabelCertificationCountry": "מדינת האישור", + "CertificationCountryHelp": "זה ישפיע על מערכת דירוג התוכן שתשמש.", + "LabelDynamicExternalId": "מזהה {0}", + "LabelBirthYear": "שנת לידה", + "LabelBirthDate": "תאריך לידה", + "LabelDeathDate": "תאריך פטירה", + "LabelEndDate": "תאריך סיום", + "LabelSeasonNumber": "מספר עונה", + "LabelEpisodeNumber": "מספר פרק", + "LabelTrackNumber": "מספר רצועה", + "LabelNumber": "מספר", + "LabelDiscNumber": "מספר דיסק", + "LabelParentNumber": "מספר הורה", + "SortName": "הצג לפי כותרת", + "OriginalTitle": "כותרת מקורית", + "ReleaseDate": "תאריך שחרור", + "Continuing": "ממשיך", + "Ended": "הסתיים", + "HeaderEnabledFields": "שדות זמינים", + "HeaderEnabledFieldsHelp": "בטל סימון בשדה כדי לנעול אותו ולמנוע שינוי בנתוניו.", + "Backdrops": "תפאורות רקע", + "Images": "תמונות", + "Runtime": "אורך", + "ProductionLocations": "מיקומי ייצור", + "BirthLocation": "מיקום לידה", + "ParentalRating": "סיווג צפייה", + "PlayCount": "ניגון מספר", + "Name": "שם", + "Overview": "תקציר עלילה", + "LabelType": "סוג", + "LabelPersonRole": "תפקיד", + "LabelPersonRoleHelp": "דוגמה: נהג משאית גלידה", + "Actor": "שחקן", + "Composers": "מלחינים", + "Composer": "מלחין", + "Director": "במאי", + "GuestStar": "כוכב אורח", + "Producer": "במאי", + "Writer": "כותב", + "MessageNoSyncJobsFound": "לא נמצאו הורדות. צור עבודות הורדה באמצעות לחצני ההורדה שנמצאו בכל האפליקציה.", + "MessageNoDownloadsFound": "אין הורדות לא מקוונות. הורד את המדיה שלך לשימוש לא מקוון על ידי לחיצה על הורד בכל האפליקציה.", + "InstallingPackage": "מתקין {0}", + "PackageInstallCompleted": "{0} ההתקנה הושלמה", + "PackageInstallFailed": "ההתקנה {0} נכשלה.", + "PackageInstallCancelled": "{0} ההתקנה בוטלה.", + "SeriesYearToPresent": "{0} - היום", + "OneDevice": "מכשיר אחד", + "DeviceCountValue": "{0} מכשירים", + "OneLog": "לוג אחד", + "LogCountValue": "{0} לוגים", + "OneVote": "הצבעה אחת", + "VoteCountValue": "{0} הצבעות", + "OneLike": "לייק אחד", + "LikeCountValue": "{0} לייקים", + "OneUser": "משתמש אחד", + "UserCountValue": "{0} משתמשים", + "OneLibrary": "ספרייה אחת", + "LibraryCountValue": "{0} ספריות", + "ValueOneItem": "פריט 1", + "ValueOneEpisode": "פרק 1", + "ValueEpisodeCount": "{0} פרקים", + "Albums": "אלבומים", + "Song": "שיר", + "Songs": "שירים", + "Authors": "מחברים", + "Books": "ספרים", + "AudioBooks": "ספרים מוקלטים", + "HeaderAudioBooks": "ספרים מוקלטים", + "HeaderAudioBook": "ספר אודיו", + "HeaderIdentifyItemHelp": "הזן קריטריון חיפוש אחד או יותר. הסר קריטריונים כדי להגדיל את תוצאות החיפוש.", + "PleaseEnterNameOrId": "הזן שם או מזהה חיצוני.", + "MessageItemSaved": "הפריט נשמר.", + "SearchResults": "תוצאות חיפוש", + "ServerNameIsRestarting": "שרת Emby {0} מופעל מחדש.", + "ServerNameIsShuttingDown": "שרת Emby {0} נכבה.", + "HeaderDeleteItems": "מחיקת כותרים", + "ConfirmDeleteItems": "מחיקת כותרים אלו תמחק אותם הן ממערכת הקבצים והן מספריית המדיה שלך. האם אתה בטוח שברצונך להמשיך?", + "PleaseRestartServerName": "אנא הפעל מחדש את שרת Emby ב־{0}", + "ConvertingDots": "ממיר...", + "LabelSyncNoTargetsHelp": "נראה שאין לך כרגע אפליקציות התומכות בהורדה במצב לא מקוון.", + "DownloadingDots": "מוריד", + "LearnMore": "עוד", + "LabelBitrateMbps": "קצב סיביות (Mbps)", + "ConvertUnwatchedVideosOnly": "המר וידאו שלא הופעל בלבד", + "SyncUnwatchedVideosOnly": "הורד וידאו שלא הופעל בלבד", + "ConvertUnwatchedVideosOnlyHelp": "רק קבצי וידאו שלא סומנו כצפויים במלואם יומרו", + "SyncUnwatchedVideosOnlyHelp": "רק וידאו שאינם מסומנים כמופעלים במלואם יורדו, ווידאו יוסר מהמכשיר כשהם מופעלים במלואם.", + "AutomaticallySyncNewContent": "תוכן חדש הורד באופן אוטומטי", + "AutomaticallySyncNewContentHelp": "תוכן חדש שנוסף לתיקיה זו יוריד באופן אוטומטי למכשיר.", + "AutomaticallyConvertNewContent": "המר תוכן חדש באופן אוטומטי", + "AutomaticallyConvertNewContentHelp": "תוכן חדש שנוסף לתיקייה זו יומר באופן אוטומטי.", + "LabelItemLimit": "מגבלת פריטים", + "ConvertItemLimitHelp": "אופציונאלי. הגדר מגבלה למספר הכותרים שיומרו.", + "DownloadItemLimitHelp": "אופציונאלי. הגדר מגבלה למספר הכותרים שיורדו.", + "PleaseSelectDeviceToSyncTo": "בחר מכשיר להורדה אליו.", + "Screenshots": "צילומי מסך", + "MoveRight": "זוז ימינה", + "MoveLeft": "זוז שמאלה", + "HeaderUploadNewImage": "העלה תמונה חדשה", + "HeaderDeleteImage": "מחק תמונה", + "ConfirmDeleteImage": "למחוק את התמונה?", + "HeaderEditImages": "ערוך תמונות", + "Settings": "הגדרות משתמש", + "ShowIndicatorsFor": "הצג מחוונים עבור", + "Episodes": "פרקים", + "Programs": "תוכניות", + "HeaderCastCrew": "שחקנים וצוות", + "DvrSubscriptionRequired": "Emby DVR דורש מנוי פעיל של Emby Premiere.", + "HeaderCancelRecording": "ביטול הקלטה", + "HeaderKeepRecording": "שמור על הקלטה", + "HeaderCancelSeries": "בטל סדרה", + "HeaderKeepSeries": "שמור סדרה", + "HeaderLearnMore": "עוד", + "SeriesSettings": "הגדרות סדרה", + "HeaderRecordingOptions": "אפשרויות הקלטה", + "HeaderDoNotRecord": "אין להקליט", + "HeaderSeriesOptions": "אפשרויות סדרה", + "Layout": "מערך", + "Channels": "ערוצים", + "ChannelNameOnly": "ערוץ {0} בלבד", + "Anytime": "בכל עת", + "AnyLanguage": "כל שפה", + "AroundTime": "בסביבות {0}", + "HeaderLatestMovies": "נוספו לאחרונה בסרטים", + "All": "כל המצבים", + "Stop": "עצור", + "AllChannels": "כל הערוצים", + "NewEpisodesOnly": "פרקים חדשים בלבד", + "AllEpisodes": "כל הפרקים", + "LabelStartWhenPossible": "התחל כשניתן", + "LabelStopWhenPossible": "הפסק כשאפשר", + "MinutesBefore": "דקות לפני", + "MinutesAfter": "דקות אחרי", + "SkipEpisodesAlreadyInMyLibrary": "אל תקליטו פרקים שכבר נמצאים בספרייה שלי", + "SkipEpisodesAlreadyInMyLibraryHelp": "הפרקים יושוו באמצעות מספרי עונה ופרק, כאשר יהיו זמינים.", + "LabelKeepUpTo": "שמור עד", + "AsManyAsPossible": "כמה שיותר", + "DefaultErrorMessage": "אירעה שגיאה בעיבוד הבקשה. בבקשה נסה שוב מאוחר יותר.", + "UntilIDelete": "עד שאמחק", + "UntilSpaceNeeded": "עד הצורך במרחב", + "Categories": "קטגוריות", + "Sports": "ספורט", + "News": "חדשות", + "Movies": "סרטים", + "Music": "מוזיקה", + "Kids": "ילדים", + "MoreFromValue": "המשך מ{0}", + "DiedValue": "נפטר: {0}", + "BornValue": "נולד: {0}", + "EnableColorCodedBackgrounds": "החל רקעים צבעוניים על תוכניות, על סמך הקטגוריה שלהם", + "SortChannelsBy": "מיין ערוצים לפי", + "ChannelNumber": "מספר ערוץ", + "HeaderBenefitsEmbyPremiere": "היתרונות של Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "אנא ליהנות דקה אחת של השמעה. תודה שניסית את Emby.", + "HeaderTryPlayback": "נסה הפעלה", + "HowDidYouPay": "איך שילמת?", + "IHaveEmbyPremiere": "יש לי Emby Premiere", + "IPurchasedThisApp": "רכשתי את האפליקציה הזו", + "ButtonRestorePreviousPurchase": "שחזר רכישה", + "ButtonUnlockWithPurchase": "בטל נעילה באמצעות רכישה", + "ButtonUnlockPrice": "בטל נעילה {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere חודשי {0}", + "HeaderAlreadyPaid": "כבר שילמת?", + "ButtonPlayOneMinute": "הפעל דקה אחת", + "PlaceFavoriteChannelsAtBeginning": "מקם ערוצים אהובים בהתחלה", + "HeaderUnlockFeature": "בטל נעילה", + "MessageDidYouKnowCinemaMode": "האם ידעת שעם Emby Premiere, אתה יכול לשפר את החוויה שלך עם תכונות כמו מצב קולנוע?", + "HeaderPlayMyMedia": "הפעל את המדיה שלי", + "HeaderDiscoverEmbyPremiere": "גלה את Emby Premiere", + "HeaderNowPlaying": "פועל עכשיו", + "Items": "כותרים", + "AppName": "שם האפליקציה", + "OneChannel": "ערוץ אחד", + "ConfirmRemoveDownload": "הסר הורדה?", + "ConfirmRemoveItem": "האם להסיר את הפריט?", + "RemoveDownload": "הסר הורדה", + "ConfirmCancelConversion": "לבטל את ההמרה?", + "CancelConversion": "ביטול המרה", + "KeepDownload": "שמור הורדה", + "AddedOnValue": "נוסף {0}", + "RemovingFromDevice": "הסרה מהמכשיר", + "KeepOnDevice": "השאר על מכשיר", + "CancelDownload": "בטל הורדה", + "SyncJobItemStatusReadyToTransfer": "מוכן להעברה", + "SyncJobItemStatusSyncedMarkForRemoval": "הסרה מהמכשיר", + "SyncJobItemStatusQueued": "נכנס לתור", + "SyncJobItemStatusConverting": "ממיר", + "SyncJobItemStatusTransferring": "מעביר", + "SyncJobItemStatusSynced": "הורד", + "Failed": "נכשל", + "SyncJobItemStatusRemovedFromDevice": "הוסר ממכשיר", + "Cancelled": "בוטל", + "Retry": "נסה שוב", + "Continue": "המשך הפעלה", + "ContinueInSecondsValue": "המשך בעוד{0} שניות", + "HeaderRemoteControl": "שליטה מרחוק", + "Disconnect": "התנתק", + "EnableDisplayMirroring": "הפעל שיקוף תצוגה", + "RemoteAccess": "גישה מרחוק", + "HeaderPlayOn": "הפעל", + "Quality": "איכות סטרימינג", + "Auto": "אוטומטי", + "AndroidUnlockRestoreHelp": "כדי לשחזר את הרכישה הקודמת שלך, ודא שאתה מחובר למכשיר עם אותו חשבון גוגל (או אמזון) שביצע את הרכישה במקור. וודא שחנות האפליקציות מופעלת ואינה מוגבלת על ידי כל בקרת הורים, וודא שיש לך חיבור אינטרנט פעיל. אתה רק צריך לעשות את זה פעם אחת כדי לשחזר את הרכישה הקודמת.", + "HeaderAspectRatio": "יחס גובה-רוחב", + "Original": "מקורי", + "Fill": "מלא", + "Cover": "כיסוי", + "MessageNoServersAvailableToConnect": "אין שרתים זמינים להתחבר. אם הוזמנת לשתף שרת, הקפד לקבל אותו למטה או על ידי לחיצה על הקישור שבדוא\"ל.", + "MessagePlayAccessRestricted": "השמעה של תוכן זה מוגבלת כרגע. פנה למנהל המערכת של שרת Emby לקבלת מידע נוסף.", + "Accept": "אשר", + "Reject": "דחה", + "Connect": "היכנס", + "HeaderMyMedia": "המדיה שלי", + "HeaderMyMediaSmall": "המדיה שלי (ממוזער)", + "LatestFromLibrary": "נוספו לאחרונה ב{0}", + "HeaderLatestEpisodes": "פרקים אחרונים", + "ContinuePlaying": "המשך הפעלה", + "ContinueWatching": "המשך צפייה", + "HeaderLatestChannelMedia": "פריטי ערוצים אחרונים", + "HeaderContinueWatching": "המשך צפייה", + "HeaderContinueListening": "המשך לשמוע", + "HeaderActiveRecordings": "הקלטות פעילות", + "HeaderLatestRecordings": "הקלטות אחרונות", + "LabelConvertTo": "המר ל־", + "LabelDownloadTo": "הורד אל", + "HeaderDownloadToDots": "הורד ל...", + "Next": "הבא", + "LabelSource": "מקור", + "VersionNumber": "גירסה {0}", + "HeaderAllLanguages": "כל השפות", + "Previous": "הקודם", + "HeaderNextUp": "הבא בתור", + "HeaderPlayNextUp": "הפעל את הבא בתור", + "HeaderLatestFrom": "האחרונים מ{0}", + "LabelHomeScreenSectionValue": "קטע מסך הבית {0}", + "PasswordResetComplete": "הסיסמה אופסה.", + "PasswordSaved": "הסיסמה נשמרה.", + "SettingsSaved": "ההגדרות נשמרו.", + "Upcoming": "בקרוב", + "HeaderSelectImageFile": "בחר קובץ תמונה", + "None": "ללא", + "More": "עוד", + "Up": "הבא בתור", + "Down": "הורד עוצמת שמע", + "Home": "מסך הבית", + "Back": "חזרה", + "Random": "אקראי", + "Playback": "הגדרות הפעלה", + "Favorites": "האהובים עליי", + "HeaderHomeScreen": "מסך הבית", + "HeaderLatestChannelItems": "פריטי הערוץ האחרונים", + "HeaderLibraryOrder": "מיקום סדר תצוגה של ספריות ", + "HeaderOnNow": "פועל עכשיו", + "HeaderForKids": "לילדים", + "HeaderPlaybackError": "שגיאת השמעה", + "PlaybackErrorNotAllowed": "אינך מורשה כרגע להפעיל תוכן זה. פנה למנהל המערכת לקבלת פרטים.", + "RateLimitExceeded": "החשבון שלך עבר את מגבלת הסטרימינג המקסימלית שנקבעה על ידי מנהל השרת Emby. אנא פנה אליהם לקבלת סיוע", + "PlaybackErrorNoCompatibleStream": "אין כרגע סטרימינג תואמים זמינים. נסה שוב מאוחר יותר או פנה למנהל המערכת לקבלת פרטים.", + "PlaybackErrorPlaceHolder": "הכנס את הדיסק כדי להפעיל את הוידאו.", + "PlaybackErrorNoPlayableItems": "לא נמצאו כותרים שניתן להפעיל. האם אתה מנסה להפעיל תיקיה ריקה?", + "Guide": "מדריך", + "Games": "משחקים", + "GameSystem": "מערכת משחק", + "Suggestions": "מומלצים", + "HeaderFavoriteChannels": "ערוצים אהובים", + "HeaderFavoriteCollections": "אוספים אהובים", + "HeaderFavoritePlaylists": "רשימה אהובה", + "Collection": "אוספים", + "Collections": "אוספים", + "LabelSelectFolderGroups": "קבץ תוכן באופן אוטומטי מהתיקיות הבאות לתצוגות כגון סרטים, מוזיקה וטלוויזיה:", + "LabelSelectFolderGroupsHelp": "תיקיות שאינן מסומנות יוצגו בפני עצמן בתצוגה שלהם.", + "Mute": "השתקה", + "Unmute": "ביטול השתקה", + "Folder": "תיקייה", + "Folders": "תיקיות", + "FileName": "שם קובץ", + "DisplayInOtherHomeScreenSections": "אפשר תצוגה במסך הבית של מדיה עדכנית והמשך צפייה", + "DisplayInMyMedia": "הצג במסך הבית", + "Shows": "תוכניות טלוויזיה", + "MoviesAndShows": "סרטים ותוכניות", + "HeaderMusicVideo": "קליפ", + "HeaderMusicVideos": "קליפים", + "MusicVideos": "קליפים", + "Videos": "וידאו", + "MixedContent": "תוכן מעורב", + "HomeVideos": "קטעי וידאו ביתיים", + "HomeVideosAndPhotos": "קטעי וידאו ביתיים", + "TVShows": "תוכניות טלוויזיה", + "HeaderLibraryFolders": "תיקיית ספרייה", + "HeaderTermsOfPurchase": "תנאי שימוש", + "PrivacyPolicy": "מדיניות הפרטיות", + "TermsOfUse": "תנאי שימוש", + "HeaderRepeatMode": "מצב חזרה", + "HeaderToneMapping": "מיפוי טון", + "RepeatOne": "הפעלת חזרה אחת", + "RepeatAll": "הפעלת חזרה תמידית", + "LabelDefaultScreen": "מסך ברירת מחדל", + "ConfirmEndPlayerSession": "האם תרצה לכבות את Emby ב{0}?", + "Yesterday": "אתמול", + "Yes": "עם", + "No": "ללא", + "HeaderScanLibraryFiles": "סרוק עדכונים", + "LiveTV": "טלוויזיה חייה", + "Schedule": "תזמן", + "Recordings": "הקלטות", + "ScanForNewAndUpdatedFiles": "סרוק עדכונים", + "NewVersionOfXAvailableForY": "{0} זמין עבור {1}", + "DirectStreamHelp1": "המדיה תואם למכשיר לגבי רזולוציה וסוג מדיה (H.264, AC3 וכו'), אך הוא נמצא בסוג קובץ שאינו תואם (.mkv, .avi, .wmv וכו'). הוידאו ייאסף מחדש במהירות לפני הסטרימינג למכשיר.", + "DirectStreamHelp2": "סטרימינג ישיר של קובץ משתמש במעט מאוד כוח עיבוד ללא כל הפסד באיכות הוידאו.", + "MediaIsBeingConverted": "המדיה מומרת לפורמט התואם להתקן שמשמיע את המדיה.", + "StatsForNerds": "סטטיסטיקות מתקדמות", + "HeaderHardwareAcceleratedDecoding": "פענוח מואץ של חומרה", + "HeaderHardwareAcceleratedEncoding": "קידוד מואץ בחומרה", + "HeaderDirectPlay": "הפעלה ישירה ", + "DirectPlaying": "הפעלה ישירה ", + "DirectStreaming": "הפעלה ישירה ", + "Transcode": "המרת קידוד", + "Transcoding": "המרת קידוד", + "ContainerBitrateExceedsLimit": "הפחתת קצב סיביות עקב הגדרת איכות", + "VideoCodecNotSupported": "המרת וידאו למקודד תואם", + "AudioCodecNotSupported": "המרת שמע למקודד תואם", + "SubtitleCodecNotSupported": "המרת כתוביות ישירות אל הווידאו", + "DirectPlayError": "טוען הפעלת איכות מקור (משגיאה)", + "ContainerNotSupported": "סוג הקובץ אינו נתמך", + "VideoLevelNotSupported": "המרה לרמת וידאו תואמת", + "AudioBitrateNotSupported": "קצב סיביות שמע אינו נתמך", + "AudioChannelsNotSupported": "המרה למספר ערוצי שמע תואם", + "VideoResolutionNotSupported": "המרה לרזולוציית וידאו תואמת", + "AudioProfileNotSupported": "פרופיל שמע אינו נתמך", + "AudioSampleRateNotSupported": "קצב דגימת שמע אינו נתמך", + "AnamorphicVideoNotSupported": "סרטון אנמורפי אינו נתמך", + "InterlacedVideoNotSupported": "הסרת שזירה מהווידאו", + "SecondaryAudioNotSupported": "החלפת רצועת שמע אינה נתמכת", + "ExternalAudioNotSupported": "בחירת רצועת שמע חיצוני", + "ErrorRemovingEmbyConnectAccount": "אירעה שגיאה בהסרת החשבון של Emby Connect. ודא שיש לך חיבור אינטרנט פעיל ונסה שוב.", + "HeaderEmbyAccountRemoved": "חשבון Emby הוסר", + "MessageEmbyAccontRemoved": "חשבון Emby הוסר ממשתמש זה", + "HeaderInvitationSent": "הזמנה נשלחה", + "Offline": "מנותק", + "HeaderSignUp": "הירשם", + "ServerDownloadMessage": "כדי להוריד ולהתקין את שרת Emby החינמי, בקר ב{0}", + "ServerDownloadMessageWithoutLink": "כדי להוריד ולהתקין את שרת Emby חינם בקר באתר האינטרנט של Emby.", + "MessageInvitationSentToUser": "דוא\"ל נשלח אל {0}, הזמן אותם לקבל את הזמנת השיתוף שלך.", + "MessageInvitationSentToNewUser": "דוא\"ל נשלח אל {0} המזמין אותם להירשם עם Emby.", + "GuestUserNotFound": "המשתמש לא נמצא. ודא שהשם נכון ונסה שוב, או נסה להזין את כתובת הדואר האלקטרוני שלהם.", + "ErrorReachingEmbyConnect": "אירעה שגיאה בהגעה לשרת Emby Connect. ודא שיש לך חיבור אינטרנט פעיל ונסה שוב.", + "ErrorAddingEmbyConnectAccount1": "אירעה שגיאה בהוספת חשבון Emby Connect. יצרת חשבון Emby? הירשם ב{0}.", + "ErrorAddingEmbyConnectAccount2": "אם אתה עדיין נתקל בבעיה, שלח דוא\"ל אל {0} מכתובת הדוא\"ל המשמשת את חשבון Emby.", + "ErrorAddingGuestAccount1": "אירעה שגיאה בהוספת חשבון Emby Connect. האם האורח שלך יצר חשבון Emby? הם יכולים להירשם בכתובת {0}.", + "ErrorAddingGuestAccount2": "אם אתה עדיין נתקל בבעיה, שלח דוא\"ל אל {0}, וכלול את כתובת הדוא\"ל שלך וגם את כתובת הדוא\"ל שלהם.", + "MessageEmbyAccountAdded": "חשבון Emby נוסף למשתמש זה.", + "MessagePendingEmbyAccountAdded": "חשבון Emby נוסף למשתמש זה. הודעת אימייל תישלח לבעלים של החשבון. ההזמנה תצטרך להיות מאושרת על ידי לחיצה על קישור בתוך הדוא\"ל.", + "HeaderEmbyAccountAdded": "חשבון Emby נוסף", + "Skip": "דלג", + "HeaderAdditionalParts": "חלקים נוספים", + "ButtonGenerateNewPin": "צור קוד אישי חדש", + "ConnectLoginHelp1": "עם Emby Connect תוכל לגשת בקלות לשרת Emby שלך בכל מקום שבו אתה נמצא ולשתף שרתים עם המשפחה והחברים שלך.", + "CreatePinErrorMessage": "אירעה שגיאה בעת יצירת קוד PIN. לחץ על צור פין חדש כדי לנסות שוב.", + "PinExpiredMessage": "פג תוקף קוד אישי. אנא לחץ על צור קוד אישי חדש כדי לנסות שוב.", + "ConnectPinCodeHeader": "כדי להיכנס עם Emby Connect, השתמש בהתקן נייד או במחשב כדי לבקר בכתובת {0} והזן את קוד הPIN הבא:", + "LabelSubtitlePlaybackMode": "מצב כתוביות", + "ErrorDeletingItem": "אירעה שגיאה במחיקת הפריט משרת Emby. ודא שלשרת Emby יש גישת כתיבה לתיקיית המדיה ונסה שוב.", + "NoSubtitles": "ללא כתוביות", + "Default": "ברירת מחדל", + "Absolute": "מוחלט", + "Smart": "חכם", + "Small": "קטן", + "Smaller": "קטן יותר", + "Medium": "בינוני", + "Large": "גדול", + "Larger": "גדול יותר", + "ExtraLarge": "גדול מאוד", + "ExtraSmall": "קטן מאוד", + "Forced": "כפוי", + "External": "חיצוני", + "HeaderEmbeddedTitle": "כותרת מוטבעת", + "OnlyForcedSubtitles": "רק כתוביות כפויות", + "AlwaysPlaySubtitles": "הפעל תמיד כתוביות", + "DefaultSubtitlesHelp": "כתוביות נטענות על בסיס ברירת המחדל ומאלצים דגלים מוטבעים במטא-נתונים. העדפות שפה נחשבות כאשר זמינות מספר אפשרויות.", + "SmartSubtitlesHelp": "כתוביות התואמות להעדפת השפה ייטענו כאשר השמע יהיה בשפה זרה.", + "HeaderSubtitleSettings": "הגדרות כתוביות", + "HeaderSubtitleAppearance": "תצורת כתוביות", + "OnlyForcedSubtitlesHelp": "רק כתוביות כפויות ייטענו.", + "AutoSelectHearingImpairedHelp": "כתוביות התואמות להעדפות השפה ייטענו, עם העדפה למסלולים המסומנים ככתוביות לנכים בשמיעה (SDH).", + "AlwaysPlaySubtitlesHelp": "כתוביות שיתאימו להעדפת השפה ייטענו ללא קשר לשפת השמע.", + "NoSubtitlesHelp": "כתוביות לא ייטענו כברירת מחדל. הם עדיין יכולים להיות מופעלים ידנית במהלך ההשמעה.", + "LabelPreferredSubtitleLanguage": "שפת כתוביות מועדפת", + "LabelTextSize": "גודל טקסט", + "TheseSettingsAffectSubtitlesOnThisDevice": "הגדרת הכתוביות תקפות על מכשיר זה", + "LabelDropShadow": "צל מתחת לטקסט", + "LabelTextBackgroundColor": "צבע רקע לטקסט", + "LabelWindowBackgroundColor": "צבע רקע טקסט", + "LabelFont": "גופן", + "LabelTextColor": "צבע טקסט", + "LabelBackgroundColor": "צבע רקע", + "LabelBackgroundOpacity": "שקיפות רקע", + "Raised": "הדגשה מורמת", + "Depressed": "הדגשה יורדת", + "Uniform": "קו מתאר", + "DropShadow": "צללית", + "SmallCaps": "ראשיות קטנות (אותיות לועזיות)", + "SubtitleAppearanceSettingsDisclaimer": "הגדרות אלו לא יחולו על כתוביות גרפיות (PGS, DVD וכו'), או כתוביות שיש להן סגנונות מוטבעים (ASS/SSA).", + "Normal": "רגיל", + "HeaderWaitingForWifi": "ממתין לרשת אלחוטית", + "WifiRequiredToDownload": "רשת אלחוטית נדרשת עבור המשך ההורדה.", + "DownloadOnlyOnWifi": "הורד באמצעות רשת אלחוטית בלבד", + "LabelMusicDownloadQuality": "איכות הורדת מוזיקה", + "MusicDownloadQualityHelp": "קבצי שמע עם סיביות גבוהה יותר יומרו על ידי שרת Emby. בחר ערך גבוה יותר עבור איכות טובה יותר, או ערך נמוך יותר כדי לחסוך במרחב האחסון המקומי.", + "HeaderDownloadSettings": "הגדרות הורדה", + "LabelDownloadLocation": "מיקום הורדה", + "BrowseForFolder": "עיין בתיקייה", + "Unlimited": "ללא הגבלה", + "NoLimit": "ללא הגבלה", + "Hide": "הסתר", + "HeaderKeepWatching": "השאר בצפייה", + "HeaderNextEpisode": "הפרק הבא", + "AudioBitDepthNotSupported": "המרה לעומק סיביות שמע תואם", + "VideoBitrateNotSupported": "המרה לקצב סיביות וידאו תואם", + "VideoProfileNotSupported": "המרה לפרופיל וידאו תואם", + "VideoFramerateNotSupported": "המרה לקצב פריימים תואם", + "VideoBitDepthNotSupported": "המרה לעומק סיביות וידאו תואם", + "RefFramesNotSupported": "המרה למספר מסגרות ייחוס תואם", + "ErrorConnectServerUnreachable": "אירעה שגיאה בביצוע הפעולה המבוקשת. השרת שלך אינו מצליח ליצור קשר עם שרת הEmby Connect שלנו בכתובת {0}. ודא שהשרת שלך מחובר לאינטרנט פעיל ושהתקשורת מותרת על ידי כל חומת אש או תוכנת אבטחה שהתקנת.", + "HeaderStopRecording": "הפסק להקליט", + "ManageRecording": "ניהול הקלטה", + "LabelDropImageHere": "גרור ושחרר תמונה כאן, או לחץ כדי לבחור תמונה להעלאה.", + "MessageFileReadError": "אירעה שגיאה בקריאת הקובץ. בבקשה נסה שוב.", + "Browse": "עיין בתיקייה", + "HeaderUploadImage": "העלאת תמונה", + "HeaderAddUpdateImage": "הוסף/עדכן תמונה", + "HeaderShowFields": "הצג שדות", + "LabelView": "תצוגה", + "LabelImageType": "סוג תמונה", + "Upload": "העלה", + "Primary": "פוסטר", + "PrimaryImageBlur": "טשטוש תמונה ראשית", + "Art": "עטיפה", + "Backdrop": "תמונות רקע", + "Banner": "באנר", + "Box": "מארז", + "BoxRear": "מארז (אחורית)", + "Disc": "דיסק", + "Logo": "לוגו", + "LogoDark": "לוגו (גרסה כהה)", + "LogoLight": "לוגו (גרסה בהירה)", + "LogoLightColor": "לוגו (בהיר עם צבע)", + "Menu": "תפריט", + "Screenshot": "צילום מסך", + "Thumb": "ממוזער", + "HeaderAudioSettings": "הגדרות שמע", + "LabelAudioLanguagePreference": "שפת שמע מועדפת", + "LabelPlayDefaultAudioTrack": "הפעל את רצועת השמע כברירת המחדל ללא קשר לשפה", + "HeaderVideoQuality": "איכות וידאו", + "CinemaModeConfigurationHelp": "מצב הקולנוע מביא אליך את חוויית הקולנוע אל הסלון שלך, עם טריילרים ופתיחים מותאמים אישית לפני התוכן העיקרי.", + "ShowUpNextPreview": "הצג תצוגה מקדימה הבאה", + "ShowUpNextPreviewHelp": "הצג מידע עבור הפריט הבא לקראת סוף הנוכחי.", + "PlayNextEpisodeAutomatically": "הפעל את הפרק הבא באופן אוטומטי", + "LabelMaxChromecastBitrate": "איכות סטרימינג ב־Chromecast", + "LabelSkipBackLength": "משך דילוג אחורה", + "LabelSkipForwardLength": "משך דילוג קדימה", + "EnableCinemaMode": "אפשר מצב קולנוע", + "LabelInternetQuality": "איכות סטרימינג מרחוק", + "LabelCellularQuality": "איכות סטרימינג מרחוק (סלולרי)", + "HeaderMusicQuality": "איכות מוזיקה", + "LabelHomeNetworkQuality": "איכות סטרימינג ברשת הביתית", + "HeaderLatestMedia": "נוספו לאחרונה", + "HeaderRestartingEmbyServer": "מפעיל מחדש את שרת Emby", + "RestartPleaseWaitMessage": "המתן עד ששרת Emby יכבה ויופעל מחדש. פעולה זו עשויה להימשך דקה או שתיים.", + "HeaderPlayNext": "הוסף לנגן הבא", + "AutoBasedOnLanguageSetting": "אוטומטי (מבוסס על הגדרת המכשיר)", + "SameAsMainTheme": "זהה לערכת הנושא הראשית", + "LabelDateTimeLocale": "אזור זמן ותאריך", + "Genre": "ז'ָאנר", + "DirectorValue": "במאי: {0}", + "DirectorsValue": "במאי: {0}", + "GenreValue": "ז׳אנר: {0}", + "GenresValue": "ז׳אנר: {0}", + "TagsValue": "תגים: {0}", + "Off": "ללא ", + "Title": "כותרת", + "Year": "שנה", + "Filter": "סינון", + "Filters": "סינון", + "Unplayed": "לא הופעל", + "LabelTVHomeScreen": "מסך הבית במצב טלוויזיה", + "Horizontal": "אופקי", + "Vertical": "אנכי", + "HeaderGroupBy": "קבץ לפי", + "HeaderMediaType": "סוג מדיה", + "GroupBySeries": "קבץ לפי סדרה", + "HeaderVideoType": "סוג וידאו", + "HeaderSeriesStatus": "מצב סדרות", + "Features": "תכונות", + "Trailers": "טריילרים", + "Extras": "תוספות", + "ThemeSongs": "נעימת נושא", + "ThemeVideos": "וידאו נושא", + "HeaderFavoriteMovies": "סרטים אהובים", + "HeaderFavoritePhotos": "תמונות אהובות", + "HeaderFavoriteShows": "תוכניות טלוויזיה אהובות", + "HeaderFavoriteEpisodes": "פרקים אהובים", + "HeaderFavoriteVideos": "וידאו אהוב", + "HeaderFavoriteMusicVideos": "סרטוני מוזיקה מועדפים", + "HeaderFavoriteGames": "משחקים אהובים", + "HeaderFavoriteArtists": "אמנים אהובים", + "HeaderFavoriteAlbums": "אלבומים אהובים", + "HeaderFavoriteSongs": "שירים אהובים", + "HeaderFavoriteAuthors": "מחברים אהובים", + "HeaderFavoriteAudioBooks": "ספרים מוקלטים אהובים", + "Ascending": "עולה", + "Descending": "יורד", + "HeaderColorPrimaries": "צבע ראשוני", + "HeaderColorSpace": "מרחב צבע", + "HeaderColorTransfer": "העברת צבע", + "HeaderVideoRange": "טווח דינמי רחב", + "SeriesDisplayOrderHelp": "סדר פרקים לפי תאריך הפצה, סדר DVD או מספור מוחלט.", + "LabelVerticalPositionFromBottom": "מיקום אנכי (מהתחתית)", + "HeaderFavoritePeople": "שחקנים וצוות אהובים", + "MultiSelect": "בחירה מרובה", + "HeaderSignOut": "התנתק", + "HeaderSelectServer": "בחר שרת", + "HeaderChangeServer": "החלף שרת", + "HeaderChangeUser": "החלף משתמש", + "HeaderAppSettings": "הגדרות ", + "HeaderLoginSettings": "הגדרות התחברות", + "LabelRememberLogin": "זכור התחברות", + "LabelAutomaticallySignOut": "התנתק אוטומטית", + "BetaTesterMessage": "תודה על השתתפותך כבודק בטא של Emby! נשמח אם תשאיר משוב ב־{0}אזור הבדיקות של קהילת Emby{1}.", + "HardwareAccelerated": "האצת חומרה", + "Software": "תוכנה", + "Metadata": "מטא-נתונים", + "HeaderMediaInfo": "פרטי קובץ מדיה", + "Locked": "נעול", + "HeaderSplitVersionsApart": "פצל גרסאות בנפרד", + "Any": "כל המצבים", + "Admin": "מנהל", + "HeaderReadMore": "קרא עוד", + "CustomRatingHelp": "סיווג צפייה מותאם אישית משמש להערכת בקרת הורים אך אינו מוצג. שדה סיווג הצפייה הנבחר עדיין מוצג.", + "KeepUpToHelp": "הקלטות מעבר למגבלה נמחקות עם תחילת ההקלטה הבאה. ההקלטות הישנות ביותר נמחקות תחילה, לפי תאריך הוספה.", + "NoItemsMatchingFound": "לא נמצאו כותרים התואמים לקריטריוני החיפוש שלך.", + "TwoSearchCharsRequired": "אנא הזן לפחות שני תווי חיפוש.", + "PreventPlaybackContinuing": "מנע את המשך ההפעלה ללא הגבלת זמן על ידי בקשה מעת לעת בכניסת משתמש.", + "PromptStillWatching": "אפשר הודעת התראה 'האם אתה עדיין צופה?'", + "HeaderMissingMetadata": "חסר מטא-נתונים", + "HeaderIncludedIn": "כלול ב", + "EmbyConnectUserAlreadyLinked": "המשתמש של Emby Connect כבר מקושר למשתמש אחר בשרת זה.", + "VideoFilesWillBeConvertedTo": "וידאו שהומר יישמרו כ{0}.", + "VideoWillBeConvertedTo": "סטרימינג הוידאו יומרו ל{0}, או יועתקו מהקובץ המקורי אם הם כבר {0} והאיכות מתאימה לאפשרויות ההמרה.", + "VideoWillBeConvertedToOrCopied": "סטרימינג הוידאו יומרו ל{0}, או יועתקו מהקובץ המקורי אם הם חלק מהקובץ ({1}), והאיכות מתאימה לאפשרויות ההמרה.", + "AudioWillBeConvertedTo": "סטרימינג השמע יומרו ל{0}, או יועתקו מהקובץ המקורי אם הם כבר {0} והאיכות מתאימה לאפשרויות ההמרה.", + "AudioWillBeConvertedToOrCopied": "סטרימינג השמע יומרו ל{0}, או יועתקו מהקובץ המקורי אם הם חלק מהקובץ ({1}), והאיכות מתאימה לאפשרויות ההמרה.", + "HeaderSpecialKeys": "מקשים מיוחדים", + "FollowingSpecialKeys": "המקשים המיוחדים הבאים נתמכים ברוב המקלדות והשלט הרחוק:", + "HeaderDeleteSeries": "מחק סדרה", + "HeaderDeleteLastPlayedEpisode": "מחק את הפרק האחרון שהושמע", + "HeaderConnectingToServer": "מתחבר לשרת", + "ServerNameValue": "שם שרת: {0}", + "DomainValue": "דומיין: {0}", + "RatedValue": "סיווג צפייה: {0}", + "LocalServerRedirectMessage": "כעת תופנה מחדש לדומיין שבבעלות ובניהולו של מנהל השרת שאליו בחרת להתחבר:", + "AllMediaOwnedHosted": "כל המדיה מתארחת ומנוהלת על ידי הבעלים של {0}.", + "EnableResolutionSwitching": "התאם לרזולוציית הווידאו", + "EnableResolutionSwitchingHelp": "אפשרות זו מאפשרת ל־Emby להתאים את הרזולוציה לערך שבו קודד הווידאו במקור לפני תחילת הניגון. פעולה זו עשויה לצמצם קפיצות ורעידות שעשויות להתרחש בעת ניגון סרטונים שרזולוצייתם לא תואמת.", + "EnableDisplayRefreshRateSwitching": "אפשר החלפת קצב רענון התצוגה", + "EnableDisplayRefreshRateSwitchingHelp": "אפשרות זו מאפשרת ל־Emby לשנות את קצב הרענון של המסך לערך (או כפולה) של קצב הפריימים שבו קודד הווידאו, לפני תחילת ההפעלה. זה עשוי לעזור לצמצם קפיצות/ריצודים בניגון סרטונים שאינם תואמים בדיוק.", + "RememberSelectedAudioTracks": "זכור את בחירת רצועות השמע", + "RememberSelectedSubtitleTracks": "זכור את בחירת רצועות הכתוביות", + "RememberSelectedSubtitleTracksHelp": "בחירת רצועת הכתוביות תיזכר על בסיס סרטון ויוחל מחדש בעת הפעלת אותו סרטון שוב.", + "RememberSelectedAudioTracksHelp": "בחירת רצועת שמע תיזכר על בסיס פר וידאו ויוחל מחדש בעת הפעלת אותו וידאו שוב.", + "ClearSavedTrackSelections": "נקה בחירות רצועות שמורות", + "HeaderClearTrackSelections": "נקה בחירות רצועות שמורות", + "QuestionClearSavedTracks": "לנקות את כל בחירות הרצועות השמורות?", + "LabelChannelTags": "תגיות ערוץ", + "AfterThisPlaysConfirmation": "לאחר ההשמעה הזו, האם ברצונך להמשיך לנגן או לנקות את המוזיקה שצירפת בעבר בתור?", + "Keep": "לִשְׁמוֹר", + "Clear": "נקה", + "HeaderClearFilters": "נקה סינון", + "HeaderSearchForImages": "חפש תמונות", + "HeaderSearchNewImage": "חפש תמונה חדשה", + "HeaderSearchForAnImage": "חפש תמונה", + "DragDropToReorder": "גרור ושחרר לסדר מחדש", + "HeaderAddImageFromUrl": "הוסף תמונה מכתובת אתר אינטרנט", + "HeaderSetImageFromUrl": "הגדר תמונה מכתובת אתר אינטרנט", + "LabelUrl": "כתובת URL", + "LabelChannelNumber": "מספר ערוץ", + "LabelGuideDataChannel": "ערוץ מדריך נתונים", + "GuideDataSource": "מקור נתוני מדריך", + "HeaderCopyToClipboard": "העתק ללוח", + "TimeRemainingValue": "נותרו {0}", + "LabelResumeRewindSeconds": "בעת חידוש, בצע הרצה אוטומטית אחורה", + "ResumeRewindSecondsHelp": "זה עשוי לעזור לך לזכור היכן הפסקת. זה חל על המשך הפעלה ולא על כל הפסקה בודדת במהלך השמעה.", + "HeaderSavePlayQueueToPlaylist": "שמור תור הפעלה לרשימת השמעה", + "EnableLogoImagesAsTitle": "הצג לוגו ככותרת במסכי פירוט", + "EnableLogoImagesAsTitleHelp": "כאשר הם זמינים, ניתן להשתמש בלוגו במקום טקסט ככותרת לסרטים, סדרות. הכותרת תחזור לטקסט כאשר הלוגו אינו זמין.", + "LabelNowPlayingAudioBackgroundStyle": "סגנון רקע לשמע כעת בניגון", + "LabelNowPlayingVideoBackgroundStyle": "סגנון רקע לווידאו כעת בניגון", + "NowPlayingVideoBackgroundStyleHelp": "קובע את סגנון הרקע בעת שליטה מרחוק בהפעלת וידאו במכשיר אחר.", + "Rotation": "סיבוב", + "Minutes": "דקות", + "LabelMaxRecordingLength": "אורך הקלטה מרבי", + "MaxRecordingLengthHelp": "הגבל הקלטות לפרק זמן מוגדר, ללא קשר למשך השידור. הגדר ל0 ללא הגבלה.", + "RemoteWAN": "כתובת רשת חיצונית (WAN).", + "HeaderLastConnectedTo": "חיבור אחרון ל", + "Version": "גרסה", + "Keyword": "מילת מפתח", + "HeaderServerAddress": "כתובת שרת", + "HeaderSkipIntro": "דלג על פתיח", + "HeaderCreateRecording": "צור הקלטה", + "HeaderAddRecording": "הוסף הקלטה", + "HeaderChannelAndTime": "ערוץ וזמן", + "LabelRecordProgramOrSeriesFrom": "הקלט תוכנית או סדרה מ־", + "LabelStartTime": "שעת התחלה", + "LabelEndTime": "שעת סיום", + "LabelFrequency": "תדירות", + "Recurring": "מַחזוֹרִי", + "Once": "פַּעַם", + "Start": "התחל", + "Unpause": "בטל השהיה", + "LabelIntroSkipMode": "דלג על פתיח", + "ShowSkipIntroButton": "הצג את לחצן 'דלג על פתיח'", + "AutoSkipIntro": "דל על פתיח באופן אוטומטי", + "DisplayRatingInformationOnVideoPlaybackStart": "הצג סיווג צפייה בעת הפעלת הוידאו", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "סיווג הצפייה יוצג לזמן קצר בתחילת הפעלת הוידאו.", + "IntroSkipModeHelp": "הצג כפתור 'דלג על פתיח' או דלג אוטומטית על פתיח לפרקים שבהם שרת Emby זיהה סמני פתיח. זיהוי פתיח חייב להיות מופעל באפשרויות ספריית שרת Emby.", + "EnableHomeScreenFocusPreview": "השתמש בפריסה במסך הבית המציגה תצוגה מקדימה מפורטת של התוכן הנבחר", + "EnableHomeScreenFocusPreviewHelp": "ייתכן שזה לא יעבוד טוב אם מסך הבית שלך מכיל תערובת של סוגי מדיה שונים.", + "LabelHideMediaTransportButtons": "הסתר כפתורי שליטה בנגן הווידאו", + "HideMediaTransportButtonsHelp": "צור ממשק השמעה פשוט יותר על המסך על ידי הסתרת לחצני העברה בסיסיים כגון דילוג קדימה, אחורה והשהייה. עדיין תוכל להשתמש בפונקציות הללו באמצעות מקשי החיצים וOK/Enter. אוטומטי יסתיר את לחצני התחבורה כאשר לא מזוהה שימוש בעכבר באפליקציה.", + "ImageSizeHelp": "בחר את גודל התמונה הרצוי", + "LabelImageSize": "גודל תמונה", + "ThisImageIsOnlyPreview": "תמונה זו היא רק תצוגה מקדימה שהגיעה ממנוע החיפוש של המטא-נתונים. התמונה בפועל ששרת Emby הוריד עשויה להיות שונה ותלויה באפשרויות שהגדרת בהגדרות הספרייה.", + "ResultsRangeValue": "{0} עד {1} מתוך {2}", + "NotificationsDescription": "הגדר התראות כדי להישאר מעודכן על אירועים חשובים בשרת Emby.", + "DeleteEmbyConnectAccount": "מחק את חשבון Emby Connect", + "DeleteEmbyConnectAccountHelp": "כדי למחוק את חשבון Emby Connect שלך, התחבר ל־{0}קהילת Emby{1} בכתובת {2}. לאחר ההתחברות, לחץ על שם המשתמש שלך בפינה הימנית העליונה, ואז על 'הגדרות חשבון', ולבסוף על 'מחק את החשבון שלי'.", + "KeepPlayingInBackground": "המשך הפעלה ברקע", + "LabelVideoBackBehavior": "התנהגות כפתור החזרה בנגן הווידאו", + "HeaderViewLyrics": "הצג מילים", + "HeaderViewMissingEpisodes": "הצג פרקים חסרים", + "HeaderMissingEpisodes": "פרקים חסרים", + "HeaderManageAccess": "נהל גישה", + "HeaderManageCollaboration": "ניהול שיתוף פעולה", + "HeaderLeaveCollaboration": "עזוב שיתוף פעולה", + "HeaderRemoveFromLibrary": "הסר מהספרייה", + "RemoveSharedItemConfirmation": "האם אתה בטוח שברצונך להסיר פריט זה מהספרייה שלך? כדי להחזיר אותו, הבעלים יצטרך להעניק לך גישה מחדש.", + "SubtitlesDownloaded": "הורדת כתוביות", + "HeaderMakePrivate": "שנה ל-פרטי", + "HeaderMakePublic": "שנה ל-פומבי", + "MakePublicDescription": "כל המשתמשים יוכלו להציג פריט זה. ניתן להעניק גישה לעריכה למשתמשים.", + "MakePrivateDescription": "ניתן עדיין להעניק גישה למשתמשים בודדים.", + "Private": "פרטי", + "Public": "ציבורי", + "Collaborative": "שיתופי", + "PreferredShowDisplay": "תצוגה מועדפת לסדרות טלוויזיה", + "ShowAllEpisodesAllSeasons": "הצג את כל הפרקים של כל העונות ביחד", + "ShowAllEpisodesSingleSeason": "הצג את כל הפרקים של עונה אחת בלבד", + "ShowSeasonFolders": "הצג תמיד תיקיות עונה", + "HeaderAddAgain": "הוסף שוב", + "UpNext": "הבא בתור", + "ItemsAlreadyInPlaylist": "חלק מהפריטים האלו כבר נמצאים ברשימת ההשמעה שלך.", + "ItemAlreadyInPlaylist": "פריט זה כבר נמצא ברשימת ההשמעה שלך.", + "HeaderPlayChannel": "נגן ערוץ", + "LabelScreenOrientationDuringVideo": "כיוון מסך בעת ניגון וידאו", + "UseDeviceSetting": "השתמש בהגדרת המכשיר", + "LockToLandscape": "נעל למצב אופקי", + "UsernameForFolderHelp": "שם המשתמש הנדרש לגישה לתיקייה זו ברשת שלך (אם רלוונטי).", + "PasswordForFolderHelp": "הסיסמה הנדרשת לגישה לתיקייה זו ברשת שלך (אם רלוונטי).", + "ShowMediaInfoOnDetailScreens": "הצג מידע מלא על מדיה במסכי פירוט של אודיו ווידאו", + "ForgotPasswordNoUserFound": "לא נמצאו משתמשים בשם שהוזן. נסה שוב, או השאר את השדה ריק כדי לאפס את הסיסמה לכל המשתמשים בשרת זה.", + "Silver": "כסף", + "DimGray": "אפור כהה", + "DarkGray": "אפור עמוק", + "LightGray": "אפור בהיר", + "Black": "שחור", + "Blue": "שחור", + "Cyan": "טורקיז", + "Gray": "אפור", + "Green": "ירוק", + "Lime": "ליים", + "Magenta": "מג'נטה", + "Orange": "כתום", + "Pink": "ורוד", + "Red": "אדום", + "Yellow": "צהוב", + "White": "לבן", + "Purple": "סגול", + "RecentlyReleasedMovies": "סרטים שיצאו לאחרונה", + "RecentlyReleasedEpisodes": "פרקים שיצאו לאחרונה", + "DolbyProfile": "פרופיל Dolby", + "IpAddress": "כתובת IP", + "VideoType": "סוג וידאו", + "HidePlayedMediaFrom": "הסתר תוכן שהופעל מ:", + "BottomEdgePosition": "מיקום קצה תחתון", + "VerticalPositionFromBottomScreen": "הגדר את מיקום הכתוביות אנכית יחסית לתחתית המסך.", + "TopEdgePosition": "מיקום קצה עליון", + "TopEdgePositionHelp": "הגדר את המיקום האנכי המרבי של הכתוביות ביחס לחלק העליון של המסך. אפשרות זו בשימוש כאשר הכתוביות כוללות הוראות מיקום לחלק העליון.", + "HeaderSubtitlePosition": "מיקום כתוביות", + "TitleProfilePin": "קוד PIN לפרופיל", + "ProfilePinConfirm": "אישור קוד PIN לפרופיל", + "SaveProfilePin": "שמור קוד PIN", + "ProfilePinDescription": "צור קוד PIN אופציונלי, שיתבקש להזין בכל פעם שתחזור לאפליקציית Emby במכשיר שכבר נכנסת אליו. זה שימושי במיוחד במכשירים המשותפים למספר משתמשים. תוכל להפעיל זאת בנפרד לכל מכשיר לפי הצורך.", + "TitleNewEpisodes": "פרקים חדשים", + "EnterYourPinToContinue": "הזן את קוד ה־PIN כדי להמשיך.", + "YourPinMustBe": "ה־PIN חייב להכיל {0} ספרות.", + "ForgotPin": "שכחת את ה־PIN?", + "RequireEnteringPinToReturn": "דרוש הזנת קוד PIN לפרופיל בכל חזרה לאפליקציה זו.", + "RequireEnteringPinToReturnQuestion": "האם לבקש ממך להזין את קוד ה־PIN לפרופיל בכל חזרה לאפליקציה? אם המכשיר משותף למספר משתמשים, קוד ה־PIN יעזור להגן על המידע האישי שלך.", + "RequireEnteringPinToReturnHelp": "מומלץ אם מכשיר זה משותף למספר משתמשים.", + "WrongPinPleaseTryAgain": "אופס, קוד ה־PIN שגוי. נסה שוב.", + "ProfilePinIsOn": "קוד ה־PIN לפרופיל פעיל כעת.", + "IfTryingToConnectToHttp": "אם אתה מנסה להתחבר לשרת Emby שלך באמצעות כתובת HTTP, ייתכן שהדפדפן שלך לא מאפשר זאת בגלל דרישות HTTPS. נסה אחת מהאפשרויות הבאות:", + "SetupHttpsForYourServer": "הגדר {0}HTTPS לשרת Emby שלך{1} כדי שתוכל להתחבר בצורה מאובטחת.", + "TitleUnableToReachServer": "לא ניתן להגיע לשרת", + "TitleUnableToReachName": "לא ניתן להגיע אל {0}", + "HearingImpaired": "כבדי שמיעה", + "SignIntoServerName": "התחבר אל {0}", + "About": "אודות", + "Specials": "מיוחד", + "NSettings": "הגדרות {0}", + "NPreferences": "העדפות {0}", + "DetailScreenOptions": "פירוט מסך תצוגה", + "LabelGenreDisplayLimit": "מגבלת תצוגת ז'אנרים", + "GenreDisplayLimitHelp": "הגבל את מספר הז'אנרים המוצגים בחלק העליון של פירוט מסך התוכן.", + "GenreDisplayLimitForListsHelp": "הגבל את מספר הז'אנרים המוצגים בחלק העליון של מסכי ההפעלה, האוסף ופרטי האמן.", + "LabelGenreDisplayLimitForLists": "מגבלת תצוגת ז'אנרים לרשימות", + "ShowPosterOnDetails": "הצג פוסטר בפירוט המסך", + "ShowPosterOnDetailsHelp": "בחר להציג פוסטר בפירוט המסך, או להסתיר אותו למראה מינימלי יותר המדגיש את הרקע. הגדרה זו אינה בשימוש בפריסות מסך קטנות יותר. סוגי פריטים מסוימים יתעלמו מהגדרה זו.", + "EnableAppLogging": "אפשר רישום לוגים באפליקציה", + "EnableAppLoggingHelp": "רישום לוגים עלול להאט את ביצועי האפליקציה, ומומלץ להפעילו רק לצורך איתור תקלות. שינוי זה דורש אתחול האפליקציה.", + "LabelSlideshowInterval": "משך הצגת כל תמונה במצגת", + "TVChannelImageEditorHelp": "נתמכות מספר גרסאות של לוגו. אפליקציות Emby יבחרו אוטומטית את הגרסה המתאימה לפי ערכת הנושא הנוכחית.", + "PlaySlideshow": "נגן מצגת", + "CheckForExistingEpisodesInAllLibraries": "בדוק פרקים קיימים בכל הספריות", + "GroupNotificationsBySeriesOrAlbum": "קבץ התראות לפי סדרות ואלבומים", + "ThemeSettings": "הגדרות ערכת נושא", + "FollowingActivityWillBeDisrupted": "הפעילות הבאה תופרע ועשויה לדרוש התערבות ידנית להפעלה מחדש:", + "OneActivePlaybackSession": "סשן ניגון פעיל אחד", + "NumActivePlaybackSessions": "{0} סשנים פעילים של ניגון", + "OneActiveRecording": "הקלטה פעילה אחת", + "NumActiveRecordings": "0} הקלטות פעילות", + "PlayFromLivePosition": "נגן מהשידור החי", + "PlayFromStartOfRecording": "נגן מתחילת ההקלטה", + "ThisChannelIsActivelyRecording": "הערוץ הזה בהקלטה פעילה. איך תרצה להתחיל לנגן?", + "ThemeSongVolume": "עוצמת שירי נושא", + "HeaderForceConversionForFormats": "כפיית המרת מדיה (Transcoding) לפורמטים", + "ForceConversionForFormatsHelp": "השתמש באפשרות זו כדי להכריח המרה או remuxing בשרת עבור פורמטים שלא מתנגנים ישירות היטב במכשיר זה.", + "StartupBehavior": "התנהגות בעת הפעלה", + "RememberLastUser": "זכור משתמש אחרון", + "ShowLoginScreen": "הצג מסך התחברות", + "SignInAsValue": "התחבר בתור {0}", + "ConvertUnsupportedAudio": "המר שמע היקפי לא נתמך ל־Dolby Digital", + "ConvertUnsupportedAudioHelp": "הימנע מהמרת פורמטי שמע היקפיים לא נתמכים לסטריאו, על ידי כך ש־Emby Server ימיר אותם ל־Dolby Digital.", + "HeaderPlaybackCorrection": "תיקון ניגון", + "HeaderAttemptPlaybackCorrection": "נסה לתקן ניגון", + "PlaybackCorrectionConfirm": "לנסות לתקן את הניגון?", + "PlaybackCorrectionDescription": "האם יש בעיית ניגון בפריט זה, כמו חוסר וידאו או שמע? פעולה זו תנסה לפתור את הבעיה על ידי המרת הקובץ בפועל לפורמט ידידותי יותר להזרמה, באמצעות טרנסקודינג בשרת. שים לב: פעולה זו תשתמש ביותר משאבי מערכת בשרת Emby.", + "PlaybackCorrectionDescription2": "באפשרותך לבצע פעולה זו עד שלוש פעמים לכל סרטון, כאשר בכל פעם מופעל שלב אחר: remuxing, המרת וידאו, או המרת שמע.", + "HeaderAlbumsAsContributingArtist": "אלבומים כאמן משתתף", + "HeaderAlbumsAsComposer": "אלבומים כמלחין", + "Duplicates": "כפילויות", + "HeaderSleepTimer": "טיימר שינה", + "AfterCurrentItem": "לאחר הפריט הנוכחי", + "HeaderStopPlayback": "הפסק ניגון", + "TurnOffTimer": "כבה את הטיימר", + "SleepTimerIsSet": "טיימר השינה שלך הופעל", + "SleepTimerIsOff": "טיימר השינה כבוי", + "LabelEnableRemoteControlTVMode": "הצג אפשרויות העברה (Casting) ושליטה מרחוק", + "EnableRemoteControlTVModeHelp": "אפשר אפשרות זו אם ברצונך להשתמש במכשיר זה לשליחת מדיה למכשירים אחרים.", + "ShowOnScreenControls": "הצג פקדים על המסך", + "LabelVideoScreenUpAction": "פעולת לחיצה כלפי מעלה במסך הווידאו", + "VideoScreenUpActionHelp": "בחר את הפעולה שתתבצע בעת לחיצה על החץ למעלה במסך הווידאו. זה רלוונטי כאשר הפקדים אינם מוצגים. כאשר הפקדים מוצגים, החץ למעלה ישמש לניווט.", + "LabelVideoPlayerLongPressAction": "פעולת לחיצה ארוכה בנגן הווידאו", + "LetsGetSetup": "בוא נתחיל בהגדרה", + "VideoPlayerLongPressActionHelp": "בחר איזו פונקציה או תפריט יוצגו כאשר לוחצים לחיצה ארוכה על כפתור OK בזמן ניגון וידאו. אפשרות זו פעילה רק כאשר הפקדים מוסתרים או כאשר פס ההתקדמות במוקד.", + "AskAdminToGetPremiere": "רכישה זו חייבת להתבצע על ידי מנהל השרת. יש לבקש ממנהל שרת Emby להיכנס ולרכוש את Emby Premiere כדי שתוכל ליהנות מהפיצ'רים המתקדמים.", + "AutoOpenSingleItemsFolders": "פתח אוטומטית פריט יחיד בתצוגת תיקיות", + "AutoOpenSingleItemsFoldersHelp": "כאשר תיקייה מכילה רק פריט אחד, פתח אותו אוטומטית.", + "PlayedOnValue": "הופעל {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "תאריך הוספת התוכן האחרון", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "נולד: ‎{0}‎ (גיל ‎{1}‎)", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "ForgetThisServer": "Forget This Server", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/hi.json b/modules/common/strings/hi.json new file mode 100644 index 0000000..034eeb9 --- /dev/null +++ b/modules/common/strings/hi.json @@ -0,0 +1,1340 @@ +{ + "Studio": "Studio", + "Days": "Days", + "Next": "Next", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "HeaderFavoriteVideos": "Favorite Videos", + "Lime": "Lime", + "EmbyLoginTerms": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our {0}terms of use{1}. The use of any Emby software constitutes acceptance of these terms।", + "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again।", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server।", + "HeaderSignInWithConnect": "Sign in with Emby Connect", + "HeaderWelcomeToEmby": "Welcome to Emby", + "HeaderNewUsers": "New Users", + "HeaderPleaseSignIn": "Please Sign In", + "MessageInvalidUser": "Invalid username or password. Please try again।", + "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।", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Sign In", + "Share": "Share", + "Shared": "Shared", + "Info": "Info", + "Add": "Add", + "Speed": "Speed", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapters", + "Password": "Password", + "SavePassword": "Save Password", + "LabelPassword": "Password", + "HeaderResetPassword": "Reset Password", + "Series": "Series", + "Preview": "Preview", + "Submit": "Submit", + "Never": "Never", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Top Results", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off।", + "AlwaysOn": "Always on", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation।", + "NoOperationsForSelectedItems": "There are no operations available for the selected items।", + "UploadOnlyOnWifi": "Upload only on Wifi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Password (confirm)", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Username", + "HeaderAddServer": "Add Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Close", + "HeaderSeeAll": "See All", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "Email", + "LabelHost": "Host", + "LabelHostHelp": "Example: 192.168.1.100 or https://myserver.com", + "LabelPort": "Port", + "Disabled": "Disabled", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}।", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Are you still watching?", + "LabelCurrentPassword": "Current password", + "LabelNewPassword": "New password", + "LabelNewPasswordConfirm": "New password confirm", + "HeaderRemovePassword": "Remove Password", + "ServerUpdateNeeded": "This Emby Server needs to be updated. To download the latest version, please visit {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in।", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information।", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match।", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again।", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature।", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Connect to Server", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account।", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password।", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process।", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}।", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again।", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password।", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username।", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "New", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premiere", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server।", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Live", + "Reset": "Reset", + "Repeat": "Repeat", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} Tracks", + "ItemCount": "{0} Items", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Latest Music", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Recently Played", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Frequently Played", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "OriginalAirDateValue": "Original air date: {0}", + "EndsAtValue": "Ends at {0}", + "Date": "Date", + "AirDate": "Air Date", + "Played": "Played", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text।", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language।", + "LastEpisodeDateAdded": "Last Episode Date Added", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio codec", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Parental rating", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Because you watched {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Invitations", + "ActorAsRole": "as {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this।", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this।", + "User": "User", + "Access": "Access", + "Users": "Users", + "Library": "Library", + "Devices": "Devices", + "Cancel": "Cancel", + "Restart": "Restart", + "Shutdown": "Shutdown", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}।", + "Plugins": "Plugins", + "Systems": "Systems", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later।", + "ButtonGotIt": "Got It", + "RememberMe": "Remember me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Manage Emby Server", + "ShutdownServer": "Shutdown Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Recording Cancelled", + "SeriesCancelled": "Series Cancelled", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Recording Scheduled", + "SeriesRecordingScheduled": "Series Recording Scheduled", + "HeaderNewRecording": "New Recording", + "HeaderWakeServer": "Wake Server", + "AttemptingWakeServer": "Attempting to wake server. Please wait..।", + "WakeServerSuccess": "Success!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine।", + "Network": "Network", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Cinema Intros", + "Conversions": "Conversions", + "Downloads": "Downloads", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry।", + "HeaderOfflineDownloads": "Offline Media", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use।", + "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।", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature।", + "HeaderFreeApps": "Free Emby Apps", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices।", + "HeaderBecomeProjectSupporter": "Get Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}।", + "FeatureRequiresEmbyPremiere": "This feature requires an active {0}Emby Premiere subscription{1}।", + "HeaderConvertYourRecordings": "Convert Your Recordings", + "Record": "Record", + "Save": "Save", + "Edit": "Edit", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Download", + "Downloaded": "Downloaded", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloading", + "Advanced": "Advanced", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Delete", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Delete Item", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it।", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library।", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Refresh", + "RefreshingMetadataDots": "Refreshing metadata..।", + "ScanningLibraryFilesDots": "Scanning library files..।", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Add to Collection", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\"।", + "ItemsAddedTo": "{0} items added to \"{1}\"।", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Help", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based।", + "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", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started।", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Name", + "NewCollectionNameExample": "Example: Star Wars Collection", + "MessageItemsAdded": "Items added।", + "OptionNew": "New..।", + "LabelPlaylist": "Playlist", + "AddToPlaylist": "Add to playlist", + "HeaderAddToPlaylist": "Add to Playlist", + "Subtitles": "Subtitles", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text।", + "SearchForSubtitles": "Search for Subtitles", + "LabelLanguage": "Language", + "Search": "Search", + "NoSubtitleSearchResultsFound": "No results found. Have you configured {0}subtitle downloading{1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "File", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "ConfirmDeletion": "Confirm Deletion", + "MySubtitles": "My Subtitles", + "MessageDownloadQueued": "Download queued।", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Unlock Guide", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Replace existing images", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before।", + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library।", + "ReplaceAllMetadata": "Replace all metadata", + "SearchForMissingMetadata": "Search for missing metadata", + "LabelRefreshMode": "Refresh mode", + "NoItemsFound": "No items found।", + "HeaderSaySomethingLike": "Say Something Like..।", + "ButtonTryAgain": "Try Again", + "HeaderYouSaid": "You Said..।", + "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command।", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again।", + "ValueDiscNumber": "Disc {0}", + "Unrated": "Unrated", + "Favorite": "Favorite", + "Like": "Like", + "Dislike": "Dislike", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup।", + "Open": "Open", + "Play": "Play", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Shuffle", + "Identify": "Identify", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Convert", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Queue", + "QueueAllFromHere": "Queue all from here", + "PlayAllFromHere": "Play all from here", + "PlayFromBeginning": "Play From Beginning", + "FromBeginning": "From Beginning", + "ResumeAt": "Resume from {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sort", + "Trailer": "Trailer", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Please select at least two items।", + "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Error", + "VoiceInput": "Voice Input", + "LabelContentType": "Content type", + "LabelPath": "Path", + "Playlists": "Playlists", + "LabelTitle": "Title", + "LabelOriginalTitle": "Original title", + "LabelSortTitle": "Sort title", + "LabelDateAdded": "Date added", + "DateAdded": "Date Added", + "DateCreated": "Date Created", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Status", + "LabelArtistsHelp": "Separate multiple using ;", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Album artists", + "LabelAlbum": "Album", + "Artist": "Artist", + "Artists": "Artists", + "ImdbRating": "IMDb Rating", + "CommunityRating": "Community Rating", + "LabelCommunityRating": "Community rating", + "LabelCriticRating": "Critic rating", + "CriticRating": "Critic Rating", + "LabelWebsite": "Website", + "Tagline": "Tagline", + "LabelOverview": "Overview", + "LabelShortOverview": "Short overview", + "LabelReleaseDate": "Release date", + "LabelPlaceOfBirth": "Place of birth", + "Aired": "Aired", + "LabelAirDays": "Air days", + "LabelAirTime": "Air time", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelCustomRating": "Custom rating", + "LabelOriginalAspectRatio": "Original aspect ratio", + "Label3DFormat": "3D format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback।", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Display Settings", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Display order", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Countries", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Tags", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Metadata Settings", + "People": "People", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Preferred metadata download language", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value।", + "LabelCountry": "Country", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used।", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Birth year", + "LabelBirthDate": "Birth date", + "LabelDeathDate": "Death date", + "LabelEndDate": "End date", + "LabelSeasonNumber": "Season number", + "LabelEpisodeNumber": "Episode number", + "LabelTrackNumber": "Track number", + "LabelNumber": "Number", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Sort Title", + "OriginalTitle": "Original Title", + "ReleaseDate": "Release Date", + "Continuing": "Continuing", + "Ended": "Ended", + "HeaderEnabledFields": "Enabled Fields", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed।", + "Backdrops": "Backdrops", + "Images": "Images", + "Runtime": "Runtime", + "ProductionLocations": "Production locations", + "BirthLocation": "Birth location", + "ParentalRating": "Parental Rating", + "PlayCount": "Play count", + "Name": "Name", + "Overview": "Overview", + "LabelType": "Type", + "LabelPersonRole": "Role", + "LabelPersonRoleHelp": "Example: Ice cream truck driver", + "Actor": "Actor", + "Composers": "Composers", + "Composer": "Composer", + "Director": "Director", + "GuestStar": "Guest star", + "Producer": "Producer", + "Writer": "Writer", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app।", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app।", + "InstallingPackage": "Installing {0}", + "PackageInstallCompleted": "{0} installation completed।", + "PackageInstallFailed": "{0} installation failed।", + "PackageInstallCancelled": "{0} installation cancelled।", + "SeriesYearToPresent": "{0} - Present", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episodes", + "Albums": "Albums", + "Song": "Song", + "Songs": "Songs", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results।", + "PleaseEnterNameOrId": "Please enter a name or an external Id।", + "MessageItemSaved": "Item saved।", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Emby Server - {0} is restarting।", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down।", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library।", + "PleaseRestartServerName": "Please Restart Emby Server on {0}", + "ConvertingDots": "Converting..।", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading।", + "DownloadingDots": "Downloading..।", + "LearnMore": "Learn more", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted।", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played।", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device।", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted।", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted।", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded।", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to।", + "Screenshots": "Screenshots", + "MoveRight": "Move right", + "MoveLeft": "Move left", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Delete image?", + "HeaderEditImages": "Edit Images", + "Settings": "Settings", + "ShowIndicatorsFor": "Show Indicators", + "Episodes": "Episodes", + "Programs": "Programs", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}।", + "HeaderCancelRecording": "Cancel Recording", + "HeaderKeepRecording": "Keep Recording", + "HeaderCancelSeries": "Cancel Series", + "HeaderKeepSeries": "Keep Series", + "HeaderLearnMore": "Learn More", + "SeriesSettings": "Series settings", + "HeaderRecordingOptions": "Recording Options", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Series Options", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Anytime", + "AnyLanguage": "Any language", + "AroundTime": "Around {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "All channels", + "NewEpisodesOnly": "New episodes only", + "AllEpisodes": "All episodes", + "LabelStartWhenPossible": "Start when possible", + "LabelStopWhenPossible": "Stop when possible", + "MinutesBefore": "minutes before", + "MinutesAfter": "minutes after", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available।", + "LabelKeepUpTo": "Keep up to", + "AsManyAsPossible": "As many as possible", + "DefaultErrorMessage": "There was an error processing the request. Please try again later।", + "UntilIDelete": "Until I delete", + "UntilSpaceNeeded": "Until space needed", + "Categories": "Categories", + "Sports": "Sports", + "News": "News", + "Movies": "Movies", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby।", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "I have Emby Premiere", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "ButtonUnlockPrice": "Unlock {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "HeaderUnlockFeature": "Unlock Feature", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Added {0}", + "PlayedOnValue": "Played {0}", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Continue", + "ContinueInSecondsValue": "Continue in {0} seconds।", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Quality", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase।", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email।", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information।", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "My Media", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "Latest {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continue Watching", + "HeaderContinueListening": "Continue Listening", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Latest Recordings", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to..।", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset।", + "PasswordSaved": "Password saved।", + "SettingsSaved": "Settings saved।", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Favorites", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details।", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance।", + "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।", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Favorite Collections", + "HeaderFavoritePlaylists": "Favorite Playlists", + "Collection": "Collection", + "Collections": "Collections", + "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।", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Schedule", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device।", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality।", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media।", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again।", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user।", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website।", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation।", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby।", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address।", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again।", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}।", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account।", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}।", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs।", + "MessageEmbyAccountAdded": "The Emby account has been added to this user।", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email।", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends।", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again।", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again।", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again।", + "NoSubtitles": "No subtitles", + "Default": "Default", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available।", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language।", + "HeaderSubtitleSettings": "Subtitle Settings", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded।", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH)।", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language।", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback।", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelTextSize": "Text size", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA)।", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "A Wifi connection is required to continue downloading।", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space।", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "Hide": "Hide", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed।", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload।", + "MessageFileReadError": "There was an error reading the file. Please try again।", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Audio Settings", + "LabelAudioLanguagePreference": "Preferred audio language", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Video Quality", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature।", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one।", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Latest Media", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two।", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "Genre": "Genre", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directors: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Theme songs", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Favorite Movies", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Favorite Shows", + "HeaderFavoriteEpisodes": "Favorite Episodes", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Favorite Games", + "HeaderFavoriteArtists": "Favorite Artists", + "HeaderFavoriteAlbums": "Favorite Albums", + "HeaderFavoriteSongs": "Favorite Songs", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering।", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}।", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed।", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added।", + "NoItemsMatchingFound": "No items matching your search criteria were found।", + "TwoSearchCharsRequired": "Please enter at least two search characters।", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input।", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server।", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}।", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options।", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options।", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options।", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options।", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}।", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well।", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well।", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again।", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again।", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback।", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available।", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device।", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit।", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins।", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options।", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types।", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app।", + "ImageSizeHelp": "Set your preferred size of image grids।", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup।", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server।", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account।", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again।", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit।", + "MakePrivateDescription": "Users can still be granted access individually।", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist।", + "ItemAlreadyInPlaylist": "This item is already in your playlist।", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable)।", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable)।", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server।", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen।", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top।", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required।", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue।", + "YourPinMustBe": "Your PIN must be {0} digits।", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app।", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data।", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users।", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again।", + "ProfilePinIsOn": "Profile PIN is currently on।", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS।", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens।", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens।", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting।", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app।", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme।", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device।", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital।", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server।", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time।", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices।", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up button behavior", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation।", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus।", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features।", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item।", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device।", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens।", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption।", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen।", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available)।", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/hr.json b/modules/common/strings/hr.json new file mode 100644 index 0000000..d5a9785 --- /dev/null +++ b/modules/common/strings/hr.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our {0}terms of use{1}. The use of any Emby software constitutes acceptance of these terms.", + "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server.", + "HeaderSignInWithConnect": "Sign in with Emby Connect", + "HeaderWelcomeToEmby": "Dobrodošli u Emby", + "HeaderNewUsers": "New Users", + "HeaderPleaseSignIn": "Prijava za Emby", + "MessageInvalidUser": "Neispravno korisničko ime ili lozinka.", + "MessageUnlockAppWithPurchaseOrSupporter": "Otključaj ovu mogućnost s malom jednokratnom kupnjom ili s aktivnom pretplatom Emby Premijere.", + "MessageUnlockAppWithSupporter": "Otključaj ovu mogućnost sa pretplatom Emby Premijere.", + "MessageToValidateSupporter": "Ako imate aktivnu pretplatu Emby Premijere provjerite dali ste postavili Emby Premijeru u svojoj nadzornoj ploči Emby Server-a kojoj možete pristupiti klikom Emby Premijera u glavnom izborniku.", + "ValueSpecialEpisodeName": "Specijal - {0}", + "HeaderSignIn": "Prijavi se", + "Share": "Dijeli", + "Shared": "Shared", + "Info": "Info", + "Add": "Dodaj", + "Speed": "Speed", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapters", + "Password": "Password", + "SavePassword": "Save Password", + "LabelPassword": "Lozika:", + "HeaderResetPassword": "Reset Password", + "Series": "Series", + "Preview": "Preview", + "Submit": "Submit", + "Never": "Never", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Top Results", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Always on", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Upload only on Wifi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Potvrda nove lozinke:", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Korisničko ime:", + "HeaderAddServer": "Add Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Close", + "HeaderSeeAll": "See All", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "E-mail:", + "LabelHost": "Host", + "LabelHostHelp": "Example: 192.168.1.100 or https://myserver.com", + "LabelPort": "Port", + "Disabled": "Disabled", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Are you still watching?", + "LabelCurrentPassword": "Current password", + "LabelNewPassword": "New password", + "LabelNewPasswordConfirm": "New password confirm", + "HeaderRemovePassword": "Remove Password", + "ServerUpdateNeeded": "Emby Server treba ažurirati. Da biste preuzeli najnoviju verziju, posjetite {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Connect to Server", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Zaboravili ste lozinku", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "Novo", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premijera", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Uživo", + "Reset": "Reset", + "Repeat": "Ponovi", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} pjesme", + "ItemCount": "{0} stavaka", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Najnovija glazba", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Zadnje izvođeno", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Frequently Played", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "OriginalAirDateValue": "Originalni datum prikazivanja: {0}", + "EndsAtValue": "Završava u {0}", + "Date": "Date", + "AirDate": "Air Date", + "Played": "Played", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Last Episode Date Added", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio codec", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Roditeljska ocjena:", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Because you watched {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Invitations", + "ActorAsRole": "as {0}", + "ButtonOk": "U redu", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "User", + "Access": "Access", + "Users": "Users", + "Library": "Library", + "Devices": "Devices", + "Cancel": "Cancel", + "Restart": "Restart", + "Shutdown": "Shutdown", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Systems", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Shvaćam", + "RememberMe": "Remember me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Manage Emby Server", + "ShutdownServer": "Shutdown Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Snimka je otkazana.", + "SeriesCancelled": "Serija je otkazana.", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Snimka je zakazana.", + "SeriesRecordingScheduled": "Snimanje serije je zakazano.", + "HeaderNewRecording": "Nova snimka", + "HeaderWakeServer": "Wake Server", + "AttemptingWakeServer": "Attempting to wake server. Please wait...", + "WakeServerSuccess": "Success!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine.", + "Days": "Dani", + "Network": "Network", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Kino način", + "Conversions": "Conversions", + "Downloads": "Downloads", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Izvanmrežni mediji", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Preuzimanje medija na svojim uređajima za jednostavnu upotrebu izvan mreže.", + "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.", + "CinemaModeFeatureDescription": "Kino način vam daje pravi doživljaj kina s kratkim filmovima i prilagođenim isječcima prije odabrane značajke.", + "HeaderFreeApps": "Besplatne Emby aplikacije", + "FreeAppsFeatureDescription": "Uživajte u slobodnom pristupu Emby aplikacija za svoje uređaje.", + "HeaderBecomeProjectSupporter": "Nabavite Emby Premijeru", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "Ova značajka zahtijeva aktivnu pretplatu Emby Premijere.", + "HeaderConvertYourRecordings": "Konvertiraj snimke", + "Record": "Snimi", + "Save": "Snimi", + "Edit": "Izmjeni", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Preuzimanje", + "Downloaded": "Downloaded", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloading", + "Advanced": "Napredno", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Izbriši", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Izbriši stavku", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Brisanjem ove stavke će je izbrisati iz oba datotečnog sustava i medijskoj biblioteci. Jeste li sigurni da želite nastaviti?", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Osviježi", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Dodaj u kolekciju", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Pomoć", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Display language", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", + "NewCollectionHelp": "Kolekcije vam omogućiti da napravite personalizirane grupe filmova i ostale biblioteke.", + "SearchForCollectionInternetMetadata": "Potraži 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.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "RunAtStartup": "Run at startup", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Ime:", + "NewCollectionNameExample": "Naprimjer: Star Wars Kolekcija", + "MessageItemsAdded": "Stavke su dodane", + "OptionNew": "Novo...", + "LabelPlaylist": "Popis:", + "AddToPlaylist": "Dodaj u popis", + "HeaderAddToPlaylist": "Dodaj u popis", + "Subtitles": "Titlovi", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Traži titlove prijevoda", + "LabelLanguage": "Jezik:", + "Search": "Traži", + "NoSubtitleSearchResultsFound": "Nije ništa pronađeno.", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "Datoteka", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Da li ste sigurni da želite izbrisati ove titlove prijevoda?", + "ConfirmDeletion": "Potvrdite brisanje", + "MySubtitles": "Moji titlovi", + "MessageDownloadQueued": "Preuzimanje na čekanju", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Otključaj vodič", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Zamijeni postojeće slike", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "Zamijeni sve mate-podatke", + "SearchForMissingMetadata": "Potraga za meta-podacima koji nedostaju", + "LabelRefreshMode": "Način osvježavanja:", + "NoItemsFound": "Nije ništa pronađeno.", + "HeaderSaySomethingLike": "Reci nešto poput...", + "ButtonTryAgain": "Pokušajte ponovo", + "HeaderYouSaid": "Rekao si...", + "MessageWeDidntRecognizeCommand": "Nažalost, nismo prepoznali tu naredbu.", + "MessageIfYouBlockedVoice": "Ako ste zabranili glasovni pristup aplikaciji morate ponovo podesiti prije ponovnog pokušaja.", + "ValueDiscNumber": "Disk {0}", + "Unrated": "Neocijenjeno", + "Favorite": "Omiljeni", + "Like": "Sviđa mi se", + "Dislike": "Ne sviđa mi se", + "RefreshDialogHelp": "Meta-podaci se osvježavaju na temelju postavki i internet usluga koje su omogućene u nadzornoj ploči Emby Server-a.", + "Open": "Otvori", + "Play": "Pokreni", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Miješaj", + "Identify": "Identificiraj", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Convert", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Red", + "QueueAllFromHere": "Stavi u red čekanja sve odavde", + "PlayAllFromHere": "Pokreni sve odavde", + "PlayFromBeginning": "Igraj od početka", + "FromBeginning": "From Beginning", + "ResumeAt": "Nastavi od {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sort", + "Trailer": "Kratki video", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Molimo odaberite najmanje dvije stavke.", + "HeaderConfirmRecordingCancellation": "Potvrdi otkazivanje snimanja", + "MessageConfirmRecordingCancellation": "Jeste li sigurni da želite poništiti ovu snimku?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Greška", + "VoiceInput": "Ulazni glas", + "LabelContentType": "Tip sadržaja:", + "LabelPath": "Putanja:", + "Playlists": "Playlists", + "LabelTitle": "Naslov:", + "LabelOriginalTitle": "Originalni naslov:", + "LabelSortTitle": "Naziv vrste:", + "LabelDateAdded": "Datumu dodavanja", + "DateAdded": "Date Added", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Podesite kako se datum dodavanja određuje na nadzornoj ploči Emby Server-a u postavkama biblioteke", + "LabelStatus": "Status:", + "LabelArtistsHelp": "Odvoji višestruko koristeći ;", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Izvođači albuma", + "LabelAlbum": "Album:", + "Artist": "Artist", + "Artists": "Artists", + "ImdbRating": "IMDb Rating", + "CommunityRating": "Community Rating", + "LabelCommunityRating": "Ocjene zajednice:", + "LabelCriticRating": "Ocjene kritike:", + "CriticRating": "Critic Rating", + "LabelWebsite": "Web stranica:", + "Tagline": "Tagline", + "LabelOverview": "Pregled:", + "LabelShortOverview": "Kratki pregled:", + "LabelReleaseDate": "Datum izdavanja:", + "LabelPlaceOfBirth": "Datum rođenja:", + "Aired": "Aired", + "LabelAirDays": "Dani emitiranja:", + "LabelAirTime": "Vrijeme emitiranja:", + "LabelRuntimeMinutes": "Vrijeme izvođenja (minuta):", + "LabelCustomRating": "Prilagođena ocjena:", + "LabelOriginalAspectRatio": "Originalni omjer gledanja:", + "Label3DFormat": "3D format:", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Posebni podaci o epizodi", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Emitiranje nakon sezona:", + "LabelAirsBeforeEpisode": "Emitiranje prije epizoda:", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Postavke prikaza", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Poredak prikaza:", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Zemlje", + "Genres": "Žanrovi", + "Studios": "Studija", + "Tags": "Oznake", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Postavke meta-podataka", + "People": "Ljudi", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Željeni jezik za preuzimanje:", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Zaključajte ovu stavku kako bi se spriječile buduće promjene", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Ostavite prazno da naslijedi postavke od roditelja stavke ili globalnu zadanu vrijednost.", + "LabelCountry": "Zemlja:", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id:", + "LabelBirthYear": "Godina rođenja:", + "LabelBirthDate": "Datum rođenja:", + "LabelDeathDate": "Datum smrti:", + "LabelEndDate": "Datum završetka:", + "LabelSeasonNumber": "Broj sezone:", + "LabelEpisodeNumber": "Broj epizode:", + "LabelTrackNumber": "Broj pjesme:", + "LabelNumber": "Broj:", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Ime vrste", + "OriginalTitle": "Original Title", + "ReleaseDate": "Datum izdavanja", + "Continuing": "Nastavlja se", + "Ended": "Završeno", + "HeaderEnabledFields": "Omogući polja", + "HeaderEnabledFieldsHelp": "Poništi polje za zaključavanje i spriječi njihove podatke od toga da budu promijenjeni.", + "Backdrops": "Pozadine", + "Images": "Slike", + "Runtime": "Trajanje", + "ProductionLocations": "Lokacije proizvodnje", + "BirthLocation": "Lokacije rođenja", + "ParentalRating": "Parental Rating", + "PlayCount": "Play count", + "Name": "Naziv", + "Overview": "Pregled", + "LabelType": "Tip:", + "LabelPersonRole": "Uloga:", + "LabelPersonRoleHelp": "Primjer: vozač kamiona sa sladoledom", + "Actor": "Glumac", + "Composers": "Composers", + "Composer": "Kompozitor", + "Director": "Režiser", + "GuestStar": "Zvijezda gost", + "Producer": "Producent", + "Writer": "Pisac", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Instaliranje {0}", + "PackageInstallCompleted": "{0} instaliranje završeno.", + "PackageInstallFailed": "{0} instaliranje neuspjelo.", + "PackageInstallCancelled": "{0} instaliranje otkazano.", + "SeriesYearToPresent": "{0} - sada", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 epizoda", + "ValueEpisodeCount": "{0} epizoda", + "Albums": "Albums", + "Song": "Song", + "Songs": "Songs", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Unesite jednu ili više kriterija pretraživanja. Uklonite kriterije za povećanje rezultata pretraživanja.", + "PleaseEnterNameOrId": "Unesite naziv ili vanjski Id.", + "MessageItemSaved": "Stavka je snimljena.", + "SearchResults": "Rezultati pretraživanja", + "ServerNameIsRestarting": "Emby Server - {0} se ponovo pokreće.", + "ServerNameIsShuttingDown": "Emby Server - {0} se gasi.", + "HeaderDeleteItems": "Brisanje stavki", + "ConfirmDeleteItems": "Brisanjem ove stavke će se izbrisati iz oba datotečnog sustava i medijskoj biblioteci. Jeste li sigurni da želite nastaviti?", + "PleaseRestartServerName": "Ponovno pokrenite Emby Server - {0}.", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Downloading...", + "LearnMore": "Nauči još", + "LabelBitrateMbps": "Brzina prijenosa (Mbps):", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Ograničenje stavke:", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Isječci slika", + "MoveRight": "Pomakni udesno", + "MoveLeft": "Pomakni ulijevo", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Izbriši sliku?", + "HeaderEditImages": "Uređivanje slika", + "Settings": "Postavke", + "ShowIndicatorsFor": "Prikaži pokazatelja za:", + "Episodes": "Episodes", + "Programs": "Programs", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby DVR zahtijeva aktivnu pretplatu Emby Premijere.", + "HeaderCancelRecording": "Prekini snimanje", + "HeaderKeepRecording": "Zadrži snimanje", + "HeaderCancelSeries": "Otkaži serije", + "HeaderKeepSeries": "Zadrži serije", + "HeaderLearnMore": "Nauči još", + "SeriesSettings": "Postavke serija", + "HeaderRecordingOptions": "Opcije snimanja", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Opcije serija", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Kanali {0} samo", + "Anytime": "Bilo kada", + "AnyLanguage": "Any language", + "AroundTime": "Oko {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "Svi kanali", + "NewEpisodesOnly": "Samo nove epizode", + "AllEpisodes": "Sve epizode", + "LabelStartWhenPossible": "Počni kada je moguće:", + "LabelStopWhenPossible": "Zaustavi kada je moguće:", + "MinutesBefore": "Minuta prije", + "MinutesAfter": "Minuta nakon", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Epizode će se usporediti pomoću sezone i broja epizode, kada su dostupni.", + "LabelKeepUpTo": "Drži se na:", + "AsManyAsPossible": "Što više je moguće", + "DefaultErrorMessage": "Došlo je do pogreške prilikom obrade zahtjeva. Molimo pokušajte ponovo kasnije.", + "UntilIDelete": "Dok ne izbrišem", + "UntilSpaceNeeded": "Dok ne treba prostora", + "Categories": "Kategorije", + "Sports": "Sportovi", + "News": "Vijesti", + "Movies": "Filmovi", + "Music": "Music", + "Kids": "Djeca", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Omogući kodirane boje pozadine", + "SortChannelsBy": "Složi kanale po:", + "ChannelNumber": "Broj kanala", + "HeaderBenefitsEmbyPremiere": "Prednosti Emby premijere", + "ThankYouForTryingEnjoyOneMinute": "Molimo Vas da uživate u jednoj minuti reprodukcije. Hvala što ste isprobali Emby.", + "HeaderTryPlayback": "Isprobajte reprodukciju", + "HowDidYouPay": "Kako ste platili?", + "IHaveEmbyPremiere": "Imam Emby Premijeru", + "IPurchasedThisApp": "Kupio sam ovu aplikaciju", + "ButtonRestorePreviousPurchase": "Vrati kupovinu", + "ButtonUnlockWithPurchase": "Otključaj s kupovinom", + "ButtonUnlockPrice": "Otključaj {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Reproduciraj jednu minutu", + "PlaceFavoriteChannelsAtBeginning": "Postavi omiljene kanale na početak", + "HeaderUnlockFeature": "Otključaj značajke", + "MessageDidYouKnowCinemaMode": "Jeste li znali da s Emby Premijerom možete poboljšati svoje iskustvo sa značajkama kao što su način kina?", + "HeaderPlayMyMedia": "Reproduciraj moje medije", + "HeaderDiscoverEmbyPremiere": "Otkrijte Emby Premijeru", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Added {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Continue", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Quality", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "My Media", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "Latest {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continue Watching", + "HeaderContinueListening": "Continue Listening", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Latest Recordings", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Settings saved.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Favorites", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Favorite Collections", + "HeaderFavoritePlaylists": "Favorite Playlists", + "Collection": "Collection", + "Collections": "Collections", + "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.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Schedule", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "No subtitles", + "Default": "Default", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Subtitle Settings", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelTextSize": "Text size", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "Hide": "Hide", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Audio Settings", + "LabelAudioLanguagePreference": "Preferred audio language", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Video Quality", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Latest Media", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "Genre": "Genre", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directors: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Theme songs", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Favorite Movies", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Favorite Shows", + "HeaderFavoriteEpisodes": "Favorite Episodes", + "HeaderFavoriteVideos": "Favorite Videos", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Favorite Games", + "HeaderFavoriteArtists": "Favorite Artists", + "HeaderFavoriteAlbums": "Favorite Albums", + "HeaderFavoriteSongs": "Favorite Songs", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/hu.json b/modules/common/strings/hu.json new file mode 100644 index 0000000..78160a2 --- /dev/null +++ b/modules/common/strings/hu.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "A meglévő videó előnézeti bélyegképek cseréje", + "ReplaceExistingThumbnailImagesHelp": "Minden meglévő videó előnézeti bélyegkép törlésre kerül, és újak lesznek generálva, ha ez engedélyezve van a könyvtár beállításaiban.", + "DateCreated": "Létrehozás dátuma", + "CreatedOnValue": "Létrehozva {0}", + "UpdatedOnValue": "Frissítve {0}", + "EmbyLoginTerms": "Az Emby segít menedzselni a személyes médiakönyvtáradat, mint a saját videókat és képeket. Kérjük, nézd meg a {0}szolgáltatási feltételeket{1}. Az Emby használatával elfogadod ezeket a feltételeket.", + "MessageUnableToConnectToServer": "Jelenleg nem lehet kapcsolódni a kiválasztott szerverhez. Kérjük, ellenőrizd, hogy a szerver fut-e, majd próbáld újra.", + "EmbyIntroMessage": "Az Emby-vel könnyedén közvetíthetsz videókat, zenéket és képeket okostelefonra, táblagépekre és más eszközökre a Emby Server-edről.", + "HeaderSignInWithConnect": "Belépés Emby Connect segítségével", + "HeaderWelcomeToEmby": "Üdv az Emby-ben", + "HeaderNewUsers": "Új Felhasználók", + "HeaderPleaseSignIn": "Kérlek, jelentkezz be", + "MessageInvalidUser": "Érvénytelen felhasználónév és jelszó. Kérlek, próbáld újra.", + "MessageUnlockAppWithPurchaseOrSupporter": "Engedélyezd ezt a funkciót egy egyszeri fizetéssel, vagy aktív Emby Premiere előfizetéssel.", + "MessageUnlockAppWithSupporter": "Engedélyezd ezt a funkciót aktív Emby Premiere előfizetéssel.", + "MessageToValidateSupporter": "Ha már rendelkezel aktív Emby Premiere előfizetéssel, ellenőrizd, hogy beállítottad-e az Emby Premiere-t az Emby Server vezérlőpultján, amit a főmenü Emby Premiere menüpontjában érhetsz el.", + "ValueSpecialEpisodeName": "Különleges - {0}", + "HeaderSignIn": "Bejelentkezés", + "Share": "Megosztás", + "Shared": "Megosztva", + "Info": "Információ", + "Add": "Hozzáad", + "Speed": "Sebesség", + "PlaybackSpeed": "Lejátszási sebesség", + "Chapters": "Jelenetek", + "Password": "Jelszó", + "SavePassword": "Jelszó mentése", + "LabelPassword": "Jelszó", + "HeaderResetPassword": "Jelszó visszaállítás", + "Series": "Sorozatok", + "Preview": "Előnézet", + "Submit": "Elküld", + "Never": "Soha", + "Table": "Asztal", + "HeaderScheduledTasks": "Ütemezett feladatok", + "Plays": "Lejátszás", + "LastUsedAddressValue": "Utoljára használt {0}", + "LabelKeywordType": "Kulcsszó típusa", + "HeaderSelectColumns": "Válassza az Oszlopok lehetőséget", + "HeaderTopResults": "Legjobb eredmények", + "HeaderPinSidebar": "Oldalsáv rögzítése", + "Collapse": "Összeomlás", + "LabelBackgroundVideoPlayback": "Videó lejátszása a háttérben", + "BackgroundVideoPlaybackHelp": "A háttérlejátszás lehetővé teszi a videó lejátszását kikapcsolt képernyő esetén is.", + "AlwaysOn": "Mindig bekapcsolva", + "HeadphonesOrExternalSpeakersConnected": "Fejhallgató vagy külső hangszórók csatlakoztatva", + "HeaderKeyboardAndRemote": "Billentyűzet és távirányító", + "NoSelectedItemsSupportOperation": "Nincs olyan kiválasztott elem amely támogatja ezt a műveletet.", + "NoOperationsForSelectedItems": "A kiválasztott elemekhez nem áll rendelkezésre művelet.", + "UploadOnlyOnWifi": "Feltöltés csak WiFi-n keresztül", + "HeaderFoldersToUpload": "Feltöltési mappák", + "LabelPasswordConfirm": "Jelszó (megerősítés)", + "HeaderMoveUpInOrder": "Mozogjon felfelé sorrendben", + "HeaderDownUpInOrder": "Mozogjon lefelé sorrendben", + "LabelUsername": "Felhasználónév", + "HeaderAddServer": "Szerver Hozzáadása", + "HeaderSubtitleOffset": "Felirat csúsztatás", + "Watching": "Nézés", + "HeaderRemoveFromContinueWatching": "Eltávolítás a Tovább nézem közül", + "RemoveThisTitleFromContinueWatching": "Eltávolítod ezt a címet a Tovább nézendők közül?", + "HeaderRemoveFromContinueListening": "Eltávolítás a lejátszás folytatásából", + "RemoveThisTitleFromContinueListening": "Eltávolítja ezt a címet a lejátszás folytatásából?", + "HeaderIncreaseSubtitleOffset": "Felirat késleltetésének növelése", + "HeaderDecreaseSubtitleOffset": "Felirat késleltetésének csökkentése", + "Close": "Bezár", + "HeaderSeeAll": "Mindet", + "HeaderOpenInNewWindow": "Megnyítás új ablakban", + "LabelEmail": "Email", + "LabelHost": "Hoszt", + "LabelHostHelp": "Például: 192.168.1.100 vagy https://myserver.com", + "LabelPort": "Port", + "Disabled": "Letiltva", + "Uninstall": "Eltávolítás", + "Enable": "Engedélyezés", + "AllTuners": "Összes tuner", + "Disable": "Letiltás", + "NextValue": "Következő {0}", + "HeaderNextItem": "Következő elem", + "HeaderPreviousItem": "Előző elem", + "NoTrailersMessage": "Nem található előzetes. Előzetesek hozzáadásához kérlek, telepítsd az Előzetesek bővítményt a(z) {0}Emby bővítménykatalógusból{1}.", + "UninstallPluginConfirmation": "Biztosan eltávolítod ezt a bővítményt?", + "HeaderUninstallPlugin": "Bővítmény Eltávolítása", + "AreYouStillWatching": "Még mindig nézed?", + "LabelCurrentPassword": "Jelenlegi jelszó", + "LabelNewPassword": "Új jelszó", + "LabelNewPasswordConfirm": "Új jelszó megerősítése", + "HeaderRemovePassword": "Jelszó eltávolítása", + "ServerUpdateNeeded": "Ezt az Emby Server-t frissíteni kell. A legújabb verzió letöltéséhez kérjük, látogass el ide {0}", + "MessageThankYouForConnectSignUp": "Köszönjük, hogy regisztráltál az Emby Connect-tel. Küldtük egy emailt a megadott címedre az aktiváláshoz szükséges információkkal. Kérjük, igazold vissza az emailt, majd itt folytathatod a belépést.", + "MessageThankYouForConnectSignUpNoValidation": "Köszönjük a regisztrációt az Emby Connect-re! Most újra be kell jelentkezned a megadott adatokkal.", + "ErrorMessagePasswordNotMatchConfirm": "A jelszónak és a jelszó megerősítésének egyeznie kell.", + "ErrorMessageUsernameInUse": "Ez a felhasználónév már foglalt. Kérlek, válassz egy újat, és próbáld újra.", + "ErrorMessageEmailInUse": "Ez az email cím már használatban van. Kérlek, próbálj meg egy új címmel regisztrálni, vagy kérj jelszóemlékeztetőt.", + "HeaderUpcomingOnTV": "Hamarosan az élő TV-ben", + "HeaderOtherShowings": "További Bemutatók", + "Showings": "Bemutatók", + "HeaderConnectToServer": "Kapcsolódás a szerverhez", + "ConnectToServerManually": "Kapcsolódás a szerverhez manuálisan", + "LabelEnterConnectUserNameHelp": "Ez az az email cím, amelyet az Emby Connect fiók beállításához használt, vagy az Emby Connect fiókja.", + "HeaderSignInError": "Bejelentkezési hiba", + "HeaderManualLogin": "Manuális belépés", + "PasswordResetConfirmation": "Biztosan visszaállítod a jelszavadat?", + "ContactAdminToResetPassword": "Kérlek, lépj kapcsolatba az adminisztrátorral a jelszó visszaállításához.", + "ForgotPasswordInNetworkRequired": "Kérjük, próbáld újra a helyi hálózatodról, hogy elindítsd a jelszó visszaállítási folyamatot.", + "ForgotPasswordFileCreated": "Ez a fájl létrehozásra került és tartalmazza a továbblépéshez szükséges instrukciókat:", + "ForgotPasswordFileExpiration": "A visszaállító PIN ekkor lejár {0}.", + "InvalidForgotPasswordPin": "Hibás, vagy lejárt PIN-t adtál meg. Kérlek, próbáld újra.", + "PasswordResetForUsers": "Ezeknek a felhasználóknak töröltük a jelszavukat. A belépés üresen hagyott jelszóval lehetséges.", + "HeaderForgotPassword": "Elfelejtette jelszavát?", + "ForgotPasswordUsernameHelp": "Hagyja üresen, ha nem emlékszik a felhasználónevére.", + "HeaderPasswordReset": "Jelszó visszaállítás", + "AttributeNew": "Új", + "Done": "Kész", + "HeaderResetToDefault": "Visszaállítás alapértelmezettre", + "Deinterlacing": "Váltott-sorosság mentesítés", + "HeaderBurningInSubtitles": "Feliratokba égetés", + "Premiere": "Bemutató", + "LabelPinCode": "PIN kód", + "LabelLocalNetworkPinCode": "Helyi hálózat PIN kódja", + "LabelLocalNetworkPasswordMode": "Helyi hálózat bejelentkezési módja", + "RequirePasswordInLocalNetwork": "Jelszó használata a helyi hálózaton", + "NoPasswordInLocalNetwork": "Jelszó használatának mellőzése helyi hálózaton", + "PinCodeInLocalNetwork": "PIN kód használata a helyi hálózaton", + "LocalNetworkPasswordModeHelp": "Válaszd ki a helyi hálózaton található többi eszköz bejelentkezési módját az Emby Server-en.", + "HeaderLocalNetworkAccess": "Helyi hálózati cím", + "Live": "Élő", + "Reset": "Visszaállítás", + "Repeat": "Ismétlés", + "Track": "Szám", + "Tracks": "Számok", + "HeaderCameraUpload": "Kamera feltöltés", + "TrackCount": "{0} szám", + "ItemCount": "{0} elem", + "NumberChannelsValue": "{0} Csatornák", + "HeaderLatestMusic": "Legújabb zene", + "HeaderLatestAudioBooks": "Legújabb hangoskönyvek", + "HeaderLatestDownloadedVideos": "Legújabb letöltött videók", + "HeaderRecentlyPlayed": "Nemrég játszott", + "Recent": "Legutóbbi", + "HeaderFrequentlyPlayed": "Gyakran játszott", + "HeaderMoreLikeThis": "Több ehhez hasonló", + "HeaderMoreLikeThisOnLiveTV": "Több ehhez hasonló az élő TV-ben", + "OriginalAirDateValue": "Eredeti vetítés dátuma: {0}", + "EndsAtValue": "Várható befejezés {0}", + "Date": "Dátum", + "AirDate": "Vetítés dátuma", + "Played": "Megnézett", + "Daily": "Napi", + "Weekly": "Heti", + "RequireHashMatch": "Hash egyezés megkövetelése", + "RequireHashMatchHelp": "A hash egyezés követelésével csak azok a feliratok töltődnek le, amelyek pontosan ahhoz a videófájlhoz tartoznak, amivel te rendelkezel. Ha üresen hagyod, azzal több feliratot találsz, de olyanok is lesznek a listán, amelyeknek rossz lehet az időzítése vagy a szövege.", + "SearchForForcedSubtitlesOnly": "Csak kényszerített feliratok", + "SearchForForcedSubtitlesOnlyHelp": "A kényszerített feliratok megkövetelése korlátozza az eredmények számát olyan feliratokra, amelyek az idegen nyelvűként megjelölt sorokhoz tartalmaznak szöveget.", + "LastEpisodeDateAdded": "Legutóbbi epizód hozzáadási dátuma", + "LastEpisodeDateAired": "Utolsó epizód megjelenési dátum", + "LabelPlaystate": "Lejátszás állapota", + "Studio": "Stúdió", + "Tag": "Címke", + "EpisodeTitle": "Epizód címe", + "Audio": "Hang", + "Video": "Videó", + "Subtitle": "Felirat", + "Image": "Kép", + "CopyStream": "Eredeti adatfolyam másolása", + "LabelAudioLayout": "Hang formátum", + "LabelAudioCodec": "Hang kodek", + "LabelAudioLanguage": "Hang nyelve", + "LabelSubtitleLanguage": "Felirat nyelve", + "LabelVideoCodec": "Videó kodek", + "LabelSubtitleCodec": "Felirat kodek", + "LabelParentalRating": "Korhatár besorolás", + "BecauseYouLikeValue": "Mert tetszett a(z) {0}", + "BecauseYouWatchedValue": "Mert tetszett a(z) {0}", + "DirectedByValue": "Rendezte {0}", + "StarringValue": "Főszerepben {0}", + "Invitations": "Meghívások", + "ActorAsRole": "mint {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Filmek csoportosítása gyűjteményekbe", + "GroupItemsIntoCollectionsHelp": "Elemek csoportosítása aszerint, hogy milyen gyűjteményekhez kerültek hozzáadásra. További szűrők vagy rendezések alkalmazása automatikusan kikapcsolhatja ezt a funkciót.", + "GroupItemsIntoTags": "Az elemek címkék alapján történő csoportosítása", + "GroupItemsIntoTagsHelp": "Az elemek csoportosítása az azokhoz hozzárendelt címkék alapján. Bizonyos szűrők vagy rendezési sorrend engedélyezése ezen funkciót automatikusan letilthatja.", + "User": "Felhasználó", + "Access": "Hozzáférés", + "Users": "Felhasználók", + "Library": "Könyvtár", + "Devices": "Eszközök", + "Cancel": "Mégsem", + "Restart": "Újraindítás", + "Shutdown": "Leállítás", + "Logs": "Naplók", + "Visibility": "Láthatóság", + "Notifications": "Értesítések", + "SendTestNotification": "Tesztértesítés küldése", + "NotificationSent": "Értesítés elküldve", + "DeleteNotificationConfirmation": "Biztosan törli ezt az értesítést?", + "DeleteNotification": "Értesítés törlése", + "AddNotification": "Értesítés hozzáadása", + "EditNotification": "Értesítés szerkesztése", + "LimitUserEventsTo": "Korlátozza a felhasználói eseményeket", + "LimitLibraryEventsTo": "Korlátozza a könyvtár eseményeket", + "LimitDeviceEventsTo": "Korlátozza az eszközök eseményeit", + "ForAdditionalNotificationOptions": "További értesítési szolgáltatásokat a kiszolgáló rendszergazdája telepíthet az Emby {0}plugin katalógusban{1}.", + "Plugins": "Bővítmények", + "Systems": "Rendszerek", + "Server": "Szerver", + "Dashboard": "Vezérlőpult", + "PlayOnAnotherDevice": "Lejátszás másik eszközön", + "HeaderConnectionHelp": "Kapcsolat segítség", + "AccessRestrictedTryAgainLater": "A hozzáférés jelenleg korlátozott. Próbáld újra később.", + "ButtonGotIt": "Értettem", + "RememberMe": "Emlékezz rám", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Emby Server kezelése", + "ShutdownServer": "Emby Server leállítása", + "RestartServer": "Emby Server újraindítása", + "RecordingCancelled": "Felvétel megszakítva", + "SeriesCancelled": "Sorozat megszakítva", + "Recording": "Felvétel", + "SeriesRecording": "Sorozat felvétel", + "RecordingScheduled": "A felvétel ütemezve", + "SeriesRecordingScheduled": "A sorozat felvétele ütemezve", + "HeaderNewRecording": "Új felvétel", + "HeaderWakeServer": "Kiszolgáló felébresztés", + "AttemptingWakeServer": "A kiszolgáló felébresztése folyamatban. Kérlek várj...", + "WakeServerSuccess": "Siker!", + "HeaderCustomizeHomeScreen": "Kezdőképernyő testreszabása", + "WakeServerError": "A Wake On LAN csomagot elküldtük a szervergépedre, de nem tudtunk kapcsolódni az Emby Server-hez. Lehet, hogy az eszköznek több időre van szüksége a bekapcsolásra, vagy az Emby Server nincs aktiválva a gépen.", + "Days": "Nap", + "Network": "Hálózat", + "Networks": "Csatornák", + "SortByValue": "Rendezve: {0}", + "HeaderSortBy": "Megjelenítés", + "HeaderPhotoAlbums": "Fénykép albumok", + "Photos": "Fényképek", + "HeaderAppearsOn": "Látható ezekben", + "List": "Lista", + "HeaderRecordSeries": "Sorozat felvétele", + "HeaderCinemaMode": "Mozi előzetesek", + "Conversions": "Átalakítások", + "Downloads": "Letöltések", + "HeaderManageDownloads": "Letöltések kezelése", + "InternalStorage": "Belső tárhely", + "ExternalStorage": "Külső tárhely", + "UploadToFollowingServers": "Feltöltés szerverekre", + "UploadingNumItems": "{0} / {1} fájl feltöltése", + "DownloadNumItems": "Letöltés {0} a(z) {1}-ból/ből", + "HeaderSampleRate": "Mintavételi ráta", + "HeaderReferenceFrames": "Referencia képkocka", + "HeaderBitDepth": "Bitsűrűség", + "HeaderPixelFormat": "Pixelformátum", + "Profile": "Profil", + "Bitrate": "Bitráta", + "Expand": "Kiterjesztés", + "Container": "Tároló", + "Format": "Formátum", + "Path": "Útvonal", + "Size": "Méret", + "Resolution": "Felbontás", + "HeaderCodecTag": "Kodek címke", + "Framerate": "Képkocka sebesség", + "Interlaced": "Váltottsoros", + "Anamorphic": "Anamorfikus", + "Level": "Szint", + "Timestamp": "Időbélyeg", + "Language": "Nyelv", + "Codec": "Kodek", + "Stream": "Adatfolyam", + "HeaderExtradata": "Extra adat", + "HeaderHardwareAcceleratedTranscoding": "Hardveresen gyorsított átkódolás", + "HeaderHardwareAcceleratedTranscodingDescription": "Használja ki a szerver GPU-ját. Az Emby rendelkezik a legfejlettebb és leggyorsabb hardveres gyorsítással az iparágban.", + "HeaderOfflineDownloads": "Offline Média", + "AndMuchMoreExclamation": "És még sok más!", + "HeaderOfflineDownloadsDescription": "Média letöltése az eszközödre offline használathoz.", + "LiveTvFeatureDescription": "Közvetíts élő TV adásokat egy Emby alkalmazásba. Ehhez egy olyan Emby Server szükséges, ami rendelkezik kompatibilis TV tunerrel.", + "DvrFeatureDescription": "Időzíts élő TV felvételeket egyedileg, sorozatfelvételeket és még sok mást az Emby DVR-ral.", + "CinemaModeFeatureDescription": "A 'mozi előzetes' mód igazi mozi élményt nyújt előzetessel és egyedi intróval a film vetítése előtt.", + "HeaderFreeApps": "Ingyenes Emby alkalmazások", + "FreeAppsFeatureDescription": "Élvezz ingyenes hozzáférést az Emby alkalmazásokhoz.", + "HeaderBecomeProjectSupporter": "Emby Premiere beszerzése", + "HeaderViewServerInfo": "Szerver információ megtekintése", + "PlaybackTvModeRequiresEmbyPremiere": "A média lejátszásához TV módban aktív {0}Emby Premiere előfizetés szükséges{1}.", + "FeatureRequiresEmbyPremiere": "Ez a szolgáltatás aktív {0}Emby Premiere{1} előfizetést igényel.", + "HeaderConvertYourRecordings": "Felvételek konvertálása", + "Record": "Felvétel", + "Save": "Mentés", + "Edit": "Szerkesztés", + "HeaderSavePlaylist": "Lejátszási lista mentése", + "Latest": "Legújabb", + "Download": "Letöltés", + "Downloaded": "Letöltött", + "Converted": "Átalakított", + "RemoveFromHistory": "Eltávolítás az előzmények közül", + "ConfirmRemoveFromHistory": "Eltávolítja ezt az elemet az előzményekből?", + "Downloading": "Letöltés", + "Advanced": "Haladó", + "LinkedToEmbyConnect": "Kapcsolódva az Emby Connect-hez", + "Delete": "Törlés", + "Both": "Mindkét", + "LabelChannelDisplay": "Csatornák megtekintése", + "HeaderDeleteItem": "Elem törlése", + "HeaderDeleteUser": "Felhasználó törlése", + "DeleteItemConfirmation": "Biztos benne, hogy törölni kívánja a {0}-t ?", + "DeleteUserConfirmation": "Biztosan törlöd {0} felhasználót?", + "DeleteUsersConfirmation": "Biztosan törölni szeretnéd ezt a felhasználót {0}?", + "HeaderDeleteDevice": "Eszköz törlése", + "DeleteDeviceConfirmation": "Biztosan eltávolítod ezt az eszközt? Újra meg fog jelenni, amikor legközelebb egy felhasználó bejelentkezik róla.", + "ConfirmDeleteItem": "Az elem törlésével eltávolítod azt a könyvtáradból és a fájlrendszerből is.", + "FollowingFilesWillBeDeleted": "A következő fájlok és könyvtárak törlésre kerülnek:", + "AreYouSureToContinue": "Biztosan folytatni szeretnéd?", + "Refresh": "Frissítés", + "RefreshingMetadataDots": "Metaadatok frissítése...", + "ScanningLibraryFilesDots": "Könyvtárak beolvasása...", + "HeaderFavoritesThenByChannelNumber": "Kedvencek, aztán csatorna szám szerint", + "HeaderAddToCollection": "Hozzáadás gyűjteményhez", + "HeaderFavoritesThenByTitle": "Kedvencek, aztán cím alapján", + "HeaderFavoritesThenByDefault": "Kedvencek, aztán alapértelmezett csatorna sorrend szerint", + "HeaderDefaultChannelOrder": "Alapértelmezett Csatorna sorrend", + "HeaderAddToFavorites": "Hozzáadás a kedvencekhez", + "HeaderRemoveFromFavorites": "Eltávolítás a kedvencekből", + "Favorited": "Kedvenc", + "Unfavorited": "Nem kendvenc", + "HeaderNewCollection": "Új Gyűjtemény", + "HeaderNewPlaylist": "Új lejátszási lista", + "AllCollections": "Minden gyűjtemény", + "AllPlaylists": "Minden lejátszási lista", + "Create": "Létrehozás", + "HeaderAddedToPlaylist": "Hozzáadva a lejátszási listához", + "HeaderAddedToCollection": "Hozzáadva a Gyűjteményhez", + "OneItemAddedTo": "1 tétel hozzáadva a \"{0}\"-hoz.", + "ItemsAddedTo": "{0} tétel hozzáadva a \"{1}\"-hoz.", + "HeaderAddedToPlayQueue": "Hozzáadva a lejátszási listához", + "HeaderPlayingNext": "Következő lejátszása", + "Help": "Segítség", + "HeaderGetHelp": "Kérjen segítséget", + "LabelTVDisplayMode": "TV megjelenítési mód engedélyezése", + "Desktop": "Asztal", + "Mobile": "Mobil / táblagép", + "Navigation": "Navigáció", + "HeaderVideoPlayback": "Videó lejátszás", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Évadok", + "OneTrack": "1 szám", + "OneSeason": "1 évad", + "Libraries": "Könyvtárak", + "NumberSeasonsValue": "{0} évad", + "TVDisplayModeHelp": "Optimalizáld a felhasználói felületet ezen az eszközön TV-n való megjelenítéshez és távirányítós vezérléshez. Ez általában nem ajánlott, ha az elsődleges beviteli módszered egér- vagy érintésalapú.", + "LabelDisplayLanguage": "Megjelenítési nyelv", + "LabelDisplayLanguageHelp": "Az Emby fordítása egy folyamatban lévő project.", + "LearnHowYouCanContribute": "Így járulhatsz hozzá a fordításhoz.", + "NewCollectionHelp": "A gyűjtemények segítségével személyre szabott csoportosításokat hozhatsz létre a filmekből és más tartalmakból.", + "SearchForCollectionInternetMetadata": "Keress képeket és metaadatokat az interneten", + "DisplayMissingEpisodesWithinSeasons": "Hiányzó évad epizódok megjelenítése", + "DisplayMissingEpisodesWithinSeasonsHelp": "Ezt engedélyezni kell az Emby Server beállításban lévő TV könyvtárak esetében is.", + "EnableThemeSongs": "Főcímdalok engedélyezése", + "EnableBackdrops": "Háttérképek engedélyezése", + "EnableThemeSongsHelp": "Ha engedélyezve van, a főcímdalok a háttérben játszódnak le a könyvtár böngészése közben.", + "EnableBackdropsHelp": "Ha engedélyezve van, akkor a háttérképek a könyvtár böngészése során, egyes oldalak hátterében jelennek meg.", + "EnableThemeVideos": "Háttérvideók engedélyezése", + "EnableThemeVideosHelp": "Ha engedélyezve van, a videók a háttérben játszódnak le a könyvtár böngészése közben.", + "RunAtStartup": "Futtatás a rendszer indításakor", + "ServerStartup": "Kiszolgáló indítása", + "EmbyServerOnXHasStarted": "Emby Server a következő helyen indult el {0}.", + "LabelScreensaver": "Képernyővédő", + "LabelSoundEffects": "Hangeffektek", + "LabelName": "Név", + "NewCollectionNameExample": "Például: Star Wars Gyűjtemény", + "MessageItemsAdded": "Elemek hozzáadva.", + "OptionNew": "Új...", + "LabelPlaylist": "Lejátszási lista", + "AddToPlaylist": "Lejátszási listához adni", + "HeaderAddToPlaylist": "Lejátszási listához adni", + "Subtitles": "Feliratok", + "LabelTheme": "Téma", + "LabelSettingsTheme": "Beállítások témája", + "LabelThemeAccentColor": "Kiemelés színe", + "ThemeAccentColorDescription": "Szabályozza a fontos jelzők, ikonok és szövegek színét.", + "SearchForSubtitles": "Felirat keresése", + "LabelLanguage": "Nyelv", + "Search": "Keresés", + "NoSubtitleSearchResultsFound": "Nincs találat. Beállította a(z) {0}felirat letöltését a(z) {1}számára?", + "NoLyricsSearchResultsFound": "Nincs találat. Beállítottad a {0}dalszöveg letöltést{1}?", + "Lyrics": "Dalszöveg", + "SearchForLyrics": "Dalszöveg keresése", + "Finish": "Befejez", + "File": "Fájl", + "Exit": "Kilépés", + "Sleep": "Alvás", + "Setup": "Beállítások", + "MessageAreYouSureDeleteSubtitles": "Biztosan eltávolítod ezt a feliratot?", + "ConfirmDeletion": "Törlés megerősítése", + "MySubtitles": "Feliratok", + "MessageDownloadQueued": "Letöltés sorbaállítva.", + "HeaderEditSubtitles": "Feliratok szerkesztése", + "UnlockGuide": "Műsorújság feloldása", + "HeaderRefreshMetadata": "Metaadat frissítése", + "HeaderRefreshAllMetadata": "Minden metaadat frissítése", + "ReplaceExistingImages": "Cserélje ki a meglévő képeket", + "ReplaceExistingImagesHelp": "Az összes meglévő kép törlődik és újak kerülnek letöltésre. Egyes esetekben ez azt eredményezheti, hogy kevesebb kép áll rendelkezésre, mint korábban.", + "ReplaceAllMetadata": "Összes metaadat cseréje", + "SearchForMissingMetadata": "Keresés a hiányzó metaadatokra", + "LabelRefreshMode": "Frissítési mód", + "NoItemsFound": "Nincs találat.", + "HeaderSaySomethingLike": "Mondj valamit, mint...", + "ButtonTryAgain": "Újrapróbálkozás", + "HeaderYouSaid": "Azt mondtad...", + "MessageWeDidntRecognizeCommand": "Sajnáljuk, de nem ismertük fel ezt a parancsot.", + "MessageIfYouBlockedVoice": "Ha megtagadtad a hanghoz való hozzáférést, újra kell konfigurálnod az alkalmazást mielőtt újra megpróbálod.", + "ValueDiscNumber": "{0} lemez", + "Unrated": "Besorolatlan", + "Favorite": "Kedvenc", + "Like": "Tettszik", + "Dislike": "Nem tettszik", + "RefreshDialogHelp": "A metaadatok új adatokkal frissülnek az Emby könyvtár beállításaiban engedélyezett beállítások és metaadatszolgáltatók alapján.", + "Open": "Megnyitás", + "Play": "Lejátszás", + "Pause": "Szünet", + "HeaderPlayQueue": "Lejátszási sor", + "HeaderAddToPlayQueue": "Hozzáadás a lejátszási sorhoz", + "Shuffle": "Keverés", + "Identify": "Azonosítás", + "HeaderRemoveIdentification": "Azonosítás eltávolítása", + "ResetMetadataConfirmation": "Biztos, hogy vissza szeretné állítani az összes metaadatot?", + "HeaderEditMetadata": "Metaadat szerkesztése", + "Convert": "Átkonvertál", + "Resume": "Folytatás", + "HeaderInstantMix": "Azonnali mix", + "HeaderGoToItem": "Ugrás az elemhez", + "HeaderGoToSeason": "Ugrás az évadhoz", + "HeaderGoToSeries": "Ugrás a sorozathoz", + "HeaderGoToAlbum": "Ugrás az albumhoz", + "HeaderGoToArtist": "Ugrás az előadóhoz", + "HeaderPlayAll": "Összes lejátszása", + "PictureInPicture": "Kép a képben", + "Fullscreen": "Teljes képernyő", + "ExitFullscreen": "Kilépés a teljes képernyőből", + "Rewind": "Ugrás vissza", + "FastForward": "Ugrás előre", + "Remove": "Eltávolítás", + "Rename": "Átnevezés", + "Queue": "Sorba állítás", + "QueueAllFromHere": "Ősszes sorbaállítása innen", + "PlayAllFromHere": "Összes lejátszása innen", + "PlayFromBeginning": "Lejátszás az elejétől", + "FromBeginning": "Elejétől", + "ResumeAt": "Folytatás innen: {0}", + "HeaderRemoveFromPlaylist": "Törlés a lejátszási listáról", + "HeaderRemoveFromPlayQueue": "Eltávolítás a lejátszási sorból", + "HeaderRemoveFromCollection": "Törlés a Gyűjteményből", + "Sort": "Rendezés", + "Trailer": "Előzetes", + "SelectNone": "Válassza a Nincs lehetőséget", + "SelectAll": "Mindet kiválaszt", + "HeaderMarkPlayed": "Megnézettnek jelöl", + "HeaderMarkUnplayed": "Nem látottnak jelöl", + "HeaderGroupVersions": "Verziók csoportosítása", + "PleaseSelectTwoItems": "Kérjük, legalább két elemet válassz ki.", + "HeaderConfirmRecordingCancellation": "Felvétel megszakításának megerősítése", + "MessageConfirmRecordingCancellation": "Felvétel megszakítása?", + "Album": "Album", + "AlbumArtist": "Album előadója", + "Error": "Hiba", + "VoiceInput": "Hang bemenet", + "LabelContentType": "Tartalom típusa", + "LabelPath": "Útvonal", + "Playlists": "Lejátszási listák", + "LabelTitle": "Cím", + "LabelOriginalTitle": "Eredeti cím", + "LabelSortTitle": "Cím szerint", + "LabelDateAdded": "Hozzáadva", + "DateAdded": "Hozzáadás dátuma", + "DateModified": "Módosítás dátuma", + "DatePlayed": "Lejátszás dátuma", + "DateLastActive": "Legutóbbi aktivitás dátuma", + "ConfigureDateAdded": "Állítsd be, hogyan kerüljön megállapításra a hozzáadás dátuma az Emby Server vezérlőpultján a Könyvtár beállításokban", + "LabelStatus": "Státusz", + "LabelArtistsHelp": "A többszörös használat elkülönítése ;", + "HeaderAlbumArtists": "Album Előadók", + "LabelAlbumArtists": "Album előadók", + "LabelAlbum": "Album", + "Artist": "Előadó", + "Artists": "Előadók", + "ImdbRating": "IMDb értékelés", + "CommunityRating": "Közösségi értékelés", + "LabelCommunityRating": "Közösségi értékelés", + "LabelCriticRating": "Kritikusok értékelése", + "CriticRating": "Kritikusok értékelése", + "LabelWebsite": "Weboldal", + "Tagline": "Címke", + "LabelOverview": "Tartalom", + "LabelShortOverview": "Rövid tartalom", + "LabelReleaseDate": "Megjelenés Dátuma", + "LabelPlaceOfBirth": "Születési hely", + "Aired": "Adásba került", + "LabelAirDays": "Adásba kerülési napok", + "LabelAirTime": "Adásba kerülés ideje", + "LabelRuntimeMinutes": "Játékidő (perc)", + "LabelCustomRating": "Egyéni értékelés", + "LabelOriginalAspectRatio": "Eredeti képarány", + "Label3DFormat": "3D formátum", + "FormatValue": "Formátum: {0}", + "DownloadsValue": "{0} letöltés", + "HashMatch": "Hash egyezés", + "EnableExternalVideoPlayers": "Külső lejátszók engedélyezése", + "EnableExternalVideoPlayersHelp": "A videólejátszás elindításakor megjelenik egy külső lejátszó menü.", + "HeaderSpecialEpisodeInfo": "Különleges epizód információ", + "LabelAirsDuringSeason": "Adások az évad folyamán", + "LabelAirsAfterSeason": "Évad után került adásba", + "LabelAirsBeforeEpisode": "Epizód előtt került adásba", + "HeaderExternalIds": "Külső azonosítók", + "HeaderDisplaySettings": "Képernyő beállítások", + "PlaylistOrder": "Lejátszási lista sorrendje", + "CollectionOrder": "Gyűjtemény rendezése", + "LabelDisplayOrder": "Megjelenítési sorrend", + "LabelFileOrder": "Fájlsorrend", + "Display": "Megjelenítés", + "Countries": "Országok", + "Genres": "Műfajok", + "Studios": "Stúdiók", + "Tags": "Címkék", + "Links": "Hivatkozások", + "Movie": "Film", + "Program": "Program", + "Channel": "Csatorna", + "Episode": "Epizód", + "Season": "Évad", + "HeaderMetadataSettings": "Metaadat Beállítások", + "People": "Személyek", + "Number": "Szám", + "Lock": "Zárol", + "HeaderScreenLocked": "Képernyő zárolva", + "HeaderUnlockControls": "Vezérlők feloldása", + "HeaderTapToUnlock": "Koppintson a feloldáshoz", + "LabelMetadataDownloadLanguage": "Elsődleges metaadat letöltési nyelv", + "LabelImageDownloadLanguage": "Kép letöltésének előnyben részesített nyelve", + "LabelLockItemToPreventChanges": "Elem lezárása a jövőbeni változások elkerülése érdekében", + "LockThisField": "Ezen adatmező lezárása a jövőbeni változások elkerülése érdekében amikor a metaadatok frissítésre kerülnek", + "MessageLeaveEmptyToInherit": "Hagyja üresen a beállítások öröklésére egy szülőelemről, vagy a globális alapértelmezett értékről.", + "LabelCountry": "Ország", + "LabelCertificationCountry": "Besorolás országa", + "CertificationCountryHelp": "Ez befolyásolja a használt tartalombesorolási rendszert.", + "LabelDynamicExternalId": "{0} Azonosító", + "LabelBirthYear": "Születési év", + "LabelBirthDate": "Születési dátum", + "LabelDeathDate": "Halálozási dátum", + "LabelEndDate": "Befejezés dátuma", + "LabelSeasonNumber": "Évad száma", + "LabelEpisodeNumber": "Epizód száma", + "LabelTrackNumber": "Dal sorszáma", + "LabelNumber": "Szám", + "LabelDiscNumber": "Lemez száma", + "LabelParentNumber": "Szülő száma", + "SortName": "Cím szerinti rendezés", + "OriginalTitle": "Eredeti cím", + "ReleaseDate": "Megjelenés dátuma", + "Continuing": "Folytatva", + "Ended": "Befejezve", + "HeaderEnabledFields": "Engedélyezett mezők", + "HeaderEnabledFieldsHelp": "Törölje a jelölést egy mezőből, hogy lezárja és megakadályozza az adatok megváltoztatását.", + "Backdrops": "Hátterek", + "Images": "Képek", + "Runtime": "Játékidő", + "ProductionLocations": "Gyártási helyek", + "BirthLocation": "Születési hely", + "ParentalRating": "Korhatár besorolás", + "PlayCount": "Lejátszások száma", + "Name": "Név", + "Overview": "Áttekintés", + "LabelType": "Típus", + "LabelPersonRole": "Szerep", + "LabelPersonRoleHelp": "Példa: Fagylalt teherautó sofőr", + "Actor": "Színész", + "Composers": "Zeneszerzők", + "Composer": "Zeneszerző", + "Director": "Rendező", + "GuestStar": "Sztárvendég", + "Producer": "Producer", + "Writer": "Író", + "MessageNoSyncJobsFound": "Nem található letöltés. Készítsen letöltési feladatokat az alkalmazás egész területén található Letöltés gombokkal.", + "MessageNoDownloadsFound": "Nincs offline letöltés. Töltse le a médiatartalmat offline használatra a Letöltés elemre való kattintással az alkalmazás egész területén.", + "InstallingPackage": "{0} Telepítése", + "PackageInstallCompleted": "{0} telepítése befejezve.", + "PackageInstallFailed": "{0} telepítése nem sikerült.", + "PackageInstallCancelled": "{0} telepítése megszakítva.", + "SeriesYearToPresent": "{0} - Napjainkig", + "OneDevice": "1 eszköz", + "DeviceCountValue": "{0} eszközök", + "OneLog": "1 napló", + "LogCountValue": "{0} naplók", + "OneVote": "1 szavazat", + "VoteCountValue": "{0} szavazatok", + "OneLike": "1 tetszés", + "LikeCountValue": "{0} tetszések", + "OneUser": "1 felhasználó", + "UserCountValue": "{0} felhasználók", + "OneLibrary": "1 könyvtár", + "LibraryCountValue": "{0} könyvtár", + "ValueOneItem": "1 elem", + "ValueOneEpisode": "1 epizód", + "ValueEpisodeCount": "{0} epizód", + "Albums": "Albumok", + "Song": "Dal", + "Songs": "Dalok", + "Authors": "Szerzők", + "Books": "Könyvek", + "AudioBooks": "Hangoskönyvek", + "HeaderAudioBooks": "Hangoskönyvek", + "HeaderAudioBook": "Hangoskönyv", + "HeaderIdentifyItemHelp": "Adj meg egy vagy több keresési kritériumot. Távolítsd el a kritériumokat a keresési eredmények növelése érdekében.", + "PleaseEnterNameOrId": "Kérjük adj meg egy nevet vagy egy külső azonosítót.", + "MessageItemSaved": "Elem mentve.", + "SearchResults": "A keresés eredménye", + "ServerNameIsRestarting": "Emby Server - {0} újraindul.", + "ServerNameIsShuttingDown": "Emby Server - {0} leáll.", + "HeaderDeleteItems": "Elemek törlése", + "ConfirmDeleteItems": "Az elem törlésével eltávolítod azt a könyvtáradból és a fájlrendszerből is.", + "PleaseRestartServerName": "Kérlek indítsd újra az Emby Server-t a következőn {0}", + "ConvertingDots": "Átkonvertálás...", + "LabelSyncNoTargetsHelp": "Úgy tűnik jelenleg nincs olyan alkalmazásod, amely támogatja a letöltést.", + "DownloadingDots": "Letöltés...", + "LearnMore": "További infó", + "LabelBitrateMbps": "Bitráta (Mbps)", + "ConvertUnwatchedVideosOnly": "Csak a még korábban nem megtekintett videók konvertálása", + "SyncUnwatchedVideosOnly": "Csak a még korábban nem megtekintett videók letöltése", + "ConvertUnwatchedVideosOnlyHelp": "Csak azon videók konvertálása melyek nem kerültek megjelölésre korábban teljesen megtekintettként.", + "SyncUnwatchedVideosOnlyHelp": "Csak azon videók kerüljenek letöltése melyek nem kerültek megjelölésre korábban teljesen megtekintettként. Azon videók melyek teljesen megtekintésre kerülnek azok eltávolításra kerülnek az eszközről.", + "AutomaticallySyncNewContent": "Új tartalom automatikus letöltése", + "AutomaticallySyncNewContentHelp": "Az ehhez a könyvtárhoz hozzáadásra kerülő új tartalmak automatikusan letöltődnek.", + "AutomaticallyConvertNewContent": "Új tartalmak automatikus konvertálása", + "AutomaticallyConvertNewContentHelp": "Az ehhez a könyvtárhoz hozzáadott új tartalmak automatikusan konvertálásra kerülnek.", + "LabelItemLimit": "Elemszám limit", + "ConvertItemLimitHelp": "Opcionális. Állíts be egy korlátozást a konvertálandó elemek számára.", + "DownloadItemLimitHelp": "Opcionális. Állíts be egy korlátozást a letöltendő elemek számára.", + "PleaseSelectDeviceToSyncTo": "Válassz egy eszközt a letöltéshez.", + "Screenshots": "Képernyőképek", + "MoveRight": "Mozgatás jobbra", + "MoveLeft": "Mozgatás balra", + "HeaderUploadNewImage": "Új kép feltöltése", + "HeaderDeleteImage": "Kép törlése", + "ConfirmDeleteImage": "Kép törlése?", + "HeaderEditImages": "Képek szerkesztése", + "Settings": "Beállítások", + "ShowIndicatorsFor": "Mutatók megjelenítése", + "Episodes": "Epizódok", + "Programs": "Műsorok", + "HeaderCastCrew": "Szereplők és stáb", + "DvrSubscriptionRequired": "Az Emby Live TV & DVR aktív {0}Emby Premiere előfizetést{1} igényel.", + "HeaderCancelRecording": "Felvétel megszakítása", + "HeaderKeepRecording": "Felvétel megtartása", + "HeaderCancelSeries": "Sorozat elvetése", + "HeaderKeepSeries": "Sorozat megtartása", + "HeaderLearnMore": "Tudj meg többet", + "SeriesSettings": "Sorozat beállítások", + "HeaderRecordingOptions": "Rögzítés beállítások", + "HeaderDoNotRecord": "Ne rögzítse", + "HeaderSeriesOptions": "Sorozat beállítási lehetőségek", + "Layout": "Elrendezés", + "Channels": "Csatornák", + "ChannelNameOnly": "Csak {0} csatorna", + "Anytime": "Bármikor", + "AnyLanguage": "Bármely nyelv", + "AroundTime": "Körülbelül {0}", + "HeaderLatestMovies": "Legújabb filmek", + "All": "Mind", + "Stop": "Állj", + "AllChannels": "Összes csatorna", + "NewEpisodesOnly": "Csak új epizódok", + "AllEpisodes": "Összes epizód", + "LabelStartWhenPossible": "Indítsa amikor lehetséges", + "LabelStopWhenPossible": "Állítsa meg amikor lehetséges", + "MinutesBefore": "perccel korábban", + "MinutesAfter": "perccel utána", + "SkipEpisodesAlreadyInMyLibrary": "A könyvtárban már szereplő epizódokat ne rögzítse", + "SkipEpisodesAlreadyInMyLibraryHelp": "Az epizódokat összehasonlítjuk az évad és az epizód számával, ha rendelkezésre állnak.", + "LabelKeepUpTo": "Tartsa fel", + "AsManyAsPossible": "Amennyi lehetséges", + "DefaultErrorMessage": "Hiba történt a kérés feldolgozásakor. Kérlek, próbáld újra később.", + "UntilIDelete": "Amíg nem töröltem", + "UntilSpaceNeeded": "Amíg helyre nincs szükség", + "Categories": "Kategóriák", + "Sports": "Sportok", + "News": "Hírek", + "Movies": "Filmek", + "Music": "Zene", + "Kids": "Gyerekek", + "MoreFromValue": "Még több innen: {0}", + "DiedValue": "Meghalt: {0}", + "BornValue": "Született: {0}", + "EnableColorCodedBackgrounds": "Színnel megjelölt háttér alkalmazása kategória alapján", + "SortChannelsBy": "Csatornák rendezése", + "ChannelNumber": "Csatorna száma", + "HeaderBenefitsEmbyPremiere": "Emby Premiere előnyei", + "ThankYouForTryingEnjoyOneMinute": "Kérjük, élvezze az 1 perces lejátszást. Köszönjük, hogy kipróbálta az Emby-t.", + "HeaderTryPlayback": "Próbálja ki a lejátszást", + "HowDidYouPay": "Hogyan fizetett?", + "IHaveEmbyPremiere": "Van Emby Premiere-em", + "IPurchasedThisApp": "Megvásároltam ezt az alkalmazást", + "ButtonRestorePreviousPurchase": "Vásárlás visszaállítása", + "ButtonUnlockWithPurchase": "Feloldás vásárlással", + "ButtonUnlockPrice": "Feloldás {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere havonta {0}", + "HeaderAlreadyPaid": "Már Fizetve?", + "ButtonPlayOneMinute": "Egy perc lejátszása", + "PlaceFavoriteChannelsAtBeginning": "Helyezze a kedvenc csatornákat az elejére", + "HeaderUnlockFeature": "Funkció feloldása", + "MessageDidYouKnowCinemaMode": "Tudtad, hogy az Emby Premiere-t használva olyan funkciókkal fokozhatod az élményeket, mint a mozi előzetesek?", + "HeaderPlayMyMedia": "Médiatáram lejátszása", + "HeaderDiscoverEmbyPremiere": "Fedezd fel az Emby Premiere-t", + "HeaderNowPlaying": "Most játszva", + "Items": "Elemek", + "AppName": "Alkalmazás neve", + "OneChannel": "Egy csatorna", + "ConfirmRemoveDownload": "Letöltés eltávolítása?", + "ConfirmRemoveItem": "Eltávolítja az elemet?", + "RemoveDownload": "Letöltés eltávolítása", + "ConfirmCancelConversion": "Megszakítja az átalakítást?", + "CancelConversion": "Konvertálás megszakítása", + "KeepDownload": "Letöltés megtartása", + "AddedOnValue": "Hozzáadva {0}", + "RemovingFromDevice": "Eltávolítva az eszközről", + "KeepOnDevice": "Az eszközön tartás", + "CancelDownload": "Letöltés megszakítása", + "SyncJobItemStatusReadyToTransfer": "Készen áll az átvitelre", + "SyncJobItemStatusSyncedMarkForRemoval": "Eltávolítás az eszközről", + "SyncJobItemStatusQueued": "Sorba állítva", + "SyncJobItemStatusConverting": "Átkonvertálás", + "SyncJobItemStatusTransferring": "Átvitel", + "SyncJobItemStatusSynced": "Letöltve", + "Failed": "Sikertelen", + "SyncJobItemStatusRemovedFromDevice": "Eltávolítva az eszközről", + "Cancelled": "Törölve", + "Retry": "Újra", + "Continue": "Tovább", + "ContinueInSecondsValue": "Tovább {0} mp múlva.", + "HeaderRemoteControl": "Távirányítás", + "Disconnect": "Lecsatlakozás", + "EnableDisplayMirroring": "Képernyő tükrözés engedélyezése", + "RemoteAccess": "Távoli hozzáférés", + "HeaderPlayOn": "Lejátszás itt", + "Quality": "Minőség", + "Auto": "Automatikus", + "AndroidUnlockRestoreHelp": "Hogy visszaállítsd az előző vásárlásod, kérjük, ellenőrizd, hogy ugyanazzal a Google fiókkal (vagy Amazon fiókkal) jelentkeztél be, amellyel a vásárlást végezted. Ellenőrizd, hogy a Google Play engedélyezve van és nincsenek érvényben szülői felügyelet korlátozások. Ezt a műveletet csak egyszer kell elvégezned a vásárlás visszaállításához.", + "HeaderAspectRatio": "Képarány", + "Original": "Eredeti", + "Fill": "Kitöltés", + "Cover": "Borító", + "MessageNoServersAvailableToConnect": "Nincsenek elérhető szerverek a kapcsolódáshoz. Ha meghívást kaptál egy másik szerverre, először fogadd el a meghívást az emailben található hivatkozás segítségével.", + "MessagePlayAccessRestricted": "A tartalom lejátszása korlátozva van. Kérjük, vedd fel a kapcsolatot az Emby Server adminisztrátorával további információért.", + "Accept": "Elfogad", + "Reject": "Visszautasít", + "Connect": "Kapcsolódás", + "HeaderMyMedia": "Médiatáram", + "HeaderMyMediaSmall": "Médiatáram (kicsi)", + "LatestFromLibrary": "Legújabb {0}", + "HeaderLatestEpisodes": "Legújabb Epizódok", + "ContinuePlaying": "Lejátszás folytatása", + "ContinueWatching": "Megtekintés folytatása", + "HeaderLatestChannelMedia": "Legutóbbi csatornaelemek", + "HeaderContinueWatching": "Lejátszás(ok) folytatása", + "HeaderContinueListening": "Lejátszás folytatása", + "HeaderActiveRecordings": "Aktív felvételek", + "HeaderLatestRecordings": "Legutóbbi felvételek", + "LabelConvertTo": "Konvertálás erre", + "LabelDownloadTo": "Letöltés ide", + "HeaderDownloadToDots": "Letöltés ide...", + "Next": "Következő", + "LabelSource": "Forrás", + "VersionNumber": "Verzió: {0}", + "HeaderAllLanguages": "Összes nyelv", + "Previous": "Előző", + "HeaderNextUp": "Következik", + "HeaderPlayNextUp": "Következő epizód lejátszása", + "HeaderLatestFrom": "Legújabb innen {0}", + "LabelHomeScreenSectionValue": "Kezdőképernyő blokk {0}", + "PasswordResetComplete": "A jelszó vissza lett állítva.", + "PasswordSaved": "A jelszó mentve.", + "SettingsSaved": "A beállítások elmentve.", + "Upcoming": "Közelgő", + "HeaderSelectImageFile": "Kép file kiválasztása", + "None": "Nincs", + "More": "Tovább", + "Up": "Fel", + "Down": "Le", + "Home": "Kezdőlap", + "Back": "Vissza", + "Random": "Véletlenszerű", + "Playback": "Lejátszás", + "Favorites": "Kedvencek", + "HeaderHomeScreen": "Kezdőképernyő", + "HeaderLatestChannelItems": "Legutóbbi csatornaelemek", + "HeaderLibraryOrder": "Médiatár rendezés", + "HeaderOnNow": "Most", + "HeaderForKids": "Gyerekeknek", + "HeaderPlaybackError": "Lejátszási hiba", + "PlaybackErrorNotAllowed": "Jelenleg nincs jogosultságod a tartalom lejátszásához. Kérjük, vedd fel a kapcsolatod az adminisztrátorral a részletekért.", + "RateLimitExceeded": "A fiókod elérte az Emby Server adminisztrátora által beállított egyidejű közvetítések számát. Kérjük, lépj kapcsolatba az adminisztrátorral.", + "PlaybackErrorNoCompatibleStream": "Jelenleg nincs elérhető kompatibilis adatfolyam. Kérjük, próbáld újra később vagy lépj kapcsolatba az adminisztrátorral további információkért.", + "PlaybackErrorPlaceHolder": "Kérjük, helyezd be a lemezt a videó lejátszásához.", + "PlaybackErrorNoPlayableItems": "Nem található lejátszható elem. Megpróbál egy üres mappát lejátszani?", + "Guide": "Műsorújság", + "Games": "Játékok", + "GameSystem": "Játék rendszer", + "Suggestions": "Javaslatok", + "HeaderFavoriteChannels": "Kedvenc csatornák", + "HeaderFavoriteCollections": "Kedvenc gyűjtemények", + "HeaderFavoritePlaylists": "Kedvenc lejátszási listák", + "Collection": "Gyűjtemény", + "Collections": "Gyűjtemények", + "LabelSelectFolderGroups": "Automatikusan csoportosítsa a következő mappák tartalmát olyan nézetekre, mint a Filmek, a Zene és a TV:", + "LabelSelectFolderGroupsHelp": "A ki nem választott mappák önmagukban, saját nézetben jelennek meg.", + "Mute": "Némít", + "Unmute": "Némítás feloldása", + "Folder": "Mappa", + "Folders": "Mappák", + "FileName": "Állomány neve", + "DisplayInOtherHomeScreenSections": "Megjelenítés a másodlagos kezdőképernyő szakaszaiban, például a legújabb médiában és folytathatja a lejátszást", + "DisplayInMyMedia": "Megjelenítés a kezdőképernyőn", + "Shows": "Sorozatok", + "MoviesAndShows": "Filmek és Sorozatok", + "HeaderMusicVideo": "Zenei videó", + "HeaderMusicVideos": "Zenei videók", + "MusicVideos": "Zenei videók", + "Videos": "Videók", + "MixedContent": "Vegyes tartalom", + "HomeVideos": "Házi videók", + "HomeVideosAndPhotos": "Házi videók és fényképek", + "TVShows": "TV sorozatok", + "HeaderLibraryFolders": "Könyvtár mappák", + "HeaderTermsOfPurchase": "Vásárlási feltételek", + "PrivacyPolicy": "Adatvédelmi irányelvek", + "TermsOfUse": "Használati feltételek", + "HeaderRepeatMode": "Ismétlési mód", + "HeaderToneMapping": "Tónus leképezése", + "RepeatOne": "Ismétlés egyszer", + "RepeatAll": "Folyamatos ismétlés", + "LabelDefaultScreen": "Alapértelmezett képernyő", + "ConfirmEndPlayerSession": "Le akarod állítani az Emby-t itt {0}?", + "Yesterday": "Tegnap", + "Yes": "Igen", + "No": "Nem", + "HeaderScanLibraryFiles": "Könyvtár fájljainak beolvasása", + "LiveTV": "Élő TV", + "Schedule": "Menetrend", + "Recordings": "Felvételek", + "ScanForNewAndUpdatedFiles": "Keresés az új és frissített fileokra", + "NewVersionOfXAvailableForY": "{0} elérhető a következőhöz: {1}", + "DirectStreamHelp1": "A média kompatibilis az eszköz felbontásával és az adathordozó típusával (H.264, AC3 stb.), de nem kompatibilis fájl konténerrel (.mkv, .avi, .wmv stb.). A videó újracsomagolásra kerül, mielőtt az eszközre továbbítja azt.", + "DirectStreamHelp2": "A közvetlen adatfolyam nagyon kevés feldolgozási energiát igényel, anélkül, hogy a videó minősége csökkenne.", + "MediaIsBeingConverted": "A média átalakul olyan formátumba amely kompatibilis a médialejátszóval.", + "StatsForNerds": "Szakértői statisztika", + "HeaderHardwareAcceleratedDecoding": "Hardveresen gyorsított dekódolás", + "HeaderHardwareAcceleratedEncoding": "Hardveresen gyorsított kódolás", + "HeaderDirectPlay": "Közvetlen lejátszás", + "DirectPlaying": "Közvetlen lejátszás", + "DirectStreaming": "Közvetlen adatfolyam", + "Transcode": "Átkódolás", + "Transcoding": "Átkódolás", + "ContainerBitrateExceedsLimit": "Bitráta csökkentése a minőség beállítása miatt", + "VideoCodecNotSupported": "Videó átalakítása kompatibilis kodekké", + "AudioCodecNotSupported": "Kompatibilis hang kodekké való átalakítás", + "SubtitleCodecNotSupported": "Feliratok átalakítása közvetlenül a videóba", + "DirectPlayError": "Lejátszási hibából való helyreállítás", + "ContainerNotSupported": "Kompatibilis konténerbe való átalakítás", + "VideoLevelNotSupported": "Kompatibilis videószintre való átalakítás", + "AudioBitrateNotSupported": "Kompatibilis hang bitrátára való átalakítás", + "AudioChannelsNotSupported": "Kompatibilis hang csatornaszámra való átalakítás", + "VideoResolutionNotSupported": "Megfelelő videó felbontásra való átalakítás", + "AudioProfileNotSupported": "Kompatibilis hang profilra való átalakítás", + "AudioSampleRateNotSupported": "Kompatibilis hang mintavételezési rátára való átalakítás", + "AnamorphicVideoNotSupported": "Anamorfikus videó nem támogatott", + "InterlacedVideoNotSupported": "Videó váltott-sorosság mentesítése", + "SecondaryAudioNotSupported": "Másodlagos hangsáv kiválasztása", + "ExternalAudioNotSupported": "Külső hangsáv kiválasztása", + "ErrorRemovingEmbyConnectAccount": "Hiba történt az Emby Connect felhasználó eltávolítása során. Kérjük ellenőrizd az internet kapcsolatod, majd próbáld újra.", + "HeaderEmbyAccountRemoved": "Az Emby fiók eltávolítva", + "MessageEmbyAccontRemoved": "Az Emby fiók eltávolítva a felhasználóról.", + "HeaderInvitationSent": "Meghívó elküldve", + "Offline": "Offline", + "HeaderSignUp": "Regisztráció", + "ServerDownloadMessage": "Az Emby Server letöltéséhez és telepítéséhez látogasson el a(z) {0}", + "ServerDownloadMessageWithoutLink": "Az Emby Server letöltéséhez és telepítéséhez látogasson el az Emby weboldalára.", + "MessageInvitationSentToUser": "Email elküldve a {0}, felkéri őket, hogy fogadják el a megosztási meghívást.", + "MessageInvitationSentToNewUser": "Email elküldve a {0}, felkéri őket, hogy regisztárljanak az Emby-hez.", + "GuestUserNotFound": "Felhasználó nem található. Ellenőrizze, hogy a név helyes-e és próbálkozzon újra, vagy próbálja meg beírni az email címüket.", + "ErrorReachingEmbyConnect": "Hiba történt az Emby Connect szerverhez való csatlakozás során. Kérjük ellenőrizd az internet kapcsolatod, majd próbáld újra.", + "ErrorAddingEmbyConnectAccount1": "Hiba történt az Emby Connect fiók létrehozása során. Van már Emby fiókod? Regisztrálhatsz itt: {0}.", + "ErrorAddingEmbyConnectAccount2": "Ha továbbra is hibákba ütközöl, kérjük küldj egy emailt a(z) {0} email címre arról a címről, amit az Emby fiókodhoz használtál.", + "ErrorAddingGuestAccount1": "Hiba történt az Emby Connect fiók létrehozása során. Van már Emby fiókod? Regisztrálhatsz itt: {0}.", + "ErrorAddingGuestAccount2": "Ha továbbra is hibákba ütközöl, kérjük küldj egy emailt a(z) {0} email címre, ami tartalmazza a saját és a másik fél címét is.", + "MessageEmbyAccountAdded": "Az Emby fiók hozzáadva ehhez a felhasználóhoz.", + "MessagePendingEmbyAccountAdded": "Az Emby fiók hozzáadva ehhez a felhasználóhoz. Egy email kerül kiküldésre a fiók tulajdonosának. A meghívást meg kell erősíteni a kiküldött emailben található hivatkozásban.", + "HeaderEmbyAccountAdded": "Emby fiók hozzáadva", + "Skip": "Kihagyás", + "HeaderAdditionalParts": "További részek", + "ButtonGenerateNewPin": "Új PIN generálása", + "ConnectLoginHelp1": "Az Emby Connect-tel könnyedén hozzáférhetsz az Emby Server-hez akárhol vagy és megoszthatod a családoddal vagy barátaiddal.", + "CreatePinErrorMessage": "Hiba történt a PIN kód létrehozása során. Kérjük kattints az Új PIN generálása lehetőségre az újrapróbálkozáshoz.", + "PinExpiredMessage": "A PIN kód lejárt. Kérjük, kattints az Új PIN generálása lehetőségre az újrapróbálkozáshoz.", + "ConnectPinCodeHeader": "Az Emby Connect-tel való bejelentezéshez kérjük, nyisd meg a(z) {0} weboldalt egy számítógépen vagy mobileszközön, és add meg a következő PIN kódot:", + "LabelSubtitlePlaybackMode": "Felirat mód", + "ErrorDeletingItem": "Hiba történt az elem törlése során az Emby Server-en. Kérjük, ellenőrizd, hogy a szervernek van-e írási jogosultságod a médiatartalom mappájában és próbáld újra.", + "NoSubtitles": "Nincs felirat", + "Default": "Alapértelmezett", + "Absolute": "Abszolút", + "Smart": "Intelligens", + "Small": "Kicsi", + "Smaller": "Apró", + "Medium": "Közepes", + "Large": "Nagy", + "Larger": "Nagyobb", + "ExtraLarge": "Hatalmas", + "ExtraSmall": "Extra kicsi", + "Forced": "Kényszerített", + "External": "Külső", + "HeaderEmbeddedTitle": "Beágyazott cím", + "OnlyForcedSubtitles": "Csak kényszerített feliratok", + "AlwaysPlaySubtitles": "Mindig mutassa a feliratokat", + "DefaultSubtitlesHelp": "A feliratok betöltése az alapértelmezett és a kényszerített metaadat címkék alapján történik. A nyelvi beállítások figyelembe lesznek véve, ha több lehetőség áll rendelkezésre.", + "SmartSubtitlesHelp": "A feliratok csak akkor kerülnek megjelenítésre, ha a videó idegen nyelvű.", + "HeaderSubtitleSettings": "Felirat beállítások", + "HeaderSubtitleAppearance": "Felirat kinézete", + "OnlyForcedSubtitlesHelp": "Csak a kényszerítettként megjelölt feliratok lesznek megjelenítve.", + "AutoSelectHearingImpairedHelp": "A nyelvi preferenciának megfelelő feliratokat tölti be a rendszer, előnyben részesítve a hallássérültként (SDH) megjelölt hangsávokat.", + "AlwaysPlaySubtitlesHelp": "A nyelvi beállításoknak megfelelő feliratok a videó nyelvétől függetlenül betöltődnek.", + "NoSubtitlesHelp": "A feliratok alapértelmezésként nem kerülnek betöltésre, de manuálisan bekapcsolhatók lejátszás közben.", + "LabelPreferredSubtitleLanguage": "Feliratok előnyben részesített nyelve", + "LabelTextSize": "Szöveg mérete", + "TheseSettingsAffectSubtitlesOnThisDevice": "Ez a beállítás befolyásolja a feliratok megjelenését az eszközön", + "LabelDropShadow": "Árnyék", + "LabelTextBackgroundColor": "Szöveg háttérszíne", + "LabelWindowBackgroundColor": "Szöveg háttérszíne", + "LabelFont": "Betűpus", + "LabelTextColor": "Szöveg színe", + "LabelBackgroundColor": "Háttér színe", + "LabelBackgroundOpacity": "Háttér homályossága", + "Raised": "Emelt", + "Depressed": "Mélyített", + "Uniform": "Egységes", + "DropShadow": "Árnyék", + "SmallCaps": "Kis nagybetűk", + "SubtitleAppearanceSettingsDisclaimer": "Ez a beállítás nem lesz hatással a grafikus feliratokra (PGS, DVD, stb.) vagy olyan feliratokra, amelyeknek saját beágyazott stílusa van (ASS/SSA).", + "Normal": "Normális", + "HeaderWaitingForWifi": "Wifi-re vár", + "WifiRequiredToDownload": "Wifi kapcsolat szükséges a letöltés folytatásához.", + "DownloadOnlyOnWifi": "Feltöltés csak WiFi-n keresztül", + "LabelMusicDownloadQuality": "Zeneletöltés minősége", + "MusicDownloadQualityHelp": "A magasabb bitrátájú hangfájlokat az Emby Server konvertálja. Válasszon magasabb értéket a jobb minőség érdekében, vagy alacsonyabb értéket a helyi tárhely megőrzése érdekében.", + "HeaderDownloadSettings": "Letöltés beállítások", + "LabelDownloadLocation": "Letöltés helye", + "BrowseForFolder": "Keresse meg a mappát", + "Unlimited": "Korlátlan", + "NoLimit": "Nincs korlátozás", + "Hide": "Elrejt", + "HeaderKeepWatching": "Nézd tovább", + "HeaderNextEpisode": "Következő epizód", + "AudioBitDepthNotSupported": "Kompatibilis hang bitmélységre való átalakítás", + "VideoBitrateNotSupported": "Átalakítás kompatibilis videó bitrátára", + "VideoProfileNotSupported": "Kompatibilis videó profilra való átalakítás", + "VideoFramerateNotSupported": "Kompatibilis videó képkocka sebességre való átalakítás", + "VideoBitDepthNotSupported": "Kompatibilis videó bitmélységre való átalakítás", + "RefFramesNotSupported": "Kompatibilis (videó) referencia képkockára való átalakítás", + "ErrorConnectServerUnreachable": "Hiba történt a kért művelet végrehajtása során. A szerver nem tud kapcsolatba lépni az Emby Connect szerverrel a (z) {0} címen. Győződjön meg arról, hogy szerverének aktív internet kapcsolata van és, hogy a kommunikációt minden telepített tűzfal vagy biztonsági szoftver lehetővé teszi.", + "HeaderStopRecording": "Felvétel leállítása", + "ManageRecording": "Felvétel kezelése", + "LabelDropImageHere": "Dobd ide a képet vagy kattints a böngészéshez.", + "MessageFileReadError": "Hiba történt a fájl olvasásakor. Kérlek próbáld újra.", + "Browse": "Tallózás", + "HeaderUploadImage": "Kép feltöltés", + "HeaderAddUpdateImage": "Kép hozzáadása / frissítése", + "HeaderShowFields": "Mutasd a mezőket", + "LabelView": "Nézet", + "LabelImageType": "Kép típusa", + "Upload": "Feltöltés", + "Primary": "Elsődleges", + "PrimaryImageBlur": "Elsődleges kép elmosódása", + "Art": "Grafika", + "Backdrop": "Háttér", + "Banner": "Banner", + "Box": "Doboz", + "BoxRear": "Doboz (Hátulja)", + "Disc": "Lemez", + "Logo": "Logó", + "LogoDark": "Logó (Sötét Változat)", + "LogoLight": "Logó (Világos Változat)", + "LogoLightColor": "Logó (világos színes)", + "Menu": "Menü", + "Screenshot": "Képernyőkép", + "Thumb": "Miniatűr", + "HeaderAudioSettings": "Hang beállítások", + "LabelAudioLanguagePreference": "Elsődleges hang nyelve", + "LabelPlayDefaultAudioTrack": "Az alapértelmezett hangsáv lejátszása a választott nyelvtől függetlenül", + "HeaderVideoQuality": "Videó minőség", + "CinemaModeConfigurationHelp": "A mozi előzetesek egyenesen a nappaliba hozzák a moziélményt, filmelőzetes és egyéni intro formájában még a film lejátszása előtt.", + "ShowUpNextPreview": "A következő előnézetének megjelenítése", + "ShowUpNextPreviewHelp": "A következő elem információinak megjelenítése az aktuális elem végén.", + "PlayNextEpisodeAutomatically": "Következő epizód automatikus lejátszása", + "LabelMaxChromecastBitrate": "Chromecast adatfolyam minősége", + "LabelSkipBackLength": "Visszafelé ugrás hossza", + "LabelSkipForwardLength": "Előreugrás hossza", + "EnableCinemaMode": "Mozi előzetes engedélyezése", + "LabelInternetQuality": "Internet minőség", + "LabelCellularQuality": "Távoli adatfolyam minősége (mobilhálózat)", + "HeaderMusicQuality": "Zene minőség", + "LabelHomeNetworkQuality": "Otthoni hálózat minőség", + "HeaderLatestMedia": "Legújabb média", + "HeaderRestartingEmbyServer": "Emby Server újraindítása", + "RestartPleaseWaitMessage": "Kérlek várj, amíg az Emby Server leáll és újraindul. Ez akár egy-két percig is eltarthat.", + "HeaderPlayNext": "Következő lejátszása", + "AutoBasedOnLanguageSetting": "Automatikus (a nyelvi beállítások alapján)", + "SameAsMainTheme": "Ugyanaz, mint a fő téma", + "LabelDateTimeLocale": "Dátum és idő területi beállítás", + "Genre": "Műfaj", + "DirectorValue": "Rendező: {0}", + "DirectorsValue": "Rendezők: {0}", + "GenreValue": "Műfaj: {0}", + "GenresValue": "Műfajok: {0}", + "TagsValue": "Címkék: {0}", + "Off": "Ki", + "Title": "Cím", + "Year": "Év", + "Filter": "Szűrő", + "Filters": "Szűrők", + "Unplayed": "Lejátszatlan", + "LabelTVHomeScreen": "TV mód kezdőképernyője", + "Horizontal": "Vízszintes", + "Vertical": "Függőleges", + "HeaderGroupBy": "Csoportosítás", + "HeaderMediaType": "Média típusa", + "GroupBySeries": "Csoportosítás sorozatok szerint", + "HeaderVideoType": "Videó típusa", + "HeaderSeriesStatus": "Sorozat státusz", + "Features": "Jellemzők", + "Trailers": "Előzetesek", + "Extras": "Extrák", + "ThemeSongs": "Főcímdalok", + "ThemeVideos": "Háttérvideók", + "HeaderFavoriteMovies": "Kedvenc filmek", + "HeaderFavoritePhotos": "Kedvenc képek", + "HeaderFavoriteShows": "Kedvenc műsorok", + "HeaderFavoriteEpisodes": "Kedvenc epizódok", + "HeaderFavoriteVideos": "Kedvenc videók", + "HeaderFavoriteMusicVideos": "Kedvenc zenei videók", + "HeaderFavoriteGames": "Kedvenc játékok", + "HeaderFavoriteArtists": "Kedvenc előadók", + "HeaderFavoriteAlbums": "Kedvenc albumok", + "HeaderFavoriteSongs": "Kedvenc dalok", + "HeaderFavoriteAuthors": "Kedvenc szerzők", + "HeaderFavoriteAudioBooks": "Kedvenc hangoskönyvek", + "Ascending": "Növekvő", + "Descending": "Csökkenő", + "HeaderColorPrimaries": "Elsődleges színek", + "HeaderColorSpace": "Színtér", + "HeaderColorTransfer": "Színátvitel", + "HeaderVideoRange": "Videó tartomány", + "SeriesDisplayOrderHelp": "Rendezd az epizódokat az adásba kerülés szerint, DVD sorrend, vagy abszolút sorrend alapján.", + "LabelVerticalPositionFromBottom": "Függőleges pozíció (alulról számítva)", + "HeaderFavoritePeople": "Kedvenc személyek", + "MultiSelect": "Több kiválasztása", + "HeaderSignOut": "Kijelentkezés", + "HeaderSelectServer": "Szerver kiválasztás", + "HeaderChangeServer": "Szerver váltás", + "HeaderChangeUser": "Felhasználó módosítása", + "HeaderAppSettings": "Alkalmazás beállításai", + "HeaderLoginSettings": "Bejelentkezési beállítások", + "LabelRememberLogin": "Bejelentkezés megjegyzése", + "LabelAutomaticallySignOut": "Automatikus kijelentkezés", + "BetaTesterMessage": "Köszönjük az Emby Server béta tesztelését! Kérjük hagyj visszajelzést az {0}Emby közösség teszt szekciójában{1}.", + "HardwareAccelerated": "Hardveresen gyorsítva", + "Software": "Szoftver", + "Metadata": "Metaadat", + "HeaderMediaInfo": "Média információk", + "Locked": "Zárt", + "HeaderSplitVersionsApart": "Verziók különválasztása", + "Any": "Bármilyen", + "Admin": "Admin", + "HeaderReadMore": "További információk", + "CustomRatingHelp": "Az egyéni besorolást a szülői felügyelet értékeléséhez használják, de nem jelenik meg. A korhatár besorolás mező továbbra is megjelenik.", + "KeepUpToHelp": "A korlátot meghaladó felvételek a következő felvétel megkezdésekor törlődnek. A legrégebbi felvételek törlődnek először, a hozzáadás dátuma szerint.", + "NoItemsMatchingFound": "Nem található a keresési feltételeknek megfelelő elem.", + "TwoSearchCharsRequired": "Legalább két karaktert adj meg a kereséshez.", + "PreventPlaybackContinuing": "A végtelenségig tartó lejátszás megakadályozása az időnkénti felhasználói beavatkozás igénylése segítségével.", + "PromptStillWatching": "'Még mindig nézed?' engedélyezése", + "HeaderMissingMetadata": "Hiányzó metaadat", + "HeaderIncludedIn": "Tartalmazza", + "EmbyConnectUserAlreadyLinked": "Az Emby Connect felhasználó már kapcsolódik egy másik felhasználóhoz ezen a szerveren.", + "VideoFilesWillBeConvertedTo": "A konvertált videókat a következő formátumban menti {0}.", + "VideoWillBeConvertedTo": "A videó adatfolyamok konvertálódnak {0}-ra/re vagy másolódnak az eredeti fájlból, ha azok már {0} és a minőség illeszkedik a konvertálási lehetőségekbe.", + "VideoWillBeConvertedToOrCopied": "A videó adatfolyamok konvertálódnak {0}-ra/re vagy másolódnak az eredeti fájlból, ha azok bármelyike {1} és a minőség illeszkedik a konvertálási lehetőségekbe.", + "AudioWillBeConvertedTo": "A hang adatfolyamok konvertálódnak {0}-ra/re vagy másolódnak az eredeti fájlból, ha azok már {0} és a minőség illeszkedik a konvertálási lehetőségekbe.", + "AudioWillBeConvertedToOrCopied": "A hang adatfolyamok konvertálódnak {0}-ra/re, vagy másolódnak az eredeti fájlból, ha azok bármelyike ({1}) és a minőség illeszkedik az átalakítási lehetőségekbe.", + "HeaderSpecialKeys": "Különleges kulcsok", + "FollowingSpecialKeys": "A következő különleges kulcsok támogatottak a legtöbb billentyűzeten és távirányítón:", + "HeaderDeleteSeries": "Sorozatok törlése", + "HeaderDeleteLastPlayedEpisode": "Utoljára lejátszott epizód törlése", + "HeaderConnectingToServer": "Csatlakozás a szerverhez", + "ServerNameValue": "Szerver neve: {0}", + "DomainValue": "Tartomány: {0}", + "RatedValue": "Értékelés {0}", + "LocalServerRedirectMessage": "Ön most átirányításra kerül a tartományt tulajdonló és üzemeltető szerver adminisztrátorhoz melyhez csatlakozni kívánt:", + "AllMediaOwnedHosted": "Minden médiát birtokol és kezel a {0} tulajdonosa.", + "EnableResolutionSwitching": "A videó felbontásának beállítása", + "EnableResolutionSwitchingHelp": "Ez lehetővé teszi az Emby számára, hogy a felbontást ugyanarra az értékre állítsa, amelyre a videót a lejátszás megkezdése előtt kódolta. Ez segíthet minimalizálni az ugrás/akadozás mértékét, amelyet egyébként tapasztalhat olyan videók lejátszásakor, amelyek nem illenek jól.", + "EnableDisplayRefreshRateSwitching": "A kijelző frissítési frekvencia váltásának engedélyezése", + "EnableDisplayRefreshRateSwitchingHelp": "Ez lehetővé teszi az Emby számára, hogy a lejátszás megkezdése előtt a képernyő frissítési gyakoriságát ugyanarra az értékre (vagy többszörösére) állítsa, mint a videó képkockasebessége. Ez segíthet minimalizálni a nem jól illeszkedő videók lejátszásakor egyébként tapasztalható ugrást/akadozást.", + "RememberSelectedAudioTracks": "Emlékezzen a hangsáv kiválasztásokra", + "RememberSelectedSubtitleTracks": "Emlékezzen a feliratsáv kiválasztásokra", + "RememberSelectedSubtitleTracksHelp": "A korábbi feliratsáv kiválasztások megjegyzésre kerülnek az adott videókkal kapcsolatban, és annak újra lejátszása során alkalmazásra kerülnek.", + "RememberSelectedAudioTracksHelp": "A korábbi hangsáv kiválasztások megjegyzésre kerülnek az adott videókkal kapcsolatban és annak újra lejátszása során alkalmazásra kerülnek.", + "ClearSavedTrackSelections": "Mentett sáv kiválasztások törlése", + "HeaderClearTrackSelections": "Mentett sáv kiválasztások törlése", + "QuestionClearSavedTracks": "Törölje az összes mentett sáv kiválasztást?", + "LabelChannelTags": "Csatorna címkék", + "AfterThisPlaysConfirmation": "Ezen lejátszást követően szeretné megtartani ezt a lejátszási listát avagy töröljük a lejátszási listát?", + "Keep": "Megtart", + "Clear": "Töröl", + "HeaderClearFilters": "Szűrők Törlése", + "HeaderSearchForImages": "Képek keresése", + "HeaderSearchNewImage": "Új kép keresése", + "HeaderSearchForAnImage": "Kép keresése", + "DragDropToReorder": "Fogd és vidd az átrendezéshez", + "HeaderAddImageFromUrl": "Kép hozzáadása URL alapján", + "HeaderSetImageFromUrl": "Kép beállítása URL alapján", + "LabelUrl": "Url", + "LabelChannelNumber": "Csatorna szám", + "LabelGuideDataChannel": "Műsorújság adat csatorna", + "GuideDataSource": "Műsorújság adatforrás", + "HeaderCopyToClipboard": "Vágólapra másolás", + "TimeRemainingValue": "{0} hátralévő", + "LabelResumeRewindSeconds": "Folytatáskor automatikusan visszateker", + "ResumeRewindSecondsHelp": "Ez arra segíthet emlékezni, hogy hol hagytad abba. A kezdeti folytatásra vonatkozik, nem pedig minden egyes lejátszási szünetre.", + "HeaderSavePlayQueueToPlaylist": "Lejátszási sor mentése a lejátszási listára", + "EnableLogoImagesAsTitle": "A logóképek megjelenítése címként a részletező képernyőkön", + "EnableLogoImagesAsTitleHelp": "Ha rendelkezésre állnak, a logóképek a címszöveg helyett használhatók videókon, sorozatokon és egyéb részletező képernyőkön. Ha nem áll rendelkezésre logókép, a cím visszavált szöveggé.", + "LabelNowPlayingAudioBackgroundStyle": "Most játszott hang háttér stílusa", + "LabelNowPlayingVideoBackgroundStyle": "Most lejátszott videó háttér stílusa", + "NowPlayingVideoBackgroundStyleHelp": "Meghatározza a háttérstílust, amikor egy másik eszközről irányítja a videólejátszást.", + "Rotation": "Forgás", + "Minutes": "Perc", + "LabelMaxRecordingLength": "A felvétel maximális hossza", + "MaxRecordingLengthHelp": "Korlátozza a felvételeket egy meghatározott időtartamra, függetlenül az adás időtartamától. Ha az érték 0, akkor nincs korlátozás.", + "RemoteWAN": "Távoli (WAN) cím", + "HeaderLastConnectedTo": "Utolsó csatlakozás ide", + "Version": "Verzió", + "Keyword": "Kulcsszó", + "HeaderServerAddress": "Szerver címe", + "HeaderSkipIntro": "Bevezető átugrása", + "HeaderCreateRecording": "Felvétel készítése", + "HeaderAddRecording": "Felvétel hozzáadása", + "HeaderChannelAndTime": "Csatorna és idő", + "LabelRecordProgramOrSeriesFrom": "Rögzítsen egy műsort vagy sorozatot innen", + "LabelStartTime": "Kezdés időpontja", + "LabelEndTime": "Befejezés időpontja", + "LabelFrequency": "Frekvencia", + "Recurring": "Ismétlődő", + "Once": "Egyszer", + "Start": "Indítás", + "Unpause": "Folytatás", + "LabelIntroSkipMode": "Bevezető átugrása mód", + "ShowSkipIntroButton": "'Bevezető kihagyása' gomb megjelenítése", + "AutoSkipIntro": "Bevezetők automatikus átugrása", + "DisplayRatingInformationOnVideoPlaybackStart": "Besorolási információk megjelenítése a videó lejátszásának megkezdésekor", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "A videó lejátszásának megkezdésekor rövid időre megjelenik az értékelési információ.", + "IntroSkipModeHelp": "Jelenítse meg a 'Bevezető kihagyása' gombot, vagy automatikusan kihagyja az olyan epizódok bevezetőit, amelyekben az Emby Server bevezetőjelzőket észlelt. A bevezető észlelést engedélyezni kell az Emby Server könyvtár beállításainál.", + "EnableHomeScreenFocusPreview": "Olyan elrendezést használjon a kezdőképernyőn, amely a kiválasztott elem részletes előnézetét mutatja", + "EnableHomeScreenFocusPreviewHelp": "Nem biztos, hogy jól működik, ha a kezdőképernyő különböző médiatípusok keverékét tartalmazza.", + "LabelHideMediaTransportButtons": "A videólejátszó kezelőgombjainak elrejtése", + "HideMediaTransportButtonsHelp": "Hozzon létre egy egyszerűbb, képernyőn megjelenő lejátszási felületet az alapvető kezelőgombok elrejtésével, mint például az előre, vissza és a szüneteltetés. Ezeket a funkciókat továbbra is használhatja a nyílbillentyűk és az OK/Enter használatával. Az Automatikus mód elrejti a kezelőgombokat, ha az alkalmazás nem észlel egérhasználatot.", + "ImageSizeHelp": "Állítsa be a kívánt képrács méretét.", + "LabelImageSize": "Kép mérete", + "ThisImageIsOnlyPreview": "Ez a kép csak egy előnézet, amely a metaadat keresőmotorból származik. Az Emby Server által letöltött tényleges kép eltérő lehet és az Emby könyvtár beállításaiban megadott beállításoktól függ.", + "ResultsRangeValue": "{0}-tól {1}-ig a {2} közül", + "NotificationsDescription": "Értesítések beállítása, hogy értesüljön az Emby Server fontos eseményeiről.", + "DeleteEmbyConnectAccount": "Emby Connect fiók törlése", + "DeleteEmbyConnectAccountHelp": "Emby Connect fiókja törléséhez jelentkezzen be {0}Emby Community{1} a következő címen {2}. Miután bejelentkezett, kattintson a felhasználónevére a jobb felső sarokban, majd kattintson a Fiókbeállítások elemre, majd a Fiókom törlése lehetőségre.", + "KeepPlayingInBackground": "Lejátszás folytatása a háttérben", + "LabelVideoBackBehavior": "Videólejátszó vissza gomb viselkedése", + "HeaderViewLyrics": "Dalszöveg megtekintése", + "HeaderViewMissingEpisodes": "Hiányzó epizódok megtekintése", + "HeaderMissingEpisodes": "Hiányzó epizódok", + "HeaderManageAccess": "Hozzáférés kezelése", + "HeaderManageCollaboration": "Együttműködés kezelése", + "HeaderLeaveCollaboration": "Együttműködés abbahagyása", + "HeaderRemoveFromLibrary": "Eltávolítás a könyvtárból", + "RemoveSharedItemConfirmation": "Biztos, hogy el akarja távolítani ezt az elemet a könyvtárából? Ahhoz, hogy visszakapja, a tulajdonosnak újra hozzáférést kell biztosítania Önnek.", + "SubtitlesDownloaded": "Letöltött feliratok", + "HeaderMakePrivate": "Legyen privát", + "HeaderMakePublic": "Legyen nyilvános", + "MakePublicDescription": "Minden felhasználó megtekintheti ezt az elemet. A felhasználók szerkesztési hozzáférést kaphatnak.", + "MakePrivateDescription": "A felhasználók továbbra is egyénileg kaphatnak hozzáférést.", + "Private": "Privát", + "Public": "Nyilvános", + "Collaborative": "Együttműködő", + "PreferredShowDisplay": "Előnyben részesített TV műsor megjelenítése", + "ShowAllEpisodesAllSeasons": "Az összes évad összes epizódjának megjelenítése", + "ShowAllEpisodesSingleSeason": "Az összes epizód megjelenítése csak egyetlen évados műsorokhoz", + "ShowSeasonFolders": "Mindig jelenítse meg az évad mappáit", + "HeaderAddAgain": "Hozzáadás újra", + "UpNext": "Következő", + "ItemsAlreadyInPlaylist": "Ezen elemek némelyike már szerepel a lejátszási listán.", + "ItemAlreadyInPlaylist": "Ez az elem már szerepel a lejátszási listán.", + "HeaderPlayChannel": "Csatorna lejátszása", + "LabelScreenOrientationDuringVideo": "Képernyő tájolása videó lejátszása közben", + "UseDeviceSetting": "Eszközbeállítás használata", + "LockToLandscape": "Zárolás fekvő módba", + "UsernameForFolderHelp": "A hálózati mappa eléréséhez szükséges felhasználónév (ha van).", + "PasswordForFolderHelp": "A hálózati mappa eléréséhez szükséges jelszó (ha van).", + "ShowMediaInfoOnDetailScreens": "A teljes médiatartalom megjelenítése a hang- és videórészletek képernyőjének alján", + "ForgotPasswordNoUserFound": "Nem található felhasználó a megadott névvel. Kérjük, próbálja újra, vagy hagyja üresen a nevet a szerver összes felhasználójának jelszavának visszaállításához.", + "Silver": "Ezüst", + "DimGray": "Halvány szürke", + "DarkGray": "Sötétszürke", + "LightGray": "Világos szürke", + "Black": "Fekete", + "Blue": "Kék", + "Cyan": "Cián", + "Gray": "Szürke", + "Green": "Zöld", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Narancs", + "Pink": "Rózsaszín", + "Red": "Piros", + "Yellow": "Sárga", + "White": "Fehér", + "Purple": "Lila", + "RecentlyReleasedMovies": "Nemrég megjelent filmek", + "RecentlyReleasedEpisodes": "Nemrég megjelent epizódok", + "DolbyProfile": "Dolby profil", + "IpAddress": "IP cím", + "VideoType": "Videó típusa", + "HidePlayedMediaFrom": "Lejátszott média elrejtése innen", + "BottomEdgePosition": "Alsó széle helyzete", + "VerticalPositionFromBottomScreen": "Állítsa be a feliratok függőleges pozícióját a képernyő aljához képest.", + "TopEdgePosition": "Felső széle helyzete", + "TopEdgePositionHelp": "A feliratok legnagyobb megengedett függőleges pozíciójának beállítása a képernyő tetejéhez képest. Ezt akkor kell használni, ha a feliratok tartalmaznak olyan pozicionálási utasításokat, amelyeket a képernyő tetején kell elhelyezni.", + "HeaderSubtitlePosition": "Felirat pozíciója", + "TitleProfilePin": "Profil PIN kód", + "ProfilePinConfirm": "Profil PIN kód (megerősítés)", + "SaveProfilePin": "PIN mentése", + "ProfilePinDescription": "Hozzon létre egy opcionális PIN kódot, amelynek megadását mindig kérjük az Emby alkalmazás indításakor egy olyan eszközön, amelyen már korábban azonosította magát. Ez akkor hasznos, ha több felhasználó által megosztott eszközökkel rendelkezik. Szükség szerint szelektíven engedélyezheti az egyes eszközökön.", + "TitleNewEpisodes": "Új epizódok", + "EnterYourPinToContinue": "A folytatáshoz adja meg a PIN kódot.", + "YourPinMustBe": "A PIN kódnak {0} számjegyűnek kell lennie.", + "ForgotPin": "Elfelejtette a PIN kódot?", + "RequireEnteringPinToReturn": "A profilom PIN kódjának megadására van szükség, amikor visszatérek az alkalmazáshoz.", + "RequireEnteringPinToReturnQuestion": "Kérdezzük meg Öntől a profil PIN kódját, amikor visszatér erre az alkalmazásra? Ha ezt az eszközt több felhasználó osztja meg, a profil PIN kódja segíthet megakadályozni, hogy a többi felhasználó hozzáférjen az Ön adataihoz.", + "RequireEnteringPinToReturnHelp": "Hasznos, ha az eszközt több felhasználó osztja meg.", + "WrongPinPleaseTryAgain": "Hoppá, rossz PIN kód. Kérjük, próbálja újra.", + "ProfilePinIsOn": "A profil PIN-kódja jelenleg be van kapcsolva.", + "IfTryingToConnectToHttp": "Ha az Emby Server-hez HTTP címmel próbál csatlakozni, előfordulhat, hogy a böngészője a HTTPS követelmények miatt ezt nem engedélyezi. Kérjük, próbálja meg a következők egyikét:", + "SetupHttpsForYourServer": "Állítsa be a {0}HTTPS-t az Emby Server{1} számára, hogy HTTPS használatával tudjon csatlakozni.", + "TitleUnableToReachServer": "A kiszolgáló nem elérhető", + "TitleUnableToReachName": "Nem elérhető {0}", + "HearingImpaired": "Hallássérült", + "SignIntoServerName": "Bejelentkezés ide: {0}", + "About": "Információ", + "Specials": "Különlegességek", + "NSettings": "{0} Beállítások", + "NPreferences": "{0} Tulajdonságok", + "DetailScreenOptions": "Részletező képernyők", + "LabelGenreDisplayLimit": "Műfaj megjelenítési korlát", + "GenreDisplayLimitHelp": "A tételrészletező képernyők tetején megjelenő műfajok számának korlátozása.", + "GenreDisplayLimitForListsHelp": "Korlátozza a lejátszási lista, a gyűjtemény és az előadó adatainak tetején megjelenő műfajok számát.", + "LabelGenreDisplayLimitForLists": "Műfaj megjelenítési korlát a listákhoz", + "ShowPosterOnDetails": "Poszter megjelenítése a részletező képernyőn", + "ShowPosterOnDetailsHelp": "Válassza ki, hogy a poszter megjelenjen-e a videó részletképernyőin, vagy rejtse el, hogy minimalistább, a hátteret hangsúlyozó megjelenést kapjon. Ez a beállítás kisebb képernyőelrendezéseknél nem használható. Egyes elemtípusok figyelmen kívül hagyják ezt a beállítást.", + "EnableAppLogging": "Alkalmazásnaplózás engedélyezése", + "EnableAppLoggingHelp": "A naplózás ronthatja az alkalmazás teljesítményét és csak akkor engedélyezhető, ha hibaelhárítás céljából szükséges. A módosításokhoz az alkalmazás újraindítása szükséges.", + "LabelSlideshowInterval": "Diavetítési idő diánként", + "TVChannelImageEditorHelp": "Több logóverzió támogatott. Az Emby alkalmazások automatikusan kiválasztják a megfelelőt az aktuális témától függően.", + "PlaySlideshow": "Diavetítés lejátszása", + "CheckForExistingEpisodesInAllLibraries": "Ellenőrizze a meglévő epizódokat az összes könyvtárban", + "GroupNotificationsBySeriesOrAlbum": "Csoportosítsa az értesítéseket sorozatok és albumok szerint", + "ThemeSettings": "Téma beállításai", + "FollowingActivityWillBeDisrupted": "A következő tevékenység megszakad, és manuális beavatkozást igényelhet az újraindításhoz:", + "OneActivePlaybackSession": "1 aktív videólejátszás", + "NumActivePlaybackSessions": "{0} aktív videólejátszás", + "OneActiveRecording": "1 Aktív felvétel", + "NumActiveRecordings": "{0} Aktív felvétel", + "PlayFromLivePosition": "Folytatás élőben", + "PlayFromStartOfRecording": "Lejátszás a felvétel elejétől", + "ThisChannelIsActivelyRecording": "Ez a csatorna aktívan rögzít. Hogyan szeretné elkezdeni a lejátszást?", + "ThemeSongVolume": "A főcímdal hangereje", + "HeaderForceConversionForFormats": "Átkódolás kényszerítése formátumokra", + "ForceConversionForFormatsHelp": "Használja ezt a szerveroldali átkódolás vagy remuxing kényszerítésére olyan formátumok esetén, amelyek nem játszhatók le közvetlenül ezen az eszközön.", + "StartupBehavior": "Indítási viselkedés", + "RememberLastUser": "Emlékezzen az utolsó felhasználóra", + "ShowLoginScreen": "Bejelentkezési képernyő megjelenítése", + "SignInAsValue": "Bejelentkezés mint {0}", + "ConvertUnsupportedAudio": "Nem támogatott térhatású hang átalakítása Dolby Digital formátumra", + "ConvertUnsupportedAudioHelp": "Kerülje a nem támogatott térhangzású formátumok sztereóra keverését és az Emby Server inkább Dolby Digital formátumba kódolja őket.", + "HeaderPlaybackCorrection": "Lejátszás javítása", + "HeaderAttemptPlaybackCorrection": "Lejátszás javítási kísérlet", + "PlaybackCorrectionConfirm": "Megpróbálja a lejátszás javítását?", + "PlaybackCorrectionDescription": "A jelenlegi elemnél jelentkezik lejátszási probléma, például nincs kép vagy hang? Ez megpróbálja kijavítani a lejátszási hibákat a szerveren átkódolással, hogy a fájlt adatfolyam barátabb formátumba alakítsa. Ez megnövelt erőforrás használatot eredményez az Emby Server-en.", + "PlaybackCorrectionDescription2": "Ezt videónként legfeljebb háromszor teheted meg, ahol a remuxing, a videó- és hang átkódolás egyenként, egymás után aktiválódnak.", + "HeaderAlbumsAsContributingArtist": "Albumok közreműködő előadóként", + "HeaderAlbumsAsComposer": "Albumok szerzőként", + "Duplicates": "Ismétlődések", + "HeaderSleepTimer": "Elalvás időzítő", + "AfterCurrentItem": "A jelenlegi elem után", + "HeaderStopPlayback": "Lejátszás leállítása", + "TurnOffTimer": "Időzítő kikapcsolása", + "SleepTimerIsSet": "Az elalvás időzítő be van állítva", + "SleepTimerIsOff": "Az elalvás időzítő ki van kapcsolva", + "LabelEnableRemoteControlTVMode": "Vetítési és távirányítási funkciók megjelenítése", + "EnableRemoteControlTVModeHelp": "Engedélyezze, ha ezt az eszközt média küldésére kívánja használni más eszközökre.", + "ShowOnScreenControls": "Képernyőn megjelenő vezérlők megjelenítése", + "LabelVideoScreenUpAction": "Videólejátszó felfelé gomb funkciója", + "VideoScreenUpActionHelp": "Válassza ki, milyen művelet történjen, amikor a felfelé gombot megnyomja a videólejátszó képernyőjén. Ez akkor érvényes, ha a képernyőn nincsenek látható vezérlők. Ha a vezérlők már láthatók, a felfelé gomb a navigációhoz lesz használva.", + "LabelVideoPlayerLongPressAction": "Videólejátszó hosszan nyomott gomb művelet", + "LetsGetSetup": "Kezdjük a beállítást", + "VideoPlayerLongPressActionHelp": "Válassza ki, hogy milyen funkció vagy menü jelenjen meg, amikor a videó lejátszása közben hosszan lenyomja az OK gombot. Ez csak akkor lép életbe, ha a videóvezérlők el vannak rejtve, vagy a keresősáv van fókuszban.", + "AskAdminToGetPremiere": "Ezt a vásárlást a szerver adminisztrátora tudja elvégezni. Kérd meg ennek az Emby Server-nek az adminisztrátorát, hogy jelentkezzen be és szerezze be az Emby Premiere-t, így hozzáférhetsz a prémium funkciókhoz.", + "AutoOpenSingleItemsFolders": "Automatikus megnyitás egyetlen elem esetén mappanézetben", + "AutoOpenSingleItemsFoldersHelp": "Ha egy mappa csak egy elemet tartalmaz, automatikusan nyissa meg azt az elemet.", + "PlayedOnValue": "Lejátszva: {0}", + "TheseSettingsApplyAppDevice": "Ezek a beállítások minden felhasználóra érvényesek, akik ezen az eszközön lejátszanak valamit.", + "LastContentDateAdded": "Utolsó tartalom hozzáadási dátuma", + "RepeatThemeMedia": "Háttéranyag (főcímdal, háttérvideók) lejátszásának ismétlése", + "HideEpisodeSpoilerInfo": "Spoilerinformációk elrejtése a nem nézett epizódokból", + "HideEpisodeSpoilerInfoHelp": "Elrejti a képet és az áttekintést a meg nem nézett epizódoknál a legtöbb képernyőn.", + "BornValueAge": "Született: {0} (életkor: {1})", + "PreferDirectStreamLiveTV": "Előnyben részesíti az élő TV adás folyamatos átvitelét", + "PreferDirectStreamLiveTVHelp": "Az élő TV közvetlen adatfolyama csökkenti az erőforrás használatot az Emby szerveren, de előfordulhat, hogy lejátszás közben kevésbé lesz kereshető. Ennek engedélyezése esetén az élő TV közvetlen adatfolyamban kerül továbbításra, ha a formátum támogatott és megfelel a beállított minőségi értékeknek. Letiltásával több keresési lehetőséget élvezhet lejátszás közben, viszont ez nagyobb erőforrás használattal jár.", + "HeaderAllRecordings": "Minden felvétel", + "RememberLoginDescription": "Bejelentkezés után az alkalmazás beállításaiban konfigurálhatod az indítási viselkedést, hogy megjegyezze a bejelentkezést, egy adott felhasználóként jelentkezzen be, vagy mindig megjelenítse a bejelentkezési képernyőt.", + "ForgetThisServer": "Felejtsd el ezt a szervert", + "ForgetServerConfirmation": "Biztosan el szeretné felejteni ezt a szervert?", + "HeaderThisDevice": "Ez az eszköz", + "ChaptersGuide": "Fejezetek / Élő TV műsorújság", + "ChaptersGuideHelp": "Fejezetek megjelenítése a fejezetekkel rendelkező médiáknál. A fejezetek nélküli médiáknál az Élő TV műsorújságot jeleníti meg (ha elérhető).", + "HeaderShowSeriesImages": "A sorozatok képeinek megjelenítése", + "AppExitConfirmation": "Készen állsz a kilépésre Emby-ből?", + "AppExitMenu": "Kilépés menü", + "SideMenu": "Oldalsó navigációs menü", + "SystemStorage": "Rendszer tárhely ({0})" +} diff --git a/modules/common/strings/id.json b/modules/common/strings/id.json new file mode 100644 index 0000000..49ad268 --- /dev/null +++ b/modules/common/strings/id.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby dirancang untuk membantumu mengatur pustaka media pribadimu, seperti video dan foto pribadi. Silakan lihat {0}kebijakan layanan{1} kami. Penggunaan Emby menandakan persetujuan pada kebijakan tersebut.", + "MessageUnableToConnectToServer": "Kami tidak dapat menghubungi server yang dipilih. Harap pastikan server aktif kemudian silakan coba lagi.", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server.", + "HeaderSignInWithConnect": "Masuk dengan Emby Connect", + "HeaderWelcomeToEmby": "Selamat datang di Emby", + "HeaderNewUsers": "Pengguna Baru", + "HeaderPleaseSignIn": "Silakan Masuk", + "MessageInvalidUser": "Nama pengguna atau sandi tidak sah. Silakan coba lagi.", + "MessageUnlockAppWithPurchaseOrSupporter": "Buka fitur ini dengan pembelian satu kali, atau dengan langganan Emby Premiere yang aktif.", + "MessageUnlockAppWithSupporter": "Buka fitur ini dengan langganan Emby Premiere.", + "MessageToValidateSupporter": "Jika kamu sudah memperoleh langganan Emby Premiere, pastikan kamu telah mengaturnya pada Dasbor Emby Server, dengan cara mengklik Emby Premiere pada menu utama.", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Masuk", + "Share": "Bagikan", + "Shared": "Shared", + "Info": "Informasi", + "Add": "Tambah", + "Speed": "Kecepatan", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapters", + "Password": "Sandi", + "SavePassword": "Simpan Sandi", + "LabelPassword": "Sandi:", + "HeaderResetPassword": "Reset Password", + "Series": "Serial", + "Preview": "Pratinjau", + "Submit": "Kirim", + "Never": "Never", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Hasil Utama", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Selalu aktif", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Unggah hanya ketika berada di jaringan Wifi", + "HeaderFoldersToUpload": "Folder yang Diunggah", + "LabelPasswordConfirm": "Sandi (konfirmasi):", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Nama Pengguna:", + "HeaderAddServer": "Tambah Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Hapus dari Lanjut Menonton", + "RemoveThisTitleFromContinueWatching": "Hapus judul ini dari Lanjut Menonton?", + "HeaderRemoveFromContinueListening": "Hapus dari Lanjut Mendengarkan", + "RemoveThisTitleFromContinueListening": "Hapus judul ini dari Lanjut Mendengarkan?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Tutup", + "HeaderSeeAll": "Lihat Semua", + "HeaderOpenInNewWindow": "Buka di Jendela Baru", + "LabelEmail": "Email:", + "LabelHost": "Host", + "LabelHostHelp": "192.168.1.100 atau https://serverku.com", + "LabelPort": "Port:", + "Disabled": "Nonaktif", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Berikutnya: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "Tidak ditemukan cuplikan. Untuk menambahkan, silakan instal plugin Trailer dari {0}katalog plugin Emby{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Apa kamu masih menonton?", + "LabelCurrentPassword": "Sandi saat ini:", + "LabelNewPassword": "Sandi baru:", + "LabelNewPasswordConfirm": "Konfirmasi sandi baru:", + "HeaderRemovePassword": "Hapus Sandi", + "ServerUpdateNeeded": "Emby Server perlu diperbarui. Untuk mengunduh versi terbaru, silakan buka {0}", + "MessageThankYouForConnectSignUp": "Terima kasih telah mendaftar ke Emby Connect. Sebuah email akan dikirimkan ke alamat email-mu yang berisikan cara mengonfirmasi akun barumu. Silakan konfirmasi kemudian kembali ke sini untuk masuk.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "Nama pengguna ini sudah digunakan. Harap pilih nama yang lain kemudian coba lagi.", + "ErrorMessageEmailInUse": "Alamat email ini sudah digunakan. Harap masukkan email lain kemudian coba lagi, atau gunakan fitur lupa sandi.", + "HeaderUpcomingOnTV": "Akan Tayang Di Siaran TV", + "HeaderOtherShowings": "Penayangan Lain", + "Showings": "Penayangan", + "HeaderConnectToServer": "Hubungi Server", + "ConnectToServerManually": "Hubungi server secara manual", + "LabelEnterConnectUserNameHelp": "Ini adalah alamat email yang kamu gunakan untuk akun Emby Connect-mu.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Lupa Sandi?", + "ForgotPasswordUsernameHelp": "Kosongkan jika kamu tidak ingat nama penggunamu.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "New", + "Done": "Selesai", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premiere", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Tentukan metode masuk akun untuk perangkat yang berada pada jaringan yang sama dengan Emby Server ini.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Live", + "Reset": "Reset", + "Repeat": "Repeat", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} Tracks", + "ItemCount": "{0} Items", + "NumberChannelsValue": "{0} Saluran", + "HeaderLatestMusic": "Musik Terbaru", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Video Terunduh Terbaru", + "HeaderRecentlyPlayed": "Baru Diputar", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Sering Diputar", + "HeaderMoreLikeThis": "Lainnya Yang Serupa", + "HeaderMoreLikeThisOnLiveTV": "Lainnya Yang Serupa di Siaran TV", + "OriginalAirDateValue": "Tanggal penyiaran asli: {0}", + "EndsAtValue": "Berakhir pada {0}", + "Date": "Date", + "AirDate": "Air Date", + "Played": "Played", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Last Episode Date Added", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Judul Episode", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitel", + "Image": "Gambar", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Codec audio:", + "LabelAudioLanguage": "Bahasa audio:", + "LabelSubtitleLanguage": "Bahasa subtitel:", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Parental rating", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Karena kamu sudah menonton {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Invitations", + "ActorAsRole": "sebagai {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "Pengguna", + "Access": "Akses", + "Users": "Pengguna", + "Library": "Pustaka", + "Devices": "Perangkat", + "Cancel": "Cancel", + "Restart": "Mulai Ulang", + "Shutdown": "Matikan", + "Logs": "Log", + "Visibility": "Visibility", + "Notifications": "Notifikasi", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notifikasi terkirim", + "DeleteNotificationConfirmation": "Apa kamu yakin ingin menghapus notifikasi ini?", + "DeleteNotification": "Hapus Notifikasi", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugin", + "Systems": "Sistem", + "Server": "Server", + "Dashboard": "Dasbor", + "PlayOnAnotherDevice": "Putar di perangkat lain", + "HeaderConnectionHelp": "Bantuan Koneksi", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Mengerti", + "RememberMe": "Ingat saya", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Kelola Emby Server", + "ShutdownServer": "Matikan Emby Server", + "RestartServer": "Mulai Ulang Emby Server", + "RecordingCancelled": "Perekaman Dibatalkan", + "SeriesCancelled": "Serial Dibatalkan", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Perekaman Terjadwal", + "SeriesRecordingScheduled": "Perekaman Serial Terjadwal", + "HeaderNewRecording": "Rekaman Baru", + "HeaderWakeServer": "Bangunkan Server", + "AttemptingWakeServer": "Mencoba untuk membangunkan server. Harap tunggu...", + "WakeServerSuccess": "Berhasil!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine.", + "Days": "Hari", + "Network": "Jaringan", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Urut Berdasarkan", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Cinema Intros", + "Conversions": "Conversions", + "Downloads": "Unduhan", + "HeaderManageDownloads": "Atur Unduhan", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profil", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Ukuran", + "Resolution": "Resolusi", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Bahasa", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Offline Media", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", + "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.", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature.", + "HeaderFreeApps": "Free Emby Apps", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", + "HeaderBecomeProjectSupporter": "Dapatkan Emby Premiere", + "HeaderViewServerInfo": "Lihat Informasi Server", + "PlaybackTvModeRequiresEmbyPremiere": "Pemutaran media pada mode TV memerlukan {0}langganan Emby Premiere{1} yang aktif.", + "FeatureRequiresEmbyPremiere": "Fitur ini memerlukan {0}langganan Emby Premiere{1} yang aktif.", + "HeaderConvertYourRecordings": "Konversikan Rekaman Kamu", + "Record": "Rekam", + "Save": "Simpan", + "Edit": "Edit", + "HeaderSavePlaylist": "Simpan Playlist", + "Latest": "Terbaru", + "Download": "Unduh", + "Downloaded": "Terunduh", + "Converted": "Terkonversi", + "RemoveFromHistory": "Hapus dari Riwayat", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Mengunduh", + "Advanced": "Lanjutan", + "LinkedToEmbyConnect": "Terhubung dengan Emby Connect", + "Delete": "Hapus", + "Both": "Keduanya", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Delete Item", + "HeaderDeleteUser": "Hapus Pengguna", + "DeleteItemConfirmation": "Apa kamu yakin ingin menghapus {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library.", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Refresh", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Add to Collection", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Tambah ke Favorit", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "Playlist Baru", + "AllCollections": "Semua Koleksi", + "AllPlaylists": "Semua Playlist", + "Create": "Create", + "HeaderAddedToPlaylist": "Ditambahkan ke Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Help", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "Navigation": "Navigasi", + "HeaderVideoPlayback": "Pemutaran Video", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Musim", + "OneTrack": "1 Track", + "OneSeason": "1 Musim", + "Libraries": "Pustaka", + "NumberSeasonsValue": "{0} Musim", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Bahasa tampilan:", + "LabelDisplayLanguageHelp": "Menerjemahkan Emby adalah proyek terus-menerus.", + "LearnHowYouCanContribute": "Cari tahu cara kamu dapat berkontribusi.", + "NewCollectionHelp": "Koleksi memungkinkanmu untuk mengelompokkan film dan konten pustaka lainnya.", + "SearchForCollectionInternetMetadata": "Telusuri karya seni dan metadata di internet", + "DisplayMissingEpisodesWithinSeasons": "Tampilkan episode yang belum ada pada musim", + "DisplayMissingEpisodesWithinSeasonsHelp": "Ini juga harus diaktifkan untuk pustaka serial TV di Pengaturan Emby Server.", + "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", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Nama:", + "NewCollectionNameExample": "Contoh: Koleksi Star Wars", + "MessageItemsAdded": "Items added.", + "OptionNew": "New...", + "LabelPlaylist": "Playlist:", + "AddToPlaylist": "Tambah ke playlist", + "HeaderAddToPlaylist": "Tambah ke Playlist", + "Subtitles": "Subtitel", + "LabelTheme": "Tema:", + "LabelSettingsTheme": "Tema pengaturan:", + "LabelThemeAccentColor": "Warna utama:", + "ThemeAccentColorDescription": "Atur warna untuk indikator, ikon, dan teks penting.", + "SearchForSubtitles": "Search for Subtitles", + "LabelLanguage": "Bahasa:", + "Search": "Telusuri", + "NoSubtitleSearchResultsFound": "Tidak ditemukan hasil. Sudahkah kamu mengatur {0}pengunduhan subtitel{1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lirik", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "File", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "ConfirmDeletion": "Confirm Deletion", + "MySubtitles": "My Subtitles", + "MessageDownloadQueued": "Download queued.", + "HeaderEditSubtitles": "Edit Subtitel", + "UnlockGuide": "Unlock Guide", + "HeaderRefreshMetadata": "Muat Ulang Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Replace existing images", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "Replace all metadata", + "SearchForMissingMetadata": "Search for missing metadata", + "LabelRefreshMode": "Refresh mode", + "NoItemsFound": "No items found.", + "HeaderSaySomethingLike": "Say Something Like...", + "ButtonTryAgain": "Coba Lagi", + "HeaderYouSaid": "You Said...", + "MessageWeDidntRecognizeCommand": "Maaf, kami tidak dapat memahami perintah tersebut.", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "ValueDiscNumber": "Disc {0}", + "Unrated": "Unrated", + "Favorite": "Favorit", + "Like": "Like", + "Dislike": "Dislike", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup.", + "Open": "Buka", + "Play": "Putar", + "Pause": "Jeda", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Acak", + "Identify": "Identifikasi", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Konversi", + "Resume": "Lanjut", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Buka Musim", + "HeaderGoToSeries": "Buka Serial", + "HeaderGoToAlbum": "Buka Album", + "HeaderGoToArtist": "Buka Artis", + "HeaderPlayAll": "Putar Semua", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Layar penuh", + "ExitFullscreen": "Keluar dari layar penuh", + "Rewind": "Mundur", + "FastForward": "Maju", + "Remove": "Hapus", + "Rename": "Ubah nama", + "Queue": "Queue", + "QueueAllFromHere": "Queue all from here", + "PlayAllFromHere": "Putar semua dari sini", + "PlayFromBeginning": "Putar Dari Awal", + "FromBeginning": "From Beginning", + "ResumeAt": "Lanjut dari {0}", + "HeaderRemoveFromPlaylist": "Hapus dari Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Hapus dari Koleksi", + "Sort": "Urutkan", + "Trailer": "Cuplikan", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Tandai Telah Diputar", + "HeaderMarkUnplayed": "Tandai Belum Ditonton", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Error", + "VoiceInput": "Voice Input", + "LabelContentType": "Tipe konten:", + "LabelPath": "Path:", + "Playlists": "Playlist", + "LabelTitle": "Judul:", + "LabelOriginalTitle": "Judul asli:", + "LabelSortTitle": "Sort title", + "LabelDateAdded": "Tanggal ditambahkan:", + "DateAdded": "Tanggal Ditambahkan", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Status", + "LabelArtistsHelp": "Separate multiple using ;", + "HeaderAlbumArtists": "Artis Album", + "LabelAlbumArtists": "Artis album:", + "LabelAlbum": "Album:", + "Artist": "Artis", + "Artists": "Artis", + "ImdbRating": "Peringkat IMDb", + "CommunityRating": "Community Rating", + "LabelCommunityRating": "Community rating", + "LabelCriticRating": "Critic rating", + "CriticRating": "Critic Rating", + "LabelWebsite": "Situs web:", + "Tagline": "Tagline", + "LabelOverview": "Ringkasan:", + "LabelShortOverview": "Short overview", + "LabelReleaseDate": "Tanggal rilis:", + "LabelPlaceOfBirth": "Tempat lahir:", + "Aired": "Aired", + "LabelAirDays": "Hari disiarkan:", + "LabelAirTime": "Waktu disiarkan:", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelCustomRating": "Custom rating", + "LabelOriginalAspectRatio": "Original aspect ratio", + "Label3DFormat": "Format 3D:", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Unduhan", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Pengaturan Tampilan", + "PlaylistOrder": "Urutan Playlist", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Display order", + "LabelFileOrder": "File order", + "Display": "Tampilan", + "Countries": "Negara", + "Genres": "Genre", + "Studios": "Studio", + "Tags": "Tags", + "Links": "Tautan", + "Movie": "Film", + "Program": "Program", + "Channel": "Saluran", + "Episode": "Episode", + "Season": "Musim", + "HeaderMetadataSettings": "Pengaturan Metadata", + "People": "Orang", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Preferred metadata download language", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LabelCountry": "Negara:", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "ID {0}:", + "LabelBirthYear": "Tahun lahir:", + "LabelBirthDate": "Birth date", + "LabelDeathDate": "Death date", + "LabelEndDate": "End date", + "LabelSeasonNumber": "Season number", + "LabelEpisodeNumber": "Episode number", + "LabelTrackNumber": "Track number", + "LabelNumber": "Number", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Sort Title", + "OriginalTitle": "Original Title", + "ReleaseDate": "Release Date", + "Continuing": "Continuing", + "Ended": "Berakhir", + "HeaderEnabledFields": "Enabled Fields", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed.", + "Backdrops": "Backdrops", + "Images": "Gambar", + "Runtime": "Runtime", + "ProductionLocations": "Lokasi produksi", + "BirthLocation": "Tempat lahir", + "ParentalRating": "Parental Rating", + "PlayCount": "Play count", + "Name": "Nama", + "Overview": "Ringkasan", + "LabelType": "Jenis:", + "LabelPersonRole": "Role", + "LabelPersonRoleHelp": "Contoh: sopir truk es krim", + "Actor": "Aktor", + "Composers": "Composers", + "Composer": "Composer", + "Director": "Sutradara", + "GuestStar": "Bintang tamu", + "Producer": "Produser", + "Writer": "Penulis", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Installing {0}", + "PackageInstallCompleted": "{0} installation completed.", + "PackageInstallFailed": "{0} installation failed.", + "PackageInstallCancelled": "{0} installation cancelled.", + "SeriesYearToPresent": "{0} - Sekarang", + "OneDevice": "1 Perangkat", + "DeviceCountValue": "{0} Perangkat", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 Pengguna", + "UserCountValue": "{0} Pengguna", + "OneLibrary": "1 Pustaka", + "LibraryCountValue": "{0} Pustaka", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episode", + "Albums": "Album", + "Song": "Lagu", + "Songs": "Lagu", + "Authors": "Penulis", + "Books": "Buku", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "PleaseEnterNameOrId": "Please enter a name or an external Id.", + "MessageItemSaved": "Item saved.", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Emby Server - {0} is restarting.", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "PleaseRestartServerName": "Please Restart Emby Server on {0}", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Downloading...", + "LearnMore": "Learn more", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Tangkapan layar", + "MoveRight": "Pindah ke kanan", + "MoveLeft": "Pindah ke kiri", + "HeaderUploadNewImage": "Unggah Gambar Baru", + "HeaderDeleteImage": "Hapus Gambar", + "ConfirmDeleteImage": "Hapus gambar?", + "HeaderEditImages": "Edit Gambar", + "Settings": "Pengaturan", + "ShowIndicatorsFor": "Show Indicators", + "Episodes": "Episode", + "Programs": "Program", + "HeaderCastCrew": "Pemeran & Kru", + "DvrSubscriptionRequired": "Siaran TV & DVR Emby memerlukan langganan {0}Emby Premiere{1} yang aktif.", + "HeaderCancelRecording": "Batalkan Perekaman", + "HeaderKeepRecording": "Teruskan Rekaman", + "HeaderCancelSeries": "Batalkan Serial TV", + "HeaderKeepSeries": "Teruskan Serial TV", + "HeaderLearnMore": "Ketahui Lebih Lanjut", + "SeriesSettings": "Pengaturan serial", + "HeaderRecordingOptions": "Recording Options", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Series Options", + "Layout": "Layout", + "Channels": "Saluran", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Kapan saja", + "AnyLanguage": "Bahasa apa saja", + "AroundTime": "Sekitar {0}", + "HeaderLatestMovies": "Film Terbaru", + "All": "Semua", + "Stop": "Berhenti", + "AllChannels": "Semua saluran", + "NewEpisodesOnly": "Hanya episode baru", + "AllEpisodes": "Semua episode", + "LabelStartWhenPossible": "Jika memungkinkan, mulai:", + "LabelStopWhenPossible": "Jika memungkinkan, hentikan:", + "MinutesBefore": "menit sebelum", + "MinutesAfter": "menit sesudah", + "SkipEpisodesAlreadyInMyLibrary": "Jangan rekam episode yang sudah ada pada pustakaku", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", + "LabelKeepUpTo": "Simpan hingga:", + "AsManyAsPossible": "Sebanyak mungkin", + "DefaultErrorMessage": "Terjadi kesalahan ketika memproses permintaan. Silakan coba lagi nanti.", + "UntilIDelete": "Hingga saya hapus", + "UntilSpaceNeeded": "Hingga dibutuhkan ruang", + "Categories": "Kategori", + "Sports": "Sports", + "News": "News", + "Movies": "Film", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Lahir: {0}", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Manfaat Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "I have Emby Premiere", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "ButtonUnlockPrice": "Unlock {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Sudah Membayar?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "HeaderUnlockFeature": "Unlock Feature", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Jelajahi Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Ditambahkan pada {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Lanjut", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Putar Di", + "Quality": "Kualitas", + "Auto": "Otomatis", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "Media Saya", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "{0} Terbaru", + "HeaderLatestEpisodes": "Episode Terbaru", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Lanjut Menonton", + "HeaderContinueListening": "Lanjut Mendengarkan", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Rekaman Terbaru", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Unduh ke:", + "HeaderDownloadToDots": "Unduh ke...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Pengaturan tersimpan.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "Selengkapnya", + "Up": "Atas", + "Down": "Down", + "Home": "Beranda", + "Back": "Kembali", + "Random": "Random", + "Playback": "Pemutaran", + "Favorites": "Favorit", + "HeaderHomeScreen": "Beranda", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Urutan Pustaka", + "HeaderOnNow": "Sedang Tayang", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Kesalahan Pemutaran", + "PlaybackErrorNotAllowed": "Kamu saat ini tidak diizinkan untuk memutar konten ini. Silakan hubungi administrator sistemmu untuk informasi lebih lanjut.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Panduan", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Saran", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Koleksi Favorit", + "HeaderFavoritePlaylists": "Playlist Favorit", + "Collection": "Collection", + "Collections": "Koleksi", + "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.", + "Mute": "Bisukan", + "Unmute": "Suarakan", + "Folder": "Folder", + "Folders": "Folder", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Serial", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Layar utama:", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Siaran TV", + "Schedule": "Jadwal", + "Recordings": "Rekaman", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Informasi statistik", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Bagian Tambahan", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Mode subtitel:", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "Tanpa subtitel", + "Default": "Bawaan", + "Absolute": "Absolute", + "Smart": "Cerdas", + "Small": "Kecil", + "Smaller": "Sangat kecil", + "Medium": "Sedang", + "Large": "Besar", + "Larger": "Sangat besar", + "ExtraLarge": "Besar sekali", + "ExtraSmall": "Kecil sekali", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Selalu tampilkan subtitel", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Pengaturan Subtitel", + "HeaderSubtitleAppearance": "Tampilan Subtitel", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Bahasa utama subtitel:", + "LabelTextSize": "Ukuran teks:", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Warna teks:", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "Koneksi Wifi diperlukan untuk terus mengunduh.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Pengaturan Pengunduhan", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "Hide": "Hide", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "Show Fields", + "LabelView": "Tampilan:", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Audio Settings", + "LabelAudioLanguagePreference": "Bahasa utama audio:", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Kualitas Video", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Putar episode berikutnya secara otomatis", + "LabelMaxChromecastBitrate": "Kualitas streaming Chromecast:", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Kualitas Musik", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Media Terbaru", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Otomatis (berdasarkan pengaturan perangkat)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "Genre": "Genre", + "DirectorValue": "Sutradara: {0}", + "DirectorsValue": "Sutradara: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genre: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Judul", + "Year": "Tahun", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Cuplikan", + "Extras": "Extras", + "ThemeSongs": "Theme songs", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Film Favorit", + "HeaderFavoritePhotos": "Foto Favorit", + "HeaderFavoriteShows": "Serial Favorit", + "HeaderFavoriteEpisodes": "Favorite Episodes", + "HeaderFavoriteVideos": "Favorite Videos", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Favorite Games", + "HeaderFavoriteArtists": "Favorite Artists", + "HeaderFavoriteAlbums": "Favorite Albums", + "HeaderFavoriteSongs": "Lagu Favorit", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Keluar", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Beralih Server", + "HeaderChangeUser": "Beralih Pengguna", + "HeaderAppSettings": "Pengaturan Aplikasi", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Informasi Media", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Aktifkan dialog 'Apa Kamu Masih Menonton?'", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} tersisa", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Lewati Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Ukuran gambar:", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "Lihat Lirik", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Tampilan serial TV utama:", + "ShowAllEpisodesAllSeasons": "Tampilkan seluruh episode dari semua musim", + "ShowAllEpisodesSingleSeason": "Tampilkan seluruh episode untuk serial yang hanya punya satu musim", + "ShowSeasonFolders": "Selalu tampilkan folder untuk setiap musim", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Orientasi layar selama pemutaran video:", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Sembunyikan Media Yang Telah Diputar Dari", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Masukkan PIN kamu untuk melanjutkan.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Tidak Dapat Menghubungi Server", + "TitleUnableToReachName": "Tidak Dapat Menghubungi {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "Tentang", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/is.json b/modules/common/strings/is.json new file mode 100644 index 0000000..9fb1f82 --- /dev/null +++ b/modules/common/strings/is.json @@ -0,0 +1,1340 @@ +{ + "LabelCountry": "Country", + "HeaderInvitationSent": "Invitation Sent", + "Hide": "Hide", + "EmbyLoginTerms": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our {0}terms of use{1}. The use of any Emby software constitutes acceptance of these terms.", + "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server.", + "HeaderSignInWithConnect": "Sign in with Emby Connect", + "HeaderWelcomeToEmby": "Welcome to Emby", + "HeaderNewUsers": "New Users", + "HeaderPleaseSignIn": "Please Sign In", + "MessageInvalidUser": "Invalid username or password. Please try again.", + "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.", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Sign In", + "Share": "Share", + "Shared": "Shared", + "Info": "Info", + "Add": "Add", + "Speed": "Speed", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapters", + "Password": "Password", + "SavePassword": "Save Password", + "LabelPassword": "Password", + "HeaderResetPassword": "Reset Password", + "Series": "Series", + "Preview": "Preview", + "Submit": "Submit", + "Never": "Never", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Top Results", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Always on", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Upload only on Wifi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Password (confirm)", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Username", + "HeaderAddServer": "Add Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Close", + "HeaderSeeAll": "See All", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "Email", + "LabelHost": "Host", + "LabelHostHelp": "Example: 192.168.1.100 or https://myserver.com", + "LabelPort": "Port", + "Disabled": "Disabled", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Are you still watching?", + "LabelCurrentPassword": "Current password", + "LabelNewPassword": "New password", + "LabelNewPasswordConfirm": "New password confirm", + "HeaderRemovePassword": "Remove Password", + "ServerUpdateNeeded": "This Emby Server needs to be updated. To download the latest version, please visit {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Connect to Server", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "New", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premiere", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Live", + "Reset": "Reset", + "Repeat": "Repeat", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} Tracks", + "ItemCount": "{0} Items", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Latest Music", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Recently Played", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Frequently Played", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "OriginalAirDateValue": "Original air date: {0}", + "EndsAtValue": "Ends at {0}", + "Date": "Date", + "AirDate": "Air Date", + "Played": "Played", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Last Episode Date Added", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio codec", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Parental rating", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Because you watched {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Invitations", + "ActorAsRole": "as {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "User", + "Access": "Access", + "Users": "Users", + "Library": "Library", + "Devices": "Devices", + "Cancel": "Cancel", + "Restart": "Restart", + "Shutdown": "Shutdown", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Systems", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Got It", + "RememberMe": "Remember me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Manage Emby Server", + "ShutdownServer": "Shutdown Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Recording Cancelled", + "SeriesCancelled": "Series Cancelled", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Recording Scheduled", + "SeriesRecordingScheduled": "Series Recording Scheduled", + "HeaderNewRecording": "New Recording", + "HeaderWakeServer": "Wake Server", + "AttemptingWakeServer": "Attempting to wake server. Please wait...", + "WakeServerSuccess": "Success!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine.", + "Days": "Days", + "Network": "Network", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Cinema Intros", + "Conversions": "Conversions", + "Downloads": "Downloads", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Offline Media", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", + "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.", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature.", + "HeaderFreeApps": "Free Emby Apps", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", + "HeaderBecomeProjectSupporter": "Get Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "This feature requires an active {0}Emby Premiere subscription{1}.", + "HeaderConvertYourRecordings": "Convert Your Recordings", + "Record": "Record", + "Save": "Save", + "Edit": "Edit", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Download", + "Downloaded": "Downloaded", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloading", + "Advanced": "Advanced", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Delete", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Delete Item", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library.", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Refresh", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Add to Collection", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Help", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "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", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Name", + "NewCollectionNameExample": "Example: Star Wars Collection", + "MessageItemsAdded": "Items added.", + "OptionNew": "New...", + "LabelPlaylist": "Playlist", + "AddToPlaylist": "Add to playlist", + "HeaderAddToPlaylist": "Add to Playlist", + "Subtitles": "Subtitles", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Search for Subtitles", + "LabelLanguage": "Language", + "Search": "Search", + "NoSubtitleSearchResultsFound": "No results found. Have you configured {0}subtitle downloading{1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "File", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "ConfirmDeletion": "Confirm Deletion", + "MySubtitles": "My Subtitles", + "MessageDownloadQueued": "Download queued.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Unlock Guide", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Replace existing images", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "ReplaceAllMetadata": "Replace all metadata", + "SearchForMissingMetadata": "Search for missing metadata", + "LabelRefreshMode": "Refresh mode", + "NoItemsFound": "No items found.", + "HeaderSaySomethingLike": "Say Something Like...", + "ButtonTryAgain": "Try Again", + "HeaderYouSaid": "You Said...", + "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "ValueDiscNumber": "Disc {0}", + "Unrated": "Unrated", + "Favorite": "Favorite", + "Like": "Like", + "Dislike": "Dislike", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup.", + "Open": "Open", + "Play": "Play", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Shuffle", + "Identify": "Identify", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Convert", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Queue", + "QueueAllFromHere": "Queue all from here", + "PlayAllFromHere": "Play all from here", + "PlayFromBeginning": "Play From Beginning", + "FromBeginning": "From Beginning", + "ResumeAt": "Resume from {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sort", + "Trailer": "Trailer", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Error", + "VoiceInput": "Voice Input", + "LabelContentType": "Content type", + "LabelPath": "Path", + "Playlists": "Playlists", + "LabelTitle": "Title", + "LabelOriginalTitle": "Original title", + "LabelSortTitle": "Sort title", + "LabelDateAdded": "Date added", + "DateAdded": "Date Added", + "DateCreated": "Date Created", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Status", + "LabelArtistsHelp": "Separate multiple using ;", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Album artists", + "LabelAlbum": "Album", + "Artist": "Artist", + "Artists": "Artists", + "ImdbRating": "IMDb Rating", + "CommunityRating": "Community Rating", + "LabelCommunityRating": "Community rating", + "LabelCriticRating": "Critic rating", + "CriticRating": "Critic Rating", + "LabelWebsite": "Website", + "Tagline": "Tagline", + "LabelOverview": "Overview", + "LabelShortOverview": "Short overview", + "LabelReleaseDate": "Release date", + "LabelPlaceOfBirth": "Place of birth", + "Aired": "Aired", + "LabelAirDays": "Air days", + "LabelAirTime": "Air time", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelCustomRating": "Custom rating", + "LabelOriginalAspectRatio": "Original aspect ratio", + "Label3DFormat": "3D format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Display Settings", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Display order", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Countries", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Tags", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Metadata Settings", + "People": "People", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Preferred metadata download language", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Birth year", + "LabelBirthDate": "Birth date", + "LabelDeathDate": "Death date", + "LabelEndDate": "End date", + "LabelSeasonNumber": "Season number", + "LabelEpisodeNumber": "Episode number", + "LabelTrackNumber": "Track number", + "LabelNumber": "Number", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Sort Title", + "OriginalTitle": "Original Title", + "ReleaseDate": "Release Date", + "Continuing": "Continuing", + "Ended": "Ended", + "HeaderEnabledFields": "Enabled Fields", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed.", + "Backdrops": "Backdrops", + "Images": "Images", + "Runtime": "Runtime", + "ProductionLocations": "Production locations", + "BirthLocation": "Birth location", + "ParentalRating": "Parental Rating", + "PlayCount": "Play count", + "Name": "Name", + "Overview": "Overview", + "LabelType": "Type", + "LabelPersonRole": "Role", + "LabelPersonRoleHelp": "Example: Ice cream truck driver", + "Actor": "Actor", + "Composers": "Composers", + "Composer": "Composer", + "Director": "Director", + "GuestStar": "Guest star", + "Producer": "Producer", + "Writer": "Writer", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Installing {0}", + "PackageInstallCompleted": "{0} installation completed.", + "PackageInstallFailed": "{0} installation failed.", + "PackageInstallCancelled": "{0} installation cancelled.", + "SeriesYearToPresent": "{0} - Present", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episodes", + "Albums": "Albums", + "Song": "Song", + "Songs": "Songs", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "PleaseEnterNameOrId": "Please enter a name or an external Id.", + "MessageItemSaved": "Item saved.", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Emby Server - {0} is restarting.", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "PleaseRestartServerName": "Please Restart Emby Server on {0}", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Downloading...", + "LearnMore": "Learn more", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Screenshots", + "MoveRight": "Move right", + "MoveLeft": "Move left", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Delete image?", + "HeaderEditImages": "Edit Images", + "Settings": "Settings", + "ShowIndicatorsFor": "Show Indicators", + "Episodes": "Episodes", + "Programs": "Programs", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}.", + "HeaderCancelRecording": "Cancel Recording", + "HeaderKeepRecording": "Keep Recording", + "HeaderCancelSeries": "Cancel Series", + "HeaderKeepSeries": "Keep Series", + "HeaderLearnMore": "Learn More", + "SeriesSettings": "Series settings", + "HeaderRecordingOptions": "Recording Options", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Series Options", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Anytime", + "AnyLanguage": "Any language", + "AroundTime": "Around {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "All channels", + "NewEpisodesOnly": "New episodes only", + "AllEpisodes": "All episodes", + "LabelStartWhenPossible": "Start when possible", + "LabelStopWhenPossible": "Stop when possible", + "MinutesBefore": "minutes before", + "MinutesAfter": "minutes after", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", + "LabelKeepUpTo": "Keep up to", + "AsManyAsPossible": "As many as possible", + "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "UntilIDelete": "Until I delete", + "UntilSpaceNeeded": "Until space needed", + "Categories": "Categories", + "Sports": "Sports", + "News": "News", + "Movies": "Movies", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "I have Emby Premiere", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "ButtonUnlockPrice": "Unlock {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "HeaderUnlockFeature": "Unlock Feature", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Added {0}", + "PlayedOnValue": "Played {0}", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Continue", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Quality", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "My Media", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "Latest {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continue Watching", + "HeaderContinueListening": "Continue Listening", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Latest Recordings", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Settings saved.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Favorites", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Favorite Collections", + "HeaderFavoritePlaylists": "Favorite Playlists", + "Collection": "Collection", + "Collections": "Collections", + "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.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Schedule", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "No subtitles", + "Default": "Default", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Subtitle Settings", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelTextSize": "Text size", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Audio Settings", + "LabelAudioLanguagePreference": "Preferred audio language", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Video Quality", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Latest Media", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "Genre": "Genre", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directors: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Theme songs", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Favorite Movies", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Favorite Shows", + "HeaderFavoriteEpisodes": "Favorite Episodes", + "HeaderFavoriteVideos": "Favorite Videos", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Favorite Games", + "HeaderFavoriteArtists": "Favorite Artists", + "HeaderFavoriteAlbums": "Favorite Albums", + "HeaderFavoriteSongs": "Favorite Songs", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up button behavior", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/it.json b/modules/common/strings/it.json new file mode 100644 index 0000000..007c6a5 --- /dev/null +++ b/modules/common/strings/it.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Sostituisci le miniature di anteprima video esistenti", + "ReplaceExistingThumbnailImagesHelp": "Tutte le miniature di anteprima video esistenti saranno eliminate e ne saranno generate di nuove, se attivato nelle opzioni della libreria.", + "DateCreated": "Data di creazione", + "CreatedOnValue": "Creato il {0}", + "UpdatedOnValue": "Aggiornato il {0}", + "EmbyLoginTerms": "Emby è progettato per aiutarti a gestire la tua libreria multimediale personale, come home video e foto. Consulta i nostri {0}termini di utilizzo{1}. L'uso di qualsiasi software Emby implica l'accettazione di questi termini.", + "MessageUnableToConnectToServer": "Al momento non siamo in grado di connetterci al server selezionato. Assicurati che sia in esecuzione e riprova.", + "EmbyIntroMessage": "Con Emby si può facilmente trasmettere video, musica e foto da smartphone, tablet e altri dispositivi dal vostro Emby Server.", + "HeaderSignInWithConnect": "Accedi con Emby Connect", + "HeaderWelcomeToEmby": "Benvenuto in Emby", + "HeaderNewUsers": "Nuovi utenti", + "HeaderPleaseSignIn": "Accedi", + "MessageInvalidUser": "Utente o password errato. Riprova.", + "MessageUnlockAppWithPurchaseOrSupporter": "Sblocca questa funzionalità con un piccolo acquisto singolo, o con un abbonamento Emby Premiere.", + "MessageUnlockAppWithSupporter": "Sblocca questa funzionalità con un abbonamento Emby Premiere.", + "MessageToValidateSupporter": "Se hai un abbonamento Emby Premiere, assicurati di averlo configurato nel pannello di controllo dell'Emby Server, a cui puoi accedere facendo clic su Emby Premiere dal menu principale.", + "ValueSpecialEpisodeName": "Speciale - {0}", + "HeaderSignIn": "Accedi", + "Share": "Condividi", + "Shared": "Condiviso", + "Info": "Info", + "Add": "Aggiungi", + "Speed": "Velocità", + "PlaybackSpeed": "Velocità di riproduzione", + "Chapters": "Capitoli", + "Password": "Password", + "SavePassword": "Salva password", + "LabelPassword": "Password", + "HeaderResetPassword": "Ripristina password", + "Series": "Serie", + "Preview": "Anteprima", + "Submit": "Invia", + "Never": "Mai", + "Table": "Tabella", + "HeaderScheduledTasks": "Attività pianificate", + "Plays": "Riproduzioni", + "LastUsedAddressValue": "Ultimo utilizzo {0}", + "LabelKeywordType": "Tipo di parola chiave", + "HeaderSelectColumns": "Seleziona colonne", + "HeaderTopResults": "Migliori risultati", + "HeaderPinSidebar": "Fissa la barra laterale", + "Collapse": "Riduci", + "LabelBackgroundVideoPlayback": "Riproduzione video in background", + "BackgroundVideoPlaybackHelp": "La riproduzione in background consente di continuare a riprodurre il video anche quando lo schermo è spento.", + "AlwaysOn": "Sempre acceso", + "HeadphonesOrExternalSpeakersConnected": "Cuffie o altoparlanti esterni collegati", + "HeaderKeyboardAndRemote": "Tastiera e telecomando", + "NoSelectedItemsSupportOperation": "Non ci sono elementi selezionati che supportano questa operazione.", + "NoOperationsForSelectedItems": "Non ci sono operazioni disponibili per gli articoli selezionati.", + "UploadOnlyOnWifi": "Carica solo su Wi-Fi", + "HeaderFoldersToUpload": "Cartelle da caricare", + "LabelPasswordConfirm": "Password (conferma)", + "HeaderMoveUpInOrder": "Sposta in alto in ordine", + "HeaderDownUpInOrder": "Sposta in basso in ordine", + "LabelUsername": "Nome utente", + "HeaderAddServer": "Aggiungi server", + "HeaderSubtitleOffset": "Spostamento sottotitoli", + "Watching": "Sto guardando", + "HeaderRemoveFromContinueWatching": "Rimuovi da Continua a guardare", + "RemoveThisTitleFromContinueWatching": "Rimuovere questo titolo da Continua a guardare?", + "HeaderRemoveFromContinueListening": "Rimuovi da Continua ad ascoltare", + "RemoveThisTitleFromContinueListening": "Rimuovere questo elemento da Continua ad ascoltare?", + "HeaderIncreaseSubtitleOffset": "Aumenta spostamento dei sottotitoli", + "HeaderDecreaseSubtitleOffset": "Diminuisci spostamento dei sottotitoli", + "Close": "Chiudi", + "HeaderSeeAll": "Vedi tutto", + "HeaderOpenInNewWindow": "Apri in una nuova finestra", + "LabelEmail": "E-mail", + "LabelHost": "Host", + "LabelHostHelp": "Esempio: 192.168.1.100 o https://myserver.com", + "LabelPort": "Porta", + "Disabled": "Disattivato", + "Uninstall": "Disinstalla", + "Enable": "Attiva", + "AllTuners": "Tutti i sintonizzatori", + "Disable": "Disattiva", + "NextValue": "Successivo:{0}", + "HeaderNextItem": "Elemento successivo", + "HeaderPreviousItem": "Elemento precedente", + "NoTrailersMessage": "Nessun trailer trovato. Per aggiungere trailer, installa il plugin Trailer dal {0}catalogo dei plugin di Emby{1}.", + "UninstallPluginConfirmation": "Sei sicuro di voler disinstallare questo plugin?", + "HeaderUninstallPlugin": "Disinstalla plugin", + "AreYouStillWatching": "Stai ancora guardando?", + "LabelCurrentPassword": "Password attuale", + "LabelNewPassword": "Nuova password", + "LabelNewPasswordConfirm": "Conferma nuova password", + "HeaderRemovePassword": "Rimuovi password", + "ServerUpdateNeeded": "Questo Emby Server deve essere aggiornato. Per scaricare l'ultima versione, vai su {0}", + "MessageThankYouForConnectSignUp": "Grazie per esserti registrato a Emby Connect. Ti verrà invita un'e-mail al tuo indirizzo con le istruzioni su come confermare il tuo nuovo account. Conferma il nuovo account e poi ritorna qui per accedere.", + "MessageThankYouForConnectSignUpNoValidation": "Grazie per esserti registrato a Emby Connect! Ti verrà ora chiesto di accedere con le informazioni di Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "La password e la password di conferma devono corrispondere.", + "ErrorMessageUsernameInUse": "Il nome utente è già usato. Scegli un nuovo nome e riprova.", + "ErrorMessageEmailInUse": "L'indirizzo e-mail è già usato. Inserisci un nuovo indirizzo e-mail e riprova, o usa la funzione password dimenticata.", + "HeaderUpcomingOnTV": "In arrivo in diretta TV", + "HeaderOtherShowings": "Altre proiezioni", + "Showings": "Proiezioni", + "HeaderConnectToServer": "Connettiti al server", + "ConnectToServerManually": "Connettiti al server manualmente", + "LabelEnterConnectUserNameHelp": "Questo è l'indirizzo e-mail che hai utilizzato per configurare il tuo account Emby Connect.", + "HeaderSignInError": "Errore di accesso", + "HeaderManualLogin": "Accesso manuale", + "PasswordResetConfirmation": "Sei sicuro di voler ripristinare la password?", + "ContactAdminToResetPassword": "Contatta l'amministratore di sistema per ripristinare la password.", + "ForgotPasswordInNetworkRequired": "Riprova all'interno della rete domestica per avviare il processo di ripristino della password.", + "ForgotPasswordFileCreated": "Il seguente file è stato creato sul tuo server e contiene istruzioni su come procedere:", + "ForgotPasswordFileExpiration": "Il PIN di ripristino scadrà a {0}.", + "InvalidForgotPasswordPin": "È stato inserito un pin non valido o scaduto. Riprova.", + "PasswordResetForUsers": "Le password sono state rimosse per i seguenti utenti. Per accedere, fallo con una password vuota.", + "HeaderForgotPassword": "Password dimenticata?", + "ForgotPasswordUsernameHelp": "Lascia in bianco se non ricordi il tuo nome utente.", + "HeaderPasswordReset": "Ripristino della password", + "AttributeNew": "Nuovo", + "Done": "Fatto", + "HeaderResetToDefault": "Ripristina predefiniti", + "Deinterlacing": "Deinterlacciamento", + "HeaderBurningInSubtitles": "Crea sottotitoli", + "Premiere": "Prima visione", + "LabelPinCode": "Codice PIN", + "LabelLocalNetworkPinCode": "Codice PIN della rete locale", + "LabelLocalNetworkPasswordMode": "Modalità di accesso alla rete locale", + "RequirePasswordInLocalNetwork": "Richiedi una password sulla rete locale", + "NoPasswordInLocalNetwork": "Non richiedere una password sulla rete locale", + "PinCodeInLocalNetwork": "Consenti un codice PIN numerico sulla rete locale", + "LocalNetworkPasswordModeHelp": "Seleziona il metodo di accesso per i dispositivi sulla stessa rete locale di Emby Server.", + "HeaderLocalNetworkAccess": "Accesso alla rete locale", + "Live": "In diretta", + "Reset": "Ripristina", + "Repeat": "Ripeti", + "Track": "Traccia", + "Tracks": "Tracce", + "HeaderCameraUpload": "Caricamenti da fotocamera", + "TrackCount": "{0} tracce", + "ItemCount": "{0} elementi", + "NumberChannelsValue": "{0} canali", + "HeaderLatestMusic": "Musica recente", + "HeaderLatestAudioBooks": "Recenti audiolibri", + "HeaderLatestDownloadedVideos": "Ultimi video scaricati", + "HeaderRecentlyPlayed": "Visti di recente", + "Recent": "Recenti", + "HeaderFrequentlyPlayed": "Visti di frequente", + "HeaderMoreLikeThis": "Altri come questo", + "HeaderMoreLikeThisOnLiveTV": "Altri come questo su diretta TV", + "OriginalAirDateValue": "Prima messa in onda (originale): {0}", + "EndsAtValue": "Finirà alle {0}", + "Date": "Data", + "AirDate": "Data di messa in onda", + "Played": "Visto", + "Daily": "Giornaliero", + "Weekly": "Settimanale", + "RequireHashMatch": "Richiedi una verifica dell'hash", + "RequireHashMatchHelp": "La richiesta di una verifica dell'hash consente di filtrare i sottotitoli per includere solo quelli che sono stati testati con il tuo file video esatto. Deselezionando questa opzione si aumenta il numero di sottotitoli corrispondenti, ma si aumentano anche le possibilità di testo dei sottotitoli non corretto o errato.", + "SearchForForcedSubtitlesOnly": "Solo sottotitoli forzati", + "SearchForForcedSubtitlesOnlyHelp": "La richiesta di sottotitoli forzati limiterà i risultati ai sottotitoli contrassegnati come aventi una lingua straniera.", + "LastEpisodeDateAdded": "Data di aggiunta dell'ultimo episodio", + "LastEpisodeDateAired": "Data di pubblicazione dell'ultimo episodio", + "LabelPlaystate": "Stato di riproduzione", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Titolo episodio", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Sottotitolo", + "Image": "Immagine", + "CopyStream": "Copia la trasmissione originale", + "LabelAudioLayout": "Sistema audio", + "LabelAudioCodec": "Codec audio", + "LabelAudioLanguage": "Lingua audio", + "LabelSubtitleLanguage": "Lingua dei sottotitoli", + "LabelVideoCodec": "Codec video", + "LabelSubtitleCodec": "Codec sottotitoli", + "LabelParentalRating": "Classificazione parentale", + "BecauseYouLikeValue": "Perché ti piace {0}", + "BecauseYouWatchedValue": "Poiché hai visto {0}", + "DirectedByValue": "Diretto da {0}", + "StarringValue": "Protagonisti {0}", + "Invitations": "Inviti", + "ActorAsRole": "è {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Raggruppa elementi nelle collezioni", + "GroupItemsIntoCollectionsHelp": "Raggruppa elementi in base alle raccolte a cui sono stati aggiunti. Attivare determinati filtri o alcuni ordinamenti possono disattivarlo automaticamente.", + "GroupItemsIntoTags": "Raggruppa gli elementi in tag", + "GroupItemsIntoTagsHelp": "Raggruppa gli elementi in base ai tag a cui sono stati aggiunti. L'attivazione di determinati filtri o ordinamenti potrebbe disattivarla automaticamente.", + "User": "Utente", + "Access": "Accesso", + "Users": "Utenti", + "Library": "Librerie", + "Devices": "Dispositivi", + "Cancel": "Annulla", + "Restart": "Riavvia", + "Shutdown": "Spegni", + "Logs": "Log", + "Visibility": "Visibilità", + "Notifications": "Notifiche", + "SendTestNotification": "Invia notifica di test", + "NotificationSent": "Notifica inviata", + "DeleteNotificationConfirmation": "Confermi di voler eliminare questa notifica?", + "DeleteNotification": "Elimina notifica", + "AddNotification": "Aggiungi notifica", + "EditNotification": "Modifica notifica", + "LimitUserEventsTo": "Limita eventi utente a", + "LimitLibraryEventsTo": "Limita eventi libreria a", + "LimitDeviceEventsTo": "Limits eventi dispositivi a", + "ForAdditionalNotificationOptions": "Ulteriori servizi di notifica possono essere installati dall'amministratore del server nel {0}catalogo dei plugin{1} di Emby.", + "Plugins": "Plugin", + "Systems": "Sistemi", + "Server": "Server", + "Dashboard": "Pannello di controllo", + "PlayOnAnotherDevice": "Avvia su un altro dispositivo", + "HeaderConnectionHelp": "Guida alla connessione", + "AccessRestrictedTryAgainLater": "L'accesso è attualmente limitato. Rprova più tardi.", + "ButtonGotIt": "Ho capito", + "RememberMe": "Ricordami", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Gestisci Emby Server", + "ShutdownServer": "Arresta Emby Server", + "RestartServer": "Riavvia Emby Server", + "RecordingCancelled": "Registrazione annullata", + "SeriesCancelled": "Serie TV cancellate", + "Recording": "Registrazione", + "SeriesRecording": "Registrazione serie", + "RecordingScheduled": "Registrazione pianificata", + "SeriesRecordingScheduled": "Registrazione serie TV pianificata", + "HeaderNewRecording": "Nuova registrazione", + "HeaderWakeServer": "Riattiva il server", + "AttemptingWakeServer": "Tentativo di riattivazione del server. Attendi...", + "WakeServerSuccess": "Riuscito!", + "HeaderCustomizeHomeScreen": "Personalizza la pagina Home", + "WakeServerError": "I pacchetti Wake On LAN sono stati inviati al computer server, ma non siamo in grado di connetterci al tuo Emby Server. Potrebbe essere necessario un po' più di tempo per riattivare il computer, oppure l'Emby Server potrebbe non essere attivo.", + "Days": "Giorni", + "Network": "Rete", + "Networks": "Reti", + "SortByValue": "Ordina per {0}", + "HeaderSortBy": "Ordina per", + "HeaderPhotoAlbums": "Album foto", + "Photos": "Foto", + "HeaderAppearsOn": "Compare in", + "List": "Lista", + "HeaderRecordSeries": "Registra serie", + "HeaderCinemaMode": "Modalità Cinema", + "Conversions": "Conversioni", + "Downloads": "Download", + "HeaderManageDownloads": "Gestisci download", + "InternalStorage": "Archiviazione interna", + "ExternalStorage": "Archiviazione esterna", + "UploadToFollowingServers": "Carica su server", + "UploadingNumItems": "Caricamento {0} di {1}", + "DownloadNumItems": "Download di {0} di {1}", + "HeaderSampleRate": "Frequenza di campionamento", + "HeaderReferenceFrames": "Fotogrammi di riferimento", + "HeaderBitDepth": "Profondità bit", + "HeaderPixelFormat": "Formato pixel", + "Profile": "Profilo", + "Bitrate": "Bitrate", + "Expand": "Espandi", + "Container": "Contenitore", + "Format": "Formato", + "Path": "Percorso", + "Size": "Dimensione", + "Resolution": "Risoluzione", + "HeaderCodecTag": "Tag codec", + "Framerate": "Frequenza dei fotogrammi", + "Interlaced": "Interlacciato", + "Anamorphic": "Anamorfico", + "Level": "Livello", + "Timestamp": "Marca temporale", + "Language": "linguaggio", + "Codec": "Codec", + "Stream": "Trasmissione", + "HeaderExtradata": "Dati aggiuntivi", + "HeaderHardwareAcceleratedTranscoding": "Conversione accelerata tramite hardware", + "HeaderHardwareAcceleratedTranscodingDescription": "Sfrutta la GPU del tuo server. Emby ha l'accelerazione hardware più avanzata e veloce del settore.", + "HeaderOfflineDownloads": "Media offline", + "AndMuchMoreExclamation": "E molto altro!", + "HeaderOfflineDownloadsDescription": "Scarica facilmente i media sui tuoi dispositivi per vederli offline.", + "LiveTvFeatureDescription": "Trasmetti diretta TV a qualsiasi applicazione Emby, con un sintonizzatore TV compatibile installato nell'Emby Server.", + "DvrFeatureDescription": "Pianifica le registrazioni della diretta TV, registrazioni di serie e altro ancora con Emby DVR.", + "CinemaModeFeatureDescription": "Modalità Cinema offre la vera esperienza cinematografica con trailer e introduzioni personalizzate prima del filmato principale.", + "HeaderFreeApps": "Applicazioni gratuite Emby", + "FreeAppsFeatureDescription": "Godi dell'accesso gratuito alle applicazioni Emby dai tuoi dispositivi.", + "HeaderBecomeProjectSupporter": "Ottieni Emby Premiere", + "HeaderViewServerInfo": "Visualizza informazioni sul server", + "PlaybackTvModeRequiresEmbyPremiere": "La riproduzione multimediale in modalità TV richiede un {0} abbonamento Emby Premiere attivo {1}.", + "FeatureRequiresEmbyPremiere": "Questa funzione richiede un {0}abbonamento a Emby Premiere{1} attivo.", + "HeaderConvertYourRecordings": "Converti le tue registrazioni", + "Record": "Registra", + "Save": "Salva", + "Edit": "Modifica", + "HeaderSavePlaylist": "Salva playlist", + "Latest": "Recenti", + "Download": "Scarica", + "Downloaded": "Scaricato", + "Converted": "Convertito", + "RemoveFromHistory": "Rimuovi dalla cronologia", + "ConfirmRemoveFromHistory": "Vuoi rimuovere questo elemento dalla cronologia?", + "Downloading": "In download", + "Advanced": "Avanzate", + "LinkedToEmbyConnect": "Collegato a Emby Connect", + "Delete": "Elimina", + "Both": "Entrambi", + "LabelChannelDisplay": "Visualizzazione canale", + "HeaderDeleteItem": "Elimina elemento", + "HeaderDeleteUser": "Elimina utente", + "DeleteItemConfirmation": "Sei sicuro di voler eliminare {0}?", + "DeleteUserConfirmation": "Sei sicuro di voler eliminare l'utente {0}?", + "DeleteUsersConfirmation": "Sei sicuro di voler eliminare questi {0} utenti?", + "HeaderDeleteDevice": "Elimina dispositivo", + "DeleteDeviceConfirmation": "Sei sicuro di voler eliminare questo dispositivo? Riapparirà la prossima volta che un utente accede con esso.", + "ConfirmDeleteItem": "L'eliminazione di questo elemento avverrà sia dalla libreria multimediale che dal disco di archiviazione.", + "FollowingFilesWillBeDeleted": "I seguenti file e cartelle saranno eliminati:", + "AreYouSureToContinue": "Sei sicuro di voler continuare?", + "Refresh": "Aggiorna", + "RefreshingMetadataDots": "Aggiornamento metadati in corso...", + "ScanningLibraryFilesDots": "Scansione dei file della libreria in corso...", + "HeaderFavoritesThenByChannelNumber": "Preferiti, per numero di canale", + "HeaderAddToCollection": "Aggiungi a una collezione", + "HeaderFavoritesThenByTitle": "Preferiti, per titolo", + "HeaderFavoritesThenByDefault": "Preferiti, quindi per ordine canali predefinito", + "HeaderDefaultChannelOrder": "Ordine canali predefinito", + "HeaderAddToFavorites": "Aggiungi ai preferiti", + "HeaderRemoveFromFavorites": "Rimuovi dai preferiti", + "Favorited": "Preferito", + "Unfavorited": "Non preferito", + "HeaderNewCollection": "Nuova collezione", + "HeaderNewPlaylist": "Nuova playlist", + "AllCollections": "Tutte le collezioni", + "AllPlaylists": "Tutte le playlist", + "Create": "Crea", + "HeaderAddedToPlaylist": "Aggiunto alla playlist", + "HeaderAddedToCollection": "Aggiunto alla collezione", + "OneItemAddedTo": "1 elemento aggiunto a \"{0}\".", + "ItemsAddedTo": "{0} elementi aggiunti a \"{1}\".", + "HeaderAddedToPlayQueue": "Aggiunto alla coda di riproduzione", + "HeaderPlayingNext": "Riproduzione successivo", + "Help": "Aiuto", + "HeaderGetHelp": "Ottieni aiuto", + "LabelTVDisplayMode": "Attiva la modalità di visualizzazione TV", + "Desktop": "PC fisso", + "Mobile": "Cellulare / Tablet", + "Navigation": "Navigazione", + "HeaderVideoPlayback": "Riproduzione video", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Stagioni", + "OneTrack": "1 traccia", + "OneSeason": "1 stagione", + "Libraries": "Libreria", + "NumberSeasonsValue": "{0} stagioni", + "TVDisplayModeHelp": "Ottimizza l'interfaccia utente di questo dispositivo per la visualizzazione su TV e per l'utilizzo con telecomando. Questa soluzione è generalmente sconsigliata se il metodo di immissione principale è un mouse o basato su tocco.", + "LabelDisplayLanguage": "Lingua preferita", + "LabelDisplayLanguageHelp": "La traduzione di Emby è un progetto attivo.", + "LearnHowYouCanContribute": "Scopri come puoi contribuire.", + "NewCollectionHelp": "Le collezioni ti permettono di creare raccolte personalizzate di film ed altri contenuti della libreria.", + "SearchForCollectionInternetMetadata": "Cerca su Internet le immagini e i metadati", + "DisplayMissingEpisodesWithinSeasons": "Visualizza gli episodi mancanti nelle stagioni", + "DisplayMissingEpisodesWithinSeasonsHelp": "Questa opzione deve essere attivata anche per le librerie TV nella configurazione dell'Emby Server.", + "EnableThemeSongs": "Riproduci brani a tema", + "EnableBackdrops": "Attiva gli sfondi", + "EnableThemeSongsHelp": "Se attivato, i brani a tema saranno riprodotti mentre visualizzi la tua libreria.", + "EnableBackdropsHelp": "Se attivato, gli sfondi verranno riprodotti mentre visualizzi la tua libreria.", + "EnableThemeVideos": "Riproduci video a tema", + "EnableThemeVideosHelp": "Se attivato, i video a tema saranno riprodotti mentre visualizzi la tua libreria.", + "RunAtStartup": "Esegui all'avvio", + "ServerStartup": "Avvio del server", + "EmbyServerOnXHasStarted": "Emby Server su {0} è stato avviato.", + "LabelScreensaver": "Salvaschermo", + "LabelSoundEffects": "Effetti sonori", + "LabelName": "Nome", + "NewCollectionNameExample": "Esempio: Collezione Star wars", + "MessageItemsAdded": "Elementi aggiunti.", + "OptionNew": "Nuovo...", + "LabelPlaylist": "Playlist", + "AddToPlaylist": "Aggiungi alla playlist", + "HeaderAddToPlaylist": "Aggiungi alla playlist", + "Subtitles": "Sottotitoli", + "LabelTheme": "Tema", + "LabelSettingsTheme": "Impostazioni del tema", + "LabelThemeAccentColor": "Colore secondario", + "ThemeAccentColorDescription": "Controlla il colore di indicatori, icone e testo importanti.", + "SearchForSubtitles": "Cerca sottotitoli", + "LabelLanguage": "Lingua", + "Search": "Cerca", + "NoSubtitleSearchResultsFound": "Nessun risultato trovato. Hai configurato il {0}download dei sottotitoli{1}?", + "NoLyricsSearchResultsFound": "Nessun risultato trovato. Hai configurato il {0}download dei testi{1}?", + "Lyrics": "Testi", + "SearchForLyrics": "Cerca testi", + "Finish": "Finito", + "File": "File", + "Exit": "Esci", + "Sleep": "Risparmio energetico", + "Setup": "Configurazione", + "MessageAreYouSureDeleteSubtitles": "Sei sicuro di voler eliminare questo file di sottotitoli?", + "ConfirmDeletion": "Conferma eliminazione", + "MySubtitles": "I miei sottotitoli", + "MessageDownloadQueued": "Download in coda.", + "HeaderEditSubtitles": "Modifica sottotitoli", + "UnlockGuide": "Sblocca guida", + "HeaderRefreshMetadata": "Aggiorna metadati", + "HeaderRefreshAllMetadata": "Aggiorna tutti i metadati", + "ReplaceExistingImages": "Sovrascrivi immagini esistenti", + "ReplaceExistingImagesHelp": "Tutte le immagini esistenti verranno eliminate e quelle nuove verranno scaricate. In alcuni casi potrebbe comportare un minor numero di immagini disponibili rispetto a prima.", + "ReplaceAllMetadata": "Sostituisci tutti i metadati", + "SearchForMissingMetadata": "Cerca metadati mancanti", + "LabelRefreshMode": "Modalità di aggiornamento", + "NoItemsFound": "Nessun elemento trovato.", + "HeaderSaySomethingLike": "Pronuncia qualcosa come...", + "ButtonTryAgain": "Riprova ancora", + "HeaderYouSaid": "Hai detto...", + "MessageWeDidntRecognizeCommand": "Ci dispiace, non riconosciamo il comando.", + "MessageIfYouBlockedVoice": "Se hai negato l'accesso vocale all'applicazione dovrai riconfigurarlo prima di riprovare di nuovo.", + "ValueDiscNumber": "Disco {0}", + "Unrated": "Non valutato", + "Favorite": "Preferito", + "Like": "Mi piace", + "Dislike": "Non mi piace", + "RefreshDialogHelp": "I metadati vengono aggiornati in base alle impostazioni e ai fornitori di metadati attivati nella configurazione della libreria Emby.", + "Open": "Apri", + "Play": "Riproduci", + "Pause": "Pausa", + "HeaderPlayQueue": "Riproduci coda", + "HeaderAddToPlayQueue": "Aggiungi alla coda", + "Shuffle": "Casuale", + "Identify": "Identifica", + "HeaderRemoveIdentification": "Rimuovi identificazione", + "ResetMetadataConfirmation": "Confermi di voler ripristinare tutti i metadati?", + "HeaderEditMetadata": "Modifica metadati", + "Convert": "Converti", + "Resume": "Riprendi", + "HeaderInstantMix": "Mix istantaneo", + "HeaderGoToItem": "Vai all'elemento", + "HeaderGoToSeason": "Vai alla stagione", + "HeaderGoToSeries": "Vai alle serie TV", + "HeaderGoToAlbum": "Vai all'album", + "HeaderGoToArtist": "Vai all'Artista", + "HeaderPlayAll": "Riproduci tutti", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Schermo intero", + "ExitFullscreen": "Esci da schermo intero", + "Rewind": "Riavvolgi", + "FastForward": "Avanti veloce", + "Remove": "Rimuovi", + "Rename": "Rinomina", + "Queue": "In coda", + "QueueAllFromHere": "In coda tutto da qui in poi", + "PlayAllFromHere": "Riproduci tutto da qui in poi", + "PlayFromBeginning": "Riproduci dall'inizio", + "FromBeginning": "Dall'inizio", + "ResumeAt": "Riprendi da {0}", + "HeaderRemoveFromPlaylist": "Rimuovi dalla playlist", + "HeaderRemoveFromPlayQueue": "Rimuovi dalla coda", + "HeaderRemoveFromCollection": "Rimuovi dalla collezione", + "Sort": "Ordina", + "Trailer": "Trailer", + "SelectNone": "Selezionato None", + "SelectAll": "Seleziona tutto", + "HeaderMarkPlayed": "Segna come visto", + "HeaderMarkUnplayed": "Segna come non visto", + "HeaderGroupVersions": "Versioni gruppo", + "PleaseSelectTwoItems": "Seleziona almeno due elementi.", + "HeaderConfirmRecordingCancellation": "Conferma eliminazione registrazione", + "MessageConfirmRecordingCancellation": "Vuoi annullare la registrazione?", + "Album": "Album", + "AlbumArtist": "Artista album", + "Error": "Errore", + "VoiceInput": "Comandi vocali", + "LabelContentType": "Tipo di contenuto", + "LabelPath": "Percorso", + "Playlists": "Playlist", + "LabelTitle": "Titolo", + "LabelOriginalTitle": "Titolo originale", + "LabelSortTitle": "Ordinamento titolo", + "LabelDateAdded": "Data di aggiunta", + "DateAdded": "Aggiunto il", + "DateModified": "Ultima modifica", + "DatePlayed": "Riprodotto il", + "DateLastActive": "Ultima attività", + "ConfigureDateAdded": "Scegli come determinare la data di aggiunta dal pannello di controllo dell'Emby Server nelle impostazioni della libreria", + "LabelStatus": "Stato", + "LabelArtistsHelp": "Separa valori multipli usando ;", + "HeaderAlbumArtists": "Artisti album", + "LabelAlbumArtists": "Artisti album", + "LabelAlbum": "Album", + "Artist": "Artista", + "Artists": "Artisti", + "ImdbRating": "Valutazione IMDb", + "CommunityRating": "Valutazione del pubblico", + "LabelCommunityRating": "Valutazione della comunità", + "LabelCriticRating": "Valutazione della critica", + "CriticRating": "Valutazione della critica", + "LabelWebsite": "Sito web", + "Tagline": "Slogan", + "LabelOverview": "Trama", + "LabelShortOverview": "Trama breve", + "LabelReleaseDate": "Data di uscita", + "LabelPlaceOfBirth": "Luogo di nascita", + "Aired": "In onda il", + "LabelAirDays": "In onda da (gg)", + "LabelAirTime": "In onda per", + "LabelRuntimeMinutes": "Durata (minuti)", + "LabelCustomRating": "Classificazione personale", + "LabelOriginalAspectRatio": "Rapporto d'aspetto originale", + "Label3DFormat": "Formato 3D", + "FormatValue": "Formato: {0}", + "DownloadsValue": "{0} download", + "HashMatch": "Corrispondenza hash", + "EnableExternalVideoPlayers": "Attiva i lettori video esterni", + "EnableExternalVideoPlayersHelp": "Quando viene avviata la riproduzione video, verrà visualizzato un menu esterno del riproduttore.", + "HeaderSpecialEpisodeInfo": "Informazioni episodio speciale", + "LabelAirsDuringSeason": "In onda durante la stagione", + "LabelAirsAfterSeason": "In onda dopo la stagione", + "LabelAirsBeforeEpisode": "In onda prima dell'episodio", + "HeaderExternalIds": "ID esterni", + "HeaderDisplaySettings": "Impostazioni video", + "PlaylistOrder": "Ordinamento playlist", + "CollectionOrder": "Ordinamento collezioni", + "LabelDisplayOrder": "Ordine di visualizzazione", + "LabelFileOrder": "Ordine file", + "Display": "Schermo", + "Countries": "Paesi", + "Genres": "Generi", + "Studios": "Casa cinematografica", + "Tags": "Tag", + "Links": "Collegamenti", + "Movie": "Film", + "Program": "Programma", + "Channel": "Canale", + "Episode": "Episodio", + "Season": "Stagione", + "HeaderMetadataSettings": "Impostazioni metadati", + "People": "Attori", + "Number": "Numero", + "Lock": "Blocca", + "HeaderScreenLocked": "Schermo bloccato", + "HeaderUnlockControls": "Sblocca controlli", + "HeaderTapToUnlock": "Premi per sbloccare", + "LabelMetadataDownloadLanguage": "Lingua preferita dei metadati da scaricare", + "LabelImageDownloadLanguage": "Lingua preferita delle immagini da scaricare", + "LabelLockItemToPreventChanges": "Blocca questo elemento per impedire modifiche future", + "LockThisField": "Blocca questo campo per impedire modifiche future durante l'aggiornamento dei metadati", + "MessageLeaveEmptyToInherit": "Lascia vuoto per ereditare le impostazioni dall'elemento principale, o il valore predefinito globale.", + "LabelCountry": "Paese", + "LabelCertificationCountry": "Paese di certificazione", + "CertificationCountryHelp": "Questo inciderà sul sistema di valutazione dei contenuti utilizzato.", + "LabelDynamicExternalId": "{0} ID", + "LabelBirthYear": "Anno di nascita", + "LabelBirthDate": "Data di nascita", + "LabelDeathDate": "Anno di morte", + "LabelEndDate": "Data di fine", + "LabelSeasonNumber": "Numero stagione", + "LabelEpisodeNumber": "Numero espisodio", + "LabelTrackNumber": "Numero traccia", + "LabelNumber": "Numero", + "LabelDiscNumber": "Numero disco", + "LabelParentNumber": "Numero di origine", + "SortName": "Ordina per titolo", + "OriginalTitle": "Titolo originale", + "ReleaseDate": "Data di uscita", + "Continuing": "In corso", + "Ended": "Concluso", + "HeaderEnabledFields": "Campi attivati", + "HeaderEnabledFieldsHelp": "Deseleziona un campo per bloccarlo e impedire che i suoi dati vengano modificati.", + "Backdrops": "Sfondi", + "Images": "Immagini", + "Runtime": "Durata", + "ProductionLocations": "Sedi di produzione", + "BirthLocation": "Luogo di nascita", + "ParentalRating": "Classificazione parentale", + "PlayCount": "Conteggio riproduzioni", + "Name": "Nome", + "Overview": "Trama", + "LabelType": "Tipo", + "LabelPersonRole": "Ruolo", + "LabelPersonRoleHelp": "Esempio: Autista del furgone dei gelati", + "Actor": "Interprete", + "Composers": "Compositori/Compositrici", + "Composer": "Compositore/Compositrice", + "Director": "Regista", + "GuestStar": "Partecipazione straordinaria", + "Producer": "Produttore", + "Writer": "Sceneggiatore", + "MessageNoSyncJobsFound": "Nessun download trovato. Puoi creare un'attività di download usando i pulsanti Download presenti nell'applicazione.", + "MessageNoDownloadsFound": "Nessuno download offline trovato. Scarica i tuoi media per renderli disponibili offline usando l'opzione Download sull'applicazione.", + "InstallingPackage": "Installazione di {0}", + "PackageInstallCompleted": "Installazione di {0} completa.", + "PackageInstallFailed": "Installazione di {0} non riuscita.", + "PackageInstallCancelled": "Installazione di {0} annullata.", + "SeriesYearToPresent": "{0} - Oggi", + "OneDevice": "1 dispositivo", + "DeviceCountValue": "{0} dispositivi", + "OneLog": "1 registro", + "LogCountValue": "{0} registri", + "OneVote": "1 valutazione", + "VoteCountValue": "{0} voti", + "OneLike": "1 Piace", + "LikeCountValue": "{0} mi piace", + "OneUser": "1 Utente", + "UserCountValue": "{0} utenti", + "OneLibrary": "1 libreria", + "LibraryCountValue": "{0} librerie", + "ValueOneItem": "1 elemento", + "ValueOneEpisode": "1 episodio", + "ValueEpisodeCount": "{0} episodi", + "Albums": "Album", + "Song": "Brano", + "Songs": "Brani", + "Authors": "Autori/Autrici", + "Books": "Libri", + "AudioBooks": "Audiolibri", + "HeaderAudioBooks": "Audiolibri", + "HeaderAudioBook": "Audiolibro", + "HeaderIdentifyItemHelp": "Inserisci uno o più criteri di ricerca. Rimuovi criteri per ottenere più risultati.", + "PleaseEnterNameOrId": "Per favore inserisci un nome o un ID esterno.", + "MessageItemSaved": "Elemento salvato.", + "SearchResults": "Risultati della Ricerca", + "ServerNameIsRestarting": "Emby Server - {0} si sta riavviando.", + "ServerNameIsShuttingDown": "Emby Server - {0} si sta arrestando.", + "HeaderDeleteItems": "Elimina Elementi", + "ConfirmDeleteItems": "L'eliminazione di questi elementi avverrà sia dalla libreria multimediale che dal disco di archiviazione.", + "PleaseRestartServerName": "Per favore, riavvia Emby Server su {0}", + "ConvertingDots": "Conversione...", + "LabelSyncNoTargetsHelp": "Al momento non hai applicazioni che supportino il download offline.", + "DownloadingDots": "In download...", + "LearnMore": "Per saperne di più", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Converti solo video non riprodotti", + "SyncUnwatchedVideosOnly": "Scarica solo video non riprodotti", + "ConvertUnwatchedVideosOnlyHelp": "Verranno convertiti solo i video che non sono contrassegnati come riprodotti completamente.", + "SyncUnwatchedVideosOnlyHelp": "Verranno scaricati solo i video non contrassegnati come riprodotti completamente i quali verranno rimossi dal dispositivo una volta riprodotti completamente.", + "AutomaticallySyncNewContent": "Scarica automaticamente i nuovi contenuti", + "AutomaticallySyncNewContentHelp": "I nuovi contenuti aggiunti verranno scaricati automaticamente nel dispositivo.", + "AutomaticallyConvertNewContent": "Converti automaticamente i nuovi contenuti", + "AutomaticallyConvertNewContentHelp": "I nuovi contenuti aggiunti in questa cartella verranno automaticamente convertiti.", + "LabelItemLimit": "Limite elementi", + "ConvertItemLimitHelp": "(Facoltativo.) Imposta un limite al numero di elementi che verranno convertiti.", + "DownloadItemLimitHelp": "Facoltativo. Imposta un limite al numero di elementi che verranno scaricati.", + "PleaseSelectDeviceToSyncTo": "Seleziona un dispositivo per eseguire il download.", + "Screenshots": "Schermata", + "MoveRight": "Sposta a destra", + "MoveLeft": "Sposta a sinistra", + "HeaderUploadNewImage": "Carica una nuova immagine", + "HeaderDeleteImage": "Elimina immagini", + "ConfirmDeleteImage": "Elimino immagine?", + "HeaderEditImages": "Modifica immagini", + "Settings": "Impostazioni", + "ShowIndicatorsFor": "Mostra indicatori", + "Episodes": "Episodi", + "Programs": "Programmi", + "HeaderCastCrew": "Cast e troupe", + "DvrSubscriptionRequired": "Emby Live TV e DVR richiedono un {0}abbonamento Emby Premiere attivo{1}.", + "HeaderCancelRecording": "Annulla la registrazione", + "HeaderKeepRecording": "Mantieni la registrazione", + "HeaderCancelSeries": "Annulla Serie TV", + "HeaderKeepSeries": "Mantieni Serie TV", + "HeaderLearnMore": "Saperne di più", + "SeriesSettings": "Impostazioni Serie TV", + "HeaderRecordingOptions": "Opzioni di registrazione", + "HeaderDoNotRecord": "Non registrare", + "HeaderSeriesOptions": "Opzioni Serie TV", + "Layout": "Layout", + "Channels": "Canali", + "ChannelNameOnly": "Solo il canale {0}", + "Anytime": "In qualsiasi momento", + "AnyLanguage": "Qualsiasi lingua", + "AroundTime": "Circa {0}", + "HeaderLatestMovies": "Ultimi film aggiunti", + "All": "Tutto", + "Stop": "Ferma", + "AllChannels": "Tutti i canali", + "NewEpisodesOnly": "Solo i nuovi episodi", + "AllEpisodes": "Tutti gli episodi", + "LabelStartWhenPossible": "Avvia appena possibile", + "LabelStopWhenPossible": "Ferma appena possibile", + "MinutesBefore": "minuti prima", + "MinutesAfter": "minuti dopo", + "SkipEpisodesAlreadyInMyLibrary": "Non registrare gli espisodi che sono già in libreria", + "SkipEpisodesAlreadyInMyLibraryHelp": "Gli episodi verranno confrontati usando la stagione e il numero dell'episodio, se disponibili.", + "LabelKeepUpTo": "Conservane fino a", + "AsManyAsPossible": "Tutto il possibile", + "DefaultErrorMessage": "Si è verificato un errore durante l'elaborazione della richiesta. Riprova più tardi.", + "UntilIDelete": "Finché non li elimino", + "UntilSpaceNeeded": "Finché c'è spazio", + "Categories": "Categorie", + "Sports": "Sport", + "News": "Notizie", + "Movies": "Film", + "Music": "Musica", + "Kids": "Bambini", + "MoreFromValue": "Altro da {0}", + "DiedValue": "Morte: {0}", + "BornValue": "Nascita: {0}", + "EnableColorCodedBackgrounds": "Applica sfondi colorati agli spettacoli in base alla loro categoria", + "SortChannelsBy": "Ordina canali per", + "ChannelNumber": "Numero canale", + "HeaderBenefitsEmbyPremiere": "Vantaggi di Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Per te un minuto di riproduzione. Grazie per aver provato Emby.", + "HeaderTryPlayback": "Prova la riproduzione", + "HowDidYouPay": "Come hai pagato?", + "IHaveEmbyPremiere": "Sono abbonato a Emby Premiere", + "IPurchasedThisApp": "Ho acquistato questa applicazione", + "ButtonRestorePreviousPurchase": "Ripristina acquisto", + "ButtonUnlockWithPurchase": "Sblocca con l'acquisto", + "ButtonUnlockPrice": "Sblocca {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere mensile {0}", + "HeaderAlreadyPaid": "Hai già pagato?", + "ButtonPlayOneMinute": "Riproduci un minuto", + "PlaceFavoriteChannelsAtBeginning": "Mostra i canali preferiti all'inizio", + "HeaderUnlockFeature": "Sblocca funzionalità", + "MessageDidYouKnowCinemaMode": "Lo sapevi che con Emby Premiere puoi migliorare la tua esperienza con funzionalità come Modalità Cinema?", + "HeaderPlayMyMedia": "Riproduci i miei media", + "HeaderDiscoverEmbyPremiere": "Scopri Emby Premiere", + "HeaderNowPlaying": "Riproduco", + "Items": "Elementi", + "AppName": "Nome applicazione", + "OneChannel": "Un canale", + "ConfirmRemoveDownload": "Rimuovere il download?", + "ConfirmRemoveItem": "Rimuovere l'elemento?", + "RemoveDownload": "Rimuovi download", + "ConfirmCancelConversion": "Annulla conversione?", + "CancelConversion": "Annulla conversione", + "KeepDownload": "Continua a scaricare", + "AddedOnValue": "Aggiunto {0}", + "RemovingFromDevice": "In rimozione dal dispositivo", + "KeepOnDevice": "Mantieni sul dispositivo", + "CancelDownload": "Annulla download", + "SyncJobItemStatusReadyToTransfer": "Pronto per il trasferimento", + "SyncJobItemStatusSyncedMarkForRemoval": "Rimuovendo dal dispositivo", + "SyncJobItemStatusQueued": "In coda", + "SyncJobItemStatusConverting": "Convertendo", + "SyncJobItemStatusTransferring": "Trasferendo", + "SyncJobItemStatusSynced": "Scaricato", + "Failed": "Fallito", + "SyncJobItemStatusRemovedFromDevice": "Rimosso dal dispositivo", + "Cancelled": "Annullato", + "Retry": "Riprova", + "Continue": "Continua", + "ContinueInSecondsValue": "Continua tra {0} secondi.", + "HeaderRemoteControl": "Telecomando", + "Disconnect": "Disconnetti", + "EnableDisplayMirroring": "Attiva duplica schermo", + "RemoteAccess": "Accesso remoto", + "HeaderPlayOn": "Riproduci su", + "Quality": "Qualità", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "Per ripristinare il tuo acquisto precedente, assicurati di aver acceduto sul dispositivo con lo stesso account Google (o Amazon) dell'acquisto originale. Assicurati che l'app store sia attivo e non limitato da controlli parentali e assicurati di avere una connessione a Internet. Dovrai effettuare questa procedura una sola volta per ripristinare il tuo acquisto precendente.", + "HeaderAspectRatio": "Rapporto d'aspetto", + "Original": "Originale", + "Fill": "Riempi", + "Cover": "Copertina", + "MessageNoServersAvailableToConnect": "Nessun server disponibile per la connessione. Se sei stato invitato a condividere un server, assicurati di accettare l'invito qui sotto o cliccando sul collegamento nell'e-mail.", + "MessagePlayAccessRestricted": "Le riproduzione di questi contenuti è bloccata. Contatta l'amministratore dell'Emby Server per maggiori informazioni.", + "Accept": "Accetta", + "Reject": "Rifiuta", + "Connect": "Connetti", + "HeaderMyMedia": "I miei media", + "HeaderMyMediaSmall": "I miei media (piccolo)", + "LatestFromLibrary": "Recenti {0}", + "HeaderLatestEpisodes": "Ultimi episodi aggiunti", + "ContinuePlaying": "Continua la riproduzione", + "ContinueWatching": "Continua a guardare", + "HeaderLatestChannelMedia": "Ultimi elementi del canale", + "HeaderContinueWatching": "Continua a guardare", + "HeaderContinueListening": "Continua ad ascoltare", + "HeaderActiveRecordings": "Registrazioni attive", + "HeaderLatestRecordings": "Ultime registrazioni", + "LabelConvertTo": "Converti in", + "LabelDownloadTo": "Scarica in", + "HeaderDownloadToDots": "Scarica in...", + "Next": "Successivo", + "LabelSource": "Fonte", + "VersionNumber": "Versione {0}", + "HeaderAllLanguages": "Tutte le lingue", + "Previous": "Precedente", + "HeaderNextUp": "Successivo", + "HeaderPlayNextUp": "Riproduci successivo", + "HeaderLatestFrom": "Ultime da {0}", + "LabelHomeScreenSectionValue": "Sezione pagina Home {0}", + "PasswordResetComplete": "La password è stata ripristinata.", + "PasswordSaved": "Password salvata.", + "SettingsSaved": "Impostazioni salvate.", + "Upcoming": "In arrivo", + "HeaderSelectImageFile": "Seleziona File immagine", + "None": "Nessuno", + "More": "Di Più", + "Up": "Su", + "Down": "Giù", + "Home": "Inizio", + "Back": "Indietro", + "Random": "Casuale", + "Playback": "Riproduzione", + "Favorites": "Preferiti", + "HeaderHomeScreen": "Pagina Home", + "HeaderLatestChannelItems": "Ultimi elementi aggiunti", + "HeaderLibraryOrder": "Ordine libreria", + "HeaderOnNow": "In onda ora", + "HeaderForKids": "Per bambini", + "HeaderPlaybackError": "Errore di riproduzione", + "PlaybackErrorNotAllowed": "Non sei autorizzato a riprodurre questo contenuto. Contatta l'amministratore dell'Emby Server per ulteriori dettagli.", + "RateLimitExceeded": "Il tuo account ha superato il limite di trasmissioni massimo impostato. Contatta l'amministratore dell'Emby Server per ulteriori dettagli.", + "PlaybackErrorNoCompatibleStream": "Nessuna trasmissione compatibile è attualmente disponibile. Riprova più tardi o contatta l'amministratore dell'Emby Server per ulteriori dettagli.", + "PlaybackErrorPlaceHolder": "Inserisci i dischi per poter riprodurre questo video.", + "PlaybackErrorNoPlayableItems": "Non sono stati trovati elementi per la riproduzione. Stai cercando di riprodurre una cartella vuota?", + "Guide": "Guida", + "Games": "Giochi", + "GameSystem": "Piattaforma di gioco", + "Suggestions": "Suggerimenti", + "HeaderFavoriteChannels": "Canali preferiti", + "HeaderFavoriteCollections": "Collezioni preferite", + "HeaderFavoritePlaylists": "Playlist preferite", + "Collection": "Collezione", + "Collections": "Collezioni", + "LabelSelectFolderGroups": "Raggruppa i contenuti delle seguenti cartelle in viste come Film, Musica e Serie TV:", + "LabelSelectFolderGroupsHelp": "Le cartelle non selezionate verranno mostrate come sé stesse nelle proprie viste.", + "Mute": "Disattiva il sonoro", + "Unmute": "Riattiva il sonoro", + "Folder": "Cartella", + "Folders": "Cartelle", + "FileName": "Nome file", + "DisplayInOtherHomeScreenSections": "Visualizza nelle sezioni secondarie della pagina Home come \"Media Recenti\" e \"Continua a guardare\"", + "DisplayInMyMedia": "Visualizza nella pagina Home", + "Shows": "Serie TV", + "MoviesAndShows": "Film e spettacoli", + "HeaderMusicVideo": "Video musicale", + "HeaderMusicVideos": "Video musicali", + "MusicVideos": "Video musicali", + "Videos": "Video", + "MixedContent": "Contenuto misto", + "HomeVideos": "Video personali", + "HomeVideosAndPhotos": "Video e foto personali", + "TVShows": "Serie TV", + "HeaderLibraryFolders": "Cartelle libreria", + "HeaderTermsOfPurchase": "Termini di pagamento", + "PrivacyPolicy": "Informativa sulla privacy", + "TermsOfUse": "Condizioni di utilizzo", + "HeaderRepeatMode": "Modalità di ripetizione", + "HeaderToneMapping": "Mappatura dei toni", + "RepeatOne": "Ripeti una volta", + "RepeatAll": "Ripeti tutti", + "LabelDefaultScreen": "Schermo predefinito", + "ConfirmEndPlayerSession": "Vuoi chiudere Emby su {0}?", + "Yesterday": "Ieri", + "Yes": "Sì", + "No": "No", + "HeaderScanLibraryFiles": "Scansione dei file della libreria", + "LiveTV": "Diretta TV", + "Schedule": "Pianificazione", + "Recordings": "Registrazioni", + "ScanForNewAndUpdatedFiles": "Scansiona per file nuovi e aggiornati", + "NewVersionOfXAvailableForY": "{0} è disponibile per {1}", + "DirectStreamHelp1": "Il contenuto multimediale è compatibile con il dispositivo per quanto riguarda la risoluzione e il tipo di supporto (H.264, AC-3, ecc.), ma è in un contenitore file incompatibile (.avi, .wmv, ecc.). Il video sarà riconfezionato al volo prima di trasmetterlo al dispositivo.", + "DirectStreamHelp2": "La trasmissione in diretta di un file utilizza poca potenza del processore senza alcuna perdita di qualità video.", + "MediaIsBeingConverted": "Il file multimediale viene convertito in un formato che è compatibile con il dispositivo che sta riproducendo il file multimediale.", + "StatsForNerds": "Statistiche per nerd", + "HeaderHardwareAcceleratedDecoding": "Decodifica con accelerazione hardware", + "HeaderHardwareAcceleratedEncoding": "Codifica con accelerazione hardware", + "HeaderDirectPlay": "Riproduzione diretta", + "DirectPlaying": "Riproduzione diretta", + "DirectStreaming": "Trasmissione diretta", + "Transcode": "Converti", + "Transcoding": "Convertendo", + "ContainerBitrateExceedsLimit": "Riduzione del bitrate secondo le impostazioni di qualità", + "VideoCodecNotSupported": "Conversione video a codec compatibile", + "AudioCodecNotSupported": "Conversione audio a codec compatibile", + "SubtitleCodecNotSupported": "Integrazione sottotitoli nel video", + "DirectPlayError": "Riavvio dopo errore di riproduzione", + "ContainerNotSupported": "Conversione a contenitore compatibile", + "VideoLevelNotSupported": "Conversione a livello video compatibile", + "AudioBitrateNotSupported": "Conversione a bitrate audio compatibile", + "AudioChannelsNotSupported": "Conversione a numero di canali audio compatibile", + "VideoResolutionNotSupported": "Conversione a risoluzione video compatibile", + "AudioProfileNotSupported": "Conversione a profilo audio compatibile", + "AudioSampleRateNotSupported": "Conversione a campionamento audio compatibile", + "AnamorphicVideoNotSupported": "Il video anamorfico non è supportato", + "InterlacedVideoNotSupported": "Deinterlacciamento video", + "SecondaryAudioNotSupported": "Selezione traccia audio secondaria", + "ExternalAudioNotSupported": "Selezione traccia audio esterna", + "ErrorRemovingEmbyConnectAccount": "C'è stato un errore nella rimozione dell'account Emby Connect. Assicurati di avere una connessione a Internet attiva e riprova.", + "HeaderEmbyAccountRemoved": "Account Emby rimosso", + "MessageEmbyAccontRemoved": "L'account Emby è stato rimosso da questo utente.", + "HeaderInvitationSent": "Invito inviato", + "Offline": "Non in linea", + "HeaderSignUp": "Iscriviti", + "ServerDownloadMessage": "Per scaricare e installare l'Emby Server gratuito, visita {0}", + "ServerDownloadMessageWithoutLink": "Per scaricare e installare l'Emby Server gratuito, visita il sito web Emby.", + "MessageInvitationSentToUser": "Un'e-mail è stata inviata a {0}, invitandoli ad accettare l'invito di condivisione.", + "MessageInvitationSentToNewUser": "Un'e-mail è stata inviata a {0} con l'invito a registrarsi a Emby.", + "GuestUserNotFound": "Utente non trovato. Assicurati che il nome sia corretto e riprova, o prova a inserire l'indirizzo e-mail.", + "ErrorReachingEmbyConnect": "Si è verificato un errore durante la connessione al server Emby Connect. Verifica la tua connessione a Internet e riprova.", + "ErrorAddingEmbyConnectAccount1": "C'è stato un errore nell'aggiunta dell'account Emby Connect. Hai creato un account Emby? Registrati su {0}.", + "ErrorAddingEmbyConnectAccount2": "Se stai ancora avendo un problema, invia un'e-mail a {0} dall'indirizzo e-mail utilizzato con l'account Emby.", + "ErrorAddingGuestAccount1": "C'è stato un errore nell'aggiunta dell'account Emby Connect. Il tuo ospite ha creato un account Emby? Può registrarsi su {0}.", + "ErrorAddingGuestAccount2": "Se stai avendo ancora dei problemi, invia un'e-mail a {0} e includi il tuo indirizzo e-mail insieme al loro.", + "MessageEmbyAccountAdded": "L'account Emby è stato aggiunto a questo utente.", + "MessagePendingEmbyAccountAdded": "L'account Emby è stato aggiunto a questo utente. Un'e-mail sarà inviata al proprietario dell'account. L'invito dovrà essere confermato selezionando il link contenuto nell'e-mail.", + "HeaderEmbyAccountAdded": "Account Emby aggiunto", + "Skip": "Salta", + "HeaderAdditionalParts": "Parti aggiuntive", + "ButtonGenerateNewPin": "Genera un nuovo PIN", + "ConnectLoginHelp1": "Con Emby Connect puoi facilmente accedere al tuo Emby Server da qualunque posto e condividere i server con la tua famiglia o con gli amici.", + "CreatePinErrorMessage": "Si è verificato un errore durante la generazione del PIN. Clicca di nuovo su \"Genera un nuovo PIN\" per riprovare.", + "PinExpiredMessage": "Questo PIN è scaduto. Clicca di nuovo su \"Genera un nuovo PIN\" per riprovare.", + "ConnectPinCodeHeader": "Per accedere con Emby Connect, utilizza un dispositivo mobile o un computer per visitare {0} e immettere il seguente codice PIN:", + "LabelSubtitlePlaybackMode": "Modalità sottotitoli", + "ErrorDeletingItem": "Si è verificato un errore durante l'eliminazione dell'elemento da Emby Server. Verifica che Emby Server abbia accesso in scrittura sulla cartella multimediale e riprova.", + "NoSubtitles": "Nessun sottotitolo", + "Default": "Predefinito", + "Absolute": "Assoluto", + "Smart": "Intelligente", + "Small": "Piccolo", + "Smaller": "Più piccolo", + "Medium": "Medio", + "Large": "Grande", + "Larger": "Più grande", + "ExtraLarge": "Molto grande", + "ExtraSmall": "Molto piccolo", + "Forced": "Forzato", + "External": "Esterna", + "HeaderEmbeddedTitle": "Titolo incorporato", + "OnlyForcedSubtitles": "Soltanto i sottotitoli forzati", + "AlwaysPlaySubtitles": "Visualizza sempre i sottotitoli", + "DefaultSubtitlesHelp": "I sottotitoli vengono letti in base agli attributi predefiniti e forzati dai metadati integrati. Le preferenze di lingua sono prese in considerazione quando sono disponibili più opzioni.", + "SmartSubtitlesHelp": "I sottotitoli che corrispondono alla lingua nelle preferenze verranno caricati quando l'audio sarà in una lingua straniera.", + "HeaderSubtitleSettings": "Impostazioni sottotitoli", + "HeaderSubtitleAppearance": "Visualizzazione sottotitoli", + "OnlyForcedSubtitlesHelp": "Saranno caricati soltanto i sottotitoli contrassegnati come forzati.", + "AutoSelectHearingImpairedHelp": "Saranno caricati i sottotitoli corrispondenti alla lingua preferita, con preferenza per le tracce contrassegnate come per non udenti (SDH).", + "AlwaysPlaySubtitlesHelp": "I sottotitoli corrispondenti alla lingua preferita saranno caricati a prescindere dalla lingua dell'audio.", + "NoSubtitlesHelp": "I sottotitoli non verranno caricati per impostazione predefinita. Tuttavia, possono essere caricati manualmente durante la riproduzione.", + "LabelPreferredSubtitleLanguage": "Lingua dei sottotitoli preferita", + "LabelTextSize": "Dimensione del testo", + "TheseSettingsAffectSubtitlesOnThisDevice": "Queste impostazioni influenzano i sottotitoli di questo dispositivo", + "LabelDropShadow": "Ombra portata", + "LabelTextBackgroundColor": "Colore di sfondo del testo", + "LabelWindowBackgroundColor": "Colore di sfondo del testo", + "LabelFont": "Carattere", + "LabelTextColor": "Colore del testo", + "LabelBackgroundColor": "Colore dello sfondo", + "LabelBackgroundOpacity": "Opacità dello sfondo", + "Raised": "Sospeso", + "Depressed": "Depresso", + "Uniform": "Uniforme", + "DropShadow": "Ombreggiato", + "SmallCaps": "Maiuscoletto", + "SubtitleAppearanceSettingsDisclaimer": "Queste impostazioni non si applicano a sottotitoli grafici (PGS, DVD, ecc.), o sottotitoli che hanno i propri stili incorporati (ASS/SSA).", + "Normal": "Normale", + "HeaderWaitingForWifi": "In attesa del Wi-Fi", + "WifiRequiredToDownload": "Una connessione Wi-Fi è richiesta per continuare il download.", + "DownloadOnlyOnWifi": "Scarica solo da Wi-Fi", + "LabelMusicDownloadQuality": "Qualità della musica scaricata", + "MusicDownloadQualityHelp": "I file audio con un valore più alto di bitrate saranno convertiti dall'Emby Server. Seleziona un valore più alto per una qualità migliore, oppure un valore più basso per risparmiare spazio di archiviazione.", + "HeaderDownloadSettings": "Impostazioni download", + "LabelDownloadLocation": "Percorso di download", + "BrowseForFolder": "Scegli Cartella", + "Unlimited": "Illimitato", + "NoLimit": "Nessun limite", + "Hide": "Nascondi", + "HeaderKeepWatching": "Continua a guardare", + "HeaderNextEpisode": "Prossimo episodio", + "AudioBitDepthNotSupported": "Conversione in profondità bit audio compatibile", + "VideoBitrateNotSupported": "Conversione in un bitrate video compatibile", + "VideoProfileNotSupported": "Conversione a profilo video compatibile", + "VideoFramerateNotSupported": "Conversione video a frequenza dei fotogrammi compatibile", + "VideoBitDepthNotSupported": "Conversione a profondità di bit video compatibile", + "RefFramesNotSupported": "Conversione a numero di fotogrammi di riferimento video compatibile", + "ErrorConnectServerUnreachable": "Si è verificato un errore durante l'esecuzione dell'operazione richiesta. Il tuo server non è in grado di contattare il nostro server Emby Connect al {0}. Assicurati che il server disponga di una connessione Internet attiva e che le comunicazioni siano consentite da qualsiasi firewall o software di protezione installato.", + "HeaderStopRecording": "Ferma registrazione", + "ManageRecording": "Gestisci registrazione", + "LabelDropImageHere": "Trascina qui l'immagine o clicca per selezionare un'immagine da caricare.", + "MessageFileReadError": "Si è verificato un errore durante la lettura del file. Riprova.", + "Browse": "Esplora", + "HeaderUploadImage": "Carica immagine", + "HeaderAddUpdateImage": "Aggiungi/aggiorna immagine", + "HeaderShowFields": "Mostra campi", + "LabelView": "Visualizza", + "LabelImageType": "Tipo immagine", + "Upload": "Carica", + "Primary": "Locandina", + "PrimaryImageBlur": "Sfocatura dell'immagine primaria", + "Art": "Copertina", + "Backdrop": "Sfondo", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (retro)", + "Disc": "Disco", + "Logo": "Logo", + "LogoDark": "Logo (versione scura)", + "LogoLight": "Logo (versione chiara)", + "LogoLightColor": "Logo (versione chiara a colori)", + "Menu": "Menù", + "Screenshot": "Schermata", + "Thumb": "Miniatura", + "HeaderAudioSettings": "Impostazioni audio", + "LabelAudioLanguagePreference": "Lingua audio preferita", + "LabelPlayDefaultAudioTrack": "Riproduci la traccia audio predefinita indipendentemente dalla lingua", + "HeaderVideoQuality": "Qualità video", + "CinemaModeConfigurationHelp": "La Modalità Cinema porta l'esperienza teatrale direttamente nel tuo salotto con la possibilità di riprodurre trailer e introduzioni personalizzate prima del filmato principale.", + "ShowUpNextPreview": "Mostra anteprima successiva", + "ShowUpNextPreviewHelp": "Mostra le informazioni per l'elemento successivo vicino alla fine di quello attuale.", + "PlayNextEpisodeAutomatically": "Riproduci automaticamente l'episodio successivo", + "LabelMaxChromecastBitrate": "Qualità della trasmissione Chromecast", + "LabelSkipBackLength": "Durata salto all'indietro", + "LabelSkipForwardLength": "Durata salto in avanti", + "EnableCinemaMode": "Attiva la Modalità Cinema", + "LabelInternetQuality": "Qualità della trasmissione remota", + "LabelCellularQuality": "Qualità della trasmissione remota (cellulare)", + "HeaderMusicQuality": "Qualità musica", + "LabelHomeNetworkQuality": "Qualità della trasmissione domestica", + "HeaderLatestMedia": "Media Recenti", + "HeaderRestartingEmbyServer": "Riavviando Emby Server", + "RestartPleaseWaitMessage": "Aspetta mentre Emby Server si arresta e si riavvia. Questo può richiedere uno o due minuti.", + "HeaderPlayNext": "Riproduci il prossimo", + "AutoBasedOnLanguageSetting": "Automatico (in base all'impostazione del dispositivo)", + "SameAsMainTheme": "Lo stesso del tema principale", + "LabelDateTimeLocale": "Data e ora locali", + "Genre": "Generi", + "DirectorValue": "Regista: {0}", + "DirectorsValue": "Registi: {0}", + "GenreValue": "Genere: {0}", + "GenresValue": "Generi: {0}", + "TagsValue": "Tag: {0}", + "Off": "Spento", + "Title": "Titolo", + "Year": "Anno", + "Filter": "Filtro", + "Filters": "Filtri", + "Unplayed": "Non visto", + "LabelTVHomeScreen": "Pagina Home in modalità TV", + "Horizontal": "Orizzontale", + "Vertical": "Verticale", + "HeaderGroupBy": "Raggruppa per", + "HeaderMediaType": "Tipo di media", + "GroupBySeries": "Raggruppa per serie", + "HeaderVideoType": "Tipo di video", + "HeaderSeriesStatus": "Stato serie TV", + "Features": "Caratteristiche", + "Trailers": "Trailer", + "Extras": "Extra", + "ThemeSongs": "Brani a tema", + "ThemeVideos": "Video a tema", + "HeaderFavoriteMovies": "Film preferiti", + "HeaderFavoritePhotos": "Foto preferite", + "HeaderFavoriteShows": "Serie TV preferite", + "HeaderFavoriteEpisodes": "Episodi preferiti", + "HeaderFavoriteVideos": "Video preferiti", + "HeaderFavoriteMusicVideos": "Video musicali preferiti", + "HeaderFavoriteGames": "Giochi preferiti", + "HeaderFavoriteArtists": "Artisti preferiti", + "HeaderFavoriteAlbums": "Album preferiti", + "HeaderFavoriteSongs": "Brani preferiti", + "HeaderFavoriteAuthors": "Autori preferiti", + "HeaderFavoriteAudioBooks": "Audiolibri preferiti", + "Ascending": "Crescente", + "Descending": "Decrescente", + "HeaderColorPrimaries": "Colori primari", + "HeaderColorSpace": "Spazio colore", + "HeaderColorTransfer": "Trasferimento di colore", + "HeaderVideoRange": "Gamma video", + "SeriesDisplayOrderHelp": "Ordina gli episodi per data di messa in onda, ordine DVD o numerazione assoluta.", + "LabelVerticalPositionFromBottom": "Posizione verticale (dal basso)", + "HeaderFavoritePeople": "Persone preferite", + "MultiSelect": "Selezione multipla", + "HeaderSignOut": "Disconnessione", + "HeaderSelectServer": "Scegli server", + "HeaderChangeServer": "Cambia server", + "HeaderChangeUser": "Cambia utente", + "HeaderAppSettings": "Impostazioni dell'app", + "HeaderLoginSettings": "Impostazioni di accesso", + "LabelRememberLogin": "Ricordami", + "LabelAutomaticallySignOut": "Uscita automatica", + "BetaTesterMessage": "Grazie per essere diventato un beta tester Emby! Per favore, lascia il tuo feedback nell'{0}Area testing della Emby Community{1}.", + "HardwareAccelerated": "Accelerazione hardware", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Informazioni media", + "Locked": "Bloccato", + "HeaderSplitVersionsApart": "Suddividi le versioni", + "Any": "Qualunque", + "Admin": "Admin", + "HeaderReadMore": "Leggi di più", + "CustomRatingHelp": "La classificazione personale si usa per la classificazione del controllo parentale, ma non viene visualizzata. La classificazione parentale viene ancora visualizzata.", + "KeepUpToHelp": "Le registrazioni oltre il limite vengono eliminate all'inizio della registrazione successiva. Le registrazioni più vecchie vengono eliminate per prime, per data di aggiunta.", + "NoItemsMatchingFound": "Non sono stati trovati elementi corrispondenti ai tuoi criteri di ricerca.", + "TwoSearchCharsRequired": "Inserisci almeno due caratteri di ricerca.", + "PreventPlaybackContinuing": "Impedisci che la riproduzione continui indefinitamente richiedendo periodicamente l'input dell'utente.", + "PromptStillWatching": "Attiva la richiesta \"Stai ancora guardando?\"", + "HeaderMissingMetadata": "Metadati mancanti", + "HeaderIncludedIn": "Incluso in", + "EmbyConnectUserAlreadyLinked": "L'utente Emby Connect è già collegato a un altro utente su questo server.", + "VideoFilesWillBeConvertedTo": "I video convertiti verranno salvati come {0}.", + "VideoWillBeConvertedTo": "Le trasmissioni video verranno convertiti in {0} o copiati dal file originale se sono già {0} e la qualità rientra nelle opzioni di conversione.", + "VideoWillBeConvertedToOrCopied": "Le trasmissioni video verranno convertiti in {0} o copiati dal file originale se presenti in ({1}) e la qualità rientra nelle opzioni di conversione.", + "AudioWillBeConvertedTo": "Le trasmissioni audio verranno convertiti in {0} o copiati dal file originale se sono già {0} e la qualità rientra nelle opzioni di conversione.", + "AudioWillBeConvertedToOrCopied": "Le trasmissioni audio verranno convertiti in {0} o copiati dal file originale se presenti in ({1}) e la qualità rientra nelle opzioni di conversione.", + "HeaderSpecialKeys": "Tasti speciali", + "FollowingSpecialKeys": "I seguenti tasti speciali sono supportati sulla maggior parte delle tastiere e dei telecomandi:", + "HeaderDeleteSeries": "Elimina serie", + "HeaderDeleteLastPlayedEpisode": "Elimina l'ultimo episodio riprodotto", + "HeaderConnectingToServer": "Connessione al server", + "ServerNameValue": "Nome del server: {0}", + "DomainValue": "Classificato {0}", + "RatedValue": "Classificato {0}", + "LocalServerRedirectMessage": "Verrai reindirizzato al dominio di proprietà e gestito dall'amministratore del server a cui hai scelto di connetterti:", + "AllMediaOwnedHosted": "Tutti i media sono ospitati e gestiti dal proprietario di {0}.", + "EnableResolutionSwitching": "Adatta risoluzione video", + "EnableResolutionSwitchingHelp": "Questa opzione consente a Emby di modificare la frequenza di aggiornamento dello schermo allo stesso valore (o multiplo) della frequenza in cui era codificato il video prima della riproduzione. Questo può ridurre la quantità di sfarfallio che potresti notare nella riproduzione dei video che non corrispondono alla frequenza del televisore.", + "EnableDisplayRefreshRateSwitching": "Attiva il cambio della frequenza di aggiornamento dello schermo", + "EnableDisplayRefreshRateSwitchingHelp": "Consenti a Emby di modificare la frequenza di aggiornamento dello schermo allo stesso valore (o multiplo) della frequenza dei fotogrammi in cui era codificato il video prima di avviare la riproduzione. Questo può ridurre la quantità di sfarfallio che potresti notare durante la riproduzione di video le cui frequenze non corrispondono alla frequenza dello schermo.", + "RememberSelectedAudioTracks": "Ricorda le selezioni delle tracce audio", + "RememberSelectedSubtitleTracks": "Ricorda la selezioni delle tracce dei sottotitoli", + "RememberSelectedSubtitleTracksHelp": "Le selezioni della traccia dei sottotitoli verranno ricordate per video e riapplicate durante la riproduzione dello stesso video.", + "RememberSelectedAudioTracksHelp": "Le selezioni delle tracce audio verranno ricordate per video e riapplicate durante la riproduzione dello stesso video.", + "ClearSavedTrackSelections": "Cancella le selezioni di tracce salvate", + "HeaderClearTrackSelections": "Cancella le selezioni di tracce salvate", + "QuestionClearSavedTracks": "Cancellare tutte le selezioni di tracce salvate?", + "LabelChannelTags": "Tag dei canali", + "AfterThisPlaysConfirmation": "Dopo questa riproduzione, vuoi continuare a riprodurre o fermare la musica che avevi precedentemente messo in coda?", + "Keep": "Mantieni", + "Clear": "Cancella", + "HeaderClearFilters": "Cancella filtri", + "HeaderSearchForImages": "Cerca immagini", + "HeaderSearchNewImage": "Cerca una nuova immagine", + "HeaderSearchForAnImage": "Cerca un'immagine", + "DragDropToReorder": "Trascina e rilascia per riordinare", + "HeaderAddImageFromUrl": "Aggiungi immagine da URL", + "HeaderSetImageFromUrl": "Imposta immagine da URL", + "LabelUrl": "URL", + "LabelChannelNumber": "Numero del canale", + "LabelGuideDataChannel": "Canale dati della guida", + "GuideDataSource": "Fonte dati della guida", + "HeaderCopyToClipboard": "Copia negli appunti", + "TimeRemainingValue": "{0} rimanenti", + "LabelResumeRewindSeconds": "Alla ripresa, riavvolgi automaticamente", + "ResumeRewindSecondsHelp": "Questo può aiutarti a ricordare dove eri rimasto. Si applica soltanto al ripristino iniziale e non a ogni pausa durante la riprodizione.", + "HeaderSavePlayQueueToPlaylist": "Salva la coda di riproduzione nella playlist", + "EnableLogoImagesAsTitle": "Visualizza le immagini del logo come titoli sulle schermate dei dettagli", + "EnableLogoImagesAsTitleHelp": "Se disponibili, le immagini del logo possono essere utilizzate al posto del titolo testuale su video, serie e le altre schermate dei dettagli. Il titolo rimarrà testuale se l'immagine del logo non è disponibile.", + "LabelNowPlayingAudioBackgroundStyle": "Stile dello sfondo dell'audio in riproduzione", + "LabelNowPlayingVideoBackgroundStyle": "Stile dello sfondo del video in riproduzione", + "NowPlayingVideoBackgroundStyleHelp": "Determina lo stile di sfondo durante il controllo remoto della riproduzione video su un altro dispositivo.", + "Rotation": "Rotazione", + "Minutes": "Minuti", + "LabelMaxRecordingLength": "Durata massima della registrazione", + "MaxRecordingLengthHelp": "Limita le registrazioni a un intervallo di tempo indicato, indipendentemente dalla durata della trasmissione. Imposta 0 per nessun limite.", + "RemoteWAN": "Indirizzo remoto (WAN)", + "HeaderLastConnectedTo": "Ultima connessione a", + "Version": "Versione", + "Keyword": "Parola chiave", + "HeaderServerAddress": "Indirizzo del server", + "HeaderSkipIntro": "Salta l'introduzione", + "HeaderCreateRecording": "Crea registrazione", + "HeaderAddRecording": "Aggiungi registrazione", + "HeaderChannelAndTime": "Canale ed orario", + "LabelRecordProgramOrSeriesFrom": "Registra un programma o una serie da", + "LabelStartTime": "Ora di inizio", + "LabelEndTime": "Ora di fine", + "LabelFrequency": "Frequenza", + "Recurring": "Ricorrente", + "Once": "Una volta", + "Start": "Inizia", + "Unpause": "Riprendi", + "LabelIntroSkipMode": "Modalità di salto dell'introduzione", + "ShowSkipIntroButton": "Mostra il pulsante \"Salta introduzione\"", + "AutoSkipIntro": "Salta automaticamente le introduzioni", + "DisplayRatingInformationOnVideoPlaybackStart": "Mostra la classificazione all'avvio della riproduzione", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Le classificazioni verranno mostrate brevemente all'avvio della riproduzione.", + "IntroSkipModeHelp": "Visualizza un pulsante \"Salta introduzione\" o salta automaticamente le introduzioni per gli episodi in cui Emby Server ha rilevato marcatori di introduzione. Il rilevamento dell'introduzione deve essere attivato nelle opzioni della libreria di Emby Server.", + "EnableHomeScreenFocusPreview": "Usa un layout nella pagina Home che mostra un'anteprima dettagliata dell'elemento selezionato", + "EnableHomeScreenFocusPreviewHelp": "Questa opzione potrebbe non funzionare correttamente se la tua pagina Home contiene differenti tipi di media.", + "LabelHideMediaTransportButtons": "Nascondi i pulsanti di trasporto del lettore video", + "HideMediaTransportButtonsHelp": "Crea una semplice interfaccia video nascondendo i pulsanti base come Avanti, Indietro e Pausa. Sarai ancora in grado di utilizzare queste funzioni usando le frecce e OK/INVIO. Auto nasconderà i pulsanti quando non viene rilevato l'utilizzo del mouse all'interno dell'applicazione.", + "ImageSizeHelp": "Imposta la tua dimensione preferita della griglia immagini.", + "LabelImageSize": "Dimensionei dell'immagine", + "ThisImageIsOnlyPreview": "Questa immagine è solo un'anteprima proveniente da un fornitore di metadati. L'immagine attuale che l'Emby Server scarica potrebbe essere diversa e dipenderà dalle opzioni che hai configurato per la libreria.", + "ResultsRangeValue": "{0} a {1} di {2}", + "NotificationsDescription": "Configura le notifiche per essere informato su eventi importanti del tuo Emby Server.", + "DeleteEmbyConnectAccount": "Elimina account Emby Connect", + "DeleteEmbyConnectAccountHelp": "Per eliminare il tuo account Emby Connect, registrati alla {0}Emby Community{1} su {2}. Dopo esserti connesso, clicca sul tuo nome utente in alto a destra, poi clicca su Impostazioni account, e infine su Elimina il mio account.", + "KeepPlayingInBackground": "Continua la riproduzione in background", + "LabelVideoBackBehavior": "Comportamento del pulsante Indietro del lettore video", + "HeaderViewLyrics": "Visualizza testi", + "HeaderViewMissingEpisodes": "Visualizza episodi mancanti", + "HeaderMissingEpisodes": "Episodi mancanti", + "HeaderManageAccess": "Gestisci accesso", + "HeaderManageCollaboration": "Gestisci la collaborazione", + "HeaderLeaveCollaboration": "Abbandona la collaborazione", + "HeaderRemoveFromLibrary": "Rimuovi dalla libreria", + "RemoveSharedItemConfirmation": "Vuoi davvero rimuovere questo elemento dalla tua libreria? Per recuperarlo, il proprietario dovrà concederti nuovamente l'accesso.", + "SubtitlesDownloaded": "Sottotitoli scaricati", + "HeaderMakePrivate": "Rendi privato", + "HeaderMakePublic": "Rendi pubblico", + "MakePublicDescription": "Tutti gli utenti potranno visualizzare questo elemento. Agli utenti può essere concesso l'accesso per la modifica.", + "MakePrivateDescription": "L'accesso può comunque essere concesso individualmente agli utenti.", + "Private": "Privato", + "Public": "Pubblico", + "Collaborative": "Collaborativo", + "PreferredShowDisplay": "Visualizzazione del programma TV preferito", + "ShowAllEpisodesAllSeasons": "Mostra tutti gli episodi di tutte le stagioni", + "ShowAllEpisodesSingleSeason": "Mostra tutti gli episodi solo per le miniserie", + "ShowSeasonFolders": "Mostra sempre cartelle stagioni", + "HeaderAddAgain": "Aggiungi di nuovo", + "UpNext": "Prossimo", + "ItemsAlreadyInPlaylist": "Alcuni di questi elementi sono già nella playlist.", + "ItemAlreadyInPlaylist": "L'elemento si trova già nella playlist.", + "HeaderPlayChannel": "Riproduci canale", + "LabelScreenOrientationDuringVideo": "Orientamento schermo durante la riproduzione del video", + "UseDeviceSetting": "Usa impostazioni del dispositivo", + "LockToLandscape": "Blocca in modalità orizzontale", + "UsernameForFolderHelp": "Il nome utente per accedere a questa cartella condivisa (se necessario).", + "PasswordForFolderHelp": "La password per accedere a questa cartella condivisa (se necessaria).", + "ShowMediaInfoOnDetailScreens": "Mostra i media completi nella parte inferiore delle schermate dei dettagli audio e video", + "ForgotPasswordNoUserFound": "Nessun utente trovato con il nome indicato. Riprova, o lascia il nome in bianco per ripristinare la password per tutti gli utenti di questo server.", + "Silver": "Argento", + "DimGray": "Grigio medio", + "DarkGray": "Grigio scuro", + "LightGray": "Grigio chiaro", + "Black": "Nero", + "Blue": "Blu", + "Cyan": "Ciano", + "Gray": "Grigio", + "Green": "Verde", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Arancione", + "Pink": "Rosa", + "Red": "Rosso", + "Yellow": "Giallo", + "White": "Bianco", + "Purple": "Viola", + "RecentlyReleasedMovies": "Film usciti di recente", + "RecentlyReleasedEpisodes": "Episodi usciti di recente", + "DolbyProfile": "Profilo Dolby", + "IpAddress": "Indirizzo IP", + "VideoType": "Tipo di video", + "HidePlayedMediaFrom": "Nascondi i contenuti riprodotti da", + "BottomEdgePosition": "Posizione dal bordo inferiore", + "VerticalPositionFromBottomScreen": "Imposta la posizione verticale dei sottotitoli rispetto alla parte inferiore dello schermo.", + "TopEdgePosition": "Posizione dal bordo superiore", + "TopEdgePositionHelp": "Imposta la posizione verticale più alta consentita dei sottotitoli rispetto alla parte superiore dello schermo. Viene utilizzato quando i sottotitoli contengono istruzioni di posizionamento in alto.", + "HeaderSubtitlePosition": "Posizione sottotitoli", + "TitleProfilePin": "PIN del profilo", + "ProfilePinConfirm": "PIN del profilo (conferma)", + "SaveProfilePin": "Salva PIN", + "ProfilePinDescription": "Crea un PIN facoltativo che ti sarà richiesto di inserire ogni volta che torni a un'applicazione Emby su un dispositivo nel quale hai già effettuato l'accesso. È utile se hai dispositivi condivisi da più utenti. Puoi scegliere di attivarlo selettivamente su ogni dispositivo, come richiesto.", + "TitleNewEpisodes": "Nuovi episodi", + "EnterYourPinToContinue": "Inserisci il tuo codice PIN per proseguire.", + "YourPinMustBe": "Il tuo PIN deve essere composto da {0} cifre.", + "ForgotPin": "Hai dimenticato il PIN?", + "RequireEnteringPinToReturn": "Richiedi di inserire il PIN del mio profilo ogni volta che torno a questa app.", + "RequireEnteringPinToReturnQuestion": "Dovremmo chiederti il PIN del tuo profilo ogni volta che torni su questa applicazione? Se questo dispositivo è condiviso da più utenti, il PIN del tuo profilo può impedire agli altri utenti di accedere ai tuoi dati.", + "RequireEnteringPinToReturnHelp": "Utile se il dispositivo è condiviso da più utenti.", + "WrongPinPleaseTryAgain": "Ops, PIN sbagliato. Riprova.", + "ProfilePinIsOn": "Il PIN del profilo è attualmente attivo.", + "IfTryingToConnectToHttp": "Se stai provando a connetterti al tuo Emby Server tramite un indirizzo HTTP, il tuo browser potrebbe non consentirlo a causa dei requisiti HTTPS. Prova una delle seguenti soluzioni:", + "SetupHttpsForYourServer": "Imposta {0}HTTPS per il tuo Emby Server{1} in modo da poterti connettere tramite HTTPS.", + "TitleUnableToReachServer": "Connessione al server non riuscita", + "TitleUnableToReachName": "Non riesco a connettermi a {0}", + "HearingImpaired": "Non udenti", + "SignIntoServerName": "Accedi a {0}", + "About": "Info", + "Specials": "Speciali", + "NSettings": "Impostazioni {0}", + "NPreferences": "Preferenze {0}", + "DetailScreenOptions": "Schermate di dettaglio", + "LabelGenreDisplayLimit": "Limita la visualizzazione di generi", + "GenreDisplayLimitHelp": "Limita il numero di generi visualizzati nella parte superiore delle schermate dei dettagli degli articoli.", + "GenreDisplayLimitForListsHelp": "Limita il numero di generi visualizzati nella parte superiore delle schermate delle playlist, delle raccolte e dei dettagli dell'artista.", + "LabelGenreDisplayLimitForLists": "Limite di visualizzazione dei generi per gli elenchi", + "ShowPosterOnDetails": "Mostra un poster nella schermata dei dettagli", + "ShowPosterOnDetailsHelp": "Scegli di mostrare un poster nelle schermate dei dettagli video o di nasconderlo per un aspetto più minimale che enfatizzi lo sfondo. Questa impostazione non è utilizzata su layout di schermi più piccoli. Alcuni tipi di elementi ignoreranno questa impostazione.", + "EnableAppLogging": "Attiva la registrazione degli eventi (log)", + "EnableAppLoggingHelp": "La registrazione degli eventi (log) può ridurre le prestazioni dell'applicazione e dovrebbe essere attivata soltanto in caso di risoluzione di problemi. Le modifiche richiedono il riavvio dell'applicazione.", + "LabelSlideshowInterval": "Durata della presentazione di ogni foto", + "TVChannelImageEditorHelp": "Sono supportate più versioni del logo. Le applicazioni Emby sceglieranno automaticamente quella appropriata in base al tema attuale.", + "PlaySlideshow": "Riproduci la presentazione", + "CheckForExistingEpisodesInAllLibraries": "Verifica la presenza di episodi in tutte le librerie", + "GroupNotificationsBySeriesOrAlbum": "Raggruppa le notifiche per serie e album", + "ThemeSettings": "Impostazioni del tema", + "FollowingActivityWillBeDisrupted": "La seguente attività sarà interrotta e potrebbe essere necessario un intervento manuale per riavviarla:", + "OneActivePlaybackSession": "1 sessione di riproduzione attiva", + "NumActivePlaybackSessions": "{0} sessioni di riproduzione attive", + "OneActiveRecording": "1registrazione attiva", + "NumActiveRecordings": "{0} registrazioni attive", + "PlayFromLivePosition": "Riproduci dalla diretta", + "PlayFromStartOfRecording": "Riproduci dall'inizio della registrazione", + "ThisChannelIsActivelyRecording": "Questo canale è in registrazione. Come vorresti iniziare a riprodurre?", + "ThemeSongVolume": "Volume del brano a tema", + "HeaderForceConversionForFormats": "Forza la conversione dei formati", + "ForceConversionForFormatsHelp": "Utilizza questa opzione per forzare la conversione sul server per i formati che non vengono riprodotti correttamente su questo dispositivo.", + "StartupBehavior": "Comportamento all'avvio", + "RememberLastUser": "Ricorda l'ultimo utente", + "ShowLoginScreen": "Mostra la schermata di accesso", + "SignInAsValue": "Accedi come {0}", + "ConvertUnsupportedAudio": "Converti l'audio surround non supportato in Dolby Digital", + "ConvertUnsupportedAudioHelp": "Evita il downmix in stereo dei formati surround non supportati facendo in modo che l'Emby Server li converta in Dolby Digital.", + "HeaderPlaybackCorrection": "Correzione di riproduzione", + "HeaderAttemptPlaybackCorrection": "Tenta la correzione della riproduzione", + "PlaybackCorrectionConfirm": "Vuoi tentare la correzione di riproduzione?", + "PlaybackCorrectionDescription": "L'elemento attuale ha un problema di riproduzione come nessun video o audio? Questa opzione cercherà di correggere i problemi di riproduzione utilizzando la conversione nel server per convertire questo file in un formato più adatto alla trasmissione. Ciò comporterà un maggiore consumo di risorse su questo Emby Server.", + "PlaybackCorrectionDescription2": "Puoi eseguire questa operazione fino a tre volte per video, dove remux, conversione video e conversione audio vengono ognuno avviati uno alla volta.", + "HeaderAlbumsAsContributingArtist": "Album come artista collaboratore", + "HeaderAlbumsAsComposer": "Album come compositore", + "Duplicates": "Duplicati", + "HeaderSleepTimer": "Timer di spegnimento", + "AfterCurrentItem": "Dopo l'elemento attuale", + "HeaderStopPlayback": "Ferma la riproduzione", + "TurnOffTimer": "Spegni il timer", + "SleepTimerIsSet": "Il timer di spegnimento è impostato", + "SleepTimerIsOff": "Il timer di spegnimento è spento", + "LabelEnableRemoteControlTVMode": "Visualizza le funzioni di trasmissione e controllo remoto", + "EnableRemoteControlTVModeHelp": "Attiva questa opzione se intendi usare questo dispositivo per inviare contenuti multimediali ad altri dispositivi.", + "ShowOnScreenControls": "Mostra i controlli sullo schermo", + "LabelVideoScreenUpAction": "Azione del pulsante Su del riproduttore video", + "VideoScreenUpActionHelp": "Seleziona l'azione da eseguire quando si preme il tasto Su sullo schermo. Questa opzione si applica quando non sono visibili controlli sullo schermo. Quando i controlli sono già visibili, il tasto Su sarà utilizzato per la navigazione.", + "LabelVideoPlayerLongPressAction": "Azione di pressione prolungata del lettore video", + "LetsGetSetup": "Iniziamo", + "VideoPlayerLongPressActionHelp": "Scegli quale funzione o menu visualizzare quando tieni premuto il pulsante OK durante la riproduzione video. Questa opzione ha effetto solo quando i controlli video sono nascosti o la barra di ricerca è attiva.", + "AskAdminToGetPremiere": "Questo acquisto deve essere effettuato dall'amministratore del server. Chiedi all'amministratore dell'Emby Server di accedere e ottenere Emby Premiere, così da poter usufruire delle funzionalità premium.", + "AutoOpenSingleItemsFolders": "Apri automaticamente gli elementi singoli nella vista delle cartelle", + "AutoOpenSingleItemsFoldersHelp": "Quando una cartella contiene un solo elemento, apri automaticamente quell'elemento.", + "PlayedOnValue": "Riprodotto {0}", + "TheseSettingsApplyAppDevice": "Queste impostazioni si applicano a tutti gli utenti in questo dispositivo.", + "LastContentDateAdded": "Data di aggiunta dell'ultimo contenuto", + "RepeatThemeMedia": "Riproduci il tema di continuo", + "HideEpisodeSpoilerInfo": "Nascondi i dettagli spoiler degli episodi non ancora riprodotti", + "HideEpisodeSpoilerInfoHelp": "Nascondi l'immagine e la trama degli episodi non ancora riprodotti dalla maggior parte degli schermi.", + "BornValueAge": "Nascita: {0} (età {1})", + "PreferDirectStreamLiveTV": "Preferisci la trasmissione della diretta TV", + "PreferDirectStreamLiveTVHelp": "La diretta TV ridurrà il consumo di risorse nel tuo Emby Server ma può non essere navigabile durante la riproduzione. Attiva l'opzione per trasmettere diretta TV se il formato è compatibile e incluso nelle tue impostazioni di qualità configurata. Disattiva l'opzione per sfruttare la navigazione durante la riproduzione a costo di un maggior consumo di risorse.", + "HeaderAllRecordings": "Tutte le registrazioni", + "RememberLoginDescription": "Dopo l'accesso, puoi impostare il comportamento all'avvio dell'applicazione tra ricordare l'accesso, scegliere l'utente con cui accedere o mostrare sempre la schermata di accesso.", + "ForgetThisServer": "Dissocia questo server", + "ForgetServerConfirmation": "Sei sicuro di voler dissociare questo server?", + "HeaderThisDevice": "Questo dispositivo", + "ChaptersGuide": "Capitoli / Guida diretta TV", + "ChaptersGuideHelp": "Mostra i capitoli dei media con capitoli. Per quelli senza, mostra la guida della diretta TV (se disponibile).", + "HeaderShowSeriesImages": "Mostra le immagini della serie", + "AppExitConfirmation": "Sei pronto a uscire da Emby?", + "AppExitMenu": "Menu Esci", + "SideMenu": "Menu laterale di navigazione", + "SystemStorage": "Archiviazione sistema ({0})" +} diff --git a/modules/common/strings/ja.json b/modules/common/strings/ja.json new file mode 100644 index 0000000..7698962 --- /dev/null +++ b/modules/common/strings/ja.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "既存の動画プレビュ―サムネイルを置き換える", + "ReplaceExistingThumbnailImagesHelp": "ライブラリ設定で有効になっている場合、既存の動画プレビューサムネイルはすべて削除され、新しいものが生成されます。", + "DateCreated": "作成日", + "CreatedOnValue": "{0}を作成しました", + "UpdatedOnValue": "{0}を更新しました", + "EmbyLoginTerms": "‎Emby はホームビデオや写真などの個人用メディアライブラリを管理できるように設計されています。{0}‎‎の利用規約‎‎{1}‎‎をご覧ください。Emby ソフトウェアの使用はこの条項を受諾したものとします。", + "MessageUnableToConnectToServer": "現在、選択したサーバに接続できません。 実行中であることを確認して、もう一度試してください。", + "EmbyIntroMessage": "Emby を使用すると、Emby Serverからスマートフォン、タブレット、その他のデバイスにビデオ、音楽、写真を簡単にストリーミングできます。", + "HeaderSignInWithConnect": "Emby Connectでサインインする", + "HeaderWelcomeToEmby": "Emby へようこそ", + "HeaderNewUsers": "新規ユーザ", + "HeaderPleaseSignIn": "サインインしてください", + "MessageInvalidUser": "ユーザー名かパスワードが違います。再度お試しください。", + "MessageUnlockAppWithPurchaseOrSupporter": "買い切りでの購入、またはアクティブな Emby Premiere サブスクリプションでこの機能のロックを解除します。", + "MessageUnlockAppWithSupporter": "有効な Emby Premiere サブスクリプションでこの機能のロックを解除します。", + "MessageToValidateSupporter": "有効な Emby Premiere サブスクリプションをお持ちの場合は、Emby Server ダッシュボードで Emby Premiere をセットアップしてください。メインメニューの Emby Premiere をクリックしてアクセスできます。", + "ValueSpecialEpisodeName": "スペシャル - {0}", + "HeaderSignIn": "サインイン", + "Share": "共有", + "Shared": "共有", + "Info": "情報", + "Add": "追加", + "Speed": "速さ", + "PlaybackSpeed": "再生速度", + "Chapters": "チャプター", + "Password": "パスワード", + "SavePassword": "パスワードを保存", + "LabelPassword": "パスワード:", + "HeaderResetPassword": "パスワードをリセット", + "Series": "シリーズ", + "Preview": "プレビュー", + "Submit": "送信", + "Never": "ない", + "Table": "Table", + "HeaderScheduledTasks": "スケジュールされたタスク", + "Plays": "再生", + "LastUsedAddressValue": "{0} が最後に使用", + "LabelKeywordType": "キーワード種別", + "HeaderSelectColumns": "列選択", + "HeaderTopResults": "上位の結果", + "HeaderPinSidebar": "サイドバーを固定", + "Collapse": "折りたたむ", + "LabelBackgroundVideoPlayback": "ビデオをバックグラウンド再生:", + "BackgroundVideoPlaybackHelp": "‎バックグラウンド再生では、画面がオフの場合でもビデオの再生を継続できます。‎", + "AlwaysOn": "常にオン", + "HeadphonesOrExternalSpeakersConnected": "‎ヘッドフォンまたは外部スピーカーが接続されてました", + "HeaderKeyboardAndRemote": "キーボードとリモート", + "NoSelectedItemsSupportOperation": "‎この操作をサポートする項目が選択されていません。‎", + "NoOperationsForSelectedItems": "‎選択した項目に対してできる操作はありません。‎", + "UploadOnlyOnWifi": "WiFiでのみアップロード", + "HeaderFoldersToUpload": "アップロードするフォルダ", + "LabelPasswordConfirm": "パスワード (確認):", + "HeaderMoveUpInOrder": "上に移動", + "HeaderDownUpInOrder": "下に移動", + "LabelUsername": "ユーザ名:", + "HeaderAddServer": "サーバを追加", + "HeaderSubtitleOffset": "字幕のオフセット", + "Watching": "視聴中", + "HeaderRemoveFromContinueWatching": "続きから再生を削除", + "RemoveThisTitleFromContinueWatching": "続きから再生からこのタイトルを削除", + "HeaderRemoveFromContinueListening": "続きから再生から削除", + "RemoveThisTitleFromContinueListening": "このタイトルを「視聴中」から削除しますか?", + "HeaderIncreaseSubtitleOffset": "字幕オフセットを増やす", + "HeaderDecreaseSubtitleOffset": "字幕オフセットを減らす", + "Close": "閉じる", + "HeaderSeeAll": "全て表示", + "HeaderOpenInNewWindow": "新しいウィンドウで開く", + "LabelEmail": "Email:", + "LabelHost": "ホスト名:", + "LabelHostHelp": "192.168.1.100 または https://myserver.com", + "LabelPort": "ポート番号:", + "Disabled": "無効", + "Uninstall": "アンインストール", + "Enable": "有効化", + "AllTuners": "すべてのチューナー", + "Disable": "無効", + "NextValue": "次: {0}", + "HeaderNextItem": "次のアイテム", + "HeaderPreviousItem": "前のアイテム", + "NoTrailersMessage": "トレーラーが見つかりません。トレーラーを追加するには、{0}Embyプラグインカタログ{1}からTrailerプラグインをインストールしてください。", + "UninstallPluginConfirmation": "このプラグインをアンインストールしてもよろしいですか?", + "HeaderUninstallPlugin": "プラグインのアンインストール", + "AreYouStillWatching": "まだ見ていますか?", + "LabelCurrentPassword": "現在のパスワード", + "LabelNewPassword": "新しいパスワード", + "LabelNewPasswordConfirm": "新しいパスワードの確認", + "HeaderRemovePassword": "パスワードを消去", + "ServerUpdateNeeded": "この Emby サーバーを更新する必要があります。最新バージョンをダウンロード‎‎するには {0} を開いてください。", + "MessageThankYouForConnectSignUp": "Emby Connect にご登録いただきありがとうございます。 新しいアカウントの確認方法が記載されたメールがあなたのアドレスに送信されます。 アカウントを確認してから、ここに戻ってサインインしてください。", + "MessageThankYouForConnectSignUpNoValidation": "Emby Connect にサインアップしていただきありがとうございます! Emby Connect 情報でログインするように求められます。", + "ErrorMessagePasswordNotMatchConfirm": "パスワードとパスワードの確認が一致する必要があります。", + "ErrorMessageUsernameInUse": "そのユーザ名は既に使われています。 新しい名前を選択して、もう一度お試しください。", + "ErrorMessageEmailInUse": "メールアドレスは既に使用されています。 新しいメールアドレスを入力して再試行するか、パスワードを忘れた場合の機能を使用してください。", + "HeaderUpcomingOnTV": "LiveTV の予告", + "HeaderOtherShowings": "その他の放送予定", + "Showings": "放送予定", + "HeaderConnectToServer": "サーバーに接続する", + "ConnectToServerManually": "手動でサーバに接続", + "LabelEnterConnectUserNameHelp": "Emby オンラインアカウントのユーザ名または電子メールアドレスです。", + "HeaderSignInError": "サインインエラー", + "HeaderManualLogin": "手動ログイン", + "PasswordResetConfirmation": "パスワードをリセットしますか?", + "ContactAdminToResetPassword": "‎システム管理者に連絡してパスワードをリセットしてください。‎", + "ForgotPasswordInNetworkRequired": "‎パスワードのリセット処理を開始するには、ホームネットワーク内でもう一度お試しください。‎", + "ForgotPasswordFileCreated": "続きの手順はサーバー上に作成された次のファイルに記載されています:", + "ForgotPasswordFileExpiration": "リセット PIN はあと {0} で期限切れになります。", + "InvalidForgotPasswordPin": "‎無効な PIN または期限切れの PIN が入力されました。もう一度やり直してください。‎", + "PasswordResetForUsers": "以下のユーザーのパスワードは削除されました。ログインするには、空のパスワードでサインインしてください。", + "HeaderForgotPassword": "パスワードを忘れました", + "ForgotPasswordUsernameHelp": "覚えている場合はユーザ名を入力します。", + "HeaderPasswordReset": "パスワードリセット", + "AttributeNew": "新規", + "Done": "完了", + "HeaderResetToDefault": "ドラフトにリセット", + "Deinterlacing": "インターレース解除", + "HeaderBurningInSubtitles": "字幕の焼き込み", + "Premiere": "プレミア", + "LabelPinCode": "PIN コード:", + "LabelLocalNetworkPinCode": "ローカルネットワーク PIN コード:", + "LabelLocalNetworkPasswordMode": "ローカルネットワーク サインイン モード:", + "RequirePasswordInLocalNetwork": "ローカルネットワークでパスワードを要求する", + "NoPasswordInLocalNetwork": "ローカルネットワークではパスワードを必要としない", + "PinCodeInLocalNetwork": "ローカルネットワークで数値のPINコードを許可する", + "LocalNetworkPasswordModeHelp": "Embyサーバーと同じローカル ネットワーク上のデバイスのサインイン方法を選択します。", + "HeaderLocalNetworkAccess": "ローカルネットワーク接続", + "Live": "ライブ", + "Reset": "リセット", + "Repeat": "繰り返し", + "Track": "トラック", + "Tracks": "トラック", + "HeaderCameraUpload": "カメラアップロード", + "TrackCount": "{0} トラック", + "ItemCount": "{0} 個の項目", + "NumberChannelsValue": "{0} チャンネル", + "HeaderLatestMusic": "最新の音楽", + "HeaderLatestAudioBooks": "最新のオーディオブック", + "HeaderLatestDownloadedVideos": "最新のダウンロードされたビデオ", + "HeaderRecentlyPlayed": "最近の再生", + "Recent": "最近", + "HeaderFrequentlyPlayed": "頻繁に再生", + "HeaderMoreLikeThis": "類似作品", + "HeaderMoreLikeThisOnLiveTV": "この LiveTV の類似", + "OriginalAirDateValue": "初放送日: {0}", + "EndsAtValue": "{0} に終了", + "Date": "日付", + "AirDate": "放送日時", + "Played": "再生済み", + "Daily": "毎日", + "Weekly": "毎週", + "RequireHashMatch": "ハッシュの一致が必要", + "RequireHashMatchHelp": "ハッシュの一致を要求すると、字幕がフィルタリングされ、正確なビデオファイルでテストされた字幕のみが含まれます。 これをオフにすると、一致する字幕の数が増えますが、字幕テキストのタイミングが間違ったり間違ったりする可能性も高くなります。", + "SearchForForcedSubtitlesOnly": "‎強制字幕のみ‎", + "SearchForForcedSubtitlesOnlyHelp": "強制字幕を要求すると、結果は外国語を持っているとタグ付けされた字幕に制限されます。", + "LastEpisodeDateAdded": "‎最終エピソードの日付が追加されました‎", + "LastEpisodeDateAired": "‎最終エピソードの日付が公開されました‎", + "LabelPlaystate": "再生状態:", + "Studio": "スタジオ", + "Tag": "タグ", + "EpisodeTitle": "エピソードタイトル", + "Audio": "音声", + "Video": "ビデオ", + "Subtitle": "字幕", + "Image": "画像", + "CopyStream": "オリジナルストリームをコピー", + "LabelAudioLayout": "オーディオレイアウト", + "LabelAudioCodec": "オーディオコーデック:", + "LabelAudioLanguage": "音声の言語:", + "LabelSubtitleLanguage": "字幕の言語:", + "LabelVideoCodec": "ビデオコーデック:", + "LabelSubtitleCodec": "字幕コーデック:", + "LabelParentalRating": "ペアレンタル評価:", + "BecauseYouLikeValue": "あなたの好みから {0}", + "BecauseYouWatchedValue": "あなたの視聴歴から {0}", + "DirectedByValue": "監督 {0}", + "StarringValue": "主演 {0}", + "Invitations": "招待", + "ActorAsRole": "{0} として", + "ButtonOk": "Ok", + "GroupItemsIntoCollections": "アイテムをコレクションにグループ化する", + "GroupItemsIntoCollectionsHelp": "追加されたコレクションに基づいてアイテムをグループ化します。 特定のフィルタまたは並べ替え順序を有効にすると、これが自動的に無効になる場合があります。", + "GroupItemsIntoTags": "アイテムをタグにグループ化する", + "GroupItemsIntoTagsHelp": "追加されたタグに基づいてアイテムをグループ化します。特定のフィルターや並べ替え順序を有効にすると、この機能が自動的に無効になる場合があります。", + "User": "ユーザ", + "Access": "アクセス", + "Users": "ユーザ", + "Library": "ライブラリ", + "Devices": "デバイス", + "Cancel": "キャンセル", + "Restart": "再起動", + "Shutdown": "シャットダウン", + "Logs": "ログ", + "Visibility": "視認性", + "Notifications": "通知", + "SendTestNotification": "テスト通知を送信", + "NotificationSent": "通知が送信されました", + "DeleteNotificationConfirmation": "この通知を削除してもよろしいですか?", + "DeleteNotification": "通知を削除", + "AddNotification": "通知を追加", + "EditNotification": "通知の編集", + "LimitUserEventsTo": "ユーザイベント制限", + "LimitLibraryEventsTo": "ライブラリイベント制限", + "LimitDeviceEventsTo": "デバイスイベントの上限", + "ForAdditionalNotificationOptions": "追加の通知サービスは、サーバー管理者が Emby {0}プラグインカタログ{1}にインストールできます。", + "Plugins": "プラグイン", + "Systems": "システム", + "Server": "サーバ", + "Dashboard": "ダッシュボード", + "PlayOnAnotherDevice": "他のデバイスで再生", + "HeaderConnectionHelp": "接続のヘルプ", + "AccessRestrictedTryAgainLater": "アクセスは現在制限されています。 後でもう一度やり直してください。", + "ButtonGotIt": "‎手に入れました‎", + "RememberMe": "ログインを記憶する", + "EmbyServer": "Embyサーバー", + "ManageEmbyServer": "Emby サーバの管理", + "ShutdownServer": "Embyサーバをシャットダウン", + "RestartServer": "Emby サーバを再起動", + "RecordingCancelled": "録画をキャンセルしました。", + "SeriesCancelled": "シリーズをキャンセルしました。", + "Recording": "録画中", + "SeriesRecording": "シリーズの録画", + "RecordingScheduled": "録画がスケジュールされました。", + "SeriesRecordingScheduled": "シリーズの録画がスケジュールされました。", + "HeaderNewRecording": "新しい録画", + "HeaderWakeServer": "サーバのスリープを解除", + "AttemptingWakeServer": "サーバをスリープ解除しています。お待ちください...", + "WakeServerSuccess": "成功しました", + "HeaderCustomizeHomeScreen": "ホームスクリーンのカスタマイズ", + "WakeServerError": "Wake On LAN パケットがサーバマシンに送信されましたが、Emby サーバーに接続できません。 マシンの起動にもう少し時間がかかるか、Emby サーバがマシン上でアクティブに実行されていない可能性があります。", + "Days": "日", + "Network": "ネットワーク", + "Networks": "ネットワーク", + "SortByValue": "{0} によるソート", + "HeaderSortBy": "並べ替え", + "HeaderPhotoAlbums": "写真アルバム", + "Photos": "写真", + "HeaderAppearsOn": "表示", + "List": "リスト", + "HeaderRecordSeries": "シリーズの録画", + "HeaderCinemaMode": "シネマイントロ(劇場予告)", + "Conversions": "コンバージョン", + "Downloads": "ダウンロード", + "HeaderManageDownloads": "ダウンロードの管理", + "InternalStorage": "内部ストレージ", + "ExternalStorage": "外部ストレージ", + "UploadToFollowingServers": "サーバへアップロード", + "UploadingNumItems": "{1} 個のうち {0} 個目をアップロード中", + "DownloadNumItems": "{1} 件中 {0} 件をダウンロードしています", + "HeaderSampleRate": "サンプリングレート", + "HeaderReferenceFrames": "リファレンスフレーム", + "HeaderBitDepth": "ビット深度", + "HeaderPixelFormat": "ピクセルフォーマット", + "Profile": "プロファイル", + "Bitrate": "ビットレート", + "Expand": "展開", + "Container": "コンテナ", + "Format": "フォーマット", + "Path": "パス", + "Size": "サイズ", + "Resolution": "解像度", + "HeaderCodecTag": "コーデックタグ", + "Framerate": "フレームレート", + "Interlaced": "インターレース", + "Anamorphic": "アナモルフィック", + "Level": "レベル", + "Timestamp": "タイムスタンプ", + "Language": "言語", + "Codec": "コーデック", + "Stream": "ストリーム", + "HeaderExtradata": "拡張データ", + "HeaderHardwareAcceleratedTranscoding": "ハードウェアアクセラレーションによるトランスコーディング", + "HeaderHardwareAcceleratedTranscodingDescription": "サーバーGPUを最大限に活用しましょう。Embyは業界で最も先進的かつ最速のハードウェアアクセラレーションを備えています。", + "HeaderOfflineDownloads": "オフラインメディア", + "AndMuchMoreExclamation": "その他にも多数あります!", + "HeaderOfflineDownloadsDescription": "メディアをデバイスにダウンロードして、オフラインで簡単に使用できるようにします。", + "LiveTvFeatureDescription": "互換性のあるTVチューナーデバイスをEmbyサーバーにインストールして、ライブTVを任意のEmbyアプリにストリーミングします。", + "DvrFeatureDescription": "Emby DVRを使用して、ライブTV録画、シリーズ録画などを個別にスケジュールします。", + "CinemaModeFeatureDescription": "Cinema Introsでは、本編の前に予告編やカスタムイントロを表示して、本物の映画館のような体験をお楽しみいただけます。", + "HeaderFreeApps": "無料のEmbyアプリ", + "FreeAppsFeatureDescription": "お使いのデバイスでEmbyアプリを無料でご利用いただけます。", + "HeaderBecomeProjectSupporter": "Emby Premiereを購入する", + "HeaderViewServerInfo": "サーバー情報を表示", + "PlaybackTvModeRequiresEmbyPremiere": "TVモードでのメディア再生には、{0}有効なEmby Premiereサブスクリプション{1}が必要です。", + "FeatureRequiresEmbyPremiere": "この機能を利用するには、{0}有効なEmby Premiereサブスクリプション{1}が必要です。", + "HeaderConvertYourRecordings": "録画を変換する", + "Record": "録画", + "Save": "保存", + "Edit": "編集", + "HeaderSavePlaylist": "プレイリストを保存", + "Latest": "最新", + "Download": "ダウンロード", + "Downloaded": "ダウンロード済み", + "Converted": "変換済み", + "RemoveFromHistory": "履歴から削除", + "ConfirmRemoveFromHistory": "履歴からこのアイテムを削除しますか?", + "Downloading": "ダウンロード中", + "Advanced": "詳細設定", + "LinkedToEmbyConnect": "Emby Connect にリンク", + "Delete": "削除", + "Both": "両方", + "LabelChannelDisplay": "チャンネル表示", + "HeaderDeleteItem": "項目を削除", + "HeaderDeleteUser": "ユーザを削除", + "DeleteItemConfirmation": "{0} を削除してもよろしいですか?", + "DeleteUserConfirmation": "ユーザー {0} を削除してもよろしいですか?", + "DeleteUsersConfirmation": "これらの {0} 人のユーザーを削除してもよろしいですか?", + "HeaderDeleteDevice": "デバイスを削除", + "DeleteDeviceConfirmation": "このデバイスを削除してもよろしいですか?次回ユーザーがこのデバイスでサインインすると再び表示されます。", + "ConfirmDeleteItem": "この項目を削除すると、ファイルシステムおよびメディアライブラリの両方から削除されます。", + "FollowingFilesWillBeDeleted": "次のファイルおよびフォルダが削除されます。", + "AreYouSureToContinue": "続行してもよろしいですか?", + "Refresh": "更新", + "RefreshingMetadataDots": "メタデータの更新中...", + "ScanningLibraryFilesDots": "ライブラリのスキャン中...", + "HeaderFavoritesThenByChannelNumber": "お気に入り、次にチャンネル番号順", + "HeaderAddToCollection": "コクレションに追加", + "HeaderFavoritesThenByTitle": "お気に入り、次にタイトル順", + "HeaderFavoritesThenByDefault": "お気に入り、次にデフォルトのチャンネル順", + "HeaderDefaultChannelOrder": "デフォルトのチャンネル順", + "HeaderAddToFavorites": "お気に入りに追加", + "HeaderRemoveFromFavorites": "お気に入りから削除", + "Favorited": "お気に入りに追加", + "Unfavorited": "お気に入りから削除", + "HeaderNewCollection": "新しいコレクション", + "HeaderNewPlaylist": "新しいプレイリスト", + "AllCollections": "すべてのコレクション", + "AllPlaylists": "すべてのプレイリスト", + "Create": "作成", + "HeaderAddedToPlaylist": "プレイリストに追加された", + "HeaderAddedToCollection": "コクレションに追加された", + "OneItemAddedTo": "1件の項目が「{0}」に追加されました。", + "ItemsAddedTo": "{0} 件の項目が「{1}」に追加されました。", + "HeaderAddedToPlayQueue": "‎再生キューに追加‎された", + "HeaderPlayingNext": "次を再生", + "Help": "ヘルプ", + "HeaderGetHelp": "ヘルプを見る", + "LabelTVDisplayMode": "テレビ表示モードを有効にする", + "Desktop": "デスクトップ", + "Mobile": "モバイル / タブレット", + "Navigation": "ナビゲーション", + "HeaderVideoPlayback": "ビデオ再生", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "シーズン", + "OneTrack": "1 トラック", + "OneSeason": "1 シーズン", + "Libraries": "ライブラリ", + "NumberSeasonsValue": "{0} シーズン", + "TVDisplayModeHelp": "このデバイスのユーザーインターフェースを、テレビ表示およびリモコン操作向けに最適化します。主な入力方法がマウスまたはタッチ操作の場合は、この設定は推奨されません。", + "LabelDisplayLanguage": "表示言語:", + "LabelDisplayLanguageHelp": "Emby の翻訳は進行中のプロジェクトです。", + "LearnHowYouCanContribute": "貢献する方法を確認する。", + "NewCollectionHelp": "コレクションを使用すると映画やその他のライブラリ コンテンツのパーソナライズされたグループを作成できます。", + "SearchForCollectionInternetMetadata": "インターネットでアートワークとメタデータを検索する", + "DisplayMissingEpisodesWithinSeasons": "シーズン内に欠落しているエピソードを表示する", + "DisplayMissingEpisodesWithinSeasonsHelp": "Emby サーバの設定でテレビ ライブラリを有効にする必要があります。", + "EnableThemeSongs": "テーマソングを再生", + "EnableBackdrops": "背景を有効にする", + "EnableThemeSongsHelp": "有効にするとライブラリのブラウズ中にテーマソングが再生されます。", + "EnableBackdropsHelp": "有効にするとライブラリをブラウズ中に背景が表示されます。", + "EnableThemeVideos": "テーマビデオを再生", + "EnableThemeVideosHelp": "有効にするとライブラリをブラウズ中にテーマビデオが表示されます。", + "RunAtStartup": "システム起動時に開始", + "ServerStartup": "サーバー起動", + "EmbyServerOnXHasStarted": "Emby サーバ {0} が更新されました", + "LabelScreensaver": "スクリーンセイバー", + "LabelSoundEffects": "サウンドエフェクト:", + "LabelName": "名前:", + "NewCollectionNameExample": "例: Star Wars Collection", + "MessageItemsAdded": "アイテムが追加されました。", + "OptionNew": "新規...", + "LabelPlaylist": "プレイリスト", + "AddToPlaylist": "プレイリストに追加", + "HeaderAddToPlaylist": "プレイリストに追加", + "Subtitles": "字幕", + "LabelTheme": "‎テーマ", + "LabelSettingsTheme": "設定テーマ", + "LabelThemeAccentColor": "アクセントカラー", + "ThemeAccentColorDescription": "重要なインジケーター、アイコン、テキストの色を設定します。", + "SearchForSubtitles": "‎字幕の検索‎", + "LabelLanguage": "言語", + "Search": "検索", + "NoSubtitleSearchResultsFound": "結果が見つかりません。{0}字幕のダウンロード{1}を設定していますか?", + "NoLyricsSearchResultsFound": "結果が見つかりません。{0}歌詞のダウンロード{1}を設定していますか?", + "Lyrics": "歌詞", + "SearchForLyrics": "歌詞を検索", + "Finish": "完了", + "File": "ファイル", + "Exit": "終了", + "Sleep": "スリープ", + "Setup": "設定", + "MessageAreYouSureDeleteSubtitles": "この字幕ファイルを削除してもよろしいですか?", + "ConfirmDeletion": "削除を確認", + "MySubtitles": "マイ 字幕", + "MessageDownloadQueued": "ダウンロードキューに入りました。", + "HeaderEditSubtitles": "字幕の編集", + "UnlockGuide": "ガイドのアンロック", + "HeaderRefreshMetadata": "メタデータの更新", + "HeaderRefreshAllMetadata": "全てのメタデータの更新", + "ReplaceExistingImages": "既存の画像を置き換える", + "ReplaceExistingImagesHelp": "既存のすべての画像は削除され、ライブラリの設定に基づいて新しい画像がダウンロードされます。場合によっては、以前よりも利用できる画像が少なくなることがあります。", + "ReplaceAllMetadata": "全てのメタデータを置き換える", + "SearchForMissingMetadata": "見つからないメタデータを検索する", + "LabelRefreshMode": "更新モード", + "NoItemsFound": "項目が見つかりません。", + "HeaderSaySomethingLike": "次のように話しかけてください…", + "ButtonTryAgain": "再試行", + "HeaderYouSaid": "You Said...", + "MessageWeDidntRecognizeCommand": "申し訳ありません。そのコマンドを認識できませんでした。", + "MessageIfYouBlockedVoice": "アプリへの音声アクセスを拒否した場合は、再試行する前に再設定が必要です。", + "ValueDiscNumber": "ディスク {0}", + "Unrated": "未評価", + "Favorite": "お気に入り", + "Like": "好き", + "Dislike": "嫌い", + "RefreshDialogHelp": "メタデータは、Embyライブラリ設定で有効になっている設定およびメタデータプロバイダーに基づいて新しい情報に更新されます。", + "Open": "開く", + "Play": "再生", + "Pause": "一時停止", + "HeaderPlayQueue": "再生キュー", + "HeaderAddToPlayQueue": "‎再生キューに追加‎", + "Shuffle": "シャッフル", + "Identify": "Identify", + "HeaderRemoveIdentification": "識別を削除", + "ResetMetadataConfirmation": "すべてのメタデータをリセットしてもよろしいですか?", + "HeaderEditMetadata": "メタデータの編集", + "Convert": "変換", + "Resume": "再開", + "HeaderInstantMix": "インスタントミックス", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "シーズンへ移動", + "HeaderGoToSeries": "シリーズへ移動", + "HeaderGoToAlbum": "アルバムへ移動", + "HeaderGoToArtist": "アーティストへ移動", + "HeaderPlayAll": "すべて再生", + "PictureInPicture": "ピクチャーインピクチャー", + "Fullscreen": "Full screen", + "ExitFullscreen": "全画面表示を終了", + "Rewind": "巻き戻し", + "FastForward": "早送り", + "Remove": "削除", + "Rename": "名前を変更", + "Queue": "キュー", + "QueueAllFromHere": "ここからすべてをキューに追加", + "PlayAllFromHere": "ここからすべてを再生", + "PlayFromBeginning": "最初から再生", + "FromBeginning": "最初から", + "ResumeAt": "{0} から再開", + "HeaderRemoveFromPlaylist": "プレイリストから削除", + "HeaderRemoveFromPlayQueue": "再生キューから削除", + "HeaderRemoveFromCollection": "コレクションから削除", + "Sort": "並べ替え", + "Trailer": "Trailer", + "SelectNone": "すべて選択解除", + "SelectAll": "すべて選択", + "HeaderMarkPlayed": "再生済みをマーク", + "HeaderMarkUnplayed": "未再生をマーク", + "HeaderGroupVersions": "バージョンをグループ化", + "PleaseSelectTwoItems": "少なくとも2つの項目を選択してください。", + "HeaderConfirmRecordingCancellation": "録画のキャンセルを確認", + "MessageConfirmRecordingCancellation": "録画をキャンセルしますか?", + "Album": "アルバム", + "AlbumArtist": "アルバムアーティスト", + "Error": "Error", + "VoiceInput": "音声入力", + "LabelContentType": "コンテンツの種類", + "LabelPath": "パス", + "Playlists": "プレイリスト", + "LabelTitle": "タイトル", + "LabelOriginalTitle": "オリジナルのタイトル", + "LabelSortTitle": "タイトルでソート", + "LabelDateAdded": "追加した日", + "DateAdded": "追加日", + "DateModified": "更新日", + "DatePlayed": "再生日", + "DateLastActive": "最後にアクティブになった日", + "ConfigureDateAdded": "「追加日」の判定方法は、Embyサーバーダッシュボード内のライブラリ設定で構成できます。", + "LabelStatus": "状態", + "LabelArtistsHelp": "複数に分割:", + "HeaderAlbumArtists": "アルバムアーティスト", + "LabelAlbumArtists": "アルバムアーティスト", + "LabelAlbum": "アルバム", + "Artist": "アーティスト", + "Artists": "アーティスト", + "ImdbRating": "IMDbレイティング", + "CommunityRating": "コミュニティ評価", + "LabelCommunityRating": "コミュニティ評価", + "LabelCriticRating": "批評家の評価", + "CriticRating": "批評家の評価", + "LabelWebsite": "Webサイト", + "Tagline": "タグライン", + "LabelOverview": "概要", + "LabelShortOverview": "短い概要", + "LabelReleaseDate": "発売日", + "LabelPlaceOfBirth": "出生地", + "Aired": "放送", + "LabelAirDays": "放送日", + "LabelAirTime": "放送時間", + "LabelRuntimeMinutes": "実行時間(分)", + "LabelCustomRating": "‎カスタム評価", + "LabelOriginalAspectRatio": "オリジナルのアスペクト比", + "Label3DFormat": "3Dフォーマット", + "FormatValue": "フォーマット: {0}", + "DownloadsValue": "{0} ダウンロード", + "HashMatch": "ハッシュが一致", + "EnableExternalVideoPlayers": "外部ビデオプレーヤを有効にする", + "EnableExternalVideoPlayersHelp": "動画再生を開始する際に外部プレーヤーのメニューを表示します。", + "HeaderSpecialEpisodeInfo": "‎スペシャルエピソード情報", + "LabelAirsDuringSeason": "前シーズンの放送", + "LabelAirsAfterSeason": "次シーズンの放送", + "LabelAirsBeforeEpisode": "前エピソードの放送", + "HeaderExternalIds": "‎外部 ID", + "HeaderDisplaySettings": "表示設定", + "PlaylistOrder": "プレイリスト並び順", + "CollectionOrder": "コレクション並び順", + "LabelDisplayOrder": "表示順序", + "LabelFileOrder": "ファイル順序", + "Display": "表示", + "Countries": "国", + "Genres": "ジャンル", + "Studios": "スタジオ", + "Tags": "タグ", + "Links": "リンク", + "Movie": "映画", + "Program": "番組", + "Channel": "チャンネル", + "Episode": "エピソード", + "Season": "シーズン", + "HeaderMetadataSettings": "メタデータ設定", + "People": "出演者", + "Number": "ナンバー", + "Lock": "ロック", + "HeaderScreenLocked": "スクリーンロック", + "HeaderUnlockControls": "制御をロック解除", + "HeaderTapToUnlock": "タップしてロック解除", + "LabelMetadataDownloadLanguage": "優先してメタデータをダウンロードする言語", + "LabelImageDownloadLanguage": "優先して画像をダウンロードする言語", + "LabelLockItemToPreventChanges": "この項目をロックして今後の変更を防ぐ", + "LockThisField": "メタデータ更新時にこの項目が変更されないようロックする", + "MessageLeaveEmptyToInherit": "空欄にすると、上位項目またはグローバルのデフォルト設定を引き継ぎます。", + "LabelCountry": "国", + "LabelCertificationCountry": "レーティング対象国", + "CertificationCountryHelp": "この設定は、使用されるコンテンツレーティングシステムに影響します。", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "誕生年", + "LabelBirthDate": "誕生日", + "LabelDeathDate": "死亡日", + "LabelEndDate": "終了日", + "LabelSeasonNumber": "シーズン番", + "LabelEpisodeNumber": "エピソード番号:", + "LabelTrackNumber": "‎トラック番号", + "LabelNumber": "ナンバー", + "LabelDiscNumber": "ディスク番号", + "LabelParentNumber": "‎親番号", + "SortName": "タイトルでソート", + "OriginalTitle": "オリジナルのタイトル", + "ReleaseDate": "発売日", + "Continuing": "継続中", + "Ended": "終了", + "HeaderEnabledFields": "有効なフィールド", + "HeaderEnabledFieldsHelp": "フィールドのチェックを外すと、そのデータがロックされ、変更されなくなります。", + "Backdrops": "背景", + "Images": "画像", + "Runtime": "実行中", + "ProductionLocations": "‎生産地", + "BirthLocation": "出生地", + "ParentalRating": "ペアレンタル評価", + "PlayCount": "再生回数", + "Name": "名前", + "Overview": "概要", + "LabelType": "種類", + "LabelPersonRole": "役割", + "LabelPersonRoleHelp": "例:アイスクリーム販売車の運転手", + "Actor": "‎俳優‎", + "Composers": "作曲家", + "Composer": "‎作曲家", + "Director": "監督", + "GuestStar": "ゲストスター", + "Producer": "プロデューサー‎", + "Writer": "脚本", + "MessageNoSyncJobsFound": "ダウンロードが見つかりません。アプリ内の各所にある「ダウンロード」ボタンからダウンロードジョブを作成してください。", + "MessageNoDownloadsFound": "オフラインダウンロードはありません。アプリ内の「ダウンロード」ボタンをクリックして、メディアをオフライン用に保存してください。", + "InstallingPackage": "{0} のインストール‎中", + "PackageInstallCompleted": "{0} の‎インストールが完了しました。‎", + "PackageInstallFailed": "{0} の‎インストールに失敗しました。‎", + "PackageInstallCancelled": "{0} の‎インストールが取り消されました。", + "SeriesYearToPresent": "{0} - あります", + "OneDevice": "1 デバイス", + "DeviceCountValue": "{0} デバイス", + "OneLog": "1 ログ", + "LogCountValue": "{0} ログ", + "OneVote": "1 投票", + "VoteCountValue": "{0} 投票", + "OneLike": "1 いいね", + "LikeCountValue": "{0} いいね", + "OneUser": "1 ユーザー", + "UserCountValue": "{0} ユーザー", + "OneLibrary": "1 ライブラリ", + "LibraryCountValue": "{0} ライブラリ", + "ValueOneItem": "1 個の項目", + "ValueOneEpisode": "1 個のエピソード", + "ValueEpisodeCount": "{0} 個のエピソード", + "Albums": "アルバム", + "Song": "曲", + "Songs": "曲", + "Authors": "著者", + "Books": "書籍", + "AudioBooks": "オーディオブック", + "HeaderAudioBooks": "オーディオブック", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "1つ以上の検索条件を入力してください。条件を減らすと検索結果が増えます。", + "PleaseEnterNameOrId": "名前または外部IDを入力してください。", + "MessageItemSaved": "‎アイテムが保存されました。‎", + "SearchResults": "‎検索結果‎", + "ServerNameIsRestarting": "Emby Server - {0} を再起動しています。‎", + "ServerNameIsShuttingDown": "Emby Server - {0} をシャットダウンしています。‎", + "HeaderDeleteItems": "項目を削除", + "ConfirmDeleteItems": "これらの項目を削除すると、ファイルシステムおよびメディアライブラリの両方から削除されます。", + "PleaseRestartServerName": "Embyサーバを再起動してください - {0}", + "ConvertingDots": "変換中...", + "LabelSyncNoTargetsHelp": "現在、オフラインダウンロードに対応したアプリがありません。", + "DownloadingDots": "ダウンロード中...", + "LearnMore": "詳細情報", + "LabelBitrateMbps": "ビットレート (Mbps)", + "ConvertUnwatchedVideosOnly": "未再生のビデオのみ変換する", + "SyncUnwatchedVideosOnly": "未再生の動画のみダウンロード", + "ConvertUnwatchedVideosOnlyHelp": "再生済みとしてマークされていない動画のみが変換対象になります。", + "SyncUnwatchedVideosOnlyHelp": "再生済みとしてマークされていない動画のみがダウンロードされ、完全に再生されるとデバイスから自動的に削除されます。", + "AutomaticallySyncNewContent": "新しいコンテンツを自動でダウンロード", + "AutomaticallySyncNewContentHelp": "このフォルダに追加された新しいコンテンツは、自動的にこのデバイスにダウンロードされます。", + "AutomaticallyConvertNewContent": "新しいコンテンツを自動的に変換する", + "AutomaticallyConvertNewContentHelp": "このフォルダに追加された新しいコンテンツは自動的に変換されます。", + "LabelItemLimit": "項目の制限", + "ConvertItemLimitHelp": "(任意)変換する項目数の上限を設定します。", + "DownloadItemLimitHelp": "(任意)ダウンロードする項目数の上限を設定します。", + "PleaseSelectDeviceToSyncTo": "ダウンロード先のデバイスを選択してください。", + "Screenshots": "‎スクリーン ショット", + "MoveRight": "右へ移動", + "MoveLeft": "左へ移動", + "HeaderUploadNewImage": "新規イメージのアップロード", + "HeaderDeleteImage": "画像を削除", + "ConfirmDeleteImage": "画像を削除しますか?", + "HeaderEditImages": "‎画像の編集‎", + "Settings": "設定", + "ShowIndicatorsFor": "インジケータ表示", + "Episodes": "エピソード", + "Programs": "番組", + "HeaderCastCrew": "キャストとスタッフ", + "DvrSubscriptionRequired": "Emby Live TVおよびDVR機能を使用するには、{0}有効なEmby Premiereサブスクリプション{1}が必要です。", + "HeaderCancelRecording": "録画をキャンセル", + "HeaderKeepRecording": "録画を保持", + "HeaderCancelSeries": "シリーズをキャンセル", + "HeaderKeepSeries": "シリーズを保持", + "HeaderLearnMore": "詳細情報", + "SeriesSettings": "シリーズの設定", + "HeaderRecordingOptions": "録画オプション", + "HeaderDoNotRecord": "録画しない", + "HeaderSeriesOptions": "シリーズオプション", + "Layout": "レイアウト", + "Channels": "チャンネル", + "ChannelNameOnly": "チャンネル{0} のみ", + "Anytime": "いつでも", + "AnyLanguage": "任意の言語", + "AroundTime": "{0} 周辺", + "HeaderLatestMovies": "最新の映画", + "All": "全て", + "Stop": "停止", + "AllChannels": "全てのチャンネル", + "NewEpisodesOnly": "新しいエピソードのみ", + "AllEpisodes": "全てのエピソード", + "LabelStartWhenPossible": "可能な場合に開始", + "LabelStopWhenPossible": "可能な場合に停止", + "MinutesBefore": "分前", + "MinutesAfter": "分後", + "SkipEpisodesAlreadyInMyLibrary": "ライブラリ内にすでに存在するエピソードは録画しない", + "SkipEpisodesAlreadyInMyLibraryHelp": "エピソードは、利用可能な場合はシーズン番号およびエピソード番号を使用して比較されます。", + "LabelKeepUpTo": "保持する状態", + "AsManyAsPossible": "可能な限り多く", + "DefaultErrorMessage": "リクエストの処理中にエラーが発生しました。後でもう一度お試しください。", + "UntilIDelete": "‎削除するまで‎", + "UntilSpaceNeeded": "‎スペースが必要になるまで‎", + "Categories": "カテゴリ", + "Sports": "スポーツ", + "News": "ニュース", + "Movies": "映画", + "Music": "音楽", + "Kids": "キッズ", + "MoreFromValue": "詳細 {0}", + "DiedValue": "死亡: {0}", + "BornValue": "出生: {0}", + "EnableColorCodedBackgrounds": "カテゴリに応じて番組にカラー背景を適用する", + "SortChannelsBy": "チャンネルのソート順序", + "ChannelNumber": "チャンネル番号", + "HeaderBenefitsEmbyPremiere": "Emby Premiere の利点", + "ThankYouForTryingEnjoyOneMinute": "Embyのご利用ありがとうございます。1分間の再生をお楽しみください。", + "HeaderTryPlayback": "再生を試行する", + "HowDidYouPay": "どのように支払いましたか?", + "IHaveEmbyPremiere": "私は Emby プレミアを購入済みです", + "IPurchasedThisApp": "私はこの App を購入しました", + "ButtonRestorePreviousPurchase": "購入を復元", + "ButtonUnlockWithPurchase": "‎購入でロックを解除", + "ButtonUnlockPrice": "{0} のロック解除", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere マンスリー {0}", + "HeaderAlreadyPaid": "既に支払済みですか?", + "ButtonPlayOneMinute": "1分間再生", + "PlaceFavoriteChannelsAtBeginning": "お気に入りのチャンネルを先頭に配置する", + "HeaderUnlockFeature": "機能のロックを解除", + "MessageDidYouKnowCinemaMode": "Emby Premiereをご利用いただくと、シネマイントロのような機能で、より豊かな体験ができることをご存知でしたか?", + "HeaderPlayMyMedia": "メディアを再生", + "HeaderDiscoverEmbyPremiere": "Emby Premiere について", + "HeaderNowPlaying": "再生中", + "Items": "アイテム", + "AppName": "App 名", + "OneChannel": "1つのチャンネル", + "ConfirmRemoveDownload": "ダウンロードを削除しますか?", + "ConfirmRemoveItem": "アイテムを削除しますか?", + "RemoveDownload": "ダウンロードを削除", + "ConfirmCancelConversion": "変換をキャンセルしますか?", + "CancelConversion": "変換をキャンセル", + "KeepDownload": "ダウンロードを保持", + "AddedOnValue": "{0} 追加", + "RemovingFromDevice": "‎デバイスからの削除", + "KeepOnDevice": "‎デバイスに保持", + "CancelDownload": "ダウンロードをキャンセル", + "SyncJobItemStatusReadyToTransfer": "‎転送準備完了‎", + "SyncJobItemStatusSyncedMarkForRemoval": "‎デバイスからの削除", + "SyncJobItemStatusQueued": "キュー", + "SyncJobItemStatusConverting": "変換中", + "SyncJobItemStatusTransferring": "転送‎中", + "SyncJobItemStatusSynced": "ダウンロード済み", + "Failed": "失敗", + "SyncJobItemStatusRemovedFromDevice": "デバイスから削除", + "Cancelled": "キャンセル", + "Retry": "再試行", + "Continue": "続き", + "ContinueInSecondsValue": "{0} 秒で続行します。", + "HeaderRemoteControl": "リモート制御", + "Disconnect": "切断", + "EnableDisplayMirroring": "ディスプレイ ミラーリングを有効にする", + "RemoteAccess": "リモート制御", + "HeaderPlayOn": "再生", + "Quality": "品質", + "Auto": "自動", + "AndroidUnlockRestoreHelp": "以前にご購入いただいた内容を復元するには、ご購入時に使用されたGoogle(またはAmazon)アカウントで端末にサインインしていることをご確認ください。また、アプリストアが有効になっており、ペアレンタルコントロールなどで制限されていないこと、およびインターネット接続がアクティブであることをご確認ください。以前のご購入内容の復元は、この操作を一度行うだけで完了します。", + "HeaderAspectRatio": "アスペクト比", + "Original": "オリジナル", + "Fill": "埋める", + "Cover": "表紙", + "MessageNoServersAvailableToConnect": "接続できるサーバーがありません。サーバー共有の招待を受けている場合は、以下のボタンをクリックするか、メール内のリンクから承認してください。", + "MessagePlayAccessRestricted": "このコンテンツの再生は現在制限されています。詳細については、Emby Server の管理者に問い合わせてください。", + "Accept": "承諾", + "Reject": "拒否", + "Connect": "接続", + "HeaderMyMedia": "マイメディア", + "HeaderMyMediaSmall": "マイメディア (小)", + "LatestFromLibrary": "最新の{0}", + "HeaderLatestEpisodes": "最新のエピソード", + "ContinuePlaying": "再生を続ける", + "ContinueWatching": "視聴を続ける", + "HeaderLatestChannelMedia": "最新のチャンネルアイテム", + "HeaderContinueWatching": "視聴を再開", + "HeaderContinueListening": "聴き続ける", + "HeaderActiveRecordings": "アクティブな録画", + "HeaderLatestRecordings": "最新の録画", + "LabelConvertTo": "変換先:", + "LabelDownloadTo": "ダウンロード先", + "HeaderDownloadToDots": "ダウンロード先を選択...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "すべての言語", + "Previous": "前へ", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "次を再生", + "HeaderLatestFrom": "{0}の最新", + "LabelHomeScreenSectionValue": "ホーム画面セクション {0}", + "PasswordResetComplete": "パスワードがリセットされました。", + "PasswordSaved": "パスワードを保存しました。", + "SettingsSaved": "設定を保存しました。", + "Upcoming": "予告", + "HeaderSelectImageFile": "画像ファイルを選択", + "None": "None", + "More": "その他", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "戻る", + "Random": "ランダム", + "Playback": "再生", + "Favorites": "お気に入り", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "最新のチャンネルアイテム", + "HeaderLibraryOrder": "ライブラリの並び替え", + "HeaderOnNow": "オンエア中", + "HeaderForKids": "キッズ向け", + "HeaderPlaybackError": "再生エラー", + "PlaybackErrorNotAllowed": "このコンテンツを再生する権限がありません。詳細については、システム管理者にお問い合わせください。", + "RateLimitExceeded": "お客様のアカウントは、Emby Server 管理者によって設定された最大ストリーミング制限を超過しました。サポートが必要な場合は、管理者にご連絡ください。", + "PlaybackErrorNoCompatibleStream": "現在、互換性のあるストリームが利用できません。後で再度お試しいただくか、詳細についてはシステム管理者にお問い合わせください。", + "PlaybackErrorPlaceHolder": "このビデオを再生するには、ディスクを挿入してください。", + "PlaybackErrorNoPlayableItems": "再生可能なアイテムが見つかりませんでした。空のフォルダーを再生しようとしていますか?", + "Guide": "ガイド", + "Games": "ゲーム", + "GameSystem": "ゲームシステム", + "Suggestions": "提案", + "HeaderFavoriteChannels": "お気に入りのチャンネル", + "HeaderFavoriteCollections": "お気に入りのコレクション", + "HeaderFavoritePlaylists": "お気に入りのプレイリスト", + "Collection": "コレクション", + "Collections": "コレクション", + "LabelSelectFolderGroups": "次のフォルダのコンテンツを映画、音楽、テレビなどのビューに自動的にグループ化します。", + "LabelSelectFolderGroupsHelp": "チェックが外れているフォルダーは、それ自体が独自のビューで表示されます。", + "Mute": "ミュート", + "Unmute": "ミュート解除", + "Folder": "フォルダー", + "Folders": "フォルダー", + "FileName": "ファイル名", + "DisplayInOtherHomeScreenSections": "最新メディアや視聴を続けるなどのホーム画面のサブセクションに表示", + "DisplayInMyMedia": "ホーム画面に表示", + "Shows": "番組", + "MoviesAndShows": "映画と番組", + "HeaderMusicVideo": "ミュージックビデオ", + "HeaderMusicVideos": "ミュージックビデオ", + "MusicVideos": "ミュージックビデオ", + "Videos": "ビデオ", + "MixedContent": "Mixed content", + "HomeVideos": "ホームビデオ", + "HomeVideosAndPhotos": "ホームビデオと写真", + "TVShows": "テレビ番組", + "HeaderLibraryFolders": "ライブラリフォルダー", + "HeaderTermsOfPurchase": "購入規約", + "PrivacyPolicy": "プライバシーポリシー", + "TermsOfUse": "利用規約", + "HeaderRepeatMode": "リピートモード", + "HeaderToneMapping": "トーンマッピング", + "RepeatOne": "1曲リピート", + "RepeatAll": "すべてリピート", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "{0}上のEmbyをシャットダウンしますか?", + "Yesterday": "昨日", + "Yes": "はい", + "No": "No", + "HeaderScanLibraryFiles": "ライブラリファイルをスキャン", + "LiveTV": "ライブTV", + "Schedule": "スケジュール", + "Recordings": "録画", + "ScanForNewAndUpdatedFiles": "新しいファイルと更新されたファイルをスキャンする", + "NewVersionOfXAvailableForY": "{0}が {1} で利用可能です", + "DirectStreamHelp1": "メディアは解像度やメディアタイプ(H.264、AC3など)の点では端末と互換性がありますが、ファイルコンテナ(.mkv、.avi、.wmvなど)に互換性がありません。ストリーミングする前に、ビデオがその場で再パッケージ化されます。", + "DirectStreamHelp2": "ダイレクトストリーミングでは、ビデオ品質を損なうことなく、ほとんど処理能力を使用しません。", + "MediaIsBeingConverted": "メディアが、再生している端末と互換性のある形式に変換されています。", + "StatsForNerds": "専門家のための統計情報", + "HeaderHardwareAcceleratedDecoding": "ハードウェアアクセラレーションデコード", + "HeaderHardwareAcceleratedEncoding": "ハードウェアアクセラレーションエンコード", + "HeaderDirectPlay": "ダイレクトプレイ", + "DirectPlaying": "ダイレクトプレイ中", + "DirectStreaming": "ダイレクトストリーミング", + "Transcode": "トランスコード", + "Transcoding": "トランスコード中", + "ContainerBitrateExceedsLimit": "品質設定によりビットレートを削減", + "VideoCodecNotSupported": "互換性のあるコーデックに動画を変換中", + "AudioCodecNotSupported": "互換性のあるコーデックに音声を変換中", + "SubtitleCodecNotSupported": "字幕を直接ビデオに変換中", + "DirectPlayError": "再生エラーから回復中", + "ContainerNotSupported": "互換性のあるコンテナに変換中", + "VideoLevelNotSupported": "互換性のあるビデオレベルに変換中", + "AudioBitrateNotSupported": "互換性のあるオーディオビットレートに変換中", + "AudioChannelsNotSupported": "互換性のあるオーディオチャンネル数に変換中", + "VideoResolutionNotSupported": "互換性のあるビデオ解像度に変換中", + "AudioProfileNotSupported": "互換性のあるオーディオプロファイルに変換中", + "AudioSampleRateNotSupported": "互換性のあるオーディオサンプルレートに変換中", + "AnamorphicVideoNotSupported": "アナモルフィック動画はサポートされていません", + "InterlacedVideoNotSupported": "動画のインターレース解除", + "SecondaryAudioNotSupported": "セカンダリ音声トラックを選択", + "ExternalAudioNotSupported": "外部音声トラックを選択", + "ErrorRemovingEmbyConnectAccount": "Emby Connectアカウントの削除中にエラーが発生しました。インターネット接続が有効であることを確認して、もう一度お試しください。", + "HeaderEmbyAccountRemoved": "Embyアカウントが削除されました", + "MessageEmbyAccontRemoved": "このユーザーからEmbyアカウントが削除されました", + "HeaderInvitationSent": "招待を送信しました", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "無料のEmbyサーバーをダウンロードしてインストールするには、{0} をご覧ください", + "ServerDownloadMessageWithoutLink": "無料のEmbyサーバーをダウンロードしてインストールするには、Embyの公式サイトをご覧ください。", + "MessageInvitationSentToUser": "共有の招待状を受け入れるよう、{0} にメールが送信されました。", + "MessageInvitationSentToNewUser": "{0} にEmbyへのサインアップを促すメールが送信されました。", + "GuestUserNotFound": "ユーザーが見つかりません。名前が正しいことを確認して再度お試しください。もしくは、メールアドレスを入力してみてください。", + "ErrorReachingEmbyConnect": "Emby Connectサーバーへの接続中にエラーが発生しました。アクティブなインターネット接続があることを確認して、もう一度お試しください。", + "ErrorAddingEmbyConnectAccount1": "Emby Connectアカウントの追加中にエラーが発生しました。Embyアカウントを作成済みですか?{0} からサインアップしてください。", + "ErrorAddingEmbyConnectAccount2": "それでも問題が解決しない場合は、Embyアカウントで使用したメールアドレスから {0} 宛にメールを送信してください。", + "ErrorAddingGuestAccount1": "Emby Connectアカウントの追加中にエラーが発生しました。ゲストはEmbyアカウントを作成していますか?{0} からサインアップできます。", + "ErrorAddingGuestAccount2": "それでも問題が解決しない場合は、{0} 宛にあなたと相手のメールアドレスを記載してメールを送信してください。", + "MessageEmbyAccountAdded": "このユーザーにEmbyアカウントが追加されました。", + "MessagePendingEmbyAccountAdded": "このユーザーにEmbyアカウントが追加されました。アカウントの所有者に確認用のメールが送信されます。メール内のリンクをクリックして招待を承認する必要があります。", + "HeaderEmbyAccountAdded": "Embyアカウントを追加しました", + "Skip": "スキップ", + "HeaderAdditionalParts": "追加パーツ", + "ButtonGenerateNewPin": "新しいPINを生成", + "ConnectLoginHelp1": "Emby Connectを使うと、どこにいても簡単に自分のEmbyサーバーへアクセスでき、家族や友人とサーバーを共有することができます。", + "CreatePinErrorMessage": "PINコードの作成中にエラーが発生しました。「新しいPINを生成」をクリックして、もう一度お試しください。", + "PinExpiredMessage": "PINコードの有効期限が切れています。「新しいPINを生成」をクリックして、もう一度お試しください。", + "ConnectPinCodeHeader": "Emby Connectでサインインするには、モバイルデバイスまたはコンピューターで {0} にアクセスし、以下のPINコードを入力してください。", + "LabelSubtitlePlaybackMode": "字幕モード", + "ErrorDeletingItem": "Emby Serverから項目を削除する際にエラーが発生しました。Emby Serverがメディアフォルダへの書き込み権限を持っていることを確認し、再試行してください。", + "NoSubtitles": "字幕無し", + "Default": "Default", + "Absolute": "絶対値", + "Smart": "スマート", + "Small": "スモール", + "Smaller": "小", + "Medium": "Medium", + "Large": "Large", + "Larger": "大", + "ExtraLarge": "Extra large", + "ExtraSmall": "特小", + "Forced": "強制", + "External": "外部", + "HeaderEmbeddedTitle": "埋め込みタイトル", + "OnlyForcedSubtitles": "強制的に字幕のみ", + "AlwaysPlaySubtitles": "字幕を常に表示する", + "DefaultSubtitlesHelp": "字幕は、埋め込みメタデータ内のデフォルトフラグおよび強制フラグに基づいて読み込まれます。複数の選択肢がある場合は、言語設定が考慮されます。", + "SmartSubtitlesHelp": "音声が外国語の場合、言語設定に一致する字幕が自動的に読み込まれます。", + "HeaderSubtitleSettings": "字幕設定", + "HeaderSubtitleAppearance": "字幕の外観", + "OnlyForcedSubtitlesHelp": "強制としてマークされた字幕のみが読み込まれます。", + "AutoSelectHearingImpairedHelp": "言語設定に一致する字幕が読み込まれ、聴覚障がい者向け(SDH)としてマークされたトラックが優先されます。", + "AlwaysPlaySubtitlesHelp": "音声の言語に関係なく、言語設定に一致する字幕が読み込まれます。", + "NoSubtitlesHelp": "字幕はデフォルトでは読み込まれませんが、再生中に手動で有効にすることができます。", + "LabelPreferredSubtitleLanguage": "優先する字幕言語", + "LabelTextSize": "文字サイズ", + "TheseSettingsAffectSubtitlesOnThisDevice": "これらの設定はこのデバイスの字幕に影響します", + "LabelDropShadow": "ドロップシャドウ", + "LabelTextBackgroundColor": "文字背景色", + "LabelWindowBackgroundColor": "文字の背景色", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "背景色", + "LabelBackgroundOpacity": "背景の不透明度", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "これらの設定は、グラフィック字幕(PGS、DVDなど)や、独自のスタイルを埋め込んだ字幕(ASS/SSA)には適用されません。", + "Normal": "ノーマル", + "HeaderWaitingForWifi": "Wi-Fi接続を待機中", + "WifiRequiredToDownload": "ダウンロードを続行するにはWi-Fi接続が必要です。", + "DownloadOnlyOnWifi": "Wi-Fi接続時のみダウンロード", + "LabelMusicDownloadQuality": "音楽ダウンロードの品質", + "MusicDownloadQualityHelp": "ビットレートが高い音声ファイルはEmby Serverによって変換されます。高品質を求める場合はより高い値を、ローカルストレージ容量を節約したい場合はより低い値を選択してください。", + "HeaderDownloadSettings": "‎ダウンロード設定‎", + "LabelDownloadLocation": "ダウンロード場所:", + "BrowseForFolder": "フォルダを参照", + "Unlimited": "無制限", + "NoLimit": "制限なし", + "Hide": "非表示", + "HeaderKeepWatching": "視聴を続ける", + "HeaderNextEpisode": "次のエピソード", + "AudioBitDepthNotSupported": "互換性のあるオーディオビット深度に変換中", + "VideoBitrateNotSupported": "互換性のあるビデオビットレートに変換中", + "VideoProfileNotSupported": "互換性のあるビデオプロファイルに変換中", + "VideoFramerateNotSupported": "互換性のあるビデオフレームレートに変換中", + "VideoBitDepthNotSupported": "互換性のあるビデオビット深度に変換中", + "RefFramesNotSupported": "互換性のあるビデオ参照フレーム数に変換中", + "ErrorConnectServerUnreachable": "要求された操作の実行中にエラーが発生しました。サーバーが {0} にあるEmby Connectサーバーに接続できません。サーバーがインターネットに接続されており、ファイアウォールやセキュリティソフトで通信が許可されていることを確認してください。", + "HeaderStopRecording": "録画を停止", + "ManageRecording": "録画を管理", + "LabelDropImageHere": "ここに画像をドラッグ&ドロップするか、クリックして画像を選択してください。", + "MessageFileReadError": "ファイルの読み取り中にエラーが発生しました。もう一度お試しください。", + "Browse": "参照", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "フィールドを表示", + "LabelView": "表示:", + "LabelImageType": "画像の種類:", + "Upload": "アップロード", + "Primary": "プライマリ", + "PrimaryImageBlur": "メイン画像のぼかし", + "Art": "アート", + "Backdrop": "背景", + "Banner": "バナー", + "Box": "ボックス", + "BoxRear": "ボックス (背面)", + "Disc": "ディスク", + "Logo": "ロゴ", + "LogoDark": "ロゴ(ダーク版)", + "LogoLight": "ロゴ(ライト版)", + "LogoLightColor": "ロゴ(ライト+カラー)", + "Menu": "メニュー", + "Screenshot": "スクリーンショット", + "Thumb": "サムネイル", + "HeaderAudioSettings": "音声設定", + "LabelAudioLanguagePreference": "‎優先する音声の言語:", + "LabelPlayDefaultAudioTrack": "言語に関係なく既定のオーディオ トラックを再生する", + "HeaderVideoQuality": "ビデオ品質", + "CinemaModeConfigurationHelp": "シネマイントロ機能を使うと、本編の前にトレーラーやカスタムイントロを再生でき、自宅で映画館のような体験を楽しめます。", + "ShowUpNextPreview": "次へプレビューを表示", + "ShowUpNextPreviewHelp": "現在のアイテムの終了近くで次のアイテムの情報を表示", + "PlayNextEpisodeAutomatically": "‎次のエピソードを自動的に再生する", + "LabelMaxChromecastBitrate": "Chromecast ストリーミング品質:", + "LabelSkipBackLength": "戻りスキップの長さ:", + "LabelSkipForwardLength": "早送りスキップの長さ:", + "EnableCinemaMode": "シネマイントロ(劇場予告)を有効にする", + "LabelInternetQuality": "インターネットの品質:", + "LabelCellularQuality": "リモートストリーミング品質(モバイルデータ通信)", + "HeaderMusicQuality": "音楽の品質", + "LabelHomeNetworkQuality": "ホームネットワークの品質:", + "HeaderLatestMedia": "‎最新メディア‎", + "HeaderRestartingEmbyServer": "‎Emby サーバの再起動‎", + "RestartPleaseWaitMessage": "Emby サーバがシャットダウンして再起動するまでお待ちください。 これには1〜2分かかる場合があります。", + "HeaderPlayNext": "‎次を再生‎", + "AutoBasedOnLanguageSetting": "‎自動 (デバイス設定に基づく)‎", + "SameAsMainTheme": "メインテーマと同じ", + "LabelDateTimeLocale": "‎日時のロケール:‎", + "Genre": "Genre", + "DirectorValue": "監督: {0}", + "DirectorsValue": "監督: {0}", + "GenreValue": "ジャンル‎: {0}", + "GenresValue": "ジャンル: {0}", + "TagsValue": "タグ: {0}", + "Off": "オフ", + "Title": "タイトル", + "Year": "年", + "Filter": "Filter", + "Filters": "フィルター", + "Unplayed": "未再生", + "LabelTVHomeScreen": "TV モード ホームスクリーン:", + "Horizontal": "水平", + "Vertical": "垂直", + "HeaderGroupBy": "グループ化", + "HeaderMediaType": "Media Type", + "GroupBySeries": "シリーズ別にグループ化", + "HeaderVideoType": "ビデオの種類", + "HeaderSeriesStatus": "シリーズの状態", + "Features": "機能", + "Trailers": "トレーラ", + "Extras": "エクストラ", + "ThemeSongs": "テーマソング", + "ThemeVideos": "テーマビデオ", + "HeaderFavoriteMovies": "お気に入りの映画", + "HeaderFavoritePhotos": "お気に入りの写真", + "HeaderFavoriteShows": "お気に入りの番組", + "HeaderFavoriteEpisodes": "お気に入りのエピソード", + "HeaderFavoriteVideos": "お気に入りのビデオ", + "HeaderFavoriteMusicVideos": "お気に入りのミュージックビデオ", + "HeaderFavoriteGames": "お気に入りのゲーム", + "HeaderFavoriteArtists": "お気に入りのアーティスト", + "HeaderFavoriteAlbums": "お気に入りのアルバム", + "HeaderFavoriteSongs": "お気に入りの曲", + "HeaderFavoriteAuthors": "お気に入りの著者", + "HeaderFavoriteAudioBooks": "お気に入りのオーディオブック", + "Ascending": "昇順", + "Descending": "降順", + "HeaderColorPrimaries": "原色", + "HeaderColorSpace": "‎空間", + "HeaderColorTransfer": "色転送", + "HeaderVideoRange": "ビデオレンジ", + "SeriesDisplayOrderHelp": "放送日、DVDオーダ、または絶対番号順にエピソードを並べます。", + "LabelVerticalPositionFromBottom": "垂直位置(下から)", + "HeaderFavoritePeople": "お気に入りの出演者", + "MultiSelect": "複数選択", + "HeaderSignOut": "サインアウト", + "HeaderSelectServer": "サーバ選択", + "HeaderChangeServer": "サーバーを変更", + "HeaderChangeUser": "ユーザーを変更", + "HeaderAppSettings": "アプリの設定", + "HeaderLoginSettings": "ログイン設定", + "LabelRememberLogin": "ログインを記憶する:", + "LabelAutomaticallySignOut": "‎自動的にサインアウトする:‎", + "BetaTesterMessage": "Emby ベータテスターに感謝します。{0}Emby コミュニティ‎‎のテストエリア{1}にフィードバックを残してください。", + "HardwareAccelerated": "ハードウェアアクセラレーション", + "Software": "ソフトウェア", + "Metadata": "メタデータ", + "HeaderMediaInfo": "Media Info", + "Locked": "ロックされています", + "HeaderSplitVersionsApart": "バージョンの分割", + "Any": "任意", + "Admin": "管理者", + "HeaderReadMore": "続きを読む", + "CustomRatingHelp": "ペアレンタルコントロールの評価にはカスタム評価が使用されますが、表示はされません。ただし、ペアレンタルレーティングのフィールドは引き続き表示されます。", + "KeepUpToHelp": "制限を超えた録画は、次の録画が開始される際に削除されます。最も古い録画から、追加された日付順に削除されます。", + "NoItemsMatchingFound": "検索条件に一致するアイテムは見つかりませんでした。", + "TwoSearchCharsRequired": "検索文字を2文字以上入力してください。", + "PreventPlaybackContinuing": "ユーザー操作を促すプロンプトを定期的に表示することで、再生が永久に続くのを防ぎます。", + "PromptStillWatching": "「引き続き視聴しますか?」プロンプトを有効にする", + "HeaderMissingMetadata": "メタデータが見つかりません", + "HeaderIncludedIn": "含まれるもの", + "EmbyConnectUserAlreadyLinked": "このEmby Connectユーザーは、このサーバー上の別のユーザーに既にリンクされています。", + "VideoFilesWillBeConvertedTo": "変換されたビデオは {0} として保存されます。", + "VideoWillBeConvertedTo": "ビデオストリームは {0} に変換されるか、既に{0}であり、かつ品質が変換オプションの範囲内であれば元のファイルからコピーされます。", + "VideoWillBeConvertedToOrCopied": "ビデオストリームは{0}に変換されるか、{1}のいずれかであり、かつ品質が変換オプションの範囲内であれば元のファイルからコピーされます。", + "AudioWillBeConvertedTo": "オーディオストリームは{0}に変換されるか、既に{0}であり、かつ品質が変換オプションの範囲内であれば元のファイルからコピーされます。", + "AudioWillBeConvertedToOrCopied": "オーディオストリームは{0}に変換されるか、{1}のいずれかであり、かつ品質が変換オプションの範囲内であれば元のファイルからコピーされます。", + "HeaderSpecialKeys": "特別なキー", + "FollowingSpecialKeys": "以下の特別なキーは、ほとんどのキーボードとリモコンでサポートされています。", + "HeaderDeleteSeries": "シリーズを削除", + "HeaderDeleteLastPlayedEpisode": "最新のエピソードを削除", + "HeaderConnectingToServer": "サーバーに接続中", + "ServerNameValue": "サーバ名: {0}", + "DomainValue": "ドメイン: {0}", + "RatedValue": "評価 {0}", + "LocalServerRedirectMessage": "接続先として選択したサーバの管理者が所有・運営する次のドメインにリダイレクトされます:", + "AllMediaOwnedHosted": "全てのメディアは所有者 {0} によってホストされ管理されています。", + "EnableResolutionSwitching": "ビデオ解像度を合わせる", + "EnableResolutionSwitchingHelp": "これにより、Embyは再生を開始する前に、ビデオがエンコードされたのと同じ値に解像度を変更できます。これにより、一致しないビデオを再生する際に発生する可能性のある、カクつきやプルダウン(ジャダー)を最小限に抑えるのに役立つ場合があります。", + "EnableDisplayRefreshRateSwitching": "ディスプレイのリフレッシュレート切り替えを有効にする", + "EnableDisplayRefreshRateSwitchingHelp": "これにより、Embyは再生を開始する前に、ディスプレイのリフレッシュレートを、ビデオがエンコードされたフレームレートと同じ値(またはその倍数)に変更できます。これは、一致しないビデオを再生する際に発生する可能性のある、カクつきやプルダウン(ジャダー)を最小限に抑えるのに役立つ場合があります。", + "RememberSelectedAudioTracks": "オーディオトラックの選択を記憶する", + "RememberSelectedSubtitleTracks": "字幕トラックの選択を記憶する", + "RememberSelectedSubtitleTracksHelp": "字幕トラックの選択はビデオごとに記憶され、同じビデオを再び再生する際に再適用されます。", + "RememberSelectedAudioTracksHelp": "オーディオトラックの選択はビデオごとに記憶され、同じビデオを再び再生する際に再適用されます。", + "ClearSavedTrackSelections": "保存されたトラックの選択をクリア", + "HeaderClearTrackSelections": "保存されたトラックの選択をクリア", + "QuestionClearSavedTracks": "保存されているすべてのトラックの選択をクリアしますか?", + "LabelChannelTags": "チャンネルタグ", + "AfterThisPlaysConfirmation": "これが再生された後も再生を続けますか、それとも以前キューに入れた音楽をクリアしますか?", + "Keep": "保持", + "Clear": "クリア", + "HeaderClearFilters": "フィルターをクリア", + "HeaderSearchForImages": "画像を検索", + "HeaderSearchNewImage": "新しい画像を検索", + "HeaderSearchForAnImage": "画像を検索", + "DragDropToReorder": "ドラッグアンドドロップで並び替え", + "HeaderAddImageFromUrl": "URLから画像を追加", + "HeaderSetImageFromUrl": "URLから画像を設定", + "LabelUrl": "URL", + "LabelChannelNumber": "チャンネル番号", + "LabelGuideDataChannel": "ガイドデータチャンネル", + "GuideDataSource": "TV ガイドデータプロバイダ", + "HeaderCopyToClipboard": "クリップボードをコピー", + "TimeRemainingValue": "残り {0}", + "LabelResumeRewindSeconds": "再開時に自動で巻き戻す", + "ResumeRewindSecondsHelp": "これは、どこまで視聴したかを思い出すのに役立つ場合があります。これは最初の再開時に適用され、再生中の一時停止のたびには適用されません。", + "HeaderSavePlayQueueToPlaylist": "再生キューをプレイリストに保存", + "EnableLogoImagesAsTitle": "詳細画面でロゴ画像をタイトルとして表示", + "EnableLogoImagesAsTitleHelp": "ロゴ画像が利用可能な場合、ビデオやシリーズなどの詳細画面で、タイトルテキストの代わりにロゴ画像を使用できます。ロゴ画像が利用できない場合は、タイトルはテキストにフォールバックされます。", + "LabelNowPlayingAudioBackgroundStyle": "再生中のオーディオ背景スタイル", + "LabelNowPlayingVideoBackgroundStyle": "再生中のオーディオ背景スタイル", + "NowPlayingVideoBackgroundStyleHelp": "他のデバイスでビデオ再生をリモートコントロールしているときの背景スタイルを決定します。", + "Rotation": "回転する", + "Minutes": "分", + "LabelMaxRecordingLength": "最大録画時間", + "MaxRecordingLengthHelp": "放送の長さに関係なく、録画を指定された時間に制限します。制限なしにするには0に設定してください。", + "RemoteWAN": "リモート (WAN) アドレス", + "HeaderLastConnectedTo": "最終接続先", + "Version": "‎バージョン", + "Keyword": "キーワード", + "HeaderServerAddress": "サーバーアドレス", + "HeaderSkipIntro": "イントロをスキップ", + "HeaderCreateRecording": "録画を作成する", + "HeaderAddRecording": "録画を追加する", + "HeaderChannelAndTime": "チャンネルと時間", + "LabelRecordProgramOrSeriesFrom": "番組またはシリーズの録画", + "LabelStartTime": "開始時刻", + "LabelEndTime": "終了時刻", + "LabelFrequency": "頻度", + "Recurring": "反復", + "Once": "1回のみ", + "Start": "Start", + "Unpause": "再生を再開", + "LabelIntroSkipMode": "オープニングスキップモード", + "ShowSkipIntroButton": "スキップイントロボタンを表示", + "AutoSkipIntro": "オープニングを自動でスキップ", + "DisplayRatingInformationOnVideoPlaybackStart": "ビデオ再生開始時に評価情報を表示", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "ビデオ再生の開始時に、評価情報が短時間表示されます。", + "IntroSkipModeHelp": "Embyサーバーでオープニングマーカーが検出されたエピソードについて、「オープニングをスキップ」ボタンを表示するか、オープニングを自動的にスキップします。この機能を使用するには、Embyサーバーのライブラリオプションでオープニング検出を有効にする必要があります。", + "EnableHomeScreenFocusPreview": "選択したアイテムの詳細プレビューを表示するレイアウトをホーム画面で使用", + "EnableHomeScreenFocusPreviewHelp": "ホーム画面にさまざまな種類のメディアが混在している場合、この機能はうまく機能しない可能性があります。", + "LabelHideMediaTransportButtons": "ビデオプレーヤーの操作ボタンを非表示にする", + "HideMediaTransportButtonsHelp": "早送り、巻き戻し、一時停止などの基本的な操作ボタンを非表示にして、画面上の再生インターフェースをシンプルにします。これらの機能は、矢印キーやOK/Enterキーで引き続き使用できます。自動を選択すると、アプリ内でマウスの使用が検出されない場合に操作ボタンが非表示になります。", + "ImageSizeHelp": "画像グリッドの希望のサイズを設定します。", + "LabelImageSize": "画像サイズ", + "ThisImageIsOnlyPreview": "この画像はメタデータ検索エンジンからのプレビューにすぎません。Embyサーバーが実際にダウンロードする画像は異なる場合があり、Embyライブラリの設定で構成したオプションによって決定されます。", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Emby Serverでの重要なイベントに関する通知を受け取るように設定します。", + "DeleteEmbyConnectAccount": "Emby Connectアカウントを削除", + "DeleteEmbyConnectAccountHelp": "Emby Connectアカウントを削除するには、{2}の{0}Embyコミュニティ{1}にサインインしてください。サインイン後、右上のユーザー名をクリックし、アカウント設定をクリックしてからマイアカウントを削除をクリックしてください。", + "KeepPlayingInBackground": "バックグラウンドで再生を続ける", + "LabelVideoBackBehavior": "ビデオプレーヤーの戻るボタンの動作", + "HeaderViewLyrics": "歌詞を表示", + "HeaderViewMissingEpisodes": "欠落したエピソードを見る", + "HeaderMissingEpisodes": "欠落したエピソード", + "HeaderManageAccess": "アクセスを管理", + "HeaderManageCollaboration": "コラボレーションを管理", + "HeaderLeaveCollaboration": "コラボレーションから退出", + "HeaderRemoveFromLibrary": "ライブラリから削除", + "RemoveSharedItemConfirmation": "このアイテムをライブラリから削除してもよろしいですか?元に戻すには、所有者から再度アクセス権を付与してもらう必要があります。", + "SubtitlesDownloaded": "ダウンロードされた字幕", + "HeaderMakePrivate": "非公開にする", + "HeaderMakePublic": "公開にする", + "MakePublicDescription": "すべてのユーザーがこの項目を閲覧できるようになります。編集権限は個別に付与できます。", + "MakePrivateDescription": "すべてのユーザーがこの項目を閲覧できるようになります。編集権限は個別に付与できます。", + "Private": "プライベート", + "Public": "パブリック", + "Collaborative": "共同編集", + "PreferredShowDisplay": "TV番組の表示方法の優先設定", + "ShowAllEpisodesAllSeasons": "すべてのシーズンの全エピソードをまとめて表示", + "ShowAllEpisodesSingleSeason": "単一シーズン作品のみ全エピソードを表示", + "ShowSeasonFolders": "常にシーズンフォルダを表示", + "HeaderAddAgain": "再度追加", + "UpNext": "次に再生", + "ItemsAlreadyInPlaylist": "一部の項目はすでにプレイリストに追加されています。", + "ItemAlreadyInPlaylist": "この項目はすでにプレイリストに追加されています。", + "HeaderPlayChannel": "チャンネル再生", + "LabelScreenOrientationDuringVideo": "動画再生中の画面の向き", + "UseDeviceSetting": "デバイスの設定を使用", + "LockToLandscape": "横向きに固定", + "UsernameForFolderHelp": "このフォルダにネットワーク経由でアクセスするために必要なユーザー名(該当する場合)", + "PasswordForFolderHelp": "このフォルダにネットワーク経由でアクセスするために必要なパスワード(該当する場合)", + "ShowMediaInfoOnDetailScreens": "音声および動画の詳細画面下部に完全なメディア情報を表示する", + "ForgotPasswordNoUserFound": "入力された名前のユーザーは見つかりませんでした。もう一度お試しいただくか、名前を空欄にするとこのサーバー上のすべてのユーザーのパスワードをリセットできます。", + "Silver": "シルバー", + "DimGray": "ディムグレー", + "DarkGray": "ダークグレー", + "LightGray": "ライトグレー", + "Black": "ブラック", + "Blue": "ブルー", + "Cyan": "シアン", + "Gray": "グレイ", + "Green": "グリーン", + "Lime": "ライム", + "Magenta": "マゼンタ", + "Orange": "オレンジ", + "Pink": "ピンク", + "Red": "レッド", + "Yellow": "イエロー", + "White": "ホワイト", + "Purple": "パープル", + "RecentlyReleasedMovies": "最近公開された映画", + "RecentlyReleasedEpisodes": "最近配信されたエピソード", + "DolbyProfile": "Dolbyプロファイル", + "IpAddress": "IPアドレス", + "VideoType": "ビデオの種類", + "HidePlayedMediaFrom": "再生済みメディアの非表示対象", + "BottomEdgePosition": "下端の位置", + "VerticalPositionFromBottomScreen": "字幕の垂直位置を画面下端を基準に設定します。", + "TopEdgePosition": "上端の位置", + "TopEdgePositionHelp": "画面上部を基準に、字幕の最大表示位置を設定します。字幕に上部表示の位置指定が含まれる場合に使用されます。", + "HeaderSubtitlePosition": "字幕プロファイル", + "TitleProfilePin": "プロファイルPIN", + "ProfilePinConfirm": "プロファイルPIN (確認)", + "SaveProfilePin": "PINを保存する", + "ProfilePinDescription": "すでにサインインしているEmbyアプリに戻る際に入力を求められる、任意のPINコードを作成できます。\n複数のユーザーで共有されているデバイスがある場合に便利です。この機能は、必要に応じて各デバイスごとに個別に有効化できます。", + "TitleNewEpisodes": "新しいエピソード", + "EnterYourPinToContinue": "あなたのPINを入力して次へ", + "YourPinMustBe": "PINは {0} 桁以上にしてください。", + "ForgotPin": "PINを忘れましたか?", + "RequireEnteringPinToReturn": "このアプリに戻るたびにプロフィールのPINコードの入力を求める", + "RequireEnteringPinToReturnQuestion": "このアプリに戻るたびにプロフィールのPINコードを入力するようにしますか?このデバイスを複数のユーザーで共有している場合、プロフィールPINを設定することで他のユーザーによるデータへのアクセスを防ぐことができます。", + "RequireEnteringPinToReturnHelp": "このデバイスが複数のユーザーで共有されている場合に便利です。", + "WrongPinPleaseTryAgain": "間違ったPINのようです。もう一度お試しください。", + "ProfilePinIsOn": "プロフィールPINは現在有効です。", + "IfTryingToConnectToHttp": "EmbyサーバーにHTTPアドレスで接続しようとしている場合、ブラウザのHTTPS要件によりブロックされている可能性があります。以下のいずれかをお試しください:", + "SetupHttpsForYourServer": "{0}HTTPS を Emby サーバーで設定{1}すると、HTTPS を使って接続できるようになります。", + "TitleUnableToReachServer": "サーバーに接続できません", + "TitleUnableToReachName": "{0} に接続できません", + "HearingImpaired": "聴覚障がい者向け", + "SignIntoServerName": "Sign in to {0}", + "About": "Emby について", + "Specials": "スペシャル", + "NSettings": "{0} 設定", + "NPreferences": "{0} 設定", + "DetailScreenOptions": "詳細画面", + "LabelGenreDisplayLimit": "ジャンル表示制限", + "GenreDisplayLimitHelp": "項目の詳細画面上部に表示されるジャンルの数を制限します。", + "GenreDisplayLimitForListsHelp": "プレイリスト、コレクション、アーティストの詳細画面上部に表示されるジャンルの数を制限します。", + "LabelGenreDisplayLimitForLists": "ジャンル表示の上限(リスト用)", + "ShowPosterOnDetails": "詳細画面にポスター画像を表示する", + "ShowPosterOnDetailsHelp": "動画の詳細画面にポスター画像を表示するか、背景を強調するミニマルな外観にするかを選択できます。この設定は小さな画面レイアウトでは使用されません。また、一部の項目タイプではこの設定が無視されます。", + "EnableAppLogging": "アプリのログ記録を有効にする", + "EnableAppLoggingHelp": "ログの記録はアプリのパフォーマンスを低下させる可能性があるため、基本的にはトラブルシューティング時など必要な場合のみ有効にしてください。設定を変更した場合は、アプリの再起動が必要です。", + "LabelSlideshowInterval": "写真スライドショーの各スライドの表示時間", + "TVChannelImageEditorHelp": "複数のロゴバージョンに対応しています。Embyアプリは現在のテーマに応じて適切なロゴを自動的に選択します。", + "PlaySlideshow": "スライドショー再生", + "CheckForExistingEpisodesInAllLibraries": "すべてのライブラリで既存のエピソードを確認します。", + "GroupNotificationsBySeriesOrAlbum": "通知をシリーズやアルバムごとにまとめて表示", + "ThemeSettings": "テーマ設定", + "FollowingActivityWillBeDisrupted": "以下の操作で問題が発生し、中断される可能性があります。再開には手動での対応が必要になる場合があります。", + "OneActivePlaybackSession": "再生中のセッションが 1 件あります", + "NumActivePlaybackSessions": "再生中のセッションが {0} 件あります", + "OneActiveRecording": "1 アクティブな録画", + "NumActiveRecordings": "{0} アクティブな録画", + "PlayFromLivePosition": "ライブ位置から再生", + "PlayFromStartOfRecording": "録画の最初から再生", + "ThisChannelIsActivelyRecording": "このチャンネルは現在録画中です。再生を開始する方法を選んでください。", + "ThemeSongVolume": "テーマソング音量", + "HeaderForceConversionForFormats": "フォーマットごとにトランスコードを強制", + "ForceConversionForFormatsHelp": "この設定を使用すると、このデバイスでのダイレクト再生に適さないフォーマットに対して、サーバー側でのトランスコードまたはリマックスを強制できます。", + "StartupBehavior": "起動時の動作", + "RememberLastUser": "最後に使用したユーザーを記憶する", + "ShowLoginScreen": "ログイン画面を表示する", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "非対応のサラウンド音声をDolby Digitalに変換", + "ConvertUnsupportedAudioHelp": "非対応のサラウンドフォーマットをステレオにダウンミックスせず、Emby Server でDolby Digitalにトランスコードさせることで再生する", + "HeaderPlaybackCorrection": "再生補正", + "HeaderAttemptPlaybackCorrection": "再生補正を試みる", + "PlaybackCorrectionConfirm": "再生補正を試みますか?", + "PlaybackCorrectionDescription": "現在の項目で動画や音声が再生されないなどの問題が発生していますか?この操作では、サーバー側のトランスコードを使用して、よりストリーミングに適した形式に変換し、再生問題を修正しようとします。これにより、Emby Serverのリソース消費が増加します。", + "PlaybackCorrectionDescription2": "この操作は動画ごとに最大3回まで行えます。リマックス、動画トランスコード、音声トランスコードはそれぞれ1回ずつ順番に実行されます。", + "HeaderAlbumsAsContributingArtist": "参加アーティストとしてのアルバム", + "HeaderAlbumsAsComposer": "作曲者としてのアルバム", + "Duplicates": "重複項目", + "HeaderSleepTimer": "スリープタイマー", + "AfterCurrentItem": "現在の項目の再生後", + "HeaderStopPlayback": "再生を停止", + "TurnOffTimer": "タイマーをオフにする", + "SleepTimerIsSet": "スリープタイマーが設定されました", + "SleepTimerIsOff": "スリープタイマーはオフです", + "LabelEnableRemoteControlTVMode": "キャストおよびリモコン機能を表示", + "EnableRemoteControlTVModeHelp": "このデバイスから他のデバイスにメディアを送信する場合は、有効にしてください。", + "ShowOnScreenControls": "画面上のコントロールを表示", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "動画プレーヤー画面で上キーを押したときの動作を選択してください。これは、画面上のコントロールが非表示の場合に適用されます。コントロールが表示されている場合、上キーはナビゲーションに使用されます。", + "LabelVideoPlayerLongPressAction": "動画プレーヤーの長押し操作の動作", + "LetsGetSetup": "セットアップを始めましょう", + "VideoPlayerLongPressActionHelp": "動画再生中にOKボタンを長押ししたときに表示される機能やメニューを選択してください。この設定は、動画コントロールが非表示の場合、またはシークバーにフォーカスがある場合にのみ適用されます。", + "AskAdminToGetPremiere": "この購入はサーバー管理者によって行う必要があります。Embyのプレミアム機能を利用するには、Emby Server の管理者にサインインしてEmby Premiereを取得してもらってください。", + "AutoOpenSingleItemsFolders": "フォルダ表示で単一の項目を自動で開く", + "AutoOpenSingleItemsFoldersHelp": "フォルダ内に項目が1つしかない場合、その項目を自動的に開きます。", + "PlayedOnValue": "{0}を再生しました", + "TheseSettingsApplyAppDevice": "これらの設定は、このデバイスで再生するすべてのユーザーに適用されます。", + "LastContentDateAdded": "最終コンテンツ追加日", + "RepeatThemeMedia": "テーマソングを繰り返し再生", + "HideEpisodeSpoilerInfo": "未視聴のエピソードからネタバレ情報を非表示にする", + "HideEpisodeSpoilerInfoHelp": "ほとんどの画面で、未視聴のエピソードの画像と概要を非表示にします。", + "BornValueAge": "生年月日: {0}(年齢 {1})", + "PreferDirectStreamLiveTV": "ライブTVはできるだけ直接ストリーミングを優先する", + "PreferDirectStreamLiveTVHelp": "ライブTVの直接ストリーミングは、Embyサーバーのリソース消費を抑えられますが、再生中のシーク操作が制限される場合があります。有効にすると、フォーマットが対応しており設定した品質範囲内である場合にライブTVを直接ストリーミングします。無効にすると、再生中のシーク操作がしやすくなりますが、追加のリソースを消費します。", + "HeaderAllRecordings": "すべての録画", + "RememberLoginDescription": "サインイン後、アプリの設定で起動時の動作を構成できます。ログイン情報を記憶する、特定のユーザーでサインインする、または常にログイン画面を表示する、といった設定が可能です。", + "ForgetThisServer": "このサーバーを忘れる", + "ForgetServerConfirmation": "このサーバーを忘れてもよろしいですか?", + "HeaderThisDevice": "このデバイス", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/kk.json b/modules/common/strings/kk.json new file mode 100644 index 0000000..f6a63a9 --- /dev/null +++ b/modules/common/strings/kk.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our {0}terms of use{1}. The use of any Emby software constitutes acceptance of these terms.", + "MessageUnableToConnectToServer": "Таңдалған серверге қосылуымыз дәл қазір мүмкін емес. Бұл іске қосылғанына көз жеткізіңіз және әрекетті кейін қайталаңыз.", + "EmbyIntroMessage": "Emby арқылы бейнелерді, музыканы және фотосуреттерді Emby Server жағынан қалтафондарға, планшеттерге және тағы басқа құрылғыларға ағынмен жеңіл тасымалдауыңыз мүмкін", + "HeaderSignInWithConnect": "Emby Connect арқылы қосылу", + "HeaderWelcomeToEmby": "Emby ішіне қош келдіңіз!", + "HeaderNewUsers": "Жаңа пайдаланушылар", + "HeaderPleaseSignIn": "Кіріңіз", + "MessageInvalidUser": "Жарамсыз пайдаланушы аты немесе құпия сөз. Әрекетті қайталаңыз.", + "MessageUnlockAppWithPurchaseOrSupporter": "Осы құрамдасты бір жолғы сатып алу, немесе белсенді Emby Premiere жазылымы арқылы құрсаудан босату.", + "MessageUnlockAppWithSupporter": "Осы құрамдасты белсенді Emby Premiere жазылымы арқылы құрсаудан босату.", + "MessageToValidateSupporter": "Егер сізде белсенді Emby Premiere жазылымы болса, Emby Server тақтасындағы Emby Premiere орнатылып теңшелгеніне көз жеткізіңіз. Бұл басты мәзірде Emby Premiere дегенді нұқып қатынаулы.", + "ValueSpecialEpisodeName": "Арнайы - {0}", + "HeaderSignIn": "Sign In", + "Share": "Ортақтасу", + "Shared": "Shared", + "Info": "Info", + "Add": "Үстеу", + "Speed": "Speed", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapters", + "Password": "Password", + "SavePassword": "Save Password", + "LabelPassword": "Құпия сөз:", + "HeaderResetPassword": "Reset Password", + "Series": "Series", + "Preview": "Preview", + "Submit": "Submit", + "Never": "Never", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Top Results", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Always on", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Upload only on Wifi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Құпия сөз (растау)", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Пайдаланушы аты:", + "HeaderAddServer": "Add Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Close", + "HeaderSeeAll": "See All", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "Э-пошта:", + "LabelHost": "Host", + "LabelHostHelp": "Example: 192.168.1.100 or https://myserver.com", + "LabelPort": "Port", + "Disabled": "Disabled", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Are you still watching?", + "LabelCurrentPassword": "Current password", + "LabelNewPassword": "New password", + "LabelNewPasswordConfirm": "New password confirm", + "HeaderRemovePassword": "Remove Password", + "ServerUpdateNeeded": "Осы Emby Server жаңартылуы қажет. Соңғы нұсқасын жүктеп алу үшін, {0} кіріңіз", + "MessageThankYouForConnectSignUp": "Emby Connect үшін тіркелгенге алғыс. Мекенжайыңызға жіберілетін Э-пошта хабарында жаңа тіркелгіңізді қалай растау туралы нұсқаулар болады. Кіру үшін тіркелгіні растаңыз және кейін осында қайта оралыңыз.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "Құпия сөз бен Құпия сөз растау өрістері сәйкес болуы қажет.", + "ErrorMessageUsernameInUse": "Пайдаланушы аты әлдеқашан пайдаланылуда. Жаңа атын таңдаңыз да әрекетті қайталаңыз.", + "ErrorMessageEmailInUse": "Э-пошта мекенжайы әлдеқашан пайдаланылуда. Жаңа Э-пошта мекенжайын таңдаңыз да әрекетті қайталаңыз, немесе Құпия сөзді еске салу құрамдасын пайдаланыңыз.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Серверге қосылу", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "Бұл сіздің Emby желілік тіркелгіңіздің пайдаланушы аты не Э-пошта мекенжайы болып табылады.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "Жаңа", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Тұсаукесері", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Тікелей", + "Reset": "Reset", + "Repeat": "Қайталау", + "Track": "Track", + "Tracks": "Жолшықтар", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} жолшық", + "ItemCount": "{0} тармақ", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Ең кейінгі музыка", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Жуырда ойнатылған", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Жиі ойнатылғандар", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "Осы сияқты эфирде көбірек", + "OriginalAirDateValue": "Бастапқы эфир: {0}", + "EndsAtValue": "Аяқталуы: {0}", + "Date": "Date", + "AirDate": "Эфир күні", + "Played": "Ойнатылған", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Last Episode Date Added", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Ойнату күйі:", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Дыбыстық кодек:", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Бейнелік кодек:", + "LabelSubtitleCodec": "Субтитрлер кодегі:", + "LabelParentalRating": "Жастас санаты:", + "BecauseYouLikeValue": "Өйткені {0} жараттыңыз", + "BecauseYouWatchedValue": "Өйткені {0} қарадыңыз", + "DirectedByValue": "Қоюші {0}", + "StarringValue": "Бас ролінде {0}", + "Invitations": "Шақырулар", + "ActorAsRole": "{0} ретінде", + "ButtonOk": "Жарайды", + "GroupItemsIntoCollections": "Жиынтықтар ішіндегі тармақтарды топтастыру", + "GroupItemsIntoCollectionsHelp": "Үстелген жиынтықтарға негізделген топтық тармақтар. Кейбір сүзгілерді немесе сұрыптау ретін қосу бұны автоматты түрде өшіруі мүмкін.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "User", + "Access": "Access", + "Users": "Пайдаланушылар", + "Library": "Тасығышхана", + "Devices": "Құрылғылар", + "Cancel": "Болдырмау", + "Restart": "Қайта іске қосу", + "Shutdown": "Жұмысты аяқтау", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Жүйелер", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Қосылым туралы анықтама", + "AccessRestrictedTryAgainLater": "Ағымда қатынау шектелген. Әрекетті кейін қайталаңыз.", + "ButtonGotIt": "Түсінікті", + "RememberMe": "Есте сақтау", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Emby Server басқару", + "ShutdownServer": "Emby Server жұмысын аяқтау", + "RestartServer": "Emby Server қайта іске қосу", + "RecordingCancelled": "Жазба болдырылмады.", + "SeriesCancelled": "Телехикая болдырылмады.", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Жазу жоспарлаған.", + "SeriesRecordingScheduled": "Телехикая жазуы жоспарлаған.", + "HeaderNewRecording": "Жаңа жазба", + "HeaderWakeServer": "Серверді ояту", + "AttemptingWakeServer": "Серверді ояту әрекеті жасалуда. Күте тұрыңыз...", + "WakeServerSuccess": "Сәттілік!", + "HeaderCustomizeHomeScreen": "Басты экранды реттеу", + "WakeServerError": "Wake On LAN пакеттері сіздің серверіңізге жіберілді, бірақ сіздің Emby Server үшін қосыла алмаймыз. Құрылғыңызды ояту үшін біраз уақыт қажет болуы мүмкін немесе Emby Server құрылғыда белсенді жұмыс істемеуі мүмкін.", + "Days": "Күндер", + "Network": "Network", + "Networks": "ТД-желілер", + "SortByValue": "Сұрыптау тәсілі {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Фотоальбомдар", + "Photos": "Фотосуреттер", + "HeaderAppearsOn": "Көруге болады", + "List": "Тізім", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Кинотеатр режімі", + "Conversions": "Conversions", + "Downloads": "Жүктеулер", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Ішкі жад", + "ExternalStorage": "Сыртқы жад", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Дербес тасығышдерек", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Оңай дербес қолдану үшін құрылғыларыңызға тасығышдеректерді жүктеп алыңыз.", + "LiveTvFeatureDescription": "Emby Server орнатылған үйлесімді ТД-тюнер құрылғысы арқылы кез келген Emby-қолданбаға ТД-эфирді тікелей жіберу.", + "DvrFeatureDescription": "Emby DVR кестесіне жеке эфирлік жазбаларды, топтама жазбаларды, және онан басқаларды енгізіңіз.", + "CinemaModeFeatureDescription": "Кинотеатр режімі трейлерлерді және теңшелген көрнеуді фильм алдында ойнату кинозал әсерін жеткізеді.", + "HeaderFreeApps": "Тегін Emby қолданбалары", + "FreeAppsFeatureDescription": "Құрылғыларыңыз үшін Emby-қолданбаларына тегін қатынаңыз.", + "HeaderBecomeProjectSupporter": "Emby Premiere алу", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "Осы құрамдас үшін белсенді {0}Emby Premiere жазылымы{1} қажет.", + "HeaderConvertYourRecordings": "Жазбаларыңызды түрлендіру", + "Record": "Жазу", + "Save": "Сақтау", + "Edit": "Өңдеу", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Ең кейінгі", + "Download": "Жүктеп алу", + "Downloaded": "Жүктеліп алынды", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Жүктеп алуда", + "Advanced": "Кеңейтілген", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Жою", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Тармақты жою", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Осы тармақты жойғанда, ол файл жүйесінен де, тасығышханаңыздан да жойылады. Шынымен жалғастыру қажет пе?", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Жаңғырту", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Жиынтыққа үстеу", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Интернеттегі анықтамаға", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Жұмыс үстелі", + "Mobile": "Ұялы / Планшеттік", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "ТД", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Бейнелеу тілі:", + "LabelDisplayLanguageHelp": "Emby тәржімелеуі ағымдағы жоба болып табылады.", + "LearnHowYouCanContribute": "Қалай үлес қосуыныңыз мүмкін туралы үйреніңіз.", + "NewCollectionHelp": "Жиынтықтар сізге Фильмдердің және тағы басқа тасығышхананың мазмұнын дербестендірілген топтауларымен тамашалану үшін рұқсат етеді.", + "SearchForCollectionInternetMetadata": "Суреттемелер бен метадеректерді Интернеттен іздеу", + "DisplayMissingEpisodesWithinSeasons": "Жоқ бөлімдерді маусым ішінде бейнелеу", + "DisplayMissingEpisodesWithinSeasonsHelp": "Бұл сондай-ақ Emby Server орнатуындағы ТД тасығышханалары үшін қосулы болуы керек.", + "EnableThemeSongs": "Тақырыптық әуендерді қосу", + "EnableBackdrops": "Артқы суреттерді қосу", + "EnableThemeSongsHelp": "Қосылғанда, тасығышхананы шолу кезінде тақырыптық әуендер өңде ойнатылады.", + "EnableBackdropsHelp": "Қосылғанда, артқы суреттер тасығышхананы шолу кезінде кейбір беттерде өңде бейнеленеді.", + "EnableThemeVideos": "Тақырыптық бейнелерді қосу", + "EnableThemeVideosHelp": "Қосылғанда, тасығышхананы шолу кезінде тақырыптық бейнелер өңде ойнатылады.", + "RunAtStartup": "Іске қосылудан бастап орындау", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Экран қорғауыш:", + "LabelSoundEffects": "Дыбыстық әсерлері:", + "LabelName": "Аты:", + "NewCollectionNameExample": "Мысал: Жұлдыз соғыстары (жиынтық)", + "MessageItemsAdded": "Тармақтар үстелген.", + "OptionNew": "Жаңа...", + "LabelPlaylist": "Ойнату тізімі:", + "AddToPlaylist": "Ойнату тізіміне үстеу", + "HeaderAddToPlaylist": "Ойнату тізіміне үстеу", + "Subtitles": "Субтитрлер", + "LabelTheme": "Тақырып:", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Субтитрлерді іздеу", + "LabelLanguage": "Тіл:", + "Search": "Іздеу", + "NoSubtitleSearchResultsFound": "Ешқандай нәтижелер табылмады.", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "Файл", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Шынымен осы субтитрлер файлын жою қажет пе?", + "ConfirmDeletion": "Жоюды растау", + "MySubtitles": "Менің субтитрлерім", + "MessageDownloadQueued": "Жүктеп алу кезекте.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Телегидті құрсаудан босату", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Бар суреттерді ауыстыру", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "Барлық метадеректерді ауыстыру", + "SearchForMissingMetadata": "Жоқ метадеректерді іздеу", + "LabelRefreshMode": "Жаңғырту режімі:", + "NoItemsFound": "Ешқандай тармақтар табылмады.", + "HeaderSaySomethingLike": "Осындай сияқтыны айтыңыз...", + "ButtonTryAgain": "Әрекетті қайталау", + "HeaderYouSaid": "Сіз айтқаныңыз...", + "MessageWeDidntRecognizeCommand": "Осындай пәрменді танып айырмадық.", + "MessageIfYouBlockedVoice": "Егер қолданбаға дауыстық қатынаудан бас тартсаңыз, қайта әрекеттенуіңізден алдынан қайта теңшеуіңіз қажет болады.", + "ValueDiscNumber": "{0}-дискі", + "Unrated": "Бағаланбаған", + "Favorite": "Таңдаулы", + "Like": "Ұнайды", + "Dislike": "Ұнамайды", + "RefreshDialogHelp": "Метадеректер параметрлер мен Emby Server тақтасында қосылған интернет қызметтері негізінде жаңғыртылады.", + "Open": "Ашу", + "Play": "Ойнату", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Араластыру", + "Identify": "Анықтау", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Түрлендіру", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Бәрін ойнату", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Кезекке", + "QueueAllFromHere": "Бұл арадан бәрін кезекке", + "PlayAllFromHere": "Бұл арадан бәрін ойнату", + "PlayFromBeginning": "Басынан ойнату", + "FromBeginning": "From Beginning", + "ResumeAt": "{0} бастап жалғастыру", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Сұрыптау", + "Trailer": "Трейлер", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Ең кемінде екі тармақты таңдаңыз.", + "HeaderConfirmRecordingCancellation": "Жазу болдырмауын растау", + "MessageConfirmRecordingCancellation": "Жазуды болдырмау қажет пе?", + "Album": "Альбом", + "AlbumArtist": "Альбом орындаушысы", + "Error": "Қате", + "VoiceInput": "Дауыстық енгізу", + "LabelContentType": "Мазмұн түрі:", + "LabelPath": "Жолы:", + "Playlists": "Ойнату тізімдері", + "LabelTitle": "Атауы:", + "LabelOriginalTitle": "Бастапқы атауы:", + "LabelSortTitle": "Атау бойынша сұрыптау", + "LabelDateAdded": "Үстелген күні", + "DateAdded": "Үстелген күні", + "DateModified": "Date Modified", + "DatePlayed": "Ойнатылған күні", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Үстелген күні Emby Server тақтасындағы Тасығышхана параметрлерінде анықталады", + "LabelStatus": "Күй:", + "LabelArtistsHelp": "Бірнешуін (;) арқылы бөліңіз", + "HeaderAlbumArtists": "Альбом орындаушылары", + "LabelAlbumArtists": "Альбом орындаушылары:", + "LabelAlbum": "Альбом:", + "Artist": "Artist", + "Artists": "Орындаушылар", + "ImdbRating": "IMDb бағалауы", + "CommunityRating": "Қауым бағалауы", + "LabelCommunityRating": "Қауым бағалауы:", + "LabelCriticRating": "Сыншылар бағалауы:", + "CriticRating": "Сыншылар бағалауы", + "LabelWebsite": "Ғаламтор сайты:", + "Tagline": "Tagline", + "LabelOverview": "Жалпы шолу:", + "LabelShortOverview": "Қысқаша шолу:", + "LabelReleaseDate": "Шығару күні:", + "LabelPlaceOfBirth": "Туған жері:", + "Aired": "Эфирлік", + "LabelAirDays": "Эфир күндері:", + "LabelAirTime": "Эфир уақыты:", + "LabelRuntimeMinutes": "Ұзақтығы, мин:", + "LabelCustomRating": "Теңшелген санат:", + "LabelOriginalAspectRatio": "Бастапқы пішімдік арақатынасы:", + "Label3DFormat": "3D пішімі:", + "FormatValue": "Пішім: {0}", + "DownloadsValue": "{0} жүктеу", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Сыртқы ойнатқыштарды қосу", + "EnableExternalVideoPlayersHelp": "Сыртқы ойнатқыш мәзірі бейне ойнатуды бастаған кезде көрсетіледі.", + "HeaderSpecialEpisodeInfo": "Арнайы бөлім туралы", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "\"Airs after\" маусымы", + "LabelAirsBeforeEpisode": "\"Airs after\" бөлімі", + "HeaderExternalIds": "Сыртқы сәйкестендіргіштер:", + "HeaderDisplaySettings": "Бейнелеу параметрлері", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Бейнелеу реті:", + "LabelFileOrder": "File order", + "Display": "Бейнелеу", + "Countries": "Елдер", + "Genres": "Жанрлар", + "Studios": "Студиялар", + "Tags": "Тегтер", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Метадеректер параметрлері", + "People": "Адамдар", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Жүктеп алу тілінің теңшелімі:", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Осы тармақты келешек өзгертулерден құрсаулау", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Тектік тармақтан, немесе ғаламдық әдепкі мәнінені. параметрлер мұрасына иелену үшін бос қалдырыңыз.", + "LabelCountry": "Ел:", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id:", + "LabelBirthYear": "Туған жылы:", + "LabelBirthDate": "Туған күні:", + "LabelDeathDate": "Өлген күні:", + "LabelEndDate": "Аяқталу күні:", + "LabelSeasonNumber": "Маусым нөмірі:", + "LabelEpisodeNumber": "Бөлім нөмірі:", + "LabelTrackNumber": "Жолшық нөмірі:", + "LabelNumber": "Нөмірі:", + "LabelDiscNumber": "Дискі нөмірі:", + "LabelParentNumber": "Тектік нөмір:", + "SortName": "Сұрыпталатын аты", + "OriginalTitle": "Original Title", + "ReleaseDate": "Шығару кезі", + "Continuing": "Жалғасуда", + "Ended": "Аяқталды", + "HeaderEnabledFields": "Қосылған өрістер", + "HeaderEnabledFieldsHelp": "Құрсаулау үшін және деректер өзгертуіне тыйым салу үшін, өрістен құсбелгіні алыңыз.", + "Backdrops": "Артқы суреттер", + "Images": "Суреттер", + "Runtime": "Ұзақтығы", + "ProductionLocations": "Өндіру орындары", + "BirthLocation": "Туған орны", + "ParentalRating": "Жастас санаты", + "PlayCount": "Ойнату есебі", + "Name": "Аты", + "Overview": "Жалпы шолу", + "LabelType": "Түрі:", + "LabelPersonRole": "Рөлі:", + "LabelPersonRoleHelp": "Мысал: Балмұздақ фургонының жүргізушісі", + "Actor": "Актер", + "Composers": "Composers", + "Composer": "Композитор", + "Director": "Режиссер", + "GuestStar": "Шақырылған актер", + "Producer": "Продюсер", + "Writer": "Сценарийші", + "MessageNoSyncJobsFound": "Жүктеулер табылмады. Бүкіл қолданбадағы Жүктеу түймешіктерін пайдаланып жүктеуу жұмыстарын жасаңыз.", + "MessageNoDownloadsFound": "Дербес жүктеулер жоқ. Бүкіл қолданбадағы Жүктеу түймешігін басып дербес қолдану үшін тасығышдеректерді жүктеп алыңыз.", + "InstallingPackage": "{0} орнатылуда", + "PackageInstallCompleted": "{0} орнатылуы аяқталды.", + "PackageInstallFailed": "{0} орнатылуы сәтсіз.", + "PackageInstallCancelled": "{0} орнатылуы болдырылмады.", + "SeriesYearToPresent": "{0} - қазірде", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 тармақ", + "ValueOneEpisode": "1 бөлім", + "ValueEpisodeCount": "{0} бөлім", + "Albums": "Альбомдар", + "Song": "Song", + "Songs": "Әуендер", + "Authors": "Authors", + "Books": "Кітаптар", + "AudioBooks": "Дыбыстық кітаптар", + "HeaderAudioBooks": "Дыбыстық кітаптар", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Іздеудің бір не бірнеше шартын енгізіңіз. Іздеу нәтижелерін көбейту үшін шартты аластаңыз.", + "PleaseEnterNameOrId": "Атын немесе сыртқы ID енгізіңіз.", + "MessageItemSaved": "Тармақ сақталды.", + "SearchResults": "Іздеу нәтижелері", + "ServerNameIsRestarting": "Emby Server - {0} қайта іске қосылуда.", + "ServerNameIsShuttingDown": "Emby Server - {0} жұмысын аяқтауда.", + "HeaderDeleteItems": "Тармақтарды жою", + "ConfirmDeleteItems": "Осы тармақтарды жойғанда, олар файлдық жүйесінен де және тасығышханаңыздан да екеуінде жойылад. Сіз жалғастыру қалайсыз ба? Шынымен жалғастыру қажет пе?", + "PleaseRestartServerName": "Emby Server үшін қайта іске қосыңыз - {0}.", + "ConvertingDots": "Түрлендірілуде", + "LabelSyncNoTargetsHelp": "Жүктеп алуды қолдайтын қайбір қолданба ағымда табылмамаған болып көрінеді.", + "DownloadingDots": "Жүктеп алуда...", + "LearnMore": "Көбірек білу", + "LabelBitrateMbps": "Қарқыны (Мбит/с):", + "ConvertUnwatchedVideosOnly": "Қаралмаған бейнелерді түрлендіру", + "SyncUnwatchedVideosOnly": "Қаралмаған бейнелерді жүктеу", + "ConvertUnwatchedVideosOnlyHelp": "Тек қана қаралмаған бейнелер түрлендірледі", + "SyncUnwatchedVideosOnlyHelp": "Тек қана қаралмаған бейнелер жүктеледі, қаралғаннан кейін құр-дан аласталады.", + "AutomaticallySyncNewContent": "Жаңа мазмұнды автоматты түрде жүктеу", + "AutomaticallySyncNewContentHelp": "Осы қалтаға жаңадан қосылған мазмұн автоматты түрде осы құр-ғыға жүктеледі.", + "AutomaticallyConvertNewContent": "Жаңа мазмұнды автоматты түрде түрлендіру", + "AutomaticallyConvertNewContentHelp": "Осы қальаға жаңадан қосылған мазмұн автоматты түрде осы түрлендірледі.", + "LabelItemLimit": "Тармақтар шегі:", + "ConvertItemLimitHelp": "Міндетті емес: Түрлендірлетін тармақтар саны шегін орнатыңыз.", + "DownloadItemLimitHelp": "Міндетті емес: Жүктелетін тармақ санының шегін орнатыңыз.", + "PleaseSelectDeviceToSyncTo": "Қайда жүктелетін құрылғыны таңдаңыз.", + "Screenshots": "Экран суреттері", + "MoveRight": "Оңға жылжыту", + "MoveLeft": "Солға жылжыту", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Суретті жоямыз ба?", + "HeaderEditImages": "Суреттерді өңдеу", + "Settings": "Параметрлер", + "ShowIndicatorsFor": "Мынау үшін белгі көрсету:", + "Episodes": "Бөлімдер", + "Programs": "Көрсетімдер", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby ТД және DVR үшін белсенді {0}Emby Premiere жазылымы қажет{0}.", + "HeaderCancelRecording": "Жазуды болдырмау", + "HeaderKeepRecording": "Жазуды сақтап қалу", + "HeaderCancelSeries": "Телехикаяны болдырмау", + "HeaderKeepSeries": "Телехикаяны сақтап қалу", + "HeaderLearnMore": "Көбірек білу", + "SeriesSettings": "Телехикая параметрлері", + "HeaderRecordingOptions": "Жазу опциялары", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Телехикая опциялары", + "Layout": "Layout", + "Channels": "Арналар", + "ChannelNameOnly": "Тек қана {0} арнасы", + "Anytime": "Әркезде", + "AnyLanguage": "Қай-қайсы тіл", + "AroundTime": "{0} айналасында", + "HeaderLatestMovies": "Ең кейінгі фильмдер", + "All": "Бәрі", + "Stop": "Stop", + "AllChannels": "Барлық арналар", + "NewEpisodesOnly": "Тек қана жаңа бөлімдерді", + "AllEpisodes": "Барлық бөлімдер", + "LabelStartWhenPossible": "Мүмкіндік болғанда бастау:", + "LabelStopWhenPossible": "Мүмкіндік болғанда тоқтату:", + "MinutesBefore": "минут алдында", + "MinutesAfter": "минут соңыңда", + "SkipEpisodesAlreadyInMyLibrary": "Менің тасығышханамда бар бөлімдерді жазбау", + "SkipEpisodesAlreadyInMyLibraryHelp": "Қол жетімді болғанда, бөлімдер маусым және бөлім нөмірлері бойынша салыстырылады.", + "LabelKeepUpTo": "Осыған дейін сақтап қалу:", + "AsManyAsPossible": "Мүмкіндігінше көп", + "DefaultErrorMessage": "Сауал өңделу кезінде қате орын алды. Әрекетті кейін қайталаңыз.", + "UntilIDelete": "Мен жойғанша дейін", + "UntilSpaceNeeded": "Орын керек болғанша дейін", + "Categories": "Санаттар", + "Sports": "Спорт", + "News": "Жаңалық", + "Movies": "Фильмдер", + "Music": "Музыка", + "Kids": "Балалық", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Түспен белгіленген өңдерді қосу", + "SortChannelsBy": "Арналарды сұрыптау тәсілі:", + "ChannelNumber": "Арна нөмірі", + "HeaderBenefitsEmbyPremiere": "Emby Premiere артықшылықтары", + "ThankYouForTryingEnjoyOneMinute": "Бір минөт ойнатуды тамашалаңыз. Emby сынап көргеніңізге рақмет.", + "HeaderTryPlayback": "Ойнатуды сынап көріңіз", + "HowDidYouPay": "Қалай төледіңіз?", + "IHaveEmbyPremiere": "Менде Emby Premiere бар", + "IPurchasedThisApp": "Мен осы қолданбаны сатып алдым", + "ButtonRestorePreviousPurchase": "Сатып алғанды қалпына келтіру", + "ButtonUnlockWithPurchase": "Сатып алумен құрсаудан босату", + "ButtonUnlockPrice": "{0} құлыптамау", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere ай бойынша {0}", + "HeaderAlreadyPaid": "Әлдеқашан төленді ме?", + "ButtonPlayOneMinute": "Бір минөт ойнату", + "PlaceFavoriteChannelsAtBeginning": "Таңдаулы арналарды ең басынан орналастыру", + "HeaderUnlockFeature": "Артықшылық құрсауын босату", + "MessageDidYouKnowCinemaMode": "Emby Premiere арқылы, Кинотеатр режімі сияқты құрамдастармен тәжірибеңізді жақсартуыңыз мүмкін туралы білесіз бе?", + "HeaderPlayMyMedia": "Менің тасығышдеректерімді ойнату", + "HeaderDiscoverEmbyPremiere": "Emby Premiere ашыңыз", + "HeaderNowPlaying": "Now Playing", + "Items": "Тармақтар", + "AppName": "App Name", + "OneChannel": "Бір арнадан", + "ConfirmRemoveDownload": "Жүктеуді аластаймыз ба?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Жүктеуді аластау", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Жүктеуді сақтап қалу", + "AddedOnValue": "Үстелгені {0}", + "RemovingFromDevice": "Құрылғыдан аластауда", + "KeepOnDevice": "Құрылғыда сақтап қалу", + "CancelDownload": "Жүктеп алуды болдырмау", + "SyncJobItemStatusReadyToTransfer": "Ауыстырылуға дайын", + "SyncJobItemStatusSyncedMarkForRemoval": "Құрылғыдан аластауда", + "SyncJobItemStatusQueued": "Кезекте", + "SyncJobItemStatusConverting": "Түрлендіруде", + "SyncJobItemStatusTransferring": "Ауыстырылуда", + "SyncJobItemStatusSynced": "Жүктеліп алынды", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Құрылғыдан аласталған", + "Cancelled": "Cancelled", + "Retry": "Қайталау", + "Continue": "Жалғастыру", + "ContinueInSecondsValue": "Жалғасы {0} с кейін", + "HeaderRemoteControl": "Қашықтан басқару", + "Disconnect": "Ажырату", + "EnableDisplayMirroring": "Бейнелеудің телнұсқасын қосу", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Ойнатуды қосу", + "Quality": "Сапасы", + "Auto": "Автоматты", + "AndroidUnlockRestoreHelp": "Алдыңғы сатып алуды қалпына келтіру үшін, бастапқыда сатып алу жасалған нақ сол Google (немесе Amazon) тіркелгісімен құрылғыға кіріңіз. Қолданба дүкені қосылған және кез келген ата-ана шектеусіз, және белсенді интернет байланысы бар екеніне көз жеткізіңіз. Алдыңғы сатып алу қалпына келтіру үшін мұны тек қана бір рет істеу керек.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Түпнұсқалы", + "Fill": "Толтыру", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "Қосылу үшін ешқандай серверлер қол жетімді емес. Егер сервермен ортақтасуға шақырылсаңыз, қабылдауын төменде немесе э-поштадағы сілтемені нұқып нақтылаңыз.", + "MessagePlayAccessRestricted": "Осы мазмұндың ойнатуы ағымда шектелген. Қосымша ақпарат алу үшін Emby Server әкімшісіне байланысыңыз.", + "Accept": "Қабылдау", + "Reject": "Қабылдамау", + "Connect": "Қосылу", + "HeaderMyMedia": "Менің тасығышдеректерім", + "HeaderMyMediaSmall": "Менің тасығышдеректерім (ықшам)", + "LatestFromLibrary": "Ең кейінгі {0}", + "HeaderLatestEpisodes": "Ең кейінгі бөлімдер", + "ContinuePlaying": "Ойнатуды жалғастыру", + "ContinueWatching": "Қарауды жалғастыру", + "HeaderLatestChannelMedia": "Арналардың ең кейінгі тармақтары", + "HeaderContinueWatching": "Қарауды жалғастыру", + "HeaderContinueListening": "Тыңдауды жалғастыру", + "HeaderActiveRecordings": "Белсенді жазбалар", + "HeaderLatestRecordings": "Ең кейіңгі жазбалар", + "LabelConvertTo": "Мынаған түрлендіру:", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Келесі", + "LabelSource": "Қайнар көзі:", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Алдыңғы", + "HeaderNextUp": "Кезекті", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Ең кейінгі {0}", + "LabelHomeScreenSectionValue": "Басты бет {0}-бөлім:", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Параметрлер сақталды.", + "Upcoming": "Күтілген", + "HeaderSelectImageFile": "Select Image File", + "None": "Ешқандай", + "More": "Көбірек", + "Up": "Жоғарыға", + "Down": "Төменге", + "Home": "Басты", + "Back": "Артқа", + "Random": "Random", + "Playback": "Ойнату", + "Favorites": "Таңдаулылар", + "HeaderHomeScreen": "Басты экран", + "HeaderLatestChannelItems": "Арналардың ең кейінгі тармақтары", + "HeaderLibraryOrder": "Тасығышхана реті", + "HeaderOnNow": "Эфирде", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Ойнату қатесі", + "PlaybackErrorNotAllowed": "Осы мазмұнды ойнату үшін ағымда сізге рұқсат етілмеген. Толық мәліметтер үшін жүйелік әкімшіңізге байланысыңыз.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "PlaybackErrorNoCompatibleStream": "Ағымда ешқандай сыйысымды ағындар қолжетімді емес. Әрекетті кейін қайталаңыз немесе толық мәліметтер үшін жүйелік әкімшіңізге байланысыңыз.", + "PlaybackErrorPlaceHolder": "Осы бейнені ойнату үшін дискіні енгізіңіз.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Телегид", + "Games": "Ойындар", + "GameSystem": "Game System", + "Suggestions": "Ұсыныстар", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Таңдаулы жиынтықтар", + "HeaderFavoritePlaylists": "Таңдаулы ойнату тізімдері", + "Collection": "Collection", + "Collections": "Жиынтықтар", + "LabelSelectFolderGroups": "Келесі қалталардағы мазмұнды Кино, Музыка және ТД сияқты аспекттерге автоматты түрде топтастыру:", + "LabelSelectFolderGroupsHelp": "Белгіленбеген қалталар өз бетімен өзінің аспектінде бейнеленеді.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Қалталар", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Басты экран бөлімдерінде бейнелеу (мыс. Ең соңғы тасығышдеректер және Көруді жалғастыру)", + "DisplayInMyMedia": "Басты экранда бейнеленеді", + "Shows": "Көрсетімдер", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Музыкалық бейнелер", + "MusicVideos": "Музыкалық бейнелер", + "Videos": "Бейнелер", + "MixedContent": "Аралас мазмұн", + "HomeVideos": "Үй бейнелері", + "HomeVideosAndPhotos": "Үй бейнелері мен фотосуреттер", + "TVShows": "ТД-көрсетімдер", + "HeaderLibraryFolders": "Тасығышханалық қалталар", + "HeaderTermsOfPurchase": "Сатып алу шарттары", + "PrivacyPolicy": "Құпиялылық саясаты", + "TermsOfUse": "Пайдалану шарттары", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Бір рет қайталау", + "RepeatAll": "Барлығын қайталау", + "LabelDefaultScreen": "Әдепкі экран:", + "ConfirmEndPlayerSession": "Emby жұмысын аяқтауды {0} құрылғыда қалайсыз ба?", + "Yesterday": "Yesterday", + "Yes": "Иә", + "No": "Жоқ", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Эфир", + "Schedule": "Іс кестесі", + "Recordings": "Жазбалар", + "ScanForNewAndUpdatedFiles": "Жаңа және жаңартылған файлдарды сканерлеу", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "Ажыратымдылық пен тасығышдеректер түріне (H.264, AC3, т.б.) қатысты тасығышдеректер құрылғыға сәйкес келеді, бірақ сыйыспайтын файл контейнерінде (.mkv, .avi, .wmv және т.б.) болып тұр. Құрылғыға таратпас бұрын, бейне нақты уақытта қайта жинақталады.", + "DirectStreamHelp2": "Файлды тікелей тарату бейне сапасын жоғалтпай өте аз есептеу қуатын пайдаланады.", + "MediaIsBeingConverted": "Тасығышдеректер ойнатушы құрылғымен үйлесімді пішімге түрлендіріледі.", + "StatsForNerds": "Ақылгөйлер үшін санақ", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Тікелей ойнатуда", + "DirectStreaming": "Тікелей тасымалдануда", + "Transcode": "Transcode", + "Transcoding": "Қайта кодтауда", + "ContainerBitrateExceedsLimit": "Тасығышдеректер қарқыны шегінен артты.", + "VideoCodecNotSupported": "Бейне кодек үшін қолдау көрсетілмейді", + "AudioCodecNotSupported": "Дыбыс кодек қолдауда емес", + "SubtitleCodecNotSupported": "Субтитрлер пішім үшін қолдау көрсетілмейді", + "DirectPlayError": "Тікелей ойнату қатесі", + "ContainerNotSupported": "Контейнер үшін қолдау көрсетілмейді", + "VideoLevelNotSupported": "Бейне деңгейі үшін қолдау көрсетілмейді", + "AudioBitrateNotSupported": "Дыбыс қарқыны үшін қолдау көрсетілмейді", + "AudioChannelsNotSupported": "Дыбыс арналары үшін қолдау көрсетілмейді", + "VideoResolutionNotSupported": "Бейне ажыратылымдығы үшін қолдау көрсетілмейді", + "AudioProfileNotSupported": "Дыбыс профайлы үшін қолдау көрсетілмейді", + "AudioSampleRateNotSupported": "Үлгі жиілігі үшін қолдау көрсетілмейді", + "AnamorphicVideoNotSupported": "Анаморфтық бейне үшін қолдау көрсетілмейді", + "InterlacedVideoNotSupported": "Кезектесулік бейне үшін қолдау көрсетілмейді", + "SecondaryAudioNotSupported": "Дыбыс жолшығын ауыстыру үшін қолдау көрсетілмейді", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "Emby Connect тіркелгісін аластау кезінде қате орын алды. Белсенді интернет қосылымы бар екеніне көз жеткізіңіз және әрекетті кейін қайталаңыз.", + "HeaderEmbyAccountRemoved": "Emby тіркелгісі аласталды", + "MessageEmbyAccontRemoved": "Emby тіркелгісі осы пайдаланушыдан аласталынды.", + "HeaderInvitationSent": "Шақыру жіберілді", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "Оларға ортақтасу шақыруыңызды қабылдау ұсынысымен, э-пошта {0} арнап жіберілді.", + "MessageInvitationSentToNewUser": "Emby үшін тіркелу шақыруыңыз, э-пошта {0} үшін жіберілді.", + "GuestUserNotFound": "Пайдаланушы табылған жоқ. Атының дұрыстығын тексеріңіз және әрекетті қайталаңыз, немесе оның э-пошта мекенжайын енгізіп көріңіз.", + "ErrorReachingEmbyConnect": "Emby Connect серверіне жету кезінде қате орын алды. Белсенді интернет қосылымы бар екеніне көз жеткізіңіз және әрекетті кейін қайталаңыз.", + "ErrorAddingEmbyConnectAccount1": "Emby Connect тіркелгісін үстеу кезінде қате орын алды. Emby тіркелгісін жасадыңыз ба? {0} жанында тіркеліңіз.", + "ErrorAddingEmbyConnectAccount2": "Егер әлі де мәселеңіз болса, Emby тіркелгісінде пайдаланылған э-пошта арқылы {0} мекенжайына хабар жіберіңіз.", + "ErrorAddingGuestAccount1": "Emby Connect тіркелгісін үстеу кезінде қате орын алды. Қонағыңыз Emby тіркелгісін жасады ма? Ол {0} жанында тіркелуі мүмкін.", + "ErrorAddingGuestAccount2": "Егер әлі де мәселеңіз болса, өзіңіздің және олардың э-пошта мекенжайларын қосып э-пошта арқылы {0} мекенжайына хабар жіберіңіз.", + "MessageEmbyAccountAdded": "Emby тіркелгісі осы пайдаланушыга үстелінді.", + "MessagePendingEmbyAccountAdded": "Emby тіркелгісі осы пайдаланушыга үстелінді. Тіркелгі иесіне э-пошта жіберіледі. Э-поштадағы сілтемені нұқып шақыруды растау қажет болады.", + "HeaderEmbyAccountAdded": "Emby тіркелгісі үстелінді", + "Skip": "Өткізу", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Жаңа PIN-код жасау", + "ConnectLoginHelp1": "Media Browser Connect арқылы қайда болсаңыз да Media Browser серверіңізбен жеңіл қатынасуыңыз, сондай-ақ отбасыңызбен және достарыңызбен ортақтасуыңыз мүмкін.", + "CreatePinErrorMessage": "PIN-кодын жасағанда қате пайда болды. Тағы да қайталап көру үшін Жаңа PIN Жасау түймешігін басыңыз.", + "PinExpiredMessage": "PIN-код мерзімі аяқталған. Әрекетті қайталау үшін Жаңа PIN-код дегенді басыңыз.", + "ConnectPinCodeHeader": "Emby Connect арқылы кіру үшін, ұтқыр құрылғыны немесе компьютерді пайдаланып {0} көзіне барып шығыңыз, және келесі PIN-кодын енгізіңіз:", + "LabelSubtitlePlaybackMode": "Субтитр режімі:", + "ErrorDeletingItem": "Emby Server элементін жою кезінде қате орын алды. Emby Server тасығыш қалтасына жазуға рұқсаты бар екенін тексеріп, қайталап көріңіз.", + "NoSubtitles": "Субтитрлерсіз", + "Default": "Әдепкі", + "Absolute": "Түпнұсқалық", + "Smart": "Зиятты", + "Small": "Ұсақ", + "Smaller": "Кішігірім", + "Medium": "Орташа", + "Large": "Ірі", + "Larger": "Larger", + "ExtraLarge": "Өте ірі", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Тек қана мәжбүрлі субтитрлер", + "AlwaysPlaySubtitles": "Субтитрлерді әрқашан ойнату", + "DefaultSubtitlesHelp": "Субтитрлер енгізілген метадеректердегі әдепкі және мәжбүрлі жалаушалары негізінде жүктеліп алынады. Бірнеше опция қолжетімді болғанда тіл теңшелімі қарастырылады.", + "SmartSubtitlesHelp": "Тіл теңшеліміне сәйкес келген субтитрлер дыбыс шетел тілінде болғанда жүктеледі.", + "HeaderSubtitleSettings": "Субтитрлер параметрлері", + "HeaderSubtitleAppearance": "Субтитрлер көрінісі", + "OnlyForcedSubtitlesHelp": "Тек қана мәжбүрлі деп белгіленген субтитрлер жүктеледі.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Тіл теңшеліміне сәйкес келген субтитрлер дыбыс тіліне қатыссыз жүктеледі.", + "NoSubtitlesHelp": "Әдепкіде субтитрлер жүктелмейді. Оларды ойнату кезінде әлі де қолмен қосуға болады.", + "LabelPreferredSubtitleLanguage": "Субтитр тілінің теңшелімі:", + "LabelTextSize": "Мәтін өлшемі:", + "TheseSettingsAffectSubtitlesOnThisDevice": "Бұл параметрлер осы құрылғыдағы субтитрлерге әсер етеді", + "LabelDropShadow": "Жиектер:", + "LabelTextBackgroundColor": "Мәтін өңінің түсі:", + "LabelWindowBackgroundColor": "Терезе өңінің түсі:", + "LabelFont": "Қаріп:", + "LabelTextColor": "Мәтін түсі:", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Көтерілген", + "Depressed": "Төмен түсірілген", + "Uniform": "Бірыңғай", + "DropShadow": "Көлеңкелі", + "SmallCaps": "Кіші бас әріптер", + "SubtitleAppearanceSettingsDisclaimer": "Бұл параметрлер графикалық субтитрлерге (PGS, DVD ж.т.б.) немесе өз мәнері бар ендірілген субтитрлерге (ASS/SSA) қолданылмайды.", + "Normal": "Кәдімгі", + "HeaderWaitingForWifi": "WiFi үшін күтуде", + "WifiRequiredToDownload": "Жүктеп алуды жалғастыру үшін WiFi қосылымы қажет.", + "DownloadOnlyOnWifi": "Тек қана Wifi арқылы жүктеу", + "LabelMusicDownloadQuality": "Музыка жүктеу сапасы:", + "MusicDownloadQualityHelp": "Жоғары қарқыны бар дыбыс файлдары Emby Server арқылы түрлендіріледі. Жақсылау сапасы үшін жоғары мәнін, немесе жергілікті жады кеңістігін сақтап алу үшін төменгі мәнін таңдаңыз.", + "HeaderDownloadSettings": "Жүктеп алу параметрлері", + "LabelDownloadLocation": "Жүктеп алу орны:", + "BrowseForFolder": "ҚалтаҮшінШарлау", + "Unlimited": "Шексіз", + "NoLimit": "No limit", + "Hide": "Жасыру", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Дыбыстың биттік тереңдігі үшін қолдау көрсетілмейді", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Бейне профайлы үшін қолдау көрсетілмейді", + "VideoFramerateNotSupported": "Бейненің кадр жылдамдығы үшін қолдау көрсетілмейді", + "VideoBitDepthNotSupported": "Бейненің биттік тереңдігі үшін қолдау көрсетілмейді", + "RefFramesNotSupported": "Бейненің тірек кадрлар санына қолдау көрсетілмейді", + "ErrorConnectServerUnreachable": "Сұралған әрекетті орындауда қате орын алды. Серверіңіз {0} мекенжайындағы Embo Connect Server тарапына қатынаса алмады. Серверде белсенді интернет қосылымы бар екенін және байланыс қай қайсысы брандмауэр немесе орнатылған қауіпсіздік бағдарламалық жасақтама арқылы рұқсат етілуіне көз жеткізіңіз.", + "HeaderStopRecording": "Жазуды тоқтату", + "ManageRecording": "Жазуды реттеу", + "LabelDropImageHere": "Суретті мұнда сүйретіңіз немесе шарлау үшін нұқыңыз.", + "MessageFileReadError": "Файл оқу кезінде қате орын алды. Әрекетті кейін қайталаңыз.", + "Browse": "Шарлау", + "HeaderUploadImage": "Суретті жүктеп беру", + "HeaderAddUpdateImage": "Суретті үстеу/жаңарту", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Сурет түрі:", + "Upload": "Кері қотару", + "Primary": "Негізгі", + "PrimaryImageBlur": "Primary image blur", + "Art": "Ою сурет", + "Backdrop": "Артқы сурет", + "Banner": "Баннер", + "Box": "Қорап", + "BoxRear": "Қорап арты", + "Disc": "Дискі", + "Logo": "Логотип", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Мәзір", + "Screenshot": "Экран суреті", + "Thumb": "Нобай", + "HeaderAudioSettings": "Дыбыс параметрлері", + "LabelAudioLanguagePreference": "Дыбыс тілінің теңшелімі:", + "LabelPlayDefaultAudioTrack": "Тілге қатыссыз әдепкі дыбыс жолшығын ойнату", + "HeaderVideoQuality": "Бейне сапасы", + "CinemaModeConfigurationHelp": "Кинотеатр режімі трейлерлерді және теңшелген көрнеуді негізгі фильм алдында ойнату кинозал әсерін жеткізеді.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Келесі бөлімді автоматты түрде жүктеп алу", + "LabelMaxChromecastBitrate": "Chromecast тасымалдану сапасы:", + "LabelSkipBackLength": "Артқа өткізіп жіберу ұзақтығы:", + "LabelSkipForwardLength": "Алға өткізіп жіберу ұзақтығы:", + "EnableCinemaMode": "Кинотеатр режімін қосу", + "LabelInternetQuality": "Интернеттегі сапасы:", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Музыка сапасы", + "LabelHomeNetworkQuality": "Үйлік желі сапасы:", + "HeaderLatestMedia": "Ең кейінгі тасығышдеректер", + "HeaderRestartingEmbyServer": "Emby Server қайта іске қосылуда", + "RestartPleaseWaitMessage": "Emby Server жұмысы аяқталып, қайта іске қосылғанша дейін күте тұрыңыз. Бұл бір-екі минөтқа созылуы мүмкін.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Автоматты түрде (тіл теңшелімі негізінде)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Күн мен уақыт:", + "Genre": "Genre", + "DirectorValue": "Режиссері: {0}", + "DirectorsValue": "Режиссерлер; {0}", + "GenreValue": "Жанр: {0}", + "GenresValue": "Жанрлар: {0}", + "TagsValue": "Тегтер: {0}", + "Off": "Өшір", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Сүзгілер", + "Unplayed": "Ойнатылмаған", + "LabelTVHomeScreen": "ТД режіміндегі басты экран:", + "Horizontal": "Көлденең", + "Vertical": "Тігінен", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Телехикаялар бойынша топтастыру", + "HeaderVideoType": "Бейне түрі", + "HeaderSeriesStatus": "Телехикая күйі", + "Features": "Ерекшеліктер", + "Trailers": "Трейлерлер", + "Extras": "Қосымшалар", + "ThemeSongs": "Тақырыптық әуендер", + "ThemeVideos": "Тақырыптық бейнелер", + "HeaderFavoriteMovies": "Таңдаулы фильмдер", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Таңдаулы көрсетімдер", + "HeaderFavoriteEpisodes": "Таңдаулы бөлімдер", + "HeaderFavoriteVideos": "Тандаулы бейнелер", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Таңдаулы ойындар", + "HeaderFavoriteArtists": "Таңдаулы орындаушылар", + "HeaderFavoriteAlbums": "Таңдаулы альбомдар", + "HeaderFavoriteSongs": "Таңдаулы әуендер", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Артуы бойынша", + "Descending": "Кемуі бойынша", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Бөлімдерді эфир күнімен, DVD ретімен немесе түпнұсқалық нөмірлеуімен реттеу.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Тандаулы адамдар", + "MultiSelect": "Көп таңдау", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Серверді таңдау", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Кіру параметрлері", + "LabelRememberLogin": "Кіруді есте сақтау:", + "LabelAutomaticallySignOut": "Автоматты түрде шығу:", + "BetaTesterMessage": "Emby бета-сынақшысы болғаныңыз үшін рахмет! {0}Testing Area of the Emby Community{1} көзінде пікіріңізді қалдырыңыз.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/ko.json b/modules/common/strings/ko.json new file mode 100644 index 0000000..7101cbf --- /dev/null +++ b/modules/common/strings/ko.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby는 가정용 비디오 및 사진과 같은 개인용 미디어 라이브러리를 관리 할 수 ​​있도록 설계되었습니다.{0} 사용 약관 {1}을 참조하십시오. Emby 소프트웨어를 사용하면 이러한 조건을 수락하는 것으로 간주됩니다.", + "MessageUnableToConnectToServer": "선택한 서버에 연결할 수 없습니다. 서버가 실행 중인지 확인후 다시 시도하세요.", + "EmbyIntroMessage": "Emby를 사용하면 Emby 서버에서 스마트폰, 태블릿 및 기타 디바이스로 비디오, 음악 및 사진을 쉽게 스트리밍할 수 있습니다.", + "HeaderSignInWithConnect": "Emby Connect로 로그인", + "HeaderWelcomeToEmby": "Emby에 오신 것을 환영합니다!", + "HeaderNewUsers": "새 사용자", + "HeaderPleaseSignIn": "로그인하세요", + "MessageInvalidUser": "올바르지 않은 사용자명 또는 비밀번호입니다. 다시 시도하세요.", + "MessageUnlockAppWithPurchaseOrSupporter": "기간 한정 일회성 구매 또는 Emby 프리미어 구독을 활성화하여 이 기능을 잠금을 해제하십시오.", + "MessageUnlockAppWithSupporter": "이 기능을 사용하려면 활성화 된 Emby 프리미어 구독이 필요합니다.", + "MessageToValidateSupporter": "활성화된 Emby 프리미어 구독이 있는 경우, Emby 프리미어를 Emby 서버 대시보드에 설치했는지 확인하십시오. 이 메뉴는 기본 메뉴에서 Emby 프리미어를 클릭하여 액세스 할 수 있습니다.", + "ValueSpecialEpisodeName": "스페셜 - {0}", + "HeaderSignIn": "로그인", + "Share": "공유", + "Shared": "공유됨", + "Info": "정보", + "Add": "추가", + "Speed": "속도", + "PlaybackSpeed": "재생 속도", + "Chapters": "챕터", + "Password": "비밀번호", + "SavePassword": "비밀번호 저장", + "LabelPassword": "비밀번호", + "HeaderResetPassword": "비밀번호 초기화", + "Series": "시리즈", + "Preview": "미리보기", + "Submit": "전송", + "Never": "하지않음", + "Table": "테이블", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "재생 횟수", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "키워드 유형", + "HeaderSelectColumns": "열 선택", + "HeaderTopResults": "상위 결과", + "HeaderPinSidebar": "사이드바 고정", + "Collapse": "무너뜨리기", + "LabelBackgroundVideoPlayback": "백그라운드 비디오 재생", + "BackgroundVideoPlaybackHelp": "화면이 꺼져 있을때도 백그라운드 비디오 재생 허용", + "AlwaysOn": "항상 켜기", + "HeadphonesOrExternalSpeakersConnected": "헤드폰 또는 외부 스피커가 연결됬을 때", + "HeaderKeyboardAndRemote": "키보드 및 원격제어", + "NoSelectedItemsSupportOperation": "이 작업을 지원하는 항목이 선택되지 않았습니다.", + "NoOperationsForSelectedItems": "선택된 항목을 지원하는 작업이 없습니다.", + "UploadOnlyOnWifi": "WIFI에 연결되어 있을때만 업로드", + "HeaderFoldersToUpload": "업로드할 폴더", + "LabelPasswordConfirm": "비밀번호 (확인)", + "HeaderMoveUpInOrder": "순서대로 위로 이동", + "HeaderDownUpInOrder": "순서대로 아래로 이동", + "LabelUsername": "사용자명", + "HeaderAddServer": "서버 추가", + "HeaderSubtitleOffset": "자막 오프셋", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "게속 시청하기에서 제거", + "RemoveThisTitleFromContinueWatching": "계속 시청하기에서 이 작품을 제거 하시겠습니까?", + "HeaderRemoveFromContinueListening": "계속 듣기에서 제거", + "RemoveThisTitleFromContinueListening": "계속 듣기에서 이 작품을 제거하시겠습니까?", + "HeaderIncreaseSubtitleOffset": "자막 오프셋 증가", + "HeaderDecreaseSubtitleOffset": "자막 오프셋 감소", + "Close": "닫기", + "HeaderSeeAll": "모두 보기", + "HeaderOpenInNewWindow": "새 탭에서 열기", + "LabelEmail": "이메일", + "LabelHost": "호스트", + "LabelHostHelp": "예시: 192.168.1.100 또는 https://myserver.com", + "LabelPort": "포트", + "Disabled": "사용 안 함", + "Uninstall": "설치 제거", + "Enable": "활성화", + "AllTuners": "All Tuners", + "Disable": "비활성화", + "NextValue": "다음:{0}", + "HeaderNextItem": "다음 항목", + "HeaderPreviousItem": "이전 항목", + "NoTrailersMessage": "예고편을 찾을 수 없습니다. 예고편을 보시려면 {0}Emby 플러그인 카탈로그{1}에서 예고편 플러그인을 설치하세요.", + "UninstallPluginConfirmation": "정말로 플러그인을 제거하시겠습니까?", + "HeaderUninstallPlugin": "플러그인 설치 제거", + "AreYouStillWatching": "아직 시청 중 이신가요?", + "LabelCurrentPassword": "현재 비밀번호", + "LabelNewPassword": "새 비밀번호", + "LabelNewPasswordConfirm": "새 비밀번호 확인", + "HeaderRemovePassword": "비밀번호 삭제", + "ServerUpdateNeeded": "이 Emby Server를 업데이트해야합니다. {0} 로 방문 후 최신버전을 다운로드 하십시요", + "MessageThankYouForConnectSignUp": "Emby Connect에 가입 해 주셔서 감사합니다. 귀하의 새 계정을 확인하는 방법에 대한 지시 사항이 포함 된 이메일이 귀하의 주소로 발송됩니다. 이메일 계정을 확인한 다음 여기로 돌아와 로그인하십시오.", + "MessageThankYouForConnectSignUpNoValidation": "Emby Connect에 가입해 주셔서 감사합니다! 이제 Emby Connect 정보로 로그인하라는 메시지가 나타납니다.", + "ErrorMessagePasswordNotMatchConfirm": "비밀번호와 비밀번호 확인이 일치하여야 합니다.", + "ErrorMessageUsernameInUse": "이미 사용 중인 사용자명입니다. 다른 이름으로 다시 시도하세요.", + "ErrorMessageEmailInUse": "이미 사용 중인 이메일 주소입니다. 다른 이메일 주소로 다시 시도하거나 비밀번호 분실 기능을 사용하세요.", + "HeaderUpcomingOnTV": "라이브 방송 예정 TV", + "HeaderOtherShowings": "다른 방영중인 작품", + "Showings": "방영중인 작품", + "HeaderConnectToServer": "서버 접속", + "ConnectToServerManually": "수동으로 서버 접속", + "LabelEnterConnectUserNameHelp": "이는 Emby Connect 계정을 설정하는 데 사용한 이메일 주소입니다.", + "HeaderSignInError": "로그인 오류", + "HeaderManualLogin": "수동 로그인", + "PasswordResetConfirmation": "정말로 비밀번호를 재설정 하시겠습니까?", + "ContactAdminToResetPassword": "비밀번호를 초기화하려면 시스템 관리자에게 문의하세요.", + "ForgotPasswordInNetworkRequired": "비밀번호를 재설정 하시려면 귀하의 홈 네트워크에서 다시 시도하세요.", + "ForgotPasswordFileCreated": "진행 방법이 설명된 다음의 파일이 귀하의 서버에 생성되었습니다.", + "ForgotPasswordFileExpiration": "초기화 PIN 코드가 {0}에 만료됩니다.", + "InvalidForgotPasswordPin": "올바르지 않거나 만료된 PIN 코드입니다. 다시 시도하세요.", + "PasswordResetForUsers": "다음 사용자의 비밀번호가 삭제되었습니다. 로그인 하시려면 비밀번호 없이 로그인하세요.", + "HeaderForgotPassword": "비밀번호를 분실하셨나요?", + "ForgotPasswordUsernameHelp": "사용자 이름이 기억나지 않으면 공백으로 남겨두세요.", + "HeaderPasswordReset": "비밀번호 재설정", + "AttributeNew": "신규", + "Done": "완료", + "HeaderResetToDefault": "기본값으로 재설정", + "Deinterlacing": "디인터레이스", + "HeaderBurningInSubtitles": "자막 굽기", + "Premiere": "프리미어", + "LabelPinCode": "PIN 코드", + "LabelLocalNetworkPinCode": "내부 네트워크 PIN 코드", + "LabelLocalNetworkPasswordMode": "내부 네트워크 로그인 모드", + "RequirePasswordInLocalNetwork": "내부 네트워크 비밀번호를 요구합니다.", + "NoPasswordInLocalNetwork": "내부 네트워크 비밀번호를 요구하지 않습니다.", + "PinCodeInLocalNetwork": "숫자로만 이루어진 내부 네트워크 PIN 코드", + "LocalNetworkPasswordModeHelp": "Emby 서버와 같은 네트워크에서 로그인하는 방법을 선택하세요.", + "HeaderLocalNetworkAccess": "내부 네트워크 접속", + "Live": "생방송", + "Reset": "초기화", + "Repeat": "반복", + "Track": "트랙", + "Tracks": "트랙", + "HeaderCameraUpload": "카메라 업로드", + "TrackCount": "{0} 트랙", + "ItemCount": "{0} 항목", + "NumberChannelsValue": "{0} 채널", + "HeaderLatestMusic": "최근 음악", + "HeaderLatestAudioBooks": "최근 추가된 오디오북", + "HeaderLatestDownloadedVideos": "최근 다운로드 한 비디오", + "HeaderRecentlyPlayed": "최근 재생", + "Recent": "최근", + "HeaderFrequentlyPlayed": "자주 재생", + "HeaderMoreLikeThis": "비슷한 재생물", + "HeaderMoreLikeThisOnLiveTV": "비슷한 TV 생방송", + "OriginalAirDateValue": "최초 방송일: {0}", + "EndsAtValue": "{0}에 종료", + "Date": "날짜", + "AirDate": "방송일", + "Played": "재생함", + "Daily": "매일", + "Weekly": "주", + "RequireHashMatch": "검색어 일치 항목만", + "RequireHashMatchHelp": "검색어 일치 항목만 검색하면 비디오 파일과 정확히 일치하고 검증된 자막만 검색합니다. 이 옵션을 선택하지 않으면 자막 다운로드 가능성이 높아 지지만 자막 싱크가 맞지 않거나 잘못된 언어의 자막이 표시 될 가능성이 높아집니다.", + "SearchForForcedSubtitlesOnly": "강제 자막만", + "SearchForForcedSubtitlesOnlyHelp": "외국어 자막이있는 영상물에만 강제 자막을 사용할 수 있습니다.", + "LastEpisodeDateAdded": "마지막 에피소드가 추가된 날짜", + "LastEpisodeDateAired": "마지막 에피소드 출시 날짜", + "LabelPlaystate": "재생여부", + "Studio": "스튜디오", + "Tag": "태그", + "EpisodeTitle": "에피소드 제목", + "Audio": "오디오", + "Video": "비디오", + "Subtitle": "자막", + "Image": "이미지", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "오디오 레이아웃", + "LabelAudioCodec": "오디오 코덱", + "LabelAudioLanguage": "오디오 언어", + "LabelSubtitleLanguage": "자막 언어", + "LabelVideoCodec": "비디오 코덱", + "LabelSubtitleCodec": "자막 코덱", + "LabelParentalRating": "등급", + "BecauseYouLikeValue": "{0} 을(를) 좋아하기 때문에", + "BecauseYouWatchedValue": "{0} 을(를) 시청하였기 때문에", + "DirectedByValue": "{0} 감독", + "StarringValue": "{0} 주연", + "Invitations": "초대", + "ActorAsRole": "{0}(으)로", + "ButtonOk": "확인", + "GroupItemsIntoCollections": "컬렉션으로 항목 묶기", + "GroupItemsIntoCollectionsHelp": "추가된 컬렉션을 기반으로 항목을 그룹화합니다. 특정 필터 또는 정렬 순서를 사용하면 자동으로이 기능이 사용 중지 될 수 있습니다.", + "GroupItemsIntoTags": "항목을 태그로 그룹화", + "GroupItemsIntoTagsHelp": "추가된 태그를 기준으로 항목을 그룹화합니다. 특정 필터를 활성화하거나 정렬 순서를 실행하면 이 기능이 자동으로 비활성화될 수 있습니다.", + "User": "사용자", + "Access": "접속", + "Users": "사용자", + "Library": "라이브러리", + "Devices": "디바이스", + "Cancel": "취소", + "Restart": "다시 시작", + "Shutdown": "종료", + "Logs": "사용기록", + "Visibility": "보임여부", + "Notifications": "알림", + "SendTestNotification": "테스트 알림 보내기", + "NotificationSent": "알림 전송됨", + "DeleteNotificationConfirmation": "이 알림을 삭제하시겠습니까?", + "DeleteNotification": "알림 삭제", + "AddNotification": "알림 추가", + "EditNotification": "알림 편집", + "LimitUserEventsTo": "사용자 이벤트를 다음으로 제한합니다", + "LimitLibraryEventsTo": "라이브러리 이벤트를 다음으로 제한", + "LimitDeviceEventsTo": "디바이스 이벤트를 다음으로 제한", + "ForAdditionalNotificationOptions": "서버 관리자는 Emby {0} 플러그인 카탈로그 {1}에서 추가 알림 서비스를 설치할 수 있습니다.", + "Plugins": "플러그인", + "Systems": "시스템", + "Server": "서버", + "Dashboard": "대시보드", + "PlayOnAnotherDevice": "다른 디바이스에서 재생", + "HeaderConnectionHelp": "연결 도움말", + "AccessRestrictedTryAgainLater": "접근이 제한되었습니다. 다시 시도하세요.", + "ButtonGotIt": "확인", + "RememberMe": "로그인 정보 기억", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Emby 서버 관리", + "ShutdownServer": "Emby 서버 종료", + "RestartServer": "Emby 서버 재시동", + "RecordingCancelled": "녹화가 취소되었습니다", + "SeriesCancelled": "시리즈가 취소되었습니다", + "Recording": "녹화", + "SeriesRecording": "시리즈 녹화", + "RecordingScheduled": "녹화가 예약되었습니다", + "SeriesRecordingScheduled": "시리즈 녹화가 예약되었습니다", + "HeaderNewRecording": "신규 녹화", + "HeaderWakeServer": "서버 깨우기", + "AttemptingWakeServer": "서버를 깨우려고합니다. 잠시만 기다려주십시오 ...", + "WakeServerSuccess": "성공!", + "HeaderCustomizeHomeScreen": "홈 화면 사용자 설정", + "WakeServerError": "Wake On LAN 패킷이 서버 컴퓨터로 전송되었지만 Emby 서버에 연결할 수 없습니다. 컴퓨터가 완전히 시작되기까지 시간이 더 필요하거나 Emby 서버가 컴퓨터에서 실행되고 있지 않을 수 있습니다.", + "Days": "요일", + "Network": "네트워크", + "Networks": "방송국", + "SortByValue": "{0} 순으로 정렬", + "HeaderSortBy": "정렬 기준", + "HeaderPhotoAlbums": "사진 앨범", + "Photos": "사진", + "HeaderAppearsOn": "출연작품", + "List": "목록", + "HeaderRecordSeries": "시리즈 녹화", + "HeaderCinemaMode": "극장 모드", + "Conversions": "변환", + "Downloads": "다운로드", + "HeaderManageDownloads": "다운로드 관리", + "InternalStorage": "내부 저장소", + "ExternalStorage": "외부 저장소", + "UploadToFollowingServers": "서버에 업로드", + "UploadingNumItems": "{1}의 {0} 업로드 중", + "DownloadNumItems": "{1}의 {0} 다운로드 중", + "HeaderSampleRate": "샘플 레이트", + "HeaderReferenceFrames": "참조 프레임", + "HeaderBitDepth": "비트 심도", + "HeaderPixelFormat": "픽셀 형식", + "Profile": "프로필", + "Bitrate": "비트레이트", + "Expand": "확장", + "Container": "컨테이너", + "Format": "형식", + "Path": "경로", + "Size": "용량", + "Resolution": "해상도", + "HeaderCodecTag": "코덱 태그", + "Framerate": "프레임 레이트", + "Interlaced": "인터레이스", + "Anamorphic": "아나몰픽", + "Level": "레벨", + "Timestamp": "타임 스탬프", + "Language": "언어", + "Codec": "코덱", + "Stream": "스트림", + "HeaderExtradata": "추가 데이터", + "HeaderHardwareAcceleratedTranscoding": "하드웨어 가속 트랜스코딩", + "HeaderHardwareAcceleratedTranscodingDescription": "서버 GPU를 활용하세요. Emby는 업계에서 가장 발전된, 빠른 하드웨어 가속을 제공합니다.", + "HeaderOfflineDownloads": "오프라인 미디어", + "AndMuchMoreExclamation": "그리고 더 많은 기능들이 준비되어 있습니다!", + "HeaderOfflineDownloadsDescription": "간편한 오프라인 사용을 위해 미디어를 디바이스에 다운로드합니다.", + "LiveTvFeatureDescription": "Emby 서버와 호환되는 TV 튜너가 설치된 Emby 응용 프로그램에서 TV를 스트리밍 합니다.", + "DvrFeatureDescription": "Emby DVR로 개별 TV 생방송 녹화, 시리즈 녹화 등을 예약합니다.", + "CinemaModeFeatureDescription": "극장 모드는 영상 재생 전, 예고편과 사용자 정의 영상을 재생하여 극장에 온 것 같은 기분을 느끼게 해 줍니다.", + "HeaderFreeApps": "무료 Emby 앱", + "FreeAppsFeatureDescription": "당신의 디바이스에서 Emby 앱을 무료로 이용할 수 있습니다.", + "HeaderBecomeProjectSupporter": "Emby 프리미어 구독하기", + "HeaderViewServerInfo": "서버 정보 보기", + "PlaybackTvModeRequiresEmbyPremiere": "TV 모드에서 미디어를 재생하려면 활성 {0}Emby 프리미어 구독 {1}이(가) 필요합니다.", + "FeatureRequiresEmbyPremiere": "이 기능을 사용하려면 활성화 된 {0} Emby 프리미어 구독이 필요합니다{1}.", + "HeaderConvertYourRecordings": "녹화 내용 변환", + "Record": "녹화", + "Save": "저장", + "Edit": "편집", + "HeaderSavePlaylist": "재생목록 저장", + "Latest": "최근", + "Download": "다운로드", + "Downloaded": "다운로드됨", + "Converted": "변환됨", + "RemoveFromHistory": "기록에서 제거", + "ConfirmRemoveFromHistory": "이 항목을 기록에서 제거하시겠습니까?", + "Downloading": "다운로드중", + "Advanced": "고급", + "LinkedToEmbyConnect": "Emby Connect에 연결됨", + "Delete": "삭제", + "Both": "둘 다", + "LabelChannelDisplay": "채널 디스플레이", + "HeaderDeleteItem": "항목 삭제", + "HeaderDeleteUser": "사용자 삭제", + "DeleteItemConfirmation": "정말 {0}(을)를 지우시겠습니까?", + "DeleteUserConfirmation": "정말로 사용자 {0}(을)를 삭제하시겠습니까?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "디바이스 삭제", + "DeleteDeviceConfirmation": "이 디바이스를 삭제하시겠습니까? 다음에 사용자가 이 디바이스로 로그인하면 다시 나타납니다.", + "ConfirmDeleteItem": "이 항목을 삭제하면 파일 시스템과 라이브러리 모두에서 삭제됩니다.", + "FollowingFilesWillBeDeleted": "다음 파일들과 폴더들이 삭제됩니다:", + "AreYouSureToContinue": "정말로 진행 하시겠습니까?", + "Refresh": "새로 고침", + "RefreshingMetadataDots": "메타데이터 새로고침 하는 중...", + "ScanningLibraryFilesDots": "라이브러리 스캔 중...", + "HeaderFavoritesThenByChannelNumber": "채널 번호별로 즐겨찾기 확인", + "HeaderAddToCollection": "컬렉션에 추가", + "HeaderFavoritesThenByTitle": "제목순으로 즐겨찾기 확인", + "HeaderFavoritesThenByDefault": "기본 채널 순서로 즐겨찾기 확인", + "HeaderDefaultChannelOrder": "기본 채널 순서", + "HeaderAddToFavorites": "즐겨찾기에 추가", + "HeaderRemoveFromFavorites": "즐겨찾기에서 제거", + "Favorited": "즐겨찾기된", + "Unfavorited": "즐겨찾기 해제된", + "HeaderNewCollection": "새 컬렉션", + "HeaderNewPlaylist": "새 재생목록", + "AllCollections": "전체 컬렉션", + "AllPlaylists": "전체 재생목록", + "Create": "생성", + "HeaderAddedToPlaylist": "재생목록에 추가됨", + "HeaderAddedToCollection": "컬렉션에 추가됨", + "OneItemAddedTo": "\"{0}\"에 1 항목 추가됨.", + "ItemsAddedTo": "\"{1}\"에 {0} 항목 추가됨.", + "HeaderAddedToPlayQueue": "재생 대기열에 추가됨", + "HeaderPlayingNext": "다음 재생", + "Help": "도움말", + "HeaderGetHelp": "도움 요청", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "컴퓨터", + "Mobile": "휴대폰/타블렛", + "Navigation": "탐색", + "HeaderVideoPlayback": "비디오 재생", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "시즌", + "OneTrack": "1 트랙", + "OneSeason": "1 시즌", + "Libraries": "라이브러리", + "NumberSeasonsValue": "{0}시즌", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "표시 언어", + "LabelDisplayLanguageHelp": "Emby 번역은 현재 진행중입니다.", + "LearnHowYouCanContribute": "여러분이 기여할 수 있는 방법을 알려드립니다.", + "NewCollectionHelp": "컬렉션을 사용하면 개인의 취향에 맞게 영화 및 다른 라이브러리들을 정리할 수 있습니다.", + "SearchForCollectionInternetMetadata": "인터넷에서 포스터와 메타데이터 검색", + "DisplayMissingEpisodesWithinSeasons": "각 시즌의 누락된 에피소드 표시", + "DisplayMissingEpisodesWithinSeasonsHelp": "Emby 서버 설정에서 TV 라이브러리에 대해서도 이 기능을 활성화해야 합니다.", + "EnableThemeSongs": "테마 음악 사용", + "EnableBackdrops": "배경 사용", + "EnableThemeSongsHelp": "라이브러리를 탐색할 때 테마음악을 재생합니다.", + "EnableBackdropsHelp": "라이브러리를 탐색할 때 배경에 이미지를 표시합니다.", + "EnableThemeVideos": "테마 영상 사용", + "EnableThemeVideosHelp": "라이브러리를 탐색할 때 테마 영상을 재생합니다.", + "RunAtStartup": "시작할 때 실행하기", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "화면보호기", + "LabelSoundEffects": "음향효과", + "LabelName": "이름", + "NewCollectionNameExample": "예시: Star Wars Collection", + "MessageItemsAdded": "항목 추가됨.", + "OptionNew": "신규...", + "LabelPlaylist": "재생목록", + "AddToPlaylist": "재생목록에 추가", + "HeaderAddToPlaylist": "재생목록에 추가", + "Subtitles": "자막", + "LabelTheme": "테마", + "LabelSettingsTheme": "테마 설정", + "LabelThemeAccentColor": "강조 색상", + "ThemeAccentColorDescription": "중요한 지표, 아이콘 및 텍스트의 색상을 이 색상으로 나타냅니다.", + "SearchForSubtitles": "자막 검색", + "LabelLanguage": "언어", + "Search": "검색", + "NoSubtitleSearchResultsFound": "검색 결과가 없습니다. {0}자막 다운로드{1}를 설정하셨나요?", + "NoLyricsSearchResultsFound": "검색 결과가 없습니다. {0} 가사 다운로드 {1} 를 설정했습니까?", + "Lyrics": "가사", + "SearchForLyrics": "가사 검색", + "Finish": "끝내기", + "File": "파일", + "Exit": "종료", + "Sleep": "절전", + "Setup": "설정", + "MessageAreYouSureDeleteSubtitles": "이 자막 파일을 삭제하시겠습니까?", + "ConfirmDeletion": "삭제 확인", + "MySubtitles": "내 자막", + "MessageDownloadQueued": "다운로드가 대기열에 추가되었습니다.", + "HeaderEditSubtitles": "자막 편집", + "UnlockGuide": "편성표 표시", + "HeaderRefreshMetadata": "메타데이터 새로고침", + "HeaderRefreshAllMetadata": "모든 메타데이터 새로고침", + "ReplaceExistingImages": "현재 이미지 교체", + "ReplaceExistingImagesHelp": "기존 이미지가 모두 삭제되고 새 이미지가 다운로드됩니다. 경우에 따라 이전보다 사용 가능한 이미지가 줄어들 수도 있습니다.", + "ReplaceAllMetadata": "모든 메타데이터 교체", + "SearchForMissingMetadata": "누락된 메타데이터 검색", + "LabelRefreshMode": "새로고침 모드", + "NoItemsFound": "항목이 없습니다.", + "HeaderSaySomethingLike": "다음과 같은 명령어를 말하세요...", + "ButtonTryAgain": "다시 시도하세요", + "HeaderYouSaid": "다음과 같이 말하셨습니다...", + "MessageWeDidntRecognizeCommand": "죄송합니다. 그 명령어를 인식할 수 없습니다.", + "MessageIfYouBlockedVoice": "앱 설치시 음성인식 기능으로의 접근 권한을 허용하지 않으셨다면 다시 실행하시기 전에 권한을 혀용해 주세요.", + "ValueDiscNumber": "디스크 {0}", + "Unrated": "등급미정", + "Favorite": "즐겨찾기", + "Like": "좋아요", + "Dislike": "싫어요", + "RefreshDialogHelp": "메타데이터는 Emby 라이브러리 설정에서 활성화된 설정과 메타데이터 제공자에 따라 새로운 데이터로 업데이트됩니다.", + "Open": "열기", + "Play": "재생", + "Pause": "일시정지", + "HeaderPlayQueue": "대기열 재생", + "HeaderAddToPlayQueue": "재생 대기열에 추가", + "Shuffle": "셔플", + "Identify": "정보확인", + "HeaderRemoveIdentification": "식별 정보 삭제", + "ResetMetadataConfirmation": "모든 메타데이터를 초기화하시겠습니까?", + "HeaderEditMetadata": "메타데이터 수정", + "Convert": "변환하기", + "Resume": "이어보기", + "HeaderInstantMix": "인스턴트 믹스", + "HeaderGoToItem": "항목으로 이동", + "HeaderGoToSeason": "시즌으로 이동", + "HeaderGoToSeries": "시리즈로 이동", + "HeaderGoToAlbum": "앨범으로 이동", + "HeaderGoToArtist": "아티스트로 이동", + "HeaderPlayAll": "모두 재생", + "PictureInPicture": "부가영상(PIP)", + "Fullscreen": "전체화면", + "ExitFullscreen": "전체화면 나가기", + "Rewind": "되감기", + "FastForward": "빨리 감기", + "Remove": "제거", + "Rename": "이름 변경", + "Queue": "대기열에 추가", + "QueueAllFromHere": "여기부터 모두 대기열에 추가", + "PlayAllFromHere": "여기부터 모두 재생", + "PlayFromBeginning": "처음부터 재생", + "FromBeginning": "처음부터 재생", + "ResumeAt": "{0}부터 이어서 재생", + "HeaderRemoveFromPlaylist": "재생목록에서 제거", + "HeaderRemoveFromPlayQueue": "재생 대기열에서 제거", + "HeaderRemoveFromCollection": "컬렉션에서 제거", + "Sort": "정렬", + "Trailer": "예고편", + "SelectNone": "모두 해제", + "SelectAll": "모두 선택", + "HeaderMarkPlayed": "재생함으로 표시", + "HeaderMarkUnplayed": "재생안함으로 표시", + "HeaderGroupVersions": "그룹 버전", + "PleaseSelectTwoItems": "최소 두 개의 항목을 선택하세요.", + "HeaderConfirmRecordingCancellation": "녹화 취소 확인", + "MessageConfirmRecordingCancellation": "녹화를 취소하겠습니까?", + "Album": "앨범", + "AlbumArtist": "앨범 아티스트", + "Error": "오류", + "VoiceInput": "음성입", + "LabelContentType": "콘텐츠 종류:", + "LabelPath": "경로:", + "Playlists": "재생목록", + "LabelTitle": "제목:", + "LabelOriginalTitle": "원본제목:", + "LabelSortTitle": "제목 정렬:", + "LabelDateAdded": "추가된 날짜:", + "DateAdded": "추가된 날짜", + "DateModified": "수정된 날짜", + "DatePlayed": "재생한 날짜", + "DateLastActive": "마지막 활동 날짜", + "ConfigureDateAdded": "Emby 서버 대시보드의 라이브러리에서 설정된 설정에 따라 추가된 날짜가 정해집니다.", + "LabelStatus": "상태:", + "LabelArtistsHelp": "분리 사용할 배수;", + "HeaderAlbumArtists": "앨범 아티스트", + "LabelAlbumArtists": "앨범 아티스트:", + "LabelAlbum": "앨범", + "Artist": "아티스트", + "Artists": "아티스트", + "ImdbRating": "IMDb 평점", + "CommunityRating": "커뮤니티 평점", + "LabelCommunityRating": "커뮤니티 평점:", + "LabelCriticRating": "평론가 평점:", + "CriticRating": "평론가 평점", + "LabelWebsite": "웹사이트:", + "Tagline": "태그라인", + "LabelOverview": "줄거리:", + "LabelShortOverview": "줄거리 요약:", + "LabelReleaseDate": "개봉일:", + "LabelPlaceOfBirth": "출생지:", + "Aired": "방영됨", + "LabelAirDays": "방영일:", + "LabelAirTime": "방영 시각:", + "LabelRuntimeMinutes": "상영 시간 (분):", + "LabelCustomRating": "커스텀 등급:", + "LabelOriginalAspectRatio": "원 화면비율:", + "Label3DFormat": "3D 형식:", + "FormatValue": "형식: {0}", + "DownloadsValue": "다운로드 {0}", + "HashMatch": "검색어 일치", + "EnableExternalVideoPlayers": "외부 비디오 플레이어 사용", + "EnableExternalVideoPlayersHelp": "재생을 시작할때 외부 플레이어 메뉴가 표시됩니다.", + "HeaderSpecialEpisodeInfo": "스페셜 에피소드 정보", + "LabelAirsDuringSeason": "시즌 중 방송:", + "LabelAirsAfterSeason": "다음시즌 재생:", + "LabelAirsBeforeEpisode": "이전 회차 재생:", + "HeaderExternalIds": "외부 Ids:", + "HeaderDisplaySettings": "화면 설정", + "PlaylistOrder": "재생목록 순서", + "CollectionOrder": "컬렉션 순서", + "LabelDisplayOrder": "표시 순서:", + "LabelFileOrder": "파일 순서:", + "Display": "화면", + "Countries": "국가", + "Genres": "장르", + "Studios": "스튜디오", + "Tags": "태그", + "Links": "링크", + "Movie": "영화", + "Program": "프로그램", + "Channel": "채널", + "Episode": "에피소드", + "Season": "시즌", + "HeaderMetadataSettings": "메타데이터 설정", + "People": "인물", + "Number": "번호", + "Lock": "잠금", + "HeaderScreenLocked": "화면 잠금", + "HeaderUnlockControls": "잠금 해제 컨트롤", + "HeaderTapToUnlock": "탭해서 잠금 해제", + "LabelMetadataDownloadLanguage": "선호하는 메타데이터 언어:", + "LabelImageDownloadLanguage": "선호하는 포스터 언어:", + "LabelLockItemToPreventChanges": "변경할 수 없게 항목 잠금", + "LockThisField": "메타데이터를 새로 고칠 때 이후 변경을 방지하려면 이 항목을 잠가주세요", + "MessageLeaveEmptyToInherit": "국제 기본값 혹은 상위 항목으로부터 전승된 항목은 비워두기", + "LabelCountry": "국가:", + "LabelCertificationCountry": "인증 국가", + "CertificationCountryHelp": "이 설정은 사용할 콘텐츠 등급 시스템에 영향을 미칩니다.", + "LabelDynamicExternalId": "{0} Id:", + "LabelBirthYear": "생년:", + "LabelBirthDate": "생일:", + "LabelDeathDate": "사망일:", + "LabelEndDate": "종료 날짜:", + "LabelSeasonNumber": "시즌 수", + "LabelEpisodeNumber": "회차 수", + "LabelTrackNumber": "트랙 번호", + "LabelNumber": "번호", + "LabelDiscNumber": "음반 수", + "LabelParentNumber": "상위번호", + "SortName": "정렬 제목", + "OriginalTitle": "원본 제목", + "ReleaseDate": "개봉 날짜", + "Continuing": "방영중", + "Ended": "종료됨", + "HeaderEnabledFields": "활성화된 항목", + "HeaderEnabledFieldsHelp": "데이터를 수정하지 못하게 하거나 잠그려면 항목을 선택 해제 하세요.", + "Backdrops": "배경", + "Images": "이미지", + "Runtime": "상영시간", + "ProductionLocations": "제작사 위치", + "BirthLocation": "제작국가", + "ParentalRating": "상영등급", + "PlayCount": "재생횟수", + "Name": "제목", + "Overview": "줄거리", + "LabelType": "종류", + "LabelPersonRole": "역할", + "LabelPersonRoleHelp": "예시: 아이스크림 트럭 운전사", + "Actor": "배우", + "Composers": "작곡가", + "Composer": "작곡가", + "Director": "감독", + "GuestStar": "특별출연", + "Producer": "제작자", + "Writer": "작가", + "MessageNoSyncJobsFound": "다운로드를 찾을 수 없습니다. 다운로드 버튼을 눌러 다운로드를 시작하세요.", + "MessageNoDownloadsFound": "오프라인 다운로드가 없습니다. 다운로드 버튼을 눌러 오프라인 미디어를 다운로드 하세요.", + "InstallingPackage": "{0}(을)를 설치하고 있습니다.", + "PackageInstallCompleted": "{0}(이)가 설치되었습니다.", + "PackageInstallFailed": "{0}의 설치에 실패했습니다.", + "PackageInstallCancelled": "{0}의 설치가 취소되었습니다.", + "SeriesYearToPresent": "{0} - 현재", + "OneDevice": "1개의 디바이스", + "DeviceCountValue": "{0}개의 디바이스", + "OneLog": "1개의 로그", + "LogCountValue": "{0}개의 로그", + "OneVote": "1개의 평가", + "VoteCountValue": "{0}개의 평가", + "OneLike": "1개의 좋아요", + "LikeCountValue": "{0}개의 좋아요", + "OneUser": "1명의 사용자", + "UserCountValue": "{0}명의 사용자", + "OneLibrary": "1개의 라이브러리", + "LibraryCountValue": "{0}개의 라이브러리", + "ValueOneItem": "1 항목", + "ValueOneEpisode": "1 에피소드", + "ValueEpisodeCount": "{0} 에피소드", + "Albums": "앨범", + "Song": "노래", + "Songs": "노래", + "Authors": "작가", + "Books": "책", + "AudioBooks": "오디오북", + "HeaderAudioBooks": "오디오북", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "한 개 이상의 검색어를 입력하세요. 검색 결과의 숫자를 늘리려면 검색어 수를 줄이세요.", + "PleaseEnterNameOrId": "외부 ID의 이름을 입력하세요.", + "MessageItemSaved": "항목이 저장되었습니다.", + "SearchResults": "검색 결과", + "ServerNameIsRestarting": "Emby 서버 - {0} 이 재시작 되고 있습니다.", + "ServerNameIsShuttingDown": "Emby 서버 - {0} (을)를 종료하는 중입니다.", + "HeaderDeleteItems": "항목삭제", + "ConfirmDeleteItems": "이 항목을 삭제하면 파일 시스템과 라이브러리 모두에서 삭제됩니다.", + "PleaseRestartServerName": "{0}에서 Emby 서버를 다시 시작하세요.", + "ConvertingDots": "변환중...", + "LabelSyncNoTargetsHelp": "오프라인 다운로드를 지원하는 응용프로그램이 설치되어있지 않습니다.", + "DownloadingDots": "다운로드중...", + "LearnMore": "더 알아보기", + "LabelBitrateMbps": "비트레이트 (Mbps)", + "ConvertUnwatchedVideosOnly": "시청하지 않은 비디오만 변환", + "SyncUnwatchedVideosOnly": "시청하지 않은 비디오만 다운로드", + "ConvertUnwatchedVideosOnlyHelp": "시청하지 않은 비디오만 변환합니다.", + "SyncUnwatchedVideosOnlyHelp": "완전히 재생된 것으로 표시되지 않은 동영상만 다운로드되며 동영상이 완전히 재생되면 기기에서 제거됩니다.", + "AutomaticallySyncNewContent": "새 컨텐츠 자동으로 다운로드", + "AutomaticallySyncNewContentHelp": "이 폴더에 추가된 새로운 컨텐츠를 자동으로 이 디바이스로 다운로드합니다.", + "AutomaticallyConvertNewContent": "새로운 컨텐츠 자동으로 변환", + "AutomaticallyConvertNewContentHelp": "이 폴더에 추가된 새로운 컨텐츠를 자동으로 변환합니다.", + "LabelItemLimit": "항목 제한", + "ConvertItemLimitHelp": "선택사항. 변환할 항목 수를 제한합니다.", + "DownloadItemLimitHelp": "선택사항. 다운로드할 항목 수를 제한합니다.", + "PleaseSelectDeviceToSyncTo": "다운로드할 디바이스를 선택하세요.", + "Screenshots": "스크린샷", + "MoveRight": "오른쪽으로 이동", + "MoveLeft": "왼쪽으로 이동", + "HeaderUploadNewImage": "새 이미지 업로드", + "HeaderDeleteImage": "이미지 삭제", + "ConfirmDeleteImage": "이미지를 삭제하시겠습니까?", + "HeaderEditImages": "이미지 수정", + "Settings": "설정", + "ShowIndicatorsFor": "다음 항목에 표시하기", + "Episodes": "회차", + "Programs": "프로그램", + "HeaderCastCrew": "배역 및 제작진", + "DvrSubscriptionRequired": "TV 생방송, DVR 기능을 사용하려면 Emby 프리미어 구독이 필요합니다.", + "HeaderCancelRecording": "녹화 취소", + "HeaderKeepRecording": "녹화 보관", + "HeaderCancelSeries": "시리즈 취소", + "HeaderKeepSeries": "시리즈 보관", + "HeaderLearnMore": "더 알아보기", + "SeriesSettings": "시리즈 설정", + "HeaderRecordingOptions": "녹화 옵션", + "HeaderDoNotRecord": "녹화 안함", + "HeaderSeriesOptions": "시리즈 옵션", + "Layout": "레이아웃", + "Channels": "채널", + "ChannelNameOnly": "{0}채널만 보기", + "Anytime": "항상", + "AnyLanguage": "아무 언어나", + "AroundTime": "{0} 주위", + "HeaderLatestMovies": "최근 영화", + "All": "모두", + "Stop": "정지", + "AllChannels": "모든 채널", + "NewEpisodesOnly": "새로운 회차만", + "AllEpisodes": "모든 에피소드", + "LabelStartWhenPossible": "가능할 때 재생", + "LabelStopWhenPossible": "가능할 때 정지", + "MinutesBefore": "분 전", + "MinutesAfter": "분 후", + "SkipEpisodesAlreadyInMyLibrary": "이미 라이브러리에 있는 회차는 녹화하지 않음", + "SkipEpisodesAlreadyInMyLibraryHelp": "에피소드는 시즌과 회차 번호를 비교합니다.", + "LabelKeepUpTo": "보관할 갯수", + "AsManyAsPossible": "최대한 많이", + "DefaultErrorMessage": "요구 처리 과정에 오류가 발생하였습니다. 다시 시도하세요.", + "UntilIDelete": "삭제할 때 까지", + "UntilSpaceNeeded": "저장공간이 부족할 때 까지", + "Categories": "분류", + "Sports": "스포츠", + "News": "뉴스", + "Movies": "영화", + "Music": "음악", + "Kids": "어린이", + "MoreFromValue": "{0} 의 더보기", + "DiedValue": "사망: {0}", + "BornValue": "출생: {0}", + "EnableColorCodedBackgrounds": "카테고리에 따라 쇼에 색상이 있는 배경을 적용합니다.", + "SortChannelsBy": "채널 정렬 기준", + "ChannelNumber": "채널번호", + "HeaderBenefitsEmbyPremiere": "Emby 프리미어의 혜택", + "ThankYouForTryingEnjoyOneMinute": "1분 동안 감상하실 수 있습니다. Emby를 사용해 주셔서 감사합니다.", + "HeaderTryPlayback": "1분 감상", + "HowDidYouPay": "어떻게 계산하셨습니까?", + "IHaveEmbyPremiere": "Emby 프리미어 가입자", + "IPurchasedThisApp": "응용 프로그램을 구입했음", + "ButtonRestorePreviousPurchase": "구입 복구", + "ButtonUnlockWithPurchase": "구매하여 제한 풀기", + "ButtonUnlockPrice": "{0}제한 풀기", + "EmbyPremiereMonthlyWithPrice": "Emby 프리미어 월간{0}", + "HeaderAlreadyPaid": "구매 하셨습니까?", + "ButtonPlayOneMinute": "1분 재", + "PlaceFavoriteChannelsAtBeginning": "선호 채널을 처음으로 위치하기", + "HeaderUnlockFeature": "기능제한 해제", + "MessageDidYouKnowCinemaMode": "Emby 프리미어 회원이 되시면 극장모드와 같은 다양한 기능을 추가로 사용하실 수 있는것을 알고 계십니까?", + "HeaderPlayMyMedia": "내 미디어 재생", + "HeaderDiscoverEmbyPremiere": "Emby 프리미어에 대해 알아보기", + "HeaderNowPlaying": "지금 재생 중", + "Items": "항목", + "AppName": "앱 이름", + "OneChannel": "하나의 채널", + "ConfirmRemoveDownload": "다운로드를 삭제하시겠습니까?", + "ConfirmRemoveItem": "항목을 제거하시겠습니까?", + "RemoveDownload": "다운로드 삭제", + "ConfirmCancelConversion": "변환을 취소할까요?", + "CancelConversion": "변환 취소", + "KeepDownload": "다운로드 보관", + "AddedOnValue": "{0} 추가됨", + "RemovingFromDevice": "디바이스에서 삭제중", + "KeepOnDevice": "디바이스에 보관", + "CancelDownload": "다운로드 취소", + "SyncJobItemStatusReadyToTransfer": "전송 준비됨", + "SyncJobItemStatusSyncedMarkForRemoval": "디바이스에서 삭제중", + "SyncJobItemStatusQueued": "대기중", + "SyncJobItemStatusConverting": "변환중", + "SyncJobItemStatusTransferring": "전송중", + "SyncJobItemStatusSynced": "다운로드됨", + "Failed": "실패", + "SyncJobItemStatusRemovedFromDevice": "디바이스에서 삭제됨", + "Cancelled": "취소됨", + "Retry": "다시 시도", + "Continue": "계속하기", + "ContinueInSecondsValue": "{0}초 후에 계속하기", + "HeaderRemoteControl": "원격제어", + "Disconnect": "연결 해제", + "EnableDisplayMirroring": "디스플레이 미러링 사용", + "RemoteAccess": "원격 접속", + "HeaderPlayOn": "재생", + "Quality": "품질", + "Auto": "자동", + "AndroidUnlockRestoreHelp": "이전 구매를 복원하려면 원래 구매한 것과 동일한 구글 또는 아마존 계정으로 디바이스에 로그인했는지 확인하십시오. 앱 스토어가 활성화되어 있으며 자녀 보호 기능에 의해 제한되지 않았는지 확인하고 활성 인터넷 연결이 있는지 확인하십시오. 이전 구매를 복원하려면 이 작업을 한 번만 수행하면 됩니다.", + "HeaderAspectRatio": "화면비율", + "Original": "원본", + "Fill": "채우기", + "Cover": "표지", + "MessageNoServersAvailableToConnect": "연결할 수 있는 서버가 없습니다. 공유 서버에 초대를 받았다면 아래에서 승인을 확인하거나 이메일의 링크를 클릭하세요.", + "MessagePlayAccessRestricted": "이 컨텐츠의 재생이 금지되어 있습니다. 자세한 사항은 Emby 서버 관리자에게 문의하세요.", + "Accept": "수락", + "Reject": "거절", + "Connect": "접속", + "HeaderMyMedia": "내 미디어", + "HeaderMyMediaSmall": "내 미디어 (작음)", + "LatestFromLibrary": "최근 추가된 {0}", + "HeaderLatestEpisodes": "최근에 에피소드가 추가됨", + "ContinuePlaying": "이어 재생", + "ContinueWatching": "계속 시청하기", + "HeaderLatestChannelMedia": "최근 채널 항목", + "HeaderContinueWatching": "계속 시청하기", + "HeaderContinueListening": "계속 듣기", + "HeaderActiveRecordings": "사용가능한 녹화파일", + "HeaderLatestRecordings": "최근 녹화파일", + "LabelConvertTo": "변환할 위치", + "LabelDownloadTo": "다운로드할 위치", + "HeaderDownloadToDots": "다운로드할 위치...", + "Next": "다음", + "LabelSource": "소스", + "VersionNumber": "버전 {0}", + "HeaderAllLanguages": "모든 언어", + "Previous": "이전", + "HeaderNextUp": "다음", + "HeaderPlayNextUp": "다음 재생", + "HeaderLatestFrom": "최근 {0}", + "LabelHomeScreenSectionValue": "홈 화면 섹션 {0}", + "PasswordResetComplete": "비밀번호가 초기화되었습니다.", + "PasswordSaved": "비밀번호가 저장되었습니다.", + "SettingsSaved": "설정이 저장되었습니다.", + "Upcoming": "방송 예정", + "HeaderSelectImageFile": "이미지 파일 선택", + "None": "없음", + "More": "더 보기", + "Up": "위", + "Down": "아래", + "Home": "홈", + "Back": "뒤로", + "Random": "랜덤", + "Playback": "재생", + "Favorites": "즐겨찾기", + "HeaderHomeScreen": "홈 화면", + "HeaderLatestChannelItems": "최근 채널 항목", + "HeaderLibraryOrder": "라이브러리 순서", + "HeaderOnNow": "지금 재생중", + "HeaderForKids": "아이들을 위한", + "HeaderPlaybackError": "재생오류", + "PlaybackErrorNotAllowed": "이 컨텐츠를 재생할 권한이 없습니다. 자세한 내용은 시스템 관리자에게 문의하세요.", + "RateLimitExceeded": "사용제한. 당신의 계정이 사용할 수 있는 최대 요청 수를 초과했습니다. 나중에 다시 시도하세요.", + "PlaybackErrorNoCompatibleStream": "스트리밍이 가능하지 않습니다. 자세한 내용은 시스템 관리자에게 문의하세요.", + "PlaybackErrorPlaceHolder": "이 비디오를 재생하려면 디스크를 넣어주세요.", + "PlaybackErrorNoPlayableItems": "재생 가능한 항목이 발견되지 않았습니다. 빈 폴더를 재생하시겠습니까?", + "Guide": "편성표", + "Games": "게임", + "GameSystem": "게임 시스템", + "Suggestions": "추천", + "HeaderFavoriteChannels": "선호 채널", + "HeaderFavoriteCollections": "즐겨찾는 컬렉션", + "HeaderFavoritePlaylists": "즐겨찾는 재생목록", + "Collection": "컬렉션", + "Collections": "컬렉션", + "LabelSelectFolderGroups": "다음 폴더의 내용이 영화, 음악, TV방송 등에 따라 자동으로 분류됩니다.:", + "LabelSelectFolderGroupsHelp": "표시하지 않은 폴더들은 원래의 상태로 보여집니다.", + "Mute": "음소거", + "Unmute": "음소거 취소", + "Folder": "폴더", + "Folders": "폴더", + "FileName": "파일 이름", + "DisplayInOtherHomeScreenSections": "최신 미디어 및 이어서 보기와 같은 보조 홈 화면 섹션에 표시합니다.", + "DisplayInMyMedia": "홈 화면에 표시", + "Shows": "쇼", + "MoviesAndShows": "영화 & 쇼", + "HeaderMusicVideo": "뮤직 비디오", + "HeaderMusicVideos": "뮤직 비디오", + "MusicVideos": "뮤직 비디오", + "Videos": "비디오", + "MixedContent": "혼합 콘텐츠", + "HomeVideos": "홈 비디오", + "HomeVideosAndPhotos": "홈 비디오 및 사진", + "TVShows": "TV 쇼", + "HeaderLibraryFolders": "미디어 폴더", + "HeaderTermsOfPurchase": "구매 약관", + "PrivacyPolicy": "개인정보 정책", + "TermsOfUse": "이용 약관", + "HeaderRepeatMode": "반복모드", + "HeaderToneMapping": "톤 매핑", + "RepeatOne": "하나만 반복", + "RepeatAll": "모두 반복", + "LabelDefaultScreen": "기본 화면", + "ConfirmEndPlayerSession": "{0}의 Emby를 종료하시겠습니까?", + "Yesterday": "어제", + "Yes": "예", + "No": "아니오", + "HeaderScanLibraryFiles": "라이브러리 검색", + "LiveTV": "TV 생방송", + "Schedule": "일정", + "Recordings": "녹화된 파일", + "ScanForNewAndUpdatedFiles": "새 파일과 갱신된 파일 검색", + "NewVersionOfXAvailableForY": "{0} 은 {1} 에 사용할 수 있습니다.", + "DirectStreamHelp1": "미디어 파일이 이 디바이스에서 재생 가능한 해상도와 파일 종류(H.264, AC3, etc.)지만 호환되지 않는 파일 형식(.mkv, .avi, .wmv, etc.)으로 저장되어있습니다. 이 영상은 스트리밍 전에 변환하여 재생됩니다.", + "DirectStreamHelp2": "원본 스트리밍은 CPU 의 리소스를 최소로 사용하며 영상의 화질저하없이 재생 합니다.", + "MediaIsBeingConverted": "영상을 재생하는 디바이스에 호환되는 형식으로 변환하여 재생합니다.", + "StatsForNerds": "영상 정보", + "HeaderHardwareAcceleratedDecoding": "하드웨어 가속 디코딩", + "HeaderHardwareAcceleratedEncoding": "하드웨어 가속 인코딩", + "HeaderDirectPlay": "다이렉트 재생", + "DirectPlaying": "원본재생", + "DirectStreaming": "원본 스트리밍", + "Transcode": "트랜스코드", + "Transcoding": "트랜스코딩", + "ContainerBitrateExceedsLimit": "품질 설정에 따라 비트레이트를 감소시키는 중입니다.", + "VideoCodecNotSupported": "비디오를 호환 가능한 코덱으로 변환 중입니다.", + "AudioCodecNotSupported": "오디오를 호환 가능한 코덱으로 변환 중입니다.", + "SubtitleCodecNotSupported": "자막을 비디오에 직접 변환 중입니다.", + "DirectPlayError": "재생 오류 복구", + "ContainerNotSupported": "호환되는 컨테이너로 변환", + "VideoLevelNotSupported": "호환되는 비디오 레벨로 변환", + "AudioBitrateNotSupported": "호환되는 오디오 비트레이트로 변환", + "AudioChannelsNotSupported": "호환되는 오디오 채널 수로 변환", + "VideoResolutionNotSupported": "호환되는 비디오 해상도로 변환", + "AudioProfileNotSupported": "호환도는 오디오 프로필로 변환", + "AudioSampleRateNotSupported": "호환되는 오디오 샘플 레이트로 변환", + "AnamorphicVideoNotSupported": "애너모픽 비디오를 지원하지 않습니다.", + "InterlacedVideoNotSupported": "비디오의 인터레이스를 제거하는 중입니다.", + "SecondaryAudioNotSupported": "보조 오디오 트랙을 선택 중입니다.", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "Emby Connect 계정을 삭제하는 중 오류가 발생했습니다. 인터넷에 연결되어 있는지 확인하시고 다시 시도해 보세요.", + "HeaderEmbyAccountRemoved": "Emby 계정이 삭제되었습니다.", + "MessageEmbyAccontRemoved": "이 사용자의 Emby 계정이 삭제되었습니다.", + "HeaderInvitationSent": "초대장 발송", + "Offline": "오프라인", + "HeaderSignUp": "회원가입", + "ServerDownloadMessage": "무료 Emby 서버를 다운로드하여 설치하려면 {0}을 방문 하세요.", + "ServerDownloadMessageWithoutLink": "무료 Emby 서버를 다운로드하고 설치하려면 Emby 웹 사이트를 방문하세요.", + "MessageInvitationSentToUser": "{0}에게 이메일이 발송되었습니다. 상대방이 초대장을 수락하면 당신의 Emby 서버를 공유할 수 있습니다.", + "MessageInvitationSentToNewUser": "Emby 초대장이 {0}에게 발송되었습니다.", + "GuestUserNotFound": "사용자를 찾을 수 없습니다. 이름을 정확히 입력했는지 확인하시거나 그 사용자의 이메일 주소를 입력해 보십시오.", + "ErrorReachingEmbyConnect": "Emby Connect 서버에 접속할 수 없습니다. 인터넷에 연결되어 있는지 확인하시고 다시 시도해 보십시오.", + "ErrorAddingEmbyConnectAccount1": "Emby Connect 계정을 추가하는 중 오류가 발생했습니다. Emby 계정을 소유하고 계신가요? 아니라면 이곳에서 가입하세요. {0}", + "ErrorAddingEmbyConnectAccount2": "아직도 문제가 해결되지 않았다면 Emby 계정과 같은 이메일을 사용하여 {0}으로 이메일을 보내세요.", + "ErrorAddingGuestAccount1": "Emby Connect 계정을 추가하는 중 오류가 발생했습니다. 당신의 손님이 Emby 계정을 소유하고 계신가요? 아니라면 이곳에서 가입하세요. {0}", + "ErrorAddingGuestAccount2": "아직도 문제가 해결되지 않았다면 Emby 계정과 같은 이메일을 사용하여 {0}으로 이메일을 보내세요. 손님계정의 이메일 주소도 포함시켜주세요.", + "MessageEmbyAccountAdded": "이 사용자에게 Emby 계정이 추가되었습니다.", + "MessagePendingEmbyAccountAdded": "이 사용자에게 Emby 계정이 추가되었습니다. 계정 소유자에게 이메일이 발송됩니다. 초대는 이메일에 포함된 링크를 클릭하여 확인하여야 합니다.", + "HeaderEmbyAccountAdded": "Emby 계정 추가됨", + "Skip": "건너뛰기", + "HeaderAdditionalParts": "추가 장면", + "ButtonGenerateNewPin": "새로운 핀 생성", + "ConnectLoginHelp1": "Emby Connect를 사용하면 어디서든 Emby Server에 쉽게 액세스 할 수 있으며 가족 및 친구와 서버를 공유 할 수 있습니다.", + "CreatePinErrorMessage": "핀 코드를 만드는 동안 오류가 발생했습니다. 새로운 핀 코드로 다시 시도하십시오.", + "PinExpiredMessage": "pin 코드가 만료되었습니다. 새로운 핀코드를 생성하십시오.", + "ConnectPinCodeHeader": "Emby Connect로 로그인하려면 모바일 디바이스 또는 컴퓨터를 사용하여 {0}로 방문하고 다음 핀 코드를 입력하십시오.", + "LabelSubtitlePlaybackMode": "자막 모드", + "ErrorDeletingItem": "이 항목을 삭제하는 중에 오류가 발생했습니다. Emby 서버가 미디어 폴더에 쓰기 권한이 부여되었는지 확인하시고 다시 시도하세요.", + "NoSubtitles": "자막 없음", + "Default": "Default", + "Absolute": "완벽함", + "Smart": "스마트", + "Small": "작게", + "Smaller": "더 작게", + "Medium": "중간", + "Large": "크게", + "Larger": "더 크게", + "ExtraLarge": "가장 크게", + "ExtraSmall": "가장 작게", + "Forced": "Forced", + "External": "외부", + "HeaderEmbeddedTitle": "내장 제목", + "OnlyForcedSubtitles": "강제 자막만", + "AlwaysPlaySubtitles": "항상 자막 표시", + "DefaultSubtitlesHelp": "자막은 메타데이터에 적용된 기본이나 강제설정된 언어를 바탕으로 로드 됩니다. 자막언어가 여러개일경우 언어설정에 설정된 언어가 로드 됩니다.", + "SmartSubtitlesHelp": "오디오가 외국어인 경우 언어 기본 설정과 일치하는 자막을 불러옵니다.", + "HeaderSubtitleSettings": "자막 설정", + "HeaderSubtitleAppearance": "자막 모습", + "OnlyForcedSubtitlesHelp": "강제로 표시된 자막만 불러 옵니다.", + "AutoSelectHearingImpairedHelp": "언어 기본 설정과 일치하는 자막이 로드되며, 청각 장애인(SDH)으로 표시된 트랙에 우선권이 주어집니다.", + "AlwaysPlaySubtitlesHelp": "오디오 언어와 상관없이 선호하는 기본 자막 언어 설정을 불러옵니다.", + "NoSubtitlesHelp": "기본적으로 자막을 불러오지 않습니다. 재생도중에 수동으로 자막을 불러올 수 있습니다.", + "LabelPreferredSubtitleLanguage": "선호하는 자막 언어", + "LabelTextSize": "글자 크기", + "TheseSettingsAffectSubtitlesOnThisDevice": "이 설정은 이 디바이스에만 적용됩니다.", + "LabelDropShadow": "그림자 보이기", + "LabelTextBackgroundColor": "자막 배경 색상", + "LabelWindowBackgroundColor": "자막 배경 색상", + "LabelFont": "글씨체", + "LabelTextColor": "자막 색상", + "LabelBackgroundColor": "자막 배경 색상", + "LabelBackgroundOpacity": "배경 불투명도", + "Raised": "늘이기", + "Depressed": "줄이기", + "Uniform": "유니폼", + "DropShadow": "그림자 보이기", + "SmallCaps": "대문자 작게", + "SubtitleAppearanceSettingsDisclaimer": "이 설정들은 그래픽 자막 (PGS, DVD, etc.) 이나 자막 자체에 스타일 설정이 있는 자막 (ASS/SSA) 에는 적용되지 않습니다.", + "Normal": "일반", + "HeaderWaitingForWifi": "와이파이를 기다리는중 입니다.", + "WifiRequiredToDownload": "다운로드를 계속 하시려면 와이파이에 접속해야 합니다.", + "DownloadOnlyOnWifi": "Wi-Fi에서만 다운로드", + "LabelMusicDownloadQuality": "음악 다운로드 품질:", + "MusicDownloadQualityHelp": "설정보다 높은 비트 전송률을 가진 오디오 파일은 Emby 서버가 변환합니다. 더 나은 품질을 위해서는 더 높은 값을 선택하고 로컬 저장 공간을 보존하려면 더 낮은 값을 선택하십시오.", + "HeaderDownloadSettings": "다운로드 설정", + "LabelDownloadLocation": "다운로드 위치:", + "BrowseForFolder": "폴더 찾아보기", + "Unlimited": "무제한", + "NoLimit": "No limit", + "Hide": "숨김", + "HeaderKeepWatching": "계속 보기", + "HeaderNextEpisode": "다음 에피소드 재생", + "AudioBitDepthNotSupported": "오디오 비트레이트가 지원되지 않습니다.", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "비디오 프로필이 지원되지 않습니다.", + "VideoFramerateNotSupported": "비디오 프레임레이트가 지원되지 않습니다.", + "VideoBitDepthNotSupported": "비디오 비트심도가 지원되지 않습니다.", + "RefFramesNotSupported": "비디오 참조 프레임 수가 지원되지 않습니다.", + "ErrorConnectServerUnreachable": "요청하신 작업을 하는 중에 오류가 발생했습니다. 당신의 서버가 Emby Connect 서버 {0}에 접속할 수 없습니다. 인터넷에 연결되어 있는지 확인하시고 파이어월과 사용하시는 보안 프로그램에서 통신이 허용되어있는지 확인하세요.", + "HeaderStopRecording": "녹화 중지", + "ManageRecording": "녹화된 파일 관리", + "LabelDropImageHere": "이미지를 끌어다 놓으시거나 탐색을 클릭하세요.", + "MessageFileReadError": "이 파일을 읽는 데 오류가 발생하였습니다. 다시 시도하세요.", + "Browse": "탐색", + "HeaderUploadImage": "이미지 업로드", + "HeaderAddUpdateImage": "추가/업로드 이미지", + "HeaderShowFields": "필드 보이기", + "LabelView": "보기 :", + "LabelImageType": "이미지 형식:", + "Upload": "업로드", + "Primary": "기본적인", + "PrimaryImageBlur": "기본 이미지에 블러 처리", + "Art": "예술", + "Backdrop": "배경", + "Banner": "배너", + "Box": "박스", + "BoxRear": "박스 (뒷면)", + "Disc": "디스크", + "Logo": "로고", + "LogoDark": "로고 (다크 버전)", + "LogoLight": "로고 (라이트 버전)", + "LogoLightColor": "로고 (색이 있는 라이트 버전)", + "Menu": "메뉴", + "Screenshot": "스크린샷", + "Thumb": "썸네일", + "HeaderAudioSettings": "오디오 설정", + "LabelAudioLanguagePreference": "선호하는 오디오 언어:", + "LabelPlayDefaultAudioTrack": "언어에 상관없이 기본 오디오 트랙 재생", + "HeaderVideoQuality": "비디오 품질", + "CinemaModeConfigurationHelp": "극장 모드는 본 영화 전에 예고편과 소개 영상등을 재생하여 을 사용자의 거실에서 극장의 경험을 제공합니다.", + "ShowUpNextPreview": "다음 미리보기 표시", + "ShowUpNextPreviewHelp": "현재 항목의 끝 부분에 다음 항목에 대한 정보를 표시합니다.", + "PlayNextEpisodeAutomatically": "자동으로 다음 에피소드 재생", + "LabelMaxChromecastBitrate": "크롬캐스트 스트리밍 품질:", + "LabelSkipBackLength": "되감기 시간:", + "LabelSkipForwardLength": "빨리감기 시간:", + "EnableCinemaMode": "극장 모드 사용", + "LabelInternetQuality": "인터넷 품질:", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "음악 품질", + "LabelHomeNetworkQuality": "홈 네트워크 품질:", + "HeaderLatestMedia": "최근 미디어", + "HeaderRestartingEmbyServer": "Emby 서버 재시작", + "RestartPleaseWaitMessage": "Emby 서버가 종료될 때 까지 기다렸다가 재시작 하기. 이 설정은 1~2분 정도 소요될 수 있습니다.", + "HeaderPlayNext": "다음 재생", + "AutoBasedOnLanguageSetting": "자동 (디바이스의 설정에 따라)", + "SameAsMainTheme": "메인 테마와 동일하게", + "LabelDateTimeLocale": "날짜/시간 지역:", + "Genre": "장르", + "DirectorValue": "감독: {0}", + "DirectorsValue": "감독: {0}", + "GenreValue": "장르: {0}", + "GenresValue": "장르: {0}", + "TagsValue": "태그: {0}", + "Off": "끄기", + "Title": "제목", + "Year": "연도", + "Filter": "필터", + "Filters": "필터", + "Unplayed": "재생안함", + "LabelTVHomeScreen": "TV 모드 홈 화면:", + "Horizontal": "수평", + "Vertical": "수직", + "HeaderGroupBy": "그룹화 기준", + "HeaderMediaType": "미디어 유형", + "GroupBySeries": "시리즈별로 모으기", + "HeaderVideoType": "비디오 타입", + "HeaderSeriesStatus": "시리즈 상태", + "Features": "특징", + "Trailers": "예고편", + "Extras": "기타", + "ThemeSongs": "테마 음악", + "ThemeVideos": "테마 비디오", + "HeaderFavoriteMovies": "좋아하는 영화", + "HeaderFavoritePhotos": "좋아하는 사진", + "HeaderFavoriteShows": "좋아하는 쇼", + "HeaderFavoriteEpisodes": "좋아하는 에피소드", + "HeaderFavoriteVideos": "좋아하는 비디오", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "좋아하는 게임", + "HeaderFavoriteArtists": "좋아하는 아티스트", + "HeaderFavoriteAlbums": "좋아하는 앨범", + "HeaderFavoriteSongs": "좋아하는 노래", + "HeaderFavoriteAuthors": "좋아하는 작가", + "HeaderFavoriteAudioBooks": "좋아하는 오디오북", + "Ascending": "오름차순", + "Descending": "내림차순", + "HeaderColorPrimaries": "컬러 프라이머리", + "HeaderColorSpace": "컬러 스페이스", + "HeaderColorTransfer": "색상 변환", + "HeaderVideoRange": "비디오 레인지", + "SeriesDisplayOrderHelp": "에피소드를 방영일, DVD 주문일, 숫자순으로 주문", + "LabelVerticalPositionFromBottom": "수직 위치 (바닥에서 부터):", + "HeaderFavoritePeople": "좋아하는 사람", + "MultiSelect": "다중 선택", + "HeaderSignOut": "로그아웃", + "HeaderSelectServer": "서버 선택", + "HeaderChangeServer": "서버 변경", + "HeaderChangeUser": "사용자 변경", + "HeaderAppSettings": "앱 설정", + "HeaderLoginSettings": "로그인 설정", + "LabelRememberLogin": "로그인 정보 기억:", + "LabelAutomaticallySignOut": "자동으로 로그아웃:", + "BetaTesterMessage": "Emby 베타 테스터가 되어주셔서 감사합니다! {0}의 Emby 테스트 커뮤니티{1}에 의견을 남겨주세요.", + "HardwareAccelerated": "하드웨어 가속", + "Software": "소프트웨어", + "Metadata": "메타데이터", + "HeaderMediaInfo": "미디어 정보", + "Locked": "잠김", + "HeaderSplitVersionsApart": "분활 버전 제외", + "Any": "상관 없음", + "Admin": "관리자", + "HeaderReadMore": "더 읽기", + "CustomRatingHelp": "커스텀 등급은 자녀 보호를 위해 사용되지만 보여지지 않습니다. 자녀 보호 등급은 계속 보여집니다.", + "KeepUpToHelp": "제한 이상의 녹화 파일은 다음 녹화 시작시 오래된 순으로 삭제됩니다.", + "NoItemsMatchingFound": "검색어와 일치하는 품목을 찾을 수 없습니다.", + "TwoSearchCharsRequired": "두 자 이상을 입력하세요.", + "PreventPlaybackContinuing": "주기적으로 사용자 입력을 요청하는 메시지를 표시하여 재생이 무한정 계속되는 것을 방지합니다.", + "PromptStillWatching": "'아직 시청 중 이신가요?' 라고 묻기", + "HeaderMissingMetadata": "누락된 메타데이터", + "HeaderIncludedIn": "목록", + "EmbyConnectUserAlreadyLinked": "Emby Connect 사용자가 이미 이 서버의 다른 사용자와 연결되어 있습니다.", + "VideoFilesWillBeConvertedTo": "변환된 비디오가 {0}으로 저장될 것입니다.", + "VideoWillBeConvertedTo": "비디오 스트림이 이미 {0}이고 변환 옵션에 맞는 경우 비디오 스트림이 {0}으로 변환되거나 원본 파일에서 복사됩니다.", + "VideoWillBeConvertedToOrCopied": "비디오 스트림이 {0}으로 변환되거나 {1} 중 하나일 경우 원본 파일에서 복사되며 품질은 변환 옵션 내에 포함됩니다.", + "AudioWillBeConvertedTo": "오디오오 스트림이 이미 {0}이고 변환 옵션에 맞는 경우 오디오 스트림이 {0}으로 변환되거나 원본 파일에서 복사됩니다.", + "AudioWillBeConvertedToOrCopied": "오디오 스트림이 {0}으로 변환되거나 {1} 중 하나일 경우 원본 파일에서 복사되며 품질은 변환 옵션 내에 포함됩니다.", + "HeaderSpecialKeys": "특수 키", + "FollowingSpecialKeys": "대부분의 키보드 및 리모컨에서 지원되는 특수 키:", + "HeaderDeleteSeries": "시리즈 삭제", + "HeaderDeleteLastPlayedEpisode": "최근 재생한 에피소드 삭제", + "HeaderConnectingToServer": "서버 접속중", + "ServerNameValue": "서버 이름: {0}", + "DomainValue": "도메인: {0}", + "RatedValue": "{0} 등급", + "LocalServerRedirectMessage": "이제 연결하도록 선택한 서버의 관리자가 소유하고 운영하는 도메인으로 리디렉션됩니다:", + "AllMediaOwnedHosted": "{0}의 소유자가 모든 미디어를 호스팅하고 관리합니다.", + "EnableResolutionSwitching": "비디오 해상도 일치", + "EnableResolutionSwitchingHelp": "Emby가 재생을 시작하기 전에 동영상이 인코딩된 것과 동일한 값으로 해상도를 변경할 수 있습니다. 이렇게 하면 잘 맞지 않는 동영상을 재생할 때 나타날 수 있는 끊김 현상이나 버벅거림을 최소화할 수 있습니다.", + "EnableDisplayRefreshRateSwitching": "디스플레이 새로 고침 빈도 전환 사용", + "EnableDisplayRefreshRateSwitchingHelp": "Emby가 재생을 시작하기 전에 비디오가 인코딩된 프레임 속도와 동일한 값(또는 그 배수)으로 디스플레이 재생률을 변경할 수 있도록 합니다. 이렇게 하면 잘 맞지 않는 동영상을 재생할 때 나타날 수 있는 끊김이나 버벅거림을 최소화하는 데 도움이 될 수 있습니다.", + "RememberSelectedAudioTracks": "오디오 트랙 선택 사항 기억", + "RememberSelectedSubtitleTracks": "자막 트랙 선택 항목 기억", + "RememberSelectedSubtitleTracksHelp": "자막 트랙 선택은 각각의 비디오로 기억되며 동일한 비디오를 다시 재생할 때 다시 적용됩니다.", + "RememberSelectedAudioTracksHelp": "오디오 트랙 선택은 각각의 비디오로 기억되며 동일한 비디오를 다시 재생할 때 다시 적용됩니다.", + "ClearSavedTrackSelections": "저장된 트랙 선택 항목 지우기", + "HeaderClearTrackSelections": "저장된 트랙 선택 항목 지우기", + "QuestionClearSavedTracks": "저장된 트랙 선택을 모두 지우시겠습니까?", + "LabelChannelTags": "채널 태그:", + "AfterThisPlaysConfirmation": "재생이 끝난 후 이전에 대기한 음악을 계속 재생하시겠습니까 아니면 지우시겠습니까?", + "Keep": "보관", + "Clear": "지우기", + "HeaderClearFilters": "필터 지우기", + "HeaderSearchForImages": "이미지 검색", + "HeaderSearchNewImage": "새로운 이미지 검색", + "HeaderSearchForAnImage": "이미지 검색", + "DragDropToReorder": "재정렬을 위해 드래그 드랍", + "HeaderAddImageFromUrl": "URL에서 이미지 추가", + "HeaderSetImageFromUrl": "URL에서 이미지 설정", + "LabelUrl": "URL:", + "LabelChannelNumber": "채널번호:", + "LabelGuideDataChannel": "편성표 제공자:", + "GuideDataSource": "가이드 데이터 소스", + "HeaderCopyToClipboard": "클립보드에 복사", + "TimeRemainingValue": "{0} 남음", + "LabelResumeRewindSeconds": "재개 시, 자동으로 되감기", + "ResumeRewindSecondsHelp": "이것은 재생을 처음 시작할 때의 위치를 기억하는 데 도움이 됩니다. 재생 중 각각의 일시 정지 위치에는 적용되지 않습니다.", + "HeaderSavePlayQueueToPlaylist": "재생목록에 재생 대기열 저장", + "EnableLogoImagesAsTitle": "상세 정보에서 로고 이미지를 제목으로 표시", + "EnableLogoImagesAsTitleHelp": "로고 이미지가 사용 가능한 경우에 비디오, 시리즈 및 기타 상세 정보에서 글자로 된 제목 대신 사용됩니다. 로고 이미지를 사용할 수 없는 경우는 글자로 된 제목이 사용됩니다.", + "LabelNowPlayingAudioBackgroundStyle": "현재 재생중인 음악 배경 스타일:", + "LabelNowPlayingVideoBackgroundStyle": "현재 재생중인 영상 배경 스타일:", + "NowPlayingVideoBackgroundStyleHelp": "다른 장치에서 비디오 재생을 원격 제어할 때 배경 스타일을 결정합니다.", + "Rotation": "회전", + "Minutes": "분", + "LabelMaxRecordingLength": "최대 녹화 길이:", + "MaxRecordingLengthHelp": "방송 시간과 관계없이 녹화를 지정된 시간으로 제한합니다. 제한이 없으면 0으로 설정합니다.", + "RemoteWAN": "원격(WAN) 주소", + "HeaderLastConnectedTo": "마지막 연결 대상", + "Version": "버전", + "Keyword": "키워드", + "HeaderServerAddress": "서버 주소", + "HeaderSkipIntro": "인트로 건너뛰기", + "HeaderCreateRecording": "녹화 만들기", + "HeaderAddRecording": "녹화 추가하기", + "HeaderChannelAndTime": "채널 및 시간", + "LabelRecordProgramOrSeriesFrom": "다음에서 프로그램 또는 시리즈를 녹화합니다:", + "LabelStartTime": "시작 시간:", + "LabelEndTime": "종료 시간:", + "LabelFrequency": "빈도:", + "Recurring": "반복", + "Once": "한번", + "Start": "시작", + "Unpause": "일시 중지 해제", + "LabelIntroSkipMode": "인트로 건너뛰기:", + "ShowSkipIntroButton": "'인트로 건너뛰기' 버튼 표시", + "AutoSkipIntro": "자동으로 인트로 건너뛰기", + "DisplayRatingInformationOnVideoPlaybackStart": "동영상 재생 시작 시 등급 정보 표시", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "비디오 재생이 시작되면 등급 정보가 잠시 표시됩니다.", + "IntroSkipModeHelp": "'인트로 건너뛰기' 버튼을 표시하거나 인트로 마커를 감지한 에피소드의 인트로를 자동으로 건너뜁니다. 라이브러리 옵션에서 '인트로 비디오 마커 생성' 을 활성화해야 합니다.", + "EnableHomeScreenFocusPreview": "선택한 항목의 자세한 미리보기를 표시하는 홈 화면의 레이아웃 사용", + "EnableHomeScreenFocusPreviewHelp": "홈 화면에 다양한 미디어 유형이 혼합되어 있으면 제대로 작동하지 않을 수 있습니다.", + "LabelHideMediaTransportButtons": "동영상 플레이어 전송 버튼 숨기기:", + "HideMediaTransportButtonsHelp": "빨리감기, 되감기, 일시 중지와 같은 기본 전송 버튼을 숨겨 더 간단한 화면 재생 인터페이스를 만듭니다. 화살표 키와 Enter 키로 이러한 기능을 계속 사용할 수 있습니다. 자동은 마우스 사용이 감지되지 않으면 전송 버튼을 숨깁니다.", + "ImageSizeHelp": "원하는 이미지 크기를 설정합니다.", + "LabelImageSize": "이미지 크기:", + "ThisImageIsOnlyPreview": "이 이미지는 메타데이터 검색 엔진에서 가져온 미리보기일 뿐입니다. Emby 서버가 다운로드하는 실제 이미지는 다를 수 있으며 Emby 라이브러리 설정에서 구성한 옵션에 따라 달라집니다.", + "ResultsRangeValue": "{2} 중 {0} 에서 {1} 까지", + "NotificationsDescription": "Emby 서버에서 중요한 이벤트에 대한 정보를 유지하도록 알림을 설정하십시오.", + "DeleteEmbyConnectAccount": "Emby Connect 계정 삭제", + "DeleteEmbyConnectAccountHelp": "Emby Connect 계정을 삭제하려면 {0} Emby 커뮤니티 {1} 에 {2} 에서 로그인하세요 . 로그인한 후 오른쪽 상단에서 사용자 이름을 클릭하고 계정 설정을 클릭한 다음 내 계정 삭제를 클릭하세요.", + "KeepPlayingInBackground": "백그라운드에서 계속 재생", + "LabelVideoBackBehavior": "비디오 플레이어 뒤로 버튼 동작:", + "HeaderViewLyrics": "가사 보기", + "HeaderViewMissingEpisodes": "누락된 에피소드 보기", + "HeaderMissingEpisodes": "누락된 에피소드", + "HeaderManageAccess": "액세스 관리", + "HeaderManageCollaboration": "협업 관리", + "HeaderLeaveCollaboration": "협업에서 나가기", + "HeaderRemoveFromLibrary": "라이브러리에서 제거", + "RemoveSharedItemConfirmation": "라이브러리에서 이 항목을 삭제하시겠습니까? 다시 가져오려면 소유자가 다시 액세스 권한을 부여해야 합니다.", + "SubtitlesDownloaded": "자막 다운로드", + "HeaderMakePrivate": "비공개로 설정", + "HeaderMakePublic": "공개로 설정", + "MakePublicDescription": "모든 사용자가 이 항목을 볼 수 있습니다. 사용자는 편집 권한을 부여받을 수 있습니다.", + "MakePrivateDescription": "사용자에게 개별적으로 접근 권한을 부여할 수도 있습니다.", + "Private": "비공개", + "Public": "공개", + "Collaborative": "협업 가능한", + "PreferredShowDisplay": "TV 쇼의 시즌 표시 방식", + "ShowAllEpisodesAllSeasons": "모든 시즌의 에피소드를 함께 표시", + "ShowAllEpisodesSingleSeason": "단일 시즌일 때만 폴더 없이 에피소드 표시", + "ShowSeasonFolders": "각각 시즌별로 폴더 표시", + "HeaderAddAgain": "다시 추가", + "UpNext": "다음 재생", + "ItemsAlreadyInPlaylist": "일부 항목이 이미 재생 목록에 있습니다.", + "ItemAlreadyInPlaylist": "이 항목은 이미 재생 목록에 있습니다.", + "HeaderPlayChannel": "채널 재생", + "LabelScreenOrientationDuringVideo": "비디오 재생 중 화면 방향", + "UseDeviceSetting": "디바이스 설정 사용", + "LockToLandscape": "가로 고정", + "UsernameForFolderHelp": "네트워크에서 이 폴더에 접근하기 위해 필요한 사용자 이름 (해당되는 경우).", + "PasswordForFolderHelp": "네트워크에서 이 폴더에 접근하기 위해 필요한 비밀번호 (해당되는 경우).", + "ShowMediaInfoOnDetailScreens": "항목 상세 정보의 화면 하단에 오디오, 비디오, 자막 등 표시", + "ForgotPasswordNoUserFound": "입력한 이름으로 사용자를 찾을 수 없습니다. 다시 시도하거나 이름을 비워 두어 이 서버의 모든 사용자에 대한 비밀번호를 재설정하세요.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "보라색", + "RecentlyReleasedMovies": "최근 출시된 영화", + "RecentlyReleasedEpisodes": "최근 추가된 에피소드", + "DolbyProfile": "돌비 프로필", + "IpAddress": "IP 주소", + "VideoType": "비디오 타입", + "HidePlayedMediaFrom": "재생된 미디어를 다음으로부터 숨기기", + "BottomEdgePosition": "하단 가장자리 위치", + "VerticalPositionFromBottomScreen": "자막의 수직 위치를 화면 하단을 기준으로 설정합니다.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "자막 위치", + "TitleProfilePin": "프로필 PIN", + "ProfilePinConfirm": "프로필 PIN (확인)", + "SaveProfilePin": "PIN 저장", + "ProfilePinDescription": "이미 로그인한 장치에서 Emby 앱으로 돌아올 때마다 입력하라는 메시지를 표시하는 선택적 PIN을 만듭니다. 여러 사용자가 장치를 공유하는 경우 유용합니다. 필요에 따라 각 장치에서 선택적으로 활성화하도록 선택할 수 있습니다.", + "TitleNewEpisodes": "새로운 에피소드", + "EnterYourPinToContinue": "계속하려면 PIN 코드를 입력하세요.", + "YourPinMustBe": "PIN 코드는 {0}자리 숫자여야 합니다.", + "ForgotPin": "PIN 코드를 분실하셨나요?", + "RequireEnteringPinToReturn": "이 앱으로 돌아올 때마다 내 프로필 PIN을 입력해야 합니다.", + "RequireEnteringPinToReturnQuestion": "이 앱으로 돌아올 때마다 프로필 PIN을 묻는 메시지를 표시할까요? 여러 사용자가 이 장치를 공유하는 경우 프로필 PIN을 사용해 다른 사용자가 귀하의 데이터에 액세스하는 것을 방지할 수 있습니다.", + "RequireEnteringPinToReturnHelp": "여러 사용자가 이 장치를 공유하는 경우 유용합니다.", + "WrongPinPleaseTryAgain": "잘못된 PIN 코드입니다. 다시 시도해 주세요.", + "ProfilePinIsOn": "현재 프로필 PIN이 사용 설정되어 있습니다.", + "IfTryingToConnectToHttp": "HTTP 주소를 사용하여 Emby 서버에 연결하려고 할 때, 브라우저에서 HTTPS 요구 사항 때문에 이를 허용하지 않을 수 있습니다. 다음 방법 중 하나를 시도해 보세요:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "{0}에 로그인", + "About": "정보", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "상세 화면", + "LabelGenreDisplayLimit": "장르 표시 개수 제한", + "GenreDisplayLimitHelp": "항목 상세 정보의 화면 상단에 표시되는 장르 개수를 제한합니다.", + "GenreDisplayLimitForListsHelp": "재생목록, 컬렉션, 아티스트 상세 정보의 화면 상단에 표시되는 장르 개수를 제한합니다.", + "LabelGenreDisplayLimitForLists": "목록에 장르 표시 개수 제한", + "ShowPosterOnDetails": "상세 화면에 포스터 표시", + "ShowPosterOnDetailsHelp": "영상 상세 화면에 포스터를 표시하거나, 숨겨서 배경이 강조되는 미니멀한 룩으로 설정할 수 있습니다. 이 설정은 작은 화면 레이아웃에서는 사용되지 않습니다. 일부 항목 유형은 이 설정을 무시합니다.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "슬라이드당 사진 슬라이드쇼 시간", + "TVChannelImageEditorHelp": "여러 로고 버전이 지원됩니다. Emby 앱은 현재 테마에 따라 적절한 로고를 자동으로 선택합니다.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "테마 음악 볼륨", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "ForgetThisServer": "Forget This Server", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/lt.json b/modules/common/strings/lt.json new file mode 100644 index 0000000..6d52ed6 --- /dev/null +++ b/modules/common/strings/lt.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby skirtas padėti tvarkyti jūsų asmeninę biblioteką - nuotraukas, namų filmus ir panašiai. Prašome peržiūrėti {0}naudojimo sąlygas{1}. Bet koks Emby programinės įrangos naudojimas reiškia sutikimą su šiomis sąlygomis.", + "MessageUnableToConnectToServer": "Nepavyko susijungti su pasirinktu serveriu. Patikrinkite, ar jis veikia ir bandykite dar kartą.", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server.", + "HeaderSignInWithConnect": "Prisijungti naudojant Emby Connect", + "HeaderWelcomeToEmby": "Sveiki atvykę į Emby", + "HeaderNewUsers": "Nauji vartotojai", + "HeaderPleaseSignIn": "Prašome prisijungti", + "MessageInvalidUser": "Neteisingas vartotojo vardas arba slaptažodis. Bandykite dar kartą.", + "MessageUnlockAppWithPurchaseOrSupporter": "Atrakinkite šią funkciją nedideliu vienkartiniu mokesčiu arba įsigiję Emby Premiere prenumeratą.", + "MessageUnlockAppWithSupporter": "Atrakinkite šią funkciją įsigiję Emby Premiere prenumeratą.", + "MessageToValidateSupporter": "Jei turite aktyvią Emby Premiere prenumeratą, sutvarkykite Emby Premiere savo Emby Serverio skydelyje. Tai galite atlikti paspaudė Emby Premiere užrašą pagrindiniame meniu.", + "ValueSpecialEpisodeName": "Ypatinga - {0}", + "HeaderSignIn": "Prisijungti", + "Share": "Dalintis", + "Shared": "Shared", + "Info": "Info", + "Add": "Pridėti", + "Speed": "Greitis", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Skyriai", + "Password": "Slaptažodis", + "SavePassword": "Save Password", + "LabelPassword": "Slaptažodis:", + "HeaderResetPassword": "Atstatyti slaptažodį", + "Series": "Laidos", + "Preview": "Peržiūra", + "Submit": "Pateikti", + "Never": "Niekada", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Geriausi rezultatai", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Suskleisti", + "LabelBackgroundVideoPlayback": "Video atkūrimas fone:", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Visada įjungta", + "HeadphonesOrExternalSpeakersConnected": "Ausinės arba išorinis garsiakalbis prijungtas", + "HeaderKeyboardAndRemote": "Klaviatūra arba pultelis", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Upload only on Wifi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Password (confirm)", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Vartotojas:", + "HeaderAddServer": "Pridėti serverį", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Uždaryti", + "HeaderSeeAll": "Peržiūrėti visus", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "El. paštas:", + "LabelHost": "Adresas:", + "LabelHostHelp": "192.168.1.100 arba https://myserver.com", + "LabelPort": "Portas:", + "Disabled": "Išjungta", + "Uninstall": "Ištrinti", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Kitas: {0}", + "HeaderNextItem": "Kitas elementas", + "HeaderPreviousItem": "Praeitas elementas", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Ar dar žiūrite?", + "LabelCurrentPassword": "Dabartinis slaptažodis:", + "LabelNewPassword": "Naujas slaptažodis:", + "LabelNewPasswordConfirm": "Naujas slaptažodis (pakartokite):", + "HeaderRemovePassword": "Pašalinti slaptažodį", + "ServerUpdateNeeded": "Šį Emby serverį reikia atnaujinti. Naujausią versiją atsisiųsti galite {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Prisijungti prie serverio", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account.", + "HeaderSignInError": "Prisijungimo klaida", + "HeaderManualLogin": "Rankinis prisijungimas", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "Naujas", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premiera", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Tiesiogiai", + "Reset": "Reset", + "Repeat": "Kartojimas", + "Track": "Track", + "Tracks": "Dainos", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} dainų", + "ItemCount": "{0} elementų", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Naujausia muzika", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Naujausi atsisiųsti video", + "HeaderRecentlyPlayed": "Neseniai paleista", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Dažnai paleidžiami", + "HeaderMoreLikeThis": "Daugiau kaip šis", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "OriginalAirDateValue": "Pirmo eterio data: {0}", + "EndsAtValue": "Baigiasi {0}", + "Date": "Date", + "AirDate": "Eterio data", + "Played": "Rodyta", + "Daily": "Kasdienis", + "Weekly": "Weekly", + "RequireHashMatch": "Reikalaujamas maišos atitikimas", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Last Episode Date Added", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Garsas", + "Video": "Video", + "Subtitle": "Subtitrai", + "Image": "Paveikslas", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Garso kodekas:", + "LabelAudioLanguage": "Garso kalba:", + "LabelSubtitleLanguage": "Subtitrų kalba:", + "LabelVideoCodec": "Video kodekas:", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Tėvų reitingas:", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Because you watched {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Pakvietimai", + "ActorAsRole": "as {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "User", + "Access": "Access", + "Users": "Vartotojai", + "Library": "Biblioteka", + "Devices": "Įrenginiai", + "Cancel": "Atšaukti", + "Restart": "Perkrauti", + "Shutdown": "Išjungti", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Systems", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Supratau", + "RememberMe": "Remember me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Manage Emby Server", + "ShutdownServer": "Shutdown Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Įrašas atšauktas.", + "SeriesCancelled": "Laida atšaukta.", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Įrašas numatytas.", + "SeriesRecordingScheduled": "Laidos įrašas numatytas.", + "HeaderNewRecording": "Naujas įrašas", + "HeaderWakeServer": "Wake Server", + "AttemptingWakeServer": "Attempting to wake server. Please wait...", + "WakeServerSuccess": "Success!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine.", + "Days": "Dienos", + "Network": "Network", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Kinoteatro režimas", + "Conversions": "Conversions", + "Downloads": "Atsiuntimai", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Išplėsti", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Vietinė medija", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Atsisiųsti mediją į savo įrenginius lengvai prieigai be interneto.", + "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.", + "CinemaModeFeatureDescription": "Kinoteatro režimas papildomai rodo anonsus ir kitą medžiagą prieš filmą.", + "HeaderFreeApps": "Nemokamos Emby Apps", + "FreeAppsFeatureDescription": "Gaukite nemokamas Emby programėles savo įrenginiams.", + "HeaderBecomeProjectSupporter": "Gauti Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "Šiai funkcijai reikia aktyvios Emby Serverio prenumeratos.", + "HeaderConvertYourRecordings": "Konvertuokite savo įrašus", + "Record": "Įrašyti", + "Save": "Saugoti", + "Edit": "Redaguoti", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Siųstis", + "Downloaded": "Downloaded", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloading", + "Advanced": "Smulkiau", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Ištrinti", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Ištrinti elementą", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Tai atlikus elementas bus ištrintas ir iš bibliotekos, ir iš failų sistemos. Ar tikrai norite tęsti?", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Atnaujinti", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Pridėti į Kolekciją", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Padėti", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Display language", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", + "NewCollectionHelp": "Kolekcijos leidžia grupuoti filmus ir kitą bibliotekos turinį.", + "SearchForCollectionInternetMetadata": "Ieškoti internete iliustracijų ir metaduomenų", + "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", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Pavadinimas:", + "NewCollectionNameExample": "Pavyzdys: Star Wars kolekcija", + "MessageItemsAdded": "Elementai pridėti.", + "OptionNew": "Naujas...", + "LabelPlaylist": "Grojaraštis:", + "AddToPlaylist": "Pridėti į grojaraštį", + "HeaderAddToPlaylist": "Pridėti į Grojaraštį", + "Subtitles": "Subtitrai", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Ieškoti subtitrų", + "LabelLanguage": "Kalba:", + "Search": "Ieškoti", + "NoSubtitleSearchResultsFound": "Nieko neradau.", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "Failas", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Ar tikrai norite ištrinti šį subtitrų failą?", + "ConfirmDeletion": "Patvirtinti trynimą", + "MySubtitles": "Mano subtitrai", + "MessageDownloadQueued": "Siuntimas užsakytas.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Atrakinti gidą", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Pakeisti esamus paveikslus", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "Pakeisti visus metaduomenis", + "SearchForMissingMetadata": "Ieškoti trūkstamų metaduomenų", + "LabelRefreshMode": "Atnaujinimo režimas:", + "NoItemsFound": "Nieko nerasta.", + "HeaderSaySomethingLike": "Pasakykite maždaug...", + "ButtonTryAgain": "Bandyti dar", + "HeaderYouSaid": "Jūs pasakėte:", + "MessageWeDidntRecognizeCommand": "Deja, nepažinome šios komandos.", + "MessageIfYouBlockedVoice": "Jei neleidote programėlei naudoti mikrofono, pakeiskite nustatymus ir bandykite dar kartą.", + "ValueDiscNumber": "Diskas {0}", + "Unrated": "Nevertinta", + "Favorite": "Mėgstamas", + "Like": "Patinka", + "Dislike": "Nepatinka", + "RefreshDialogHelp": "Metaduomenys atnaujinami pagal Emby Serverio nustatymus ir įjungtas interneto paslaugas.", + "Open": "Atidaryti", + "Play": "Leisti", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Atsitiktinai", + "Identify": "Identifikuoti", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Convert", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Į eilę", + "QueueAllFromHere": "Į eilę viską nuo čia", + "PlayAllFromHere": "Leisti viską nuo čia", + "PlayFromBeginning": "Leisti nuo pradžių", + "FromBeginning": "From Beginning", + "ResumeAt": "Tęsti nuo {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sort", + "Trailer": "Anonsas", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Pasirinkite bent du elementus.", + "HeaderConfirmRecordingCancellation": "Patvirtinti įrašo atšaukimą", + "MessageConfirmRecordingCancellation": "Ar tikrai norite atšaukti šį įrašą?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Klaida", + "VoiceInput": "Balso komandos", + "LabelContentType": "Turinio tipas:", + "LabelPath": "Kelias:", + "Playlists": "Playlists", + "LabelTitle": "Pavadinimas:", + "LabelOriginalTitle": "Originalus pavadinimas:", + "LabelSortTitle": "Rūšiavimo pavadinimas:", + "LabelDateAdded": "Pridėjimo data:", + "DateAdded": "Date Added", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Pakeisti, kaip nustatoma pridėjimo data galima Emby Serveryje prie Bibliotekos nustatymų", + "LabelStatus": "Būklė:", + "LabelArtistsHelp": "Atskirti kelis naudojant:", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Albumo atlikėjai:", + "LabelAlbum": "Albumas:", + "Artist": "Artist", + "Artists": "Artists", + "ImdbRating": "IMDb Rating", + "CommunityRating": "Community Rating", + "LabelCommunityRating": "Bendruomenės vertinimas:", + "LabelCriticRating": "Kritikų vertinimas:", + "CriticRating": "Critic Rating", + "LabelWebsite": "Tinklapis:", + "Tagline": "Tagline", + "LabelOverview": "Apžvalga:", + "LabelShortOverview": "Trumpa apžvalga:", + "LabelReleaseDate": "Išleidimo data:", + "LabelPlaceOfBirth": "Gimimo vieta:", + "Aired": "Aired", + "LabelAirDays": "Eterio dienos:", + "LabelAirTime": "Eterio laikas:", + "LabelRuntimeMinutes": "Trukmė (min.):", + "LabelCustomRating": "Kitoks vertinimas:", + "LabelOriginalAspectRatio": "Originalus formatas:", + "Label3DFormat": "3D formatas:", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Ypatingos serijos info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Rodoma po sezono:", + "LabelAirsBeforeEpisode": "Rodoma prieš seriją:", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Rodymo nustatymai", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Rodymo tvarka:", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Šalys", + "Genres": "Žanrai", + "Studios": "Studijos", + "Tags": "Žymės", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Metaduomenų nustatymai", + "People": "Žmonės", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Pageidaujama siuntimo kalba:", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Uždrausti šio elemento pakeitimus", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Palikite tuščią kad paveldėtų nustatymus nuo tėviško elemento arba globalias standartines reikšmes.", + "LabelCountry": "Šalis:", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} ID:", + "LabelBirthYear": "Gimimo metai:", + "LabelBirthDate": "Gimimo data:", + "LabelDeathDate": "Mirties data:", + "LabelEndDate": "Pabaigos data:", + "LabelSeasonNumber": "Sezono numeris:", + "LabelEpisodeNumber": "Serijos numeris:", + "LabelTrackNumber": "Dainos numeris:", + "LabelNumber": "Numeris:", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Rūšiavimo vardas", + "OriginalTitle": "Original Title", + "ReleaseDate": "Išleidimo data", + "Continuing": "Tęsiamas", + "Ended": "Pasibaigė", + "HeaderEnabledFields": "Įjungti laukeliai", + "HeaderEnabledFieldsHelp": "Nuimkite varnelę nuo lauko kad jį užrakinti ir neleisti keisti jo duomenų.", + "Backdrops": "Fonai", + "Images": "Paveiksliukai", + "Runtime": "Trukmė", + "ProductionLocations": "Filmavimo vietos", + "BirthLocation": "Gimimo vieta", + "ParentalRating": "Tėvų reitingas", + "PlayCount": "Play count", + "Name": "Vardas", + "Overview": "Apžvalga", + "LabelType": "Tipas:", + "LabelPersonRole": "Vaidmuo:", + "LabelPersonRoleHelp": "Pavyzdys: Ledų mašinos vairuotojas", + "Actor": "Aktorius", + "Composers": "Composers", + "Composer": "Kompozitorius", + "Director": "Režisierius", + "GuestStar": "Kviestinė žvaigždė", + "Producer": "Prodiuseris", + "Writer": "Rašytojas", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Įdiegiu {0}", + "PackageInstallCompleted": "{0} įdiegimas baigtas.", + "PackageInstallFailed": "{0} įdiegimas nepavyko.", + "PackageInstallCancelled": "{0} įdiegimas atšauktas.", + "SeriesYearToPresent": "{0} - dabar", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 serija", + "ValueEpisodeCount": "{0} serijų", + "Albums": "Albums", + "Song": "Song", + "Songs": "Songs", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Įveskite vieną ar daugiau paieškos kriterijų. Pašalinkite kriterijų jei norite gauti daugiau paieškos rezultatų.", + "PleaseEnterNameOrId": "Įveskite vardą arba išorinį ID.", + "MessageItemSaved": "Elementas išsaugotas.", + "SearchResults": "Paieškos rezultatai", + "ServerNameIsRestarting": "Emby Serveris - {0} leidžiamas iš naujo.", + "ServerNameIsShuttingDown": "Emby Serveris - {0} išsijungia.", + "HeaderDeleteItems": "Ištrinti elementus", + "ConfirmDeleteItems": "Tai atlikus šie elementai bus ištrinti ir iš bibliotekos, ir iš failų sistemos. Ar tikrai norite tęsti?", + "PleaseRestartServerName": "Prašau paleisti Emby Serverį iš naujo - {0}.", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Downloading...", + "LearnMore": "Sužinoti daugiau", + "LabelBitrateMbps": "Kokybė (Mbps):", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Elementų limitas:", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Ekrano nuotraukos", + "MoveRight": "Perkelti dešinėn", + "MoveLeft": "Perkelti kairėn", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Trinti paveikslą?", + "HeaderEditImages": "Redaguoti paveikslus", + "Settings": "Nustatymai", + "ShowIndicatorsFor": "Rodyti indikatorius:", + "Episodes": "Episodes", + "Programs": "Programs", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby DVR reikalauja aktyvios Emby Premiere prenumeratos.", + "HeaderCancelRecording": "Atšaukti įrašą", + "HeaderKeepRecording": "Palikti įrašą", + "HeaderCancelSeries": "Atšaukti laidą", + "HeaderKeepSeries": "Palikti laidą", + "HeaderLearnMore": "Sužinoti daugiau", + "SeriesSettings": "Laidų nustatymai", + "HeaderRecordingOptions": "Įrašymo nustatymai", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Laidų nustatymai", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Kanalas tik {0}", + "Anytime": "Bet kada", + "AnyLanguage": "Any language", + "AroundTime": "Maždaug {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "Visi kanalai", + "NewEpisodesOnly": "Tik naujas serijas", + "AllEpisodes": "Visas serijas", + "LabelStartWhenPossible": "Jei galima, pradėti:", + "LabelStopWhenPossible": "Jei galima, nutraukti:", + "MinutesBefore": "min. prieš", + "MinutesAfter": "min. po", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Kai įmanoma serijos bus lyginamos pagal sezonų ir serijų skaičius.", + "LabelKeepUpTo": "Spėti iki:", + "AsManyAsPossible": "Kiek tik įmanoma", + "DefaultErrorMessage": "Įvyko klaida vykdant užklausą. Pabandykite vėliau.", + "UntilIDelete": "Kol ištrinsiu", + "UntilSpaceNeeded": "Kol pritrūks vietos", + "Categories": "Kategorijos", + "Sports": "Sportas", + "News": "Naujienos", + "Movies": "Filmai", + "Music": "Music", + "Kids": "Vaikams", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Įjungti spalvotus fonus", + "SortChannelsBy": "Rūšiuoti kanalus pagal:", + "ChannelNumber": "Kanalo numeris", + "HeaderBenefitsEmbyPremiere": "Emby Premiere privalumai", + "ThankYouForTryingEnjoyOneMinute": "Išbandykite vieną minutę atkūrimo. Ačiū kad bandote Emby.", + "HeaderTryPlayback": "Bandomasis atkūrimas", + "HowDidYouPay": "Kaip sumokėjote?", + "IHaveEmbyPremiere": "Turiu Emby Premiere", + "IPurchasedThisApp": "Pirkau šią programėlę", + "ButtonRestorePreviousPurchase": "Atkurti pirkimą", + "ButtonUnlockWithPurchase": "Atrakinti perkant", + "ButtonUnlockPrice": "Atrakinti {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Atkurti vieną minutę", + "PlaceFavoriteChannelsAtBeginning": "Mėgstamiausius kanalus į pradžią", + "HeaderUnlockFeature": "Atrakinti funkciją", + "MessageDidYouKnowCinemaMode": "Ar žinote, kad su Emby Premiere gausite daugiau funkcijų, tokių kaip Kinoteatro režimas?", + "HeaderPlayMyMedia": "Atkurti mano mediją", + "HeaderDiscoverEmbyPremiere": "Atrasti Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Added {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Continue", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Quality", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "My Media", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "Latest {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continue Watching", + "HeaderContinueListening": "Continue Listening", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Latest Recordings", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Settings saved.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Favorites", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Favorite Collections", + "HeaderFavoritePlaylists": "Favorite Playlists", + "Collection": "Collection", + "Collections": "Collections", + "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.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Schedule", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "No subtitles", + "Default": "Default", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Subtitle Settings", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelTextSize": "Teksto dydis:", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "Hide": "Hide", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Naršyti", + "HeaderUploadImage": "Įkelti paveikslą", + "HeaderAddUpdateImage": "Pridėti/Atnaujinti paveikslą", + "HeaderShowFields": "Rodyti laukelius", + "LabelView": "Žiūrėti:", + "LabelImageType": "Image type", + "Upload": "Įkelti", + "Primary": "Pirminis", + "PrimaryImageBlur": "Primary image blur", + "Art": "Menas", + "Backdrop": "Fonas", + "Banner": "Juosta", + "Box": "Viršelis", + "BoxRear": "Box (Rear)", + "Disc": "Diskas", + "Logo": "Logotipas", + "LogoDark": "Logotipas (tamsus režimas)", + "LogoLight": "Logotipas (šviesus režimas)", + "LogoLightColor": "Logotipas (šviesus su spalva)", + "Menu": "Meniu", + "Screenshot": "Ekrano nuotrauka", + "Thumb": "Minipav.", + "HeaderAudioSettings": "Garso nustatymai", + "LabelAudioLanguagePreference": "Garso kalbos pageidavimas:", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Video kokybė", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Interneto kokybė", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Muzikos kokybė", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Naujausia medija", + "HeaderRestartingEmbyServer": "Perkrauti Emby serverį", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Leisti kita", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "Genre": "Žanras", + "DirectorValue": "Režisierius: {0}", + "DirectorsValue": "Režisieriai: {0}", + "GenreValue": "Žanras: {0}", + "GenresValue": "Žanrai: {0}", + "TagsValue": "Žymės: {0}", + "Off": "Išjungti", + "Title": "Pavadinimas", + "Year": "Metai", + "Filter": "Filter", + "Filters": "Filtrai", + "Unplayed": "Nepaleisti", + "LabelTVHomeScreen": "TV režimo pradinis langas:", + "Horizontal": "Horizontaliai", + "Vertical": "Vertikaliai", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Grupuoti laidas", + "HeaderVideoType": "Video tipas", + "HeaderSeriesStatus": "Serijos statusas", + "Features": "Funkcijos", + "Trailers": "Treileriai", + "Extras": "Priedai", + "ThemeSongs": "Teminės dainos", + "ThemeVideos": "Teminiai video", + "HeaderFavoriteMovies": "Mėgstamiausi filmai", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Mėgstamiausios laidos", + "HeaderFavoriteEpisodes": "Mėgstamiausios serijos", + "HeaderFavoriteVideos": "Mėgstamiausi video", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Mėgstamiausi žaidimai", + "HeaderFavoriteArtists": "Mėgstamiausi atlikėjai", + "HeaderFavoriteAlbums": "Mėgstamiausi albumai", + "HeaderFavoriteSongs": "Mėgstamiausios dainos", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Didėjančia", + "Descending": "Mažėjančia", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video rėžiai", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Mėgstamiausi žmonės", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Atsijungti", + "HeaderSelectServer": "Pasirinkti serverį", + "HeaderChangeServer": "Pakeisti serverį", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Prisijungimo nustatymai", + "LabelRememberLogin": "Atsiminti mane", + "LabelAutomaticallySignOut": "Automatiškai atjungti", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Užrakinta", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Bet koks", + "Admin": "Administratorius", + "HeaderReadMore": "Daugiau", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Jungiamasi prie serverio", + "ServerNameValue": "Serverio vardas: {0}", + "DomainValue": "Domenas: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Palikti", + "Clear": "Ištrinti", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Ieškoti nuotraukų", + "HeaderSearchNewImage": "Ieškoti naujų nuotraukų", + "HeaderSearchForAnImage": "Ieškoti nuotraukos", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url:", + "LabelChannelNumber": "Kanalo numeris:", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Nukopijuoti", + "TimeRemainingValue": "liko {0}", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/lv.json b/modules/common/strings/lv.json new file mode 100644 index 0000000..ba410e6 --- /dev/null +++ b/modules/common/strings/lv.json @@ -0,0 +1,1340 @@ +{ + "Close": "Close", + "Unrated": "Unrated", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "Hide": "Hide", + "Genre": "Genre", + "Duplicates": "Duplicates", + "EmbyLoginTerms": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our {0}terms of use{1}. The use of any Emby software constitutes acceptance of these terms.", + "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server.", + "HeaderSignInWithConnect": "Sign in with Emby Connect", + "HeaderWelcomeToEmby": "Welcome to Emby", + "HeaderNewUsers": "New Users", + "HeaderPleaseSignIn": "Please Sign In", + "MessageInvalidUser": "Invalid username or password. Please try again.", + "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.", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Sign In", + "Share": "Share", + "Shared": "Shared", + "Info": "Info", + "Add": "Add", + "Speed": "Speed", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapters", + "Password": "Password", + "SavePassword": "Save Password", + "LabelPassword": "Password", + "HeaderResetPassword": "Reset Password", + "Series": "Series", + "Preview": "Preview", + "Submit": "Submit", + "Never": "Never", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Top Results", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Always on", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Upload only on Wifi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Password (confirm)", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Username", + "HeaderAddServer": "Add Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "HeaderSeeAll": "See All", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "Email", + "LabelHost": "Host", + "LabelHostHelp": "Example: 192.168.1.100 or https://myserver.com", + "LabelPort": "Port", + "Disabled": "Disabled", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Are you still watching?", + "LabelCurrentPassword": "Current password", + "LabelNewPassword": "New password", + "LabelNewPasswordConfirm": "New password confirm", + "HeaderRemovePassword": "Remove Password", + "ServerUpdateNeeded": "This Emby Server needs to be updated. To download the latest version, please visit {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Connect to Server", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "New", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premiere", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Live", + "Reset": "Reset", + "Repeat": "Repeat", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} Tracks", + "ItemCount": "{0} Items", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Latest Music", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Recently Played", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Frequently Played", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "OriginalAirDateValue": "Original air date: {0}", + "EndsAtValue": "Ends at {0}", + "Date": "Date", + "AirDate": "Air Date", + "Played": "Played", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Last Episode Date Added", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio codec", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Parental rating", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Because you watched {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Invitations", + "ActorAsRole": "as {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "User", + "Access": "Access", + "Users": "Users", + "Library": "Library", + "Devices": "Devices", + "Cancel": "Cancel", + "Restart": "Restart", + "Shutdown": "Shutdown", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Systems", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Got It", + "RememberMe": "Remember me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Manage Emby Server", + "ShutdownServer": "Shutdown Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Recording Cancelled", + "SeriesCancelled": "Series Cancelled", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Recording Scheduled", + "SeriesRecordingScheduled": "Series Recording Scheduled", + "HeaderNewRecording": "New Recording", + "HeaderWakeServer": "Wake Server", + "AttemptingWakeServer": "Attempting to wake server. Please wait...", + "WakeServerSuccess": "Success!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine.", + "Days": "Days", + "Network": "Network", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Cinema Intros", + "Conversions": "Conversions", + "Downloads": "Downloads", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Offline Media", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", + "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.", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature.", + "HeaderFreeApps": "Free Emby Apps", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", + "HeaderBecomeProjectSupporter": "Get Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "This feature requires an active {0}Emby Premiere subscription{1}.", + "HeaderConvertYourRecordings": "Convert Your Recordings", + "Record": "Record", + "Save": "Save", + "Edit": "Edit", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Download", + "Downloaded": "Downloaded", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloading", + "Advanced": "Advanced", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Delete", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Delete Item", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library.", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Refresh", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Add to Collection", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Help", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "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", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Name", + "NewCollectionNameExample": "Example: Star Wars Collection", + "MessageItemsAdded": "Items added.", + "OptionNew": "New...", + "LabelPlaylist": "Playlist", + "AddToPlaylist": "Add to playlist", + "HeaderAddToPlaylist": "Add to Playlist", + "Subtitles": "Subtitles", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Search for Subtitles", + "LabelLanguage": "Language", + "Search": "Search", + "NoSubtitleSearchResultsFound": "No results found. Have you configured {0}subtitle downloading{1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "File", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "ConfirmDeletion": "Confirm Deletion", + "MySubtitles": "My Subtitles", + "MessageDownloadQueued": "Download queued.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Unlock Guide", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Replace existing images", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "ReplaceAllMetadata": "Replace all metadata", + "SearchForMissingMetadata": "Search for missing metadata", + "LabelRefreshMode": "Refresh mode", + "NoItemsFound": "No items found.", + "HeaderSaySomethingLike": "Say Something Like...", + "ButtonTryAgain": "Try Again", + "HeaderYouSaid": "You Said...", + "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "ValueDiscNumber": "Disc {0}", + "Favorite": "Favorite", + "Like": "Like", + "Dislike": "Dislike", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup.", + "Open": "Open", + "Play": "Play", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Shuffle", + "Identify": "Identify", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Convert", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Queue", + "QueueAllFromHere": "Queue all from here", + "PlayAllFromHere": "Play all from here", + "PlayFromBeginning": "Play From Beginning", + "FromBeginning": "From Beginning", + "ResumeAt": "Resume from {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sort", + "Trailer": "Trailer", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Error", + "VoiceInput": "Voice Input", + "LabelContentType": "Content type", + "LabelPath": "Path", + "Playlists": "Playlists", + "LabelTitle": "Title", + "LabelOriginalTitle": "Original title", + "LabelSortTitle": "Sort title", + "LabelDateAdded": "Date added", + "DateAdded": "Date Added", + "DateCreated": "Date Created", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Status", + "LabelArtistsHelp": "Separate multiple using ;", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Album artists", + "LabelAlbum": "Album", + "Artist": "Artist", + "Artists": "Artists", + "ImdbRating": "IMDb Rating", + "CommunityRating": "Community Rating", + "LabelCommunityRating": "Community rating", + "LabelCriticRating": "Critic rating", + "CriticRating": "Critic Rating", + "LabelWebsite": "Website", + "Tagline": "Tagline", + "LabelOverview": "Overview", + "LabelShortOverview": "Short overview", + "LabelReleaseDate": "Release date", + "LabelPlaceOfBirth": "Place of birth", + "Aired": "Aired", + "LabelAirDays": "Air days", + "LabelAirTime": "Air time", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelCustomRating": "Custom rating", + "LabelOriginalAspectRatio": "Original aspect ratio", + "Label3DFormat": "3D format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Display Settings", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Display order", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Countries", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Tags", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Metadata Settings", + "People": "People", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Preferred metadata download language", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LabelCountry": "Country", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Birth year", + "LabelBirthDate": "Birth date", + "LabelDeathDate": "Death date", + "LabelEndDate": "End date", + "LabelSeasonNumber": "Season number", + "LabelEpisodeNumber": "Episode number", + "LabelTrackNumber": "Track number", + "LabelNumber": "Number", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Sort Title", + "OriginalTitle": "Original Title", + "ReleaseDate": "Release Date", + "Continuing": "Continuing", + "Ended": "Ended", + "HeaderEnabledFields": "Enabled Fields", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed.", + "Backdrops": "Backdrops", + "Images": "Images", + "Runtime": "Runtime", + "ProductionLocations": "Production locations", + "BirthLocation": "Birth location", + "ParentalRating": "Parental Rating", + "PlayCount": "Play count", + "Name": "Name", + "Overview": "Overview", + "LabelType": "Type", + "LabelPersonRole": "Role", + "LabelPersonRoleHelp": "Example: Ice cream truck driver", + "Actor": "Actor", + "Composers": "Composers", + "Composer": "Composer", + "Director": "Director", + "GuestStar": "Guest star", + "Producer": "Producer", + "Writer": "Writer", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Installing {0}", + "PackageInstallCompleted": "{0} installation completed.", + "PackageInstallFailed": "{0} installation failed.", + "PackageInstallCancelled": "{0} installation cancelled.", + "SeriesYearToPresent": "{0} - Present", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episodes", + "Albums": "Albums", + "Song": "Song", + "Songs": "Songs", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "PleaseEnterNameOrId": "Please enter a name or an external Id.", + "MessageItemSaved": "Item saved.", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Emby Server - {0} is restarting.", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "PleaseRestartServerName": "Please Restart Emby Server on {0}", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Downloading...", + "LearnMore": "Learn more", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Screenshots", + "MoveRight": "Move right", + "MoveLeft": "Move left", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Delete image?", + "HeaderEditImages": "Edit Images", + "Settings": "Settings", + "ShowIndicatorsFor": "Show Indicators", + "Episodes": "Episodes", + "Programs": "Programs", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}.", + "HeaderCancelRecording": "Cancel Recording", + "HeaderKeepRecording": "Keep Recording", + "HeaderCancelSeries": "Cancel Series", + "HeaderKeepSeries": "Keep Series", + "HeaderLearnMore": "Learn More", + "SeriesSettings": "Series settings", + "HeaderRecordingOptions": "Recording Options", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Series Options", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Anytime", + "AnyLanguage": "Any language", + "AroundTime": "Around {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "All channels", + "NewEpisodesOnly": "New episodes only", + "AllEpisodes": "All episodes", + "LabelStartWhenPossible": "Start when possible", + "LabelStopWhenPossible": "Stop when possible", + "MinutesBefore": "minutes before", + "MinutesAfter": "minutes after", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", + "LabelKeepUpTo": "Keep up to", + "AsManyAsPossible": "As many as possible", + "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "UntilIDelete": "Until I delete", + "UntilSpaceNeeded": "Until space needed", + "Categories": "Categories", + "Sports": "Sports", + "News": "News", + "Movies": "Movies", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "I have Emby Premiere", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "ButtonUnlockPrice": "Unlock {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "HeaderUnlockFeature": "Unlock Feature", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Added {0}", + "PlayedOnValue": "Played {0}", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Continue", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Quality", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "My Media", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "Latest {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continue Watching", + "HeaderContinueListening": "Continue Listening", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Latest Recordings", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Settings saved.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Favorites", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Favorite Collections", + "HeaderFavoritePlaylists": "Favorite Playlists", + "Collection": "Collection", + "Collections": "Collections", + "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.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Schedule", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "No subtitles", + "Default": "Default", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Subtitle Settings", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelTextSize": "Text size", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Audio Settings", + "LabelAudioLanguagePreference": "Preferred audio language", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Video Quality", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Latest Media", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directors: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Theme songs", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Favorite Movies", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Favorite Shows", + "HeaderFavoriteEpisodes": "Favorite Episodes", + "HeaderFavoriteVideos": "Favorite Videos", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Favorite Games", + "HeaderFavoriteArtists": "Favorite Artists", + "HeaderFavoriteAlbums": "Favorite Albums", + "HeaderFavoriteSongs": "Favorite Songs", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up button behavior", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/mk.json b/modules/common/strings/mk.json new file mode 100644 index 0000000..f498c7e --- /dev/null +++ b/modules/common/strings/mk.json @@ -0,0 +1,1340 @@ +{ + "LabelCommunityRating": "Community rating", + "LabelDefaultScreen": "Default screen", + "Locked": "Locked", + "LabelImageSize": "Image size", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "EmbyLoginTerms": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our {0}terms of use{1}. The use of any Emby software constitutes acceptance of these terms.", + "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server.", + "HeaderSignInWithConnect": "Sign in with Emby Connect", + "HeaderWelcomeToEmby": "Welcome to Emby", + "HeaderNewUsers": "New Users", + "HeaderPleaseSignIn": "Please Sign In", + "MessageInvalidUser": "Invalid username or password. Please try again.", + "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.", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Sign In", + "Share": "Share", + "Shared": "Shared", + "Info": "Info", + "Add": "Add", + "Speed": "Speed", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapters", + "Password": "Password", + "SavePassword": "Save Password", + "LabelPassword": "Password", + "HeaderResetPassword": "Reset Password", + "Series": "Series", + "Preview": "Preview", + "Submit": "Submit", + "Never": "Never", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Top Results", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Always on", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Upload only on Wifi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Password (confirm)", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Username", + "HeaderAddServer": "Add Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Close", + "HeaderSeeAll": "See All", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "Email", + "LabelHost": "Host", + "LabelHostHelp": "Example: 192.168.1.100 or https://myserver.com", + "LabelPort": "Port", + "Disabled": "Disabled", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Are you still watching?", + "LabelCurrentPassword": "Current password", + "LabelNewPassword": "New password", + "LabelNewPasswordConfirm": "New password confirm", + "HeaderRemovePassword": "Remove Password", + "ServerUpdateNeeded": "This Emby Server needs to be updated. To download the latest version, please visit {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Connect to Server", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "New", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premiere", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Live", + "Reset": "Reset", + "Repeat": "Repeat", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} Tracks", + "ItemCount": "{0} Items", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Latest Music", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Recently Played", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Frequently Played", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "OriginalAirDateValue": "Original air date: {0}", + "EndsAtValue": "Ends at {0}", + "Date": "Date", + "AirDate": "Air Date", + "Played": "Played", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Last Episode Date Added", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio codec", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Parental rating", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Because you watched {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Invitations", + "ActorAsRole": "as {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "User", + "Access": "Access", + "Users": "Users", + "Library": "Library", + "Devices": "Devices", + "Cancel": "Cancel", + "Restart": "Restart", + "Shutdown": "Shutdown", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Systems", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Got It", + "RememberMe": "Remember me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Manage Emby Server", + "ShutdownServer": "Shutdown Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Recording Cancelled", + "SeriesCancelled": "Series Cancelled", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Recording Scheduled", + "SeriesRecordingScheduled": "Series Recording Scheduled", + "HeaderNewRecording": "New Recording", + "HeaderWakeServer": "Wake Server", + "AttemptingWakeServer": "Attempting to wake server. Please wait...", + "WakeServerSuccess": "Success!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine.", + "Days": "Days", + "Network": "Network", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Cinema Intros", + "Conversions": "Conversions", + "Downloads": "Downloads", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Offline Media", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", + "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.", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature.", + "HeaderFreeApps": "Free Emby Apps", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", + "HeaderBecomeProjectSupporter": "Get Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "This feature requires an active {0}Emby Premiere subscription{1}.", + "HeaderConvertYourRecordings": "Convert Your Recordings", + "Record": "Record", + "Save": "Save", + "Edit": "Edit", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Download", + "Downloaded": "Downloaded", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloading", + "Advanced": "Advanced", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Delete", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Delete Item", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library.", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Refresh", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Add to Collection", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Help", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "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", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Name", + "NewCollectionNameExample": "Example: Star Wars Collection", + "MessageItemsAdded": "Items added.", + "OptionNew": "New...", + "LabelPlaylist": "Playlist", + "AddToPlaylist": "Add to playlist", + "HeaderAddToPlaylist": "Add to Playlist", + "Subtitles": "Subtitles", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Search for Subtitles", + "LabelLanguage": "Language", + "Search": "Search", + "NoSubtitleSearchResultsFound": "No results found. Have you configured {0}subtitle downloading{1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "File", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "ConfirmDeletion": "Confirm Deletion", + "MySubtitles": "My Subtitles", + "MessageDownloadQueued": "Download queued.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Unlock Guide", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Replace existing images", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "ReplaceAllMetadata": "Replace all metadata", + "SearchForMissingMetadata": "Search for missing metadata", + "LabelRefreshMode": "Refresh mode", + "NoItemsFound": "No items found.", + "HeaderSaySomethingLike": "Say Something Like...", + "ButtonTryAgain": "Try Again", + "HeaderYouSaid": "You Said...", + "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "ValueDiscNumber": "Disc {0}", + "Unrated": "Unrated", + "Favorite": "Favorite", + "Like": "Like", + "Dislike": "Dislike", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup.", + "Open": "Open", + "Play": "Play", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Shuffle", + "Identify": "Identify", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Convert", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Queue", + "QueueAllFromHere": "Queue all from here", + "PlayAllFromHere": "Play all from here", + "PlayFromBeginning": "Play From Beginning", + "FromBeginning": "From Beginning", + "ResumeAt": "Resume from {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sort", + "Trailer": "Trailer", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Error", + "VoiceInput": "Voice Input", + "LabelContentType": "Content type", + "LabelPath": "Path", + "Playlists": "Playlists", + "LabelTitle": "Title", + "LabelOriginalTitle": "Original title", + "LabelSortTitle": "Sort title", + "LabelDateAdded": "Date added", + "DateAdded": "Date Added", + "DateCreated": "Date Created", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Status", + "LabelArtistsHelp": "Separate multiple using ;", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Album artists", + "LabelAlbum": "Album", + "Artist": "Artist", + "Artists": "Artists", + "ImdbRating": "IMDb Rating", + "CommunityRating": "Community Rating", + "LabelCriticRating": "Critic rating", + "CriticRating": "Critic Rating", + "LabelWebsite": "Website", + "Tagline": "Tagline", + "LabelOverview": "Overview", + "LabelShortOverview": "Short overview", + "LabelReleaseDate": "Release date", + "LabelPlaceOfBirth": "Place of birth", + "Aired": "Aired", + "LabelAirDays": "Air days", + "LabelAirTime": "Air time", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelCustomRating": "Custom rating", + "LabelOriginalAspectRatio": "Original aspect ratio", + "Label3DFormat": "3D format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Display Settings", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Display order", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Countries", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Tags", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Metadata Settings", + "People": "People", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Preferred metadata download language", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LabelCountry": "Country", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Birth year", + "LabelBirthDate": "Birth date", + "LabelDeathDate": "Death date", + "LabelEndDate": "End date", + "LabelSeasonNumber": "Season number", + "LabelEpisodeNumber": "Episode number", + "LabelTrackNumber": "Track number", + "LabelNumber": "Number", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Sort Title", + "OriginalTitle": "Original Title", + "ReleaseDate": "Release Date", + "Continuing": "Continuing", + "Ended": "Ended", + "HeaderEnabledFields": "Enabled Fields", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed.", + "Backdrops": "Backdrops", + "Images": "Images", + "Runtime": "Runtime", + "ProductionLocations": "Production locations", + "BirthLocation": "Birth location", + "ParentalRating": "Parental Rating", + "PlayCount": "Play count", + "Name": "Name", + "Overview": "Overview", + "LabelType": "Type", + "LabelPersonRole": "Role", + "LabelPersonRoleHelp": "Example: Ice cream truck driver", + "Actor": "Actor", + "Composers": "Composers", + "Composer": "Composer", + "Director": "Director", + "GuestStar": "Guest star", + "Producer": "Producer", + "Writer": "Writer", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Installing {0}", + "PackageInstallCompleted": "{0} installation completed.", + "PackageInstallFailed": "{0} installation failed.", + "PackageInstallCancelled": "{0} installation cancelled.", + "SeriesYearToPresent": "{0} - Present", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episodes", + "Albums": "Albums", + "Song": "Song", + "Songs": "Songs", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "PleaseEnterNameOrId": "Please enter a name or an external Id.", + "MessageItemSaved": "Item saved.", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Emby Server - {0} is restarting.", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "PleaseRestartServerName": "Please Restart Emby Server on {0}", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Downloading...", + "LearnMore": "Learn more", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Screenshots", + "MoveRight": "Move right", + "MoveLeft": "Move left", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Delete image?", + "HeaderEditImages": "Edit Images", + "Settings": "Settings", + "ShowIndicatorsFor": "Show Indicators", + "Episodes": "Episodes", + "Programs": "Programs", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}.", + "HeaderCancelRecording": "Cancel Recording", + "HeaderKeepRecording": "Keep Recording", + "HeaderCancelSeries": "Cancel Series", + "HeaderKeepSeries": "Keep Series", + "HeaderLearnMore": "Learn More", + "SeriesSettings": "Series settings", + "HeaderRecordingOptions": "Recording Options", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Series Options", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Anytime", + "AnyLanguage": "Any language", + "AroundTime": "Around {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "All channels", + "NewEpisodesOnly": "New episodes only", + "AllEpisodes": "All episodes", + "LabelStartWhenPossible": "Start when possible", + "LabelStopWhenPossible": "Stop when possible", + "MinutesBefore": "minutes before", + "MinutesAfter": "minutes after", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", + "LabelKeepUpTo": "Keep up to", + "AsManyAsPossible": "As many as possible", + "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "UntilIDelete": "Until I delete", + "UntilSpaceNeeded": "Until space needed", + "Categories": "Categories", + "Sports": "Sports", + "News": "News", + "Movies": "Movies", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "I have Emby Premiere", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "ButtonUnlockPrice": "Unlock {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "HeaderUnlockFeature": "Unlock Feature", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Added {0}", + "PlayedOnValue": "Played {0}", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Continue", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Quality", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "My Media", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "Latest {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continue Watching", + "HeaderContinueListening": "Continue Listening", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Latest Recordings", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Settings saved.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Favorites", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Favorite Collections", + "HeaderFavoritePlaylists": "Favorite Playlists", + "Collection": "Collection", + "Collections": "Collections", + "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.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Schedule", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "No subtitles", + "Default": "Default", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Subtitle Settings", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelTextSize": "Text size", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "Hide": "Hide", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Audio Settings", + "LabelAudioLanguagePreference": "Preferred audio language", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Video Quality", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Latest Media", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "Genre": "Genre", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directors: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Theme songs", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Favorite Movies", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Favorite Shows", + "HeaderFavoriteEpisodes": "Favorite Episodes", + "HeaderFavoriteVideos": "Favorite Videos", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Favorite Games", + "HeaderFavoriteArtists": "Favorite Artists", + "HeaderFavoriteAlbums": "Favorite Albums", + "HeaderFavoriteSongs": "Favorite Songs", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up button behavior", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/ms.json b/modules/common/strings/ms.json new file mode 100644 index 0000000..9787cfb --- /dev/null +++ b/modules/common/strings/ms.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our {0}terms of use{1}. The use of any Emby software constitutes acceptance of these terms.", + "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server.", + "HeaderSignInWithConnect": "Sign in with Emby Connect", + "HeaderWelcomeToEmby": "Selamat Datang ke Emby", + "HeaderNewUsers": "New Users", + "HeaderPleaseSignIn": "Please Sign In", + "MessageInvalidUser": "Invalid username or password. Please try again.", + "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.", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Sign In", + "Share": "Share", + "Shared": "Shared", + "Info": "Info", + "Add": "Add", + "Speed": "Speed", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapters", + "Password": "Password", + "SavePassword": "Save Password", + "LabelPassword": "Password", + "HeaderResetPassword": "Reset Password", + "Series": "Series", + "Preview": "Preview", + "Submit": "Submit", + "Never": "Never", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Top Results", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Always on", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Upload only on Wifi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Password (confirm)", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Username", + "HeaderAddServer": "Add Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Close", + "HeaderSeeAll": "See All", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "Email", + "LabelHost": "Host", + "LabelHostHelp": "Example: 192.168.1.100 or https://myserver.com", + "LabelPort": "Port", + "Disabled": "Disabled", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Are you still watching?", + "LabelCurrentPassword": "Current password", + "LabelNewPassword": "New password", + "LabelNewPasswordConfirm": "New password confirm", + "HeaderRemovePassword": "Remove Password", + "ServerUpdateNeeded": "This Emby Server needs to be updated. To download the latest version, please visit {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Connect to Server", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "New", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premiere", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Live", + "Reset": "Reset", + "Repeat": "Repeat", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} Tracks", + "ItemCount": "{0} Items", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Latest Music", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Recently Played", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Frequently Played", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "OriginalAirDateValue": "Original air date: {0}", + "EndsAtValue": "Ends at {0}", + "Date": "Date", + "AirDate": "Air Date", + "Played": "Played", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Last Episode Date Added", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio codec", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Parental rating", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Because you watched {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Invitations", + "ActorAsRole": "as {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "User", + "Access": "Access", + "Users": "Users", + "Library": "Library", + "Devices": "Devices", + "Cancel": "Cancel", + "Restart": "Restart", + "Shutdown": "Shutdown", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Systems", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Got It", + "RememberMe": "Remember me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Manage Emby Server", + "ShutdownServer": "Shutdown Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Recording Cancelled", + "SeriesCancelled": "Series Cancelled", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Recording Scheduled", + "SeriesRecordingScheduled": "Series Recording Scheduled", + "HeaderNewRecording": "New Recording", + "HeaderWakeServer": "Wake Server", + "AttemptingWakeServer": "Attempting to wake server. Please wait...", + "WakeServerSuccess": "Success!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine.", + "Days": "Days", + "Network": "Network", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Cinema Intros", + "Conversions": "Conversions", + "Downloads": "Downloads", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Offline Media", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", + "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.", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature.", + "HeaderFreeApps": "Free Emby Apps", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", + "HeaderBecomeProjectSupporter": "Get Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "This feature requires an active {0}Emby Premiere subscription{1}.", + "HeaderConvertYourRecordings": "Convert Your Recordings", + "Record": "Record", + "Save": "Save", + "Edit": "Edit", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Download", + "Downloaded": "Downloaded", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloading", + "Advanced": "Advanced", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Delete", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Delete Item", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library.", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Refresh", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Add to Collection", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Help", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "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", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Name", + "NewCollectionNameExample": "Example: Star Wars Collection", + "MessageItemsAdded": "Items added.", + "OptionNew": "New...", + "LabelPlaylist": "Playlist", + "AddToPlaylist": "Add to playlist", + "HeaderAddToPlaylist": "Add to Playlist", + "Subtitles": "Subtitles", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Search for Subtitles", + "LabelLanguage": "Language", + "Search": "Search", + "NoSubtitleSearchResultsFound": "No results found. Have you configured {0}subtitle downloading{1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "File", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "ConfirmDeletion": "Confirm Deletion", + "MySubtitles": "My Subtitles", + "MessageDownloadQueued": "Download queued.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Unlock Guide", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Replace existing images", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "Replace all metadata", + "SearchForMissingMetadata": "Search for missing metadata", + "LabelRefreshMode": "Refresh mode", + "NoItemsFound": "No items found.", + "HeaderSaySomethingLike": "Say Something Like...", + "ButtonTryAgain": "Try Again", + "HeaderYouSaid": "You Said...", + "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "ValueDiscNumber": "Disc {0}", + "Unrated": "Unrated", + "Favorite": "Favorite", + "Like": "Like", + "Dislike": "Dislike", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup.", + "Open": "Open", + "Play": "Play", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Shuffle", + "Identify": "Identify", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Convert", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Queue", + "QueueAllFromHere": "Queue all from here", + "PlayAllFromHere": "Play all from here", + "PlayFromBeginning": "Play From Beginning", + "FromBeginning": "From Beginning", + "ResumeAt": "Resume from {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sort", + "Trailer": "Trailer", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Error", + "VoiceInput": "Voice Input", + "LabelContentType": "Content type", + "LabelPath": "Path", + "Playlists": "Playlists", + "LabelTitle": "Title", + "LabelOriginalTitle": "Original title", + "LabelSortTitle": "Sort title", + "LabelDateAdded": "Date added", + "DateAdded": "Date Added", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Status", + "LabelArtistsHelp": "Separate multiple using ;", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Album artists", + "LabelAlbum": "Album", + "Artist": "Artist", + "Artists": "Artists", + "ImdbRating": "IMDb Rating", + "CommunityRating": "Community Rating", + "LabelCommunityRating": "Community rating", + "LabelCriticRating": "Critic rating", + "CriticRating": "Critic Rating", + "LabelWebsite": "Website", + "Tagline": "Tagline", + "LabelOverview": "Overview", + "LabelShortOverview": "Short overview", + "LabelReleaseDate": "Release date", + "LabelPlaceOfBirth": "Place of birth", + "Aired": "Aired", + "LabelAirDays": "Air days", + "LabelAirTime": "Air time", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelCustomRating": "Custom rating", + "LabelOriginalAspectRatio": "Original aspect ratio", + "Label3DFormat": "3D format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Display Settings", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Display order", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Countries", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Tags", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Metadata Settings", + "People": "People", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Preferred metadata download language", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LabelCountry": "Country", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Birth year", + "LabelBirthDate": "Birth date", + "LabelDeathDate": "Death date", + "LabelEndDate": "End date", + "LabelSeasonNumber": "Season number", + "LabelEpisodeNumber": "Episode number", + "LabelTrackNumber": "Track number", + "LabelNumber": "Number", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Sort Title", + "OriginalTitle": "Original Title", + "ReleaseDate": "Release Date", + "Continuing": "Continuing", + "Ended": "Ended", + "HeaderEnabledFields": "Enabled Fields", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed.", + "Backdrops": "Backdrops", + "Images": "Images", + "Runtime": "Runtime", + "ProductionLocations": "Production locations", + "BirthLocation": "Birth location", + "ParentalRating": "Parental Rating", + "PlayCount": "Play count", + "Name": "Name", + "Overview": "Overview", + "LabelType": "Type", + "LabelPersonRole": "Role", + "LabelPersonRoleHelp": "Example: Ice cream truck driver", + "Actor": "Actor", + "Composers": "Composers", + "Composer": "Composer", + "Director": "Director", + "GuestStar": "Guest star", + "Producer": "Producer", + "Writer": "Writer", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Installing {0}", + "PackageInstallCompleted": "{0} installation completed.", + "PackageInstallFailed": "{0} installation failed.", + "PackageInstallCancelled": "{0} installation cancelled.", + "SeriesYearToPresent": "{0} - Present", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episodes", + "Albums": "Albums", + "Song": "Song", + "Songs": "Songs", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "PleaseEnterNameOrId": "Please enter a name or an external Id.", + "MessageItemSaved": "Item saved.", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Emby Server - {0} is restarting.", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "PleaseRestartServerName": "Please Restart Emby Server on {0}", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Downloading...", + "LearnMore": "Learn more", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Screenshots", + "MoveRight": "Move right", + "MoveLeft": "Move left", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Delete image?", + "HeaderEditImages": "Edit Images", + "Settings": "Settings", + "ShowIndicatorsFor": "Show Indicators", + "Episodes": "Episodes", + "Programs": "Programs", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}.", + "HeaderCancelRecording": "Cancel Recording", + "HeaderKeepRecording": "Keep Recording", + "HeaderCancelSeries": "Cancel Series", + "HeaderKeepSeries": "Keep Series", + "HeaderLearnMore": "Learn More", + "SeriesSettings": "Series settings", + "HeaderRecordingOptions": "Recording Options", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Series Options", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Anytime", + "AnyLanguage": "Any language", + "AroundTime": "Around {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "All channels", + "NewEpisodesOnly": "New episodes only", + "AllEpisodes": "All episodes", + "LabelStartWhenPossible": "Start when possible", + "LabelStopWhenPossible": "Stop when possible", + "MinutesBefore": "minutes before", + "MinutesAfter": "minutes after", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", + "LabelKeepUpTo": "Keep up to", + "AsManyAsPossible": "As many as possible", + "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "UntilIDelete": "Until I delete", + "UntilSpaceNeeded": "Until space needed", + "Categories": "Categories", + "Sports": "Sports", + "News": "News", + "Movies": "Movies", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "I have Emby Premiere", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "ButtonUnlockPrice": "Unlock {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "HeaderUnlockFeature": "Unlock Feature", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Added {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Continue", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Quality", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "My Media", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "Latest {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continue Watching", + "HeaderContinueListening": "Continue Listening", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Latest Recordings", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Settings saved.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Favorites", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Favorite Collections", + "HeaderFavoritePlaylists": "Favorite Playlists", + "Collection": "Collection", + "Collections": "Collections", + "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.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Schedule", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "No subtitles", + "Default": "Default", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Subtitle Settings", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelTextSize": "Text size", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "Hide": "Hide", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Audio Settings", + "LabelAudioLanguagePreference": "Preferred audio language", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Video Quality", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Latest Media", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "Genre": "Genre", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directors: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Theme songs", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Favorite Movies", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Favorite Shows", + "HeaderFavoriteEpisodes": "Favorite Episodes", + "HeaderFavoriteVideos": "Favorite Videos", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Favorite Games", + "HeaderFavoriteArtists": "Favorite Artists", + "HeaderFavoriteAlbums": "Favorite Albums", + "HeaderFavoriteSongs": "Favorite Songs", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/nb.json b/modules/common/strings/nb.json new file mode 100644 index 0000000..0d66371 --- /dev/null +++ b/modules/common/strings/nb.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby er designet for å hjelpe deg med å administrere ditt personlige mediebibliotek, for eksempel hjemmevideoer og bilder. Se vår {0}vilkår for bruk{1}. Bruk av Emby-programvare innebærer aksept av disse vilkårene.", + "MessageUnableToConnectToServer": "Vi kan ikke kontakte angitt server akkurat nå. Sjekk at den er startet og prøv igjen.", + "EmbyIntroMessage": "Med Emby kan du enkelt strømme videoer, musikk og bilder til smarttelefoner, nettbrett og andre enheter fra Emby Server.", + "HeaderSignInWithConnect": "Logg inn med Emby Connect", + "HeaderWelcomeToEmby": "Velkommen til Emby", + "HeaderNewUsers": "Nye Brukere", + "HeaderPleaseSignIn": "Vennligst Logg inn", + "MessageInvalidUser": "Ugyldig brukernavn eller passord. Vennligst prøv igjen.", + "MessageUnlockAppWithPurchaseOrSupporter": "Lås opp denne funksjonen med et engangskjøp, eller med et aktivt Emby Premiere-abonnement.", + "MessageUnlockAppWithSupporter": "Lås opp denne funksjonen med et aktivt Emby Premiere-abonnement.", + "MessageToValidateSupporter": "Hvis du har et aktivt Emby Premiere-abonnement, må du sørge for at du har konfigurert Emby Premiere i Emby Server Kontrollpanel, som du får tilgang til ved å klikke Emby Premiere i hovedmenyen.", + "ValueSpecialEpisodeName": "Spesial - {0}", + "HeaderSignIn": "Logg inn", + "Share": "Del", + "Shared": "Delt", + "Info": "Info", + "Add": "Legg til", + "Speed": "Hastighet", + "PlaybackSpeed": "Avspillingshastighet", + "Chapters": "Kapitler", + "Password": "Passord", + "SavePassword": "Lagre passord", + "LabelPassword": "Passord:", + "HeaderResetPassword": "Tilbakestill passord", + "Series": "Serier", + "Preview": "Forhåndsvisning", + "Submit": "Send inn", + "Never": "Aldri", + "Table": "Tabell", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Avspillinger", + "LastUsedAddressValue": "Sist brukt {0}", + "LabelKeywordType": "Nøkkelordtype", + "HeaderSelectColumns": "Velg kolonner", + "HeaderTopResults": "Toppresultater", + "HeaderPinSidebar": "Fest sidepanelet", + "Collapse": "Sammentrekk", + "LabelBackgroundVideoPlayback": "Avspilling av bakgrunnsvideo", + "BackgroundVideoPlaybackHelp": "Avspilling av bakgrunnsvideo lar videoen fortsatt spille selv om skjermen er skrudd av.", + "AlwaysOn": "Alltid på", + "HeadphonesOrExternalSpeakersConnected": "Hodetelefoner eller eksterne høyttalere koblet til", + "HeaderKeyboardAndRemote": "Tastatur og fjernkontroll", + "NoSelectedItemsSupportOperation": "Ingen av de valgte elementene støtter denne operasjonen.", + "NoOperationsForSelectedItems": "Det finnes ingen tilgjengelige operasjoner for valgte elementer.", + "UploadOnlyOnWifi": "Last opp kun på Wifi", + "HeaderFoldersToUpload": "Mapper å laste opp", + "LabelPasswordConfirm": "Passord (bekreft)", + "HeaderMoveUpInOrder": "Flytt opp i rekkefølge", + "HeaderDownUpInOrder": "Flytt ned i rekkefølge", + "LabelUsername": "Brukernavn:", + "HeaderAddServer": "Legg til Server", + "HeaderSubtitleOffset": "Forskyvning av undertekst", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Fjern fra fortsett å se på", + "RemoveThisTitleFromContinueWatching": "Fjerne denne tittelen fra fortsett å se på?", + "HeaderRemoveFromContinueListening": "Fjern fra fortsett å høre på", + "RemoveThisTitleFromContinueListening": "Fjern denne tittelen fra fortsett å høre på?", + "HeaderIncreaseSubtitleOffset": "Øk undertekstforskyvningsverdi", + "HeaderDecreaseSubtitleOffset": "Reduser undertekstforskyvningsverdi", + "Close": "Lukk", + "HeaderSeeAll": "Se alle", + "HeaderOpenInNewWindow": "Åpne i nytt vindu", + "LabelEmail": "Epost:", + "LabelHost": "Vert:", + "LabelHostHelp": "192.168.1.100 eller \"https://dinserver.no\"", + "LabelPort": "Port:", + "Disabled": "Deaktivert", + "Uninstall": "Avinstaller", + "Enable": "Aktiver", + "AllTuners": "Alle mottakere", + "Disable": "Deaktiver", + "NextValue": "Neste: {0}", + "HeaderNextItem": "Neste element", + "HeaderPreviousItem": "Forrige element", + "NoTrailersMessage": "Ingen trailere funnet. Vennligst installer Trailer plugin fra {0}Emby plugin catalog{1} for å legge til trailere.", + "UninstallPluginConfirmation": "Er du sikker på at du ønsker å avinstallere dette programtillegget?", + "HeaderUninstallPlugin": "Avinstaller programtillegget", + "AreYouStillWatching": "Ser du fortsatt?", + "LabelCurrentPassword": "Nåværende passord:", + "LabelNewPassword": "Nytt passord:", + "LabelNewPasswordConfirm": "Bekreft nytt passord:", + "HeaderRemovePassword": "Fjern passord", + "ServerUpdateNeeded": "Denne Emby serveren må oppdateres. For å laste ned siste versjonen, vennligst besøk: {0}", + "MessageThankYouForConnectSignUp": "Takk for din registering i Emby Connect nettverket. En e-post vil bli sendt til din adresse med instruksjoner om hvordan du bekrefte den nye kontoen. Vennligst bekreft kontoen og deretter kom tilbake hit for å logge på.", + "MessageThankYouForConnectSignUpNoValidation": "Takk for at du registrerte deg for Emby Connect! Du vil nå bli bedt om å logge inn med din Emby Connect informasjon.", + "ErrorMessagePasswordNotMatchConfirm": "Passord og passord bekreftelse må stemme", + "ErrorMessageUsernameInUse": "Brukernavnet er alt i bruk, Prøv igjen med et annet brukernavn.", + "ErrorMessageEmailInUse": "Epost addressee du oppgav er alt i bruk. Velg en annen epost adresse eller bruk tilbakestilling av passord funksjonen.", + "HeaderUpcomingOnTV": "Kommende direkte TV", + "HeaderOtherShowings": "Andre visninger", + "Showings": "Visninger", + "HeaderConnectToServer": "Koble til server", + "ConnectToServerManually": "Koble til server manuelt", + "LabelEnterConnectUserNameHelp": "Dette er ditt Emby online brukernavn eller epost.", + "HeaderSignInError": "Påloggingsfeil", + "HeaderManualLogin": "Manuell innlogging", + "PasswordResetConfirmation": "Er du sikker på at du vil tilbakestille passordet?", + "ContactAdminToResetPassword": "Vennligst kontakte administrator for hjelp til å tilbakestille passordet ditt.", + "ForgotPasswordInNetworkRequired": "Vennligst prøv igjen fra hjemmenettet ditt for å starte prosessen med å gjenopprette passordet ditt.", + "ForgotPasswordFileCreated": "Følgende fil er opprettet på serveren og inneholder instruksjoner om hvordan du kan fortsette:", + "ForgotPasswordFileExpiration": "PIN-koden for gjenoppretting er gyldig til {0}.", + "InvalidForgotPasswordPin": "Ugyldig eller utgått PIN kode angitt. Vennligst prøv igjen.", + "PasswordResetForUsers": "Passord har blitt fjernet fra følgende brukere. For å logge inn bruk et passord.", + "HeaderForgotPassword": "Glemt passord", + "ForgotPasswordUsernameHelp": "La dette stå tomt hvis du ikke husker brukernavnet.", + "HeaderPasswordReset": "Tilbakestill passord", + "AttributeNew": "Ny", + "Done": "Ferdig", + "HeaderResetToDefault": "Tilbakestill til standard", + "Deinterlacing": "Avfletting", + "HeaderBurningInSubtitles": "Brenner inn undertekster", + "Premiere": "Premiere", + "LabelPinCode": "PIN-kode", + "LabelLocalNetworkPinCode": "Lokal nettverk PIN-kode", + "LabelLocalNetworkPasswordMode": "Påloggingsmodus for lokalt nettverk", + "RequirePasswordInLocalNetwork": "Krev passord på det lokale nettverket", + "NoPasswordInLocalNetwork": "Ikke krev passord på det lokale nettverket", + "PinCodeInLocalNetwork": "Tillat pinkode på det lokale nettverket", + "LocalNetworkPasswordModeHelp": "Velg metode for innlogging for enheter på det samme nettverket som din Emby Server.", + "HeaderLocalNetworkAccess": "Lokal nettverk tilgang", + "Live": "Direkte", + "Reset": "Tilbakestill", + "Repeat": "Gjenta", + "Track": "Spor", + "Tracks": "Spor", + "HeaderCameraUpload": "Kameraopplasting", + "TrackCount": "{0} Spor", + "ItemCount": "{0} elementer", + "NumberChannelsValue": "{0} Kanaler", + "HeaderLatestMusic": "Siste Musikk", + "HeaderLatestAudioBooks": "Siste Lydbøker", + "HeaderLatestDownloadedVideos": "Siste nedlastede videoer", + "HeaderRecentlyPlayed": "Nylig avspilt", + "Recent": "Nylig", + "HeaderFrequentlyPlayed": "Ofte avspilt", + "HeaderMoreLikeThis": "Mer som dette", + "HeaderMoreLikeThisOnLiveTV": "Mer som dette på Direkte TV", + "OriginalAirDateValue": "Original sendetid: {0}", + "EndsAtValue": "Slutter klokken {0}", + "Date": "Dato", + "AirDate": "Sendetid", + "Played": "Avspilt", + "Daily": "Daglig", + "Weekly": "Ukentlig", + "RequireHashMatch": "Kreve ett hashtreff", + "RequireHashMatchHelp": "​Ved å kreve et hash-treff vil undertekstene filtreres slik at de bare inkluderer de som er testet med din eksakte videofil. Hvis du fjerner merket for dette, øker antallet samsvarende undertekster, men vil også øke sjansene for feiltimet eller feil underteksttekst.", + "SearchForForcedSubtitlesOnly": "Bare tvungne undertekster", + "SearchForForcedSubtitlesOnlyHelp": "Å kreve tvungne undertekster vil begrense søkeresultatene til undertekster som er merket til å ha utenlandsk språk.", + "LastEpisodeDateAdded": "Dato for siste episode lagt til", + "LastEpisodeDateAired": "Dato for siste episode utgitt", + "LabelPlaystate": "Avspillingsstatus", + "Studio": "Studio", + "Tag": "Tagg", + "EpisodeTitle": "Episodetittel", + "Audio": "Lyd", + "Video": "Video", + "Subtitle": "Undertekst", + "Image": "Bilde", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Lydoppsett", + "LabelAudioCodec": "Lydkodek", + "LabelAudioLanguage": "Lydspråk", + "LabelSubtitleLanguage": "Undertekstspråk", + "LabelVideoCodec": "Videokodek", + "LabelSubtitleCodec": "Undertekstkodek", + "LabelParentalRating": "Aldersgrense", + "BecauseYouLikeValue": "Fordi du liker {0}", + "BecauseYouWatchedValue": "Fordi du så {0}", + "DirectedByValue": "Regissert av {0}", + "StarringValue": "Med {0}", + "Invitations": "Invitasjoner", + "ActorAsRole": "som {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Gruppér elementer i samlinger", + "GroupItemsIntoCollectionsHelp": "Grupper elementer basert på samlinger de har blitt lagt til. Aktivering av visse filtre eller sorteringsrekkefølger kan automatisk deaktivere dette.", + "GroupItemsIntoTags": "Grupper elementer i tagger", + "GroupItemsIntoTagsHelp": "Grupper elementer basert på tagger de har blitt lagt til. Aktivering av visse filtre eller sorteringsrekkefølger kan automatisk deaktivere dette.", + "User": "Bruker", + "Access": "Tilgang", + "Users": "Brukere", + "Library": "Bibliotek", + "Devices": "Enheter", + "Cancel": "Avbryt", + "Restart": "Omstart", + "Shutdown": "Slå Av", + "Logs": "Logger", + "Visibility": "Synlighet", + "Notifications": "Varsler", + "SendTestNotification": "Send testvarsling", + "NotificationSent": "Varsling sendt", + "DeleteNotificationConfirmation": "Er du sikker på at du vil slette denne varslingen?", + "DeleteNotification": "Slett varsling", + "AddNotification": "Legg til varsling", + "EditNotification": "Rediger varsling", + "LimitUserEventsTo": "Begrens brukerhendelser til", + "LimitLibraryEventsTo": "Begrens bibliotekhendelser til", + "LimitDeviceEventsTo": "Begrens enheterhendelser til", + "ForAdditionalNotificationOptions": "Ytterligere varslingstjenester kan installeres av serveradministratoren i Emby {0}programtillegg-katalogen{1}.", + "Plugins": "Programtillegg", + "Systems": "Systemer", + "Server": "Server", + "Dashboard": "Kontrollpanel", + "PlayOnAnotherDevice": "Spill av på en annen enhet", + "HeaderConnectionHelp": "Forbindelse hjelp", + "AccessRestrictedTryAgainLater": "Tilgangen er foreløpig begrenset. Vennligst prøv igjen senere.", + "ButtonGotIt": "Skjønner", + "RememberMe": "Husk meg", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Administrer Server", + "ShutdownServer": "Slå Av Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Opptak avbrutt", + "SeriesCancelled": "Serie avbrutt", + "Recording": "Opptak", + "SeriesRecording": "Serieopptak", + "RecordingScheduled": "Opptak planlagt", + "SeriesRecordingScheduled": "Serieopptak planlagt", + "HeaderNewRecording": "Nye opptak:", + "HeaderWakeServer": "Vekk opp server", + "AttemptingWakeServer": "Prøver å vekke opp server. Vennligst vent,..", + "WakeServerSuccess": "Suksess!", + "HeaderCustomizeHomeScreen": "Tilpass hjemskjerm", + "WakeServerError": "Wake On LAN-pakker ble sendt til servermaskinen din, men tilkobling til din Emby Server mislyktes. Serveren din kan trenge litt mer tid til å våkne, eller så kjører ikke Emby Server på maskinen.", + "Days": "Dager", + "Network": "Nettverk", + "Networks": "Nettverk", + "SortByValue": "Sorter etter {0}", + "HeaderSortBy": "Sorter etter", + "HeaderPhotoAlbums": "Fotoalbumer", + "Photos": "Bilder", + "HeaderAppearsOn": "Vises På", + "List": "Liste", + "HeaderRecordSeries": "Ta opp serien", + "HeaderCinemaMode": "Kino-introer", + "Conversions": "Konverteringer", + "Downloads": "Nedlastinger", + "HeaderManageDownloads": "Behandle nedlastinger", + "InternalStorage": "Intern lagring", + "ExternalStorage": "Ekstern lagring", + "UploadToFollowingServers": "Last opp til Servere", + "UploadingNumItems": "Laster opp {0} of {1}", + "DownloadNumItems": "Laster ned {0} av {1}", + "HeaderSampleRate": "Samplingsfrekvens", + "HeaderReferenceFrames": "Referansebilder", + "HeaderBitDepth": "Bitdybde", + "HeaderPixelFormat": "Pikselformat", + "Profile": "Profil", + "Bitrate": "Bitrate", + "Expand": "Utvid", + "Container": "Kontainer", + "Format": "Format", + "Path": "Sti", + "Size": "Størrelse", + "Resolution": "Oppløsning", + "HeaderCodecTag": "Codec tag", + "Framerate": "Bildefrekvens", + "Interlaced": "Linjeflettet", + "Anamorphic": "Anamorfisk", + "Level": "Nivå", + "Timestamp": "Tidstempel", + "Language": "Språk", + "Codec": "Kodek", + "Stream": "Strøm", + "HeaderExtradata": "Ekstra Data", + "HeaderHardwareAcceleratedTranscoding": "Maskinvareakselerert transkoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Dra nytte av server-GPU-en din. Emby har den mest avanserte og raskeste maskinvareakselerasjonen i bransjen.", + "HeaderOfflineDownloads": "Nedlastede media", + "AndMuchMoreExclamation": "Og mye mer!", + "HeaderOfflineDownloadsDescription": "Last ned media til din enhet for enkel offline bruk", + "LiveTvFeatureDescription": "Strøm direkte TV til hvilken som helst Emby-app, med en kompatibel TV-mottaker installert på din Emby Server.", + "DvrFeatureDescription": "Planlegg individuelle Direkte TV opptak, serieopptak og mer med Emby DVR.", + "CinemaModeFeatureDescription": "Kino-introer gir deg den ekte kinoopplevelsen med trailere og tilpassede introer før hovedfilmen.", + "HeaderFreeApps": "Gratis Emby Applikasjoner", + "FreeAppsFeatureDescription": "Nyt gratis tilgang til Emby Applikasjoner på din enhet", + "HeaderBecomeProjectSupporter": "Skaff Emby Premiere", + "HeaderViewServerInfo": "Vis serverinformasjon", + "PlaybackTvModeRequiresEmbyPremiere": "Medieavspilling i TV-modus krever et aktivt {0}Emby Premiere abonnement{1}.", + "FeatureRequiresEmbyPremiere": "Denne funksjonen krever et aktivt {0}Emby Premiere abonnement{1}.", + "HeaderConvertYourRecordings": "Konverter dine opptak", + "Record": "Ta opp", + "Save": "Lagre", + "Edit": "Rediger", + "HeaderSavePlaylist": "Lagre spilleliste", + "Latest": "Siste", + "Download": "Last ned", + "Downloaded": "Nedlastet", + "Converted": "Konvertert", + "RemoveFromHistory": "Fjern fra historikken", + "ConfirmRemoveFromHistory": "Fjerne dette elementet fra historikken?", + "Downloading": "Laster ned", + "Advanced": "Avansert", + "LinkedToEmbyConnect": "Knyttet til Emby Connect", + "Delete": "Slett", + "Both": "Begge", + "LabelChannelDisplay": "Kanalvisning", + "HeaderDeleteItem": "Slett element", + "HeaderDeleteUser": "Slett bruker", + "DeleteItemConfirmation": "Er du sikker på at du ønsker å slette {0}?", + "DeleteUserConfirmation": "Er du sikker på at du vil slette bruker {0}?", + "DeleteUsersConfirmation": "Er du sikker på at du vil slette disse {0} brukerne?", + "HeaderDeleteDevice": "Slett Enhet", + "DeleteDeviceConfirmation": "Er du sikker på at du vil slette denne enheten? Den vil gjenoppstå neste gang en bruker logger inn med den.", + "ConfirmDeleteItem": "Sletting av elementet vil slette det fra både filsystemet og biblioteket.", + "FollowingFilesWillBeDeleted": "Følgende filer og mapper vil bli slettet:", + "AreYouSureToContinue": "Er du sikker på at du vil fortsette?", + "Refresh": "Oppdater", + "RefreshingMetadataDots": "Oppfrisker metadata...", + "ScanningLibraryFilesDots": "Skanner biblioteksfiler...", + "HeaderFavoritesThenByChannelNumber": "Favoritter, deretter etter kanalnummer", + "HeaderAddToCollection": "Legg til samling", + "HeaderFavoritesThenByTitle": "Favoritter, deretter etter tittel", + "HeaderFavoritesThenByDefault": "Favoritter, deretter etter standard kanalrekkefølge", + "HeaderDefaultChannelOrder": "Standard kanalrekkefølge", + "HeaderAddToFavorites": "Legg til i favoritter", + "HeaderRemoveFromFavorites": "Fjern fra favoritter", + "Favorited": "Favorittlagt", + "Unfavorited": "Ikke favoritt", + "HeaderNewCollection": "Ny Samling", + "HeaderNewPlaylist": "Ny spilleliste", + "AllCollections": "Alle samlinger", + "AllPlaylists": "Alle spillelister", + "Create": "Opprett", + "HeaderAddedToPlaylist": "Lagt til spilleliste", + "HeaderAddedToCollection": "Lagt til samling", + "OneItemAddedTo": "1 element lagt til \"{0}\".", + "ItemsAddedTo": "{0} elementer lagt til \"{1}\".", + "HeaderAddedToPlayQueue": "Lagt til avspillingskø", + "HeaderPlayingNext": "Spiller neste", + "Help": "Hjelp", + "HeaderGetHelp": "Få hjelp", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Skrivebord", + "Mobile": "Mobil / Nettbrett", + "Navigation": "Navigering", + "HeaderVideoPlayback": "Videoavspilling", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Sesonger", + "OneTrack": "1 spor", + "OneSeason": "En Sesong", + "Libraries": "Bibliotek", + "NumberSeasonsValue": "{0} Sesonger", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Visningsspråk", + "LabelDisplayLanguageHelp": "Oversettelse av Emby pågår.", + "LearnHowYouCanContribute": "Lær hvordan du kan bidra", + "NewCollectionHelp": "Samlinger tillater deg å lage personlige grupperinger av filmer og annet bibliotek innhold.", + "SearchForCollectionInternetMetadata": "Søk på internet for artwork og metadata", + "DisplayMissingEpisodesWithinSeasons": "Vis episoder som mangler fra sesongen", + "DisplayMissingEpisodesWithinSeasonsHelp": "Denne må også være aktivert for TV biblioteker i Emby Server oppsett.", + "EnableThemeSongs": "Slå på temasanger", + "EnableBackdrops": "Aktiver bakgrunner", + "EnableThemeSongsHelp": "Hvis aktivert, vil temasanger spille av i bakgrunnen mens man blar igjennom biblioteket.", + "EnableBackdropsHelp": "Hvis aktivert, vil bakgrunner bli vist på noen sider mens man blar igjennom biblioteket.", + "EnableThemeVideos": "Slå på temavideoer", + "EnableThemeVideosHelp": "Hvis aktivert, vil temavideoer spille av i bakgrunnen mens man blar igjennom biblioteket.", + "RunAtStartup": "Kjør ved oppstart", + "ServerStartup": "Oppstart av server", + "EmbyServerOnXHasStarted": "Emby Server på {0} er startet.", + "LabelScreensaver": "Skjermsparer", + "LabelSoundEffects": "Lydeffekter", + "LabelName": "Navn", + "NewCollectionNameExample": "Eksempel: Star Wars-samling", + "MessageItemsAdded": "Elementer lagt til.", + "OptionNew": "Ny...", + "LabelPlaylist": "Spilleliste", + "AddToPlaylist": "Legg til i spilleliste", + "HeaderAddToPlaylist": "Legg til i Spilleliste", + "Subtitles": "Undertekster", + "LabelTheme": "Tema", + "LabelSettingsTheme": "Innstillinger for tema", + "LabelThemeAccentColor": "Uthevingsfarge", + "ThemeAccentColorDescription": "Kontrollerer fargen til viktige indikatorer, ikoner og tekst.", + "SearchForSubtitles": "Søk etter undertekster", + "LabelLanguage": "Språk", + "Search": "Søk", + "NoSubtitleSearchResultsFound": "Ingen resultater funnet. Har du konfigurert {0}nedlasting av undertekster{1}?", + "NoLyricsSearchResultsFound": "Ingen resultater funnet. Har du konfigurert {0}nedlasting av sangtekster{1}?", + "Lyrics": "Sangtekster", + "SearchForLyrics": "Søk etter sangtekster", + "Finish": "Ferdig", + "File": "Fil", + "Exit": "Avslutt", + "Sleep": "Dvale", + "Setup": "Oppsett", + "MessageAreYouSureDeleteSubtitles": "Er du sikker på at du vil slette denne undertekst filen?", + "ConfirmDeletion": "Bekreft Kansellering", + "MySubtitles": "Mine undertekster", + "MessageDownloadQueued": "Nedlasting satt til i kø", + "HeaderEditSubtitles": "Endre undertekster", + "UnlockGuide": "Lås opp Guide", + "HeaderRefreshMetadata": "Frisk opp metadata", + "HeaderRefreshAllMetadata": "Oppfrisk alle data", + "ReplaceExistingImages": "Bytt ut eksisterende bilder", + "ReplaceExistingImagesHelp": "Alle eksisterende bilder vil bli slettet og nye blir lastet ned. I enkelte tilfeller kan dette resultere i færre tilgjengelige bilder enn før.", + "ReplaceAllMetadata": "Erstatt all metadata", + "SearchForMissingMetadata": "Søk etter manglende metadata", + "LabelRefreshMode": "Oppdateringsmodus", + "NoItemsFound": "Ingen elementer funnet", + "HeaderSaySomethingLike": "Si noenting slik som...", + "ButtonTryAgain": "Prøv igjen", + "HeaderYouSaid": "Du sa...", + "MessageWeDidntRecognizeCommand": "Vi beklager, Vi kunne ikke forstå denne kommandoen.", + "MessageIfYouBlockedVoice": "Hvis du nektet tale tilgang til applikasjonen må du rekonfigurere før du prøver igjen.", + "ValueDiscNumber": "Disk {0}", + "Unrated": "Uten sensur", + "Favorite": "Favoritt", + "Like": "Liker", + "Dislike": "Misliker", + "RefreshDialogHelp": "Metadata er oppdatert basert på innstillinger og metadatatilbydere som er aktivert i Emby biblioteksoppsett.", + "Open": "Åpne", + "Play": "Spill", + "Pause": "Pause", + "HeaderPlayQueue": "Kø", + "HeaderAddToPlayQueue": "Legg til i kø", + "Shuffle": "Tilfeldig", + "Identify": "Identifiser", + "HeaderRemoveIdentification": "Fjern identifisering", + "ResetMetadataConfirmation": "Er du sikker på at du vil tilbakestille all metadata?", + "HeaderEditMetadata": "Endre metadata", + "Convert": "Konverter", + "Resume": "Fortsett", + "HeaderInstantMix": "Direktemiks", + "HeaderGoToItem": "Gå til element", + "HeaderGoToSeason": "Gå til sesong", + "HeaderGoToSeries": "Gå til serie", + "HeaderGoToAlbum": "Gå til album", + "HeaderGoToArtist": "Gå til artist", + "HeaderPlayAll": "Spill alle", + "PictureInPicture": "Bilde i bilde", + "Fullscreen": "Fullskjerm", + "ExitFullscreen": "Avslutt fullskjerm", + "Rewind": "Spol tilbake", + "FastForward": "Spol frem", + "Remove": "Fjern", + "Rename": "Gi nytt navn", + "Queue": "Kø", + "QueueAllFromHere": "Kø alt herfra", + "PlayAllFromHere": "Spill alt herfra", + "PlayFromBeginning": "Spill fra begynnelsen", + "FromBeginning": "Fra begynnelsen", + "ResumeAt": "Fortsett fra {0}", + "HeaderRemoveFromPlaylist": "Fjern fra spilleliste", + "HeaderRemoveFromPlayQueue": "Fjern fra avspillingskø", + "HeaderRemoveFromCollection": "Fjern fra samlingen", + "Sort": "Sorter", + "Trailer": "Trailer", + "SelectNone": "Velg ingen", + "SelectAll": "Velg alle", + "HeaderMarkPlayed": "Merk som sett", + "HeaderMarkUnplayed": "Merk som ikke avspilt", + "HeaderGroupVersions": "Gruppeversjoner", + "PleaseSelectTwoItems": "Vennligst velg minst to elementer.", + "HeaderConfirmRecordingCancellation": "Bekreft Avbryt Opptak", + "MessageConfirmRecordingCancellation": "Avbryt Opptak?", + "Album": "Album", + "AlbumArtist": "Albumartist", + "Error": "Feil", + "VoiceInput": "Stemme input", + "LabelContentType": "Innholdstype", + "LabelPath": "Sti", + "Playlists": "Spillelister", + "LabelTitle": "Tittel", + "LabelOriginalTitle": "Original tittel", + "LabelSortTitle": "Sorter tittel", + "LabelDateAdded": "Dato lagt til", + "DateAdded": "Dato lagt til", + "DateModified": "Dato endret", + "DatePlayed": "Dato spilt", + "DateLastActive": "Dato sist aktiv", + "ConfigureDateAdded": "Konfigurer hvordan dato er fastsatt i Emby Server kontrollpanel under Bibliotek innstillinger", + "LabelStatus": "Status", + "LabelArtistsHelp": "Skill flere med semikolon ;", + "HeaderAlbumArtists": "Albumartister", + "LabelAlbumArtists": "Albumartister", + "LabelAlbum": "Album", + "Artist": "Artist", + "Artists": "Artister", + "ImdbRating": "IMDb-vurdering", + "CommunityRating": "Vurdering fra fellesskapet", + "LabelCommunityRating": "Vurdering fra fellesskapet", + "LabelCriticRating": "Kritikervurdering", + "CriticRating": "Kritikervurdering", + "LabelWebsite": "Nettsted", + "Tagline": "Stikkord", + "LabelOverview": "Oversikt", + "LabelShortOverview": "Kort oversikt", + "LabelReleaseDate": "Utgivelsesdato", + "LabelPlaceOfBirth": "Fødested", + "Aired": "Sendt tidligere", + "LabelAirDays": "Sendedager", + "LabelAirTime": "Sendetid", + "LabelRuntimeMinutes": "Spilletid (minutter)", + "LabelCustomRating": "Tilpasset aldersgrense", + "LabelOriginalAspectRatio": "Opprinnelig sideforhold", + "Label3DFormat": "3D-format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} nedlastinger", + "HashMatch": "Hashtreff", + "EnableExternalVideoPlayers": "Aktiver eksterne videoavspillere", + "EnableExternalVideoPlayersHelp": "En ekstern avspillingsmeny vil bli vist under oppstart av videoavspilling.", + "HeaderSpecialEpisodeInfo": "Spesial Episode info", + "LabelAirsDuringSeason": "Sendes i løpet av sesongen", + "LabelAirsAfterSeason": "Sendes etter sesongen", + "LabelAirsBeforeEpisode": "Sendes før episode", + "HeaderExternalIds": "Eksterne ID-er", + "HeaderDisplaySettings": "Skjerminnstillinger", + "PlaylistOrder": "Rekkefølge på spilleliste", + "CollectionOrder": "Rekkefølge på samling", + "LabelDisplayOrder": "Visningsrekkefølge", + "LabelFileOrder": "Filrekkefølge", + "Display": "Skjerm", + "Countries": "Land", + "Genres": "Sjangere", + "Studios": "Studioer", + "Tags": "Tagger", + "Links": "Lenker", + "Movie": "Film", + "Program": "Program", + "Channel": "Kanal", + "Episode": "Episode", + "Season": "Sesong", + "HeaderMetadataSettings": "Metadata innstilinger", + "People": "Personer", + "Number": "Nummer", + "Lock": "Lås", + "HeaderScreenLocked": "Skjerm låst", + "HeaderUnlockControls": "Lås opp kontroller", + "HeaderTapToUnlock": "Trykk for å låse opp", + "LabelMetadataDownloadLanguage": "Foretrukket språk for nedlasting av metadata", + "LabelImageDownloadLanguage": "Foretrukket nedlastingsspråk for bilder", + "LabelLockItemToPreventChanges": "Lås dette elementet for å hindre fremtidige endringer", + "LockThisField": "Lås dette feltet for å hindre fremtidige endringer under oppfrisking av metadata", + "MessageLeaveEmptyToInherit": "La være blank for å arve innstillinger fra et foreldre element, eller den globale standard verdien.", + "LabelCountry": "Land", + "LabelCertificationCountry": "Sertifiseringsland", + "CertificationCountryHelp": "Dette vil påvirke hvilket innholdsvurderingssystem som brukes.", + "LabelDynamicExternalId": "{0} ID", + "LabelBirthYear": "Fødselsår", + "LabelBirthDate": "Fødselsdato", + "LabelDeathDate": "Dødsdato", + "LabelEndDate": "Sluttdato", + "LabelSeasonNumber": "Sesongnummer", + "LabelEpisodeNumber": "Episodenummer", + "LabelTrackNumber": "Spornummer", + "LabelNumber": "Nummer", + "LabelDiscNumber": "Disknummer", + "LabelParentNumber": "Overordnet nummer", + "SortName": "Sorteringstittel", + "OriginalTitle": "Original tittel", + "ReleaseDate": "Utgivelsesdato", + "Continuing": "Fortsetter", + "Ended": "Avsluttet", + "HeaderEnabledFields": "Aktiverte felt", + "HeaderEnabledFieldsHelp": "Fjern merket for et felt for å låse det og hindre at dataene endres.", + "Backdrops": "Bakgrunner", + "Images": "Bilder", + "Runtime": "Spilletid", + "ProductionLocations": "Produksjonssteder", + "BirthLocation": "Fødested", + "ParentalRating": "Aldersgrense", + "PlayCount": "Antall avspillinger", + "Name": "Navn", + "Overview": "Oversikt", + "LabelType": "Type", + "LabelPersonRole": "Rolle", + "LabelPersonRoleHelp": "Eksempel: Is bil fører", + "Actor": "Skuespiller", + "Composers": "Komponister", + "Composer": "Komponist", + "Director": "Regissør", + "GuestStar": "Gjeste skuespiller", + "Producer": "Produsent", + "Writer": "Manus", + "MessageNoSyncJobsFound": "Ingen nedlastinger funnet. Opprett nedlastingsjobber ved hjelp av \"Last ned\"-knappene som finnes i hele appen.", + "MessageNoDownloadsFound": "Ingen offline nedlastinger. Gjør mediene tilgjengelig i frakoblet modus ved å klikke \"Last ned\" i hele appen.", + "InstallingPackage": "Installerer {0}", + "PackageInstallCompleted": "{0} installering fullført.", + "PackageInstallFailed": "{0} installasjon feilet.", + "PackageInstallCancelled": "{0} installasjon avbrutt.", + "SeriesYearToPresent": "{0} - Nåværende", + "OneDevice": "1 enhet", + "DeviceCountValue": "{0} Enheter", + "OneLog": "1 logg", + "LogCountValue": "{0} logger", + "OneVote": "1 stemme", + "VoteCountValue": "{0} stemmer", + "OneLike": "1 liker", + "LikeCountValue": "{0} liker", + "OneUser": "1 bruker", + "UserCountValue": "{0} brukere", + "OneLibrary": "1 bibliotek", + "LibraryCountValue": "{0} biblioteker", + "ValueOneItem": "1 element", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episoder", + "Albums": "Album", + "Song": "Sang", + "Songs": "Sanger", + "Authors": "Forfattere", + "Books": "Bøker", + "AudioBooks": "Lydbøker", + "HeaderAudioBooks": "Lydbøker", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Oppgi ett eller flere søke kriterier. Fjern kriterie for å øke søke resultater.", + "PleaseEnterNameOrId": "Vennligst skriv ett navn eller en ekstern id.", + "MessageItemSaved": "Element lagret.", + "SearchResults": "Søkeresultater", + "ServerNameIsRestarting": "Emby Server - {0} starter på nytt.", + "ServerNameIsShuttingDown": "Emby Server - {0} avsluttes.", + "HeaderDeleteItems": "Slett elementer", + "ConfirmDeleteItems": "Sletting av disse elementene vil slette dem fra både filsystemet og mediebiblioteket .", + "PleaseRestartServerName": "Start Emby Server på nytt på {0}", + "ConvertingDots": "Konverterer...", + "LabelSyncNoTargetsHelp": "Det ser ikke ut til at du har noen applikasjoner som støtter nedlasting.", + "DownloadingDots": "Laster ned...", + "LearnMore": "Lær mer", + "LabelBitrateMbps": "Bithastighet (Mbps)", + "ConvertUnwatchedVideosOnly": "Konverter bare ikke-spilte videoer", + "SyncUnwatchedVideosOnly": "Last bare ned uspilte videoer", + "ConvertUnwatchedVideosOnlyHelp": "Bare videoer som ikke er merket som fullstendig avspilt, konverteres.", + "SyncUnwatchedVideosOnlyHelp": "Bare videoer som ikke er merket som fullstendig spilt, lastes ned, og videoer fjernes fra enheten når de spilles av i sin helhet.", + "AutomaticallySyncNewContent": "Last ned nytt innhold automatisk", + "AutomaticallySyncNewContentHelp": "Nytt innhold lagt til denne mappen blir automatisk lastet ned til denne enheten.", + "AutomaticallyConvertNewContent": "Konverter nytt innhold automatisk", + "AutomaticallyConvertNewContentHelp": "Nytt innhold lagt til denne mappen blir automatisk konvertert.", + "LabelItemLimit": "Elementgrense", + "ConvertItemLimitHelp": "Valgfri. Sett en grense for hvor mange elementer som skal konvertes.", + "DownloadItemLimitHelp": "Valgfri. Sett en grense for hvor mange elementer som vil bli lastet ned.", + "PleaseSelectDeviceToSyncTo": "Velg enhet å laste ned til.", + "Screenshots": "Skjermbilder", + "MoveRight": "Flytt til høyre", + "MoveLeft": "Flytt til venstre", + "HeaderUploadNewImage": "Last opp nytt bilde", + "HeaderDeleteImage": "Slett bilde", + "ConfirmDeleteImage": "Slett bilde?", + "HeaderEditImages": "Endre bilder", + "Settings": "Innstillinger", + "ShowIndicatorsFor": "Vis indikatorer", + "Episodes": "Episoder", + "Programs": "Programmer", + "HeaderCastCrew": "Skuespillere", + "DvrSubscriptionRequired": "Emby Direkte TV og DVR krever et aktivt {0}Emby Premiere abonnement{1}.", + "HeaderCancelRecording": "Avbryt opptak", + "HeaderKeepRecording": "Behold opptak", + "HeaderCancelSeries": "Avbryt serieopptak", + "HeaderKeepSeries": "Behold serie", + "HeaderLearnMore": "Lær mer", + "SeriesSettings": "Serieopptak innstillinger", + "HeaderRecordingOptions": "Opptak innstillinger", + "HeaderDoNotRecord": "Ikke ta opp", + "HeaderSeriesOptions": "Serie innstillinger", + "Layout": "Layout", + "Channels": "Kanaler", + "ChannelNameOnly": "Kun kanal {0}", + "Anytime": "Enhver tid", + "AnyLanguage": "Alle språk", + "AroundTime": "Rundt {0}", + "HeaderLatestMovies": "Siste Filmer", + "All": "Alle", + "Stop": "Stopp", + "AllChannels": "Alle kanaler", + "NewEpisodesOnly": "Kun nye episoder", + "AllEpisodes": "Alle episoder", + "LabelStartWhenPossible": "Start når mulig", + "LabelStopWhenPossible": "Stopp når mulig", + "MinutesBefore": "Minutter før", + "MinutesAfter": "Minutter etter", + "SkipEpisodesAlreadyInMyLibrary": "Ikke ta opp episoder som allerede finnes i biblioteket mitt", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episoder vil bli sammenlignet med sesong- og episode nummer når de er tilgjengelige.", + "LabelKeepUpTo": "Behold opptil", + "AsManyAsPossible": "Så mange som mulig", + "DefaultErrorMessage": "Det skjedde en feil under behandling av forespørselen. Vennligst prøv igjen senere.", + "UntilIDelete": "Inntil jeg sletter", + "UntilSpaceNeeded": "Inntil lagringsplass er nødvendig", + "Categories": "Kategorier", + "Sports": "Sport", + "News": "Nyheter", + "Movies": "Filmer", + "Music": "Musikk", + "Kids": "Barn", + "MoreFromValue": "Mer fra {0}", + "DiedValue": "Døde: {0}", + "BornValue": "Født: {0}", + "EnableColorCodedBackgrounds": "Bruk fargede bakgrunner på serier, basert på deres kategori", + "SortChannelsBy": "Sorter kanaler etter", + "ChannelNumber": "Kanalnummer", + "HeaderBenefitsEmbyPremiere": "Fordeler med Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Vennligst nyt ett minutt av avspilling. Takk for at du prøver Emby.", + "HeaderTryPlayback": "Prøv tilbakespilling", + "HowDidYouPay": "Hvordan betalte du?", + "IHaveEmbyPremiere": "Jeg har Emby Premiere", + "IPurchasedThisApp": "Jeg har kjøpt denne appen", + "ButtonRestorePreviousPurchase": "Gjenopprett kjøp", + "ButtonUnlockWithPurchase": "Lås opp ved kjøp", + "ButtonUnlockPrice": "Lås opp {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere månedlig {0}", + "HeaderAlreadyPaid": "Allerede betalt?", + "ButtonPlayOneMinute": "Spill av ett minutt", + "PlaceFavoriteChannelsAtBeginning": "Plasser favorittkanaler i starten", + "HeaderUnlockFeature": "Lås opp funksjon", + "MessageDidYouKnowCinemaMode": "Visste du at med Emby Premiere kan du forbedre opplevelsen din med funksjoner som kinointroer?", + "HeaderPlayMyMedia": "Spill min media", + "HeaderDiscoverEmbyPremiere": "Opplev Emby Premiere", + "HeaderNowPlaying": "Spilles Nå", + "Items": "Elementer", + "AppName": "Applikasjonsnavn", + "OneChannel": "En kanal", + "ConfirmRemoveDownload": "Fjern nedlastet?", + "ConfirmRemoveItem": "Fjerne element?", + "RemoveDownload": "Fjern nedlasting", + "ConfirmCancelConversion": "Avbryte konvertering?", + "CancelConversion": "Avbryt konvertering", + "KeepDownload": "Behold nedlasting", + "AddedOnValue": "Lagt til {0}", + "RemovingFromDevice": "Fjerner fra enheten", + "KeepOnDevice": "Behold på enhet", + "CancelDownload": "Avbryt nedlasting", + "SyncJobItemStatusReadyToTransfer": "Klar til overføring", + "SyncJobItemStatusSyncedMarkForRemoval": "Fjerner fra enheten", + "SyncJobItemStatusQueued": "Kø", + "SyncJobItemStatusConverting": "Konverterer", + "SyncJobItemStatusTransferring": "Overfører", + "SyncJobItemStatusSynced": "Nedlastet", + "Failed": "Mislyktes", + "SyncJobItemStatusRemovedFromDevice": "Fjernet fra enhet", + "Cancelled": "Avbrutt", + "Retry": "Prøv igjen", + "Continue": "Fortsett", + "ContinueInSecondsValue": "Fortsett om {0} sekunder", + "HeaderRemoteControl": "Fjernkontroll", + "Disconnect": "Koble fra", + "EnableDisplayMirroring": "Aktiver skjermspeiling", + "RemoteAccess": "Fjerntilgang", + "HeaderPlayOn": "Spill på enhet", + "Quality": "Kvalitet", + "Auto": "Automatisk", + "AndroidUnlockRestoreHelp": "For å gjenopprette tidligere kjøp, må du forsikre deg om at du er logget på enheten med samme Google- (eller Amazonkonto) som opprinnelig gjorde kjøpet. Pass på at appbutikken er aktivert og ikke begrenset av foreldrekontroll,samt sørg for at du har en aktiv internettforbindelse. Du må bare gjøre dette en gang for å gjenopprette ditt tidligere kjøp.", + "HeaderAspectRatio": "Sideforhold", + "Original": "Original", + "Fill": "Fyll ut", + "Cover": "Omslagsbilde", + "MessageNoServersAvailableToConnect": "Ingen servere tilgjengelig for å koble til. Hvis du har blitt invitert til å dele en server, må du akseptere den nedenfor eller ved å klikke på lenken i e-posten.", + "MessagePlayAccessRestricted": "Avspilling av dette innholdet er for tiden begrenset. Ta kontakt med Emby Server-administratoren for mer informasjon.", + "Accept": "Aksepter", + "Reject": "Avvis", + "Connect": "Koble til", + "HeaderMyMedia": "Min Media", + "HeaderMyMediaSmall": "Min Media (liten)", + "LatestFromLibrary": "Siste {0}", + "HeaderLatestEpisodes": "Siste episoder", + "ContinuePlaying": "Fortsett å spille av", + "ContinueWatching": "Fortsett å se på", + "HeaderLatestChannelMedia": "Siste kanalelementer", + "HeaderContinueWatching": "Fortsett å se på", + "HeaderContinueListening": "Fortsett å høre på", + "HeaderActiveRecordings": "Aktive opptak", + "HeaderLatestRecordings": "Siste opptak", + "LabelConvertTo": "Konverter til", + "LabelDownloadTo": "Last ned til", + "HeaderDownloadToDots": "Last ned til..", + "Next": "Neste", + "LabelSource": "Kilde", + "VersionNumber": "Versjon {0}", + "HeaderAllLanguages": "Alle språk", + "Previous": "Forrige", + "HeaderNextUp": "Neste", + "HeaderPlayNextUp": "Spill av neste", + "HeaderLatestFrom": "Siste fra {0}", + "LabelHomeScreenSectionValue": "Startskjermseksjon {0}", + "PasswordResetComplete": "Passordet har blitt tilbakestilt.", + "PasswordSaved": "Passord lagret.", + "SettingsSaved": "Innstillinger lagret.", + "Upcoming": "Kommende", + "HeaderSelectImageFile": "Velg bildefil", + "None": "Ingen", + "More": "Mer", + "Up": "Opp", + "Down": "Ned", + "Home": "Hjem", + "Back": "Tilbake", + "Random": "Tilfeldig", + "Playback": "Avspilling", + "Favorites": "Favoritter", + "HeaderHomeScreen": "Hjemskjerm", + "HeaderLatestChannelItems": "Siste kanal elementer", + "HeaderLibraryOrder": "Bibliotekenes rekkefølge", + "HeaderOnNow": "På nå", + "HeaderForKids": "For barn", + "HeaderPlaybackError": "Avspillingsfeil", + "PlaybackErrorNotAllowed": "Du er for øyeblikket ikke autorisert til avspilling dette innholdet. Ta kontakt med systemadministratoren for detaljer.", + "RateLimitExceeded": "Kontoen din har overskredet maksimalt tillatte stømmegrense satt av din Emby Server administrator. Vennligst kontakt dem for assistanse.", + "PlaybackErrorNoCompatibleStream": "Ingen kompatible strømmer er tilgjengelige for øyeblikket. Prøv igjen senere eller kontakt systemadministratoren for detaljer.", + "PlaybackErrorPlaceHolder": "Sett inn disken for å spille av denne filmen.", + "PlaybackErrorNoPlayableItems": "Ingen spillbare elementer ble funnet. Prøver du å spille av en tom katalog?", + "Guide": "Guide", + "Games": "Spill", + "GameSystem": "Spillesystem", + "Suggestions": "Forslag", + "HeaderFavoriteChannels": "Favorittkanaler", + "HeaderFavoriteCollections": "Favorittsamlinger", + "HeaderFavoritePlaylists": "Favorittspillelister", + "Collection": "Samling", + "Collections": "Samlinger", + "LabelSelectFolderGroups": "Gruppér innhold automatisk etter følgende grupper til visninger som filmer, musikk og TV:", + "LabelSelectFolderGroupsHelp": "Mapper som ikke er merket vil kun bli vist i sin egen visning.", + "Mute": "Demp", + "Unmute": "Lyd på", + "Folder": "Mappe", + "Folders": "Mapper", + "FileName": "Filnavn", + "DisplayInOtherHomeScreenSections": "Vis i sekundær hjemskjerm seksjoner som nyeste media og fortsett å se på", + "DisplayInMyMedia": "Vis på hjemskjerm", + "Shows": "Programmer", + "MoviesAndShows": "Filmer og serier", + "HeaderMusicVideo": "Musikkvideo", + "HeaderMusicVideos": "Musikkvideoer", + "MusicVideos": "Musikkvideoer", + "Videos": "Videoer", + "MixedContent": "Blandet innhold", + "HomeVideos": "Hjemmevideoer", + "HomeVideosAndPhotos": "Hjemmevideoer og bilder", + "TVShows": "TV-serier", + "HeaderLibraryFolders": "Biblioteksmapper", + "HeaderTermsOfPurchase": "Kjøpsbetingelser", + "PrivacyPolicy": "Personvernerklæring", + "TermsOfUse": "Brukervilkår", + "HeaderRepeatMode": "Gjentakelsesmodus", + "HeaderToneMapping": "Tonekartlegging", + "RepeatOne": "Gjenta en", + "RepeatAll": "Gjenta alle", + "LabelDefaultScreen": "Standard skjerm", + "ConfirmEndPlayerSession": "Vil du avslutte Emby på {0}?", + "Yesterday": "I går", + "Yes": "Ja", + "No": "Nei", + "HeaderScanLibraryFiles": "Skann biblioteksfiler", + "LiveTV": "Direkte TV", + "Schedule": "Planlagt", + "Recordings": "Opptak", + "ScanForNewAndUpdatedFiles": "Se etter nye og oppdaterte filer", + "NewVersionOfXAvailableForY": "{0} er tilgjengelig for {1}", + "DirectStreamHelp1": "Mediet er kompatibelt med enheten med oppløsning og medietype (H.264, AC3, etc.), men er i en inkompatibel filbeholder (.mkv, .avi, .wmv, etc.). Videoen vil bli pakket på nytt før den sendes til enheten.", + "DirectStreamHelp2": "Direkte strømming av en fil bruker veldig lite prosesseringskrefter og uten tap av videokvalitet.", + "MediaIsBeingConverted": "Mediet blir konvertert til et format som er kompatibel med enheten som spiller av mediet.", + "StatsForNerds": "Statistikk for nerder", + "HeaderHardwareAcceleratedDecoding": "Maskinvareakselerert dekoding", + "HeaderHardwareAcceleratedEncoding": "Maskinvareakselerert enkoding", + "HeaderDirectPlay": "Direkte avspilling", + "DirectPlaying": "Direkte avspilling", + "DirectStreaming": "Direkte strømming", + "Transcode": "Transkode", + "Transcoding": "Transkoding", + "ContainerBitrateExceedsLimit": "Reduserer bitraten på grunn av innstilling for kvalitet", + "VideoCodecNotSupported": "Konverterer video til kompatibel kodek", + "AudioCodecNotSupported": "Konverterer lyd til kompatibel kodek", + "SubtitleCodecNotSupported": "Konverterer undertekster direkte inn i video", + "DirectPlayError": "Gjenoppstår fra avspillingsfeil", + "ContainerNotSupported": "Konverterer til kompatibel konteiner", + "VideoLevelNotSupported": "Konverterer til kompatibelt videonivå", + "AudioBitrateNotSupported": "Konverterer til kompatibelt lydbitrate", + "AudioChannelsNotSupported": "Konverterer til kompatibelt antall av lydkanaler", + "VideoResolutionNotSupported": "Konverterer til kompatibelt videooppløsning", + "AudioProfileNotSupported": "Konverterer til kompatibel lydprofil", + "AudioSampleRateNotSupported": "Konverterer til kompatibel lydsamplingsfrekvens", + "AnamorphicVideoNotSupported": "Anamorfisk video ikke støttet", + "InterlacedVideoNotSupported": "Avfletter video", + "SecondaryAudioNotSupported": "Velger sekundært lydspor", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "Det oppstod en feil under fjerning av Emby Connect-kontoen. Vennligst kontroller at du har en aktiv Internettforbindelse og prøv igjen.", + "HeaderEmbyAccountRemoved": "Emby konto fjernet", + "MessageEmbyAccontRemoved": "Emby konto er blitt fjernet fra denne brukeren.", + "HeaderInvitationSent": "Invitasjon sendt", + "Offline": "Frakoblet", + "HeaderSignUp": "Registrering", + "ServerDownloadMessage": "For å laste ned og installere gratis Emby Server besøk {0}", + "ServerDownloadMessageWithoutLink": "For å laste ned og installere gratis Emby Server besøk Emby nettsiden.", + "MessageInvitationSentToUser": "En e-post har blitt sent til {0} med oppfordring til å godta invitasjonen din.", + "MessageInvitationSentToNewUser": "En e-post er blitt sent til {0} som inviterer dem til å registrere med Emby.", + "GuestUserNotFound": "Bruker ikke funnet. Vennligst sjekk av brukernavn er korrekt og prøv igjen. Eller prøv med deres e-postadresse.", + "ErrorReachingEmbyConnect": "Det oppstod en feil med å nå Emby Connect-tjeneren. Kontroller at du har en aktiv Internettilkobling og prøv igjen.", + "ErrorAddingEmbyConnectAccount1": "Det oppstod en feil ved å legge den Emby Connect-kontoen til. Har du opprettet en Emby-konto? Registrer deg her {0}.", + "ErrorAddingEmbyConnectAccount2": "Hvis du fortsatt har problemer, vennligst send en epost til {0} fra e-postadressen brukt til Emby-kontoen.", + "ErrorAddingGuestAccount1": "Det oppstod en feil ved å legge til den Emby Connect-kontoen. Har din gjest opprettet en Emby-konto? De kan registrere seg her {0}.", + "ErrorAddingGuestAccount2": "Hvis du fortsatt har problemer, vennligst send en e-post til {0}, og inkluderer e-postadressen din, så vel som deres.", + "MessageEmbyAccountAdded": "Emby-konto er blitt lagt til denne brukeren.", + "MessagePendingEmbyAccountAdded": "Emby-kontoen er lagt til denne brukeren. En e-post vil bli sendt til eieren av kontoen. Invitasjonen må bekreftes ved å klikke på en lenke i e-posten.", + "HeaderEmbyAccountAdded": "Emby-konto lagt til", + "Skip": "Hopp over", + "HeaderAdditionalParts": "Tilleggsdeler", + "ButtonGenerateNewPin": "Generer ny PIN", + "ConnectLoginHelp1": "Med Emby Connect kan du enkelt få tilgang til Emby Server uansett hvor du er og dele servere med familie og venner.", + "CreatePinErrorMessage": "Det oppstod en feil under oppretting av PIN-koden. Vennligst klikk Generer Ny PIN for å prøve igjen.", + "PinExpiredMessage": "PIN-koden er utløpt. Vennligst klikk generer ny PIN og prøv igjen.", + "ConnectPinCodeHeader": "For å logge på med Emby Connect, bruk en mobil enhet eller datamaskin for å besøke {0} og skriv inn følgende PIN-kode:", + "LabelSubtitlePlaybackMode": "Undertekstmodus", + "ErrorDeletingItem": "Det oppstod en feil ved å slette elementet fra Emby Server. Vennligst sjekk at Emby Server har skrivetilgang til mediemappen og prøv igjen.", + "NoSubtitles": "Ingen undertekster", + "Default": "Standard", + "Absolute": "Absolutt", + "Smart": "Smart", + "Small": "Liten", + "Smaller": "Mindre", + "Medium": "Middels", + "Large": "Stor", + "Larger": "Større", + "ExtraLarge": "Ekstra stor", + "ExtraSmall": "Ekstra liten", + "Forced": "Tvunget", + "External": "Ekstern", + "HeaderEmbeddedTitle": "Innebygget tittel", + "OnlyForcedSubtitles": "Bare tvungne undertekster", + "AlwaysPlaySubtitles": "Spill alltid av undertekster", + "DefaultSubtitlesHelp": "Undertekster lastes inn basert på standard og tvunget flagg i den innebygde metadata. Språkpreferanser betraktes når flere alternativer er tilgjengelige.", + "SmartSubtitlesHelp": "Undertekster som samsvarer med språkinnstillingene vil lastes inn når lyden er på et fremmed språk.", + "HeaderSubtitleSettings": "Innstillinger for undertekst", + "HeaderSubtitleAppearance": "Undertekstutseende", + "OnlyForcedSubtitlesHelp": "Kun undertekster markert som tvunget vil lastes inn.", + "AutoSelectHearingImpairedHelp": "Teksting som samsvarer med språkpreferansen, lastes inn, og det gis en preferanse til spor som er merket som hørselshemmede (SDH).", + "AlwaysPlaySubtitlesHelp": "Undertekster som samsvarer med språkinnstillingene vil lastes inn uavhengig av lydspråk.", + "NoSubtitlesHelp": "Undertekster vil ikke bli lastet som standard. Det kan fortsatt aktiveres manuelt ved avspilling.", + "LabelPreferredSubtitleLanguage": "Foretrukket språk for undertekst", + "LabelTextSize": "Tekststørrelse", + "TheseSettingsAffectSubtitlesOnThisDevice": "Disse innstillingene påvirker undertekster på denne enheten", + "LabelDropShadow": "Bakgrunnsskygge", + "LabelTextBackgroundColor": "Bakgrunnsfarge for tekst", + "LabelWindowBackgroundColor": "Bakgrunnsfarge for tekst", + "LabelFont": "Skrifttype", + "LabelTextColor": "Tekstfarge", + "LabelBackgroundColor": "Bakgrunnsfarge", + "LabelBackgroundOpacity": "Ugjennomsiktighet i bakgrunnen", + "Raised": "Fremhevet", + "Depressed": "Nedtrukket", + "Uniform": "Enhetlig", + "DropShadow": "Bakgrunnsskygge", + "SmallCaps": "Små bokstaver", + "SubtitleAppearanceSettingsDisclaimer": "Disse innstillingene gjelder ikke for grafiske undertekster (PGS, DVD, osv.), eller undertekster som har egne stiler innebygd (ASS / SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Venter på WiFi", + "WifiRequiredToDownload": "Nedlasting krever WiFi for å fortsette.", + "DownloadOnlyOnWifi": "Nedlasting kun over WiFi", + "LabelMusicDownloadQuality": "Nedlastingskvalitet for musikk", + "MusicDownloadQualityHelp": "Lydfiler med høyere bitrate vil bli konvertert av Emby Server. Velg en høyere verdi for bedre kvalitet, eller en lavere verdi for å bevare lokal lagringsplass.", + "HeaderDownloadSettings": "Innstillinger for nedlasting", + "LabelDownloadLocation": "Nedlastingssted", + "BrowseForFolder": "BlaEtterMappe", + "Unlimited": "Ubegrenset", + "NoLimit": "No limit", + "Hide": "Gjem", + "HeaderKeepWatching": "Forsett å se på", + "HeaderNextEpisode": "Neste episode", + "AudioBitDepthNotSupported": "Konverterer til kompatibel lydbitdybde", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Konverterer til kompatibel videoprofil", + "VideoFramerateNotSupported": "Konverterer til kompatibel videobildefrekvens", + "VideoBitDepthNotSupported": "Konverterer til kompatibel videobitdybde", + "RefFramesNotSupported": "Konverterer til kompatibelt antall av videoreferansebilder", + "ErrorConnectServerUnreachable": "Det oppsto en feil ved å utføre den forespurte operasjonen. Serveren din kan ikke kontakte vår Emby Connect Server på {0}. Vær sikker på at serveren din har en aktiv internettforbindelse, og at kommunikasjonen blir tillatt av en brannmur eller sikkerhetsprogramvare du har installert.", + "HeaderStopRecording": "Stopp Opptaket", + "ManageRecording": "Administrer opptak", + "LabelDropImageHere": "Dra og slipp bildet her, eller klikk for å velge et bilde å laste opp.", + "MessageFileReadError": "En feil oppstod når filen skulle leses. Vennligst prøv igjen.", + "Browse": "Utforsk", + "HeaderUploadImage": "Last opp bilde", + "HeaderAddUpdateImage": "Legg til/oppdater bilde", + "HeaderShowFields": "Vis felt", + "LabelView": "Se", + "LabelImageType": "Bildetype", + "Upload": "Last opp", + "Primary": "Primær", + "PrimaryImageBlur": "Uskarphet i primærbildet", + "Art": "Omslagskunst", + "Backdrop": "Bakgrunn", + "Banner": "Banner", + "Box": "Boks", + "BoxRear": "Boks (bakside)", + "Disc": "Disk", + "Logo": "Logo", + "LogoDark": "Logo (mørk versjon)", + "LogoLight": "Logo (lys versjon)", + "LogoLightColor": "Logo (lys med farge)", + "Menu": "Meny", + "Screenshot": "Skjermdump", + "Thumb": "Miniatyr", + "HeaderAudioSettings": "Lyd Innstillinger", + "LabelAudioLanguagePreference": "Foretrukket språk for lydspor", + "LabelPlayDefaultAudioTrack": "Bruk standard lydspor uavhengig av språk", + "HeaderVideoQuality": "Video kvalitet", + "CinemaModeConfigurationHelp": "Kinointroer bringer teateropplevelsen rett til stuen din med muligheten til å spille trailere og tilpassede introer før hovedfunksjonen.", + "ShowUpNextPreview": "Vis forhåndsvisning av neste", + "ShowUpNextPreviewHelp": "Vis informasjon for neste element nær slutten av det gjeldende.", + "PlayNextEpisodeAutomatically": "Spill av neste episode automatisk", + "LabelMaxChromecastBitrate": "Kvalitet på Chromecast-strømming", + "LabelSkipBackLength": "Hopp tilbake lengde", + "LabelSkipForwardLength": "Hopp fremover lengde", + "EnableCinemaMode": "Aktiver kinointroer", + "LabelInternetQuality": "Kvalitet på ekstern strømming", + "LabelCellularQuality": "Ekstern strømming kvalitet (mobilnett)", + "HeaderMusicQuality": "Kvalitet for musikk", + "LabelHomeNetworkQuality": "Kvalitet på strømming hjemme", + "HeaderLatestMedia": "Nyeste media", + "HeaderRestartingEmbyServer": "Starter Emby Server på nytt", + "RestartPleaseWaitMessage": "Vennligst vent mens Emby Server avsluttes og startes på nytt. Dette kan ta ett minutt eller to.", + "HeaderPlayNext": "Spill av neste", + "AutoBasedOnLanguageSetting": "Automatisk (basert på innstillinger for enhet)", + "SameAsMainTheme": "Samme som hovedtemaet", + "LabelDateTimeLocale": "Nasjonal innstilling for dato og klokkeslett", + "Genre": "Sjanger", + "DirectorValue": "Regissør: {0}", + "DirectorsValue": "Regissører: {0}", + "GenreValue": "Sjanger: {0}", + "GenresValue": "Sjangere: {0}", + "TagsValue": "Tagger: {0}", + "Off": "Av", + "Title": "Tittel", + "Year": "År", + "Filter": "Filter", + "Filters": "Filtre", + "Unplayed": "Ikke spilt av", + "LabelTVHomeScreen": "TV-modus hjemskjerm", + "Horizontal": "Horisontal", + "Vertical": "Vertikal", + "HeaderGroupBy": "Grupper etter", + "HeaderMediaType": "Medietype", + "GroupBySeries": "Grupper etter serie", + "HeaderVideoType": "Videotype", + "HeaderSeriesStatus": "Status på serie", + "Features": "Funksjoner", + "Trailers": "Trailere", + "Extras": "Ekstra", + "ThemeSongs": "Temasanger", + "ThemeVideos": "Temavideoer", + "HeaderFavoriteMovies": "Favoritt Filmer", + "HeaderFavoritePhotos": "Favorittbilder", + "HeaderFavoriteShows": "Favorittserier", + "HeaderFavoriteEpisodes": "Favorittepisoder", + "HeaderFavoriteVideos": "Favorittvideoer", + "HeaderFavoriteMusicVideos": "Favoritt musikkvideoer", + "HeaderFavoriteGames": "Favorittspill", + "HeaderFavoriteArtists": "Favorittartister", + "HeaderFavoriteAlbums": "Favorittalbumer", + "HeaderFavoriteSongs": "Favorittsanger", + "HeaderFavoriteAuthors": "Favorittforfattere", + "HeaderFavoriteAudioBooks": "Favorittlydbøker", + "Ascending": "Stigende", + "Descending": "Synkende", + "HeaderColorPrimaries": "Primærfarger", + "HeaderColorSpace": "Fargeutvalg", + "HeaderColorTransfer": "Fargeoverføring", + "HeaderVideoRange": "Videoområde", + "SeriesDisplayOrderHelp": "Sorter episoder etter sendt dato, DVD-rekkefølge eller nummerering.", + "LabelVerticalPositionFromBottom": "Vertikal posisjon (fra bunn)", + "HeaderFavoritePeople": "Favorittpersoner", + "MultiSelect": "Flervalg", + "HeaderSignOut": "Logg Ut", + "HeaderSelectServer": "Velg server", + "HeaderChangeServer": "Bytt server", + "HeaderChangeUser": "Bytt bruker", + "HeaderAppSettings": "Appinnstillinger", + "HeaderLoginSettings": "Innstillinger for innlogging", + "LabelRememberLogin": "Husk innlogging", + "LabelAutomaticallySignOut": "Logg av automatisk", + "BetaTesterMessage": "Takk for at du er en Emby beta-tester! Vennligst gi tilbakemelding på {0} Testområdet for Emby Community {1}.", + "HardwareAccelerated": "Maskinvareakselerert", + "Software": "Programvare", + "Metadata": "Metadata", + "HeaderMediaInfo": "Mediainfo", + "Locked": "Låst", + "HeaderSplitVersionsApart": "Splitt versjoner fra hverandre", + "Any": "Alle", + "Admin": "Admin", + "HeaderReadMore": "Les mer", + "CustomRatingHelp": "En vilkårlig vurdering blir brukt for foreldrekontroll evalueringer, men er ikke vist. Foreldrevurderingsfeltet blir fremdeles vist.", + "KeepUpToHelp": "Opptak over grensen blir slettet når neste opptak starter. Eldste opptak blir slettet først, etter dato lagt til.", + "NoItemsMatchingFound": "Ingen elementer matchende dine søkekriterier ble funnet.", + "TwoSearchCharsRequired": "Vennligst skriv inn minst to søketegn.", + "PreventPlaybackContinuing": "Forhindre avspilling fra å fortsette uendelig ved å be om brukerinndata periodisk.", + "PromptStillWatching": "Aktivere 'Ser du fremdeles på?' melding", + "HeaderMissingMetadata": "Manglende metadata", + "HeaderIncludedIn": "Inkludert i", + "EmbyConnectUserAlreadyLinked": "Emby Connect-brukeren er allerede koblet til en annen bruker på serveren.", + "VideoFilesWillBeConvertedTo": "Konverterte videoer blir lagret som {0}.", + "VideoWillBeConvertedTo": "Videostrømmer blir konvertert til {0}, eller kopiert fra original filen hvis de er allerede {0} og kvaliteten passer med konverteringsalternativene.", + "VideoWillBeConvertedToOrCopied": "Videostrømmer blir konvertert til {0}, eller kopiert fra original filen hvis de er noen av {1}, og kvaliteten passer med konverteringsalternativene.", + "AudioWillBeConvertedTo": "Lydstrømmer blir konvertert til {0}, eller kopiert fra original filen hvis de er allerede {0} og kvaliteten passer med konverteringsalternativene.", + "AudioWillBeConvertedToOrCopied": "Lydstrømmer blir konvertert til {0}, eller kopiert fra original filen hvis de er noen av {1}, og kvaliteten passer med konverteringsalternativene.", + "HeaderSpecialKeys": "Spesialnøkler", + "FollowingSpecialKeys": "Disse spesialnøklene er støttet på fleste tastatur og fjernkontroller:", + "HeaderDeleteSeries": "Slett serie", + "HeaderDeleteLastPlayedEpisode": "Slett siste episode avspilt", + "HeaderConnectingToServer": "Kobler til server", + "ServerNameValue": "Servernavn: {0}", + "DomainValue": "Domene: {0}", + "RatedValue": "Vurdert {0}", + "LocalServerRedirectMessage": "Du blir nå videresendt til domenet eiet og operert av administratoren til den serveren du har valgt å koble til:", + "AllMediaOwnedHosted": "All media er vertet og administrert av eieren av {0}.", + "EnableResolutionSwitching": "Match videooppløsning", + "EnableResolutionSwitchingHelp": "Dette gjør det mulig for Emby å forandre oppløsningen til samme verdi videoen var kodet til før avspillingen ble startet. Dette kan hjelpe med å minimalisere hakking som du ellers kan se under avspilling av videoer som ikke matcher bra.", + "EnableDisplayRefreshRateSwitching": "Aktiver visningoppfriskingfrekvensbytte", + "EnableDisplayRefreshRateSwitchingHelp": "Dette gjør det mulig for Emby å endre visningoppfriskingfrekvensen til samme verdi (eller flere av) som bildefrekvensen videoen var kodet til før avspilling ble startet. Dette kan hjelpe med å minimalisere hakking som du ellers kan se under avspilling av videoer som ikke matcher bra.", + "RememberSelectedAudioTracks": "Husk lydsporvalgene", + "RememberSelectedSubtitleTracks": "Husk undertekstsporvalgene", + "RememberSelectedSubtitleTracksHelp": "Undertekstsporvalgene blir husket på et per video basis og brukt på nytt når samme video spilles igjen.", + "RememberSelectedAudioTracksHelp": "Lydsporvalgene blir husket på et per video basis og brukt på nytt når samme video spilles igjen.", + "ClearSavedTrackSelections": "Fjern lagrede sporvalg", + "HeaderClearTrackSelections": "Fjern lagrede sporvalg", + "QuestionClearSavedTracks": "Fjern alle lagrede sporvalg?", + "LabelChannelTags": "Kanaltagger", + "AfterThisPlaysConfirmation": "Etter denne er avspilt, vil du fortsette å spille eller fjerne musikken du tidligere køet?", + "Keep": "Behold", + "Clear": "Tøm", + "HeaderClearFilters": "Tøm filtre", + "HeaderSearchForImages": "Søk etter bilder", + "HeaderSearchNewImage": "Søk etter nytt bilde", + "HeaderSearchForAnImage": "Søk etter et bilde", + "DragDropToReorder": "Dra og slipp for å reorganisere", + "HeaderAddImageFromUrl": "Legg til bilde fra URL", + "HeaderSetImageFromUrl": "Angi bilde fra URL", + "LabelUrl": "Nettadresse", + "LabelChannelNumber": "Kanalnummer", + "LabelGuideDataChannel": "Tv Guide-datakanal", + "GuideDataSource": "TV-Guide datakilde", + "HeaderCopyToClipboard": "Kopier til utklippstavlen", + "TimeRemainingValue": "{0} gjenstående", + "LabelResumeRewindSeconds": "Når du gjenopptar, automatisk spol tilbake", + "ResumeRewindSecondsHelp": "Dette kan hjelpe deg å huske hvor du satt på pause. Dette gjelder for den første gjenopptakelsen og ikke hver individuelle pause under avspillingen.", + "HeaderSavePlayQueueToPlaylist": "Lagre spillekø til spilleliste", + "EnableLogoImagesAsTitle": "Vis logobilder som titler på detaljskjermene", + "EnableLogoImagesAsTitleHelp": "Når tilgjengelig, kan logobilder bli brukt i stedet for titteltekst på video, serier og andre detaljskjermer. Tittelen vil reversere til tekst når et logobilde ikke er tilgjengelig.", + "LabelNowPlayingAudioBackgroundStyle": "Spiller nå lydbakgrunnsstil", + "LabelNowPlayingVideoBackgroundStyle": "Spiller nå videobakgrunnsstil", + "NowPlayingVideoBackgroundStyleHelp": "Avgjør bakgrunnstilen når videoavspillingen blir kontrollert med fjernkontroll på en annen enhet.", + "Rotation": "Rotering", + "Minutes": "Minutter", + "LabelMaxRecordingLength": "Maks opptakslengde", + "MaxRecordingLengthHelp": "Begrens opptakstiden til en bestemt mengde tid, uavhengig av varigheten på kringkastingen. Sett til 0 for ingen grense.", + "RemoteWAN": "Ekstern (WAN) Adresse", + "HeaderLastConnectedTo": "Siste forbindelse til", + "Version": "Versjon", + "Keyword": "Nøkkelord", + "HeaderServerAddress": "Serveradresse", + "HeaderSkipIntro": "Hopp over intro", + "HeaderCreateRecording": "Opprett opptak", + "HeaderAddRecording": "Legg til opptak", + "HeaderChannelAndTime": "Kanal og tid", + "LabelRecordProgramOrSeriesFrom": "Ta opp et program eller serie fra", + "LabelStartTime": "Starttid", + "LabelEndTime": "Sluttid", + "LabelFrequency": "Frekvens", + "Recurring": "Regelmessig", + "Once": "En gang", + "Start": "Start", + "Unpause": "Opphev pause", + "LabelIntroSkipMode": "Hopp over intro modus", + "ShowSkipIntroButton": "Vis 'Hopp over intro' knapp", + "AutoSkipIntro": "Hopp over introer automatisk", + "DisplayRatingInformationOnVideoPlaybackStart": "Vis vurderingsinformasjon ved avspillingsstart", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Vurderingsinformasjonen vil vises kort når videoavspilling begynner.", + "IntroSkipModeHelp": "Vis en 'Hopp over intro' knapp eller hopp over introer automatisk for episoder hvor Emby har oppdaget intromarkører. Introoppdagelse må være aktivert i Emby Server biblioteksvalg.", + "EnableHomeScreenFocusPreview": "Bruk ett oppsett på hjemskjermen som viser en detaljert forhåndsvisning av valgt element", + "EnableHomeScreenFocusPreviewHelp": "Dette fungerer muligens ikke hvis din hjemskjerm inneholder en miks av forskjellige mediatyper.", + "LabelHideMediaTransportButtons": "Skjul transportknapper for videoavspiller", + "HideMediaTransportButtonsHelp": "Opprett en enklere på-skjerm-avspilling grensesnitt ved å skjule grunnleggende transportknapper som spol fremover, tilbake og pause. Du vil fremdeles være i stand til å bruke disse funksjonene ved å utnytte piltaster og OK/Return. Auto skjuler transportknapper når musaktivitet ikke er oppdaget innenfor appen.", + "ImageSizeHelp": "Sett din foretrukne størrelse for bilderutenett.", + "LabelImageSize": "Bildestørrelse", + "ThisImageIsOnlyPreview": "Bildet er kun en forhåndsvisning som ble hentet fra metadata-søkemotoren. Det faktiske bildet som Emby Server laster ned kan være forskjellig og vil være avhengig av de alternativene du konfigurerte i Emby biblioteksoppsett.", + "ResultsRangeValue": "{0} til {1} av {2}", + "NotificationsDescription": "Oppsettsvarsler for å forbli informert om viktige hendelser på din Emby Server.", + "DeleteEmbyConnectAccount": "Slett Emby Connect-konto", + "DeleteEmbyConnectAccountHelp": "For å slette din Emby Connect-konto, vennligst logg på {0}Emby-samfunnet{1} på {2}. Når innlogget, klikk brukernavnet ditt øverst til høyre, deretter klikk kontoinnstillinger og til slutt klikk slett min konto.", + "KeepPlayingInBackground": "Forsett å spille av i bakgrunnen", + "LabelVideoBackBehavior": "Virkemåte for tilbakeknapp for videospiller", + "HeaderViewLyrics": "Se sangtekster", + "HeaderViewMissingEpisodes": "Se manglende episoder", + "HeaderMissingEpisodes": "Manglende episoder", + "HeaderManageAccess": "Administrer tilgang", + "HeaderManageCollaboration": "Administrere samarbeid", + "HeaderLeaveCollaboration": "Forlat samarbeid", + "HeaderRemoveFromLibrary": "Fjern fra bibliotek", + "RemoveSharedItemConfirmation": "Er du sikker på at du ønsker å fjerne dette elementet fra biblioteket ditt? For å få den tilbake må eieren gi deg tilgang igjen.", + "SubtitlesDownloaded": "Undertekster nedlastet", + "HeaderMakePrivate": "Gjør privat", + "HeaderMakePublic": "Gjør offentlig", + "MakePublicDescription": "Alle brukere vil kunne se dette elementet. Brukere kan gis tilgang til å redigere.", + "MakePrivateDescription": "Brukere kan fortsatt gis tilgang individuelt.", + "Private": "Privat", + "Public": "Offentlig", + "Collaborative": "Samarbeid", + "PreferredShowDisplay": "Foretrukket TV-serie visning", + "ShowAllEpisodesAllSeasons": "Vis alle episoder til alle sesonger sammen", + "ShowAllEpisodesSingleSeason": "Vis alle episoder for kun singel-sesong serier", + "ShowSeasonFolders": "Alltid vis sesongmapper", + "HeaderAddAgain": "Legg til igjen", + "UpNext": "Neste", + "ItemsAlreadyInPlaylist": "Noen av disse elementene er allerede i din spilleliste.", + "ItemAlreadyInPlaylist": "Elementet er allerede i din spilleliste.", + "HeaderPlayChannel": "Spill kanal", + "LabelScreenOrientationDuringVideo": "Skjermorientering under videoavspilling", + "UseDeviceSetting": "Bruk enhetinnstilling", + "LockToLandscape": "Lås til landskap", + "UsernameForFolderHelp": "Brukernavnet som kreves for tilgang til denne mappen på ditt nettverk (hvis relevant).", + "PasswordForFolderHelp": "Passordet som kreves for tilgang til denne mappen på ditt nettverk (hvis relevant).", + "ShowMediaInfoOnDetailScreens": "Vis full media nederst på lyd- og videodetaljskjermer", + "ForgotPasswordNoUserFound": "Ingen brukere ble funnet med oppgitt navn. Vennligst forsøk igjen, eller la navnet være blank for å nullstille passordet for alle brukere på denne serveren.", + "Silver": "Sølv", + "DimGray": "Dempet grå", + "DarkGray": "Mørk grå", + "LightGray": "Lys grå", + "Black": "Sort", + "Blue": "Blå", + "Cyan": "Cyan", + "Gray": "Grå", + "Green": "Grønn", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Oransje", + "Pink": "Rosa", + "Red": "Rød", + "Yellow": "Gul", + "White": "Hvit", + "Purple": "Lilla", + "RecentlyReleasedMovies": "Nylig utgitte filmer", + "RecentlyReleasedEpisodes": "Nylig utgitte episoder", + "DolbyProfile": "Dolby Profil", + "IpAddress": "IP-adresse", + "VideoType": "Videotype", + "HidePlayedMediaFrom": "Skjul avspilt media fra", + "BottomEdgePosition": "Posisjon nederst på kanten", + "VerticalPositionFromBottomScreen": "Setter vertikal posisjon til undertekster relativt til bunnen av skjermen.", + "TopEdgePosition": "Toppkantposisjon", + "TopEdgePositionHelp": "Setter høyest tillat vertikal posisjon til undertekst relativt til toppen av skjermen. Dette blir brukt når undertekster inneholder posisjoneringsinstruksjoner for å bli plassert på toppen.", + "HeaderSubtitlePosition": "Undertekstposisjon", + "TitleProfilePin": "Profil PIN-kode", + "ProfilePinConfirm": "Profil PIN-kode (bekreft)", + "SaveProfilePin": "Lagre PIN-kode", + "ProfilePinDescription": "Opprett en valgfri PIN-kode som må skrives inn når du returnerer til en Emby-app på en enhet som du allerede er logget inn på. Dette er nyttig hvis du har enheter delt mellom flere brukere. Du kan velge å aktivere det selektivt på hver enhet etter behov.", + "TitleNewEpisodes": "Nye episoder", + "EnterYourPinToContinue": "Skriv inn PIN-koden for å fortsette.", + "YourPinMustBe": "PIN-kode må være {0} sifre.", + "ForgotPin": "Glemt PIN-kode?", + "RequireEnteringPinToReturn": "Krev at jeg skriver inn PIN-koden til profilen min når jeg går tilbake til denne appen.", + "RequireEnteringPinToReturnQuestion": "Skal vi be om profil PIN-koden din når du returnerer til denne appen? Hvis denne enheten er delt mellom flere brukere, så kan din profil PIN-kode hindre de andre brukerne for å få tilgang til dine data.", + "RequireEnteringPinToReturnHelp": "Nyttig hvis denne enheten deles av flere brukere.", + "WrongPinPleaseTryAgain": "Dæven, feil PIN-kode. Vennligst forsøk igjen.", + "ProfilePinIsOn": "Profil PIN-kode er for øyeblikket på.", + "IfTryingToConnectToHttp": "Hvis du prøver å koble til Emby-serveren din ved hjelp av en HTTP-adresse, kan det hende at nettleseren din ikke tillater dette på grunn av HTTPS-krav. Prøv ett av følgende:", + "SetupHttpsForYourServer": "Sett opp {0}HTTPS for din Emby Server{1} slik at du kan koble til via HTTPS.", + "TitleUnableToReachServer": "Ikke i stand til å nå server", + "TitleUnableToReachName": "Ikke i stand til å nå {0}", + "HearingImpaired": "Hørselhemmede", + "SignIntoServerName": "Logg inn på {0}", + "About": "Om", + "Specials": "Spesielle", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detaljskjermer", + "LabelGenreDisplayLimit": "Grense for sjangervisning", + "GenreDisplayLimitHelp": "Begrense antall sjangere som vises øverst på detaljskjermene for element-", + "GenreDisplayLimitForListsHelp": "Begrense antall sjangere som vises øverst på spilleliste, samling og artistdetaljskjermer.", + "LabelGenreDisplayLimitForLists": "Grense for sjangervisning for lister", + "ShowPosterOnDetails": "Vis plakat på detaljskjermen", + "ShowPosterOnDetailsHelp": "Velg å vise en plakat på videodetaljskjermer, eller skjul den for et mer minimalt utseende som vektlegger bakgrunnen. Denne innstillingen brukes ikke på mindre skjermoppsett. Noen elementtyper ignorerer denne innstillingen.", + "EnableAppLogging": "Aktiver applogging", + "EnableAppLoggingHelp": "Logging kan redusere appytelsen og bør bare aktiveres etter behov for feilsøkingsformål. Endringer krever at du starter appen på nytt.", + "LabelSlideshowInterval": "Tid for lysbildefremvisning per lysbilde", + "TVChannelImageEditorHelp": "Flere logoversjoner støttes. Emby-apper vil automatisk velge den passende avhengig av gjeldende tema.", + "PlaySlideshow": "Spill av lysbildefremvisning", + "CheckForExistingEpisodesInAllLibraries": "Se etter eksisterende episoder i alle biblioteker", + "GroupNotificationsBySeriesOrAlbum": "Grupper varsler etter serier og album", + "ThemeSettings": "Temainnstillinger", + "FollowingActivityWillBeDisrupted": "Følgende aktivitet vil bli avbrutt og kan kreve manuell intervensjon for å starte på nytt:", + "OneActivePlaybackSession": "1 aktiv avspillingsøkt", + "NumActivePlaybackSessions": "{0} aktive avspillingsøkter", + "OneActiveRecording": "1 aktivt opptak", + "NumActiveRecordings": "{0} aktive opptak", + "PlayFromLivePosition": "Spill fra direkteposisjonen", + "PlayFromStartOfRecording": "Spill av fra starten av opptaket", + "ThisChannelIsActivelyRecording": "Denne kanalen tar aktivt opp. Hvordan vil du begynne å spille av?", + "ThemeSongVolume": "Volum på temasang", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/nl.json b/modules/common/strings/nl.json new file mode 100644 index 0000000..bbdac86 --- /dev/null +++ b/modules/common/strings/nl.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Vervang bestaande video preview miniaturen", + "ReplaceExistingThumbnailImagesHelp": "Alle bestaande video preview miniaturen worden verwijderd en nieuwe zullen worden gegenereerd, wanneer dit is ingeschakeld in de instellingen van de bibliotheek.", + "DateCreated": "Datum Aangemaakt", + "CreatedOnValue": "Aangemaakt {0}", + "UpdatedOnValue": "Bijgewerkt {0}", + "EmbyLoginTerms": "Emby is ontworpen om uw persoonlijke mediabibliotheek te helpen beheren, zoals home video's en foto's. Zie onze {0}gebruiksvoorwaarden{1}. Het gebruik van Emby software betekent dat u deze voorwaarden aanvaard.", + "MessageUnableToConnectToServer": "Het is momenteel niet mogelijk met de geselecteerde server verbinding te maken. Controleer dat deze actief is en probeer dan opnieuw.", + "EmbyIntroMessage": "Met Emby kunt u eenvoudig films, muziek en foto's naar uw telefoon, tablet en andere apparatuur streamen.", + "HeaderSignInWithConnect": "Aanmelden met Emby Connect", + "HeaderWelcomeToEmby": "Welkom bij Emby", + "HeaderNewUsers": "Nieuwe gebruikers", + "HeaderPleaseSignIn": "Meld u aan a.u.b.", + "MessageInvalidUser": "Foutieve gebruikersnaam of wachtwoord. Probeer opnieuw.", + "MessageUnlockAppWithPurchaseOrSupporter": "Ontgrendel deze functie met een kleine eenmalige aankoop, of met een actief Emby Premiere abonnement.", + "MessageUnlockAppWithSupporter": "Ontgrendel deze functie met een actief Emby Première abonnement.", + "MessageToValidateSupporter": "Als u een actieve Emby Première abonnement heeft, zorg er dan voor dat u deze activeert in uw Emby Server Dashboard door te klikken op Emby Premiere in het hoofdmenu.", + "ValueSpecialEpisodeName": "Speciaal - {0}", + "HeaderSignIn": "Aanmelden", + "Share": "Delen", + "Shared": "Gedeeld", + "Info": "Info", + "Add": "Toevoegen", + "Speed": "Snelheid", + "PlaybackSpeed": "Afspeelsnelheid", + "Chapters": "Hoofdstukken", + "Password": "Wachtwoord", + "SavePassword": "Wachtwoord bewaren", + "LabelPassword": "Wachtwoord", + "HeaderResetPassword": "Wachtwoord resetten", + "Series": "Series", + "Preview": "Voorvertoning", + "Submit": "Indienen", + "Never": "Nooit", + "Table": "Tabel", + "HeaderScheduledTasks": "Geplande taken", + "Plays": "Speelt af", + "LastUsedAddressValue": "Laatst gebruikt {0}", + "LabelKeywordType": "Sleutelwoord type", + "HeaderSelectColumns": "Selecteer kolommen", + "HeaderTopResults": "Topresultaten", + "HeaderPinSidebar": "Zijbalk vastzetten", + "Collapse": "Invouwen", + "LabelBackgroundVideoPlayback": "Video afspelen op de achtergrond", + "BackgroundVideoPlaybackHelp": "Afspelen op de achtergrond staat video toe om te blijven afspelen zelfs wanneer het scherm is uitgeschakeld.", + "AlwaysOn": "Altijd aan", + "HeadphonesOrExternalSpeakersConnected": "Hoofdtelefoon of externe luidsprekers aangesloten", + "HeaderKeyboardAndRemote": "Toetsenbord en afstandsbediening", + "NoSelectedItemsSupportOperation": "Er zijn geen items geselecteerd die deze bewerking ondersteunen.", + "NoOperationsForSelectedItems": "Er zijn geen bewerkingen beschikbaar voor de geselecteerde items.", + "UploadOnlyOnWifi": "Alleen via Wifi uploaden", + "HeaderFoldersToUpload": "Mappen om te uploaden", + "LabelPasswordConfirm": "Wachtwoord (bevestig)", + "HeaderMoveUpInOrder": "Verplaats naar boven in volgorde", + "HeaderDownUpInOrder": "Verplaats naar beneden in volgorde", + "LabelUsername": "Gebruikersnaam", + "HeaderAddServer": "Server toevoegen", + "HeaderSubtitleOffset": "Ondertitel tijdsverschil", + "Watching": "Kijken", + "HeaderRemoveFromContinueWatching": "Verwijder van doorgaan met kijken", + "RemoveThisTitleFromContinueWatching": "Verwijder deze titel van doorgaan met kijken?", + "HeaderRemoveFromContinueListening": "Verwijder van doorgaan met luisteren", + "RemoveThisTitleFromContinueListening": "Verwijder deze titel van doorgaan met luisteren?", + "HeaderIncreaseSubtitleOffset": "Vermeerder tijdsverschil ondertitel", + "HeaderDecreaseSubtitleOffset": "Verminder tijdsverschil ondertitel", + "Close": "Afsluiten", + "HeaderSeeAll": "Zie alle", + "HeaderOpenInNewWindow": "Openen in nieuw scherm", + "LabelEmail": "E-mail", + "LabelHost": "Server", + "LabelHostHelp": "Voorbeeld: 192.168.1.100 of https://myserver.com", + "LabelPort": "Poort", + "Disabled": "Uitgeschakeld", + "Uninstall": "Deïnstalleren", + "Enable": "Inschakelen", + "AllTuners": "Alle tuners", + "Disable": "Uitschakelen", + "NextValue": "Volgende: {0}", + "HeaderNextItem": "Volgend item", + "HeaderPreviousItem": "Vorig item", + "NoTrailersMessage": "Geen Trailers gevonden. Als u Trailers wilt toevoegen, installeert u de Trailer-plug-in uit de {0}Emby-plugincatalogus{1}.", + "UninstallPluginConfirmation": "Weet u zeker dat u deze plug-in wilt verwijderen?", + "HeaderUninstallPlugin": "Plug-in verwijderen", + "AreYouStillWatching": "Ben je nog aan het kijken?", + "LabelCurrentPassword": "Huidig wachtwoord", + "LabelNewPassword": "Nieuw wachtwoord", + "LabelNewPasswordConfirm": "Bevestig nieuw wachtwoord", + "HeaderRemovePassword": "Verwijder wachtwoord", + "ServerUpdateNeeded": "Deze Emby Server moet worden bijgewerkt. Om de laatste versie te downloaden, gaat u naar {0}", + "MessageThankYouForConnectSignUp": "Bedankt voor het aanmelden bij Emby Connect. Een e-mail met instructies hoe uw account bevestigd moet worden wordt verstuurd. Bevestig het account en keer terug om aan te melden.", + "MessageThankYouForConnectSignUpNoValidation": "Bedankt voor het aanmelden bij Emby Connect! U zult nu gevraagd worden om in te loggen met uw Emby Connect gegevens.", + "ErrorMessagePasswordNotMatchConfirm": "Het wachtwoord en de wachtwoordbevestiging moeten overeenkomen.", + "ErrorMessageUsernameInUse": "Deze gebruikersnaam is al in gebruik. Kies een andere en probeer het opnieuw.", + "ErrorMessageEmailInUse": "Dit emailadres is al in gebruik. Kies een ander en probeer het opnieuw, of gebruik de vergeten wachtwoord functie.", + "HeaderUpcomingOnTV": "Binnenkort op Live TV", + "HeaderOtherShowings": "Andere vertoningen", + "Showings": "Vertoningen", + "HeaderConnectToServer": "Verbind met server", + "ConnectToServerManually": "Verbind handmatig met de server", + "LabelEnterConnectUserNameHelp": "Dit is het e-mailadres dat u heeft gebruikt om uw Emby Connect account in te stellen.", + "HeaderSignInError": "Fout bij aanmelden", + "HeaderManualLogin": "Handmatig aanmelden", + "PasswordResetConfirmation": "Weet u zeker dat u het wachtwoord opnieuw in wilt stellen?", + "ContactAdminToResetPassword": "Neem contact op met de server beheerder om uw wachtwoord te resetten.", + "ForgotPasswordInNetworkRequired": "Probeer de wachtwoord herstel procedure opnieuw vanuit uw thuisnetwerk.", + "ForgotPasswordFileCreated": "Het volgende bestand met instructies hoe nu verder te gaan is gemaakt op je server:", + "ForgotPasswordFileExpiration": "De herstel pincode verloopt {0}.", + "InvalidForgotPasswordPin": "Er is een ongeldige of verlopen pincode ingegeven. Probeer opnieuw.", + "PasswordResetForUsers": "Wachtwoorden van de volgende gebruikers zijn verwijderd. Gebruik een leeg wachtwoord om aan te melden.", + "HeaderForgotPassword": "Wachtwoord vergeten?", + "ForgotPasswordUsernameHelp": "Laat dit veld leeg als u uw gebruikersnaam niet meer weet.", + "HeaderPasswordReset": "Wachtwoord opnieuw instellen", + "AttributeNew": "Nieuw", + "Done": "Klaar", + "HeaderResetToDefault": "Standaardinstellingen herstellen", + "Deinterlacing": "De-interlacing", + "HeaderBurningInSubtitles": "Ondertitels inbranden", + "Premiere": "Premiere", + "LabelPinCode": "Pincode", + "LabelLocalNetworkPinCode": "Lokale netwerkpincode", + "LabelLocalNetworkPasswordMode": "Inlogmodus lokaal netwerk", + "RequirePasswordInLocalNetwork": "Vereist een wachtwoord op het lokale netwerk", + "NoPasswordInLocalNetwork": "Geen wachtwoord vereist op het lokale netwerk", + "PinCodeInLocalNetwork": "Sta een numerieke pincode toe op het lokale netwerk", + "LocalNetworkPasswordModeHelp": "Selecteer de aanmeldingsmethode voor apparaten op hetzelfde lokale netwerk als uw Emby-server.", + "HeaderLocalNetworkAccess": "Lokale netwerktoegang", + "Live": "Live", + "Reset": "Herstel", + "Repeat": "Herhaling", + "Track": "Nummer", + "Tracks": "Sporen", + "HeaderCameraUpload": "Camera upload", + "TrackCount": "{0} nummer", + "ItemCount": "{0} items", + "NumberChannelsValue": "{0} kanalen", + "HeaderLatestMusic": "Nieuwste muziek", + "HeaderLatestAudioBooks": "Nieuwste luisterboeken", + "HeaderLatestDownloadedVideos": "Laatst gedownloade video's.", + "HeaderRecentlyPlayed": "Recent afgespeeld", + "Recent": "Recente", + "HeaderFrequentlyPlayed": "Vaak afgespeeld", + "HeaderMoreLikeThis": "Meer als dit", + "HeaderMoreLikeThisOnLiveTV": "Meer als dit op Live TV", + "OriginalAirDateValue": "Originele uitzenddatum: {0}", + "EndsAtValue": "Eindigt om {0}", + "Date": "Datum", + "AirDate": "Uitzenddatum", + "Played": "Afgespeeld", + "Daily": "Dagelijks", + "Weekly": "Wekelijks", + "RequireHashMatch": "Hash overeenkomst vereist", + "RequireHashMatchHelp": "Als u een hash-overeenkomst vereist, wordt de ondertiteling gefilterd zodat alleen de ondertitels worden opgenomen die met uw exacte videobestand getest zijn. Door dit uit te schakelen, zal het aantal overeenkomende ondertitels toenemen, maar wordt ook de kans op een verkeerd getimede of onjuiste ondertiteltekst vergroot.", + "SearchForForcedSubtitlesOnly": "Alleen geforceerde ondertitels", + "SearchForForcedSubtitlesOnlyHelp": "Door geforceerde ondertiteling te vereisen, worden de resultaten beperkt tot ondertitels die zijn getagd als in een vreemde taal.", + "LastEpisodeDateAdded": "Datum laatste aflevering toegevoegd", + "LastEpisodeDateAired": "Laatste aflevering datum uitgezonden", + "LabelPlaystate": "Afspeelstatus", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Titel aflevering", + "Audio": "Geluid", + "Video": "Video", + "Subtitle": "Ondertiteling", + "Image": "Afbeelding", + "CopyStream": "Kopieer originele stream", + "LabelAudioLayout": "Audio opmaak", + "LabelAudioCodec": "Audio codec", + "LabelAudioLanguage": "Audio taal", + "LabelSubtitleLanguage": "Taal ondertitel", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Ondertitelcodec", + "LabelParentalRating": "Kijkwijzer classificatie", + "BecauseYouLikeValue": "Omdat je {0} leuk vond", + "BecauseYouWatchedValue": "Omdat je keek naar {0}", + "DirectedByValue": "Geregisseerd door {0}", + "StarringValue": "In de hoofdrol {0}", + "Invitations": "Uitnodigingen", + "ActorAsRole": "als {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Groepeer items in collecties", + "GroupItemsIntoCollectionsHelp": "Groepeer items op basis van de collectie waaraan ze zijn toegevoegd. Het aanzetten van bepaalde filters of sorteervolgorden kan dit automatisch uitzetten.", + "GroupItemsIntoTags": "Groepeer items in labels", + "GroupItemsIntoTagsHelp": "Groepeer items op basis van de collectie waaraan ze zijn toegevoegd. Het aanzetten van bepaalde filters of sorteervolgorden kan dit automatisch uitzetten.", + "User": "Gebruiker", + "Access": "Toegang", + "Users": "Gebruikers", + "Library": "Bibliotheek", + "Devices": "Apparaten", + "Cancel": "Annuleren", + "Restart": "Herstarten", + "Shutdown": "Afsluiten", + "Logs": "Logboeken", + "Visibility": "Zichtbaarheid", + "Notifications": "Meldingen", + "SendTestNotification": "Testmelding verzenden", + "NotificationSent": "Melding verzonden", + "DeleteNotificationConfirmation": "Weet u zeker dat u deze melding wilt verwijderen?", + "DeleteNotification": "Melding verwijderen", + "AddNotification": "Melding toevoegen", + "EditNotification": "Melding bewerken", + "LimitUserEventsTo": "Beperk gebruikersgebeurtenissen tot", + "LimitLibraryEventsTo": "Beperk bibliotheekevenementen tot", + "LimitDeviceEventsTo": "Beperk apparaatgebeurtenissen tot", + "ForAdditionalNotificationOptions": "Aanvullende meldingsservices kunnen door de serverbeheerder worden geïnstalleerd in de Emby-{0}plug-in catalogus{1}.", + "Plugins": "Plug-ins", + "Systems": "Systemen", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Op ander apparaat afspelen", + "HeaderConnectionHelp": "Verbindingshulp", + "AccessRestrictedTryAgainLater": "Toegang is momenteel bepertk, probeer later opnieuw.", + "ButtonGotIt": "Begrepen", + "RememberMe": "Onthoud mij", + "EmbyServer": "Emby server", + "ManageEmbyServer": "Beheer Emby Server", + "ShutdownServer": "Emby Server Afsluiten", + "RestartServer": "Emby Server Herstarten", + "RecordingCancelled": "Opname geannuleerd", + "SeriesCancelled": "Serie geannuleerd", + "Recording": "Aan het opnemen", + "SeriesRecording": "Series aan het opnemen", + "RecordingScheduled": "Opname ingepland", + "SeriesRecordingScheduled": "Serieopname gepland", + "HeaderNewRecording": "Nieuwe opname", + "HeaderWakeServer": "Server wekken", + "AttemptingWakeServer": "Proberen de server te wekken. Een moment geduld...", + "WakeServerSuccess": "Succesvol!", + "HeaderCustomizeHomeScreen": "Startscherm aanpassen", + "WakeServerError": "Er zijn \"Wake On Lan\" pakketten naar de server verzonden, maar verbinding maken is mislukt. Het kan voorkomen dat de server wat meer tijd nodig heeft om op te starten, of misschien is Emby Server niet actief op de machine.", + "Days": "Dagen", + "Network": "Netwerk", + "Networks": "TV-Studio's", + "SortByValue": "Sorteren op {0}", + "HeaderSortBy": "Sorteren op", + "HeaderPhotoAlbums": "Foto-albums", + "Photos": "Foto's", + "HeaderAppearsOn": "Verschijnt op", + "List": "Lijst", + "HeaderRecordSeries": "Serie opnemen", + "HeaderCinemaMode": "Cinema intro's", + "Conversions": "Conversies", + "Downloads": "Downloads", + "HeaderManageDownloads": "Beheer downloads", + "InternalStorage": "Interne opslag", + "ExternalStorage": "Externe opslag", + "UploadToFollowingServers": "Uploaden naar servers", + "UploadingNumItems": "Uploaden van {0} van {1}", + "DownloadNumItems": "Downloaden {0} van {1}", + "HeaderSampleRate": "Samplesnelheid", + "HeaderReferenceFrames": "Referentie frames", + "HeaderBitDepth": "Bitdiepte", + "HeaderPixelFormat": "Pixel formaat", + "Profile": "Profiel", + "Bitrate": "Bitrate", + "Expand": "Uitbreiden", + "Container": "Container", + "Format": "Formaat", + "Path": "Pad", + "Size": "Grootte", + "Resolution": "Resolutie", + "HeaderCodecTag": "Codec tag", + "Framerate": "Framerate", + "Interlaced": "Geïnterlinieerd", + "Anamorphic": "Anamorf", + "Level": "Niveau", + "Timestamp": "Tijdstempel", + "Language": "Taal", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra data", + "HeaderHardwareAcceleratedTranscoding": "Hardwareversnelde transcodering", + "HeaderHardwareAcceleratedTranscodingDescription": "Profiteer van uw server-GPU. Emby heeft de meest geavanceerde en snelste hardwareversnelling in de branche.", + "HeaderOfflineDownloads": "Offline media", + "AndMuchMoreExclamation": "En nog veel meer!", + "HeaderOfflineDownloadsDescription": "Download media naar uw apparaten voor gemakkelijk offline gebruik.", + "LiveTvFeatureDescription": "Stream Live TV naar een Emby app, met een compatible TV tuner apparaat in uw Emby Server.", + "DvrFeatureDescription": "Plan individuele Live TV opnames, serie opnames en meer met Emby DVR.", + "CinemaModeFeatureDescription": "Cinema intro's geeft u de ware bioscoopervaring met trailers en aangepaste intro's voor de weergave van uw keuze.", + "HeaderFreeApps": "Gratis Emby Apps", + "FreeAppsFeatureDescription": "Geniet van gratis toegang tot Emby apps voor uw apparaten.", + "HeaderBecomeProjectSupporter": "Verkrijg Emby Premiere", + "HeaderViewServerInfo": "Serverinformatie bekijken", + "PlaybackTvModeRequiresEmbyPremiere": "Voor het afspelen van media in tv-modus is een actief {0}Emby Premiere-abonnement{1} vereist.", + "FeatureRequiresEmbyPremiere": "Deze functie vereist een actief {0}Emby Premiere abonnement{1}.", + "HeaderConvertYourRecordings": "Opnames omzetten", + "Record": "Opnemen", + "Save": "Opslaan", + "Edit": "Bewerken", + "HeaderSavePlaylist": "Afspeellijst opslaan", + "Latest": "Nieuwste", + "Download": "Downloaden", + "Downloaded": "Gedownload", + "Converted": "Geconverteerd", + "RemoveFromHistory": "Verwijderen uit de geschiedenis", + "ConfirmRemoveFromHistory": "Dit item uit de geschiedenis verwijderen?", + "Downloading": "Downloaden", + "Advanced": "Geavanceerd", + "LinkedToEmbyConnect": "Gekoppeld aan Emby Connect", + "Delete": "Verwijderen", + "Both": "Beide", + "LabelChannelDisplay": "Kanaalweergave", + "HeaderDeleteItem": "Item verwijderen", + "HeaderDeleteUser": "Verwijder gebruiker", + "DeleteItemConfirmation": "Weet u zeker dat u {0} wilt verwijderen?", + "DeleteUserConfirmation": "Weet u zeker dat u gebruiker {0} wilt verwijderen?", + "DeleteUsersConfirmation": "Weet u zeker dat u deze {0} gebruikers wilt verwijderen?", + "HeaderDeleteDevice": "Verwijder apparaat", + "DeleteDeviceConfirmation": "Weet u zeker dat u dit apparaat wilt verwijderen? Het zal opnieuw verschijnen als een gebruiker zich er mee aanmeldt.", + "ConfirmDeleteItem": "Als u dit item verwijdert, wordt het verwijderd uit zowel het bestandssysteem als uw mediabibliotheek.", + "FollowingFilesWillBeDeleted": "De volgende bestanden en folders zullen worden gewist:", + "AreYouSureToContinue": "Weet u zeker dat u wilt doorgaan?", + "Refresh": "Vernieuwen", + "RefreshingMetadataDots": "Metadata vernieuwen ...", + "ScanningLibraryFilesDots": "Bibliotheekbestanden scannen ...", + "HeaderFavoritesThenByChannelNumber": "Favorieten, vervolgens op kanaalnummer", + "HeaderAddToCollection": "Toevoegen aan Collectie", + "HeaderFavoritesThenByTitle": "Favorieten, vervolgens op titel", + "HeaderFavoritesThenByDefault": "Favorieten, vervolgens volgens standaard kanaalvolgorde", + "HeaderDefaultChannelOrder": "Standaard kanaalvolgorde", + "HeaderAddToFavorites": "Toevoegen aan favorieten", + "HeaderRemoveFromFavorites": "Verwijderen uit favorieten", + "Favorited": "Gefavoriet", + "Unfavorited": "Ongefavoriet", + "HeaderNewCollection": "Nieuwe verzameling", + "HeaderNewPlaylist": "Nieuwe afspeellijst", + "AllCollections": "Alle verzamelingen", + "AllPlaylists": "Alle afspeellijsten", + "Create": "Maken", + "HeaderAddedToPlaylist": "Toegevoegd aan afspeellijst", + "HeaderAddedToCollection": "Toegevoegd aan verzameling", + "OneItemAddedTo": "1 item toegevoegd aan \"{0}\".", + "ItemsAddedTo": "{0} toegevoegd aan \"{1}\".", + "HeaderAddedToPlayQueue": "Toegevoegd aan wachtrij", + "HeaderPlayingNext": "Volgende afspelen", + "Help": "Hulp", + "HeaderGetHelp": "Hulp vragen", + "LabelTVDisplayMode": "TV-weergavemodus inschakelen", + "Desktop": "Desktop", + "Mobile": "Mobiel / Tablet", + "Navigation": "Navigatie", + "HeaderVideoPlayback": "Video afspelen", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seizoenen", + "OneTrack": "1 Nummer", + "OneSeason": "1 Seizoen", + "Libraries": "Bibliotheken", + "NumberSeasonsValue": "{0} Seizoenen", + "TVDisplayModeHelp": "Optimaliseer de gebruikersinterface van dit apparaat voor weergave op een tv en invoer met een afstandsbediening. Dit wordt over het algemeen niet aanbevolen als uw primaire invoermethode een muis is of op aanraking is gebaseerd.", + "LabelDisplayLanguage": "Schermtaal", + "LabelDisplayLanguageHelp": "Vertaling van Emby is een voortdurend project.", + "LearnHowYouCanContribute": "Lees meer over hoe u kunt bijdragen.", + "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": "Toon ontbrekende afleveringen binnen een seizoen", + "DisplayMissingEpisodesWithinSeasonsHelp": "Dit moet ook worden ingeschakeld voor TV bibliotheken in Emby Server setup.", + "EnableThemeSongs": "Herkenningsliedjes afspelen", + "EnableBackdrops": "Achtergronden inschakelen", + "EnableThemeSongsHelp": "Indien ingeschakeld, zal de herkenningsmelodie tijdens het bladeren op de achtergrond worden afgespeeld.", + "EnableBackdropsHelp": "Indien ingeschakeld, zullen achtergrondafbeeldingen tijdens het bladeren op de achtergrond worden getoond.", + "EnableThemeVideos": "Thema-video's afspelen", + "EnableThemeVideosHelp": "Indien ingeschakeld, zullen thema video's tijdens het bladeren op de achtergrond worden afgespeeld.", + "RunAtStartup": "Uitvoeren bij opstarten", + "ServerStartup": "Server opstart", + "EmbyServerOnXHasStarted": "Emby Server op {0} is opgestart.", + "LabelScreensaver": "Schermbeveiliging", + "LabelSoundEffects": "Geluidseffecten", + "LabelName": "Naam", + "NewCollectionNameExample": "Voorbeeld: Star Wars Collectie", + "MessageItemsAdded": "Items toegevoegd", + "OptionNew": "Nieuw...", + "LabelPlaylist": "Afspeellijst", + "AddToPlaylist": "Toevoegen aan afspeellijst", + "HeaderAddToPlaylist": "Toevoegen aan afspeellijst", + "Subtitles": "Ondertiteling", + "LabelTheme": "Thema", + "LabelSettingsTheme": "Instellingen thema", + "LabelThemeAccentColor": "Accent kleur", + "ThemeAccentColorDescription": "Regelt de kleur van belangrijke indicatoren, pictogrammen en tekst.", + "SearchForSubtitles": "Zoeken naar ondertitels", + "LabelLanguage": "Taal", + "Search": "Zoeken", + "NoSubtitleSearchResultsFound": "Geen resultaten gevonden. Heeft u het {0}downloaden van ondertitels{1} geconfigureerd?", + "NoLyricsSearchResultsFound": "Geen resultaten gevonden. Hebt u het downloaden van {0}songteksten{1}?", + "Lyrics": "Songteksten", + "SearchForLyrics": "Zoek naar songteksten", + "Finish": "Voltooien", + "File": "Bestand", + "Exit": "Afsluiten", + "Sleep": "Slaapstand", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Weet u zeker dat u dit ondertitelbestand wilt verwijderen?", + "ConfirmDeletion": "Bevestig verwijdering", + "MySubtitles": "Mijn ondertitels", + "MessageDownloadQueued": "Download in de wachtrij geplaatst.", + "HeaderEditSubtitles": "Bewerk ondertiteling", + "UnlockGuide": "Gids vrijgeven", + "HeaderRefreshMetadata": "Metadata vernieuwen", + "HeaderRefreshAllMetadata": "Vernieuw alle metadata", + "ReplaceExistingImages": "Bestaande afbeeldingen vervangen", + "ReplaceExistingImagesHelp": "Alle bestaande afbeeldingen worden verwijderd en nieuwe worden gedownload. In sommige gevallen kan dit resulteren in minder beschikbare afbeeldingen dan voorheen.", + "ReplaceAllMetadata": "Alle metadata vervangen", + "SearchForMissingMetadata": "Zoeken naar missende metadata", + "LabelRefreshMode": "Vernieuw-modus", + "NoItemsFound": "Geen items gevonden.", + "HeaderSaySomethingLike": "Zeg iets zoals...", + "ButtonTryAgain": "Opnieuw proberen", + "HeaderYouSaid": "U zei...", + "MessageWeDidntRecognizeCommand": "Sorry, dat commando herkennen we niet.", + "MessageIfYouBlockedVoice": "Als u spraak toegang uitgeschakeld heeft moet u dit opnieuw configureren voordat u verder gaat.", + "ValueDiscNumber": "Schijf {0}", + "Unrated": "Geen rating", + "Favorite": "Favoriet", + "Like": "Leuk", + "Dislike": "Niet leuk", + "RefreshDialogHelp": "Metadata wordt vernieuwd op basis van de instellingen en internet diensten die zijn ingeschakeld in het dashboard van de Emby Server.", + "Open": "Openen", + "Play": "Afspelen", + "Pause": "Pauze", + "HeaderPlayQueue": "Speel wachtrij af", + "HeaderAddToPlayQueue": "Toevoegen aan wachtrij", + "Shuffle": "Willekeurig", + "Identify": "Identificeer", + "HeaderRemoveIdentification": "Verwijder identificatie", + "ResetMetadataConfirmation": "Weet u zeker dat u alle metadata wilt resetten?", + "HeaderEditMetadata": "Metadata wijzigen", + "Convert": "Converteren", + "Resume": "Hervatten", + "HeaderInstantMix": "Instant mix", + "HeaderGoToItem": "Ga naar item", + "HeaderGoToSeason": "Ga naar seizoen", + "HeaderGoToSeries": "Ga naar series", + "HeaderGoToAlbum": "Ga naar album", + "HeaderGoToArtist": "Ga naar artiest", + "HeaderPlayAll": "Speel alles", + "PictureInPicture": "Beeld in beeld", + "Fullscreen": "Volledig scherm", + "ExitFullscreen": "Volledig scherm afsluiten", + "Rewind": "Terugspoelen", + "FastForward": "Vooruitspoelen", + "Remove": "Verwijderen", + "Rename": "Hernoemen", + "Queue": "Wachtrij", + "QueueAllFromHere": "Plaats in de wachtrij vanaf hier", + "PlayAllFromHere": "Speel allemaal vanaf hier", + "PlayFromBeginning": "Afspelen vanaf begin", + "FromBeginning": "Vanaf het begin", + "ResumeAt": "Hervatten vanaf {0}", + "HeaderRemoveFromPlaylist": "Verwijderen uit afspeellijst", + "HeaderRemoveFromPlayQueue": "Verwijder van wachtrij", + "HeaderRemoveFromCollection": "Verwijder uit collectie", + "Sort": "Sorteren", + "Trailer": "Trailer", + "SelectNone": "Selecteer niets", + "SelectAll": "Selecteer alles", + "HeaderMarkPlayed": "Markeren als afgespeeld", + "HeaderMarkUnplayed": "Markeren als niet afgespeeld", + "HeaderGroupVersions": "Versies groeperen", + "PleaseSelectTwoItems": "Selecteer ten minste twee items.", + "HeaderConfirmRecordingCancellation": "Bevestig annulering van de opname", + "MessageConfirmRecordingCancellation": "Opname annuleren?", + "Album": "Album", + "AlbumArtist": "Album artiest", + "Error": "Fout", + "VoiceInput": "Spraak invoer", + "LabelContentType": "Inhoud type", + "LabelPath": "Pad", + "Playlists": "Afspeellijsten", + "LabelTitle": "Titel", + "LabelOriginalTitle": "Orginele titel", + "LabelSortTitle": "Sorteer titel", + "LabelDateAdded": "Datum toegevoegd", + "DateAdded": "Datum toegevoegd", + "DateModified": "Datum gewijzigd", + "DatePlayed": "Datum afgespeeld", + "DateLastActive": "Datum laatst actief", + "ConfigureDateAdded": "Configureer hoe datum toegevoegd wordt bepaald in het Emby Server dashboard onder de instellingen van de documentbibliotheek", + "LabelStatus": "Status", + "LabelArtistsHelp": "Scheidt meerdere met een ;", + "HeaderAlbumArtists": "Album artiesten", + "LabelAlbumArtists": "Album artiesten", + "LabelAlbum": "Album", + "Artist": "Artiest", + "Artists": "Artiesten", + "ImdbRating": "IMDb-beoordeling", + "CommunityRating": "Community-beoordeling", + "LabelCommunityRating": "Beoordeling gemeenschap", + "LabelCriticRating": "Beoordeling critici", + "CriticRating": "Beoordeling critici", + "LabelWebsite": "Website", + "Tagline": "Slogan", + "LabelOverview": "Overzicht", + "LabelShortOverview": "Kort overzicht", + "LabelReleaseDate": "Uitgave datum", + "LabelPlaceOfBirth": "Geboorteplaats", + "Aired": "Uitgezonden", + "LabelAirDays": "Uitzend dagen", + "LabelAirTime": "Uitzend tijd", + "LabelRuntimeMinutes": "Speelduur (minuten)", + "LabelCustomRating": "Aangepaste classificatie", + "LabelOriginalAspectRatio": "Originele aspect ratio", + "Label3DFormat": "3D formaat", + "FormatValue": "Formaat: {0}", + "DownloadsValue": "{0} downloads", + "HashMatch": "Hash overeenkomst", + "EnableExternalVideoPlayers": "Externe video spelers inschakelen", + "EnableExternalVideoPlayersHelp": "Een menu voor externe spelers zal worden getoond bij het afspelen van video's", + "HeaderSpecialEpisodeInfo": "Speciale afleveringsinformatie", + "LabelAirsDuringSeason": "Uitgezonden tijdens seizoen", + "LabelAirsAfterSeason": "Uitgezonden na seizoen", + "LabelAirsBeforeEpisode": "Uitgezonden voor aflevering", + "HeaderExternalIds": "Externe id's", + "HeaderDisplaySettings": "Weergave instellingen", + "PlaylistOrder": "Afspeellijst volgorde", + "CollectionOrder": "Verzameling volgorde", + "LabelDisplayOrder": "Weergave volgorde", + "LabelFileOrder": "Bestandsvolgorde", + "Display": "Weergave", + "Countries": "Landen", + "Genres": "Genres", + "Studios": "Studio's", + "Tags": "Labels", + "Links": "Links", + "Movie": "Film", + "Program": "Programma", + "Channel": "Kanaal", + "Episode": "Aflevering", + "Season": "Seizoen", + "HeaderMetadataSettings": "Metagegevens instellingen", + "People": "Personen", + "Number": "Nummer", + "Lock": "Vergrendelen", + "HeaderScreenLocked": "Scherm vergrendeld", + "HeaderUnlockControls": "Ontgrendel besturing", + "HeaderTapToUnlock": "Tik om te ontgrendelen", + "LabelMetadataDownloadLanguage": "Gewenste metadata-downloadtaal", + "LabelImageDownloadLanguage": "Gewenste downloadtaal voor afbeeldingen", + "LabelLockItemToPreventChanges": "Vergrendel dit item om toekomstige wijzigingen te voorkomen", + "LockThisField": "Vergrendel dit veld om toekomstige wijzigingen te voorkomen bij het verversen van de metadata", + "MessageLeaveEmptyToInherit": "Leeg laten om instellingen van bovenliggend item of de algemene waarde over te nemen.", + "LabelCountry": "Land", + "LabelCertificationCountry": "Certificeringsland", + "CertificationCountryHelp": "Dit heeft invloed op welk contentbeoordelingssysteem wordt gebruikt.", + "LabelDynamicExternalId": "{0} id", + "LabelBirthYear": "Geboortejaar", + "LabelBirthDate": "Geboortedatum", + "LabelDeathDate": "Sterfdatum", + "LabelEndDate": "Einddatum", + "LabelSeasonNumber": "Seizoensnummer", + "LabelEpisodeNumber": "Nummer aflevering", + "LabelTrackNumber": "Tracknummer", + "LabelNumber": "Nummer", + "LabelDiscNumber": "Schijfnummer", + "LabelParentNumber": "Bovenliggend nummer:", + "SortName": "Sorteer titel:", + "OriginalTitle": "Originele titel", + "ReleaseDate": "Uitgave datum", + "Continuing": "Wordt vervolgd...", + "Ended": "Gestopt", + "HeaderEnabledFields": "Schakel velden in", + "HeaderEnabledFieldsHelp": "Verwijder een vinkje om het veld te vergrendelen en voorkom dat gegevens gewijzigd kunnen worden.", + "Backdrops": "Achtergronden", + "Images": "Afbeeldingen", + "Runtime": "Speelduur", + "ProductionLocations": "Productie plaatsen", + "BirthLocation": "Geboorteplaats", + "ParentalRating": "Kijkwijzer classificatie", + "PlayCount": "Aantal keer afgespeeld", + "Name": "Naam", + "Overview": "Overzicht", + "LabelType": "Type:", + "LabelPersonRole": "Rol:", + "LabelPersonRoleHelp": "Voorbeeld: chauffeur van een ijswagen", + "Actor": "Acteur", + "Composers": "Componisten", + "Composer": "Componist", + "Director": "Regisseur", + "GuestStar": "Gast ster", + "Producer": "Producent", + "Writer": "Schrijver", + "MessageNoSyncJobsFound": "Geen downloads gevonden. Maak download taken met behulp van de Download knoppen in de app.", + "MessageNoDownloadsFound": "Geen offline downloads. Maak uw media offline beschikbaar door in de app op Download te klikken.", + "InstallingPackage": "Installeren van {0}", + "PackageInstallCompleted": "{0} installatie voltooid.", + "PackageInstallFailed": "{0} installatie is mislukt.", + "PackageInstallCancelled": "{0} installatie geannuleerd.", + "SeriesYearToPresent": "{0} - Heden", + "OneDevice": "Apparaat", + "DeviceCountValue": "{0} Apparaten", + "OneLog": "1 logboek", + "LogCountValue": "{0} logboeken", + "OneVote": "1 stem", + "VoteCountValue": "{0} stemmen", + "OneLike": "1 vind ik leuk", + "LikeCountValue": "{0} vind ik leuk", + "OneUser": "1 gebruiker", + "UserCountValue": "{0} gebruikers", + "OneLibrary": "1 bibliotheek", + "LibraryCountValue": "{0} bibliotheken", + "ValueOneItem": "1 item", + "ValueOneEpisode": "1 aflevering", + "ValueEpisodeCount": "{0} afleveringen", + "Albums": "Albums", + "Song": "Nummer", + "Songs": "Nummers", + "Authors": "Auteurs", + "Books": "Boeken", + "AudioBooks": "Luisterboeken", + "HeaderAudioBooks": "Luisterboeken", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Vul één of meer zoek criteria in. Verwijder criteria om zoekresultaten te vergroten.", + "PleaseEnterNameOrId": "Voer een naam of een externe Id in", + "MessageItemSaved": "Item opgeslagen.", + "SearchResults": "Zoekresultaten", + "ServerNameIsRestarting": "Emby Server - {0} is opnieuw aan het opstarten.", + "ServerNameIsShuttingDown": "Emby Server - {0} is aan het afsluiten.", + "HeaderDeleteItems": "Verwijder items", + "ConfirmDeleteItems": "Als u deze items verwijdert, worden ze zowel uit het bestandssysteem als uit uw mediabibliotheek verwijderd.", + "PleaseRestartServerName": "Herstart Emby Server op {0} aub.", + "ConvertingDots": "Converteren...", + "LabelSyncNoTargetsHelp": "Het lijkt erop dat u momenteel geen apps heeft die offline downloaden ondersteunen.", + "DownloadingDots": "Downloaden...", + "LearnMore": "Meer informatie", + "LabelBitrateMbps": "Bitrate (Mbps):", + "ConvertUnwatchedVideosOnly": "Converteer alleen niet-afgespeelde video's", + "SyncUnwatchedVideosOnly": "Download alleen niet-afgespeelde video's", + "ConvertUnwatchedVideosOnlyHelp": "Alleen video's die niet gemarkeerd zijn als volledig afgespeeld worden geconverteerd.", + "SyncUnwatchedVideosOnlyHelp": "Alleen video's die niet zijn gemarkeerd als volledig afgespeeld, worden gedownload en video's worden van het apparaat verwijderd zodra ze volledig zijn afgespeeld.", + "AutomaticallySyncNewContent": "Nieuwe inhoud automatisch downloaden", + "AutomaticallySyncNewContentHelp": "Aan deze map toegevoegde nieuwe inhoud automatisch naar het apparaat downloaden.", + "AutomaticallyConvertNewContent": "Nieuwe content automatisch converteren", + "AutomaticallyConvertNewContentHelp": "Nieuwe content toegevoegd aan deze map wordt automatisch geconverteerd.", + "LabelItemLimit": "Item limiet:", + "ConvertItemLimitHelp": "Optioneel. Stel een maximum aantal items in dat wordt geconverteerd.", + "DownloadItemLimitHelp": "Optioneel. Stel een maximum aantal items in dat wordt gedownload.", + "PleaseSelectDeviceToSyncTo": "Selecteer een apparaat om naar te downloaden", + "Screenshots": "Schermafbeeldingen", + "MoveRight": "Naar rechts verplaatsen", + "MoveLeft": "Naar links verplaatsen", + "HeaderUploadNewImage": "Nieuwe afbeelding uploaden", + "HeaderDeleteImage": "Afbeelding verwijderen", + "ConfirmDeleteImage": "Afbeelding verwijderen?", + "HeaderEditImages": "Afbeeldingen bewerken", + "Settings": "Instellingen", + "ShowIndicatorsFor": "Toon indicatoren", + "Episodes": "Afleveringen", + "Programs": "Programma's", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Voor Emby Live TV en DVR is een actief {0}Emby Premiere-abonnement{1} vereist.", + "HeaderCancelRecording": "Opname annuleren", + "HeaderKeepRecording": "Bewaar opname", + "HeaderCancelSeries": "Serie annuleren", + "HeaderKeepSeries": "Serie behouden", + "HeaderLearnMore": "Meer informatie", + "SeriesSettings": "Series instellingen", + "HeaderRecordingOptions": "Opname instellingen", + "HeaderDoNotRecord": "Niet opnemen", + "HeaderSeriesOptions": "Series opties", + "Layout": "Opmaak", + "Channels": "Kanalen", + "ChannelNameOnly": "Alleen kanaal {0}", + "Anytime": "Op elk moment", + "AnyLanguage": "Elke taal", + "AroundTime": "Rond {0}", + "HeaderLatestMovies": "Laatst toegevoegde films", + "All": "Alle", + "Stop": "Stop", + "AllChannels": "Alle kanalen", + "NewEpisodesOnly": "Alleen nieuwe afleveringen", + "AllEpisodes": "Alle afleveringen", + "LabelStartWhenPossible": "Start indien mogelijk:", + "LabelStopWhenPossible": "Stop indien mogelijk:", + "MinutesBefore": "minuten voor", + "MinutesAfter": "minuten na", + "SkipEpisodesAlreadyInMyLibrary": "Neem geen afleveringen op die al in mijn bibliotheek aanwezig zijn", + "SkipEpisodesAlreadyInMyLibraryHelp": "Afleveringen zullen worden vergeleken met behulp van seizoen en aflevering nummers, indien beschikbaar.", + "LabelKeepUpTo": "Houd tot:", + "AsManyAsPossible": "Zo veel als mogelijk", + "DefaultErrorMessage": "Er is een fout opgetreden. Probeer later opnieuw.", + "UntilIDelete": "Totdat ik verwijder", + "UntilSpaceNeeded": "Totdat de ruimte nodig is", + "Categories": "Categorieën", + "Sports": "Sporten", + "News": "Nieuws", + "Movies": "Films", + "Music": "Muziek", + "Kids": "Kinderen", + "MoreFromValue": "Meer van {0}", + "DiedValue": "Overleden: {0}", + "BornValue": "Geboren: {0}", + "EnableColorCodedBackgrounds": "Pas gekleurde achtergronden toe op shows, op basis van hun categorie", + "SortChannelsBy": "Sorteer kanalen op:", + "ChannelNumber": "Kanaal nummer", + "HeaderBenefitsEmbyPremiere": "Voordelen van Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "U kunt nu genieten van één minuut afspelen. Bedankt voor het uitproberen van Emby.", + "HeaderTryPlayback": "Probeer Afspelen", + "HowDidYouPay": "Hoe hebt u betaald?", + "IHaveEmbyPremiere": "Ik heb Emby Premiere", + "IPurchasedThisApp": "Ik heb deze app gekocht", + "ButtonRestorePreviousPurchase": "Herstel aankoop", + "ButtonUnlockWithPurchase": "Ontgrendel met een aankoop", + "ButtonUnlockPrice": "{0} Ontgrendelen", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Maandelijks {0}", + "HeaderAlreadyPaid": "Reeds betaald?", + "ButtonPlayOneMinute": "Speel één minuut", + "PlaceFavoriteChannelsAtBeginning": "Plaats favoriete kanalen aan het begin", + "HeaderUnlockFeature": "Ontgrendel Functionaliteit", + "MessageDidYouKnowCinemaMode": "Wist u dat u met Emby Premiere uw ervaring kunt verbeteren met functies zoals Cinema Intros?", + "HeaderPlayMyMedia": "Mijn media afspelen", + "HeaderDiscoverEmbyPremiere": "Ontdek Emby Premiere", + "HeaderNowPlaying": "Wordt nu afgespeeld", + "Items": "Items", + "AppName": "Applicatie naam", + "OneChannel": "Eén kanaal", + "ConfirmRemoveDownload": "Download verwijderen?", + "ConfirmRemoveItem": "Verwijder item?", + "RemoveDownload": "Download verwijderen", + "ConfirmCancelConversion": "Annuleer conversie?", + "CancelConversion": "Annuleer conversie", + "KeepDownload": "Download bewaren", + "AddedOnValue": "{0} Toegevoegd", + "RemovingFromDevice": "Verwijderen van apparaat", + "KeepOnDevice": "Bewaar op apparaat", + "CancelDownload": "Download annuleren", + "SyncJobItemStatusReadyToTransfer": "Klaar om te verzenden", + "SyncJobItemStatusSyncedMarkForRemoval": "Verwijderen van apparaat", + "SyncJobItemStatusQueued": "In wachtrij", + "SyncJobItemStatusConverting": "Converteren", + "SyncJobItemStatusTransferring": "Verzenden", + "SyncJobItemStatusSynced": "Gedownload", + "Failed": "Mislukt", + "SyncJobItemStatusRemovedFromDevice": "Verwijderd van apparaat", + "Cancelled": "Geannuleerd", + "Retry": "Opnieuw proberen", + "Continue": "Hervatten", + "ContinueInSecondsValue": "Hervatten over {0} seconden.", + "HeaderRemoteControl": "Afstandsbediening", + "Disconnect": "Loskoppelen", + "EnableDisplayMirroring": "Inschakelen beeld spiegelen", + "RemoteAccess": "Toegang op afstand", + "HeaderPlayOn": "Afspelen op", + "Quality": "Kwaliteit", + "Auto": "Automatisch", + "AndroidUnlockRestoreHelp": "Om uw eerdere aankoop te herstellen, controleert u of u aangemeld bent met hetzelfde Google (of Amazon) account waarmee u de aankoop deed. Controleer dat de app store is ingeschakeld en niet door ouderlijk toezicht wordt tegengehouden en controleer dat u een actieve internet verbinding hebt. U hoeft dit slechts eenmalig te doen om uw eerdere aankoop te herstellen.", + "HeaderAspectRatio": "Beeldverhouding", + "Original": "Origineel", + "Fill": "Vullen", + "Cover": "Hoes", + "MessageNoServersAvailableToConnect": "Er zijn geen servers beschikbaar om mee te verbinden. Als u uitgenodigd bent om een server te delen accepteer dit hieronder of door op de link in het e-mailbericht te klikken.", + "MessagePlayAccessRestricted": "Afspelen hiervan is op dit moment niet toegestaan. Neem contact op met uw Emby Server beheerder voor meer informatie.", + "Accept": "Accepteren", + "Reject": "Weigeren", + "Connect": "Verbind", + "HeaderMyMedia": "Mijn media", + "HeaderMyMediaSmall": "Mijn media (klein)", + "LatestFromLibrary": "Laatste {0}", + "HeaderLatestEpisodes": "Nieuwste afleveringen", + "ContinuePlaying": "Hervat afspelen", + "ContinueWatching": "Kijken hervatten", + "HeaderLatestChannelMedia": "Nieuwste kanaal items", + "HeaderContinueWatching": "Kijken hervatten", + "HeaderContinueListening": "Luisteren hervatten", + "HeaderActiveRecordings": "Actieve opnames", + "HeaderLatestRecordings": "Nieuwste opnames", + "LabelConvertTo": "Converteren naar:", + "LabelDownloadTo": "Downloaden naar:", + "HeaderDownloadToDots": "Downloaden naar...", + "Next": "Volgende", + "LabelSource": "Bron:", + "VersionNumber": "Versie {0}", + "HeaderAllLanguages": "Alle talen", + "Previous": "Vorige", + "HeaderNextUp": "Volgende", + "HeaderPlayNextUp": "Eerstvolgende afspelen", + "HeaderLatestFrom": "Laatste van {0}", + "LabelHomeScreenSectionValue": "Startscherm sectie {0}:", + "PasswordResetComplete": "Het wachtwoord is opnieuw ingesteld.", + "PasswordSaved": "Wachtwoord opgeslagen.", + "SettingsSaved": "Instellingen opgeslagen.", + "Upcoming": "Binnenkort op TV", + "HeaderSelectImageFile": "Selecteer afbeeldingsbestand", + "None": "Geen", + "More": "Meer", + "Up": "Omhoog", + "Down": "Omlaag", + "Home": "Start", + "Back": "Terug", + "Random": "Willekeurig", + "Playback": "Afspelen", + "Favorites": "Favorieten", + "HeaderHomeScreen": "Startscherm", + "HeaderLatestChannelItems": "Nieuwste kanaal items", + "HeaderLibraryOrder": "Bibliotheek volgorde", + "HeaderOnNow": "Aan het spelen", + "HeaderForKids": "Voor kinderen", + "HeaderPlaybackError": "Afspeelfout", + "PlaybackErrorNotAllowed": "U bent niet bevoegd om deze content af te spelen. Neem contact op met uw systeembeheerder voor meer informatie.", + "RateLimitExceeded": "Uw account heeft de maximale streaminglimiet overschreden die is ingesteld door uw Emby Server-beheerder. Neem contact op met hen voor hulp.", + "PlaybackErrorNoCompatibleStream": "Geen compatibele streams beschikbaar. Probeer het later opnieuw of neem contact op met de serverbeheerder.", + "PlaybackErrorPlaceHolder": "De gekozen content is niet af te spelen vanaf dit apparaat. Plaats de schijf.", + "PlaybackErrorNoPlayableItems": "Er zijn geen afspeelbare items gevonden. Probeer je een lege map af te spelen?", + "Guide": "Gids", + "Games": "Games", + "GameSystem": "Game systeem", + "Suggestions": "Suggesties", + "HeaderFavoriteChannels": "Favoriete kanalen", + "HeaderFavoriteCollections": "Favoriete collecties", + "HeaderFavoritePlaylists": "Favoriete afspeellijsten", + "Collection": "Verzameling", + "Collections": "Collecties", + "LabelSelectFolderGroups": "De inhoud van de volgende mappen automatisch groeperen in secties zoals Films, Muziek en TV:", + "LabelSelectFolderGroupsHelp": "Mappen die niet aangevinkt zijn worden getoond in hun eigen weergave.", + "Mute": "Dempen", + "Unmute": "Dempen uitzetten", + "Folder": "Map", + "Folders": "Mappen", + "FileName": "Bestandsnaam", + "DisplayInOtherHomeScreenSections": "Weergave in secundaire startschermsecties zoals de nieuwste media en doorgaan met kijken", + "DisplayInMyMedia": "Op het startscherm weergeven", + "Shows": "Series", + "MoviesAndShows": "Films & programma's", + "HeaderMusicVideo": "Muziek Video", + "HeaderMusicVideos": "Muziekvideo's", + "MusicVideos": "Muziekvideo's", + "Videos": "Video's", + "MixedContent": "Gemengde inhoud", + "HomeVideos": "Home video's", + "HomeVideosAndPhotos": "Home video's & foto's", + "TVShows": "TV series", + "HeaderLibraryFolders": "Bibliotheek Mappen", + "HeaderTermsOfPurchase": "Aankoop Voorwaarden", + "PrivacyPolicy": "Privacy beleid", + "TermsOfUse": "Gebruiksvoorwaarden", + "HeaderRepeatMode": "Herhaal mode", + "HeaderToneMapping": "Toon mapping", + "RepeatOne": "Eén herhalen", + "RepeatAll": "Alle herhalen", + "LabelDefaultScreen": "Standaard scherm:", + "ConfirmEndPlayerSession": "Wilt u Emby afsluiten op {0}?", + "Yesterday": "Gisteren", + "Yes": "Ja", + "No": "Nee", + "HeaderScanLibraryFiles": "Scan bibliotheekbestanden", + "LiveTV": "Live TV", + "Schedule": "Schema", + "Recordings": "Opnames", + "ScanForNewAndUpdatedFiles": "Scan op nieuwe en bijgewerkte bestanden", + "NewVersionOfXAvailableForY": "{0} is beschikbaar voor {1}", + "DirectStreamHelp1": "De media is compatible met het apparaat wat betreft resolutie en media type (H.264, AC3 etc.), maar is in een incompatible bestandscontainer (.mkv, .avi, .wmv etc.). De video zal on the fly opnieuw worden verpakt voordat deze naar het apparaat wordt gestreamd.", + "DirectStreamHelp2": "Direct streamen van een bestand gebruikt weinig processor kracht zonder verlies van beeldkwaliteit.", + "MediaIsBeingConverted": "De media wordt geconverteerd naar een formaat dat compatible is met het apparaat dat wordt gebruikt om de media af te spelen.", + "StatsForNerds": "Statistieken voor nerds", + "HeaderHardwareAcceleratedDecoding": "Hardwareversnelde decodering", + "HeaderHardwareAcceleratedEncoding": "Hardwareversnelde codering", + "HeaderDirectPlay": "Direct afspelen", + "DirectPlaying": "Direct afspelen", + "DirectStreaming": "Direct streamen", + "Transcode": "Transcoderen", + "Transcoding": "Transcoderen", + "ContainerBitrateExceedsLimit": "Verlaging van de bitrate vanwege kwaliteitsinstelling", + "VideoCodecNotSupported": "Video converteren naar compatibele codec", + "AudioCodecNotSupported": "Audio converteren naar compatibele codec", + "SubtitleCodecNotSupported": "Ondertitel formaat niet ondersteund", + "DirectPlayError": "Herstellen van een afspeelfout", + "ContainerNotSupported": "Converteren naar compatibele container", + "VideoLevelNotSupported": "Converteren naar compatibel video niveau", + "AudioBitrateNotSupported": "Converteren naar compatibele audio bitrate", + "AudioChannelsNotSupported": "Converteren naar compatibel aantal audio kanalen", + "VideoResolutionNotSupported": "Converteren naar compatibele video resolutie", + "AudioProfileNotSupported": "Converteren naar compatibel audio profiel", + "AudioSampleRateNotSupported": "Converteren naar compatibele audio sample rate", + "AnamorphicVideoNotSupported": "Anamorfische video niet ondersteund", + "InterlacedVideoNotSupported": "De-interlacing video", + "SecondaryAudioNotSupported": "Secundair audio spoor selecteren", + "ExternalAudioNotSupported": "Externe audiotrack selecteren", + "ErrorRemovingEmbyConnectAccount": "Er is een fout opgetreden bij het verwijderen van het Emby Connect acount. Zorg ervoor dat u een actieve internetverbinding heeft en probeer het opnieuw.", + "HeaderEmbyAccountRemoved": "Emby Account verwijderd", + "MessageEmbyAccontRemoved": "Het Emby account is van deze gebruiker verwijderd.", + "HeaderInvitationSent": "Uitnodiging Verzonden", + "Offline": "Offline", + "HeaderSignUp": "Registreren", + "ServerDownloadMessage": "Bezoek {0} om de gratis Emby Server te downloaden en installeren.", + "ServerDownloadMessageWithoutLink": "Bezoek de Emby Website om Emby Server te downloaden en te installeren.", + "MessageInvitationSentToUser": "Een email is verzonden naar {0} met een uitnodiging om uw uitnodiging te accepteren.", + "MessageInvitationSentToNewUser": "Een email is verzonden naar {0} met een uitnodiging om aan te melden bij Emby.", + "GuestUserNotFound": "Gebruiker is niet gevonden. Zorg ervoor dat de naam klopt en probeer het opnieuw, of probeer hun emailadres in te voeren.", + "ErrorReachingEmbyConnect": "Er is een fout opgetreden bij het bereiken van de Emby Connect server. Zorg ervoor dat u een actieve internetverbinding heeft en probeer het opnieuw.", + "ErrorAddingEmbyConnectAccount1": "Er was een probleem bij het toevoegen van het Emby Connect account. Hebt u een Emby account aangemaakt? U kunt u aanmelden op {0}.", + "ErrorAddingEmbyConnectAccount2": "Stuur een email naar {0} vanuit het email adres dat u voor uw Emby account gebruikt indien u nog steeds problemen heeft", + "ErrorAddingGuestAccount1": "Er was een probleem bij het toevoegen van het Emby Connect account. Heeft uw gast een Emby account aangemaakt? Zij kunnen zich aanmelden op {0}.", + "ErrorAddingGuestAccount2": "Stuur een email naar {0} met daarin uw email adres als die van hen indien u nog steeds problemen heeft.", + "MessageEmbyAccountAdded": "Het Emby account is aan deze gebruiker toegevoegd.", + "MessagePendingEmbyAccountAdded": "Het Emby account is aan de gebruiker toegevoegd. Er wordt een email verstuurd naar de eigenaar van het account. De uitnodiging zal moeten worden bevestigd door op de link in de email te klikken.", + "HeaderEmbyAccountAdded": "Emby Account Toegevoegd", + "Skip": "Overslaan", + "HeaderAdditionalParts": "Extra onderdelen", + "ButtonGenerateNewPin": "Nieuwe pincode aanmaken", + "ConnectLoginHelp1": "Met Emby Connect kunt u ongeacht waar u bent gemakkelijk uw Emby Server benaderen en servers met uw familie en vrienden delen.", + "CreatePinErrorMessage": "Er is een fout opgetreden bij het aanmaken van een pincode. Klik op \"Nieuwe pincode aanmaken\" om het opnieuw te proberen.", + "PinExpiredMessage": "De pincode is verlopen. Klik op \"Nieuwe pincode aanmaken\" om het opnieuw te proberen.", + "ConnectPinCodeHeader": "Bezoek {0} op een mobiel apparaat of een computer en voer de volgende pincode in om aan te melden met Emby Connect:", + "LabelSubtitlePlaybackMode": "Ondertitel mode:", + "ErrorDeletingItem": "Er was een probleem bij het verwijderen van het item in Emby Server. Controleer dat Emby Server schrijfrechten op de map heeft en probeer het opnieuw.", + "NoSubtitles": "Geen ondertitels", + "Default": "Standaard", + "Absolute": "Absoluut", + "Smart": "Slim", + "Small": "Klein", + "Smaller": "Kleiner", + "Medium": "Gemiddeld", + "Large": "Groot", + "Larger": "Groter", + "ExtraLarge": "Extra groot", + "ExtraSmall": "Extra klein", + "Forced": "Geforceerd", + "External": "Extern", + "HeaderEmbeddedTitle": "Ingesloten titel", + "OnlyForcedSubtitles": "Alleen geforceerde ondertitels", + "AlwaysPlaySubtitles": "Altijd ondertitels weergeven", + "DefaultSubtitlesHelp": "Ondertitels worden geladen op basis van de standaard en geforceerd markeringen in de ingesloten metadata. Indien meerdere opties aanwezig zijn zal rekening worden gehouden met de taalvoorkeuren.", + "SmartSubtitlesHelp": "Ondertitels worden weergegeven in de voorkeurstaal als de audio in een andere taal zijn.", + "HeaderSubtitleSettings": "Ondertitel Instellingen", + "HeaderSubtitleAppearance": "Ondertitel Weergave", + "OnlyForcedSubtitlesHelp": "Alleen als geforceerd gemarkeerde ondertitels worden geladen.", + "AutoSelectHearingImpairedHelp": "Ondertitels die overeenkomen met de taalvoorkeur worden geladen, waarbij de voorkeur wordt gegeven aan sporen die zijn gemarkeerd als slechthorend (SDH).", + "AlwaysPlaySubtitlesHelp": "Ondertitels die met de taalvoorkeur overeenkomen worden weergegeven, ongeacht de audiotaal.", + "NoSubtitlesHelp": "Ondertitels worden niet standaard weergegeven. Deze kunnen tijdens het afspelen handmatig worden ingeschakeld.", + "LabelPreferredSubtitleLanguage": "Voorkeurstaal ondertitels:", + "LabelTextSize": "Tekst grootte:", + "TheseSettingsAffectSubtitlesOnThisDevice": "Deze instellingen betreffen ondertitels op dit apparaat", + "LabelDropShadow": "Schaduw:", + "LabelTextBackgroundColor": "Tekst achtergrond kleur:", + "LabelWindowBackgroundColor": "Tekst achtergrond kleur:", + "LabelFont": "Lettertype:", + "LabelTextColor": "Tekst kleur:", + "LabelBackgroundColor": "Achtergrondkleur:", + "LabelBackgroundOpacity": "Achtergrond transparantie:", + "Raised": "Verhoogd", + "Depressed": "Onderdrukt", + "Uniform": "Uniform", + "DropShadow": "Schaduw", + "SmallCaps": "Klein kapitaal", + "SubtitleAppearanceSettingsDisclaimer": "Deze instellingen hebben geen invloed op grafische ondertitels (PGS, DVD etc.) en ondertitels die hun eigen stijl ingebouwd hebben (ASS/SSA).", + "Normal": "Normaal", + "HeaderWaitingForWifi": "Wachten op Wifi", + "WifiRequiredToDownload": "Wifi verbinding is vereist om te downloaden.", + "DownloadOnlyOnWifi": "Alleen via Wifi downloaden", + "LabelMusicDownloadQuality": "Muziek downloadkwaliteit:", + "MusicDownloadQualityHelp": "Audiobestanden met een hogere bitrate zullen door Emby Server worden geconverteerd. Selecteer een hogere waarde voor betere kwaliteit of een lagere waarde om diskruimte te besparen.", + "HeaderDownloadSettings": "Download Instellingen", + "LabelDownloadLocation": "Downloadlocatie:", + "BrowseForFolder": "BladerNaarMap", + "Unlimited": "Onbeperkt", + "NoLimit": "Geen limiet", + "Hide": "Verbergen", + "HeaderKeepWatching": "Blijven kijken", + "HeaderNextEpisode": "Volgende aflevering", + "AudioBitDepthNotSupported": "Converteren naar compatibele audio bit depth", + "VideoBitrateNotSupported": "Converteren naar geschikte video bitsnelheid", + "VideoProfileNotSupported": "Converteren naar compatibel video profiel", + "VideoFramerateNotSupported": "Converteren naar compatibele video framerate", + "VideoBitDepthNotSupported": "Converteren naar compatibele video bit depth", + "RefFramesNotSupported": "Converteren naar een compatibel aantal video reference frames", + "ErrorConnectServerUnreachable": "Er was een probleem bij het uitvoeren van deze bewerking. Uw server kan de Emby Connect Server op {0} niet bereiken. Controleer dat uw server een actieve internetverbinding heeft en dat de communicatie toegestaan wordt door de firewall en/of security software die u gebruikt.", + "HeaderStopRecording": "Stop Opname", + "ManageRecording": "Beheren opnames", + "LabelDropImageHere": "Sleep de afbeelding hierheen, of klik om een ​​afbeelding te selecteren om te uploaden.", + "MessageFileReadError": "Er is een fout opgetreden bij het lezen van het bestand. Probeer het opnieuw.", + "Browse": "Bladeren", + "HeaderUploadImage": "Afbeelding Uploaden", + "HeaderAddUpdateImage": "Afbeelding Toevoegen/Bijwerken", + "HeaderShowFields": "Toon velden", + "LabelView": "Weergave:", + "LabelImageType": "Afbeeldingstype:", + "Upload": "Uploaden", + "Primary": "Primair", + "PrimaryImageBlur": "Primaire beeldonscherpte", + "Art": "Kunst", + "Backdrop": "Achtergrond", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (achterkant)", + "Disc": "Disk", + "Logo": "Logo", + "LogoDark": "Logo (Donkere versie)", + "LogoLight": "Logo (Heldere versie)", + "LogoLightColor": "Logo (Helder met kleur)", + "Menu": "Menu", + "Screenshot": "Schermafdruk", + "Thumb": "Miniatuur", + "HeaderAudioSettings": "Audio Instellingen", + "LabelAudioLanguagePreference": "Voorkeurs audiotaal:", + "LabelPlayDefaultAudioTrack": "Standaard audio spoor afspelen ongeacht de taal", + "HeaderVideoQuality": "Video Kwaliteit", + "CinemaModeConfigurationHelp": "Cinema intro's brengen de theaterervaring rechtstreeks naar je woonkamer met de mogelijkheid om trailers en aangepaste intro's af te spelen vóór de hoofdfilm.", + "ShowUpNextPreview": "Volgende voorbeeld weergeven", + "ShowUpNextPreviewHelp": "Toon informatie voor het volgende item aan het einde van het huidige item.", + "PlayNextEpisodeAutomatically": "Speel volgende aflevering automatisch", + "LabelMaxChromecastBitrate": "Chromecast streaming kwaliteit:", + "LabelSkipBackLength": "Terugspoellengte", + "LabelSkipForwardLength": "Vooruitspoellengte", + "EnableCinemaMode": "Cinema intro's inschakelen", + "LabelInternetQuality": "Internet kwaliteit:", + "LabelCellularQuality": "Kwaliteit van externe streaming (mobiel)", + "HeaderMusicQuality": "Muziek Kwaliteit", + "LabelHomeNetworkQuality": "Thuisnetwerk kwaliteit:", + "HeaderLatestMedia": "Nieuwste media", + "HeaderRestartingEmbyServer": "Emby Server herstarten", + "RestartPleaseWaitMessage": "Wacht totdat Emby Server is afgesloten en opnieuw is gestart. Dit kan een paar minuten duren.", + "HeaderPlayNext": "Volgende afspelen", + "AutoBasedOnLanguageSetting": "Automatisch (gebaseerd op apparaat instelling)", + "SameAsMainTheme": "Hetzelfde als hoofdthema", + "LabelDateTimeLocale": "Datum en tijd regio:", + "Genre": "Genre", + "DirectorValue": "Regisseur: {0}", + "DirectorsValue": "Regisseurs: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Labels: {0}", + "Off": "Uit", + "Title": "Titel", + "Year": "Jaar", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Niet afgespeeld", + "LabelTVHomeScreen": "TV mode begin scherm", + "Horizontal": "Horizontaal", + "Vertical": "Verticaal", + "HeaderGroupBy": "Groeperen op", + "HeaderMediaType": "Media type", + "GroupBySeries": "Groeperen op serie", + "HeaderVideoType": "Videotype", + "HeaderSeriesStatus": "Seriestatus", + "Features": "Kenmerken", + "Trailers": "Trailers", + "Extras": "Extra's", + "ThemeSongs": "Themamuziek", + "ThemeVideos": "Themavideo's", + "HeaderFavoriteMovies": "Favoriete films", + "HeaderFavoritePhotos": "Favoriete foto's", + "HeaderFavoriteShows": "Favoriete series", + "HeaderFavoriteEpisodes": "Favoriete afleveringen", + "HeaderFavoriteVideos": "Favoriete video's", + "HeaderFavoriteMusicVideos": "Favoriete muziekvideo's", + "HeaderFavoriteGames": "Favoriete games", + "HeaderFavoriteArtists": "Favoriete artiesten", + "HeaderFavoriteAlbums": "Favoriete albums", + "HeaderFavoriteSongs": "Favoriete nummers", + "HeaderFavoriteAuthors": "Favoriete auteurs", + "HeaderFavoriteAudioBooks": "Favoriete luisterboeken", + "Ascending": "Oplopend", + "Descending": "Aflopend", + "HeaderColorPrimaries": "Primaire kleuren", + "HeaderColorSpace": "Kleurbereik", + "HeaderColorTransfer": "Kleuroverdracht", + "HeaderVideoRange": "Videobereik", + "SeriesDisplayOrderHelp": "Afleveringen sorteren op uitzenddatum, DVD-volgorde, of absolute nummering.", + "LabelVerticalPositionFromBottom": "Verticale positie (van beneden):", + "HeaderFavoritePeople": "Favoriete Mensen", + "MultiSelect": "Multi-select", + "HeaderSignOut": "Afmelden", + "HeaderSelectServer": "Server Selecteren", + "HeaderChangeServer": "Server Veranderen", + "HeaderChangeUser": "Gebruiker wijzigen", + "HeaderAppSettings": "App Instellingen", + "HeaderLoginSettings": "Inlog-instellingen", + "LabelRememberLogin": "Inloggegevens onthouden", + "LabelAutomaticallySignOut": "Automatisch uitloggen", + "BetaTesterMessage": "Bedankt dat je een bètatester van Emby bent! Geef alsjeblieft feedback in het {0}Testgebied van de Emby Community{1}.", + "HardwareAccelerated": "Hardware versneld", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media informatie", + "Locked": "Vergrendeld", + "HeaderSplitVersionsApart": "Splits Versies", + "Any": "Elke", + "Admin": "Beheerder", + "HeaderReadMore": "Zie Meer", + "CustomRatingHelp": "Een aangepaste beoordeling wordt gebruikt voor evaluaties van ouderlijk toezicht, maar wordt niet weergegeven. Het veld voor ouderlijk toezicht wordt nog steeds weergegeven.", + "KeepUpToHelp": "Opnamen boven de limiet worden verwijderd wanneer de volgende opname begint. De oudste opnames worden eerst verwijderd, gebaseerd op datum toegevoegd.", + "NoItemsMatchingFound": "Er zijn geen items gevonden die voldoen aan uw zoekcriteria.", + "TwoSearchCharsRequired": "Voer ten minste twee zoekkarakters in.", + "PreventPlaybackContinuing": "Voorkomt dat het afspelen voor onbepaalde tijd wordt voortgezet door regelmatig om gebruikersinvoer te vragen.", + "PromptStillWatching": "Activeren van 'Ben je nog aan het kijken?' herinnering", + "HeaderMissingMetadata": "Ontbrekende Metadata", + "HeaderIncludedIn": "Inbegrepen in", + "EmbyConnectUserAlreadyLinked": "De gebruiker van Emby Connect is al gekoppeld aan een andere gebruiker op deze server.", + "VideoFilesWillBeConvertedTo": "Geconverteerde video's worden opgeslagen als {0}.", + "VideoWillBeConvertedTo": "Videostreams worden geconverteerd naar {0} of gekopieerd uit het oorspronkelijke bestand als ze al {0} zijn en de kwaliteit binnen de conversieopties past.", + "VideoWillBeConvertedToOrCopied": "Videostreams worden geconverteerd naar {0} of gekopieerd uit het originele bestand als ze een van ({1}) zijn en de kwaliteit past binnen de conversieopties.", + "AudioWillBeConvertedTo": "Audiostreams worden geconverteerd naar {0} of gekopieerd uit het oorspronkelijke bestand als ze al {0} zijn en de kwaliteit past binnen de conversieopties.", + "AudioWillBeConvertedToOrCopied": "Audiostreams worden geconverteerd naar {0} of gekopieerd uit het originele bestand als ze een van ({1}) zijn en de kwaliteit past binnen de conversieopties.", + "HeaderSpecialKeys": "Speciale toetsen", + "FollowingSpecialKeys": "De volgende speciale toetsen worden ondersteund op de meeste toetsenborden en afstandsbedieningen:", + "HeaderDeleteSeries": "Verwijder series", + "HeaderDeleteLastPlayedEpisode": "Verwijder laatst afgespeelde aflevering", + "HeaderConnectingToServer": "Verbinden met de server", + "ServerNameValue": "Server naam: {0}", + "DomainValue": "Domein: {0}", + "RatedValue": "Gewaardeerd {0}", + "LocalServerRedirectMessage": "U wordt nu doorgestuurd naar het domein dat eigendom is van en wordt beheerd door de beheerder van de server waarmee u verbinding wilt maken:", + "AllMediaOwnedHosted": "Alle media worden gehost en beheerd door de eigenaar van {0}.", + "EnableResolutionSwitching": "Stem videoresolutie overeen", + "EnableResolutionSwitchingHelp": "Hierdoor kan Emby de resolutie wijzigen naar dezelfde waarde waarin de video was gecodeerd voordat het afspelen werd gestart. Dit kan helpen de hoeveelheid stotteren/haperen te minimaliseren die u anders zou kunnen tegenkomen bij het afspelen van video's die niet goed bij elkaar passen.", + "EnableDisplayRefreshRateSwitching": "Schakel het wisselen van de vernieuwingsfrequentie van het beeldscherm in", + "EnableDisplayRefreshRateSwitchingHelp": "Hierdoor kan Emby de vernieuwingsfrequentie van het scherm wijzigen in dezelfde waarde (of een veelvoud daarvan) als de framerate waarin de video is gecodeerd voordat het afspelen werd gestart. Dit kan helpen de hoeveelheid stotteren/haperen te minimaliseren die u anders zou kunnen tegenkomen bij het afspelen van video's die niet goed bij elkaar passen.", + "RememberSelectedAudioTracks": "Onthoud selectie audiospoor", + "RememberSelectedSubtitleTracks": "Onthoud selectie ondertitelspoor", + "RememberSelectedSubtitleTracksHelp": "De selecties van ondertitelsporen worden per video onthouden en opnieuw toegepast wanneer dezelfde video opnieuw wordt afgespeeld.", + "RememberSelectedAudioTracksHelp": "De selecties van audiosporen worden per video onthouden en opnieuw toegepast wanneer dezelfde video opnieuw wordt afgespeeld.", + "ClearSavedTrackSelections": "Wis opgeslagen spoor selecties", + "HeaderClearTrackSelections": "Wis opgeslagen spoor selecties", + "QuestionClearSavedTracks": "Wis alle opgeslagen spoor selecties?", + "LabelChannelTags": "Kanaal labels:", + "AfterThisPlaysConfirmation": "Wil je, nadat dit is afgespeeld, doorgaan met spelen of de muziek wissen die je eerder in de wachtrij hebt geplaatst?", + "Keep": "Bijhouden", + "Clear": "Wissen", + "HeaderClearFilters": "Wis filters", + "HeaderSearchForImages": "Zoeken naar afbeeldingen", + "HeaderSearchNewImage": "Zoeken naar een nieuwe afbeelding", + "HeaderSearchForAnImage": "Zoeken naar een afbeelding", + "DragDropToReorder": "Slepen en neerzetten om opnieuw te ordenen", + "HeaderAddImageFromUrl": "Voeg afbeelding toe vanuit URL", + "HeaderSetImageFromUrl": "Stel afbeelding in vanuit URL", + "LabelUrl": "Url:", + "LabelChannelNumber": "Kanaal nummer:", + "LabelGuideDataChannel": "Gids data kanaal:", + "GuideDataSource": "Gids data bron", + "HeaderCopyToClipboard": "Kopieer naar klembord", + "TimeRemainingValue": "{0} over", + "LabelResumeRewindSeconds": "Bij hervatten automatisch terugspoelen:", + "ResumeRewindSecondsHelp": "Dit kan u helpen herinneren waar u was gebleven. Dit geldt voor de initiële hervatting en niet voor elke individuele pauze tijdens het afspelen.", + "HeaderSavePlayQueueToPlaylist": "Sla de afspeelwachtrij op in de afspeellijst", + "EnableLogoImagesAsTitle": "Geef logoafbeeldingen weer als titels op detailschermen", + "EnableLogoImagesAsTitleHelp": "Indien beschikbaar kunnen logoafbeeldingen worden gebruikt in plaats van titeltekst op video-, serie- en andere detailschermen. De titel valt terug naar tekst als er geen logoafbeelding beschikbaar is.", + "LabelNowPlayingAudioBackgroundStyle": "Nu aan het afspelen audio-achtergrondstijl:", + "LabelNowPlayingVideoBackgroundStyle": "Nu aan het afspelen video-achtergrondstijl:", + "NowPlayingVideoBackgroundStyleHelp": "Bepaalt de achtergrondstijl bij het op afstand bedienen van het afspelen van video op een ander apparaat.", + "Rotation": "Rotatie", + "Minutes": "Minuten", + "LabelMaxRecordingLength": "Maximale opname lengte", + "MaxRecordingLengthHelp": "Beperk opnames tot een bepaalde tijd, ongeacht de duur van de uitzending. Stel in op 0 voor geen limiet", + "RemoteWAN": "Extern (WAN) adres", + "HeaderLastConnectedTo": "Laatste verbinding met", + "Version": "Versie", + "Keyword": "Sleutelwoord", + "HeaderServerAddress": "Server adres", + "HeaderSkipIntro": "Intro overslaan", + "HeaderCreateRecording": "Opname aanmaken", + "HeaderAddRecording": "Opname toevoegen", + "HeaderChannelAndTime": "Kanaal en tijd", + "LabelRecordProgramOrSeriesFrom": "Neem een programma of serie op van:", + "LabelStartTime": "Start tijd:", + "LabelEndTime": "Eind tijd:", + "LabelFrequency": "Frequentie:", + "Recurring": "Wederkerend", + "Once": "Eens", + "Start": "Start", + "Unpause": "Hervatten", + "LabelIntroSkipMode": "Intro overslaan:", + "ShowSkipIntroButton": "Toon 'Intro overslaan' knop", + "AutoSkipIntro": "Intro's automatisch overslaan", + "DisplayRatingInformationOnVideoPlaybackStart": "Geef beoordelingsinformatie weer bij het starten van het afspelen van video", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "De beoordelingsinformatie wordt kort weergegeven wanneer het afspelen van de video begint", + "IntroSkipModeHelp": "Geef een knop 'Intro overslaan' weer of sla automatisch intro's over voor afleveringen waarin Emby Server intromarkeringen heeft gedetecteerd. Introdetectie moet zijn ingeschakeld in de Emby Server-bibliotheekopties.", + "EnableHomeScreenFocusPreview": "Gebruik een lay-out op het startscherm die een gedetailleerd voorbeeld van het geselecteerde item toont", + "EnableHomeScreenFocusPreviewHelp": "Dit werkt mogelijk niet goed als uw startscherm een combinatie van verschillende mediatypen bevat.", + "LabelHideMediaTransportButtons": "Transportknoppen van de videospeler verbergen:", + "HideMediaTransportButtonsHelp": "Creëer een eenvoudiger afspeelinterface op het scherm door basistransportknoppen zoals vooruitspoelen, terugspoelen en pauzeren te verbergen. U kunt deze functies nog steeds gebruiken met de pijltoetsen en OK/Enter. Auto verbergt de transportknoppen wanneer er geen gebruik van de muis wordt gedetecteerd in de app.", + "ImageSizeHelp": "Stel de gewenste grootte van afbeeldingsrasters in.", + "LabelImageSize": "Afbeeldingsgrootte:", + "ThisImageIsOnlyPreview": "Deze afbeelding is slechts een voorbeeld dat afkomstig is van de metadata-zoekmachine. De daadwerkelijke afbeelding die Emby Server downloadt, kan afwijken en is afhankelijk van de opties die u hebt geconfigureerd in de Emby-bibliotheekinstellingen.", + "ResultsRangeValue": "{0} tot {1} van {2}", + "NotificationsDescription": "Stel meldingen in om op de hoogte te blijven van belangrijke gebeurtenissen op uw Emby Server.", + "DeleteEmbyConnectAccount": "Verwijder Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "Als u uw Emby Connect-account wilt verwijderen, meldt u zich aan bij de {0}Emby Community{1} op {2}. Nadat u bent ingelogd, klikt u rechtsboven op uw gebruikersnaam, vervolgens op Accountinstellingen en vervolgens op Mijn account verwijderen.", + "KeepPlayingInBackground": "Blijf op de achtergrond afspelen", + "LabelVideoBackBehavior": "Gedrag van de terugknop van de videospeler:", + "HeaderViewLyrics": "Bekijk songteksten", + "HeaderViewMissingEpisodes": "Toon ontbrekende afleveringen", + "HeaderMissingEpisodes": "Ontbrekende Afleveringen", + "HeaderManageAccess": "Beheer toegang", + "HeaderManageCollaboration": "Beheer samenwerking", + "HeaderLeaveCollaboration": "Verlaat samenwerking", + "HeaderRemoveFromLibrary": "Verwijder van bibliotheek", + "RemoveSharedItemConfirmation": "Weet u zeker dat u dit item uit uw bibliotheek wilt verwijderen? Om het terug te krijgen, moet de eigenaar u opnieuw toegang verlenen.", + "SubtitlesDownloaded": "Ondertitels gedownload", + "HeaderMakePrivate": "Maak privé", + "HeaderMakePublic": "Maak publiek", + "MakePublicDescription": "Alle gebruikers kunnen dit item bekijken. Gebruikers kunnen toegang krijgen om te bewerken.", + "MakePrivateDescription": "Gebruikers kunnen nog steeds individueel toegang krijgen.", + "Private": "Privé", + "Public": "Publiek", + "Collaborative": "Samenwerkend", + "PreferredShowDisplay": "Gewenste weergave voor TV series:", + "ShowAllEpisodesAllSeasons": "Toon alle afleveringen van alle seizoenen samen", + "ShowAllEpisodesSingleSeason": "Toon alle afleveringen voor shows van één seizoen", + "ShowSeasonFolders": "Toon altijd seizoen mappen", + "HeaderAddAgain": "Voeg opnieuw toe", + "UpNext": "Volgende", + "ItemsAlreadyInPlaylist": "Sommige van deze items staan reeds in uw afspeellijst", + "ItemAlreadyInPlaylist": "Dit item staat reeds in uw afspeellijst", + "HeaderPlayChannel": "Speel kanaal", + "LabelScreenOrientationDuringVideo": "Schermoriëntatie tijdens het afspelen van video", + "UseDeviceSetting": "Gebruik apparaat instelling", + "LockToLandscape": "Vergrendel op landscape", + "UsernameForFolderHelp": "De gebruikersnaam die nodig is om toegang te krijgen tot deze map op uw netwerk (indien van toepassing).", + "PasswordForFolderHelp": "Het paswoord dat nodig is om toegang te krijgen tot deze map op uw netwerk (indien van toepassing)", + "ShowMediaInfoOnDetailScreens": "Toon volledige media onderaan de audio- en videodetailschermen", + "ForgotPasswordNoUserFound": "Er zijn geen gebruikers gevonden met de ingevoerde naam. Probeer het opnieuw of laat de naam leeg om het wachtwoord voor alle gebruikers op deze server opnieuw in te stellen.", + "Silver": "Zilver", + "DimGray": "Vaag grijs", + "DarkGray": "Donkergrijs", + "LightGray": "Lichtgrijs", + "Black": "Zwart", + "Blue": "Blauw", + "Cyan": "Cyaan", + "Gray": "Grijs", + "Green": "Groen", + "Lime": "Limoen", + "Magenta": "Magenta", + "Orange": "Oranje", + "Pink": "Roos", + "Red": "Rood", + "Yellow": "Geel", + "White": "Wit", + "Purple": "Paars", + "RecentlyReleasedMovies": "Recent uitgebrachte films", + "RecentlyReleasedEpisodes": "Recent uitgebrachte afleveringen", + "DolbyProfile": "Dolby profiel", + "IpAddress": "IP adres", + "VideoType": "Videotype", + "HidePlayedMediaFrom": "Verberg afspeelde media van", + "BottomEdgePosition": "Positie onderrand", + "VerticalPositionFromBottomScreen": "Stel de verticale positie van de ondertitels in ten opzichte van de onderkant van het scherm.", + "TopEdgePosition": "Positie bovenrand", + "TopEdgePositionHelp": "Stel de hoogst toegestane verticale positie van de ondertitels in ten opzichte van de bovenkant van het scherm. Dit wordt gebruikt wanneer de ondertitels positioneringsinstructies bevatten die bovenaan moeten worden geplaatst.", + "HeaderSubtitlePosition": "Positie ondertitel", + "TitleProfilePin": "Profielpincode", + "ProfilePinConfirm": "Profielpincode (bevestigen)", + "SaveProfilePin": "Sla profielpincode op", + "ProfilePinDescription": "Maak een optionele pincode aan, zodat u om invoer wordt gevraagd wanneer u terugkeert naar een Emby-app op een apparaat waarop u al bent aangemeld. Dit is handig als u apparaten heeft die door meerdere gebruikers worden gedeeld. U kunt ervoor kiezen om dit indien nodig selectief op elk apparaat in te schakelen.", + "TitleNewEpisodes": "Nieuwe afleveringen", + "EnterYourPinToContinue": "Voer uw pincode in om verder te gaan.", + "YourPinMustBe": "Uw pincode moet uit {0} cijfers bestaan.", + "ForgotPin": "Pincode vergeten?", + "RequireEnteringPinToReturn": "Vereisen dat ik mijn profielpincode moet invoeren wanneer ik terugkeer naar deze app.", + "RequireEnteringPinToReturnQuestion": "Moeten we u om uw profielpincode vragen wanneer u terugkeert naar deze app? Als dit apparaat door meerdere gebruikers wordt gedeeld, kan uw profielpincode helpen voorkomen dat andere gebruikers toegang krijgen tot uw gegevens.", + "RequireEnteringPinToReturnHelp": "Handig als dit apparaat door meerdere gebruikers wordt gedeeld.", + "WrongPinPleaseTryAgain": "Oeps, verkeerde pincode. Probeer het opnieuw.", + "ProfilePinIsOn": "Profielpincode is momenteel ingeschakeld.", + "IfTryingToConnectToHttp": "Als u verbinding probeert te maken met een http-adres, staat uw browser dit mogelijk niet toe. Misschien wilt u een van de volgende dingen proberen:", + "SetupHttpsForYourServer": "Stel {0}https in voor uw Emby Server{1}, zodat u verbinding kunt maken via https.", + "TitleUnableToReachServer": "Kan de server niet bereiken", + "TitleUnableToReachName": "Kan {0} niet bereiken", + "HearingImpaired": "Slechthorend", + "SignIntoServerName": "Aanmelden op {0}", + "About": "Over", + "Specials": "Specials", + "NSettings": "{0} Instellingen", + "NPreferences": "{0} Voorkeuren", + "DetailScreenOptions": "Detailschermen", + "LabelGenreDisplayLimit": "Weergavelimiet genre:", + "GenreDisplayLimitHelp": "Beperk het aantal genres dat bovenaan de het detail van het bestand getoond wordt.", + "GenreDisplayLimitForListsHelp": "Beperk het aantal genres dat bovenaan de het detail van de afspeellijst, de collectie en de artiest getoond wordt.", + "LabelGenreDisplayLimitForLists": "Weergavelimiet genre voor lijsten:", + "ShowPosterOnDetails": "Toon een poster op het detailscherm", + "ShowPosterOnDetailsHelp": "Kies ervoor om een ​​poster op videodetailschermen weer te geven, of verberg deze voor een minimalistischer uiterlijk dat de achtergrond benadrukt. Deze instelling wordt niet gebruikt bij kleinere schermindelingen. Sommige bestandstypen negeren deze instelling.", + "EnableAppLogging": "Schakel app-logboekregistratie in", + "EnableAppLoggingHelp": "Logboekregistratie kan de app-prestaties verslechteren en mag alleen worden ingeschakeld als dat nodig is voor probleemoplossingsdoeleinden. Voor wijzigingen is het opnieuw opstarten van de app vereist.", + "LabelSlideshowInterval": "Tijd voor fotovoorstelling per dia", + "TVChannelImageEditorHelp": "Er worden meerdere logoversies ondersteund. Emby-apps kiezen automatisch de juiste, afhankelijk van het huidige thema.", + "PlaySlideshow": "Speel diavoorstelling af", + "CheckForExistingEpisodesInAllLibraries": "Controleer op bestaande afleveringen in alle bibliotheken", + "GroupNotificationsBySeriesOrAlbum": "Groepeer meldingen op series en albums\n", + "ThemeSettings": "Thema instellingen", + "FollowingActivityWillBeDisrupted": "De volgende activiteit wordt verstoord en vereist mogelijk handmatige tussenkomst om opnieuw te starten:", + "OneActivePlaybackSession": "1 Actieve afspeelsessie", + "NumActivePlaybackSessions": "{0} Actieve afspeelsessies", + "OneActiveRecording": "1 Actieve opname", + "NumActiveRecordings": "{0} Actieve opnamen", + "PlayFromLivePosition": "Speel af vanuit de live positie", + "PlayFromStartOfRecording": "Speel af vanaf het begin van de opname", + "ThisChannelIsActivelyRecording": "Dit kanaal neemt actief op. Hoe zou je willen beginnen met spelen?", + "ThemeSongVolume": "Volume van het themalied", + "HeaderForceConversionForFormats": "Forceer Transcoderen voor Formaten", + "ForceConversionForFormatsHelp": "Gebruikt dit om voor bepaalde formaten die niet probleemloos afspelen op dit apparaat, om aan de server-kant te encoderen of remuxen.", + "StartupBehavior": "Opstartinstellingen", + "RememberLastUser": "Onthoud laatste gebruiker", + "ShowLoginScreen": "Toon Login Scherm", + "SignInAsValue": "Aanmelden als {0}", + "ConvertUnsupportedAudio": "Niet ondersteunde surround audio naar Dolby Digital converteren", + "ConvertUnsupportedAudioHelp": "Vermijd downmixen van niet-ondersteunde surroundformaten naar stereo doordat Emby Server ze omzet naar Dolby Digital.", + "HeaderPlaybackCorrection": "Afspeelcorrectie", + "HeaderAttemptPlaybackCorrection": "Probeer Afspeelcorrectie", + "PlaybackCorrectionConfirm": "Probeer afspeelcorrectie?", + "PlaybackCorrectionDescription": "Heeft het huidige item afspeelproblemen, zoals dat het geluid of beeld het niet doet? Deze methode zal proberen de afspeelproblemen op te lossen door het bestand om te zetten naar een beter ondersteund formaat. Dit zal er voor zorgen dat deze Emby Server meer resources gaat gebruiken.", + "PlaybackCorrectionDescription2": "Je kan dit tot drie keer per video doen. wanneer remuxing, video encoding en audio encoding elk individueel geactiveerd worden.", + "HeaderAlbumsAsContributingArtist": "Albums als Bijdragende Artiest", + "HeaderAlbumsAsComposer": "Albums als Componist", + "Duplicates": "Duplicaten", + "HeaderSleepTimer": "Slaaptimer", + "AfterCurrentItem": "Na huidig item", + "HeaderStopPlayback": "Afspelen stoppen", + "TurnOffTimer": "Uitschakeltimer", + "SleepTimerIsSet": "Je slaaptimer is ingesteld", + "SleepTimerIsOff": "Je slaaptimer is uitgeschakeld", + "LabelEnableRemoteControlTVMode": "Geef casting en bedieningsfuncties weer", + "EnableRemoteControlTVModeHelp": "Schakel dit in wanneer je dit apparaat wilt gebruiken om media te versturen naar andere apparaten.", + "ShowOnScreenControls": "Toon schermbediening", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Selecteer die actie die wordt uitgevoerd wanneer je op \"omhoog\" klikt in de videospeler. Dit wordt toegepast wanneer geen bediening wordt weergegeven. Wanneer er bediening zicht is, wordt de \"omhoog\"-knop gebruikt voor navigatie.", + "LabelVideoPlayerLongPressAction": "Videospeler lang ingedrukt actie", + "LetsGetSetup": "Laten we gaan instellen", + "VideoPlayerLongPressActionHelp": "Kies wat de functie of welk menu getoond wordt wanneer de OK-knop lang wordt ingedrukt. Dit wordt toegepast wanneer de videobediening is verborgen of de spoelbalk focus heeft.", + "AskAdminToGetPremiere": "Deze aankoop moet worden gedaan door een server administrator. Neem contact op met de server administratie van deze Emby Server en verzoek deze na inlog Emby Premiere aan te kopen zodat je premium functies kunt gebruiken.", + "AutoOpenSingleItemsFolders": "Open enkele items automatisch in folderweergave", + "AutoOpenSingleItemsFoldersHelp": "Wanneer een folder maar één item bevat, open deze automatisch", + "PlayedOnValue": "Afgespeeld {0}", + "TheseSettingsApplyAppDevice": "Deze instellingen toepassen op alle gebruikers op dit apparaat.", + "LastContentDateAdded": "Laatste inhoud toegevoegd op", + "RepeatThemeMedia": "Speel thema's herhaaldelijk af", + "HideEpisodeSpoilerInfo": "Verberg spoilerinformatie van nog niet bekeken afleveringen", + "HideEpisodeSpoilerInfoHelp": "Verbergt de titel, het overzicht en de afbeelding voor niet-bekeken afleveringen op de meeste schermen.", + "BornValueAge": "Geboren: {0} (leeftijd {1})", + "PreferDirectStreamLiveTV": "Geef voorkeur aan direct streaming voor Live TV", + "PreferDirectStreamLiveTVHelp": "Het direct streamen van Live TV zal het gebruik van bronnen verminderen op de Emby Server maar het kan mogelijk zijn dat hierdoor het zoeken/spoelen niet meer mogelijk wordt tijdens het afspelen. Dit inschakelen zal er voor zorgen dat direct streamen wordt ingeschakeld, wanneer het formaat en de kwaliteitsinstellingen dit toelaten. Schakel dit uit om o.a. het zoeken/spoelen in te schakelen ten koste van het systeemgebruik.", + "HeaderAllRecordings": "Alle Opnamen", + "RememberLoginDescription": "Nadat je bent ingelogd kan je gebruik maken van de app instellingen om; het opstart gedrag in te stellen, in te loggen als een specifieke gebruiker of altijd het login scherm te tonen.", + "ForgetThisServer": "Vergeet deze server", + "ForgetServerConfirmation": "Weet je zeker dat je deze server wilt vergeten?", + "HeaderThisDevice": "Dit Apparaat", + "ChaptersGuide": "Chapters / Live TV Gids", + "ChaptersGuideHelp": "Toon hoofdstukken voor media met hoofdstukken. Toon wanneer beschikbaar, de Live TV gids voor media zonder hoofdstukken.", + "HeaderShowSeriesImages": "Toon Serie Afbeeldingen", + "AppExitConfirmation": "Ben je klaar om Emby af te sluiten?", + "AppExitMenu": "Menu afsluiten", + "SideMenu": "Zij-navigatiemenu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/pl.json b/modules/common/strings/pl.json new file mode 100644 index 0000000..aaf6e2e --- /dev/null +++ b/modules/common/strings/pl.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby zostało zaprojektowane, aby ułatwiać zarządzanie prywatną biblioteką multimediów - filmami, muzyką i zdjęciami. Zapoznaj się z {0}warunkami użytkowania{1}. Używanie oprogramowania Emby wymaga ich akceptacji.", + "MessageUnableToConnectToServer": "W tej chwili nie jesteśmy w stanie połączyć się z wybranym serwerem. Upewnij się, że jest uruchomiony i spróbuj ponownie.", + "EmbyIntroMessage": "Przy pomocy Emby możesz łatwo transmitować wideo, muzykę i obrazy na telefony, tablety i inne urządzenia ze swojego serwera Emby.", + "HeaderSignInWithConnect": "Zaloguj się z Emby Connect", + "HeaderWelcomeToEmby": "Witaj w Emby", + "HeaderNewUsers": "Nowi użytkownicy", + "HeaderPleaseSignIn": "Zaloguj się", + "MessageInvalidUser": "Nieprawidłowa nazwa użytkownika lub hasło. Spróbuj ponownie.", + "MessageUnlockAppWithPurchaseOrSupporter": "Odblokuj tę funkcję za niewielką, jednorazową opłatą lub przy użyciu aktywnej subskrypcji Premium.", + "MessageUnlockAppWithSupporter": "Odblokuj tę funkcję przy użyciu subskrypcji Premium.", + "MessageToValidateSupporter": "Jeśli posiadasz aktywną subskrypcję Premium, upewnij się, że ją poprawnie skonfigurowałeś przy pomocy Kokpitu serwera Emby, do którego możesz uzyskać dostęp, klikając na pozycję Premium menu startowego.", + "ValueSpecialEpisodeName": "Odcinek specjalny - {0}", + "HeaderSignIn": "Zaloguj", + "Share": "Udostępnij", + "Shared": "Wspólne", + "Info": "Informacje", + "Add": "Dodaj", + "Speed": "Szybkość", + "PlaybackSpeed": "Prędkość odtwarzania", + "Chapters": "Rozdziały", + "Password": "Hasło", + "SavePassword": "Zapisz hasło", + "LabelPassword": "Hasło", + "HeaderResetPassword": "Resetowanie hasła", + "Series": "Seriale", + "Preview": "Podgląd", + "Submit": "Zatwierdź", + "Never": "Nigdy", + "Table": "Tabela", + "HeaderScheduledTasks": "Zaplanowane zadania", + "Plays": "Odtwarza", + "LastUsedAddressValue": "Ostatnio używany {0}", + "LabelKeywordType": "Typ słowa kluczowego", + "HeaderSelectColumns": "Wybierz kolumny", + "HeaderTopResults": "Najlepsze wyniki", + "HeaderPinSidebar": "Przypnij pasek boczny", + "Collapse": "Zwiń", + "LabelBackgroundVideoPlayback": "Odtwarzanie wideo w tle", + "BackgroundVideoPlaybackHelp": "Odtwarzanie w tle umożliwia odtwarzanie wideo nawet, gdy wyświetlacz jest wyłączony,", + "AlwaysOn": "Zawsze aktywne", + "HeadphonesOrExternalSpeakersConnected": "Podłączono słuchawki lub zewnętrzne głośniki", + "HeaderKeyboardAndRemote": "Klawiatura i pilot", + "NoSelectedItemsSupportOperation": "Brak pozycji obsługujących tę operację.", + "NoOperationsForSelectedItems": "Brak operacji obsługiwanych przez wybrane pozycje.", + "UploadOnlyOnWifi": "Przesyłaj tylko przez WiFi", + "HeaderFoldersToUpload": "Foldery do przesłania", + "LabelPasswordConfirm": "Hasło (potwierdź)", + "HeaderMoveUpInOrder": "Przesuń w górę kolejki", + "HeaderDownUpInOrder": "Przesuń w dół kolejki", + "LabelUsername": "Nazwa użytkownika", + "HeaderAddServer": "Dodaj serwer", + "HeaderSubtitleOffset": "Przesunięcie napisów", + "Watching": "Dozorujący", + "HeaderRemoveFromContinueWatching": "Usuń z kontynuuj oglądanie", + "RemoveThisTitleFromContinueWatching": "Usunąć ten tytuł z listy Kontynuuj oglądanie?", + "HeaderRemoveFromContinueListening": "Usuń z listy Kontynuuj oglądanie", + "RemoveThisTitleFromContinueListening": "Usunąć ten tytuł z listy Kontynuuj słuchanie?", + "HeaderIncreaseSubtitleOffset": "Zwiększ przesunięcie napisów", + "HeaderDecreaseSubtitleOffset": "Zmniejsz przesunięcie napisów", + "Close": "Zamknij", + "HeaderSeeAll": "Zobacz wszystkie", + "HeaderOpenInNewWindow": "Otwórz w nowym oknie", + "LabelEmail": "Adres pocztowy", + "LabelHost": "Serwer", + "LabelHostHelp": "Przykład: 192.168.1.100 lub https://mojserwer.com", + "LabelPort": "Port", + "Disabled": "Nieaktywne", + "Uninstall": "Odinstaluj", + "Enable": "Włącz", + "AllTuners": "Wszystkie tunery", + "Disable": "Wyłącz", + "NextValue": "Następnie: {0}", + "HeaderNextItem": "Następna pozycja", + "HeaderPreviousItem": "Poprzednia pozycja", + "NoTrailersMessage": "Brak zwiastunów. W celu dodania Zwiastunów, zainstaluj wtyczkę Zwiastun z katalogu{1} wtyczek {0}Emby.", + "UninstallPluginConfirmation": "Czy na pewno odinstalować tę wtyczkę?", + "HeaderUninstallPlugin": "Odinstaluj wtyczkę", + "AreYouStillWatching": "Czy nadal oglądasz?", + "LabelCurrentPassword": "Bieżące hasło", + "LabelNewPassword": "Nowe hasło", + "LabelNewPasswordConfirm": "Potwierdź nowe hasło", + "HeaderRemovePassword": "Usuń hasło", + "ServerUpdateNeeded": "Ten serwer Emby wymaga aktualizacji. Odwiedź stronę {0}, aby pobrać najnowszą wersję.", + "MessageThankYouForConnectSignUp": "Dziękujemy za rejestrację w Emby Connect. Na Twój adres pocztowy zostanie wysłana wiadomość z instrukcjami, jak potwierdzić założenie konta. Prosimy o potwierdzenie konta, a następnie powrót w celu zalogowania.", + "MessageThankYouForConnectSignUpNoValidation": "Dziękujemy za rejestrację w Emby Connect! Zostaniesz teraz poproszony o zalogowanie się danymi z Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "Hasło i potwierdzenie hasła muszą być takie same.", + "ErrorMessageUsernameInUse": "Nazwa użytkownika jest aktualnie zajęta. Wybierz inna nazwę i spróbuj ponownie.", + "ErrorMessageEmailInUse": "Adres pocztowy jest już aktualnie w użyciu. Wprowadź nowy adres i spróbuj ponownie lub użyj funkcji przywracania hasła.", + "HeaderUpcomingOnTV": "Wkrótce w TV", + "HeaderOtherShowings": "Inne seanse", + "Showings": "Seanse", + "HeaderConnectToServer": "Połącz z serwerem", + "ConnectToServerManually": "Połącz z serwerem manualnie", + "LabelEnterConnectUserNameHelp": "Jest to adres e-mail, którego użyłeś do skonfigurowania konta Emby Connect.", + "HeaderSignInError": "Błąd logowania", + "HeaderManualLogin": "Logowanie manualne", + "PasswordResetConfirmation": "Na pewno chcesz wyczyścić hasło?", + "ContactAdminToResetPassword": "W celu wyczyszczenia hasła skontaktuj się z administratorem systemu.", + "ForgotPasswordInNetworkRequired": "Spróbuj ponownie zainicjować czyszczenie hasła używając swojej sieci domowej.", + "ForgotPasswordFileCreated": "Plik zawierający instrukcje z dalszymi krokami został utworzony na serwerze:", + "ForgotPasswordFileExpiration": "Kod resetowania wygaśnie o {0}.", + "InvalidForgotPasswordPin": "Nieprawidłowy lub nieaktualny PIN. Proszę spróbować ponownie.", + "PasswordResetForUsers": "Hasła następujących użytkowników zostały usunięte. W celu zalogowania, użyj pustego hasła.", + "HeaderForgotPassword": "Zapomniałeś hasło?", + "ForgotPasswordUsernameHelp": "Pozostaw to pole puste, jeśli nie pamiętasz swojej nazwy użytkownika.", + "HeaderPasswordReset": "Wyczyść hasło", + "AttributeNew": "Nowy", + "Done": "Zrobione", + "HeaderResetToDefault": "Przywróć domyślne", + "Deinterlacing": "Usuwanie przeplotu", + "HeaderBurningInSubtitles": "Wypalaj napisy", + "Premiere": "Premiera", + "LabelPinCode": "Kod PIN", + "LabelLocalNetworkPinCode": "Kod PIN sieci lokalnej", + "LabelLocalNetworkPasswordMode": "Tryb logowania sieci lokalnej", + "RequirePasswordInLocalNetwork": "Wymagaj hasła w sieci lokalnej", + "NoPasswordInLocalNetwork": "Nie wymagaj hasła w sieci lokalnej", + "PinCodeInLocalNetwork": "Zezwalaj na kod PIN w sieci lokalnej", + "LocalNetworkPasswordModeHelp": "Umożliwia wybór metody logowania na urządzeniach w tej samej sieci lokalnej co Twój serwer Emby.", + "HeaderLocalNetworkAccess": "Dostęp w sieci lokalnej", + "Live": "Na żywo", + "Reset": "Wyczyść", + "Repeat": "Powtórz", + "Track": "Utwór", + "Tracks": "Utwory", + "HeaderCameraUpload": "Przesyłanie z aparatu", + "TrackCount": "{0} Utwory", + "ItemCount": "{0} Pozycje", + "NumberChannelsValue": "{0} kanałów", + "HeaderLatestMusic": "Muzyka ostatnio dodana", + "HeaderLatestAudioBooks": "Najnowsze audiobooki", + "HeaderLatestDownloadedVideos": "Wideo ostatnio pobrane", + "HeaderRecentlyPlayed": "Ostatnio odtwarzane", + "Recent": "Ostatnie", + "HeaderFrequentlyPlayed": "Często odtwarzane", + "HeaderMoreLikeThis": "Więcej podobnych", + "HeaderMoreLikeThisOnLiveTV": "Więcej podobnych w telewizji", + "OriginalAirDateValue": "Data pierwszej emisji: {0}", + "EndsAtValue": "Koniec o {0}", + "Date": "Data", + "AirDate": "Data emisji", + "Played": "Odtworzone", + "Daily": "Codziennie", + "Weekly": "Co tydzień", + "RequireHashMatch": "Wymagaj pasującego skrótu hash", + "RequireHashMatchHelp": "Wymaganie pasujące skrótu hash ograniczy listę napisów tylko do tych, które zostały przetestowane dla Twojego pliku. Odznaczenie tej opcji zwiększy szansę pobrania napisów, ale zwiększy także szansę na pobranie napisów błędnych lub o błędnej sygnaturze czasowej.", + "SearchForForcedSubtitlesOnly": "Tylko wymuszone napisy", + "SearchForForcedSubtitlesOnlyHelp": "Wymaganie wymuszonych napisów zmniejszy liczbę wyników napisów do tych, które są oznaczone jako posiadające język obcy.", + "LastEpisodeDateAdded": "Data dodania ostatniego odcinka", + "LastEpisodeDateAired": "Data premiery ostatniego odcinka", + "LabelPlaystate": "Stan obejrzenia", + "Studio": "Studio", + "Tag": "Etykieta", + "EpisodeTitle": "Tytuł odcinka", + "Audio": "Dźwięk", + "Video": "Wideo", + "Subtitle": "Napisy", + "Image": "Obraz", + "CopyStream": "Kopiuj oryginalny strumień", + "LabelAudioLayout": "Układ dźwięku", + "LabelAudioCodec": "Kodek dźwięku", + "LabelAudioLanguage": "Język ścieżki dźwiękowej", + "LabelSubtitleLanguage": "Język napisów", + "LabelVideoCodec": "Kodek wideo", + "LabelSubtitleCodec": "Kodek napisów", + "LabelParentalRating": "Kategoria wiekowa", + "BecauseYouLikeValue": "Ponieważ polubiłeś {0}", + "BecauseYouWatchedValue": "Ponieważ obejrzałeś {0}", + "DirectedByValue": "Reżyseria {0}", + "StarringValue": "Obsada {0}", + "Invitations": "Zaproszenia", + "ActorAsRole": "jako {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Grupuj pozycje w kolekcje", + "GroupItemsIntoCollectionsHelp": "Umożliwia grupowanie pozycji w kolekcje, do których zostały dodane. Aktywowanie określonych filtrów lub porządków sortowania może to zablokować.", + "GroupItemsIntoTags": "Grupuj pozycje w tagi", + "GroupItemsIntoTagsHelp": "Umożliwia grupowanie pozycji w tagi, do których zostały dodane. Aktywowanie określonych filtrów lub porządków sortowania może to zablokować.", + "User": "Użytkownik", + "Access": "Dostęp", + "Users": "Użytkownicy", + "Library": "Biblioteka", + "Devices": "Urządzenia", + "Cancel": "Anuluj", + "Restart": "Uruchom ponownie", + "Shutdown": "Zamknij", + "Logs": "Dziennik zdarzeń", + "Visibility": "Widoczność", + "Notifications": "Powiadomienia", + "SendTestNotification": "Wyślij powiadomienie o teście", + "NotificationSent": "Powiadomienie wysłane", + "DeleteNotificationConfirmation": "Czy na pewno chcesz usunąć to powiadomienie?", + "DeleteNotification": "Usuń powiadomienie", + "AddNotification": "Dodaj powiadomienie", + "EditNotification": "Edytuj powiadomienie", + "LimitUserEventsTo": "Ogranicz zdarzenia użytkownika do", + "LimitLibraryEventsTo": "Ogranicz wydarzenia biblioteczne do", + "LimitDeviceEventsTo": "Ogranicz zdarzenia urządzeń do", + "ForAdditionalNotificationOptions": "Dodatkowe usługi powiadamiania mogą być instalowane przez administratora serwera w katalogu Emby {0}katalog wtyczek{1}.", + "Plugins": "Wtyczki", + "Systems": "Systemy", + "Server": "Serwer", + "Dashboard": "Kokpit", + "PlayOnAnotherDevice": "Odtwarzaj na innym urządzeniu", + "HeaderConnectionHelp": "Pomoc dla połączeń", + "AccessRestrictedTryAgainLater": "Dostęp jest aktualnie ograniczony. Spróbuj ponownie później.", + "ButtonGotIt": "Rozumiem", + "RememberMe": "Zapamiętaj mnie", + "EmbyServer": "Serwer Emby", + "ManageEmbyServer": "Zarządzaj serwer Emby", + "ShutdownServer": "Zamknij serwer Emby", + "RestartServer": "Uruchom serwer Emby ponownie", + "RecordingCancelled": "Nagrywanie zostało anulowane", + "SeriesCancelled": "Nagrywanie seryjne zostało anulowane", + "Recording": "Nagrywanie", + "SeriesRecording": "Nagrywanie serii", + "RecordingScheduled": "Nagrywanie zostało zaplanowane", + "SeriesRecordingScheduled": "Nagrywanie seryjne zostało zaplanowane", + "HeaderNewRecording": "Nowe nagranie", + "HeaderWakeServer": "Wybudzaj serwer", + "AttemptingWakeServer": "Trwa próba wybudzenia serwera. Proszę czekać...", + "WakeServerSuccess": "Powodzenie!", + "HeaderCustomizeHomeScreen": "Dostosuj ekran startowy", + "WakeServerError": "Wysłano pakiety Wake On LAN do maszyny serwera, ale połączenie z serwerem Emby zakończyło się niepowodzeniem. Twoja maszyna potrzebuje więcej czasu do wybudzenia lub serwer Emby może nie działać na tej maszynie.", + "Days": "Dni", + "Network": "Sieć", + "Networks": "Sieci", + "SortByValue": "Sortowanie po {0}", + "HeaderSortBy": "Sortuj po", + "HeaderPhotoAlbums": "Albumy fotografii", + "Photos": "Fotografie", + "HeaderAppearsOn": "Występuje", + "List": "Lista", + "HeaderRecordSeries": "Nagrywaj serial", + "HeaderCinemaMode": "Czołówki kinowe", + "Conversions": "Konwersja", + "Downloads": "Pobrane", + "HeaderManageDownloads": "Zarządzaj pobranymi", + "InternalStorage": "Magazyn wewnętrzny", + "ExternalStorage": "Magazyn zewnętrzny", + "UploadToFollowingServers": "Przesyłaj na serwery:", + "UploadingNumItems": "Przesyłanie {0} z {1}", + "DownloadNumItems": "Pobieranie {0} z {1}", + "HeaderSampleRate": "Częstotliwość próbkowania", + "HeaderReferenceFrames": "Klatki referencyjne", + "HeaderBitDepth": "Głębia bitowa", + "HeaderPixelFormat": "Format piksela", + "Profile": "Profil", + "Bitrate": "Przepływność", + "Expand": "Rozwiń", + "Container": "Kontener", + "Format": "Format", + "Path": "Folder", + "Size": "Rozmiar", + "Resolution": "Rozdzielczość", + "HeaderCodecTag": "Znacznik kodeka", + "Framerate": "Klatkaż", + "Interlaced": "Przeplot", + "Anamorphic": "Anamorficzne", + "Level": "Poziom", + "Timestamp": "Sygnatura", + "Language": "Język", + "Codec": "Kodek", + "Stream": "Transmisja", + "HeaderExtradata": "Dodatkowe", + "HeaderHardwareAcceleratedTranscoding": "Przyspieszone sprzętowo transkodowanie", + "HeaderHardwareAcceleratedTranscodingDescription": "Wykorzystaj GPU swojego serwera. Emby posiada najbardziej zaawansowaną i najszybszą akcelerację sprzętową w branży.", + "HeaderOfflineDownloads": "Media dostępne lokalnie", + "AndMuchMoreExclamation": "I wiele więcej!", + "HeaderOfflineDownloadsDescription": "Umożliwia pobieranie mediów na urządzenia klienckie, w celu łatwego korzystania bez połączenia.", + "LiveTvFeatureDescription": "Oglądaj transmisje telewizyjne z dowolną aplikacją Emby, za pomocą zainstalowanego na serwerze Emby tunera telewizyjnego.", + "DvrFeatureDescription": "Zaplanuj pojedyncze nagrania programów telewizyjnych lub nagrywanie seryjne za pomocą funkcji telewizyjnych Emby.", + "CinemaModeFeatureDescription": "Tryb kinowy oferuje prawdziwie kinowe przeżycia, z możliwością odtwarzania zwiastunów i niestandardowych czołówek przed seansem.", + "HeaderFreeApps": "Darmowe aplikacje Emby", + "FreeAppsFeatureDescription": "Korzystaj z darmowego dostępu do aplikacji Emby na swoich urządzeniach.", + "HeaderBecomeProjectSupporter": "Zamów subskrypcję Premium", + "HeaderViewServerInfo": "Wyświetl informacje o serwerze", + "PlaybackTvModeRequiresEmbyPremiere": "Odtwarzanie mediów w trybie telewizyjnym wymaga aktywnej subskrypcji{1} {0}Premium.", + "FeatureRequiresEmbyPremiere": "Ta funkcja wymaga aktywnej {0} subskrypcji Premium{1}.", + "HeaderConvertYourRecordings": "Konwertuj nagrania", + "Record": "Nagrywaj", + "Save": "Zapisz", + "Edit": "Edycja", + "HeaderSavePlaylist": "Zapisz listę", + "Latest": "Ostatnio dodane", + "Download": "Pobierz", + "Downloaded": "Pobrano", + "Converted": "Konwersja", + "RemoveFromHistory": "Usuń z historii", + "ConfirmRemoveFromHistory": "Usunąć ten element z historii?", + "Downloading": "Pobieranie", + "Advanced": "Zaawansowane", + "LinkedToEmbyConnect": "Połączono z Emby Connect", + "Delete": "Usuń", + "Both": "Zarówno", + "LabelChannelDisplay": "Wyświetlanie kanałów", + "HeaderDeleteItem": "Usuń pozycję", + "HeaderDeleteUser": "Usuń użytkownika", + "DeleteItemConfirmation": "Czy na pewno chcesz usunąć {0}?", + "DeleteUserConfirmation": "Na pewno chcesz usunąć użykownika {0}?", + "DeleteUsersConfirmation": "Czy na pewno chcesz usunąć tych {0} użytkowników?", + "HeaderDeleteDevice": "Usuń urządzenie", + "DeleteDeviceConfirmation": "Czy na pewno chcesz usunąć to urządzenie? Zostanie dodane ponownie po ponownym zalogowaniu się na nim.", + "ConfirmDeleteItem": "Usunięcie tej pozycji usunie ją zarówno z systemu plików jak i z biblioteki mediów.", + "FollowingFilesWillBeDeleted": "Następujące pliki i foldery zostaną usunięte:", + "AreYouSureToContinue": "Czy na pewno chcesz kontynuować?", + "Refresh": "Odśwież", + "RefreshingMetadataDots": "Odświeżanie metadanych...", + "ScanningLibraryFilesDots": "Skanowanie plików biblioteki...", + "HeaderFavoritesThenByChannelNumber": "Ulubione, a następnie według numeru kanału", + "HeaderAddToCollection": "Dodaj do kolekcji", + "HeaderFavoritesThenByTitle": "Ulubione, a następnie według tytułu", + "HeaderFavoritesThenByDefault": "Ulubione, a następnie według kolejności kanału", + "HeaderDefaultChannelOrder": "Domyślna kolejność kanałów", + "HeaderAddToFavorites": "Dodaj do ulubionych", + "HeaderRemoveFromFavorites": "Usuń z ulubionych", + "Favorited": "Ulubione", + "Unfavorited": "Niekorzystne", + "HeaderNewCollection": "Nowa kolekcja", + "HeaderNewPlaylist": "Nowa lista", + "AllCollections": "Wszystkie kolekcje", + "AllPlaylists": "Wszystkie playlisty", + "Create": "Utwórz", + "HeaderAddedToPlaylist": "Dodano do listy odtwarzania", + "HeaderAddedToCollection": "Dodano do kolekcji", + "OneItemAddedTo": "Pozycja została dodana do \"{0}\".", + "ItemsAddedTo": "{0} pozycji zostało dodanych do \"{1}\".", + "HeaderAddedToPlayQueue": "Dodano do kolejki odtwarzania", + "HeaderPlayingNext": "Odtwarzanie następnego", + "Help": "Pomoc", + "HeaderGetHelp": "Pomoc", + "LabelTVDisplayMode": "Włącz tryb wyświetlania TV", + "Desktop": "Komputer stacjonarny", + "Mobile": "Telefon / tabet", + "Navigation": "Nawigacja", + "HeaderVideoPlayback": "Odtwarzanie wideo", + "TV": "Telewizor", + "HeaderEmbyConnect": "Emby Połącz", + "Seasons": "Sezony", + "OneTrack": "1 Utwór", + "OneSeason": "1 Sezon", + "Libraries": "Biblioteki", + "NumberSeasonsValue": "{0} Sezony", + "TVDisplayModeHelp": "Zoptymalizuj interfejs użytkownika na tym urządzeniu do wyświetlania na telewizorze i metody wprowadzania danych za pomocą pilota. Zasadniczo nie jest to zalecane, jeśli Twoja podstawowa metoda wprowadzania danych to mysz lub jest oparta na dotyku.", + "LabelDisplayLanguage": "Język interfejsu", + "LabelDisplayLanguageHelp": "Tłumaczenie Emby to projekt, który ciągle trwa.", + "LearnHowYouCanContribute": "Dowiedz się jak możesz pomóc.", + "NewCollectionHelp": "Kolekcje umożliwiają spersonalizowane grupowanie filmów i innej zawartości biblioteki.", + "SearchForCollectionInternetMetadata": "Wyszukuj grafiki i metadane w Internecie", + "DisplayMissingEpisodesWithinSeasons": "Wyświetlaj brakujące odcinki w sezonach", + "DisplayMissingEpisodesWithinSeasonsHelp": "Ta opcja, musi zostać dodatkowo aktywowana w bibliotece seriali, w konfiguracji serwera Emby.", + "EnableThemeSongs": "Odtwarzaj motywy muzyczne", + "EnableBackdrops": "Wyświetlaj fototapety", + "EnableThemeSongsHelp": "Umożliwia odtwarzanie motywów muzycznych podczas przeglądania biblioteki.", + "EnableBackdropsHelp": "Umożliwia wyświetlanie fototapet, w tle niektórych stron, podczas przeglądania biblioteki.", + "EnableThemeVideos": "Odtwarzaj motywy wideo", + "EnableThemeVideosHelp": "Umożliwia wyświetlanie motywów wideo podczas przeglądania biblioteki,", + "RunAtStartup": "Uruchamiaj po starcie", + "ServerStartup": "Uruchomienie serwera", + "EmbyServerOnXHasStarted": "Serwer Emby na {0} został uruchomiony.", + "LabelScreensaver": "Wygaszacz ekranu", + "LabelSoundEffects": "Efekty dźwiękowe", + "LabelName": "Nazwa", + "NewCollectionNameExample": "Przykład: Kolekcja Star Wars", + "MessageItemsAdded": "Dodano pozycję.", + "OptionNew": "Nowa...", + "LabelPlaylist": "Playlista", + "AddToPlaylist": "Dodaj do listy", + "HeaderAddToPlaylist": "Dodaj do listy", + "Subtitles": "Napisy", + "LabelTheme": "Motyw", + "LabelSettingsTheme": "Ustawienia motywu", + "LabelThemeAccentColor": "Kolor akcentu", + "ThemeAccentColorDescription": "Umożliwia sterowanie kolorem ważnych wskaźników, ikon i tekstu.", + "SearchForSubtitles": "Wyszukuj napisy", + "LabelLanguage": "Język", + "Search": "Szukaj", + "NoSubtitleSearchResultsFound": "Brak wyników wyszukiwania. Czy skonfigurowałeś {o}pobieranie napisów{1}?", + "NoLyricsSearchResultsFound": "Brak wyników wyszukiwania. Czy skonfigurowałeś {0}pobieranie tekstów{1}?", + "Lyrics": "Teksty piosenek", + "SearchForLyrics": "Szukaj tekstów piosenek", + "Finish": "Zakończ", + "File": "Plik", + "Exit": "Wyjdź", + "Sleep": "Uśpij", + "Setup": "Konfiguracja", + "MessageAreYouSureDeleteSubtitles": "Czy jesteś pewien, że chcesz usunąć ten plik z napisami?", + "ConfirmDeletion": "Potwierdzenie usunięcia", + "MySubtitles": "Moje napisy", + "MessageDownloadQueued": "Dodano do kolejki pobierania.", + "HeaderEditSubtitles": "Edytuj napisy", + "UnlockGuide": "Odblokuj funkcje przewodnika", + "HeaderRefreshMetadata": "Odśwież metadane", + "HeaderRefreshAllMetadata": "Odśwież wszystkie metadane", + "ReplaceExistingImages": "Zastępuj istniejące obrazy", + "ReplaceExistingImagesHelp": "Wszystkie istniejące obrazy zostaną usunięte i zostaną pobrane nowe. W niektórych przypadkach może to spowodować, że liczba dostępnych obrazów będzie mniejsza niż poprzednio.", + "ReplaceAllMetadata": "Zastępuj wszystkie metadane", + "SearchForMissingMetadata": "Wyszukuj brakujące metadane", + "LabelRefreshMode": "Tryb odświeżania", + "NoItemsFound": "Brak dostępnych pozycji.", + "HeaderSaySomethingLike": "Powiedz coś jak...", + "ButtonTryAgain": "Spróbuj ponownie", + "HeaderYouSaid": "Powiedziałeś...", + "MessageWeDidntRecognizeCommand": "Przepraszamy, nie rozpoznaliśmy tej komendy.", + "MessageIfYouBlockedVoice": "Jeśli odmówisz aplikacji dostępu głosowego, będziesz musiał zmienić konfigurację przed ponownym użyciem.", + "ValueDiscNumber": "Dysk {0}", + "Unrated": "Nieokreślone", + "Favorite": "Ulubiony", + "Like": "Lubię", + "Dislike": "Nie lubię", + "RefreshDialogHelp": "Metadane są aktualizowane w oparciu o ustawienia i dostawców internetowych aktywowanych w konfiguracji biblioteki Emby.", + "Open": "Otwórz", + "Play": "Odtwarzaj", + "Pause": "Wstrzymaj", + "HeaderPlayQueue": "Odtwarzaj kolejkę", + "HeaderAddToPlayQueue": "Dodaj do kolejki", + "Shuffle": "Wylosuj", + "Identify": "Identyfikuj", + "HeaderRemoveIdentification": "Usuń identyfikację", + "ResetMetadataConfirmation": "Czy na pewno chcesz wyczyścić wszystkie metadane?", + "HeaderEditMetadata": "Edytuj metadane", + "Convert": "Konwertuj", + "Resume": "Wznów", + "HeaderInstantMix": "Szybki remiks", + "HeaderGoToItem": "Przejdź do pozycji", + "HeaderGoToSeason": "Przejdź do Sezonu", + "HeaderGoToSeries": "Przejdź do serii", + "HeaderGoToAlbum": "Przejdź do albumu", + "HeaderGoToArtist": "Przejdź do strony artysty", + "HeaderPlayAll": "Odtwarzaj wszystko", + "PictureInPicture": "Obraz w obrazie", + "Fullscreen": "Pełny ekran", + "ExitFullscreen": "Zamknij pełny ekran", + "Rewind": "Wstecz", + "FastForward": "Do przodu", + "Remove": "Usuń", + "Rename": "Przemianuj", + "Queue": "Kolejka", + "QueueAllFromHere": "Kolejkuj wszystko z tej lokalizacji", + "PlayAllFromHere": "Odtwarzaj wszystko z tej lokalizacji", + "PlayFromBeginning": "Odtwórz od początku", + "FromBeginning": "Od początku", + "ResumeAt": "Wznów odtwarzanie od {0}", + "HeaderRemoveFromPlaylist": "Usuń z listy odtwarzania", + "HeaderRemoveFromPlayQueue": "Usuń z kolejki odtwarzania", + "HeaderRemoveFromCollection": "Usuń z kolekcji", + "Sort": "Sortuj", + "Trailer": "Zwiastun", + "SelectNone": "Brak wyboru", + "SelectAll": "Zaznacz wszystko", + "HeaderMarkPlayed": "Oznacz jako odtworzone", + "HeaderMarkUnplayed": "Oznacz jako nieodtwarzane", + "HeaderGroupVersions": "Grupuj wersje", + "PleaseSelectTwoItems": "Proszę wybierz przynajmniej dwie pozycje.", + "HeaderConfirmRecordingCancellation": "Potwierdź Anulowanie Nagrania", + "MessageConfirmRecordingCancellation": "Anulować nagranie?", + "Album": "Album", + "AlbumArtist": "Wykonawca albumu", + "Error": "Błąd", + "VoiceInput": "Wejście głosowe", + "LabelContentType": "Typ zawartości", + "LabelPath": "Folder", + "Playlists": "Listy", + "LabelTitle": "Tytuł", + "LabelOriginalTitle": "Tytuł oryginalny", + "LabelSortTitle": "Tytuł sortowania", + "LabelDateAdded": "Data dodania", + "DateAdded": "Data dodania", + "DateModified": "Data modyfikacji", + "DatePlayed": "Data odtwarzania", + "DateLastActive": "Data ostatniej aktywności", + "ConfigureDateAdded": "Sposób ustalania daty dodania, można skonfigurować, w ustawieniach biblioteki, w kokpicie serwera Emby.", + "LabelStatus": "Stan", + "LabelArtistsHelp": "Oddzielaj używając ;", + "HeaderAlbumArtists": "Wykonawcy albumów", + "LabelAlbumArtists": "Wykonawcy albumów", + "LabelAlbum": "Album", + "Artist": "Wykonawca", + "Artists": "Wykonawcy", + "ImdbRating": "Ocena IMDb", + "CommunityRating": "Ocena społeczności", + "LabelCommunityRating": "Ocena społeczności", + "LabelCriticRating": "Ocena krytyków", + "CriticRating": "Ocena krytyków", + "LabelWebsite": "Strona internetowa", + "Tagline": "Etykieta", + "LabelOverview": "Opis", + "LabelShortOverview": "Streszczenie", + "LabelReleaseDate": "Data wydania", + "LabelPlaceOfBirth": "Miejsce urodzenia", + "Aired": "Premiera", + "LabelAirDays": "Dni transmisji", + "LabelAirTime": "Czas transmisji", + "LabelRuntimeMinutes": "Czas (w minutach)", + "LabelCustomRating": "Kategoria wiekowa własna", + "LabelOriginalAspectRatio": "Oryginalny format obrazu", + "Label3DFormat": "Format 3D", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Pobrane", + "HashMatch": "Dopasowanie skrótu hash", + "EnableExternalVideoPlayers": "Aktywuj obsługę zewnętrznych odtwarzaczy", + "EnableExternalVideoPlayersHelp": "Menu wyboru zewnętrznego odtwarzacza będzie wyświetlane przed rozpoczęciem odtwarzania wideo.", + "HeaderSpecialEpisodeInfo": "Specjalne informacje o odcinku", + "LabelAirsDuringSeason": "Emisja w trakcie sezonu", + "LabelAirsAfterSeason": "Emisja po sezonie", + "LabelAirsBeforeEpisode": "Emisja przed odcinkiem", + "HeaderExternalIds": "Identyfikatory zewnętrzne", + "HeaderDisplaySettings": "Ustawienia wyświetlania", + "PlaylistOrder": "Sortowanie playlisty", + "CollectionOrder": "Sortowanie kolekcji", + "LabelDisplayOrder": "Kolejność wyświetlania", + "LabelFileOrder": "Kolejność plików", + "Display": "Interfejs", + "Countries": "Kraje", + "Genres": "Gatunki", + "Studios": "Wytwórnie", + "Tags": "Znaczniki", + "Links": "Łącza", + "Movie": "Film", + "Program": "Program", + "Channel": "Kanał", + "Episode": "Odcinek", + "Season": "Sezon", + "HeaderMetadataSettings": "Ustawienia metadanych", + "People": "Osoby", + "Number": "Numer:", + "Lock": "Zablokuj", + "HeaderScreenLocked": "Ekran zablokowany", + "HeaderUnlockControls": "Odblokuj sterowanie", + "HeaderTapToUnlock": "Dotknij, aby odblokować", + "LabelMetadataDownloadLanguage": "Preferowany język pobierania metadanych", + "LabelImageDownloadLanguage": "Preferowany język pobieranego obrazu", + "LabelLockItemToPreventChanges": "Zablokuj tę pozycję, aby zapobiec przyszłym zmianom", + "LockThisField": "Zablokuj to pole, aby zapobiec przyszłym zmianom podczas odświeżania metadanych.", + "MessageLeaveEmptyToInherit": "Zostaw puste aby odziedziczyć ustawienia z nadrzędnej pozycji, lub globalnej wartości domyślnej.", + "LabelCountry": "Kraj", + "LabelCertificationCountry": "Kraj certyfikujący", + "CertificationCountryHelp": "Wpłynie to na wybór systemu klasyfikacji treści.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Rok urodzenia", + "LabelBirthDate": "Data urodzenia", + "LabelDeathDate": "Data śmierci", + "LabelEndDate": "Data zakończenia", + "LabelSeasonNumber": "Numer sezonu", + "LabelEpisodeNumber": "Numer odcinka", + "LabelTrackNumber": "Numer utworu", + "LabelNumber": "Numer", + "LabelDiscNumber": "Numer dysku", + "LabelParentNumber": "Numer nadrzędny", + "SortName": "Tytuł sortowania", + "OriginalTitle": "Tytuł oryginalny", + "ReleaseDate": "Data wydania", + "Continuing": "Dalej wyświetlane", + "Ended": "Zakończony", + "HeaderEnabledFields": "Pola aktywne", + "HeaderEnabledFieldsHelp": "Odznacz pole, aby je zablokować i zapobiec zmianom danych w przyszłości.", + "Backdrops": "Fototapety", + "Images": "Obrazy", + "Runtime": "Czas trwania", + "ProductionLocations": "Kraje", + "BirthLocation": "Miejsce urodzin", + "ParentalRating": "Kategoria wiekowa", + "PlayCount": "Liczba odtworzeń", + "Name": "Nazwa", + "Overview": "Opis", + "LabelType": "Typ", + "LabelPersonRole": "Rola", + "LabelPersonRoleHelp": "Przykład: kierowca ciężarówki z lodami", + "Actor": "Aktor", + "Composers": "Kompozytorzy", + "Composer": "Kompozytor", + "Director": "Reżyser", + "GuestStar": "Gość specjalny", + "Producer": "Producent", + "Writer": "Scenarzysta", + "MessageNoSyncJobsFound": "Brak pobieranych plików. Utwórz zadanie pobierania, używając przycisku Pobierz, dostępnego w aplikacji.", + "MessageNoDownloadsFound": "Brak dostępnych lokalnie mediów. Pobierz media do użycia lokalnie, używając przycisku Pobierz, dostępnego w aplikacji.", + "InstallingPackage": "Instalowanie {0}", + "PackageInstallCompleted": "Instalacja {0} zakończona.", + "PackageInstallFailed": "Instalacja {0} nieudana.", + "PackageInstallCancelled": "Instalacja {0} anulowana.", + "SeriesYearToPresent": "{0} - Teraz", + "OneDevice": "1 Urządzenie", + "DeviceCountValue": "{0} Urządzenia", + "OneLog": "1 Dziennik", + "LogCountValue": "{0} Dzienniki", + "OneVote": "1 Głos", + "VoteCountValue": "{0} Głosy", + "OneLike": "1 Polubienie", + "LikeCountValue": "{0} Polubienia", + "OneUser": "1 Użytkownik", + "UserCountValue": "{0} Użytkownicy", + "OneLibrary": "1 Biblioteka", + "LibraryCountValue": "{0} Biblioteki", + "ValueOneItem": "1 pozycja", + "ValueOneEpisode": "1 odcinek", + "ValueEpisodeCount": "{0} Odcinki", + "Albums": "Albumy", + "Song": "Utwór", + "Songs": "Utwory", + "Authors": "Autorzy", + "Books": "Książki", + "AudioBooks": "Audiobooki", + "HeaderAudioBooks": "Książka mówiona", + "HeaderAudioBook": "Książka audio", + "HeaderIdentifyItemHelp": "Wpisz kryteria wyszukiwania. Zmniejszając ilość kryteriów zwiększysz ilość wyników.", + "PleaseEnterNameOrId": "Proszę wprowadź nazwę lub zewnętrzne Id.", + "MessageItemSaved": "Obiekt zapisany.", + "SearchResults": "Wyniki wyszukiwania", + "ServerNameIsRestarting": "Emby Server - {0} jest uruchamiany ponownie.", + "ServerNameIsShuttingDown": "Serwer Emby - {0} jest zamykany.", + "HeaderDeleteItems": "Usuń pliki", + "ConfirmDeleteItems": "Usunięcie tych pozycji usunie je zarówno z systemu plików jak i z biblioteki mediów.", + "PleaseRestartServerName": "Proszę ponownie uruchomić serwer Emby na {0}", + "ConvertingDots": "Trwa konwertowanie...", + "LabelSyncNoTargetsHelp": "Wygląda na to, że nie posiadasz żadnych aplikacji obsługujących pobrane media.", + "DownloadingDots": "Trwa pobieranie...", + "LearnMore": "Dowiedz się więcej", + "LabelBitrateMbps": "Przepływność (Mbps)", + "ConvertUnwatchedVideosOnly": "Konwertuj tylko nieodtworzone wideo", + "SyncUnwatchedVideosOnly": "Pobieraj tylko nieodtworzone wideo", + "ConvertUnwatchedVideosOnlyHelp": "Tylko filmy, które nie są oznaczone jako w pełni odtworzone, zostaną przekonwertowane.", + "SyncUnwatchedVideosOnlyHelp": "Zostaną pobrane tylko filmy, które nie są oznaczone jako w pełni odtworzone, a obejrzane będą sukcesywnie usuwane z urządzenia.", + "AutomaticallySyncNewContent": "Pobieraj nową zawartość automatycznie", + "AutomaticallySyncNewContentHelp": "Nowo dodana zawartość zostanie automatycznie pobrana na urządzenie.", + "AutomaticallyConvertNewContent": "Konwertuj automatycznie nowe media", + "AutomaticallyConvertNewContentHelp": "Nowe media dodane do tego folderu będą konwertowane automatycznie.", + "LabelItemLimit": "Limit pozycji", + "ConvertItemLimitHelp": "Opcjonalne. Określa maksymalną liczbę konwertowanych pozycji.", + "DownloadItemLimitHelp": "Opcjonalne. Określa maksymalną liczbę pobieranych pozycji.", + "PleaseSelectDeviceToSyncTo": "Wybierz urządzenie, na które chcesz pobrać.", + "Screenshots": "Zrzuty ekranu", + "MoveRight": "Przesuń w prawo", + "MoveLeft": "Przesuń w lewo", + "HeaderUploadNewImage": "Prześlij nowy obraz", + "HeaderDeleteImage": "Usuń obraz", + "ConfirmDeleteImage": "Usunąć obraz?", + "HeaderEditImages": "Edytuj obrazy", + "Settings": "Ustawienia", + "ShowIndicatorsFor": "Pokaż wskaźniki", + "Episodes": "Odcinki", + "Programs": "Programy", + "HeaderCastCrew": "Obsada i ekipa", + "DvrSubscriptionRequired": "Funkcja nagrywarki wymaga aktywnej {0} subskrypcji Premium{1}.", + "HeaderCancelRecording": "Anuluj nagranie", + "HeaderKeepRecording": "Zachowaj nagranie", + "HeaderCancelSeries": "Anuluj nagrywanie serialu", + "HeaderKeepSeries": "Zachowaj nagranie serialu", + "HeaderLearnMore": "Dowiedz się więcej", + "SeriesSettings": "Ustawienia nagrywania serialu", + "HeaderRecordingOptions": "Opcje nagrywania", + "HeaderDoNotRecord": "Nie nagrywaj", + "HeaderSeriesOptions": "Opcje nagrywania serialu", + "Layout": "Układ", + "Channels": "Kanały", + "ChannelNameOnly": "Tylko kanał {0}", + "Anytime": "O dowolnej porze", + "AnyLanguage": "W dowolnym języku", + "AroundTime": "Około {0}", + "HeaderLatestMovies": "Filmy ostatnio dodane", + "All": "Wszystkie", + "Stop": "Zatrzymaj", + "AllChannels": "Wszystkie kanały", + "NewEpisodesOnly": "Tylko nowe odcinki", + "AllEpisodes": "Wszystkie odcinki", + "LabelStartWhenPossible": "Zaczynaj kiedy możliwe", + "LabelStopWhenPossible": "Zatrzymuj kiedy możliwe", + "MinutesBefore": "minut przed", + "MinutesAfter": "minut po", + "SkipEpisodesAlreadyInMyLibrary": "Pomijaj nagrywanie odcinków, które już są w bibliotece", + "SkipEpisodesAlreadyInMyLibraryHelp": "Odcinki będą porównywane przy pomocy numeru sezonu i odcinka, jeśli są dostępne.", + "LabelKeepUpTo": "Zachowuj do", + "AsManyAsPossible": "Tak wiele jak to możliwe", + "DefaultErrorMessage": "Wystąpił bląd podczas przetwarzania twojego rządania. Proszę spróbować ponownie poźniej.", + "UntilIDelete": "Do momentu usunięcia", + "UntilSpaceNeeded": "Tak długo jak starczy przestrzeni dyskowej", + "Categories": "Kategorie", + "Sports": "Wydarzenia sportowe", + "News": "Wiadomości", + "Movies": "Filmy", + "Music": "Muzyka", + "Kids": "Dla dzieci", + "MoreFromValue": "Więcej od {0}", + "DiedValue": "Data śmierci: {0}", + "BornValue": "Data urodzenia: {0}", + "EnableColorCodedBackgrounds": "Zastosuj kolorowe tła do multimediów, na podstawie ich kategorii", + "SortChannelsBy": "Sortuj kanały wg", + "ChannelNumber": "Numer kanału", + "HeaderBenefitsEmbyPremiere": "Korzyści z subskrypcji Premium", + "ThankYouForTryingEnjoyOneMinute": "Korzystaj z jednej minuty odtwarzania. Dziękujemy za wypróbowanie Emby.", + "HeaderTryPlayback": "Wypróbuj odtwarzanie", + "HowDidYouPay": "W jaki sposób zapłaciłeś?", + "IHaveEmbyPremiere": "Posiadam subskrypcję Premium", + "IPurchasedThisApp": "Kupiłem tę aplikację", + "ButtonRestorePreviousPurchase": "Przywróć zakup", + "ButtonUnlockWithPurchase": "Odblokuj zamawiając subskrypcję", + "ButtonUnlockPrice": "Odblokuj {0}", + "EmbyPremiereMonthlyWithPrice": "Miesięczna subskrypcja Premium {0}", + "HeaderAlreadyPaid": "Już opłacone?", + "ButtonPlayOneMinute": "Odtwarzaj jedną minutę", + "PlaceFavoriteChannelsAtBeginning": "Umieszczaj ulubione kanały na początku", + "HeaderUnlockFeature": "Odblokuj funkcję", + "MessageDidYouKnowCinemaMode": "Czy wiedziałeś, że dzięki subskrypcji Premium, możesz rozszerzyć możliwości serwera o dodatkowe funkcje, takie jak czołówki kinowe?", + "HeaderPlayMyMedia": "Odtwarzaj pozycję", + "HeaderDiscoverEmbyPremiere": "Odkryj funkcje subskrypcji Premium", + "HeaderNowPlaying": "Teraz odtwarzane", + "Items": "Pozycje", + "AppName": "Nazwa aplikacji", + "OneChannel": "Jeden kanał", + "ConfirmRemoveDownload": "Usunąć pobraną pozycję?", + "ConfirmRemoveItem": "Usunąć przedmiot?", + "RemoveDownload": "Usuń pobraną pozycję", + "ConfirmCancelConversion": "Anulować konwersję?", + "CancelConversion": "Anuluj konwersję", + "KeepDownload": "Zachowaj pobraną pozycję", + "AddedOnValue": "Dodano {0}", + "RemovingFromDevice": "Usuń z urządzenia", + "KeepOnDevice": "Zachowaj na urządzeniu", + "CancelDownload": "Anuluj pobieranie", + "SyncJobItemStatusReadyToTransfer": "Gotowe do transferu", + "SyncJobItemStatusSyncedMarkForRemoval": "Usuwanie z urządzenia", + "SyncJobItemStatusQueued": "Dodano do kolejki", + "SyncJobItemStatusConverting": "Konwertowanie", + "SyncJobItemStatusTransferring": "Transferowanie", + "SyncJobItemStatusSynced": "Pobrano", + "Failed": "Nie powiodło się", + "SyncJobItemStatusRemovedFromDevice": "Usunięto z urządzenia", + "Cancelled": "Anulowano", + "Retry": "Ponów", + "Continue": "Kontynuuj", + "ContinueInSecondsValue": "Kontynuuj za {0} sekund.", + "HeaderRemoteControl": "Zdalne sterowanie", + "Disconnect": "Rozłącz", + "EnableDisplayMirroring": "Duplikuj zawartość ekranu", + "RemoteAccess": "Zdalny dostęp", + "HeaderPlayOn": "Odtwarzaj na", + "Quality": "Jakość", + "Auto": "Automatycznie", + "AndroidUnlockRestoreHelp": "W celu odzyskania poprzedniego zakupu, upewnij się, że zalogowałeś się na urządzeniu przy pomocy tego samego konta Google (lub Amazon), którym pierwotnie dokonałeś zakupu. Upewnij się, że sklep aplikacji działa poprawnie i nie jest ograniczony kontrolą rodzicielską, a Twoje połączenie z Internetem jest aktywne. Musisz to zrobić tylko raz, aby przywrócić poprzedni zakup.", + "HeaderAspectRatio": "Proporcje", + "Original": "Orignalne", + "Fill": "Rozciągnij", + "Cover": "Okładka", + "MessageNoServersAvailableToConnect": "Brak serwerów dostępnych do połączenia. Jeśli zostałeś zaproszony do korzystania z serwera, upewnij się, że je zaakceptowałeś poniżej lub za naciskając na łącze w wiadomości pocztowej.", + "MessagePlayAccessRestricted": "Odtwarzanie tej zawartości jest aktualnie ograniczone. Skontaktuj się z administratorem serwera, aby uzyskać dodatkowe informacje.", + "Accept": "Akceptuj", + "Reject": "Odrzuć", + "Connect": "Połacz", + "HeaderMyMedia": "Moje media", + "HeaderMyMediaSmall": "Moje media (małe)", + "LatestFromLibrary": "{0} ostatnio dodane", + "HeaderLatestEpisodes": "Odcinki ostatnio dodane", + "ContinuePlaying": "Kontynuuj odtwarzanie", + "ContinueWatching": "Kontynuuj odtwarzanie", + "HeaderLatestChannelMedia": "Kanały ostatnio dodane", + "HeaderContinueWatching": "Kontynuuj odtwarzanie", + "HeaderContinueListening": "Kontynuuj słuchanie", + "HeaderActiveRecordings": "Nagrania aktywne", + "HeaderLatestRecordings": "Nagrania ostatnio dodane", + "LabelConvertTo": "Konwertuj do", + "LabelDownloadTo": "Pobierz do", + "HeaderDownloadToDots": "Pobierz do…", + "Next": "Następny", + "LabelSource": "Źródło", + "VersionNumber": "Wersja {0}", + "HeaderAllLanguages": "Wszystkie języki", + "Previous": "Poprzedni", + "HeaderNextUp": "Do obejrzenia", + "HeaderPlayNextUp": "Odtwarzaj następne", + "HeaderLatestFrom": "{0} ostatnio dodane", + "LabelHomeScreenSectionValue": "Sekcja ekranu startowego {0}", + "PasswordResetComplete": "Hasło zostało zresetowane.", + "PasswordSaved": "Hasło zapisane.", + "SettingsSaved": "Zapisano ustawienia", + "Upcoming": "Wkrótce", + "HeaderSelectImageFile": "Wybierz grafikę", + "None": "Brak", + "More": "Więcej", + "Up": "W górę", + "Down": "W dół", + "Home": "Start", + "Back": "Wróć", + "Random": "Losowo", + "Playback": "Odtwarzanie", + "Favorites": "Ulubione", + "HeaderHomeScreen": "Ekran startowy", + "HeaderLatestChannelItems": "Kanały ostatnio odtwarzane", + "HeaderLibraryOrder": "Kolejność biblioteki", + "HeaderOnNow": "Teraz", + "HeaderForKids": "Dla dzieci", + "HeaderPlaybackError": "Błąd Odtwarzania", + "PlaybackErrorNotAllowed": "Brak uprawnień do odtwarzania tej zawartości. Skontaktuj się z administratorem serwera, aby uzyskać dodatkowe informacje.", + "RateLimitExceeded": "Twoje konto przekroczyło maksymalną liczbę strumieni ustawioną przez twojego administratora serwera Emby. Skontaktuj się z nim w celu uzyskania pomocy.", + "PlaybackErrorNoCompatibleStream": "Brak kompatybilnych transmisji. Spróbuj ponownie później lub skontaktuj się z administratorem serwera, aby uzyskać dodatkowe informacje.", + "PlaybackErrorPlaceHolder": "Proszę włożyć dysk, aby odtwarzać to wideo.", + "PlaybackErrorNoPlayableItems": "Nie znaleziono odtwarzalnych pozycji. Czy próbujesz odtworzyć pusty folder?", + "Guide": "Przewodnik", + "Games": "Gry", + "GameSystem": "System gier", + "Suggestions": "Polecane", + "HeaderFavoriteChannels": "Ulubione kanały", + "HeaderFavoriteCollections": "Kolekcje ulubione", + "HeaderFavoritePlaylists": "Listy ulubione", + "Collection": "Kolekcja", + "Collections": "Kolekcje", + "LabelSelectFolderGroups": "Grupuj zawartość z następujących folderów w widokach taki, jak Filmy, Muzyka i Seriale:", + "LabelSelectFolderGroupsHelp": "Foldery, które nie zostały zaznaczone, będą wyświetlane w swoich własnych, osobnych widokach.", + "Mute": "Wycisz", + "Unmute": "Włącz dźwięk", + "Folder": "Folder", + "Folders": "Foldery", + "FileName": "Nazwa pliku", + "DisplayInOtherHomeScreenSections": "Wyświetlaj na alternatywnym ekranie startowym sekcje Ostatnio dodane i Kontynuuj odtwarzanie", + "DisplayInMyMedia": "Wyświetlaj na ekranie startowym", + "Shows": "Seriale", + "MoviesAndShows": "Filmy i Seriale", + "HeaderMusicVideo": "Teledysk", + "HeaderMusicVideos": "Teledyski", + "MusicVideos": "Teledyski", + "Videos": "Wideo", + "MixedContent": "Zawartość mieszana", + "HomeVideos": "Nagrania prywatne", + "HomeVideosAndPhotos": "Nagrania i zdjęcia prywatne", + "TVShows": "Seriale", + "HeaderLibraryFolders": "Foldery biblioteki", + "HeaderTermsOfPurchase": "Zasady zakupu", + "PrivacyPolicy": "Polityka prywatności", + "TermsOfUse": "Zasady użytkowania", + "HeaderRepeatMode": "Tryb powtarzania", + "HeaderToneMapping": "Mapowanie tonów", + "RepeatOne": "Powtarzaj jedno", + "RepeatAll": "Powtarzaj wszystko", + "LabelDefaultScreen": "Ekran domyślny", + "ConfirmEndPlayerSession": "Czy chcesz zamknąć Emby na {0}?", + "Yesterday": "Wczoraj", + "Yes": "Tak", + "No": "Nie", + "HeaderScanLibraryFiles": "Skanuj pliki", + "LiveTV": "Telewizja", + "Schedule": "Zaplanuj", + "Recordings": "Nagrania", + "ScanForNewAndUpdatedFiles": "Skanuj w poszukiwaniu nowych lub zaktualizowanych plików", + "NewVersionOfXAvailableForY": "{0} jest dostępne dla {1}", + "DirectStreamHelp1": "Media są kompatybilne z urządzeniem w kwestii rozdzielczości i typu (H.264, AC3, etc), ale kontener pliku jest niekompatybilny (.mkv, .avi, .wmv, etc). Wideo zostanie przepakowane w locie przed rozpoczęciem transmisji do urządzenia.", + "DirectStreamHelp2": "Transmisja bezpośrednia pliku używa niewiele mocy przetwarzania, bez utraty jakości wideo.", + "MediaIsBeingConverted": "Media będą konwertowane do formatu kompatybilnego z urządzeniem, na który będą odtwarzane.", + "StatsForNerds": "Statystyki dla maniaków", + "HeaderHardwareAcceleratedDecoding": "Przyspieszone dekodowanie sprzętowe", + "HeaderHardwareAcceleratedEncoding": "Przyspieszone kodowanie sprzętowe", + "HeaderDirectPlay": "Odtwarzanie bezpośrednie", + "DirectPlaying": "Odtwarzanie bezpośrednie", + "DirectStreaming": "Transmisja bezpośrednia", + "Transcode": "Transkodowanie", + "Transcoding": "Transkodowanie", + "ContainerBitrateExceedsLimit": "Zmniejszenie szybkości transmisji z powodu ustawień jakości", + "VideoCodecNotSupported": "Konwersja wideo do kompatybilnego kodeka", + "AudioCodecNotSupported": "Konwersja dźwięku do kompatybilnego kodeka", + "SubtitleCodecNotSupported": "Konwersja napisów bezpośrednio do filmu", + "DirectPlayError": "Odzyskiwanie po błędzie odtwarzania", + "ContainerNotSupported": "Konwersja do kompatybilnego kontenera", + "VideoLevelNotSupported": "Konwersja do kompatybilnego poziomu wideo", + "AudioBitrateNotSupported": "Konwersja do kompatybilnej szybkości transmisji dźwięku", + "AudioChannelsNotSupported": "Konwersja do kompatybilnej liczby kanałów dźwięku", + "VideoResolutionNotSupported": "Konwersja do kompatybilnej rozdzielczości wideo", + "AudioProfileNotSupported": "Konwersja do kompatybilnego profilu dźwięku", + "AudioSampleRateNotSupported": "Konwersja do kompatybilnej częstotliwości próbkowania dźwięku", + "AnamorphicVideoNotSupported": "Nieobsługiwane wideo anamorficzne", + "InterlacedVideoNotSupported": "Usuwanie przeplotu z obrazu wideo", + "SecondaryAudioNotSupported": "Wybieranie drugiej ścieżki dźwiękowej", + "ExternalAudioNotSupported": "Wybieranie zewnętrznej ścieżki audio", + "ErrorRemovingEmbyConnectAccount": "Podczas usuwania konta Emby Connect wystąpił błąd. Upewnij się, że połączenie internetowe jest aktywne i spróbuj ponownie.", + "HeaderEmbyAccountRemoved": "Usunięto konto Emby", + "MessageEmbyAccontRemoved": "Konto Emby zostało usunięte dla tego użytkownika.", + "HeaderInvitationSent": "Wysłano zaproszenie", + "Offline": "Niedostępny", + "HeaderSignUp": "Zarejestruj", + "ServerDownloadMessage": "W celu pobrania i zainstalowania darmowego serwera Emby odwiedź {0}", + "ServerDownloadMessageWithoutLink": "W celu pobrania i zainstalowania darmowego serwera Emby odwiedź stronę internetową Emby.", + "MessageInvitationSentToUser": "Wiadomość pocztowa, z prośbą o akceptację zaproszenia współużytkowania, została wysłana do {0}.", + "MessageInvitationSentToNewUser": "Wiadomość pocztowa, z prośbą o rejestrację konta Emby, została wysłana do {0}.", + "GuestUserNotFound": "Użytkownik nie istnieje. Upewnij się, że nazwa jest poprawna lub spróbuj wprowadzając adres pocztowy.", + "ErrorReachingEmbyConnect": "Podczas próby połączenia z serwerem Emby Connect wystąpił błąd. Upewnij się, że połączenie internetowe jest aktywne i spróbuj ponownie.", + "ErrorAddingEmbyConnectAccount1": "Podczas dodawania konta Emby Connect wystąpił błąd. Czy utworzyłeś wcześniej konto Emby? Zarejestruj się na {0}.", + "ErrorAddingEmbyConnectAccount2": "Jeśli ciągle masz problem, wyślij wiadomości na adres {0}, z adresu pocztowego skojarzonego z kontem Emby.", + "ErrorAddingGuestAccount1": "Podczas dodawania konta Emby Connect wystąpił błąd. Czy użytkownik gościnny utworzył konto Emby? Użytkownicy gościnni mogą się zarejestrować na stronie {0}.", + "ErrorAddingGuestAccount2": "Jeśli ciągle masz problem, wyślij wiadomości na adres {0}, podając własny adres pocztowy oraz użytkowników.", + "MessageEmbyAccountAdded": "Konto Emby zostało dodane do użytkownika.", + "MessagePendingEmbyAccountAdded": "Konto Emby zostało połączone z tym użytkownikiem. Wiadomość pocztowa została wysłana do właściciela tego konta. Wymagane będzie potwierdzenie zaproszenia, poprzez naciśnięcie na łącze umieszczone w wiadomości.", + "HeaderEmbyAccountAdded": "Dodano konto Emby", + "Skip": "Pomiń", + "HeaderAdditionalParts": "Dodatkowe części", + "ButtonGenerateNewPin": "Wygeneruj nowy PIN", + "ConnectLoginHelp1": "Przy pomocy Emby Connect możesz łatwo uzyskać dostęp do swojego serwera Emby gdziekolwiek jesteś i podzielić się serwerem z Twoją rodziną i przyjaciółmi.", + "CreatePinErrorMessage": "Uruchom ponownie", + "PinExpiredMessage": "Kod PIN wygasł. Naciśnij przycisk Wygeneruj nowy PIN i spróbuj ponownie.", + "ConnectPinCodeHeader": "W celu zalogowania się do Emby Connect, użyj urządzenia mobilnego lub komputera, aby odwiedzić {0} i wpisz następujący kod PIN:", + "LabelSubtitlePlaybackMode": "Tryb napisów", + "ErrorDeletingItem": "Podczas usuwania pozycji z serwera Emby wystąpił błąd. Upewnij się, że serwer ma uprawnienia do zapisu w folderze mediów i spróbuj ponownie.", + "NoSubtitles": "Brak napisów", + "Default": "Domyślny", + "Absolute": "Bezwzględnie", + "Smart": "Inteligentny", + "Small": "Mały", + "Smaller": "Mniejsze", + "Medium": "Średni", + "Large": "Duży", + "Larger": "Większy", + "ExtraLarge": "Wielki", + "ExtraSmall": "Bardzo mały", + "Forced": "Wymuszone", + "External": "Zewnętrzny", + "HeaderEmbeddedTitle": "Wbudowany tytuł", + "OnlyForcedSubtitles": "Tylko wymuszone napisy", + "AlwaysPlaySubtitles": "Zawsze wyświetlaj napisy", + "DefaultSubtitlesHelp": "Napisy będą wczytywane w oparciu o znaczniki metadanych ścieżek dźwiękowych. Preferencje językowe brane są pod uwagę, gdy dostępnych jest wiele możliwości.", + "SmartSubtitlesHelp": "W przypadku, gdy ścieżka dźwiękowa jest w języku obcym, zostaną wczytane napisy w preferowanym języku.", + "HeaderSubtitleSettings": "Ustawienia napisów", + "HeaderSubtitleAppearance": "Wygląd napisów", + "OnlyForcedSubtitlesHelp": "Tylko napisy oznaczone jako wymuszone będą wczytywane.", + "AutoSelectHearingImpairedHelp": "Wczytane zostaną napisy odpowiadające preferencjom językowym, przy czym preferowane będą ścieżki oznaczone jako niedosłyszące (SDH).", + "AlwaysPlaySubtitlesHelp": "Napisy pasujące do preferowanego języka będą wczytywane, niezależnie od języka ścieżki dźwiękowej.", + "NoSubtitlesHelp": "Domyślnie napisy nie będą wczytywane. Można je ciągle włączyć ręcznie podczas odtwarzania.", + "LabelPreferredSubtitleLanguage": "Preferowany język napisów", + "LabelTextSize": "Rozmiar tekstu", + "TheseSettingsAffectSubtitlesOnThisDevice": "Te ustawienia dotyczą napisów na tym urządzeniu", + "LabelDropShadow": "Cień", + "LabelTextBackgroundColor": "Kolor tła tekstu", + "LabelWindowBackgroundColor": "Kolor tła tekstu", + "LabelFont": "Czcionka", + "LabelTextColor": "Kolor tekstu", + "LabelBackgroundColor": "Kolor tła", + "LabelBackgroundOpacity": "Krycie tła", + "Raised": "Wypukły", + "Depressed": "Wklęsły", + "Uniform": "Jednolity", + "DropShadow": "Rozproszony", + "SmallCaps": "Kapitaliki", + "SubtitleAppearanceSettingsDisclaimer": "Te ustawienia nie mają zastosowania do napisów graficznych (PGS, DVD, etc) lub napisów, które posiadają swoje własne wbudowane style (ASS/SSA).", + "Normal": "Normalny", + "HeaderWaitingForWifi": "Oczekiwanie na sieć WiFi", + "WifiRequiredToDownload": "Połączenie WiFi jest wymagane, aby kontynuować pobieranie.", + "DownloadOnlyOnWifi": "Pobieraj tylko przez WiFi", + "LabelMusicDownloadQuality": "Jakoś pobieranej muzyki", + "MusicDownloadQualityHelp": "Pliki dźwiękowe o wyższej przepływności będą konwertowane przez serwer Emby. Wybierz wyższą wartość dla lepszej jakości lub niższą wartość w celu oszczędzenia lokalnej przestrzeni dyskowej.", + "HeaderDownloadSettings": "Ustawienia pobierania", + "LabelDownloadLocation": "Lokalizacja pobierania", + "BrowseForFolder": "Przeglądaj", + "Unlimited": "Nieograniczony", + "NoLimit": "Bez limitu", + "Hide": "Ukryj", + "HeaderKeepWatching": "Kontynuuj oglądanie", + "HeaderNextEpisode": "Następny odcinek", + "AudioBitDepthNotSupported": "Konwersja do kompatybilnej głębi bitowej dźwięku", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Konwersja do kompatybilnego profilu wideo", + "VideoFramerateNotSupported": "Konwersja do kompatybilnej częstotliwości odświeżania wideo", + "VideoBitDepthNotSupported": "Konwersja do kompatybilnej głębi bitowej wideo", + "RefFramesNotSupported": "Konwersja do kompatybilnej liczby klatek referencyjnych wideo", + "ErrorConnectServerUnreachable": "Podczas wykonywania żądanej operacji wystąpił błąd. Połączenie z Twojego serwera z serwerem Emby Connect z {0} było niemożliwe. Upewnij się, że połączenie internetowe na Twoim serwerze jest aktywne i komunikacja jest dozwolona przez zaporę sieciową i zainstalowane oprogramowanie antywirusowe.", + "HeaderStopRecording": "Zatrzymaj nagrywanie", + "ManageRecording": "Zarządzaj nagrywaniem", + "LabelDropImageHere": "Przeciągnij i upuść obraz tutaj lub naciśnij przycisk, aby wybrać obraz do przesłania.", + "MessageFileReadError": "Podczas wczytywania plików wystąpił błąd. Spróbuj ponownie później.", + "Browse": "Przeglądaj", + "HeaderUploadImage": "Przekaż obraz", + "HeaderAddUpdateImage": "Dodaj / Aktualizuj obraz", + "HeaderShowFields": "Pokazuj pola", + "LabelView": "Widok", + "LabelImageType": "Typ obrazu", + "Upload": "Przekaż", + "Primary": "Podstawowy", + "PrimaryImageBlur": "Rozmycie obrazu podstawowego", + "Art": "Przezrocze", + "Backdrop": "Fototapeta", + "Banner": "Baner", + "Box": "Pudełko", + "BoxRear": "Pudełko (tył)", + "Disc": "Dysk", + "Logo": "Logo", + "LogoDark": "Logo (ciemna wersja)", + "LogoLight": "Logo (jasna wersja)", + "LogoLightColor": "Logo (jasne z kolorem)", + "Menu": "Menu", + "Screenshot": "Zrzut ekranu", + "Thumb": "Miniatura", + "HeaderAudioSettings": "Ustawienia dźwięku", + "LabelAudioLanguagePreference": "Preferowany język ścieżki dźwiękowej", + "LabelPlayDefaultAudioTrack": "Odtwarzaj domyślną ścieżkę dźwiękową niezależnie od języka", + "HeaderVideoQuality": "Jakość wideo", + "CinemaModeConfigurationHelp": "Czołówki kinowe wnoszą kinowe doświadczenia wprost do Twojego salonu, z możliwością odtwarzania zwiastunów filmowych i niestandardowych czołówek przez seansem.", + "ShowUpNextPreview": "Pokaż następny podgląd", + "ShowUpNextPreviewHelp": "Wyświetla informacje o następnym elemencie w pobliżu końca bieżącego.", + "PlayNextEpisodeAutomatically": "Odtwarzaj następny odcinek automatycznie", + "LabelMaxChromecastBitrate": "Jakość transmisji Chromecast", + "LabelSkipBackLength": "Długość skoku wstecz", + "LabelSkipForwardLength": "Długość skoku wprzód", + "EnableCinemaMode": "Aktywuj czołówki kinowe", + "LabelInternetQuality": "Jakość dla sieci internetowej", + "LabelCellularQuality": "Jakość zdalnego przesyłania strumieniowego (sieć komórkowa)", + "HeaderMusicQuality": "Jakość muzyki", + "LabelHomeNetworkQuality": "Jakość dla sieci lokalnej", + "HeaderLatestMedia": "Media ostatnio dodane", + "HeaderRestartingEmbyServer": "Trwa ponownie uruchomienie serwera Emby", + "RestartPleaseWaitMessage": "Czekaj na zamknięcie i ponowne uruchomienie serwera Emby. To może trwać ok. jednej, dwóch minut.", + "HeaderPlayNext": "Odtwarzaj następne", + "AutoBasedOnLanguageSetting": "Automatyczna (w oparciu o ustawienia urządzenia)", + "SameAsMainTheme": "Taki sam jak podstawowy motyw", + "LabelDateTimeLocale": "Strefa czasowa", + "Genre": "Gatunek", + "DirectorValue": "Reżyser: {0}", + "DirectorsValue": "Reżyserzy: {0}", + "GenreValue": "Gatunek: {0}", + "GenresValue": "Gatunki: {0}", + "TagsValue": "Znaczniki: {0}", + "Off": "Wyłączone", + "Title": "Tytuł", + "Year": "Rok", + "Filter": "Filtr", + "Filters": "Filtry", + "Unplayed": "Nieodtwarzane", + "LabelTVHomeScreen": "Ekran startowy trybu telewizyjnego", + "Horizontal": "Horyzontalny", + "Vertical": "Pionowy", + "HeaderGroupBy": "Grupa według", + "HeaderMediaType": "Typ nośnika", + "GroupBySeries": "Grupuj po serialach", + "HeaderVideoType": "Typ wideo", + "HeaderSeriesStatus": "Stan serialu", + "Features": "Funkcje", + "Trailers": "Zwiastuny", + "Extras": "Materiały dodatkowe", + "ThemeSongs": "Motywy muzyczne", + "ThemeVideos": "Motywy wideo", + "HeaderFavoriteMovies": "Filmy ulubione", + "HeaderFavoritePhotos": "Ulubione zdjęcia", + "HeaderFavoriteShows": "Seriale ulubione", + "HeaderFavoriteEpisodes": "Odcinki ulubione", + "HeaderFavoriteVideos": "Wideo ulubione", + "HeaderFavoriteMusicVideos": "Ulubione Teledyski", + "HeaderFavoriteGames": "Gry ulubione", + "HeaderFavoriteArtists": "Wykonawcy ulubieni", + "HeaderFavoriteAlbums": "Albumy ulubione", + "HeaderFavoriteSongs": "Utwory ulubione", + "HeaderFavoriteAuthors": "Ulubieni autorzy", + "HeaderFavoriteAudioBooks": "Ulubione audiobooki", + "Ascending": "Rosnąco", + "Descending": "Malejąco", + "HeaderColorPrimaries": "Wzorce kolorów", + "HeaderColorSpace": "Przestrzeń kolorów", + "HeaderColorTransfer": "Transfer kolorów", + "HeaderVideoRange": "Zakres wideo", + "SeriesDisplayOrderHelp": "Sortuje odcinki po dacie emisji, kolejności na DVD lub bezwzględnej numeracji.", + "LabelVerticalPositionFromBottom": "Pozycja w pionie (od dołu)", + "HeaderFavoritePeople": "Ulubione osoby", + "MultiSelect": "Wielokrotny wybór", + "HeaderSignOut": "Wyloguj", + "HeaderSelectServer": "Wybierz serwer", + "HeaderChangeServer": "Zmień serwer", + "HeaderChangeUser": "Zmień użytkownika", + "HeaderAppSettings": "Ustawienia aplikacji", + "HeaderLoginSettings": "Ustawienia logowania", + "LabelRememberLogin": "Zapamiętaj logowanie", + "LabelAutomaticallySignOut": "Wyloguj automatycznie", + "BetaTesterMessage": "Dziękujemy za bycie beta testerem Emby! Prosimy o pozostawienie opinii w {0} Obszarze Testowym Społeczności Emby{1}.", + "HardwareAccelerated": "Sprzętowa akceleracja", + "Software": "Programowo", + "Metadata": "Metadane", + "HeaderMediaInfo": "Informacje o mediach", + "Locked": "Zablokowane", + "HeaderSplitVersionsApart": "Rozdzielaj części", + "Any": "Dowolne", + "Admin": "Administrator", + "HeaderReadMore": "Przeczytaj więcej", + "CustomRatingHelp": "Własna kategoria wiekowa pozwala na ograniczenia wiekowe, ale nie jest wyświetlana. Oficjalna kategoria wiekowa jest wciąż widoczna.", + "KeepUpToHelp": "Nagrania ponad limit są usuwane, gdy rozpocznie się nowe. Najpierw usuwane są najstarsze nagrania, zgodnie z datą dodania.", + "NoItemsMatchingFound": "Nie znaleziono pasujących pozycji.", + "TwoSearchCharsRequired": "Wprowadź przynajmniej dwie litery wyszukiwania", + "PreventPlaybackContinuing": "Zapobiega odtwarzaniu w nieskończoność, poprzez prośbę o interakcję użytkownika.", + "PromptStillWatching": "Aktywuj wyskakujące okno \"Nadal oglądasz?\"", + "HeaderMissingMetadata": "Brakujące metadane", + "HeaderIncludedIn": "Zawarty w", + "EmbyConnectUserAlreadyLinked": "Użytkownik Emby Connect jest już połączony z innym użytkownikiem na tym serwerze.", + "VideoFilesWillBeConvertedTo": "Przekonwertowane wideo będą zapisywane jako {0}.", + "VideoWillBeConvertedTo": "Strumienie wideo zostaną przekonwertowane na {0} lub skopiowane z oryginalnego pliku, jeśli są już {0}, a jakość mieści się w opcjach konwersji.", + "VideoWillBeConvertedToOrCopied": "Strumienie wideo zostaną przekonwertowane na {0} lub skopiowane z oryginalnego pliku, jeśli są którymś z ({1}), a ich jakość mieści się w opcjach konwersji.", + "AudioWillBeConvertedTo": "Strumienie audio zostaną przekonwertowane na {0} lub skopiowane z oryginalnego pliku, jeśli są już {0}, a jakość mieści się w opcjach konwersji.", + "AudioWillBeConvertedToOrCopied": "Strumienie audio zostaną przekonwertowane na {0} lub skopiowane z oryginalnego pliku, jeśli są którymś z ({1}), a jakość mieści się w opcjach konwersji.", + "HeaderSpecialKeys": "Klawisze specjalne", + "FollowingSpecialKeys": "Na większości klawiatur i pilotów obsługiwane są następujące klawisze specjalne:", + "HeaderDeleteSeries": "Usuń serial", + "HeaderDeleteLastPlayedEpisode": "Usuń ostatnio odtwarzany odcinek", + "HeaderConnectingToServer": "Łączenie z serwerem", + "ServerNameValue": "Nazwa serwera: {0}", + "DomainValue": "Domena: {0}", + "RatedValue": "Ocenione {0}", + "LocalServerRedirectMessage": "Zostaniesz teraz przekierowany do domeny, której właścicielem i operatorem jest administrator serwera, z którym chcesz się połączyć:", + "AllMediaOwnedHosted": "Wszystkie media są hostowane i zarządzane przez właściciela {0}.", + "EnableResolutionSwitching": "Dopasowanie rozdzielczości wideo", + "EnableResolutionSwitchingHelp": "Umożliwia to Emby zmianę rozdzielczości na tę samą wartość, w której wideo zostało zakodowane przed rozpoczęciem odtwarzania. Może to pomóc zminimalizować ilość zacinania się / zakłóceń, które w przeciwnym razie można by zobaczyć podczas odtwarzania filmów, które nie są dobrze dopasowane.", + "EnableDisplayRefreshRateSwitching": "Włącz przełączanie częstotliwości odświeżania wyświetlacza", + "EnableDisplayRefreshRateSwitchingHelp": "Dzięki temu Emby może zmienić częstotliwość odświeżania wyświetlacza na tę samą wartość (lub wielokrotność) co szybkość klatek, w której wideo zostało zakodowane przed rozpoczęciem odtwarzania. Pomaga to zminimalizować zacinanie się/drżenie, które można by zobaczyć podczas odtwarzania filmów, które nie pasują do siebie.", + "RememberSelectedAudioTracks": "Zapamiętaj wybór ścieżki dźwiękowej", + "RememberSelectedSubtitleTracks": "Zapamiętaj wybór ścieżki napisów", + "RememberSelectedSubtitleTracksHelp": "Wybrane ścieżki napisów będą zapamiętywane dla każdego filmu i ponownie zastosowane podczas ponownego odtwarzania tego samego filmu.", + "RememberSelectedAudioTracksHelp": "Wybrane ścieżki audio będą zapamiętywane dla każdego filmu i ponownie zastosowane podczas ponownego odtwarzania tego samego filmu.", + "ClearSavedTrackSelections": "Wyczyść zapisane wybory ścieżek", + "HeaderClearTrackSelections": "Wyczyść zapisane wybory ścieżek", + "QuestionClearSavedTracks": "Czy na pewno chcesz usunąć zapisane wybory ścieżek?", + "LabelChannelTags": "Tagi kanału", + "AfterThisPlaysConfirmation": "Czy po tym odtworzeniu chcesz dalej odtwarzać, czy wyczyścić muzykę, którą wcześniej umieściłeś w kolejce?", + "Keep": "Zachowaj", + "Clear": "Wyczyść", + "HeaderClearFilters": "Wyczyść filtry", + "HeaderSearchForImages": "Szukaj grafik", + "HeaderSearchNewImage": "Szukaj nowej grafiki", + "HeaderSearchForAnImage": "Szukaj grafiki", + "DragDropToReorder": "Przeciągnij i upuść, aby zmienić kolejność", + "HeaderAddImageFromUrl": "Dodaj grafikę z linku URL", + "HeaderSetImageFromUrl": "Ustaw grafikę z linku URL", + "LabelUrl": "Link", + "LabelChannelNumber": "Numer kanału", + "LabelGuideDataChannel": "Kanał przewodnika", + "GuideDataSource": "Źródło danych przewodnika", + "HeaderCopyToClipboard": "Skopiuj do schowka", + "TimeRemainingValue": "{0} pozostało", + "LabelResumeRewindSeconds": "Podczas wznawiania automatycznie przewijaj", + "ResumeRewindSecondsHelp": "Może to pomóc w zapamiętaniu miejsca, w którym przerwano odtwarzanie. Dotyczy to początkowego wznowienia, a nie każdej pojedynczej pauzy podczas odtwarzania.", + "HeaderSavePlayQueueToPlaylist": "Zapisz kolejkę odtwarzania do listy odtwarzania", + "EnableLogoImagesAsTitle": "Wyświetlaj grafiki logo jako tytuły podczas wyświetlania szczegółów", + "EnableLogoImagesAsTitleHelp": "Jeśli dostępne, obrazy logo mogą być używane zamiast tekstu tytułowego na ekranach wideo, serialach i innych ekranach szczegółowych. Tytuł zmieni się w tekst, gdy obraz logo nie będzie dostępny.", + "LabelNowPlayingAudioBackgroundStyle": "Styl tła podczas odtwarzania audio", + "LabelNowPlayingVideoBackgroundStyle": "Styl tła podczas odtwarzania filmu", + "NowPlayingVideoBackgroundStyleHelp": "Określa styl tła podczas zdalnego sterowania odtwarzaniem wideo na innym urządzeniu.", + "Rotation": "Obrót", + "Minutes": "Minuty", + "LabelMaxRecordingLength": "Maksymalna długość nagrania", + "MaxRecordingLengthHelp": "Ogranicz nagrania do określonego czasu, niezależnie od czasu trwania programu. Ustawienie 0 oznacza brak ograniczenia.", + "RemoteWAN": "Zdalny adres (WAN)", + "HeaderLastConnectedTo": "Ostatnio połączony z", + "Version": "Wersja", + "Keyword": "Słowo kluczowe", + "HeaderServerAddress": "Adres serwera", + "HeaderSkipIntro": "Pomiń czołówkę", + "HeaderCreateRecording": "Utwórz nagranie", + "HeaderAddRecording": "Dodaj nagranie", + "HeaderChannelAndTime": "Kanał i czas", + "LabelRecordProgramOrSeriesFrom": "Nagrywaj program lub serię od", + "LabelStartTime": "Czas startu", + "LabelEndTime": "Czas zakończenia", + "LabelFrequency": "Częstotliwość", + "Recurring": "Powtarzające się", + "Once": "Raz", + "Start": "Rozpocznij", + "Unpause": "Wznów", + "LabelIntroSkipMode": "Pomijanie czołówki", + "ShowSkipIntroButton": "Pokaż przycisk \"Pomiń czołówkę\"", + "AutoSkipIntro": "Automatycznie pomijaj czołówkę", + "DisplayRatingInformationOnVideoPlaybackStart": "Wyświetl ocenę podczas rozpoczęcia odtwarzania wideo", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Informacja o ocenie zostanie wyświetlona, gdy rozpocznie się odtwarzanie wideo.", + "IntroSkipModeHelp": "Wyświetl przycisk \"Pomiń czołówkę\" lub pomijaj ją automatycznie dla odcinków, w których serwer Emby wykrył jej znaczniki. Wykrywanie czołówki musi być włączone w opcjach biblioteki serwera Emby.", + "EnableHomeScreenFocusPreview": "Użyj układu ekranu głównego, który wyświetla szczegółowy podgląd wybranego elementu", + "EnableHomeScreenFocusPreviewHelp": "Mogą wystąpić problemy z wyświetlaniem, jeśli ekran główny zawiera mieszankę różnych typów multimediów.", + "LabelHideMediaTransportButtons": "Ukryj przyciski odtwarzacza filmów", + "HideMediaTransportButtonsHelp": "Skonfiguruj prostszy interfejs odtwarzania, ukrywając podstawowe przyciski, takie jak przeskakiwanie do przodu, do tyłu i pauza. Nadal będziesz mógł korzystać z tych funkcji za pomocą klawiszy strzałek i Entera. Opcja \"Auto\" ukryje przyciski, gdy mysz nie będzie używana.", + "ImageSizeHelp": "Ustaw preferowany rozmiar siatki obrazów.", + "LabelImageSize": "Rozmiar obrazu", + "ThisImageIsOnlyPreview": "Ten obraz jest tylko podglądem, który pochodzi z wyszukiwarki metadanych. Rzeczywisty obraz, który pobierze serwer Emby może być inny i będzie zależał od opcji skonfigurowanych w konfiguracji biblioteki.", + "ResultsRangeValue": "{0} - {1} z {2}", + "NotificationsDescription": "Ustaw powiadomienia, aby być informowanym o ważnych wydarzeniach na Twoim serwerze Emby.", + "DeleteEmbyConnectAccount": "Usuń konto Emby Connect", + "DeleteEmbyConnectAccountHelp": "Aby usunąć swoje konto Emby Connect, zaloguj się do {0}Emby Community{1} na {2}. Następnie kliknij swoją nazwę użytkownika w prawym górnym rogu, wybierz Account Settings, a następnie opcję Delete My Account.", + "KeepPlayingInBackground": "Odtwarzaj w tle", + "LabelVideoBackBehavior": "Zachowanie przycisku wstecz odtwarzacza wideo", + "HeaderViewLyrics": "Wyświetl tekst", + "HeaderViewMissingEpisodes": "Wyświetl brakujące odcinki", + "HeaderMissingEpisodes": "Brakujące odcinki", + "HeaderManageAccess": "Zarządzaj dostępem", + "HeaderManageCollaboration": "Zarządzanie współpracą", + "HeaderLeaveCollaboration": "Zostaw współpracę", + "HeaderRemoveFromLibrary": "Usuń z biblioteki", + "RemoveSharedItemConfirmation": "Czy na pewno chcesz usunąć tę pozycję ze swojej biblioteki? Aby go odzyskać, właściciel będzie musiał ponownie przyznać ci dostęp.", + "SubtitlesDownloaded": "Napisy pobrane", + "HeaderMakePrivate": "Oznacz jako prywatną", + "HeaderMakePublic": "Oznacz jako publiczną", + "MakePublicDescription": "Wszyscy użytkownicy będą mogli wyświetlać ten element. Użytkownikom można przyznać dostęp do edycji.", + "MakePrivateDescription": "Użytkownikom nadal można przyznawać dostęp indywidualnie.", + "Private": "Prywatny", + "Public": "Publiczny", + "Collaborative": "Współpraca", + "PreferredShowDisplay": "Preferowany układ wyświetlania serialu", + "ShowAllEpisodesAllSeasons": "Wyświetlaj wszystkie odcinki i sezony razem", + "ShowAllEpisodesSingleSeason": "Wyświetlaj wszystkie odcinki tylko dla jednosezonowych seriali", + "ShowSeasonFolders": "Zawsze wyświetlaj foldery sezonów", + "HeaderAddAgain": "Dodaj ponownie", + "UpNext": "Do góry Następny", + "ItemsAlreadyInPlaylist": "Niektóre z tych pozycji są już na twojej playliście.", + "ItemAlreadyInPlaylist": "Ten element jest już na twojej playliście.", + "HeaderPlayChannel": "Oglądaj kanał", + "LabelScreenOrientationDuringVideo": "Orientacja ekranu podczas odtwarzania wideo", + "UseDeviceSetting": "Użyj ustawień urządzenia", + "LockToLandscape": "Blokada do trybu poziomego", + "UsernameForFolderHelp": "Nazwa użytkownika wymagana do uzyskania dostępu do tego folderu w sieci (jeśli dotyczy).", + "PasswordForFolderHelp": "Hasło wymagane do uzyskania dostępu do tego folderu w sieci (jeśli dotyczy).", + "ShowMediaInfoOnDetailScreens": "Wyświetlanie pełnych multimediów na dole ekranów szczegółów audio i wideo", + "ForgotPasswordNoUserFound": "Nie znaleziono użytkowników o podanej nazwie. Spróbuj ponownie lub pozostaw nazwę pustą, aby zresetować hasło dla wszystkich użytkowników na tym serwerze.", + "Silver": "Srebrny", + "DimGray": "Przyciemniony szary", + "DarkGray": "Ciemnoszary", + "LightGray": "Jasnoszary", + "Black": "Czarny", + "Blue": "Niebieski", + "Cyan": "Cyjan", + "Gray": "Szary", + "Green": "Zielony", + "Lime": "Limonkowy", + "Magenta": "Magenta", + "Orange": "Pomarańczowy", + "Pink": "Różowy", + "Red": "Czerwony", + "Yellow": "Żółty", + "White": "Biały", + "Purple": "Fioletowy", + "RecentlyReleasedMovies": "Ostatnio wydane filmy", + "RecentlyReleasedEpisodes": "Ostatnio wydane odcinki", + "DolbyProfile": "Profil Dolby", + "IpAddress": "Adres IP", + "VideoType": "Rodzaj wideo", + "HidePlayedMediaFrom": "Ukryj odtwarzane multimedia przed", + "BottomEdgePosition": "Pozycja dolnej krawędzi", + "VerticalPositionFromBottomScreen": "Ustawienie pionowego położenia napisów względem dołu ekranu.", + "TopEdgePosition": "Pozycja górnej krawędzi", + "TopEdgePositionHelp": "Ustawia najwyższą dozwoloną pozycję napisów w pionie względem górnej krawędzi ekranu. Jest to używane, gdy napisy zawierają instrukcje pozycjonowania, które mają być umieszczone u góry.", + "HeaderSubtitlePosition": "Pozycja podtytułu", + "TitleProfilePin": "PIN do profilu", + "ProfilePinConfirm": "PIN do profilu (potwierdź)", + "SaveProfilePin": "Zapisz Pin", + "ProfilePinDescription": "Utwórz opcjonalny kod PIN, który będzie wyświetlany za każdym razem, gdy powrócisz do aplikacji Emby na urządzeniu, do którego już się zalogowałeś. Jest to przydatne w przypadku urządzeń współdzielonych przez wielu użytkowników. W razie potrzeby można ją włączyć selektywnie na każdym urządzeniu.", + "TitleNewEpisodes": "Nowe odcinki", + "EnterYourPinToContinue": "Wprowadź kod PIN, aby kontynuować.", + "YourPinMustBe": "Kod PIN musi składać się z {0} cyfr.", + "ForgotPin": "Nie pamiętasz kodu PIN?", + "RequireEnteringPinToReturn": "Wymóg wprowadzania kodu PIN profilu za każdym razem, gdy wracam do tej aplikacji.", + "RequireEnteringPinToReturnQuestion": "Czy powinniśmy wyświetlać monit o podanie kodu PIN profilu przy każdym powrocie do tej aplikacji? Jeśli to urządzenie jest współdzielone przez wielu użytkowników, kod PIN profilu może pomóc w uniemożliwieniu innym użytkownikom dostępu do danych użytkownika.", + "RequireEnteringPinToReturnHelp": "Przydatne, jeśli urządzenie jest współdzielone przez wielu użytkowników.", + "WrongPinPleaseTryAgain": "Ups, zły PIN. Spróbuj ponownie.", + "ProfilePinIsOn": "Kod PIN profilu jest obecnie włączony.", + "IfTryingToConnectToHttp": "Jeśli próbujesz połączyć się z serwerem Emby przy użyciu adresu HTTP, twoja przeglądarka może na to nie pozwalać ze względu na wymagania protokołu HTTPS. Spróbuj jednego z poniższych rozwiązań:", + "SetupHttpsForYourServer": "Skonfiguruj {0}HTTPS dla serwera Emby{1}, aby można było łączyć się za pomocą protokołu HTTPS.", + "TitleUnableToReachServer": "Nie można uzyskać połączenia z serwerem", + "TitleUnableToReachName": "Nie można uzyskać {0}", + "HearingImpaired": "Osoby niedosłyszące", + "SignIntoServerName": "Zaloguj się do {0}", + "About": "Informacje", + "Specials": "Oferty specjalne", + "NSettings": "{0} Ustawienia", + "NPreferences": "{0} Preferencje", + "DetailScreenOptions": "Ekrany szczegółów", + "LabelGenreDisplayLimit": "Limit wyświetlania gatunku", + "GenreDisplayLimitHelp": "Ograniczenie liczby gatunków wyświetlanych w górnej części ekranów szczegółów pozycji.", + "GenreDisplayLimitForListsHelp": "Ograniczenie liczby gatunków wyświetlanych w górnej części ekranów list odtwarzania, kolekcji i szczegółów wykonawcy.", + "LabelGenreDisplayLimitForLists": "Limit wyświetlania gatunku dla list", + "ShowPosterOnDetails": "Pokaż plakat na ekranie szczegółów", + "ShowPosterOnDetailsHelp": "Wybierz wyświetlanie plakatu na ekranach szczegółów wideo lub ukryj go, aby uzyskać bardziej minimalistyczny wygląd, który podkreśla tło. To ustawienie nie jest używane na mniejszych ekranach. Niektóre typy elementów ignorują to ustawienie.", + "EnableAppLogging": "Włącz rejestrowanie aplikacji", + "EnableAppLoggingHelp": "Rejestrowanie może obniżyć wydajność aplikacji i powinno być włączane tylko w razie potrzeby w celu rozwiązywania problemów. Zmiany wymagają ponownego uruchomienia aplikacji.", + "LabelSlideshowInterval": "Czas pokazu zdjęć na slajd", + "TVChannelImageEditorHelp": "Obsługiwanych jest wiele wersji logo. Aplikacje Emby automatycznie wybiorą odpowiednią wersję w zależności od bieżącego motywu.", + "PlaySlideshow": "Odtwórz pokaz slajdów", + "CheckForExistingEpisodesInAllLibraries": "Sprawdzenie istniejących odcinków we wszystkich bibliotekach", + "GroupNotificationsBySeriesOrAlbum": "Grupowanie powiadomień według serii i albumów", + "ThemeSettings": "Ustawienia motywu", + "FollowingActivityWillBeDisrupted": "Następująca aktywność zostanie zakłócona i może wymagać ręcznej interwencji w celu ponownego uruchomienia:", + "OneActivePlaybackSession": "1 Aktywna sesja odtwarzania", + "NumActivePlaybackSessions": "{0} Aktywne sesje odtwarzania", + "OneActiveRecording": "1 Aktywne nagrywanie", + "NumActiveRecordings": "{0} Aktywne nagrania", + "PlayFromLivePosition": "Odtwarzanie z pozycji na żywo", + "PlayFromStartOfRecording": "Odtwarzanie od początku nagrania", + "ThisChannelIsActivelyRecording": "Ten kanał aktywnie nagrywa. Jak chcesz zacząć grać?", + "ThemeSongVolume": "Głośność utworu tematycznego", + "HeaderForceConversionForFormats": "Wymuś konwersję dla formatów", + "ForceConversionForFormatsHelp": "Użyj tej opcji, aby wymusić konwersję po stronie serwera dla formatów, które nie są najlepiej odtwarzane na tym urządzeniu.", + "StartupBehavior": "Zachowanie startowe", + "RememberLastUser": "Zapamiętaj ostatniego użytkownika", + "ShowLoginScreen": "Pokaż ekran logowania", + "SignInAsValue": "Zaloguj się jako {0}", + "ConvertUnsupportedAudio": "Konwertuj nieobsługiwany dźwięk przestrzenny na Dolby Digital", + "ConvertUnsupportedAudioHelp": "Zapobiegnij konwersji nieobsługiwanych formatów dźwięku przestrzennego do stereo, korzystając z usługi Emby Server, która transkoduje je do formatu Dolby Digital.", + "HeaderPlaybackCorrection": "Korekta odtwarzania", + "HeaderAttemptPlaybackCorrection": "Spróbuj korekty odtwarzania", + "PlaybackCorrectionConfirm": "Włączyć korektę odtwarzania?", + "PlaybackCorrectionDescription": "To spróbuje naprawić problemy z odtwarzaniem, używając transkodowania serwera, aby przekonwertować ten plik na format bardziej przyjazny dla przesyłania strumieniowego. Spowoduje to zwiększone zużycie zasobów na tym serwerze Emby.", + "PlaybackCorrectionDescription2": "Można to zrobić maksymalnie trzy razy dla każdego filmu, przy czym remuxowanie, transkodowanie wideo i transkodowanie audio są aktywowane osobno.", + "HeaderAlbumsAsContributingArtist": "Albumy jako artyści współpracujący", + "HeaderAlbumsAsComposer": "Albumy jako kompozytor", + "Duplicates": "Duplikaty", + "HeaderSleepTimer": "Wyłącznik czasowy", + "AfterCurrentItem": "Po bieżącej pozycji", + "HeaderStopPlayback": "Zatrzymaj odtwarzanie", + "TurnOffTimer": "Wyłącznik czasowy", + "SleepTimerIsSet": "Wyłącznik czasowy jest ustawiony", + "SleepTimerIsOff": "Wyłącznik czasowy jest wyłączony", + "LabelEnableRemoteControlTVMode": "Funkcje przesyłania obrazu i zdalnego sterowania", + "EnableRemoteControlTVModeHelp": "Włącz, jeśli zamierzasz używać tego urządzenia do przesyłania multimediów do innych urządzeń.", + "ShowOnScreenControls": "Pokaż elementy sterujące na ekranie", + "LabelVideoScreenUpAction": "Akcja podnoszenia ekranu wideo", + "VideoScreenUpActionHelp": "Wybierz akcję, która ma zostać wykonana po naciśnięciu klawisza w górę na ekranie wideo. Dotyczy to sytuacji, gdy żadne elementy sterujące na ekranie nie są obecnie widoczne. Gdy elementy sterujące są już widoczne, klawisz w górę będzie używany do nawigacji.", + "LabelVideoPlayerLongPressAction": "Długie naciśnięcie odtwarzacza wideo", + "LetsGetSetup": "Przygotujmy się", + "VideoPlayerLongPressActionHelp": "Wybierz funkcję lub menu wyświetlane po długim naciśnięciu przycisku OK podczas odtwarzania wideo. Ma to zastosowanie tylko wtedy, gdy kontrolki wideo są ukryte lub pasek wyszukiwania jest w centrum uwagi.", + "AskAdminToGetPremiere": "Ten zakup musi zostać dokonany przez administratora serwera. Poproś administratora tego serwera Emby o zalogowanie się i pobranie Emby Premiere, aby móc korzystać z funkcji premium.", + "AutoOpenSingleItemsFolders": "Automatyczne otwieranie pojedynczych elementów w widoku folderów", + "AutoOpenSingleItemsFoldersHelp": "Jeśli folder zawiera tylko jeden element, zostanie on automatycznie otwarty.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/pt-BR.json b/modules/common/strings/pt-BR.json new file mode 100644 index 0000000..12486db --- /dev/null +++ b/modules/common/strings/pt-BR.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby foi desenvolvido para ajudar a gerenciar sua biblioteca de mídias pessoais, como vídeos caseiros e fotos. Por favor, leia nossos {0}termos de uso{1}. O uso de qualquer software Emby constitui aceitação destes termos.", + "MessageUnableToConnectToServer": "Não foi possível conectar ao servidor selecionado. Por favor, certifique-se que esteja sendo executado e tente novamente.", + "EmbyIntroMessage": "Com o Emby você pode facilmente fazer streaming de vídeos, músicas e fotos do Servidor Emby para smartphones, tablets e outros dispositivos.", + "HeaderSignInWithConnect": "Entrar no Emby Connect", + "HeaderWelcomeToEmby": "Bem vindo ao Emby", + "HeaderNewUsers": "Novos Usuários", + "HeaderPleaseSignIn": "Por favor, Entre", + "MessageInvalidUser": "Nome de usuário ou senha inválidos. Por favor, tente novamente.", + "MessageUnlockAppWithPurchaseOrSupporter": "Desbloqueie esta funcionalidade com uma pequena compra única, 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.", + "ValueSpecialEpisodeName": "Especial - {0}", + "HeaderSignIn": "Entrar", + "Share": "Compartilhar", + "Shared": "Compartilhado", + "Info": "Informação", + "Add": "Adicionar", + "Speed": "Velocidade", + "PlaybackSpeed": "Velocidade de Reprodução", + "Chapters": "Capítulos", + "Password": "Senha", + "SavePassword": "Salvar Senha", + "LabelPassword": "Senha", + "HeaderResetPassword": "Redefinir Senha", + "Series": "Séries", + "Preview": "Prévia", + "Submit": "Enviar", + "Never": "Nunca", + "Table": "Tabela", + "HeaderScheduledTasks": "Tarefas Agendadas", + "Plays": "Reproduções", + "LastUsedAddressValue": "Última usada {0}", + "LabelKeywordType": "Tipo de palavra-chave", + "HeaderSelectColumns": "Selecionar Colunas", + "HeaderTopResults": "Resultados Principais", + "HeaderPinSidebar": "Fixar Barra Lateral", + "Collapse": "Recolher", + "LabelBackgroundVideoPlayback": "Reprodução de vídeo em segundo plano", + "BackgroundVideoPlaybackHelp": "Reprodução em segundo plano permite que o vídeo continue tocando mesmo quando a tela esta desligada.", + "AlwaysOn": "Sempre ligado", + "HeadphonesOrExternalSpeakersConnected": "Fones de ouvido ou alto-falantes externos conectados", + "HeaderKeyboardAndRemote": "Teclado e controle remoto", + "NoSelectedItemsSupportOperation": "Não há itens selecionados que suportem esta operação.", + "NoOperationsForSelectedItems": "Não há operações disponíveis para os itens selecionados.", + "UploadOnlyOnWifi": "Upload apenas no Wifi", + "HeaderFoldersToUpload": "Pastas para Upload", + "LabelPasswordConfirm": "Senha (confirmar)", + "HeaderMoveUpInOrder": "Mover para Cima na Ordem", + "HeaderDownUpInOrder": "Mover para Baixo na Ordem", + "LabelUsername": "Nome do Usuário", + "HeaderAddServer": "Adicionar Servidor", + "HeaderSubtitleOffset": "Compensação de Legenda", + "Watching": "Assistindo", + "HeaderRemoveFromContinueWatching": "Remover de Continuar Assistindo", + "RemoveThisTitleFromContinueWatching": "Remover este título de Continuar Assistindo?", + "HeaderRemoveFromContinueListening": "Remover de Continuar Escutando", + "RemoveThisTitleFromContinueListening": "Remover este título de Continuar Escutando?", + "HeaderIncreaseSubtitleOffset": "Aumentar o Deslocamento da Legenda", + "HeaderDecreaseSubtitleOffset": "Diminuir o Deslocamento da Legenda", + "Close": "Fechar", + "HeaderSeeAll": "Ver Tudo", + "HeaderOpenInNewWindow": "Abrir em Nova Janela", + "LabelEmail": "Email", + "LabelHost": "Servidor", + "LabelHostHelp": "Exemplo: 192.168.1.100 ou https://meuservidor.com", + "LabelPort": "Porta", + "Disabled": "Desativada", + "Uninstall": "Desinstalar", + "Enable": "Ativar", + "AllTuners": "Todos os Sintonizadores", + "Disable": "Desativar", + "NextValue": "Próximo: {0}", + "HeaderNextItem": "Próximo Item", + "HeaderPreviousItem": "Item Anterior", + "NoTrailersMessage": "Não foram encontrados trailers. Para adicionar Trailers, por favor instale o plugin de Trailer de {0}catálogo de plugins do Emby{1}.", + "UninstallPluginConfirmation": "Deseja realmente desinstalar este plugin?", + "HeaderUninstallPlugin": "Desinstalar Plugin", + "AreYouStillWatching": "Ainda está assistindo?", + "LabelCurrentPassword": "Senha atual", + "LabelNewPassword": "Nova senha", + "LabelNewPasswordConfirm": "Confirmar nova senha", + "HeaderRemovePassword": "Remover Senha", + "ServerUpdateNeeded": "Este Servidor Emby precisa ser atualizado. Para fazer download da versão mais recente, por favor visite {0}", + "MessageThankYouForConnectSignUp": "Obrigado por inscrever-se no Emby Connect. Um email será enviado para seu endereço com as instruções para confirmar sua nova conta. Por favor, confirme a conta e então volte aqui para entrar.", + "MessageThankYouForConnectSignUpNoValidation": "Obrigado por se inscrever no Emby Connect! Você será direcionado a logar com sua informação do Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "A senha e a confirmação de senha devem ser iguais.", + "ErrorMessageUsernameInUse": "O nome do usuário já está em uso. Por favor, escolha um novo nome e tente novamente.", + "ErrorMessageEmailInUse": "O endereço de email já está em uso. Por favor, digite um novo endereço de email e tente novamente ou use o recurso de senha esquecida.", + "HeaderUpcomingOnTV": "Em Breve na TV ao Vivo", + "HeaderOtherShowings": "Outras Exibições", + "Showings": "Exibições", + "HeaderConnectToServer": "Conectar ao Servidor", + "ConnectToServerManually": "Conectar ao servidor manualmente", + "LabelEnterConnectUserNameHelp": "Este é o endereço de email que você usou para configurar sua conta do Emby Connect.", + "HeaderSignInError": "Erro ao Entrar", + "HeaderManualLogin": "Login Manual", + "PasswordResetConfirmation": "Deseja realmente redefinir a senha?", + "ContactAdminToResetPassword": "Por favor, contate o administrador do sistema para redefinir sua senha.", + "ForgotPasswordInNetworkRequired": "Por favor, tente novamente dentro da rede de sua casa para iniciar o processo para redefinir a senha.", + "ForgotPasswordFileCreated": "O seguinte arquivo foi criado no seu servidor e contém instruções de como proceder:", + "ForgotPasswordFileExpiration": "O código para redefinição expirará às {0}.", + "InvalidForgotPasswordPin": "Foi digitado um código inválido ou expirado. Por favor, tente novamente.", + "PasswordResetForUsers": "As senhas foram removidas dos seguintes usuários. Para entrar, acesse com uma senha em branco", + "HeaderForgotPassword": "Esqueceu a Senha?", + "ForgotPasswordUsernameHelp": "Deixe em branco caso não lembre do nome do seu usuário.", + "HeaderPasswordReset": "Redefinição de Senha", + "AttributeNew": "Novo", + "Done": "Pronto", + "HeaderResetToDefault": "Restaurar para o Padrão", + "Deinterlacing": "Desentrelaçamento", + "HeaderBurningInSubtitles": "Gravando nas Legendas", + "Premiere": "Premiere", + "LabelPinCode": "Código pin", + "LabelLocalNetworkPinCode": "Código pin da rede local", + "LabelLocalNetworkPasswordMode": "Modo de acesso à rede local", + "RequirePasswordInLocalNetwork": "Exigir uma senha na rede local", + "NoPasswordInLocalNetwork": "Não exigir senha na rede local", + "PinCodeInLocalNetwork": "Permitir um código pin numérico na rede local", + "LocalNetworkPasswordModeHelp": "Selecionar o modo de acesso para os dispositivos na mesma rede local do Servidor Emby,", + "HeaderLocalNetworkAccess": "Acesso à Rede Local", + "Live": "Ao vivo", + "Reset": "Redefinir", + "Repeat": "Repetir", + "Track": "Faixa", + "Tracks": "Faixas", + "HeaderCameraUpload": "Upload da Câmera", + "TrackCount": "{0} Faixas", + "ItemCount": "{0} Itens", + "NumberChannelsValue": "{0} Canais", + "HeaderLatestMusic": "Músicas Recentes", + "HeaderLatestAudioBooks": "Livros de Áudio Recentes", + "HeaderLatestDownloadedVideos": "Vídeos Baixados Mais Recentes", + "HeaderRecentlyPlayed": "Reproduzido(a) Recentemente", + "Recent": "Recente", + "HeaderFrequentlyPlayed": "Reproduzido (a) Frequentemente", + "HeaderMoreLikeThis": "Mais Como Isto", + "HeaderMoreLikeThisOnLiveTV": "Mais Conteúdo como Este na TV ao Vivo", + "OriginalAirDateValue": "Data de exibição original: {0}", + "EndsAtValue": "Termina às {0}", + "Date": "Data", + "AirDate": "Data da Exibição", + "Played": "Reproduzido", + "Daily": "Diariamente", + "Weekly": "Semanalmente", + "RequireHashMatch": "Exigir comparação do hash", + "RequireHashMatchHelp": "Exigir a comparação do hash filtrará as legendas para incluir apenas aquelas que foram testadas e verificadas exatamente com o arquivo de vídeo. Deixar desmarcado aumentará a chance de encontrar e baixar as legendas, mas aumentará a chance de legendas erradas ou fora de tempo.", + "SearchForForcedSubtitlesOnly": "Apenas legendas forçadas", + "SearchForForcedSubtitlesOnlyHelp": "Exigir legendas forçadas limitará os resultados para legendas que estão marcadas como sendo de idioma estrangeiro.", + "LastEpisodeDateAdded": "Data do Último Episódio Adicionada", + "LastEpisodeDateAired": "Data de Lançamento do Último Episódio", + "LabelPlaystate": "Status da Reprodução", + "Studio": "Estúdio", + "Tag": "Tag", + "EpisodeTitle": "Título do Episódio", + "Audio": "Áudio", + "Video": "Vídeo", + "Subtitle": "Legenda", + "Image": "Imagem", + "CopyStream": "Copiar o stream original", + "LabelAudioLayout": "Layout de áudio", + "LabelAudioCodec": "Codec de áudio", + "LabelAudioLanguage": "Idioma do audio", + "LabelSubtitleLanguage": "Idioma da legenda", + "LabelVideoCodec": "Codec de vídeo", + "LabelSubtitleCodec": "Codec de legendas", + "LabelParentalRating": "Classificação etária", + "BecauseYouLikeValue": "Porque você gosta de {0}", + "BecauseYouWatchedValue": "Por você assistiu {0}", + "DirectedByValue": "Dirigido por {0}", + "StarringValue": "Estrelando {0}", + "Invitations": "Convites", + "ActorAsRole": "como {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Agrupar itens em coleções", + "GroupItemsIntoCollectionsHelp": "Agrupar itens baseado nas coleções em que elas foram adicionadas. Ativar certos filtros ou ordens de classificação pode desativar isto automaticamente.", + "GroupItemsIntoTags": "Agrupar itens em tags", + "GroupItemsIntoTagsHelp": "Agrupar itens baseados nas tags às quais foram adicionados. Ativar certos filtros ou ordens de classificação podem automaticamente desabilitar esta função.", + "User": "Usuário", + "Access": "Acesso", + "Users": "Usuários", + "Library": "Biblioteca", + "Devices": "Dispositivos", + "Cancel": "Cancelar", + "Restart": "Reiniciar", + "Shutdown": "Desligar", + "Logs": "Logs", + "Visibility": "Visibilidade", + "Notifications": "Notificações", + "SendTestNotification": "Enviar Notificação de Teste", + "NotificationSent": "Notificação enviada", + "DeleteNotificationConfirmation": "Deseja realmente excluir esta notificação?", + "DeleteNotification": "Excluir Notificação", + "AddNotification": "Adicionar Notificação", + "EditNotification": "Editar Notificação", + "LimitUserEventsTo": "Limitar eventos do usuário a", + "LimitLibraryEventsTo": "Limitar eventos da biblioteca a", + "LimitDeviceEventsTo": "Limitar eventos dos dispositivos para", + "ForAdditionalNotificationOptions": "Os serviços de notificação adicionais podem ser instalados pelo administrador do servidor no {0}catálogo de plugins{1} da Emby.", + "Plugins": "Plugins", + "Systems": "Sistemas", + "Server": "Servidor", + "Dashboard": "Painel", + "PlayOnAnotherDevice": "Reproduzir em outro dispositivo", + "HeaderConnectionHelp": "Ajuda para Conexão", + "AccessRestrictedTryAgainLater": "O acesso está atualmente restrito. Por favor, tente novamente mais tarde.", + "ButtonGotIt": "Feito", + "RememberMe": "Lembrar de mim", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Gerenciar Servidor Emby", + "ShutdownServer": "Desligar Servidor Emby", + "RestartServer": "Reiniciar Servidor Emby", + "RecordingCancelled": "Gravação Cancelada", + "SeriesCancelled": "Série Cancelada", + "Recording": "Gravando", + "SeriesRecording": "Gravando Séries", + "RecordingScheduled": "Gravação Agendada", + "SeriesRecordingScheduled": "Gravação de Série Agendada", + "HeaderNewRecording": "Nova Gravação", + "HeaderWakeServer": "Despertar Servidor", + "AttemptingWakeServer": "Tentando despertar o servidor. Por favor, aguarde...", + "WakeServerSuccess": "Deu certo!", + "HeaderCustomizeHomeScreen": "Personalizar Tela Início", + "WakeServerError": "Pacotes de rede para despertar foram enviados para seu servidor, mas não foi possível conectar ao seu Servidor Emby. Sua máquina pode necessitar um pouco mais de tempo para despertar, ou o Servidor Emby pode não estar rodando na máquina.", + "Days": "Dias", + "Network": "Rede", + "Networks": "Redes", + "SortByValue": "Classificar por {0}", + "HeaderSortBy": "Classificar por", + "HeaderPhotoAlbums": "Álbuns de Fotos", + "Photos": "Fotos", + "HeaderAppearsOn": "Aparece em", + "List": "Lista", + "HeaderRecordSeries": "Gravar Séries", + "HeaderCinemaMode": "Intros do Cinema", + "Conversions": "Conversões", + "Downloads": "Downloads", + "HeaderManageDownloads": "Gerenciar Downloads", + "InternalStorage": "Armazenamento interno", + "ExternalStorage": "Armazenamento externo", + "UploadToFollowingServers": "Upload para os servidores", + "UploadingNumItems": "Uploading {0} de {1}", + "DownloadNumItems": "Transferindo {0} de {1}", + "HeaderSampleRate": "Taxa da amostra", + "HeaderReferenceFrames": "Quadros de referência", + "HeaderBitDepth": "Bit da imagem", + "HeaderPixelFormat": "Formato do pixel", + "Profile": "Perfil", + "Bitrate": "Taxa", + "Expand": "Expandir", + "Container": "Recipiente", + "Format": "Formato", + "Path": "Local", + "Size": "Tamanho", + "Resolution": "Resolução", + "HeaderCodecTag": "Tag do Codec", + "Framerate": "Framerate", + "Interlaced": "Entrelaçado", + "Anamorphic": "Anamórfico", + "Level": "Nível", + "Timestamp": "Data e hora", + "Language": "Idioma", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Dados Extra", + "HeaderHardwareAcceleratedTranscoding": "Transcodificação Acelerada por Hardware", + "HeaderHardwareAcceleratedTranscodingDescription": "Aproveite a GPU do seu servidor. O Emby possui a aceleração de hardware mais avançada e rápida da indústria.", + "HeaderOfflineDownloads": "Mídia Offline", + "AndMuchMoreExclamation": "E muito mais!", + "HeaderOfflineDownloadsDescription": "Download sua mídia para seus dispositivos para uso offline fácil.", + "LiveTvFeatureDescription": "Assistir TV ao vivo em qualquer app Emby com um sintonizador de TV compatível, instalado em seu servidor Emby.", + "DvrFeatureDescription": "Agendar gravações individuais de TV ao vivo, gravações de séries e mais com o Emby DVR.", + "CinemaModeFeatureDescription": "Intros do Cinema oferece a você uma verdadeira experiência de cinema com trailers e intros customizadas antes do filme principal.", + "HeaderFreeApps": "Apps Emby grátis", + "FreeAppsFeatureDescription": "Aproveite acesso grátis a apps Emby para seus dispositivos.", + "HeaderBecomeProjectSupporter": "Obter Emby Premiere", + "HeaderViewServerInfo": "Ver Informações do Servidor", + "PlaybackTvModeRequiresEmbyPremiere": "A reprodução de mídia no modo TV requer uma assinatura ativa do {0} Emby Premiere {1}.", + "FeatureRequiresEmbyPremiere": "Este recurso requer uma {0}subscrição do Emby Premiere{1} ativa.", + "HeaderConvertYourRecordings": "Converter suas Gravações", + "Record": "Gravar", + "Save": "Salvar", + "Edit": "Editar", + "HeaderSavePlaylist": "Salvar Playlist", + "Latest": "Recentes", + "Download": "Download", + "Downloaded": "Transferido(s)", + "Converted": "Convertido(a)", + "RemoveFromHistory": "Remover do Histórico", + "ConfirmRemoveFromHistory": "Remover este item do histórico?", + "Downloading": "Transferindo", + "Advanced": "Avançado", + "LinkedToEmbyConnect": "Associada ao Emby Connect", + "Delete": "Excluir", + "Both": "Ambos", + "LabelChannelDisplay": "Exibição do canal", + "HeaderDeleteItem": "Excluir item", + "HeaderDeleteUser": "Excluir Usuário", + "DeleteItemConfirmation": "Deseja realmente excluir {0}?", + "DeleteUserConfirmation": "Deseja realmente excluir o usuário {0}?", + "DeleteUsersConfirmation": "Deseja realmente excluir estes {0} usuários?", + "HeaderDeleteDevice": "Excluir Dispositivo", + "DeleteDeviceConfirmation": "Deseja realmente excluir este dispositivo? Ele reaparecerá da próxima vez que um usuário utilizá-lo.", + "ConfirmDeleteItem": "Excluir este item o excluirá do sistema de arquivos e também da sua biblioteca de mídias.", + "FollowingFilesWillBeDeleted": "Os seguintes arquivos e pastas serão excluídos:", + "AreYouSureToContinue": "Deseja realmente continuar?", + "Refresh": "Atualizar", + "RefreshingMetadataDots": "Atualizando Metadados...", + "ScanningLibraryFilesDots": "Rastreando Arquivos da Biblioteca...", + "HeaderFavoritesThenByChannelNumber": "Favoritos, Depois por Número de Canal", + "HeaderAddToCollection": "Adicionar à Coletânea", + "HeaderFavoritesThenByTitle": "Favoritos, Depois por Título", + "HeaderFavoritesThenByDefault": "Favoritos, Depois por Ordem de Canal Padrão", + "HeaderDefaultChannelOrder": "Ordem de Canal Padrão", + "HeaderAddToFavorites": "Adicionar aos Favoritos", + "HeaderRemoveFromFavorites": "Remover dos Favoritos", + "Favorited": "Favoritado", + "Unfavorited": "Desfavoritado", + "HeaderNewCollection": "Nova Coletânea", + "HeaderNewPlaylist": "Nova Playlist", + "AllCollections": "Todas as Coletâneas", + "AllPlaylists": "Todas as Playlists", + "Create": "Criar", + "HeaderAddedToPlaylist": "Adicionado à Playlist", + "HeaderAddedToCollection": "Adicionado à Coletânea", + "OneItemAddedTo": "1 item adicionado a \"{0}\".", + "ItemsAddedTo": "{0} itens adicionados a \"{1}\".", + "HeaderAddedToPlayQueue": "Adicionado à Fila de Reprodução", + "HeaderPlayingNext": "Reproduzindo Próximo", + "Help": "Ajuda", + "HeaderGetHelp": "Ajuda", + "LabelTVDisplayMode": "Ativar o modo de exibição da TV", + "Desktop": "Desktop", + "Mobile": "Celular / Tablet", + "Navigation": "Navegação", + "HeaderVideoPlayback": "Reprodução de vídeo", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Temporadas", + "OneTrack": "1 Faixa", + "OneSeason": "1 Temporada", + "Libraries": "Bibliotecas", + "NumberSeasonsValue": "{0} Temporadas", + "TVDisplayModeHelp": "Otimizar a interface do usuário deste dispositivo para exibição em uma TV e método de entrada com controle remoto. Isso geralmente não é recomendado se o seu método de entrada principal for um mouse ou um dispositivo touchscreen.", + "LabelDisplayLanguage": "Idioma para exibição", + "LabelDisplayLanguageHelp": "A tradução do Emby é um projeto em andamento.", + "LearnHowYouCanContribute": "Saiba como você pode contribuir.", + "NewCollectionHelp": "Coletâneas permitem que você crie grupos personalizados de filmes e outros conteúdos da biblioteca.", + "SearchForCollectionInternetMetadata": "Buscar artwork e metadados na internet", + "DisplayMissingEpisodesWithinSeasons": "Exibir episódios que faltam dentro das temporadas", + "DisplayMissingEpisodesWithinSeasonsHelp": "Isto também deve ser ativado para as bibliotecas de TV na configuração do Servidor Emby.", + "EnableThemeSongs": "Ativar músicas-tema", + "EnableBackdrops": "Ativar imagens de fundo", + "EnableThemeSongsHelp": "Se ativadas, músicas-tema serão reproduzidas em segundo plano ao navegar pela biblioteca.", + "EnableBackdropsHelp": "Se ativadas, imagens de fundo serão exibidas ao fundo de algumas páginas ao navegar pela biblioteca.", + "EnableThemeVideos": "Ativar músicas-tema", + "EnableThemeVideosHelp": "Se ativadas, músicas-tema serão reproduzidas em segundo plano ao navegar pela biblioteca.", + "RunAtStartup": "Executar ao iniciar", + "ServerStartup": "Inicialização do Server", + "EmbyServerOnXHasStarted": "O servidor Emby em {0} foi iniciado.", + "LabelScreensaver": "Protetor de Tela", + "LabelSoundEffects": "Efeitos sonoros", + "LabelName": "Nome", + "NewCollectionNameExample": "Exemplo: Coletânea Star Wars", + "MessageItemsAdded": "Itens adicionados.", + "OptionNew": "Nova...", + "LabelPlaylist": "Playlist", + "AddToPlaylist": "Adicionar à playlist", + "HeaderAddToPlaylist": "Adicionar à Playlist", + "Subtitles": "Legendas", + "LabelTheme": "Tema", + "LabelSettingsTheme": "Configuração de tema", + "LabelThemeAccentColor": "Cor de destaque", + "ThemeAccentColorDescription": "Controla a cor de indicadores importantes, ícones e texto.", + "SearchForSubtitles": "Buscar Legendas", + "LabelLanguage": "Idioma", + "Search": "Busca", + "NoSubtitleSearchResultsFound": "Nenhum resultado encontrado. Você configurou {0} o download de legendas {1}?", + "NoLyricsSearchResultsFound": "Não foram encontrados resultados. Você configurou o {0}download de letras{1}?", + "Lyrics": "Letras", + "SearchForLyrics": "Buscar Letras", + "Finish": "Terminar", + "File": "Arquivo", + "Exit": "Sair", + "Sleep": "Hibernar", + "Setup": "Configuração", + "MessageAreYouSureDeleteSubtitles": "Deseja realmente excluir este arquivo de legendas?", + "ConfirmDeletion": "Confirmar Exclusão", + "MySubtitles": "Minhas Legendas", + "MessageDownloadQueued": "Download enfileirado.", + "HeaderEditSubtitles": "Editar Legendas", + "UnlockGuide": "Desbloquear Guia", + "HeaderRefreshMetadata": "Atualizar Metadados", + "HeaderRefreshAllMetadata": "Atualizar Todos os Metadados", + "ReplaceExistingImages": "Substituir imagens existentes", + "ReplaceExistingImagesHelp": "Todas as imagens existentes serão excluídas e novas serão baixadas. Em alguns casos isso pode fazer com que haja menos imagens que antes.", + "ReplaceAllMetadata": "Substituir todos os metadados", + "SearchForMissingMetadata": "Buscar por metadados que faltam", + "LabelRefreshMode": "Modo de atualização", + "NoItemsFound": "Nenhum item encontrado.", + "HeaderSaySomethingLike": "Diga Alguma Coisa Como...", + "ButtonTryAgain": "Tente Novamente", + "HeaderYouSaid": "Você Disse...", + "MessageWeDidntRecognizeCommand": "Desculpe, não reconhecemos este comando.", + "MessageIfYouBlockedVoice": "Se você negou o acesso de voz ao app, você necessitará reconfigurar antes de tentar novamente.", + "ValueDiscNumber": "Disco {0}", + "Unrated": "Não-classificado", + "Favorite": "Favorito", + "Like": "Curti", + "Dislike": "Não curti", + "RefreshDialogHelp": "Os metadados são atualizados com novos dados baseado nas configurações e nos provedores de metadados que estão ativos na biblioteca Emby.", + "Open": "Abrir", + "Play": "Reproduzir", + "Pause": "Pausar", + "HeaderPlayQueue": "Fila de reprodução", + "HeaderAddToPlayQueue": "Adicionar à Fila de Reprodução", + "Shuffle": "Aleatório", + "Identify": "Identificar", + "HeaderRemoveIdentification": "Remover identificação", + "ResetMetadataConfirmation": "Deseja realmente restaurar todos os metadados?", + "HeaderEditMetadata": "Editar Metadados", + "Convert": "Converter", + "Resume": "Retomar", + "HeaderInstantMix": "Mix Instântaneo", + "HeaderGoToItem": "Ir para o Item", + "HeaderGoToSeason": "Ir para a Temporada", + "HeaderGoToSeries": "Ir para a Série", + "HeaderGoToAlbum": "Ir para o Álbum", + "HeaderGoToArtist": "Ir para o Artista", + "HeaderPlayAll": "Reproduzir Tudo", + "PictureInPicture": "Picture in Picture", + "Fullscreen": "Tela cheia", + "ExitFullscreen": "Sair da tela cheia", + "Rewind": "Retroceder", + "FastForward": "Avanço-rápido", + "Remove": "Remover", + "Rename": "Renomear", + "Queue": "Adicionar à fila", + "QueueAllFromHere": "Enfileirar todas a partir daqui", + "PlayAllFromHere": "Reproduzir todas a partir daqui", + "PlayFromBeginning": "Reproduzir Do Início", + "FromBeginning": "Desde o Início", + "ResumeAt": "Retomar de {0}", + "HeaderRemoveFromPlaylist": "Remover da Playlist", + "HeaderRemoveFromPlayQueue": "Remover da Fila de Reprodução", + "HeaderRemoveFromCollection": "Remover da Coletânea", + "Sort": "Ordenar", + "Trailer": "Trailer", + "SelectNone": "Selecionar Nenhum(a)", + "SelectAll": "Selecionar Tudo", + "HeaderMarkPlayed": "Marcar como Reproduzido", + "HeaderMarkUnplayed": "Marcar como Não-Reproduzido", + "HeaderGroupVersions": "Agrupar Versões", + "PleaseSelectTwoItems": "Por favor selecione pelo menos dois itens.", + "HeaderConfirmRecordingCancellation": "Confirmar Cancelamento da Gravação", + "MessageConfirmRecordingCancellation": "Cancelar gravação?", + "Album": "Álbum", + "AlbumArtist": "Artista do Álbum", + "Error": "Erro", + "VoiceInput": "Entrada de voz", + "LabelContentType": "Tipo de conteúdo", + "LabelPath": "Local", + "Playlists": "PLaylists", + "LabelTitle": "Título", + "LabelOriginalTitle": "Título original", + "LabelSortTitle": "Título para ordenação", + "LabelDateAdded": "Data de adição", + "DateAdded": "Data da Adição", + "DateModified": "Data da Modificação", + "DatePlayed": "Data da Reprodução", + "DateLastActive": "Data do Último Uso", + "ConfigureDateAdded": "Configure como a data de adição é determinada no painel do Servidor Emby nas definições de Biblioteca", + "LabelStatus": "Status", + "LabelArtistsHelp": "Separar múltiplos usando ;", + "HeaderAlbumArtists": "Artistas do Álbum", + "LabelAlbumArtists": "Artistas do Álbum", + "LabelAlbum": "Álbum", + "Artist": "Artista", + "Artists": "Artistas", + "ImdbRating": "Avaliação IMDb", + "CommunityRating": "Avaliação da Comunidade", + "LabelCommunityRating": "Avaliação da comunidade", + "LabelCriticRating": "Avaliação da crítica", + "CriticRating": "Avaliação da Crítica", + "LabelWebsite": "Website", + "Tagline": "Slogan", + "LabelOverview": "Sinopse", + "LabelShortOverview": "Sinopse curta", + "LabelReleaseDate": "Data do lançamento", + "LabelPlaceOfBirth": "Local de nascimento", + "Aired": "Exibido", + "LabelAirDays": "Dias da exibição", + "LabelAirTime": "Horário", + "LabelRuntimeMinutes": "Duração (minutos)", + "LabelCustomRating": "Classificação personalizada", + "LabelOriginalAspectRatio": "Proporção da imagem original", + "Label3DFormat": "Formato 3D", + "FormatValue": "Formato: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Comparação de Hash", + "EnableExternalVideoPlayers": "Ativar reprodutores de vídeo externos", + "EnableExternalVideoPlayersHelp": "Um menu do reprodutor externo será exibido ao iniciar a reprodução do vídeo.", + "HeaderSpecialEpisodeInfo": "Informação do Episódio Especial", + "LabelAirsDuringSeason": "Exibido durante a temporada", + "LabelAirsAfterSeason": "Exibido depois da temporada", + "LabelAirsBeforeEpisode": "Exibido antes do episódio", + "HeaderExternalIds": "Ids Externos", + "HeaderDisplaySettings": "Ajustes de Exibição", + "PlaylistOrder": "Ordem da Playlist", + "CollectionOrder": "Ordem da Coletânea", + "LabelDisplayOrder": "Ordem de exibição", + "LabelFileOrder": "Ordem do arquivo", + "Display": "Exibir", + "Countries": "Países", + "Genres": "Gêneros", + "Studios": "Estúdios", + "Tags": "Tags", + "Links": "links", + "Movie": "Filme", + "Program": "Programa", + "Channel": "Canal", + "Episode": "Episódio", + "Season": "Temporada", + "HeaderMetadataSettings": "Ajustes dos Metadados", + "People": "Pessoas", + "Number": "Número", + "Lock": "Bloquear", + "HeaderScreenLocked": "Tela Bloqueada", + "HeaderUnlockControls": "Desbloquear Controles", + "HeaderTapToUnlock": "Toque para Desbloquear", + "LabelMetadataDownloadLanguage": "Idioma preferido para download de metadados", + "LabelImageDownloadLanguage": "Idioma preferido da imagem para download", + "LabelLockItemToPreventChanges": "Bloquear este item para evitar alterações futuras", + "LockThisField": "Bloquear este campo para evitar mudanças futuras ao atualizar os metadados", + "MessageLeaveEmptyToInherit": "Deixar em branco para herdar os ajustes de um item superior, ou o valor padrão global", + "LabelCountry": "País", + "LabelCertificationCountry": "País de Certificação", + "CertificationCountryHelp": "Isto influenciará qual sistema de classificação de conteúdo será usado.", + "LabelDynamicExternalId": "Id de {0}", + "LabelBirthYear": "Ano de nascimento", + "LabelBirthDate": "Data de nascimento", + "LabelDeathDate": "Data da morte", + "LabelEndDate": "Data final", + "LabelSeasonNumber": "Número da temporada", + "LabelEpisodeNumber": "Número do episódio", + "LabelTrackNumber": "Número da faixa", + "LabelNumber": "Número", + "LabelDiscNumber": "Número do disco", + "LabelParentNumber": "Número do superior", + "SortName": "Nome para Ordenação", + "OriginalTitle": "Título Original", + "ReleaseDate": "Data de Lançamento", + "Continuing": "Em Exibição", + "Ended": "Finalizada", + "HeaderEnabledFields": "Campos Ativados", + "HeaderEnabledFieldsHelp": "Desmarque um campo para bloqueá-lo e evitar que seus dados sejam alterados.", + "Backdrops": "Imagens de Fundo", + "Images": "Imagens", + "Runtime": "Duração", + "ProductionLocations": "Locais de produção", + "BirthLocation": "Local de nascimento", + "ParentalRating": "Classificação Etária", + "PlayCount": "Número de Reproduções", + "Name": "Nome", + "Overview": "Sinopse", + "LabelType": "Tipo", + "LabelPersonRole": "Personagem", + "LabelPersonRoleHelp": "Exemplo: motorista do carrinho de sorvete", + "Actor": "Ator", + "Composers": "Compositores", + "Composer": "Compositor", + "Director": "Diretor", + "GuestStar": "Convidado Especial", + "Producer": "Produtor", + "Writer": "Escritor", + "MessageNoSyncJobsFound": "Nenhum download encontrado. Crie tarefas de download usando os botões Download encontrados no app.", + "MessageNoDownloadsFound": "Nenhum download offline. Baixe sua mídia para usá-la offline clicando em Download no app.", + "InstallingPackage": "Instalando {0}", + "PackageInstallCompleted": "Instalação de {0} concluída.", + "PackageInstallFailed": "Instalação de {0} falhou.", + "PackageInstallCancelled": "Instalação de {0} cancelada.", + "SeriesYearToPresent": "{0} - Presente", + "OneDevice": "1 Dispositivo", + "DeviceCountValue": "{0} Dispositivos", + "OneLog": "1 Registro", + "LogCountValue": "{0} Registros", + "OneVote": "1 Voto", + "VoteCountValue": "{0} Votos", + "OneLike": "1 Curtida", + "LikeCountValue": "{0} Curtidas", + "OneUser": "1 Usuário", + "UserCountValue": "{0} Usuários", + "OneLibrary": "1 Biblioteca", + "LibraryCountValue": "{0} Bibliotecas", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episódio", + "ValueEpisodeCount": "{0} episódios", + "Albums": "Álbuns", + "Song": "Música", + "Songs": "Músicas", + "Authors": "Autores", + "Books": "Livros", + "AudioBooks": "Livros de Áudio", + "HeaderAudioBooks": "Livros de Áudio", + "HeaderAudioBook": "Audiolivro", + "HeaderIdentifyItemHelp": "Digite um ou mais critérios de busca. Exclua o critério para aumentar os resultados da busca.", + "PleaseEnterNameOrId": "Por favor, digite um nome ou Id externo.", + "MessageItemSaved": "Item salvo.", + "SearchResults": "Resultados da Busca", + "ServerNameIsRestarting": "Servidor Emby - {0} está reiniciando.", + "ServerNameIsShuttingDown": "Servidor Emby - {0} está desligando.", + "HeaderDeleteItems": "Excluir Itens", + "ConfirmDeleteItems": "Ao excluir estes itens você os excluirá do sistema de arquivos e de sua biblioteca de mídias.", + "PleaseRestartServerName": "Por Favor Reinicie o Servidor Emby em {0}.", + "ConvertingDots": "Convertendo...", + "LabelSyncNoTargetsHelp": "Parece que você não possui nenhuma app que suporta o download offline.", + "DownloadingDots": "Transferindo...", + "LearnMore": "Saiba mais", + "LabelBitrateMbps": "Taxa (Mbps)", + "ConvertUnwatchedVideosOnly": "Converter apenas vídeos não reproduzidos", + "SyncUnwatchedVideosOnly": "Transferir apenas vídeos não reproduzidos", + "ConvertUnwatchedVideosOnlyHelp": "Apenas vídeos que não estão marcados como completamente reproduzidos serão convertidos.", + "SyncUnwatchedVideosOnlyHelp": "Apenas vídeos que não estão marcados como completamente reproduzidos serão transferidos e os vídeos serão removidos do dispositivo assim que forem assistidos.", + "AutomaticallySyncNewContent": "Transferir novo conteúdo automaticamente", + "AutomaticallySyncNewContentHelp": "Novo conteúdo adicionado a esta pasta será automaticamente transferido para o dispositivo.", + "AutomaticallyConvertNewContent": "Converter novo conteúdo automaticamente", + "AutomaticallyConvertNewContentHelp": "Novo conteúdo adicionado a esta pasta será automaticamente convertido.", + "LabelItemLimit": "Limite de itens", + "ConvertItemLimitHelp": "Opcional. Definir um limite para o número de itens que serão convertidos.", + "DownloadItemLimitHelp": "Opcional. Definir um limite para o número de itens que serão baixados.", + "PleaseSelectDeviceToSyncTo": "Por favor, selecione um dispositivo para transferir.", + "Screenshots": "Screenshots", + "MoveRight": "Mover para direita", + "MoveLeft": "Mover para esquerda", + "HeaderUploadNewImage": "Fazer Upload da Nova Imagem", + "HeaderDeleteImage": "Excluir Imagem", + "ConfirmDeleteImage": "Apagar imagem?", + "HeaderEditImages": "Editar Imagens", + "Settings": "Ajustes", + "ShowIndicatorsFor": "Mostrar Indicadores", + "Episodes": "Episódios", + "Programs": "Programas", + "HeaderCastCrew": "Elenco & Equipe", + "DvrSubscriptionRequired": "Emby TV ao Vivo & DVR requer uma {0}assinatura do Emby Premiere{1} ativa.", + "HeaderCancelRecording": "Cancelar Gravação", + "HeaderKeepRecording": "Continuar Gravando", + "HeaderCancelSeries": "Cancelar Série", + "HeaderKeepSeries": "Manter Série", + "HeaderLearnMore": "Saiba Mais", + "SeriesSettings": "Ajustes da Série", + "HeaderRecordingOptions": "Opções de Gravação", + "HeaderDoNotRecord": "Não gravar", + "HeaderSeriesOptions": "Opções da Série", + "Layout": "Layout", + "Channels": "Canais", + "ChannelNameOnly": "Somente canal {0}", + "Anytime": "A qualquer momento", + "AnyLanguage": "Qualquer idioma", + "AroundTime": "Em torno de {0}", + "HeaderLatestMovies": "Filmes Recentes", + "All": "Tudo", + "Stop": "Parar", + "AllChannels": "Todos os canais", + "NewEpisodesOnly": "Apenas novos episódios", + "AllEpisodes": "Todos os episódios", + "LabelStartWhenPossible": "Iniciar quando possível", + "LabelStopWhenPossible": "Parar quando possível", + "MinutesBefore": "minutos antes de", + "MinutesAfter": "minutos após", + "SkipEpisodesAlreadyInMyLibrary": "Não gravar episódios que já estejam em minha biblioteca", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episódios serão comparados utilizando temporada e números de episódios, quando disponíveis.", + "LabelKeepUpTo": "Manter até", + "AsManyAsPossible": "Quantos forem possíveis", + "DefaultErrorMessage": "Ocorreu um erro ao processar o pedido. Por favor, tente novamente mais tarde.", + "UntilIDelete": "Até eu excluir", + "UntilSpaceNeeded": "Até o espaço necessário", + "Categories": "Categorias", + "Sports": "Esportes", + "News": "Notícias", + "Movies": "Filmes", + "Music": "Música", + "Kids": "Crianças", + "MoreFromValue": "Mais de {0}", + "DiedValue": "Morte: {0}", + "BornValue": "Nascimento: {0}", + "EnableColorCodedBackgrounds": "Aplicar cores de fundo para séries, baseado em suas categorias", + "SortChannelsBy": "Ordenar canais por", + "ChannelNumber": "Número do Canal", + "HeaderBenefitsEmbyPremiere": "Benefícios do Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Por favor aproveite um minuto de reprodução. Obrigado por testar Emby.", + "HeaderTryPlayback": "Testar Reprodução", + "HowDidYouPay": "Como você pagou?", + "IHaveEmbyPremiere": "Eu tenho Emby Premiere", + "IPurchasedThisApp": "Eu comprei este app", + "ButtonRestorePreviousPurchase": "Recuperar Compra", + "ButtonUnlockWithPurchase": "Desbloquear com Compra", + "ButtonUnlockPrice": "Desbloquear {0}", + "EmbyPremiereMonthlyWithPrice": "Mensalidade Emby Premiere {0}", + "HeaderAlreadyPaid": "Já Pagou?", + "ButtonPlayOneMinute": "Reproduzir Um Minuto", + "PlaceFavoriteChannelsAtBeginning": "Colocar canais favoritos no início", + "HeaderUnlockFeature": "Desbloquear Funcionalidade", + "MessageDidYouKnowCinemaMode": "Você sabia que com Emby Premiere, você pode melhorar sua experiência com funcionalidades como o Intros do Cinema?", + "HeaderPlayMyMedia": "Reproduzir minha Mídia", + "HeaderDiscoverEmbyPremiere": "Descobrir o Emby Premiere", + "HeaderNowPlaying": "Reproduzindo Agora", + "Items": "itens", + "AppName": "Nome do App", + "OneChannel": "Um canal", + "ConfirmRemoveDownload": "Remover download?", + "ConfirmRemoveItem": "Remover item?", + "RemoveDownload": "Remover Download", + "ConfirmCancelConversion": "Cancelar conversão?", + "CancelConversion": "Cancelar Conversão", + "KeepDownload": "Manter transferência", + "AddedOnValue": "Adicionado {0}", + "RemovingFromDevice": "Removendo do dispositivo", + "KeepOnDevice": "Manter no dispositivo", + "CancelDownload": "Cancelar download", + "SyncJobItemStatusReadyToTransfer": "Pronto para Transferir", + "SyncJobItemStatusSyncedMarkForRemoval": "Removendo do dispositivo", + "SyncJobItemStatusQueued": "Enfileirado", + "SyncJobItemStatusConverting": "Convertendo", + "SyncJobItemStatusTransferring": "Transferindo", + "SyncJobItemStatusSynced": "Baixado", + "Failed": "Falhou", + "SyncJobItemStatusRemovedFromDevice": "Removido do dispositivo", + "Cancelled": "Cancelado", + "Retry": "Tentar Novamente", + "Continue": "Continuar", + "ContinueInSecondsValue": "Continuar em {0} segundos.", + "HeaderRemoteControl": "Controle Remoto", + "Disconnect": "Desconectar", + "EnableDisplayMirroring": "Ativar espelhamento de tela", + "RemoteAccess": "Acesso Remoto", + "HeaderPlayOn": "Reproduzir em", + "Quality": "Qualidade", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "Para restaurar sua compra anterior, por favor certifique-se que está com a sessão aberta com a mesma conta Google (ou Amazon) que fez a compra originalmente. Certifique-se que a app store está ativada e que não está restringida por nenhum controle parental e também verifique que possui uma conexão de internet ativa. Você só terá que fazer isto uma vez para restaurar sua compra anterior.", + "HeaderAspectRatio": "Proporção da imagem", + "Original": "Original", + "Fill": "Preencher", + "Cover": "Capa", + "MessageNoServersAvailableToConnect": "Nenhum servidor disponível para se conectar. Se foi convidado para compartilhar um servidor, aceite abaixo ou clicando no link no email.", + "MessagePlayAccessRestricted": "A reprodução para este conteúdo está restrita. Por favor, contate o administrador do Servidor Emby para mais informações.", + "Accept": "Aceitar", + "Reject": "Rejeitar", + "Connect": "Conectar", + "HeaderMyMedia": "Minha Mídia", + "HeaderMyMediaSmall": "Minha Mídia (pequeno)", + "LatestFromLibrary": "Mais Recentes {0}", + "HeaderLatestEpisodes": "Episódios Recentes", + "ContinuePlaying": "Continuar reproduzindo", + "ContinueWatching": "Continuar assistindo", + "HeaderLatestChannelMedia": "Itens de Canais Recentes", + "HeaderContinueWatching": "Continuar Assistindo", + "HeaderContinueListening": "Continuar Escutando", + "HeaderActiveRecordings": "Gravações Ativas", + "HeaderLatestRecordings": "Gravações Recentes", + "LabelConvertTo": "Converter para", + "LabelDownloadTo": "Transferir para", + "HeaderDownloadToDots": "Transferir para...", + "Next": "Próximo", + "LabelSource": "Fonte", + "VersionNumber": "Versão {0}", + "HeaderAllLanguages": "Todas linguagens", + "Previous": "Anterior", + "HeaderNextUp": "Próximos", + "HeaderPlayNextUp": "Reproduzir Próximo", + "HeaderLatestFrom": "Mais recentes de {0}", + "LabelHomeScreenSectionValue": "Seção {0} da tela Início", + "PasswordResetComplete": "A senha foi redefinida.", + "PasswordSaved": "Senha salva.", + "SettingsSaved": "Configurações salvas.", + "Upcoming": "Estreando", + "HeaderSelectImageFile": "Selecionar o Arquivo da Imagem", + "None": "Nenhum(a)", + "More": "Mais", + "Up": "Para cima", + "Down": "Para baixo", + "Home": "Início", + "Back": "Voltar", + "Random": "Aleatório", + "Playback": "Reprodução", + "Favorites": "Favoritos", + "HeaderHomeScreen": "Tela Início", + "HeaderLatestChannelItems": "Itens de Canais Recentes", + "HeaderLibraryOrder": "Ordem da Biblioteca", + "HeaderOnNow": "Em Exibição", + "HeaderForKids": "Para Crianças", + "HeaderPlaybackError": "Erro na Reprodução", + "PlaybackErrorNotAllowed": "Você não está autorizado a reproduzir este conteúdo. Por favor, contacte seu administrador do sistema para mais detalhes.", + "RateLimitExceeded": "Sua conta excedeu o limite máximo de transmissão definito pelo administrador do Servidor Emby. Por favor, entre em contato com ele para ajuda.", + "PlaybackErrorNoCompatibleStream": "Não existem streams compatíveis. Por favor, tente novamente mais tarde ou contate o administrador do sistema para mais detalhes.", + "PlaybackErrorPlaceHolder": "Por favor, insira o disco para reproduzir este vídeo.", + "PlaybackErrorNoPlayableItems": "Não foi encontrado nenhum item que possa ser reproduzido. Está tentando reproduzir uma pasta vazia?", + "Guide": "Guia", + "Games": "Jogos", + "GameSystem": "Sistema do Jogo", + "Suggestions": "Sugestões", + "HeaderFavoriteChannels": "Canais favoritos", + "HeaderFavoriteCollections": "Coletâneas Favoritas", + "HeaderFavoritePlaylists": "Playlists Favoritas", + "Collection": "Coletânea:", + "Collections": "Coletâneas", + "LabelSelectFolderGroups": "Agrupar automaticamente o conteúdo das seguintes pastas dentro das visualizações como Filmes, Músicas e TV:", + "LabelSelectFolderGroupsHelp": "Pastas que não estão marcadas serão exibidas em sua própria visualização.", + "Mute": "Mudo", + "Unmute": "Sair do Mudo", + "Folder": "Pasta", + "Folders": "Pastas", + "FileName": "Nome do Arquivo", + "DisplayInOtherHomeScreenSections": "Exibir nas seções secundárias da tela inicial, como as mídias mais recentes, e continue assistindo", + "DisplayInMyMedia": "Exibir na tela início", + "Shows": "Séries", + "MoviesAndShows": "Filmes e Séries", + "HeaderMusicVideo": "Vídeo Musical", + "HeaderMusicVideos": "Vídeos Musicais", + "MusicVideos": "Vídeos musicais", + "Videos": "Vídeos", + "MixedContent": "Conteúdo misto", + "HomeVideos": "Vídeos caseiros", + "HomeVideosAndPhotos": "Fotos & vídeos caseiros", + "TVShows": "Séries", + "HeaderLibraryFolders": "Pastas da Biblioteca", + "HeaderTermsOfPurchase": "Termos de Compra", + "PrivacyPolicy": "Política de privacidade", + "TermsOfUse": "Termos de Uso", + "HeaderRepeatMode": "Modo de Repetição", + "HeaderToneMapping": "Mapeamento de Tom", + "RepeatOne": "Repetir uma", + "RepeatAll": "Repetir todas", + "LabelDefaultScreen": "Tela padrão", + "ConfirmEndPlayerSession": "Deseja realmente desligar o Emby em {0}?", + "Yesterday": "Ontem", + "Yes": "Sim", + "No": "Não", + "HeaderScanLibraryFiles": "Rastrear Arquivos da Biblioteca", + "LiveTV": "TV ao Vivo", + "Schedule": "Agendar", + "Recordings": "Gravações", + "ScanForNewAndUpdatedFiles": "Rastrear por arquivos novos e atualizados", + "NewVersionOfXAvailableForY": "{0} está Disponível para {1}", + "DirectStreamHelp1": "A mídia é compatível com o dispositivo, independente da resolução e tipo de mídia (H.264, AC3, etc.), mas está em um contaminar incompatível (.mkv, .avi, .wmv, etc.). O vídeo será reempacotado em tempo real antes de transmitir para o dispositivo.", + "DirectStreamHelp2": "A Transmissão direta de um arquivo usa pouco processamento sem perda de qualidade do vídeo.", + "MediaIsBeingConverted": "A mídia está sendo convertida para um formato que é compatível com o dispositivo que reproduz a mídia.", + "StatsForNerds": "Estatísticas para Nerds", + "HeaderHardwareAcceleratedDecoding": "Decodificação Acelerada por Hardware", + "HeaderHardwareAcceleratedEncoding": "Codificação Acelerada por Hardware", + "HeaderDirectPlay": "Reprodução Direta", + "DirectPlaying": "Reprodução direta", + "DirectStreaming": "Streaming direta", + "Transcode": "Transcodificação", + "Transcoding": "Transcodificação", + "ContainerBitrateExceedsLimit": "Reduzindo a taxa de bits devido às definições de qualidade", + "VideoCodecNotSupported": "Convertendo o vídeo para um codec compatível", + "AudioCodecNotSupported": "Convertendo o áudio para um codec compatível", + "SubtitleCodecNotSupported": "Convertendo legendas diretamente no vídeo", + "DirectPlayError": "Recuperando do erro de reprodução", + "ContainerNotSupported": "Convertendo para um container compatível", + "VideoLevelNotSupported": "Convertendo para um nível de vídeo compatível", + "AudioBitrateNotSupported": "Convertendo para um nível de áudio compatível", + "AudioChannelsNotSupported": "Convertendo para um número de canais de áudio compatível", + "VideoResolutionNotSupported": "Convertendo para uma resolução de vídeo compatível", + "AudioProfileNotSupported": "Convertendo para um perfil de áudio compatível", + "AudioSampleRateNotSupported": "Convertendo para uma taxa de sample de áudio compatível", + "AnamorphicVideoNotSupported": "Vídeo anamórfico não suportado", + "InterlacedVideoNotSupported": "Desentrelaçando o vídeo", + "SecondaryAudioNotSupported": "Selecionando faixa de áudio secundária", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "Ocorreu um erro ao remover a conta do Emby Connect. Por favor, verifique se possui conexão com a internet e tente novamente.", + "HeaderEmbyAccountRemoved": "Conta do Emby Removida", + "MessageEmbyAccontRemoved": "A conta do Emby foi removida para este usuário", + "HeaderInvitationSent": "Convite Enviado", + "Offline": "Offline", + "HeaderSignUp": "Inscrever-se", + "ServerDownloadMessage": "Para baixar e instalar o Servidor Emby gratuitamente visite {0}", + "ServerDownloadMessageWithoutLink": "Para baixar e instalar o Servidor Emby gratuitamente visite o website do Emby.", + "MessageInvitationSentToUser": "Um email foi enviado para {0}, convidando-os para aceitar seu convite.", + "MessageInvitationSentToNewUser": "Um email foi enviado para {0}, convidando-os a se registrarem no Emby.", + "GuestUserNotFound": "Usuário não encontrado. Por favor, verifique que o nome esteja correto e tente novamente, ou tente digitar o endereço de email deles.", + "ErrorReachingEmbyConnect": "Ocorreu um erro ao acessar o servidor do Emby Connect. Por favor, verifique se possui uma conexão com a internet e tente novamente.", + "ErrorAddingEmbyConnectAccount1": "Ocorreu um erro ao adicionar a conta do Emby Connect. Você criou uma conta do Emby? Registra-se em {0}.", + "ErrorAddingEmbyConnectAccount2": "Se ainda tiver problemas, por favor envie uma email para {0} a partir do endereço de email usado na conta do Emby.", + "ErrorAddingGuestAccount1": "Ocorreu um erro ao adicionar a conta do Emby Connect. Os seus convidados criaram uma conta do Emby? Eles podem registrar-se em {0}.", + "ErrorAddingGuestAccount2": "Se ainda tiver problemas, por favor envie uma email para {0} e inclua seu endereço de email, assim como os deles.", + "MessageEmbyAccountAdded": "A conta do Emby foi adicionada para este usuário.", + "MessagePendingEmbyAccountAdded": "A conta do Emby foi adicionada para este usuário. Um email será enviado para o dono da conta. O convite precisará ser confirmado clicando no link dentro do email.", + "HeaderEmbyAccountAdded": "Conta do Emby Adicionada", + "Skip": "Ignorar", + "HeaderAdditionalParts": "Partes Adicionais", + "ButtonGenerateNewPin": "Gerar Novo Pin", + "ConnectLoginHelp1": "Com o Emby Connect você pode facilmente acessar seu Servidor Emby onde estiver e compartilhar servidores com sua família e amigos.", + "CreatePinErrorMessage": "Ocorreu um erro ao criar um código pin. Por favor, clique Gerar Novo Pin para tentar novamente.", + "PinExpiredMessage": "O código pin expirou. Por favor, clique Gerar Novo Pin para tentar novamente.", + "ConnectPinCodeHeader": "Para assinar o Emby Connect, use um dispositivo móvel ou computador, visite {0} e digite o seguinte código pin:", + "LabelSubtitlePlaybackMode": "Modo de legendas", + "ErrorDeletingItem": "Ocorreu um erro ao excluir o item do Servidor Emby. Por favor, verifique se o Servidor Emby possui acesso de gravação na pasta de mídia e tente novamente,", + "NoSubtitles": "Sem Legenda", + "Default": "Padrão", + "Absolute": "Absoluto", + "Smart": "Inteligente", + "Small": "Pequena", + "Smaller": "Menor", + "Medium": "Média", + "Large": "Grande", + "Larger": "Maior", + "ExtraLarge": "Extra grande", + "ExtraSmall": "Muito pequeno", + "Forced": "Forçada", + "External": "Externo", + "HeaderEmbeddedTitle": "Título Embutido", + "OnlyForcedSubtitles": "Apenas legendas forçadas", + "AlwaysPlaySubtitles": "Sempre reproduzir legendas", + "DefaultSubtitlesHelp": "Legendas são carregadas com base nas configurações padrão e de legendas forçadas nos metadados embutidos. As preferências de idioma são consideradas quando existem múltiplas opções disponíveis.", + "SmartSubtitlesHelp": "As legendas que combinarem com a preferência do idioma serão carregadas quando o áudio estiver em um idioma estrangeiro.", + "HeaderSubtitleSettings": "Ajustes de Legenda", + "HeaderSubtitleAppearance": "Aparência da Legenda", + "OnlyForcedSubtitlesHelp": "Apenas legendas marcadas como forçadas serão carregadas.", + "AutoSelectHearingImpairedHelp": "As legendas que correspondem à preferência de idioma serão carregadas, com preferência para faixas marcadas como deficientes auditivos (SDH).", + "AlwaysPlaySubtitlesHelp": "As legendas que combinarem com a preferência de idioma serão carregadas independente do idioma do áudio.", + "NoSubtitlesHelp": "Legendas não serão carregadas por padrão. Elas podem ser carregadas manualmente durante a reprodução.", + "LabelPreferredSubtitleLanguage": "Idioma de legendas preferido", + "LabelTextSize": "Tamanho do texto", + "TheseSettingsAffectSubtitlesOnThisDevice": "Estes ajustes afetarão as legendas neste dispositivo", + "LabelDropShadow": "Sombra", + "LabelTextBackgroundColor": "Cor de fundo do texto", + "LabelWindowBackgroundColor": "Cor de fundo do texto", + "LabelFont": "Fonte", + "LabelTextColor": "Cor do texto", + "LabelBackgroundColor": "Cor de fundo", + "LabelBackgroundOpacity": "Opacidade do fundo", + "Raised": "Levantada", + "Depressed": "Deprimido", + "Uniform": "Uniforme", + "DropShadow": "Sombra", + "SmallCaps": "Maiúsculas", + "SubtitleAppearanceSettingsDisclaimer": "Estes ajustes não serão aplicados às legendas gráficas (PGS, DVD, etc) ou às legendas que têm seus próprios estilos embutidos (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Esperando por Wifi", + "WifiRequiredToDownload": "É necessária uma conexão Wifi para continuar a transferir.", + "DownloadOnlyOnWifi": "Download apenas no Wifi", + "LabelMusicDownloadQuality": "Qualidade do download de música", + "MusicDownloadQualityHelp": "Arquivos de áudio com uma taxa de bits mais alta serão convertidos pelo Servidor Emby. Selecione um valor mais alto para uma melhor qualidade ou um valor mais baixo para conservar o espaço do armazenamento local.", + "HeaderDownloadSettings": "Configurações de Download", + "LabelDownloadLocation": "Local do download", + "BrowseForFolder": "ExplorarPasta", + "Unlimited": "Ilimitado", + "NoLimit": "Sem limite", + "Hide": "Ocultar", + "HeaderKeepWatching": "Continuar Assistindo", + "HeaderNextEpisode": "Próximo Episódio", + "AudioBitDepthNotSupported": "Convertendo para uma profundidade de bit de áudio compatível", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Convertendo para um perfil de vídeo compatível", + "VideoFramerateNotSupported": "Convertendo para uma taxa de frames de vídeo compatível", + "VideoBitDepthNotSupported": "Convertendo para uma profundidade de bit de vídeo compatível", + "RefFramesNotSupported": "Convertendo para números de frames de referência de vídeo compatíveis", + "ErrorConnectServerUnreachable": "Ocorreu um erro ao executar a operação solicitada. Seu servidor não pode contactar nosso Emby Connect Server em {0}. Por favor, verifique se seu servidor possui uma conexão de internet ativa e se as comunicações estão liberadas pelo firewall ou software de segurança instalados.", + "HeaderStopRecording": "Parar Gravação", + "ManageRecording": "Gerenciar gravação", + "LabelDropImageHere": "Arraste e solte a imagem aqui ou clique para selecionar uma imagem a ser carregada.", + "MessageFileReadError": "Ocorreu um erro ao ler o arquivo. Por favor, tente novamente.", + "Browse": "Navegar", + "HeaderUploadImage": "Carregar Imagem", + "HeaderAddUpdateImage": "Adicionar/Atualizar Imagem", + "HeaderShowFields": "Exibir Campos", + "LabelView": "Visualizar", + "LabelImageType": "Tipo de imagem", + "Upload": "Carregar", + "Primary": "Capa", + "PrimaryImageBlur": "Desfoque de imagem primária", + "Art": "Arte", + "Backdrop": "Imagem de Fundo", + "Banner": "Banner", + "Box": "Caixa", + "BoxRear": "Caixa (Traseira)", + "Disc": "Disco", + "Logo": "Logo", + "LogoDark": "Logo (Versão Escura)", + "LogoLight": "Logo (Versão Clara)", + "LogoLightColor": "Logo (Claro com Cores)", + "Menu": "Menu", + "Screenshot": "Imagem da tela", + "Thumb": "Ícone", + "HeaderAudioSettings": "Ajustes de Áudio", + "LabelAudioLanguagePreference": "Áudio preferido para exibição", + "LabelPlayDefaultAudioTrack": "Reproduzir a faixa de áudio padrão, independente do idioma", + "HeaderVideoQuality": "Qualidade do Vídeo", + "CinemaModeConfigurationHelp": "O Intros do Cinema traz a experiência do cinema diretamente para a sua sala, possibilitando reproduzir trailers e introduções personalizadas antes do filme principal.", + "ShowUpNextPreview": "Mostrar próxima visualização", + "ShowUpNextPreviewHelp": "Mostrar informações para o próximo item próximo ao final do atual.", + "PlayNextEpisodeAutomatically": "Reproduzir próximo episódio automaticamente", + "LabelMaxChromecastBitrate": "Qualidade para streaming do chromecast", + "LabelSkipBackLength": "Tamanho do intervalo para retroceder", + "LabelSkipForwardLength": "Tamanho do intervalo para avançar", + "EnableCinemaMode": "Ativar Intros do Cinema", + "LabelInternetQuality": "Qualidade de streaming remoto", + "LabelCellularQuality": "Qualidade de streaming remoto (celular)", + "HeaderMusicQuality": "Qualidade da Música:", + "LabelHomeNetworkQuality": "Qualidade de streaming local", + "HeaderLatestMedia": "Mídias Recentes", + "HeaderRestartingEmbyServer": "Reiniciando o Servidor Emby", + "RestartPleaseWaitMessage": "Por favor, aguarde enquanto o Servidor Emby reinicia. Isto pode levar um ou dois minutos.", + "HeaderPlayNext": "Reproduzir Próximo", + "AutoBasedOnLanguageSetting": "Automático (baseado na configuração do dispositivo)", + "SameAsMainTheme": "Igual ao tema principal", + "LabelDateTimeLocale": "Hora local", + "Genre": "Gênero", + "DirectorValue": "Diretor: {0}", + "DirectorsValue": "Diretores: {0}", + "GenreValue": "Gênero: {0}", + "GenresValue": "Gêneros: {0}", + "TagsValue": "Tags: {0}", + "Off": "Desligado", + "Title": "Título", + "Year": "Ano", + "Filter": "Filtro", + "Filters": "Filtros", + "Unplayed": "Não Reproduzido", + "LabelTVHomeScreen": "Tela início do modo TV", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Agrupar Por", + "HeaderMediaType": "Tipo de Mídia", + "GroupBySeries": "Agrupar por séries", + "HeaderVideoType": "Tipo de Vídeo", + "HeaderSeriesStatus": "Status das Séries", + "Features": "Recursos", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Músicas Tema", + "ThemeVideos": "Vídeos Tema", + "HeaderFavoriteMovies": "Filmes Favoritos", + "HeaderFavoritePhotos": "Fotos Favoritas", + "HeaderFavoriteShows": "Séries Favoritas", + "HeaderFavoriteEpisodes": "Episódios Favoritos", + "HeaderFavoriteVideos": "Vídeos Favoritos", + "HeaderFavoriteMusicVideos": "Vídeos de Música Favoritos", + "HeaderFavoriteGames": "Jogos Favoritos", + "HeaderFavoriteArtists": "Artistas Favoritos", + "HeaderFavoriteAlbums": "Álbuns Favoritos", + "HeaderFavoriteSongs": "Músicas Favoritas", + "HeaderFavoriteAuthors": "Autores Favoritos", + "HeaderFavoriteAudioBooks": "Livros de Áudio Favoritos", + "Ascending": "Ascendente", + "Descending": "Descendente", + "HeaderColorPrimaries": "Cores primárias", + "HeaderColorSpace": "Espaço da cor", + "HeaderColorTransfer": "Transferência da cor", + "HeaderVideoRange": "Faixa de vídeo", + "SeriesDisplayOrderHelp": "Ordenar episódios por data de exibição, ordem de dvd ou números absolutos.", + "LabelVerticalPositionFromBottom": "Posição vertical (a partir da parte de baixo)", + "HeaderFavoritePeople": "Pessoas Favoritas", + "MultiSelect": "Multi-Seleção", + "HeaderSignOut": "Sair", + "HeaderSelectServer": "Selecionar Servidor", + "HeaderChangeServer": "Alterar Servidor", + "HeaderChangeUser": "Mudar Usuário", + "HeaderAppSettings": "Ajustes do App", + "HeaderLoginSettings": "Ajustes do Login", + "LabelRememberLogin": "Lembrar login", + "LabelAutomaticallySignOut": "Sair automaticamente", + "BetaTesterMessage": "Obrigado por ser um beta tester do Emby! Por favor, deixe seu feedback na {0}Área de Testes da Comunidade Emby{1}.", + "HardwareAccelerated": "Acelerado por hardware", + "Software": "Software", + "Metadata": "Metadados", + "HeaderMediaInfo": "Informações da Mídia", + "Locked": "Bloqueada", + "HeaderSplitVersionsApart": "Separar Versões", + "Any": "Qualquer", + "Admin": "Admin", + "HeaderReadMore": "Leia mais", + "CustomRatingHelp": "Um indicação personalizada é usada para avaliação do controle dos pais mas não é exibida. O campo de indicação dos pais é exibida", + "KeepUpToHelp": "Gravações que excedam o limite serão excluídas quando a nova gravação começar. As gravações mais antigas serão excluídas primeiro, pela data de sua adição.", + "NoItemsMatchingFound": "Nenhum item encontrado segundo o critério de busca.", + "TwoSearchCharsRequired": "Digite pelo menos dois caracteres de pesquisa.", + "PreventPlaybackContinuing": "Evite que a reprodução continue indefinidamente pedindo uma intervenção do usuário periodicamente.", + "PromptStillWatching": "Ativar \"Ainda está assistindo?\"", + "HeaderMissingMetadata": "Metadados Faltando", + "HeaderIncludedIn": "Incluído Em", + "EmbyConnectUserAlreadyLinked": "O usuário do Emby Connect já está vinculado a outro usuário neste servidor.", + "VideoFilesWillBeConvertedTo": "Vídeos convertidos serão salvos como {0}.", + "VideoWillBeConvertedTo": "A transmissão de vídeo será convertida para {0}, ou copiada do arquivo original se já está {0} e a qualidade estiver de acordo as opções de conversão", + "VideoWillBeConvertedToOrCopied": "A transmissão de vídeo será convertida para {0}, ou copiada do arquivo original se é qualquer uma de ({1}) e a qualidade estiver de acordo as opções de conversão.", + "AudioWillBeConvertedTo": "A transmissão de áudio será convertida para {0}, ou copiada do arquivo original se já está {0} e a qualidade estiver de acordo as opções de conversão", + "AudioWillBeConvertedToOrCopied": "A transmissão de vídeo será convertida para {0}, ou copiada do arquivo original se é qualquer uma de ({1}) e a qualidade estiver de acordo as opções de conversão.", + "HeaderSpecialKeys": "Teclas especiais", + "FollowingSpecialKeys": "As seguintes teclas especiais são suportadas na maioria dos teclados e controles remotos:", + "HeaderDeleteSeries": "Remover Seriados", + "HeaderDeleteLastPlayedEpisode": "Remover Último Episódio Tocado", + "HeaderConnectingToServer": "Conectando ao Servidor", + "ServerNameValue": "Nome do servidor: {0}", + "DomainValue": "Domínio: {0}", + "RatedValue": "Classificado {0}", + "LocalServerRedirectMessage": "Você será redirecionado ao domínio operado pelo administrador do servidor que você escolheu conectar-se:", + "AllMediaOwnedHosted": "Todas as mídias estão hospedadas e gerenciadas pelo dono de {0}.", + "EnableResolutionSwitching": "Acertar a resolução do vídeo", + "EnableResolutionSwitchingHelp": "Isso permite que o Emby altere a resolução para o mesmo valor em que o vídeo foi codificado antes de iniciar a reprodução. Isso pode ajudar a minimizar a quantidade de travadas/tremidas que você pode ver ao reproduzir vídeos que não combinam bem.", + "EnableDisplayRefreshRateSwitching": "Ativar troca de taxa de atualização da tela", + "EnableDisplayRefreshRateSwitchingHelp": "Isso permite que Emby mude a taxa de atualização da tela para o mesmo valor (ou múltiplo) da taxa de quadros em que o vídeo foi codificado antes de iniciar a reprodução. Isso pode ajudar a minimizar a quantidade de travadas/tremidas que você pode ver ao reproduzir vídeos que não combinam bem.", + "RememberSelectedAudioTracks": "Lembrar as seleções das faixas de áudio", + "RememberSelectedSubtitleTracks": "Lembrar as seleções das faixas de legendas", + "RememberSelectedSubtitleTracksHelp": "As seleções das faixas de legendas serão lembradas por vídeo e reaplicadas quando reproduzir o mesmo vídeo novamente.", + "RememberSelectedAudioTracksHelp": "As seleções das faixas de áudio serão lembradas por vídeo e reaplicadas quando reproduzir o mesmo vídeo novamente.", + "ClearSavedTrackSelections": "Limpar seleções de faixas salvas", + "HeaderClearTrackSelections": "Limpar Seleções de Faixas Salvas", + "QuestionClearSavedTracks": "Limpar todas as seleções de faixas salvas?", + "LabelChannelTags": "Tags de canal", + "AfterThisPlaysConfirmation": "Depois desta reprodução, você gostaria de manter a reprodução ou prefere retirar a música que colocou previamente na fila?", + "Keep": "Manter", + "Clear": "Retirar", + "HeaderClearFilters": "Limpar Filtros", + "HeaderSearchForImages": "Buscar por Imagens", + "HeaderSearchNewImage": "Buscar Nova Imagem", + "HeaderSearchForAnImage": "Buscar por uma Imagem", + "DragDropToReorder": "Arrastar e Soltar para Reordenar", + "HeaderAddImageFromUrl": "Adicionar Imagem de uma URL", + "HeaderSetImageFromUrl": "Definir Imagem de uma URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Número do canal", + "LabelGuideDataChannel": "Canal de dados do guia", + "GuideDataSource": "Fonte de Dados do Guia", + "HeaderCopyToClipboard": "Copiar para a Área de Transferência", + "TimeRemainingValue": "{0} remanescentes", + "LabelResumeRewindSeconds": "Quando retomar, automaticamente voltar", + "ResumeRewindSecondsHelp": "Isso pode ajudá-lo a lembrar de onde parou. Isso se aplica à retomada inicial e não a cada pausa individual durante a reprodução.", + "HeaderSavePlayQueueToPlaylist": "Salvar a Fila de Reprodução para a Playlist", + "EnableLogoImagesAsTitle": "Exibir imagens de logotipo como títulos nas telas de detalhes", + "EnableLogoImagesAsTitleHelp": "Quando disponíveis, imagens de logotipo podem ser usadas como texto do título em vídeos, séries e outras telas de detalhes. O título será revertido a texto quando uma imagem de logotipo não estiver disponível", + "LabelNowPlayingAudioBackgroundStyle": "Estilo da tela de fundo de Reproduzindo Agora em áudio", + "LabelNowPlayingVideoBackgroundStyle": "Estilo da tela de fundo de Reproduzindo Agora em vídeo", + "NowPlayingVideoBackgroundStyleHelp": "Determina o estilo de fundo quando está controlando remotamente a reprodução de vídeo em outro dispositivo", + "Rotation": "Rotação", + "Minutes": "Minutos", + "LabelMaxRecordingLength": "Tamanho máx da gravação", + "MaxRecordingLengthHelp": "Limitar gravações a uma quantidade específica de tempo, independente da duração da transmissão. Deixar 0 para não ter limite.", + "RemoteWAN": "Endereço (WAN) Remoto", + "HeaderLastConnectedTo": "Última Conexão Para", + "Version": "Versão", + "Keyword": "Palavra-chave", + "HeaderServerAddress": "Endereço do Servidor", + "HeaderSkipIntro": "Pular Introdução", + "HeaderCreateRecording": "Criar Gravação", + "HeaderAddRecording": "Adicionar Gravação", + "HeaderChannelAndTime": "Canal e Hora", + "LabelRecordProgramOrSeriesFrom": "Gravar um programa ou série de", + "LabelStartTime": "Hora inicial", + "LabelEndTime": "Hora final", + "LabelFrequency": "Frequência", + "Recurring": "Recorrente", + "Once": "Uma vez", + "Start": "Iniciar", + "Unpause": "Retomar", + "LabelIntroSkipMode": "Pular Intro", + "ShowSkipIntroButton": "Exibir botão 'Pular Intro'", + "AutoSkipIntro": "Pular intros automaticamente", + "DisplayRatingInformationOnVideoPlaybackStart": "Exibir informações de classificação no início da reprodução de vídeo", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "As informações de classificação serão exibidas brevemente quando a reprodução do vídeo começar.", + "IntroSkipModeHelp": "Exibir o botão 'Pular Intro' ou pular intros de episódios automaticamente nos Servidores Emby que detectarem marcadores de intro. A detecção de intro pode ser ativada nas opções da biblioteca do Servidor Emby.", + "EnableHomeScreenFocusPreview": "Use um layout na tela inicial que mostre uma visualização detalhada do item selecionado", + "EnableHomeScreenFocusPreviewHelp": "Isso pode não funcionar bem se a tela inicial contiver uma mistura de diferentes tipos de mídia.", + "LabelHideMediaTransportButtons": "Ocultar botões de transporte do reprodutor de vídeos", + "HideMediaTransportButtonsHelp": "Criar uma interface de reprodução na tela mais simples ocultando botões básicos de transporte, como avançar, voltar e pausar. Você ainda poderá usar essas funções utilizando as teclas de seta e OK/Enter. Auto ocultará os botões de transporte quando nenhum uso do mouse for detectado no aplicativo.", + "ImageSizeHelp": "Defina seu tamanho preferido de grades de imagem.", + "LabelImageSize": "Tamanho da imagem", + "ThisImageIsOnlyPreview": "Esta imagem é apenas uma visualização que veio do mecanismo de pesquisa de metadados. A imagem real que o Emby Server baixa pode ser diferente e dependerá das opções que você configurou na configuração da biblioteca Emby.", + "ResultsRangeValue": "{0} a {1} de {2}", + "NotificationsDescription": "Configure as notificações para se manter informado sobre eventos importantes no seu Emby Server.", + "DeleteEmbyConnectAccount": "Excluir a Conta do Emby Connect", + "DeleteEmbyConnectAccountHelp": "Para excluir sua conta do Emby Connect, por favor entre na {0}Emby Community{1} em {2}. Depois que entrar, clique no nome de seu usuário no canto direito no topo, depois clique em Configurações da Conta, por fim clique em Excluir Minha Conta.", + "KeepPlayingInBackground": "Continuar jogando em segundo plano", + "LabelVideoBackBehavior": "Comportamento do botão voltar do reprodutor de vídeo", + "HeaderViewLyrics": "Ver Letras", + "HeaderViewMissingEpisodes": "Ver Episódios Faltantes", + "HeaderMissingEpisodes": "Episódios Faltantes", + "HeaderManageAccess": "Gerenciar Acesso", + "HeaderManageCollaboration": "Gerenciar Colaboração", + "HeaderLeaveCollaboration": "Deixar Colaboração", + "HeaderRemoveFromLibrary": "Remover da Biblioteca", + "RemoveSharedItemConfirmation": "Deseja realmente remover este item de sua biblioteca? Para ter o item novamente o dono precisará dar-lhe acesso novamente.", + "SubtitlesDownloaded": "Legendas Baixadas", + "HeaderMakePrivate": "Tornar Privado", + "HeaderMakePublic": "Tornar Público", + "MakePublicDescription": "Todos os usuários poderão visualizar este item. Os usuários podem receber acesso para editar.", + "MakePrivateDescription": "Os usuários ainda podem receber acesso individualmente.", + "Private": "Privado", + "Public": "Público", + "Collaborative": "Colaborativo", + "PreferredShowDisplay": "Exibição preferida de Série de TV", + "ShowAllEpisodesAllSeasons": "Exibir todos os episódios de todas as temporadas juntos", + "ShowAllEpisodesSingleSeason": "Exibir todos os episódios de uma única temporada", + "ShowSeasonFolders": "Sempre exibir pastas das temporadas", + "HeaderAddAgain": "Adicionar Novamente", + "UpNext": "Próximo", + "ItemsAlreadyInPlaylist": "Alguns destes itens já estão em sua playlist.", + "ItemAlreadyInPlaylist": "Este item já está em sua playlist.", + "HeaderPlayChannel": "Reproduzir Canal", + "LabelScreenOrientationDuringVideo": "Orientação na tela durante reprodução do vídeo", + "UseDeviceSetting": "Usar configurações do dispositivo", + "LockToLandscape": "Bloquear para paisagem", + "UsernameForFolderHelp": "O nome de usuário necessário para acessar esta pasta na sua rede (caso aplicável)", + "PasswordForFolderHelp": "A senha necessária para acessar esta pasta na sua rede (caso aplicável)", + "ShowMediaInfoOnDetailScreens": "Exibir info total da mídia no rodapé das telas de detalhe de áudio e vídeo.", + "ForgotPasswordNoUserFound": "Nenhum usuário foi encontrado com o nome digitado. Por favor, tente novamente ou deixe em branco para redefinir a senha de todos os usuários neste servidor.", + "Silver": "Prata", + "DimGray": "Cinza Escuro", + "DarkGray": "Cinza Escuro", + "LightGray": "Cinza Claro", + "Black": "Preto", + "Blue": "Azul", + "Cyan": "Ciano", + "Gray": "Cinza", + "Green": "Verde", + "Lime": "Lima", + "Magenta": "Magenta", + "Orange": "Laranja", + "Pink": "Rosa", + "Red": "Vermelho", + "Yellow": "Amarelo", + "White": "Branco", + "Purple": "Roxo", + "RecentlyReleasedMovies": "Filmes Lançados Recentemente", + "RecentlyReleasedEpisodes": "Episódios Lançados Recentemente", + "DolbyProfile": "Perfil Dolby", + "IpAddress": "Endereço IP", + "VideoType": "Tipo de Vídeo", + "HidePlayedMediaFrom": "Ocultar Mídia Reproduzida De", + "BottomEdgePosition": "Posição da Borda Inferior", + "VerticalPositionFromBottomScreen": "Definir a posição vertical das legendas relativa à parte de baixo da tela.", + "TopEdgePosition": "Posição Superior", + "TopEdgePositionHelp": "Definir a posição vertical mais alta das legendas relativa ao topo da tela. Isto é usado quando as legendas contêm instruções de posicionamento para serem posicionadas no topo.", + "HeaderSubtitlePosition": "Posição da Legenda", + "TitleProfilePin": "PIN do Perfil", + "ProfilePinConfirm": "PIN do Perfil (confirmar)", + "SaveProfilePin": "Salvar Pin", + "ProfilePinDescription": "Crie um pin opcional para ser solicitado sempre que você retornar a um aplicativo Emby em um dispositivo no qual você já fez login. Isso é útil se você tiver dispositivos compartilhados por vários usuários. Você pode optar por ativá-lo seletivamente em cada dispositivo, conforme necessário.", + "TitleNewEpisodes": "Novos Episódios", + "EnterYourPinToContinue": "Digite seu PIN para continuar", + "YourPinMustBe": "Seu PIN deve conter {0} dígitos.", + "ForgotPin": "Esqueceu o PIN?", + "RequireEnteringPinToReturn": "Solicitar o PIN do meu perfil quando retornar a este app.", + "RequireEnteringPinToReturnQuestion": "Devemos solicitar o PIN do seu perfil sempre que você retornar a este aplicativo? Se este dispositivo for compartilhado por vários usuários, o PIN do seu perfil pode ajudar a impedir que outros usuários acessem seus dados.", + "RequireEnteringPinToReturnHelp": "É útil se este dispositivo for compartilhado por vários usuários.", + "WrongPinPleaseTryAgain": "Ooops, PIN incorreto. Por favor, tente novamente.", + "ProfilePinIsOn": "O PIN do perfil está ativado.", + "IfTryingToConnectToHttp": "Se você estiver tentando se conectar ao seu Emby Server usando um endereço http, seu navegador pode não estar permitindo por requisitos de HTTPS. Você pode tentar o seguinte:", + "SetupHttpsForYourServer": "Configure {0}HTTPS para seu Emby Server{1} assim você pode conectar usando HTTPS.", + "TitleUnableToReachServer": "Não Foi Possível Encontrar o Servidor", + "TitleUnableToReachName": "Não Foi Possível Encontrar {0}", + "HearingImpaired": "Deficientes Auditivos", + "SignIntoServerName": "Entrar em {0}", + "About": "Sobre", + "Specials": "Especiais", + "NSettings": "{0} Ajustes", + "NPreferences": "{0} Preferências", + "DetailScreenOptions": "Telas de Detalhes", + "LabelGenreDisplayLimit": "Limite de exibição de gênero", + "GenreDisplayLimitHelp": "Limitar o número de gêneros exibidos no topo das telas de detalhes do item.", + "GenreDisplayLimitForListsHelp": "Limitar o número de gêneros exibidos no topo das telas de detalhes de playlist, coletânea e artista.", + "LabelGenreDisplayLimitForLists": "Limite de exibição de gênero para listas", + "ShowPosterOnDetails": "Mostrar um poster na tela de detalhes", + "ShowPosterOnDetailsHelp": "Optar por mostrar um pôster nas telas de detalhes do vídeo ou oculte-o para obter uma aparência mais minimalista que enfatize o fundo. Esta configuração não é usada em layouts de telas menores. Alguns tipos de itens irão ignorar esta configuração.", + "EnableAppLogging": "Ativar log do app", + "EnableAppLoggingHelp": "O log pode degradar a performance do app e deve ser ativado somente quando quiser investigar algum problema. As alterações necessitam do reinício do app.", + "LabelSlideshowInterval": "Tempo de apresentação de fotos por slide", + "TVChannelImageEditorHelp": "Várias versões de logotipo são suportadas. Os aplicativos Emby escolherão automaticamente o apropriado dependendo do tema atual.", + "PlaySlideshow": "Reproduzir Apresentação de Slides", + "CheckForExistingEpisodesInAllLibraries": "Verificar episódios existentes em todas as Bibliotecas", + "GroupNotificationsBySeriesOrAlbum": "Agrupar notificações por séries e álbuns", + "ThemeSettings": "Configurações do Tema", + "FollowingActivityWillBeDisrupted": "A atividade a seguir será interrompida e poderá exigir intervenção manual para reiniciar:", + "OneActivePlaybackSession": "1 Sessão de Reprodução Ativa", + "NumActivePlaybackSessions": "{0} Sessões de Reprodução Ativas", + "OneActiveRecording": "1 Gravação Ativa", + "NumActiveRecordings": "{0} Gravações Ativas", + "PlayFromLivePosition": "Reproduzir da posição ao vivo", + "PlayFromStartOfRecording": "Reproduzir a partir do início da gravação", + "ThisChannelIsActivelyRecording": "Este canal está gravando. Como gostaria de iniciar a reprodução?", + "ThemeSongVolume": "Volume da música do tema", + "HeaderForceConversionForFormats": "Forçar a conversão para os Formatos", + "ForceConversionForFormatsHelp": "Use isso para forçar a transcodificação ou remuxação do lado do servidor para formatos que não reproduzem muito bem neste dispositivo.", + "StartupBehavior": "Comportamento de inicialização", + "RememberLastUser": "Lembrar o último usuário", + "ShowLoginScreen": "Exibir a tela de login", + "SignInAsValue": "Entrar como {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Evite fazer o downmix de formatos surround não suportados para estéreo, fazendo com que o Emby Server os transcodifique para Dolby Digital.", + "HeaderPlaybackCorrection": "Correção de Reprodução", + "HeaderAttemptPlaybackCorrection": "Tentar a Correção de Reprodução", + "PlaybackCorrectionConfirm": "Tentar a correção de reprodução?", + "PlaybackCorrectionDescription": "O item atual está apresentando um problema de reprodução, como ausência de vídeo ou áudio? Esta ação tentará corrigir os problemas de reprodução usando a transcodificação do servidor para converter este arquivo em um formato mais amigável para streaming. Isso resultará em um aumento no consumo de recursos neste servidor Emby.", + "PlaybackCorrectionDescription2": "Você pode fazer isso até três vezes por vídeo, onde a remuxagem, a transcodificação de vídeo e a transcodificação de áudio são ativadas uma de cada vez.", + "HeaderAlbumsAsContributingArtist": "Álbuns como Artista Contribuidor", + "HeaderAlbumsAsComposer": "Álbuns como compositor", + "Duplicates": "Duplicados", + "HeaderSleepTimer": "Temporizador de Sono\n", + "AfterCurrentItem": "Depois do item atual", + "HeaderStopPlayback": "Parar Reprodução", + "TurnOffTimer": "Desligar temporizador", + "SleepTimerIsSet": "Seu temporizador de sono está definido", + "SleepTimerIsOff": "Seu temporizador de sono está desligado", + "LabelEnableRemoteControlTVMode": "Exibir funções de transmissão e controle remoto", + "EnableRemoteControlTVModeHelp": "Ative se você pretende usar este dispositivo para enviar mídia para outros dispositivos.", + "ShowOnScreenControls": "Exibir controles na tela", + "LabelVideoScreenUpAction": "Ação de tela de vídeo", + "VideoScreenUpActionHelp": "Selecione a ação a ser executada ao pressionar a tecla para cima na tela do vídeo. Isso se aplica quando nenhum controle na tela estiver visível no momento. Quando os controles já estiverem visíveis, a tecla para cima será usada para navegação.", + "LabelVideoPlayerLongPressAction": "Ação de pressão longa no player de vídeo", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Selecione qual função ou menu será exibido ao pressionar longamente o botão OK durante a reprodução de um vídeo. Isso só entra em vigor quando os controles de vídeo estão ocultos ou a barra de busca está em foco.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "ForgetThisServer": "Forget This Server", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/pt-PT.json b/modules/common/strings/pt-PT.json new file mode 100644 index 0000000..739a573 --- /dev/null +++ b/modules/common/strings/pt-PT.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "O Emby foi projetado para o ajudar a gerir a sua biblioteca de multimédia pessoal, tais como os seus vídeos e fotos pessoais. Por favor, leia os nossos {0}termos de utilização{1}. O uso de qualquer software Emby implica a aceitação desses termos.", + "MessageUnableToConnectToServer": "Não nos foi possível ligar ao servidor selecionado agora. Por favor, verifique se ele está a ser executado e tente novamente.", + "EmbyIntroMessage": "Com o Emby você pode facilmente fazer streaming de vídeos, músicas e fotos do Servidor Emby para smartphones, tablets e outros dispositivos.", + "HeaderSignInWithConnect": "Entrar no Emby Connect", + "HeaderWelcomeToEmby": "Bem vindo ao Emby", + "HeaderNewUsers": "Novos Utilizadores", + "HeaderPleaseSignIn": "Por favor Inicie Sessão", + "MessageInvalidUser": "Nome de utilizador ou senha inválidos. Por favor, tente novamente.", + "MessageUnlockAppWithPurchaseOrSupporter": "Desbloqueie esse recurso com uma pequena compra única, ou com uma subscrição ativa do Emby Premiere.", + "MessageUnlockAppWithSupporter": "Desbloqueie este recurso com uma subscrição ativa do Emby Premiere.", + "MessageToValidateSupporter": "Se você tem uma assinatura ativa do Emby Premiere, certifique-se de configurar o Emby Premiere no Menu Principal do Servidor Emby, que você pode acessar clicando em Emby Premiere no menu principal.", + "ValueSpecialEpisodeName": "Especial - {0}", + "HeaderSignIn": "Iniciar Sessão", + "Share": "Partilhar", + "Shared": "´Partilhado", + "Info": "Informação", + "Add": "Adicionar", + "Speed": "Velocidade", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Capítulos", + "Password": "Senha:", + "SavePassword": "Save Password", + "LabelPassword": "Senha:", + "HeaderResetPassword": "Reset Password", + "Series": "Séries", + "Preview": "Pré-visualizar", + "Submit": "Submeter", + "Never": "Nunca", + "Table": "Tabela", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Tipo de Palavra-Chave:", + "HeaderSelectColumns": "Selecionar colunas:", + "HeaderTopResults": "Top Resultados", + "HeaderPinSidebar": "Pin Barra Lateral", + "Collapse": "Colapsar", + "LabelBackgroundVideoPlayback": "Reprodução de vídeo em segundo plano:", + "BackgroundVideoPlaybackHelp": "A reprodução em segundo plano permite que o vídeo continue a ser reproduzido mesmo quando a tela está desligada.", + "AlwaysOn": "Sempre em", + "HeadphonesOrExternalSpeakersConnected": "Headphones ou colunas externas ligadas", + "HeaderKeyboardAndRemote": "Teclado e Comando", + "NoSelectedItemsSupportOperation": "Não há items seleccionados que suportem esta operação.", + "NoOperationsForSelectedItems": "Não há operações disponíveis para os items seleccionados.", + "UploadOnlyOnWifi": "Upload só com Wifi", + "HeaderFoldersToUpload": "Pastas para Upload", + "LabelPasswordConfirm": "Senha (confirmar):", + "HeaderMoveUpInOrder": "Mover para cima na Ordem", + "HeaderDownUpInOrder": "Mover para baixo na Ordem", + "LabelUsername": "Nome de Utilizador:", + "HeaderAddServer": "Adicionar Servidor", + "HeaderSubtitleOffset": "Offset das Legendas", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Continuar a Ver", + "RemoveThisTitleFromContinueWatching": "Continuar a ver", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Aumentar Offset das Legendas", + "HeaderDecreaseSubtitleOffset": "Diminuir Offset das Legendas", + "Close": "Fechar", + "HeaderSeeAll": "Ver todos", + "HeaderOpenInNewWindow": "Abrir numa Nova Janela", + "LabelEmail": "Email:", + "LabelHost": "Host:", + "LabelHostHelp": "192.168.1.100 ou https://meuservidor.com", + "LabelPort": "Porta:", + "Disabled": "Desativado", + "Uninstall": "Desinstalar", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Próximo: {0}", + "HeaderNextItem": "Próximo item", + "HeaderPreviousItem": "Item anterior", + "NoTrailersMessage": "Nenhum trailer encontrado. Para adicionar Trailers, instale o plug-in Trailer do {0} catálogo de plug-ins Emby {1}.", + "UninstallPluginConfirmation": "Tem a certeza que quer instalar este plugin?", + "HeaderUninstallPlugin": "Desinstalar Plugin", + "AreYouStillWatching": "Ainda está a ver?", + "LabelCurrentPassword": "Password actual:", + "LabelNewPassword": "Nova password:", + "LabelNewPasswordConfirm": "Confirmar nova password:", + "HeaderRemovePassword": "Remover Password", + "ServerUpdateNeeded": "Este Servidor Emby precisa ser atualizado. Para fazer download da versão mais recente, por favor visite {0}", + "MessageThankYouForConnectSignUp": "Obrigado por se inscrever no Emby Connect. Um e-mail será enviado para o seu endereço com instruções sobre como confirmar sua nova conta. Confirme por favor a conta e volte aqui para fazer login.", + "MessageThankYouForConnectSignUpNoValidation": "Obrigado por se ter registado no Emby Connect! Agora irá ser pedido para iniciar sessão com as suas informações do Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "A senha e a confirmação da senha devem coincidir.", + "ErrorMessageUsernameInUse": "O nome do utilizador já está em uso. Por favor, escolha um novo nome e tente novamente.", + "ErrorMessageEmailInUse": "O endereço de email já está em uso. Por favor insira um novo email e tente de novo, ou use a funcionalidade de recuperar a sua password.", + "HeaderUpcomingOnTV": "Próximos na TV ao Vivo", + "HeaderOtherShowings": "Outras Exibições", + "Showings": "Exibições", + "HeaderConnectToServer": "Ligar ao Servidor", + "ConnectToServerManually": "Ligar ao servidor manualmente", + "LabelEnterConnectUserNameHelp": "Este é o nome de utilizador ou email da sua conta online Emby.", + "HeaderSignInError": "Erro a Iniciar Sessão", + "HeaderManualLogin": "Início de Sessão Manual", + "PasswordResetConfirmation": "Tem certeza de que deseja redefinir a password?", + "ContactAdminToResetPassword": "Por favor contactar o seu administrador de sistema para fazer reset da sua password,", + "ForgotPasswordInNetworkRequired": "Por favor tente novamente na sua rede local para iniciar o processo de reset da password.", + "ForgotPasswordFileCreated": "O seguinte ficheiro foi adicionado ao servidor e contém instruções de como proceder:", + "ForgotPasswordFileExpiration": "O reset pin irá expirar às {0}.", + "InvalidForgotPasswordPin": "Pin inválido ou expirado. Por favor tente novamente.", + "PasswordResetForUsers": "As passwords foram removidas para os seguintes users. Para fazer o login, entre com uma password em branco.", + "HeaderForgotPassword": "Esqueceu a senha", + "ForgotPasswordUsernameHelp": "Digite seu username, caso se lembre.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "Novo", + "Done": "Feito", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Desentrelaçamento", + "HeaderBurningInSubtitles": "A gravar nas legendas", + "Premiere": "Estreia", + "LabelPinCode": "Código Pin:", + "LabelLocalNetworkPinCode": "Código Pin da Rede Local:", + "LabelLocalNetworkPasswordMode": "Modo de login da rede local:", + "RequirePasswordInLocalNetwork": "Exige uma password na rede local", + "NoPasswordInLocalNetwork": "Não exige uma password na rede local", + "PinCodeInLocalNetwork": "Permitir um pin numérico na rede local", + "LocalNetworkPasswordModeHelp": "Selecione o método de login para dispositivos na mesma rede local que o seu Emby Server.", + "HeaderLocalNetworkAccess": "Acesso à Rede Local", + "Live": "Em Direto", + "Reset": "Reset", + "Repeat": "Repetir", + "Track": "Faixa", + "Tracks": "Faixas", + "HeaderCameraUpload": "Upload da Câmara", + "TrackCount": "{0} faixas", + "ItemCount": "{0} itens", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Música Mais Recente", + "HeaderLatestAudioBooks": "Últimos Audio Books", + "HeaderLatestDownloadedVideos": "Últimos Vídeos Descarregados", + "HeaderRecentlyPlayed": "Reproduzido Recentemente", + "Recent": "Recente", + "HeaderFrequentlyPlayed": "Reproduzido Frequentemente", + "HeaderMoreLikeThis": "Mais Como Isto", + "HeaderMoreLikeThisOnLiveTV": "Mais Como Isto na TV ao Vivo", + "OriginalAirDateValue": "Data Original de Lançamento: {0}", + "EndsAtValue": "Termina em {0}", + "Date": "Date", + "AirDate": "Data de Lançamento", + "Played": "Reproduzido", + "Daily": "Diariamente", + "Weekly": "Weekly", + "RequireHashMatch": "Requer uma correspondência exata", + "RequireHashMatchHelp": "A exigência de uma correspondência exata filtrará as legendas para incluir apenas aquelas que foram testadas com o seu arquivo de vídeo exato. Desmarcar isto aumentará o número de legendas correspondentes, mas também aumentará as hipóteses de texto com legendas fracas ou incorretas.", + "SearchForForcedSubtitlesOnly": "Somente legendas forçadas", + "SearchForForcedSubtitlesOnlyHelp": "A exigência de legendas forçadas limitará os resultados às legendas marcadas como tendo um idioma estrangeiro.", + "LastEpisodeDateAdded": "Última data do episódio adicionada", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate:", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Título do episódio", + "Audio": "Áudio", + "Video": "Vídeo", + "Subtitle": "Legenda", + "Image": "Imagem", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Codec do áudio:", + "LabelAudioLanguage": "Idioma áudio:", + "LabelSubtitleLanguage": "Idioma legenda:", + "LabelVideoCodec": "Codec do vídeo:", + "LabelSubtitleCodec": "Codec da legenda:", + "LabelParentalRating": "Classificação parental:", + "BecauseYouLikeValue": "Porque você gosta {0}", + "BecauseYouWatchedValue": "Porque viu {0}", + "DirectedByValue": "Realizado por {0}", + "StarringValue": "Aparece em {0}", + "Invitations": "Convites", + "ActorAsRole": "de {0}", + "ButtonOk": "Ok", + "GroupItemsIntoCollections": "Agrupar itens em coleções", + "GroupItemsIntoCollectionsHelp": "Agrupar itens com base nas coleções às quais foram adicionados. Ativar certos filtros ou ordens de classificação pode desativar esta opção automaticamente.", + "GroupItemsIntoTags": "Agrupar items em tags", + "GroupItemsIntoTagsHelp": "Agrupar itens em tags às quais foram adicionados. Ativar certos filtros ou ordens de classificação pode desativar esta opção automaticamente.", + "User": "User", + "Access": "Access", + "Users": "Users", + "Library": "Biblioteca", + "Devices": "Dispositivos", + "Cancel": "Cancelar", + "Restart": "Reiniciar", + "Shutdown": "Desligar", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notificações", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notificação enviada", + "DeleteNotificationConfirmation": "Tem a certeza que pretende eliminar esta notificação?", + "DeleteNotification": "Eliminar notificação", + "AddNotification": "Adicionar notificação", + "EditNotification": "Editar notificação", + "LimitUserEventsTo": "Limitar eventos de utilizador para:", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Sistemas", + "Server": "Servidor", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Reproduzir noutro dispositivo", + "HeaderConnectionHelp": "Ajuda da Ligação", + "AccessRestrictedTryAgainLater": "O acesso é atualmente restrito. Por favor, tente novamente mais tarde.", + "ButtonGotIt": "Entendi", + "RememberMe": "Lembrar-me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Gerir Servidor Emby", + "ShutdownServer": "Desligar o Servidor Emby", + "RestartServer": "Reiniciar o Servidor Emby", + "RecordingCancelled": "Gravação cancelada.", + "SeriesCancelled": "Série cancelada.", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Gravação agendada.", + "SeriesRecordingScheduled": "Gravação da Série marcada.", + "HeaderNewRecording": "Nova Gravação", + "HeaderWakeServer": "Acordar Servidor", + "AttemptingWakeServer": "A tentar acordar o servidor. Por favor aguarde...", + "WakeServerSuccess": "Sucesso!", + "HeaderCustomizeHomeScreen": "Personalizar Tela Inicial", + "WakeServerError": "Pacotes de Wake On LAN foram enviados para o seu servidor, mas não conseguimos ligar ao seu Servidor Emby. A sua máquina pode precisar de mais tempo para ser ativada ou o Servidor Emby pode não estar a funcionar ativamente na máquina.", + "Days": "Dias", + "Network": "Rede", + "Networks": "Redes", + "SortByValue": "Ordernar por {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Álbum de Fotos", + "Photos": "Fotos", + "HeaderAppearsOn": "Aparece Em", + "List": "Lista", + "HeaderRecordSeries": "Gravar Série", + "HeaderCinemaMode": "Introdução de Cinema", + "Conversions": "Conversões", + "Downloads": "Downloads", + "HeaderManageDownloads": "Gerir Downloads", + "InternalStorage": "Disco interno", + "ExternalStorage": "Disco externo", + "UploadToFollowingServers": "Upload para Servidores", + "UploadingNumItems": "Upload {0} de {1}", + "DownloadNumItems": "Download {0} of {1}", + "HeaderSampleRate": "Taxa de Amostra", + "HeaderReferenceFrames": "Frames de Referência", + "HeaderBitDepth": "Profundidade de Bits", + "HeaderPixelFormat": "Formato de Pixel", + "Profile": "Perfil", + "Bitrate": "Taxa de Bits", + "Expand": "Expandir", + "Container": "Container", + "Format": "Formato", + "Path": "Directoria", + "Size": "Tamanho", + "Resolution": "Resolução", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Taxa de Frames", + "Interlaced": "Entrelaçado", + "Anamorphic": "Anamórfico", + "Level": "Nível", + "Timestamp": "Timestamp", + "Language": "Idioma", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Dados Extra", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Conteúdo Offline", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Faça o download de conteúdo para seus dispositivos para facilmente lhes aceder offline.", + "LiveTvFeatureDescription": "Transmita TV ao Vivo para qualquer app Emby com um dispositivo sintonizador de TV compatível instalado no seu servidor Emby.", + "DvrFeatureDescription": "Agende gravações individuais de TV ao Vivo, gravações de séries e muito mais com o Emby DVR.", + "CinemaModeFeatureDescription": "Introduções de Cinema oferecem a verdadeira experiência de cinema com trailers e introduções personalizadas antes do filme principal.", + "HeaderFreeApps": "Aplicações Grátis para Emby", + "FreeAppsFeatureDescription": "Aproveite o acesso gratuito às aplicações Emby para os seus dispositivos.", + "HeaderBecomeProjectSupporter": "Obter o Emby Premiere", + "HeaderViewServerInfo": "Ver informações do Servidor", + "PlaybackTvModeRequiresEmbyPremiere": "A reprodução de media no modo TV requer uma assinatura ativa {0} do Emby Premiere {1}.", + "FeatureRequiresEmbyPremiere": "Este recurso requer uma subscrição ativa do Emby Premiere", + "HeaderConvertYourRecordings": "Converter as suas gravações", + "Record": "Gravar", + "Save": "Guardar", + "Edit": "Editar", + "HeaderSavePlaylist": "Gravar Playlist", + "Latest": "Mais recente", + "Download": "Download", + "Downloaded": "Descarregados", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "A fazer o download", + "Advanced": "Avançado", + "LinkedToEmbyConnect": "Ligado ao Emby Connect", + "Delete": "Remover", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Remover item", + "HeaderDeleteUser": "Eliminar User", + "DeleteItemConfirmation": "Tem certeza de que deseja eliminar {0}?", + "DeleteUserConfirmation": "Tem certeza de que deseja eliminar o user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Eliminar Dispositivo", + "DeleteDeviceConfirmation": "Tem certeza de que deseja eliminar este dispositivo? Ele reaparecerá na próxima vez que um user fizer login com ele.", + "ConfirmDeleteItem": "Excluir este item o excluirá do sistema de arquivos e também da biblioteca multimédia. Deseja realmente continuar?", + "FollowingFilesWillBeDeleted": "Os seguintes arquivos e pastas serão excluídos:", + "AreYouSureToContinue": "Tem certeza que deseja continuar?", + "Refresh": "Atualizar", + "RefreshingMetadataDots": "A atualizar metadados...", + "ScanningLibraryFilesDots": "A verificar ficheiros da biblioteca...", + "HeaderFavoritesThenByChannelNumber": "Favoritos, depois por número do canal", + "HeaderAddToCollection": "Adicionar à Coleção", + "HeaderFavoritesThenByTitle": "Favoritos, depois por título", + "HeaderFavoritesThenByDefault": "Favoritos, depois por ordem de canal padrão", + "HeaderDefaultChannelOrder": "Ordem de canal padrão", + "HeaderAddToFavorites": "Adicionar aos Favoritos", + "HeaderRemoveFromFavorites": "Remover dos Favoritos", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "Nova Coleção", + "HeaderNewPlaylist": "Nova Playlist", + "AllCollections": "Todas as Coleções", + "AllPlaylists": "Todas as Playlists", + "Create": "Criado", + "HeaderAddedToPlaylist": "Adicionado à Playlist", + "HeaderAddedToCollection": "Adicionado à Colecção", + "OneItemAddedTo": "1 item adicionado ao \"{0}\".", + "ItemsAddedTo": "{0} items adicionados ao \"{1}\".", + "HeaderAddedToPlayQueue": "Adicionado à Fila de Reprodução", + "HeaderPlayingNext": "Reproduzir a Seguir", + "Help": "Ajuda", + "HeaderGetHelp": "Ajuda", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Telemóvel / Tablet", + "Navigation": "Navegação", + "HeaderVideoPlayback": "Reprodução de Vídeo", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Temporadas", + "OneTrack": "1 Faixa", + "OneSeason": "1 Temporada", + "Libraries": "Bibliotecas", + "NumberSeasonsValue": "{0} Temporadas", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Idioma de visualização:", + "LabelDisplayLanguageHelp": "A tradução do Emby é um projeto contínuo.", + "LearnHowYouCanContribute": "Aprenda como pode contribuir.", + "NewCollectionHelp": "Coleções permitem que você aproveite grupos personalizados de Filmes e outros conteúdos.", + "SearchForCollectionInternetMetadata": "Procurar na internet por imagens e metadados", + "DisplayMissingEpisodesWithinSeasons": "Exibir episódios que faltam dentro das temporadas", + "DisplayMissingEpisodesWithinSeasonsHelp": "Isso também deve ser ativado para bibliotecas de TV na configuração do Emby Server.", + "EnableThemeSongs": "Ativar músicas temáticas", + "EnableBackdrops": "Ativar imagens de fundo", + "EnableThemeSongsHelp": "Se ativadas, as músicas temáticas serão reproduzidas em segundo plano ao navegar pela biblioteca.", + "EnableBackdropsHelp": "Se ativadas, imagens de fundo serão exibidas ao fundo de algumas páginas ao navegar pela biblioteca.", + "EnableThemeVideos": "Ativar Vídeos Temáticos", + "EnableThemeVideosHelp": "Se ativado, os vídeos temáticos serão reproduzidos em segundo plano ao navegar pela biblioteca.", + "RunAtStartup": "Iniciar no arranque", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Protetor de ecrã:", + "LabelSoundEffects": "Efeitos sonoros:", + "LabelName": "Nome:", + "NewCollectionNameExample": "Exemplo: Coleção Guerra das Estrelas", + "MessageItemsAdded": "Itens adicionados.", + "OptionNew": "Nova...", + "LabelPlaylist": "Lista de Reprodução", + "AddToPlaylist": "Adicionar à lista de reprodução", + "HeaderAddToPlaylist": "Adicionar à Playlist", + "Subtitles": "Legendas", + "LabelTheme": "Tema:", + "LabelSettingsTheme": "Configurações do tema:", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Buscar Legendas", + "LabelLanguage": "Idioma:", + "Search": "Busca", + "NoSubtitleSearchResultsFound": "Nenhum resultado encontrado.Configurou {0} para download de legendas {1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Terminar", + "File": "Ficheiro", + "Exit": "Sair", + "Sleep": "Hibernar", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Deseja realmente remover este arquivo de legendas?", + "ConfirmDeletion": "Confirmar Exclusão", + "MySubtitles": "As Minhas Legendas", + "MessageDownloadQueued": "Download na fila.", + "HeaderEditSubtitles": "Editar Legendas", + "UnlockGuide": "Desbloquear Guia", + "HeaderRefreshMetadata": "Atualizar Metadados", + "HeaderRefreshAllMetadata": "Atualizar todos os Metadados", + "ReplaceExistingImages": "Substituir imagens existentes", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "Substituir todos os Metadados", + "SearchForMissingMetadata": "Pesquisar metadados em falta", + "LabelRefreshMode": "Modo de atualização:", + "NoItemsFound": "Nenhum item encontrado.", + "HeaderSaySomethingLike": "Diga algo como...", + "ButtonTryAgain": "Tente Novamente", + "HeaderYouSaid": "Disse...", + "MessageWeDidntRecognizeCommand": "Desculpe, não reconhecemos esse comando.", + "MessageIfYouBlockedVoice": "Se negou o acesso de voz à app, será necessário reconfigurar antes de tentar novamente.", + "ValueDiscNumber": "Disco {0}", + "Unrated": "Sem Classificação", + "Favorite": "Favorito", + "Like": "Gosto", + "Dislike": "Não Gosto", + "RefreshDialogHelp": "Os metadados são atualizados com base nas configurações e serviços de Internet ativados no painel do Emby Server.", + "Open": "Abrir", + "Play": "Reproduzir", + "Pause": "Pausa", + "HeaderPlayQueue": "Fila de Reprodução", + "HeaderAddToPlayQueue": "Adicionar à Fila de Reprodução", + "Shuffle": "Aleatório", + "Identify": "Identificar", + "HeaderRemoveIdentification": "Remover identificação", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Editar Metadados", + "Convert": "Converter", + "Resume": "Retomar", + "HeaderInstantMix": "Mix Instantâneo", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Reproduzir Todos", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Ecrã total", + "ExitFullscreen": "Sair Ecrã Total", + "Rewind": "Retroceder", + "FastForward": "Avançar", + "Remove": "Remover", + "Rename": "Renomear", + "Queue": "Adicionar à fila", + "QueueAllFromHere": "Colocar em fila tudo a partir daqui", + "PlayAllFromHere": "Reproduzir tudo a partir daqui", + "PlayFromBeginning": "Reproduzir de início", + "FromBeginning": "From Beginning", + "ResumeAt": "Retomar de {0}", + "HeaderRemoveFromPlaylist": "Remover da Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remover da Coleção", + "Sort": "Ordenar", + "Trailer": "Trailer", + "SelectNone": "Select None", + "SelectAll": "Selecionar tudo", + "HeaderMarkPlayed": "Marcar como Reproduzido", + "HeaderMarkUnplayed": "Marcar como Não Reproduzido", + "HeaderGroupVersions": "Versões de Grupo", + "PleaseSelectTwoItems": "Por favor selecione pelo menos dois itens.", + "HeaderConfirmRecordingCancellation": "Confirmar Cancelamento da Gravação", + "MessageConfirmRecordingCancellation": "Deseja realmente cancelar esta gravação?", + "Album": "Álbum", + "AlbumArtist": "Álbum do Artista", + "Error": "Erro", + "VoiceInput": "Input de Voz", + "LabelContentType": "Tipo de conteúdo:", + "LabelPath": "Local:", + "Playlists": "Playlists", + "LabelTitle": "Título:", + "LabelOriginalTitle": "Título original:", + "LabelSortTitle": "Classificar título:", + "LabelDateAdded": "Data adicionado:", + "DateAdded": "Data adicionada", + "DateModified": "Date Modified", + "DatePlayed": "Data de reprodução", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure como a data de adição é determinada no painel do Emby Server em Configurações da Biblioteca", + "LabelStatus": "Estado:", + "LabelArtistsHelp": "Separa múltiplas com ;", + "HeaderAlbumArtists": "Álbum de Artistas", + "LabelAlbumArtists": "Artistas do Álbum:", + "LabelAlbum": "Álbum:", + "Artist": "Artista", + "Artists": "Artistas", + "ImdbRating": "Rating IMDb", + "CommunityRating": "Rating da Comunidade", + "LabelCommunityRating": "Avaliação da comunidade:", + "LabelCriticRating": "Avaliação da crítica:", + "CriticRating": "Rating da Crítica", + "LabelWebsite": "Website:", + "Tagline": "Tagline", + "LabelOverview": "Sinopse:", + "LabelShortOverview": "Sinopse curta:", + "LabelReleaseDate": "Data do lançamento:", + "LabelPlaceOfBirth": "Local de nascimento:", + "Aired": "Estreia", + "LabelAirDays": "Dias da exibição:", + "LabelAirTime": "Horário:", + "LabelRuntimeMinutes": "Duração (minutos):", + "LabelCustomRating": "Classificação personalizada:", + "LabelOriginalAspectRatio": "Proporção da imagem original:", + "Label3DFormat": "Formato 3D:", + "FormatValue": "Formato: {0}", + "DownloadsValue": "{0} downloads", + "HashMatch": "Hash match", + "EnableExternalVideoPlayers": "Ativar players de vídeo externos", + "EnableExternalVideoPlayersHelp": "Um menu de player externo será mostrado ao iniciar a reprodução de vídeo.", + "HeaderSpecialEpisodeInfo": "Informação do Episódio Especial", + "LabelAirsDuringSeason": "Estreia durante a temporada:", + "LabelAirsAfterSeason": "Exibido depois da temporada:", + "LabelAirsBeforeEpisode": "Exibido antes do episódio:", + "HeaderExternalIds": "External Ids:", + "HeaderDisplaySettings": "Configurações de Display", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Ordem de exibição:", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Países", + "Genres": "Géneros", + "Studios": "Estúdios", + "Tags": "Tags", + "Links": "Links", + "Movie": "Filme", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episódio", + "Season": "Temporada", + "HeaderMetadataSettings": "Ajustes dos Metadados", + "People": "Pessoas", + "Number": "Número", + "Lock": "Bloquear", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Idioma preferido para download:", + "LabelImageDownloadLanguage": "Idioma preferido para download de imagens:", + "LabelLockItemToPreventChanges": "Bloquear este item para evitar alterações futuras", + "LockThisField": "Bloqueie este campo para evitar alterações futuras ao atualizar os metadados", + "MessageLeaveEmptyToInherit": "Deixar em branco para herdar os ajustes de um item superior, ou o valor padrão global", + "LabelCountry": "País:", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id:", + "LabelBirthYear": "Ano de nascimento:", + "LabelBirthDate": "Data de nascimento:", + "LabelDeathDate": "Data de óbito:", + "LabelEndDate": "Data final:", + "LabelSeasonNumber": "Número da Temporada:", + "LabelEpisodeNumber": "Número do Episódio:", + "LabelTrackNumber": "Número de faixa:", + "LabelNumber": "Número:", + "LabelDiscNumber": "Número de Disco:", + "LabelParentNumber": "Número do Parente:", + "SortName": "Ordenar nome", + "OriginalTitle": "Título original", + "ReleaseDate": "Data de lançamento", + "Continuing": "A Continuar", + "Ended": "Terminado", + "HeaderEnabledFields": "Campos Ativados", + "HeaderEnabledFieldsHelp": "Desmarque um campo para bloqueá-lo e evitar que seus dados sejam alterados.", + "Backdrops": "Imagens de Fundo", + "Images": "Imagens", + "Runtime": "Tempo de execução", + "ProductionLocations": "Localizações de Produção", + "BirthLocation": "Local de nascimento", + "ParentalRating": "Parental Rating", + "PlayCount": "Contagem de Reprodução", + "Name": "Nome", + "Overview": "Visão Geral", + "LabelType": "Tipo:", + "LabelPersonRole": "Personagem:", + "LabelPersonRoleHelp": "Exemplo: motorista de camião de gelados", + "Actor": "Ator", + "Composers": "Compositores", + "Composer": "Compositor", + "Director": "Diretor", + "GuestStar": "Ator convidado", + "Producer": "Produtor", + "Writer": "Escritor", + "MessageNoSyncJobsFound": "Nenhum download encontrado. Crie jobs de download usando os botões de download encontrados em toda a app.", + "MessageNoDownloadsFound": "Sem downloads offline. Baixe sua media para uso offline clicando em Baixar em toda a app.", + "InstallingPackage": "A Instalar {0}", + "PackageInstallCompleted": "{0} instalação concluída.", + "PackageInstallFailed": "{0} instalação falhou.", + "PackageInstallCancelled": "{0} instalação cacelada.", + "SeriesYearToPresent": "{0} - Presente", + "OneDevice": "1 Dispositivo", + "DeviceCountValue": "{0} Dispositivos", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "! Voto", + "VoteCountValue": "{0} Votos", + "OneLike": "1 Gosto", + "LikeCountValue": "{0} Gostos", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Biblioteca", + "LibraryCountValue": "{0} Bibliotecas", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episódio", + "ValueEpisodeCount": "{0} episódios", + "Albums": "Álbuns", + "Song": "Música", + "Songs": "Músicas", + "Authors": "Autores", + "Books": "Livros", + "AudioBooks": "Audio livros", + "HeaderAudioBooks": "Audio Livros", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Digite um ou mais critérios de busca. Exclua o critério para aumentar os resultados da busca.", + "PleaseEnterNameOrId": "Por favor, digite um nome ou Id externo.", + "MessageItemSaved": "Item salvo.", + "SearchResults": "Resultados da Pesquisa", + "ServerNameIsRestarting": "Servidor Emby - {0} a reiniciar.", + "ServerNameIsShuttingDown": "Servidor Emby - {0} a desligar.", + "HeaderDeleteItems": "Remover Itens", + "ConfirmDeleteItems": "Ao excluir estes itens você os excluirá do sistema de arquivos e de sua biblioteca multimédia. Deseja realmente continuar?", + "PleaseRestartServerName": "Por favor reinicie o Servidor Emby - {0}.", + "ConvertingDots": "Converter...", + "LabelSyncNoTargetsHelp": "Parece que não tem nenhuma app compatível com download offline.", + "DownloadingDots": "Baixando...", + "LearnMore": "Saiba mais", + "LabelBitrateMbps": "Taxa de bits (Mbps):", + "ConvertUnwatchedVideosOnly": "Converter apenas vídeos não reproduzidos", + "SyncUnwatchedVideosOnly": "Download apenas de vídeos não reproduzidos", + "ConvertUnwatchedVideosOnlyHelp": "Apenas os vídeos que não estão marcados como totalmente reproduzidos serão convertidos.", + "SyncUnwatchedVideosOnlyHelp": "Apenas os vídeos que não estão marcados como totalmente reproduzidos serão baixados, e os vídeos serão removidos do dispositivo quando forem totalmente reproduzidos.", + "AutomaticallySyncNewContent": "Download de novo conteúdo automaticamente", + "AutomaticallySyncNewContentHelp": "Novo conteúdo adicionado a esta pasta será baixado automaticamente para o dispositivo.", + "AutomaticallyConvertNewContent": "Converter novo conteúdo automaticamente", + "AutomaticallyConvertNewContentHelp": "Novo conteúdo adicionado a esta pasta será convertido automaticamente.", + "LabelItemLimit": "Limite de itens:", + "ConvertItemLimitHelp": "Opcional. Defina um limite para o número de itens que serão convertidos.", + "DownloadItemLimitHelp": "Opcional. Defina um limite para o número de itens que serão baixados.", + "PleaseSelectDeviceToSyncTo": "Escolher o dispositivo para download.", + "Screenshots": "Screenshots", + "MoveRight": "Mover para a direita", + "MoveLeft": "Mover para a esquerda", + "HeaderUploadNewImage": "Upload Nova Imagem", + "HeaderDeleteImage": "Apagar Imagem", + "ConfirmDeleteImage": "Apagar imagem?", + "HeaderEditImages": "Editar Imagens", + "Settings": "Ajustes", + "ShowIndicatorsFor": "Mostrar indicadores para:", + "Episodes": "Episódios", + "Programs": "Programas", + "HeaderCastCrew": "Elenco e Equipa", + "DvrSubscriptionRequired": "O Emby Live TV e DVR exigem uma {0} assinatura do Emby Premiere {1} ativa.", + "HeaderCancelRecording": "Cancelar Gravação", + "HeaderKeepRecording": "Continuar a Gravação", + "HeaderCancelSeries": "Cancelar Série", + "HeaderKeepSeries": "Manter Série", + "HeaderLearnMore": "Aprender Mais", + "SeriesSettings": "Configurações da Série", + "HeaderRecordingOptions": "Opções de Gravação", + "HeaderDoNotRecord": "Não Gravar", + "HeaderSeriesOptions": "Opções da Série", + "Layout": "Layout", + "Channels": "Canais", + "ChannelNameOnly": "Canal {0} apenas", + "Anytime": "A qualquer momento", + "AnyLanguage": "Qualquer Idioma", + "AroundTime": "Por volta de {0}", + "HeaderLatestMovies": "Filmes Mais Recentes", + "All": "Todos", + "Stop": "Parar", + "AllChannels": "Todos os canais", + "NewEpisodesOnly": "Novos episódios apenas", + "AllEpisodes": "Todos os episódios", + "LabelStartWhenPossible": "Começar quando possível:", + "LabelStopWhenPossible": "Parar quando possível:", + "MinutesBefore": "minutos antes", + "MinutesAfter": "minutos depois", + "SkipEpisodesAlreadyInMyLibrary": "Não gravar episódios que já estão na minha biblioteca", + "SkipEpisodesAlreadyInMyLibraryHelp": "Os episódios serão comparados usando os números da temporada e dos episódios, quando disponíveis.", + "LabelKeepUpTo": "Fique atento a:", + "AsManyAsPossible": "Tantos quanto possível", + "DefaultErrorMessage": "Ocorreu um erro ao processar o pedido. Por favor, tente novamente mais tarde.", + "UntilIDelete": "Até eu eliminar", + "UntilSpaceNeeded": "Até o espaço ser necessário", + "Categories": "Categorias", + "Sports": "Desporto", + "News": "Notícias", + "Movies": "Filmes", + "Music": "Música", + "Kids": "Crianças", + "MoreFromValue": "Mais de {0}", + "DiedValue": "Morreu: {0}", + "BornValue": "Nasceu: {0}", + "EnableColorCodedBackgrounds": "Aplicar fundos coloridos a programas, com base na sua categoria", + "SortChannelsBy": "Classificar canais por:", + "ChannelNumber": "Número de canal", + "HeaderBenefitsEmbyPremiere": "Benefícios do Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Desfrute de um minuto de reprodução. Obrigado por experimentar Emby.", + "HeaderTryPlayback": "Experimente a Reprodução", + "HowDidYouPay": "Como pagou?", + "IHaveEmbyPremiere": "Eu tenho Emby Premiere", + "IPurchasedThisApp": "Eu comprei esta app", + "ButtonRestorePreviousPurchase": "Restaurar Compra", + "ButtonUnlockWithPurchase": "Desbloquear com Compra", + "ButtonUnlockPrice": "Desbloquear {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Mensal {0}", + "HeaderAlreadyPaid": "Já Pagou?", + "ButtonPlayOneMinute": "Reproduzir Um Minuto", + "PlaceFavoriteChannelsAtBeginning": "Colocar canais favoritos no início", + "HeaderUnlockFeature": "Desbloquear Feature", + "MessageDidYouKnowCinemaMode": "Sabia que com o Emby Premiere pode aprimorar sua experiência com recursos como Introdução de Cinema?", + "HeaderPlayMyMedia": "Reproduzir o Meu Conteúdo", + "HeaderDiscoverEmbyPremiere": "Descobrir Emby Premiere", + "HeaderNowPlaying": "A Reproduzir", + "Items": "Itens", + "AppName": "App Name", + "OneChannel": "Um canal", + "ConfirmRemoveDownload": "Remover download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remover download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Manter download", + "AddedOnValue": "Adicionado {0}", + "RemovingFromDevice": "A remover do dispositivo", + "KeepOnDevice": "Manter no dispositivo", + "CancelDownload": "Cancelar download", + "SyncJobItemStatusReadyToTransfer": "Pronto para Transferir", + "SyncJobItemStatusSyncedMarkForRemoval": "A remover do dispositivo", + "SyncJobItemStatusQueued": "Em Fila", + "SyncJobItemStatusConverting": "A Converter", + "SyncJobItemStatusTransferring": "A Transferir", + "SyncJobItemStatusSynced": "Baixado", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removido do dispositivo", + "Cancelled": "Cancelled", + "Retry": "Tentar novamente", + "Continue": "Continuar", + "ContinueInSecondsValue": "Continuar em {0} segundos.", + "HeaderRemoteControl": "Controlo Remoto", + "Disconnect": "Desligar", + "EnableDisplayMirroring": "Ativar espelhamento de ecrã", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Reproduzir Em", + "Quality": "Qualidade", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "Para restaurar sua compra anterior, certifique-se de que está ligado ao dispositivo com a mesma conta do Google (ou Amazon) que fez a compra originalmente. Certifique-se de que a app store está habilitada e não restringida por nenhum controlo parental, e certifique-se de que tem uma ligação à internet ativa. Só terá de fazer isto uma vez para restaurar a sua compra anterior.", + "HeaderAspectRatio": "Proporção de Ecrã", + "Original": "Original", + "Fill": "Preencher", + "Cover": "Capa", + "MessageNoServersAvailableToConnect": "Nenhum servidor está disponível para ligação. Se foi convidado a partilhar um servidor, aceite-o abaixo ou clique no link do e-mail.", + "MessagePlayAccessRestricted": "A reprodução deste conteúdo está atualmente restrita. Entre em contato com o administrador do Emby Server para obter mais informações.", + "Accept": "Aceitar", + "Reject": "Rejeitar", + "Connect": "Conectar", + "HeaderMyMedia": "O Meu Conteúdo", + "HeaderMyMediaSmall": "O Meu Conteúdo (pequeno)", + "LatestFromLibrary": "Mais Recentes {0}", + "HeaderLatestEpisodes": "Últimos Episódios", + "ContinuePlaying": "Continuar a reproduzir", + "ContinueWatching": "Continuar a Ver", + "HeaderLatestChannelMedia": "Itens Mais Recentes do Canal", + "HeaderContinueWatching": "Continuar a Ver", + "HeaderContinueListening": "Continuar a Ouvir", + "HeaderActiveRecordings": "Gravações Ativas", + "HeaderLatestRecordings": "Últimas Gravações", + "LabelConvertTo": "Converter para:", + "LabelDownloadTo": "Download para:", + "HeaderDownloadToDots": "Download para...", + "Next": "Próximo", + "LabelSource": "Fonte:", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "Todos os Idiomas", + "Previous": "Anterior", + "HeaderNextUp": "Próximo", + "HeaderPlayNextUp": "Reproduzir Próximo", + "HeaderLatestFrom": "Último de {0}", + "LabelHomeScreenSectionValue": "Seção da tela inicial {0}:", + "PasswordResetComplete": "A password foi redefinida.", + "PasswordSaved": "Password gravada.", + "SettingsSaved": "Configurações gravadas.", + "Upcoming": "Próximo", + "HeaderSelectImageFile": "Selecionar o Ficheiro de Imagem", + "None": "Nenhum", + "More": "Mais", + "Up": "Cima", + "Down": "Baixo", + "Home": "Home", + "Back": "Atrás", + "Random": "Random", + "Playback": "Reprodução", + "Favorites": "Favoritos", + "HeaderHomeScreen": "Tela Inicial", + "HeaderLatestChannelItems": "Últimos itens do canal", + "HeaderLibraryOrder": "Ordem da Biblioteca", + "HeaderOnNow": "No Ar Agora", + "HeaderForKids": "Para Crianças", + "HeaderPlaybackError": "Erro na Reprodução", + "PlaybackErrorNotAllowed": "De momento não está autorizado a reproduzir este conteúdo. Entre em contato com o administrador do sistema para obter detalhes.", + "RateLimitExceeded": "A sua conta excedeu o limite máximo de streaming definido pelo administrador do Emby Server. Entre em contato com ele para obter assistência.", + "PlaybackErrorNoCompatibleStream": "Nenhuma stream compatível está disponível de momento. Tente novamente mais tarde ou entre em contato com o administrador do sistema para obter detalhes.", + "PlaybackErrorPlaceHolder": "Insira o disco para reproduzir este vídeo.", + "PlaybackErrorNoPlayableItems": "Nenhum item para reprodução encontrado. Está a \n tentar reproduzir uma pasta vazia?", + "Guide": "Guia", + "Games": "Jogos", + "GameSystem": "Game System", + "Suggestions": "Sugestões", + "HeaderFavoriteChannels": "Canais Favoritos", + "HeaderFavoriteCollections": "Coleções Favoritas", + "HeaderFavoritePlaylists": "Playlists Favoritas", + "Collection": "Coleção", + "Collections": "Coleções", + "LabelSelectFolderGroups": "Agrupar automaticamente o conteúdo das seguintes pastas em visualizações como Filmes, Música e TV:", + "LabelSelectFolderGroupsHelp": "As pastas não marcadas serão exibidas por si mesmas na sua própria visualização.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Pastas", + "FileName": "Nome do Ficheiro", + "DisplayInOtherHomeScreenSections": "Exibir em seções secundárias da tela inicial, como media mais recente, e continuar assistindo", + "DisplayInMyMedia": "Exibir na tela inicial", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Vídeo da Música", + "HeaderMusicVideos": "Vídeo das Músicas", + "MusicVideos": "Vídeos da Música", + "Videos": "Vídeos", + "MixedContent": "Conteúdo misto", + "HomeVideos": "Vídeos caseiros", + "HomeVideosAndPhotos": "Vídeos e fotos caseiros", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Pastas da Biblioteca", + "HeaderTermsOfPurchase": "Termos de Compra", + "PrivacyPolicy": "Política de Privacidade", + "TermsOfUse": "Termos de uso", + "HeaderRepeatMode": "Modo de Repetição", + "HeaderToneMapping": "Mapeamento de Tom", + "RepeatOne": "Repetir um", + "RepeatAll": "Repetir todos", + "LabelDefaultScreen": "Ecrã Default:", + "ConfirmEndPlayerSession": "Quer desligar o Emby em {0}?", + "Yesterday": "Ontem", + "Yes": "Sim", + "No": "Não", + "HeaderScanLibraryFiles": "Verificar Arquivos da Biblioteca", + "LiveTV": "TV ao Vivo", + "Schedule": "Agenda", + "Recordings": "Gravações", + "ScanForNewAndUpdatedFiles": "Procurar arquivos novos e atualizados", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "A media é compatível com o dispositivo quanto à resolução e ao tipo de media (H.264, AC3, etc.), mas está num container de arquivo incompatível (.mkv, .avi, .wmv, etc.). O vídeo será recompactado imediatamente antes de transmiti-lo para o dispositivo.", + "DirectStreamHelp2": "O Streaming Direto de um arquivo usa muito pouco poder de processamento sem qualquer perda na qualidade do vídeo.", + "MediaIsBeingConverted": "A media está a ser convertida num formato compatível com o dispositivo que está a reproduzir a media.", + "StatsForNerds": "Estatísticas para nerds", + "HeaderHardwareAcceleratedDecoding": "Decodificação acelerada por hardware", + "HeaderHardwareAcceleratedEncoding": "Codificação acelerada por hardware", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Reprodução direta", + "DirectStreaming": "Streaming Direto", + "Transcode": "Transcodificação", + "Transcoding": "Transcodificação", + "ContainerBitrateExceedsLimit": "A taxa de bits da media excede o limite.", + "VideoCodecNotSupported": "Codec de vídeo não compatível", + "AudioCodecNotSupported": "Codec de áudio não compatível", + "SubtitleCodecNotSupported": "Formato de legendas não compatível", + "DirectPlayError": "Erro na Reprodução Direta", + "ContainerNotSupported": "Container não compatível", + "VideoLevelNotSupported": "Nível de Vídeo não compatível", + "AudioBitrateNotSupported": "Taxa de bits de áudio não compatível", + "AudioChannelsNotSupported": "Canais de áudio não suportados", + "VideoResolutionNotSupported": "Resolução de vídeo não suportada", + "AudioProfileNotSupported": "Perfil de áudio não compatível", + "AudioSampleRateNotSupported": "Taxa de amostra de áudio não suportada", + "AnamorphicVideoNotSupported": "Vídeo anamórfico não compatível", + "InterlacedVideoNotSupported": "Vídeo entrelaçado não suportado", + "SecondaryAudioNotSupported": "Troca de faixa de áudio não suportada", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "Ocorreu um erro ao remover a conta Emby Connect. Certifique-se de ter uma ligação ativa à Internet e tente novamente.", + "HeaderEmbyAccountRemoved": "Conta Emby Removida", + "MessageEmbyAccontRemoved": "A Conta Emby foi removida deste user.", + "HeaderInvitationSent": "Convite Enviado", + "Offline": "Offline", + "HeaderSignUp": "Registar", + "ServerDownloadMessage": "Para baixar e instalar o Emby Server gratuito, visite {0}", + "ServerDownloadMessageWithoutLink": "Para baixar e instalar o Emby Server gratuito, visite o site da Emby.", + "MessageInvitationSentToUser": "Um e-mail foi enviado para {0}, convidando para aceitar o seu convite de partilha.", + "MessageInvitationSentToNewUser": "Um e-mail foi enviado para {0}, convidando para registar em Emby.", + "GuestUserNotFound": "User não encontrado. Certifique-se de que o nome está correto e tente novamente ou tente inserir o endereço de e-mail.", + "ErrorReachingEmbyConnect": "Ocorreu um erro ao aceder ao servidor Emby Connect. Certifique-se de ter uma ligação ativa à Internet e tente novamente.", + "ErrorAddingEmbyConnectAccount1": "Ocorreu um erro ao adicionar a conta Emby Connect. Criou uma conta Emby? Registe-se em {0}.", + "ErrorAddingEmbyConnectAccount2": "Se ainda tem problemas, envie um e-mail para {0} do endereço de e-mail usado com a conta Emby.", + "ErrorAddingGuestAccount1": "Ocorreu um erro ao adicionar a conta Emby Connect. O seu convidado criou uma conta Emby? Podem se inscrever em {0}.", + "ErrorAddingGuestAccount2": "Se você ainda estiver com problemas, envie um e-mail para {0} e inclua o seu endereço de e-mail, bem como o endereço deles.", + "MessageEmbyAccountAdded": "A conta Emby foi adicionada a este user.", + "MessagePendingEmbyAccountAdded": "A conta Emby foi adicionada a este user. Um e-mail será enviado ao proprietário da conta. O convite deverá ser confirmado clicando num link do e-mail.", + "HeaderEmbyAccountAdded": "Conta Emby Adicionada", + "Skip": "Saltar", + "HeaderAdditionalParts": "Partes Adicionais", + "ButtonGenerateNewPin": "Gerar Novo Pin", + "ConnectLoginHelp1": "Com o Emby Connect pode aceder facilmente seu Emby Server onde quer que esteja e partilhar servidores com sua família e amigos.", + "CreatePinErrorMessage": "Ocorreu um erro ao criar um código PIN. Clique em Gerar Novo Pin para tentar novamente.", + "PinExpiredMessage": "O código PIN expirou. Clique em Gerar Novo Pin para tentar novamente.", + "ConnectPinCodeHeader": "Para fazer login com o Emby Connect, use um dispositivo móvel ou computador para visitar {0} e digite o seguinte código PIN:", + "LabelSubtitlePlaybackMode": "Modo de legendas:", + "ErrorDeletingItem": "Ocorreu um erro ao excluir o item do Emby Server. Verifique se o Emby Server tem acesso de escrita à pasta de media e tente novamente.", + "NoSubtitles": "Sem legendas", + "Default": "Default", + "Absolute": "Absoluto", + "Smart": "Inteligente", + "Small": "Pequeno", + "Smaller": "Mais Pequeno", + "Medium": "Médio", + "Large": "Grande", + "Larger": "Larger", + "ExtraLarge": "Maior", + "ExtraSmall": "Extra small", + "Forced": "Forçado", + "External": "Externo", + "HeaderEmbeddedTitle": "Título Embutido", + "OnlyForcedSubtitles": "Apenas legendas forçadas", + "AlwaysPlaySubtitles": "Reproduzir sempre legendas", + "DefaultSubtitlesHelp": "As legendas são carregadas com base nos sinalizadores de default e forçados nos metadados incorporados. As preferências de idioma são consideradas quando várias opções estão disponíveis.", + "SmartSubtitlesHelp": "As legendas que correspondem à preferência de idioma serão carregadas quando o áudio estiver num idioma estrangeiro.", + "HeaderSubtitleSettings": "Ajustes de Legenda", + "HeaderSubtitleAppearance": "Aparência da Legenda", + "OnlyForcedSubtitlesHelp": "Apenas as legendas marcadas como forçadas serão carregadas.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "As legendas que correspondem à preferência de idioma serão carregadas independentemente do idioma de áudio.", + "NoSubtitlesHelp": "As legendas não serão carregadas por default. Podem ser ativadas manualmente durante a reprodução.", + "LabelPreferredSubtitleLanguage": "Idioma de legenda preferido:", + "LabelTextSize": "Tamanho de texto:", + "TheseSettingsAffectSubtitlesOnThisDevice": "Estas configurações afetam as legendas neste dispositivo", + "LabelDropShadow": "Sombra:", + "LabelTextBackgroundColor": "Cor de fundo do texto:", + "LabelWindowBackgroundColor": "Cor de fundo do texto:", + "LabelFont": "Fonte:", + "LabelTextColor": "Cor do Texto:", + "LabelBackgroundColor": "Cor de fundo:", + "LabelBackgroundOpacity": "Opacidade de fundo:", + "Raised": "Aumentado", + "Depressed": "Abatido", + "Uniform": "Uniforme", + "DropShadow": "Sombra", + "SmallCaps": "Letras mínusculas", + "SubtitleAppearanceSettingsDisclaimer": "Estas configurações não se aplicam a legendas gráficas (PGS, DVD, etc.) ou legendas que têm seus próprios estilos incorporados (ASS / SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "À Espera por Wifi", + "WifiRequiredToDownload": "É necessária uma ligação de Wifi para continuar o download.", + "DownloadOnlyOnWifi": "Download apenas em Wifi", + "LabelMusicDownloadQuality": "Qualidade de download de música:", + "MusicDownloadQualityHelp": "Arquivos de áudio com uma taxa de bits maior serão convertidos pelo Emby Server. Selecione um valor mais alto para melhor qualidade ou um valor mais baixo para conservar o espaço de armazenamento local.", + "HeaderDownloadSettings": "Configurações de Download", + "LabelDownloadLocation": "Localização de Download:", + "BrowseForFolder": "Pesquisar por Pasta", + "Unlimited": "Ilimitado", + "NoLimit": "No limit", + "Hide": "Ocultar", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Profundidade de bits de áudio não suportada", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Perfil de vídeo não compatível", + "VideoFramerateNotSupported": "A taxa de framerate do vídeo não é compatível", + "VideoBitDepthNotSupported": "Profundidade de bits de vídeo não suportada", + "RefFramesNotSupported": "Número de frames de referência de vídeo não suportados", + "ErrorConnectServerUnreachable": "Ocorreu um erro ao executar a operação solicitada. O seu servidor não consegue entrar em contato com nosso Emby Connect Server em {0}. Certifique-se de que seu servidor tem uma ligação ativa à Internet e que as comunicações sejam permitidas por qualquer firewall ou software de segurança instalado.", + "HeaderStopRecording": "Parar Gravação", + "ManageRecording": "Gerir gravação", + "LabelDropImageHere": "Arraste e solte a imagem aqui ou clique para selecionar uma imagem para fazer upload.", + "MessageFileReadError": "Ocorreu um erro ao ler o ficheiro. Por favor, tente novamente.", + "Browse": "Pesquisar", + "HeaderUploadImage": "Enviar Imagem", + "HeaderAddUpdateImage": "Adicionar /Atualizar Imagem", + "HeaderShowFields": "Mostrar Campos", + "LabelView": "Visualizar:", + "LabelImageType": "Tipo de Imagem:", + "Upload": "Envio", + "Primary": "Primário", + "PrimaryImageBlur": "Primary image blur", + "Art": "Arte", + "Backdrop": "Pano de Fundo", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Atrás)", + "Disc": "Disco", + "Logo": "Logo", + "LogoDark": "Logo (Versão Escura)", + "LogoLight": "Logo (versão Clara)", + "LogoLightColor": "Logo (versão Clara com Cor)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Ajustes de Áudio", + "LabelAudioLanguagePreference": "Idioma de áudio preferido:", + "LabelPlayDefaultAudioTrack": "Tocar faixa de áudio padrão independentemente do idioma", + "HeaderVideoQuality": "Qualidade de Vídeo", + "CinemaModeConfigurationHelp": "Introdução de Cinema traz a experiência do teatro diretamente para sua sala de estar com a capacidade de reproduzir trailers e introduções personalizadas antes do filme principal.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Reproduzir próximo episódio automaticamente", + "LabelMaxChromecastBitrate": "Qualidade de streaming do Chromecast:", + "LabelSkipBackLength": "Comprimento Voltar Atrás:", + "LabelSkipForwardLength": "Comprimento Passar à Frente:", + "EnableCinemaMode": "Ativar modo cinema", + "LabelInternetQuality": "Qualidade de Internet:", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Qualidade da Música:", + "LabelHomeNetworkQuality": "Qualidade da Rede Local:", + "HeaderLatestMedia": "Media Mais Recente", + "HeaderRestartingEmbyServer": "Reiniciar Servidor Emby", + "RestartPleaseWaitMessage": "Aguarde enquanto o Emby Server é encerrado e reiniciado. Isto pode demorar um ou dois minutos.", + "HeaderPlayNext": "Reproduzir a Seguir", + "AutoBasedOnLanguageSetting": "Automático (com base na configuração do dispositivo)", + "SameAsMainTheme": "Igual ao tema principal", + "LabelDateTimeLocale": "Data e hora local:", + "Genre": "Género", + "DirectorValue": "Realizador: {0}", + "DirectorsValue": "Realizadores: {0}", + "GenreValue": "Género: {0}", + "GenresValue": "Géneros: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Título", + "Year": "Ano", + "Filter": "Filter", + "Filters": "Filtros", + "Unplayed": "Não Reproduzido", + "LabelTVHomeScreen": "Modo de tela inicial da TV:", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Agrupar por Série", + "HeaderVideoType": "Tipo de Vídeo", + "HeaderSeriesStatus": "Estado da Série", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Canções temáticas", + "ThemeVideos": "Vídeos temáticos", + "HeaderFavoriteMovies": "Filmes Favoritos", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Programas Favoritos", + "HeaderFavoriteEpisodes": "Episódios Favoritos", + "HeaderFavoriteVideos": "Vídeos Favoritos", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Jogos Favoitos", + "HeaderFavoriteArtists": "Artistas Favoritos", + "HeaderFavoriteAlbums": "Álbuns Favoritos", + "HeaderFavoriteSongs": "Músicas Favoritas", + "HeaderFavoriteAuthors": "Autores Favoritos", + "HeaderFavoriteAudioBooks": "Audio Books Favoritos", + "Ascending": "Ascendente", + "Descending": "Descendente", + "HeaderColorPrimaries": "Cores Primárias", + "HeaderColorSpace": "Espaço Colorido", + "HeaderColorTransfer": "Transferência de Cor", + "HeaderVideoRange": "Alcance do Vídeo", + "SeriesDisplayOrderHelp": "Ordenar os episódios por data de transmissão, ordem de DVD ou numeração absoluta.", + "LabelVerticalPositionFromBottom": "Posição vertical (debaixo):", + "HeaderFavoritePeople": "Pessoas Favoritas", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sair", + "HeaderSelectServer": "Escolher Servidor", + "HeaderChangeServer": "Mudar Servidor", + "HeaderChangeUser": "Alterar Utilizador", + "HeaderAppSettings": "Definições da Aplicação", + "HeaderLoginSettings": "Configurações de Login", + "LabelRememberLogin": "Lembrar login:", + "LabelAutomaticallySignOut": "Sair automaticamente:", + "BetaTesterMessage": "Obrigado por ser um tester beta do Emby! Deixe seu feedback na área de teste {0} da comunidade Emby {1}.", + "HardwareAccelerated": "Hardware acelerado", + "Software": "Software", + "Metadata": "Metadados", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Dividir Versões", + "Any": "Qualquer", + "Admin": "Administrador", + "HeaderReadMore": "Ler Mais", + "CustomRatingHelp": "Uma classificação personalizada é usada para avaliações de controlo parental, mas não é exibido. O campo de classificação parental é exibido.", + "KeepUpToHelp": "As gravações acima do limite são excluídas quando a próxima gravação começa. As gravações mais antigas são excluídas primeiro, por data de adição.", + "NoItemsMatchingFound": "Nenhum item que corresponda aos seus critérios de pesquisa foi encontrado.", + "TwoSearchCharsRequired": "Por favor, digite pelo menos dois caracteres de busca.", + "PreventPlaybackContinuing": "Evite que a reprodução continue indefinidamente solicitando input do user periodicamente.", + "PromptStillWatching": "Ativar a mensagem 'Ainda está a assistir?'", + "HeaderMissingMetadata": "Metadados Em Falta", + "HeaderIncludedIn": "Incluído em", + "EmbyConnectUserAlreadyLinked": "O Emby Connect user já está vinculado a outro user neste servidor.", + "VideoFilesWillBeConvertedTo": "Os vídeos convertidos serão gravados como {0}.", + "VideoWillBeConvertedTo": "Os streams de vídeo serão convertidos para {0} ou copiados do arquivo original se já forem {0} e a qualidade se enquadrar nas opções de conversão.", + "VideoWillBeConvertedToOrCopied": "Os streams de vídeo serão convertidos para {0} ou copiados do arquivo original se forem alguns de ({1}), e a qualidade se encaixar nas opções de conversão.", + "AudioWillBeConvertedTo": "Os streams de áudio serão convertidos para {0} ou copiados do arquivo original se já forem {0} e a qualidade se enquadrar nas opções de conversão.", + "AudioWillBeConvertedToOrCopied": "Os streams de áudio serão convertidos para {0} ou copiados do arquivo original se forem alguns de ({1}), e a qualidade se encaixa nas opções de conversão.", + "HeaderSpecialKeys": "Chaves Especiais", + "FollowingSpecialKeys": "As seguintes chaves especiais são compatíveis com a maioria dos teclados e controlos remotos:", + "HeaderDeleteSeries": "Eliminar Série", + "HeaderDeleteLastPlayedEpisode": "Eliminar Último Episódio Reproduzido", + "HeaderConnectingToServer": "A Ligar ao Servidor", + "ServerNameValue": "Nome do Servidor: {0}", + "DomainValue": "Domínio: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "Vai ser redirecionado para o domínio de propriedade e operado pelo administrador do servidor ao qual escolheu ligar:", + "AllMediaOwnedHosted": "Todo o media é propriedade e gerenciado pelo proprietário de {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Avtivar troca de taxa de atualização", + "EnableDisplayRefreshRateSwitchingHelp": "Permite que Emby altere a taxa de atualização de ecrã para o mesmo valor (ou múltiplo) da taxa de frames em que o vídeo foi codificado antes de iniciar a reprodução. Isto ajuda a minimizar a quantidade de paragens que pode ter ao reproduzir vídeos que não combinam bem.", + "RememberSelectedAudioTracks": "Lembrar das seleções de faixas de áudio", + "RememberSelectedSubtitleTracks": "Lembrar das seleções de faixas de legenda", + "RememberSelectedSubtitleTracksHelp": "As seleções de faixas de legenda serão lembradas por vídeo e reaplicadas ao reproduzir o mesmo vídeo novamente.", + "RememberSelectedAudioTracksHelp": "As seleções de faixas de áudio serão lembradas por vídeo e reaplicadas ao reproduzir o mesmo vídeo novamente.", + "ClearSavedTrackSelections": "Limpar seleções de faixas gravadas", + "HeaderClearTrackSelections": "Limpar seleções de faixas gravadas", + "QuestionClearSavedTracks": "Limpar todas as seleções de faixas gravadas?", + "LabelChannelTags": "Tags de Canais:", + "AfterThisPlaysConfirmation": "Após a reprodução, deseja continuar a reproduzir ou limpar a música que você colocou na fila anteriormente?", + "Keep": "Manter", + "Clear": "Limpar", + "HeaderClearFilters": "Limpar Filtros", + "HeaderSearchForImages": "Pesquisar por Imagens", + "HeaderSearchNewImage": "Pesquisar Nova Imagem", + "HeaderSearchForAnImage": "Pesquisar uma Imagem", + "DragDropToReorder": "Arraste e solte para Reordenar", + "HeaderAddImageFromUrl": "Adicionar imagem do URL", + "HeaderSetImageFromUrl": "Definir imagem do URL", + "LabelUrl": "URL:", + "LabelChannelNumber": "Número de canal:", + "LabelGuideDataChannel": "Canal de dados do guia:", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copiar para o Ambiente de Trabalho", + "TimeRemainingValue": "{0} em falta", + "LabelResumeRewindSeconds": "Ao retomar, retroceder automaticamente:", + "ResumeRewindSecondsHelp": "Isto pode ajudá-lo a lembrá-lo onde parou.", + "HeaderSavePlayQueueToPlaylist": "Salvar a fila de reprodução numa lista de reprodução", + "EnableLogoImagesAsTitle": "Exibir imagens de logotipo como títulos em telas de detalhes", + "EnableLogoImagesAsTitleHelp": "Quando disponíveis, as imagens do logotipo podem ser usadas no lugar do texto do título em vídeos, séries e outras telas de detalhes. O título voltará ao texto quando uma imagem de logotipo não estiver disponível.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Versão", + "Keyword": "Palavra-Chave", + "HeaderServerAddress": "Endereço do Servidor", + "HeaderSkipIntro": "Pular introdução", + "HeaderCreateRecording": "Criar gravação", + "HeaderAddRecording": "Adicionar gravação", + "HeaderChannelAndTime": "Canal e Tempo", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequência:", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Começar", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Tamanho da Imagem:", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Eliminar conta do Emby Connect", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Tornar Privado", + "HeaderMakePublic": "Tornar Público", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Adicionar de novo", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Orientação do ecrã durante a visualição de video", + "UseDeviceSetting": "Usar as definições do Sistema", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "ForgetThisServer": "Forget This Server", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/ro.json b/modules/common/strings/ro.json new file mode 100644 index 0000000..e27f5bc --- /dev/null +++ b/modules/common/strings/ro.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby este conceput să te ajute la administrarea fișierelor media personale ex. filmări sau fotografii. Vezi {0}termenii de itilizare{1}. Utilizarea oricărui software Emby constituie acceptarea acestor termeni.", + "MessageUnableToConnectToServer": "Nu se poate realiza conexiunea la server în acest moment. Te rugăm verifică dacă acesta este pornit și reîncearcă.", + "EmbyIntroMessage": "Cu Emby poți reda fișiere video, muzică și fotografii de pe telefoane sau televizoare inteligente, tablete și alte dispozitive de pe propriul server Emby.", + "HeaderSignInWithConnect": "Conectare cu Emby Connect", + "HeaderWelcomeToEmby": "Bun Venit la Emby", + "HeaderNewUsers": "Utilizatori noi", + "HeaderPleaseSignIn": "Conectează-te", + "MessageInvalidUser": "Nume de utilizator sau parolă greșite. Te rog încearcă din nou.", + "MessageUnlockAppWithPurchaseOrSupporter": "Deblochează această funcție cu un mic tarif unic sau cu o abonare activă la Emby Premiere.", + "MessageUnlockAppWithSupporter": "Deblochează această funcție cu o abonare activă la Emby Premiere.", + "MessageToValidateSupporter": "Dacă ai o abonare activă Emby Premiere asigură-te că ai configurat Emby Premiere în Dashboard-ul Emby Server. Poți face asta dând click pe Emby Premiere din meniul pricipal.", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Conectare", + "Share": "Distribuie", + "Shared": "Shared", + "Info": "Info", + "Add": "Adaugă", + "Speed": "Viteză", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Capitole", + "Password": "Parolă", + "SavePassword": "Save Password", + "LabelPassword": "Parolă:", + "HeaderResetPassword": "Resetează parola", + "Series": "Seriale", + "Preview": "Previzualizare", + "Submit": "Trimite", + "Never": "Niciodată", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Rezultate de top", + "HeaderPinSidebar": "Fixează bara laterală", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Redare video în fundal:", + "BackgroundVideoPlaybackHelp": "Redarea în fundal permite redarea în continuare a videoclipurilor chiar și atunci când ecranul este oprit.", + "AlwaysOn": "Mereu pornit", + "HeadphonesOrExternalSpeakersConnected": "Căști sau difuzoare externe conectate", + "HeaderKeyboardAndRemote": "Tastatură și telecomandă", + "NoSelectedItemsSupportOperation": "Nu există elemente selectate care să accepte această operațiune.", + "NoOperationsForSelectedItems": "Nu există operațiuni disponibile pentru articolele selectate.", + "UploadOnlyOnWifi": "Încărcați numai prin Wifi", + "HeaderFoldersToUpload": "Foldere de încărcat", + "LabelPasswordConfirm": "Parola (confirmare):", + "HeaderMoveUpInOrder": "Mută sus în Ordine", + "HeaderDownUpInOrder": "Mută jos în Ordine", + "LabelUsername": "Nume de utilizator:", + "HeaderAddServer": "Adaugă server", + "HeaderSubtitleOffset": "Offset subtitrare", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Elimină din Continuă Vizionarea", + "RemoveThisTitleFromContinueWatching": "Eliminați acest titlu din Continuați vizionarea?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Măriți decalajul subtitrărilor", + "HeaderDecreaseSubtitleOffset": "Micșorați decalajul subtitrărilor", + "Close": "Închide", + "HeaderSeeAll": "Vezi tot", + "HeaderOpenInNewWindow": "Deschide în fereastră nouă", + "LabelEmail": "Email:", + "LabelHost": "Gazdă:", + "LabelHostHelp": "192.168.1.100 sau https://myserver.com", + "LabelPort": "Port:", + "Disabled": "Dezactivat", + "Uninstall": "Dezinstalează", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Te mai uiți la...?", + "LabelCurrentPassword": "Parola actuală:", + "LabelNewPassword": "Parolă nouă:", + "LabelNewPasswordConfirm": "Confirmă noua parolă:", + "HeaderRemovePassword": "Elimină parola", + "ServerUpdateNeeded": "Acest server Emby trebuie actualizat. Pentru a descărca cea mai recentă versiune, accesați {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Connect to Server", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "New", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Dezintercalare", + "HeaderBurningInSubtitles": "Inscripționare subtitrări", + "Premiere": "Premiere", + "LabelPinCode": "Cod PIN:", + "LabelLocalNetworkPinCode": "Cod PIN rețea locală:", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Nu solicitați o parolă în rețeaua locală", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Live", + "Reset": "Reset", + "Repeat": "Repeat", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} Tracks", + "ItemCount": "{0} Items", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Latest Music", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Redate recent", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Redate frecvent", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "OriginalAirDateValue": "Original air date: {0}", + "EndsAtValue": "Ends at {0}", + "Date": "Date", + "AirDate": "Air Date", + "Played": "Played", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Last Episode Date Added", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio codec", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Parental rating", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Because you watched {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Invitations", + "ActorAsRole": "as {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "User", + "Access": "Access", + "Users": "Users", + "Library": "Library", + "Devices": "Devices", + "Cancel": "Cancel", + "Restart": "Restart", + "Shutdown": "Shutdown", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Systems", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Got It", + "RememberMe": "Remember me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Manage Emby Server", + "ShutdownServer": "Shutdown Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Recording Cancelled", + "SeriesCancelled": "Series Cancelled", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Recording Scheduled", + "SeriesRecordingScheduled": "Series Recording Scheduled", + "HeaderNewRecording": "New Recording", + "HeaderWakeServer": "Wake Server", + "AttemptingWakeServer": "Attempting to wake server. Please wait...", + "WakeServerSuccess": "Success!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine.", + "Days": "Days", + "Network": "Network", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Cinema Intros", + "Conversions": "Conversions", + "Downloads": "Downloads", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Offline Media", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", + "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.", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature.", + "HeaderFreeApps": "Free Emby Apps", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", + "HeaderBecomeProjectSupporter": "Get Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "This feature requires an active {0}Emby Premiere subscription{1}.", + "HeaderConvertYourRecordings": "Convert Your Recordings", + "Record": "Record", + "Save": "Salveaza", + "Edit": "Edit", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Download", + "Downloaded": "Downloaded", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloading", + "Advanced": "Advanced", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Delete", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Delete Item", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library.", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Refresh", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Add to Collection", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Ajutor", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "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ăutare pe internet pentru postere și 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.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "RunAtStartup": "Run at startup", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Nume:", + "NewCollectionNameExample": "Exemplu: Star Wars Collection", + "MessageItemsAdded": "Items added.", + "OptionNew": "New...", + "LabelPlaylist": "Playlist", + "AddToPlaylist": "Add to playlist", + "HeaderAddToPlaylist": "Add to Playlist", + "Subtitles": "Subtitles", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Search for Subtitles", + "LabelLanguage": "Limba:", + "Search": "Search", + "NoSubtitleSearchResultsFound": "No results found. Have you configured {0}subtitle downloading{1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "File": "File", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "ConfirmDeletion": "Confirm Deletion", + "MySubtitles": "My Subtitles", + "MessageDownloadQueued": "Download queued.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Unlock Guide", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Replace existing images", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "Replace all metadata", + "SearchForMissingMetadata": "Search for missing metadata", + "LabelRefreshMode": "Refresh mode", + "NoItemsFound": "No items found.", + "HeaderSaySomethingLike": "Say Something Like...", + "ButtonTryAgain": "Try Again", + "HeaderYouSaid": "You Said...", + "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "ValueDiscNumber": "Disc {0}", + "Unrated": "Unrated", + "Favorite": "Favorite", + "Like": "Like", + "Dislike": "Dislike", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup.", + "Open": "Open", + "Play": "Play", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Shuffle", + "Identify": "Identify", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Convert", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Queue", + "QueueAllFromHere": "Queue all from here", + "PlayAllFromHere": "Play all from here", + "PlayFromBeginning": "Play From Beginning", + "FromBeginning": "From Beginning", + "ResumeAt": "Resume from {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sort", + "Trailer": "Trailer", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Error", + "VoiceInput": "Voice Input", + "LabelContentType": "Tip continut:", + "LabelPath": "Path", + "Playlists": "Playlists", + "LabelTitle": "Title", + "LabelOriginalTitle": "Original title", + "LabelSortTitle": "Sort title", + "LabelDateAdded": "Date added", + "DateAdded": "Date Added", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Status:", + "LabelArtistsHelp": "Folosire separata multipla", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Album artists", + "LabelAlbum": "Album", + "Artist": "Artist", + "Artists": "Artists", + "ImdbRating": "IMDb Rating", + "CommunityRating": "Community Rating", + "LabelCommunityRating": "Community rating", + "LabelCriticRating": "Critic rating", + "CriticRating": "Critic Rating", + "LabelWebsite": "Website", + "Tagline": "Tagline", + "LabelOverview": "Overview", + "LabelShortOverview": "Short overview", + "LabelReleaseDate": "Release date", + "LabelPlaceOfBirth": "Place of birth", + "Aired": "Aired", + "LabelAirDays": "Air days", + "LabelAirTime": "Air time", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelCustomRating": "Custom rating", + "LabelOriginalAspectRatio": "Original aspect ratio", + "Label3DFormat": "3D format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Display Settings", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Display order", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Countries", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Tags", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Metadata Settings", + "People": "People", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Preferred metadata download language", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LabelCountry": "Tara:", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Birth year", + "LabelBirthDate": "Birth date", + "LabelDeathDate": "Death date", + "LabelEndDate": "End date", + "LabelSeasonNumber": "Season number", + "LabelEpisodeNumber": "Episode number", + "LabelTrackNumber": "Track number", + "LabelNumber": "Number", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Sort Title", + "OriginalTitle": "Original Title", + "ReleaseDate": "Release Date", + "Continuing": "Continua", + "Ended": "S-a sfarsit", + "HeaderEnabledFields": "Enabled Fields", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed.", + "Backdrops": "Backdrops", + "Images": "Images", + "Runtime": "Runtime", + "ProductionLocations": "Production locations", + "BirthLocation": "Birth location", + "ParentalRating": "Parental Rating", + "PlayCount": "Play count", + "Name": "Name", + "Overview": "Overview", + "LabelType": "Type", + "LabelPersonRole": "Role", + "LabelPersonRoleHelp": "Example: Ice cream truck driver", + "Actor": "Actor", + "Composers": "Composers", + "Composer": "Composer", + "Director": "Director", + "GuestStar": "Guest star", + "Producer": "Producer", + "Writer": "Writer", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Installing {0}", + "PackageInstallCompleted": "{0} installation completed.", + "PackageInstallFailed": "{0} installation failed.", + "PackageInstallCancelled": "{0} installation cancelled.", + "SeriesYearToPresent": "{0} - Present", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episodes", + "Albums": "Albums", + "Song": "Song", + "Songs": "Songs", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "PleaseEnterNameOrId": "Please enter a name or an external Id.", + "MessageItemSaved": "Item saved.", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Emby Server - {0} is restarting.", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "PleaseRestartServerName": "Please Restart Emby Server on {0}", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Downloading...", + "LearnMore": "Learn more", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Screenshots", + "MoveRight": "Move right", + "MoveLeft": "Move left", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Delete image?", + "HeaderEditImages": "Edit Images", + "Settings": "Settings", + "ShowIndicatorsFor": "Show Indicators", + "Episodes": "Episodes", + "Programs": "Programs", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}.", + "HeaderCancelRecording": "Cancel Recording", + "HeaderKeepRecording": "Keep Recording", + "HeaderCancelSeries": "Cancel Series", + "HeaderKeepSeries": "Keep Series", + "HeaderLearnMore": "Learn More", + "SeriesSettings": "Series settings", + "HeaderRecordingOptions": "Recording Options", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Series Options", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Anytime", + "AnyLanguage": "Any language", + "AroundTime": "Around {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "All channels", + "NewEpisodesOnly": "New episodes only", + "AllEpisodes": "All episodes", + "LabelStartWhenPossible": "Start when possible", + "LabelStopWhenPossible": "Stop when possible", + "MinutesBefore": "minutes before", + "MinutesAfter": "minutes after", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", + "LabelKeepUpTo": "Keep up to", + "AsManyAsPossible": "As many as possible", + "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "UntilIDelete": "Until I delete", + "UntilSpaceNeeded": "Until space needed", + "Categories": "Categories", + "Sports": "Sports", + "News": "News", + "Movies": "Movies", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "I have Emby Premiere", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "ButtonUnlockPrice": "Unlock {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "HeaderUnlockFeature": "Unlock Feature", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Added {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Continue", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Quality", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "My Media", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "Latest {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continue Watching", + "HeaderContinueListening": "Continue Listening", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Latest Recordings", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Settings saved.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Favorites", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Favorite Collections", + "HeaderFavoritePlaylists": "Favorite Playlists", + "Collection": "Collection", + "Collections": "Collections", + "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.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Mapare tonuri", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Schedule", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "No subtitles", + "Default": "Default", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Subtitle Settings", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelTextSize": "Text size", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "Hide": "Hide", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Audio Settings", + "LabelAudioLanguagePreference": "Preferred audio language", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Video Quality", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Latest Media", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "Genre": "Genre", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directors: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Theme songs", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Favorite Movies", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Favorite Shows", + "HeaderFavoriteEpisodes": "Favorite Episodes", + "HeaderFavoriteVideos": "Favorite Videos", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Favorite Games", + "HeaderFavoriteArtists": "Favorite Artists", + "HeaderFavoriteAlbums": "Favorite Albums", + "HeaderFavoriteSongs": "Favorite Songs", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Activează solicitarea ”Te mai uiți la...?”", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "Utilizatorul Emby Connect este legat deja la alt utilizator al acestui server.", + "VideoFilesWillBeConvertedTo": "Fișierele video convertite vor fi salvate ca {0}.", + "VideoWillBeConvertedTo": "Fișierele video convertite vor fi salvate ca {0}, sau se va copia fișierul original dacă sunt deja {0} și calitatea corespunde cu parametrii de conversie.", + "VideoWillBeConvertedToOrCopied": "Fișierele video convertite vor fi salvate ca {0}, sau se va copia fișierul original dacă sunt oricare din {1} și calitatea corespunde cu parametrii de conversie.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "HeaderSpecialKeys": "Special Keys", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Se conectează la server", + "ServerNameValue": "Nume server: {0}", + "DomainValue": "Domeniu: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "ForgetThisServer": "Forget This Server", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/ru.json b/modules/common/strings/ru.json new file mode 100644 index 0000000..dc22692 --- /dev/null +++ b/modules/common/strings/ru.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Заменить существующие миниатюры предпросмотра видео", + "ReplaceExistingThumbnailImagesHelp": "Все существующие миниатюры предпросмотра видео будут удалены, и новые будут сгенерированы, если это включено в настройках библиотеки.", + "DateCreated": "Дата создания", + "CreatedOnValue": "Создано {0}", + "UpdatedOnValue": "Обновлено {0}", + "EmbyLoginTerms": "Emby спроектирован, чтобы помочь вам управлять своей персональной медиатекой, например, домашними видео и фотографиями. Ознакомьтесь с нашими {0}Условиями использования{1}. Использование любого ПО Emby означает принятие данных условий.", + "MessageUnableToConnectToServer": "Мы не можем подключится к выбранному серверу. Убедитесь, что он запущен и повторите попытку.", + "EmbyIntroMessage": "С помощью Emby удобно транслировать на смартфоны, планшеты и другие устройства видеофайлы, музыку и фотографии с Emby Server.", + "HeaderSignInWithConnect": "Войти через Emby Connect", + "HeaderWelcomeToEmby": "Начало работы в Emby", + "HeaderNewUsers": "Новые пользователи", + "HeaderPleaseSignIn": "Выполните вход", + "MessageInvalidUser": "Недопустимое имя пользователя или пароль. Повторите попытку.", + "MessageUnlockAppWithPurchaseOrSupporter": "Разблокируйте данный компонент посредством небольшой однократной оплаты, или с действующей подпиской Emby Premiere .", + "MessageUnlockAppWithSupporter": "Разблокируйте данный компонент с действующей подпиской Emby Premiere.", + "MessageToValidateSupporter": "Если у вас есть действующая подписка Emby Premiere, убедитесь, что Emby Premiere установлен и настроен в панели Emby Server, который доступен по клику на Emby Premiere в главном меню.", + "ValueSpecialEpisodeName": "Спецэпизод - {0}", + "HeaderSignIn": "Войти", + "Share": "Поделиться", + "Shared": "Поделился", + "Info": "Инфо", + "Add": "Добавить", + "Speed": "Скорость", + "PlaybackSpeed": "Скорость воспроизведения", + "Chapters": "Главы", + "Password": "Пароль", + "SavePassword": "Сохранить пароль", + "LabelPassword": "Пароль", + "HeaderResetPassword": "Сбросить пароль", + "Series": "Сериалы", + "Preview": "Предпросмотр", + "Submit": "Отправить", + "Never": "Никогда", + "Table": "Таблица", + "HeaderScheduledTasks": "Запланированные задачи", + "Plays": "Играет", + "LastUsedAddressValue": "Последнее использование {0}", + "LabelKeywordType": "Тип ключевого слова", + "HeaderSelectColumns": "Выбрать столбцы", + "HeaderTopResults": "Лучшие результаты", + "HeaderPinSidebar": "Закрепить боковую панель", + "Collapse": "Крах", + "LabelBackgroundVideoPlayback": "Фоновое воспроизведение видео", + "BackgroundVideoPlaybackHelp": "Фоновое воспроизведение позволяет воспроизводить видео даже при выключенном экране.", + "AlwaysOn": "Всегда включено", + "HeadphonesOrExternalSpeakersConnected": "Подключены наушники или внешние динамики", + "HeaderKeyboardAndRemote": "Клавиатура и пульт", + "NoSelectedItemsSupportOperation": "Не выбраны элементы, поддерживающие эту операцию.", + "NoOperationsForSelectedItems": "Для выбранных элементов нет доступных операций.", + "UploadOnlyOnWifi": "Загружать только по Wi-Fi", + "HeaderFoldersToUpload": "Папки для загрузки", + "LabelPasswordConfirm": "Подтвердите пароль", + "HeaderMoveUpInOrder": "Вверх по порядку", + "HeaderDownUpInOrder": "Вниз по порядку", + "LabelUsername": "Имя пользователя", + "HeaderAddServer": "Добавить сервер", + "HeaderSubtitleOffset": "Смещение субтитров", + "Watching": "Просмотр", + "HeaderRemoveFromContinueWatching": "Удалить из \"Продолжить просмотр\"", + "RemoveThisTitleFromContinueWatching": "Удалить элемент из \"Продолжить просмотр\"?", + "HeaderRemoveFromContinueListening": "Убрать из \"Продолжить прослушивание\"", + "RemoveThisTitleFromContinueListening": "Удалить этот заголовок из \"Продолжить прослушивание\"?", + "HeaderIncreaseSubtitleOffset": "Увеличить смещение субтитров", + "HeaderDecreaseSubtitleOffset": "Уменьшить смещение субтитров", + "Close": "Закрыть", + "HeaderSeeAll": "Увидеть все", + "HeaderOpenInNewWindow": "Открыть в новом окне", + "LabelEmail": "Email", + "LabelHost": "Хост", + "LabelHostHelp": "Например: 192.168.1.100 или https://myserver.com", + "LabelPort": "Порт", + "Disabled": "Выключено", + "Uninstall": "Удалить", + "Enable": "Включить", + "AllTuners": "Все тюнеры", + "Disable": "Отключить", + "NextValue": "Далее: {0}", + "HeaderNextItem": "Следующий", + "HeaderPreviousItem": "Предыдущий", + "NoTrailersMessage": "Трейлеров не найдено. Чтобы их добавить, установите плагин Trailer из {0} каталога плагинов Emby {1}.", + "UninstallPluginConfirmation": "Вы действительно хотите удалить плагин?", + "HeaderUninstallPlugin": "Удалить плагин", + "AreYouStillWatching": "Вы ещё смотрите?", + "LabelCurrentPassword": "Текущий пароль", + "LabelNewPassword": "Новый пароль", + "LabelNewPasswordConfirm": "Подтвердите новый пароль", + "HeaderRemovePassword": "Удалить пароль", + "ServerUpdateNeeded": "Emby Server нуждается в обновлении. Чтобы загрузить новую версию, посетите {0}", + "MessageThankYouForConnectSignUp": "Благодарим за регистрацию в Emby Connect. Письмо с инструкциями для подтверждения аккаунта отправлено на ваш адрес электронной почты. Подтвердите учётную запись, а потом вернитесь сюда, чтобы войти.", + "MessageThankYouForConnectSignUpNoValidation": "Спасибо за подписку на Emby Connect! Теперь вам будет предложено войти в систему с вашей информацией Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "Пароль и подтверждение пароля должны совпадать.", + "ErrorMessageUsernameInUse": "Имя пользователя уже используется. Подберите новое и повторите попытку.", + "ErrorMessageEmailInUse": "Email уже используется. Введите новый и повторите попытку или воспользуйтесь компонентом \"Напомнить пароль\".", + "HeaderUpcomingOnTV": "Скоро в эфире", + "HeaderOtherShowings": "Другие показы", + "Showings": "Показы", + "HeaderConnectToServer": "Соединение с сервером", + "ConnectToServerManually": "Подключиться вручную", + "LabelEnterConnectUserNameHelp": "Это адрес электронной почты, который вы использовали для настройки своего аккаунта Emby Connect.", + "HeaderSignInError": "Ошибка входа", + "HeaderManualLogin": "Ручной вход", + "PasswordResetConfirmation": "Вы уверены, что хотите сбросить пароль?", + "ContactAdminToResetPassword": "Обратитесь к системному администратору, чтобы сбросить пароль.", + "ForgotPasswordInNetworkRequired": "Попробуйте еще раз в своей домашней сети, чтобы начать процесс сброса пароля.", + "ForgotPasswordFileCreated": "Следующий файл был создан на вашем сервере и содержит инструкции о том, как действовать:", + "ForgotPasswordFileExpiration": "Сброс ПИНа истекает в {0}.", + "InvalidForgotPasswordPin": "Был введен неверный или просроченный ПИН-код. Попробуйте еще раз.", + "PasswordResetForUsers": "Пароли были удалены для следующих пользователей. Чтобы войти, войдите с пустым паролем.", + "HeaderForgotPassword": "Забыли пароль?", + "ForgotPasswordUsernameHelp": "Оставьте это поле пустым, если не помните своё имя пользователя.", + "HeaderPasswordReset": "Сброс пароля", + "AttributeNew": "Новинка", + "Done": "Готово", + "HeaderResetToDefault": "Сброс к настройкам по умолчанию", + "Deinterlacing": "Деинтерлейсинг", + "HeaderBurningInSubtitles": "Наложение субтитров", + "Premiere": "Премьера", + "LabelPinCode": "ПИН-код", + "LabelLocalNetworkPinCode": "ПИН-код локальной сети", + "LabelLocalNetworkPasswordMode": "Режим входа в локальную сеть", + "RequirePasswordInLocalNetwork": "Требовать пароль в локальной сети", + "NoPasswordInLocalNetwork": "Пароль в локальной сети не требуется", + "PinCodeInLocalNetwork": "Разрешить цифровой ПИН-код в локальной сети", + "LocalNetworkPasswordModeHelp": "Выберите метод входа для устройств в той же локальной сети, что и ваш Emby Server.", + "HeaderLocalNetworkAccess": "Доступ к локальной сети", + "Live": "В прямом эфире", + "Reset": "Сбросить", + "Repeat": "Повтор", + "Track": "Трек", + "Tracks": "Треки", + "HeaderCameraUpload": "Загрузить с камеры", + "TrackCount": "{0} Треки", + "ItemCount": "{0} элемент(а/ов)", + "NumberChannelsValue": "{0} Каналы", + "HeaderLatestMusic": "Недавно добавленная музыка", + "HeaderLatestAudioBooks": "Последние аудиокниги", + "HeaderLatestDownloadedVideos": "Последние загруженные видео", + "HeaderRecentlyPlayed": "Недавно просмотренные", + "Recent": "Недавний", + "HeaderFrequentlyPlayed": "Часто проигрываемые", + "HeaderMoreLikeThis": "Похожие", + "HeaderMoreLikeThisOnLiveTV": "Похожее в эфире", + "OriginalAirDateValue": "Дата выхода в эфир: {0}", + "EndsAtValue": "Закончится в {0}", + "Date": "Дата", + "AirDate": "Дата эфира", + "Played": "Смотрел", + "Daily": "Ежедневно", + "Weekly": "Еженедельно", + "RequireHashMatch": "Требовать совпадение хеша", + "RequireHashMatchHelp": "Требование совпадения хэша будет фильтровать субтитры, чтобы включить только те, которые были протестированы с вашим точным видеофайлом. Снятие этой отметки увеличит количество совпадающих субтитров, но также увеличит шансы на субтитры с неправильным временем или неточным текстом.", + "SearchForForcedSubtitlesOnly": "Только форсированные субтитры", + "SearchForForcedSubtitlesOnlyHelp": "Требование форсированных субтитров ограничит результаты субтитрами, помеченными как имеющие иностранный язык.", + "LastEpisodeDateAdded": "Время добавления последнего эпизода", + "LastEpisodeDateAired": "Дата выхода последнего эпизода", + "LabelPlaystate": "Состояние воспроизведения", + "Studio": "Студия", + "Tag": "Тег", + "EpisodeTitle": "Название эпизода", + "Audio": "Аудио", + "Video": "Видео", + "Subtitle": "Субтитры", + "Image": "Изображения", + "CopyStream": "Копировать исходный поток", + "LabelAudioLayout": "Компоновка аудио", + "LabelAudioCodec": "Аудио кодек", + "LabelAudioLanguage": "Звуковая дорожка", + "LabelSubtitleLanguage": "Язык субтитров", + "LabelVideoCodec": "Видео кодек", + "LabelSubtitleCodec": "Кодек субтитров", + "LabelParentalRating": "Возрастной рейтинг", + "BecauseYouLikeValue": "Потому что вам нравится {0}", + "BecauseYouWatchedValue": "Потому что вы смотрели {0}", + "DirectedByValue": "Режиссёр {0}", + "StarringValue": "В ролях {0}", + "Invitations": "Приглашения", + "ActorAsRole": "как {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Группировать элементы в коллекции", + "GroupItemsIntoCollectionsHelp": "Группируйте элементы на основе коллекций, в которые они были добавлены. Включение определенных фильтров или порядков сортировки может автоматически отключить эту функцию.", + "GroupItemsIntoTags": "Сгруппируйте элементы в тегах", + "GroupItemsIntoTagsHelp": "Группируйте элементы по тегам, в которые они были добавлены. Включение определенных фильтров или порядков сортировки может автоматически отключить это.", + "User": "Пользователь", + "Access": "Доступ", + "Users": "Пользователи", + "Library": "Медиатека", + "Devices": "Устройства", + "Cancel": "Отменить", + "Restart": "Перезапуск", + "Shutdown": "Завершить работу", + "Logs": "Логи", + "Visibility": "Видимость", + "Notifications": "Уведомления", + "SendTestNotification": "Отправить тестовое уведомление", + "NotificationSent": "Уведомление отправлено", + "DeleteNotificationConfirmation": "Вы уверены, что хотите удалить это уведомление?", + "DeleteNotification": "Удалить уведомление", + "AddNotification": "Добавить уведомление", + "EditNotification": "Изменить уведомление", + "LimitUserEventsTo": "Ограничить пользовательские события", + "LimitLibraryEventsTo": "Ограничить библиотечные события", + "LimitDeviceEventsTo": "Ограничить события устройств", + "ForAdditionalNotificationOptions": "Дополнительные службы уведомлений могут быть установлены администратором сервера в каталоге плагинов Emby {0} {1} .", + "Plugins": "Плагины", + "Systems": "Платформы", + "Server": "Сервер", + "Dashboard": "Панель", + "PlayOnAnotherDevice": "Воспроизвести на другом устройстве", + "HeaderConnectionHelp": "Справка о соединении", + "AccessRestrictedTryAgainLater": "В настоящее время доступ запрещён. Повторите попытку позже.", + "ButtonGotIt": "Понял", + "RememberMe": "Запомнить меня", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Управление Emby Server", + "ShutdownServer": "Завершить работу Emby Server", + "RestartServer": "Перезапустить Emby Server", + "RecordingCancelled": "Запись отменена", + "SeriesCancelled": "Сериал отменён", + "Recording": "Запись", + "SeriesRecording": "Запись серии", + "RecordingScheduled": "Запись назначена", + "SeriesRecordingScheduled": "Запись сериала назначена", + "HeaderNewRecording": "Новая запись", + "HeaderWakeServer": "Пробудить сервер", + "AttemptingWakeServer": "Идёт попытка разбудить ваш сервер. Ждите...", + "WakeServerSuccess": "Успешно!", + "HeaderCustomizeHomeScreen": "Настроить домашний экран", + "WakeServerError": "Пакеты Wake On LAN были отправлены на вашу серверную машину, однако, мы не смогли соединиться с Emby Server. Возможно, вашей машине потребуется немного больше времени для пробуждения, или Emby Server не может активно работать на данной машине.", + "Days": "Дни", + "Network": "Сеть", + "Networks": "Сети", + "SortByValue": "Сортировка по {0}", + "HeaderSortBy": "Сортировать по", + "HeaderPhotoAlbums": "Фотоальбомы", + "Photos": "Фотографии", + "HeaderAppearsOn": "Появляется на", + "List": "Список", + "HeaderRecordSeries": "Записать серии", + "HeaderCinemaMode": "Вступление к фильму", + "Conversions": "Преобразования", + "Downloads": "Загрузки", + "HeaderManageDownloads": "Управление загрузками", + "InternalStorage": "Внутреннее хранилище", + "ExternalStorage": "Внешнее хранилище", + "UploadToFollowingServers": "Загрузить на сервер", + "UploadingNumItems": "Загружено {0} из {1}", + "DownloadNumItems": "Загрузить {0} из {1}", + "HeaderSampleRate": "Частота дискретизации", + "HeaderReferenceFrames": "Опорные кадры", + "HeaderBitDepth": "Разрядность", + "HeaderPixelFormat": "Формат пикселей", + "Profile": "Профиль", + "Bitrate": "Битрейт", + "Expand": "Расширять", + "Container": "Контейнер", + "Format": "Формат", + "Path": "Путь", + "Size": "Размер", + "Resolution": "Разрешение", + "HeaderCodecTag": "Тег кодека", + "Framerate": "Частота кадров", + "Interlaced": "Чересстрочность", + "Anamorphic": "Анаморфность", + "Level": "Уровень", + "Timestamp": "Метка времени", + "Language": "Язык", + "Codec": "Кодек", + "Stream": "Поток", + "HeaderExtradata": "Дополнительные материалы", + "HeaderHardwareAcceleratedTranscoding": "Аппаратно-ускоренное транскодирование", + "HeaderHardwareAcceleratedTranscodingDescription": "Воспользуйтесь преимуществами вашего серверного GPU. Emby имеет самое передовое и быстрое аппаратное ускорение в отрасли.", + "HeaderOfflineDownloads": "Автономные медиаданные", + "AndMuchMoreExclamation": "И многое другое!", + "HeaderOfflineDownloadsDescription": "Загрузите медиафайлы на свои устройства для удобного использования в автономном режиме.", + "LiveTvFeatureDescription": "Транслируйте ТВ-эфир на любое приложение Emby с помощью совместимого тюнерного устройства, установленного на вашем Emby Server.", + "DvrFeatureDescription": "Запланируйте индивидуальные записи ТВ-Эфира, записи серий и многое другое с Emby DVR.", + "CinemaModeFeatureDescription": "Кино-трейлеры дают вам настоящий кино-опыт с трейлерами и кастомными интро перед основным фильмом.", + "HeaderFreeApps": "Бесплатные приложения Emby", + "FreeAppsFeatureDescription": "Наслаждайтесь бесплатным доступом к приложениям Emby для ваших устройств.", + "HeaderBecomeProjectSupporter": "Приобрести Emby Premiere", + "HeaderViewServerInfo": "Информация о сервере", + "PlaybackTvModeRequiresEmbyPremiere": "Воспроизведение медиа в режиме ТВ требует активной {0}подписки Emby Premiere{1}.", + "FeatureRequiresEmbyPremiere": "Для данной функции требуется действующая {0}подписка Emby Premiere{1}.", + "HeaderConvertYourRecordings": "Конвертируйте свои записи", + "Record": "Записать", + "Save": "Сохранить", + "Edit": "Редактировать", + "HeaderSavePlaylist": "Сохранить плейлист", + "Latest": "Новое", + "Download": "Загрузить", + "Downloaded": "Загружено", + "Converted": "Преобразованный", + "RemoveFromHistory": "Удалить из истории", + "ConfirmRemoveFromHistory": "Удалить этот элемент из истории?", + "Downloading": "Загружается", + "Advanced": "Расширенное", + "LinkedToEmbyConnect": "Привязано к Emby Connect", + "Delete": "Удалить", + "Both": "Оба", + "LabelChannelDisplay": "Отображение канала", + "HeaderDeleteItem": "Удаление элемента", + "HeaderDeleteUser": "Удалить пользователя", + "DeleteItemConfirmation": "Вы действительно хотите удалить {0}?", + "DeleteUserConfirmation": "Вы действительно хотите удалить этого пользователя {0}?", + "DeleteUsersConfirmation": "Вы уверены, что хотите удалить этих {0} пользователей?", + "HeaderDeleteDevice": "Удалить устройство", + "DeleteDeviceConfirmation": "Вы действительно хотите удалить данное устройство? Оно появится снова в следующий раз, когда пользователь войдёт с него.", + "ConfirmDeleteItem": "Удаление этого элемента приведет к его удалению как из файловой системы, так и из вашей медиатеки.", + "FollowingFilesWillBeDeleted": "Будут удалены следующие файлы:", + "AreYouSureToContinue": "Вы действительно хотите продолжить?", + "Refresh": "Обновить", + "RefreshingMetadataDots": "Обновление метаданных...", + "ScanningLibraryFilesDots": "Сканирование файлов медиатеки...", + "HeaderFavoritesThenByChannelNumber": "Избранное, по номеру канала", + "HeaderAddToCollection": "Добавить в коллекцию", + "HeaderFavoritesThenByTitle": "Избранное, по названию", + "HeaderFavoritesThenByDefault": "Избранное, порядок каналов по умолчанию", + "HeaderDefaultChannelOrder": "Порядок каналов по умолчанию", + "HeaderAddToFavorites": "Добавить в избранное", + "HeaderRemoveFromFavorites": "Удалить из избранного", + "Favorited": "Избранное", + "Unfavorited": "Не избранное", + "HeaderNewCollection": "Новая коллекция", + "HeaderNewPlaylist": "Новый плейлист", + "AllCollections": "Все коллекции", + "AllPlaylists": "Все плейлисты", + "Create": "Создать", + "HeaderAddedToPlaylist": "Добавлено в плейлист", + "HeaderAddedToCollection": "Добавлено в коллекцию", + "OneItemAddedTo": "1 элемент добавлен в \"{0}\".", + "ItemsAddedTo": "{0} элемент(а/ов) добавлено в \"{1}\".", + "HeaderAddedToPlayQueue": "Добавлено в очередь воспроизведения", + "HeaderPlayingNext": "Следующий в очереди", + "Help": "Справка", + "HeaderGetHelp": "Получить помощь", + "LabelTVDisplayMode": "Включить режим отображения ТВ", + "Desktop": "Рабочий стол", + "Mobile": "Телефон / Планшет", + "Navigation": "Навигация", + "HeaderVideoPlayback": "Проигрывание видео", + "TV": "ТВ", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Сезоны", + "OneTrack": "1 Трек", + "OneSeason": "1 Сезон", + "Libraries": "Медиатеки", + "NumberSeasonsValue": "{0} Сезонов", + "TVDisplayModeHelp": "Оптимизируйте пользовательский интерфейс на этом устройстве для отображения на телевизоре и метода ввода с помощью пульта дистанционного управления. Это, как правило, не рекомендуется, если ваш основной метод ввода — мышь или сенсорный.", + "LabelDisplayLanguage": "Язык отображения", + "LabelDisplayLanguageHelp": "Перевод Emby ведётся на постоянной основе.", + "LearnHowYouCanContribute": "Изучите, как вы можете внести свой вклад.", + "NewCollectionHelp": "Коллекции позволяют создавать персонализированные группы фильмов и другого содержимого медиатеки.", + "SearchForCollectionInternetMetadata": "Поиск иллюстраций и метаданных в интернете", + "DisplayMissingEpisodesWithinSeasons": "Отображать отсутствующие эпизоды в пределах сезонов", + "DisplayMissingEpisodesWithinSeasonsHelp": "Это также должно быть включено для ТВ-медиатек при установке и настройке Emby Server.", + "EnableThemeSongs": "Включить тематические песни", + "EnableBackdrops": "Включить фоновые изображения", + "EnableThemeSongsHelp": "Если этот параметр включен, тематические песни будут воспроизводиться в фоновом режиме при просмотре медиатеки.", + "EnableBackdropsHelp": "Если этот параметр включен, фоновые изображения будут отображаться в фоновом режиме некоторых страниц во время просмотра медиатеки.", + "EnableThemeVideos": "Включить тематические видео", + "EnableThemeVideosHelp": "При включении, тематические видео будут воспроизводиться фоном при просмотре медиатеки.", + "RunAtStartup": "Запускаться при старте", + "ServerStartup": "Запуск сервера", + "EmbyServerOnXHasStarted": "Emby Server на {0} запущен.", + "LabelScreensaver": "Хранитель экрана", + "LabelSoundEffects": "Звуковые эффекты", + "LabelName": "Имя", + "NewCollectionNameExample": "Пример: Звёздные войны (Коллекция)", + "MessageItemsAdded": "Элементы добавлены.", + "OptionNew": "Новое...", + "LabelPlaylist": "Плейлист", + "AddToPlaylist": "Добавить в плейлист", + "HeaderAddToPlaylist": "Добавить в плейлист", + "Subtitles": "Субтитры", + "LabelTheme": "Тема", + "LabelSettingsTheme": "Тема настроек", + "LabelThemeAccentColor": "Акцентный цвет", + "ThemeAccentColorDescription": "Управляет цветом важных индикаторов, значков и текста.", + "SearchForSubtitles": "Поиск субтитров", + "LabelLanguage": "Язык", + "Search": "Поиск", + "NoSubtitleSearchResultsFound": "Результаты не найдены. Вы настроили {0} загрузку субтитров{1}?", + "NoLyricsSearchResultsFound": "Результатов не найдено. Вы настроили {0}загрузку текстов песен{1}?", + "Lyrics": "Текст песни", + "SearchForLyrics": "Поиск текста песни", + "Finish": "Завершить", + "File": "Файл", + "Exit": "Выход", + "Sleep": "Спящий режим", + "Setup": "Настройка", + "MessageAreYouSureDeleteSubtitles": "Вы уверены, что хотите удалить этот файл с субтитрами?", + "ConfirmDeletion": "Подтвердить удаление", + "MySubtitles": "Мои субтитры", + "MessageDownloadQueued": "Загрузка в очереди.", + "HeaderEditSubtitles": "Редактировать субтитры", + "UnlockGuide": "Разблокировать телегид", + "HeaderRefreshMetadata": "Обновить метаданные", + "HeaderRefreshAllMetadata": "Обновить все метаданные", + "ReplaceExistingImages": "Замена имеющихся рисунков", + "ReplaceExistingImagesHelp": "Все существующие изображения будут удалены, а новые загружены. В некоторых случаях это может привести к меньшему количеству доступных изображений, чем раньше.", + "ReplaceAllMetadata": "Замена всех метаданных", + "SearchForMissingMetadata": "Поиск отсутствующих метаданных", + "LabelRefreshMode": "Режим обновления", + "NoItemsFound": "Ничего не найдено.", + "HeaderSaySomethingLike": "Скажите что-то вроде...", + "ButtonTryAgain": "Попробуй снова", + "HeaderYouSaid": "Вы сказали...", + "MessageWeDidntRecognizeCommand": "Данная команда не распознана.", + "MessageIfYouBlockedVoice": "Если вы запретили голосовой доступ к приложению, вам придется перенастроить его перед повторной попыткой.", + "ValueDiscNumber": "Диск {0}", + "Unrated": "Без рейтинга", + "Favorite": "Избранное", + "Like": "Нравится", + "Dislike": "Не нравится", + "RefreshDialogHelp": "Метаданные обновляются на основе настроек и интернет-сервисов, включенных в панели управления Emby Server.", + "Open": "Открыть", + "Play": "Воспроизвести", + "Pause": "Пауза", + "HeaderPlayQueue": "Очередь воспроизведения", + "HeaderAddToPlayQueue": "Добавить в очередь воспроизведения", + "Shuffle": "Перемешать", + "Identify": "Распознать", + "HeaderRemoveIdentification": "Удалить идентификацию", + "ResetMetadataConfirmation": "Вы уверены, что хотите сбросить все метаданные?", + "HeaderEditMetadata": "Редактировать метаданные", + "Convert": "Конвертировать", + "Resume": "Возобновить", + "HeaderInstantMix": "Автомикс", + "HeaderGoToItem": "Перейти к элементу", + "HeaderGoToSeason": "Перейти к сезону", + "HeaderGoToSeries": "Перейти к серии", + "HeaderGoToAlbum": "Перейти к альбому", + "HeaderGoToArtist": "Перейти к исполнителю", + "HeaderPlayAll": "Играть всё", + "PictureInPicture": "Картинка в картинке", + "Fullscreen": "Полный экран", + "ExitFullscreen": "Выход из полного экрана", + "Rewind": "Перемотка назад", + "FastForward": "Перемотка вперёд", + "Remove": "Удалить", + "Rename": "Переименовать", + "Queue": "Очередь", + "QueueAllFromHere": "Добавить все отсюда в очередь", + "PlayAllFromHere": "Воспроизвести все отсюда", + "PlayFromBeginning": "Воспроизвести с начала", + "FromBeginning": "Сначала", + "ResumeAt": "Продолжить с {0}", + "HeaderRemoveFromPlaylist": "Удалить из плейлиста", + "HeaderRemoveFromPlayQueue": "Убрать из очереди проигрывания", + "HeaderRemoveFromCollection": "Удалить из коллекции", + "Sort": "Сортировать", + "Trailer": "Трейлер", + "SelectNone": "Отменить выбор", + "SelectAll": "Выбрать всё", + "HeaderMarkPlayed": "Отметить как просмотренное", + "HeaderMarkUnplayed": "Отметить как не просмотренное", + "HeaderGroupVersions": "Группировать версии", + "PleaseSelectTwoItems": "Выберите хотя бы два элемента.", + "HeaderConfirmRecordingCancellation": "Подтверждение отмены записи", + "MessageConfirmRecordingCancellation": "Отменить запись?", + "Album": "Альбом", + "AlbumArtist": "Исполнитель альбома", + "Error": "Ошибка", + "VoiceInput": "Голосовой ввод", + "LabelContentType": "Тип контента", + "LabelPath": "Путь", + "Playlists": "Плейлисты", + "LabelTitle": "Название", + "LabelOriginalTitle": "Оригинальное название", + "LabelSortTitle": "Сортировка по названию", + "LabelDateAdded": "Дата добавления", + "DateAdded": "Дата добавления", + "DateModified": "Дата изменения", + "DatePlayed": "Дата просмотра", + "DateLastActive": "Дата последней активности", + "ConfigureDateAdded": "Настройте способ определения даты добавления на панели управления Emby Server в настройках медиатеки", + "LabelStatus": "Статус", + "LabelArtistsHelp": "Используйте \" ; \" для разделения", + "HeaderAlbumArtists": "Исполнители альбома", + "LabelAlbumArtists": "Исполнители альбома", + "LabelAlbum": "Альбом", + "Artist": "Исполнитель", + "Artists": "Исполнители", + "ImdbRating": "Оценка IMDb", + "CommunityRating": "Общественная оценка", + "LabelCommunityRating": "Общественная оценка", + "LabelCriticRating": "Оценка критиков", + "CriticRating": "Оценка критиков", + "LabelWebsite": "Сайт", + "Tagline": "Слоган", + "LabelOverview": "Обзор", + "LabelShortOverview": "Краткий обзор", + "LabelReleaseDate": "Дата выпуска", + "LabelPlaceOfBirth": "Место рождения", + "Aired": "Вышел в эфир", + "LabelAirDays": "Дни эфира", + "LabelAirTime": "Время эфира", + "LabelRuntimeMinutes": "Длительность, минут", + "LabelCustomRating": "Пользовательский рейтинг", + "LabelOriginalAspectRatio": "Исходное соотношение сторон", + "Label3DFormat": "Формат 3D", + "FormatValue": "Формат: {0}", + "DownloadsValue": "Загрузки: {0}", + "HashMatch": "Совпадение хеша", + "EnableExternalVideoPlayers": "Включить внешний видеоплеер", + "EnableExternalVideoPlayersHelp": "При запуске воспроизведения видео будет показано меню внешнего плеера.", + "HeaderSpecialEpisodeInfo": "О специальном эпизоде", + "LabelAirsDuringSeason": "Выходит в течении сезона", + "LabelAirsAfterSeason": "Выходит после сезона", + "LabelAirsBeforeEpisode": "В эфире перед серией", + "HeaderExternalIds": "Внешние идентификаторы", + "HeaderDisplaySettings": "Параметры отображения", + "PlaylistOrder": "Порядок воспроизведения", + "CollectionOrder": "Порядок коллекции", + "LabelDisplayOrder": "Порядок отображения", + "LabelFileOrder": "Порядок файлов", + "Display": "Отображение", + "Countries": "Страны", + "Genres": "Жанры", + "Studios": "Студии", + "Tags": "Теги", + "Links": "Ссылки", + "Movie": "Фильм", + "Program": "Программа", + "Channel": "Канал", + "Episode": "Эпизод", + "Season": "Сезон", + "HeaderMetadataSettings": "Параметры метаданных", + "People": "Люди", + "Number": "Номер", + "Lock": "Заблокировать", + "HeaderScreenLocked": "Экран заблокирован", + "HeaderUnlockControls": "Разблокировать управление", + "HeaderTapToUnlock": "Нажмите, чтобы разблокировать", + "LabelMetadataDownloadLanguage": "Предпочтительный язык загрузки метаданных", + "LabelImageDownloadLanguage": "Предпочитаемый язык загрузки изображений", + "LabelLockItemToPreventChanges": "Заблокируйте этот элемент, чтобы предотвратить изменения в будущем", + "LockThisField": "Заблокируйте это поле, чтобы предотвратить будущие изменения при обновлении метаданных", + "MessageLeaveEmptyToInherit": "Оставьте поле пустым, чтобы наследовать настройки от родительского элемента или глобального значения по умолчанию.", + "LabelCountry": "Страна", + "LabelCertificationCountry": "Страна сертификации", + "CertificationCountryHelp": "Это будет влиять на то, какая система возрастных ограничений будет использоваться.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Год рождения", + "LabelBirthDate": "Дата рождения", + "LabelDeathDate": "Дата смерти", + "LabelEndDate": "Дата окончания", + "LabelSeasonNumber": "Номер сезона", + "LabelEpisodeNumber": "Номер эпизода", + "LabelTrackNumber": "Номер трека", + "LabelNumber": "Номер", + "LabelDiscNumber": "Номер диска", + "LabelParentNumber": "Родительский номер", + "SortName": "Сортировать по названию", + "OriginalTitle": "Оригинальное название", + "ReleaseDate": "Дата выпуска", + "Continuing": "Продолжающееся", + "Ended": "Прекращённое", + "HeaderEnabledFields": "Включённые поля", + "HeaderEnabledFieldsHelp": "Снимите флажок, чтобы зафиксировать поле и защитить его данные от изменнений.", + "Backdrops": "Фоны", + "Images": "Рисунки", + "Runtime": "Длительность", + "ProductionLocations": "Места производства", + "BirthLocation": "Место рождения", + "ParentalRating": "Возрастной рейтинг", + "PlayCount": "Количество просмотров", + "Name": "Имя", + "Overview": "Обзор", + "LabelType": "Тип", + "LabelPersonRole": "Роль", + "LabelPersonRoleHelp": "Пример: водитель грузовика с мороженым", + "Actor": "Актёр", + "Composers": "Композиторы", + "Composer": "Композитор", + "Director": "Режиссёр", + "GuestStar": "Приглашённая звезда", + "Producer": "Продюсер", + "Writer": "Сценарист", + "MessageNoSyncJobsFound": "Загрузок не найдено. Создайте задание загрузки с помощью кнопок \"Загрузить\", находящихся по всему приложению.", + "MessageNoDownloadsFound": "Нет офлайн-загрузок. Загрузите медиафайлы для использования в автономном режиме, нажимая кнопку \"Загрузить\" по всему приложению.", + "InstallingPackage": "Устанавливается {0}", + "PackageInstallCompleted": "Установка {0} завершена.", + "PackageInstallFailed": "Установка {0} не удалась.", + "PackageInstallCancelled": "Установка {0} отменена.", + "SeriesYearToPresent": "{0} - снимается", + "OneDevice": "1 Устройство", + "DeviceCountValue": "{0} устройств", + "OneLog": "1 Журнал", + "LogCountValue": "{0} журналов", + "OneVote": "1 Голос", + "VoteCountValue": "{0} голосов", + "OneLike": "Нравится", + "LikeCountValue": "Нравится: {0}", + "OneUser": "1 Пользователь", + "UserCountValue": "{0} пользователей", + "OneLibrary": "1 Медиатека", + "LibraryCountValue": "{0} Медиатек(а/и)", + "ValueOneItem": "1 элементов", + "ValueOneEpisode": "1 эпизод", + "ValueEpisodeCount": "{0} эпизодов", + "Albums": "Альбомы", + "Song": "Композиция", + "Songs": "Композиции", + "Authors": "Авторы", + "Books": "Книги", + "AudioBooks": "Аудиокниги", + "HeaderAudioBooks": "Аудиокниги", + "HeaderAudioBook": "Аудиокнига", + "HeaderIdentifyItemHelp": "Введите один или несколько критериев поиска. Удалите критерии, чтобы увеличить количество результатов поиска.", + "PleaseEnterNameOrId": "Введите название или внешний ID.", + "MessageItemSaved": "Элемент сохранён.", + "SearchResults": "Результаты поиска", + "ServerNameIsRestarting": "Emby Server - {0} перезапускается.", + "ServerNameIsShuttingDown": "Emby Server - {0} завершает работу.", + "HeaderDeleteItems": "Удалить элементы", + "ConfirmDeleteItems": "Удаление этих элементов приведет к их удалению как из файловой системы, так и из вашей медиатеки.", + "PleaseRestartServerName": "Перезапустите Emby Server на {0}", + "ConvertingDots": "Конвертируется...", + "LabelSyncNoTargetsHelp": "Похоже, сейчас у вас нет приложений, поддерживающих офлайн-загрузку.", + "DownloadingDots": "Скачивание...", + "LearnMore": "Подробнее", + "LabelBitrateMbps": "Битрейт (Mbps)", + "ConvertUnwatchedVideosOnly": "Конвертировать только не просмотренные видео", + "SyncUnwatchedVideosOnly": "Загрузить только не просмотренные видео", + "ConvertUnwatchedVideosOnlyHelp": "Будут конвертированы только видео, которые не отмечены как полностью просмотренные.", + "SyncUnwatchedVideosOnlyHelp": "Только видео, которые не отмечены как полностью просмотренные, будут загружены, и видео будут удалены с устройства по мере полного просмотра.", + "AutomaticallySyncNewContent": "Автоматически загружать новый контент", + "AutomaticallySyncNewContentHelp": "Новый контент, добавленный в папку, будет автоматически загружен в устройство.", + "AutomaticallyConvertNewContent": "Автоматически конвертировать новый контент", + "AutomaticallyConvertNewContentHelp": "Новый контент, добавленный в папку, будет автоматически конвертирован.", + "LabelItemLimit": "Лимит элементов", + "ConvertItemLimitHelp": "(Опционально). Установите ограничение на количество элементов, которые будут конвертированы.", + "DownloadItemLimitHelp": "(Опционально). Установите ограничение на количество загружаемых элементов.", + "PleaseSelectDeviceToSyncTo": "Выберите устройство, куда загружать.", + "Screenshots": "Снимки экрана", + "MoveRight": "Двигать вправо", + "MoveLeft": "Двигать влево", + "HeaderUploadNewImage": "Загрузить новое изображение", + "HeaderDeleteImage": "Удалить изображение", + "ConfirmDeleteImage": "Удалить изображение?", + "HeaderEditImages": "Редактировать изображения", + "Settings": "Параметры", + "ShowIndicatorsFor": "Показать индикаторы", + "Episodes": "Эпизоды", + "Programs": "Передачи", + "HeaderCastCrew": "Актёры и команда", + "DvrSubscriptionRequired": "Для видеорекордера Emby требуется действующая {0}подписка Emby Premiere{1}.", + "HeaderCancelRecording": "Отменить запись", + "HeaderKeepRecording": "Сохранить запись", + "HeaderCancelSeries": "Отменить серию", + "HeaderKeepSeries": "Сохранить серию", + "HeaderLearnMore": "Подробнее", + "SeriesSettings": "Настройки серии", + "HeaderRecordingOptions": "Параметры записи", + "HeaderDoNotRecord": "Не записывать", + "HeaderSeriesOptions": "Параметры серии", + "Layout": "Компоновка", + "Channels": "Каналы", + "ChannelNameOnly": "Только канал {0}", + "Anytime": "В любое время", + "AnyLanguage": "Любой язык", + "AroundTime": "Около {0}", + "HeaderLatestMovies": "Недавно добавленные фильмы", + "All": "Все", + "Stop": "Стоп", + "AllChannels": "Все каналы", + "NewEpisodesOnly": "Только новые эпизоды", + "AllEpisodes": "Все эпизоды", + "LabelStartWhenPossible": "Начать, когда это возможно", + "LabelStopWhenPossible": "Остановить, когда это возможно", + "MinutesBefore": "минут(ы) до", + "MinutesAfter": "минут(ы) после", + "SkipEpisodesAlreadyInMyLibrary": "Не записывать эпизоды, которые уже находятся в моей медиатеке", + "SkipEpisodesAlreadyInMyLibraryHelp": "Эпизоды будут сравниваться по сезонам и номерам серий, если они доступны.", + "LabelKeepUpTo": "Хранить до", + "AsManyAsPossible": "Как можно больше", + "DefaultErrorMessage": "Произошла ошибка при обработке запроса. Повторите попытку позже.", + "UntilIDelete": "Пока я не удалю", + "UntilSpaceNeeded": "Пока не понадобится место", + "Categories": "Категории", + "Sports": "Спорт", + "News": "Новости", + "Movies": "Фильмы", + "Music": "Музыка", + "Kids": "Детям", + "MoreFromValue": "Ещё об {0}", + "DiedValue": "Дата смерти {0}", + "BornValue": "Дата рождения {0}", + "EnableColorCodedBackgrounds": "Включать фон с цветовой кодировкой, в зависимости от категории", + "SortChannelsBy": "Сортировать каналы по", + "ChannelNumber": "Номер канала", + "HeaderBenefitsEmbyPremiere": "Преимущества Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Пожалуйста, наслаждайтесь одной минутой воспроизведения. Спасибо, что попробовали Emby.", + "HeaderTryPlayback": "Попробуйте воспроизведение", + "HowDidYouPay": "Каким образом вы оплатили?", + "IHaveEmbyPremiere": "У меня имеется Emby Premiere", + "IPurchasedThisApp": "Я купил это приложение", + "ButtonRestorePreviousPurchase": "Восстановить покупку", + "ButtonUnlockWithPurchase": "Разблокировать с помощью покупки", + "ButtonUnlockPrice": "Разблокировать {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere на месяц {0}", + "HeaderAlreadyPaid": "Уже оплатили?", + "ButtonPlayOneMinute": "Воспроизвести одну минуту", + "PlaceFavoriteChannelsAtBeginning": "Разместить избранные каналы в начале", + "HeaderUnlockFeature": "Разблокировать функцию", + "MessageDidYouKnowCinemaMode": "Знаете ли вы, что с Emby Premiere вы можете улучшить свои впечатления с помощью таких функций, как Cinema Intros?", + "HeaderPlayMyMedia": "Воспроизвести мои медиаданные", + "HeaderDiscoverEmbyPremiere": "Откройте для себя Emby Premiere", + "HeaderNowPlaying": "Воспроизводится", + "Items": "Элементы", + "AppName": "Название приложения", + "OneChannel": "Один канал", + "ConfirmRemoveDownload": "Удалить загрузку?", + "ConfirmRemoveItem": "Удалить элемент?", + "RemoveDownload": "Удалить загрузку", + "ConfirmCancelConversion": "Отменить преобразование?", + "CancelConversion": "Отменить преобразование", + "KeepDownload": "Сохранить скаченное", + "AddedOnValue": "Добавлен {0}", + "RemovingFromDevice": "Удаление с устройства", + "KeepOnDevice": "Хранить на устройстве", + "CancelDownload": "Отменить загрузку", + "SyncJobItemStatusReadyToTransfer": "Готово к переносу", + "SyncJobItemStatusSyncedMarkForRemoval": "Удаление с устройства", + "SyncJobItemStatusQueued": "В очереди", + "SyncJobItemStatusConverting": "Конвертируется", + "SyncJobItemStatusTransferring": "Переносится", + "SyncJobItemStatusSynced": "Загружено", + "Failed": "Не удалось", + "SyncJobItemStatusRemovedFromDevice": "Удалено с устройства", + "Cancelled": "Отменено", + "Retry": "Повторить", + "Continue": "Продолжить", + "ContinueInSecondsValue": "Продолжить через {0} секунд.", + "HeaderRemoteControl": "Удалённое управление", + "Disconnect": "Отключить", + "EnableDisplayMirroring": "Включить зеркалирование экрана", + "RemoteAccess": "Удалённый доступ", + "HeaderPlayOn": "Воспроизвести на", + "Quality": "Качество", + "Auto": "Авто", + "AndroidUnlockRestoreHelp": "Чтобы восстановить предыдущую покупку, убедитесь, что вы вошли в устройство с той же учетной записью Google или Amazon, которая изначально использовалась для покупки. Убедитесь, что магазин приложений включен и не ограничен каким-либо родительским контролем, и убедитесь, что у вас есть активное подключение к Интернету. Вам нужно будет сделать это только один раз, чтобы восстановить предыдущую покупку.", + "HeaderAspectRatio": "Соотношение сторон", + "Original": "Исходное", + "Fill": "Заполнение", + "Cover": "Обложка", + "MessageNoServersAvailableToConnect": "Нет доступных серверов для подключения. Если вас пригласили поделиться сервером, не забудьте принять его ниже или по ссылке в email.", + "MessagePlayAccessRestricted": "Воспроизведение данного содержания в настоящее время ограничено. Обратитесь к вашему администратору Emby Server.", + "Accept": "Принять", + "Reject": "Отклонить", + "Connect": "Подключить", + "HeaderMyMedia": "Мои медиаданные", + "HeaderMyMediaSmall": "Мои медиаданные (компактно)", + "LatestFromLibrary": "Последнее {0}", + "HeaderLatestEpisodes": "Новые эпизоды", + "ContinuePlaying": "Продолжить воспроизведение", + "ContinueWatching": "Продолжение просмотра", + "HeaderLatestChannelMedia": "Новые каналы", + "HeaderContinueWatching": "Продолжение просмотра", + "HeaderContinueListening": "Продолжить прослушивание", + "HeaderActiveRecordings": "Активные записи", + "HeaderLatestRecordings": "Новые записи", + "LabelConvertTo": "Преобразовать в", + "LabelDownloadTo": "Загрузить на", + "HeaderDownloadToDots": "Загрузить на...", + "Next": "Следующее", + "LabelSource": "Источник", + "VersionNumber": "Версия {0}", + "HeaderAllLanguages": "Все языки", + "Previous": "Предыдущее", + "HeaderNextUp": "Далее", + "HeaderPlayNextUp": "Воспроизвести следующее", + "HeaderLatestFrom": "Новое из {0}", + "LabelHomeScreenSectionValue": "Главная страница - раздел {0}", + "PasswordResetComplete": "Пароль был сброшен.", + "PasswordSaved": "Пароль был сохранён.", + "SettingsSaved": "Параметры сохранены.", + "Upcoming": "Скоро выходит", + "HeaderSelectImageFile": "Выберите файл изображения", + "None": "Нет", + "More": "Ещё", + "Up": "Вверх", + "Down": "Вниз", + "Home": "Главное", + "Back": "Назад", + "Random": "Случайно", + "Playback": "Воспроизведение", + "Favorites": "Избранное", + "HeaderHomeScreen": "Домашний экран", + "HeaderLatestChannelItems": "Новейшее из каналов", + "HeaderLibraryOrder": "Порядок медиатек", + "HeaderOnNow": "В эфире", + "HeaderForKids": "Для детей", + "HeaderPlaybackError": "Ошибка воспроизведения", + "PlaybackErrorNotAllowed": "В настоящее время у вас нет прав для воспроизведения этого контента. Обратитесь к системному администратору за подробностями.", + "RateLimitExceeded": "Ваша учетная запись превысила максимальный лимит потоковой передачи, установленный администратором Emby Server. Свяжитесь с ним для получения помощи.", + "PlaybackErrorNoCompatibleStream": "В настоящее время нет совместимых потоков. Повторите попытку позже или обратитесь к администратору за подробностями.", + "PlaybackErrorPlaceHolder": "Вставьте диск, чтобы воспроизвести это видео.", + "PlaybackErrorNoPlayableItems": "Элементов для воспроизведения не найдено. Вы пытаетесь проиграть пустую папку?", + "Guide": "Телегид", + "Games": "Игры", + "GameSystem": "Игровая система", + "Suggestions": "Рекомендации", + "HeaderFavoriteChannels": "Избранные каналы", + "HeaderFavoriteCollections": "Избранные коллекции", + "HeaderFavoritePlaylists": "Избранные плейлисты", + "Collection": "Коллекция", + "Collections": "Коллекции", + "LabelSelectFolderGroups": "Автоматически группировать контент из следующих папок в представления, такие как Фильмы, Музыка и ТВ-передачи:", + "LabelSelectFolderGroupsHelp": "Папки, которые не отмечены флажком, будут отображаться сами по себе.", + "Mute": "Отключить звук", + "Unmute": "Включить звук", + "Folder": "Папка", + "Folders": "Папки", + "FileName": "Имя файла", + "DisplayInOtherHomeScreenSections": "Отображать на дополнительном главном экране такие разделы, как недавно добавленные медиафайлы и продолжить просмотр", + "DisplayInMyMedia": "Отображать на домашнем экране", + "Shows": "Шоу", + "MoviesAndShows": "Фильмы и шоу", + "HeaderMusicVideo": "Музыкальное видео", + "HeaderMusicVideos": "Видеоклипы", + "MusicVideos": "Видеоклипы", + "Videos": "Видео", + "MixedContent": "Смешанный контент", + "HomeVideos": "Домашнее видео", + "HomeVideosAndPhotos": "Домашнее видео и фото", + "TVShows": "ТВ Шоу", + "HeaderLibraryFolders": "Папки медиатеки", + "HeaderTermsOfPurchase": "Условия покупки", + "PrivacyPolicy": "Политика конфиденциальности", + "TermsOfUse": "Условия использования", + "HeaderRepeatMode": "Режим повтора", + "HeaderToneMapping": "Отображение тонов", + "RepeatOne": "Повторить раз", + "RepeatAll": "Повторить всё", + "LabelDefaultScreen": "Экран по умолчанию", + "ConfirmEndPlayerSession": "Вы хотите завершить работу Emby на {0}?", + "Yesterday": "Вчера", + "Yes": "Да", + "No": "Нет", + "HeaderScanLibraryFiles": "Сканировать медиатеку", + "LiveTV": "Эфир", + "Schedule": "Расписание", + "Recordings": "Записи", + "ScanForNewAndUpdatedFiles": "Сканировать на наличие новых и обновлённых файлов", + "NewVersionOfXAvailableForY": "{0} доступен для {1}", + "DirectStreamHelp1": "Медиа совместимо с устройством по разрешению и типу видео (H.264, AC3 и т.д.), но находится в несовместимом контейнере файла (.mkv, .avi, .wmv и т.д.). Видео будет перепаковано на лету перед потоковым вещанием на устройство.", + "DirectStreamHelp2": "Прямое потоковое вещание файла использует очень мало процессорной мощности без потери качества видео.", + "MediaIsBeingConverted": "Медиа конвертируется в формат, совместимый с устройством, воспроизводящим медиа.", + "StatsForNerds": "Данные для экспертов", + "HeaderHardwareAcceleratedDecoding": "Аппаратное ускорение декодирования", + "HeaderHardwareAcceleratedEncoding": "Аппаратное ускорение кодирования", + "HeaderDirectPlay": "Прямое воспроизведение", + "DirectPlaying": "Воспроизводится напрямую", + "DirectStreaming": "Транслируется напрямую", + "Transcode": "Перекодировка", + "Transcoding": "Перекодировка", + "ContainerBitrateExceedsLimit": "Уменьшение битрейта из-за настроек качества", + "VideoCodecNotSupported": "Конвертирование видео в совместимый кодек", + "AudioCodecNotSupported": "Конвертирование аудио в совместимый кодек", + "SubtitleCodecNotSupported": "Внедрение субтитров непосредственно в видео", + "DirectPlayError": "Восстановление после ошибки воспроизведения", + "ContainerNotSupported": "Конвертирование в совместимый контейнер", + "VideoLevelNotSupported": "Преобразование в подходящий уровень кодека", + "AudioBitrateNotSupported": "Преобразование в подходящий битрейт", + "AudioChannelsNotSupported": "Конвертирование в подходящее количество каналов", + "VideoResolutionNotSupported": "Преобразование видео в подходящее разрешение", + "AudioProfileNotSupported": "Преобразование в подходящий аудио профиль", + "AudioSampleRateNotSupported": "Преобразование аудио в подходящий битрейт", + "AnamorphicVideoNotSupported": "Анаморфное видео не поддерживается", + "InterlacedVideoNotSupported": "Чересстрочное видео", + "SecondaryAudioNotSupported": "Выбор дополнительной аудиодорожки", + "ExternalAudioNotSupported": "Выбор внешней аудиодорожки", + "ErrorRemovingEmbyConnectAccount": "Произошла ошибка при удалении аккаунта Emby Connect. Убедитесь, что у вас есть активное подключение к интернету, и попробуйте еще раз.", + "HeaderEmbyAccountRemoved": "Аккаунт Emby удален", + "MessageEmbyAccontRemoved": "Учетная запись Emby удалена у этого пользователя.", + "HeaderInvitationSent": "Приглашение отправлено", + "Offline": "Автономно", + "HeaderSignUp": "Зарегистрироваться", + "ServerDownloadMessage": "Чтобы загрузить и установить бесплатный Emby Server, посетите {0}", + "ServerDownloadMessageWithoutLink": "Чтобы загрузить и установить бесплатный Emby Server, посетите веб-сайт Emby.", + "MessageInvitationSentToUser": "Письмо отправлено на {0} с приглашением принять ваше приглашение на совместный доступ.", + "MessageInvitationSentToNewUser": "Письмо отправлено на {0} с приглашением зарегистрироваться в Emby.", + "GuestUserNotFound": "Пользователь не найден. Убедитесь, что имя приведено верно и повторите попытку, или попробуйте ввести его email.", + "ErrorReachingEmbyConnect": "Произошла ошибка при подключении к серверу Emby Connect. Убедитесь, что у вас есть активное подключение к Интернету, и повторите попытку.", + "ErrorAddingEmbyConnectAccount1": "Произошла ошибка при добавлении аккаунта Emby Connect. Создали ли вы аккаунт Emby? Зарегистрируйтесь на {0}.", + "ErrorAddingEmbyConnectAccount2": "Если проблема не устранена, отправьте письмо на {0} с email-адреса, используемого для аккаунта в Emby.", + "ErrorAddingGuestAccount1": "Произошла ошибка при добавлении аккаунта Emby Connect. Создал ли ваш гость аккаунт Emby? Он сможет зарегистрироваться на {0}.", + "ErrorAddingGuestAccount2": "Если проблема не устранена, отправьте письмо на {0} и укажите ваш адрес электронной почты, а также их.", + "MessageEmbyAccountAdded": "Аккаунт Emby был добавлен для этого пользователя.", + "MessagePendingEmbyAccountAdded": "Аккаунт Emby был добавлен для этого пользователя. Письмо будет отправлено владельцу аккаунта. Приглашение нужно будет подтвердить, щёлкнув по ссылке в письме.", + "HeaderEmbyAccountAdded": "Аккаунт Emby добавлен", + "Skip": "Пропустить", + "HeaderAdditionalParts": "Дополнительные части", + "ButtonGenerateNewPin": "Генерировать новый ПИН", + "ConnectLoginHelp1": "С помощью Emby Connect вы можете легко получить доступ к своему серверу Emby где угодно и делиться серверами с семьей и друзьями.", + "CreatePinErrorMessage": "Произошла ошибка при создании ПИН-кода. Нажмите кнопку \"Генерировать новый ПИН\" для новой попытки.", + "PinExpiredMessage": "ПИН-код истёк. Нажмите кнопку \"Генерировать новый ПИН\" для новой попытки.", + "ConnectPinCodeHeader": "Чтобы войти с помощью Emby Connect, используйте мобильное устройство или компьютер, чтобы посетить {0} и ввести следующий ПИН-код:", + "LabelSubtitlePlaybackMode": "Режим субтитров", + "ErrorDeletingItem": "Произошла ошибка при удалении элемента с сервера Emby. Пожалуйста, проверьте, что у сервера Emby есть доступ на запись к папке с медиа, и попробуйте еще раз.", + "NoSubtitles": "Без субтитров", + "Default": "По умолчанию", + "Absolute": "Абсолютный", + "Smart": "Умный", + "Small": "Мелкий", + "Smaller": "Маленький", + "Medium": "Средний", + "Large": "Большой", + "Larger": "Крупный", + "ExtraLarge": "Очень крупный", + "ExtraSmall": "Очень мелкий", + "Forced": "Форсированные", + "External": "Внешние", + "HeaderEmbeddedTitle": "Встроенный заголовок", + "OnlyForcedSubtitles": "Только форсированные субтитры", + "AlwaysPlaySubtitles": "Всегда воспроизводить с субтитрами", + "DefaultSubtitlesHelp": "Субтитры загружаются на основе флагов \"По умолчанию\" и \"Форсированные\" в встроенных метаданных. При наличии нескольких вариантов учитываются предпочтения языка.", + "SmartSubtitlesHelp": "Субтитры, соответствующие настройке языка, будут загружаться, если аудио на иностранном языке.", + "HeaderSubtitleSettings": "Параметры субтитров", + "HeaderSubtitleAppearance": "Оформление субтитров", + "OnlyForcedSubtitlesHelp": "Загружены будут только форсированные субтитры.", + "AutoSelectHearingImpairedHelp": "Субтитры, соответствующие настройкам языка, будут загружены, с предпочтением трекам, отмеченным как для людей с нарушениями слуха (SDH).", + "AlwaysPlaySubtitlesHelp": "Субтитры, соответствующие настройке языка, будут загружаться независимо от языка аудио.", + "NoSubtitlesHelp": "Субтитры по умолчанию не загружаются. Их по-прежнему можно включить вручную во время воспроизведения.", + "LabelPreferredSubtitleLanguage": "Предпочитаемый язык субтитров", + "LabelTextSize": "Размер текста", + "TheseSettingsAffectSubtitlesOnThisDevice": "Эти настройки влияют на субтитры на этом устройстве", + "LabelDropShadow": "Тень", + "LabelTextBackgroundColor": "Цвет фона текста", + "LabelWindowBackgroundColor": "Цвет фона текста", + "LabelFont": "Шрифт", + "LabelTextColor": "Цвет текста", + "LabelBackgroundColor": "Цвет фона", + "LabelBackgroundOpacity": "Прозрачность фона", + "Raised": "Приподнятый", + "Depressed": "Вдавленный", + "Uniform": "Равномерный", + "DropShadow": "Тень", + "SmallCaps": "Малые прописные", + "SubtitleAppearanceSettingsDisclaimer": "Эти настройки не применяются к графическим субтитрам (PGS, DVD и т. д.), либо к субтитрам, в которые встроены собственные стили (ASS/SSA).", + "Normal": "Обычный", + "HeaderWaitingForWifi": "В ожидании WiFi", + "WifiRequiredToDownload": "WiFi-соединение требуется для продолжения загрузки.", + "DownloadOnlyOnWifi": "Загружать только по WiFi", + "LabelMusicDownloadQuality": "Качество загрузки музыки", + "MusicDownloadQualityHelp": "Аудиофайлы с более высоким битрейтом будут конвертированы Emby Server. Выберите более высокое значение для лучшего качества или более низкое значение для экономии места на локальном диске.", + "HeaderDownloadSettings": "Параметры загрузки", + "LabelDownloadLocation": "Место загрузки", + "BrowseForFolder": "Обзор папок", + "Unlimited": "Неограниченно", + "NoLimit": "Без лимита", + "Hide": "Скрыть", + "HeaderKeepWatching": "Продолжить просмотр", + "HeaderNextEpisode": "Следующая серия", + "AudioBitDepthNotSupported": "Конвертация в совместимую разрядность аудио", + "VideoBitrateNotSupported": "Конвертация видео в совместимый битрейт", + "VideoProfileNotSupported": "Конвертация в совместимый профиль видео", + "VideoFramerateNotSupported": "Конвертация в совместимую частоту кадров видео", + "VideoBitDepthNotSupported": "Конвертация в совместимую глубину цвета видео", + "RefFramesNotSupported": "Конвертация в совместимое количество опорных кадров видео", + "ErrorConnectServerUnreachable": "При выполнении запрошенной операции произошла ошибка. Ваш сервер не может подключиться к нашему Emby Connect Server по адресу {0}. Пожалуйста, убедитесь, что ваш сервер имеет активное интернет-подключение и что коммуникации разрешены любым установленным у вас брандмауэром или программным обеспечением безопасности.", + "HeaderStopRecording": "Остановка записи", + "ManageRecording": "Управление записью", + "LabelDropImageHere": "Перетащите изображение сюда или нажмите для выбора изображения и загрузки.", + "MessageFileReadError": "Произошла ошибка при считывании файла. Повторите попытку позже.", + "Browse": "Навигация", + "HeaderUploadImage": "Загрузить изображение", + "HeaderAddUpdateImage": "Добавить/Обновить изображение", + "HeaderShowFields": "Показать поля", + "LabelView": "Вид", + "LabelImageType": "Тип рисунка", + "Upload": "Загрузить", + "Primary": "Основной", + "PrimaryImageBlur": "Размытие основного изображения", + "Art": "Художественное оформление", + "Backdrop": "Фон", + "Banner": "Баннер", + "Box": "Изображение коробки", + "BoxRear": "Задняя сторона коробки", + "Disc": "Диск", + "Logo": "Логотип", + "LogoDark": "Логотип (тёмная версия)", + "LogoLight": "Логотип (светлая версия)", + "LogoLightColor": "Логотип (светлый цветной)", + "Menu": "Меню", + "Screenshot": "Снимок экрана", + "Thumb": "Эскиз", + "HeaderAudioSettings": "Параметры аудио", + "LabelAudioLanguagePreference": "Предпочтительный язык аудио", + "LabelPlayDefaultAudioTrack": "Воспроизводить стандартную аудио дорожку независимо от языка", + "HeaderVideoQuality": "Качество видео", + "CinemaModeConfigurationHelp": "Вступление к фильму принесёт ощущения кинотеатра прямо в ваш дом. Возможность проигрывать трейлеры и индивидуальные заставки перед просмотром.", + "ShowUpNextPreview": "Показать предварительный просмотр \"Следующее\"", + "ShowUpNextPreviewHelp": "Показывать информацию о следующем элементе перед завершению текущего.", + "PlayNextEpisodeAutomatically": "Смотреть следующий эпизод автоматически", + "LabelMaxChromecastBitrate": "Качество трансляции Chromecast", + "LabelSkipBackLength": "Длительность перемотки назад", + "LabelSkipForwardLength": "Длительность перемотки вперёд", + "EnableCinemaMode": "Включить вступление к фильму", + "LabelInternetQuality": "Качество удаленной трансляции", + "LabelCellularQuality": "Качество удаленной трансляции (сотовая сеть)", + "HeaderMusicQuality": "Качество музыки", + "LabelHomeNetworkQuality": "Качество трансляции в домашней сети", + "HeaderLatestMedia": "Недавно добавленные", + "HeaderRestartingEmbyServer": "Перезапуск Emby Server", + "RestartPleaseWaitMessage": "Подождите, пока Emby Server выключится и перезапустится. Это может занять минуту или две.", + "HeaderPlayNext": "Воспроизвести следующее", + "AutoBasedOnLanguageSetting": "Авто (в зависимости от настроек устройства)", + "SameAsMainTheme": "То же, что и основная тема", + "LabelDateTimeLocale": "Дата и время", + "Genre": "Жанр", + "DirectorValue": "Режиссёр: {0}", + "DirectorsValue": "Режиссёры: {0}", + "GenreValue": "Жанр: {0}", + "GenresValue": "Жанры: {0}", + "TagsValue": "Теги: {0}", + "Off": "Выкл", + "Title": "Название", + "Year": "Год", + "Filter": "Фильтр", + "Filters": "Фильтры", + "Unplayed": "Не просмотренные", + "LabelTVHomeScreen": "Главная страница при ТВ-режиме", + "Horizontal": "Горизонтально", + "Vertical": "Вертикально", + "HeaderGroupBy": "Группировать по", + "HeaderMediaType": "Тип медиа", + "GroupBySeries": "Группировка по сериям", + "HeaderVideoType": "Тип видео", + "HeaderSeriesStatus": "Статус серии", + "Features": "Материалы", + "Trailers": "Трейлеры", + "Extras": "Дополнения", + "ThemeSongs": "Тематические мелодии", + "ThemeVideos": "Тематические видео", + "HeaderFavoriteMovies": "Избранные фильмы", + "HeaderFavoritePhotos": "Избранные фото", + "HeaderFavoriteShows": "Избранные сериалы", + "HeaderFavoriteEpisodes": "Избранные эпизоды", + "HeaderFavoriteVideos": "Избранные видео", + "HeaderFavoriteMusicVideos": "Избранные музыкальные видео", + "HeaderFavoriteGames": "Избранные игры", + "HeaderFavoriteArtists": "Избранные исполнители", + "HeaderFavoriteAlbums": "Избранные альбомы", + "HeaderFavoriteSongs": "Избранные композиции", + "HeaderFavoriteAuthors": "Избранные авторы", + "HeaderFavoriteAudioBooks": "Избранные аудиокниги", + "Ascending": "По возрастанию", + "Descending": "По убыванию", + "HeaderColorPrimaries": "Основные цвета", + "HeaderColorSpace": "Цветовое пространство", + "HeaderColorTransfer": "Цветопередача", + "HeaderVideoRange": "Диапазон видео", + "SeriesDisplayOrderHelp": "Упорядочить эпизоды по дате выхода в эфир, порядку на DVD или абсолютной нумерации.", + "LabelVerticalPositionFromBottom": "Вертикальное положение (снизу)", + "HeaderFavoritePeople": "Избранные актёры", + "MultiSelect": "Множественный выбор", + "HeaderSignOut": "Выйти", + "HeaderSelectServer": "Выбрать сервер", + "HeaderChangeServer": "Сменить сервер", + "HeaderChangeUser": "Сменить пользователя", + "HeaderAppSettings": "Параметры приложения", + "HeaderLoginSettings": "Параметры входа", + "LabelRememberLogin": "Запомнить логин", + "LabelAutomaticallySignOut": "Автоматический выход", + "BetaTesterMessage": "Спасибо, что вы бета-тестер Emby! Пожалуйста, оставляйте отзывы в {0}Разделе тестирования Сообщества Emby{1}.", + "HardwareAccelerated": "Аппаратное ускорение", + "Software": "Программное обеспечение", + "Metadata": "Метаданные", + "HeaderMediaInfo": "Медиа данные", + "Locked": "Заблокировано", + "HeaderSplitVersionsApart": "Разделить версии", + "Any": "Любой", + "Admin": "Администратор", + "HeaderReadMore": "Читать далее", + "CustomRatingHelp": "Пользовательский рейтинг используется для оценок родительского контроля, но не отображается. Поле родительского рейтинга по-прежнему отображается.", + "KeepUpToHelp": "Записи сверх лимита удаляются при начале следующей записи. Сначала удаляются самые старые записи по дате добавления.", + "NoItemsMatchingFound": "Не найдено элементов, соответствующих вашим критериям поиска.", + "TwoSearchCharsRequired": "Введите не менее двух символов для поиска.", + "PreventPlaybackContinuing": "Предотвратить бесконечное продолжение воспроизведения, периодически запрашивая у пользователя ввод.", + "PromptStillWatching": "Включить запрос \"Вы все ещё смотрите?\"", + "HeaderMissingMetadata": "Недостающие метаданные", + "HeaderIncludedIn": "Включен в", + "EmbyConnectUserAlreadyLinked": "Пользователь Emby Connect уже связан с другим пользователем на этом сервере.", + "VideoFilesWillBeConvertedTo": "Конвертированные видео будут сохранены как {0}.", + "VideoWillBeConvertedTo": "Видеопотоки будут преобразованы в {0} или скопированы из исходного файла, если они уже являются {0} и качество соответствует параметрам преобразования.", + "VideoWillBeConvertedToOrCopied": "Видеопотоки будут преобразованы в {0} или скопированы из исходного файла, если они уже являются ({1}) и качество соответствует параметрам преобразования.", + "AudioWillBeConvertedTo": "Аудиопотоки будут преобразованы в {0} или скопированы из исходного файла, если они уже являются {0} и качество соответствует параметрам преобразования.", + "AudioWillBeConvertedToOrCopied": "Аудиопотоки будут преобразованы в {0} или скопированы из исходного файла, если они уже являются ({1}) и качество соответствует параметрам преобразования.", + "HeaderSpecialKeys": "Дополнительные ключи", + "FollowingSpecialKeys": "Следующие специальные клавиши поддерживаются на большинстве клавиатур и пультов дистанционного управления:", + "HeaderDeleteSeries": "Удалить серии", + "HeaderDeleteLastPlayedEpisode": "Удалить последний проигранный эпизод", + "HeaderConnectingToServer": "Подключение к серверу", + "ServerNameValue": "Имя сервера: {0}", + "DomainValue": "Домен: {0}", + "RatedValue": "Оценка {0}", + "LocalServerRedirectMessage": "Теперь вы будете перенаправлены на домен, принадлежащий и управляемый администратором сервера, к которому вы решили подключиться:", + "AllMediaOwnedHosted": "Все медиафайлы размещаются и управляются владельцем {0}.", + "EnableResolutionSwitching": "Подгонять разрешение видео", + "EnableResolutionSwitchingHelp": "Это позволяет Emby изменять разрешение на то значение, в котором видео было закодировано до начала воспроизведения. Это может помочь минимизировать количество фризов/дерганий, которые вы можете увидеть при воспроизведении видео, которое плохо подходит.", + "EnableDisplayRefreshRateSwitching": "Включить переключение частоты обновления экрана", + "EnableDisplayRefreshRateSwitchingHelp": "Это позволяет Emby изменять частоту обновления экрана на то же значение (или кратное ему) частоты кадров, в которой видео было закодировано до начала воспроизведения. Это может помочь минимизировать количество фризов/дерганий, которые вы можете увидеть при воспроизведении видео, которое плохо подходит.", + "RememberSelectedAudioTracks": "Запомнить выбранные аудио дорожки", + "RememberSelectedSubtitleTracks": "Запомнить выбранные дорожки с субтитрами", + "RememberSelectedSubtitleTracksHelp": "Выбор дорожек субтитров будет запоминаться для каждого видео отдельно и повторно применяться при следующем воспроизведении того же видео.", + "RememberSelectedAudioTracksHelp": "Выбранное аудио будет запоминаться для каждого видео и повторно применяться при повторном воспроизведении того же видео.", + "ClearSavedTrackSelections": "Очистить выбранные сохраненные треки", + "HeaderClearTrackSelections": "Очистить выбранные сохраненные треки", + "QuestionClearSavedTracks": "Очистить все выбранные сохраненные треки?", + "LabelChannelTags": "Теги канала", + "AfterThisPlaysConfirmation": "После проигрывания вы хотите продолжить воспроизведение или очистить очередь ранее добавленной музыки ?", + "Keep": "Сохранить", + "Clear": "Очистить", + "HeaderClearFilters": "Удалить фильтры", + "HeaderSearchForImages": "Поиск изображений", + "HeaderSearchNewImage": "Искать новое изображение", + "HeaderSearchForAnImage": "Искать изображение", + "DragDropToReorder": "Перетащите, чтобы изменить порядок", + "HeaderAddImageFromUrl": "Добавить изображение из URL", + "HeaderSetImageFromUrl": "Установить изображение из URL", + "LabelUrl": "URL", + "LabelChannelNumber": "Номер канала", + "LabelGuideDataChannel": "Телегид канала", + "GuideDataSource": "Источник данных", + "HeaderCopyToClipboard": "Скопировать в буфер обмена", + "TimeRemainingValue": "{0} осталось", + "LabelResumeRewindSeconds": "При возобновлении автоматическая перемотка назад", + "ResumeRewindSecondsHelp": "Это может помочь вам вспомнить, где вы остановились. Это применяется к первоначальному возобновлению воспроизведения, а не к каждой отдельной паузе во время воспроизведения.", + "HeaderSavePlayQueueToPlaylist": "Сохранить очередь воспроизведения в список воспроизведения", + "EnableLogoImagesAsTitle": "Отображать логотипы изображений в качестве заголовков на экранах подробностей", + "EnableLogoImagesAsTitleHelp": "Когда доступны, изображения логотипов могут использоваться вместо текста заголовка на экранах подробностей видео, сериалов и других. Заголовок вернётся к тексту, если изображение логотипа недоступно.", + "LabelNowPlayingAudioBackgroundStyle": "Воспроизводится фоновый стиль аудио", + "LabelNowPlayingVideoBackgroundStyle": "Воспроизводится фоновый стиль видео", + "NowPlayingVideoBackgroundStyleHelp": "Определяет стиль фона при удаленном управлении воспроизведением видео на другом устройстве.", + "Rotation": "Поворот", + "Minutes": "Минуты", + "LabelMaxRecordingLength": "Максимальная длинна записи", + "MaxRecordingLengthHelp": "Ограничивать записи указанным временем, независимо от длительности трансляции. Укажите 0 для снятия ограничения.", + "RemoteWAN": "Удаленный (WAN) адрес", + "HeaderLastConnectedTo": "Последнее подключение к", + "Version": "Версия", + "Keyword": "Ключевое слово", + "HeaderServerAddress": "Адрес сервера", + "HeaderSkipIntro": "Пропустить вступление", + "HeaderCreateRecording": "Создать запись", + "HeaderAddRecording": "Добавить запись", + "HeaderChannelAndTime": "Канал и время", + "LabelRecordProgramOrSeriesFrom": "Записать программу или серию с", + "LabelStartTime": "Начальное время", + "LabelEndTime": "Конечное время", + "LabelFrequency": "Частота", + "Recurring": "Повторяющийся", + "Once": "Единожды", + "Start": "Старт", + "Unpause": "Возобновить", + "LabelIntroSkipMode": "Пропуск вступления", + "ShowSkipIntroButton": "Показать кнопку 'Пропустить вступление'", + "AutoSkipIntro": "Автоматически пропускать вступления", + "DisplayRatingInformationOnVideoPlaybackStart": "Отображать информацию о рейтинге при начале воспроизведения видео", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Информация о рейтинге будет отображаться кратковременно при начале воспроизведения видео.", + "IntroSkipModeHelp": "Отображать кнопку «Пропустить вступление» или автоматически пропускать вступления для эпизодов, в которых Emby Server обнаружил маркеры вступления. Обнаружение вступления должно быть включено в параметрах библиотеки Emby Server.", + "EnableHomeScreenFocusPreview": "Использовать макет на главном экране, который показывает подробный предварительный просмотр выбранного элемента", + "EnableHomeScreenFocusPreviewHelp": "Это может работать не очень хорошо, если главный экран содержит смесь разных типов медиа.", + "LabelHideMediaTransportButtons": "Скрыть кнопки управления видео-плеером", + "HideMediaTransportButtonsHelp": "Создайте более простой интерфейс воспроизведения, скрыв базовые кнопки управления — такие как перемотка вперед, назад и пауза. Вы по-прежнему сможете управлять этими функциями с помощью стрелок и кнопки OK/Enter. Режим «Авто» будет скрывать кнопки управления, если в приложении не обнаруживается использование мыши.", + "ImageSizeHelp": "Установите предпочтительный размер сетки изображений.", + "LabelImageSize": "Размер изображения", + "ThisImageIsOnlyPreview": "Это изображение является только предварительным просмотром, полученным из механизма поиска метаданных. Фактическое изображение, которое скачает Emby Server, может быть другим и будет зависеть от параметров, которые вы настроили в настройках библиотеки Emby.", + "ResultsRangeValue": "с {0} по {1} из {2})", + "NotificationsDescription": "Настройте уведомления, чтобы быть в курсе важных событий на вашем Emby Server.", + "DeleteEmbyConnectAccount": "Удалить аккаунт Emby Connect", + "DeleteEmbyConnectAccountHelp": "Чтобы удалить ваш аккаунт Emby Connect, пожалуйста, войдите в {0}Emby Community{1} на сайте {2}. После входа нажмите на ваше имя пользователя в правом верхнем углу, затем нажмите \"Настройки аккаунта\", затем нажмите \"Удалить мой аккаунт\".", + "KeepPlayingInBackground": "Продолжать воспроизведение в фоне", + "LabelVideoBackBehavior": "Поведение кнопки \"Назад\" в видеоплеере", + "HeaderViewLyrics": "Посмотреть текст песни", + "HeaderViewMissingEpisodes": "Посмотреть пропущенные эпизоды", + "HeaderMissingEpisodes": "Пропущенные эпизоды", + "HeaderManageAccess": "Управление доступом", + "HeaderManageCollaboration": "Управление сотрудничеством", + "HeaderLeaveCollaboration": "Покинуть сотрудничество", + "HeaderRemoveFromLibrary": "Удалить из библиотеки", + "RemoveSharedItemConfirmation": "Вы уверены, что хотите удалить этот элемент из вашей библиотеки? Чтобы вернуть его обратно, владелец должен будет предоставить вам доступ снова.", + "SubtitlesDownloaded": "Субтитры загружены", + "HeaderMakePrivate": "Сделать личным", + "HeaderMakePublic": "Сделать публичным", + "MakePublicDescription": "Все пользователи смогут просматривать этот элемент. Пользователям может быть предоставлен доступ для редактирования.", + "MakePrivateDescription": "Пользователям всё ещё может быть предоставлен индивидуальный доступ.", + "Private": "Личное", + "Public": "Публичное", + "Collaborative": "Совместный", + "PreferredShowDisplay": "Предпочитаемый вид отображения сериалов", + "ShowAllEpisodesAllSeasons": "Показать все эпизоды всех сезонов вместе", + "ShowAllEpisodesSingleSeason": "Показать все эпизоды только для шоу с одним сезоном", + "ShowSeasonFolders": "Всегда показывать папки сезонов", + "HeaderAddAgain": "Добавить снова", + "UpNext": "Следующее", + "ItemsAlreadyInPlaylist": "Некоторые из этих элементов уже находятся в вашем плейлисте.", + "ItemAlreadyInPlaylist": "Этот элемент уже находится в вашем плейлисте.", + "HeaderPlayChannel": "Воспроизвести канал", + "LabelScreenOrientationDuringVideo": "Ориентация экрана во время воспроизведения видео", + "UseDeviceSetting": "Использовать настройки устройства", + "LockToLandscape": "Заблокировать в альбомной ориентации", + "UsernameForFolderHelp": "Имя пользователя, необходимое для доступа к этой папке в вашей сети (если применимо).", + "PasswordForFolderHelp": "Пароль, необходимый для доступа к этой папке в вашей сети (если применимо).", + "ShowMediaInfoOnDetailScreens": "Показывать полные медиа в нижней части экранов подробностей аудио и видео", + "ForgotPasswordNoUserFound": "Пользователей с введенным именем не найдено. Пожалуйста, попробуйте еще раз или оставьте имя пустым, чтобы сбросить пароль для всех пользователей на этом сервере.", + "Silver": "Серебряный", + "DimGray": "Тусклый серый", + "DarkGray": "Тёмно серый", + "LightGray": "Светлый серый", + "Black": "Чёрный", + "Blue": "Синий", + "Cyan": "Голубой", + "Gray": "Серый", + "Green": "Зелёный", + "Lime": "Лаймовый", + "Magenta": "Магента", + "Orange": "Оранжевый", + "Pink": "Розовый", + "Red": "Красный", + "Yellow": "Жёлтый", + "White": "Белый", + "Purple": "Фиолетовый", + "RecentlyReleasedMovies": "Недавно вышедшие фильмы", + "RecentlyReleasedEpisodes": "Недавно вышедшие эпизоды", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP-адрес", + "VideoType": "Тип видео", + "HidePlayedMediaFrom": "Скрыть просмотренное медиа из", + "BottomEdgePosition": "Положение нижнего края", + "VerticalPositionFromBottomScreen": "Установите вертикальную позицию субтитров относительно нижнего края экрана.", + "TopEdgePosition": "Положение верхнего края", + "TopEdgePositionHelp": "Установите максимально допустимую вертикальную позицию субтитров относительно верхнего края экрана. Это используется, когда субтитры содержат инструкции по позиционированию для размещения вверху.", + "HeaderSubtitlePosition": "Позиция субтитров", + "TitleProfilePin": "ПИН профиля", + "ProfilePinConfirm": "ПИН профиля (подтвердить)", + "SaveProfilePin": "Сохранить ПИН", + "ProfilePinDescription": "Создайте необязательный ПИН-код, который будет запрашиваться для входа при каждом возвращении в приложение Emby на устройстве, куда вы уже вошли. Это полезно, если у вас есть устройства, которыми пользуются несколько пользователей. Вы можете включить его выборочно на каждом устройстве по мере необходимости.", + "TitleNewEpisodes": "Новые эпизоды", + "EnterYourPinToContinue": "Введите ваш ПИН, чтобы продолжить.", + "YourPinMustBe": "Ваш PIN должен состоять из {0} цифр.", + "ForgotPin": "Забыли ПИН?", + "RequireEnteringPinToReturn": "Требовать ввод ПИН моего профиля каждый раз, когда я возвращаюсь в это приложение.", + "RequireEnteringPinToReturnQuestion": "Нужно ли запрашивать ПИН вашего профиля каждый раз, когда вы возвращаетесь в это приложение? Если это устройство используется совместно несколькими пользователями, ПИН профиля поможет предотвратить доступ других пользователей к вашим данным.", + "RequireEnteringPinToReturnHelp": "Полезно, если это устройство используется совместно несколькими пользователями.", + "WrongPinPleaseTryAgain": "Упс, неправильный ПИН. Пожалуйста, попробуйте еще раз.", + "ProfilePinIsOn": "ПИН профиля сейчас включен.", + "IfTryingToConnectToHttp": "Если вы пытаетесь подключиться к Emby Server по HTTP-адресу, ваш браузер может не позволять это из-за требований HTTPS. Пожалуйста, попробуйте одно из следующего:", + "SetupHttpsForYourServer": "Настройте {0}HTTPS для вашего Emby Server{1}, чтобы вы могли подключаться по HTTPS.", + "TitleUnableToReachServer": "Невозможно достичь сервера", + "TitleUnableToReachName": "Невозможно достичь {0}", + "HearingImpaired": "Слабослышащие", + "SignIntoServerName": "Войти в {0}", + "About": "Информация", + "Specials": "Специальные эпизоды", + "NSettings": "{0} параметры", + "NPreferences": "{0} параметры", + "DetailScreenOptions": "Экраны подробностей", + "LabelGenreDisplayLimit": "Ограничение отображения жанров", + "GenreDisplayLimitHelp": "Ограничить количество жанров, отображаемых в верхней части экранов подробностей.", + "GenreDisplayLimitForListsHelp": "Ограничить количество жанров, отображаемых в верхней части экранов подробностей плейлистов, коллекций и артистов.", + "LabelGenreDisplayLimitForLists": "Ограничение отображения жанров для списка", + "ShowPosterOnDetails": "Показывать постер на экране подробностей", + "ShowPosterOnDetailsHelp": "Выберите, показывать постер на экранах подробностей видео или скрыть его для более минималистичного вида, который подчеркивает фон. Этот параметр не используется на меньших макетах экрана. Некоторые типы элементов игнорируют этот параметр.", + "EnableAppLogging": "Включить логирование приложения", + "EnableAppLoggingHelp": "Логирование может ухудшить производительность приложения и должно быть включено только по необходимости для устранения неполадок. Изменения требуют перезапуска приложения.", + "LabelSlideshowInterval": "Время показа слайда в фотослайд-шоу", + "TVChannelImageEditorHelp": "Поддерживаются несколько версий логотипов. Приложения Emby автоматически выберут подходящую в зависимости от текущей темы.", + "PlaySlideshow": "Воспроизвести слайд-шоу", + "CheckForExistingEpisodesInAllLibraries": "Проверить существующие эпизоды во всех библиотеках.", + "GroupNotificationsBySeriesOrAlbum": "Группировать уведомления по сериям и альбомам.", + "ThemeSettings": "Параметры темы", + "FollowingActivityWillBeDisrupted": "Следующая активность будет прервана и может потребовать ручного вмешательства для перезапуска:", + "OneActivePlaybackSession": "1 активная сессия воспроизведения", + "NumActivePlaybackSessions": "{0} сесси(я/ий) воспроизведения", + "OneActiveRecording": "1 активная запись", + "NumActiveRecordings": "{0} активных записей", + "PlayFromLivePosition": "Воспроизвести с позиции live", + "PlayFromStartOfRecording": "Воспроизвести с начала записи", + "ThisChannelIsActivelyRecording": "Этот канал активно записывается. Как вы хотите начать воспроизведение?", + "ThemeSongVolume": "Громкость тематической песни", + "HeaderForceConversionForFormats": "Принудительное перекодирование для форматов", + "ForceConversionForFormatsHelp": "Используйте это, чтобы принудительно выполнить транскодирование или ремуксинг со стороны сервера для форматов, которые плохо воспроизводятся напрямую на этом устройстве.", + "StartupBehavior": "Поведение при запуске", + "RememberLastUser": "Запоминать последнего пользователя", + "ShowLoginScreen": "Показывать экран логина", + "SignInAsValue": "Войти как {0}", + "ConvertUnsupportedAudio": "Преобразовать неподдерживаемый окружающий звук в Dolby Digital", + "ConvertUnsupportedAudioHelp": "Избегайте понижения неподдерживаемых форматов окружающего звука до стерео, заставив Emby Server перекодировать их в Dolby Digital.", + "HeaderPlaybackCorrection": "Коррекция воспроизведения", + "HeaderAttemptPlaybackCorrection": "Попытаться исправить воспроизведение", + "PlaybackCorrectionConfirm": "Попытаться исправить воспроизведение?", + "PlaybackCorrectionDescription": "Выявляет ли текущий элемент проблему воспроизведения, такую как отсутствие видео или аудио? Это попытается исправить проблемы воспроизведения с помощью транскодирования на сервере, преобразовав файл в более удобный для стриминга формат. Это приведёт к увеличенному потреблению ресурсов на этом Emby Server.", + "PlaybackCorrectionDescription2": "Вы можете делать это до трёх раз на видео, при этом ремуксирование, транскодирование видео и транскодирование аудио активируются по одному за раз.", + "HeaderAlbumsAsContributingArtist": "Альбомы по участвующему исполнителю", + "HeaderAlbumsAsComposer": "Альбомы по композитору", + "Duplicates": "Дубликаты", + "HeaderSleepTimer": "Таймер сна", + "AfterCurrentItem": "После текущего элемента", + "HeaderStopPlayback": "Остановить воспроизведение", + "TurnOffTimer": "Выключить таймер", + "SleepTimerIsSet": "Ваш таймер сна установлен", + "SleepTimerIsOff": "Ваш таймер сна выключен", + "LabelEnableRemoteControlTVMode": "Отображать функции трансляции и дистанционного управления", + "EnableRemoteControlTVModeHelp": "Включите, если планируете использовать это устройство для отправки медиа на другие устройства.", + "ShowOnScreenControls": "Показывать элементы управления на экране", + "LabelVideoScreenUpAction": "Действие \"вверх\" в видео-плеере", + "VideoScreenUpActionHelp": "Выберите действие, которое будет выполняться при нажатии кнопки вверх на экране видео-плеера. Это применяется, когда экранные элементы управления в данный момент не отображаются. Когда элементы управления уже отображаются, кнопка вверх будет использоваться для навигации.", + "LabelVideoPlayerLongPressAction": "Действие долгого нажатия в видео-плеере", + "LetsGetSetup": "Давайте подготовимся", + "VideoPlayerLongPressActionHelp": "Выберите, какая функция или меню будет показываться при долгом нажатии кнопки \"OK\" во время воспроизведения видео. Это применяется только тогда, когда видеоэлементы управления скрыты или фокус находится на полосе перемотки.", + "AskAdminToGetPremiere": "Эту покупку должен совершить администратор сервера. Пожалуйста, попросите администратора этого Emby Server войти в систему и оформить подписку Emby Premiere, чтобы вы могли пользоваться премиум-функциями.", + "AutoOpenSingleItemsFolders": "Автоматически открывать один элемент в режиме просмотра папок", + "AutoOpenSingleItemsFoldersHelp": "Когда папка содержит только один элемент, автоматически открывать этот элемент.", + "PlayedOnValue": "Воспроизводится {0}", + "TheseSettingsApplyAppDevice": "Эти настройки применяются ко всем пользователям, играющим на этом устройстве.", + "LastContentDateAdded": "Дата добавления последнего контента", + "RepeatThemeMedia": "Зациклить проигрывание тематической музыки", + "HideEpisodeSpoilerInfo": "Скрыть спойлерную информацию из не просмотренных эпизодов", + "HideEpisodeSpoilerInfoHelp": "Скрывает изображение и обзор для не просмотренных эпизодов на большинстве экранов.", + "BornValueAge": "Родился: {0} (возраст {1})", + "PreferDirectStreamLiveTV": "Предпочитать прямое потоковое вещание Live TV", + "PreferDirectStreamLiveTVHelp": "Прямое потоковое вещание Live TV снизит использование ресурсов на Emby Server, но может быть менее удобным для перемотки во время воспроизведения. Включение этого позволит прямое потоковое вещание Live TV, если формат поддерживается и находится в пределах настроек качества. Отключите, чтобы наслаждаться лучшей перемоткой во время воспроизведения за счет дополнительного использования ресурсов.", + "HeaderAllRecordings": "Все записи", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/sk.json b/modules/common/strings/sk.json new file mode 100644 index 0000000..10eed6b --- /dev/null +++ b/modules/common/strings/sk.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby je navrhnuté tak, aby Vám pomohlo spravovať Vašu osobnú knižnicu médií, napríklad domáce videá a fotografie. Prečítajte si naše {0} podmienky používania {1}. Použitie akéhokoľvek softvéru Emby znamená prijatie týchto podmienok.", + "MessageUnableToConnectToServer": "Momentálne sa nemôžeme pripojiť k vybranému serveru. Skontrolujte, či je spustený a skúste to znova.", + "EmbyIntroMessage": "S Emby môžete jednoducho streamovať videá, hudbu a fotografie do chytrých telefónov, tabletov a ďalších zariadení zo svojho servera Emby.", + "HeaderSignInWithConnect": "Prihlásiť sa pomocou Emby Connect", + "HeaderWelcomeToEmby": "Vitajte v Emby", + "HeaderNewUsers": "Noví používatelia", + "HeaderPleaseSignIn": "Prosím, prihláste sa", + "MessageInvalidUser": "Nesprávne používateľské meno alebo heslo. Prosím skúste znova.", + "MessageUnlockAppWithPurchaseOrSupporter": "Odomknite túto funkciu malým jednorazovým nákupom alebo aktívnym predplatným Emby Premiere.", + "MessageUnlockAppWithSupporter": "Odomknite túto funkciu pomocou aktívneho predplatného Emby Premiere.", + "MessageToValidateSupporter": "Ak máte aktívne predplatné Emby Premiere, uistite sa, že ste nastavili Emby Premiere v ovládacom panely servera Emby, ku ktorému máte prístup kliknutím na Emby Premiere v hlavnej ponuke.", + "ValueSpecialEpisodeName": "Špeciál - {0}", + "HeaderSignIn": "Prihlásiť sa", + "Share": "Zdieľať", + "Shared": "Zdieľané", + "Info": "Info", + "Add": "Pridať", + "Speed": "Rýchlosť", + "PlaybackSpeed": "Rýchlosť prehrávania", + "Chapters": "Kapitoly", + "Password": "Heslo", + "SavePassword": "Uložiť heslo", + "LabelPassword": "Heslo", + "HeaderResetPassword": "Obnoviť heslo", + "Series": "Seriál", + "Preview": "Náhľad", + "Submit": "Potvrdiť", + "Never": "Nikdy", + "Table": "Dlaždice", + "HeaderScheduledTasks": "Plánované úlohy", + "Plays": "Prehráva", + "LastUsedAddressValue": "Naposledy použité {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Vybrať stĺpce", + "HeaderTopResults": "Najlepšie výsledky", + "HeaderPinSidebar": "Pripnúť bočný panel", + "Collapse": "Zbaliť", + "LabelBackgroundVideoPlayback": "Prehrávanie videa na pozadí:", + "BackgroundVideoPlaybackHelp": "Prehrávanie na pozadí umožňuje prehrávanie videa, aj keď je obrazovka vypnutá.", + "AlwaysOn": "Vždy zapnutý", + "HeadphonesOrExternalSpeakersConnected": "Pripojené slúchadlá alebo externé reproduktory", + "HeaderKeyboardAndRemote": "Klávesnica a diaľkový ovládač", + "NoSelectedItemsSupportOperation": "Nie sú vybrané žiadne položky, ktoré podporujú túto operáciu.", + "NoOperationsForSelectedItems": "Pre vybrané položky nie sú k dispozícii žiadne operácie.", + "UploadOnlyOnWifi": "Nahrať iba cez Wifi", + "HeaderFoldersToUpload": "Priečinky na nahratie", + "LabelPasswordConfirm": "Heslo (potvrdenie):", + "HeaderMoveUpInOrder": "Posunúť sa hore v poradí", + "HeaderDownUpInOrder": "Posunúť nadol v poradí", + "LabelUsername": "Používateľské meno:", + "HeaderAddServer": "Pridať server", + "HeaderSubtitleOffset": "Ofset titulkov", + "Watching": "Sledovanie", + "HeaderRemoveFromContinueWatching": "Odstrániť z Pokračovať v pozeraní", + "RemoveThisTitleFromContinueWatching": "Odstrániť tento titul z Pokračovať v pozeraní?", + "HeaderRemoveFromContinueListening": "Odstrániť z Pokračovania v počúvaní", + "RemoveThisTitleFromContinueListening": "Odstrániť tento titul z Pokračovania v počúvaní?", + "HeaderIncreaseSubtitleOffset": "Zvýšiť odsadenie titulkov", + "HeaderDecreaseSubtitleOffset": "Znížiť posun titulkov", + "Close": "Zavrieť", + "HeaderSeeAll": "Vidieť všetko", + "HeaderOpenInNewWindow": "Otvoriť v novom okne", + "LabelEmail": "Email:", + "LabelHost": "Host:", + "LabelHostHelp": "192.168.1.100 alebo https://myserver.com", + "LabelPort": "Port:", + "Disabled": "Zablokovaný", + "Uninstall": "Odinštalovať", + "Enable": "Povoliť", + "AllTuners": "All Tuners", + "Disable": "Zakázať", + "NextValue": "Ďalšie: {0}", + "HeaderNextItem": "Ďaľšia položka", + "HeaderPreviousItem": "Predchádzajúca položka", + "NoTrailersMessage": "Nenašli sa žiadne upútavky. Ak chcete pridať upútavky, nainštalujte si doplnok Upútavky z {0} katalógu doplnkov Emby {1}.", + "UninstallPluginConfirmation": "Naozaj chcete tento doplnok odinštalovať?", + "HeaderUninstallPlugin": "Odinštalovať doplnok", + "AreYouStillWatching": "Stále sledujete?", + "LabelCurrentPassword": "Aktuálne heslo:", + "LabelNewPassword": "Nové heslo:", + "LabelNewPasswordConfirm": "Potvrdenie nového hesla:", + "HeaderRemovePassword": "Odstrániť heslo", + "ServerUpdateNeeded": "Tento Emby server treba aktualizovať. Najnovšiu verziu nájdete na {0}", + "MessageThankYouForConnectSignUp": "Ďakujeme, že ste sa zaregistrovali do programu Emby Connect. Na Vašu adresu sa odošle e-mail s pokynmi na potvrdenie nového účtu. Potvrďte účet a potom sa sem vráťte a prihláste sa.", + "MessageThankYouForConnectSignUpNoValidation": "Ďakujeme, že ste sa zaregistrovali do programu Emby Connect! Teraz budete vyzvaný na prihlásenie pomocou údajov z Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "Heslo a potvrdenie hesla sa musia zhodovať.", + "ErrorMessageUsernameInUse": "Používateľské meno sa už používa. Prosím, vyberte nové meno a skúste to znova.", + "ErrorMessageEmailInUse": "E-mailová adresa sa už používa. Prosím, zadajte novú e-mailovú adresu a skúste to znova alebo použite funkciu zabudnutého hesla.", + "HeaderUpcomingOnTV": "Nadchádzajúce v živej TV", + "HeaderOtherShowings": "Iné predstavenia", + "Showings": "Predstavenia", + "HeaderConnectToServer": "Pripojiť k serveru", + "ConnectToServerManually": "Pripojiť k serveru manuálne", + "LabelEnterConnectUserNameHelp": "Toto je Vaše používateľské meno alebo e-mail Vášho online účtu Emby.", + "HeaderSignInError": "Chyba prihlásenia", + "HeaderManualLogin": "Manuálne prihlásenie", + "PasswordResetConfirmation": "Naozaj chcete obnoviť heslo?", + "ContactAdminToResetPassword": "Prosím obráťte sa na správcu systému a požiadajte ho o obnovenie hesla.", + "ForgotPasswordInNetworkRequired": "Prosím skúste to znova vo svojej domácej sieti a začnite proces obnovenia hesla.", + "ForgotPasswordFileCreated": "Na serveri bol vytvorený nasledujúci súbor, ktorý obsahuje pokyny ako postupovať:", + "ForgotPasswordFileExpiration": "Resetovací PIN vyprší o {0}.", + "InvalidForgotPasswordPin": "Bol zadaný neplatný alebo nesprávny PIN. Prosím skúste znova.", + "PasswordResetForUsers": "Heslá boli odstránené pre nasledujúcich používateľov. Ak sa chcete prihlásiť, prihláste sa pomocou prázdneho hesla.", + "HeaderForgotPassword": "Zabudnuté heslo", + "ForgotPasswordUsernameHelp": "Zadať svoje používateľské meno, ak si ho pamätáte.", + "HeaderPasswordReset": "Obnova hesla", + "AttributeNew": "Nové", + "Done": "Hotovo", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Odstránenie prekladania", + "HeaderBurningInSubtitles": "Vloženie titulkov do obrazu", + "Premiere": "Premiéra", + "LabelPinCode": "PIN kód:", + "LabelLocalNetworkPinCode": "PIN kód k lokálnej sieti:", + "LabelLocalNetworkPasswordMode": "Režim prihlásenia do lokálnej siete:", + "RequirePasswordInLocalNetwork": "Vyžadovať heslo v lokálnej sieti", + "NoPasswordInLocalNetwork": "Nevyžadovať heslo v lokálnej sieti", + "PinCodeInLocalNetwork": "Povoliť číselný kód PIN v lokálnej sieti", + "LocalNetworkPasswordModeHelp": "Vybrať metódu prihlásenia pre zariadenia v rovnakej lokálnej sieti ako váš server Emby.", + "HeaderLocalNetworkAccess": "Prístup k lokálnej sieti", + "Live": "Naživo", + "Reset": "Obnoviť", + "Repeat": "Opakovať", + "Track": "Track", + "Tracks": "Zvukové stopy", + "HeaderCameraUpload": "Nahrať z fotoaparátu", + "TrackCount": "{0} zvukové stopy/zvukových stôp", + "ItemCount": "{0} položky/položiek", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Najnovšia hudba", + "HeaderLatestAudioBooks": "Najnovšie audio knihy", + "HeaderLatestDownloadedVideos": "Najnovšie stiahnuté videá", + "HeaderRecentlyPlayed": "Nedávno prehrané", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Často hrané", + "HeaderMoreLikeThis": "Podobné položky", + "HeaderMoreLikeThisOnLiveTV": "Podobné položky v živom televíznom vysielaní", + "OriginalAirDateValue": "Pôvodný dátum vysielania: {0}", + "EndsAtValue": "Končí o {0}", + "Date": "Date", + "AirDate": "Dátum odvysielania", + "Played": "Prehrané", + "Daily": "Denne", + "Weekly": "Týždenne", + "RequireHashMatch": "Vyžadovať zhodu (hash)", + "RequireHashMatchHelp": "Vyžadujúca zhoda (hash) vyfiltruje titulky tak, aby obsahovali iba tie, ktoré boli testované s Vaším konkrétnym video súborom. Zrušením zaškrtnutia sa zvýši počet zhodujúcich sa titulkov, ale tiež sa zvýši pravdepodobnosť chybného alebo nesprávneho textu titulkov.", + "SearchForForcedSubtitlesOnly": "Iba vynútené titulky", + "SearchForForcedSubtitlesOnlyHelp": "Vyžadovanie vynútených titulkov obmedzí výsledky na titulky, ktoré sú označené ako v cudzom jazyku.", + "LastEpisodeDateAdded": "Dátum poslednej pridanej epizódy", + "LastEpisodeDateAired": "Dátum vydania poslednej epizódy", + "LabelPlaystate": "Stav prehrávania:", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Názov epizódy", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Titulky", + "Image": "Obrázok", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Zvukový kodek:", + "LabelAudioLanguage": "Jazyk zvuku:", + "LabelSubtitleLanguage": "Jazyk titulkov:", + "LabelVideoCodec": "Video kodek:", + "LabelSubtitleCodec": "Formát titulkov:", + "LabelParentalRating": "Rodičovské hodnotenie", + "BecauseYouLikeValue": "Pretože sa vám páči {0}", + "BecauseYouWatchedValue": "Pretože ste pozerali {0}", + "DirectedByValue": "Režíroval {0}", + "StarringValue": "V hlavnej úlohe {0}", + "Invitations": "Pozvánky", + "ActorAsRole": "ako {0}", + "ButtonOk": "Ok", + "GroupItemsIntoCollections": "Zoskupiť položky do zbierok", + "GroupItemsIntoCollectionsHelp": "Zoskupujte pridané položky do zbierok. Povolenie určitých filtrov alebo triedení to môže automaticky zakázať.", + "GroupItemsIntoTags": "Zoskupte položky do tagov", + "GroupItemsIntoTagsHelp": "Zoskupiť položky podľa tagov, ku ktorým boli pridané. Túto funkciu automaticky deaktivujú určité filtre alebo zoradenia.", + "User": "User", + "Access": "Prístup", + "Users": "Používatelia", + "Library": "Knižnica", + "Devices": "Zariadenia", + "Cancel": "Zrušiť", + "Restart": "Reštartovať", + "Shutdown": "Vypnúť", + "Logs": "Logy", + "Visibility": "Viditeľnosť", + "Notifications": "Oznámenia", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Oznámenie odoslané", + "DeleteNotificationConfirmation": "Naozaj si prajete odstrániť toto oznámenie?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Upraviť oznámenie", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Doplnky", + "Systems": "Systémy", + "Server": "Server", + "Dashboard": "Nástenka", + "PlayOnAnotherDevice": "Prehrať na inom zariadení", + "HeaderConnectionHelp": "Nápoveda k pripojeniu", + "AccessRestrictedTryAgainLater": "Prístup je momentálne obmedzený. Skúste prosím neskôr.", + "ButtonGotIt": "Rozumiem", + "RememberMe": "Zapamätať si ma", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Spravovať Emby server", + "ShutdownServer": "Vypnúť Emby server", + "RestartServer": "Reštartovať Emby server", + "RecordingCancelled": "Nahrávanie zrušené.", + "SeriesCancelled": "Seriál zrušený.", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Plán nahrávania.", + "SeriesRecordingScheduled": "Nahrávanie seriálu naplánované.", + "HeaderNewRecording": "Nová nahrávka", + "HeaderWakeServer": "Zobudiť server", + "AttemptingWakeServer": "Pokúšam sa zobudiť server. Prosím počkajte...", + "WakeServerSuccess": "Vyšlo to!", + "HeaderCustomizeHomeScreen": "Prispôsobiť domovskú obrazovku", + "WakeServerError": "Pakety Wake On LAN boli odoslané do Vašho serveru, ale nemôžeme sa pripojiť k Vášmu serveru Emby. Možno bude potrebné trochu času, aby sa zariadenie prebudilo, alebo server Emby nemusí byť na počítači aktívne spustený.", + "Days": "Dni", + "Network": "Sieť", + "Networks": "Siete", + "SortByValue": "Zoradiť podľa {0}", + "HeaderSortBy": "Zoradiť podľa", + "HeaderPhotoAlbums": "Fotoalbumy", + "Photos": "Fotky", + "HeaderAppearsOn": "Zobrazí sa", + "List": "Zoznam", + "HeaderRecordSeries": "Nahrať seriál", + "HeaderCinemaMode": "Kino úvody", + "Conversions": "Konverzie", + "Downloads": "Sťahovania", + "HeaderManageDownloads": "Spravovať sťahovania", + "InternalStorage": "Interné úložisko", + "ExternalStorage": "Externé úložisko", + "UploadToFollowingServers": "Nahrať na servery", + "UploadingNumItems": "Nahrávanie {0} z {1}", + "DownloadNumItems": "Sťahovanie {0} z {1}", + "HeaderSampleRate": "Vzorkovacia frekvencia", + "HeaderReferenceFrames": "Referenčné rámce", + "HeaderBitDepth": "Bitová hĺbka", + "HeaderPixelFormat": "Pixel formát", + "Profile": "Profil", + "Bitrate": "Dátový tok", + "Expand": "Rozbaliť", + "Container": "Kontajner", + "Format": "Formát", + "Path": "Cesta", + "Size": "Veľkosť", + "Resolution": "Rozlíšenie", + "HeaderCodecTag": "Značka kodeku", + "Framerate": "Snímková frekvencia", + "Interlaced": "prekladané", + "Anamorphic": "Anamorfné", + "Level": "Úroveň", + "Timestamp": "Časová značka", + "Language": "Jazyk", + "Codec": "Kodek", + "Stream": "Stream", + "HeaderExtradata": "Extra údaje", + "HeaderHardwareAcceleratedTranscoding": "Hardvérovo akcelerované transkódovanie", + "HeaderHardwareAcceleratedTranscodingDescription": "Využite GPU svojho servera. Emby ponúka najpokročilejšiu a najrýchlejšiu hardvérovú akceleráciu na trhu.", + "HeaderOfflineDownloads": "Offline médiá", + "AndMuchMoreExclamation": "A oveľa viac!", + "HeaderOfflineDownloadsDescription": "Stiahnúť médiá do Vašich zariadení, aby ste ich mohli ľahko používať offline.", + "LiveTvFeatureDescription": "Streamujte živé televízne vysielanie do ľubovoľnej aplikácie Emby s kompatibilným zariadením na ladenie televíznych programov nainštalovaným na vašom serveri Emby.", + "DvrFeatureDescription": "Naplánovať nahrávky pre živé televízne vysielanie, seriály a iné pomocou Emby DVR.", + "CinemaModeFeatureDescription": "Kino úvody Vám poskytnú skutočný zážitok z kina, pred filmom Vám prehrá upútavky a vlastné úvody.", + "HeaderFreeApps": "Emby aplikície zdarma", + "FreeAppsFeatureDescription": "Užite si voľný prístup k aplikáciám Emby pre Vaše zariadenia.", + "HeaderBecomeProjectSupporter": "Získať Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Prehrávanie médií v TV režime vyžaduje aktívne {0}predplatné Emby Premiere{1}.", + "FeatureRequiresEmbyPremiere": "Táto funkcia vyžaduje aktívne predplatné {0} Emby Premiere {1}.", + "HeaderConvertYourRecordings": "Konvertovať Vaše nahrávky", + "Record": "Nahrať", + "Save": "Uložiť", + "Edit": "Upraviť", + "HeaderSavePlaylist": "Uložiť zoznam skladieb", + "Latest": "Najnovšie", + "Download": "Stiahnuť", + "Downloaded": "Stiahnuté", + "Converted": "Prekonvertované", + "RemoveFromHistory": "Odobrať z histórie", + "ConfirmRemoveFromHistory": "Odobrať túto položku z histórie?", + "Downloading": "Sťahuje sa", + "Advanced": "Pokročilé", + "LinkedToEmbyConnect": "Prepojené s Emby Connect", + "Delete": "Zmazať", + "Both": "Oboje", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Zmazať položku", + "HeaderDeleteUser": "Zmazať používateľa", + "DeleteItemConfirmation": "Ste si istý, že chcete zmazať {0}?", + "DeleteUserConfirmation": "Naozaj chcete zmazať používateľa {0}?", + "DeleteUsersConfirmation": "Naozaj si prajete odstrániť týchto {0} používateľov?", + "HeaderDeleteDevice": "Zmazať zariadenie", + "DeleteDeviceConfirmation": "Naozaj chcete toto zariadenie zmazať? Znova sa objaví pri najbližšom prihlásení používateľa.", + "ConfirmDeleteItem": "Zmazanie položky zmaže položku zo súborového systému aj z knižnice médií.", + "FollowingFilesWillBeDeleted": "Nasledujúce súbory a priečinky budú zmazané:", + "AreYouSureToContinue": "Naozaj chcete pokračovať?", + "Refresh": "Obnoviť", + "RefreshingMetadataDots": "Obnovujú sa metadáta ...", + "ScanningLibraryFilesDots": "Prebieha skenovanie súborov knižnice ...", + "HeaderFavoritesThenByChannelNumber": "Obľúbené, potom podľa čísla kanála", + "HeaderAddToCollection": "Pridať do zbierky", + "HeaderFavoritesThenByTitle": "Obľúbené, potom podľa názvu", + "HeaderFavoritesThenByDefault": "Obľúbené, potom podľa predvoleného poradia kanálov", + "HeaderDefaultChannelOrder": "Predvolené poradie kanálov", + "HeaderAddToFavorites": "Pridať k obľúbeným", + "HeaderRemoveFromFavorites": "Odstrániť z obľúbených", + "Favorited": "Obľúbené", + "Unfavorited": "Neobľúbené", + "HeaderNewCollection": "Nová zbierka", + "HeaderNewPlaylist": "Nový zoznam skladieb", + "AllCollections": "Všetky kolekcie", + "AllPlaylists": "Všetky Playlisty", + "Create": "Vytvoriť", + "HeaderAddedToPlaylist": "Pridané do zoznamu skladieb", + "HeaderAddedToCollection": "Pridané do zbierky", + "OneItemAddedTo": "1 položka pridaná do „{0}“.", + "ItemsAddedTo": "{0} položky/položiek boli pridané do \"{1}“.", + "HeaderAddedToPlayQueue": "Pridané do Prehrať frontu", + "HeaderPlayingNext": "Hrá Ďalšie", + "Help": "Nápoveda", + "HeaderGetHelp": "Získať pomoc", + "LabelTVDisplayMode": "Povoliť režim zobrazenia TV", + "Desktop": "Stolný počítač", + "Mobile": "Mobil/Tablet", + "Navigation": "Navigácia", + "HeaderVideoPlayback": "Prehrávanie videa", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Sezóny", + "OneTrack": "1 zvuková stopa", + "OneSeason": "1 sezóna", + "Libraries": "Knižnice", + "NumberSeasonsValue": "{0} sezóny/sezón", + "TVDisplayModeHelp": "Optimalizovať používateľské rozhranie na tomto zariadení pre zobrazenie na TV a ovládanie pomocou diaľkového ovládača. Toto sa zvyčajne neodporúča, ak je vašou hlavnou metódou ovládania myšou alebo dotykom.", + "LabelDisplayLanguage": "Jazyk rozhrania:", + "LabelDisplayLanguageHelp": "Preklad Emby je projekt vo fáze neustáleho vývoja.", + "LearnHowYouCanContribute": "Zistiť ako môžem prispieť.", + "NewCollectionHelp": "Zbierky Vám umožňujú vytvárať prispôsobené zoskupenia filmov a iného obsahu knižnice.", + "SearchForCollectionInternetMetadata": "Vyhľadať metadáta a obrázky na internete.", + "DisplayMissingEpisodesWithinSeasons": "Zobraziť chýbajúce epizódy v rámci sezóny.", + "DisplayMissingEpisodesWithinSeasonsHelp": "V nastavení servera Emby musí byť aj toto povolené pre televízne knižnice.", + "EnableThemeSongs": "Povoliť tematické skladby", + "EnableBackdrops": "Povoliť pozadia", + "EnableThemeSongsHelp": "Ak je povolené, budú počas prechádzania knižnice na pozadí prehrávané tematické videá.", + "EnableBackdropsHelp": "Ak je povolené, budú počas prechádzania knižnice na pozadí niektorých stránok zobrazované pozadia.", + "EnableThemeVideos": "Povoliť tematické videá", + "EnableThemeVideosHelp": "Ak je povolené, budú počas prechádzania knižnice na pozadí prehrávané tematické videá.", + "RunAtStartup": "Spustiť pri štarte", + "ServerStartup": "Spustenie servera", + "EmbyServerOnXHasStarted": "Emby server na {0} bol spustený.", + "LabelScreensaver": "Šetrič obrazokvy:", + "LabelSoundEffects": "Zvukové efekty:", + "LabelName": "Meno:", + "NewCollectionNameExample": "Príklad: Star Wars zbierka", + "MessageItemsAdded": "Položky pridané.", + "OptionNew": "Nové...", + "LabelPlaylist": "Zoznam skladieb:", + "AddToPlaylist": "Pridať do zoznamu skladieb", + "HeaderAddToPlaylist": "Pridať do zoznamu skladieb", + "Subtitles": "Titulky", + "LabelTheme": "Téma:", + "LabelSettingsTheme": "Nastavenie témy:", + "LabelThemeAccentColor": "Akcentová farba", + "ThemeAccentColorDescription": "Ovláda farbu dôležitých indikátorov, ikon a textu.", + "SearchForSubtitles": "Hľadať titulky", + "LabelLanguage": "Jazyk:", + "Search": "Hľadať", + "NoSubtitleSearchResultsFound": "Neboli nájdené žiadne výsledky. Už ste nakonfigurovali sťahovanie{1} {0}titulkov?", + "NoLyricsSearchResultsFound": "Nenašli sa žiadne výsledky. Máte nastavené {0}sťahovanie textov piesní{1}?", + "Lyrics": "Texty piesní", + "SearchForLyrics": "Hľadaj texty piesní", + "Finish": "Dokončiť", + "File": "Súbor", + "Exit": "Odísť", + "Sleep": "Uspať", + "Setup": "Nastavenie", + "MessageAreYouSureDeleteSubtitles": "Ste si istý, že chcete zmazať tieto titulky?", + "ConfirmDeletion": "Potvrdiť zmazanie", + "MySubtitles": "Moje titulky", + "MessageDownloadQueued": "Stiahnutie naplánované.", + "HeaderEditSubtitles": "Upraviť titulky", + "UnlockGuide": "Sprievodca pre odomknutie", + "HeaderRefreshMetadata": "Obnoviť metadáta", + "HeaderRefreshAllMetadata": "Obnoviť všetky metadáta", + "ReplaceExistingImages": "Nahradiť existujúce obrázky", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceAllMetadata": "Nahradiť všetky metadáta", + "SearchForMissingMetadata": "Hľadať chýbajúce metadáta", + "LabelRefreshMode": "Režim obnovovania:", + "NoItemsFound": "Nenašli sa žiadne položky.", + "HeaderSaySomethingLike": "Povedzte niečo ako...", + "ButtonTryAgain": "Skúsiť znova", + "HeaderYouSaid": "Povedali ste...", + "MessageWeDidntRecognizeCommand": "Je nám to ľúto, tento príkaz nebol rozpoznaný.", + "MessageIfYouBlockedVoice": "Ak ste odmietli hlasový prístup k aplikácii, musíte ju pred ďalším pokusom znova nakonfigurovať.", + "ValueDiscNumber": "Disk {0}", + "Unrated": "Nehodnotené", + "Favorite": "Obľúbené", + "Like": "Páči sa mi to", + "Dislike": "Nepáči sa mi to", + "RefreshDialogHelp": "Metadáta sa obnovujú na základe nastavení a internetových služieb, ktoré sú povolené v ovládacom panely servera Emby.", + "Open": "Otvoriť", + "Play": "Prehrať", + "Pause": "Pozastaviť", + "HeaderPlayQueue": "Prehrať frontu", + "HeaderAddToPlayQueue": "Pridať do fronty prehrávania", + "Shuffle": "Zamiešať", + "Identify": "Identifikovať", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Upraviť metadáta", + "Convert": "Konvertovať", + "Resume": "Pokračovať", + "HeaderInstantMix": "Okamžitý mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Prehrať všetko", + "PictureInPicture": "Obraz v obraze", + "Fullscreen": "Celá obrazovka", + "ExitFullscreen": "Opustiť celú obrazovku", + "Rewind": "Pretočiť", + "FastForward": "Rýchlo vpred", + "Remove": "Odstrániť", + "Rename": "Premenovať", + "Queue": "Fronta", + "QueueAllFromHere": "Zaradiť všetko do fronty", + "PlayAllFromHere": "Prehrať všetko odtiaľto", + "PlayFromBeginning": "Prehrať od začiatku", + "FromBeginning": "Od začiatku", + "ResumeAt": "Pokračovať od {0}", + "HeaderRemoveFromPlaylist": "Odstrániť zo zoznamu skladieb", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Odstrániť zo zbierky", + "Sort": "Zoradiť", + "Trailer": "Upútavka", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Označiť ako prehrané", + "HeaderMarkUnplayed": "Označiť ako neprehrané", + "HeaderGroupVersions": "Zoskupiť verzie", + "PleaseSelectTwoItems": "Vyberte prosím aspoň dve položky.", + "HeaderConfirmRecordingCancellation": "Potvrdiť zrušenie nahrávania", + "MessageConfirmRecordingCancellation": "Zrušiť nahrávanie?", + "Album": "Album", + "AlbumArtist": "Umelec albumu", + "Error": "Chyba", + "VoiceInput": "Hlasový vstup", + "LabelContentType": "Typ obsahu:", + "LabelPath": "Cesta:", + "Playlists": "Zoznamy skladieb", + "LabelTitle": "Názov:", + "LabelOriginalTitle": "Pôvodný názov:", + "LabelSortTitle": "Triediť podľa názvu:", + "LabelDateAdded": "Dátum pridania:", + "DateAdded": "Dátum pridania", + "DateModified": "Date Modified", + "DatePlayed": "Dátum prehrania", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Nakonfigurovať spôsob určovania dátumu pridania na ovládacom paneli Emby Server v časti Nastavenia knižnice", + "LabelStatus": "Stav:", + "LabelArtistsHelp": "Oddeliť pomocou ;", + "HeaderAlbumArtists": "Umelci albumu", + "LabelAlbumArtists": "Umelci albumu:", + "LabelAlbum": "Album:", + "Artist": "Umelec", + "Artists": "Umelci", + "ImdbRating": "IMDb hodnotenie", + "CommunityRating": "Hodnotenie komunity", + "LabelCommunityRating": "Hodnotenie komunity:", + "LabelCriticRating": "Hodnotenie kritikov:", + "CriticRating": "Hodnotenie kritikov", + "LabelWebsite": "Webstránka:", + "Tagline": "Tagline", + "LabelOverview": "Prehľad:", + "LabelShortOverview": "Stručný prehľad:", + "LabelReleaseDate": "Dátum vydania:", + "LabelPlaceOfBirth": "Miesto narodenia:", + "Aired": "Vysielané", + "LabelAirDays": "Vysielacie dni:", + "LabelAirTime": "Vysielací čas:", + "LabelRuntimeMinutes": "Dĺžka (v minútach):", + "LabelCustomRating": "Vlastné hodnotenie:", + "LabelOriginalAspectRatio": "Pôvodný pomer strán:", + "Label3DFormat": "3D formát:", + "FormatValue": "Formát: {0}", + "DownloadsValue": "{0} stiahnutia/stiahnutí", + "HashMatch": "Zhoda (hash)", + "EnableExternalVideoPlayers": "Povoliť externé video prehrávače", + "EnableExternalVideoPlayersHelp": "Pri spustení prehrávania videa sa zobrazí ponuka externého prehrávača.", + "HeaderSpecialEpisodeInfo": "Informácie o špeciálnej epizóde", + "LabelAirsDuringSeason": "Vysielané počas sezóny:", + "LabelAirsAfterSeason": "Vysielané po sezóne:", + "LabelAirsBeforeEpisode": "Vysielané pred epizódou:", + "HeaderExternalIds": "Externé ID:", + "HeaderDisplaySettings": "Nastavenia zobrazenia", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Poradie zobrazenia:", + "LabelFileOrder": "File order", + "Display": "Zobraziť", + "Countries": "Krajiny", + "Genres": "Žánre", + "Studios": "Štúdiá", + "Tags": "Štítky", + "Links": "Odkazy", + "Movie": "Film", + "Program": "Program", + "Channel": "Channel", + "Episode": "Epizóda", + "Season": "Sezóna", + "HeaderMetadataSettings": "Nastavenia metadát", + "People": "Ľudia", + "Number": "Číslo", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Preferovaný jazyk sťahovaných metadát:", + "LabelImageDownloadLanguage": "Preferovaný jazyk sťahovaných obrázkov:", + "LabelLockItemToPreventChanges": "Zamknúť túto položku aby sa predišlo budúcim zmenám", + "LockThisField": "Uzamknúť toto pole, pre zabránenie budúcich zmien pri obnovovaní metadát", + "MessageLeaveEmptyToInherit": "Ponechať prázdne, ak chcete zdediť nastavenia od nadradenej položky alebo globálnej predvolenej hodnoty.", + "LabelCountry": "Krajina:", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id:", + "LabelBirthYear": "Rok narodenia:", + "LabelBirthDate": "Dátum narodenia:", + "LabelDeathDate": "Dátum úmrtia:", + "LabelEndDate": "Dátum ukončenia:", + "LabelSeasonNumber": "Číslo sezóny:", + "LabelEpisodeNumber": "Číslo epizódy:", + "LabelTrackNumber": "Číslo zvukovej stopy:", + "LabelNumber": "Číslo:", + "LabelDiscNumber": "Číslo disku:", + "LabelParentNumber": "Rodičovské číslo:", + "SortName": "Zoradiť podľa názvu", + "OriginalTitle": "Original Title", + "ReleaseDate": "Dátum vydania", + "Continuing": "Pokračovanie", + "Ended": "Ukončené", + "HeaderEnabledFields": "Povolené polia", + "HeaderEnabledFieldsHelp": "Zrušiť zaškrtnutie políčka, aby sa zablokovalo a zabránilo tak zmene jeho údajov.", + "Backdrops": "Pozadie", + "Images": "Obrázky", + "Runtime": "Doba behu", + "ProductionLocations": "Miesta výroby", + "BirthLocation": "Miesto narodenia", + "ParentalRating": "Rodičovské hodnotenie", + "PlayCount": "Počet prehraní", + "Name": "Názov", + "Overview": "Prehľad", + "LabelType": "Typ:", + "LabelPersonRole": "Úloha:", + "LabelPersonRoleHelp": "Príklad: Vodič kamiónu so zmrzlinou", + "Actor": "Herec", + "Composers": "Skladatelia", + "Composer": "Skladateľ", + "Director": "Režisér", + "GuestStar": "Hosťujúca hviezda", + "Producer": "Producent", + "Writer": "Spisovateľ", + "MessageNoSyncJobsFound": "Nenašli sa žiadne stiahnuté súbory. Vytvorte úlohy sťahovania pomocou tlačidiel Stiahnuť v aplikácii.", + "MessageNoDownloadsFound": "Žiadne stiahnuté offline súbory. Stiahnite si svoje médiá pre offline použitie kliknutím na položku Stiahnuť v aplikácii.", + "InstallingPackage": "Inštalácia {0}", + "PackageInstallCompleted": "{0} inštalácia dokončená.", + "PackageInstallFailed": "{0} inštalácia zlyhala.", + "PackageInstallCancelled": "{0} inštalácia zrušená.", + "SeriesYearToPresent": "{0} - Súčasnosť", + "OneDevice": "1 zariadenie", + "DeviceCountValue": "{0} zariadenia/zariadení", + "OneLog": "1 log", + "LogCountValue": "{0} logy/logov", + "OneVote": "1 hlas", + "VoteCountValue": "{0} hlasy/hlasov", + "OneLike": "1 páči sa mi", + "LikeCountValue": "{0} páči sa mi", + "OneUser": "1 používateľ", + "UserCountValue": "{0} používatelia/používateľov", + "OneLibrary": "1 knižnica", + "LibraryCountValue": "{0} knižnice/knižníc", + "ValueOneItem": "1 položka", + "ValueOneEpisode": "1 epizóda", + "ValueEpisodeCount": "{0} epizódy/epizód", + "Albums": "Albumy", + "Song": "Pieseň", + "Songs": "Piesne", + "Authors": "Autori", + "Books": "Knihy", + "AudioBooks": "Audioknihy", + "HeaderAudioBooks": "Audioknihy", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Zadajte jedno alebo viacero kritérií. Odstránenie kritéria zvýši počet výsledkov.", + "PleaseEnterNameOrId": "Prosím zadajte meno alebo externé ID.", + "MessageItemSaved": "Položka uložená.", + "SearchResults": "Výsledky vyhľadávania", + "ServerNameIsRestarting": "Emby server - {0} sa reštartuje.", + "ServerNameIsShuttingDown": "Emby server - {0} sa vypína.", + "HeaderDeleteItems": "Zmazať položky", + "ConfirmDeleteItems": "Zmazanie týchto položiek zmaže položky aj zo súborového systému aj z knižnice médií.", + "PleaseRestartServerName": "Prosím reštartujte Emby server - {0}.", + "ConvertingDots": "Konverzia...", + "LabelSyncNoTargetsHelp": "Zdá sa, že v súčasnosti nemáte žiadne aplikácie, ktoré podporujú sťahovanie offline.", + "DownloadingDots": "Sťahovanie...", + "LearnMore": "Zistiť viac", + "LabelBitrateMbps": "Dátový tok (Mbps):", + "ConvertUnwatchedVideosOnly": "Konvertovať iba neprehraté videá", + "SyncUnwatchedVideosOnly": "Stiahnuť iba neprehraté videá", + "ConvertUnwatchedVideosOnlyHelp": "Skonvertujú sa iba videá, ktoré nie sú označené ako úplne prehraté.", + "SyncUnwatchedVideosOnlyHelp": "Stiahnu sa iba videá, ktoré nie sú označené ako úplne prehraté, a po úplnom prehratí sa videá zo zariadenia odstránia.", + "AutomaticallySyncNewContent": "Automaticky sťahovať nový obsah", + "AutomaticallySyncNewContentHelp": "Nový obsah pridaný do tohto priečinka bude automaticky stiahnutý do zariadenia.", + "AutomaticallyConvertNewContent": "Automaticky konvertovať nový obsah", + "AutomaticallyConvertNewContentHelp": "Nový obsah pridaný do tohto priečinka bude automaticky skonvertovaný.", + "LabelItemLimit": "Limit položiek:", + "ConvertItemLimitHelp": "Voliteľné. Nastaviť limit položiek, ktoré budú konvertované.", + "DownloadItemLimitHelp": "Voliteľné. Nastaviť limit položiek, ktoré budú stiahnuté.", + "PleaseSelectDeviceToSyncTo": "Prosím, vyberte zariadenie pre stiahnutie.", + "Screenshots": "Snímky obrazovky", + "MoveRight": "Posunúť vpravo", + "MoveLeft": "Posunúť vľavo", + "HeaderUploadNewImage": "Nahrať nový obrázok", + "HeaderDeleteImage": "Zmazať obrázok", + "ConfirmDeleteImage": "Zmazať obrázok?", + "HeaderEditImages": "Upraviť obrázky", + "Settings": "Nastavenia", + "ShowIndicatorsFor": "Zobraziť indikátory pre:", + "Episodes": "Epizódy", + "Programs": "Programy", + "HeaderCastCrew": "Obsadenie a štáb", + "DvrSubscriptionRequired": "Emby živé televízne vysielanie a DVR vyžadujú aktívne {0} predplatné Emby Premiere {1}.", + "HeaderCancelRecording": "Zrušiť nahrávanie", + "HeaderKeepRecording": "Pokračovať v nahrávaní", + "HeaderCancelSeries": "Zrušiť seriál", + "HeaderKeepSeries": "Ponechať seriál", + "HeaderLearnMore": "Zistiť viac", + "SeriesSettings": "Nastavenia seriálu", + "HeaderRecordingOptions": "Možnosti nahrávania", + "HeaderDoNotRecord": "Nenahrávať", + "HeaderSeriesOptions": "Možnosti seriálu", + "Layout": "Dispozícia", + "Channels": "Kanály", + "ChannelNameOnly": "Kanál {0} len", + "Anytime": "Kedykoľvek", + "AnyLanguage": "Akýkoľvek jazyk", + "AroundTime": "Okolo {0}", + "HeaderLatestMovies": "Najnovšie filmy", + "All": "Všetko", + "Stop": "Zastaviť", + "AllChannels": "Všetky kanály", + "NewEpisodesOnly": "Iba nové epizódy", + "AllEpisodes": "Všetky epizódy", + "LabelStartWhenPossible": "Spustiť akonáhle je to možné:", + "LabelStopWhenPossible": "Zastaviť akonáhle je to možné:", + "MinutesBefore": "minút pred", + "MinutesAfter": "minút po", + "SkipEpisodesAlreadyInMyLibrary": "Nenahrávať epizódy, ktoré už sú v mojej knižnici", + "SkipEpisodesAlreadyInMyLibraryHelp": "Epizódy sa porovnajú pomocou čísel sezón a epizód, ak sú k dispozícii.", + "LabelKeepUpTo": "Aktualizovať ku:", + "AsManyAsPossible": "Toľkokrát ako je to len možné", + "DefaultErrorMessage": "Pri spracovaní požiadavky došlo k chybe. Skúste prosím neskôr znova.", + "UntilIDelete": "Kým nezmažem", + "UntilSpaceNeeded": "Kým nie je potrebný priestor", + "Categories": "Kategórie", + "Sports": "Športy", + "News": "Správy", + "Movies": "Filmy", + "Music": "Hudba", + "Kids": "Detské", + "MoreFromValue": "Viac od {0}", + "DiedValue": "Úmrtie: {0}", + "BornValue": "Narodenie: {0}", + "EnableColorCodedBackgrounds": "Použiť farebné pozadia seriálov na základe ich kategórie", + "SortChannelsBy": "Zoradiť kanály podľa:", + "ChannelNumber": "Číslo kanála", + "HeaderBenefitsEmbyPremiere": "Výhody Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Prosím, vychutnajte si jednu minútu prehrávania. Ďakujeme Vám za vyskúšanie Emby.", + "HeaderTryPlayback": "Vyskúšať prehrávanie", + "HowDidYouPay": "Ako ste platili?", + "IHaveEmbyPremiere": "Už mám Emby Premiere", + "IPurchasedThisApp": "Túto aplikáciu som si už zaplatil", + "ButtonRestorePreviousPurchase": "Obnoviť nákup", + "ButtonUnlockWithPurchase": "Odomknúť nákupom", + "ButtonUnlockPrice": "Odomknúť {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere mesačne {0}", + "HeaderAlreadyPaid": "Už zaplatené?", + "ButtonPlayOneMinute": "Prehrať jednu minútu", + "PlaceFavoriteChannelsAtBeginning": "Umiestniť obľúbené kanály na začiatok", + "HeaderUnlockFeature": "Odomknúť funkciu", + "MessageDidYouKnowCinemaMode": "Vedeli ste, že s programom Emby Premiere môžete vylepšiť svoje zážitky pomocou funkcií, ako sú kino úvody?", + "HeaderPlayMyMedia": "Prehrať moje médiá", + "HeaderDiscoverEmbyPremiere": "Objavte Emby Premiere", + "HeaderNowPlaying": "Teraz hrá", + "Items": "Položky", + "AppName": "App Name", + "OneChannel": "Jeden kanál", + "ConfirmRemoveDownload": "Odobrať sťahovanie?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Odobrať sťahovanie", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Pokračovať v sťahovaní", + "AddedOnValue": "Pridané {0}", + "RemovingFromDevice": "Odstraňuje sa zo zariadenia", + "KeepOnDevice": "Ponechať na zariadení", + "CancelDownload": "Zrušiť sťahovanie", + "SyncJobItemStatusReadyToTransfer": "Pripravené na prenos", + "SyncJobItemStatusSyncedMarkForRemoval": "Odstraňuje sa zo zariadenia", + "SyncJobItemStatusQueued": "Pridané do fronty", + "SyncJobItemStatusConverting": "Konverzia", + "SyncJobItemStatusTransferring": "Prenáša sa", + "SyncJobItemStatusSynced": "Stiahnuté", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Odstránené zo zariadenia", + "Cancelled": "Cancelled", + "Retry": "Skúsiť znova", + "Continue": "Pokračovať", + "ContinueInSecondsValue": "Pokračovať o {0} sekúnd.", + "HeaderRemoteControl": "Ďiaľkový ovládač", + "Disconnect": "Odpojiť", + "EnableDisplayMirroring": "Povoliť zrkadlenie obrazovky", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Hrať ďalej", + "Quality": "Kvalita", + "Auto": "Automaticky", + "AndroidUnlockRestoreHelp": "Ak chcete obnoviť svoj predchádzajúci nákup, uistite sa, že ste prihlásený / -á do zariadenia pomocou rovnakého účtu Google (alebo Amazon), ktorý pôvodne uskutočnil nákup. Uistite sa, že obchod s aplikáciami je povolený a nie je obmedzený rodičovskými kontrolami, a uistite sa, že máte aktívne internetové pripojenie. Budete to musieť urobiť iba raz, aby ste obnovili svoj predchádzajúci nákup.", + "HeaderAspectRatio": "Pomer strán", + "Original": "Originál", + "Fill": "Vyplniť", + "Cover": "Obal", + "MessageNoServersAvailableToConnect": "Na pripojenie nie sú k dispozícii žiadne servery. Ak ste boli pozvaní na zdieľaný server, uistite sa, že ste ho nižšie nezabudli prijať alebo kliknutím na odkaz v e-maile.", + "MessagePlayAccessRestricted": "Prehrávanie tohto obsahu je momentálne obmedzené. Pre ďalšie informácie prosím kontaktuje Vášho správcu servera Emby Server.", + "Accept": "Prijať", + "Reject": "Odmietnuť", + "Connect": "Pripojiť", + "HeaderMyMedia": "Moje média", + "HeaderMyMediaSmall": "Moje médiá (malé)", + "LatestFromLibrary": "Najnovšie {0}", + "HeaderLatestEpisodes": "Najnovšie epizódy", + "ContinuePlaying": "Pokračovať v prehrávaní", + "ContinueWatching": "Pokračovať v pozeraní", + "HeaderLatestChannelMedia": "Najnovšie položky kanála", + "HeaderContinueWatching": "Pokračovať v pozeraní", + "HeaderContinueListening": "Pokračovať v počúvaní", + "HeaderActiveRecordings": "Aktívne nahrávky", + "HeaderLatestRecordings": "Najnovšie nahrávky", + "LabelConvertTo": "Konvertovať do:", + "LabelDownloadTo": "Stiahnúť do:", + "HeaderDownloadToDots": "Stiahnúť do...", + "Next": "Ďalšie", + "LabelSource": "Zdroj:", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "Všetky jazyky", + "Previous": "Predchádzajúce", + "HeaderNextUp": "Následuje", + "HeaderPlayNextUp": "Prehrať nasledujúce", + "HeaderLatestFrom": "Najnovšie od {0}", + "LabelHomeScreenSectionValue": "Sekcia domovskej obrazovky {0}:", + "PasswordResetComplete": "Heslo bolo obnovené.", + "PasswordSaved": "Heslo uložené.", + "SettingsSaved": "Nastavenia uložené.", + "Upcoming": "Nadchádzajúce", + "HeaderSelectImageFile": "Vyberať súbor s obrázkom", + "None": "Žiadne", + "More": "Viac", + "Up": "Hore", + "Down": "Dole", + "Home": "Domov", + "Back": "Späť", + "Random": "Random", + "Playback": "Prehrávanie", + "Favorites": "Obľúbené", + "HeaderHomeScreen": "Domovská obrazovka", + "HeaderLatestChannelItems": "Najnovšie položky kanála", + "HeaderLibraryOrder": "Poradie knižnice", + "HeaderOnNow": "Práve teraz", + "HeaderForKids": "Pre deti", + "HeaderPlaybackError": "Chyba prehrávania", + "PlaybackErrorNotAllowed": "Momentálne nemáte oprávnenie na prehrávanie tohto obsahu. Podrobnosti získate od správcu systému.", + "RateLimitExceeded": "Váš účet prekročil maximálny limit streamovania nastavený správcom servera Emby Server. Požiadajte ho o pomoc.", + "PlaybackErrorNoCompatibleStream": "Momentálne nie sú k dispozícii žiadne kompatibilné streamy. Skúste to znova neskôr alebo požiadajte správcu systému o ďalšie podrobnosti.", + "PlaybackErrorPlaceHolder": "Ak chcete prehrať toto video, prosím vložte disk.", + "PlaybackErrorNoPlayableItems": "Nenašli sa žiadne prehrateľné položky. Nepokúšate sa prehrať prázdny priečinok?", + "Guide": "Sprievodca", + "Games": "Hry", + "GameSystem": "Game System", + "Suggestions": "Návrhy", + "HeaderFavoriteChannels": "Obľúbené kanály", + "HeaderFavoriteCollections": "Obľúbené zbierky", + "HeaderFavoritePlaylists": "Obľúbené zoznamy skladieb", + "Collection": "Zbierka", + "Collections": "Zbierky", + "LabelSelectFolderGroups": "Automaticky zoskupiť obsah z nasledujúcich priečinkov do zobrazení, ako napríklad Filmy, Hudba a TV:", + "LabelSelectFolderGroupsHelp": "Zložky, ktoré nie sú zaškrtnuté, sa zobrazia vo vlastnom pohľade.", + "Mute": "Stlmiť", + "Unmute": "Nahlas", + "Folder": "Folder", + "Folders": "Zložky", + "FileName": "Názov súboru", + "DisplayInOtherHomeScreenSections": "Zobraziť v sekundárnych častiach domovskej obrazovky, ako napríklad najnovšie médiá, a pokračujte v sledovaní", + "DisplayInMyMedia": "Zobraziť na domovskej obrazovke", + "Shows": "Seriály", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Videoklip", + "HeaderMusicVideos": "Videoklipy", + "MusicVideos": "Videoklipy", + "Videos": "Videá", + "MixedContent": "Zmiešaný obsah", + "HomeVideos": "Domáce videá", + "HomeVideosAndPhotos": "Domáce videá a fotografie", + "TVShows": "TV seriály", + "HeaderLibraryFolders": "Zložky knižnice", + "HeaderTermsOfPurchase": "Podmienky nákupu", + "PrivacyPolicy": "Zásady ochrany osobných údajov", + "TermsOfUse": "Podmienky použitia", + "HeaderRepeatMode": "Režim opakovania", + "HeaderToneMapping": "Mapovanie tonality", + "RepeatOne": "Opakovať jedno", + "RepeatAll": "Opakovať všetko", + "LabelDefaultScreen": "Predvolená obrazovka:", + "ConfirmEndPlayerSession": "Chcete vypnúť Emby na {0}?", + "Yesterday": "Včera", + "Yes": "Áno", + "No": "Nie", + "HeaderScanLibraryFiles": "Prehľadať súbory knižnice", + "LiveTV": "Živé televízne vysielanie", + "Schedule": "Plán", + "Recordings": "Nahrávky", + "ScanForNewAndUpdatedFiles": "Hľadať nové a aktualizované súbory", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "Médiá sú kompatibilné so zariadením, pokiaľ ide o rozlíšenie a typ média (H.264, AC3 atď.), Ale sú v nekompatibilnom kontajneri súborov (.mkv, .avi, .wmv atď.). Video bude znova zabalené za behu pred jeho streamovaním do zariadenia.", + "DirectStreamHelp2": "Priame streamovanie súboru využíva veľmi malý výpočtový výkon bez straty kvality videa.", + "MediaIsBeingConverted": "Médiá sa konvertujú do formátu kompatibilného so zariadením, ktoré ich prehráva.", + "StatsForNerds": "Podrobné štatistiky", + "HeaderHardwareAcceleratedDecoding": "Hardvérové akcelerované dekódovanie", + "HeaderHardwareAcceleratedEncoding": "Hardvérové akcelerované kódovanie", + "HeaderDirectPlay": "Priame prehrávanie", + "DirectPlaying": "Priame prehrávanie", + "DirectStreaming": "Priame streamovanie", + "Transcode": "Prekódovať", + "Transcoding": "Transkódovanie", + "ContainerBitrateExceedsLimit": "Dátový tok presahuje limit.", + "VideoCodecNotSupported": "Video kodek nie je podporovaný", + "AudioCodecNotSupported": "Zvukový kodek nie je podporovaný", + "SubtitleCodecNotSupported": "Formát titulkov nie je podporovaný", + "DirectPlayError": "Chyba priameho prehrávania", + "ContainerNotSupported": "Kontajner nie je podporovaný", + "VideoLevelNotSupported": "Úroveň videa nie je podporovaná", + "AudioBitrateNotSupported": "Dátový tok zvuku nie je podporovaný", + "AudioChannelsNotSupported": "Zvukové kanály nie sú podporované", + "VideoResolutionNotSupported": "Nepodporované rozlíšenie videa", + "AudioProfileNotSupported": "Zvukový profil nie je podporovaný", + "AudioSampleRateNotSupported": "Vzorkovacia frekvencia zvuku nie je podporovaná", + "AnamorphicVideoNotSupported": "Anamorfné video nie je podporované", + "InterlacedVideoNotSupported": "Prekladané video nie je podporované", + "SecondaryAudioNotSupported": "Prepínanie zvukových stôp nie je podporované", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "Pri odstraňovaní účtu Emby Connect sa vyskytla chyba. Skontrolujte, či máte aktívne pripojenie na internet, a skúste to znova.", + "HeaderEmbyAccountRemoved": "Emby účet odstránený", + "MessageEmbyAccontRemoved": "Účet Emby bol odstránený pre tohto používateľa.", + "HeaderInvitationSent": "Pozvánka odoslaná", + "Offline": "Nepripojený", + "HeaderSignUp": "Registrovať", + "ServerDownloadMessage": "Ak si chcete stiahnuť a nainštalovať bezplatný server Emby, navštívte stránku {0}", + "ServerDownloadMessageWithoutLink": "Ak si chcete stiahnuť a nainštalovať bezplatný server Emby, navštívte webovú stránku Emby.", + "MessageInvitationSentToUser": "E-mail bol odoslaný na adresu {0}, v ktorej ich vyzýva k prijatiu Vašej pozvánky na zdieľanie.", + "MessageInvitationSentToNewUser": "E-mail bol odoslaný na adresu {0}, v ktorej ich vyzýva k registrovaniu u Emby.", + "GuestUserNotFound": "Užívateľ nenájdený. Skontrolujte, či je meno správne, a skúste to znova alebo skúste zadať ich e-mailovú adresu.", + "ErrorReachingEmbyConnect": "Pri snahe o spojenie so serverom Emby Connect sa vyskytla chyba. Skontrolujte, či máte aktívne pripojenie na internet, a skúste to znova.", + "ErrorAddingEmbyConnectAccount1": "Pri pridávaní účtu Emby Connect sa vyskytla chyba. Vytvorili ste si účet Emby? Zaregistrujte sa na {0}.", + "ErrorAddingEmbyConnectAccount2": "Ak problém pretrváva, pošlite prosím e-mail na adresu {0} z e-mailovej adresy použitej v účte Emby.", + "ErrorAddingGuestAccount1": "Pri pridávaní účtu Emby Connect sa vyskytla chyba. Vytvoril si Váš host účet Emby? Môžu sa prihlásiť na {0}.", + "ErrorAddingGuestAccount2": "Ak problém pretrváva, pošlite prosím e-mail na adresu {0} a uveďte svoju e-mailovú adresu a ich e-mailovú adresu.", + "MessageEmbyAccountAdded": "K tomuto používateľovi bol pridaný účet Emby.", + "MessagePendingEmbyAccountAdded": "K tomuto používateľovi bol pridaný účet Emby. Majiteľovi účtu sa odošle e-mail. Pozvánku bude potrebné potvrdiť kliknutím na odkaz v e-maile.", + "HeaderEmbyAccountAdded": "Emby účet pridaný", + "Skip": "Preskočiť", + "HeaderAdditionalParts": "Ďalšie diely", + "ButtonGenerateNewPin": "Vygenerovať nový PIN", + "ConnectLoginHelp1": "S Emby Connect môžete ľahko pristupovať k serveru Emby kdekoľvek sa nachádzate a zdieľať servery so svojou rodinou a priateľmi.", + "CreatePinErrorMessage": "Pri vytváraní kódu PIN sa vyskytla chyba. Kliknite prosím na tlačidlo Generovať nový kód PIN a skúste to znova.", + "PinExpiredMessage": "Vypršala platnosť PIN kódu. Kliknite prosím na \"Vygenerovať nový PIN\" a skúste to znovu.", + "ConnectPinCodeHeader": "Ak sa chcete prihlásiť pomocou účtu Emby Connect, použite mobilné zariadenie alebo počítač, navštívte stránku {0} a zadajte nasledujúci kód PIN:", + "LabelSubtitlePlaybackMode": "Režim titulkov:", + "ErrorDeletingItem": "Pri odstraňovaní položky zo servera Emby sa vyskytla chyba. Skontrolujte, či má server Emby prístup na zápis do priečinka s médiami, a skúste to znova.", + "NoSubtitles": "Žiadne titulky", + "Default": "Predvolené", + "Absolute": "Absolútny", + "Smart": "Šikovný", + "Small": "Malé", + "Smaller": "Menšie", + "Medium": "Stredné", + "Large": "Veľké", + "Larger": "Larger", + "ExtraLarge": "Veľmi veľké", + "ExtraSmall": "Extra small", + "Forced": "Vynútené", + "External": "Externé", + "HeaderEmbeddedTitle": "Vložený názov", + "OnlyForcedSubtitles": "Iba vynútené titulky", + "AlwaysPlaySubtitles": "Vždy zobraziť titulky", + "DefaultSubtitlesHelp": "Titulky sa načítajú na základe predvolených a vynútených príznakov vo vložených metadátach. Jazykové preferencie sa berú do úvahy, keď je k dispozícii viac možností.", + "SmartSubtitlesHelp": "Titulky zodpovedajúce jazykovým preferenciám sa načítajú, keď je zvuk v cudzom jazyku.", + "HeaderSubtitleSettings": "Nastavenia titulkov", + "HeaderSubtitleAppearance": "Vzhľad titulkov", + "OnlyForcedSubtitlesHelp": "Budú zobrazené iba titulky označené ako vynútené.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Titulky zodpovedajúce jazykovým preferenciám sa načítajú bez ohľadu na jazyk zvuku.", + "NoSubtitlesHelp": "V predvolenom nastavení sa titulky nenačítajú. Počas prehrávania ich možno stále zapnúť ručne.", + "LabelPreferredSubtitleLanguage": "Preferovaný jazyk titulkov:", + "LabelTextSize": "Veľkosť textu:", + "TheseSettingsAffectSubtitlesOnThisDevice": "Tieto nastavenia ovplyvňujú titulky na tomto zariadení", + "LabelDropShadow": "Vrhať tieň:", + "LabelTextBackgroundColor": "Farba pozadia textu:", + "LabelWindowBackgroundColor": "Farba pozadia textu:", + "LabelFont": "Druh písma:", + "LabelTextColor": "Farba textu:", + "LabelBackgroundColor": "Farba pozadia:", + "LabelBackgroundOpacity": "Priehľadnosť pozadia:", + "Raised": "Zvýšené", + "Depressed": "Stlačené", + "Uniform": "Jednotné", + "DropShadow": "Vrhať tieň", + "SmallCaps": "Malé kapitálky", + "SubtitleAppearanceSettingsDisclaimer": "Tieto nastavenia sa nebudú vzťahovať na grafické titulky (PGS, DVD atď.) Ani na titulky, ktoré majú vložené svoje vlastné štýly (ASS / SSA).", + "Normal": "Normálne", + "HeaderWaitingForWifi": "Čaká sa na Wifi", + "WifiRequiredToDownload": "Na pokračovanie v sťahovaní je potrebné pripojenie Wifi.", + "DownloadOnlyOnWifi": "Sťahovať iba cez Wifi", + "LabelMusicDownloadQuality": "Kvalita sťahovania hudby:", + "MusicDownloadQualityHelp": "Zvukové súbory s vyššou bitovou rýchlosťou budú konvertované serverom Emby. Vyberte vyššiu hodnotu pre lepšiu kvalitu alebo nižšiu hodnotu pre úsporu lokálneho úložneho priestoru.", + "HeaderDownloadSettings": "Nastavenia sťahovania", + "LabelDownloadLocation": "Umiestnenie pre sťahovanie:", + "BrowseForFolder": "Prehľadať priečinok", + "Unlimited": "Neobmedzené", + "NoLimit": "No limit", + "Hide": "Skryť", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Bitová hĺbka zvuku nie je podporovaná", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Video profil nie je podporovaný", + "VideoFramerateNotSupported": "Snímková rýchlosť videa nie je podporovaná", + "VideoBitDepthNotSupported": "Bitová hĺbka videa nie je podporovaná", + "RefFramesNotSupported": "Počet referenčných rámcov videa nie je podporovaných", + "ErrorConnectServerUnreachable": "Pri vykonávaní požadovanej operácie sa vyskytla chyba. Váš server nemôže kontaktovať náš server Emby Connect na adrese {0}. Uistite sa, že Váš server má aktívne pripojenie k internetu a či komunikáciu povoľuje akýkoľvek nainštalovaný firewall alebo bezpečnostný softvér.", + "HeaderStopRecording": "Zastaviť nahrávanie", + "ManageRecording": "Spravovať nahrávanie", + "LabelDropImageHere": "Sem pretiahnite obrázok alebo kliknutím vyberte obrázok, ktorý chcete nahrať.", + "MessageFileReadError": "Pri čítaní súboru nastala chyba. Skúste to prosím znova.", + "Browse": "Prehľadať", + "HeaderUploadImage": "Nahrať obrázok", + "HeaderAddUpdateImage": "Pridať/aktualizovať obrázok", + "HeaderShowFields": "Zobraziť polia", + "LabelView": "Zobraziť:", + "LabelImageType": "Typ obrázku:", + "Upload": "Nahrať", + "Primary": "Základné", + "PrimaryImageBlur": "Rozmazať primárny obrázok", + "Art": "Umenie", + "Backdrop": "Pozadie", + "Banner": "Prápor", + "Box": "Obal", + "BoxRear": "Obal (zadná časť)", + "Disc": "Disk", + "Logo": "Logo", + "LogoDark": "Logo (tmavá verzia)", + "LogoLight": "Logo (svetlá verzia)", + "LogoLightColor": "Logo (svetlá s farbou)", + "Menu": "Ponuka", + "Screenshot": "Snímka obrazovky", + "Thumb": "Miniatúra", + "HeaderAudioSettings": "Nastavenia zvuku", + "LabelAudioLanguagePreference": "Uprednostňovaný jazyk zvuku:", + "LabelPlayDefaultAudioTrack": "Prehrať predvolenú zvukovú stopu bez ohľadu na jazyk", + "HeaderVideoQuality": "Kvalita videa", + "CinemaModeConfigurationHelp": "Kino úvody prinášajú kino zážitok priamo do vašej obývačky s možnosťou prehrať upútavky a vlastné úvody pred filmom.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Automaticky prehrať ďalšiu epizódu", + "LabelMaxChromecastBitrate": "Maximálny dátový tok pre Chromecast:", + "LabelSkipBackLength": "Dĺžka skoku dozadu:", + "LabelSkipForwardLength": "Dĺžka skoku dopredu:", + "EnableCinemaMode": "Povoliť kino úvody", + "LabelInternetQuality": "Kvalita cez internet:", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Kvalita hudby", + "LabelHomeNetworkQuality": "Kvalita cez domácu sieť:", + "HeaderLatestMedia": "Najnovšie médiá", + "HeaderRestartingEmbyServer": "Reštartuje sa server Emby", + "RestartPleaseWaitMessage": "Počkajte prosím kým sa Emby server vypne a znova naštartuje. Môže to trvať minútu alebo dve.", + "HeaderPlayNext": "Prehrať nasledujúce", + "AutoBasedOnLanguageSetting": "Automaticky (na základe nastavenia zariadenia)", + "SameAsMainTheme": "Rovnaké ako hlavná téma", + "LabelDateTimeLocale": "Miestny dátum a čas:", + "Genre": "Žáner", + "DirectorValue": "Režisér: {0}", + "DirectorsValue": "Režiséri: {0}", + "GenreValue": "Žáner: {0}", + "GenresValue": "Žánre: {0}", + "TagsValue": "Štítky: {0}", + "Off": "Vypnuté", + "Title": "Názov", + "Year": "Rok", + "Filter": "Filter", + "Filters": "Filtre", + "Unplayed": "Neprehrané", + "LabelTVHomeScreen": "Domovská obrazovka televízneho režimu:", + "Horizontal": "Horizontálne", + "Vertical": "Vertikálne", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Zoskupiť podľa seriálu", + "HeaderVideoType": "Typ videa", + "HeaderSeriesStatus": "Stav seriálu", + "Features": "Vlastnosti", + "Trailers": "Upútavky", + "Extras": "Mimoriadné", + "ThemeSongs": "Tematické piesne", + "ThemeVideos": "Tematické videá", + "HeaderFavoriteMovies": "Obľúbené filmy", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Obľúbené seriály", + "HeaderFavoriteEpisodes": "Obľúbené epizódy", + "HeaderFavoriteVideos": "Obľúbené videá", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Obľúbené hry", + "HeaderFavoriteArtists": "Obľúbení umelci", + "HeaderFavoriteAlbums": "Obľúbené albumy", + "HeaderFavoriteSongs": "Obľúbené piesne", + "HeaderFavoriteAuthors": "Obľúbení autori", + "HeaderFavoriteAudioBooks": "Obľúbené audioknihy", + "Ascending": "Vzostupne", + "Descending": "Zostupne", + "HeaderColorPrimaries": "Primárne farby", + "HeaderColorSpace": "Farebný priestor", + "HeaderColorTransfer": "Prenos farieb", + "HeaderVideoRange": "Rozsah videa", + "SeriesDisplayOrderHelp": "Usporiadať epizódy podľa dátumu, DVD poradia alebo absolútneho číslovania.", + "LabelVerticalPositionFromBottom": "Zvislá poloha (zospodu):", + "HeaderFavoritePeople": "Obľúbení ľudia", + "MultiSelect": "Viacnásobný výber", + "HeaderSignOut": "Odhlásiť sa", + "HeaderSelectServer": "Vybrať server", + "HeaderChangeServer": "Zmeniť server", + "HeaderChangeUser": "Zmeniť používateľa", + "HeaderAppSettings": "Nastavenia aplikácie", + "HeaderLoginSettings": "Nastavenie prihlásenia", + "LabelRememberLogin": "Zapamätať prihlásenie:", + "LabelAutomaticallySignOut": "Automaticky odhlásiť:", + "BetaTesterMessage": "Ďakujeme, že ste testerom beta verzie Emby! Spätnú väzbu zanechajte v {0}testovacej časti komunity Emby{1}.", + "HardwareAccelerated": "Hardvérovo urýchlované", + "Software": "Softvér", + "Metadata": "Metadáta", + "HeaderMediaInfo": "Informácie o médiu", + "Locked": "Zamknuté", + "HeaderSplitVersionsApart": "Rozdeliť verzie od seba", + "Any": "Akýkoľvek", + "Admin": "Administrátor", + "HeaderReadMore": "Prečítať viac", + "CustomRatingHelp": "Vlastné hodnotenie je použité na vyhodnotia rodičovskej kontroly, ale nezobrazí sa. Pole rodičovského hodnotenia sa stále zobrazuje.", + "KeepUpToHelp": "Nahrávky presahujúce limit sa vymažú na začiatku nasledujúceho nahrávania. Podľa dátumu pridania sa ako prvé odstránia najstaršie nahrávky.", + "NoItemsMatchingFound": "Nenašli sa žiadne položky, ktoré by zodpovedali vašim kritériám vyhľadávania.", + "TwoSearchCharsRequired": "Zadajte prosím aspoň dva hľadané znaky.", + "PreventPlaybackContinuing": "Pravidelným zobrazovaním výzvy na vstup od používateľa zabránite v nekonečnom prehrávaní.", + "PromptStillWatching": "Povoliť vyzvanie „Stále sledujete?“", + "HeaderMissingMetadata": "Chýbajúce metadáta", + "HeaderIncludedIn": "Zahrnuté v", + "EmbyConnectUserAlreadyLinked": "Užívateľ Emby Connect je už na tomto serveri prepojený s iným používateľom.", + "VideoFilesWillBeConvertedTo": "Skonvertované videá sa uložia ako {0}.", + "VideoWillBeConvertedTo": "Videostreamy sa skonvertujú do {0} alebo sa skopírujú z pôvodného súboru, ak už sú {0} a kvalita odpovedá možnostiam konverzie.", + "VideoWillBeConvertedToOrCopied": "Videostreamy sa skonvertujú do {0} alebo sa skopírujú z pôvodného súboru, ak sú z ({1}), a kvalita odpovedá možnostiam konverzie.", + "AudioWillBeConvertedTo": "Zvukové streamy sa skonvertujú do {0} alebo sa skopírujú z pôvodného súboru, ak už sú {0} a kvalita odpovedá možnostiam konverzie.", + "AudioWillBeConvertedToOrCopied": "Zvukové streamy sa skonvertujú do {0} alebo sa skopírujú z pôvodného súboru, ak sú z ({1}), a kvalita odpovedá možnostiam konverzie.", + "HeaderSpecialKeys": "Špeciálne klávesy", + "FollowingSpecialKeys": "Na väčšine klávesníc a diaľkových ovládačoch sú podporované tieto špeciálne klávesy:", + "HeaderDeleteSeries": "Zmazať seriál", + "HeaderDeleteLastPlayedEpisode": "Zmazať poslednú prehranú epizódu", + "HeaderConnectingToServer": "Pripája sa k serveru", + "ServerNameValue": "Názov servera: {0}", + "DomainValue": "Doména: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "Teraz budete presmerovaní na doménu, ktorú vlastní a prevádzkuje správca servera, ku ktorému ste sa rozhodli pripojiť:", + "AllMediaOwnedHosted": "Všetky médiá sú hostované a spravované vlastníkom domény {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Povoliť prepínanie obnovovacej frekvencie displeja", + "EnableDisplayRefreshRateSwitchingHelp": "Umožňuje Emby zmeniť obnovovaciu frekvenciu displeja na rovnakú hodnotu (alebo viacnásobnú), ako je snímková frekvencia, v ktorej bolo video zakódované pred spustením prehrávania. Pomáha to minimalizovať množstvo trhania/chvenia, ktoré by ste inak mohli vidieť pri prehrávaní videí, ktoré sa dobre nezhodujú.", + "RememberSelectedAudioTracks": "Zapamätať si výber zvukových stôp", + "RememberSelectedSubtitleTracks": "Zapamätať si výber skladieb titulkov", + "RememberSelectedSubtitleTracksHelp": "Výber titulkov bude zapamätaný pre každé video zvlášť a znova sa použije pri ďalšom prehrávaní toho istého videa.", + "RememberSelectedAudioTracksHelp": "Výber zvukovej stopy bude zapamätaný pre každé video zvlášť a znova sa použije pri ďalšom prehrávaní toho istého videa.", + "ClearSavedTrackSelections": "Vymazať uložené výbery stôp", + "HeaderClearTrackSelections": "Vymazať uložené výbery stôp", + "QuestionClearSavedTracks": "Vymazať všetky uložené výbery stôp?", + "LabelChannelTags": "Značky kanála:", + "AfterThisPlaysConfirmation": "Keď toto dohrá, chcete pokračovať v prehrávaní alebo odstrániť hudbu z fronty?", + "Keep": "Pokračovať", + "Clear": "Odstrániť", + "HeaderClearFilters": "Vymazať filtre", + "HeaderSearchForImages": "Hľadať obrázky", + "HeaderSearchNewImage": "Hľadať nový obrázok", + "HeaderSearchForAnImage": "Hľadať obrázok", + "DragDropToReorder": "Potiahnutím a pustením preusporiadať", + "HeaderAddImageFromUrl": "Pridať obrázok z adresy URL", + "HeaderSetImageFromUrl": "Nastaviť obrázok z adresy URL", + "LabelUrl": "URL:", + "LabelChannelNumber": "Číslo kanála:", + "LabelGuideDataChannel": "Sprievodca kanálom:", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Skopírovať do schránky", + "TimeRemainingValue": "{0} zostáva", + "LabelResumeRewindSeconds": "Automaticky previnúť späť pri pokračovaní:", + "ResumeRewindSecondsHelp": "Toto by Vám mohlo pomôcť zapamätať si, kde ste skončili.", + "HeaderSavePlayQueueToPlaylist": "Uložiť frontu do zoznamu", + "EnableLogoImagesAsTitle": "Zobraziť obrázky s logom ako nadpisy na obrazovkách s podrobnosťami", + "EnableLogoImagesAsTitleHelp": "Ak sú k dispozícii obrázky loga, môžu byť použité miesto textu nadpisu na obrazovkách videa, seriálov a iných obrazovkách s podrobnosťami. Ak obrázok loga nie je k dispozícii, názov bude nahradený textom.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Prehrané {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/sl.json b/modules/common/strings/sl.json new file mode 100644 index 0000000..adc33b7 --- /dev/null +++ b/modules/common/strings/sl.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Zamenjaj obstoječe sličice predogleda videoposnetka", + "ReplaceExistingThumbnailImagesHelp": "Vse obstoječe sličice predogleda videoposnetkov bodo izbrisane in ustvarjene bodo nove, če je to omogočeno v nastavitvah knjižnice.", + "DateCreated": "Datum nastanka", + "CreatedOnValue": "Ustvarjeno {0}", + "UpdatedOnValue": "Posodobljeno {0}", + "EmbyLoginTerms": "Emby je zasnovan za pomoč pri upravljanju vaše osebne medijske knjižnice, kot so domači videoposnetki in fotografije. Oglejte si naše {0}pogoje uporabe{1}. Uporaba katere koli programske opreme Emby pomeni sprejemanje teh pogojev.", + "MessageUnableToConnectToServer": "Povezava z izbranim strežnikom trenutno ne deluje. Preverite, ali je strežnik aktiven in poskusite znova.", + "EmbyIntroMessage": "Z Emby lahko preprosto pretakate videoposnetke, glasbo in fotografije na pametne telefone, tablične računalnike in druge naprave iz vašega strežnika Emby.", + "HeaderSignInWithConnect": "Prijava z Emby Connect", + "HeaderWelcomeToEmby": "Dobrodošli v Emby!", + "HeaderNewUsers": "Novi uporabniki", + "HeaderPleaseSignIn": "Prosim, prijavite se", + "MessageInvalidUser": "Napačno up. ime ali geslo. Poskusite znova.", + "MessageUnlockAppWithPurchaseOrSupporter": "Omogočite to funkcionalnost z enkratnim nakupom ali z aktivno naročnino Emby Premiere.", + "MessageUnlockAppWithSupporter": "Omogočite to funkcionalnost z aktivno naročnino Emby Premiere.", + "MessageToValidateSupporter": "Če imate aktivno naročnino na Emby Premiere, se prepričajte, da ste nastavili Emby Premiere na nadzorni plošči strežnika Emby, do katere lahko dostopate s klikom na Emby Premiere v glavnem meniju.", + "ValueSpecialEpisodeName": "Posebna oddaja - {0}", + "HeaderSignIn": "Prijava", + "Share": "Deli", + "Shared": "Deljeno", + "Info": "Info", + "Add": "Dodaj", + "Speed": "Hitrost", + "PlaybackSpeed": "Hitrost predvajanja", + "Chapters": "Poglavja", + "Password": "Geslo", + "SavePassword": "Shrani geslo", + "LabelPassword": "Geslo", + "HeaderResetPassword": "Ponastavi geslo", + "Series": "Serija", + "Preview": "Predogled", + "Submit": "Pošlji", + "Never": "Nikoli", + "Table": "Tabela", + "HeaderScheduledTasks": "Planirana opravila", + "Plays": "Št. predvajanj", + "LastUsedAddressValue": "Nazadnje uporabljen {0}", + "LabelKeywordType": "Vrsta ključne besede", + "HeaderSelectColumns": "Izberi stolpce", + "HeaderTopResults": "Najboljši zadetki", + "HeaderPinSidebar": "Pripni stransko okno", + "Collapse": "Strni", + "LabelBackgroundVideoPlayback": "Predvajanje v ozadju", + "BackgroundVideoPlaybackHelp": "Predvajanje v ozadju omogoča predvajanje tudi, če je zaslon ugasnjen.", + "AlwaysOn": "Vedno prižagano", + "HeadphonesOrExternalSpeakersConnected": "Povezane so slušalke ali zunanji zvočniki", + "HeaderKeyboardAndRemote": "Tipkovnica in daljinski upravljalnik", + "NoSelectedItemsSupportOperation": "Ni izbranih elementov, ki podpirajo to operacijo.", + "NoOperationsForSelectedItems": "Za izbrane elemente ni na voljo nobenih operacij.", + "UploadOnlyOnWifi": "Nalaganje samo prek Wifi", + "HeaderFoldersToUpload": "Mape za nalaganje", + "LabelPasswordConfirm": "Geslo (potrdi)", + "HeaderMoveUpInOrder": "Premakni navzgor po vrstnem redu", + "HeaderDownUpInOrder": "Premakni navzdol po vrstnem redu", + "LabelUsername": "Up. ime", + "HeaderAddServer": "Dodaj strežnik", + "HeaderSubtitleOffset": "Premik podnapisov", + "Watching": "Gledanje", + "HeaderRemoveFromContinueWatching": "Odstrani iz \"Nadaljuj ogled\"", + "RemoveThisTitleFromContinueWatching": "Odstrani iz \"Nadaljuj ogled\"?", + "HeaderRemoveFromContinueListening": "Odstrani iz \"Nadaljuj s poslušanjem\"", + "RemoveThisTitleFromContinueListening": "Odstrani iz \"Nadaljuj s poslušanjem\"?", + "HeaderIncreaseSubtitleOffset": "Povečaj odmik podnapisov", + "HeaderDecreaseSubtitleOffset": "Zmanjšaj odmik podnapisov", + "Close": "Zapri", + "HeaderSeeAll": "Poglej vse", + "HeaderOpenInNewWindow": "Odpri v novem oknu", + "LabelEmail": "E-pošta", + "LabelHost": "Strežnik", + "LabelHostHelp": "Npr.: 192.168.1.100 ali https://myserver.com", + "LabelPort": "Vrata", + "Disabled": "Onemogočeno", + "Uninstall": "Odstrani", + "Enable": "Omogoči", + "AllTuners": "Vsi sprejemniki", + "Disable": "Onemogoči", + "NextValue": "Sledi: {0}", + "HeaderNextItem": "Naslednji element", + "HeaderPreviousItem": "Prejšnji element", + "NoTrailersMessage": "Ni napovednikov. Za več napovednikov dodajte vtičnik 'Trailers' v {0}katalogu Emby vtičnikov{1}.", + "UninstallPluginConfirmation": "Ali ste prepričani, da želite odstraniti ta vtičnik?", + "HeaderUninstallPlugin": "Odstrani vtičnik", + "AreYouStillWatching": "Še gledate?", + "LabelCurrentPassword": "Obstoječe geslo", + "LabelNewPassword": "Novo geslo", + "LabelNewPasswordConfirm": "Potrditev novo geslo", + "HeaderRemovePassword": "Odstrani geslo", + "ServerUpdateNeeded": "Ta strežnik Emby mora biti nadgrajen. Za prenos zadnje različice obiščite {0}", + "MessageThankYouForConnectSignUp": "Hvala, ker ste se prijavili na Emby Connect. Na vaš naslov bo poslano e-poštno sporočilo z navodili za potrditev vašega novega računa. Potrdite račun in se nato vrnite sem, da se prijavite.", + "MessageThankYouForConnectSignUpNoValidation": "Hvala, ker ste se prijavili na Emby Connect! Zdaj se boste morali prijaviti s svojimi podatki Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "Geslo in potrditev gesla se morata ujemati.", + "ErrorMessageUsernameInUse": "Uporabniško ime je že v uporabi. Izberite novo ime in poskusite znova.", + "ErrorMessageEmailInUse": "E-poštni naslov je že v uporabi. Vnesite nov e-poštni naslov in poskusite znova ali pa uporabite funkcijo za pozabljeno geslo.", + "HeaderUpcomingOnTV": "Sledi na televiziji", + "HeaderOtherShowings": "Druge predstavitve", + "Showings": "Predstavitve", + "HeaderConnectToServer": "Povežite se s strežnikom", + "ConnectToServerManually": "Ročno se povežite s strežnikom", + "LabelEnterConnectUserNameHelp": "Vaš e-mail za račun Emby Connect.", + "HeaderSignInError": "Napaka pri prijavi", + "HeaderManualLogin": "Ročna prijava", + "PasswordResetConfirmation": "Ali res želite ponastaviti geslo?", + "ContactAdminToResetPassword": "Za ponastavitev gesla se obrnite na skrbnika sistema.", + "ForgotPasswordInNetworkRequired": "Poskusite znova znotraj domačega omrežja, da začnete postopek ponastavitve gesla.", + "ForgotPasswordFileCreated": "Naslednja datoteka je bila ustvarjena na vašem strežniku in vsebuje navodila za nadaljevanje:", + "ForgotPasswordFileExpiration": "Pin za ponastavitev bo potekel ob {0}.", + "InvalidForgotPasswordPin": "Vnesen je bil neveljaven ali potekel pin. Prosim poskusite ponovno.", + "PasswordResetForUsers": "Gesla so bila odstranjena za naslednje uporabnike. Za prijavo se prijavite s praznim geslom.", + "HeaderForgotPassword": "Ste pozabili geslo?", + "ForgotPasswordUsernameHelp": "Če se ne spomnite uporabniškega imena, pustite to polje prazno.", + "HeaderPasswordReset": "Ponastavitev gesla", + "AttributeNew": "Novo", + "Done": "Končano", + "HeaderResetToDefault": "Ponastavi na privzeto", + "Deinterlacing": "Odstranjevanje prepletanja", + "HeaderBurningInSubtitles": "Vžiganje podnapisov", + "Premiere": "Premiera", + "LabelPinCode": "PIN koda", + "LabelLocalNetworkPinCode": "Pin koda lokalnega omrežja", + "LabelLocalNetworkPasswordMode": "Način prijave v lokalno omrežje", + "RequirePasswordInLocalNetwork": "Zahtevaj geslo v lokalnem omrežju", + "NoPasswordInLocalNetwork": "Ne zahtevaj gesla v lokalnem omrežju", + "PinCodeInLocalNetwork": "Številčna koda PIN v lokalnem omrežju dovoljena", + "LocalNetworkPasswordModeHelp": "Izberite način prijave za naprave v istem lokalnem omrežju kot vaš strežnik Emby.", + "HeaderLocalNetworkAccess": "Dostop v lokalnem omrežju", + "Live": "V živo", + "Reset": "Ponastavitev", + "Repeat": "Ponovi", + "Track": "Zapis", + "Tracks": "Zapisi", + "HeaderCameraUpload": "Nalaganje fotografij", + "TrackCount": "{0} element/ov", + "ItemCount": "{0} element/ov", + "NumberChannelsValue": "{0} Kanali", + "HeaderLatestMusic": "Nova glasba", + "HeaderLatestAudioBooks": "Najnovejše zvočne knjige", + "HeaderLatestDownloadedVideos": "Najnovejši preneseni videoposnetki", + "HeaderRecentlyPlayed": "Nedavno predvajano", + "Recent": "Nedavno", + "HeaderFrequentlyPlayed": "Pogosto predvajano", + "HeaderMoreLikeThis": "Več podobnih", + "HeaderMoreLikeThisOnLiveTV": "Več podobnih na televiziji", + "OriginalAirDateValue": "Na voljo od: {0}", + "EndsAtValue": "Konec ob {0}", + "Date": "Datum", + "AirDate": "Datum prikazovanja", + "Played": "Ogledano", + "Daily": "Dnevno", + "Weekly": "Tedensko", + "RequireHashMatch": "Zahtevaj natančno ujemanje", + "RequireHashMatchHelp": "Če zahtevate natančno ujemanje, bodo podnapisi filtrirani tako, da bodo vključevali samo tiste, ki so bili preizkušeni s točno vašo video datoteko. Če počistite to polje, se bo povečalo število ujemajočih se podnapisov, vendar se bodo povečale tudi možnosti napačnega ali nepravilnega besedila podnapisov.", + "SearchForForcedSubtitlesOnly": "Samo obvezni podnapisi", + "SearchForForcedSubtitlesOnlyHelp": "Če zahtevate obvezne podnapise, boste rezultate omejili na podnapise, ki so označeni kot podnapisi v tujem jeziku.", + "LastEpisodeDateAdded": "Zadnja dodana epizoda", + "LastEpisodeDateAired": "Datum objave zadnje epizode", + "LabelPlaystate": "Stanje predvajanja", + "Studio": "Studio", + "Tag": "Oznaka", + "EpisodeTitle": "Naslov epizode", + "Audio": "Zvok", + "Video": "Slika", + "Subtitle": "Podnapis", + "Image": "Slika", + "CopyStream": "Kopiraj izvirni tok", + "LabelAudioLayout": "Postavitev zvoka", + "LabelAudioCodec": "Avdio kodek", + "LabelAudioLanguage": "Jezik zvoka", + "LabelSubtitleLanguage": "Jezik podnapisov", + "LabelVideoCodec": "Video kodek", + "LabelSubtitleCodec": "Kodek za podnapise", + "LabelParentalRating": "Starševska ocena", + "BecauseYouLikeValue": "Ker vam je všeč {0}", + "BecauseYouWatchedValue": "Ker ste si ogledali {0}", + "DirectedByValue": "Režija: {0}", + "StarringValue": "Igrajo: {0}", + "Invitations": "Vabila", + "ActorAsRole": "kot {0}", + "ButtonOk": "V redu", + "GroupItemsIntoCollections": "Združi v zbirko", + "GroupItemsIntoCollectionsHelp": "Združevanje elementov glede na zbirke, v katere so bili dodani. Omogočanje določenih filtrov ali vrstnih redov lahko to samodejno onemogoči.", + "GroupItemsIntoTags": "Združite elemente v oznake", + "GroupItemsIntoTagsHelp": "Elemente združite glede na oznake, ki so jim bili dodani. Omogočanje določenih filtrov ali vrstnih redov lahko to samodejno onemogoči.", + "User": "Uporabnik", + "Access": "Dostop", + "Users": "Uporabniki", + "Library": "Knjižnica", + "Devices": "Naprave", + "Cancel": "Preklic", + "Restart": "Ponovni zagon", + "Shutdown": "Zaustavitev", + "Logs": "Dnevniki", + "Visibility": "Vidnost", + "Notifications": "Obvestila", + "SendTestNotification": "Pošlji testno obvestilo", + "NotificationSent": "Obvestilo poslano", + "DeleteNotificationConfirmation": "Ali želite izbrisati to obvestilo?", + "DeleteNotification": "Izbriši obvestilo", + "AddNotification": "Dodaj obvestilo", + "EditNotification": "Uredi obvestilo", + "LimitUserEventsTo": "Omeji uporabniške dogodke na", + "LimitLibraryEventsTo": "Omeji knjižnične dogodke na", + "LimitDeviceEventsTo": "Omejite dogodke naprav na", + "ForAdditionalNotificationOptions": "Dodatne storitve obveščanja lahko namesti skrbnik strežnika v {0}katalog vtičnikov{1} Emby.", + "Plugins": "Vtičniki", + "Systems": "Sistemi", + "Server": "Strežnik", + "Dashboard": "Nadzorna plošča", + "PlayOnAnotherDevice": "Predvajaj na drugi napravi", + "HeaderConnectionHelp": "Pomoč za povezavo", + "AccessRestrictedTryAgainLater": "Dostop ni mogoč. Poskusite kasneje.", + "ButtonGotIt": "Razumem", + "RememberMe": "Zapomni si me", + "EmbyServer": "Strežnik Emby", + "ManageEmbyServer": "Upravljanje strežnika Emby", + "ShutdownServer": "Zaustavitev strežnika Emby", + "RestartServer": "Ponovni zagon Emby", + "RecordingCancelled": "Snemanje preklicano", + "SeriesCancelled": "Serija preklicana", + "Recording": "Snemanje", + "SeriesRecording": "Snemanje serije", + "RecordingScheduled": "Snemanje je predvideno", + "SeriesRecordingScheduled": "Predvideno snemanje serije", + "HeaderNewRecording": "Nov posnetek", + "HeaderWakeServer": "Zbudi strežnik", + "AttemptingWakeServer": "Poskus bujenja strežnika. Prosimo počakajte...", + "WakeServerSuccess": "Uspešno!", + "HeaderCustomizeHomeScreen": "Prilagodi domači zaslon", + "WakeServerError": "Paketi Wake On LAN so bili poslani na vaš strežniški računalnik, vendar se ne moremo povezati z vašim strežnikom Emby. Vaša naprava morda potrebuje nekaj več časa, da se prebudi, ali pa Emby Server morda ne deluje aktivno na napravi.", + "Days": "Dnevi", + "Network": "Omrežje", + "Networks": "Omrežja", + "SortByValue": "Razvrsti po {0}", + "HeaderSortBy": "Razvrsti po", + "HeaderPhotoAlbums": "Foto albumi:", + "Photos": "Fotografije", + "HeaderAppearsOn": "Pojavi se na", + "List": "Seznam", + "HeaderRecordSeries": "Snemaj serijo", + "HeaderCinemaMode": "Napovedniki", + "Conversions": "Pretvorbe", + "Downloads": "Prenosi", + "HeaderManageDownloads": "Upravljanje prenosov", + "InternalStorage": "Notranji pomnilnik", + "ExternalStorage": "Zunanji pomnilnik", + "UploadToFollowingServers": "Nalaganje na strežnike", + "UploadingNumItems": "Nalaganje {0} od {1}", + "DownloadNumItems": "Prenos {0} od {1}", + "HeaderSampleRate": "Stopnja vzorčenja", + "HeaderReferenceFrames": "Referenčni okvirji", + "HeaderBitDepth": "Bitna globina", + "HeaderPixelFormat": "Format slikovnih pik", + "Profile": "Profil", + "Bitrate": "Bitna hitrost", + "Expand": "Razširi", + "Container": "Vsebnik", + "Format": "Format", + "Path": "Pot", + "Size": "Velikost", + "Resolution": "Ločjivost", + "HeaderCodecTag": "Oznaka kodeka", + "Framerate": "Hitrost sličic", + "Interlaced": "Prepleteno", + "Anamorphic": "Anamorfno", + "Level": "Raven", + "Timestamp": "Časovni žig", + "Language": "Jezik", + "Codec": "Kodek", + "Stream": "Tok", + "HeaderExtradata": "Dodatni podatki", + "HeaderHardwareAcceleratedTranscoding": "Strojno pospešeno prekodiranje", + "HeaderHardwareAcceleratedTranscodingDescription": "Izkoristite GPU vašega strežnika. Emby ima najnaprednejše in najhitrejše strojno pospeševanje v industriji.", + "HeaderOfflineDownloads": "Mediji brez povezave", + "AndMuchMoreExclamation": "In veliko več!", + "HeaderOfflineDownloadsDescription": "Prenesite medije v svoje naprave za preprosto uporabo brez povezave.", + "LiveTvFeatureDescription": "Pretakajte televizijo v katero koli aplikacijo Emby z združljivo napravo TV sprejemnika, nameščeno na vašem strežniku Emby.", + "DvrFeatureDescription": "Načrtujte posamezne posnetke televizije, posnetke serij in drugo z Emby DVR.", + "CinemaModeFeatureDescription": "Cinema Intros vam nudi pravo kinematografsko izkušnjo z napovedniki in uvodi po meri pred glavnim filmom.", + "HeaderFreeApps": "Brezplačne aplikacije Emby", + "FreeAppsFeatureDescription": "Uživajte v brezplačnem dostopu do aplikacij Emby za vaše naprave.", + "HeaderBecomeProjectSupporter": "Pridobite Emby Premiere", + "HeaderViewServerInfo": "Informacije o strežniku", + "PlaybackTvModeRequiresEmbyPremiere": "Predvajanje medijev v načinu TV zahteva aktivno {0}naročnino na Emby Premiere{1}.", + "FeatureRequiresEmbyPremiere": "Zahtevana je naročnina na {0}Emby Premiere{1}.", + "HeaderConvertYourRecordings": "Pretvorite posnetke", + "Record": "Snemaj", + "Save": "Shrani", + "Edit": "Uredi", + "HeaderSavePlaylist": "Shrani seznam predvajanja", + "Latest": "Najnovejše", + "Download": "Prenesi", + "Downloaded": "Prenešeno", + "Converted": "Pretvorjeno", + "RemoveFromHistory": "Odstrani iz zgodovine", + "ConfirmRemoveFromHistory": "Odstranim ta element iz zgodovine?", + "Downloading": "Prenašanje", + "Advanced": "Napredno", + "LinkedToEmbyConnect": "Povezano z Emby Connect", + "Delete": "Izbriši", + "Both": "Oboje", + "LabelChannelDisplay": "Prikaz programa", + "HeaderDeleteItem": "Izbriši element", + "HeaderDeleteUser": "Izbriši uporabnika", + "DeleteItemConfirmation": "Ali res želite izbrisati {0}?", + "DeleteUserConfirmation": "Ali res želite izbrisati uporabnika {0}?", + "DeleteUsersConfirmation": "Ali zares želite izbrisati te uporabnike? (število uporabnikov: {0})", + "HeaderDeleteDevice": "Izbriši napravo", + "DeleteDeviceConfirmation": "Ali res želite izbrisati to napravo? Ponovno se bo prikazala, ko se bo uporabnik naslednjič prijavil.", + "ConfirmDeleteItem": "Če izbrišete ta element, ga boste izbrisali iz datotečnega sistema in vaše medijske knjižnice.", + "FollowingFilesWillBeDeleted": "Naslednje datoteke in mape bodo izbrisane:", + "AreYouSureToContinue": "Ste prepričani, da želite nadaljevati?", + "Refresh": "Osveži", + "RefreshingMetadataDots": "Osveževanje metapodatkov ...", + "ScanningLibraryFilesDots": "Pregledovanje datotek knjižnice ...", + "HeaderFavoritesThenByChannelNumber": "Priljubljene, nato po programskem mestu", + "HeaderAddToCollection": "Dodaj v zbirko", + "HeaderFavoritesThenByTitle": "Priljubljene, nato po naslovu", + "HeaderFavoritesThenByDefault": "Priljubljene, nato po privzetem vrstnem redu", + "HeaderDefaultChannelOrder": "Privzeti vrstni red programov", + "HeaderAddToFavorites": "Dodaj med priljubljene", + "HeaderRemoveFromFavorites": "Odstrani iz priljubljenih", + "Favorited": "Priljubljeno", + "Unfavorited": "Nepriljubljeno", + "HeaderNewCollection": "Nova zbirka", + "HeaderNewPlaylist": "Nov seznam predvajanja", + "AllCollections": "Vse zbirke", + "AllPlaylists": "Vsi seznami predvajanja", + "Create": "Ustvari", + "HeaderAddedToPlaylist": "Dodano na seznam predvajanja", + "HeaderAddedToCollection": "Dodano v zbirko", + "OneItemAddedTo": "1 element je dodan v »{0}«.", + "ItemsAddedTo": "Št. elementov, dodanih v »{1}«: {0}.", + "HeaderAddedToPlayQueue": "Dodano v čakalno vrsto za predvajanje", + "HeaderPlayingNext": "Sledi", + "Help": "Pomoč", + "HeaderGetHelp": "Pridobite pomoč", + "LabelTVDisplayMode": "Omogoči prikaz za televizor", + "Desktop": "Namizje", + "Mobile": "Telefon / tablica", + "Navigation": "Navigacija", + "HeaderVideoPlayback": "Predvajanje videa", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Sezone", + "OneTrack": "1 element", + "OneSeason": "1 sezona", + "Libraries": "Knjižnice", + "NumberSeasonsValue": "{0} sezon", + "TVDisplayModeHelp": "Nastavi uporabniški vmesnik na tej napravi za prikaz na televizorju in način vnosa z daljinskim upravljalnikom. To na splošno ni priporočljivo, če je vaš primarni način vnosa miška ali na dotik.", + "LabelDisplayLanguage": "Jezik prikaza", + "LabelDisplayLanguageHelp": "Prevajanje Embyja je projekt v teku.", + "LearnHowYouCanContribute": "Izvedite, kako lahko prispevate", + "NewCollectionHelp": "Zbirke vam omogočajo ustvarjanje prilagojenih skupin filmov in druge knjižnične vsebine.", + "SearchForCollectionInternetMetadata": "V internetu poiščite slike in metapodatke", + "DisplayMissingEpisodesWithinSeasons": "Prikaži manjkajoče epizode v sezonah", + "DisplayMissingEpisodesWithinSeasonsHelp": "To mora biti omogočeno tudi za TV knjižnice v nastavitvi Emby Server.", + "EnableThemeSongs": "Predvajaj tematske pesmi", + "EnableBackdrops": "Omogoči ozadja", + "EnableThemeSongsHelp": "Če omogočeno, se bo tematska glasba med brskanjem po knjižnici predvajala v ozadju.", + "EnableBackdropsHelp": "Če je omogočeno, bo med brskanjem po knjižnici na nekaterih straneh prikazano ozadje.", + "EnableThemeVideos": "Predvajaj tematske videoposnetke", + "EnableThemeVideosHelp": "Če je omogočeno, se bodo tematski videoposnetki predvajali v ozadju med brskanjem po knjižnici.", + "RunAtStartup": "Zaženi ob zagonu", + "ServerStartup": "Zagon strežnika", + "EmbyServerOnXHasStarted": "Strežnik Emby na {0} se je zagnal.", + "LabelScreensaver": "Ohranjevalnik zaslona", + "LabelSoundEffects": "Zvočni učinki", + "LabelName": "Ime", + "NewCollectionNameExample": "Primer: Zbirka Vojne zvezd", + "MessageItemsAdded": "Predmeti dodani.", + "OptionNew": "Novo...", + "LabelPlaylist": "Seznam predvajanja", + "AddToPlaylist": "Dodaj na seznam predvajanja", + "HeaderAddToPlaylist": "Dodaj na seznam predvajanja", + "Subtitles": "Podnapisi", + "LabelTheme": "Tema", + "LabelSettingsTheme": "Tema nastavitev", + "LabelThemeAccentColor": "Barva poudarka", + "ThemeAccentColorDescription": "Nadzoruje barvo pomembnih indikatorjev, ikon in besedila.", + "SearchForSubtitles": "Poiščite podnapise", + "LabelLanguage": "Jezik", + "Search": "Iskanje", + "NoSubtitleSearchResultsFound": "Ni zadetkov. Ali ste konfigurirali {0}prenos podnapisov{1}?", + "NoLyricsSearchResultsFound": "Ni zadetkov. Ali ste konfigurirali {0}prenos besedil{1}?", + "Lyrics": "Besedila", + "SearchForLyrics": "Iskanje besedil pesmi", + "Finish": "Konec", + "File": "Datoteka", + "Exit": "Izhod", + "Sleep": "Spanje", + "Setup": "Nastavitev", + "MessageAreYouSureDeleteSubtitles": "Ali res želite izbrisati to datoteko s podnapisi?", + "ConfirmDeletion": "Potrdite izbris", + "MySubtitles": "Moji podnapisi", + "MessageDownloadQueued": "Prenos v čakalni vrsti.", + "HeaderEditSubtitles": "Uredi podnapise", + "UnlockGuide": "Vodnik za odklepanje", + "HeaderRefreshMetadata": "Osveži metapodatke", + "HeaderRefreshAllMetadata": "Osveži vse metapodatke", + "ReplaceExistingImages": "Zamenjaj obstoječe slike", + "ReplaceExistingImagesHelp": "Vse obstoječe slike bodo izbrisane, nove pa bodo prenesene glede na nastavitve knjižnice. V nekaterih primerih bo to lahko povzročilo manj razpoložljivih slik kot prej.", + "ReplaceAllMetadata": "Zamenjaj vse metapodatke", + "SearchForMissingMetadata": "Poišči manjkajoče metapodatke", + "LabelRefreshMode": "Način osveževanja", + "NoItemsFound": "Ni elementov.", + "HeaderSaySomethingLike": "Recite na primer...", + "ButtonTryAgain": "Poskusite ponovno", + "HeaderYouSaid": "Rekli ste...", + "MessageWeDidntRecognizeCommand": "Oprostite, tega ukaza nismo prepoznali.", + "MessageIfYouBlockedVoice": "Če ste zavrnili glasovni dostop do aplikacije, boste morali znova konfigurirati, preden poskusite znova.", + "ValueDiscNumber": "Disk {0}", + "Unrated": "Brez ocene", + "Favorite": "Priljubljeno", + "Like": "Všečkaj", + "Dislike": "Ni všeč", + "RefreshDialogHelp": "Metapodatki so posodobljeni z novimi podatki na podlagi nastavitev in ponudnikov metapodatkov, ki so omogočeni v nastavitvah knjižnice Emby.", + "Open": "Odpri", + "Play": "Predvajaj", + "Pause": "Pavza", + "HeaderPlayQueue": "Predvajaj čakalno vrsto", + "HeaderAddToPlayQueue": "Dodaj v čak. vrsto", + "Shuffle": "Naključno", + "Identify": "Identificiraj", + "HeaderRemoveIdentification": "Odstrani identifikacijo", + "ResetMetadataConfirmation": "Ali res želite ponastaviti vse metapodatke?", + "HeaderEditMetadata": "Urejanje metapodatkov", + "Convert": "Pretvorba", + "Resume": "Nadaljuj", + "HeaderInstantMix": "Takojšen miks", + "HeaderGoToItem": "Pojdi na element", + "HeaderGoToSeason": "Pojdi na sezono", + "HeaderGoToSeries": "Pojdi na serijo", + "HeaderGoToAlbum": "Pojdi v album", + "HeaderGoToArtist": "Pojdi na umetnika", + "HeaderPlayAll": "Predvajaj vse", + "PictureInPicture": "Slika v sliki", + "Fullscreen": "Celozaslonski način", + "ExitFullscreen": "Izhod iz celotnega zaslona", + "Rewind": "Previjanje", + "FastForward": "Hitro naprej", + "Remove": "Odstrani", + "Rename": "Preimenuj", + "Queue": "Čakalna vrsta", + "QueueAllFromHere": "Vse v čakalni vrsti od tukaj", + "PlayAllFromHere": "Predvajaj vse od tukaj", + "PlayFromBeginning": "Predvajaj od začetka", + "FromBeginning": "Od začetka", + "ResumeAt": "Nadaljuj od {0}", + "HeaderRemoveFromPlaylist": "Odstrani s seznama predvajanja", + "HeaderRemoveFromPlayQueue": "Odstrani iz čakalne vrste predvajanja", + "HeaderRemoveFromCollection": "Odstrani iz zbirke", + "Sort": "Razvrsti", + "Trailer": "Napovednik", + "SelectNone": "Izberi nič", + "SelectAll": "Izberi vse", + "HeaderMarkPlayed": "Označi ogledano", + "HeaderMarkUnplayed": "Označi neogledano", + "HeaderGroupVersions": "Združi različice", + "PleaseSelectTwoItems": "Prosimo izberite vsaj dva elementa.", + "HeaderConfirmRecordingCancellation": "Potrdite preklic snemanja", + "MessageConfirmRecordingCancellation": "Preklic snemanja?", + "Album": "Album", + "AlbumArtist": "Izvajalec albuma", + "Error": "Napaka", + "VoiceInput": "Glasovni vnos", + "LabelContentType": "Vrsta vsebine", + "LabelPath": "Pot", + "Playlists": "Seznami predvajanja", + "LabelTitle": "Naslov", + "LabelOriginalTitle": "Originalni naslov", + "LabelSortTitle": "Naslov za razvrščanje", + "LabelDateAdded": "Dodano dne", + "DateAdded": "Dodano dne", + "DateModified": "Datum spremembe", + "DatePlayed": "Datum predvajanja", + "DateLastActive": "Zadnja aktivnost", + "ConfigureDateAdded": "Konfigurirajte, kako se datum dodajanja določi na nadzorni plošči strežnika Emby v nastavitvah knjižnice", + "LabelStatus": "Status", + "LabelArtistsHelp": "Loči večkratne z ;", + "HeaderAlbumArtists": "Izvajalci albuma", + "LabelAlbumArtists": "Izvajalci albuma", + "LabelAlbum": "Album", + "Artist": "Izvajalec", + "Artists": "Izvajalci", + "ImdbRating": "Ocena IMDb", + "CommunityRating": "Ocena skupnosti", + "LabelCommunityRating": "Ocena skupnosti", + "LabelCriticRating": "Ocena kritikov", + "CriticRating": "Ocena kritikov", + "LabelWebsite": "Spletna stran", + "Tagline": "Slogan:", + "LabelOverview": "Pregled", + "LabelShortOverview": "Kratek pregled", + "LabelReleaseDate": "Datum izdaje", + "LabelPlaceOfBirth": "Kraj rojstva", + "Aired": "Prikazano", + "LabelAirDays": "Dnevi prikazovanja", + "LabelAirTime": "Čas prikazovanja", + "LabelRuntimeMinutes": "Dolžina (minute)", + "LabelCustomRating": "Ocena po meri", + "LabelOriginalAspectRatio": "Prvotno razmerje stranic", + "Label3DFormat": "3D format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} prenosov", + "HashMatch": "Natančno ujemanje", + "EnableExternalVideoPlayers": "Omogoči zunanje video predvajalnike", + "EnableExternalVideoPlayersHelp": "Ob začetku predvajanja videoposnetka bo prikazan meni zunanjega predvajalnika.", + "HeaderSpecialEpisodeInfo": "Informacije o posebni epizodi", + "LabelAirsDuringSeason": "Na sporedu med sezono", + "LabelAirsAfterSeason": "Na sporedu po sezoni", + "LabelAirsBeforeEpisode": "Na sporedu pred epizodo", + "HeaderExternalIds": "Zunanji ID-ji", + "HeaderDisplaySettings": "Nastavitve zaslona", + "PlaylistOrder": "Vrstni red seznama predvajanja", + "CollectionOrder": "Vrstni red zbirke", + "LabelDisplayOrder": "Vrstni red prikaza", + "LabelFileOrder": "Vrstni red datotek", + "Display": "Zaslon", + "Countries": "Države", + "Genres": "Žanri", + "Studios": "Studiji", + "Tags": "Oznake", + "Links": "Povezave", + "Movie": "Film", + "Program": "Program", + "Channel": "Kanal", + "Episode": "Epizoda", + "Season": "Sezona", + "HeaderMetadataSettings": "Nastavitve metapodatkov", + "People": "Osebe", + "Number": "Številka", + "Lock": "Zaklepanje", + "HeaderScreenLocked": "Zaslon zaklenjen", + "HeaderUnlockControls": "Odkleni kontrole", + "HeaderTapToUnlock": "Tapnite za odklepanje", + "LabelMetadataDownloadLanguage": "Prednostni jezik metapodatkov", + "LabelImageDownloadLanguage": "Prednostni jezik slik", + "LabelLockItemToPreventChanges": "Zaklenite ta element, da preprečite prihodnje spremembe", + "LockThisField": "Zaklenite to polje, da preprečite prihodnje spremembe pri osveževanju metapodatkov", + "MessageLeaveEmptyToInherit": "Pustite prazno, če želite podedovati nastavitve od nadrejenega elementa ali globalne privzete vrednosti.", + "LabelCountry": "Država", + "LabelCertificationCountry": "Država certificiranja", + "CertificationCountryHelp": "Vpliva na uporabo sistema ocenjevanja vsebine.", + "LabelDynamicExternalId": "{0} ID", + "LabelBirthYear": "Rojstno leto", + "LabelBirthDate": "Rojstni datum", + "LabelDeathDate": "Datum smrti", + "LabelEndDate": "Končni datum", + "LabelSeasonNumber": "Številka sezone", + "LabelEpisodeNumber": "Številka epizode", + "LabelTrackNumber": "Številka elementa", + "LabelNumber": "Številka", + "LabelDiscNumber": "Številka diska", + "LabelParentNumber": "Številka starša", + "SortName": "Naslov za razvrščanje", + "OriginalTitle": "Originalni naslov", + "ReleaseDate": "Datum izdaje", + "Continuing": "Se nadaljuje", + "Ended": "Končano", + "HeaderEnabledFields": "Omogočena polja", + "HeaderEnabledFieldsHelp": "Počistite polje, da ga zaklenete in preprečite spreminjanje podatkov v njem.", + "Backdrops": "Ozadja", + "Images": "Slike", + "Runtime": "Dolžina", + "ProductionLocations": "Lokacije", + "BirthLocation": "Kraj rojstva", + "ParentalRating": "Starševska ocena", + "PlayCount": "Število predvajanj", + "Name": "Ime", + "Overview": "Pregled", + "LabelType": "Tip", + "LabelPersonRole": "Vloga", + "LabelPersonRoleHelp": "Primer: voznik tovornjaka za sladoled", + "Actor": "Igralec/ka", + "Composers": "Skladatelji", + "Composer": "Skladatelj", + "Director": "Režija", + "GuestStar": "Gostujoči", + "Producer": "Producent", + "Writer": "Scenarij", + "MessageNoSyncJobsFound": "Ni prenosov. Ustvarite opravila za prenos z uporabo gumbov za prenos v celotni aplikaciji.", + "MessageNoDownloadsFound": "Brez prenosov brez povezave. Prenesite predstavnost za uporabo brez povezave, tako da kliknete Prenesi v celotni aplikaciji.", + "InstallingPackage": "Nameščanje {0}", + "PackageInstallCompleted": "Namestitev {0} je končana.", + "PackageInstallFailed": "Namestitev {0} ni uspela.", + "PackageInstallCancelled": "Namestitev {0} preklicana.", + "SeriesYearToPresent": "{0} – v teku", + "OneDevice": "1 naprava", + "DeviceCountValue": "{0} naprav", + "OneLog": "1 dnevnik", + "LogCountValue": "{0} dnevnikov", + "OneVote": "1 glas", + "VoteCountValue": "{0} glas/ov", + "OneLike": "1 všeček", + "LikeCountValue": "{0} všečk/ov", + "OneUser": "1 uporabnik", + "UserCountValue": "{0} uporabnik/ov", + "OneLibrary": "1 knjižnica", + "LibraryCountValue": "{0} knjižnic/e", + "ValueOneItem": "1 element", + "ValueOneEpisode": "1 epizoda", + "ValueEpisodeCount": "{0} epizod", + "Albums": "Albumi", + "Song": "Pesem", + "Songs": "Pesmi", + "Authors": "Avtorji", + "Books": "Knjige", + "AudioBooks": "zvočne knjige", + "HeaderAudioBooks": "Zvočne knjige", + "HeaderAudioBook": "Zvočna knjiga", + "HeaderIdentifyItemHelp": "Vnesite enega ali več iskalnih kriterijev. Odstranite kriterije za povečanje rezultatov iskanja.", + "PleaseEnterNameOrId": "Vnesite ime ali zunanji ID.", + "MessageItemSaved": "Predmet shranjen.", + "SearchResults": "Zadetki iskanja", + "ServerNameIsRestarting": "Strežnik Emby – {0} se znova zaganja.", + "ServerNameIsShuttingDown": "Strežnik Emby – {0} se zaustavlja.", + "HeaderDeleteItems": "Izbriši elemente", + "ConfirmDeleteItems": "Če izbrišete te elemente, jih boste izbrisali iz datotečnega sistema in vaše medijske knjižnice.", + "PleaseRestartServerName": "Znova zaženite strežnik Emby na {0}", + "ConvertingDots": "Pretvorba ...", + "LabelSyncNoTargetsHelp": "Videti je, da trenutno nimate nobene aplikacije, ki bi podpirala prenos brez povezave.", + "DownloadingDots": "Prenašanje ...", + "LearnMore": "Izvedite več", + "LabelBitrateMbps": "Bitna hitrost (MBps)", + "ConvertUnwatchedVideosOnly": "Pretvori samo nepredvajane videoposnetke", + "SyncUnwatchedVideosOnly": "Prenesite samo nepredvajane videoposnetke", + "ConvertUnwatchedVideosOnlyHelp": "Pretvorjeni bodo samo videoposnetki, ki niso označeni kot v celoti predvajani.", + "SyncUnwatchedVideosOnlyHelp": "Preneseni bodo samo videoposnetki, ki niso označeni kot v celoti predvajani, videoposnetki pa bodo odstranjeni iz naprave, ko bodo v celoti predvajani.", + "AutomaticallySyncNewContent": "Samodejni prenos nove vsebine", + "AutomaticallySyncNewContentHelp": "Nova vsebina, dodana v to mapo, bo samodejno prenesena v napravo.", + "AutomaticallyConvertNewContent": "Samodejno pretvori novo vsebino", + "AutomaticallyConvertNewContentHelp": "Nova vsebina, dodana v to mapo, bo samodejno pretvorjena.", + "LabelItemLimit": "Omejitev elementov", + "ConvertItemLimitHelp": "Neobvezno. Nastavite omejitev števila elementov, ki bodo pretvorjeni.", + "DownloadItemLimitHelp": "Neobvezno. Nastavite omejitev števila elementov, ki bodo preneseni.", + "PleaseSelectDeviceToSyncTo": "Izberite napravo za prenos.", + "Screenshots": "Posnetki zaslona", + "MoveRight": "Premakni desno", + "MoveLeft": "Premakni levo", + "HeaderUploadNewImage": "Naloži novo sliko", + "HeaderDeleteImage": "Izbrisi sliko", + "ConfirmDeleteImage": "Izbrisati sliko?", + "HeaderEditImages": "Urejanje slik", + "Settings": "Nastavitve", + "ShowIndicatorsFor": "Pokaži indikatorje", + "Episodes": "Epizode", + "Programs": "Programi", + "HeaderCastCrew": "Zasedba", + "DvrSubscriptionRequired": "Emby Live TV in DVR zahtevata aktivno {0}naročnino na Emby Premiere{1}.", + "HeaderCancelRecording": "Prekliči snemanje", + "HeaderKeepRecording": "Obdrži posnetek", + "HeaderCancelSeries": "Prekliči serijo", + "HeaderKeepSeries": "Obdrži serijo", + "HeaderLearnMore": "Izvedite več", + "SeriesSettings": "Nastavitve serije", + "HeaderRecordingOptions": "Možnosti snemanja", + "HeaderDoNotRecord": "Ne snemaj", + "HeaderSeriesOptions": "Možnosti serije", + "Layout": "Postavitev", + "Channels": "Programi", + "ChannelNameOnly": "Samo program {0}", + "Anytime": "Kadarkoli", + "AnyLanguage": "Kateri koli jezik", + "AroundTime": "Okoli {0}", + "HeaderLatestMovies": "Novi filmi", + "All": "Vse", + "Stop": "Ustavi", + "AllChannels": "Vsi programi", + "NewEpisodesOnly": "Samo nove epizode", + "AllEpisodes": "Vse epizode", + "LabelStartWhenPossible": "Začni, ko je mogoče", + "LabelStopWhenPossible": "Ustavi se, ko je mogoče", + "MinutesBefore": "minut pred", + "MinutesAfter": "minut po", + "SkipEpisodesAlreadyInMyLibrary": "Ne snemi epizod, ki so že v moji knjižnici", + "SkipEpisodesAlreadyInMyLibraryHelp": "Epizode bodo primerjane s številkami sezon in epizod, ko bodo na voljo.", + "LabelKeepUpTo": "Obdrži do", + "AsManyAsPossible": "Čim več", + "DefaultErrorMessage": "Pri obdelavi zahteve je prišlo do napake. Prosim poskusite kasneje.", + "UntilIDelete": "Dokler ne izbrišem", + "UntilSpaceNeeded": "Dokler ne bo potreben prostor", + "Categories": "Kategorije", + "Sports": "Šport", + "News": "Novice", + "Movies": "Filmi", + "Music": "Glasba", + "Kids": "Otroci", + "MoreFromValue": "Več iz: {0}", + "DiedValue": "Umrl: {0}", + "BornValue": "Rojen: {0}", + "EnableColorCodedBackgrounds": "Uporabi barvna ozadja za oddaje glede na njihovo kategorijo", + "SortChannelsBy": "Razvrsti kanale po", + "ChannelNumber": "Program", + "HeaderBenefitsEmbyPremiere": "Prednosti Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Uživajte v eni minuti predvajanja. Hvala, ker ste poskusili Emby.", + "HeaderTryPlayback": "Poskusite s predvajanjem", + "HowDidYouPay": "Kako ste plačali?", + "IHaveEmbyPremiere": "Imam Emby Premiere", + "IPurchasedThisApp": "Kupil sem to aplikacijo", + "ButtonRestorePreviousPurchase": "Obnovi nakup", + "ButtonUnlockWithPurchase": "Odkleni z nakupom", + "ButtonUnlockPrice": "Odkleni {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere mesečno {0}", + "HeaderAlreadyPaid": "Že plačano?", + "ButtonPlayOneMinute": "Predvajaj eno minuto", + "PlaceFavoriteChannelsAtBeginning": "Postavi priljubljene programe na začetek", + "HeaderUnlockFeature": "Odkleni funkcijo", + "MessageDidYouKnowCinemaMode": "Ali ste vedeli, da lahko z Emby Premiere izboljšate svojo izkušnjo s funkcijami, kot je Cinema Intros?", + "HeaderPlayMyMedia": "Predvajaj moje medije", + "HeaderDiscoverEmbyPremiere": "Odkrijte Emby Premiere", + "HeaderNowPlaying": "Trenutno predvajam", + "Items": "Elementi", + "AppName": "Ime aplikacije", + "OneChannel": "En program", + "ConfirmRemoveDownload": "Odstraniti prenos?", + "ConfirmRemoveItem": "Odstranim element?", + "RemoveDownload": "Odstrani prenos", + "ConfirmCancelConversion": "Preklic pretvorbe?", + "CancelConversion": "Prekliči pretvorbo", + "KeepDownload": "Nadaljuj prenos", + "AddedOnValue": "Dodano {0}", + "RemovingFromDevice": "Odstranjevanje iz naprave", + "KeepOnDevice": "Ohrani na napravi", + "CancelDownload": "Prekliči prenos", + "SyncJobItemStatusReadyToTransfer": "Pripravljen za prenos", + "SyncJobItemStatusSyncedMarkForRemoval": "Odstranjevanje iz naprave", + "SyncJobItemStatusQueued": "V čakalni vrsti", + "SyncJobItemStatusConverting": "Pretvarjanje", + "SyncJobItemStatusTransferring": "Prenašanje", + "SyncJobItemStatusSynced": "Preneseno", + "Failed": "Ni uspelo", + "SyncJobItemStatusRemovedFromDevice": "Odstranjeno iz naprave", + "Cancelled": "Preklicano", + "Retry": "Ponovno", + "Continue": "Nadaljuj", + "ContinueInSecondsValue": "Nadaljevanje čez {0} sekund.", + "HeaderRemoteControl": "Daljinsko upravljanje", + "Disconnect": "Prekini povezavo", + "EnableDisplayMirroring": "Omogoči zrcaljenje zaslona", + "RemoteAccess": "Oddaljen dostop", + "HeaderPlayOn": "Predvajaj na", + "Quality": "Kvaliteta", + "Auto": "Samodejno", + "AndroidUnlockRestoreHelp": "Če želite obnoviti prejšnji nakup, se prepričajte, da ste prijavljeni v napravo z istim računom Google (ali Amazon), s katerim ste prvotno opravili nakup. Prepričajte se, da je trgovina z aplikacijami omogočena in da ni omejena s starševskim nadzorom, in zagotovite, da imate aktivno internetno povezavo. To boste morali storiti samo enkrat, da obnovite prejšnji nakup.", + "HeaderAspectRatio": "Razmerje", + "Original": "Original", + "Fill": "Zapolni", + "Cover": "Naslovnica", + "MessageNoServersAvailableToConnect": "Za povezavo ni na voljo noben strežnik. Če ste bili povabljeni k skupni rabi strežnika, se prepričajte, da ga sprejmete spodaj ali tako, da kliknete povezavo v e-poštnem sporočilu.", + "MessagePlayAccessRestricted": "Predvajanje te vsebine je trenutno omejeno. Za več informacij se obrnite na skrbnika strežnika Emby.", + "Accept": "Sprejmi", + "Reject": "Zavrni", + "Connect": "Povežite se", + "HeaderMyMedia": "Mediji", + "HeaderMyMediaSmall": "Mediji (majhno)", + "LatestFromLibrary": "Dodano v {0}", + "HeaderLatestEpisodes": "Nove epizode", + "ContinuePlaying": "Nadaljuj z ogledom", + "ContinueWatching": "Nadaljuj ogled", + "HeaderLatestChannelMedia": "Najnovejši elementi kanala", + "HeaderContinueWatching": "Nadaljuj ogled", + "HeaderContinueListening": "Nadaljujte s poslušanjem", + "HeaderActiveRecordings": "Aktivni posnetki", + "HeaderLatestRecordings": "Novi posnetki", + "LabelConvertTo": "Pretvori v", + "LabelDownloadTo": "Prenesi na", + "HeaderDownloadToDots": "Prenesi v...", + "Next": "Naprej", + "LabelSource": "Vir", + "VersionNumber": "Različica {0}", + "HeaderAllLanguages": "Vsi jeziki", + "Previous": "Prejšnji", + "HeaderNextUp": "Sledi", + "HeaderPlayNextUp": "Predvajaj, kar sledi", + "HeaderLatestFrom": "Novo iz {0}", + "LabelHomeScreenSectionValue": "Odsek domačega zaslona {0}", + "PasswordResetComplete": "Geslo je bilo ponastavljeno.", + "PasswordSaved": "Geslo shranjeno.", + "SettingsSaved": "Nastavitve shranjene.", + "Upcoming": "Kmalu", + "HeaderSelectImageFile": "Izberite slikovno datoteko", + "None": "Brez", + "More": "Več", + "Up": "Gor", + "Down": "Dol", + "Home": "Domov", + "Back": "Nazaj", + "Random": "Naključno", + "Playback": "Predvajanje", + "Favorites": "Priljubljeno", + "HeaderHomeScreen": "Domači zaslon", + "HeaderLatestChannelItems": "Najnovejši elementi kanala", + "HeaderLibraryOrder": "Vrstni red knjižnice", + "HeaderOnNow": "Na sporedu", + "HeaderForKids": "Za otroke", + "HeaderPlaybackError": "Napaka pri predvajanju", + "PlaybackErrorNotAllowed": "Trenutno niste pooblaščeni za predvajanje te vsebine. Za podrobnosti se obrnite na skrbnika sistema.", + "RateLimitExceeded": "Vaš račun je presegel največjo omejitev pretakanja, ki jo je določil skrbnik strežnika Emby. Za pomoč se obrnite na njih.", + "PlaybackErrorNoCompatibleStream": "Trenutno ni na voljo noben združljiv tok. Poskusite znova pozneje ali se za podrobnosti obrnite na skrbnika sistema.", + "PlaybackErrorPlaceHolder": "Vstavite disk, če želite predvajati ta video.", + "PlaybackErrorNoPlayableItems": "Elementov, ki bi jih bilo mogoče predvajati, ni bilo mogoče najti. Ali poskušate predvajati prazno mapo?", + "Guide": "EPG", + "Games": "Igre", + "GameSystem": "Igralni sistem", + "Suggestions": "Priporočila", + "HeaderFavoriteChannels": "Priljubljeni programi", + "HeaderFavoriteCollections": "Priljubljene zbirke", + "HeaderFavoritePlaylists": "Priljubljeni seznami predvajanja", + "Collection": "Zbirka", + "Collections": "Zbirke", + "LabelSelectFolderGroups": "Samodejno združi vsebino iz naslednjih map v poglede, kot so Filmi, Glasba in TV:", + "LabelSelectFolderGroupsHelp": "Mape, ki niso označene, bodo prikazane same v svojem pogledu.", + "Mute": "Utišaj", + "Unmute": "Vklop zvoka", + "Folder": "Mapa", + "Folders": "Mape", + "FileName": "Ime datoteke", + "DisplayInOtherHomeScreenSections": "Prikaži na domačem zaslonu med odseki kot so novo ali nadaljuj ogled", + "DisplayInMyMedia": "Prikaži na domačem zaslonu", + "Shows": "Serije", + "MoviesAndShows": "Filmi in serije", + "HeaderMusicVideo": "1 glasbeni videospot", + "HeaderMusicVideos": "Glasbeni videospoti", + "MusicVideos": "Glasbeni videospoti", + "Videos": "Posnetki", + "MixedContent": "Razni mediji", + "HomeVideos": "Domači posnetki", + "HomeVideosAndPhotos": "Domači posnetki in fotografije", + "TVShows": "TV", + "HeaderLibraryFolders": "Mape knjižnice", + "HeaderTermsOfPurchase": "Pogoji nakupa", + "PrivacyPolicy": "Pravila o zasebnosti", + "TermsOfUse": "Pogoji uporabe", + "HeaderRepeatMode": "Način ponavljanja", + "HeaderToneMapping": "Tonska preslikava", + "RepeatOne": "Ponovi 1", + "RepeatAll": "Ponovi vse", + "LabelDefaultScreen": "Privzeti zaslon", + "ConfirmEndPlayerSession": "Ali želite izklopiti Emby ob {0}?", + "Yesterday": "Včeraj", + "Yes": "Da", + "No": "Ne", + "HeaderScanLibraryFiles": "Preglej knjižnico", + "LiveTV": "Televizija", + "Schedule": "Urnik", + "Recordings": "Posnetki", + "ScanForNewAndUpdatedFiles": "Iskanje novih in posodobljenih datotek", + "NewVersionOfXAvailableForY": "{0} je na voljo za {1}", + "DirectStreamHelp1": "Medij je združljiv z napravo glede ločljivosti in vrste medija (H.264, AC3 itd.), vendar je v nezdružljivem vsebniku datotek (.mkv, .avi, .wmv itd.). Videoposnetek bo sproti ponovno zapakiran, preden se pretaka v napravo.", + "DirectStreamHelp2": "Neposredno pretakanje datoteke porabi zelo malo procesorske moči brez izgube kakovosti videa.", + "MediaIsBeingConverted": "Medij se pretvarja v obliko združljivo z napravo.", + "StatsForNerds": "Tehnični podatki", + "HeaderHardwareAcceleratedDecoding": "Strojno pospešeno dekodiranje", + "HeaderHardwareAcceleratedEncoding": "Strojno pospešeno kodiranje", + "HeaderDirectPlay": "Neposredno predvajanje", + "DirectPlaying": "Neposredno predvajanje", + "DirectStreaming": "Neposredno pretakanje", + "Transcode": "Prekodiraj", + "Transcoding": "Prekodiranje", + "ContainerBitrateExceedsLimit": "Zmanjšanje bitne hitrosti zaradi nastavitve kakovosti", + "VideoCodecNotSupported": "Pretvarjanje videa v združljiv kodek", + "AudioCodecNotSupported": "Pretvarjanje zvoka v združljiv kodek", + "SubtitleCodecNotSupported": "Pretvarjanje podnapisov neposredno v video", + "DirectPlayError": "Obnavljanje po napaki pri predvajanju", + "ContainerNotSupported": "Pretvorba v združljiv vsebnik", + "VideoLevelNotSupported": "Pretvorba v združljivo video raven", + "AudioBitrateNotSupported": "Pretvarjanje v združljivo bitno hitrost zvoka", + "AudioChannelsNotSupported": "Pretvarjanje v združljivo število zvočnih kanalov", + "VideoResolutionNotSupported": "Pretvarjanje v združljivo video ločljivost", + "AudioProfileNotSupported": "Pretvorba v združljiv zvočni profil", + "AudioSampleRateNotSupported": "Pretvarjanje v združljivo hitrost vzorčenja zvoka", + "AnamorphicVideoNotSupported": "Anamorfni video ni podprt", + "InterlacedVideoNotSupported": "Odstranjevanje prepletanja", + "SecondaryAudioNotSupported": "Izbira sekundarnega zvočnega posnetka", + "ExternalAudioNotSupported": "Izbira zunanjega zvočnega posnetka", + "ErrorRemovingEmbyConnectAccount": "Pri odstranjevanju računa Emby Connect je prišlo do napake. Preverite, ali imate aktivno internetno povezavo, in poskusite znova.", + "HeaderEmbyAccountRemoved": "Račun Emby odstranjen", + "MessageEmbyAccontRemoved": "Račun Emby je bil odstranjen temu uporabniku.", + "HeaderInvitationSent": "Vabilo poslano", + "Offline": "Brez povezave", + "HeaderSignUp": "Registracija", + "ServerDownloadMessage": "Za prenos in namestitev brezplačnega strežnika Emby obiščite {0}", + "ServerDownloadMessageWithoutLink": "Za prenos in namestitev brezplačnega strežnika Emby obiščite spletno mesto Emby.", + "MessageInvitationSentToUser": "Na naslov {0} je bilo poslano e-poštno sporočilo s povabilom, da sprejme vaše povabilo k skupni rabi.", + "MessageInvitationSentToNewUser": "Na {0} je bilo poslano e-poštno sporočilo s povabilom, naj se prijavijo pri Emby.", + "GuestUserNotFound": "Uporabnik ni najden. Prepričajte se, da je ime pravilno in poskusite znova ali poskusite vnesti njihov e-poštni naslov.", + "ErrorReachingEmbyConnect": "Prišlo je do napake pri doseganju strežnika Emby Connect. Preverite, ali imate aktivno internetno povezavo, in poskusite znova.", + "ErrorAddingEmbyConnectAccount1": "Pri dodajanju računa Emby Connect je prišlo do napake. Ste ustvarili Emby račun? Prijavite se na {0}.", + "ErrorAddingEmbyConnectAccount2": "Če imate še vedno težave, pošljite e-pošto na {0} z e-poštnega naslova, uporabljenega z računom Emby.", + "ErrorAddingGuestAccount1": "Pri dodajanju računa Emby Connect je prišlo do napake. Ali je vaš gost ustvaril Emby račun? Prijavijo se lahko na {0}.", + "ErrorAddingGuestAccount2": "Če imate še vedno težave, pošljite e-poštno sporočilo na {0} in vključite svoj in njihov e-poštni naslov.", + "MessageEmbyAccountAdded": "Račun Emby je bil dodan temu uporabniku.", + "MessagePendingEmbyAccountAdded": "Račun Emby je bil dodan temu uporabniku. E-poštno sporočilo bo poslano lastniku računa. Povabilo bo treba potrditi s klikom na povezavo v e-poštnem sporočilu.", + "HeaderEmbyAccountAdded": "Emby račun dodan", + "Skip": "Preskoči", + "HeaderAdditionalParts": "Dodatni deli", + "ButtonGenerateNewPin": "Ustvari nov PIN", + "ConnectLoginHelp1": "Z Emby Connect lahko enostavno dostopate do svojega strežnika Emby kjer koli že ste in delite strežnike s svojo družino in prijatelji.", + "CreatePinErrorMessage": "Med ustvarjanjem kode PIN je prišlo do napake. Kliknite »Ustvari nov PIN«, da poskusite znova.", + "PinExpiredMessage": "Koda PIN je potekla. Kliknite »Ustvari nov PIN«, da poskusite znova.", + "ConnectPinCodeHeader": "Če se želite prijaviti z Emby Connect, z mobilno napravo ali računalnikom obiščite {0} in vnesite to kodo PIN:", + "LabelSubtitlePlaybackMode": "Način podnapisov", + "ErrorDeletingItem": "Pri brisanju elementa iz strežnika Emby je prišlo do napake. Prosimo, preverite, ali ima Emby Server dostop za pisanje v predstavnostno mapo in poskusite znova.", + "NoSubtitles": "Brez podnapisov", + "Default": "privzeto", + "Absolute": "Absolutno", + "Smart": "Pametno", + "Small": "Majhno", + "Smaller": "Manjše", + "Medium": "Srednje", + "Large": "Veliko", + "Larger": "Večje", + "ExtraLarge": "Zelo veliko", + "ExtraSmall": "Zelo majhno", + "Forced": "Obvezni", + "External": "Zunanji", + "HeaderEmbeddedTitle": "Vdelan naslov", + "OnlyForcedSubtitles": "Samo obvezni podnapisi", + "AlwaysPlaySubtitles": "Vedno predvajaj podnapise", + "DefaultSubtitlesHelp": "Podnapisi se naložijo na podlagi privzetih in vsiljenih zastavic v vdelanih metapodatkih. Jezikovne nastavitve se upoštevajo, ko je na voljo več možnosti.", + "SmartSubtitlesHelp": "Podnapisi, ki se ujemajo z jezikovnimi nastavitvami, se naložijo, ko je zvok v tujem jeziku.", + "HeaderSubtitleSettings": "Nastavitve podnapisov", + "HeaderSubtitleAppearance": "Videz podnapisov", + "OnlyForcedSubtitlesHelp": "Naloženi bodo samo podnapisi, označeni kot obvezni.", + "AutoSelectHearingImpairedHelp": "Naloženi bodo podnapisi, ki se ujemajo z jezikovnimi nastavitvami, pri čemer bo dana prednost podnapisom za slušno prizadete (SDH).", + "AlwaysPlaySubtitlesHelp": "Podnapisi, ki se ujemajo z jezikovnimi nastavitvami, bodo naloženi ne glede na jezik zvoka.", + "NoSubtitlesHelp": "Podnapisi se privzeto ne bodo naložili. Še vedno jih je mogoče ročno vklopiti med predvajanjem.", + "LabelPreferredSubtitleLanguage": "Želeni jezik podnapisov", + "LabelTextSize": "Velikost besedila", + "TheseSettingsAffectSubtitlesOnThisDevice": "Te nastavitve vplivajo na podnapise samo v tej napravi", + "LabelDropShadow": "Senca", + "LabelTextBackgroundColor": "Barva ozadja besedila", + "LabelWindowBackgroundColor": "Barva ozadja besedila", + "LabelFont": "Font", + "LabelTextColor": "Barva besedila", + "LabelBackgroundColor": "Barva ozadja", + "LabelBackgroundOpacity": "Motnost ozadja", + "Raised": "Dvignjeni", + "Depressed": "Spuščeni", + "Uniform": "Enotni", + "DropShadow": "Senca", + "SmallCaps": "Velike male črke", + "SubtitleAppearanceSettingsDisclaimer": "Te nastavitve ne bodo veljale za grafične podnapise (PGS, DVD itd.) ali podnapise, ki imajo vdelane lastne sloge (ASS/SSA).", + "Normal": "Normalno", + "HeaderWaitingForWifi": "Čakam na Wifi", + "WifiRequiredToDownload": "Zahtevana je povezava Wifi za nadaljevanje prenosa.", + "DownloadOnlyOnWifi": "Prenos samo na Wifi", + "LabelMusicDownloadQuality": "Kakovost prenosa glasbe", + "MusicDownloadQualityHelp": "Zvočne datoteke z višjo bitno hitrostjo bo pretvoril Emby Server. Izberite višjo vrednost za boljšo kakovost ali nižjo vrednost za prihranek lokalnega prostora za shranjevanje.", + "HeaderDownloadSettings": "Nastavitve prenosa", + "LabelDownloadLocation": "Lokacija prenosa", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Neomejeno", + "NoLimit": "Ni omejitev", + "Hide": "Skrij", + "HeaderKeepWatching": "Nadaljuj ogled", + "HeaderNextEpisode": "Naslednja epizoda", + "AudioBitDepthNotSupported": "Pretvarjanje v združljivo bitno hitrost zvoka", + "VideoBitrateNotSupported": "Pretvorba v združljivo bitno hitrost videa", + "VideoProfileNotSupported": "Pretvarjanje v združljiv video profil", + "VideoFramerateNotSupported": "Pretvarjanje v združljivo hitrost sličic videa", + "VideoBitDepthNotSupported": "Pretvarjanje v združljivo bitno globino videa", + "RefFramesNotSupported": "Pretvarjanje v združljivo število video referenčnih okvirjev", + "ErrorConnectServerUnreachable": "Pri izvajanju zahtevane operacije je prišlo do napake. Vaš strežnik ne more vzpostaviti stika z našim strežnikom Emby Connect na {0}. Prepričajte se, da ima vaš strežnik aktivno internetno povezavo in da morebitni požarni zid ali varnostna programska oprema, ki ste jo namestili, dovoljuje komunikacijo.", + "HeaderStopRecording": "Ustavi snemanje", + "ManageRecording": "Upravljanje snemanja", + "LabelDropImageHere": "Povlecite in spustite sliko sem ali kliknite, da izberete sliko za nalaganje.", + "MessageFileReadError": "Pri branju datoteke je prišlo do napake. Prosim poskusite ponovno.", + "Browse": "Prebrskaj", + "HeaderUploadImage": "Naloži sliko", + "HeaderAddUpdateImage": "Dodaj/posodobi sliko", + "HeaderShowFields": "Pokaži polja", + "LabelView": "Pogled", + "LabelImageType": "Vrsta slike", + "Upload": "Naloži", + "Primary": "Primarni", + "PrimaryImageBlur": "Zamegljenost primarne slike", + "Art": "Slika", + "Backdrop": "Ozadje", + "Banner": "Pasica", + "Box": "Škatla", + "BoxRear": "Škatla (zadaj)", + "Disc": "Disk", + "Logo": "Logotip", + "LogoDark": "Logotip (temen)", + "LogoLight": "Logotip (svetel)", + "LogoLightColor": "Logotip (svetel, barvni)", + "Menu": "Meni", + "Screenshot": "Posnetek zaslona", + "Thumb": "Sličica", + "HeaderAudioSettings": "Nastavitve zvoka", + "LabelAudioLanguagePreference": "Želeni jezik zvoka", + "LabelPlayDefaultAudioTrack": "Predvajanje privzetega zvočnega posnetka ne glede na jezik", + "HeaderVideoQuality": "Kakovost videa", + "CinemaModeConfigurationHelp": "Cinema Intros prinaša gledališko izkušnjo naravnost v vašo dnevno sobo z možnostjo predvajanja napovednikov in uvodov po meri pred glavnim delom.", + "ShowUpNextPreview": "Prikaži predogled naslednjega elementa", + "ShowUpNextPreviewHelp": "Prikaži informacije za naslednji element blizu konca trenutnega", + "PlayNextEpisodeAutomatically": "Samodejno predvajaj naslednjo epizodo", + "LabelMaxChromecastBitrate": "Pretočna kvaliteta za Chromecast", + "LabelSkipBackLength": "Dolžina preskoka nazaj", + "LabelSkipForwardLength": "Dolžina preskoka naprej", + "EnableCinemaMode": "Omogoči napovednike", + "LabelInternetQuality": "Kakovost oddaljenega pretakanja", + "LabelCellularQuality": "Kakovost oddaljenega pretakanja (mobilno)", + "HeaderMusicQuality": "Kakovost glasbe", + "LabelHomeNetworkQuality": "Kakovost lokalnega pretakanja", + "HeaderLatestMedia": "Novi mediji", + "HeaderRestartingEmbyServer": "Ponovni zagon strežnika Emby", + "RestartPleaseWaitMessage": "Počakajte, da se strežnik Emby zaustavi in ​​znova zažene. To lahko traja minuto ali dve.", + "HeaderPlayNext": "Predvajaj naslednje", + "AutoBasedOnLanguageSetting": "Samodejno (glede na nastavitve naprave)", + "SameAsMainTheme": "Enako kot glavna tema", + "LabelDateTimeLocale": "Zapis datuma in časa", + "Genre": "Žanr:", + "DirectorValue": "Režija: {0}", + "DirectorsValue": "Režija: {0}", + "GenreValue": "Žanr: {0}", + "GenresValue": "Žanri: {0}", + "TagsValue": "Oznake: {0}", + "Off": "Izključeno", + "Title": "Naslov", + "Year": "Leto", + "Filter": "Filter", + "Filters": "Filtri", + "Unplayed": "Nepredvajano", + "LabelTVHomeScreen": "Domači zaslon načina TV", + "Horizontal": "Vodoravno", + "Vertical": "Navpično", + "HeaderGroupBy": "Združi po", + "HeaderMediaType": "Vrsta medija", + "GroupBySeries": "Združi po serijah", + "HeaderVideoType": "Tip videa", + "HeaderSeriesStatus": "Stanje serije", + "Features": "Lastnosti", + "Trailers": "Napovedniki", + "Extras": "Dodatki", + "ThemeSongs": "Tematska glasba", + "ThemeVideos": "Tematski videoposnetki", + "HeaderFavoriteMovies": "Priljubljeni filmi", + "HeaderFavoritePhotos": "Priljubljene fotografije", + "HeaderFavoriteShows": "Priljubljene serije", + "HeaderFavoriteEpisodes": "Priljubljene epizode", + "HeaderFavoriteVideos": "Priljubljeni videoposnetki", + "HeaderFavoriteMusicVideos": "Priljubljeni glasbeni videospoti", + "HeaderFavoriteGames": "Priljubljene igre", + "HeaderFavoriteArtists": "Priljubljeni Izvajalci", + "HeaderFavoriteAlbums": "Priljubljeni albumi", + "HeaderFavoriteSongs": "Priljubljene pesmi", + "HeaderFavoriteAuthors": "Priljubljeni avtorji", + "HeaderFavoriteAudioBooks": "Priljubljene zvočne knjige", + "Ascending": "Naraščajoče", + "Descending": "Padajoče", + "HeaderColorPrimaries": "Primarne barve", + "HeaderColorSpace": "Barvni prostor", + "HeaderColorTransfer": "Prenos barve", + "HeaderVideoRange": "Video obseg", + "SeriesDisplayOrderHelp": "Razvrsti epizode po datumu predvajanja, vrstnem redu DVD-jev ali absolutnem številčenju.", + "LabelVerticalPositionFromBottom": "Navpični položaj (od spodaj)", + "HeaderFavoritePeople": "Priljubljene osebe", + "MultiSelect": "Večkratna izbira", + "HeaderSignOut": "Odjava", + "HeaderSelectServer": "Izberi strežnik", + "HeaderChangeServer": "Preklopi strežnik", + "HeaderChangeUser": "Preklopi med uporabniki", + "HeaderAppSettings": "Nastavitve aplikacije", + "HeaderLoginSettings": "Nastavitve prijave", + "LabelRememberLogin": "Zapomni si prijavo", + "LabelAutomaticallySignOut": "Samodejna odjava", + "BetaTesterMessage": "Hvala, ker ste beta preskuševalec Emby! Pustite povratne informacije v {0}območju za testiranje skupnosti Emby{1}.", + "HardwareAccelerated": "Strojno pospešeno", + "Software": "Programska oprema", + "Metadata": "Metapodatki", + "HeaderMediaInfo": "Informacije o mediju", + "Locked": "Zaklenjeno", + "HeaderSplitVersionsApart": "Loči različice", + "Any": "Karkoli", + "Admin": "Skrbnik", + "HeaderReadMore": "Več", + "CustomRatingHelp": "Ocena po meri se uporablja za ocene starševskega nadzora, vendar ni prikazana. Polje za starševsko oceno je še vedno prikazano.", + "KeepUpToHelp": "Posnetki, ki presegajo omejitev, se izbrišejo, ko se začne naslednje snemanje. Najstarejši posnetki se najprej izbrišejo po dodanem datumu.", + "NoItemsMatchingFound": "Najden ni bil noben predmet, ki bi ustrezal vašim iskalnim kriterijem.", + "TwoSearchCharsRequired": "Vnesite vsaj dva iskalna znaka.", + "PreventPlaybackContinuing": "Preprečite, da bi se predvajanje nadaljevalo za nedoločen čas, tako da občasno zahtevate uporabniški vnos.", + "PromptStillWatching": "Omogoči poziv »Še vedno gledate?«", + "HeaderMissingMetadata": "Manjkajoči metapodatki", + "HeaderIncludedIn": "Vključeno v", + "EmbyConnectUserAlreadyLinked": "Uporabnik Emby Connect je že povezan z drugim uporabnikom na tem strežniku.", + "VideoFilesWillBeConvertedTo": "Pretvorjeni videoposnetki bodo shranjeni kot {0}.", + "VideoWillBeConvertedTo": "Video tokovi bodo pretvorjeni v {0} ali kopirani iz izvirne datoteke, če so že {0} in kakovost ustreza možnostim pretvorbe.", + "VideoWillBeConvertedToOrCopied": "Video tokovi bodo pretvorjeni v {0} ali kopirani iz izvirne datoteke, če so kateri koli od ({1}), kakovost pa ustreza možnostim pretvorbe.", + "AudioWillBeConvertedTo": "Zvočni tokovi bodo pretvorjeni v {0} ali kopirani iz izvirne datoteke, če so že {0} in kakovost ustreza možnostim pretvorbe.", + "AudioWillBeConvertedToOrCopied": "Zvočni tokovi bodo pretvorjeni v {0} ali kopirani iz izvirne datoteke, če so kateri koli od ({1}), kakovost pa ustreza možnostim pretvorbe.", + "HeaderSpecialKeys": "Posebne tipke", + "FollowingSpecialKeys": "Naslednje posebne tipke podpira večina tipkovnic in daljinskih upravljalnikov:", + "HeaderDeleteSeries": "Izbriši serijo", + "HeaderDeleteLastPlayedEpisode": "Izbriši zadnjo predvajano epizodo", + "HeaderConnectingToServer": "Povezovanje na strežnik", + "ServerNameValue": "Ime strežnika: {0}", + "DomainValue": "Domena: {0}", + "RatedValue": "Ocenjeno {0}", + "LocalServerRedirectMessage": "Zdaj boste preusmerjeni na domeno, ki je v lasti in upravljanju skrbnika strežnika, s katerim ste se odločili povezati:", + "AllMediaOwnedHosted": "Vse medije gosti in upravlja lastnik {0}.", + "EnableResolutionSwitching": "Ujemanje ločljivosti videa", + "EnableResolutionSwitchingHelp": "To Embyju omogoča, da spremeni hitrost osveževanja zaslona na enako vrednost (ali večkratnik), kot je hitrost sličic, v katero je bil video kodiran pred začetkom predvajanja. To lahko pomaga zmanjšati količino jecljanja/drsenja, ki bi ga sicer lahko opazili pri predvajanju videoposnetkov, ki se ne ujemajo dobro.", + "EnableDisplayRefreshRateSwitching": "Omogoči preklop hitrosti osveževanja", + "EnableDisplayRefreshRateSwitchingHelp": "To Embyju omogoča, da spremeni hitrost osveževanja zaslona na enako vrednost (ali večkratnik), kot je hitrost sličic, v katero je bil video kodiran pred začetkom predvajanja. To lahko pomaga zmanjšati količino jecljanja/drsenja, ki bi ga sicer lahko opazili pri predvajanju videoposnetkov, ki se ne ujemajo dobro.", + "RememberSelectedAudioTracks": "Zapomni si izbiro zvoka", + "RememberSelectedSubtitleTracks": "Zapomni si izbiro podnapisov", + "RememberSelectedSubtitleTracksHelp": "Izbira podnapisa bo beležena za vsak medij in uporabljena ob ponovnem predvajanju istega medija.", + "RememberSelectedAudioTracksHelp": "Izbira zvoka bo beležena za vsak medij in uporabljena ob ponovnem predvajanju istega medija.", + "ClearSavedTrackSelections": "Počisti shranjene izbire", + "HeaderClearTrackSelections": "Počisti shranjene izbire", + "QuestionClearSavedTracks": "Počistiti vse shranjene izbire elementov?", + "LabelChannelTags": "Oznake programov", + "AfterThisPlaysConfirmation": "Ali želite po tem predvajanju nadaljevati s predvajanjem ali izbrisati glasbo, ki ste jo prej postavili v čakalno vrsto?", + "Keep": "Obdrži", + "Clear": "Izbriši", + "HeaderClearFilters": "Počisti filtre", + "HeaderSearchForImages": "Iskanje slik", + "HeaderSearchNewImage": "Iskanje nove slike", + "HeaderSearchForAnImage": "Iskanje slike", + "DragDropToReorder": "Povlecite in spustite, da preuredite", + "HeaderAddImageFromUrl": "Dodajte sliko iz URL-ja", + "HeaderSetImageFromUrl": "Nastavi sliko iz URL-ja", + "LabelUrl": "URL", + "LabelChannelNumber": "Programsko mesto", + "LabelGuideDataChannel": "EPG podatki", + "GuideDataSource": "Vir EPG", + "HeaderCopyToClipboard": "Kopiraj v odložišče", + "TimeRemainingValue": "Še {0}", + "LabelResumeRewindSeconds": "Pri nadaljevanju samodejno previjanje nazaj", + "ResumeRewindSecondsHelp": "To vam lahko pomaga, da se spomnite, kje ste končali. To velja za začetni nadaljevanje in ne za vsako posamezno pavzo med predvajanjem.", + "HeaderSavePlayQueueToPlaylist": "Shrani čakalno vrsto predvajanja na seznam predvajanja", + "EnableLogoImagesAsTitle": "Prikaži slike logotipov kot naslove na podrobnih zaslonih", + "EnableLogoImagesAsTitleHelp": "Ko so na voljo, se lahko namesto naslovnega besedila na videoposnetkih, serijah in drugih zaslonih s podrobnostmi uporabijo slike logotipov. Če slika logotipa ni na voljo, bo naslov zamenjal besedilo.", + "LabelNowPlayingAudioBackgroundStyle": "Zdaj se predvaja slog ozadja", + "LabelNowPlayingVideoBackgroundStyle": "Slog ozadja videa, ki se zdaj predvaja", + "NowPlayingVideoBackgroundStyleHelp": "Določa slog ozadja pri daljinskem upravljanju predvajanja videa v drugi napravi.", + "Rotation": "Rotacija", + "Minutes": "Minut", + "LabelMaxRecordingLength": "Največja dolžina snemanja", + "MaxRecordingLengthHelp": "Omejite snemanje na določen čas, ne glede na trajanje oddaje. Nastavite na 0 za brez omejitev.", + "RemoteWAN": "Oddaljeni naslov (WAN)", + "HeaderLastConnectedTo": "Zadnja povezava z", + "Version": "Različica", + "Keyword": "Ključnik", + "HeaderServerAddress": "Naslov strežnika", + "HeaderSkipIntro": "Preskoči uvod", + "HeaderCreateRecording": "Ustvari posnetek", + "HeaderAddRecording": "Dodaj posnetek", + "HeaderChannelAndTime": "Program in čas", + "LabelRecordProgramOrSeriesFrom": "Posnemite program ali serijo iz", + "LabelStartTime": "Začetni čas", + "LabelEndTime": "Končni čas", + "LabelFrequency": "Pogostost", + "Recurring": "Ponavljajoče", + "Once": "Enkrat", + "Start": "Začetek", + "Unpause": "Prekini premor", + "LabelIntroSkipMode": "Preskakovanje uvoda", + "ShowSkipIntroButton": "Prikaži gumb 'Preskoči uvod'", + "AutoSkipIntro": "Samodejno preskoči uvod", + "DisplayRatingInformationOnVideoPlaybackStart": "Prikaz informacij o oceni ob začetku predvajanja videa", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Informacije o oceni se bodo za kratek čas prikazale, ko se začne predvajanje videa.", + "IntroSkipModeHelp": "Prikaži gumb »Preskoči uvod« ali samodejno preskoči uvode za epizode, v katerih je Emby Server zaznal uvodne oznake. Zaznavanje uvoda mora biti omogočeno v možnostih knjižnice.", + "EnableHomeScreenFocusPreview": "Uporabite postavitev na začetnem zaslonu, ki prikazuje podroben predogled izbranega elementa", + "EnableHomeScreenFocusPreviewHelp": "To morda ne bo delovalo dobro, če vaš domači zaslon vsebuje mešanico različnih vrst medijev.", + "LabelHideMediaTransportButtons": "Skrij transportne gumbe video predvajalnika", + "HideMediaTransportButtonsHelp": "Ustvarite preprostejši vmesnik za predvajanje na zaslonu, tako da skrijete osnovne transportne gumbe, kot so preskok naprej, nazaj in premor. Te funkcije boste še vedno lahko uporabljali s puščičnimi tipkami in OK/Enter. Samodejno skrije transportne gumbe, ko v aplikaciji ni zaznane uporabe miške.", + "ImageSizeHelp": "Nastavite želeno velikost mreže slik.", + "LabelImageSize": "Velikost slike", + "ThisImageIsOnlyPreview": "Ta slika je samo predogled, ki je prišel iz iskalnika metapodatkov. Dejanska slika, ki jo prenese Emby Server, je lahko drugačna in bo odvisna od možnosti, ki ste jih konfigurirali v nastavitvah knjižnice Emby.", + "ResultsRangeValue": "{0} do {1} od {2}", + "NotificationsDescription": "Nastavite obvestila, da boste obveščeni o pomembnih dogodkih na vašem strežniku Emby.", + "DeleteEmbyConnectAccount": "Izbrišite račun Emby Connect", + "DeleteEmbyConnectAccountHelp": "Če želite izbrisati svoj račun Emby Connect, se prijavite v {0}skupnost Emby{1} na {2}. Ko se prijavite, kliknite svoje uporabniško ime zgoraj desno, nato kliknite Nastavitve računa in nato kliknite Izbriši moj račun.", + "KeepPlayingInBackground": "Predvajanje v ozadju", + "LabelVideoBackBehavior": "Način delovanja gumba nazaj v predvajalniku", + "HeaderViewLyrics": "Ogled besedila", + "HeaderViewMissingEpisodes": "Prikaz manjkajočih epizod", + "HeaderMissingEpisodes": "Manjkajoče epizode", + "HeaderManageAccess": "Upravljanje dostopa", + "HeaderManageCollaboration": "Upravljanje sodelovanja", + "HeaderLeaveCollaboration": "Zapusti sodelovanje", + "HeaderRemoveFromLibrary": "Odstrani iz knjižnice", + "RemoveSharedItemConfirmation": "Ali zares želite ta element odstraniti iz knjižnice? Če ga želite pridobiti nazaj, vam bo moral lastnik znova odobriti dostop.", + "SubtitlesDownloaded": "Podnapisi preneseni", + "HeaderMakePrivate": "Naredi zasebno", + "HeaderMakePublic": "Naredi javno", + "MakePublicDescription": "Vsi uporabniki si bodo lahko ogledali ta element. Uporabnikom je mogoče omogočiti dostop do urejanja.", + "MakePrivateDescription": "Uporabnikom je še vedno mogoče odobriti dostop posamično.", + "Private": "Zasebno", + "Public": "Javno", + "Collaborative": "Sodelovalno", + "PreferredShowDisplay": "Želeni način prikaza serij", + "ShowAllEpisodesAllSeasons": "Vse epizode vseh sezon skupaj", + "ShowAllEpisodesSingleSeason": "Vse epizode, v primeru samo ene sezone", + "ShowSeasonFolders": "Vedno prikaži mape za sezone", + "HeaderAddAgain": "Ponovno dodaj", + "UpNext": "Sledi", + "ItemsAlreadyInPlaylist": "Nekateri od teh elementov so že na vašem seznamu predvajanja.", + "ItemAlreadyInPlaylist": "Ta element je že na vašem seznamu predvajanja.", + "HeaderPlayChannel": "Predvajaj kanal", + "LabelScreenOrientationDuringVideo": "Orientacija zaslona med predvajanjem videa", + "UseDeviceSetting": "Uporabi nastavitev naprave", + "LockToLandscape": "Zakleni ležeče", + "UsernameForFolderHelp": "Uporabniško ime, potrebno za dostop do te mape v vašem omrežju (če je na voljo).", + "PasswordForFolderHelp": "Geslo, potrebno za dostop do te mape v vašem omrežju (če je na voljo).", + "ShowMediaInfoOnDetailScreens": "Prikažite vse informacije o medijih na dnu zaslona s podrobnostmi o zvoku in videu", + "ForgotPasswordNoUserFound": "Z vnesenim imenom ni bil najden noben uporabnik. Poskusite znova ali pustite ime prazno, da ponastavite geslo za vse uporabnike na tem strežniku.", + "Silver": "Srebrna", + "DimGray": "Svetlo siva", + "DarkGray": "Temno siva", + "LightGray": "Svetlo siva", + "Black": "Črna", + "Blue": "Modra", + "Cyan": "Sinja", + "Gray": "Siva", + "Green": "Zelena", + "Lime": "Limeta", + "Magenta": "Vijolično-rdeča", + "Orange": "Oranžna", + "Pink": "Roza", + "Red": "Rdeča", + "Yellow": "Rumena", + "White": "Bela", + "Purple": "Vijolična", + "RecentlyReleasedMovies": "Nedavno objavljeni filmi", + "RecentlyReleasedEpisodes": "Nedavno izdane epizode", + "DolbyProfile": "Profil Dolby", + "IpAddress": "Naslov IP", + "VideoType": "Vrsta videa", + "HidePlayedMediaFrom": "Skrij že ogledano", + "BottomEdgePosition": "Položaj spodnjega roba", + "VerticalPositionFromBottomScreen": "Nastavite navpični položaj podnapisov glede na dno zaslona.", + "TopEdgePosition": "Položaj zgornjega roba", + "TopEdgePositionHelp": "Nastavite najvišji dovoljeni navpični položaj podnapisov glede na vrh zaslona. To se uporablja, ko podnapisi vsebujejo navodila za pozicioniranje glede na vrh.", + "HeaderSubtitlePosition": "Položaj podnapisov", + "TitleProfilePin": "PIN profila", + "ProfilePinConfirm": "PIN profila (potrdite)", + "SaveProfilePin": "Shrani PIN", + "ProfilePinDescription": "Ustvarite izbirni PIN, ki ga boste vpisali vsakič, ko se vrnete v aplikacijo Emby v napravi, v katero ste se že prijavili. To je uporabno, če imate naprave, ki si jih deli več uporabnikov. Po potrebi ga lahko selektivno omogočite na vsaki napravi.", + "TitleNewEpisodes": "Nove epizode", + "EnterYourPinToContinue": "Za nadaljevanje vnesite PIN.", + "YourPinMustBe": "Vaš PIN mora imeti {0} števk/e.", + "ForgotPin": "Ste pozabili PIN?", + "RequireEnteringPinToReturn": "Zahtevaj vnos kode PIN mojega profila vsakič, ko se vrnem v to aplikacijo.", + "RequireEnteringPinToReturnQuestion": "Ali naj vas ob vrnitvi v to aplikacijo vprašamo za vaš PIN profila? Če si to napravo deli več uporabnikov, lahko PIN profila prepreči drugim uporabnikom dostop do vaših podatkov.", + "RequireEnteringPinToReturnHelp": "Uporabno, če si to napravo deli več uporabnikov.", + "WrongPinPleaseTryAgain": "Ups, napačna koda PIN. Prosim, poskusite ponovno.", + "ProfilePinIsOn": "PIN profila je trenutno vklopljen.", + "IfTryingToConnectToHttp": "Če se poskušate povezati s strežnikom Emby prek naslova HTTP, vaš brskalnik tega morda ne dovoljuje zaradi zahtev HTTPS. Poskusite nekaj od naslednjega:", + "SetupHttpsForYourServer": "Nastavite {0}HTTPS za strežnik Emby{1}, da se lahko povežete s HTTPS.", + "TitleUnableToReachServer": "Ni mogoče doseči strežnika", + "TitleUnableToReachName": "Ni mogoče doseči {0}", + "HearingImpaired": "Podnapisi za osebe z motnjami sluha", + "SignIntoServerName": "Prijavite se v {0}", + "About": "Več informacij", + "Specials": "Posebne oddaje", + "NSettings": "Nastavitve {0}", + "NPreferences": "Prednostne nastavitve {0}", + "DetailScreenOptions": "Zasloni s podrobnostmi", + "LabelGenreDisplayLimit": "Omejitev prikaza zvrsti", + "GenreDisplayLimitHelp": "Omejite število zvrsti, prikazanih na vrhu zaslonov s podrobnostmi.", + "GenreDisplayLimitForListsHelp": "Omejite število zvrsti, prikazanih na vrhu seznamov predvajanja, zbirk in zaslonov s podrobnostmi o izvajalcih.", + "LabelGenreDisplayLimitForLists": "Omejitev prikaza zvrsti za sezname", + "ShowPosterOnDetails": "Prikaži plakat na zaslonu s podrobnostmi", + "ShowPosterOnDetailsHelp": "Izberite prikaz plakata na zaslonih s podrobnostmi videoposnetkov ali pa ga skrijte za bolj minimalističen videz, ki poudari ozadje. Ta nastavitev se ne uporablja pri manjših postavitvah zaslona. Nekatere vrste elementov bodo prezrle to nastavitev.", + "EnableAppLogging": "Omogoči dnevnik aplikacije", + "EnableAppLoggingHelp": "Beleženje lahko poslabša delovanje aplikacije in ga omogočite le, če je potrebno za odpravljanje težav. Spremembe zahtevajo ponovni zagon aplikacije.", + "LabelSlideshowInterval": "Čas diaprojekcije fotografij na diapozitiv", + "TVChannelImageEditorHelp": "Podprtih je več različic logotipa. Aplikacije Emby bodo samodejno izbrale ustreznega glede na trenutno temo.", + "PlaySlideshow": "Predvajaj diaprojekcijo", + "CheckForExistingEpisodesInAllLibraries": "Preveri obstoječe epizode v vseh knjižnicah", + "GroupNotificationsBySeriesOrAlbum": "Združi obvestila (po serijah ali albumih)", + "ThemeSettings": "Nastavitev teme", + "FollowingActivityWillBeDisrupted": "Naslednja dejavnost bo motena in bo morda zahtevala ročno posredovanje za ponovni zagon:", + "OneActivePlaybackSession": "Št. aktivnih sej predvajanja: 1", + "NumActivePlaybackSessions": "Št. aktivnih sej predvajanja: {0}", + "OneActiveRecording": "Št. aktivnih sej snemanj: 1", + "NumActiveRecordings": "Št. aktivnih sej snemanj: {0}", + "PlayFromLivePosition": "Predvajaj v živo", + "PlayFromStartOfRecording": "Predvajaj od začetka", + "ThisChannelIsActivelyRecording": "Snemanje je aktivno. Kako bi radi začeli predvajanje?", + "ThemeSongVolume": "Glasnost tematske pesmi", + "HeaderForceConversionForFormats": "Vsili transkodiranje za formate", + "ForceConversionForFormatsHelp": "Uporabite to za vsiljevanje strežniškega prekodiranja ali ponovnega muksiranja za formate, ki se v tej napravi ne predvajajo dobro neposredno.", + "StartupBehavior": "Vedenje ob zagonu", + "RememberLastUser": "Zapomni si zadnjega uporabnika", + "ShowLoginScreen": "Pokaži zaslon za prijavo", + "SignInAsValue": "Prijavite se kot {0}", + "ConvertUnsupportedAudio": "Pretvorite nepodprt prostorski zvok v Dolby Digital", + "ConvertUnsupportedAudioHelp": "Izogibajte se mešanju nepodprtih prostorskih formatov v stereo tako, da jih Emby Server prekodira v Dolby Digital.", + "HeaderPlaybackCorrection": "Popravek predvajanja", + "HeaderAttemptPlaybackCorrection": "Poskus popravka predvajanja", + "PlaybackCorrectionConfirm": "Poskus popravka predvajanja?", + "PlaybackCorrectionDescription": "Ali trenutni element kaže težave s predvajanjem, na primer brez videa ali zvoka? To bo poskusilo odpraviti težave pri predvajanju s strežniškim prekodiranjem za pretvorbo te datoteke v bolj prijazen format pretakanja. To bo povzročilo povečano porabo virov na tem strežniku Emby.", + "PlaybackCorrectionDescription2": "To lahko storite največ trikrat na videoposnetek, pri čemer se ponovno aktiviranje, video prekodiranje in zvočno transkodiranje aktivirajo eno za drugo.", + "HeaderAlbumsAsContributingArtist": "Albumi kot sodelujoči izvajalec", + "HeaderAlbumsAsComposer": "Albumi kot skladatelj", + "Duplicates": "Dvojniki", + "HeaderSleepTimer": "Časovnik za izklop", + "AfterCurrentItem": "Po trenutnem", + "HeaderStopPlayback": "Ustavi predvajanje", + "TurnOffTimer": "Izklopi časovnik", + "SleepTimerIsSet": "Vaš časovnik za izklop je nastavljen", + "SleepTimerIsOff": "Vaš časovnik za izklop ni nastavljen", + "LabelEnableRemoteControlTVMode": "Funkcije predvajanja in daljinskega upravljanja zaslona", + "EnableRemoteControlTVModeHelp": "Omogočite, če nameravate to napravo uporabljati za pošiljanje predstavnosti drugim napravam.", + "ShowOnScreenControls": "Pokaži zaslonske kontrole", + "LabelVideoScreenUpAction": "Aktivnost ob pritisku gor", + "VideoScreenUpActionHelp": "Izberite dejanje, ki naj se izvede ob pritisku tipke gor na zaslonu. To velja, če trenutno ni viden noben kontrolnik na zaslonu. Ko so kontrolniki že vidni, bo tipka gor uporabljena za navigacijo.", + "LabelVideoPlayerLongPressAction": "Dejanje dolgega pritiska video predvajalnika", + "LetsGetSetup": "Začnimo nastavitev", + "VideoPlayerLongPressActionHelp": "Izberite, katera funkcija ali meni se prikaže ob dolgem pritisku gumba OK med predvajanjem videa. To velja le, če so kontrolniki videa skriti ali je vrstica za iskanje v fokusu.", + "AskAdminToGetPremiere": "Ta nakup mora opraviti skrbnik strežnika. Prosimo, prosite skrbnika tega strežnika Emby, da se prijavi in ​​​​nabavi Emby Premiere, da boste lahko uživali v dostopu do premium funkcij.", + "AutoOpenSingleItemsFolders": "Samodejno odpiranje posameznih elementov v pogledu mape", + "AutoOpenSingleItemsFoldersHelp": "Ko mapa vsebuje samo en element, ta element samodejno odpri.", + "PlayedOnValue": "Predvajano {0}", + "TheseSettingsApplyAppDevice": "Te nastavitve veljajo za vse uporabnike, ki predvajajo na tej napravi.", + "LastContentDateAdded": "Datum dodajanja zadnje vsebine", + "RepeatThemeMedia": "Predvajaj teme v zanki", + "HideEpisodeSpoilerInfo": "Skrij kvarnike iz neogledanih epizod", + "HideEpisodeSpoilerInfoHelp": "Skrije sliko in povzetek za neogledane epizode na večini zaslonov.", + "BornValueAge": "Rojen: {0} (starost {1})", + "PreferDirectStreamLiveTV": "Raje neposredno pretakanje TV v živo", + "PreferDirectStreamLiveTVHelp": "Neposredno pretakanje televizije v živo bo zmanjšalo porabo virov na vašem Emby Serverju, vendar morda ne bo omogočalo enako iskanje med predvajanjem. Če to omogočite, bo televizija v živo pretakana neposredno, kadar je format podprt in znotraj vaše nastavitve kakovosti. Onemogočite to možnost, če želite več možnosti iskanja med predvajanjem, vendar bo to zahtevalo več virov.", + "HeaderAllRecordings": "Vsi posnetki", + "RememberLoginDescription": "Po prijavi lahko v nastavitvah aplikacije nastavite vedenje ob zagonu, da si aplikacija zapomni prijavo, se prijavi kot določen uporabnik ali vedno prikaže prijavni zaslon.", + "ForgetThisServer": "Pozabi ta strežnik", + "ForgetServerConfirmation": "Ali zares želite pozabiti ta strežnik?", + "HeaderThisDevice": "Ta naprava", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/sq.json b/modules/common/strings/sq.json new file mode 100644 index 0000000..50ecff6 --- /dev/null +++ b/modules/common/strings/sq.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Zëvendëso imazhet thumbnail ekzistuese", + "ReplaceExistingThumbnailImagesHelp": "Të gjitha imazhet thumbnail ekzistuese do të fshihen dhe do të gjenerohen të reja, nëse funksioni aktivizohet në opsionet e bibliotekës.", + "DateCreated": "Data e Krijimit", + "CreatedOnValue": "Krijuar {0}", + "UpdatedOnValue": "Përditësuar {0}", + "EmbyLoginTerms": "Emby është projektuar që të të ndihmojë në menaxhimin e bibliotekës mediatike personale, si videot dhe fotot shtëpiake. Të lutem shih {0}kushte përdorimi{1}. Përdorimi i çfarëdo software Emby nënkupton pranimin e këtyre kushteve.", + "MessageUnableToConnectToServer": "Jemi të pa aftë të lidhemi me serverin e zgjedhur tani. Të lutem sigurohu që është në funksionim dhe provo përsëri.", + "EmbyIntroMessage": "Me Emby mund të bësh me lehtësi streaming video, muzike dhe foto në telefona smart, tableta dhe pajisje të tjera nga Emby Server-i yt.", + "HeaderSignInWithConnect": "Hyr me Emby Connect", + "HeaderWelcomeToEmby": "Mirësevjen në Emby", + "HeaderNewUsers": "Përdorues të Rinj", + "HeaderPleaseSignIn": "Të Lutem Hyr", + "MessageInvalidUser": "Emër përdoruesi apo fjalëkalim i pavlefshëm. Të lutem provo përsëri.", + "MessageUnlockAppWithPurchaseOrSupporter": "Zhblloko këtë funksion me një pagesë të vogël të pa përsëritshme, ose me një abonim aktiv Emby Premiere.", + "MessageUnlockAppWithSupporter": "Zhblloko këtë funksion me një abonim aktiv Emby Premiere.", + "MessageToValidateSupporter": "Nëse ke një abonim Emby Premiere aktiv, sigurohu që e ke konfiguruar në Kuadrin e Kontrollit të Emby Server, që mund ta aksesoni duke klikuar Emby Premiere brenda menusë kryesore.", + "ValueSpecialEpisodeName": "Speciali - {0}", + "HeaderSignIn": "Hyr", + "Share": "Bashkë-ndaj", + "Shared": "Të bashkë-ndarë", + "Info": "Informacion", + "Add": "Shto", + "Speed": "Shpejtësi", + "PlaybackSpeed": "Shpejtësia e riprodhimit", + "Chapters": "Kapituj", + "Password": "Fjalëkalim", + "SavePassword": "Ruaj Fjalëkalimin", + "LabelPassword": "Fjalëkalim", + "HeaderResetPassword": "Rivendos Fjalëkalimin", + "Series": "Serial", + "Preview": "Parashikim", + "Submit": "Publiko", + "Never": "Kurrë", + "Table": "Tabelë", + "HeaderScheduledTasks": "Veprime Të Planifikuara", + "Plays": "Riprodhime", + "LastUsedAddressValue": "Përdorur për herë të fundit {0}", + "LabelKeywordType": "Lloji fjalës kyçe", + "HeaderSelectColumns": "Zgjidh Kolonat", + "HeaderTopResults": "Rezultatet Kryesore", + "HeaderPinSidebar": "Mbërthe Shiritin Anësor", + "Collapse": "Palos", + "LabelBackgroundVideoPlayback": "Riprodhim video në sfond", + "BackgroundVideoPlaybackHelp": "Riprodhimi në sfond lejon videon të riprodhohet edhe kur ekrani është i fikur.", + "AlwaysOn": "Gjithmonë ndezur", + "HeadphonesOrExternalSpeakersConnected": "Kufjet ose altoparlantët e jashtëm u lidhën", + "HeaderKeyboardAndRemote": "Tastierë dhe Telekomandë", + "NoSelectedItemsSupportOperation": "Nuk janë zgjedhur artikuj që suportojnë këtë veprim.", + "NoOperationsForSelectedItems": "Nuk ka veprime të disponueshme për artikujt e zgjedhur.", + "UploadOnlyOnWifi": "Ngarko vetëm në Wifi", + "HeaderFoldersToUpload": "Dosjet për t’u Ngarkuar", + "LabelPasswordConfirm": "Fjalëkalimi (konfirmo)", + "HeaderMoveUpInOrder": "Lëviz Lart Në Renditje", + "HeaderDownUpInOrder": "Lëviz Poshtë Në Renditje", + "LabelUsername": "Emri i përdoruesit", + "HeaderAddServer": "Shto Server", + "HeaderSubtitleOffset": "Kompensimi i Titrave", + "Watching": "Po shikon", + "HeaderRemoveFromContinueWatching": "Hiqe nga Vazhdo Shikimin", + "RemoveThisTitleFromContinueWatching": "Ta heq këtë titull nga Vazhdo Shikimin?", + "HeaderRemoveFromContinueListening": "Hiqe nga Vazhdo Dëgjimin", + "RemoveThisTitleFromContinueListening": "Ta heq këtë titull nga Vazhdo Dëgjimin?", + "HeaderIncreaseSubtitleOffset": "Rrit Kompensimin e Titrave", + "HeaderDecreaseSubtitleOffset": "Zvogëlo Kompensimin e Titrave", + "Close": "Mbyll", + "HeaderSeeAll": "Shiko të Gjithë", + "HeaderOpenInNewWindow": "Hap në Dritare të Re", + "LabelEmail": "Email", + "LabelHost": "Host", + "LabelHostHelp": "Shembull: 192.168.1.100 ose https://myserver.com", + "LabelPort": "Portë", + "Disabled": "I Çaktivizuar", + "Uninstall": "Çinstalo", + "Enable": "Aktivizo", + "AllTuners": "Të Gjithë Sinkronizuesit", + "Disable": "Çaktivizo", + "NextValue": "Vijon: {0}", + "HeaderNextItem": "Artikulli Vijues", + "HeaderPreviousItem": "Artikulli i Mëparshëm", + "NoTrailersMessage": "Nuk u gjetën Trailer-a. Për të shtuar Trailer-a, të lutem instalo plugin-in Trailer nga {0} katalog i plugin Emby{1}.", + "UninstallPluginConfirmation": "Je i sigurt që dëshiron të çinstalosh këtë plugin?", + "HeaderUninstallPlugin": "Çinstalo këtë Plugin", + "AreYouStillWatching": "Je akoma duke shikuar?", + "LabelCurrentPassword": "Fjalëkalimi aktual", + "LabelNewPassword": "Fjalëkalimi i ri", + "LabelNewPasswordConfirm": "Konfirmo fjalëkalimin e ri", + "HeaderRemovePassword": "Hiq Fjalëkalimin", + "ServerUpdateNeeded": "Ky Emby Server ka nevojë të përditësohet. Për të shkarkuar versionin më të fundit, të lutem vizito {0}", + "MessageThankYouForConnectSignUp": "Faleminderit që u regjistrove në Emby Connect. Një email do të dërgohet tek adresa jote me instruksionet se si të konfirmosh llogarinë tënde të re. Konfirmoje të lutem dhe pastaj rikthehu këtu për të hyrë.", + "MessageThankYouForConnectSignUpNoValidation": "Faleminderit që u regjistrove në Emby Connect! Tani do të kërkohet të hysh me të dhënat Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "Fjalëkalimi dhe konfirmimi i fjalëkalimit duhet të përputhen.", + "ErrorMessageUsernameInUse": "Emri i përdoruesit është në përdorim. Të lutem zgjidh një emër të ri dhe provo përsëri.", + "ErrorMessageEmailInUse": "Adresa e email është në përdorim. Të lutem fut një adresë email të re dhe provo përsëri, ose përdor funksionin harrova fjalëkalimin.", + "HeaderUpcomingOnTV": "I Ardhshëm Në Live TV", + "HeaderOtherShowings": "Shfaqje të Tjera", + "Showings": "Shfaqje", + "HeaderConnectToServer": "Lidhu me Serverin", + "ConnectToServerManually": "Lidhu me serverin manualisht", + "LabelEnterConnectUserNameHelp": "Kjo është adresa email që përdore për të konfiguruar llogarinë tënde Emby Connect.", + "HeaderSignInError": "Gabim në Hyrje", + "HeaderManualLogin": "Lidhu Manualisht", + "PasswordResetConfirmation": "Je i sigurt që dëshiron të rivendosësh fjalëkalimin?", + "ContactAdminToResetPassword": "Të lutem kontakto administratorin e sistemit tënd për të rivendosur fjalëkalimin tënd.", + "ForgotPasswordInNetworkRequired": "Të lutem provo përsëri brenda rrjetit tënd shtëpiak për të filluar proçedurën e rivendosjes të fjalëkalimit.", + "ForgotPasswordFileCreated": "File-i i mëtejshëm është krijuar në serverin tënd dhe përmban instruksionet se si të vazhdoni:", + "ForgotPasswordFileExpiration": "Kodi Pin i rivendosjes do të skadojë në {0}.", + "InvalidForgotPasswordPin": "U fut një kod Pin i pavlefshëm ose i skaduar. Të lutem provo përsëri.", + "PasswordResetForUsers": "Fjalëkalimet janë hequr për përdoruesit e mëtejshëm. Për tu lidhur, hyr duke lënë bosh fjalëkalimin.", + "HeaderForgotPassword": "Harrove Fjalëkalimin?", + "ForgotPasswordUsernameHelp": "Lëre bosh nëse nuk të kujtohet emri i përdoruesit.", + "HeaderPasswordReset": "Rivendos Fjalëkalimin", + "AttributeNew": "I ri", + "Done": "Mbaroi", + "HeaderResetToDefault": "Rivendos në vlerën e parazgjedhur", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Duke ngulitur Titrat", + "Premiere": "Premierë", + "LabelPinCode": "Kodi Pin", + "LabelLocalNetworkPinCode": "Kodi Pin i rrjetit lokal", + "LabelLocalNetworkPasswordMode": "Modalitet i hyrjes në rrjetin lokal", + "RequirePasswordInLocalNetwork": "Kërko për fjalëkalim në rrjetin lokal", + "NoPasswordInLocalNetwork": "Mos kërko fjalëkalim në rrjetin lokal", + "PinCodeInLocalNetwork": "Lejo një kod pin shifror në rrjetin lokal", + "LocalNetworkPasswordModeHelp": "Zgjidh metodën e hyrjes për pajisjet në të njëjtin rrjet lokal me Emby Server-in tënd.", + "HeaderLocalNetworkAccess": "Akses në Rrjet Lokal", + "Live": "Drejtpërdrejt", + "Reset": "Rivendos", + "Repeat": "Përsërit", + "Track": "Këngë", + "Tracks": "Këngët", + "HeaderCameraUpload": "Ngarkim nga Kamera", + "TrackCount": "{0} Këngë", + "ItemCount": "{0} Artikuj", + "NumberChannelsValue": "Kanalet {0}", + "HeaderLatestMusic": "Muzika më e Fundit", + "HeaderLatestAudioBooks": "Librat Audio Më Të Fundit", + "HeaderLatestDownloadedVideos": "Videot e Shkarkuara më të Fundit", + "HeaderRecentlyPlayed": "Riprodhuar së Fundi", + "Recent": "Së fundi", + "HeaderFrequentlyPlayed": "Riprodhuar Shpesh", + "HeaderMoreLikeThis": "Të Ngjashme Me Këtë", + "HeaderMoreLikeThisOnLiveTV": "Të Ngjashme Me Këtë në Live TV", + "OriginalAirDateValue": "Data origjinale e transmetimit: {0}", + "EndsAtValue": "Përfundon në {0}", + "Date": "Data", + "AirDate": "Data e Transmetimit", + "Played": "E riprodhuar", + "Daily": "I Përditshëm", + "Weekly": "I përjavshëm", + "RequireHashMatch": "Kërko një hash match", + "RequireHashMatchHelp": "Kërkesa e një hash match do të filtrojë titrat në mënyrë që të përfshijnë vetëm ato që janë testuar me file-in video ekzakt. Po e çzgjidhe, numri i titrave që përputhen do të rritet, por edhe mundësia që ato të jenë ta pasinkronizuara apo të gabuara.", + "SearchForForcedSubtitlesOnly": "Vetëm titra të forcuara", + "SearchForForcedSubtitlesOnlyHelp": "Kërkesa e titrave të forcuara do të kufizojë rezultatet në titrat që janë të etiketuara si të pajisura me gjuhë të huaj.", + "LastEpisodeDateAdded": "Data e Shtimit të Episodit të Fundit", + "LastEpisodeDateAired": "Data e Publikimit të Episodit të Fundit", + "LabelPlaystate": "Gjendja e riprodhimit", + "Studio": "Studioja", + "Tag": "Etiketa", + "EpisodeTitle": "Titulli i Episodit", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Titra", + "Image": "Imazh", + "CopyStream": "Kopjo streaming origjinal", + "LabelAudioLayout": "Struktura audio", + "LabelAudioCodec": "Kodeku audio", + "LabelAudioLanguage": "Gjuha Audio", + "LabelSubtitleLanguage": "Gjuha e Titrave", + "LabelVideoCodec": "Kodeku video", + "LabelSubtitleCodec": "Kodeku për titrat", + "LabelParentalRating": "Klasifikimi prindëror", + "BecauseYouLikeValue": "Sepse të pëlqen {0}", + "BecauseYouWatchedValue": "Sepse ke parë {0}", + "DirectedByValue": "Regjia nga {0}", + "StarringValue": "Me aktorët {0}", + "Invitations": "Ftesat", + "ActorAsRole": "si {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Grupo artikujt nëpër koleksione", + "GroupItemsIntoCollectionsHelp": "Grupo artikujt sipas koleksioneve ku ata u janë shtuar. Aktivizimi i disa filtrave ose rregullat e renditjeve mund ta çaktivizojnë automatikisht këtë funksion.", + "GroupItemsIntoTags": "Grupo artikujt nëpër etiketa", + "GroupItemsIntoTagsHelp": "Grupo artikujt sipas etiketave që u janë shtuar. Aktivizimi i disa filtrave ose rregullat e renditjeve mund ta çaktivizojnë automatikisht këtë funksion.", + "User": "Përdorues", + "Access": "Akses", + "Users": "Përdoruesit", + "Library": "Biblioteka", + "Devices": "Pajisjet", + "Cancel": "Anullo", + "Restart": "Rinis", + "Shutdown": "Fikje", + "Logs": "Regjistra", + "Visibility": "Dukshmëria", + "Notifications": "Njoftimet", + "SendTestNotification": "Dërgo Njoftim për Testin", + "NotificationSent": "Njoftimi u dërgua", + "DeleteNotificationConfirmation": "Je i sigurt që dëshiron ta fshish këtë njoftim?", + "DeleteNotification": "Fshi Njoftimin", + "AddNotification": "Shto Njoftimin", + "EditNotification": "Redakto Njoftimin", + "LimitUserEventsTo": "Kufizo veprimtaritë e përdoruesve në", + "LimitLibraryEventsTo": "Kufizo veprimtaritë e bibliotekës në", + "LimitDeviceEventsTo": "Kufizo veprimtaritë e pajisjeve në", + "ForAdditionalNotificationOptions": "Shërbime shtesë të njoftimeve mund të instalohen nga administratori i serverit në {0} e katalogut plugin të Emby {1}.", + "Plugins": "Plugin-e", + "Systems": "Sisteme", + "Server": "Serveri", + "Dashboard": "Kuadër Kontrolli", + "PlayOnAnotherDevice": "Riprodho në një pajisje tjetër", + "HeaderConnectionHelp": "Ndihmë për Lidhjen", + "AccessRestrictedTryAgainLater": "Aksesi është aktualisht i kufizuar. Të lutem provo përsëri më vonë.", + "ButtonGotIt": "E Kuptova", + "RememberMe": "Më kujto", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Menaxho Emby Server", + "ShutdownServer": "Fik Emby Server", + "RestartServer": "Rinis Emby Server", + "RecordingCancelled": "Regjistrimi u Anullua", + "SeriesCancelled": "Serial i Ndërprerë", + "Recording": "Duke Regjistruar", + "SeriesRecording": "Seriali po Regjistrohet", + "RecordingScheduled": "Regjistrimi u Planifikua", + "SeriesRecordingScheduled": "Regjistrimi i Serialit u Planifikua", + "HeaderNewRecording": "Regjistrim i Ri", + "HeaderWakeServer": "Zgjo serverin", + "AttemptingWakeServer": "Përpjekje për të zgjuar serverin. Të lutem prit…", + "WakeServerSuccess": "Sukses!", + "HeaderCustomizeHomeScreen": "Personalizo Ekranin Bazë", + "WakeServerError": "Paketat Wake On LAN u dërguan tek aparati i serverit tënd, por nuk po lidhemi dot me Emby Server. Aparati yt mund të ketë nevojë për më shumë kohë për tu zgjuar, ose Emby Server mund të mos jetë në funksionim në aparatin tënd.", + "Days": "Ditë", + "Network": "Rrjeti", + "Networks": "Rrjetet", + "SortByValue": "Rendit sipas {0}", + "HeaderSortBy": "Rendit Sipas", + "HeaderPhotoAlbums": "Albume Fotografike", + "Photos": "Fotot", + "HeaderAppearsOn": "Shfaqet Në", + "List": "Rradhit", + "HeaderRecordSeries": "Regjistro Seriale", + "HeaderCinemaMode": "Intro Kinema", + "Conversions": "Konvertime", + "Downloads": "Shkarkime", + "HeaderManageDownloads": "Menaxho Shkarkimet", + "InternalStorage": "Memorja e brendshme", + "ExternalStorage": "Memorja e jashtme", + "UploadToFollowingServers": "Ngarko në Servera", + "UploadingNumItems": "Duke ngarkuar {0} nga {1}", + "DownloadNumItems": "Duke shkarkuar {0} nga {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frame", + "HeaderBitDepth": "Thellësia Bit", + "HeaderPixelFormat": "Formati i Pixel", + "Profile": "Profili", + "Bitrate": "Bitrate", + "Expand": "Shpalos", + "Container": "Kontejner", + "Format": "Formati", + "Path": "Shtegu", + "Size": "Përmasa", + "Resolution": "Rezolucioni", + "HeaderCodecTag": "Etiketa e Kodekut", + "Framerate": "Framerate", + "Interlaced": "E ndërthurur", + "Anamorphic": "Anamorfike", + "Level": "Niveli", + "Timestamp": "Vula e kohës", + "Language": "Gjuha", + "Codec": "Kodeku", + "Stream": "Rryma stream", + "HeaderExtradata": "Të Dhëna Ekstra", + "HeaderHardwareAcceleratedTranscoding": "Transkodim me Përshpejtim Hardware", + "HeaderHardwareAcceleratedTranscodingDescription": "Përfito nga GPU-ja e serverit tënd. Emby ka përshpejtimin hardware më të shpejtë dhe të avancuar në industri.", + "HeaderOfflineDownloads": "Media Offline", + "AndMuchMoreExclamation": "Dhe akoma më shumë!", + "HeaderOfflineDownloadsDescription": "Shkarko mediat në pajisjet e tua për ti përdorur lehtësisht offline.", + "LiveTvFeatureDescription": "Bëj streaming e Live TV në çdo aplikacion Emby, me një sinkronizues TV të përshtatshëm të instaluar në Emby Server.", + "DvrFeatureDescription": "Planifiko regjistrime Live TV individuale, regjistrime serialesh dhe akoma më shumë me Emby DVR.", + "CinemaModeFeatureDescription": "Intro Kinema të jep eksperiencën e vërtetë të kinemasë me trailer dhe prezantime të posaçme para projektimit të filmit.", + "HeaderFreeApps": "Aplikacione Emby Falas", + "FreeAppsFeatureDescription": "Shijoni akses falas në aplikacionet Emby për pajisjet e tua.", + "HeaderBecomeProjectSupporter": "Merr Emby Premiere", + "HeaderViewServerInfo": "Shiko Informacion mbi Serverin", + "PlaybackTvModeRequiresEmbyPremiere": "Riprodhimi i medias në modalitet TV kërkon një {0}abonim Emby Premiere{1} aktiv.", + "FeatureRequiresEmbyPremiere": "Kjo karakteristikë kërkon një {0}abonim Emby Premiere{1} aktiv.", + "HeaderConvertYourRecordings": "Konverto Regjistrimet e Tua", + "Record": "Regjistro", + "Save": "Ruaj", + "Edit": "Redakto", + "HeaderSavePlaylist": "Ruaj Playlist-ën", + "Latest": "më të fundit", + "Download": "Shkarko", + "Downloaded": "Të shkarkuar", + "Converted": "Të konvertuar", + "RemoveFromHistory": "Hiq nga Historiku", + "ConfirmRemoveFromHistory": "Ta heq këtë artikull nga historiku?", + "Downloading": "Në shkarkim", + "Advanced": "Të përparuara", + "LinkedToEmbyConnect": "I Lidhur me Emby Connect", + "Delete": "Fshije", + "Both": "Të dyja", + "LabelChannelDisplay": "Shfaq kanalin", + "HeaderDeleteItem": "Fshije Artikullin", + "HeaderDeleteUser": "Fshije Përdoruesin", + "DeleteItemConfirmation": "Je i sigurt që dëshiron të fshish {0}?", + "DeleteUserConfirmation": "Je i sigurt që dëshiron të fshish përdoruesin {0}?", + "DeleteUsersConfirmation": "Je i sigurt që dëshiron të fshish këta {0} përdorues?", + "HeaderDeleteDevice": "Fshije Pajisjen", + "DeleteDeviceConfirmation": "Je i sigurt që dëshiron ta fshish këtë pajisje? Ajo do të rishfaqet herën tjetër që një përdorues do të hyjë me të.", + "ConfirmDeleteItem": "Fshirja e këtij artikulli do ta fshijë njëkohësisht si nga sistemi edhe nga biblioteka jote mediatike.", + "FollowingFilesWillBeDeleted": "Skedarët dhe dosjet e mëtejshme do të fshihen:", + "AreYouSureToContinue": "Je i sigurt që dëshiron të vazhdosh?", + "Refresh": "Rifresko", + "RefreshingMetadataDots": "Duke rifreskuar metadatat…", + "ScanningLibraryFilesDots": "Duke skanuar skedarët e bibliotekës…", + "HeaderFavoritesThenByChannelNumber": "Të preferuarit, Pastaj sipas Numrit të Kanalit", + "HeaderAddToCollection": "Shto në Koleksion", + "HeaderFavoritesThenByTitle": "Të preferuarit, Pastaj sipas Titullit", + "HeaderFavoritesThenByDefault": "Të preferuarit, Pastaj sipas Renditjes të Parazgjedhur të Kanaleve", + "HeaderDefaultChannelOrder": "Renditja e Parazgjedhur e Kanaleve", + "HeaderAddToFavorites": "Shto tek Të preferuarit", + "HeaderRemoveFromFavorites": "Hiq nga Të preferuarit", + "Favorited": "I preferuar", + "Unfavorited": "I papreferuar", + "HeaderNewCollection": "Koleksion i Ri", + "HeaderNewPlaylist": "Playlistë e Re", + "AllCollections": "Të Gjitha Koleksionet", + "AllPlaylists": "Të Gjitha Playlistat", + "Create": "Krijo", + "HeaderAddedToPlaylist": "Shtuar në Playlistë", + "HeaderAddedToCollection": "Shtuar në Koleksion", + "OneItemAddedTo": "1 artikull i shtuar në “{0}”.", + "ItemsAddedTo": "{0} artikuj të shtuar në “{1}”.", + "HeaderAddedToPlayQueue": "Shtuar në Rradhën e Riprodhimit", + "HeaderPlayingNext": "Duke riprodhuar Vijuesin", + "Help": "Ndihmë", + "HeaderGetHelp": "Merr Ndihmë", + "LabelTVDisplayMode": "Aktivizo modalitetin Ekran TV", + "Desktop": "Tryeza", + "Mobile": "Celular / Tabletë", + "Navigation": "Navigimi", + "HeaderVideoPlayback": "Riprodhimi Video", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Sezone", + "OneTrack": "1 Këngë", + "OneSeason": "1 Sezon", + "Libraries": "Bibliotekat", + "NumberSeasonsValue": "{0} Sezone", + "TVDisplayModeHelp": "Optimizo ndërfaqen e përdoruesit në këtë pajisje për shfaqje në televizor dhe metodën e vendosjes me telekomandë. Kjo nuk rekomandohet nëse metoda jote kryesore e vendosjes është me anë të mouse-it ose me prekje.", + "LabelDisplayLanguage": "Gjuha në ekran", + "LabelDisplayLanguageHelp": "Përkthimi i Emby është një projekt i vazhdueshëm.", + "LearnHowYouCanContribute": "Mëso si të ndihmosh.", + "NewCollectionHelp": "Koleksionet ju lejojnë të krijoni grupe të personalizuara filmash apo përmbajtjesh të tjera të bibliotekës.", + "SearchForCollectionInternetMetadata": "Kërko në internet për grafika dhe metadata", + "DisplayMissingEpisodesWithinSeasons": "Shfaq episodet munguese brenda sezoneve", + "DisplayMissingEpisodesWithinSeasonsHelp": "Kjo duhet aktivizuar edhe për bibliotekat televizive në konfigurimin e Emby Server.", + "EnableThemeSongs": "Riprodho këngët e siglave", + "EnableBackdrops": "Aktivizo sfondet", + "EnableThemeSongsHelp": "Nëse aktive, këngët/meloditë e siglave do të riprodhohen në sfond ndërsa shfletoni bibliotekën.", + "EnableBackdropsHelp": "Nëse aktive, pamje nga disa programe do të shfaqen në sfond ndërsa shfletoni bibliotekën.", + "EnableThemeVideos": "Riprodho videot e siglave", + "EnableThemeVideosHelp": "Nëse aktive, videot e siglave do të riprodhohen në sfond ndërsa shfletoni librarinë.", + "RunAtStartup": "Ekzekuto në nisje", + "ServerStartup": "Nisja e Serverit", + "EmbyServerOnXHasStarted": "Emby Server në {0} ka nisur.", + "LabelScreensaver": "Mbrojtësi i ekranit", + "LabelSoundEffects": "Efektet zanore", + "LabelName": "Emri", + "NewCollectionNameExample": "Shembull: Koleksioni Star Wars", + "MessageItemsAdded": "Artikujt u shtuan.", + "OptionNew": "…i ri", + "LabelPlaylist": "Playlista", + "AddToPlaylist": "Shto në playlistë", + "HeaderAddToPlaylist": "Shto në Playlistë", + "Subtitles": "Titrat", + "LabelTheme": "Motivi", + "LabelSettingsTheme": "Motivi i parametrave", + "LabelThemeAccentColor": "Ngjyra e theksimit", + "ThemeAccentColorDescription": "Kontrollon ngjyrën e indikatorëve të rëndësishëm, ikonave dhe tekstit.", + "SearchForSubtitles": "Kërko për Titra", + "LabelLanguage": "Gjuha", + "Search": "Kërko", + "NoSubtitleSearchResultsFound": "Nuk u gjetën rezultate. E ke konfiguruar {0}shkarkim i titrave{1}?", + "NoLyricsSearchResultsFound": "Nuk u gjetën rezultate. E ke konfiguruar {0}shkarkim i teksteve të këngëve{1}?", + "Lyrics": "Tekste këngësh", + "SearchForLyrics": "Kërko për Tekste këngësh", + "Finish": "Përfundo", + "File": "Skedar", + "Exit": "Dil", + "Sleep": "Gjumë", + "Setup": "Konfigurim", + "MessageAreYouSureDeleteSubtitles": "Je i sigurt që dëshiron ta fshish këtë skedar titre?", + "ConfirmDeletion": "Konfirmo Fshirjen", + "MySubtitles": "Titrat e Mia", + "MessageDownloadQueued": "Shkarkimi u vu në rradhë.", + "HeaderEditSubtitles": "Redakto Titrat", + "UnlockGuide": "Çkyç Guidën", + "HeaderRefreshMetadata": "Rifresko Metadatat", + "HeaderRefreshAllMetadata": "Rifresko të Gjitha Metadatat", + "ReplaceExistingImages": "Zëvendëso imazhet ekzistuese", + "ReplaceExistingImagesHelp": "Të gjitha imazhet ekzistuese do të fshihen dhe do të shkarkohen të reja. Në disa raste kjo mund të rezultojë në më pak imazhe se më përpara.", + "ReplaceAllMetadata": "Zëvendëso të gjitha metadatat", + "SearchForMissingMetadata": "Kërko për metadatat munguese", + "LabelRefreshMode": "Modaliteti i rifreskimit", + "NoItemsFound": "Nuk u gjetën artikuj.", + "HeaderSaySomethingLike": "Thuaj Diçka Si…", + "ButtonTryAgain": "Provo Përsëri", + "HeaderYouSaid": "Ti The…", + "MessageWeDidntRecognizeCommand": "Na vjen keq, nuk e njohëm atë komandë.", + "MessageIfYouBlockedVoice": "Nëse i mohove akses zëri aplikacionit do të të duhet ta rikonfigurosh para se ta provosh përsëri.", + "ValueDiscNumber": "Disku {0}", + "Unrated": "I pa klasifikuar", + "Favorite": "I Preferuar", + "Like": "Pëlqej", + "Dislike": "Mospëlqej", + "RefreshDialogHelp": "Metadatat përditësohen me të dhëna të reja bazuar mbi parametrat dhe furnizuesit e metadatave të aktivizuar në konfigurimin e bibliotekës Emby.", + "Open": "Hape", + "Play": "Riprodho", + "Pause": "Vendos në Pauzë", + "HeaderPlayQueue": "Riprodho Rradhën", + "HeaderAddToPlayQueue": "Shtoje në Rradhën e Riprodhimit", + "Shuffle": "Përzje", + "Identify": "Identifiko", + "HeaderRemoveIdentification": "Hiqe Identifikimin", + "ResetMetadataConfirmation": "Je i sigurt që dëshiron të rivendosësh të gjitha metadatat?", + "HeaderEditMetadata": "Redakto Metadatat", + "Convert": "Konverto", + "Resume": "Rinis", + "HeaderInstantMix": "Miksim i Menjëhershëm", + "HeaderGoToItem": "Shko tek Artikulli", + "HeaderGoToSeason": "Shko tek Sezoni", + "HeaderGoToSeries": "Shko tek Seriali", + "HeaderGoToAlbum": "Shko tek Albumi", + "HeaderGoToArtist": "Shko tek Artisti", + "HeaderPlayAll": "Riprodhoji të Gjithë", + "PictureInPicture": "Figurë në figurë", + "Fullscreen": "Ekran i plotë", + "ExitFullscreen": "Dil nga ekrani i plotë", + "Rewind": "Kthe mbrapa", + "FastForward": "Shpejto përpara", + "Remove": "Hiqe", + "Rename": "Riemëro", + "Queue": "Vendos në radhë", + "QueueAllFromHere": "Vendosi të gjithë në rradhë prej këtu", + "PlayAllFromHere": "Riprodhoji të gjithë prej këtu", + "PlayFromBeginning": "Riprodho Nga Fillimi", + "FromBeginning": "Nga Fillimi", + "ResumeAt": "Rinis nga {0}", + "HeaderRemoveFromPlaylist": "Hiqe nga Playlista", + "HeaderRemoveFromPlayQueue": "Hiqe nga Rradha e Riprodhimit", + "HeaderRemoveFromCollection": "Hiqe nga Koleksioni", + "Sort": "Rendit", + "Trailer": "Trailer", + "SelectNone": "Zgjidh Asnjë", + "SelectAll": "Zgjidh të Gjitha", + "HeaderMarkPlayed": "Shënoje si Të riprodhuar", + "HeaderMarkUnplayed": "Shënoje si të Pa riprodhuar", + "HeaderGroupVersions": "Grupo Versionet", + "PleaseSelectTwoItems": "Të lutem zgjidh të paktën dy artikuj.", + "HeaderConfirmRecordingCancellation": "Konfirmo Anullimin e Regjistrimit", + "MessageConfirmRecordingCancellation": "Ta anulloj regjistrimin?", + "Album": "Albumi", + "AlbumArtist": "Artisti i Albumit", + "Error": "Gabim", + "VoiceInput": "Hyrje Vokale", + "LabelContentType": "Lloji i përmbajtjes", + "LabelPath": "Shtegu", + "Playlists": "Playlistat", + "LabelTitle": "Titulli", + "LabelOriginalTitle": "Titulli origjinal", + "LabelSortTitle": "Titulli i renditjes", + "LabelDateAdded": "Data e shtimit", + "DateAdded": "Data e Shtimit", + "DateModified": "Data e Modifikimit", + "DatePlayed": "Data e Riprodhimit", + "DateLastActive": "Data e Fundit Aktive", + "ConfigureDateAdded": "Konfiguro se si përcaktohet data e shtimit në kuadrin e kontrollit të Emby Server nën parametrat e Bibliotekës", + "LabelStatus": "Gjendja", + "LabelArtistsHelp": "Nda të shumëfishtët duke përdorur ;", + "HeaderAlbumArtists": "Artistët e Albumit", + "LabelAlbumArtists": "Artistët e albumit", + "LabelAlbum": "Albumi", + "Artist": "Artisti", + "Artists": "Artistët", + "ImdbRating": "Klasifikimi IMDb", + "CommunityRating": "Klasifikimi I Komunitetit", + "LabelCommunityRating": "Klasifikimi i komunitetit", + "LabelCriticRating": "Klasifikimi i kritikës", + "CriticRating": "Klasifikimi i Kritikës", + "LabelWebsite": "Faqe interneti", + "Tagline": "Nëntitulli", + "LabelOverview": "Përmbledhje", + "LabelShortOverview": "Përmbledhje e shkurtër", + "LabelReleaseDate": "Data e publikimit", + "LabelPlaceOfBirth": "Vendlindja", + "Aired": "I transmetuar", + "LabelAirDays": "Ditët e transmetimit", + "LabelAirTime": "Ora e transmetimit", + "LabelRuntimeMinutes": "Kohëzgjatja (minuta)", + "LabelCustomRating": "Klasifikim i personalizuar", + "LabelOriginalAspectRatio": "Raporti origjinal i pamjes", + "Label3DFormat": "Formati 3D", + "FormatValue": "Formati: {0}", + "DownloadsValue": "{0} Shkarkime", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Aktivizo riprodhuesit multimedialë të jashtëm", + "EnableExternalVideoPlayersHelp": "Menuja e riprodhuesit të jashtëm do të shfaqet kur të fillosh riprodhimin e videos.", + "HeaderSpecialEpisodeInfo": "Informacion mbi Episodin Special", + "LabelAirsDuringSeason": "Transmetohet gjatë sezonit", + "LabelAirsAfterSeason": "Transmetohet pas sezonit", + "LabelAirsBeforeEpisode": "Transmetohet para episodit", + "HeaderExternalIds": "Id të jashtme", + "HeaderDisplaySettings": "Parametrat e Ekranit", + "PlaylistOrder": "Renditja e Playlistës", + "CollectionOrder": "Renditja e Koleksionit", + "LabelDisplayOrder": "Renditja në ekran", + "LabelFileOrder": "Renditja e skedarëve", + "Display": "Ekrani", + "Countries": "Shtetet", + "Genres": "Zhanra", + "Studios": "Studiot kinematografike", + "Tags": "Etiketat", + "Links": "Lidhjet", + "Movie": "Film", + "Program": "Programi", + "Channel": "Kanali", + "Episode": "Episodi", + "Season": "Sezoni", + "HeaderMetadataSettings": "Cilësimet e Metadatave", + "People": "Personat", + "Number": "Numri", + "Lock": "Kyç", + "HeaderScreenLocked": "Ekran i Kyçur", + "HeaderUnlockControls": "Çkyç Komandat", + "HeaderTapToUnlock": "Trokit për të Çkyçur", + "LabelMetadataDownloadLanguage": "Gjuha e preferuar për shkarkimin e metadatave", + "LabelImageDownloadLanguage": "Gjuha e preferuar për shkarkimin e imazheve", + "LabelLockItemToPreventChanges": "Kyçe këtë artikull për të parandaluar modifikime të mëtejshme", + "LockThisField": "Kyçe këtë fushë për të parandaluar modifikime të mëtejshme kur rifreskon metadatat", + "MessageLeaveEmptyToInherit": "Lëre bosh për të trashëguar cilësimet nga një element i të njëjtës familje , ose vlerën e parazgjedhur globale.", + "LabelCountry": "Shteti", + "LabelCertificationCountry": "Shteti i çertifikimit", + "CertificationCountryHelp": "Kjo do të ndikojë mbi sistemin e klasifikimit që do të përdoret.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Viti i lindjes", + "LabelBirthDate": "Data e lindjes", + "LabelDeathDate": "Data e vdekjes", + "LabelEndDate": "Data e përfundimit", + "LabelSeasonNumber": "Numri i sezonit", + "LabelEpisodeNumber": "Numri i episodit", + "LabelTrackNumber": "Numri i këngës", + "LabelNumber": "Numri", + "LabelDiscNumber": "Numri i diskut", + "LabelParentNumber": "Numri prind", + "SortName": "Titulli i Renditjes", + "OriginalTitle": "Titulli Origjinal", + "ReleaseDate": "Data e Publikimit", + "Continuing": "Në vazhdim", + "Ended": "E Përfunduar", + "HeaderEnabledFields": "Fushat e Aktivizuara", + "HeaderEnabledFieldsHelp": "Hiqe zgjedhjen nga një fushë për ta kyçur dhe për të bllokuar modifikimin e të dhënave të saj.", + "Backdrops": "Sfonde", + "Images": "Imazhe", + "Runtime": "Kohëzgjatja", + "ProductionLocations": "Vendndodhjet e produksionit", + "BirthLocation": "Vendndodhja e lindjes", + "ParentalRating": "Klasifikimi prindëror", + "PlayCount": "Numri i riprodhimeve", + "Name": "Emri", + "Overview": "Përmbledhje", + "LabelType": "Lloji", + "LabelPersonRole": "Roli", + "LabelPersonRoleHelp": "Shembull: Shofer furgoni akulloresh", + "Actor": "Aktori", + "Composers": "Kompozitorët", + "Composer": "Kompozitori", + "Director": "Regjizori", + "GuestStar": "Guest star", + "Producer": "Producent", + "Writer": "Skenaristi", + "MessageNoSyncJobsFound": "Nuk u gjetën shkarkime. Filloni shkarkimet duke përdorur butonat Shkarko që gjenden përmes aplikacionit.", + "MessageNoDownloadsFound": "Nuk ka shkarkime offline. Shkarko median tënde për përdorim offline duke klikuar Shkarko përmes aplikacionit.", + "InstallingPackage": "Po instalon {0}", + "PackageInstallCompleted": "Instalimi i {0} u kompletua.", + "PackageInstallFailed": "Instalimi i {0} dështoi.", + "PackageInstallCancelled": "Instalimi i {0} u anullua.", + "SeriesYearToPresent": "{0} - Aktualisht", + "OneDevice": "1 Pajisje", + "DeviceCountValue": "{0} Pajisjet", + "OneLog": "1 Regjistër", + "LogCountValue": "{0} Regjistra", + "OneVote": "1 Votë", + "VoteCountValue": "{0} Vota", + "OneLike": "1 Pëlqim", + "LikeCountValue": "{0} Pëlqime", + "OneUser": "1 Përdorues", + "UserCountValue": "{0} Përdoruesa", + "OneLibrary": "1 Bibliotekë", + "LibraryCountValue": "{0} Biblioteka", + "ValueOneItem": "1 Artikull", + "ValueOneEpisode": "1 episod", + "ValueEpisodeCount": "{0} episode", + "Albums": "Albume", + "Song": "Këngë", + "Songs": "Këngë", + "Authors": "Autorë", + "Books": "Libra", + "AudioBooks": "Libra audio", + "HeaderAudioBooks": "Libra Audio", + "HeaderAudioBook": "Libër Audio", + "HeaderIdentifyItemHelp": "Fut një apo më shumë kritere kërkimi. Hiq kritere për të shtuar rezultatet e kërkimit.", + "PleaseEnterNameOrId": "Të lutem fut një emër ose një Id të jashtëm.", + "MessageItemSaved": "Artikulli u ruajt.", + "SearchResults": "Rezultatet e Kërkimit", + "ServerNameIsRestarting": "Emby Server - {0} po riniset.", + "ServerNameIsShuttingDown": "Emby Server - {0} po fiket.", + "HeaderDeleteItems": "Fshij artikujt", + "ConfirmDeleteItems": "Fshirja e këtyre artikujve do ti fshijë si nga sistemi edhe nga biblioteka juaj mediatike.", + "PleaseRestartServerName": "Të Lutem Rinise Emby Server në {0}", + "ConvertingDots": "Po konverton…", + "LabelSyncNoTargetsHelp": "Mesa duket aktualisht nuk ke asnjë hap që suporton shkarkimin offline.", + "DownloadingDots": "Duke Shkarkuar…", + "LearnMore": "Mëso më shumë", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Konverto vetëm videot e pa riprodhuara", + "SyncUnwatchedVideosOnly": "Shkarko vetëm videot e pa riprodhuara", + "ConvertUnwatchedVideosOnlyHelp": "Vetëm videot e pa shënuara si të riprodhuara komplet do të konvertohen.", + "SyncUnwatchedVideosOnlyHelp": "Vetëm videot e pa shënuara si të riprodhuara komplet do të shkarkohen, dhe videot do të hiqen nga pajisja pas riprodhimit komplet.", + "AutomaticallySyncNewContent": "Shkarko automatikisht përmbajtje të reja", + "AutomaticallySyncNewContentHelp": "Përmbajtja e re e shtuar në këtë dosje do të konvertohet automatikisht.", + "AutomaticallyConvertNewContent": "Konverto automatikisht përmbajtjen e re", + "AutomaticallyConvertNewContentHelp": "Përmbajtja e re e shtuar në këtë dosje do të konvertohet automatikisht.", + "LabelItemLimit": "Limiti i artikujve", + "ConvertItemLimitHelp": "Opsionale. Vendos një limit për numrin e artikujve që do të konvertohen.", + "DownloadItemLimitHelp": "Opsionale. Vendos një limit për numrin e artikujve që do të shkarkohen.", + "PleaseSelectDeviceToSyncTo": "Të lutem zgjidh një pajisje ku të shkarkosh.", + "Screenshots": "Screenshote", + "MoveRight": "Lëviz djathtas", + "MoveLeft": "Lëviz majtas", + "HeaderUploadNewImage": "Ngarko Imazh të Ri", + "HeaderDeleteImage": "Fshi Imazhin", + "ConfirmDeleteImage": "Fshi imazhin?", + "HeaderEditImages": "Redakto Imazhet", + "Settings": "Parametrat", + "ShowIndicatorsFor": "Shfaq Indikatorët", + "Episodes": "Episode", + "Programs": "Programe", + "HeaderCastCrew": "Aktorët & Trupa", + "DvrSubscriptionRequired": "Emby Live Tv & DVR kërkon një {0}abonim Emby Premiere{1} aktiv.", + "HeaderCancelRecording": "Anullo Regjistrimin", + "HeaderKeepRecording": "Mbaj Regjistrimin", + "HeaderCancelSeries": "Ndërprit serialin", + "HeaderKeepSeries": "Mbaj Serialin", + "HeaderLearnMore": "Mëso më Shumë", + "SeriesSettings": "Parametrat e Serialit", + "HeaderRecordingOptions": "Opsione Regjistrimi", + "HeaderDoNotRecord": "Mos regjistro", + "HeaderSeriesOptions": "Opsionet e serialeve", + "Layout": "Struktura", + "Channels": "Kanale", + "ChannelNameOnly": "Vetëm kanali {0}", + "Anytime": "Në çdo kohë", + "AnyLanguage": "Në çdo gjuhë", + "AroundTime": "Rreth {0}", + "HeaderLatestMovies": "Filmat më të Fundit", + "All": "Të gjithë/a", + "Stop": "Ndalo", + "AllChannels": "Gjithë kanalet", + "NewEpisodesOnly": "Vetëm episode të reja", + "AllEpisodes": "Gjithë episodet", + "LabelStartWhenPossible": "Fillo kur është e mundur", + "LabelStopWhenPossible": "Ndalo kur është e mundur", + "MinutesBefore": "minuta para", + "MinutesAfter": "minuta pas", + "SkipEpisodesAlreadyInMyLibrary": "Mos regjistro episodet që gjenden në bibliotekën time", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodet do të krahasohen duke përdorur numrat e sezoneve dhe episodeve, nëse të pranishëm.", + "LabelKeepUpTo": "Vazhdo deri tek", + "AsManyAsPossible": "Sa më shumë të jetë e mundur", + "DefaultErrorMessage": "Pati një gabim në përpunimin e kërkesës. Të lutem provo përsëri më vonë.", + "UntilIDelete": "Derisa ta fshij", + "UntilSpaceNeeded": "Derisa të nevojitet hapësira", + "Categories": "Kategori", + "Sports": "Sporte", + "News": "Lajme", + "Movies": "Filma", + "Music": "Muzikë", + "Kids": "Fëmijë", + "MoreFromValue": "Më shumë nga {0}", + "DiedValue": "Vdiq: {0}", + "BornValue": "Lindi: {0}", + "EnableColorCodedBackgrounds": "Apliko sfonde të ngjyrosura serialeve, sipas kategorisë të tyre", + "SortChannelsBy": "Rendit kanalet sipas", + "ChannelNumber": "Numri i kanalit", + "HeaderBenefitsEmbyPremiere": "Përfitimet nga Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Shijo një minutë riprodhimi. Faleminderit që provove Emby.", + "HeaderTryPlayback": "Provo Riprodhimin", + "HowDidYouPay": "Si pagove?", + "IHaveEmbyPremiere": "Kam Emby Premiere", + "IPurchasedThisApp": "E bleva këtë app", + "ButtonRestorePreviousPurchase": "Rivendos Blerjen", + "ButtonUnlockWithPurchase": "Çkyç me Blerje", + "ButtonUnlockPrice": "Çkyç {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Mujor {0}", + "HeaderAlreadyPaid": "E Ke Paguar?", + "ButtonPlayOneMinute": "Riprodho Një Minutë", + "PlaceFavoriteChannelsAtBeginning": "Vendos kanalet e preferuara në fillim", + "HeaderUnlockFeature": "Çkyç Funksionin", + "MessageDidYouKnowCinemaMode": "E dije se me Emby Premiere, mund të zgjerosh eksperiencën tënde me karakteristika të veçanta si Cinema Intros?", + "HeaderPlayMyMedia": "Riprodho Median time", + "HeaderDiscoverEmbyPremiere": "Zbulo Emby Premiere", + "HeaderNowPlaying": "Në Riprodhim", + "Items": "Artikuj", + "AppName": "Emri i Aplikacionit", + "OneChannel": "Një kanal", + "ConfirmRemoveDownload": "Hiq shkarkimin?", + "ConfirmRemoveItem": "T’a heq artikullin?", + "RemoveDownload": "Elimino Shkarkimin", + "ConfirmCancelConversion": "Ta anulloj konvertimin?", + "CancelConversion": "Anullo Konvertimin", + "KeepDownload": "Mbaj shkarkimin", + "AddedOnValue": "Shtuar {0}", + "RemovingFromDevice": "Duke hequr nga pajisja", + "KeepOnDevice": "Mbaj në pajisje", + "CancelDownload": "Anullo shkarkimin", + "SyncJobItemStatusReadyToTransfer": "Gati për t’u Transferuar", + "SyncJobItemStatusSyncedMarkForRemoval": "Duke hequr nga pajisja", + "SyncJobItemStatusQueued": "Në rradhë", + "SyncJobItemStatusConverting": "Duke konvertuar", + "SyncJobItemStatusTransferring": "Duke transferuar", + "SyncJobItemStatusSynced": "Shkarkuar", + "Failed": "Dështuar", + "SyncJobItemStatusRemovedFromDevice": "Hequr nga pajisja", + "Cancelled": "Fshirë", + "Retry": "Riprovo", + "Continue": "Vazhdo", + "ContinueInSecondsValue": "Vazhdo në {0} sekonda.", + "HeaderRemoteControl": "Kontroll në Distancë", + "Disconnect": "Shkëput", + "EnableDisplayMirroring": "Aktivizo pasqyrimin e ekranit", + "RemoteAccess": "Akses në Distancë", + "HeaderPlayOn": "Riprodho Në", + "Quality": "Cilësi", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "Për të rivendosur blerjen e mëparshme, sigurohu që ke hyrë në pajisje me të njëjtën llogari Google (ose Amazon) që përdore për të kryer blerjen. Sigurohu që dyqani i app-eve është i aktivizuar, i pakufizuar nga kontrollet prindërore dhe lidhja e internetit është aktive. Mjafton ta bëni vetëm një herë për të rivendosur blerjen.", + "HeaderAspectRatio": "Raporti i Pamjes", + "Original": "Origjinal", + "Fill": "Mbush", + "Cover": "Kopertinë", + "MessageNoServersAvailableToConnect": "Nuk ka servera ku të lidhesh. Nëse je ftuar për të ndarë një server, sigurohu ta pranosh më poshtë ose duke klikuar linkun në email.", + "MessagePlayAccessRestricted": "Riprodhimi i kësaj përmbajtjeje është aktualisht i kufizuar. Të lutem kontakto administratorin e Emby Server për më shumë informacion.", + "Accept": "Prano", + "Reject": "Kundërshto", + "Connect": "Lidhu", + "HeaderMyMedia": "Media Ime", + "HeaderMyMediaSmall": "Media Ime (i vogël)", + "LatestFromLibrary": "{0} më të fundit", + "HeaderLatestEpisodes": "Episodet më të Fundit", + "ContinuePlaying": "Vazhdo riprodhimin", + "ContinueWatching": "Vazhdo shikimin", + "HeaderLatestChannelMedia": "Artikujt e Kanaleve më të Reja", + "HeaderContinueWatching": "Vazhdo Shikimin", + "HeaderContinueListening": "Vazhdo Dëgjimin", + "HeaderActiveRecordings": "Regjistrime Aktive", + "HeaderLatestRecordings": "Regjistrimet më të Fundit", + "LabelConvertTo": "Konverto në", + "LabelDownloadTo": "Shkarko në", + "HeaderDownloadToDots": "Shkarko në…", + "Next": "Vijues", + "LabelSource": "Burimi", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "Të Gjitha Gjuhët", + "Previous": "I mëparshëm", + "HeaderNextUp": "Në Vijim", + "HeaderPlayNextUp": "Riprodho Vijuesin", + "HeaderLatestFrom": "Më të fundit nga {0}", + "LabelHomeScreenSectionValue": "Seksioni {0} i ekranit bazë", + "PasswordResetComplete": "Fjalëkalimi u rivendos.", + "PasswordSaved": "Fjalëkalimi u ruajt.", + "SettingsSaved": "Parametrat u ruajtën.", + "Upcoming": "I ardhshëm", + "HeaderSelectImageFile": "Zgjidh File-in e Imazhit", + "None": "Asnjë", + "More": "Më shumë", + "Up": "Lart", + "Down": "Poshtë", + "Home": "Home", + "Back": "Mbrapa", + "Random": "I Rastit", + "Playback": "Riprodhim", + "Favorites": "Të preferuara", + "HeaderHomeScreen": "Ekrani Bazë", + "HeaderLatestChannelItems": "Artikujt e Kanaleve më të Reja", + "HeaderLibraryOrder": "Renditja e Bibliotekës", + "HeaderOnNow": "Në Transmetim Tani", + "HeaderForKids": "Për Fëmijë", + "HeaderPlaybackError": "Gabim Riprodhimi", + "PlaybackErrorNotAllowed": "Je aktualisht i paautorizuar për të riprodhuar këtë përmbajtje. Të lutem kontakto administratorin e sistemit tënd për detaje.", + "RateLimitExceeded": "Llogaria jote ka tejkaluar limitin maksimal për streaming të vendosur nga administratori yt i Emby Server. Të lutem kontakto atë për asistencë.", + "PlaybackErrorNoCompatibleStream": "Aktualisht nuk gjenden rryma të pajtueshme. Të lutem provo përsëri më vonë ose kontakto administratorin e sistemit tënd për detaje.", + "PlaybackErrorPlaceHolder": "Të lutem fute diskun për të riprodhuar këtë video.", + "PlaybackErrorNoPlayableItems": "Nuk u gjetën artikuj të riprodhueshëm. Po përpiqesh të riprodhosh një dosje bosh?", + "Guide": "Udhëzues", + "Games": "Lojra", + "GameSystem": "Sistem Loje", + "Suggestions": "Sugjerime", + "HeaderFavoriteChannels": "Kanale të Preferuara", + "HeaderFavoriteCollections": "Koleksione të Preferuara", + "HeaderFavoritePlaylists": "Playlist-at e Preferuara", + "Collection": "Koleksion", + "Collections": "Koleksione", + "LabelSelectFolderGroups": "Bashko automatikisht përmbajtjen nga dosjet e mëtejshme në grupe si Filma, Muzikë dhe TV:", + "LabelSelectFolderGroupsHelp": "Dosjet e pa zgjedhura do të shfaqen automatikisht në grupe të krijuara prej tyre.", + "Mute": "Pa zë", + "Unmute": "Rikthe zërin", + "Folder": "Dosja", + "Folders": "Dosjet", + "FileName": "Emri i File-it", + "DisplayInOtherHomeScreenSections": "Shfaq në ekranin bazë sekondar seksione si mediat më të fundit dhe vazhdo shikimin", + "DisplayInMyMedia": "Shfaq në ekranin bazë", + "Shows": "Shfaqje", + "MoviesAndShows": "Filma & Seriale", + "HeaderMusicVideo": "Video Muzikore", + "HeaderMusicVideos": "Video Muzikore", + "MusicVideos": "Video muzikore", + "Videos": "Video", + "MixedContent": "Përmbajtje e përzjerë", + "HomeVideos": "Video shtëpiake", + "HomeVideosAndPhotos": "Video & foto shtëpiake", + "TVShows": "Seriale TV", + "HeaderLibraryFolders": "Dosjet e Bibliotekës", + "HeaderTermsOfPurchase": "Kushtet e Blerjes", + "PrivacyPolicy": "Rregullorja e privatësisë", + "TermsOfUse": "Kushtet e Përdorimit", + "HeaderRepeatMode": "Mënyra e përsëritjes", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Përsërit një", + "RepeatAll": "Përsërit të gjithë", + "LabelDefaultScreen": "Ekrani i parazgjedhur", + "ConfirmEndPlayerSession": "Dëshironi të fikni Emby në {0}?", + "Yesterday": "Dje", + "Yes": "Po", + "No": "Jo", + "HeaderScanLibraryFiles": "Skano Skedarët e Bibliotekës", + "LiveTV": "Live TV", + "Schedule": "Programim", + "Recordings": "Regjistrime", + "ScanForNewAndUpdatedFiles": "Skano për skedarë të rinj dhe të përditësuar", + "NewVersionOfXAvailableForY": "{0} është i Disponueshëm për {1}", + "DirectStreamHelp1": "Media është e pajtueshme me pajisjen përsa i përket rezolucionit dhe llojit të medias (H.264, AC3, etj.), por gjendet brenda një kontejneri të pa pajtueshëm (.mkv, .avi, .mkv, etj.). Videoja do të ripaketohet menjëherë para se të transmetohet tek pajisja.", + "DirectStreamHelp2": "Streaming direkt i një file përdor shumë pak fuqi për përpunimin dhe pa patur humbje në cilësinë video.", + "MediaIsBeingConverted": "Media po konvertohet në një format të pajtueshëm me pajisjen që po riprodhon median.", + "StatsForNerds": "Statistika për nerda", + "HeaderHardwareAcceleratedDecoding": "Dekodim me Përshpejtim Hardware", + "HeaderHardwareAcceleratedEncoding": "Enkodim me Përshpejtim Hardware", + "HeaderDirectPlay": "Riprodhim Direkt", + "DirectPlaying": "Duke riprodhuar direkt:", + "DirectStreaming": "Streaming direkt", + "Transcode": "Transkodo", + "Transcoding": "Duke transkoduar", + "ContainerBitrateExceedsLimit": "Duke reduktuar bitrate-in për shkak të parametrit të cilësisë", + "VideoCodecNotSupported": "Duke konvertuar videon në një kodek të përputhshëm", + "AudioCodecNotSupported": "Duke konvertuar audion në një kodek të përputhshëm", + "SubtitleCodecNotSupported": "Duke konvertuar titrat direkt brenda videos", + "DirectPlayError": "Duke marrë veten nga gabimi i riprodhimit", + "ContainerNotSupported": "Duke konvertuar në një kontejner të përputhshëm", + "VideoLevelNotSupported": "Duke konvertuar në një nivel video të përputhshëm", + "AudioBitrateNotSupported": "Duke konvertuar në një bitrate audio të përputhshëm", + "AudioChannelsNotSupported": "Duke konvertuar në një numër kanalesh audio të përputhshëm", + "VideoResolutionNotSupported": "Duke konvertuar në një rezolucion video të përputhshëm", + "AudioProfileNotSupported": "Duke konvertuar në një profil audio të përputhshëm", + "AudioSampleRateNotSupported": "Duke konvertuar në një sample rate audio të përputhshëm", + "AnamorphicVideoNotSupported": "Videoja anamorfike nuk suportohet", + "InterlacedVideoNotSupported": "Duke bërë deinterlacing video", + "SecondaryAudioNotSupported": "Duke zgjedhur gjurmën audio sekondare", + "ExternalAudioNotSupported": "Duke seleksionuar gjurmën e jashtme audio", + "ErrorRemovingEmbyConnectAccount": "Pati një gabim në heqjen e e llogarisë Emby Connect. Të lutem sigurohu që ke një lidhje interneti aktive dhe provo përsëri.", + "HeaderEmbyAccountRemoved": "Llogaria Emby u Hoq", + "MessageEmbyAccontRemoved": "Llogaria Emby është hequr nga ky përdorues.", + "HeaderInvitationSent": "Ftesa u Dërgua", + "Offline": "Offline", + "HeaderSignUp": "Regjistrohu", + "ServerDownloadMessage": "Për të shkarkuar dhe instaluar Serverin Emby falas vizito {0}", + "ServerDownloadMessageWithoutLink": "Për të shkarkuar dhe instaluar Serverin Emby vizito faqen web të Emby.", + "MessageInvitationSentToUser": "Emaili u dërgua tek {0}, që fton të pranojnë kërkesën tënde për bashkë-ndarje.", + "MessageInvitationSentToNewUser": "Emaili u dërgua tek {0} që fton të regjistrohen në Emby.", + "GuestUserNotFound": "Përdoruesi nuk u gjet. Të lutem sigurohu që emri është i saktë dhe provo përsëri, ose provo të fusësh adresen email të tyre.", + "ErrorReachingEmbyConnect": "Pati një gabim në arritjen e serverit Emby Connect. Të lutem sigurohu që ke lidhje interneti aktive dhe provo përsëri.", + "ErrorAddingEmbyConnectAccount1": "Pati një gabim në shtimin e llogarisë Emby Connect. E ke krijuar një llogari Emby? Regjistrohu në {0}.", + "ErrorAddingEmbyConnectAccount2": "Nëse vazhdon të kesh problem, të lutem dërgona një email në {0} nga adresa email e përdorur me llogarinë Emby.", + "ErrorAddingGuestAccount1": "Pati një gabim kur u shtua llogaria Emby Connect. A ka krijuar llogari Emby vizitori yt? Ata mund të regjistrohen tek {0}.", + "ErrorAddingGuestAccount2": "Nëse ke akoma problem, të lutem dërgo një email tek {0}, dhe përfshi si adresen tënde email edhe të tyren.", + "MessageEmbyAccountAdded": "Llogaria Emby iu shtua këtij përdoruesi.", + "MessagePendingEmbyAccountAdded": "Llogaria Emby iu shtua këtij përdoruesi. Një email do t’i dërgohet pronarit të llogarisë. Ftesa duhet të konfirmohet duke klikuar linkun brenda në email.", + "HeaderEmbyAccountAdded": "Llogaria Emby u Shtua", + "Skip": "Kapërce", + "HeaderAdditionalParts": "Pjesë Shtesë", + "ButtonGenerateNewPin": "Gjenero Pin të Ri", + "ConnectLoginHelp1": "Me Emby Connect mund të aksesosh Emby Server kudo të jesh dhe të bashkë-ndash serverat me familjen dhe miqtë e tu.", + "CreatePinErrorMessage": "Pati një gabim kur u krijua kodi pin. Të lutem kliko Gjenero Pin të Ri për të provuar përsëri.", + "PinExpiredMessage": "Kodi pin ka skaduar. Të lutem kliko Gjenero Pin të Ri për të provuar përsëri.", + "ConnectPinCodeHeader": "Për të hyrë me Emby Connect, përdor një pajisje të lëvizshme (celular, tabletë) ose kompjuter për të vizituar {0} dhe fut këtë kod pin:", + "LabelSubtitlePlaybackMode": "Modalitet i titrës", + "ErrorDeletingItem": "Pati një gabim në fshirjen e artikullit nga Emby Server. Të lutem kontrollo që Emby Server ka akses shkrimi në dosjen mediatike dhe provo përsëri.", + "NoSubtitles": "Nuk ka titra", + "Default": "E parazgjedhur", + "Absolute": "Absolut", + "Smart": "Smart", + "Small": "Vogël", + "Smaller": "Më i/e vogël", + "Medium": "Mesatar/e", + "Large": "Madh", + "Larger": "Më gjerë", + "ExtraLarge": "Shumë i madh", + "ExtraSmall": "Shumë i vogël", + "Forced": "Forcuar", + "External": "I/E Jashtëm", + "HeaderEmbeddedTitle": "Titull i Ngulitur", + "OnlyForcedSubtitles": "Vetëm titra të forcuara", + "AlwaysPlaySubtitles": "Riprodho gjithmonë titrat", + "DefaultSubtitlesHelp": "Titrat aktivizohen në bazë të metadatave të ngulitura si të parazgjedhura apo të forcuara. Preferencat e gjuhës konsiderohen vetëm kur më shumë se një gjuhë është në dispozicion.", + "SmartSubtitlesHelp": "Titrat që përputhen me gjuhën e preferuar do të ngarkohen kur audio është në një gjuhë të huaj.", + "HeaderSubtitleSettings": "Parametrat e Titrave", + "HeaderSubtitleAppearance": "Paraqitja e Titrave", + "OnlyForcedSubtitlesHelp": "Vetëm titrat e shënuara si të forcuara do të ngarkohen.", + "AutoSelectHearingImpairedHelp": "Do të ngarkohen titrat që përputhen me gjuhën e preferuar, me preferencë për titrat e shënuara si SDH (për persona me probleme dëgjimi).", + "AlwaysPlaySubtitlesHelp": "Titrat që përputhen me preferencën e gjuhës do të ngarkohen pavarësisht nga gjuha audio.", + "NoSubtitlesHelp": "Titrat nuk do të ngarkohen automatikisht. Mund ti ndezësh manualisht gjatë riprodhimit.", + "LabelPreferredSubtitleLanguage": "Gjuha e preferuar për titrat", + "LabelTextSize": "Përmasa e tekstit", + "TheseSettingsAffectSubtitlesOnThisDevice": "Këto parametra ndikojnë titrat në këtë pajisje", + "LabelDropShadow": "Hije", + "LabelTextBackgroundColor": "Ngjyra e sfondit të tekstit", + "LabelWindowBackgroundColor": "Ngjyra e sfondit të tekstit", + "LabelFont": "Fonti", + "LabelTextColor": "Ngjyra e tekstit", + "LabelBackgroundColor": "Ngjyra e sfondit", + "LabelBackgroundOpacity": "Transparenca e sfondit", + "Raised": "Ngritur", + "Depressed": "Ulur", + "Uniform": "Uniformë", + "DropShadow": "Hije", + "SmallCaps": "Shkronja të vogla", + "SubtitleAppearanceSettingsDisclaimer": "Këto parametra nuk do ti aplikohen titrave grafike (PGS, DVD, etj.), ose titrave që kanë stilet e tyre të ngulitura (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Duke pritur për Wifi", + "WifiRequiredToDownload": "Kërkohet një lidhje Wifi për të vazhduar shkarkimin.", + "DownloadOnlyOnWifi": "Shkarko vetëm në Wifi", + "LabelMusicDownloadQuality": "Cilësia e shkarkimit të muzikës", + "MusicDownloadQualityHelp": "File-t audio me një bitrate më të lartë do të konvertohen nga Emby Server. Zgjidh një vlerë më të lartë për një cilësi më të mirë, ose një vlerë më të ulët për të konservuar hapësire në memorjen lokale.", + "HeaderDownloadSettings": "Parametra Shkarkimi", + "LabelDownloadLocation": "Vendndodhja e shkarkimit", + "BrowseForFolder": "ShfletoPërDosje", + "Unlimited": "I pakufizuar", + "NoLimit": "Pa limit", + "Hide": "Fshih", + "HeaderKeepWatching": "Vazhdo Shikimin", + "HeaderNextEpisode": "Episodi Vijues", + "AudioBitDepthNotSupported": "Duke konvertuar në një thellësi bit audio të përputhshëm", + "VideoBitrateNotSupported": "Duke konvertuar në një bitrate video të përshtatshme", + "VideoProfileNotSupported": "Duke konvertuar në një profil video të përputhshëm", + "VideoFramerateNotSupported": "Duke konvertuar në një framerate video të përputhshëm", + "VideoBitDepthNotSupported": "Duke konvertuar në një thellësi bit video të përputhshëm", + "RefFramesNotSupported": "Duke konvertuar në një numër reference frame video të përputhshëm", + "ErrorConnectServerUnreachable": "Pati një gabim në kryerjen e veprimit të kërkuar. Serveri yt është i pa aftë të kontaktojë serverin tonë Emby Connect në {0}. Të lutem sigurohu që serveri yt ka një lidhje aktive interneti dhe që komunikimet nuk po bllokohen nga firewall-i yt apo software-i i sigurisë i instaluar.", + "HeaderStopRecording": "Ndal Regjistrimin", + "ManageRecording": "Menaxho regjistrimin", + "LabelDropImageHere": "Rrëshkit dhe lësho imazhin këtu, ose kliko për të zgjedhur një imazh për të ngarkuar.", + "MessageFileReadError": "Pati një gabim kur u lexua ky file. Të lutem provo përsëri.", + "Browse": "Shfleto", + "HeaderUploadImage": "Ngarko Imazh", + "HeaderAddUpdateImage": "Shto/Përditëso Imazh", + "HeaderShowFields": "Shfaq Fushat", + "LabelView": "Pamja", + "LabelImageType": "Lloji i imazhit", + "Upload": "Ngarko", + "Primary": "Primar", + "PrimaryImageBlur": "Turbullim i imazhit primar", + "Art": "Grafika", + "Backdrop": "Sfond", + "Banner": "Banderolë", + "Box": "Kuti", + "BoxRear": "Kuti (mbrapa)", + "Disc": "Disk", + "Logo": "Logo", + "LogoDark": "Logo (Version i Errët)", + "LogoLight": "Logo (Version i Qartë)", + "LogoLightColor": "Logo (E Qartë me Ngjyrë)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Miniaturë", + "HeaderAudioSettings": "Parametrat Audio", + "LabelAudioLanguagePreference": "Gjuha audio e preferuar", + "LabelPlayDefaultAudioTrack": "Riprodho gjurmën audio e parazgjedhur pavarësisht nga gjuha", + "HeaderVideoQuality": "Cilësia Video", + "CinemaModeConfigurationHelp": "Cinema Intros sjell eksperiencën e vërtetë të kinemasë direkt në sallonin tënd me trailer dhe prezantime të posaçme para projektimit të filmit.", + "ShowUpNextPreview": "Shfaq përmbledhjen e vijuesit", + "ShowUpNextPreviewHelp": "Shfaq informacion mbi artikullin vijues afër fundit të aktualit.", + "PlayNextEpisodeAutomatically": "Riprodho episodin vijues automatikisht", + "LabelMaxChromecastBitrate": "Cilësia streaming për Chromecast", + "LabelSkipBackLength": "Kohëzgjatja e Kapërce mbrapa", + "LabelSkipForwardLength": "Kohëzgjatja e Kapërce para", + "EnableCinemaMode": "Aktivizo Cinema Intros", + "LabelInternetQuality": "Cilësia streaming në distancë", + "LabelCellularQuality": "Cilësia streaming në distancë (celular)", + "HeaderMusicQuality": "Cilësi e Muzikës", + "LabelHomeNetworkQuality": "Cilësia streaming e rrjetit shtëpiak", + "HeaderLatestMedia": "Media më e Fundit", + "HeaderRestartingEmbyServer": "Duke Rinisur Emby Server", + "RestartPleaseWaitMessage": "Të lutem prit ndërsa Emby Server fiket dhe rinis. Mund të zgjasë një minutë apo dy.", + "HeaderPlayNext": "Riprodho Vijues", + "AutoBasedOnLanguageSetting": "Auto (bazuar në parametrin e pajisjes)", + "SameAsMainTheme": "E njëjtë me motivin kryesor", + "LabelDateTimeLocale": "Data koha lokale", + "Genre": "Zhanri", + "DirectorValue": "Regjizor: {0}", + "DirectorsValue": "Regjizorë: {0}", + "GenreValue": "Zhanri: {0}", + "GenresValue": "Zhanra: {0}", + "TagsValue": "Etiketa: {0}", + "Off": "Fikur", + "Title": "Titull", + "Year": "Vit", + "Filter": "Filtër", + "Filters": "Filtra", + "Unplayed": "Pa riprodhuar", + "LabelTVHomeScreen": "Ekrani bazë i modalitetit TV", + "Horizontal": "Horizontal", + "Vertical": "Vertikal", + "HeaderGroupBy": "Grupo Sipas", + "HeaderMediaType": "Lloji i Medias", + "GroupBySeries": "Grupo sipas serialit", + "HeaderVideoType": "Lloji i Videos", + "HeaderSeriesStatus": "Statusi i Serialit", + "Features": "Karakteristika", + "Trailers": "Trailer", + "Extras": "Ekstra", + "ThemeSongs": "Sigla", + "ThemeVideos": "Sigla video", + "HeaderFavoriteMovies": "Filma të Preferuar", + "HeaderFavoritePhotos": "Foto të Preferuara", + "HeaderFavoriteShows": "Shfaqje të Preferuara", + "HeaderFavoriteEpisodes": "Episode të Preferuara", + "HeaderFavoriteVideos": "Videot e Preferuara", + "HeaderFavoriteMusicVideos": "Videot Muzikore Të Preferuara", + "HeaderFavoriteGames": "Lojërat e Preferuara", + "HeaderFavoriteArtists": "Artistë të Preferuar", + "HeaderFavoriteAlbums": "Albume të Preferuar", + "HeaderFavoriteSongs": "Këngë të Preferuara", + "HeaderFavoriteAuthors": "Autorë të Preferuar", + "HeaderFavoriteAudioBooks": "Libra Audio të Preferuar", + "Ascending": "Në ngjitje", + "Descending": "Në zbritje", + "HeaderColorPrimaries": "Primarët e Ngjyrave", + "HeaderColorSpace": "Hapësira e Ngjyrës", + "HeaderColorTransfer": "Transferimi i Ngjyrës", + "HeaderVideoRange": "Range Video", + "SeriesDisplayOrderHelp": "Rendit episodet sipas datës së transmetimit, renditjes në dvd, ose numërimit absolut.", + "LabelVerticalPositionFromBottom": "Pozicioni vertikal (nga fundi)", + "HeaderFavoritePeople": "Njerëz të Preferuar", + "MultiSelect": "Zgjedhje e shumëfishtë", + "HeaderSignOut": "Dil", + "HeaderSelectServer": "Zgjidh Serverin", + "HeaderChangeServer": "Ndërro Serverin", + "HeaderChangeUser": "Ndërro Përdoruesin", + "HeaderAppSettings": "Parametrat e Aplikacionit", + "HeaderLoginSettings": "Parametrat e Lidhjes", + "LabelRememberLogin": "Kujto lidhjen", + "LabelAutomaticallySignOut": "Dil automatikisht", + "BetaTesterMessage": "Faleminderit që je një testues beta i Emby! Të lutem lër feedback në {0} Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware-i u përshpejtua", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Informacion mbi Median", + "Locked": "Kyçur", + "HeaderSplitVersionsApart": "Ndaj Versionet", + "Any": "Çfarëdo", + "Admin": "Admin", + "HeaderReadMore": "Lexo më Shumë", + "CustomRatingHelp": "Një klasifikim i personalizuar përdoret për vlerësimet e kontrollit prindëror por nuk shfaqet. Fusha e klasifikimit prindëror shfaqet akoma.", + "KeepUpToHelp": "Regjistrimet mbi limit fshihen kur regjistrimi vijues fillon. Regjistrimet më të vjetra fshihen më parë, sipas datës kur janë shtuar.", + "NoItemsMatchingFound": "Nuk u gjendën artikuj që përputhen me kriteret e kërkimit tënd.", + "TwoSearchCharsRequired": "Të lutem fut të paktën dy shkronja për kërkim.", + "PreventPlaybackContinuing": "Parandalo që riprodhimi të vazhdojë pafundësisht duke kërkuar veprim periodik nga përdoruesi.", + "PromptStillWatching": "Aktivizo komandën ‘Po Shikon Akoma?’", + "HeaderMissingMetadata": "Metadata Munguese", + "HeaderIncludedIn": "Përfshirë Në", + "EmbyConnectUserAlreadyLinked": "Emri i Përdoruesit Emby Connect i përket një përdoruesi tjetër në këtë server.", + "VideoFilesWillBeConvertedTo": "Videot e konvertuara do të ruhen si {0}.", + "VideoWillBeConvertedTo": "Rrymat video do të konvertohen në{0}, ose do të kopjohen nga file-i origjinal nëse rezultojnë {0} dhe cilësia përputhet me opsionet e konvertimit.", + "VideoWillBeConvertedToOrCopied": "Rrymat video do të konvertohen në {0}, ose do të kopjohen nga file-i origjinal nëse ka ndonjë prej{1}, dhe cilësia përputhet me opsionet e konvertimit.", + "AudioWillBeConvertedTo": "Rrymat audio do të konvertohen në {0}, ose do të kopjohen nga file-i origjinal nëse rezultojnë {0}, dhe cilësia përputhet me opsionet e konvertimit.", + "AudioWillBeConvertedToOrCopied": "Rrymat audio do të konvertohen në {0}, ose do të kopjohen nga file-i origjinal nëse ka ndonjë prej{1}, dhe cilësia përputhet me opsionet e konvertimit.", + "HeaderSpecialKeys": "Çelësa Specialë", + "FollowingSpecialKeys": "Çelësat specialë të mëtejshëm suportohen në shumicën e tastierave dhe telekomandave:", + "HeaderDeleteSeries": "Fshi Serialin", + "HeaderDeleteLastPlayedEpisode": "Fshi Episodin e Riprodhuar së Fundi", + "HeaderConnectingToServer": "Duke u Lidhur me Serverin", + "ServerNameValue": "Emri i Serverit: {0}", + "DomainValue": "Domen: {0}", + "RatedValue": "Klasifikuar {0}", + "LocalServerRedirectMessage": "Do të drejtohesh tek domeni nën pronësinë dhe veprimin e administratorit të serverit që ke zgjedhur të lidhesh:", + "AllMediaOwnedHosted": "E gjithë media është e akomoduar dhe e menaxhuar nga pronari i {0}.", + "EnableResolutionSwitching": "Përputh rezolucionin video", + "EnableResolutionSwitchingHelp": "Kjo aftëson Emby-n të ndryshojë rezolucionin në vlerën e njëjtë që videoja ishte enkoduar para se të fillonte riprodhimi. Kjo mund të ndihmojë me minimizimin e shkëputjeve/dridhjeve që mund shikoni kur riprodhoni video që nuk përputhen mirë.", + "EnableDisplayRefreshRateSwitching": "Aktivizo ndërrimin e refresh rate-it të ekranit", + "EnableDisplayRefreshRateSwitchingHelp": "Kjo aftëson Emby-n që të ndryshojë refresh rate-in e ekranit në të njëjtën vlerë (ose shumë vlerash) me framerate-in që ishte enkoduar videoja para se të fillonte riprodhimi. Kjo mund të minimizojë sasinë e dridhjes/shkëputjeve që përndryshe mund të shikosh kur riprodhon video të cilat nuk përputhen mirë.", + "RememberSelectedAudioTracks": "Kujto zgjedhjet e gjurmës audio", + "RememberSelectedSubtitleTracks": "Kujto zgjedhjet e gjurmës së titrave", + "RememberSelectedSubtitleTracksHelp": "Zgjedhjet e gjurmës së titrave do të kujtohen për një video në veçanti dhe do të ri aplikohen kur do të riprodhohet e njëjta video përsëri.", + "RememberSelectedAudioTracksHelp": "Zgjedhjet e gjurmës audio do të kujtohen për një video në veçanti dhe do të ri aplikohen kur do të riprodhohet e njëjta video përsëri.", + "ClearSavedTrackSelections": "Pastro zgjedhjet e gjurmëve audio/titra të ruajtura", + "HeaderClearTrackSelections": "Pastro Zgjedhjet e Gjurmëve Audio/Titra të Ruajtura", + "QuestionClearSavedTracks": "Pastro të gjitha zgjedhjet e gjurmëve audio/titra?", + "LabelChannelTags": "Etiketat e kanaleve", + "AfterThisPlaysConfirmation": "Pas riprodhimit të kësaj, do të vazhdosh riprodhimin apo të pastrosh muzikën që vendose më parë në rradhë?", + "Keep": "Mbaj", + "Clear": "Pastro", + "HeaderClearFilters": "Pastro Filtrat", + "HeaderSearchForImages": "Kërko për Imazhe", + "HeaderSearchNewImage": "Kërko për një Imazh të Ri", + "HeaderSearchForAnImage": "Kërko për një Imazh", + "DragDropToReorder": "Rrëshkit dhe Lësho për të Ri Renditur", + "HeaderAddImageFromUrl": "Shto Imazh nga URL", + "HeaderSetImageFromUrl": "Vendos Imazh nga URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Numri i kanalit", + "LabelGuideDataChannel": "Kanali i të dhënave të Guidës", + "GuideDataSource": "Burimi i të Dhënave të Guidës", + "HeaderCopyToClipboard": "Kopjo në Clipboard", + "TimeRemainingValue": "Mbeten {0}", + "LabelResumeRewindSeconds": "Kur e rinis, kthehu mbrapa automatikisht", + "ResumeRewindSecondsHelp": "Kjo mund të të ndihmojë të kujtosh ku ke ngelur. Kjo i aplikohet rifillimit fillestar dhe jo çdo pauze individuale gjatë riprodhimit.", + "HeaderSavePlayQueueToPlaylist": "Ruaj Rradhën e Riprodhimit në Playlist", + "EnableLogoImagesAsTitle": "Shfaq imazhet e logove si tituj në ekranet e detajeve", + "EnableLogoImagesAsTitleHelp": "Kur disponohen, imazhet e logove mund të përdoren në vend të titullit me tekst në video, seriale dhe ekranet e tjera të detajeve. Titulli do të shkruhet në tekst kur imazhi i logos nuk është i disponueshëm.", + "LabelNowPlayingAudioBackgroundStyle": "Stili i sfondit kur riprodhohet audio", + "LabelNowPlayingVideoBackgroundStyle": "Stili i sfondit kur riprodhohet video", + "NowPlayingVideoBackgroundStyleHelp": "Përcakton stilin e sfondit kur kontrollon ne distancë riprodhimin video nga një pajisje tjetër.", + "Rotation": "Rrotullim", + "Minutes": "Minuta", + "LabelMaxRecordingLength": "Kohëzgjatja maksimale e regjistrimit", + "MaxRecordingLengthHelp": "Kufizo regjistrimet në një sasi specifike kohe, pavarësisht nga kohëzgjatja e transmetimit televiziv. Vendos në 0 për të pakufizuar.", + "RemoteWAN": "Adresa (WAN) në Distancë", + "HeaderLastConnectedTo": "Lidhja e Fundit Tek", + "Version": "Version", + "Keyword": "Fjalë Kyçe", + "HeaderServerAddress": "Adresa e Serverit", + "HeaderSkipIntro": "Kapërce Siglën", + "HeaderCreateRecording": "Krijo Regjistrim", + "HeaderAddRecording": "Shto Regjistrim", + "HeaderChannelAndTime": "Kanali dhe Ora", + "LabelRecordProgramOrSeriesFrom": "Regjistro një program ose serial nga", + "LabelStartTime": "Orari i fillimit", + "LabelEndTime": "Orari i përfundimit", + "LabelFrequency": "Frekuenca", + "Recurring": "Periodik", + "Once": "Një Herë", + "Start": "Nisje", + "Unpause": "Anullo Pauzën", + "LabelIntroSkipMode": "Modaliteti i kapërcimit të siglës", + "ShowSkipIntroButton": "Shfaq butonin ‘Kapërce Siglën’", + "AutoSkipIntro": "Kapërce siglat automatikisht", + "DisplayRatingInformationOnVideoPlaybackStart": "Shfaq të dhënat e klasifikimit kur fillon riprodhimi video", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Të dhënat e klasifikimit do të shfaqen shkurtimisht kur fillon riprodhimi i videos.", + "IntroSkipModeHelp": "Shfaq butonin ‘Kapërce Siglën’ ose kapërce siglat automatikisht në episodet ku Emby Server ka zbuluar shënues siglash. Zbulimi i siglave duhet aktivizuar në opsionet e bibliotekës të Emby Server.", + "EnableHomeScreenFocusPreview": "Përdor një strukturë në ekranin bazë që shfaq një parashikim të detajuar të artikullit të zgjedhur", + "EnableHomeScreenFocusPreviewHelp": "Kjo mund të mos funksionojë mirë nëse ekrani juaj bazë përmban një përzierje llojesh të mediave të ndryshme.", + "LabelHideMediaTransportButtons": "Fshihi butonat e transportit të riprodhuesit video", + "HideMediaTransportButtonsHelp": "Krijo një ndërfaqe riprodhimi në ekran më të thjeshtë duke fshehur butonat bazikë si kalo përpara, mbrapa dhe pauzë. Do të mundësh ti përdorësh këto funksione duke përdorur tastet me shigjeta dhe OK/Enter. Auto do të fshehë butonat e transportit kur nuk ka përdorim të mouse-it brenda aplikacionit.", + "ImageSizeHelp": "Vendos përmasën e preferuar të rrjetës së imazheve.", + "LabelImageSize": "Përmasa e imazhit", + "ThisImageIsOnlyPreview": "Ky imazh është vetëm një parashikim i krijuar nga motori i kërkimit të metadatave. Imazhi aktual i shkarkuar nga Emby Server mund të jetë i ndryshëm dhe varet nga opsionet e konfiguruar në konfigurimin e bibliotekës së Emby-t.", + "ResultsRangeValue": "{0} tek {1} nga {2}", + "NotificationsDescription": "Konfiguro lajmërimet për të qenë i informuar mbi ndodhitë në serverin tënd Emby.", + "DeleteEmbyConnectAccount": "Fshi Llogarinë Emby Connect", + "DeleteEmbyConnectAccountHelp": "Për të fshirë llogarinë tënde Emby Connect, të lutem hyr në {0}të Emby Community{1} tek {2}. Pasi të kesh hyrë, kliko emrin tënd të përdoruesit lartë djathtas, më pas kliko Parametrat e Llogarisë, dhe në fund kliko Fshi Llogarinë Time.", + "KeepPlayingInBackground": "Vazhdo riprodhimin në sfond", + "LabelVideoBackBehavior": "Sjellja e butonit Pas në riprodhuesin e videos", + "HeaderViewLyrics": "Shfaq Tekstet", + "HeaderViewMissingEpisodes": "Shfaq Episodet Që Mungojnë", + "HeaderMissingEpisodes": "Episode Që Mungojnë", + "HeaderManageAccess": "Menaxho Akseset", + "HeaderManageCollaboration": "Menaxho Bashkëpunimin", + "HeaderLeaveCollaboration": "Largohu nga Bashkëpunimi", + "HeaderRemoveFromLibrary": "Hiqe nga Biblioteka", + "RemoveSharedItemConfirmation": "Je i sigurtë që dëshiron ta heqësh këtë artikull nga biblioteka jote? Për ta ripasur pronari origjinal duhet të të japë akses përsëri.", + "SubtitlesDownloaded": "Titrat u Shkarkuan", + "HeaderMakePrivate": "Bëj Privat", + "HeaderMakePublic": "Bëj Publik", + "MakePublicDescription": "Të gjithë përdoruesit do të mund të shikojnë këtë artikull. Përdoruesve mund t’ju jepet akses për t’a redaktuar.", + "MakePrivateDescription": "Përdoruesve mund t’ju jepet akses individualisht.", + "Private": "Privat", + "Public": "Publik", + "Collaborative": "Bashkëpunues", + "PreferredShowDisplay": "Paraqitja e Shfaqjes Tv të preferuar", + "ShowAllEpisodesAllSeasons": "Shfaq të gjithë episodet e të gjitha sezoneve sëbashku", + "ShowAllEpisodesSingleSeason": "Shfaq të gjithë episodet vetëm për shfaqjet me një sezon", + "ShowSeasonFolders": "Shfaq gjithmonë dosjet e sezoneve", + "HeaderAddAgain": "Shto Përsëri", + "UpNext": "Në Vijim", + "ItemsAlreadyInPlaylist": "Disa prej këtyre artikujve gjenden në playlistën tënde.", + "ItemAlreadyInPlaylist": "Ky artikull gjendet në playlistën tënde.", + "HeaderPlayChannel": "Riprodho Kanalin", + "LabelScreenOrientationDuringVideo": "Orientimi i ekranit gjatë riprodhimit video", + "UseDeviceSetting": "Përdor parametrin e pajisjes", + "LockToLandscape": "Kyç në format për së gjeri", + "UsernameForFolderHelp": "Emri i përdoruesit i kërkuar për të aksesuar këtë dosje në rrjetin tuaj (nëse aplikohet).", + "PasswordForFolderHelp": "Fjalëkalimi i kërkuar për të aksesuar këtë dosje në rrjetin tuaj (nëse aplikohet).", + "ShowMediaInfoOnDetailScreens": "Shfaq informacionin e plotë të medias në fund të kuadrantit të detajeve audio dhe video", + "ForgotPasswordNoUserFound": "Nuk u gjetën përdorues me emrin e futur. Të lutem provo përsëri, ose lër emrin bosh për të rivendosur fjalëkalimin për të gjithë përdoruesit në këtë server.", + "Silver": "Argjend", + "DimGray": "Gri e Zbehtë", + "DarkGray": "Gri e Errët", + "LightGray": "Gri e Hapur", + "Black": "E Zezë", + "Blue": "Blu", + "Cyan": "E Kaltër", + "Gray": "Gri", + "Green": "Jeshile", + "Lime": "Lime", + "Magenta": "Magentë", + "Orange": "Portokalli", + "Pink": "Rozë", + "Red": "E Kuqe", + "Yellow": "E Verdhë", + "White": "E Bardhë", + "Purple": "Vjollcë", + "RecentlyReleasedMovies": "Filma të Publikuar së Fundi", + "RecentlyReleasedEpisodes": "Episode të Publikuara së Fundi", + "DolbyProfile": "Profili Dolby", + "IpAddress": "Adresa IP", + "VideoType": "Lloji i Videos", + "HidePlayedMediaFrom": "Fshih Median e Riprodhuar Nga", + "BottomEdgePosition": "Pozicionuar në Brinjën e Poshtme", + "VerticalPositionFromBottomScreen": "Përcakto pozicionin vertikal të titrave duke u nisur nga fundi i ekranit.", + "TopEdgePosition": "Pozicioni Anësor nga Lart", + "TopEdgePositionHelp": "Përcakto pozicionin vertikal maksimal të lejuar për titrat në lidhje me kryen e ekranit. Ky përdoret kur titrat përmbajnë instruksione pozicionimi për t’i vendosur në krye.", + "HeaderSubtitlePosition": "Pozicioni i Titrave", + "TitleProfilePin": "Kodi PIN i Profilit", + "ProfilePinConfirm": "Kodi PIN i Profilit (konfirmo)", + "SaveProfilePin": "Ruaj Kodin Pin", + "ProfilePinDescription": "Krijo një kod pin opsional që të kërkohet kurdoherë që të rihysh në aplikacionin Emby në njërën prej pajisjeve që ke aksesuar me parë. Ky funksion është i dobishëm nëse ke pajisje të bashkë-ndara me përdorues të shumëfishtë. Mund të zgjedhësh aktivizimin e tij në secilën pajisje sipas nevojës.", + "TitleNewEpisodes": "Episode të Reja", + "EnterYourPinToContinue": "Fut kodin tënd PIN për të vazhduar.", + "YourPinMustBe": "Kodi yt PIN duhet të jetë me {0} shifra.", + "ForgotPin": "Ke harruar kodin PIN?", + "RequireEnteringPinToReturn": "Kërko kodin tim PIN të profilit kurdoherë që kthehem në këtë aplikacion.", + "RequireEnteringPinToReturnQuestion": "A duhet të të kërkojmë kodin tënd PIN të profilit kurdoherë që të riktheheni në këtë aplikacion? Nëse kjo pajisje bashkë-ndahet nga përdorues të shumëfishtë, kodi PIN i profilit mund të ndihmojë përdoruesit e tjerë të aksesojnë të dhënat e tua.", + "RequireEnteringPinToReturnHelp": "I dobishëm nëse kjo pajisje është e bashkë-ndarë me përdorues të shumëfishtë.", + "WrongPinPleaseTryAgain": "Ups, PIN i gabuar. Të lutem provo përsëri.", + "ProfilePinIsOn": "Kodi PIN i profilit është i aktivizuar.", + "IfTryingToConnectToHttp": "Nëse po përpiqesh të lidhesh me Emby Server-in tënd me një adresë HTTP, shfletuesi yt web mund të mos ta lejojë këtë për shkak të kërkesave të HTTPS. Të lutem provo një nga vijueset:", + "SetupHttpsForYourServer": "Konfiguro {0}HTTPS për Emby Serverin tuaj{1} kështu që mund të lidhesh duke përdorur HTTPS.", + "TitleUnableToReachServer": "I paaftë të Kontaktoj Serverin", + "TitleUnableToReachName": "I paaftë të Kontaktoj {0}", + "HearingImpaired": "Vështirësi Dëgjimi", + "SignIntoServerName": "Hyr në {0}", + "About": "Informacione", + "Specials": "Material Special", + "NSettings": "{0} Cilësimet", + "NPreferences": "{0} Preferencat", + "DetailScreenOptions": "Ekranet e Detajeve", + "LabelGenreDisplayLimit": "Kufiri i shfaqjes së zhanrave", + "GenreDisplayLimitHelp": "Kufizo numrin e zhanrave të shfaqura në krye të ekranit të detajeve të titullit.", + "GenreDisplayLimitForListsHelp": "Kufizo numrin e zhanrave të shfaqura në krye të ekraneve të detajeve të playlistave, koleksioneve dhe artistëve.", + "LabelGenreDisplayLimitForLists": "Kufiri për shfaqjen e zhanrave për listat", + "ShowPosterOnDetails": "Shfaq një poster në ekranin e detajeve", + "ShowPosterOnDetailsHelp": "Zgjidh që të shfaqësh një poster në ekranin e detajeve të videos, ose t’a fshehësh për një vizual minimal që thekson sfondin. Ky parametër nuk përdoret për struktura ekranesh të vogla. Disa lloje artikujsh do t’a injorojnë këtë parametër.", + "EnableAppLogging": "Aktivizo app logging", + "EnableAppLoggingHelp": "Mbajtja e regjistrit mund të degradojë funksionimin e aplikacionit dhe këshillohet të aktivizohet në rast nevoje për arsye korrigjimi problemesh. Ndryshimet kërkojnë rinisjen e aplikacionit.", + "LabelSlideshowInterval": "Kohëzgjatja e prezantimit të fotove për çdo foto", + "TVChannelImageEditorHelp": "Versione të shumëfishta të logos janë të suportuara. Aplikacionet e Emby-t do të zgjedhin automatikisht më të përshtatshmen për temën aktuale.", + "PlaySlideshow": "Riprodho Prezantimin", + "CheckForExistingEpisodesInAllLibraries": "Kontrollo për episode ekzistuese në të gjitha bibliotekat", + "GroupNotificationsBySeriesOrAlbum": "Grupo lajmërimet sipas serialeve dhe albumeve", + "ThemeSettings": "Cilësimet e Temës", + "FollowingActivityWillBeDisrupted": "Aktiviteti i mëtejshëm do të ndërpritet dhe mund të kërkojë ndërhyrje manuale për të rifilluar:", + "OneActivePlaybackSession": "1 Sesion Riprodhimi Aktiv", + "NumActivePlaybackSessions": "{0} Sesione Riprodhimi Aktive", + "OneActiveRecording": "1 Regjistrim Aktiv", + "NumActiveRecordings": "{0} Regjistrime Aktive", + "PlayFromLivePosition": "Riprodho nga pozicioni live", + "PlayFromStartOfRecording": "Riprodho nga fillimi i regjistrimit", + "ThisChannelIsActivelyRecording": "Ky kanal po regjistrohet aktivisht. Si do t’a fillosh riprodhimin?", + "ThemeSongVolume": "Volumi i këngës së siglës", + "HeaderForceConversionForFormats": "Forco Transkodimin për Formatet", + "ForceConversionForFormatsHelp": "Përdore këtë për të forcuar transkodimin anësor ose remux-imin për formatet që nuk kanë riprodhim direkt optimal në këtë pajisje.", + "StartupBehavior": "Sjellja në nisje", + "RememberLastUser": "Kujto përdoruesin e fundit", + "ShowLoginScreen": "Shfaq ekranin e hyrjes", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Konverto audion surround të pasuportuar në Dolby Digital", + "ConvertUnsupportedAudioHelp": "Evito downmix-imin e formateve surround të pasuportuara në stereo duke përdorur Serverin Emby për t'i transkoduar në Dolby Digital.", + "HeaderPlaybackCorrection": "Korrigjim Riprodhimi", + "HeaderAttemptPlaybackCorrection": "Përpjekje për Korrigjim Riprodhimi", + "PlaybackCorrectionConfirm": "Të përpiqem për korrigjim riprodhimi?", + "PlaybackCorrectionDescription": "Artikulli aktual po shfaq probleme me riprodhimin e videos apo audios? Kjo mund të ndihmojë me korrrigjimin e problemit duke përdorur transkodimin me anë të serverit për ta konvertuar këtë file në një format më të përshtatshëm për streaming. Kjo do të rezultojë në një konsum të shtuar të punës në këtë Emby Server.", + "PlaybackCorrectionDescription2": "Mund ta bësh deri në tre herë për video, ku remux-imi, transkodimi video dhe transkodimi audio aktivizohen secili një nga një.", + "HeaderAlbumsAsContributingArtist": "Albumet si Artist Kontribues", + "HeaderAlbumsAsComposer": "Albumet si Kompozitor", + "Duplicates": "Duplikata", + "HeaderSleepTimer": "Timer i Gjumit", + "AfterCurrentItem": "Pas artikullit aktual", + "HeaderStopPlayback": "Ndalo Riprodhimin", + "TurnOffTimer": "Fike Timer-in", + "SleepTimerIsSet": "Timer-i i gjumit u vendos", + "SleepTimerIsOff": "Timer-i i gjumit u fik", + "LabelEnableRemoteControlTVMode": "Pasqyrimi i ekranit dhe funksionet e kontrollit në distancë", + "EnableRemoteControlTVModeHelp": "Aktivizo nëse dëshiron të përdorësh këtë pajisje për të dërguar median tek pajisje të tjera.", + "ShowOnScreenControls": "Shfaq kontrollet mbi ekran", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Zgjidh çfarë veprimi të bësh kur shtyp butonin lart në ekranin e riprodhuesit video. Kjo aplikohet kur nuk janë të visualizuara kontrollet mbi ekran. Kur kontrollet janë të vizualizuara, butoni lart do të përdoret për navigim.", + "LabelVideoPlayerLongPressAction": "Veprimi i riprodhuesit video kur shtyp gjatë", + "LetsGetSetup": "Le Të Fillojmë", + "VideoPlayerLongPressActionHelp": "Zgjidh çfarë funksioni ose menyje shfaqet kur shtyp gjatë butonin OK gjatë riprodhimit video. Kjo do të ketë efekt vetëm kur kontrollet video janë të fshehura ose kur shiriti i kërkimit ka fokus.", + "AskAdminToGetPremiere": "Kjo blerje duhet të bëhet nga administratori i serverit. Të lutem kërkoji administratorit të këtij Serveri Emby të hyjë dhe të blejë Emby Premiere në mënyrë që të kesh akses në funksionet premium.", + "AutoOpenSingleItemsFolders": "Hapi automatikisht artikujt e njëfishtë në pamjen e dosjes", + "AutoOpenSingleItemsFoldersHelp": "Kur dosja përmban vetëm një artikull, hape artikullin automatikisht.", + "PlayedOnValue": "Riprodhuar {0}", + "TheseSettingsApplyAppDevice": "Këto cilësime i aplikohen të gjithë përdoruesve në këtë pajisje.", + "LastContentDateAdded": "Data e Shtimit të Përmbajtes së Fundit", + "RepeatThemeMedia": "Riprodho siglat vazhdueshmërisht", + "HideEpisodeSpoilerInfo": "Fshih informacionet spoiler nga episodet e pashikuara", + "HideEpisodeSpoilerInfoHelp": "Fsheh imazhin dhe përmbledhjen për episodet e pashikuara në shumicën e ekraneve.", + "BornValueAge": "Lindur: {0} (mosha {1})", + "PreferDirectStreamLiveTV": "Prefero streaming direkt të Live TV", + "PreferDirectStreamLiveTVHelp": "Streaming direkt i Live TV do të reduktojë konsumimin e fuqisë të punës në Serverin Emby por mund të mos kontrollohet lehtë gjatë riprodhimit. Aktivizimi do të bëjë streaming direkt të Live TV kur formati suportohet dhe është brenda parametrave të cilësisë të konfiguruara nga ty. Çaktivizoje për të kontrolluar më lehtë kërkimin video gjatë riprodhimit duke rritur konsumin e fuqisë të punës.", + "HeaderAllRecordings": "Të gjitha Regjistrimet", + "RememberLoginDescription": "Mbasi hyn, mund të përdorësh cilësimet e aplikacionit për të konfiguruar sjelljen e tij në nisje për të kujtuar të dhënat e lidhjes, të hysh si një përdorues specifik, ose të shfaqësh gjithmonë ekranin e lidhjes.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Je i sigurt që dëshiron ta harrosh këtë server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Je gati për të dalë nga Emby?", + "AppExitMenu": "Dil nga menuja", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/sv.json b/modules/common/strings/sv.json new file mode 100644 index 0000000..b9318bb --- /dev/null +++ b/modules/common/strings/sv.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Ersätt befintliga miniatyrbilder för videoförhandsvisningar", + "ReplaceExistingThumbnailImagesHelp": "Alla befintliga miniatyrbilder för videoförhandsvisningar kommer att tas bort och nya kommer att genereras, om detta är aktiverat i bibliotekets inställningar.", + "DateCreated": "Skapat datum", + "CreatedOnValue": "Skapat {0}", + "UpdatedOnValue": "Uppdaterat {0}", + "EmbyLoginTerms": "Emby är utformat för att hjälpa dig att hantera ditt personliga mediebibliotek, till exempel hemvideor och foton. Se våra {0}användarvillkor{1}. Användning av Emby-programvara utgör godkännande av dessa villkor.", + "MessageUnableToConnectToServer": "Vi kunde inte upprätta en anslutning till vald server just nu. Försäkra dig om att den är startad och försök igen.", + "EmbyIntroMessage": "Med Emby kan du enkelt streama videor, musik och bilder till smartphones, plattor eller andra enheter från din Emby Server.", + "HeaderSignInWithConnect": "Logga in med Emby Connect", + "HeaderWelcomeToEmby": "Välkommen till Emby", + "HeaderNewUsers": "Nya användare", + "HeaderPleaseSignIn": "Var god logga in", + "MessageInvalidUser": "Felaktigt användarnamn eller lösenord. Försök igen.", + "MessageUnlockAppWithPurchaseOrSupporter": "Lås upp den här funktionen för en låg engångskostnad eller med en aktiv prenumeration på Emby Premiere.", + "MessageUnlockAppWithSupporter": "Lås upp den här funktionen med en aktiv prenumeration på Emby Premiere.", + "MessageToValidateSupporter": "Om du har en aktiv prenumeration på Emby Premiere, se till att du har ställt in Emby Premiere i kontrollpanelen för Emby Server, som du kommer åt genom att klicka på Emby Premiere i huvudmenyn.", + "ValueSpecialEpisodeName": "Specialavsnitt - {0}", + "HeaderSignIn": "Logga in", + "Share": "Dela", + "Shared": "Delad", + "Info": "Information", + "Add": "Lägg till", + "Speed": "Hastighet", + "PlaybackSpeed": "Uppspelningshastighet", + "Chapters": "Kapitel", + "Password": "Lösenord", + "SavePassword": "Spara lösenord", + "LabelPassword": "Lösenord", + "HeaderResetPassword": "Återställ lösenord", + "Series": "Serier", + "Preview": "Förhandsvisning", + "Submit": "Skicka", + "Never": "Aldrig", + "Table": "Tabell", + "HeaderScheduledTasks": "Schemalagda aktiviteter", + "Plays": "Spelningar", + "LastUsedAddressValue": "Senast använd {0}", + "LabelKeywordType": "Nyckelordstyp", + "HeaderSelectColumns": "Välj kolumner", + "HeaderTopResults": "Toppresultat", + "HeaderPinSidebar": "Fäst sidomeny", + "Collapse": "Komprimera", + "LabelBackgroundVideoPlayback": "Bakgrundsuppspelning", + "BackgroundVideoPlaybackHelp": "Bakgrundsuppspelning gör det möjligt för videon att fortsätta spela även när skärmen är avstängd.", + "AlwaysOn": "Alltid på", + "HeadphonesOrExternalSpeakersConnected": "Hörlurar eller externa högtalare anslutna", + "HeaderKeyboardAndRemote": "Tangentbord och fjärrkontroll", + "NoSelectedItemsSupportOperation": "Inga objekt är markerade som stöder denna åtgärd.", + "NoOperationsForSelectedItems": "Inga åtgärder kan utföras på de valda objekten.", + "UploadOnlyOnWifi": "Ladda bara upp på wifi", + "HeaderFoldersToUpload": "Mappar att ladda upp", + "LabelPasswordConfirm": "Lösenord (bekräfta)", + "HeaderMoveUpInOrder": "Flytta upp i ordningen", + "HeaderDownUpInOrder": "Flytta ner i ordningen", + "LabelUsername": "Användarnamn", + "HeaderAddServer": "Lägg till server", + "HeaderSubtitleOffset": "Förskjutning av undertexter", + "Watching": "Tittar", + "HeaderRemoveFromContinueWatching": "Ta bort från fortsätt titta", + "RemoveThisTitleFromContinueWatching": "Ta bort denna titel från fortsätt titta?", + "HeaderRemoveFromContinueListening": "Ta bort från fortsätt lyssna", + "RemoveThisTitleFromContinueListening": "Vill du ta bort den här titeln från fortsätt lyssna?", + "HeaderIncreaseSubtitleOffset": "Öka undertextsförskjutning", + "HeaderDecreaseSubtitleOffset": "Minska undertextsförskjutning", + "Close": "Stäng", + "HeaderSeeAll": "Visa alla", + "HeaderOpenInNewWindow": "Öppna i nytt fönster", + "LabelEmail": "E-post", + "LabelHost": "Värd", + "LabelHostHelp": "Exempel: 192.168.1.100 eller https://minserver.se", + "LabelPort": "Port", + "Disabled": "Avaktiverad", + "Uninstall": "Avinstallera", + "Enable": "Aktivera", + "AllTuners": "Alla tuners", + "Disable": "Inaktivera", + "NextValue": "Nästa: {0}", + "HeaderNextItem": "Nästa objekt", + "HeaderPreviousItem": "Föregående objekt", + "NoTrailersMessage": "Inga trailrar hittades. För att lägga till trailrar, installera Trailertillägget från {0}Embykatalogen för tillägg{1}.", + "UninstallPluginConfirmation": "Är du säker på att du vill avinstallera detta tillägg?", + "HeaderUninstallPlugin": "Avinstallera tillägg", + "AreYouStillWatching": "Tittar du fortfarande?", + "LabelCurrentPassword": "Nuvarande lösenord", + "LabelNewPassword": "Nytt lösenord", + "LabelNewPasswordConfirm": "Bekräfta nytt lösenord", + "HeaderRemovePassword": "Ta bort lösenord", + "ServerUpdateNeeded": "Denna Emby Server behöver uppdateras. För att ladda ner den senaste versionen, gå till {0}", + "MessageThankYouForConnectSignUp": "Tack för att du registrerar dig med Emby Connect. Ett e-postmeddelande kommer att skickas till din adress med instruktioner om hur du kan bekräfta ditt nya konto. Bekräfta kontot och kom sedan tillbaka hit för att logga in.", + "MessageThankYouForConnectSignUpNoValidation": "Tack för att du registrerar dig för Emby Connect! Du kan nu logga in med dina Emby Connect-uppgifter.", + "ErrorMessagePasswordNotMatchConfirm": "Lösenordet och bekräftelsen måste överensstämma.", + "ErrorMessageUsernameInUse": "Användarnamnet används redan. Välj ett nytt användarnamn och försök igen.", + "ErrorMessageEmailInUse": "Emailadressen används redan. Välj en ny emailadress och försök igen, eller klicka på återställ lösenord.", + "HeaderUpcomingOnTV": "Kommer på direktsänd TV", + "HeaderOtherShowings": "Andra visningar", + "Showings": "Visningar", + "HeaderConnectToServer": "Anslut till server", + "ConnectToServerManually": "Anslut till server manuellt", + "LabelEnterConnectUserNameHelp": "Det här är e-postadressen som du använde för att konfigurera ditt Emby Connect-konto.", + "HeaderSignInError": "Fel vid inloggning", + "HeaderManualLogin": "Manuell inloggning", + "PasswordResetConfirmation": "Är du säker på att du vill återställa lösenordet?", + "ContactAdminToResetPassword": "Kontakta din systemadministratör för att återställa ditt lösenord.", + "ForgotPasswordInNetworkRequired": "Försök att starta återställningen av lösenordet när du befinner dig i ditt lokala nätverk.", + "ForgotPasswordFileCreated": "Följande fil har skapats på din server och innehåller information om hur du går vidare:", + "ForgotPasswordFileExpiration": "Pinkoden för återställning går ut {0}.", + "InvalidForgotPasswordPin": "Pinkoden har gått ut eller så är den felaktig. Försök igen.", + "PasswordResetForUsers": "Lösenorden har tagits bort från följande användare. För att logga in, använd ett tomt lösenord.", + "HeaderForgotPassword": "Glömt lösenord?", + "ForgotPasswordUsernameHelp": "Lämna detta tomt om du inte kommer ihåg ditt användarnamn.", + "HeaderPasswordReset": "Återställ lösenord", + "AttributeNew": "Ny", + "Done": "Klar", + "HeaderResetToDefault": "Återställ till standard", + "Deinterlacing": "Avflätning", + "HeaderBurningInSubtitles": "Bränner in undertexter", + "Premiere": "Premiär", + "LabelPinCode": "PIN-kod", + "LabelLocalNetworkPinCode": "PIN-kod för lokalt nätverk", + "LabelLocalNetworkPasswordMode": "Inloggningsmetod för lokalt nätverk", + "RequirePasswordInLocalNetwork": "Kräv ett lösenord på det lokala nätverket", + "NoPasswordInLocalNetwork": "Kräv inget lösenord på det lokala nätverket", + "PinCodeInLocalNetwork": "Tillåt en PIN-kod på det lokala nätverket", + "LocalNetworkPasswordModeHelp": "Välj inloggningsmetod för enheter på samma nätverk som din Emby Server.", + "HeaderLocalNetworkAccess": "Lokal nätverksåtkomst", + "Live": "Direkt", + "Reset": "Återställ", + "Repeat": "Repris", + "Track": "Spår", + "Tracks": "Spår", + "HeaderCameraUpload": "Kamerauppladdning", + "TrackCount": "{0} spår", + "ItemCount": "{0} objekt", + "NumberChannelsValue": "{0} kanaler", + "HeaderLatestMusic": "Senaste musiken", + "HeaderLatestAudioBooks": "Senaste ljudböckerna", + "HeaderLatestDownloadedVideos": "Senaste nedladdade videor", + "HeaderRecentlyPlayed": "Nyligen spelat", + "Recent": "Senast", + "HeaderFrequentlyPlayed": "Ofta spelat", + "HeaderMoreLikeThis": "Liknande titlar", + "HeaderMoreLikeThisOnLiveTV": "Liknande på direktsänd TV", + "OriginalAirDateValue": "Ursprungligt sändningsdatum: {0}", + "EndsAtValue": "Slutar kl. {0}", + "Date": "Datum", + "AirDate": "Sändningsdatum", + "Played": "Spelad", + "Daily": "Dagligen", + "Weekly": "Varje vecka", + "RequireHashMatch": "Kräv hash-matchning", + "RequireHashMatchHelp": "Krav på hash-matchning filtrerar undertexterna så att enbart de undertexter som är testade med den exakta videofilen används. Avaktivera detta för att öka antalet möjliga undertexter, men det ökar också risken för felaktiga undertexter.", + "SearchForForcedSubtitlesOnly": "Enbart tvingande undertexter", + "SearchForForcedSubtitlesOnlyHelp": "Om tvingade undertexter krävs begränsas resultaten till sådana som är taggade som utländskt språk.", + "LastEpisodeDateAdded": "Datum då senaste avsnittet lades till", + "LastEpisodeDateAired": "Datum då senaste avsnittet släpptes", + "LabelPlaystate": "Spelläge", + "Studio": "Studio", + "Tag": "Tagg", + "EpisodeTitle": "Avsnittstitel", + "Audio": "Ljud", + "Video": "Video", + "Subtitle": "Undertext", + "Image": "Bild", + "CopyStream": "Kopiera originalströmmen", + "LabelAudioLayout": "Ljudlayout", + "LabelAudioCodec": "Ljudkodek", + "LabelAudioLanguage": "Ljudspråk", + "LabelSubtitleLanguage": "Undertextspråk", + "LabelVideoCodec": "Videokodek", + "LabelSubtitleCodec": "Undertextkodek", + "LabelParentalRating": "Åldersgräns", + "BecauseYouLikeValue": "Eftersom du gillar {0}", + "BecauseYouWatchedValue": "Eftersom du har sett {0}", + "DirectedByValue": "Regisserad av {0}", + "StarringValue": "Med {0}", + "Invitations": "Inbjudningar", + "ActorAsRole": "som {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Gruppera objekt i samlingar", + "GroupItemsIntoCollectionsHelp": "Gruppera objekt baserat på samlingar som de har lags till i. Aktivering av vissa filter eller sortering kan inaktivera detta automatiskt.", + "GroupItemsIntoTags": "Gruppera objekt med taggar", + "GroupItemsIntoTagsHelp": "Kategorisera objekt baserat på de taggar de har tilldelats. Att aktivera vissa filter eller sorteringsalternativ kan automatiskt inaktivera detta.", + "User": "Användare", + "Access": "Åtkomst", + "Users": "Användare", + "Library": "Bibliotek", + "Devices": "Enheter", + "Cancel": "Avbryt", + "Restart": "Starta om", + "Shutdown": "Stäng av", + "Logs": "Loggfiler", + "Visibility": "Synlighet", + "Notifications": "Aviseringar", + "SendTestNotification": "Skicka testmeddelande", + "NotificationSent": "Meddelandet har skickats", + "DeleteNotificationConfirmation": "Är du säker på att du vill ta bort det här meddelandet?", + "DeleteNotification": "Ta bort meddelande", + "AddNotification": "Lägg till meddelande", + "EditNotification": "Redigera meddelande", + "LimitUserEventsTo": "Begränsa användarhändelser till", + "LimitLibraryEventsTo": "Begränsa bibliotekshändelser till", + "LimitDeviceEventsTo": "Begränsa enhetshändelser till", + "ForAdditionalNotificationOptions": "Ytterligare meddelandetjänster kan installeras av serveradministratören från Embys {0}tilläggskatalog{1}.", + "Plugins": "Tillägg", + "Systems": "System", + "Server": "Server", + "Dashboard": "Kontrollpanel", + "PlayOnAnotherDevice": "Spela på en annan enhet", + "HeaderConnectionHelp": "Hjälp", + "AccessRestrictedTryAgainLater": "Åtkomst är för närvarande begränsad. Försök igen senare.", + "ButtonGotIt": "Ok", + "RememberMe": "Kom ihåg mig", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Administrera Emby Server", + "ShutdownServer": "Stäng av Emby Server", + "RestartServer": "Starta om Emby Server", + "RecordingCancelled": "Inspelning avbruten", + "SeriesCancelled": "Automatisk inspelning har tagits bort", + "Recording": "Inspelning", + "SeriesRecording": "Serieinspelning", + "RecordingScheduled": "Inspelning schemalagd", + "SeriesRecordingScheduled": "Automatisk inspelning aktiverad", + "HeaderNewRecording": "Ny inspelning", + "HeaderWakeServer": "Väck server", + "AttemptingWakeServer": "Försöker väcka servern. Vänta....", + "WakeServerSuccess": "Lyckades!", + "HeaderCustomizeHomeScreen": "Anpassa hemskärm", + "WakeServerError": "Wake On Lan-paket skickades till din enhet men vi kunde inte ansluta till Emby Server. Din enhet kan behöva lite mer tid för att vakna eller så körs inte Emby Server på enheten.", + "Days": "Dagar", + "Network": "Nätverk", + "Networks": "Nätverk", + "SortByValue": "Sortera efter {0}", + "HeaderSortBy": "Sortera efter", + "HeaderPhotoAlbums": "Fotoalbum", + "Photos": "Foton", + "HeaderAppearsOn": "Visas på", + "List": "Lista", + "HeaderRecordSeries": "Spela in serie", + "HeaderCinemaMode": "Biointros", + "Conversions": "Konverteringar", + "Downloads": "Nedladdningar", + "HeaderManageDownloads": "Hantera nedladdningar", + "InternalStorage": "Intern lagring", + "ExternalStorage": "Extern lagring", + "UploadToFollowingServers": "Ladda upp till servrar", + "UploadingNumItems": "Laddar upp {0} av {1}", + "DownloadNumItems": "Laddar ner {0} av {1}", + "HeaderSampleRate": "Samplingsfrekvens", + "HeaderReferenceFrames": "Referensbildrutor", + "HeaderBitDepth": "Bitdjup", + "HeaderPixelFormat": "Pixelformat", + "Profile": "Profil", + "Bitrate": "Bithastighet", + "Expand": "Expandera", + "Container": "Behållare", + "Format": "Format", + "Path": "Sökväg", + "Size": "Storlek", + "Resolution": "Upplösning", + "HeaderCodecTag": "Kodektagg", + "Framerate": "Bildfrekvens", + "Interlaced": "Sammanflätad", + "Anamorphic": "Anamorfisk", + "Level": "Nivå", + "Timestamp": "Tidsstämpel", + "Language": "Språk", + "Codec": "Kodek", + "Stream": "Ström", + "HeaderExtradata": "Extradata", + "HeaderHardwareAcceleratedTranscoding": "Hårdvaruaccelererad transkodning", + "HeaderHardwareAcceleratedTranscodingDescription": "Dra nytta av din server-GPU. Emby har den mest avancerade och snabbaste hårdvaruaccelerationen i branschen.", + "HeaderOfflineDownloads": "Offlinemedia", + "AndMuchMoreExclamation": "och mycket mer!", + "HeaderOfflineDownloadsDescription": "Ladda ner media till dina enheter för uppspelning när du är offline.", + "LiveTvFeatureDescription": "Streama direktsänd TV till vilken Emby-app du vill, med en kompatibel mottagare, installerad och konfigurerad på din Emby Server.", + "DvrFeatureDescription": "Schemalägg individuella inspelningar eller spela in alla kommande avsnitt automatiskt, och mer, med Emby DVR.", + "CinemaModeFeatureDescription": "Biointros ger dig en bioupplevelse med trailrar och anpassade vinjetter före varje film.", + "HeaderFreeApps": "Gratis Embyappar", + "FreeAppsFeatureDescription": "Få fri tillgång till Embyappar för dina enheter.", + "HeaderBecomeProjectSupporter": "Skaffa Emby Premiere", + "HeaderViewServerInfo": "Visa serverinformation", + "PlaybackTvModeRequiresEmbyPremiere": "Mediauppspelning i TV-läge kräver en aktiv prenumeration på {0}Emby Premiere{1}.", + "FeatureRequiresEmbyPremiere": "Den här funktionen kräver en aktiv prenumeration på {0}Emby Premiere{1}.", + "HeaderConvertYourRecordings": "Konvertera dina inspelningar", + "Record": "Spela in", + "Save": "Spara", + "Edit": "Inställningar", + "HeaderSavePlaylist": "Spara spellista", + "Latest": "Senaste", + "Download": "Ladda ner", + "Downloaded": "Nedladdade", + "Converted": "Konverterad", + "RemoveFromHistory": "Ta bort från historik", + "ConfirmRemoveFromHistory": "Ta bort detta objekt från historiken?", + "Downloading": "Laddar ner", + "Advanced": "Avancerat", + "LinkedToEmbyConnect": "Länkad till Emby Connect", + "Delete": "Ta bort", + "Both": "Båda", + "LabelChannelDisplay": "Kanalvisning", + "HeaderDeleteItem": "Ta bort objekt", + "HeaderDeleteUser": "Ta bort användare", + "DeleteItemConfirmation": "Är du säker på att du vill ta bort {0}?", + "DeleteUserConfirmation": "Är du säker på att du vill ta bort användaren {0}?", + "DeleteUsersConfirmation": "Är du säker på att du vill radera {0} användare?", + "HeaderDeleteDevice": "Ta bort enhet", + "DeleteDeviceConfirmation": "Är du säker på att du vill ta bort den här enheten? Den kommer att återkomma nästa gång en användare loggar in med den.", + "ConfirmDeleteItem": "Tar du bort det här objektetet så tas det bort från både ditt filsystem och mediabibliotek.", + "FollowingFilesWillBeDeleted": "Följande filer och mappar kommer att tas bort:", + "AreYouSureToContinue": "Är du säker på att du vill fortsätta?", + "Refresh": "Uppdatera", + "RefreshingMetadataDots": "Uppdaterar metadata...", + "ScanningLibraryFilesDots": "Skannar biblioteksfiler...", + "HeaderFavoritesThenByChannelNumber": "Favoriter, därefter enligt kanalnummer", + "HeaderAddToCollection": "Lägg till i samling", + "HeaderFavoritesThenByTitle": "Favoriter, därefter enligt titel", + "HeaderFavoritesThenByDefault": "Favoriter, därefter enligt förvald kanalorder", + "HeaderDefaultChannelOrder": "Standardkanalordning", + "HeaderAddToFavorites": "Lägg till i favoriter", + "HeaderRemoveFromFavorites": "Ta bort från favoriter", + "Favorited": "Markerad som favorit", + "Unfavorited": "Avmarkerad som favorit", + "HeaderNewCollection": "Ny samling", + "HeaderNewPlaylist": "Ny spellista", + "AllCollections": "Alla samlingar", + "AllPlaylists": "Alla spellistor", + "Create": "Skapa", + "HeaderAddedToPlaylist": "Tillagd i spellistan", + "HeaderAddedToCollection": "Tillagd i samlingen", + "OneItemAddedTo": "1 objekt har lagts till i \"{0}\".", + "ItemsAddedTo": "{0} objekt har lagts till i \"{1}\".", + "HeaderAddedToPlayQueue": "Tillagd i spelkö", + "HeaderPlayingNext": "Spelar nästa", + "Help": "Hjälp", + "HeaderGetHelp": "Få hjälp", + "LabelTVDisplayMode": "Aktivera TV-visningsläge", + "Desktop": "Skrivbord", + "Mobile": "Mobil / Platta", + "Navigation": "Navigering", + "HeaderVideoPlayback": "Videouppspelning", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Säsonger", + "OneTrack": "1 spår", + "OneSeason": "1 säsong", + "Libraries": "Bibliotek", + "NumberSeasonsValue": "{0} säsonger", + "TVDisplayModeHelp": "Optimera användargränssnittet på denna enhet för visning på en TV och styrning med en fjärrkontroll. Detta rekommenderas generellt inte om din primära inmatningsmetod är mus eller pekskärm.", + "LabelDisplayLanguage": "Visningsspråk", + "LabelDisplayLanguageHelp": "Att översätta Emby är ett pågående projekt.", + "LearnHowYouCanContribute": "Se hur du kan hjälpa till.", + "NewCollectionHelp": "Samlingar gör det möjligt att skapa personanpassade grupperingar av filmer eller annat innehåll.", + "SearchForCollectionInternetMetadata": "Sök efter grafik och metadata på internet", + "DisplayMissingEpisodesWithinSeasons": "Visa saknade avsnitt i säsonger", + "DisplayMissingEpisodesWithinSeasonsHelp": "Detta måste också vara aktiverat för TV-bibliotek på Emby Server.", + "EnableThemeSongs": "Spela signaturmelodier", + "EnableBackdrops": "Aktivera bakgrunder", + "EnableThemeSongsHelp": "Om aktiverat spelas signaturmelodier upp vid bläddring i biblioteket.", + "EnableBackdropsHelp": "Om aktiverat visas bakgrundsbilder vid bläddring i biblioteket.", + "EnableThemeVideos": "Spela tema-videor", + "EnableThemeVideosHelp": "Visar tema-videor i bakgrunden vid bläddring i biblioteket.", + "RunAtStartup": "Kör vid uppstart", + "ServerStartup": "Serverstart", + "EmbyServerOnXHasStarted": "Emby Server på {0} har startat.", + "LabelScreensaver": "Skärmsläckare", + "LabelSoundEffects": "Ljudeffekter", + "LabelName": "Namn", + "NewCollectionNameExample": "Exempel: Star Wars-samling", + "MessageItemsAdded": "Objekt tillagda.", + "OptionNew": "Ny...", + "LabelPlaylist": "Spellista", + "AddToPlaylist": "Lägg till i spellista", + "HeaderAddToPlaylist": "Lägg till i spellista", + "Subtitles": "Undertexter", + "LabelTheme": "Tema", + "LabelSettingsTheme": "Tema för inställningar", + "LabelThemeAccentColor": "Accentfärg", + "ThemeAccentColorDescription": "Styr färgen på viktiga indikatorer, ikoner och text.", + "SearchForSubtitles": "Sök efter undertexter", + "LabelLanguage": "Språk", + "Search": "Sök", + "NoSubtitleSearchResultsFound": "Inga resultat hittades. Har du ställt in {0}nedladdning av undertexter{1}?", + "NoLyricsSearchResultsFound": "Inga resultat hittades. Har du konfigurerat {0}nedladdning av låttexter{1}?", + "Lyrics": "Låttext", + "SearchForLyrics": "Sök efter låttext", + "Finish": "Slutför", + "File": "Fil", + "Exit": "Avsluta", + "Sleep": "Viloläge", + "Setup": "Sätt upp", + "MessageAreYouSureDeleteSubtitles": "Är du säker på att du vill ta bort den här undertextfilen?", + "ConfirmDeletion": "Bekräfta radering", + "MySubtitles": "Mina undertexter", + "MessageDownloadQueued": "Nedladdning köad.", + "HeaderEditSubtitles": "Hantera undertexter", + "UnlockGuide": "Upplåsnings-vägledning", + "HeaderRefreshMetadata": "Uppdatera metadata", + "HeaderRefreshAllMetadata": "Uppdatera all metadata", + "ReplaceExistingImages": "Skriv över befintliga bilder", + "ReplaceExistingImagesHelp": "Alla befintliga bilder kommer att raderas och nya kommer att laddas ner baserat på inställningarna för biblioteket. I vissa fall kan detta resultera i färre tillgängliga bilder än tidigare.", + "ReplaceAllMetadata": "Ersätt all metadata", + "SearchForMissingMetadata": "Sök efter saknad metadata", + "LabelRefreshMode": "Uppdateringsläge", + "NoItemsFound": "Inga objekt hittades.", + "HeaderSaySomethingLike": "Säg något som...", + "ButtonTryAgain": "Försök igen", + "HeaderYouSaid": "Du sa...", + "MessageWeDidntRecognizeCommand": "Ledsen, men vi känner inte igen det kommandot.", + "MessageIfYouBlockedVoice": "Om du nekade tillgång för röståtkomst till appen så behöver du konfigurerara om innan du försöker igen.", + "ValueDiscNumber": "Skiva {0}", + "Unrated": "Inte betygsatt", + "Favorite": "Favorit", + "Like": "Gilla", + "Dislike": "Ogilla", + "RefreshDialogHelp": "Metadata uppdateras baserat på inställningar och metadataleverantörer som är aktiverade i biblioteksinställningarna.", + "Open": "Öppna", + "Play": "Spela", + "Pause": "Pausa", + "HeaderPlayQueue": "Uppspelningskö", + "HeaderAddToPlayQueue": "Lägg till i spelkö", + "Shuffle": "Blanda", + "Identify": "Identifiera", + "HeaderRemoveIdentification": "Ta bort identifiering", + "ResetMetadataConfirmation": "Är du säker på att du vill återställa all metadata?", + "HeaderEditMetadata": "Hantera metadata", + "Convert": "Konvertera", + "Resume": "Återuppta", + "HeaderInstantMix": "Snabbmix", + "HeaderGoToItem": "Gå till objekt", + "HeaderGoToSeason": "Gå till säsong", + "HeaderGoToSeries": "Gå till serie", + "HeaderGoToAlbum": "Gå till album", + "HeaderGoToArtist": "Gå till artist", + "HeaderPlayAll": "Spela alla", + "PictureInPicture": "Bild-i-bild", + "Fullscreen": "Fullskärm", + "ExitFullscreen": "Avsluta fullskärm", + "Rewind": "Spola tillbaka", + "FastForward": "Spola framåt", + "Remove": "Ta bort", + "Rename": "Ändra namn", + "Queue": "Kö", + "QueueAllFromHere": "Köa alla fr o m här", + "PlayAllFromHere": "Spela upp alla fr o m här", + "PlayFromBeginning": "Spela från början", + "FromBeginning": "Från början", + "ResumeAt": "Återuppta från {0}", + "HeaderRemoveFromPlaylist": "Ta bort från spellista", + "HeaderRemoveFromPlayQueue": "Ta bort från spelkö", + "HeaderRemoveFromCollection": "Ta bort från samling", + "Sort": "Sortera", + "Trailer": "Trailer", + "SelectNone": "Välj ingen", + "SelectAll": "Välj alla", + "HeaderMarkPlayed": "Markera som spelad", + "HeaderMarkUnplayed": "Markera som ospelad", + "HeaderGroupVersions": "Gruppera versioner", + "PleaseSelectTwoItems": "Välj minst två objekt.", + "HeaderConfirmRecordingCancellation": "Bekräfta avbrytning av inspelning", + "MessageConfirmRecordingCancellation": "Avbryt inspelning?", + "Album": "Album", + "AlbumArtist": "Albumartist", + "Error": "Fel", + "VoiceInput": "Röstinspelning", + "LabelContentType": "Innehållstyp", + "LabelPath": "Sökväg", + "Playlists": "Spellistor", + "LabelTitle": "Titel", + "LabelOriginalTitle": "Originaltitel", + "LabelSortTitle": "Sorteringstitel", + "LabelDateAdded": "Inlagd den", + "DateAdded": "Inlagd den", + "DateModified": "Datum ändrat", + "DatePlayed": "Spelad datum", + "DateLastActive": "Datum senast aktiv", + "ConfigureDateAdded": "Konfigurera hur tillagt datum bestäms i kontrollpanelen för Emby Server under biblioteksinställningar", + "LabelStatus": "Status", + "LabelArtistsHelp": "Separera flera med semikolon ;", + "HeaderAlbumArtists": "Albumartister", + "LabelAlbumArtists": "Albumartist", + "LabelAlbum": "Album", + "Artist": "Artist", + "Artists": "Artister", + "ImdbRating": "IMDb-betyg", + "CommunityRating": "Användarbetyg", + "LabelCommunityRating": "Användarbetyg", + "LabelCriticRating": "Kritikerbetyg", + "CriticRating": "Kritikerbetyg", + "LabelWebsite": "Webbplats", + "Tagline": "Tagline", + "LabelOverview": "Översikt", + "LabelShortOverview": "Kort översikt", + "LabelReleaseDate": "Utgivningsdatum", + "LabelPlaceOfBirth": "Födelseort", + "Aired": "Sändes", + "LabelAirDays": "Sändningsdagar", + "LabelAirTime": "Sändningstid", + "LabelRuntimeMinutes": "Speltid (minuter)", + "LabelCustomRating": "Anpassad åldersgräns", + "LabelOriginalAspectRatio": "Ursprungligt bildförhållande", + "Label3DFormat": "3D-format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} nedladdning(ar)", + "HashMatch": "Hash-matchning", + "EnableExternalVideoPlayers": "Aktivera externa videospelare", + "EnableExternalVideoPlayersHelp": "En meny för extern spelare kommer att visas när videouppspelningen startar.", + "HeaderSpecialEpisodeInfo": "Information om specialavsnitt", + "LabelAirsDuringSeason": "Sänds under säsong", + "LabelAirsAfterSeason": "Sänds efter säsong", + "LabelAirsBeforeEpisode": "Sänds före avsnitt", + "HeaderExternalIds": "Externa ID-nr", + "HeaderDisplaySettings": "Visningsinställningar", + "PlaylistOrder": "Sortering för spellista", + "CollectionOrder": "Sortering för samlingar", + "LabelDisplayOrder": "Visningsordning", + "LabelFileOrder": "Filsortering", + "Display": "Visning", + "Countries": "Länder", + "Genres": "Genrer", + "Studios": "Studior", + "Tags": "Taggar", + "Links": "Länkar", + "Movie": "Film", + "Program": "Program", + "Channel": "Kanal", + "Episode": "Avsnitt", + "Season": "Säsong", + "HeaderMetadataSettings": "Metadatainställningar", + "People": "Personer", + "Number": "Nummer", + "Lock": "Lås", + "HeaderScreenLocked": "Skärm låst", + "HeaderUnlockControls": "Lås upp kontroller", + "HeaderTapToUnlock": "Tryck för att låsa upp", + "LabelMetadataDownloadLanguage": "Föredraget språk för nedladdning av metadata", + "LabelImageDownloadLanguage": "Föredraget språk för nedladdning av bilder", + "LabelLockItemToPreventChanges": "Lås det här objektet för att förhindra ändringar", + "LockThisField": "Lås det här fältet för att förhindra ändringar när du uppdaterar metadata", + "MessageLeaveEmptyToInherit": "Lämna tomt för att ärva inställningarna från överordnat objekt, eller använda globalt förval.", + "LabelCountry": "Land", + "LabelCertificationCountry": "Certifieringsland", + "CertificationCountryHelp": "Detta kommer att påverka vilket innehållsklassificeringssystem som används.", + "LabelDynamicExternalId": "{0}-ID", + "LabelBirthYear": "Födelseår", + "LabelBirthDate": "Födelsedatum", + "LabelDeathDate": "Död", + "LabelEndDate": "Slutdatum", + "LabelSeasonNumber": "Säsongsnummer", + "LabelEpisodeNumber": "Avsnittsnummer", + "LabelTrackNumber": "Spårnummer", + "LabelNumber": "Nummer", + "LabelDiscNumber": "Skivnummer", + "LabelParentNumber": "Föräldernummer", + "SortName": "Sorteringstitel", + "OriginalTitle": "Originaltitel", + "ReleaseDate": "Utgivningsdatum", + "Continuing": "Pågående", + "Ended": "Avslutad", + "HeaderEnabledFields": "Aktiverade fält", + "HeaderEnabledFieldsHelp": "Bocka ur ett fält för att låsa det och förhindra att dess data ändras.", + "Backdrops": "Bakgrunder", + "Images": "Bilder", + "Runtime": "Speltid", + "ProductionLocations": "Produktionsplatser", + "BirthLocation": "Födelseort", + "ParentalRating": "Åldersgräns", + "PlayCount": "Antal spelningar", + "Name": "Namn", + "Overview": "Översikt", + "LabelType": "Typ", + "LabelPersonRole": "Roll", + "LabelPersonRoleHelp": "Exempel: glassbilsförare", + "Actor": "Skådespelare", + "Composers": "Kompositörer", + "Composer": "Kompositör", + "Director": "Regissör", + "GuestStar": "Gästskådespelare", + "Producer": "Producent", + "Writer": "Manusförfattare", + "MessageNoSyncJobsFound": "Inga nedladdningar hittades. Skapa nedladdningsjobb med hjälp av nedladdningsknapparna som finns i appen.", + "MessageNoDownloadsFound": "Inga offline-nedladdningar. Ladda ner media offline genom att klicka på ladda ner i appen.", + "InstallingPackage": "Installerar {0}", + "PackageInstallCompleted": "Installationen av {0} slutfördes.", + "PackageInstallFailed": "Installationen av {0} misslyckades.", + "PackageInstallCancelled": "Installationen av {0} avbröts.", + "SeriesYearToPresent": "{0} - idag", + "OneDevice": "1 enhet", + "DeviceCountValue": "{0} enheter", + "OneLog": "1 logg", + "LogCountValue": "{0} loggar", + "OneVote": "1 röst", + "VoteCountValue": "{0} röster", + "OneLike": "1 gillar", + "LikeCountValue": "{0} gillar", + "OneUser": "1 användare", + "UserCountValue": "{0} användare", + "OneLibrary": "1 bibliotek", + "LibraryCountValue": "{0} bibliotek", + "ValueOneItem": "1 objekt", + "ValueOneEpisode": "1 avsnitt", + "ValueEpisodeCount": "{0} avsnitt", + "Albums": "Album", + "Song": "Sång", + "Songs": "Låtar", + "Authors": "Författare", + "Books": "Böcker", + "AudioBooks": "Ljudböcker", + "HeaderAudioBooks": "Ljudböcker", + "HeaderAudioBook": "Ljudbok", + "HeaderIdentifyItemHelp": "Ange ett eller flera sökkriterier. Ta bort kriterier för att få fler träffar.", + "PleaseEnterNameOrId": "Ange ett namn eller externt id.", + "MessageItemSaved": "Objektet har sparats.", + "SearchResults": "Sökresultat", + "ServerNameIsRestarting": "Emby Server - {0} startar om.", + "ServerNameIsShuttingDown": "Emby Server - {0} stängs ner.", + "HeaderDeleteItems": "Ta bort objekt", + "ConfirmDeleteItems": "Tar du bort dessa objektet så tas dem bort från både ditt filsystem och mediabibliotek.", + "PleaseRestartServerName": "Starta om Emby Server på {0}", + "ConvertingDots": "Konverterar...", + "LabelSyncNoTargetsHelp": "Det verkar som att du för närvarande inte har några appar som stöder offline-nedladdning.", + "DownloadingDots": "Laddar ner...", + "LearnMore": "Läs mer", + "LabelBitrateMbps": "Bithastighet (Mbps)", + "ConvertUnwatchedVideosOnly": "Konvertera enbart videor som inte har spelats upp", + "SyncUnwatchedVideosOnly": "Ladda enbart ner videor som inte har spelats upp", + "ConvertUnwatchedVideosOnlyHelp": "Enbart videor som inte har markerats som spelade kommer att konverteras.", + "SyncUnwatchedVideosOnlyHelp": "Endast videor som inte är markerade som helt spelade kommer att laddas ner. Videor kommer att tas bort från enheten när de är helt spelade.", + "AutomaticallySyncNewContent": "Ladda ner nytt innehåll automatiskt", + "AutomaticallySyncNewContentHelp": "Nytt innehåll som läggs till i den här mappen kommer att laddas ner automatiskt till enheten.", + "AutomaticallyConvertNewContent": "Konvertera nytt innehåll automatiskt", + "AutomaticallyConvertNewContentHelp": "Nytt innehåll som läggs till i denna mapp kommer att konverteras automatiskt.", + "LabelItemLimit": "Max antal objekt", + "ConvertItemLimitHelp": "(valfritt) Ange en gräns för hur många objekt som kommer att konverteras.", + "DownloadItemLimitHelp": "(valfritt) Ange en gräns för hur många objekt som kommer att laddas ner.", + "PleaseSelectDeviceToSyncTo": "Välj en enhet att ladda ner till.", + "Screenshots": "Skärmbilder", + "MoveRight": "Flytta höger", + "MoveLeft": "Flytta vänster", + "HeaderUploadNewImage": "Ladda upp ny bild", + "HeaderDeleteImage": "Ta bort bild", + "ConfirmDeleteImage": "Ta bort bild?", + "HeaderEditImages": "Hantera bilder", + "Settings": "Inställningar", + "ShowIndicatorsFor": "Visa indikatorer", + "Episodes": "Avsnitt", + "Programs": "Program", + "HeaderCastCrew": "Roller och team", + "DvrSubscriptionRequired": "Direktsänd TV & DVR kräver en aktiv prenumeration på {0}Emby Premiere{1}.", + "HeaderCancelRecording": "Avbryt inspelning", + "HeaderKeepRecording": "Fortsätt spela in", + "HeaderCancelSeries": "Avsluta autoinspelning", + "HeaderKeepSeries": "Behåll autoinspelning", + "HeaderLearnMore": "Läs mer", + "SeriesSettings": "Inställningar för autoinspelning", + "HeaderRecordingOptions": "Inspelningsalternativ", + "HeaderDoNotRecord": "Spela inte in", + "HeaderSeriesOptions": "Inställningar för autoinspelning", + "Layout": "Layout", + "Channels": "Kanaler", + "ChannelNameOnly": "Enbart på {0}", + "Anytime": "När som helst", + "AnyLanguage": "Vilket språk som helst", + "AroundTime": "Runt {0}", + "HeaderLatestMovies": "Senaste filmerna", + "All": "Alla", + "Stop": "Stopp", + "AllChannels": "Vilken kanal som helst", + "NewEpisodesOnly": "Enbart avsnitt markerade som nya", + "AllEpisodes": "Alla avsnitt", + "LabelStartWhenPossible": "Börja spela in före angiven starttid (när möjligt) med", + "LabelStopWhenPossible": "Fortsätt spela in efter angiven stopptid (när möjligt) med", + "MinutesBefore": "minut(er)", + "MinutesAfter": "minut(er)", + "SkipEpisodesAlreadyInMyLibrary": "Spela inte in avsnitt som redan finns i biblioteket", + "SkipEpisodesAlreadyInMyLibraryHelp": "Avsnitt kommer att jämföras med säsongs- och avsnittsnummer, när det finns.", + "LabelKeepUpTo": "Behåll upp till (äldre tas bort)", + "AsManyAsPossible": "Så många som möjligt", + "DefaultErrorMessage": "Ett fel uppstod vid begäran. Försök igen senare.", + "UntilIDelete": "Tills jag tar bort", + "UntilSpaceNeeded": "Tills utrymme behövs", + "Categories": "Kategorier", + "Sports": "Sport", + "News": "Nyheter", + "Movies": "Film", + "Music": "Musik", + "Kids": "Barn", + "MoreFromValue": "Mer från {0}", + "DiedValue": "Död: {0}", + "BornValue": "Född: {0}", + "EnableColorCodedBackgrounds": "Aktivera färgade bakgrunder anpassat efter kategori", + "SortChannelsBy": "Sortera kanaler efter", + "ChannelNumber": "Kanalnummer", + "HeaderBenefitsEmbyPremiere": "Fördelar med Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Njut av en minuts uppspelning. Tack för att du testar Emby.", + "HeaderTryPlayback": "Testa uppspelning", + "HowDidYouPay": "Hur betalade du?", + "IHaveEmbyPremiere": "Jag har Emby Premiere", + "IPurchasedThisApp": "Jag köpte den här appen", + "ButtonRestorePreviousPurchase": "Återställ köp", + "ButtonUnlockWithPurchase": "Lås upp med köp", + "ButtonUnlockPrice": "Lås upp {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere månadsvis, {0}", + "HeaderAlreadyPaid": "Redan betalat?", + "ButtonPlayOneMinute": "Spela en minut", + "PlaceFavoriteChannelsAtBeginning": "Placera favoritkanaler i början", + "HeaderUnlockFeature": "Lås upp funktion", + "MessageDidYouKnowCinemaMode": "Visste du att, med Emby Premiere så kan du utöka dina upplevelser med funktioner som Biointros?", + "HeaderPlayMyMedia": "Spela min media", + "HeaderDiscoverEmbyPremiere": "Upptäck Emby Premiere", + "HeaderNowPlaying": "Spelas nu", + "Items": "Objekt", + "AppName": "App-namn", + "OneChannel": "En kanal", + "ConfirmRemoveDownload": "Ta bort nedladdning?", + "ConfirmRemoveItem": "Ta bort objekt?", + "RemoveDownload": "Ta bort nedladdning", + "ConfirmCancelConversion": "Avbryt konvertering?", + "CancelConversion": "Avbryt konvertering", + "KeepDownload": "Behåll nedladdning", + "AddedOnValue": "Tillagd {0}", + "RemovingFromDevice": "Tar bort från enhet", + "KeepOnDevice": "Behåll på enhet", + "CancelDownload": "Avbryt nedladdning", + "SyncJobItemStatusReadyToTransfer": "Redo att föra över", + "SyncJobItemStatusSyncedMarkForRemoval": "Tar bort från enhet", + "SyncJobItemStatusQueued": "Köad", + "SyncJobItemStatusConverting": "Konverterar", + "SyncJobItemStatusTransferring": "För över", + "SyncJobItemStatusSynced": "Nedladdad", + "Failed": "Misslyckad", + "SyncJobItemStatusRemovedFromDevice": "Borttagen från enhet", + "Cancelled": "Avbruten", + "Retry": "Försök igen", + "Continue": "Fortsätt", + "ContinueInSecondsValue": "Fortsätt om {0} sekunder.", + "HeaderRemoteControl": "Fjärrstyrning", + "Disconnect": "Koppla bort", + "EnableDisplayMirroring": "Aktivera skärmspegling", + "RemoteAccess": "Fjärråtkomst", + "HeaderPlayOn": "Spela på", + "Quality": "Kvalitet", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "För att återställa ditt tidigare köp, se till att du är inloggad på enheten med samma Google- (eller Amazon-) konto som ursprungligen gjorde köpet. Kontrollera att appbutiken är aktiverad och inte begränsad av några föräldrakontroller och se till att du har en aktiv internetanslutning. Du behöver bara göra detta en gång för att återställa ditt tidigare köp.", + "HeaderAspectRatio": "Bildförhållande", + "Original": "Original", + "Fill": "Fyll", + "Cover": "Omslag", + "MessageNoServersAvailableToConnect": "Inga servrar finns tillgängliga att ansluta till. Om du har blivit inbjuden till att dela en server, se till att acceptera inbjudan nedan eller klicka på länken i e-postmeddelandet.", + "MessagePlayAccessRestricted": "Uppspelning av detta innehåll är för närvarande begränsat. Kontakta din Emby Server-administratör för mer information.", + "Accept": "Acceptera", + "Reject": "Neka", + "Connect": "Anslut", + "HeaderMyMedia": "Min media", + "HeaderMyMediaSmall": "Min media (liten)", + "LatestFromLibrary": "Senaste i {0}", + "HeaderLatestEpisodes": "Senaste avsnitten", + "ContinuePlaying": "Fortsätt spela", + "ContinueWatching": "Fortsätt titta", + "HeaderLatestChannelMedia": "Senaste för kanaler", + "HeaderContinueWatching": "Fortsätt titta", + "HeaderContinueListening": "Fortsätt lyssna", + "HeaderActiveRecordings": "Pågående inspelningar", + "HeaderLatestRecordings": "Senaste inspelningarna", + "LabelConvertTo": "Konvertera till", + "LabelDownloadTo": "Ladda ner till", + "HeaderDownloadToDots": "Ladda ner till...", + "Next": "Nästa", + "LabelSource": "Källa", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "Alla språk", + "Previous": "Föregående", + "HeaderNextUp": "Nästa på tur", + "HeaderPlayNextUp": "Spela upp nästa på tur", + "HeaderLatestFrom": "Senaste från {0}", + "LabelHomeScreenSectionValue": "Sektion {0}", + "PasswordResetComplete": "Lösenordet har återställts.", + "PasswordSaved": "Lösenordet har sparats.", + "SettingsSaved": "Inställningarna sparade.", + "Upcoming": "Kommande", + "HeaderSelectImageFile": "Välj bildfil", + "None": "Ingen", + "More": "Mer", + "Up": "Upp", + "Down": "Ner", + "Home": "Hem", + "Back": "Tillbaka", + "Random": "Slumpmässig", + "Playback": "Uppspelning", + "Favorites": "Favoriter", + "HeaderHomeScreen": "Hemskärm", + "HeaderLatestChannelItems": "Senaste för kanaler", + "HeaderLibraryOrder": "Biblioteksordning", + "HeaderOnNow": "Visas just nu", + "HeaderForKids": "För barn", + "HeaderPlaybackError": "Uppspelningsfel", + "PlaybackErrorNotAllowed": "Du har inte tillgång till att spela upp det här innehållet. Kontakta din systemadministratör för mer detaljer.", + "RateLimitExceeded": "Ditt konto har överskridit den maximala strömningsgränsen som har ställts in av din Emby Server-administratör. Kontakta dem för hjälp.", + "PlaybackErrorNoCompatibleStream": "Inga kompatibla strömmar finns att tillgå. Försök igen senare eller kontakta din systemadministratör för mer detaljer.", + "PlaybackErrorPlaceHolder": "Sätt i skivan för att spela upp den här videon.", + "PlaybackErrorNoPlayableItems": "Inga spelbara objekt hittades. Försöker du spela upp en tom mapp?", + "Guide": "TV-tablå", + "Games": "Spel", + "GameSystem": "Spelsystem", + "Suggestions": "Förslag", + "HeaderFavoriteChannels": "Favoritkanaler", + "HeaderFavoriteCollections": "Favoritsamlingar", + "HeaderFavoritePlaylists": "Favoritspellistor", + "Collection": "Samling", + "Collections": "Samlingar", + "LabelSelectFolderGroups": "Gruppera automatiskt innehåll för dessa mappar i vyer så som filmer, musik och TV:", + "LabelSelectFolderGroupsHelp": "Mappar som inte är markerade kommer att visas enskilt i sin egen vy.", + "Mute": "Ljud av", + "Unmute": "Ljud på", + "Folder": "Mapp", + "Folders": "Mappar", + "FileName": "Filnamn", + "DisplayInOtherHomeScreenSections": "Visa i sekundära delar av hemskärmen, som till exempel under senaste media och fortsätt titta", + "DisplayInMyMedia": "Visa på hemskärmen", + "Shows": "Program", + "MoviesAndShows": "Filmer & Serier", + "HeaderMusicVideo": "Musikvideo", + "HeaderMusicVideos": "Musikvideor", + "MusicVideos": "Musikvideor", + "Videos": "Videor", + "MixedContent": "Blandat innehåll", + "HomeVideos": "Egna videor", + "HomeVideosAndPhotos": "Egna videor & foton", + "TVShows": "TV-program", + "HeaderLibraryFolders": "Biblioteksmappar", + "HeaderTermsOfPurchase": "Köpvillkor", + "PrivacyPolicy": "Sekretesspolicy", + "TermsOfUse": "Användarvillkor", + "HeaderRepeatMode": "Repetitionsläge", + "HeaderToneMapping": "Tonmappning", + "RepeatOne": "Upprepa en", + "RepeatAll": "Upprepa alla", + "LabelDefaultScreen": "Förvald sektion", + "ConfirmEndPlayerSession": "Vill du stänga ner Emby på {0}?", + "Yesterday": "Igår", + "Yes": "Ja", + "No": "Nej", + "HeaderScanLibraryFiles": "Skanna biblioteksfiler", + "LiveTV": "Direktsänd TV", + "Schedule": "Schema", + "Recordings": "Inspelat", + "ScanForNewAndUpdatedFiles": "Sök efter nya och uppdaterade filer", + "NewVersionOfXAvailableForY": "{0} är tillgänglig för {1}", + "DirectStreamHelp1": "Innehållet är kompatibelt med enheten vad gäller upplösning och mediatyp (H.264, AC3, etc.) men det är en inkompatibel behållare (.mkv, .avi, .wmv etc.). Videofilen kommer att packas om i realtid innan den strömmas till enheten.", + "DirectStreamHelp2": "Direktströmning av en fil använder mycket lite processorkraft utan förlust av videokvalitet.", + "MediaIsBeingConverted": "Konvertering pågår i realtid till ett format som är kompatibelt med enheten som spelar upp det.", + "StatsForNerds": "Statistik för nördar", + "HeaderHardwareAcceleratedDecoding": "Hårdvaruaccelererad avkodning", + "HeaderHardwareAcceleratedEncoding": "Hårdvaruaccelererad kodning", + "HeaderDirectPlay": "Direktuppspelning", + "DirectPlaying": "Direktuppspelning", + "DirectStreaming": "Direktströmning", + "Transcode": "Transkodning", + "Transcoding": "Transkodning", + "ContainerBitrateExceedsLimit": "Minskar bithastigheten på grund av kvalitetsinställning", + "VideoCodecNotSupported": "Konverterar video till kompatibel kodek", + "AudioCodecNotSupported": "Konverterar ljud till kompatibel kodek", + "SubtitleCodecNotSupported": "Bränner in undertexter i videon", + "DirectPlayError": "Återställer från uppspelningsfel", + "ContainerNotSupported": "Konverterar till kompatibel behållare", + "VideoLevelNotSupported": "Konverterar till kompatibel videonivå", + "AudioBitrateNotSupported": "Konverterar till kompatibel ljudbithastighet", + "AudioChannelsNotSupported": "Konverterar till ett kompatibelt antal ljudkanaler", + "VideoResolutionNotSupported": "Konverterar till kompatibel videoupplösning", + "AudioProfileNotSupported": "Konverterar till kompatibel ljudprofil", + "AudioSampleRateNotSupported": "Konverterar till kompatibel ljudsamplingsfrekvens", + "AnamorphicVideoNotSupported": "Anamorfisk video stöds inte", + "InterlacedVideoNotSupported": "Avflätar video", + "SecondaryAudioNotSupported": "Väljer sekundärt ljudspår", + "ExternalAudioNotSupported": "Väljer externt ljudspår", + "ErrorRemovingEmbyConnectAccount": "Ett fel uppstod när Emby Connect-kontot skulle tas bort. Se till att du har en aktiv internetuppkoppling och försök igen.", + "HeaderEmbyAccountRemoved": "Emby-kontot har tagits bort", + "MessageEmbyAccontRemoved": "Embykontot har tagits bort från den här användaren.", + "HeaderInvitationSent": "Inbjudan skickad", + "Offline": "Offline", + "HeaderSignUp": "Registrera", + "ServerDownloadMessage": "För att ladda ner och installera Emby Server, gå till {0}", + "ServerDownloadMessageWithoutLink": "För att ladda ner och installera Emby Server (gratis), besök Embys webbplats.", + "MessageInvitationSentToUser": "Ett e-postmeddelande med inbjudan har skickats till {0}. Delningen sker först när inbjudan har accepteras.", + "MessageInvitationSentToNewUser": "Ett e-postmeddelande har skickats till {0} med en inbjudan till att registrera sig hos Emby.", + "GuestUserNotFound": "Användaren kunde inte hittas. Se till så att namnet är korrekt och försök igen eller testa att ange e-postadressen istället.", + "ErrorReachingEmbyConnect": "Ett fel uppstod när Emby Connect försökte nås. Se till att du har en aktiv internetuppkoppling och försök igen.", + "ErrorAddingEmbyConnectAccount1": "Det gick inte att lägga till ditt Emby Connect-konto. Har du ett Emby Connect-konto? Du kan skapa ett på {0}.", + "ErrorAddingEmbyConnectAccount2": "Om du fortfarande upplever problem, skicka ett e-postmeddelande till {0} från e-postadressen som är kopplad till Emby-kontot.", + "ErrorAddingGuestAccount1": "Det gick inte att lägga till Emby Connect-kontot. Har din gäst ett Emby-konto? De kan skapa ett på {0}.", + "ErrorAddingGuestAccount2": "Om du fortfarande upplever problem, skicka ett e-postmeddelande till {0}. Inkludera din och de andras e-postadresser.", + "MessageEmbyAccountAdded": "Emby-kontot har lagts till för den här användaren.", + "MessagePendingEmbyAccountAdded": "Emby-kontot har lagts till för den här användaren. Ett e-postmeddelande har skickats ut till ägaren av kontot. Inbjudan bekräftas genom att klicka på länken i meddelandet.", + "HeaderEmbyAccountAdded": "Emby-kontot har lagts till", + "Skip": "Hoppa över", + "HeaderAdditionalParts": "Ytterligare delar", + "ButtonGenerateNewPin": "Generera ny PIN-kod", + "ConnectLoginHelp1": "Med Emby Connect kan du enkelt komma åt din Emby Server var du än är och dela servrar med din familj och vänner.", + "CreatePinErrorMessage": "Ett fel uppstod när en PIN-kod skulle skapas. Klicka på generera ny PIN-kod för att försöka igen.", + "PinExpiredMessage": "PIN-koden har slutat att gälla. Klicka på generera ny PIN-kod för att försöka igen.", + "ConnectPinCodeHeader": "För att logga in med Emby Connect, använd en mobil enhet eller dator, besök {0} och ange följande PIN-kod:", + "LabelSubtitlePlaybackMode": "Undertextläge", + "ErrorDeletingItem": "Det gick inte att ta bort det här objektet från Emby Server. Kontrollera att Emby Server har skrivrättigheter till mediamappen och försök igen.", + "NoSubtitles": "Inga undertexter", + "Default": "Standard", + "Absolute": "Absolut", + "Smart": "Smart", + "Small": "Liten", + "Smaller": "Mindre", + "Medium": "Mellan", + "Large": "Stor", + "Larger": "Större", + "ExtraLarge": "Extra stor", + "ExtraSmall": "Extra liten", + "Forced": "Tvingad", + "External": "Extern", + "HeaderEmbeddedTitle": "Inbäddad titel", + "OnlyForcedSubtitles": "Enbart tvingande undertexter", + "AlwaysPlaySubtitles": "Visa alltid undertexter", + "DefaultSubtitlesHelp": "Undertexter visas baserat på standardspråk och tvingande undertexter i den inbäddade metadatan. Förvalsspråk kommer väljas när fler val är möjliga.", + "SmartSubtitlesHelp": "Undertexter som matchar förvalsspråket kommer visas när ljudspåret är på ett annat språk.", + "HeaderSubtitleSettings": "Inställningar för undertexter", + "HeaderSubtitleAppearance": "Undertextutseende", + "OnlyForcedSubtitlesHelp": "Enbart undertexter markerade som tvingande kommer att laddas.", + "AutoSelectHearingImpairedHelp": "Undertexter som matchar språkpreferensen kommer att laddas, med företräde för spår som är markerade som för döva och hörselskadade (SDH).", + "AlwaysPlaySubtitlesHelp": "Undertexter på det önskade språket kommer att laddas oavsett ljudspårets språk.", + "NoSubtitlesHelp": "Undertexter kommer inte att visas som standard. De kan fortfarande slås på manuellt under uppspelning.", + "LabelPreferredSubtitleLanguage": "Önskat språk för undertexter", + "LabelTextSize": "Textstorlek", + "TheseSettingsAffectSubtitlesOnThisDevice": "Dessa inställningar påverkar undertexter på den här enheten", + "LabelDropShadow": "Visa skugga", + "LabelTextBackgroundColor": "Bakgrundsfärg för text", + "LabelWindowBackgroundColor": "Bakgrundsfärg för text", + "LabelFont": "Typsnitt", + "LabelTextColor": "Textfärg", + "LabelBackgroundColor": "Bakgrundsfärg", + "LabelBackgroundOpacity": "Bakgrundsgenomskinlighet", + "Raised": "Upphöjd", + "Depressed": "Nedsänkt", + "Uniform": "Enhetlig", + "DropShadow": "Visa skugga", + "SmallCaps": "Små bokstäver", + "SubtitleAppearanceSettingsDisclaimer": "Dessa inställningar kommer inte att gälla för grafiska undertexter (pgs, dvd, etc) eller undertexter som har en egen inbäddad stil (ass/ssa).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Väntar på wifi", + "WifiRequiredToDownload": "En wifi-anslutning krävs för att fortsätta nedladdningen.", + "DownloadOnlyOnWifi": "Ladda enbart ned på wifi", + "LabelMusicDownloadQuality": "Musiknerladdningskvalitet", + "MusicDownloadQualityHelp": "Ljudfiler med en högre bithastighet kommer att konverteras av Emby Server. Välj ett högre värde för bättre kvalitet, eller ett lägre värde för att spara lagringsutrymme.", + "HeaderDownloadSettings": "Nedladdningsinställningar", + "LabelDownloadLocation": "Nerladdningsplats", + "BrowseForFolder": "BläddraEfterMapp", + "Unlimited": "Obegränsat", + "NoLimit": "Ingen gräns", + "Hide": "Dölj", + "HeaderKeepWatching": "Fortsätt titta", + "HeaderNextEpisode": "Nästa avsnitt", + "AudioBitDepthNotSupported": "Konverterar till kompatibelt ljudbitdjup", + "VideoBitrateNotSupported": "Konverterar till kompatibel videobithastighet", + "VideoProfileNotSupported": "Konverterar till kompatibel videoprofil", + "VideoFramerateNotSupported": "Konverterar till kompatibel bildhastighet", + "VideoBitDepthNotSupported": "Konverterar till kompatibelt videobitdjup", + "RefFramesNotSupported": "Konverterar till ett kompatibelt antal videoreferensbildrutor", + "ErrorConnectServerUnreachable": "Ett fel inträffade när den begärda åtgärden utfördes. Din server kan inte nå vår Emby Connect Server på {0}. Kontrollera att din server har en aktiv internetanslutning och att kommunikationen tillåts av eventuell brandvägg eller säkerhetsprogramvara.", + "HeaderStopRecording": "Stoppa inspelning", + "ManageRecording": "Hantera inspelning", + "LabelDropImageHere": "Dra och släpp en bild här, eller klicka för att välja en bild att ladda upp.", + "MessageFileReadError": "Ett fel uppstod när filen skulle läsas in. Försök igen.", + "Browse": "Bläddra", + "HeaderUploadImage": "Ladda upp bild", + "HeaderAddUpdateImage": "Lägg till/uppdatera bild", + "HeaderShowFields": "Visa fält", + "LabelView": "Vy", + "LabelImageType": "Bildtyp", + "Upload": "Ladda upp", + "Primary": "Primär", + "PrimaryImageBlur": "Huvudbild suddig", + "Art": "Grafik", + "Backdrop": "Bakgrund", + "Banner": "Banderoll", + "Box": "Omslag", + "BoxRear": "Omslag (baksida)", + "Disc": "Skiva", + "Logo": "Logotyp", + "LogoDark": "Logotyp (mörk version)", + "LogoLight": "Logotyp (ljus version)", + "LogoLightColor": "Logotyp (ljus med färg)", + "Menu": "Meny", + "Screenshot": "Skärmdump", + "Thumb": "Miniatyr", + "HeaderAudioSettings": "Ljudinställningar", + "LabelAudioLanguagePreference": "Föredraget ljudspråk", + "LabelPlayDefaultAudioTrack": "Spela standardljudspåret oavsett språk", + "HeaderVideoQuality": "Videokvalitet", + "CinemaModeConfigurationHelp": "Biointros gör ditt vardagsrum till en biograf genom möjligheten att visa trailrar och vinjetter innan filmen börjar.", + "ShowUpNextPreview": "Visa förhandsvisning av nästa", + "ShowUpNextPreviewHelp": "Visa information för nästa objekt nära slutet av det nuvarande.", + "PlayNextEpisodeAutomatically": "Spela nästa avsnitt automatiskt", + "LabelMaxChromecastBitrate": "Strömningskvalitet för Chromecast", + "LabelSkipBackLength": "Hoppa bakåt-längd", + "LabelSkipForwardLength": "Hoppa framåt-längd", + "EnableCinemaMode": "Aktivera Biointros", + "LabelInternetQuality": "Kvalitet för strömning på distans", + "LabelCellularQuality": "Kvalitet för strömning på distans (mobilnät)", + "HeaderMusicQuality": "Musikkvalitet", + "LabelHomeNetworkQuality": "Kvalitet för strömning lokalt", + "HeaderLatestMedia": "Senaste media", + "HeaderRestartingEmbyServer": "Startar om Emby Server", + "RestartPleaseWaitMessage": "Emby Server startar om. Vänta.", + "HeaderPlayNext": "Spela nästa", + "AutoBasedOnLanguageSetting": "Automatisk (baserat på enhetsinställning)", + "SameAsMainTheme": "Samma som huvudtema", + "LabelDateTimeLocale": "Datumformat", + "Genre": "Genre", + "DirectorValue": "Regissör: {0}", + "DirectorsValue": "Regissörer: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genrer: {0}", + "TagsValue": "Taggar: {0}", + "Off": "Av", + "Title": "Titel", + "Year": "År", + "Filter": "Filter", + "Filters": "Filter", + "Unplayed": "Ospelad", + "LabelTVHomeScreen": "Hemskärm i TV-läge", + "Horizontal": "Horisontell", + "Vertical": "Vertikal", + "HeaderGroupBy": "Gruppera på", + "HeaderMediaType": "Typ av media", + "GroupBySeries": "Gruppera efter serie", + "HeaderVideoType": "Videotyp", + "HeaderSeriesStatus": "Seriestatus", + "Features": "Innehåll", + "Trailers": "Trailrar", + "Extras": "Extramaterial", + "ThemeSongs": "Signaturmelodier", + "ThemeVideos": "Temavideor", + "HeaderFavoriteMovies": "Favoritfilmer", + "HeaderFavoritePhotos": "Favoritfoton", + "HeaderFavoriteShows": "Favoritprogram", + "HeaderFavoriteEpisodes": "Favoritavsnitt", + "HeaderFavoriteVideos": "Favoritvideor", + "HeaderFavoriteMusicVideos": "Favoritmusikvideor", + "HeaderFavoriteGames": "Favoritspel", + "HeaderFavoriteArtists": "Favoritartister", + "HeaderFavoriteAlbums": "Favoritalbum", + "HeaderFavoriteSongs": "Favoritlåtar", + "HeaderFavoriteAuthors": "Favoritförfattare", + "HeaderFavoriteAudioBooks": "Favoritljudböcker", + "Ascending": "Stigande", + "Descending": "Fallande", + "HeaderColorPrimaries": "Primärfärger", + "HeaderColorSpace": "Färgrymd", + "HeaderColorTransfer": "Färgöverföring", + "HeaderVideoRange": "Videointervall", + "SeriesDisplayOrderHelp": "Ordna episoder efter sändningsdatum, dvd-ordning eller absolut numrering.", + "LabelVerticalPositionFromBottom": "Vertikal position (från botten)", + "HeaderFavoritePeople": "Favoritpersoner", + "MultiSelect": "Flerval", + "HeaderSignOut": "Logga ut", + "HeaderSelectServer": "Välj server", + "HeaderChangeServer": "Byt server", + "HeaderChangeUser": "Byt användare", + "HeaderAppSettings": "Appinställningar", + "HeaderLoginSettings": "Inloggningsinställningar", + "LabelRememberLogin": "Kom ihåg inloggning", + "LabelAutomaticallySignOut": "Logga ut automatiskt", + "BetaTesterMessage": "Tack för att du betatestar Emby! Lämna gärna feedback i {0}testdelen av forumet{1}.", + "HardwareAccelerated": "Hårdvaruaccelererad", + "Software": "Mjukvaruacceleration", + "Metadata": "Metadata", + "HeaderMediaInfo": "Mediainfo", + "Locked": "Låst", + "HeaderSplitVersionsApart": "Hantera olika versioner separat", + "Any": "Vilken som helst", + "Admin": "Admin", + "HeaderReadMore": "Läs mer", + "CustomRatingHelp": "En anpassad åldersgräns används för utvärderingar av föräldrakontroll men visas inte. Fältet för föräldrakontroll visas fortfarande.", + "KeepUpToHelp": "Inspelningar som är över gränsen tas bort när nästa inspelning börjar. Äldsta inspelningen tas bort först, sorterat på datum tillagd.", + "NoItemsMatchingFound": "Inga objekt som matchade dina sökkriterier hittades.", + "TwoSearchCharsRequired": "Ange minst två tecken för att söka.", + "PreventPlaybackContinuing": "Undvik att uppspelningen fortsätter i all oändlighet genom att då och då be om användarinput.", + "PromptStillWatching": "Aktivera frågan \"Tittar du fortfarande?\"", + "HeaderMissingMetadata": "Metadata saknas", + "HeaderIncludedIn": "Ingår i", + "EmbyConnectUserAlreadyLinked": "Emby Connect-användaren är redan länkad till en annan användare på den här servern.", + "VideoFilesWillBeConvertedTo": "Konverterade videor kommer att sparas som {0}.", + "VideoWillBeConvertedTo": "Videoströmmar konverteras till {0} eller kopieras från originalfilen om de redan är {0} och kvaliteten passar in i konverteringsalternativen.", + "VideoWillBeConvertedToOrCopied": "Videoströmmar konverteras till {0} eller kopieras från originalfilen om de är någon av ({1}), och kvaliteten passar in i konverteringsalternativen.", + "AudioWillBeConvertedTo": "Ljudströmmar konverteras till {0} eller kopieras från originalfilen om de redan är {0} och kvaliteten passar in i konverteringsalternativen.", + "AudioWillBeConvertedToOrCopied": "Ljudströmmar konverteras till {0} eller kopieras från originalfilen om de är någon av ({1}) och kvaliteten passar in i konverteringsalternativen.", + "HeaderSpecialKeys": "Specialtangenter", + "FollowingSpecialKeys": "Följande specialtangenter stöds på de flesta tangentbord och fjärrkontroller:", + "HeaderDeleteSeries": "Ta bort serie", + "HeaderDeleteLastPlayedEpisode": "Ta bort senast spelade avsnitt", + "HeaderConnectingToServer": "Ansluter till servern", + "ServerNameValue": "Servernamn: {0}", + "DomainValue": "Domän: {0}", + "RatedValue": "Åldersklassificering {0}", + "LocalServerRedirectMessage": "Du kommer nu att omdirigeras till domänen som ägs och drivs av administratören för servern du har valt att ansluta till:", + "AllMediaOwnedHosted": "All media lagras och hanteras av ägaren till {0}.", + "EnableResolutionSwitching": "Matcha videoupplösning", + "EnableResolutionSwitchingHelp": "Detta gör det möjligt för Emby att ändra uppdateringsfrekvensen för skärmen till samma värde (eller multipel av) som uppdateringsfrekvensen i videofilen, innan uppspelning startades. Detta hjälper till att minimera mängden hack/störningar som du annars kan se när du spelar upp videor som inte matchar bra.", + "EnableDisplayRefreshRateSwitching": "Aktivera växling av uppdateringsfrekvens för display", + "EnableDisplayRefreshRateSwitchingHelp": "Detta gör det möjligt för Emby att ändra uppdateringsfrekvensen för skärmen till samma värde (eller multipel av) som uppdateringsfrekvensen i videofilen, innan uppspelning startades. Detta kan hjälpa till att minimera mängden hack/störningar som du annars kan se när du spelar upp videor som inte matchar bra.", + "RememberSelectedAudioTracks": "Kom ihåg val av ljudspår", + "RememberSelectedSubtitleTracks": "Kom ihåg val av undertexter", + "RememberSelectedSubtitleTracksHelp": "Val av undertextspår kommer att sparas för varje video och tillämpas igen när samma video spelas upp igen.", + "RememberSelectedAudioTracksHelp": "Val av ljudspår kommer att sparas för varje video och tillämpas igen när samma video spelas upp igen.", + "ClearSavedTrackSelections": "Rensa sparade spårval", + "HeaderClearTrackSelections": "Rensa sparade spårval", + "QuestionClearSavedTracks": "Rensa alla sparade spårval?", + "LabelChannelTags": "Kanaltaggar", + "AfterThisPlaysConfirmation": "Skulle du vilja fortsätta eller tömma din tidigare köade musik efter denna uppspelningen?", + "Keep": "Behåll", + "Clear": "Rensa", + "HeaderClearFilters": "Rensa filter", + "HeaderSearchForImages": "Sök efter bilder", + "HeaderSearchNewImage": "Sök efter en ny bild", + "HeaderSearchForAnImage": "Sök efter en bild", + "DragDropToReorder": "Dra och släpp för att arrangera om", + "HeaderAddImageFromUrl": "Lägg till bild via URL", + "HeaderSetImageFromUrl": "Använd bild från URL", + "LabelUrl": "URL", + "LabelChannelNumber": "Kanalnummer", + "LabelGuideDataChannel": "TV-tablå-kanal", + "GuideDataSource": "TV-tablåkälla", + "HeaderCopyToClipboard": "Kopiera till urklipp", + "TimeRemainingValue": "{0} återstår", + "LabelResumeRewindSeconds": "Spola tillbaka automatiskt vid återupptagande", + "ResumeRewindSecondsHelp": "Detta kan hjälpa dig att komma ihåg var du slutade. Detta gäller den första återupptagningen och inte varje enskild paus under uppspelning.", + "HeaderSavePlayQueueToPlaylist": "Spara spelkön i spellistan", + "EnableLogoImagesAsTitle": "Visa logotyper som titlar på detaljskärmarna", + "EnableLogoImagesAsTitleHelp": "Logotyper kan användas som ersättning för titeltexter i videor, serier och i andra detaljsegment när det finns tillgängligt. Titeln kommer att falla tillbaka till text när en logotyp inte finns tillgänglig.", + "LabelNowPlayingAudioBackgroundStyle": "Ljudbakgrundsutseende för spelas nu", + "LabelNowPlayingVideoBackgroundStyle": "Videobakgrundsutseende för spelas nu", + "NowPlayingVideoBackgroundStyleHelp": "Bestämmer bakgrundsstilen för när videouppspelning fjärrstyrs från en annan enhet.", + "Rotation": "Rotation", + "Minutes": "Minuter", + "LabelMaxRecordingLength": "Max inspelningslängd", + "MaxRecordingLengthHelp": "Begränsa inspelningar till en viss tid, oavsett sändningens varaktighet. Sätt till 0 för obegränsat.", + "RemoteWAN": "Fjärradress (WAN)", + "HeaderLastConnectedTo": "Senast ansluten till", + "Version": "Version", + "Keyword": "Nyckelord", + "HeaderServerAddress": "Serveradress", + "HeaderSkipIntro": "Hoppa över intro", + "HeaderCreateRecording": "Skapa inspelning", + "HeaderAddRecording": "Lägg till inspelning", + "HeaderChannelAndTime": "Kanal och tid", + "LabelRecordProgramOrSeriesFrom": "Spela in ett program eller serie från", + "LabelStartTime": "Starttid", + "LabelEndTime": "Sluttid", + "LabelFrequency": "Frekvens", + "Recurring": "Återkommande", + "Once": "En gång", + "Start": "Start", + "Unpause": "Återuppta", + "LabelIntroSkipMode": "Överhoppning av intron", + "ShowSkipIntroButton": "Visa knappen \"Hoppa över intro\"", + "AutoSkipIntro": "Hoppa över intron automatiskt", + "DisplayRatingInformationOnVideoPlaybackStart": "Visa åldersklassificering vid start av videouppspelning", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Information om åldersklassificering visas kort när videouppspelning startar.", + "IntroSkipModeHelp": "Visa en \"Hoppa över intro\"-knapp eller hoppa automatiskt över intron för avsnitt där Emby Server har upptäckt intromarkörer. Introdetektering måste vara aktiverat i Emby Server-biblioteksalternativ.", + "EnableHomeScreenFocusPreview": "Använd en layout på startskärmen som visar en detaljerad förhandsvisning av det valda objektet", + "EnableHomeScreenFocusPreviewHelp": "Detta kanske inte fungerar bra om din startskärm innehåller en blandning av olika mediatyper.", + "LabelHideMediaTransportButtons": "Dölj videospelarens knappar", + "HideMediaTransportButtonsHelp": "Skapa ett enklare uppspelningsgränssnitt på skärmen genom att dölja grundläggande knappar som hoppa framåt, bakåt och paus. Du kommer fortfarande att kunna använda dessa funktioner med piltangenterna och OK/Enter. Auto kommer att dölja knapparna när ingen musanvändning upptäcks i appen.", + "ImageSizeHelp": "Ställ in önskad storlek på bildrutnät.", + "LabelImageSize": "Bildstorlek", + "ThisImageIsOnlyPreview": "Den här bilden är bara en förhandsvisning som kom från sökmotorn för metadata. Den faktiska bilden som Emby Server laddar ner kan vara en annan och beror på alternativen du har konfigurerat i Emby-biblioteksinställningarna.", + "ResultsRangeValue": "{0} till {1} av {2}", + "NotificationsDescription": "Konfigurera aviseringar för att hålla dig informerad om viktiga händelser på din Emby-server.", + "DeleteEmbyConnectAccount": "Ta bort Emby Connect-konto", + "DeleteEmbyConnectAccountHelp": "För att ta bort ditt Emby Connect-konto, logga in på {0}forumet{1} på {2}. När du är inloggad, klicka på ditt användarnamn uppe till höger, gå sedan till kontoinställningar och klicka sedan på radera mitt konto.", + "KeepPlayingInBackground": "Fortsätt spela i bakgrunden", + "LabelVideoBackBehavior": "Videospelarens funktion för bakåtknapp", + "HeaderViewLyrics": "Visa sångtexter", + "HeaderViewMissingEpisodes": "Visa saknade avsnitt", + "HeaderMissingEpisodes": "Saknade avsnitt", + "HeaderManageAccess": "Hantera åtkomst", + "HeaderManageCollaboration": "Hantera samarbete", + "HeaderLeaveCollaboration": "Lämna samarbete", + "HeaderRemoveFromLibrary": "Ta bort från bibliotek", + "RemoveSharedItemConfirmation": "Är du säker på att du vill ta bort detta objekt från ditt bibliotek? För att återställa det måste ägaren ge dig åtkomst igen.", + "SubtitlesDownloaded": "Undertexter nedladdade", + "HeaderMakePrivate": "Gör privat", + "HeaderMakePublic": "Gör publik", + "MakePublicDescription": "Alla användare kommer att kunna se detta objekt. Användare kan tilldelas åtkomst individuellt.", + "MakePrivateDescription": "Användare kan fortfarande tilldelas åtkomst individuellt.", + "Private": "Privat", + "Public": "Publik", + "Collaborative": "Samarbete", + "PreferredShowDisplay": "Önskad TV-programvisning", + "ShowAllEpisodesAllSeasons": "Visa alla avsnitt av alla säsonger tillsammans (inga säsongsmappar)", + "ShowAllEpisodesSingleSeason": "Visa alla avsnitt för serier med enbart 1 säsong", + "ShowSeasonFolders": "Visa alltid säsongsmappar", + "HeaderAddAgain": "Lägg till igen", + "UpNext": "Nästa", + "ItemsAlreadyInPlaylist": "Vissa av dessa objekt finns redan i din spellista.", + "ItemAlreadyInPlaylist": "Det här objektet finns redan i din spellista.", + "HeaderPlayChannel": "Spela kanal", + "LabelScreenOrientationDuringVideo": "Skärmorientering under videouppspelning", + "UseDeviceSetting": "Använd enhetsinställning", + "LockToLandscape": "Lås till liggande", + "UsernameForFolderHelp": "Användarnamnet som krävs för att komma åt den här mappen i ditt nätverk (om tillämpligt).", + "PasswordForFolderHelp": "Lösenordet som krävs för att komma åt den här mappen i ditt nätverk (om tillämpligt).", + "ShowMediaInfoOnDetailScreens": "Visa fullständigt mediainformation längst ner på ljud- och videodetaljskärmarna", + "ForgotPasswordNoUserFound": "Inga användare med det angivna namnet hittades. Försök igen eller lämna namnet tomt för att återställa lösenordet för alla användare på denna server.", + "Silver": "Silver", + "DimGray": "Dämpad grå", + "DarkGray": "Mörkgrå", + "LightGray": "Ljusgrå", + "Black": "Svart", + "Blue": "Blå", + "Cyan": "Cyan", + "Gray": "Grå", + "Green": "Grön", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Rosa", + "Red": "Röd", + "Yellow": "Gul", + "White": "Vit", + "Purple": "Lila", + "RecentlyReleasedMovies": "Nyligen släppta filmer", + "RecentlyReleasedEpisodes": "Nyligen släppta avsnitt", + "DolbyProfile": "Dolby-profil", + "IpAddress": "IP-adress", + "VideoType": "Videotyp", + "HidePlayedMediaFrom": "Dölj uppspelat innehåll från", + "BottomEdgePosition": "Position längst ner vid kanten", + "VerticalPositionFromBottomScreen": "Sätt den vertikala positionen för undertexterna i förhållande till skärmens nederkant.", + "TopEdgePosition": "Position högst upp vid kanten", + "TopEdgePositionHelp": "Sätt den högsta tillåtna vertikala positionen för undertexterna i förhållande till skärmens överkant. Detta används när undertexterna innehåller positioneringsinstruktioner för att placeras högst upp.", + "HeaderSubtitlePosition": "Undertextposition", + "TitleProfilePin": "PIN för profil", + "ProfilePinConfirm": "Bekräfta PIN för profil", + "SaveProfilePin": "Spara PIN-kod", + "ProfilePinDescription": "Skapa en valfri pinkod som du uppmanas att ange varje gång du återvänder till en Emby-app på en enhet som du redan har loggat in på. Detta är användbart om du har enheter som delas av flera användare. Du kan välja att aktivera det selektivt på varje enhet efter behov.", + "TitleNewEpisodes": "Nya avsnitt", + "EnterYourPinToContinue": "Ange din PIN-kod för att fortsätta.", + "YourPinMustBe": "Din PIN-kod måste vara {0} siffror.", + "ForgotPin": "Glömt PIN-kod?", + "RequireEnteringPinToReturn": "Kräv att jag anger min profil-PIN varje gång jag återvänder till denna app.", + "RequireEnteringPinToReturnQuestion": "Ska vi be om din profil-PIN varje gång du återvänder till denna app? Om den här enheten används av flera användare kan din profil-PIN hjälpa till att förhindra att andra användare får åtkomst till din data och inställningar.", + "RequireEnteringPinToReturnHelp": "Användbart om den här enheten delas av flera användare.", + "WrongPinPleaseTryAgain": "Fel PIN-kod. Försök igen.", + "ProfilePinIsOn": "Profil-PIN är för närvarande aktiverad.", + "IfTryingToConnectToHttp": "Om du försöker ansluta till din Emby Server med en HTTP-adress kanske din webbläsare inte tillåter detta på grund av HTTPS-krav. Försök med något av följande:", + "SetupHttpsForYourServer": "Ställ in {0}HTTPS för din Emby Server{1} så att du kan ansluta med HTTPS.", + "TitleUnableToReachServer": "Kunde inte nå servern", + "TitleUnableToReachName": "Det går inte att nå {0}", + "HearingImpaired": "Hörselnedsättning", + "SignIntoServerName": "Logga in på {0}", + "About": "Om", + "Specials": "Specialavsnitt", + "NSettings": "Inst. för {0}", + "NPreferences": "Val för {0}", + "DetailScreenOptions": "Detaljskärmar", + "LabelGenreDisplayLimit": "Genrevisningsgräns", + "GenreDisplayLimitHelp": "Begränsa antalet genrer som visas högst upp på detaljskärmar för objekt.", + "GenreDisplayLimitForListsHelp": "Begränsa antalet genrer som visas högst upp på spellistor, samlingar och artistdetaljskärmar.", + "LabelGenreDisplayLimitForLists": "Genrevisningsgräns för listor", + "ShowPosterOnDetails": "Visa en poster på detaljskärmen", + "ShowPosterOnDetailsHelp": "Välj att visa en poster på videodetaljskärmar eller dölj den för en mer minimalistisk look som betonar bakgrunden. Denna inställning används inte på mindre skärmlayouter. Vissa objekttyper kommer att ignorera denna inställning.", + "EnableAppLogging": "Aktivera app-logging", + "EnableAppLoggingHelp": "Loggning kan försämra app-prestanda och bör endast aktiveras vid behov för felsökning. Ändringar kräver omstart av appen.", + "LabelSlideshowInterval": "Tid per bild i bildspel", + "TVChannelImageEditorHelp": "Flera logotyper stöds. Emby-appar väljer automatiskt den mest lämpliga beroende på aktuellt tema.", + "PlaySlideshow": "Spela bildspel", + "CheckForExistingEpisodesInAllLibraries": "Sök efter befintliga avsnitt i alla bibliotek", + "GroupNotificationsBySeriesOrAlbum": "Gruppera aviseringar efter serier och album", + "ThemeSettings": "Inställningar för tema", + "FollowingActivityWillBeDisrupted": "Följande aktivitet kommer att avbrytas och kan kräva manuell hantering för att starta igen:", + "OneActivePlaybackSession": "1 aktiv uppspelningssession", + "NumActivePlaybackSessions": "{0} aktiva uppspelningssessioner", + "OneActiveRecording": "1 aktiv inspelning", + "NumActiveRecordings": "{0} aktiva inspelningar", + "PlayFromLivePosition": "Spela från livepositionen", + "PlayFromStartOfRecording": "Spela upp från början av inspelningen", + "ThisChannelIsActivelyRecording": "Denna kanal spelas in. Hur vill du börja spela?", + "ThemeSongVolume": "Signaturmelodivolym", + "HeaderForceConversionForFormats": "Tvinga transkodning för format", + "ForceConversionForFormatsHelp": "Tvinga servern att transkoda eller remuxa format som inte fungerar optimalt med direktuppspelning på denna enhet.", + "StartupBehavior": "Uppstartsinställningar", + "RememberLastUser": "Kom ihåg den senaste användaren", + "ShowLoginScreen": "Visa inloggningsskärmen", + "SignInAsValue": "Logga in som {0}", + "ConvertUnsupportedAudio": "Konvertera surroundljud som inte stöds till Dolby Digital", + "ConvertUnsupportedAudioHelp": "Undvik nedmixning av ej stödda surroundformat till stereo genom att låta Emby Server transkoda dem till Dolby Digital.", + "HeaderPlaybackCorrection": "Uppspelningskorrigering", + "HeaderAttemptPlaybackCorrection": "Försök att åtgärda uppspelningsfel", + "PlaybackCorrectionConfirm": "Starta försök att åtgärda uppspelningsfel?", + "PlaybackCorrectionDescription": "Har det aktuella objektet uppspelningsproblem, t.ex. ingen video eller ljud? Detta kommer att försöka åtgärda problemet genom att använda servertranskodning för att konvertera filen till ett mer strömningsvänligt format. Detta kommer att öka resursförbrukningen på denna Emby Server.", + "PlaybackCorrectionDescription2": "Du kan göra detta upp till tre gånger per video, där remuxning, videotranskodning och ljudtranskodning aktiveras en i taget.", + "HeaderAlbumsAsContributingArtist": "Album som bidragande artist", + "HeaderAlbumsAsComposer": "Album som kompositör", + "Duplicates": "Dubbletter", + "HeaderSleepTimer": "Sömntimer", + "AfterCurrentItem": "Efter aktuellt objekt", + "HeaderStopPlayback": "Stoppa uppspelning", + "TurnOffTimer": "Stäng av timern", + "SleepTimerIsSet": "Din sömntimer är inställd", + "SleepTimerIsOff": "Din sömntimer är avstängd", + "LabelEnableRemoteControlTVMode": "Visa casting- och fjärrkontrollsfunktioner", + "EnableRemoteControlTVModeHelp": "Aktivera detta om du vill använda denna enhet för att skicka media till andra enheter.", + "ShowOnScreenControls": "Visa skärmkontroller", + "LabelVideoScreenUpAction": "Uppåtknappens funktion i videospelaren", + "VideoScreenUpActionHelp": "Välj vilken funktion som ska utföras när uppåtknappen används i videospelarens gränssnitt. Detta gäller när inga kontroller visas på skärmen. Om kontrollerna är synliga används uppåtknappen för navigering.", + "LabelVideoPlayerLongPressAction": "Långtrycksåtgärd för videouppspelning", + "LetsGetSetup": "Nu sätter vi igång", + "VideoPlayerLongPressActionHelp": "Välj vilken funktion eller meny som visas när du håller ned OK-knappen under videouppspelning. Gäller endast när videokontrollerna är dolda eller när tidslinjen har fokus.", + "AskAdminToGetPremiere": "Detta köp måste göras av serveradministratören. Be administratören för denna Emby Server att logga in och skaffa Emby Premiere så att du kan få tillgång till premiumfunktionerna.", + "AutoOpenSingleItemsFolders": "Öppna automatiskt objekt i mappar med endast 1 objekt", + "AutoOpenSingleItemsFoldersHelp": "När en mapp bara innehåller 1 objekt, öppna det automatiskt.", + "PlayedOnValue": "Spelad {0}", + "TheseSettingsApplyAppDevice": "Dessa inställningar gäller för alla användare som spelar upp på denna enhet.", + "LastContentDateAdded": "Datum då innehåll senast importerades", + "RepeatThemeMedia": "Spela teman på repeat", + "HideEpisodeSpoilerInfo": "Göm spoilerinformation från avsnitt som inte har setts än.", + "HideEpisodeSpoilerInfoHelp": "Döljer bilden och sammanfattningen för osedda avsnitt på de flesta skärmar.", + "BornValueAge": "Född: {0} ({1} år)", + "PreferDirectStreamLiveTV": "Föredra direktströmning av direktsänd TV", + "PreferDirectStreamLiveTVHelp": "Direktströmning av direktsänd TV minskar resursförbrukningen på din Emby-server men kan göra uppspelningen svårare att spola i. När detta är aktiverat används direktströmning av direktsänd TV om formatet stöds och ligger inom din konfigurerade kvalitetsinställning. Inaktivera detta för att få bättre möjlighet att spola under uppspelning, på bekostnad av högre resursförbrukning.", + "HeaderAllRecordings": "Alla inspelningar", + "RememberLoginDescription": "Efter inloggning kan du använda appinställningarna för att konfigurera startbeteendet för att komma ihåg inloggning, logga in som en specifik användare eller visa inloggningsskärmen.", + "ForgetServerConfirmation": "Är du säker på att du vill glömma denna server?", + "ForgetThisServer": "Glöm denna server", + "HeaderThisDevice": "Denna enhet", + "ChaptersGuide": "Kapitel / TV-guide", + "ChaptersGuideHelp": "Visa kapitel för media som har kapitel. För media utan kapitel visas TV-guiden (om tillgänglig).", + "HeaderShowSeriesImages": "Visa bilder för serier", + "AppExitConfirmation": "Är du redo att avsluta Emby?", + "AppExitMenu": "Avslutsmeny", + "SideMenu": "Sidonavigeringsmeny", + "SystemStorage": "Systemlagring ({0})" +} diff --git a/modules/common/strings/th.json b/modules/common/strings/th.json new file mode 100644 index 0000000..0609cd9 --- /dev/null +++ b/modules/common/strings/th.json @@ -0,0 +1,1340 @@ +{ + "File": "File", + "Like": "Like", + "HeaderContinueListening": "Continue Listening", + "Genre": "Genre", + "HeaderSpecialKeys": "Special Keys", + "Duplicates": "Duplicates", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "EmbyLoginTerms": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our {0}terms of use{1}. The use of any Emby software constitutes acceptance of these terms.", + "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.", + "EmbyIntroMessage": "With Emby you can easily stream videos, music and photos to smart phones, tablets and other devices from your Emby Server.", + "HeaderSignInWithConnect": "Sign in with Emby Connect", + "HeaderWelcomeToEmby": "Welcome to Emby", + "HeaderNewUsers": "New Users", + "HeaderPleaseSignIn": "Please Sign In", + "MessageInvalidUser": "Invalid username or password. Please try again.", + "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.", + "ValueSpecialEpisodeName": "Special - {0}", + "HeaderSignIn": "Sign In", + "Share": "Share", + "Shared": "Shared", + "Info": "Info", + "Add": "Add", + "Speed": "Speed", + "PlaybackSpeed": "Playback Speed", + "Chapters": "Chapters", + "Password": "Password", + "SavePassword": "Save Password", + "LabelPassword": "Password", + "HeaderResetPassword": "Reset Password", + "Series": "Series", + "Preview": "Preview", + "Submit": "Submit", + "Never": "Never", + "Table": "Table", + "HeaderScheduledTasks": "Scheduled Tasks", + "Plays": "Plays", + "LastUsedAddressValue": "Last used {0}", + "LabelKeywordType": "Keyword type", + "HeaderSelectColumns": "Select Columns", + "HeaderTopResults": "Top Results", + "HeaderPinSidebar": "Pin Sidebar", + "Collapse": "Collapse", + "LabelBackgroundVideoPlayback": "Background video playback", + "BackgroundVideoPlaybackHelp": "Background playback allows video to keep playing even when the screen is turned off.", + "AlwaysOn": "Always on", + "HeadphonesOrExternalSpeakersConnected": "Headphones or external speakers connected", + "HeaderKeyboardAndRemote": "Keyboard and Remote", + "NoSelectedItemsSupportOperation": "There are no items selected that support this operation.", + "NoOperationsForSelectedItems": "There are no operations available for the selected items.", + "UploadOnlyOnWifi": "Upload only on Wifi", + "HeaderFoldersToUpload": "Folders to Upload", + "LabelPasswordConfirm": "Password (confirm)", + "HeaderMoveUpInOrder": "Move Up In Order", + "HeaderDownUpInOrder": "Move Down In Order", + "LabelUsername": "Username", + "HeaderAddServer": "Add Server", + "HeaderSubtitleOffset": "Subtitle Offset", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Remove from Continue Watching", + "RemoveThisTitleFromContinueWatching": "Remove this title from Continue Watching?", + "HeaderRemoveFromContinueListening": "Remove from Continue Listening", + "RemoveThisTitleFromContinueListening": "Remove this title from Continue Listening?", + "HeaderIncreaseSubtitleOffset": "Increase Subtitle Offset", + "HeaderDecreaseSubtitleOffset": "Decrease Subtitle Offset", + "Close": "Close", + "HeaderSeeAll": "See All", + "HeaderOpenInNewWindow": "Open in New Window", + "LabelEmail": "Email", + "LabelHost": "Host", + "LabelHostHelp": "Example: 192.168.1.100 or https://myserver.com", + "LabelPort": "Port", + "Disabled": "Disabled", + "Uninstall": "Uninstall", + "Enable": "Enable", + "AllTuners": "All Tuners", + "Disable": "Disable", + "NextValue": "Next: {0}", + "HeaderNextItem": "Next Item", + "HeaderPreviousItem": "Previous Item", + "NoTrailersMessage": "No Trailers found. To add Trailers, please install the Trailer plugin from the {0}Emby plugin catalog{1}.", + "UninstallPluginConfirmation": "Are you sure you wish to uninstall this plugin?", + "HeaderUninstallPlugin": "Uninstall Plugin", + "AreYouStillWatching": "Are you still watching?", + "LabelCurrentPassword": "Current password", + "LabelNewPassword": "New password", + "LabelNewPasswordConfirm": "New password confirm", + "HeaderRemovePassword": "Remove Password", + "ServerUpdateNeeded": "This Emby Server needs to be updated. To download the latest version, please visit {0}", + "MessageThankYouForConnectSignUp": "Thank you for signing up for Emby Connect. An email will be sent to your address with instructions on how to confirm your new account. Please confirm the account and then return here to sign in.", + "MessageThankYouForConnectSignUpNoValidation": "Thank you for signing up for Emby Connect! You will now be asked to login with your Emby Connect information.", + "ErrorMessagePasswordNotMatchConfirm": "The password and password confirmation must match.", + "ErrorMessageUsernameInUse": "The username is already in use. Please choose a new name and try again.", + "ErrorMessageEmailInUse": "The email address is already in use. Please enter a new email address and try again, or use the forgot password feature.", + "HeaderUpcomingOnTV": "Upcoming On Live TV", + "HeaderOtherShowings": "Other Showings", + "Showings": "Showings", + "HeaderConnectToServer": "Connect to Server", + "ConnectToServerManually": "Connect to server manually", + "LabelEnterConnectUserNameHelp": "This is the email address that you used to setup your Emby Connect account.", + "HeaderSignInError": "Sign In Error", + "HeaderManualLogin": "Manual Login", + "PasswordResetConfirmation": "Are you sure you wish to reset the password?", + "ContactAdminToResetPassword": "Please contact your system administrator to reset your password.", + "ForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.", + "ForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:", + "ForgotPasswordFileExpiration": "The reset pin will expire at {0}.", + "InvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.", + "PasswordResetForUsers": "Passwords have been removed for the following users. To login, sign in with a blank password.", + "HeaderForgotPassword": "Forgot Password?", + "ForgotPasswordUsernameHelp": "Leave this blank if you don't remember your username.", + "HeaderPasswordReset": "Password Reset", + "AttributeNew": "New", + "Done": "Done", + "HeaderResetToDefault": "Reset to Default", + "Deinterlacing": "Deinterlacing", + "HeaderBurningInSubtitles": "Burning in Subtitles", + "Premiere": "Premiere", + "LabelPinCode": "Pin code", + "LabelLocalNetworkPinCode": "Local network pin code", + "LabelLocalNetworkPasswordMode": "Local network sign in mode", + "RequirePasswordInLocalNetwork": "Require a password on the local network", + "NoPasswordInLocalNetwork": "Don't require a password on the local network", + "PinCodeInLocalNetwork": "Allow a numeric pin code on the local network", + "LocalNetworkPasswordModeHelp": "Select the sign in method for devices on the same local network as your Emby Server.", + "HeaderLocalNetworkAccess": "Local Network Access", + "Live": "Live", + "Reset": "Reset", + "Repeat": "Repeat", + "Track": "Track", + "Tracks": "Tracks", + "HeaderCameraUpload": "Camera Upload", + "TrackCount": "{0} Tracks", + "ItemCount": "{0} Items", + "NumberChannelsValue": "{0} Channels", + "HeaderLatestMusic": "Latest Music", + "HeaderLatestAudioBooks": "Latest Audio Books", + "HeaderLatestDownloadedVideos": "Latest Downloaded Videos", + "HeaderRecentlyPlayed": "Recently Played", + "Recent": "Recent", + "HeaderFrequentlyPlayed": "Frequently Played", + "HeaderMoreLikeThis": "More Like This", + "HeaderMoreLikeThisOnLiveTV": "More Like This on Live TV", + "OriginalAirDateValue": "Original air date: {0}", + "EndsAtValue": "Ends at {0}", + "Date": "Date", + "AirDate": "Air Date", + "Played": "Played", + "Daily": "Daily", + "Weekly": "Weekly", + "RequireHashMatch": "Require a hash match", + "RequireHashMatchHelp": "Requiring a hash match will filter subtitles to include only those that have been tested with your exact video file. Unchecking this will increase the number of matched subtitles, but will also increase the chances of mistimed or incorrect subtitle text.", + "SearchForForcedSubtitlesOnly": "Forced subtitles only", + "SearchForForcedSubtitlesOnlyHelp": "Requiring forced subtitles will limit results to subtitles that are tagged as having a foreign language.", + "LastEpisodeDateAdded": "Last Episode Date Added", + "LastEpisodeDateAired": "Last Episode Date Released", + "LabelPlaystate": "Playstate", + "Studio": "Studio", + "Tag": "Tag", + "EpisodeTitle": "Episode Title", + "Audio": "Audio", + "Video": "Video", + "Subtitle": "Subtitle", + "Image": "Image", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Audio layout", + "LabelAudioCodec": "Audio codec", + "LabelAudioLanguage": "Audio language", + "LabelSubtitleLanguage": "Subtitle language", + "LabelVideoCodec": "Video codec", + "LabelSubtitleCodec": "Subtitle codec", + "LabelParentalRating": "Parental rating", + "BecauseYouLikeValue": "Because you like {0}", + "BecauseYouWatchedValue": "Because you watched {0}", + "DirectedByValue": "Directed by {0}", + "StarringValue": "Starring {0}", + "Invitations": "Invitations", + "ActorAsRole": "as {0}", + "ButtonOk": "OK", + "GroupItemsIntoCollections": "Group items into collections", + "GroupItemsIntoCollectionsHelp": "Group items based on collections they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "GroupItemsIntoTags": "Group items into tags", + "GroupItemsIntoTagsHelp": "Group items based on tags they've been added to. Enabling certain filters or sort orders may automatically disable this.", + "User": "User", + "Access": "Access", + "Users": "Users", + "Library": "Library", + "Devices": "Devices", + "Cancel": "Cancel", + "Restart": "Restart", + "Shutdown": "Shutdown", + "Logs": "Logs", + "Visibility": "Visibility", + "Notifications": "Notifications", + "SendTestNotification": "Send Test Notification", + "NotificationSent": "Notification sent", + "DeleteNotificationConfirmation": "Are you sure you wish to delete this notification?", + "DeleteNotification": "Delete Notification", + "AddNotification": "Add Notification", + "EditNotification": "Edit Notification", + "LimitUserEventsTo": "Limit user events to", + "LimitLibraryEventsTo": "Limit library events to", + "LimitDeviceEventsTo": "Limit devices events to", + "ForAdditionalNotificationOptions": "Additional notification services can be installed by the server administrator in the Emby {0}plugin catalog{1}.", + "Plugins": "Plugins", + "Systems": "Systems", + "Server": "Server", + "Dashboard": "Dashboard", + "PlayOnAnotherDevice": "Play on another device", + "HeaderConnectionHelp": "Connection Help", + "AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.", + "ButtonGotIt": "Got It", + "RememberMe": "Remember me", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Manage Emby Server", + "ShutdownServer": "Shutdown Emby Server", + "RestartServer": "Restart Emby Server", + "RecordingCancelled": "Recording Cancelled", + "SeriesCancelled": "Series Cancelled", + "Recording": "Recording", + "SeriesRecording": "Series Recording", + "RecordingScheduled": "Recording Scheduled", + "SeriesRecordingScheduled": "Series Recording Scheduled", + "HeaderNewRecording": "New Recording", + "HeaderWakeServer": "Wake Server", + "AttemptingWakeServer": "Attempting to wake server. Please wait...", + "WakeServerSuccess": "Success!", + "HeaderCustomizeHomeScreen": "Customize Home Screen", + "WakeServerError": "Wake On LAN packets were sent to your server machine, but we're unable to connect to your Emby Server. Your machine may need a little more time to wake, or Emby Server may not be actively running on the machine.", + "Days": "Days", + "Network": "Network", + "Networks": "Networks", + "SortByValue": "Sort by {0}", + "HeaderSortBy": "Sort By", + "HeaderPhotoAlbums": "Photo Albums", + "Photos": "Photos", + "HeaderAppearsOn": "Appears On", + "List": "List", + "HeaderRecordSeries": "Record Series", + "HeaderCinemaMode": "Cinema Intros", + "Conversions": "Conversions", + "Downloads": "Downloads", + "HeaderManageDownloads": "Manage Downloads", + "InternalStorage": "Internal storage", + "ExternalStorage": "External storage", + "UploadToFollowingServers": "Upload to Servers", + "UploadingNumItems": "Uploading {0} of {1}", + "DownloadNumItems": "Downloading {0} of {1}", + "HeaderSampleRate": "Sample Rate", + "HeaderReferenceFrames": "Reference Frames", + "HeaderBitDepth": "Bit Depth", + "HeaderPixelFormat": "Pixel Format", + "Profile": "Profile", + "Bitrate": "Bitrate", + "Expand": "Expand", + "Container": "Container", + "Format": "Format", + "Path": "Path", + "Size": "Size", + "Resolution": "Resolution", + "HeaderCodecTag": "Codec Tag", + "Framerate": "Framerate", + "Interlaced": "Interlaced", + "Anamorphic": "Anamorphic", + "Level": "Level", + "Timestamp": "Timestamp", + "Language": "Language", + "Codec": "Codec", + "Stream": "Stream", + "HeaderExtradata": "Extra Data", + "HeaderHardwareAcceleratedTranscoding": "Hardware Accelerated Transcoding", + "HeaderHardwareAcceleratedTranscodingDescription": "Take advantage of your server GPU. Emby has the most advanced and fastests hardware accelleration in the industry.", + "HeaderOfflineDownloads": "Offline Media", + "AndMuchMoreExclamation": "And much more!", + "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", + "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.", + "CinemaModeFeatureDescription": "Cinema Intros give you the true cinema experience with trailers and custom intros before the main feature.", + "HeaderFreeApps": "Free Emby Apps", + "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", + "HeaderBecomeProjectSupporter": "Get Emby Premiere", + "HeaderViewServerInfo": "View Server Info", + "PlaybackTvModeRequiresEmbyPremiere": "Media playback in TV mode requires an active {0}Emby Premiere subscription{1}.", + "FeatureRequiresEmbyPremiere": "This feature requires an active {0}Emby Premiere subscription{1}.", + "HeaderConvertYourRecordings": "Convert Your Recordings", + "Record": "Record", + "Save": "Save", + "Edit": "Edit", + "HeaderSavePlaylist": "Save Playlist", + "Latest": "Latest", + "Download": "Download", + "Downloaded": "Downloaded", + "Converted": "Converted", + "RemoveFromHistory": "Remove from History", + "ConfirmRemoveFromHistory": "Remove this item from the history?", + "Downloading": "Downloading", + "Advanced": "Advanced", + "LinkedToEmbyConnect": "Linked to Emby Connect", + "Delete": "Delete", + "Both": "Both", + "LabelChannelDisplay": "Channel display", + "HeaderDeleteItem": "Delete Item", + "HeaderDeleteUser": "Delete User", + "DeleteItemConfirmation": "Are you sure you wish to delete {0}?", + "DeleteUserConfirmation": "Are you sure you wish to delete user {0}?", + "DeleteUsersConfirmation": "Are you sure you wish to delete these {0} users?", + "HeaderDeleteDevice": "Delete Device", + "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.", + "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library.", + "FollowingFilesWillBeDeleted": "The following files and folders will be deleted:", + "AreYouSureToContinue": "Are you sure you wish to continue?", + "Refresh": "Refresh", + "RefreshingMetadataDots": "Refreshing metadata...", + "ScanningLibraryFilesDots": "Scanning library files...", + "HeaderFavoritesThenByChannelNumber": "Favorites, Then by Channel Number", + "HeaderAddToCollection": "Add to Collection", + "HeaderFavoritesThenByTitle": "Favorites, Then by Title", + "HeaderFavoritesThenByDefault": "Favorites, Then by Default Channel Order", + "HeaderDefaultChannelOrder": "Default Channel Order", + "HeaderAddToFavorites": "Add to Favorites", + "HeaderRemoveFromFavorites": "Remove from Favorites", + "Favorited": "Favorited", + "Unfavorited": "Unfavorited", + "HeaderNewCollection": "New Collection", + "HeaderNewPlaylist": "New Playlist", + "AllCollections": "All Collections", + "AllPlaylists": "All Playlists", + "Create": "Create", + "HeaderAddedToPlaylist": "Added to Playlist", + "HeaderAddedToCollection": "Added to Collection", + "OneItemAddedTo": "1 item added to \"{0}\".", + "ItemsAddedTo": "{0} items added to \"{1}\".", + "HeaderAddedToPlayQueue": "Added to Play Queue", + "HeaderPlayingNext": "Playing Next", + "Help": "Help", + "HeaderGetHelp": "Get Help", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "Navigation": "Navigation", + "HeaderVideoPlayback": "Video Playback", + "TV": "TV", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Seasons", + "OneTrack": "1 Track", + "OneSeason": "1 Season", + "Libraries": "Libraries", + "NumberSeasonsValue": "{0} Seasons", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "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", + "ServerStartup": "Server Startup", + "EmbyServerOnXHasStarted": "Emby Server on {0} has started.", + "LabelScreensaver": "Screensaver", + "LabelSoundEffects": "Sound effects", + "LabelName": "Name", + "NewCollectionNameExample": "Example: Star Wars Collection", + "MessageItemsAdded": "Items added.", + "OptionNew": "New...", + "LabelPlaylist": "Playlist", + "AddToPlaylist": "Add to playlist", + "HeaderAddToPlaylist": "Add to Playlist", + "Subtitles": "Subtitles", + "LabelTheme": "Theme", + "LabelSettingsTheme": "Settings theme", + "LabelThemeAccentColor": "Accent color", + "ThemeAccentColorDescription": "Controls the color of important indicators, icons and text.", + "SearchForSubtitles": "Search for Subtitles", + "LabelLanguage": "Language", + "Search": "Search", + "NoSubtitleSearchResultsFound": "No results found. Have you configured {0}subtitle downloading{1}?", + "NoLyricsSearchResultsFound": "No results found. Have you configured {0}lyrics downloading{1}?", + "Lyrics": "Lyrics", + "SearchForLyrics": "Search for Lyrics", + "Finish": "Finish", + "Exit": "Exit", + "Sleep": "Sleep", + "Setup": "Setup", + "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?", + "ConfirmDeletion": "Confirm Deletion", + "MySubtitles": "My Subtitles", + "MessageDownloadQueued": "Download queued.", + "HeaderEditSubtitles": "Edit Subtitles", + "UnlockGuide": "Unlock Guide", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderRefreshAllMetadata": "Refresh All Metadata", + "ReplaceExistingImages": "Replace existing images", + "ReplaceExistingImagesHelp": "All existing images will be deleted and new ones will be downloaded based on the options for the library. In some cases this may result in fewer available images than before.", + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "ReplaceAllMetadata": "Replace all metadata", + "SearchForMissingMetadata": "Search for missing metadata", + "LabelRefreshMode": "Refresh mode", + "NoItemsFound": "No items found.", + "HeaderSaySomethingLike": "Say Something Like...", + "ButtonTryAgain": "Try Again", + "HeaderYouSaid": "You Said...", + "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.", + "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", + "ValueDiscNumber": "Disc {0}", + "Unrated": "Unrated", + "Favorite": "Favorite", + "Dislike": "Dislike", + "RefreshDialogHelp": "Metadata is updated with new data based on settings and metadata providers that are enabled in Emby library setup.", + "Open": "Open", + "Play": "Play", + "Pause": "Pause", + "HeaderPlayQueue": "Play Queue", + "HeaderAddToPlayQueue": "Add to Play Queue", + "Shuffle": "Shuffle", + "Identify": "Identify", + "HeaderRemoveIdentification": "Remove Identification", + "ResetMetadataConfirmation": "Are you sure you wish to reset all metadata?", + "HeaderEditMetadata": "Edit Metadata", + "Convert": "Convert", + "Resume": "Resume", + "HeaderInstantMix": "Instant Mix", + "HeaderGoToItem": "Go to Item", + "HeaderGoToSeason": "Go to Season", + "HeaderGoToSeries": "Go to Series", + "HeaderGoToAlbum": "Go to Album", + "HeaderGoToArtist": "Go to Artist", + "HeaderPlayAll": "Play All", + "PictureInPicture": "Picture in picture", + "Fullscreen": "Full screen", + "ExitFullscreen": "Exit full screen", + "Rewind": "Rewind", + "FastForward": "Fast-forward", + "Remove": "Remove", + "Rename": "Rename", + "Queue": "Queue", + "QueueAllFromHere": "Queue all from here", + "PlayAllFromHere": "Play all from here", + "PlayFromBeginning": "Play From Beginning", + "FromBeginning": "From Beginning", + "ResumeAt": "Resume from {0}", + "HeaderRemoveFromPlaylist": "Remove from Playlist", + "HeaderRemoveFromPlayQueue": "Remove from Play Queue", + "HeaderRemoveFromCollection": "Remove from Collection", + "Sort": "Sort", + "Trailer": "Trailer", + "SelectNone": "Select None", + "SelectAll": "Select All", + "HeaderMarkPlayed": "Mark Played", + "HeaderMarkUnplayed": "Mark Unplayed", + "HeaderGroupVersions": "Group Versions", + "PleaseSelectTwoItems": "Please select at least two items.", + "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation", + "MessageConfirmRecordingCancellation": "Cancel recording?", + "Album": "Album", + "AlbumArtist": "Album Artist", + "Error": "Error", + "VoiceInput": "Voice Input", + "LabelContentType": "Content type", + "LabelPath": "Path", + "Playlists": "Playlists", + "LabelTitle": "Title", + "LabelOriginalTitle": "Original title", + "LabelSortTitle": "Sort title", + "LabelDateAdded": "Date added", + "DateAdded": "Date Added", + "DateCreated": "Date Created", + "DateModified": "Date Modified", + "DatePlayed": "Date Played", + "DateLastActive": "Date Last Active", + "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings", + "LabelStatus": "Status", + "LabelArtistsHelp": "Separate multiple using ;", + "HeaderAlbumArtists": "Album Artists", + "LabelAlbumArtists": "Album artists", + "LabelAlbum": "Album", + "Artist": "Artist", + "Artists": "Artists", + "ImdbRating": "IMDb Rating", + "CommunityRating": "Community Rating", + "LabelCommunityRating": "Community rating", + "LabelCriticRating": "Critic rating", + "CriticRating": "Critic Rating", + "LabelWebsite": "Website", + "Tagline": "Tagline", + "LabelOverview": "Overview", + "LabelShortOverview": "Short overview", + "LabelReleaseDate": "Release date", + "LabelPlaceOfBirth": "Place of birth", + "Aired": "Aired", + "LabelAirDays": "Air days", + "LabelAirTime": "Air time", + "LabelRuntimeMinutes": "Run time (minutes)", + "LabelCustomRating": "Custom rating", + "LabelOriginalAspectRatio": "Original aspect ratio", + "Label3DFormat": "3D format", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} Downloads", + "HashMatch": "Hash Match", + "EnableExternalVideoPlayers": "Enable external video players", + "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "LabelAirsDuringSeason": "Airs during season", + "LabelAirsAfterSeason": "Airs after season", + "LabelAirsBeforeEpisode": "Airs before episode", + "HeaderExternalIds": "External Ids", + "HeaderDisplaySettings": "Display Settings", + "PlaylistOrder": "Playlist Order", + "CollectionOrder": "Collection Order", + "LabelDisplayOrder": "Display order", + "LabelFileOrder": "File order", + "Display": "Display", + "Countries": "Countries", + "Genres": "Genres", + "Studios": "Studios", + "Tags": "Tags", + "Links": "Links", + "Movie": "Movie", + "Program": "Program", + "Channel": "Channel", + "Episode": "Episode", + "Season": "Season", + "HeaderMetadataSettings": "Metadata Settings", + "People": "People", + "Number": "Number", + "Lock": "Lock", + "HeaderScreenLocked": "Screen Locked", + "HeaderUnlockControls": "Unlock Controls", + "HeaderTapToUnlock": "Tap to Unlock", + "LabelMetadataDownloadLanguage": "Preferred metadata download language", + "LabelImageDownloadLanguage": "Preferred image download language", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "LockThisField": "Lock this field to prevent future changes when refreshing metadata", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "LabelCountry": "Country", + "LabelCertificationCountry": "Certification country", + "CertificationCountryHelp": "This will influence which content rating system is used.", + "LabelDynamicExternalId": "{0} Id", + "LabelBirthYear": "Birth year", + "LabelBirthDate": "Birth date", + "LabelDeathDate": "Death date", + "LabelEndDate": "End date", + "LabelSeasonNumber": "Season number", + "LabelEpisodeNumber": "Episode number", + "LabelTrackNumber": "Track number", + "LabelNumber": "Number", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "SortName": "Sort Title", + "OriginalTitle": "Original Title", + "ReleaseDate": "Release Date", + "Continuing": "Continuing", + "Ended": "Ended", + "HeaderEnabledFields": "Enabled Fields", + "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent its data from being changed.", + "Backdrops": "Backdrops", + "Images": "Images", + "Runtime": "Runtime", + "ProductionLocations": "Production locations", + "BirthLocation": "Birth location", + "ParentalRating": "Parental Rating", + "PlayCount": "Play count", + "Name": "Name", + "Overview": "Overview", + "LabelType": "Type", + "LabelPersonRole": "Role", + "LabelPersonRoleHelp": "Example: Ice cream truck driver", + "Actor": "Actor", + "Composers": "Composers", + "Composer": "Composer", + "Director": "Director", + "GuestStar": "Guest star", + "Producer": "Producer", + "Writer": "Writer", + "MessageNoSyncJobsFound": "No downloads found. Create download jobs using the Download buttons found throughout the app.", + "MessageNoDownloadsFound": "No offline downloads. Download your media for offline use by clicking Download throughout the app.", + "InstallingPackage": "Installing {0}", + "PackageInstallCompleted": "{0} installation completed.", + "PackageInstallFailed": "{0} installation failed.", + "PackageInstallCancelled": "{0} installation cancelled.", + "SeriesYearToPresent": "{0} - Present", + "OneDevice": "1 Device", + "DeviceCountValue": "{0} Devices", + "OneLog": "1 Log", + "LogCountValue": "{0} Logs", + "OneVote": "1 Vote", + "VoteCountValue": "{0} Votes", + "OneLike": "1 Like", + "LikeCountValue": "{0} Likes", + "OneUser": "1 User", + "UserCountValue": "{0} Users", + "OneLibrary": "1 Library", + "LibraryCountValue": "{0} Libraries", + "ValueOneItem": "1 Item", + "ValueOneEpisode": "1 episode", + "ValueEpisodeCount": "{0} episodes", + "Albums": "Albums", + "Song": "Song", + "Songs": "Songs", + "Authors": "Authors", + "Books": "Books", + "AudioBooks": "Audio books", + "HeaderAudioBooks": "Audio Books", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "PleaseEnterNameOrId": "Please enter a name or an external Id.", + "MessageItemSaved": "Item saved.", + "SearchResults": "Search Results", + "ServerNameIsRestarting": "Emby Server - {0} is restarting.", + "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", + "HeaderDeleteItems": "Delete Items", + "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library.", + "PleaseRestartServerName": "Please Restart Emby Server on {0}", + "ConvertingDots": "Converting...", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.", + "DownloadingDots": "Downloading...", + "LearnMore": "Learn more", + "LabelBitrateMbps": "Bitrate (Mbps)", + "ConvertUnwatchedVideosOnly": "Convert unplayed videos only", + "SyncUnwatchedVideosOnly": "Download unplayed videos only", + "ConvertUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be converted.", + "SyncUnwatchedVideosOnlyHelp": "Only videos that are not marked as fully played will be downloaded, and videos will be removed from the device as they are fully played.", + "AutomaticallySyncNewContent": "Automatically download new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.", + "AutomaticallyConvertNewContent": "Automatically convert new content", + "AutomaticallyConvertNewContentHelp": "New content added to this folder will be automatically converted.", + "LabelItemLimit": "Item limit", + "ConvertItemLimitHelp": "Optional. Set a limit to the number of items that will be converted.", + "DownloadItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.", + "PleaseSelectDeviceToSyncTo": "Please select a device to download to.", + "Screenshots": "Screenshots", + "MoveRight": "Move right", + "MoveLeft": "Move left", + "HeaderUploadNewImage": "Upload New Image", + "HeaderDeleteImage": "Delete Image", + "ConfirmDeleteImage": "Delete image?", + "HeaderEditImages": "Edit Images", + "Settings": "Settings", + "ShowIndicatorsFor": "Show Indicators", + "Episodes": "Episodes", + "Programs": "Programs", + "HeaderCastCrew": "Cast & Crew", + "DvrSubscriptionRequired": "Emby Live TV & DVR require an active {0}Emby Premiere subscription{1}.", + "HeaderCancelRecording": "Cancel Recording", + "HeaderKeepRecording": "Keep Recording", + "HeaderCancelSeries": "Cancel Series", + "HeaderKeepSeries": "Keep Series", + "HeaderLearnMore": "Learn More", + "SeriesSettings": "Series settings", + "HeaderRecordingOptions": "Recording Options", + "HeaderDoNotRecord": "Do not record", + "HeaderSeriesOptions": "Series Options", + "Layout": "Layout", + "Channels": "Channels", + "ChannelNameOnly": "Channel {0} only", + "Anytime": "Anytime", + "AnyLanguage": "Any language", + "AroundTime": "Around {0}", + "HeaderLatestMovies": "Latest Movies", + "All": "All", + "Stop": "Stop", + "AllChannels": "All channels", + "NewEpisodesOnly": "New episodes only", + "AllEpisodes": "All episodes", + "LabelStartWhenPossible": "Start when possible", + "LabelStopWhenPossible": "Stop when possible", + "MinutesBefore": "minutes before", + "MinutesAfter": "minutes after", + "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library", + "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.", + "LabelKeepUpTo": "Keep up to", + "AsManyAsPossible": "As many as possible", + "DefaultErrorMessage": "There was an error processing the request. Please try again later.", + "UntilIDelete": "Until I delete", + "UntilSpaceNeeded": "Until space needed", + "Categories": "Categories", + "Sports": "Sports", + "News": "News", + "Movies": "Movies", + "Music": "Music", + "Kids": "Kids", + "MoreFromValue": "More from {0}", + "DiedValue": "Died: {0}", + "BornValue": "Born: {0}", + "EnableColorCodedBackgrounds": "Apply colored backgrounds to shows, based on their category", + "SortChannelsBy": "Sort channels by", + "ChannelNumber": "Channel Number", + "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", + "HeaderTryPlayback": "Try Playback", + "HowDidYouPay": "How did you pay?", + "IHaveEmbyPremiere": "I have Emby Premiere", + "IPurchasedThisApp": "I purchased this app", + "ButtonRestorePreviousPurchase": "Restore Purchase", + "ButtonUnlockWithPurchase": "Unlock with Purchase", + "ButtonUnlockPrice": "Unlock {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Already Paid?", + "ButtonPlayOneMinute": "Play One Minute", + "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", + "HeaderUnlockFeature": "Unlock Feature", + "MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Intros?", + "HeaderPlayMyMedia": "Play my Media", + "HeaderDiscoverEmbyPremiere": "Discover Emby Premiere", + "HeaderNowPlaying": "Now Playing", + "Items": "Items", + "AppName": "App Name", + "OneChannel": "One channel", + "ConfirmRemoveDownload": "Remove download?", + "ConfirmRemoveItem": "Remove item?", + "RemoveDownload": "Remove Download", + "ConfirmCancelConversion": "Cancel conversion?", + "CancelConversion": "Cancel Conversion", + "KeepDownload": "Keep download", + "AddedOnValue": "Added {0}", + "PlayedOnValue": "Played {0}", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "RemovingFromDevice": "Removing from device", + "KeepOnDevice": "Keep on device", + "CancelDownload": "Cancel download", + "SyncJobItemStatusReadyToTransfer": "Ready to Transfer", + "SyncJobItemStatusSyncedMarkForRemoval": "Removing from device", + "SyncJobItemStatusQueued": "Queued", + "SyncJobItemStatusConverting": "Converting", + "SyncJobItemStatusTransferring": "Transferring", + "SyncJobItemStatusSynced": "Downloaded", + "Failed": "Failed", + "SyncJobItemStatusRemovedFromDevice": "Removed from device", + "Cancelled": "Cancelled", + "Retry": "Retry", + "Continue": "Continue", + "ContinueInSecondsValue": "Continue in {0} seconds.", + "HeaderRemoteControl": "Remote Control", + "Disconnect": "Disconnect", + "EnableDisplayMirroring": "Enable display mirroring", + "RemoteAccess": "Remote Access", + "HeaderPlayOn": "Play On", + "Quality": "Quality", + "Auto": "Auto", + "AndroidUnlockRestoreHelp": "To restore your previous purchase, please ensure you're signed into the device with the same Google (or Amazon) account that originally made the purchase. Make sure the app store is enabled and not restricted by any parental controls, and ensure you have an active internet connection. You'll only have to do this once to restore your previous purchase.", + "HeaderAspectRatio": "Aspect Ratio", + "Original": "Original", + "Fill": "Fill", + "Cover": "Cover", + "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.", + "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your Emby Server administrator for more information.", + "Accept": "Accept", + "Reject": "Reject", + "Connect": "Connect", + "HeaderMyMedia": "My Media", + "HeaderMyMediaSmall": "My Media (small)", + "LatestFromLibrary": "Latest {0}", + "HeaderLatestEpisodes": "Latest Episodes", + "ContinuePlaying": "Continue playing", + "ContinueWatching": "Continue watching", + "HeaderLatestChannelMedia": "Latest Channel Items", + "HeaderContinueWatching": "Continue Watching", + "HeaderActiveRecordings": "Active Recordings", + "HeaderLatestRecordings": "Latest Recordings", + "LabelConvertTo": "Convert to", + "LabelDownloadTo": "Download to", + "HeaderDownloadToDots": "Download to...", + "Next": "Next", + "LabelSource": "Source", + "VersionNumber": "Version {0}", + "HeaderAllLanguages": "All Languages", + "Previous": "Previous", + "HeaderNextUp": "Next Up", + "HeaderPlayNextUp": "Play Next Up", + "HeaderLatestFrom": "Latest from {0}", + "LabelHomeScreenSectionValue": "Home screen section {0}", + "PasswordResetComplete": "The password has been reset.", + "PasswordSaved": "Password saved.", + "SettingsSaved": "Settings saved.", + "Upcoming": "Upcoming", + "HeaderSelectImageFile": "Select Image File", + "None": "None", + "More": "More", + "Up": "Up", + "Down": "Down", + "Home": "Home", + "Back": "Back", + "Random": "Random", + "Playback": "Playback", + "Favorites": "Favorites", + "HeaderHomeScreen": "Home Screen", + "HeaderLatestChannelItems": "Latest Channel Items", + "HeaderLibraryOrder": "Library Order", + "HeaderOnNow": "On Now", + "HeaderForKids": "For Kids", + "HeaderPlaybackError": "Playback Error", + "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.", + "RateLimitExceeded": "Your account has exceeded the maximum streaming limit set by your Emby Server administrator. Please contact them for assistance.", + "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.", + "PlaybackErrorNoPlayableItems": "No playable items were found. Are you trying to play an empty folder?", + "Guide": "Guide", + "Games": "Games", + "GameSystem": "Game System", + "Suggestions": "Suggestions", + "HeaderFavoriteChannels": "Favorite Channels", + "HeaderFavoriteCollections": "Favorite Collections", + "HeaderFavoritePlaylists": "Favorite Playlists", + "Collection": "Collection", + "Collections": "Collections", + "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.", + "Mute": "Mute", + "Unmute": "Unmute", + "Folder": "Folder", + "Folders": "Folders", + "FileName": "File Name", + "DisplayInOtherHomeScreenSections": "Display in secondary home screen sections such as latest media and continue watching", + "DisplayInMyMedia": "Display on home screen", + "Shows": "Shows", + "MoviesAndShows": "Movies & Shows", + "HeaderMusicVideo": "Music Video", + "HeaderMusicVideos": "Music Videos", + "MusicVideos": "Music videos", + "Videos": "Videos", + "MixedContent": "Mixed content", + "HomeVideos": "Home videos", + "HomeVideosAndPhotos": "Home videos & photos", + "TVShows": "TV shows", + "HeaderLibraryFolders": "Library Folders", + "HeaderTermsOfPurchase": "Terms of Purchase", + "PrivacyPolicy": "Privacy policy", + "TermsOfUse": "Terms of Use", + "HeaderRepeatMode": "Repeat Mode", + "HeaderToneMapping": "Tone Mapping", + "RepeatOne": "Repeat one", + "RepeatAll": "Repeat all", + "LabelDefaultScreen": "Default screen", + "ConfirmEndPlayerSession": "Would you like to shutdown Emby on {0}?", + "Yesterday": "Yesterday", + "Yes": "Yes", + "No": "No", + "HeaderScanLibraryFiles": "Scan Library Files", + "LiveTV": "Live TV", + "Schedule": "Schedule", + "Recordings": "Recordings", + "ScanForNewAndUpdatedFiles": "Scan for new and updated files", + "NewVersionOfXAvailableForY": "{0} is Available for {1}", + "DirectStreamHelp1": "The media is compatible with the device regarding resolution and media type (H.264, AC3, etc.), but is in an incompatible file container (.mkv, .avi, .wmv, etc.). The video will be re-packaged on the fly before streaming it to the device.", + "DirectStreamHelp2": "Direct Streaming a file uses very little processing power without any loss in video quality.", + "MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.", + "StatsForNerds": "Stats for Nerds", + "HeaderHardwareAcceleratedDecoding": "Hardware Accelerated Decoding", + "HeaderHardwareAcceleratedEncoding": "Hardware Accelerated Encoding", + "HeaderDirectPlay": "Direct Play", + "DirectPlaying": "Direct playing", + "DirectStreaming": "Direct streaming", + "Transcode": "Transcode", + "Transcoding": "Transcoding", + "ContainerBitrateExceedsLimit": "Reducing bitrate due to quality setting", + "VideoCodecNotSupported": "Converting video to compatible codec", + "AudioCodecNotSupported": "Converting audio to compatible codec", + "SubtitleCodecNotSupported": "Converting subtitles directly into video", + "DirectPlayError": "Recovering from playback error", + "ContainerNotSupported": "Converting to compatible container", + "VideoLevelNotSupported": "Converting to compatible video level", + "AudioBitrateNotSupported": "Converting to compatible audio bitrate", + "AudioChannelsNotSupported": "Converting to compatible number of audio channels", + "VideoResolutionNotSupported": "Converting to compatible video resolution", + "AudioProfileNotSupported": "Converting to compatible audio profile", + "AudioSampleRateNotSupported": "Converting to compatible audio sample rate", + "AnamorphicVideoNotSupported": "Anamorphic video not supported", + "InterlacedVideoNotSupported": "Deinterlacing video", + "SecondaryAudioNotSupported": "Selecting secondary audio track", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "There was an error removing the Emby Connect account. Please ensure you have an active internet connection and try again.", + "HeaderEmbyAccountRemoved": "Emby Account Removed", + "MessageEmbyAccontRemoved": "The Emby account has been removed from this user.", + "HeaderInvitationSent": "Invitation Sent", + "Offline": "Offline", + "HeaderSignUp": "Sign Up", + "ServerDownloadMessage": "To download and install the free Emby Server visit {0}", + "ServerDownloadMessageWithoutLink": "To download and install the free Emby Server visit the Emby website.", + "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", + "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Emby.", + "GuestUserNotFound": "User not found. Please ensure the name is correct and try again, or try entering their email address.", + "ErrorReachingEmbyConnect": "There was an error reaching the Emby Connect server. Please ensure you have an active internet connection and try again.", + "ErrorAddingEmbyConnectAccount1": "There was an error adding the Emby Connect account. Have you created an Emby account? Sign up at {0}.", + "ErrorAddingEmbyConnectAccount2": "If you're still having an issue, please send an email to {0} from the email address used with the Emby account.", + "ErrorAddingGuestAccount1": "There was an error adding the Emby Connect account. Has your guest created an Emby account? They can sign up at {0}.", + "ErrorAddingGuestAccount2": "If you're still having an issue, please send an email to {0}, and include your email address as well as theirs.", + "MessageEmbyAccountAdded": "The Emby account has been added to this user.", + "MessagePendingEmbyAccountAdded": "The Emby account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderEmbyAccountAdded": "Emby Account Added", + "Skip": "Skip", + "HeaderAdditionalParts": "Additional Parts", + "ButtonGenerateNewPin": "Generate New Pin", + "ConnectLoginHelp1": "With Emby Connect you can easily access your Emby Server wherever you are and share servers with your family and friends.", + "CreatePinErrorMessage": "An error occurred while creating a pin code. Please click Generate New Pin to try again.", + "PinExpiredMessage": "The pin code has expired. Please click Generate New Pin to try again.", + "ConnectPinCodeHeader": "To sign in with Emby Connect, use a mobile device or computer to visit {0} and enter the following pin code:", + "LabelSubtitlePlaybackMode": "Subtitle mode", + "ErrorDeletingItem": "There was an error deleting the item from Emby Server. Please check that Emby Server has write access to the media folder and try again.", + "NoSubtitles": "No subtitles", + "Default": "Default", + "Absolute": "Absolute", + "Smart": "Smart", + "Small": "Small", + "Smaller": "Smaller", + "Medium": "Medium", + "Large": "Large", + "Larger": "Larger", + "ExtraLarge": "Extra large", + "ExtraSmall": "Extra small", + "Forced": "Forced", + "External": "External", + "HeaderEmbeddedTitle": "Embedded Title", + "OnlyForcedSubtitles": "Only forced subtitles", + "AlwaysPlaySubtitles": "Always play subtitles", + "DefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", + "SmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "HeaderSubtitleSettings": "Subtitle Settings", + "HeaderSubtitleAppearance": "Subtitle Appearance", + "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", + "AutoSelectHearingImpairedHelp": "Subtitles matching the language preference will be loaded, with a preference given to tracks that are marked as hearing impaired (SDH).", + "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", + "NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.", + "LabelPreferredSubtitleLanguage": "Preferred subtitle language", + "LabelTextSize": "Text size", + "TheseSettingsAffectSubtitlesOnThisDevice": "These settings affect subtitles on this device", + "LabelDropShadow": "Drop shadow", + "LabelTextBackgroundColor": "Text background color", + "LabelWindowBackgroundColor": "Text background color", + "LabelFont": "Font", + "LabelTextColor": "Text color", + "LabelBackgroundColor": "Background color", + "LabelBackgroundOpacity": "Background opacity", + "Raised": "Raised", + "Depressed": "Depressed", + "Uniform": "Uniform", + "DropShadow": "Drop shadow", + "SmallCaps": "Small caps", + "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS/SSA).", + "Normal": "Normal", + "HeaderWaitingForWifi": "Waiting for Wifi", + "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", + "DownloadOnlyOnWifi": "Download only on Wifi", + "LabelMusicDownloadQuality": "Music download quality", + "MusicDownloadQualityHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", + "HeaderDownloadSettings": "Download Settings", + "LabelDownloadLocation": "Download location", + "BrowseForFolder": "BrowseForFolder", + "Unlimited": "Unlimited", + "NoLimit": "No limit", + "Hide": "Hide", + "HeaderKeepWatching": "Keep Watching", + "HeaderNextEpisode": "Next Episode", + "AudioBitDepthNotSupported": "Converting to compatible audio bit depth", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Converting to compatible video profile", + "VideoFramerateNotSupported": "Converting to compatible video framerate", + "VideoBitDepthNotSupported": "Converting to compatible video bit depth", + "RefFramesNotSupported": "Converting to compatible number of video reference frames", + "ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.", + "HeaderStopRecording": "Stop Recording", + "ManageRecording": "Manage recording", + "LabelDropImageHere": "Drag and drop image here, or click to select an image to upload.", + "MessageFileReadError": "There was an error reading the file. Please try again.", + "Browse": "Browse", + "HeaderUploadImage": "Upload Image", + "HeaderAddUpdateImage": "Add/Update Image", + "HeaderShowFields": "Show Fields", + "LabelView": "View", + "LabelImageType": "Image type", + "Upload": "Upload", + "Primary": "Primary", + "PrimaryImageBlur": "Primary image blur", + "Art": "Art", + "Backdrop": "Backdrop", + "Banner": "Banner", + "Box": "Box", + "BoxRear": "Box (Rear)", + "Disc": "Disc", + "Logo": "Logo", + "LogoDark": "Logo (Dark Version)", + "LogoLight": "Logo (Light Version)", + "LogoLightColor": "Logo (Light with Color)", + "Menu": "Menu", + "Screenshot": "Screenshot", + "Thumb": "Thumb", + "HeaderAudioSettings": "Audio Settings", + "LabelAudioLanguagePreference": "Preferred audio language", + "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", + "HeaderVideoQuality": "Video Quality", + "CinemaModeConfigurationHelp": "Cinema Intros bring the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", + "ShowUpNextPreview": "Show up next preview", + "ShowUpNextPreviewHelp": "Show information for the next item near the end of the current one.", + "PlayNextEpisodeAutomatically": "Play next episode automatically", + "LabelMaxChromecastBitrate": "Chromecast streaming quality", + "LabelSkipBackLength": "Skip back length", + "LabelSkipForwardLength": "Skip forward length", + "EnableCinemaMode": "Enable Cinema Intros", + "LabelInternetQuality": "Remote streaming quality", + "LabelCellularQuality": "Remote streaming quality (cellular)", + "HeaderMusicQuality": "Music Quality", + "LabelHomeNetworkQuality": "Home streaming quality", + "HeaderLatestMedia": "Latest Media", + "HeaderRestartingEmbyServer": "Restarting Emby Server", + "RestartPleaseWaitMessage": "Please wait while Emby Server shuts down and restarts. This may take a minute or two.", + "HeaderPlayNext": "Play Next", + "AutoBasedOnLanguageSetting": "Auto (based on device setting)", + "SameAsMainTheme": "Same as main theme", + "LabelDateTimeLocale": "Date time locale", + "DirectorValue": "Director: {0}", + "DirectorsValue": "Directors: {0}", + "GenreValue": "Genre: {0}", + "GenresValue": "Genres: {0}", + "TagsValue": "Tags: {0}", + "Off": "Off", + "Title": "Title", + "Year": "Year", + "Filter": "Filter", + "Filters": "Filters", + "Unplayed": "Unplayed", + "LabelTVHomeScreen": "TV mode home screen", + "Horizontal": "Horizontal", + "Vertical": "Vertical", + "HeaderGroupBy": "Group By", + "HeaderMediaType": "Media Type", + "GroupBySeries": "Group by series", + "HeaderVideoType": "Video Type", + "HeaderSeriesStatus": "Series Status", + "Features": "Features", + "Trailers": "Trailers", + "Extras": "Extras", + "ThemeSongs": "Theme songs", + "ThemeVideos": "Theme videos", + "HeaderFavoriteMovies": "Favorite Movies", + "HeaderFavoritePhotos": "Favorite Photos", + "HeaderFavoriteShows": "Favorite Shows", + "HeaderFavoriteEpisodes": "Favorite Episodes", + "HeaderFavoriteVideos": "Favorite Videos", + "HeaderFavoriteMusicVideos": "Favorite Music Videos", + "HeaderFavoriteGames": "Favorite Games", + "HeaderFavoriteArtists": "Favorite Artists", + "HeaderFavoriteAlbums": "Favorite Albums", + "HeaderFavoriteSongs": "Favorite Songs", + "HeaderFavoriteAuthors": "Favorite Authors", + "HeaderFavoriteAudioBooks": "Favorite Audio Books", + "Ascending": "Ascending", + "Descending": "Descending", + "HeaderColorPrimaries": "Color Primaries", + "HeaderColorSpace": "Color Space", + "HeaderColorTransfer": "Color Transfer", + "HeaderVideoRange": "Video Range", + "SeriesDisplayOrderHelp": "Order episodes by air date, dvd order, or absolute numbering.", + "LabelVerticalPositionFromBottom": "Vertical position (from bottom)", + "HeaderFavoritePeople": "Favorite People", + "MultiSelect": "Multi-Select", + "HeaderSignOut": "Sign Out", + "HeaderSelectServer": "Select Server", + "HeaderChangeServer": "Change Server", + "HeaderChangeUser": "Change User", + "HeaderAppSettings": "App Settings", + "HeaderLoginSettings": "Login Settings", + "LabelRememberLogin": "Remember login", + "LabelAutomaticallySignOut": "Automatically sign out", + "BetaTesterMessage": "Thank you for being an Emby beta tester! Please leave feedback in the {0}Testing Area of the Emby Community{1}.", + "HardwareAccelerated": "Hardware accelerated", + "Software": "Software", + "Metadata": "Metadata", + "HeaderMediaInfo": "Media Info", + "Locked": "Locked", + "HeaderSplitVersionsApart": "Split Versions Apart", + "Any": "Any", + "Admin": "Admin", + "HeaderReadMore": "Read More", + "CustomRatingHelp": "A custom rating is used for parental control evaluations but is not displayed. The parental rating field is still displayed.", + "KeepUpToHelp": "Recordings over the limit are deleted when the next recording begins. Oldest recordings are deleted first, by date added.", + "NoItemsMatchingFound": "No items matching your search criteria were found.", + "TwoSearchCharsRequired": "Please enter at least two search characters.", + "PreventPlaybackContinuing": "Prevent playback from continuing indefinitely by periodically prompting for user input.", + "PromptStillWatching": "Enable 'Are You Still Watching?' prompt", + "HeaderMissingMetadata": "Missing Metadata", + "HeaderIncludedIn": "Included In", + "EmbyConnectUserAlreadyLinked": "The Emby Connect user is already linked to another user on this server.", + "VideoFilesWillBeConvertedTo": "Converted videos will be saved as {0}.", + "VideoWillBeConvertedTo": "Video streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "VideoWillBeConvertedToOrCopied": "Video streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "AudioWillBeConvertedTo": "Audio streams will be converted to {0}, or copied from the original file if they are already {0} and the quality fits within the conversion options.", + "AudioWillBeConvertedToOrCopied": "Audio streams will be converted to {0}, or copied from the original file if they are any of ({1}), and the quality fits within the conversion options.", + "FollowingSpecialKeys": "The following special keys are supported on most keyboards and remote controls:", + "HeaderDeleteSeries": "Delete Series", + "HeaderDeleteLastPlayedEpisode": "Delete Last Played Episode", + "HeaderConnectingToServer": "Connecting to Server", + "ServerNameValue": "Server name: {0}", + "DomainValue": "Domain: {0}", + "RatedValue": "Rated {0}", + "LocalServerRedirectMessage": "You will now be redirected to the domain owned and operated by the administrator of the server you've chosen to connect to:", + "AllMediaOwnedHosted": "All media is hosted and managed by the owner of {0}.", + "EnableResolutionSwitching": "Match video resolution", + "EnableResolutionSwitchingHelp": "This enables Emby to change the resolution to the same value the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "EnableDisplayRefreshRateSwitching": "Enable display refresh rate switching", + "EnableDisplayRefreshRateSwitchingHelp": "This enables Emby to change the display refresh rate to the same value (or multiple of) as the framerate the video was encoded in before starting playback. This may help minimize the amount of stutter/judder that you might otherwise see when playing videos which do not match up well.", + "RememberSelectedAudioTracks": "Remember audio track selections", + "RememberSelectedSubtitleTracks": "Remember subtitle track selections", + "RememberSelectedSubtitleTracksHelp": "Subtitle track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "RememberSelectedAudioTracksHelp": "Audio track selections will be remembered on a per video basis and reapplied when playing the same video again.", + "ClearSavedTrackSelections": "Clear saved track selections", + "HeaderClearTrackSelections": "Clear Saved Track Selections", + "QuestionClearSavedTracks": "Clear all saved track selections?", + "LabelChannelTags": "Channel tags", + "AfterThisPlaysConfirmation": "After this plays, do you want to keep playing or clear the music you previously queued?", + "Keep": "Keep", + "Clear": "Clear", + "HeaderClearFilters": "Clear Filters", + "HeaderSearchForImages": "Search for Images", + "HeaderSearchNewImage": "Search for a New Image", + "HeaderSearchForAnImage": "Search for an Image", + "DragDropToReorder": "Drag and Drop to Reorder", + "HeaderAddImageFromUrl": "Add Image from URL", + "HeaderSetImageFromUrl": "Set Image from URL", + "LabelUrl": "Url", + "LabelChannelNumber": "Channel number", + "LabelGuideDataChannel": "Guide data channel", + "GuideDataSource": "Guide Data Source", + "HeaderCopyToClipboard": "Copy to Clipboard", + "TimeRemainingValue": "{0} remaining", + "LabelResumeRewindSeconds": "When resuming, automatically rewind", + "ResumeRewindSecondsHelp": "This may help you remember where you left off. This applies to the initial resume and not each individual pause during playback.", + "HeaderSavePlayQueueToPlaylist": "Save Play Queue to Playlist", + "EnableLogoImagesAsTitle": "Display logo images as titles on detail screens", + "EnableLogoImagesAsTitleHelp": "When available, logo images can be used in place of title text on video, series, and other detail screens. The title will fallback to text when a logo image is not available.", + "LabelNowPlayingAudioBackgroundStyle": "Now playing audio background style", + "LabelNowPlayingVideoBackgroundStyle": "Now playing video background style", + "NowPlayingVideoBackgroundStyleHelp": "Determines the background style when remote controlling video playback on another device.", + "Rotation": "Rotation", + "Minutes": "Minutes", + "LabelMaxRecordingLength": "Max recording length", + "MaxRecordingLengthHelp": "Limit recordings to a specified amount of time, regardless of the duration of the broadcast. Set to 0 for no limit.", + "RemoteWAN": "Remote (WAN) Address", + "HeaderLastConnectedTo": "Last Connection To", + "Version": "Version", + "Keyword": "Keyword", + "HeaderServerAddress": "Server Address", + "HeaderSkipIntro": "Skip Intro", + "HeaderCreateRecording": "Create Recording", + "HeaderAddRecording": "Add Recording", + "HeaderChannelAndTime": "Channel and Time", + "LabelRecordProgramOrSeriesFrom": "Record a program or series from", + "LabelStartTime": "Start time", + "LabelEndTime": "End time", + "LabelFrequency": "Frequency", + "Recurring": "Recurring", + "Once": "Once", + "Start": "Start", + "Unpause": "Unpause", + "LabelIntroSkipMode": "Intro skip mode", + "ShowSkipIntroButton": "Show 'Skip Intro' button", + "AutoSkipIntro": "Automatically skip intros", + "DisplayRatingInformationOnVideoPlaybackStart": "Display rating information on video playback start", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "The rating information will display briefly when video playback begins.", + "IntroSkipModeHelp": "Display a 'Skip Intro' button or automatically skip intros for episodes in which Emby Server has detected intro markers. Intro detection must be enabled in Emby Server library options.", + "EnableHomeScreenFocusPreview": "Use a layout on the home screen that shows a detailed preview of the selected item", + "EnableHomeScreenFocusPreviewHelp": "This may not work well if your home screen contains a mixture of different media types.", + "LabelHideMediaTransportButtons": "Hide video player transport buttons", + "HideMediaTransportButtonsHelp": "Create a simpler on-screen playback interface by hiding basic transport buttons such as skip forward, back and pause. You'll still be able to use these functions using arrow keys and OK/Enter. Auto will hide the transport buttons when no mouse usage is detected within the app.", + "ImageSizeHelp": "Set your preferred size of image grids.", + "LabelImageSize": "Image size", + "ThisImageIsOnlyPreview": "This image is only a preview that came from the metadata search engine. The actual image that Emby Server downloads may be different and will depend on the options you've configured in Emby library setup.", + "ResultsRangeValue": "{0} to {1} of {2}", + "NotificationsDescription": "Setup notifications to stay informed of important events on your Emby Server.", + "DeleteEmbyConnectAccount": "Delete Emby Connect Account", + "DeleteEmbyConnectAccountHelp": "To delete your Emby Connect account, please sign in to the {0}Emby Community{1} at {2}. Once signed in, then click your username in the top right, then click Account Settings, then click Delete My Account.", + "KeepPlayingInBackground": "Keep playing in the background", + "LabelVideoBackBehavior": "Video player back button behavior", + "HeaderViewLyrics": "View Lyrics", + "HeaderViewMissingEpisodes": "View Missing Episodes", + "HeaderMissingEpisodes": "Missing Episodes", + "HeaderManageAccess": "Manage Access", + "HeaderManageCollaboration": "Manage Collaboration", + "HeaderLeaveCollaboration": "Leave Collaboration", + "HeaderRemoveFromLibrary": "Remove from Library", + "RemoveSharedItemConfirmation": "Are you sure you wish to remove this item from your library? In order to get it back the owner will need to grant you access again.", + "SubtitlesDownloaded": "Subtitles Downloaded", + "HeaderMakePrivate": "Make Private", + "HeaderMakePublic": "Make Public", + "MakePublicDescription": "All users will be able to view this item. Users can be granted access to edit.", + "MakePrivateDescription": "Users can still be granted access individually.", + "Private": "Private", + "Public": "Public", + "Collaborative": "Collaborative", + "PreferredShowDisplay": "Preferred TV show display", + "ShowAllEpisodesAllSeasons": "Show all episodes of all seasons together", + "ShowAllEpisodesSingleSeason": "Show all episodes for only single season shows", + "ShowSeasonFolders": "Always show season folders", + "HeaderAddAgain": "Add Again", + "UpNext": "Up Next", + "ItemsAlreadyInPlaylist": "Some of these items are already in your playlist.", + "ItemAlreadyInPlaylist": "This item is already in your playlist.", + "HeaderPlayChannel": "Play Channel", + "LabelScreenOrientationDuringVideo": "Screen orientation during video playback", + "UseDeviceSetting": "Use device setting", + "LockToLandscape": "Lock to landscape", + "UsernameForFolderHelp": "The username required to access this folder on your network (if applicable).", + "PasswordForFolderHelp": "The password required to access this folder on your network (if applicable).", + "ShowMediaInfoOnDetailScreens": "Show full media at the bottom of audio and video detail screens", + "ForgotPasswordNoUserFound": "No users were found with the entered name. Please try again, or leave the name blank to reset the password for all users on this server.", + "Silver": "Silver", + "DimGray": "Dim Gray", + "DarkGray": "Dark Gray", + "LightGray": "Light Gray", + "Black": "Black", + "Blue": "Blue", + "Cyan": "Cyan", + "Gray": "Gray", + "Green": "Green", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Orange", + "Pink": "Pink", + "Red": "Red", + "Yellow": "Yellow", + "White": "White", + "Purple": "Purple", + "RecentlyReleasedMovies": "Recently Released Movies", + "RecentlyReleasedEpisodes": "Recently Released Episodes", + "DolbyProfile": "Dolby Profile", + "IpAddress": "IP Address", + "VideoType": "Video Type", + "HidePlayedMediaFrom": "Hide Played Media From", + "BottomEdgePosition": "Bottom Edge Position", + "VerticalPositionFromBottomScreen": "Set the vertical position of the subtitles relative to the bottom of the screen.", + "TopEdgePosition": "Top Edge Position", + "TopEdgePositionHelp": "Set the highest allowed vertical position of the subtitles relative to the top of the screen. This is used when the subtitles contain positioning instructions to be placed at the top.", + "HeaderSubtitlePosition": "Subtitle Position", + "TitleProfilePin": "Profile PIN", + "ProfilePinConfirm": "Profile PIN (confirm)", + "SaveProfilePin": "Save Pin", + "ProfilePinDescription": "Create an optional pin to be prompted for entry whenever you return to an Emby app on a device that you've already signed into. This is useful if you have devices that are shared by multiple users. You can choose to enable it selectively on each device as required.", + "TitleNewEpisodes": "New Episodes", + "EnterYourPinToContinue": "Enter your PIN to continue.", + "YourPinMustBe": "Your PIN must be {0} digits.", + "ForgotPin": "Forgot PIN?", + "RequireEnteringPinToReturn": "Require entering my profile PIN whenever I return to this app.", + "RequireEnteringPinToReturnQuestion": "Should we prompt you for your profile PIN whenever you return to this app? If this device is shared by multiple users, your profile PIN can help prevent the other users from accessing your data.", + "RequireEnteringPinToReturnHelp": "Useful if this device is shared by multiple users.", + "WrongPinPleaseTryAgain": "Whoops, wrong PIN. Please try again.", + "ProfilePinIsOn": "Profile PIN is currently on.", + "IfTryingToConnectToHttp": "If you're trying to connect to your Emby Server using an HTTP address, your browser may not be allowing this due to HTTPS requirements. Please try one of the following:", + "SetupHttpsForYourServer": "Setup {0}HTTPS for your Emby Server{1} so that you can connect using HTTPS.", + "TitleUnableToReachServer": "Unable to Reach Server", + "TitleUnableToReachName": "Unable to Reach {0}", + "HearingImpaired": "Hearing Impaired", + "SignIntoServerName": "Sign in to {0}", + "About": "About", + "Specials": "Specials", + "NSettings": "{0} Settings", + "NPreferences": "{0} Preferences", + "DetailScreenOptions": "Detail Screens", + "LabelGenreDisplayLimit": "Genre display limit", + "GenreDisplayLimitHelp": "Limit the number of genres displayed at the top of item detail screens.", + "GenreDisplayLimitForListsHelp": "Limit the number of genres displayed at the top of playlist, collection and artist detail screens.", + "LabelGenreDisplayLimitForLists": "Genre display limit for lists", + "ShowPosterOnDetails": "Show a poster on the detail screen", + "ShowPosterOnDetailsHelp": "Choose to show a poster on video detail screens, or hide it for a more minimal look that emphasizes the background. This setting is not used on smaller screen layouts. Some item types will ignore this setting.", + "EnableAppLogging": "Enable app logging", + "EnableAppLoggingHelp": "Logging can degrade app performance and should only be enabled as needed for troubleshooting purposes. Changes require restarting the app.", + "LabelSlideshowInterval": "Photo slideshow time per slide", + "TVChannelImageEditorHelp": "Multiple logo versions are supported. Emby apps will automatically choose the appropiate one depending on the current theme.", + "PlaySlideshow": "Play Slideshow", + "CheckForExistingEpisodesInAllLibraries": "Check for existing episodes in all libraries", + "GroupNotificationsBySeriesOrAlbum": "Group notifications by series and albums", + "ThemeSettings": "Theme Settings", + "FollowingActivityWillBeDisrupted": "The following activity will be disrupted and may require manual intervention to restart:", + "OneActivePlaybackSession": "1 Active Playback Session", + "NumActivePlaybackSessions": "{0} Active Playback Sessions", + "OneActiveRecording": "1 Active Recording", + "NumActiveRecordings": "{0} Active Recordings", + "PlayFromLivePosition": "Play from the live position", + "PlayFromStartOfRecording": "Play from the start of the recording", + "ThisChannelIsActivelyRecording": "This channel is actively recording. How would you like to begin playing?", + "ThemeSongVolume": "Theme song volume", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Remember last user", + "ShowLoginScreen": "Show login screen", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up button behavior", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/tr.json b/modules/common/strings/tr.json new file mode 100644 index 0000000..9e3d0c0 --- /dev/null +++ b/modules/common/strings/tr.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Mevcut video önizleme küçük resimlerini değiştirin", + "ReplaceExistingThumbnailImagesHelp": "Kitaplık seçeneklerinde etkinleştirilmişse, mevcut tüm video önizleme küçük resimleri silinecek ve yenileri oluşturulacaktır.", + "DateCreated": "Oluşturulma Tarihi", + "CreatedOnValue": "{0} oluşturuldu", + "UpdatedOnValue": "{0} güncellendi", + "EmbyLoginTerms": "Emby, ev videoları ve fotoğrafları gibi kişisel medya kütüphanenizi yönetmenize yardımcı olmak için tasarlanmıştır. Lütfen {0}kullanım şartlarımıza{1} bakın. Herhangi bir Emby yazılımının kullanılması, bu koşulların kabul edildiğini gösterir.", + "MessageUnableToConnectToServer": "Şu anda seçili sunucuya bağlanamıyoruz. Lütfen çalıştığından emin olun ve tekrar deneyin.", + "EmbyIntroMessage": "Emby ile videoları, müzikleri ve fotoğrafları Emby Sunucu'nuzdan akıllı telefonlara, tabletlere ve diğer cihazlara kolayca aktarabilirsiniz.", + "HeaderSignInWithConnect": "Emby Connect ile oturum açın", + "HeaderWelcomeToEmby": "Emby'ye hoş geldiniz", + "HeaderNewUsers": "Yeni Kullanıcılar", + "HeaderPleaseSignIn": "Lütfen Oturum Açın", + "MessageInvalidUser": "Geçersiz kullanıcı adı veya parola. Lütfen tekrar deneyin.", + "MessageUnlockAppWithPurchaseOrSupporter": "Tek seferlik küçük bir satın alımla veya etkin bir Emby Prömiyer aboneliğiyle bu özelliğin kilidini açın.", + "MessageUnlockAppWithSupporter": "Aktif bir Emby Prömiyer aboneliğiyle bu özelliğin kilidini açın.", + "MessageToValidateSupporter": "Aktif bir Emby Prömiyer aboneliğiniz varsa, ana menüden Emby Prömiyer 'e tıklayarak erişebileceğiniz Emby Sunucu Panonuzda Emby Prömiyer 'i kurduğunuzdan emin olun.", + "ValueSpecialEpisodeName": "Özel - {0}", + "HeaderSignIn": "Oturum Aç", + "Share": "Paylaş", + "Shared": "Paylaşılan", + "Info": "Bilgi", + "Add": "Ekle", + "Speed": "Hız", + "PlaybackSpeed": "Oynatma Hızı", + "Chapters": "Bölümler", + "Password": "Parola", + "SavePassword": "Şifre Kaydet", + "LabelPassword": "Parola", + "HeaderResetPassword": "Parolayı Sıfırla", + "Series": "Seriler", + "Preview": "Önizleme", + "Submit": "Gönder", + "Never": "Asla", + "Table": "Tablo", + "HeaderScheduledTasks": "Zamanlanmış Görevler", + "Plays": "Oynar", + "LastUsedAddressValue": "Son kullanılan {0}", + "LabelKeywordType": "Anahtar kelime türü", + "HeaderSelectColumns": "Sütunları Seçin", + "HeaderTopResults": "En İyi Sonuçlar", + "HeaderPinSidebar": "Kenar Çubuğunu Sabitle", + "Collapse": "Çökme", + "LabelBackgroundVideoPlayback": "Arka planda video oynatma", + "BackgroundVideoPlaybackHelp": "Arka planda oynatma, videonun ekran kapalıyken bile oynatılmaya devam etmesini sağlar.", + "AlwaysOn": "Her zaman açık", + "HeadphonesOrExternalSpeakersConnected": "Bağlı kulaklıklar veya harici hoparlörler", + "HeaderKeyboardAndRemote": "Klavye ve Uzaktan Kumanda", + "NoSelectedItemsSupportOperation": "Bu işlemi destekleyen hiçbir öğe seçilmedi.", + "NoOperationsForSelectedItems": "Seçili öğeler için kullanılabilir bir işlem yok.", + "UploadOnlyOnWifi": "Sadece Wifi üzerinden yükle", + "HeaderFoldersToUpload": "Yüklenecek Klasörler", + "LabelPasswordConfirm": "Parola (onayla)", + "HeaderMoveUpInOrder": "Sırayla Yukarı Taşı", + "HeaderDownUpInOrder": "Sırayla Aşağı Taşı", + "LabelUsername": "Kullanıcı adı", + "HeaderAddServer": "Sunucu Ekle", + "HeaderSubtitleOffset": "Altyazı Sapma", + "Watching": "İzleniyor", + "HeaderRemoveFromContinueWatching": "\"İzlemeye Devam Et\" bölümünden kaldır", + "RemoveThisTitleFromContinueWatching": "Bu başlık \"İzlemeye Devam Et\" bölümünden kaldırılsın mı?", + "HeaderRemoveFromContinueListening": "Dinlemeye Devam Et'ten kaldırın", + "RemoveThisTitleFromContinueListening": "Bu başlığı Dinlemeye Devam Et'ten kaldıralım mı?", + "HeaderIncreaseSubtitleOffset": "Altyazı Ofsetini Artır", + "HeaderDecreaseSubtitleOffset": "Altyazı Ofsetini Azalt", + "Close": "Kapat", + "HeaderSeeAll": "Hepsini Gör", + "HeaderOpenInNewWindow": "Yeni Pencerede Aç", + "LabelEmail": "E-posta", + "LabelHost": "Sunucu", + "LabelHostHelp": "Örnek: 192.168.1.100 veya https://myserver.com", + "LabelPort": "Port", + "Disabled": "Devre dışı", + "Uninstall": "Kaldır", + "Enable": "Etkinleştir", + "AllTuners": "Tüm Tunerler", + "Disable": "Devre Dışı Bırak", + "NextValue": "İleri: {0}", + "HeaderNextItem": "Sonraki Öğe", + "HeaderPreviousItem": "Önceki Öğe", + "NoTrailersMessage": "Fragman bulunamadı. Fragman eklemek için lütfen {0}Emby eklenti kataloğundan{1} Fragman eklentisini yükleyin.", + "UninstallPluginConfirmation": "Bu eklentiyi kaldırmak istediğinden emin misiniz?", + "HeaderUninstallPlugin": "Eklentiyi Kaldır", + "AreYouStillWatching": "Hâlâ izliyor musun?", + "LabelCurrentPassword": "Mevcut parola", + "LabelNewPassword": "Yeni parola", + "LabelNewPasswordConfirm": "Yeni parolayı onayla", + "HeaderRemovePassword": "Parolayı Kaldır", + "ServerUpdateNeeded": "Bu Emby Sunucu'sunun güncellenmesi gerekiyor. En son sürümü indirmek için lütfen {0} adresini ziyaret edin", + "MessageThankYouForConnectSignUp": "Emby Connect'e kaydolduğunuz için teşekkür ederiz. Adresinize, yeni hesabınızı nasıl onaylayacağınıza ilişkin talimatları içeren bir e-posta gönderilecektir. Lütfen hesabı onaylayın ve ardından oturum açmak için buraya geri dönün.", + "MessageThankYouForConnectSignUpNoValidation": "Emby Connect'e kaydolduğunuz için teşekkür ederiz! Şimdi Emby Connect bilgilerinizle oturum açmanız istenecek.", + "ErrorMessagePasswordNotMatchConfirm": "Parola ve parola onayı eşleşmelidir.", + "ErrorMessageUsernameInUse": "Bu kullanıcı adı halihazırda kullanılıyor. Lütfen yeni bir isim seçin ve tekrar deneyin.", + "ErrorMessageEmailInUse": "Bu e-posta adresi zaten kullanılıyor. Lütfen yeni bir e-posta adresi girin ve tekrar deneyin veya parolamı unuttum özelliğini kullanın.", + "HeaderUpcomingOnTV": "Yakında Canlı TV'de", + "HeaderOtherShowings": "Diğer Gösterimler", + "Showings": "Gösterimler", + "HeaderConnectToServer": "Sunucuya Bağlan", + "ConnectToServerManually": "Sunucuya manuel olarak bağlanın", + "LabelEnterConnectUserNameHelp": "Bu, Emby Connect hesabınızı kurmak için kullandığınız e-posta adresidir.", + "HeaderSignInError": "Oturum Açma Hatası", + "HeaderManualLogin": "Manuel Giriş", + "PasswordResetConfirmation": "Parolayı sıfırlamak istediğinizden emin misiniz?", + "ContactAdminToResetPassword": "Parolanızı sıfırlamak için lütfen sistem yöneticinize başvurun.", + "ForgotPasswordInNetworkRequired": "Parola sıfırlama sürecini başlatmak için lütfen ev ağınızda tekrar deneyin.", + "ForgotPasswordFileCreated": "Aşağıdaki dosya sunucunuzda oluşturulmuştur ve nasıl ilerleyeceğinize dair talimatları içerir:", + "ForgotPasswordFileExpiration": "Sıfırlama şifresinin süresi {0} itibarıyla dolacak.", + "InvalidForgotPasswordPin": "Geçersiz veya süresi dolmuş bir pin girildi. Lütfen tekrar deneyin.", + "PasswordResetForUsers": "Aşağıdaki kullanıcılar için parolalar kaldırıldı. Giriş yapmak için boş parola ile giriş yapın.", + "HeaderForgotPassword": "Şifrenizi mi unuttunuz?", + "ForgotPasswordUsernameHelp": "Kullanıcı adınızı hatırlamıyorsanız bunu boş bırakın.", + "HeaderPasswordReset": "Parola Sıfırla", + "AttributeNew": "Yeni", + "Done": "Bitti", + "HeaderResetToDefault": "Varsayılana Sıfırla", + "Deinterlacing": "Çözümleme (Deinterlace)", + "HeaderBurningInSubtitles": "Altyazıların Gömülmesi", + "Premiere": "Prömiyer", + "LabelPinCode": "Pin kodu", + "LabelLocalNetworkPinCode": "Yerel ağ pin kodu", + "LabelLocalNetworkPasswordMode": "Yerel ağ oturum açma modu", + "RequirePasswordInLocalNetwork": "Yerel ağda bir parolayı zorunlu kıl", + "NoPasswordInLocalNetwork": "Yerel ağda parolayı zorunlu kılma", + "PinCodeInLocalNetwork": "Yerel ağda sayısal bir pin koduna izin verin", + "LocalNetworkPasswordModeHelp": "Emby Sunucu'nuz ile aynı yerel ağdaki cihazlar için oturum açma yöntemini seçin.", + "HeaderLocalNetworkAccess": "Yerel Ağ Erişimi", + "Live": "Canlı", + "Reset": "Sıfırla", + "Repeat": "Tekrar", + "Track": "Parça", + "Tracks": "Parçalar", + "HeaderCameraUpload": "Kamera Yükle", + "TrackCount": "{0} Parçalar", + "ItemCount": "{0} Öğe", + "NumberChannelsValue": "{0} Kanallar", + "HeaderLatestMusic": "En son Müzik", + "HeaderLatestAudioBooks": "Son Sesli Kitaplar", + "HeaderLatestDownloadedVideos": "En Son İndirilen Videolar", + "HeaderRecentlyPlayed": "Son Oynatılanlar", + "Recent": "Yakın zamanda", + "HeaderFrequentlyPlayed": "Sık Oynatılanlar", + "HeaderMoreLikeThis": "Benzerleri", + "HeaderMoreLikeThisOnLiveTV": "Canlı TV'de Benzerleri", + "OriginalAirDateValue": "Orijinal yayın tarihi: {0}", + "EndsAtValue": "{0} itibarıyla bitiyor", + "Date": "Tarih", + "AirDate": "Yayın Tarihi", + "Played": "Oynatıldı", + "Daily": "Günlük", + "Weekly": "Haftalık", + "RequireHashMatch": "Heş eşleştirmesi gerektir", + "RequireHashMatchHelp": "Bir heş eşleşmesini zorunlu kılmak, altyazıları yalnızca video dosyanızla test edilmiş olanları içerecek şekilde filtreleyecektir. Bu işaretin kaldırılması, eşleşen altyazıların sayısını artıracak, ancak aynı zamanda senkronizasyonu hatalı veya yanlış altyazı dosyalarının görülme ihtimalini artıracaktır.", + "SearchForForcedSubtitlesOnly": "Yalnızca zorunlu altyazılar", + "SearchForForcedSubtitlesOnlyHelp": "Gömülü altyazıların zorunlu kılınması, sonuçları yabancı dile sahip olarak etiketlenmiş altyazılarla sınırlar.", + "LastEpisodeDateAdded": "Son Bölüm Tarihi Eklendi", + "LastEpisodeDateAired": "Son Bölüm Tarihi Yayınlandı", + "LabelPlaystate": "Oynatma durumu", + "Studio": "Stüdyo", + "Tag": "Etiket", + "EpisodeTitle": "Bölüm Başlığı", + "Audio": "Ses", + "Video": "Video", + "Subtitle": "Altyazı", + "Image": "Resim", + "CopyStream": "Orijinal akışı kopyala", + "LabelAudioLayout": "Ses düzeni", + "LabelAudioCodec": "Ses kodeği", + "LabelAudioLanguage": "Ses dili", + "LabelSubtitleLanguage": "Altyazı dili", + "LabelVideoCodec": "Video kodeği", + "LabelSubtitleCodec": "Altyazı kodeği", + "LabelParentalRating": "Ebeveyn derecelendirmesi", + "BecauseYouLikeValue": "{0} öğesini beğendiğiniz için", + "BecauseYouWatchedValue": "{0} öğesini izlediğiniz için", + "DirectedByValue": "Yönetmen {0}", + "StarringValue": "Oyuncular {0}", + "Invitations": "Davetiyeler", + "ActorAsRole": "{0} olarak", + "ButtonOk": "Tamam", + "GroupItemsIntoCollections": "Öğeleri koleksiyonlar halinde gruplandır", + "GroupItemsIntoCollectionsHelp": "Öğeleri eklendikleri koleksiyonlara göre gruplayın. Belirli filtreleri veya sıralama düzenini etkinleştirmek bunu otomatik olarak devre dışı bırakabilir.", + "GroupItemsIntoTags": "Öğeleri etiketlere göre gruplandır", + "GroupItemsIntoTagsHelp": "Öğeleri eklendikleri etiketlere göre gruplayın. Belirli filtreleri veya sıralama düzenini etkinleştirmek bunu otomatik olarak devre dışı bırakabilir.", + "User": "Kullanıcı", + "Access": "Erişim", + "Users": "Kullanıcılar", + "Library": "Kütüphane", + "Devices": "Cihazlar", + "Cancel": "İptal", + "Restart": "Yeniden Başlat", + "Shutdown": "Kapat", + "Logs": "Loglar", + "Visibility": "Görünürlük", + "Notifications": "Bildirimler", + "SendTestNotification": "Test Bildirimi Gönder", + "NotificationSent": "Bildirim gönderildi", + "DeleteNotificationConfirmation": "Bu bildirimi silmek istediğinizden emin misiniz?", + "DeleteNotification": "Bildirimi Sil", + "AddNotification": "Bildirim Ekle", + "EditNotification": "Bildirimi Düzenle", + "LimitUserEventsTo": "Kullanıcı etkinliklerini sınırlandırın", + "LimitLibraryEventsTo": "Kütüphane etkinliklerini sınırlandırın", + "LimitDeviceEventsTo": "Cihaz etkinliklerini şu şekilde sınırlayın", + "ForAdditionalNotificationOptions": "Ek bildirim hizmetleri sunucu yöneticisi tarafından Emby {0}plugin kataloğuna{1} yüklenebilir.", + "Plugins": "Eklentiler", + "Systems": "Sistemler", + "Server": "Sunucu", + "Dashboard": "Gösterge Paneli", + "PlayOnAnotherDevice": "Başka bir cihazda oynat", + "HeaderConnectionHelp": "Bağlantı Yardımı", + "AccessRestrictedTryAgainLater": "Erişim şu anda kısıtlanmıştır. Lütfen daha sonra tekrar deneyiniz.", + "ButtonGotIt": "Anladım", + "RememberMe": "Beni hatırla", + "EmbyServer": "Emby Sunucusu", + "ManageEmbyServer": "Emby Sunucu'sunu Yönet", + "ShutdownServer": "Emby Sunucu'sunu Kapat", + "RestartServer": "Emby Sunucusunu Yeniden Başlat", + "RecordingCancelled": "Kayıt İptal Edildi", + "SeriesCancelled": "Dizi İptal Edildi", + "Recording": "Kayıt", + "SeriesRecording": "Dizi Kaydı", + "RecordingScheduled": "Kayıt Planlandı", + "SeriesRecordingScheduled": "Seri Kaydı Planlandı", + "HeaderNewRecording": "Yeni Kayıt", + "HeaderWakeServer": "Sunucuyu Uyandır", + "AttemptingWakeServer": "Sunucu uyandırılmaya çalışılıyor. Lütfen bekleyin...", + "WakeServerSuccess": "Başarılı!", + "HeaderCustomizeHomeScreen": "Ana Ekranı Özelleştir", + "WakeServerError": "Wake On LAN paketleri sunucu makinenize gönderildi, ancak Emby Sunucunuza bağlanamıyoruz. Makinenizin uyanması için biraz daha zamana ihtiyaç olabilir veya Emby Sunucusu makinede aktif olarak çalışmıyor olabilir.", + "Days": "Günler", + "Network": "Ağ", + "Networks": "Ağlar", + "SortByValue": "{0} ile sırala", + "HeaderSortBy": "Sıralama Ölçütü", + "HeaderPhotoAlbums": "Fotoğraf Albümleri", + "Photos": "Fotoğraflar", + "HeaderAppearsOn": "Görünüyor", + "List": "Liste", + "HeaderRecordSeries": "Seriyi Kaydet", + "HeaderCinemaMode": "Sinema Tanıtımları", + "Conversions": "Dönüşümler", + "Downloads": "İndirilenler", + "HeaderManageDownloads": "İndirilenleri Yönet", + "InternalStorage": "Dahili depo", + "ExternalStorage": "Harici depo", + "UploadToFollowingServers": "Sunuculara Yükle", + "UploadingNumItems": "{1} içinden {0} yükleniyor", + "DownloadNumItems": "{1} içinden {0} indiriliyor", + "HeaderSampleRate": "Örnekleme Oranı", + "HeaderReferenceFrames": "Referans Kareler", + "HeaderBitDepth": "Bit Derinliği", + "HeaderPixelFormat": "Piksel Formatı", + "Profile": "Profil", + "Bitrate": "Bit oranı", + "Expand": "Genişlet", + "Container": "Konteyner", + "Format": "Format", + "Path": "Yol", + "Size": "Boyut", + "Resolution": "Çözünürlük", + "HeaderCodecTag": "Kodek Etiketi", + "Framerate": "Kare hızı", + "Interlaced": "Geçmeli", + "Anamorphic": "Anamorfik", + "Level": "Seviye", + "Timestamp": "Zaman damgası", + "Language": "Dil", + "Codec": "Kodek", + "Stream": "Akış", + "HeaderExtradata": "Ekstra Veri", + "HeaderHardwareAcceleratedTranscoding": "Donanım Hızlandırmalı Kod Dönüştürme", + "HeaderHardwareAcceleratedTranscodingDescription": "Sunucu GPU'nuzdan yararlanın. Emby, sektördeki en gelişmiş ve en hızlı donanım hızlandırmasına sahiptir.", + "HeaderOfflineDownloads": "Çevrimdışı Medya", + "AndMuchMoreExclamation": "Ve daha fazlası!", + "HeaderOfflineDownloadsDescription": "Kolay çevrimdışı kullanım için medyayı cihazlarınıza indirin.", + "LiveTvFeatureDescription": "Emby Sunucu'nuza yüklenmiş uyumlu bir TV alıcısı cihazıyla herhangi bir Emby uygulamasına Canlı TV yayını aktarın.", + "DvrFeatureDescription": "Emby DVR ile bireysel Canlı TV kayıtlarını, dizi kayıtlarını ve daha fazlasını planlayın.", + "CinemaModeFeatureDescription": "Sinema Tanıtımları, ana filmden önce fragmanlar ve özel girişlerle size gerçek sinema deneyimini sunar.", + "HeaderFreeApps": "Ücretsiz Emby Uygulamaları", + "FreeAppsFeatureDescription": "Cihazlarınız için Emby uygulamalarına ücretsiz erişimin keyfini çıkarın.", + "HeaderBecomeProjectSupporter": "Emby Prömiyer Al", + "HeaderViewServerInfo": "Sunucu Bilgilerini Görüntüle", + "PlaybackTvModeRequiresEmbyPremiere": "Bu özellik aktif bir {0}Emby Prömiyer aboneliği{1} gerektirir.", + "FeatureRequiresEmbyPremiere": "Bu özellik aktif bir {0}Emby Prömiyer aboneliği{1} gerektirir.", + "HeaderConvertYourRecordings": "Kayıtlarınızı Dönüştürün", + "Record": "Kayıt", + "Save": "Kaydet", + "Edit": "Düzenle", + "HeaderSavePlaylist": "Oynatma Listesini Kaydet", + "Latest": "En son", + "Download": "İndir", + "Downloaded": "İndirildi", + "Converted": "Dönüştürüldü", + "RemoveFromHistory": "Geçmişten Kaldır", + "ConfirmRemoveFromHistory": "Bu öğeyi geçmişten kaldıralım mı?", + "Downloading": "İndirilenler", + "Advanced": "Gelişmiş", + "LinkedToEmbyConnect": "Emby Connect'e bağlı", + "Delete": "Sil", + "Both": "Her ikisi de", + "LabelChannelDisplay": "Kanal ekranı", + "HeaderDeleteItem": "Ögeyi Sil", + "HeaderDeleteUser": "Kullanıcıyı Sil", + "DeleteItemConfirmation": "{0}'i silmek istediğinize emin misiniz ?", + "DeleteUserConfirmation": "{0} kullanıcısını silmek istediğinize emin misiniz?", + "DeleteUsersConfirmation": "Bu {0} kullanıcıyı silmek istediğinizden emin misiniz?", + "HeaderDeleteDevice": "Cihazı Sil", + "DeleteDeviceConfirmation": "Bu cihazı silmek istediğinizden emin misiniz? Bir kullanıcı onunla tekrar oturum açtığında yeniden görünecektir.", + "ConfirmDeleteItem": "Bu öğeyi silmek, onu hem dosya sisteminden hem de medya kütüphanenizden kaldıracaktır.", + "FollowingFilesWillBeDeleted": "Aşağıdaki dosyalar ve klasörler silinecek:", + "AreYouSureToContinue": "Devam etmek istediğinize emin misiniz?", + "Refresh": "Yenile", + "RefreshingMetadataDots": "Metaveri yenileniyor...", + "ScanningLibraryFilesDots": "Kütüphane dosyaları taranıyor...", + "HeaderFavoritesThenByChannelNumber": "Favoriler, Ardından Kanal Numarasına Göre", + "HeaderAddToCollection": "Koleksiyona Ekle", + "HeaderFavoritesThenByTitle": "Favoriler, Ardından Başlığa göre", + "HeaderFavoritesThenByDefault": "Favoriler, Ardından Varsayılan Kanal Sırasına Göre", + "HeaderDefaultChannelOrder": "Varsayılan Kanal Sırası", + "HeaderAddToFavorites": "Favorilere Ekle", + "HeaderRemoveFromFavorites": "Favorilerden Çıkar", + "Favorited": "Favoriler", + "Unfavorited": "Olumsuz", + "HeaderNewCollection": "Yeni Koleksiyon", + "HeaderNewPlaylist": "Yeni Oynatma Listesi", + "AllCollections": "Tüm Koleksiyonlar", + "AllPlaylists": "Tüm Çalma Listeleri", + "Create": "Oluştur", + "HeaderAddedToPlaylist": "Oynatma listesine eklendi", + "HeaderAddedToCollection": "Koleksiyona eklendi", + "OneItemAddedTo": "\"{0}\"a 1 öğe eklendi.", + "ItemsAddedTo": "\"{1}\"e {0} öğeleri eklendi", + "HeaderAddedToPlayQueue": "Oynatma sırasına eklendi", + "HeaderPlayingNext": "Sıradaki oynatılıyor", + "Help": "Yardım", + "HeaderGetHelp": "Yardım Al", + "LabelTVDisplayMode": "TV görüntüleme modunu etkinleştir", + "Desktop": "Masaüstü", + "Mobile": "Mobil / Tablet", + "Navigation": "Navigasyon", + "HeaderVideoPlayback": "Video Oynatma", + "TV": "TV", + "HeaderEmbyConnect": "Emby Bağlantısı", + "Seasons": "Sezonlar", + "OneTrack": "1 Parça", + "OneSeason": "1 Sezon", + "Libraries": "Kütüphaneler", + "NumberSeasonsValue": "{0} Sezon", + "TVDisplayModeHelp": "Bu cihazdaki kullanıcı arayüzünü, bir TV ekranında görüntülenmeye ve uzaktan kumanda ile giriş yapılmaya uygun şekilde optimize eder. Eğer ana giriş yönteminiz fare ya da dokunmatik tabanlıysa, bu genellikle önerilmez.", + "LabelDisplayLanguage": "Görüntü dili", + "LabelDisplayLanguageHelp": "Emby tercümesi devam eden bir projedir.", + "LearnHowYouCanContribute": "Nasıl katkıda bulunabileceğinizi öğrenin.", + "NewCollectionHelp": "Koleksiyonlar, kişiselleştirilmiş film grupları ve diğer kütüphane içeriği oluşturmanıza olanak sağlar.", + "SearchForCollectionInternetMetadata": "İnternette çizim ve metaveri ara", + "DisplayMissingEpisodesWithinSeasons": "Sezonlar içinde eksik bölümleri göster", + "DisplayMissingEpisodesWithinSeasonsHelp": "Bu, Emby Sunucu'su kurulumunda TV kütüphaneleri için de etkinleştirilmelidir.", + "EnableThemeSongs": "Tema şarkılarını çal", + "EnableBackdrops": "Fonları etkinleştir", + "EnableThemeSongsHelp": "Etkinleştirilirse, kütüphanede gezinirken tema şarkıları arka planda çalacaktır.", + "EnableBackdropsHelp": "Etkinleştirilirse, kütüphaneye göz atarken bazı sayfaların arka planında fonlar görüntülenecektir.", + "EnableThemeVideos": "Tema videolarını oynat", + "EnableThemeVideosHelp": "Etkinleştirilirse, kütüphaneye göz atarken tema videoları arka planda oynatılacaktır.", + "RunAtStartup": "Başlangıçta çalıştır", + "ServerStartup": "Sunucu Başlatma", + "EmbyServerOnXHasStarted": "{0} üzerinde Emby Sunucusu başladı.", + "LabelScreensaver": "Ekran koruyucusu", + "LabelSoundEffects": "Ses efektleri", + "LabelName": "İsim", + "NewCollectionNameExample": "Örnek: Star Wars Koleksiyonu", + "MessageItemsAdded": "Öğeler eklendi.", + "OptionNew": "Yeni...", + "LabelPlaylist": "Oynatma Listesi", + "AddToPlaylist": "Oynatma listesine ekle", + "HeaderAddToPlaylist": "Oynatma Listesi'ne Ekle", + "Subtitles": "Altyazılar", + "LabelTheme": "Tema", + "LabelSettingsTheme": "Ayarlar teması", + "LabelThemeAccentColor": "Vurgu rengi", + "ThemeAccentColorDescription": "Önemli göstergelerin, simgelerin ve metinlerin rengini kontrol eder.", + "SearchForSubtitles": "Altyazı Ara", + "LabelLanguage": "Dil", + "Search": "Ara", + "NoSubtitleSearchResultsFound": "Sonuç bulunamadı. {0}Altyazı indirmeyi{1} yapılandırdınız mı?", + "NoLyricsSearchResultsFound": "Sonuç bulunamadı. {0} şarkı sözlerini {1} indirecek şekilde yapılandırdınız mı?", + "Lyrics": "Şarkı Sözleri", + "SearchForLyrics": "Şarkı Sözü Ara", + "Finish": "Bitiş", + "File": "Dosya", + "Exit": "Çıkış", + "Sleep": "Uyku", + "Setup": "Kur", + "MessageAreYouSureDeleteSubtitles": "Bu altyazı dosyasını silmek istediğinize emin misiniz?", + "ConfirmDeletion": "Silmeyi Onayla", + "MySubtitles": "Altyazılarım", + "MessageDownloadQueued": "İndirme sıraya alındı.", + "HeaderEditSubtitles": "Altyazıları Düzenle", + "UnlockGuide": "Kılavuz Kilidini Aç", + "HeaderRefreshMetadata": "Metaveriyi Yenile", + "HeaderRefreshAllMetadata": "Tüm metaveriyi yenile", + "ReplaceExistingImages": "Mevcut resimleri değiştir", + "ReplaceExistingImagesHelp": "Mevcut tüm görüntüler silinecek ve yenileri indirilecektir. Bazı durumlarda bu, öncekinden daha az kullanılabilir görüntü ile sonuçlanabilir.", + "ReplaceAllMetadata": "Tüm metaveriyi değiştir", + "SearchForMissingMetadata": "Eksik metaveriyi ara", + "LabelRefreshMode": "Yenileme modu", + "NoItemsFound": "Hiç bir öğe bulunamadı.", + "HeaderSaySomethingLike": "Gibi Bir Şey Söyle...", + "ButtonTryAgain": "Tekrar Deneyin", + "HeaderYouSaid": "Dedin ki...", + "MessageWeDidntRecognizeCommand": "Üzgünüz, bu komutu tanımadık.", + "MessageIfYouBlockedVoice": "Uygulamaya sesli erişimi reddettiyseniz, tekrar denemeden önce yeniden yapılandırmanız gerekir.", + "ValueDiscNumber": "Disk {0}", + "Unrated": "Derecelendirilmemiş", + "Favorite": "Favori", + "Like": "Beğen", + "Dislike": "Beğenme", + "RefreshDialogHelp": "Meta veriler, Emby kütüphane kurulumunda etkinleştirilen ayarlara ve meta veri sağlayıcılarına dayalı olarak yeni verilerle güncellenir.", + "Open": "Aç", + "Play": "Oynat", + "Pause": "Durdur", + "HeaderPlayQueue": "Oynatma Sırası", + "HeaderAddToPlayQueue": "Oynatma Sırasına Ekle", + "Shuffle": "Karıştır", + "Identify": "Tanımla", + "HeaderRemoveIdentification": "Tanımlamayı Kaldır", + "ResetMetadataConfirmation": "Tüm meta verileri sıfırlamak istediğinizden emin misiniz?", + "HeaderEditMetadata": "Metaveriyi Düzenle", + "Convert": "Dönüştür", + "Resume": "Devam Et", + "HeaderInstantMix": "Anlık Karıştırma", + "HeaderGoToItem": "Öğeye git", + "HeaderGoToSeason": "Sezona Git", + "HeaderGoToSeries": "Seriye Git", + "HeaderGoToAlbum": "Albüme git", + "HeaderGoToArtist": "Sanatçıya git", + "HeaderPlayAll": "Tümünü Oynat", + "PictureInPicture": "Resim içinde resim", + "Fullscreen": "Tam ekran", + "ExitFullscreen": "Tam ekrandan çık", + "Rewind": "Geri sar", + "FastForward": "İleri Sar", + "Remove": "Kaldır", + "Rename": "Yeniden Adlandır", + "Queue": "Sıra", + "QueueAllFromHere": "Buradan sonra tümünü sıraya ekle", + "PlayAllFromHere": "Buradan sonra tümünü oynat", + "PlayFromBeginning": "Baştan Oynat", + "FromBeginning": "Başlangıçtan", + "ResumeAt": "{0} 'dan deam et", + "HeaderRemoveFromPlaylist": "Oynatma Listesi'nden Kaldır", + "HeaderRemoveFromPlayQueue": "Oynatma Kuyruğundan Çıkar", + "HeaderRemoveFromCollection": "Koleksiyon'dan Kaldır", + "Sort": "Sırala", + "Trailer": "Fragman", + "SelectNone": "Hiçbirini Seçmeyin", + "SelectAll": "Tümünü Seçin", + "HeaderMarkPlayed": "Oynatıldı Olarak İşaretle", + "HeaderMarkUnplayed": "Oynatılmadı Olarak İşaretle", + "HeaderGroupVersions": "Grup Sürümleri", + "PleaseSelectTwoItems": "Lütfen en az iki öğe seçin.", + "HeaderConfirmRecordingCancellation": "Kayıt İptalini Onayla", + "MessageConfirmRecordingCancellation": "Kayıt iptal edilsin mi?", + "Album": "Albüm", + "AlbumArtist": "Albüm Sanatçısı", + "Error": "Hata", + "VoiceInput": "Ses Girişi", + "LabelContentType": "İçerik türü", + "LabelPath": "Yol", + "Playlists": "Oynatma Listeleri", + "LabelTitle": "Başlık", + "LabelOriginalTitle": "Orjinal başlık", + "LabelSortTitle": "Sıralama başlığı", + "LabelDateAdded": "Eklenme tarihi", + "DateAdded": "Tarih Eklendi", + "DateModified": "Değiştirildiği Tarih", + "DatePlayed": "Oynandığı Tarih", + "DateLastActive": "Son Aktif Olduğu Tarih", + "ConfigureDateAdded": "Eklenme tarihinin nasıl belirleneceğini Emby Sunucu'su kontrol panelinde Kütüphane ayarları altında yapılandırın", + "LabelStatus": "Durum", + "LabelArtistsHelp": "Çoklu kullanımı ayır;", + "HeaderAlbumArtists": "Albüm Sanatçıları", + "LabelAlbumArtists": "Albüm sanatçıları", + "LabelAlbum": "Albüm", + "Artist": "Sanatçı", + "Artists": "Sanatçılar", + "ImdbRating": "IMDb Puanı", + "CommunityRating": "Topluluk Değerlendirmesi", + "LabelCommunityRating": "Topluluk puanı", + "LabelCriticRating": "Kritik puan", + "CriticRating": "Eleştirmen Değerlendirmesi", + "LabelWebsite": "Web Sitesi", + "Tagline": "Etiket çizgisi", + "LabelOverview": "Genel Bakış", + "LabelShortOverview": "Kısa genel bakış", + "LabelReleaseDate": "Yayın tarihi", + "LabelPlaceOfBirth": "Doğum yeri", + "Aired": "Yayınlandı", + "LabelAirDays": "Yayınlanma günleri", + "LabelAirTime": "Yayınlanma zamanı", + "LabelRuntimeMinutes": "Süresi (dakika)", + "LabelCustomRating": "Özel derecelendirme", + "LabelOriginalAspectRatio": "Orjinal en boy oranı", + "Label3DFormat": "3B biçim", + "FormatValue": "Format: {0}", + "DownloadsValue": "{0} İndirmeler", + "HashMatch": "Hash Eşleşmesi", + "EnableExternalVideoPlayers": "Harici video oynatıcılarını etkinleştir", + "EnableExternalVideoPlayersHelp": "Video oynatmaya başlarken harici oynatıcı menüsü gösterilecektir.", + "HeaderSpecialEpisodeInfo": "Özel Bölüm Bilgisi", + "LabelAirsDuringSeason": "Yayınlandığı sezon", + "LabelAirsAfterSeason": "Sonrasında yayınlandığı sezon", + "LabelAirsBeforeEpisode": "Öncesinde yayınlandığı bölüm", + "HeaderExternalIds": "Harici Kimlik Bilgileri", + "HeaderDisplaySettings": "Ekran Ayarları", + "PlaylistOrder": "Çalma Listesi Sırası", + "CollectionOrder": "Koleksiyon Siparişi", + "LabelDisplayOrder": "Görüntüleme sırası", + "LabelFileOrder": "Dosya sırası", + "Display": "Ekran", + "Countries": "Ülkeler", + "Genres": "Türler", + "Studios": "Stüdyolar", + "Tags": "Etiketler", + "Links": "Bağlantılar", + "Movie": "Film", + "Program": "Program", + "Channel": "Kanal", + "Episode": "Bölüm", + "Season": "Sezon", + "HeaderMetadataSettings": "Metaveri Ayarları", + "People": "Kişiler", + "Number": "Sayı", + "Lock": "Kilit", + "HeaderScreenLocked": "Ekran Kilitli", + "HeaderUnlockControls": "Kontrollerin Kilidini Aç", + "HeaderTapToUnlock": "Kilidi Açmak için dokunun", + "LabelMetadataDownloadLanguage": "Tercih edilen metaveri indirme dili", + "LabelImageDownloadLanguage": "Tercih edilen resim indirme dili", + "LabelLockItemToPreventChanges": "İleride yapılacak değişiklikleri önlemek için bu ögeyi kilitle", + "LockThisField": "Meta verileri yenilerken gelecekteki değişiklikleri önlemek için bu alanı kilitle", + "MessageLeaveEmptyToInherit": "Ayarları bir üst öğeden veya genel varsayılan değerden devralmak için boş bırakın.", + "LabelCountry": "Ülke", + "LabelCertificationCountry": "Sertifikasyon ülkesi", + "CertificationCountryHelp": "Bu, hangi içerik derecelendirme sisteminin kullanılacağını etkileyecektir.", + "LabelDynamicExternalId": "{0} Kimlik Numarası", + "LabelBirthYear": "Doğum yılı", + "LabelBirthDate": "Doğum tarihi", + "LabelDeathDate": "Ölüm tarihi", + "LabelEndDate": "Bitiş tarihi", + "LabelSeasonNumber": "Sezon no", + "LabelEpisodeNumber": "Bölüm no", + "LabelTrackNumber": "Parça no", + "LabelNumber": "No", + "LabelDiscNumber": "Disk no", + "LabelParentNumber": "Ebeveyn no", + "SortName": "Sıralama Başlığı", + "OriginalTitle": "Orijinal Başlık", + "ReleaseDate": "Çıkış Tarihi", + "Continuing": "Devam ediyor", + "Ended": "Bitti", + "HeaderEnabledFields": "Etkinleştirilen Alanlar", + "HeaderEnabledFieldsHelp": "Kilitleyerek verilerinin değiştirilmesini önlemek için işareti kaldırın.", + "Backdrops": "Fonlar", + "Images": "Resimler", + "Runtime": "Süre", + "ProductionLocations": "Yapım yerleri", + "BirthLocation": "Doğum yeri", + "ParentalRating": "Ebeveyn Derecelendirmesi", + "PlayCount": "Oynatma sayısı", + "Name": "İsim", + "Overview": "Genel Bakış", + "LabelType": "Tür", + "LabelPersonRole": "Rol", + "LabelPersonRoleHelp": "Örnek: Dondurma aracı şoförü", + "Actor": "Aktör", + "Composers": "Besteciler", + "Composer": "Besteci", + "Director": "Yönetmen", + "GuestStar": "Konuk oyuncu", + "Producer": "Yapımcı", + "Writer": "Yazar", + "MessageNoSyncJobsFound": "Hiçbir indirme bulunamadı. Uygulamada yer alan İndir düğmeleri ile indirme işlemleri oluşturun.", + "MessageNoDownloadsFound": "Çevrimdışı indirme yok. Uygulamada yer alan İndir düğmesine tıklayarak medyanızı çevrimdışı kullanım için indirin.", + "InstallingPackage": "{0} kuruluyor", + "PackageInstallCompleted": "{0} kurulumu tamamlandı.", + "PackageInstallFailed": "{0} kurulumu başarısız oldu.", + "PackageInstallCancelled": "{0} kurulumu iptal edildi.", + "SeriesYearToPresent": "{0} - Mevcut", + "OneDevice": "1 Cihaz", + "DeviceCountValue": "{0} Cihaz", + "OneLog": "1 Kütük", + "LogCountValue": "{0} Kütük", + "OneVote": "1 Oy", + "VoteCountValue": "{0} Oy", + "OneLike": "1 Beğeni", + "LikeCountValue": "{0} Beğeni", + "OneUser": "1 Kullanıcı", + "UserCountValue": "{0} Kullanıcı", + "OneLibrary": "1 Kütüphane", + "LibraryCountValue": "{0} Kütüphaneleri", + "ValueOneItem": "1 Öğe", + "ValueOneEpisode": "1 bölüm", + "ValueEpisodeCount": "{0} bölümler", + "Albums": "Albümler", + "Song": "Şarkı", + "Songs": "Şarkılar", + "Authors": "Yazarlar", + "Books": "Kitaplar", + "AudioBooks": "Sesli kitaplar", + "HeaderAudioBooks": "Sesli Kitaplar", + "HeaderAudioBook": "Sesli Kitap", + "HeaderIdentifyItemHelp": "Bir veya daha fazla arama kriteri girin. Arama sonuçlarını artırmak için kriterleri kaldırın.", + "PleaseEnterNameOrId": "Lütfen bir isim veya harici kimlik numarası girin.", + "MessageItemSaved": "Öğe kaydedildi.", + "SearchResults": "Arama Sonuçları", + "ServerNameIsRestarting": "Emby Sunucu - {0} yeniden başlatılıyor.", + "ServerNameIsShuttingDown": "Emby Sunucu - {0} kapatılıyor.", + "HeaderDeleteItems": "Öğeleri Sil", + "ConfirmDeleteItems": "Bu öğeleri silmek, onları hem dosya sisteminden hem de medya kütüphanesinden kaldıracaktır.", + "PleaseRestartServerName": "Lütfen Emby Sunucusunu {0}'da Yeniden Başlatın", + "ConvertingDots": "Dönüştürüyor...", + "LabelSyncNoTargetsHelp": "Görünüşe göre şu anda çevrimdışı indirmeyi destekleyen herhangi bir uygulamanız yok.", + "DownloadingDots": "İndiriliyor...", + "LearnMore": "Daha fazlasını öğren", + "LabelBitrateMbps": "Bit Oranı (Mbps)", + "ConvertUnwatchedVideosOnly": "Sadece oynatılmamış videoları dönüştür", + "SyncUnwatchedVideosOnly": "Sadece oynatılmamış videoları indir", + "ConvertUnwatchedVideosOnlyHelp": "Sadece tamamen oynatılmamış videolar dönüştürülecektir.", + "SyncUnwatchedVideosOnlyHelp": "Yalnızca tamamen oynatılmamış videolar indirilecek ve videolar tamamen oynatıldıkça cihazdan kaldırılacaktır.", + "AutomaticallySyncNewContent": "Yeni içeriği otomatik olarak indir", + "AutomaticallySyncNewContentHelp": "Bu klasöre eklenen yeni içerik otomatik olarak dönüştürülecektir.", + "AutomaticallyConvertNewContent": "Yeni içeriği otomatik olarak dönüştür", + "AutomaticallyConvertNewContentHelp": "Bu klasöre eklenen yeni içerik otomatik olarak dönüştürülecektir.", + "LabelItemLimit": "Öğe sınırı", + "ConvertItemLimitHelp": "İsteğe bağlı. Dönüştürülecek öğe sayısı için bir sınır belirleyin.", + "DownloadItemLimitHelp": "İsteğe bağlı. İndirilecek öğe sayısı için bir sınır belirleyin.", + "PleaseSelectDeviceToSyncTo": "Lütfen indirilecek cihazı belirleyin.", + "Screenshots": "Ekran resmi", + "MoveRight": "Sağa hareket et", + "MoveLeft": "Sola hareket et", + "HeaderUploadNewImage": "Yeni Resim Yükle", + "HeaderDeleteImage": "Resmi Sil", + "ConfirmDeleteImage": "Resmi silmek istiyor musunuz?", + "HeaderEditImages": "Resimleri Düzenle", + "Settings": "Ayarlar", + "ShowIndicatorsFor": "Göstergeleri Göster", + "Episodes": "Bölümler", + "Programs": "Programlar", + "HeaderCastCrew": "Oyuncular ve Ekip", + "DvrSubscriptionRequired": "Emby Canlı TV ve DVR, aktif bir {0}Emby Prömiyer aboneliği{1} gerektirir.", + "HeaderCancelRecording": "Kaydı İptal Et", + "HeaderKeepRecording": "Kayda Devam Et", + "HeaderCancelSeries": "Seriyi İptal Et", + "HeaderKeepSeries": "Seriyi Koru", + "HeaderLearnMore": "Daha Fazlasını Öğren", + "SeriesSettings": "Seri ayarları", + "HeaderRecordingOptions": "Kayıt Seçenekleri", + "HeaderDoNotRecord": "Kaydetme", + "HeaderSeriesOptions": "Seri Seçenekleri", + "Layout": "Yerleşim", + "Channels": "Kanallar", + "ChannelNameOnly": "Sadece kanal {0}", + "Anytime": "Herhangi Bir zaman", + "AnyLanguage": "Herhangi bir dil", + "AroundTime": "{0} civarında", + "HeaderLatestMovies": "Son Filmler", + "All": "Tümü", + "Stop": "Durdur", + "AllChannels": "Tüm kanallar", + "NewEpisodesOnly": "Sadece yeni bölümler", + "AllEpisodes": "Tüm bölümler", + "LabelStartWhenPossible": "Mümkün olduğunda başlat", + "LabelStopWhenPossible": "Mümkün olduğunda durdur", + "MinutesBefore": "dakika önce", + "MinutesAfter": "dakika sonra", + "SkipEpisodesAlreadyInMyLibrary": "Zaten kütüphanemde bulunan bölümleri kaydetme", + "SkipEpisodesAlreadyInMyLibraryHelp": "Bölümler, mevcut olduğunda sezon ve bölüm numaraları kullanılarak karşılaştırılacaktır.", + "LabelKeepUpTo": "Buraya kadar sürdür", + "AsManyAsPossible": "Mümkün oldukça çok", + "DefaultErrorMessage": "İsteğin işlenmesi sırasında bir hata oluştu. Lütfen daha sonra tekrar deneyiniz.", + "UntilIDelete": "Ben silene kadar", + "UntilSpaceNeeded": "Alan gerekene kadar", + "Categories": "Kategoriler", + "Sports": "Spor", + "News": "Haber", + "Movies": "Filmler", + "Music": "Müzik", + "Kids": "Çocuk", + "MoreFromValue": "{0} gibi daha fazlası", + "DiedValue": "Öldü: {0}", + "BornValue": "Doğum: {0}", + "EnableColorCodedBackgrounds": "Kategorilerine göre dizilere renkli arka planları uygula", + "SortChannelsBy": "Kanalları sırala", + "ChannelNumber": "Kanal Numarası", + "HeaderBenefitsEmbyPremiere": "Emby Prömiyer'in Faydaları", + "ThankYouForTryingEnjoyOneMinute": "Lütfen bir dakikalık oynatmanın keyfini çıkarın. Emby'yi denediğiniz için teşekkürler.", + "HeaderTryPlayback": "Oynatmayı Dene", + "HowDidYouPay": "Nasıl ödedin?", + "IHaveEmbyPremiere": "Emby Prömiyer'im var.", + "IPurchasedThisApp": "Uygulamayı satın aldım", + "ButtonRestorePreviousPurchase": "Satın Almayı Geri Yükle", + "ButtonUnlockWithPurchase": "Satın Alma ile Kilidi Aç", + "ButtonUnlockPrice": "{0} Kilidini Aç", + "EmbyPremiereMonthlyWithPrice": "Emby Prömiyer Aylık {0}", + "HeaderAlreadyPaid": "Zaten ödendi mi?", + "ButtonPlayOneMinute": "Bir Dakika Oynat", + "PlaceFavoriteChannelsAtBeginning": "Favori kanalları başa yerleştir", + "HeaderUnlockFeature": "Özelliğin Kilidini Aç", + "MessageDidYouKnowCinemaMode": "Emby Prömiyer aldğınızda Sinema Modu gibi özelliklerle deneyiminizi geliştirebileceğinizi biliyor muydunuz?", + "HeaderPlayMyMedia": "Medyamı Oynat", + "HeaderDiscoverEmbyPremiere": "Emby Prömiyer'i Keşfet", + "HeaderNowPlaying": "Şimdi Oynatılıyor", + "Items": "Öğeler", + "AppName": "Uygulama Adı", + "OneChannel": "Bir kanal", + "ConfirmRemoveDownload": "İndirme kaldırılsın mı?", + "ConfirmRemoveItem": "Öğe kaldırılsın mı?", + "RemoveDownload": "İndirmeyi Kaldır", + "ConfirmCancelConversion": "Dönüşüm iptal mi?", + "CancelConversion": "Dönüşümü İptal Et", + "KeepDownload": "İndirmeyi sürdür", + "AddedOnValue": "{0} eklendi", + "RemovingFromDevice": "Cihazdan kaldırılıyor", + "KeepOnDevice": "Cihazda sakla", + "CancelDownload": "İndirmeyi iptal et", + "SyncJobItemStatusReadyToTransfer": "Aktarma İçin Hazır", + "SyncJobItemStatusSyncedMarkForRemoval": "Cihazdan kaldırılıyor", + "SyncJobItemStatusQueued": "Sıraya alındı", + "SyncJobItemStatusConverting": "Dönüştürüyor", + "SyncJobItemStatusTransferring": "Aktarılıyor", + "SyncJobItemStatusSynced": "İndirildi", + "Failed": "Başarısız", + "SyncJobItemStatusRemovedFromDevice": "Cihazdan kaldırıldı", + "Cancelled": "İptal Edildi", + "Retry": "Tekrar dene", + "Continue": "Devam et", + "ContinueInSecondsValue": "{0} saniye sonra devem et", + "HeaderRemoteControl": "Uzaktan Kontrol", + "Disconnect": "Bağlantıyı Kes", + "EnableDisplayMirroring": "Ekran yansıtmayı etkinleştir", + "RemoteAccess": "Uzaktan Erişim", + "HeaderPlayOn": "Oynat", + "Quality": "Kalite", + "Auto": "Oto", + "AndroidUnlockRestoreHelp": "Önceki satın alma işleminizi geri yüklemek için, lütfen satın alma işlemini ilk gerçekleştiren aynı Google (veya Amazon) hesabıyla cihazda oturum açtığınızdan, uygulama mağazasının etkin olduğundan, herhangi bir ebeveyn denetimi tarafından kısıtlanmadığından ve etkin bir internet bağlantınız olduğundan emin olun. Önceki satın alma işleminizi geri yüklemek için bunu yalnızca bir kez yapmanız gerekecek.", + "HeaderAspectRatio": "En Boy Oranı", + "Original": "Orjinal", + "Fill": "Doldur", + "Cover": "Kapak", + "MessageNoServersAvailableToConnect": "Bağlanacak sunucu yok. Bir sunucuyu paylaşmaya davet edildiyseniz, e-postadaki bağlantıyı tıklayarak veya aşağıda kabul ettiğinizden emin olun.", + "MessagePlayAccessRestricted": "Bu içeriğin oynatılması şu anda kısıtlanmıştır. Daha fazla bilgi için lütfen Emby Sunucu yöneticinizle iletişime geçin.", + "Accept": "Kabul Et", + "Reject": "Reddet", + "Connect": "Bağlan", + "HeaderMyMedia": "Benim Medyam", + "HeaderMyMediaSmall": "Benim Medyam (küçük)", + "LatestFromLibrary": "En son {0}", + "HeaderLatestEpisodes": "Son Bölümler", + "ContinuePlaying": "Oynatmaya devam et", + "ContinueWatching": "İzlemeye devam et", + "HeaderLatestChannelMedia": "En Son Kanal Öğeleri", + "HeaderContinueWatching": "İzlemeye Devam Et", + "HeaderContinueListening": "Dinlemeye Devam Et", + "HeaderActiveRecordings": "Aktif Kayıtlar", + "HeaderLatestRecordings": "Son Kayıtlar", + "LabelConvertTo": "Buna dönüştür", + "LabelDownloadTo": "Buraya indir", + "HeaderDownloadToDots": "Buraya indir...", + "Next": "Sonraki", + "LabelSource": "Kaynak", + "VersionNumber": "Sürüm {0}", + "HeaderAllLanguages": "Tüm Diller", + "Previous": "Önceki", + "HeaderNextUp": "Sıradaki", + "HeaderPlayNextUp": "Sıradakini Oynat", + "HeaderLatestFrom": "En Son {0}", + "LabelHomeScreenSectionValue": "Ana ekran bölümü {0}", + "PasswordResetComplete": "Parola sıfırlandı.", + "PasswordSaved": "Parola kaydedildi.", + "SettingsSaved": "Ayarlar kaydedildi.", + "Upcoming": "Gelecek", + "HeaderSelectImageFile": "Resim Dosyasını Seç", + "None": "Yok", + "More": "Daha Fazla", + "Up": "Yukarı", + "Down": "Aşağı", + "Home": "Anasayfa", + "Back": "Geri", + "Random": "Rastgele", + "Playback": "Oynatma", + "Favorites": "Favoriler", + "HeaderHomeScreen": "Ana Ekran", + "HeaderLatestChannelItems": "En Son Kanal Öğeleri", + "HeaderLibraryOrder": "Kütüphane Düzeni", + "HeaderOnNow": "Şimdi", + "HeaderForKids": "Çocuklar İçin", + "HeaderPlaybackError": "Oynatma Hatası", + "PlaybackErrorNotAllowed": "Şu anda bu içeriği oynatma yetkiniz yok. Ayrıntılar için lütfen sistem yöneticinize başvurun.", + "RateLimitExceeded": "Hesabınız, Emby Sunucu'su yöneticiniz tarafından belirlenen maksimum akış sınırını aştı. Lütfen yardım için onlarla iletişime geçin.", + "PlaybackErrorNoCompatibleStream": "Şu anda uyumlu akış yok. Lütfen daha sonra tekrar deneyin veya ayrıntılar için sistem yöneticinize başvurun.", + "PlaybackErrorPlaceHolder": "Bu videoyu oynatmak için lütfen diski takın.", + "PlaybackErrorNoPlayableItems": "Oynanabilir öğe bulunamadı. Boş bir klasörü oynatmaya mı çalışıyorsunuz?", + "Guide": "Kılavuz", + "Games": "Oyunlar", + "GameSystem": "Oyun Sistemi", + "Suggestions": "Öneriler", + "HeaderFavoriteChannels": "Favori Kanallar", + "HeaderFavoriteCollections": "Favori Koleksiyonlar", + "HeaderFavoritePlaylists": "Favori Oynatma Listeleri", + "Collection": "Koleksiyon", + "Collections": "Koleksiyonlar", + "LabelSelectFolderGroups": "Aşağıdaki klasörlerde yer alan içeriği otomatik olarak Filmler, Müzik ve TV gibi görünümlerde gruplandırın:", + "LabelSelectFolderGroupsHelp": "İşaretlenmemiş klasörler kendi görünümlerinde kendi başlarına görüntülenecektir.", + "Mute": "Sessiz", + "Unmute": "Sesi Aç", + "Folder": "Klasör", + "Folders": "Klasörler", + "FileName": "Dosya Adı", + "DisplayInOtherHomeScreenSections": "En son medya gibi ana ekran bölümlerinde görüntüleyin ve izlemeye devam edin", + "DisplayInMyMedia": "Ana ekranda göster", + "Shows": "Diziler", + "MoviesAndShows": "Filmler ve Diziler", + "HeaderMusicVideo": "Müzik Videosu", + "HeaderMusicVideos": "Müzik Videoları", + "MusicVideos": "Müzik videoları", + "Videos": "Videolar", + "MixedContent": "Karışık içerik", + "HomeVideos": "Ev videoları", + "HomeVideosAndPhotos": "Ev videoları & fotoğrafları", + "TVShows": "TV dizileri", + "HeaderLibraryFolders": "Kütüphane Klasörleri", + "HeaderTermsOfPurchase": "Satın Alma Koşulları", + "PrivacyPolicy": "Gizlilik politikası", + "TermsOfUse": "Kullanım Koşulları", + "HeaderRepeatMode": "Tekrar Modu", + "HeaderToneMapping": "Ton Eşleştirme", + "RepeatOne": "Birini tekrar et", + "RepeatAll": "Tümünü tekrar et", + "LabelDefaultScreen": "Varsayılan ekran", + "ConfirmEndPlayerSession": "{0} üzerindeki Emby'i kapatmak istiyor musunuz?", + "Yesterday": "Dün", + "Yes": "Evet", + "No": "Hayır", + "HeaderScanLibraryFiles": "Kütüphane Dosyalarını Tara", + "LiveTV": "Canlı TV", + "Schedule": "Program", + "Recordings": "Kayıtlar", + "ScanForNewAndUpdatedFiles": "Yeni ve güncellenmiş dosyaları tara", + "NewVersionOfXAvailableForY": "{0} {1} için Kullanılabilir", + "DirectStreamHelp1": "Medya, çözünürlük ve medya türü (H.264, AC3, vb.) açısından cihazla uyumludur. Ancak uyumsuz bir dosya konteyneri (.mkv, .avi, .wmv, vb.) içindedir. Video, cihaza aktarılma sırasında yeniden paketlenecektir.", + "DirectStreamHelp2": "Doğrudan Akış bir dosyanın video kalitesinde herhangi bir kayıp olmaksızın çok az işlem gücü kullanır.", + "MediaIsBeingConverted": "Medya, medyayı oynatan cihazla uyumlu bir formata dönüştürülüyor.", + "StatsForNerds": "Bölüm Özellikleri", + "HeaderHardwareAcceleratedDecoding": "Donanım Hızlandırmalı Çözümleme", + "HeaderHardwareAcceleratedEncoding": "Donanım Hızlandırmalı Kodlama", + "HeaderDirectPlay": "Doğrudan Oynatma", + "DirectPlaying": "Doğrudan oynatılıyor", + "DirectStreaming": "Doğrudan akış sağlanıyor", + "Transcode": "Dönüştür", + "Transcoding": "Kodek Dönüştürme", + "ContainerBitrateExceedsLimit": "Kalite ayarı nedeniyle bit hızının düşürülmesi", + "VideoCodecNotSupported": "Videoyu uyumlu codec bileşenine dönüştürme", + "AudioCodecNotSupported": "Sesi uyumlu kodeğe dönüştürme", + "SubtitleCodecNotSupported": "Altyazıları doğrudan videoya dönüştürme", + "DirectPlayError": "Oynatma hatasından kurtarma", + "ContainerNotSupported": "Uyumlu konteynere dönüştürme", + "VideoLevelNotSupported": "Uyumlu video seviyesine dönüştürme", + "AudioBitrateNotSupported": "Uyumlu ses bit hızına dönüştürme", + "AudioChannelsNotSupported": "Uyumlu ses kanalı sayısına dönüştürme", + "VideoResolutionNotSupported": "Uyumlu video çözünürlüğüne dönüştürme", + "AudioProfileNotSupported": "Uyumlu ses profiline dönüştürme", + "AudioSampleRateNotSupported": "Uyumlu ses örnekleme hızına dönüştürme", + "AnamorphicVideoNotSupported": "Anamorfik video desteklenmiyor", + "InterlacedVideoNotSupported": "Video ara kareleri çözme", + "SecondaryAudioNotSupported": "İkincil ses parçasını seçme", + "ExternalAudioNotSupported": "Harici ses parçasını seçme", + "ErrorRemovingEmbyConnectAccount": "Emby Connect hesabını kaldırırken bir hata oluştu. Lütfen aktif bir internet bağlantınız olduğundan emin olun ve tekrar deneyin.", + "HeaderEmbyAccountRemoved": "Emby Hesabı Kaldırıldı", + "MessageEmbyAccontRemoved": "Emby hesabı bu kullanıcıdan kaldırıldı.", + "HeaderInvitationSent": "Davetiye Gönderildi", + "Offline": "Çevrimdışı", + "HeaderSignUp": "Üye Ol", + "ServerDownloadMessage": "Ücretsiz Emby Sunucu'sunu indirmek ve yüklemek için {0} adresini ziyaret edin", + "ServerDownloadMessageWithoutLink": "Ücretsiz Emby Sunucu'sunu indirmek ve kurmak için Emby web sitesini ziyaret edin.", + "MessageInvitationSentToUser": "{0} adresine, paylaşım davetinizi kabul etmeye çağıran bir e-posta gönderildi.", + "MessageInvitationSentToNewUser": "{0} adresine, Emby'ye kaydolmaya davet eden bir e-posta gönderildi.", + "GuestUserNotFound": "Kullanıcı bulunamadı. Lütfen adın doğru olduğundan emin olun ve tekrar deneyin veya e-posta adresini girmeyi deneyin.", + "ErrorReachingEmbyConnect": "Emby Connect sunucusuna ulaşılırken bir hata oluştu. Lütfen aktif bir internet bağlantınız olduğundan emin olun ve tekrar deneyin.", + "ErrorAddingEmbyConnectAccount1": "Emby Connect hesabı eklenirken bir hata oluştu. Bir Emby hesabı oluşturdunuz mu? {0} adresinden kaydolun.", + "ErrorAddingEmbyConnectAccount2": "Hala sorun yaşıyorsanız, lütfen Emby hesabıyla kullanılan e-posta adresinden {0} adresine bir e-posta gönderin.", + "ErrorAddingGuestAccount1": "Emby Connect hesabı eklenirken bir hata oluştu. Misafiriniz bir Emby hesabı oluşturdu mu? {0} adresinden kaydolabilirler.", + "ErrorAddingGuestAccount2": "Hâlâ sorun yaşıyorsanız, lütfen {0} adresine bir e-posta gönderin ve onların adreslerinin yanı sıra sizin e-posta adresinizi de ekleyin.", + "MessageEmbyAccountAdded": "Emby hesabı bu kullanıcıya eklendi.", + "MessagePendingEmbyAccountAdded": "Emby hesabı bu kullanıcıya eklendi. Hesabın sahibine bir e-posta gönderilecektir. E-posta içindeki bir bağlantıya tıklanarak davetiyenin onaylanması gerekecektir.", + "HeaderEmbyAccountAdded": "Emby Hesabı Eklendi", + "Skip": "Atla", + "HeaderAdditionalParts": "İlave Parçalar", + "ButtonGenerateNewPin": "Yeni Pin Oluştur", + "ConnectLoginHelp1": "Emby Connect ile, nerede olursanız olun Emby Sunucu'nuza kolayca erişebilir ve sunucuları aileniz ve arkadaşlarınızla paylaşabilirsiniz.", + "CreatePinErrorMessage": "Pin kodu oluşturulurken bir hata meydana geldi. Tekrar denemek için lütfen Yeni Pin Oluştur'a tıklayın.", + "PinExpiredMessage": "PIN kodunun süresi doldu. Tekrar denemek için lütfen Yeni Pin Oluştur'a tıklayın.", + "ConnectPinCodeHeader": "Emby Connect ile oturum açmak için, bir mobil cihaz veya bilgisayar kullanarak {0} adresini ziyaret edin ve aşağıdaki pin kodunu girin:", + "LabelSubtitlePlaybackMode": "Altyazı modu", + "ErrorDeletingItem": "Emby Sunucu'sundan öğe silinirken bir hata oluştu. Lütfen Emby Sunucu'sunun medya klasörüne yazma erişimi olup olmadığını kontrol edin ve tekrar deneyin.", + "NoSubtitles": "Hiç altyazı yok", + "Default": "Varsayılan", + "Absolute": "Mutlak", + "Smart": "Akıllı", + "Small": "Küçük", + "Smaller": "Daha küçük", + "Medium": "Orta", + "Large": "Büyük", + "Larger": "Daha büyük", + "ExtraLarge": "Ekstra büyük", + "ExtraSmall": "Ekstra küçük", + "Forced": "Zorunlu", + "External": "Harici", + "HeaderEmbeddedTitle": "Gömülü Başlık", + "OnlyForcedSubtitles": "Sadece zorunlu altyazılar", + "AlwaysPlaySubtitles": "Altyazıları her zaman göster", + "DefaultSubtitlesHelp": "Altyazılar, gömülü metaverilerdeki varsayılan ve zorunlu bayraklara göre yüklenir. Birden çok seçenek mevcut olduğunda dil tercihleri dikkate alınır.", + "SmartSubtitlesHelp": "Dil tercihine uyan altyazılar, ses yabancı dilde olduğunda yüklenecektir.", + "HeaderSubtitleSettings": "Altyazı Ayarları", + "HeaderSubtitleAppearance": "Altyazı Görünümü", + "OnlyForcedSubtitlesHelp": "Sadece zorunlu olarak işaretlenen altyazılar yüklenecektir.", + "AutoSelectHearingImpairedHelp": "İşitme engelli (SDH) olarak işaretlenmiş parçalara öncelik verilerek, dil tercihiyle eşleşen altyazılar yüklenecektir.", + "AlwaysPlaySubtitlesHelp": "Dil tercihiyle eşleşen altyazılar, ses dilinden bağımsız olarak yüklenecektir.", + "NoSubtitlesHelp": "Altyazılar otomatik olarak yüklenmeyecektir. Oynatma sırasında yine de manuel olarak açılabilirler.", + "LabelPreferredSubtitleLanguage": "Tercih edilen altyazı dili", + "LabelTextSize": "Yazı boyutu", + "TheseSettingsAffectSubtitlesOnThisDevice": "Bu ayarlar, bu cihazdaki altyazıları etkiler", + "LabelDropShadow": "Düşen gölge", + "LabelTextBackgroundColor": "Yazı arka plan rengi", + "LabelWindowBackgroundColor": "Yazı arka plan rengi", + "LabelFont": "Yazı tipi", + "LabelTextColor": "Yazı rengi", + "LabelBackgroundColor": "Arka plan rengi", + "LabelBackgroundOpacity": "Arka plan opaklığı", + "Raised": "Kabarık", + "Depressed": "Çökük", + "Uniform": "Tekdüze", + "DropShadow": "Düşen gölge", + "SmallCaps": "Küçük büyük harf", + "SubtitleAppearanceSettingsDisclaimer": "Bu ayarlar, grafik altyazılar (PGS, DVD, vb.) veya kendi gömülü stilleri (ASS / SSA) olan altyazılar için geçerli olmayacaktır.", + "Normal": "Normal", + "HeaderWaitingForWifi": "Wifi için bekleniyor", + "WifiRequiredToDownload": "İndirmenin devam etmesi için Wifi bağlantısı bekleniyor", + "DownloadOnlyOnWifi": "Sadece Wifi üzerinden indir", + "LabelMusicDownloadQuality": "Müzik indirme kalitesi", + "MusicDownloadQualityHelp": "Daha yüksek bit hızına sahip ses dosyaları Emby Sunucu'su tarafından dönüştürülecektir. Daha iyi kalite için daha yüksek bir değer seçin. Yerel depolama alanını korumak için daha düşük bir değer seçin.", + "HeaderDownloadSettings": "İndirme Ayarları", + "LabelDownloadLocation": "İndirme yolu", + "BrowseForFolder": "Klasör İçin Gözat", + "Unlimited": "Sınırsız", + "NoLimit": "Limitsiz", + "Hide": "Gizle", + "HeaderKeepWatching": "İzlemeye Devam Edin", + "HeaderNextEpisode": "Sonraki Bölüm", + "AudioBitDepthNotSupported": "Uyumlu ses bit derinliğine dönüştürme", + "VideoBitrateNotSupported": "Uyumlu Video Bit Hızı'na Dönüştürme", + "VideoProfileNotSupported": "Uyumlu video profiline dönüştürme", + "VideoFramerateNotSupported": "Uyumlu video kare hızına dönüştürme", + "VideoBitDepthNotSupported": "Uyumlu video bit derinliğine dönüştürme", + "RefFramesNotSupported": "Uyumlu sayıda video referans karesine dönüştürme", + "ErrorConnectServerUnreachable": "İstenen işlemi gerçekleştirirken bir hata oluştu. Sunucunuz, {0} numaralı telefondan Emby Connect Sunucumuzla bağlantı kuramıyor . Lütfen sunucunuzun aktif bir internet bağlantısına sahip olduğundan ve kurduğunuz güvenlik duvarı veya güvenlik yazılımı tarafından iletişimine izin verildiğinden emin olun.", + "HeaderStopRecording": "Kaydı Durdur", + "ManageRecording": "Kaydı yönet", + "LabelDropImageHere": "Resmi buraya sürükleyip bırakın veya yüklemek üzere bir resim seçmek için tıklayın.", + "MessageFileReadError": "Dosya okunurken bir hata oluştu. Lütfen tekrar deneyin.", + "Browse": "Gözat", + "HeaderUploadImage": "Resim Yükle", + "HeaderAddUpdateImage": "Resim Ekle/Yükle", + "HeaderShowFields": "Alanları Göster", + "LabelView": "Görünüm", + "LabelImageType": "Resim türü", + "Upload": "Yükle", + "Primary": "Birincil", + "PrimaryImageBlur": "Birincil görüntü bulanıklığı", + "Art": "Galeri", + "Backdrop": "Fon", + "Banner": "Afiş", + "Box": "Kutu", + "BoxRear": "Kutu (Arka)", + "Disc": "Disk", + "Logo": "Logo", + "LogoDark": "Logo (Koyu Versiyon)", + "LogoLight": "Logo (Açık Versiyon)", + "LogoLightColor": "Logo (Renkli Hafif)", + "Menu": "Menü", + "Screenshot": "Ekran görüntüsü", + "Thumb": "Küçük Resim", + "HeaderAudioSettings": "Ses Ayarları", + "LabelAudioLanguagePreference": "Tercih edilen ses dili", + "LabelPlayDefaultAudioTrack": "Dilden bağımsız olarak varsayılan ses parçasını çal", + "HeaderVideoQuality": "Video Kalitesi", + "CinemaModeConfigurationHelp": "Sinema Tanıtımları, ana özellikten önce fragmanları ve özel girişleri oynatma özelliğiyle sinema deneyimini doğrudan oturma odanıza getirir.", + "ShowUpNextPreview": "Sıradaki önizlemeyi göster", + "ShowUpNextPreviewHelp": "Geçerli öğenin sonuna yakın bir sonraki öğe için bilgi göster.", + "PlayNextEpisodeAutomatically": "Sonraki bölümü otomatik olarak oynat", + "LabelMaxChromecastBitrate": "Chromecast akış kalitesi", + "LabelSkipBackLength": "Geri atlama mesafesi", + "LabelSkipForwardLength": "İleri atlama mesafesi", + "EnableCinemaMode": "Sinema Tanıtımlarını Etkinleştir", + "LabelInternetQuality": "Uzaktan akış kalitesi", + "LabelCellularQuality": "Uzaktan akış kalitesi (hücresel)", + "HeaderMusicQuality": "Müzik Kalitesi", + "LabelHomeNetworkQuality": "Ev Akışı Kalitesi", + "HeaderLatestMedia": "Son Medya", + "HeaderRestartingEmbyServer": "Emby Sunucu'su Yeniden Başlatılıyor", + "RestartPleaseWaitMessage": "Emby Sunucu'su kapanıp yeniden başlatılırken lütfen bekleyin. Bu bir veya iki dakika sürebilir.", + "HeaderPlayNext": "Sonrakini Oynat", + "AutoBasedOnLanguageSetting": "Otomatik (cihaz ayarına göre)", + "SameAsMainTheme": "Ana temayla aynı", + "LabelDateTimeLocale": "Tarih ve saat mahalli", + "Genre": "Tür", + "DirectorValue": "Yönetmen: {0}", + "DirectorsValue": "Yönetmenler: {0}", + "GenreValue": "Tür: {0}", + "GenresValue": "Türler: {0}", + "TagsValue": "Etiketler: {0}", + "Off": "Kapalı", + "Title": "Başlık", + "Year": "Yıl", + "Filter": "Filtre", + "Filters": "Filtreler", + "Unplayed": "Oynatılmadı", + "LabelTVHomeScreen": "TV modu ana ekranı", + "Horizontal": "Yatay", + "Vertical": "Dikey", + "HeaderGroupBy": "Grupla", + "HeaderMediaType": "Medya Türü", + "GroupBySeries": "Seriye göre grupla", + "HeaderVideoType": "Video Türü", + "HeaderSeriesStatus": "Seri Durumu", + "Features": "Özellikler", + "Trailers": "Fragmanlar", + "Extras": "Ekstralar", + "ThemeSongs": "Tema şarkıları", + "ThemeVideos": "Tema videoları", + "HeaderFavoriteMovies": "Favori Filmler", + "HeaderFavoritePhotos": "Favori Fotoğraflar", + "HeaderFavoriteShows": "Favori Diziler", + "HeaderFavoriteEpisodes": "Favori Bölümler", + "HeaderFavoriteVideos": "Favori Videolar", + "HeaderFavoriteMusicVideos": "Favori Müzik Videoları", + "HeaderFavoriteGames": "Favori Oyunlar", + "HeaderFavoriteArtists": "Favori Sanatçılar", + "HeaderFavoriteAlbums": "Favori Albümler", + "HeaderFavoriteSongs": "Favori Şarkılar", + "HeaderFavoriteAuthors": "Favori Yazarlar", + "HeaderFavoriteAudioBooks": "Favori Sesli Kitaplar", + "Ascending": "Artan", + "Descending": "Azalan", + "HeaderColorPrimaries": "Renk primerleri", + "HeaderColorSpace": "Renk Skalası", + "HeaderColorTransfer": "Renk Transferi", + "HeaderVideoRange": "Video Aralığı", + "SeriesDisplayOrderHelp": "Bölümleri yayın tarihine, dvd sırasına veya numaralandırmaya göre sıralayın.", + "LabelVerticalPositionFromBottom": "Dikey konum (alttan)", + "HeaderFavoritePeople": "Favori Kişiler", + "MultiSelect": "Çoklu-Seçim", + "HeaderSignOut": "Oturumu Kapat", + "HeaderSelectServer": "Sunucu Seç", + "HeaderChangeServer": "Sunucuyu Değiştir", + "HeaderChangeUser": "Kullanıcıyı değiştir", + "HeaderAppSettings": "Uygulama ayarları", + "HeaderLoginSettings": "Oturum Ayarları", + "LabelRememberLogin": "Girişi hatırla", + "LabelAutomaticallySignOut": "Otomatik olarak çıkış yap", + "BetaTesterMessage": "Emby beta testçisi olduğunuz için teşekkür ederiz! Lütfen {0}Emby Topluluğunun Test Alanına{1} geri bildirimde bulunun .", + "HardwareAccelerated": "Donanım hızlandırılmış", + "Software": "Yazılım", + "Metadata": "Metaveriler", + "HeaderMediaInfo": "Medya Bilgisi", + "Locked": "Kilitli", + "HeaderSplitVersionsApart": "Sürümleri Ayır", + "Any": "Herhangi", + "Admin": "Yönetici", + "HeaderReadMore": "Daha Fazlasını Oku", + "CustomRatingHelp": "Ebeveyn değerlendirmeleri için özel bir derecelendirme kullanılır, ancak görüntülenmez. Ebeveyn değerlendirme alanı hala görüntülenir.", + "KeepUpToHelp": "Sınırın üzerindeki kayıtlar, bir sonraki kayıt başladığında silinir. Eklenme tarihine göre en eski kayıtlar önce silinir.", + "NoItemsMatchingFound": "Arama kriterlerinizle eşleşen hiçbir öğe bulunamadı.", + "TwoSearchCharsRequired": "Lütfen en az iki arama karakteri girin.", + "PreventPlaybackContinuing": "Periyodik olarak kullanıcı girişi isteyip oynatmanın süresiz olarak devam etmesini önleyin.", + "PromptStillWatching": "\"Hala İzliyor musunuz?\" uyarısını etkinleştir", + "HeaderMissingMetadata": "Eksik Metaveri", + "HeaderIncludedIn": "Dahil", + "EmbyConnectUserAlreadyLinked": "Emby Connect kullanıcısı, bu sunucuda başka bir kullanıcıya zaten bağlı.", + "VideoFilesWillBeConvertedTo": "Dönüştürülmüş videolarar {0} şeklinde kaydedilecektir.", + "VideoWillBeConvertedTo": "Video akışları {0} formatına dönüştürülecek veya zaten {0} ise ve kalite dönüştürme seçeneklerine uyuyorsa orijinal dosyadan kopyalanacaktır.", + "VideoWillBeConvertedToOrCopied": "Video akışları {0} biçimine dönüştürülecek veya ({1}) öğelerinden herhangi biri ise orijinal dosyadan kopyalanacak ve kalite dönüştürme seçeneklerine uyacak.", + "AudioWillBeConvertedTo": "Ses akışları {0} biçimine dönüştürülecek veya zaten {0} ise ve kalite dönüştürme seçeneklerine uyuyorsa orijinal dosyadan kopyalanacaktır.", + "AudioWillBeConvertedToOrCopied": "Ses akışları {0} biçimine dönüştürülecek veya ({1}) öğelerinden herhangi biri ise orijinal dosyadan kopyalanacak ve kalite dönüştürme seçeneklerine uyacak.", + "HeaderSpecialKeys": "Özel Tuşlar", + "FollowingSpecialKeys": "Aşağıdaki özel tuşlar çoğu klavye ve uzaktan kumandada desteklenir:", + "HeaderDeleteSeries": "Seriyi Sil", + "HeaderDeleteLastPlayedEpisode": "Son İzlenen Bölümü Sil", + "HeaderConnectingToServer": "Sunucuya Baglanıyor", + "ServerNameValue": "Sunucu adı: {0}", + "DomainValue": "Alan: {0}", + "RatedValue": "{0} Derecelendirilmiş", + "LocalServerRedirectMessage": "Şimdi, bağlanmayı seçtiğiniz sunucunun yöneticisi tarafından sahip olunan ve yönetilen etki alanına yönlendirileceksiniz:", + "AllMediaOwnedHosted": "Tüm medya, {0} sahibi tarafından barındırılır ve yönetilir .", + "EnableResolutionSwitching": "Video çözünürlüğünü eşleştirin", + "EnableResolutionSwitchingHelp": "Bu, Emby'nin oynatmaya başlamadan önce çözünürlüğü videonun kodlandığı değerle değiştirmesini sağlar. Bu, aksi takdirde iyi eşleşmeyen videoları oynatırken görebileceğiniz takılma / sapma miktarını en aza indirmeye yardımcı olabilir.", + "EnableDisplayRefreshRateSwitching": "Ekran yenileme hızı geçişini etkinleştir", + "EnableDisplayRefreshRateSwitchingHelp": "Bu, Emby'nin ekran yenileme hızını, oynatmaya başlamadan önce videonun kodlandığı kare hızıyla aynı değere (veya birkaç katına) değiştirmesini sağlar. Bu, aksi takdirde iyi eşleşmeyen videoları oynatırken görebileceğiniz takılma / titreme miktarını en aza indirmeye yardımcı olabilir.", + "RememberSelectedAudioTracks": "Ses parçası seçimlerini hatırla", + "RememberSelectedSubtitleTracks": "Altyazı seçimlerini hatırla", + "RememberSelectedSubtitleTracksHelp": "Altyazı seçimleri video bazında hatırlanacak ve aynı videoyu tekrar oynatırken yeniden uygulanacaktır.", + "RememberSelectedAudioTracksHelp": "Ses parçası seçimleri video başına hatırlanacak ve aynı videoyu tekrar oynatırken yeniden uygulanacaktır.", + "ClearSavedTrackSelections": "Kaydedilmiş parça seçimlerini temizle", + "HeaderClearTrackSelections": "Kaydedilmiş Parça Seçimlerini Temizle", + "QuestionClearSavedTracks": "Kaydedilen tüm parça seçimleri temizlensin mi?", + "LabelChannelTags": "Kanal etiketleri", + "AfterThisPlaysConfirmation": "Bu çaldıktan sonra, daha önce sıraya koyduğunuz müziği çalmaya devam etmek mi yoksa sırayı temizlemek mi istiyorsunuz?", + "Keep": "Koru", + "Clear": "Temizle", + "HeaderClearFilters": "Filtreleri Temizle", + "HeaderSearchForImages": "Resim Ara", + "HeaderSearchNewImage": "Yeni Bir Resim Ara", + "HeaderSearchForAnImage": "Bir Resim Ara", + "DragDropToReorder": "Yeniden Sıralamak için Sürükle ve Bırak", + "HeaderAddImageFromUrl": "URL'den Resim Ekle", + "HeaderSetImageFromUrl": "URL'den Resmi Ayarla", + "LabelUrl": "Url", + "LabelChannelNumber": "Kanal numarası", + "LabelGuideDataChannel": "Kılavuz veri kanalı", + "GuideDataSource": "Kılavuz veri kaynağı", + "HeaderCopyToClipboard": "Panoya Kopyala", + "TimeRemainingValue": "{0} kaldı", + "LabelResumeRewindSeconds": "Devam ederken otomatik geri sar", + "ResumeRewindSecondsHelp": "Bu, nerede kaldığınızı hatırlamanıza yardımcı olabilir. Bu, oynatma sırasında her bir duraklama için değil, ilk devam ettirme için geçerlidir.", + "HeaderSavePlayQueueToPlaylist": "Oynatma Sırasını Oynatma Listesine Kaydet", + "EnableLogoImagesAsTitle": "Ayrıntı ekranında logoları başlık olarak göster", + "EnableLogoImagesAsTitleHelp": "Varsa, video, dizi ve diğer ayrıntı ekranlarında başlık metni yerine logo görüntüleri kullanılabilir. Bir logo mevcut olmadığında başlık metne dönecektir.", + "LabelNowPlayingAudioBackgroundStyle": "Şimdi ses arka plan stili çalıyor", + "LabelNowPlayingVideoBackgroundStyle": "Şimdi video arka plan stili oynatılıyor", + "NowPlayingVideoBackgroundStyleHelp": "Başka bir cihazda video oynatmayı uzaktan kontrol ederken arka plan stilini belirler.", + "Rotation": "Rotasyon", + "Minutes": "Dakika", + "LabelMaxRecordingLength": "Maksimum kayıt uzunluğu", + "MaxRecordingLengthHelp": "Yayın süresinden bağımsız olarak kayıtları belirli bir süreyle sınırlayın. Sınırlama olmaması için 0 olarak ayarlayın.", + "RemoteWAN": "Uzak (WAN) Adres", + "HeaderLastConnectedTo": "Son Bağlantı Noktası", + "Version": "Versiyon", + "Keyword": "Anahtar Kelime", + "HeaderServerAddress": "Sunucu Adresi", + "HeaderSkipIntro": "İntroyu Atla", + "HeaderCreateRecording": "Kayıt Oluştur", + "HeaderAddRecording": "Kayıt Ekleme", + "HeaderChannelAndTime": "Kanal ve Zaman", + "LabelRecordProgramOrSeriesFrom": "Bir program veya dizi kaydedin", + "LabelStartTime": "Başlama saati", + "LabelEndTime": "Bitiş saati", + "LabelFrequency": "Frekans", + "Recurring": "Tekrarlayan", + "Once": "Bir kez", + "Start": "Başlat", + "Unpause": "Duraklamayı kaldır", + "LabelIntroSkipMode": "İntro atlanıyor", + "ShowSkipIntroButton": "'İntroyu Atla' düğmesini göster", + "AutoSkipIntro": "İntroları otomatik atla", + "DisplayRatingInformationOnVideoPlaybackStart": "Video oynatma başlangıcında derecelendirme bilgilerini görüntüleme", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Video oynatma başladığında derecelendirme bilgileri kısa bir süre görüntülenecektir.", + "IntroSkipModeHelp": "Emby Server'ın giriş işaretlerini algıladığı bölümler için bir 'Girişi Atla' düğmesi görüntüleyin veya girişleri otomatik olarak atlayın. İntro algılama Emby Server kütüphane seçeneklerinde etkinleştirilmelidir.", + "EnableHomeScreenFocusPreview": "Ana ekranda seçilen öğenin ayrıntılı bir önizlemesini gösteren bir düzen kullanın", + "EnableHomeScreenFocusPreviewHelp": "Ana ekranınız farklı medya türlerinin bir karışımını içeriyorsa bu iyi çalışmayabilir.", + "LabelHideMediaTransportButtons": "Video oynatıcı taşıma düğmelerini gizleyin", + "HideMediaTransportButtonsHelp": "İleri atlama, geri alma ve duraklatma gibi temel taşıma düğmelerini gizleyerek daha basit bir ekran oynatma arayüzü oluşturun. Ok tuşlarını ve OK/Enter'ı kullanarak bu işlevleri kullanmaya devam edebileceksiniz. Otomatik, uygulama içinde fare kullanımı algılanmadığında taşıma düğmelerini gizleyecektir.", + "ImageSizeHelp": "Görüntü ızgaraları için tercih ettiğiniz boyutu ayarlayın.", + "LabelImageSize": "Resim boyutu", + "ThisImageIsOnlyPreview": "Bu görüntü yalnızca meta veri arama motorundan gelen bir önizlemedir. Emby Server'ın indirdiği gerçek görüntü farklı olabilir ve Emby kütüphane kurulumunda yapılandırdığınız seçeneklere bağlı olacaktır.", + "ResultsRangeValue": "{0}'dan {1}'e {2}", + "NotificationsDescription": "Emby Sunucunuzdaki önemli olaylardan haberdar olmak için bildirimleri ayarlayın.", + "DeleteEmbyConnectAccount": "Emby Connect Hesabımı Sil", + "DeleteEmbyConnectAccountHelp": "Emby Connect hesabınızı silmek için lütfen {0}Emby Topluluğunda{1} {2} adresinden oturum açın. Oturum açtıktan sonra, sağ üstteki kullanıcı adınıza tıklayın, ardından Hesap Ayarları'na tıklayın, ardından Hesabımı Sil'e tıklayın.", + "KeepPlayingInBackground": "Arka planda çalmaya devam et", + "LabelVideoBackBehavior": "Video oynatıcı geri düğmesi davranışı", + "HeaderViewLyrics": "Şarkı Sözlerini Görüntüle", + "HeaderViewMissingEpisodes": "Kayıp Bölümleri Görüntüle", + "HeaderMissingEpisodes": "Kayıp Bölümler", + "HeaderManageAccess": "Erişimi Yönet", + "HeaderManageCollaboration": "İşbirliğini Yönetme", + "HeaderLeaveCollaboration": "İşbirliğinden Ayrılın", + "HeaderRemoveFromLibrary": "Kütüphaneden Kaldır", + "RemoveSharedItemConfirmation": "Bu materyali kütüphanenizden kaldırmak istediğinizden emin misiniz? Geri almak için sahibinin size tekrar erişim izni vermesi gerekecektir.", + "SubtitlesDownloaded": "İndirilen Altyazılar", + "HeaderMakePrivate": "Özel Yap", + "HeaderMakePublic": "Herkese Açık Yap", + "MakePublicDescription": "Tüm kullanıcılar bu öğeyi görüntüleyebilecektir. Kullanıcılara düzenleme erişimi verilebilir.", + "MakePrivateDescription": "Kullanıcılara yine de bireysel olarak erişim izni verilebilir.", + "Private": "Özel", + "Public": "Herkese Açık", + "Collaborative": "İşbirlikçi", + "PreferredShowDisplay": "Tercih edilen TV programı ekranı", + "ShowAllEpisodesAllSeasons": "Tüm sezonların tüm bölümlerini birlikte göster", + "ShowAllEpisodesSingleSeason": "Yalnızca tek sezonluk programlar için tüm bölümleri göster", + "ShowSeasonFolders": "Her zaman sezon klasörlerini gösterin", + "HeaderAddAgain": "Tekrar Ekle", + "UpNext": "Sıradaki", + "ItemsAlreadyInPlaylist": "Bu öğelerden bazıları zaten çalma listenizde yer alıyor.", + "ItemAlreadyInPlaylist": "Bu öğe zaten çalma listenizde.", + "HeaderPlayChannel": "Oynatma Kanalı", + "LabelScreenOrientationDuringVideo": "Video oynatma sırasında ekran yönü", + "UseDeviceSetting": "Cihaz ayarını kullan", + "LockToLandscape": "Manzaraya kilitle", + "UsernameForFolderHelp": "Ağınızda bu klasöre erişmek için gereken kullanıcı adı (varsa).", + "PasswordForFolderHelp": "Ağınızda bu klasöre erişmek için gereken parola (varsa).", + "ShowMediaInfoOnDetailScreens": "Ses ve video ayrıntı ekranlarının altında tam medyayı göster", + "ForgotPasswordNoUserFound": "Girilen ada sahip hiçbir kullanıcı bulunamadı. Lütfen tekrar deneyin veya bu sunucudaki tüm kullanıcıların parolasını sıfırlamak için adı boş bırakın.", + "Silver": "Gümüş", + "DimGray": "Loş Gri", + "DarkGray": "Koyu Gri", + "LightGray": "Açık Gri", + "Black": "Siyah", + "Blue": "Mavi", + "Cyan": "Camgöbeği", + "Gray": "Gri", + "Green": "Yeşil", + "Lime": "Lime", + "Magenta": "Magenta", + "Orange": "Turuncu", + "Pink": "Pembe", + "Red": "Kırmızı", + "Yellow": "Sarı", + "White": "Beyaz", + "Purple": "Mor", + "RecentlyReleasedMovies": "Son Çıkan Filmler", + "RecentlyReleasedEpisodes": "Son Yayınlanan Bölümler", + "DolbyProfile": "Dolby Profil", + "IpAddress": "IP Adres", + "VideoType": "Video Tipi", + "HidePlayedMediaFrom": "Oynatılan Medyayı Şuradan Gizle", + "BottomEdgePosition": "Alt Kenar Konumu", + "VerticalPositionFromBottomScreen": "Altyazıların ekranın alt kısmına göre dikey konumunu ayarlayın.", + "TopEdgePosition": "Üst Kenar Konumu", + "TopEdgePositionHelp": "Altyazıların ekranın üst kısmına göre izin verilen en yüksek dikey konumunu ayarlayın. Bu, altyazılar en üste yerleştirilecek konumlandırma talimatları içerdiğinde kullanılır.", + "HeaderSubtitlePosition": "Alt Başlık Pozisyonu", + "TitleProfilePin": "Profil Pini", + "ProfilePinConfirm": "Profil Pini (onayla)", + "SaveProfilePin": "Pin Kaydet", + "ProfilePinDescription": "Daha önce oturum açtığınız bir cihazda Emby uygulamasına her döndüğünüzde giriş için sorulacak isteğe bağlı bir pin oluşturun. Bu, birden fazla kullanıcı tarafından paylaşılan cihazlarınız varsa kullanışlıdır. Gerektiğinde her cihazda seçmeli olarak etkinleştirmeyi seçebilirsiniz.", + "TitleNewEpisodes": "Yeni Bölümler", + "EnterYourPinToContinue": "Devam etmek için PIN kodunuzu girin.", + "YourPinMustBe": "PIN kodunuz {0} haneli olmalıdır.", + "ForgotPin": "PIN kodunuzu mu unuttunuz?", + "RequireEnteringPinToReturn": "Bu uygulamaya her döndüğümde profil PIN kodumu girmem gerekiyor.", + "RequireEnteringPinToReturnQuestion": "Bu uygulamaya her döndüğünüzde sizden profil PIN kodunuzu istemeli miyiz? Bu cihaz birden fazla kullanıcı tarafından paylaşılıyorsa, profil PIN kodunuz diğer kullanıcıların verilerinize erişmesini önlemeye yardımcı olabilir.", + "RequireEnteringPinToReturnHelp": "Bu cihaz birden fazla kullanıcı tarafından paylaşılıyorsa kullanışlıdır.", + "WrongPinPleaseTryAgain": "Upsss, yanlış PIN. Lütfen tekrar deneyin.", + "ProfilePinIsOn": "Profil PIN kodu şu anda açık.", + "IfTryingToConnectToHttp": "Emby Sunucunuza bir HTTP adresi kullanarak bağlanmaya çalışıyorsanız, tarayıcınız HTTPS gereksinimleri nedeniyle buna izin vermiyor olabilir. Lütfen aşağıdakilerden birini deneyin:", + "SetupHttpsForYourServer": "HTTPS kullanarak bağlanabilmeniz için {0}Emby Sunucunuz için HTTPS{1} ayarlayın.", + "TitleUnableToReachServer": "Sunucuya Ulaşılamıyor", + "TitleUnableToReachName": "Ulaşılamıyor {0}", + "HearingImpaired": "İşitme Engelli", + "SignIntoServerName": "Oturum aç {0}", + "About": "Hakkında", + "Specials": "Özel Ürünler", + "NSettings": "{0} Ayarları", + "NPreferences": "{0} Tercihleri", + "DetailScreenOptions": "Detay Ekranları", + "LabelGenreDisplayLimit": "Tür görüntüleme sınırı", + "GenreDisplayLimitHelp": "Öğe ayrıntı ekranlarının en üstünde görüntülenen türlerin sayısını sınırlayın.", + "GenreDisplayLimitForListsHelp": "Çalma listesi, koleksiyon ve sanatçı ayrıntı ekranlarının en üstünde görüntülenen tür sayısını sınırlayın.", + "LabelGenreDisplayLimitForLists": "Listeler için tür görüntüleme sınırı", + "ShowPosterOnDetails": "Detay ekranında bir poster gösterin", + "ShowPosterOnDetailsHelp": "Video ayrıntı ekranlarında bir poster göstermeyi veya arka planı vurgulayan daha minimal bir görünüm için posteri gizlemeyi seçin. Bu ayar daha küçük ekran düzenlerinde kullanılmaz. Bazı öğe türleri bu ayarı görmezden gelecektir.", + "EnableAppLogging": "Uygulama günlüğünü etkinleştirin", + "EnableAppLoggingHelp": "Günlük kaydı uygulama performansını düşürebilir ve yalnızca sorun giderme amacıyla gerektiğinde etkinleştirilmelidir. Değişiklikler uygulamanın yeniden başlatılmasını gerektirir.", + "LabelSlideshowInterval": "Slayt başına fotoğraf slayt gösterisi süresi", + "TVChannelImageEditorHelp": "Birden fazla logo sürümü desteklenir. Emby uygulamaları, mevcut temaya bağlı olarak uygun olanı otomatik olarak seçecektir.", + "PlaySlideshow": "Slayt Gösterisini Oynat", + "CheckForExistingEpisodesInAllLibraries": "Tüm kütüphanelerdeki mevcut bölümleri kontrol et", + "GroupNotificationsBySeriesOrAlbum": "Bildirimleri serilere ve albümlere göre gruplandır", + "ThemeSettings": "Tema Ayarları", + "FollowingActivityWillBeDisrupted": "Bu faaliyet kesintiye uğrayacaktır ve yeniden başlatmak için manuel müdahale gerekebilir:", + "OneActivePlaybackSession": "1 Aktif Oynatma Oturumu", + "NumActivePlaybackSessions": "{0} Aktif Oynatma Oturumu", + "OneActiveRecording": "1 Aktif Kayıt", + "NumActiveRecordings": "{0} Aktif Kayıt", + "PlayFromLivePosition": "Canlı konumdan oynat", + "PlayFromStartOfRecording": "Kaydın başlangıcından itibaren oynat", + "ThisChannelIsActivelyRecording": "Bu kanal aktif olarak kayıt yapıyor. Oynatmaya nasıl başlamak istersiniz?", + "ThemeSongVolume": "Tema şarkısı seviyesi", + "HeaderForceConversionForFormats": "Formatlar için Kod Dönüştürmeyi Zorla", + "ForceConversionForFormatsHelp": "Bunu, bu cihazda çok iyi oynamayan formatlar için sunucu tarafı kod kodlamayı zorlamak veya yeniden desteklemek için kullanın.", + "StartupBehavior": "Başlangıç davranışı", + "RememberLastUser": "Son kullanıcıyı hatırla", + "ShowLoginScreen": "Giriş ekranını göster", + "SignInAsValue": "{0} olarak giriş yap", + "ConvertUnsupportedAudio": "Desteklenmeyen Surround Sesi Dolby Digital'e dönüştürün", + "ConvertUnsupportedAudioHelp": "Emby Server'ın Dolby Digital'e dönüştürülmesiyle desteklenmeyen surround formatları stereoya indirmekten kaçının.", + "HeaderPlaybackCorrection": "Oynatma Düzeltmesi", + "HeaderAttemptPlaybackCorrection": "Oynatma Düzeltmesi Dene", + "PlaybackCorrectionConfirm": "Oynatma düzeltmesi denensin mi?", + "PlaybackCorrectionDescription": "Geçerli öğede görütü veya ses olmaması gibi bir oynatma sorunu mu yaşanıyor? Bu seçenek, oynatma sorunlarını düzeltmek için sunucu kod dönüştürmeyi kullanarak dosyayı daha akıcı yayınlanabilir bir formata çevirmeyi deneyecektir. Ancak bu işlem, bu Emby Sunucusunda daha fazla kaynak kullanımıyla sonuçlanacaktır.", + "PlaybackCorrectionDescription2": "Bunu video başına en fazla üç kez yapabilirsiniz; her seferinde remuxing, video dönüştürme ve ses dönüştürme ayrı ayrı etkinleştirilir.", + "HeaderAlbumsAsContributingArtist": "Katkıda bulunan sanatçı olarak albümler", + "HeaderAlbumsAsComposer": "Besteci olarak albümler", + "Duplicates": "Kopyalar", + "HeaderSleepTimer": "Uyku Zamanlayıcısı", + "AfterCurrentItem": "Geçerli öğeden sonra", + "HeaderStopPlayback": "Oynatmayı Durdur", + "TurnOffTimer": "Zamanlayıcıyı kapat", + "SleepTimerIsSet": "Uyku zamanlayıcınız ayarlandı", + "SleepTimerIsOff": "Uyku zamanlayıcınız kapalı", + "LabelEnableRemoteControlTVMode": "Döküm ve uzaktan kumanda işlevlerini görüntüle", + "EnableRemoteControlTVModeHelp": "Bu cihazı diğer cihazlara medya göndermek için kullanmayı planlıyorsanız etkinleştirin.", + "ShowOnScreenControls": "Ekran kontrollerini göster", + "LabelVideoScreenUpAction": "Video ekranı UP eylemi", + "VideoScreenUpActionHelp": "Video ekranında yukarı tuşuna basıldığında yapılacak işlemi seçin. Bu, ekranda hiçbir ekran kontrolü görünmediğinde geçerlidir. Kontroller zaten görünüyorsa, yukarı tuşu gezinme için kullanılacaktır.", + "LabelVideoPlayerLongPressAction": "Video oynatıcı uzun basma eylemi", + "LetsGetSetup": "Haydi Hazırlanalım", + "VideoPlayerLongPressActionHelp": "Video oynatma sırasında OK düğmesine uzun süre basıldığında hangi işlevin veya menünün gösterildiğini seçin. Bu yalnızca video kontrolleri gizli olduğunda veya arama çubuğunun odağı olduğunda geçerli olur.", + "AskAdminToGetPremiere": "Bu satın alma işlemi sunucu yöneticisi tarafından yapılmalıdır. Lütfen bu Emby Sunucusunun yöneticisinden oturum açmasını ve Emby Premiere’i satın almasını isteyin, böylece premium özelliklere erişimin keyfini çıkarabilirsiniz.", + "AutoOpenSingleItemsFolders": "Klasör görünümünde tek öğeleri otomatik aç", + "AutoOpenSingleItemsFoldersHelp": "Bir klasör yalnızca bir öğe içeriyorsa, o öğeyi otomatik aç.", + "PlayedOnValue": "{0} oynatıldı", + "TheseSettingsApplyAppDevice": "Bu ayarlar, bu cihazda izleyen tüm kullanıcılar için geçerlidir.", + "LastContentDateAdded": "Son İçerik Eklenme Tarihi", + "RepeatThemeMedia": "Temaları tekrar tekrar oynat", + "HideEpisodeSpoilerInfo": "İzlenmemiş bölümlerden spoiler bilgilerini gizle", + "HideEpisodeSpoilerInfoHelp": "Çoğu ekranda izlenmeyen bölümlerin görüntüsünü ve genel bakışını gizler.", + "BornValueAge": "Doğum: {0} (yaş {1})", + "PreferDirectStreamLiveTV": "Canlı TV'nin doğrudan akışını tercih edin", + "PreferDirectStreamLiveTVHelp": "Doğrudan akışlı Canlı TV, Emby Sunucunuzdaki kaynak tüketimini azaltacaktır ancak oynatma sırasında o kadar aranamayabilir. Bunun etkinleştirilmesi, format desteklendiğinde ve yapılandırdığınız kalite ayarı dahilinde olduğunda Canlı TV akışını yönlendirecektir. Ek kaynak tüketimi pahasına oynatma sırasında daha fazla aramanın keyfini çıkarmak için bunu devre dışı bırakın.", + "HeaderAllRecordings": "Tüm Kayıtlar", + "RememberLoginDescription": "Oturum açtıktan sonra, başlangıç davranışını oturum açmayı hatırlayacak, belirli bir kullanıcı olarak oturum açacak veya her zaman oturum açma ekranını gösterecek şekilde yapılandırmak için uygulama ayarlarını kullanabilirsiniz.", + "ForgetServerConfirmation": "Bu sunucuyu unutmak istediğinizden emin misiniz?", + "ForgetThisServer": "Bu Sunucuyu Unutun", + "HeaderThisDevice": "Bu Cihaz", + "ChaptersGuide": "Bölümler / Canlı TV Rehberi", + "ChaptersGuideHelp": "Bölümleri olan medya için Bölümleri göster. Bölümleri olmayan ortamlar için Canlı TV Rehberini (mevcut olduğunda) gösterin.", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/uk.json b/modules/common/strings/uk.json new file mode 100644 index 0000000..c787148 --- /dev/null +++ b/modules/common/strings/uk.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Замінити наявні ескізи відео", + "ReplaceExistingThumbnailImagesHelp": "Всі існуючі ескізи відео буде видалено, і буде згенеровано нові, якщо це увімкнено в налаштуваннях медіатеки.", + "DateCreated": "Дата створення", + "CreatedOnValue": "Створено {0}", + "UpdatedOnValue": "Оновлено {0}", + "EmbyLoginTerms": "Ціль Emby — допомогти вам керувати особистою медіатекою, наприклад домашніми відео та світлинами. Спочатку ознайомтеся з нашими {0}умовами використання{1}. Використання будь-якого програмного забезпечення Emby означає прийняття цих умов.", + "MessageUnableToConnectToServer": "Наразі не вдається з’єднатися з вибраним сервером. Переконайтесь, що він працює, і повторіть спробу.", + "EmbyIntroMessage": "З Emby можна легко передавати відео, музику та світлини на смартфони, планшети та інші пристрої зі свого Emby Server.", + "HeaderSignInWithConnect": "Увійти за допомогою Emby Connect", + "HeaderWelcomeToEmby": "Вітаємо у Emby", + "HeaderNewUsers": "Нові користувачі", + "HeaderPleaseSignIn": "Увійдіть до системи", + "MessageInvalidUser": "Неправильне ім'я користувача або пароль. Спробуйте ще раз.", + "MessageUnlockAppWithPurchaseOrSupporter": "Розблокуйте цю функцію, зробивши невелику одноразову покупку або оформивши передплату Emby Premiere.", + "MessageUnlockAppWithSupporter": "Розблокуйте цю функцію, оформивши передплату Emby Premiere.", + "MessageToValidateSupporter": "Якщо у вас є активна передплата Emby Premiere, переконайтеся, що ви налаштували її на головній панелі Emby Server. Для цього в головному меню виберіть пункт Emby Premiere.", + "ValueSpecialEpisodeName": "Спеціальна серія - {0}", + "HeaderSignIn": "Увійти", + "Share": "Поділитись", + "Shared": "Спільний доступ", + "Info": "Відомості", + "Add": "Додати", + "Speed": "Швидкість", + "PlaybackSpeed": "Швидкість відтворення", + "Chapters": "Розділи", + "Password": "Пароль", + "SavePassword": "Зберегти пароль", + "LabelPassword": "Пароль", + "HeaderResetPassword": "Скинути пароль", + "Series": "Серіал", + "Preview": "Попередній перегляд", + "Submit": "Надіслати", + "Never": "Ніколи", + "Table": "Таблиця", + "HeaderScheduledTasks": "Заплановані задачі", + "Plays": "Відтворення", + "LastUsedAddressValue": "Останнє використання {0}", + "LabelKeywordType": "Тип ключового слова", + "HeaderSelectColumns": "Вибрати стовпці", + "HeaderTopResults": "Найкращі результати", + "HeaderPinSidebar": "Закріпити бічну панель", + "Collapse": "Згорнути", + "LabelBackgroundVideoPlayback": "Відтворення відео", + "BackgroundVideoPlaybackHelp": "Фонове відтворення забезпечує відтворення відео, навіть коли екран вимкнено.", + "AlwaysOn": "Завжди увімкнено", + "HeadphonesOrExternalSpeakersConnected": "Коли підключені навушники або зовнішні динаміки", + "HeaderKeyboardAndRemote": "Клавіатура та пульт", + "NoSelectedItemsSupportOperation": "Не вибрані елементи, які підтримують цю операцію.", + "NoOperationsForSelectedItems": "Для вибраних елементів немає доступних операцій.", + "UploadOnlyOnWifi": "Завантажувати лише через Wi-Fi", + "HeaderFoldersToUpload": "Папки для завантаження", + "LabelPasswordConfirm": "Пароль (повторіть)", + "HeaderMoveUpInOrder": "Підняти вгору", + "HeaderDownUpInOrder": "Опустити вниз", + "LabelUsername": "Ім'я користувача", + "HeaderAddServer": "Додати сервер", + "HeaderSubtitleOffset": "Зміщення субтитрів", + "Watching": "Йде перегляд", + "HeaderRemoveFromContinueWatching": "Вилучити з продовження перегляду", + "RemoveThisTitleFromContinueWatching": "Вилучити цей об'єкт з продовження перегляду?", + "HeaderRemoveFromContinueListening": "Вилучити з продовження прослуховування", + "RemoveThisTitleFromContinueListening": "Вилучити цей об'єкт з продовження прослуховування?", + "HeaderIncreaseSubtitleOffset": "Підняти субтитри", + "HeaderDecreaseSubtitleOffset": "Опустити субтитри", + "Close": "Закрити", + "HeaderSeeAll": "Показати все", + "HeaderOpenInNewWindow": "Відкрити в новому вікні", + "LabelEmail": "Ел. пошта", + "LabelHost": "Сервер", + "LabelHostHelp": "Приклад: 192.168.1.100 або https://myserver.com", + "LabelPort": "Порт", + "Disabled": "Вимкнено", + "Uninstall": "Видалити", + "Enable": "Увімкнути", + "AllTuners": "Всі тюнери", + "Disable": "Вимкнути", + "NextValue": "Далі: {0}", + "HeaderNextItem": "Наступний елемент", + "HeaderPreviousItem": "Попередній елемент", + "NoTrailersMessage": "Трейлери не знайдені. Щоб додати трейлери, встановіть додаток трейлерів з {0}каталогу додатків Emby{1}.", + "UninstallPluginConfirmation": "Дійсно видалити цей додаток?", + "HeaderUninstallPlugin": "Видалити додаток", + "AreYouStillWatching": "Ви ще дивитесь?", + "LabelCurrentPassword": "Поточний пароль", + "LabelNewPassword": "Новий пароль", + "LabelNewPasswordConfirm": "Новий пароль (повторіть)", + "HeaderRemovePassword": "Видалити пароль", + "ServerUpdateNeeded": "Цей Emby Server потребує оновлення. Щоб завантажити останню версію, відвідайте сторінку {0}", + "MessageThankYouForConnectSignUp": "Дякуємо за реєстрацію в Emby Connect. На вашу адресу буде надіслано електронний лист з інструкціями щодо підтвердження нового облікового запису. Підтвердьте обліковий запис, а потім поверніться сюди, щоб увійти.", + "MessageThankYouForConnectSignUpNoValidation": "Дякуємо за реєстрацію в Emby Connect! Тепер вам потрібно буде увійти зі своїми обліковими даними Emby Connect.", + "ErrorMessagePasswordNotMatchConfirm": "Пароль та його підтвердження повинні збігатися.", + "ErrorMessageUsernameInUse": "Ім'я користувача вже зайнято. Виберіть нове ім’я та повторіть спробу.", + "ErrorMessageEmailInUse": "Адреса електронної пошти вже використовується. Введіть нову адресу та повторіть спробу або спробуйте відновити пароль.", + "HeaderUpcomingOnTV": "Майбутні на ефірному ТБ", + "HeaderOtherShowings": "Інші покази", + "Showings": "Покази", + "HeaderConnectToServer": "Підключитись до сервера", + "ConnectToServerManually": "Підключитись до сервера вручну", + "LabelEnterConnectUserNameHelp": "Це адреса електронної пошти, яку ви використовували для налаштування облікового запису Emby Connect.", + "HeaderSignInError": "Помилка входу", + "HeaderManualLogin": "Увійти вручну", + "PasswordResetConfirmation": "Дійсно скинути пароль?", + "ContactAdminToResetPassword": "Щоб скинути пароль, зверніться до свого адміністратора.", + "ForgotPasswordInNetworkRequired": "Спробуйте скинути пароль з домашньої мережі.", + "ForgotPasswordFileCreated": "На вашому сервері створено наступний файл, що містить вказівки щодо подальших дій:", + "ForgotPasswordFileExpiration": "Термін дії PIN-коду для скидання спливає {0}.", + "InvalidForgotPasswordPin": "Введено недійсний або прострочений PIN-код. Спробуйте ще раз.", + "PasswordResetForUsers": "Паролі наступних користувачів були видалені. Для входу використовуйте пустий пароль.", + "HeaderForgotPassword": "Забули Пароль?", + "ForgotPasswordUsernameHelp": "Залиште це поле порожнім, якщо ви не пам’ятаєте своє ім’я користувача.", + "HeaderPasswordReset": "Скинути пароль", + "AttributeNew": "Новий", + "Done": "Готово", + "HeaderResetToDefault": "Скинути до замовчування", + "Deinterlacing": "Деінтерлейсинг", + "HeaderBurningInSubtitles": "Вбудовані субтитри", + "Premiere": "Прем'єра", + "LabelPinCode": "PIN-код", + "LabelLocalNetworkPinCode": "PIN-код локальної мережі", + "LabelLocalNetworkPasswordMode": "Режим входу з локальної мережі", + "RequirePasswordInLocalNetwork": "Вимагати пароль у локальній мережі", + "NoPasswordInLocalNetwork": "Не вимагати пароль у локальній мережі", + "PinCodeInLocalNetwork": "Дозволити використання числового PIN-коду в локальній мережі", + "LocalNetworkPasswordModeHelp": "Виберіть спосіб входу для пристроїв у одній локальній мережі з Emby Server.", + "HeaderLocalNetworkAccess": "Доступ з локальної мережі", + "Live": "Наживо", + "Reset": "Скинути", + "Repeat": "Повтор", + "Track": "Доріжка", + "Tracks": "Доріжки", + "HeaderCameraUpload": "Завантаження з камери", + "TrackCount": "{0} доріжок", + "ItemCount": "{0} елементів", + "NumberChannelsValue": "{0} каналів", + "HeaderLatestMusic": "Остання музика", + "HeaderLatestAudioBooks": "Останні аудіокниги", + "HeaderLatestDownloadedVideos": "Останні завантажені відео", + "HeaderRecentlyPlayed": "Нещодавно відтворені", + "Recent": "Нещодавні", + "HeaderFrequentlyPlayed": "Часто відтворювались", + "HeaderMoreLikeThis": "Більше подібного", + "HeaderMoreLikeThisOnLiveTV": "Більше подібного у ефірному ТБ", + "OriginalAirDateValue": "Оригінальна дата виходу: {0}", + "EndsAtValue": "Закінчується {0}", + "Date": "Дата", + "AirDate": "Дата виходу", + "Played": "Відтворено", + "Daily": "Щодня", + "Weekly": "Щотижня", + "RequireHashMatch": "Вимагати збіг хешу", + "RequireHashMatchHelp": "Якщо вимагати збіг хешу, будуть відібрані лише ті субтитри, які були перевірені саме з вашим відеофайлом. Якщо зняти цей прапорець, кількість відповідних субтитрів збільшиться, але також збільшиться ймовірність несинхронізованого або невідповідного тексту субтитрів.", + "SearchForForcedSubtitlesOnly": "Лише примусові субтитри", + "SearchForForcedSubtitlesOnlyHelp": "Якщо вимагати лише примусові субтитри, будуть доступні лише ті субтитри, що позначені як іноземні.", + "LastEpisodeDateAdded": "Дата додавання останньої серії", + "LastEpisodeDateAired": "Дата виходу останньої серії", + "LabelPlaystate": "Стан відтворення", + "Studio": "Студія", + "Tag": "Тег", + "EpisodeTitle": "Назва серії", + "Audio": "Аудіо", + "Video": "Відео", + "Subtitle": "Субтитри", + "Image": "Зображення", + "CopyStream": "Копіювати оригінальний потік", + "LabelAudioLayout": "Макет аудіо", + "LabelAudioCodec": "Аудіокодек", + "LabelAudioLanguage": "Мова аудіо", + "LabelSubtitleLanguage": "Мова субтитрів", + "LabelVideoCodec": "Відеокодек", + "LabelSubtitleCodec": "Кодек субтитрів", + "LabelParentalRating": "Вікова категорія", + "BecauseYouLikeValue": "Тому що вам подобається {0}", + "BecauseYouWatchedValue": "Тому що ви дивились {0}", + "DirectedByValue": "Режисер: {0}", + "StarringValue": "У ролях: {0}", + "Invitations": "Запрошення", + "ActorAsRole": "як {0}", + "ButtonOk": "ОК", + "GroupItemsIntoCollections": "Об'єднувати елементи в колекції", + "GroupItemsIntoCollectionsHelp": "Групувати елементи на основі колекцій, до яких вони були додані. Це може бути автоматично вимкнуто у комбінації з певними фільтрами або порядками сортування.", + "GroupItemsIntoTags": "Об'єднувати елементи за тегами", + "GroupItemsIntoTagsHelp": "Групувати елементи на основі доданих тегів. Це може бути автоматично вимкнуто у комбінації з певними фільтрами або порядками сортування.", + "User": "Користувач", + "Access": "Доступ", + "Users": "Користувачі", + "Library": "Медіатека", + "Devices": "Пристрої", + "Cancel": "Скасувати", + "Restart": "Перезапустити", + "Shutdown": "Зупинити", + "Logs": "Журнали", + "Visibility": "Видимість", + "Notifications": "Сповіщення", + "SendTestNotification": "Надіслати тестове сповіщення", + "NotificationSent": "Сповіщення надіслано", + "DeleteNotificationConfirmation": "Ви впевнені, що бажаєте видалити це сповіщення?", + "DeleteNotification": "Видалити сповіщення", + "AddNotification": "Додати сповіщення", + "EditNotification": "Редагувати сповіщення", + "LimitUserEventsTo": "Обмежити події користувача", + "LimitLibraryEventsTo": "Обмежте бібліотечні події", + "LimitDeviceEventsTo": "Обмежити події пристроїв до", + "ForAdditionalNotificationOptions": "Адміністратор сервера може встановити додаткові служби сповіщень у {0}каталозі додатків{1} Emby.", + "Plugins": "Додатки", + "Systems": "Системи", + "Server": "Сервер", + "Dashboard": "Головна панель", + "PlayOnAnotherDevice": "Відтворити на іншому пристрої", + "HeaderConnectionHelp": "Допомога з підключенням", + "AccessRestrictedTryAgainLater": "На даний час доступ обмежений. Спробуйте пізніше.", + "ButtonGotIt": "Зрозуміло", + "RememberMe": "Запам'ятати мене", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Налаштувати Emby Server", + "ShutdownServer": "Зупинити Emby Server", + "RestartServer": "Перезапустити Emby Server", + "RecordingCancelled": "Запис скасовано", + "SeriesCancelled": "Серіал скасовано", + "Recording": "Запис", + "SeriesRecording": "Запис серіалу", + "RecordingScheduled": "Запис заплановано", + "SeriesRecordingScheduled": "Запис серіалу заплановано", + "HeaderNewRecording": "Новий запис", + "HeaderWakeServer": "Розбудити сервер", + "AttemptingWakeServer": "Намагаємось розбудити сервер. Зачекайте, будь ласка...", + "WakeServerSuccess": "Успішно!", + "HeaderCustomizeHomeScreen": "Налаштувати головний екран", + "WakeServerError": "На сервер були надіслані пакети Wake On LAN, але ми не можемо підключитися до вашого Emby Server. Можливо, комп'ютеру потрібно трохи більше часу для пробудження, або Emby Server не запущений.", + "Days": "Дні", + "Network": "Мережа", + "Networks": "Мережі", + "SortByValue": "Сортувати за {0}", + "HeaderSortBy": "Сортувати за", + "HeaderPhotoAlbums": "Фотоальбоми", + "Photos": "Світлини", + "HeaderAppearsOn": "Відображається у", + "List": "Список", + "HeaderRecordSeries": "Записати серіал", + "HeaderCinemaMode": "Кінозаставки", + "Conversions": "Перетворення", + "Downloads": "Завантаження", + "HeaderManageDownloads": "Керування завантаженнями", + "InternalStorage": "Внутрішнє сховище", + "ExternalStorage": "Зовнішнє сховище", + "UploadToFollowingServers": "Завантажити на сервери", + "UploadingNumItems": "Завантажується {0} з {1}", + "DownloadNumItems": "Завантаження {0} з {1}", + "HeaderSampleRate": "Частота дискретизації", + "HeaderReferenceFrames": "Опорні кадри", + "HeaderBitDepth": "Бітова глибина", + "HeaderPixelFormat": "Формат пікселя", + "Profile": "Профіль", + "Bitrate": "Швидкість потоку", + "Expand": "Розгорнути", + "Container": "Контейнер", + "Format": "Формат", + "Path": "Шлях", + "Size": "Розмір", + "Resolution": "Роздільна здатність", + "HeaderCodecTag": "Тег кодека", + "Framerate": "Частота кадрів", + "Interlaced": "Черезрядкове", + "Anamorphic": "Анаморфне", + "Level": "Рівень", + "Timestamp": "Мітка часу", + "Language": "Мова", + "Codec": "Кодек", + "Stream": "Потік", + "HeaderExtradata": "Додаткові дані", + "HeaderHardwareAcceleratedTranscoding": "Перекодування з апаратним прискоренням", + "HeaderHardwareAcceleratedTranscodingDescription": "Скористайтеся перевагами графічного процесора вашого сервера. Emby має найсучасніше та найшвидше апаратне прискорення в галузі.", + "HeaderOfflineDownloads": "Локальні медіафайли", + "AndMuchMoreExclamation": "І багато іншого!", + "HeaderOfflineDownloadsDescription": "Завантажте медіафайли на свої пристрої, щоб вони були доступні, коли нема з'єднання з Інтернетом.", + "LiveTvFeatureDescription": "Транслюйте ефірне ТБ на будь-який додаток Emby за допомогою сумісного ТВ-тюнера, підключеного до комп'ютера з Emby Server.", + "DvrFeatureDescription": "Заплануйте запис телевізійних передач, серіалів тощо за допомогою Emby DVR.", + "CinemaModeFeatureDescription": "Кінозаставки дають вам справжнє враження глядацького кінозалу завдяки трейлерами та спеціальними заставкам перед основним фільмом.", + "HeaderFreeApps": "Безкоштовні додатки Emby", + "FreeAppsFeatureDescription": "Ви можете безкоштовно користуватись додатками Emby на своїх пристроях.", + "HeaderBecomeProjectSupporter": "Отримати Emby Premiere", + "HeaderViewServerInfo": "Відомості про сервер", + "PlaybackTvModeRequiresEmbyPremiere": "Для відтворення медіафайлів у режимі ТБ потрібна активна {0}передплата Emby Premiere{1}.", + "FeatureRequiresEmbyPremiere": "Для цієї функції потрібна активна {0}передплата Emby Premiere{1}.", + "HeaderConvertYourRecordings": "Перетворіть свої записи", + "Record": "Записати", + "Save": "Зберегти", + "Edit": "Редагувати", + "HeaderSavePlaylist": "Зберегти список відтворення", + "Latest": "Останні", + "Download": "Завантажити", + "Downloaded": "Завантажено", + "Converted": "Перетворено", + "RemoveFromHistory": "Прибрати з історії", + "ConfirmRemoveFromHistory": "Видалити цей елемент з історії?", + "Downloading": "Завантаження", + "Advanced": "Додатково", + "LinkedToEmbyConnect": "Зв'язано з Emby Connect", + "Delete": "Видалити", + "Both": "Обидва", + "LabelChannelDisplay": "Відображення каналів", + "HeaderDeleteItem": "Видалити елемент", + "HeaderDeleteUser": "Видалити користувача", + "DeleteItemConfirmation": "Дійсно видалити {0}?", + "DeleteUserConfirmation": "Дійсно видалити користувача {0}?", + "DeleteUsersConfirmation": "Дійсно видалити {0} цих користувачів?", + "HeaderDeleteDevice": "Видалити пристрій", + "DeleteDeviceConfirmation": "Дійсно видалити цей пристрій? Він з’явиться наступного разу, коли користувач увійде з нього.", + "ConfirmDeleteItem": "Видалення цього елемента видалить його як з файлової системи, так і з медіатеки.", + "FollowingFilesWillBeDeleted": "Наступні файли та папки буде видалено:", + "AreYouSureToContinue": "Дійсно продовжити?", + "Refresh": "Оновити", + "RefreshingMetadataDots": "Оновлення метаданих...", + "ScanningLibraryFilesDots": "Сканування файлів медіатеки...", + "HeaderFavoritesThenByChannelNumber": "Улюблені, а потім за номером каналу", + "HeaderAddToCollection": "Додати до колекції", + "HeaderFavoritesThenByTitle": "Улюблені, а потім за назвою", + "HeaderFavoritesThenByDefault": "Улюблені, а потім за стандартним порядком каналів", + "HeaderDefaultChannelOrder": "Стандартний порядок каналів", + "HeaderAddToFavorites": "Додати до улюбленого", + "HeaderRemoveFromFavorites": "Видалити з улюбленого", + "Favorited": "Додано до улюбленого", + "Unfavorited": "Не додано до улюбленого", + "HeaderNewCollection": "Нова колекція", + "HeaderNewPlaylist": "Новий список відтворення", + "AllCollections": "Всі колекції", + "AllPlaylists": "Усі списки відтворення", + "Create": "Створити", + "HeaderAddedToPlaylist": "Додано до списку відтворення", + "HeaderAddedToCollection": "Додано до колекції", + "OneItemAddedTo": "1 елемент додано до «{0}».", + "ItemsAddedTo": "{0} елементів додано до «{1}».", + "HeaderAddedToPlayQueue": "Додано до черги відтворення", + "HeaderPlayingNext": "Далі відтворюється", + "Help": "Довідка", + "HeaderGetHelp": "Переглянути довідку", + "LabelTVDisplayMode": "Увімкнути режим показу на телевізорі", + "Desktop": "Робочий стіл", + "Mobile": "Мобільний / планшетний", + "Navigation": "Навігація", + "HeaderVideoPlayback": "Відтворення відео", + "TV": "ТБ", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "Сезони", + "OneTrack": "1 доріжка", + "OneSeason": "1 сезон", + "Libraries": "Медіатеки", + "NumberSeasonsValue": "{0} сезонів", + "TVDisplayModeHelp": "Оптимізує інтерфейс користувача на цьому пристрої для показу на телевізорі та керування за допомогою пульта. Зазвичай, якщо основним способом введення є миша або сенсорний пристрій, це не рекомендується використовувати.", + "LabelDisplayLanguage": "Мова відображення", + "LabelDisplayLanguageHelp": "Emby постійно перекладається багатьма мовами.", + "LearnHowYouCanContribute": "Дізнайтесь, як ви можете допомогти.", + "NewCollectionHelp": "Колекції дозволяють створювати персоналізовані групи фільмів та іншого вмісту медіатеки.", + "SearchForCollectionInternetMetadata": "Шукати в Інтернеті ілюстрації та метадані", + "DisplayMissingEpisodesWithinSeasons": "Показувати відсутні серії протягом сезонів", + "DisplayMissingEpisodesWithinSeasonsHelp": "Це також потрібно ввімкнути для медіатек з серіалами у програмі Emby Server.", + "EnableThemeSongs": "Відтворювати тематичні пісні", + "EnableBackdrops": "Увімкнути задники", + "EnableThemeSongsHelp": "Якщо ввімкнено, під час перегляду медіатеки тематичні пісні будуть відтворюватися у фоновому режимі.", + "EnableBackdropsHelp": "Якщо ввімкнено, задники відображатимуться на тлі деяких сторінок під час перегляду медіатеки.", + "EnableThemeVideos": "Відтворювати тематичні відео", + "EnableThemeVideosHelp": "Якщо ввімкнено, під час перегляду медіатеки тематичні відео будуть відтворюватися у фоновому режимі.", + "RunAtStartup": "Запустити при старті ОС", + "ServerStartup": "Запуск сервера", + "EmbyServerOnXHasStarted": "Emby Server на {0} запущено.", + "LabelScreensaver": "Заставка", + "LabelSoundEffects": "Звукові ефекти", + "LabelName": "Ім'я", + "NewCollectionNameExample": "Приклад: Колекція Зоряних війн", + "MessageItemsAdded": "Елементи додано.", + "OptionNew": "Новий...", + "LabelPlaylist": "Список відтворення", + "AddToPlaylist": "Додати до списку відтворення", + "HeaderAddToPlaylist": "Додати до списку відтворення", + "Subtitles": "Субтитри", + "LabelTheme": "Тема", + "LabelSettingsTheme": "Тема налаштувань", + "LabelThemeAccentColor": "Колір виділення", + "ThemeAccentColorDescription": "Задає колір для важливих індикаторів, значків і тексту.", + "SearchForSubtitles": "Пошук субтитрів", + "LabelLanguage": "Мова", + "Search": "Пошук", + "NoSubtitleSearchResultsFound": "Нічого не знайдено. Ви налаштували {0}завантаження субтитрів{1}?", + "NoLyricsSearchResultsFound": "Нічого не знайдено. Ви налаштували {0}завантаження текстів пісень{1}?", + "Lyrics": "Тексти пісень", + "SearchForLyrics": "Пошук текстів пісень", + "Finish": "Завершити", + "File": "Файл", + "Exit": "Вихід", + "Sleep": "Режим сну", + "Setup": "Налаштувати", + "MessageAreYouSureDeleteSubtitles": "Дійсно видалити цей файл субтитрів?", + "ConfirmDeletion": "Підтвердить видалення", + "MySubtitles": "Мої субтитри", + "MessageDownloadQueued": "Завантаження додано до черги.", + "HeaderEditSubtitles": "Редагувати субтитри", + "UnlockGuide": "Розблокувати телегід", + "HeaderRefreshMetadata": "Оновити метадані", + "HeaderRefreshAllMetadata": "Оновити усі метадані", + "ReplaceExistingImages": "Замінити наявні зображення", + "ReplaceExistingImagesHelp": "Усі наявні зображення буде видалено, а замість них будуть завантажені нові. У деяких випадках кількість доступних зображень може зменшитися.", + "ReplaceAllMetadata": "Замінити усі метадані", + "SearchForMissingMetadata": "Пошук відсутніх метаданих", + "LabelRefreshMode": "Режим оновлення", + "NoItemsFound": "Елементи не знайдено.", + "HeaderSaySomethingLike": "Скажіть щось на кшталт...", + "ButtonTryAgain": "Спробуйте ще раз", + "HeaderYouSaid": "Ви сказали...", + "MessageWeDidntRecognizeCommand": "На жаль, не вдалось розпізнати цю команду.", + "MessageIfYouBlockedVoice": "Якщо ви заборонили голосовий доступ до додатку, вам доведеться змінити конфігурацію, перш ніж повторити спробу.", + "ValueDiscNumber": "Диск {0}", + "Unrated": "Без рейтингу", + "Favorite": "Улюблене", + "Like": "Подобається", + "Dislike": "Не подобається", + "RefreshDialogHelp": "Метадані оновлюються новими даними на основі налаштувань і постачальників метаданих, увімкнених у налаштуваннях бібліотеки Emby.", + "Open": "Відкрити", + "Play": "Відтворити", + "Pause": "Пауза", + "HeaderPlayQueue": "Відтворити чергу", + "HeaderAddToPlayQueue": "Додати до черги відтворення", + "Shuffle": "Перетасувати", + "Identify": "Ідентифікувати", + "HeaderRemoveIdentification": "Видалити ідентифікацію", + "ResetMetadataConfirmation": "Ви впевнені, що бажаєте скинути всі метадані?", + "HeaderEditMetadata": "Редагувати метадані", + "Convert": "Перетворити", + "Resume": "Відновити", + "HeaderInstantMix": "Миттєвий мікс", + "HeaderGoToItem": "Перейти до елемента", + "HeaderGoToSeason": "Перейдіть до Сезону", + "HeaderGoToSeries": "Перейдіть до Серії", + "HeaderGoToAlbum": "Перейти до Альбому", + "HeaderGoToArtist": "Перейдіть до Виконавця", + "HeaderPlayAll": "Відтворити все", + "PictureInPicture": "Картинка в картинці", + "Fullscreen": "На весь екран", + "ExitFullscreen": "Вийти з повноекранного режиму", + "Rewind": "Перемотати", + "FastForward": "Перескочити вперед", + "Remove": "Видалити", + "Rename": "Перейменувати", + "Queue": "Черга", + "QueueAllFromHere": "Додати все до черги з цього місця", + "PlayAllFromHere": "Відтворити все з цього місця", + "PlayFromBeginning": "Відтворити з початку", + "FromBeginning": "Від початку", + "ResumeAt": "Відновити з {0}", + "HeaderRemoveFromPlaylist": "Видалити зі списку відтворення", + "HeaderRemoveFromPlayQueue": "Видалити з черги відтворення", + "HeaderRemoveFromCollection": "Видалити з колекції", + "Sort": "Сортування", + "Trailer": "Трейлер", + "SelectNone": "Не вибирати нічого", + "SelectAll": "Вибрати все", + "HeaderMarkPlayed": "Позначити відтвореним", + "HeaderMarkUnplayed": "Позначити не відтвореним", + "HeaderGroupVersions": "Групувати версії", + "PleaseSelectTwoItems": "Виберіть більше одного елементу.", + "HeaderConfirmRecordingCancellation": "Підтвердить скасування запису", + "MessageConfirmRecordingCancellation": "Скасувати запис?", + "Album": "Альбом", + "AlbumArtist": "Виконавець альбому", + "Error": "Помилка", + "VoiceInput": "Голосовий ввід", + "LabelContentType": "Тип вмісту", + "LabelPath": "Шлях", + "Playlists": "Списки відтворення", + "LabelTitle": "Назва", + "LabelOriginalTitle": "Оригінальна назва", + "LabelSortTitle": "Сортувати назви", + "LabelDateAdded": "Дата додавання", + "DateAdded": "Дата додавання", + "DateModified": "Дата зміни", + "DatePlayed": "Дата відтворення", + "DateLastActive": "Дата останньої активності", + "ConfigureDateAdded": "На головній панелі Emby Server в розділі «Медіатека» налаштуйте, як буде визначатися дата додавання", + "LabelStatus": "Статус", + "LabelArtistsHelp": "Вкажіть декілька через ;", + "HeaderAlbumArtists": "Виконавці альбому", + "LabelAlbumArtists": "Виконавці альбому", + "LabelAlbum": "Альбом", + "Artist": "Виконавець", + "Artists": "Виконавці", + "ImdbRating": "Рейтинг IMDb", + "CommunityRating": "Рейтинг спільноти", + "LabelCommunityRating": "Рейтинг спільноти", + "LabelCriticRating": "Рейтинг критиків", + "CriticRating": "Рейтинг критиків", + "LabelWebsite": "Веб-сайт", + "Tagline": "Слоган", + "LabelOverview": "Огляд", + "LabelShortOverview": "Короткий огляд", + "LabelReleaseDate": "Дата виходу", + "LabelPlaceOfBirth": "Місце народження", + "Aired": "В ефірі", + "LabelAirDays": "Дні виходу в ефір", + "LabelAirTime": "Час виходу в ефір", + "LabelRuntimeMinutes": "Час показу (хвилини)", + "LabelCustomRating": "Власний рейтинг", + "LabelOriginalAspectRatio": "Оригінальне співвідношення сторін", + "Label3DFormat": "Формат 3D", + "FormatValue": "Формат: {0}", + "DownloadsValue": "{0} Завантажень", + "HashMatch": "Збіг хешу", + "EnableExternalVideoPlayers": "Увімкнути зовнішні програвачі відео", + "EnableExternalVideoPlayersHelp": "Після запуску відтворення відео відкриється меню зовнішнього програвача.", + "HeaderSpecialEpisodeInfo": "Відомості про спеціальну серію", + "LabelAirsDuringSeason": "В ефірі протягом сезону", + "LabelAirsAfterSeason": "В ефірі після сезону", + "LabelAirsBeforeEpisode": "В ефірі перед серією", + "HeaderExternalIds": "Зовнішні ідентифікатори", + "HeaderDisplaySettings": "Налаштування показу", + "PlaylistOrder": "Порядок списку відтворення", + "CollectionOrder": "Сортування колекції", + "LabelDisplayOrder": "Порядок показу", + "LabelFileOrder": "Порядок файлів", + "Display": "Відображення", + "Countries": "Країни", + "Genres": "Жанри", + "Studios": "Студії", + "Tags": "Теги", + "Links": "Посилання", + "Movie": "Фільм", + "Program": "Програма", + "Channel": "Канал", + "Episode": "Серія", + "Season": "Сезон", + "HeaderMetadataSettings": "Налаштування метаданих", + "People": "Люди", + "Number": "Кількість", + "Lock": "Заблокувати", + "HeaderScreenLocked": "Екран заблоковано", + "HeaderUnlockControls": "Керування розблокуванням", + "HeaderTapToUnlock": "Торкніться, щоб розблокувати", + "LabelMetadataDownloadLanguage": "Бажана мова завантаження метаданих", + "LabelImageDownloadLanguage": "Бажана мова завантаження зображень", + "LabelLockItemToPreventChanges": "Заблокувати цей елемент, щоб запобігти майбутнім змінам", + "LockThisField": "Заблокуйте це поле, щоб запобігти майбутнім змінам під час оновлення метаданих", + "MessageLeaveEmptyToInherit": "Залиште порожнім, щоб успадкувати налаштування від батьківського елемента або загальне стандартне значення.", + "LabelCountry": "Країна", + "LabelCertificationCountry": "Країна сертифікації", + "CertificationCountryHelp": "Це впливатиме на те, яка система рейтингу вмісту використовується.", + "LabelDynamicExternalId": "Ідентиф. {0}", + "LabelBirthYear": "Рік народження", + "LabelBirthDate": "Дата народження", + "LabelDeathDate": "Дата смерті", + "LabelEndDate": "Дата завершення", + "LabelSeasonNumber": "Номер сезону", + "LabelEpisodeNumber": "Номер серії", + "LabelTrackNumber": "Номер доріжки", + "LabelNumber": "Номер", + "LabelDiscNumber": "Номер диску", + "LabelParentNumber": "Батьківський номер", + "SortName": "Сортувати назви", + "OriginalTitle": "Оригінальна назва", + "ReleaseDate": "Дата випуску", + "Continuing": "Знімається", + "Ended": "Завершено", + "HeaderEnabledFields": "Увімкнені поля", + "HeaderEnabledFieldsHelp": "Зніміть прапорець, щоб заблокувати його та не допустити зміни даних.", + "Backdrops": "Задники", + "Images": "Зображення", + "Runtime": "Час показу", + "ProductionLocations": "Місця виробництва", + "BirthLocation": "Місце народження", + "ParentalRating": "Вікова категорія", + "PlayCount": "Кількість відтворень", + "Name": "Ім’я", + "Overview": "Огляд", + "LabelType": "Тип", + "LabelPersonRole": "Роль", + "LabelPersonRoleHelp": "Приклад: водій вантажівки з морозивом", + "Actor": "актор", + "Composers": "Композитори", + "Composer": "Композитор", + "Director": "Режисер", + "GuestStar": "Запрошена зірка", + "Producer": "Продюсер", + "Writer": "Сценарист", + "MessageNoSyncJobsFound": "Завантаження не знайдені. Створіть завдання завантаження, використовуючи кнопки «Завантажити» у додатку.", + "MessageNoDownloadsFound": "Немає завантажень у режимі офлайн. Завантажте медіафайл для використання в режимі офлайн, натиснувши кнопку «Завантажити» в додатку.", + "InstallingPackage": "Встановлення {0}", + "PackageInstallCompleted": "Встановлення {0} завершено.", + "PackageInstallFailed": "Не вдалося встановити {0}.", + "PackageInstallCancelled": "Встановлення {0} було скасоване.", + "SeriesYearToPresent": "{0} - дотепер", + "OneDevice": "1 пристрій", + "DeviceCountValue": "{0} пристроїв", + "OneLog": "1 журнал", + "LogCountValue": "{0} журналів", + "OneVote": "1 голос", + "VoteCountValue": "{0} голосів", + "OneLike": "1 сподобалось", + "LikeCountValue": "{0} сподобалось", + "OneUser": "1 користувач", + "UserCountValue": "{0} користувачів", + "OneLibrary": "1 медіатека", + "LibraryCountValue": "{0} медіатек", + "ValueOneItem": "1 елемент", + "ValueOneEpisode": "1 серія", + "ValueEpisodeCount": "{0} серій", + "Albums": "Альбоми", + "Song": "Пісня", + "Songs": "Пісні", + "Authors": "Автори", + "Books": "Книги", + "AudioBooks": "Аудіокниги", + "HeaderAudioBooks": "Аудіокниги", + "HeaderAudioBook": "Аудіокнига", + "HeaderIdentifyItemHelp": "Введіть один або кілька критеріїв для пошуку. Щоб розширити результати пошуку, приберіть критерії.", + "PleaseEnterNameOrId": "Введіть назву або зовнішній ідентифікатор.", + "MessageItemSaved": "Елемент збережено.", + "SearchResults": "Результати пошуку", + "ServerNameIsRestarting": "Emby Server - {0} перезапускається.", + "ServerNameIsShuttingDown": "Emby Server - {0} зупиняється.", + "HeaderDeleteItems": "Видалити елементи", + "ConfirmDeleteItems": "Якщо видалити ці елементи, вони будуть видалені і з файлової системи, і з медіатеки.", + "PleaseRestartServerName": "Перезапустіть Emby Server на {0}", + "ConvertingDots": "Перетворення...", + "LabelSyncNoTargetsHelp": "Схоже, у вас наразі немає додатків, що підтримують завантаження в режимі офлайн.", + "DownloadingDots": "Завантаження...", + "LearnMore": "Дізнатися більше", + "LabelBitrateMbps": "Бітрейт (Мбіт/с)", + "ConvertUnwatchedVideosOnly": "Перетворювати лише невідтворені відео", + "SyncUnwatchedVideosOnly": "Завантажувати лише невідтворені відео", + "ConvertUnwatchedVideosOnlyHelp": "Перетворюватимуться лише ті відео, які не позначені як повністю відтворені.", + "SyncUnwatchedVideosOnlyHelp": "Завантажуватимуться лише ті відео, які не позначені як повністю відтворені, а після повного відтворення вони будуть видалені з пристрою.", + "AutomaticallySyncNewContent": "Автоматично завантажувати новий вміст", + "AutomaticallySyncNewContentHelp": "Новий вміст, доданий до цієї папки, буде автоматично завантажуватись на пристрій.", + "AutomaticallyConvertNewContent": "Автоматично перетворювати новий вміст", + "AutomaticallyConvertNewContentHelp": "Новий вміст, доданий до цієї папки, буде автоматично перетворюватись.", + "LabelItemLimit": "Обмеження елементів", + "ConvertItemLimitHelp": "Необов’язково. Вкажіть обмеження на кількість елементів, які будуть перетворені.", + "DownloadItemLimitHelp": "Необов’язково. Вкажіть обмеження на кількість елементів, які будуть завантажені.", + "PleaseSelectDeviceToSyncTo": "Виберіть пристрій для завантаження в нього.", + "Screenshots": "Знімкі екрану", + "MoveRight": "Змістити праворуч", + "MoveLeft": "Змістити ліворуч", + "HeaderUploadNewImage": "Завантажити нове зображення", + "HeaderDeleteImage": "Видалити зображення", + "ConfirmDeleteImage": "Видалити зображення?", + "HeaderEditImages": "Редагувати зображення", + "Settings": "Налаштування", + "ShowIndicatorsFor": "Показати індикатори", + "Episodes": "Серії", + "Programs": "Програми", + "HeaderCastCrew": "Актори та знімальна група", + "DvrSubscriptionRequired": "Для підтримки ефірного ТБ та його запису потрібна активна {0}передплата Emby Premiere{1}.", + "HeaderCancelRecording": "Скасувати запис", + "HeaderKeepRecording": "Продовжити запис", + "HeaderCancelSeries": "Скасувати серіал", + "HeaderKeepSeries": "Продовжити серіал", + "HeaderLearnMore": "Дізнатися більше", + "SeriesSettings": "Налаштування серіалу", + "HeaderRecordingOptions": "Параметри запису", + "HeaderDoNotRecord": "Не записувати", + "HeaderSeriesOptions": "Параметри серіалу", + "Layout": "Макет", + "Channels": "Канали", + "ChannelNameOnly": "Тільки канал {0}", + "Anytime": "Будь-який час", + "AnyLanguage": "Будь-яка мова", + "AroundTime": "Біля {0}", + "HeaderLatestMovies": "Останні фільми", + "All": "Всі", + "Stop": "Стоп", + "AllChannels": "Всі канали", + "NewEpisodesOnly": "Лише нові серії", + "AllEpisodes": "Всі серії", + "LabelStartWhenPossible": "Почати, коли це можливо", + "LabelStopWhenPossible": "Зупинити, коли це можливо", + "MinutesBefore": "хвилин до", + "MinutesAfter": "хвилин після", + "SkipEpisodesAlreadyInMyLibrary": "Не записувати серії, які вже є в моїй медіатеці", + "SkipEpisodesAlreadyInMyLibraryHelp": "Серії будуть порівнюватися з використанням номерів сезонів та серій, якщо вони доступні.", + "LabelKeepUpTo": "Зберігати до", + "AsManyAsPossible": "Якомога довго", + "DefaultErrorMessage": "Під час обробки запиту сталася помилка. Повторіть спробу пізніше.", + "UntilIDelete": "Поки я не видалю", + "UntilSpaceNeeded": "Поки не знадобиться вільне місце", + "Categories": "Категорії", + "Sports": "Спорт", + "News": "Новини", + "Movies": "Фільми", + "Music": "Музика", + "Kids": "Для дітей", + "MoreFromValue": "Більше з {0}", + "DiedValue": "Помер: {0}", + "BornValue": "Народився: {0}", + "EnableColorCodedBackgrounds": "Застосувати кольорові фони для серіалів на основі їх категорій", + "SortChannelsBy": "Сортувати канали за", + "ChannelNumber": "Номер каналу", + "HeaderBenefitsEmbyPremiere": "Переваги Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Насолоджуйтесь хвилиною відтворення. Дякуємо, що спробували Emby.", + "HeaderTryPlayback": "Спробувати відтворення", + "HowDidYouPay": "Як ви заплатили?", + "IHaveEmbyPremiere": "У мене є Emby Premiere", + "IPurchasedThisApp": "Я придбав цю програму", + "ButtonRestorePreviousPurchase": "Відновити покупку", + "ButtonUnlockWithPurchase": "Розблокувати шляхом покупки", + "ButtonUnlockPrice": "Розблокувати {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "Вже придбали?", + "ButtonPlayOneMinute": "Відтворити одну хвилину", + "PlaceFavoriteChannelsAtBeginning": "Розмістіть улюблені канали на початку", + "HeaderUnlockFeature": "Розблокувати функцію", + "MessageDidYouKnowCinemaMode": "Чи знаєте ви, що з Emby Premiere ви можете скористатися такими приємними можливостями, як кінозаставки?", + "HeaderPlayMyMedia": "Відтворити мої медіафайли", + "HeaderDiscoverEmbyPremiere": "Відкрийте для себе Emby Premiere", + "HeaderNowPlaying": "Відтворюється зараз", + "Items": "Елементи", + "AppName": "Назва програми", + "OneChannel": "Один канал", + "ConfirmRemoveDownload": "Видалити завантажене?", + "ConfirmRemoveItem": "Видалити елемент?", + "RemoveDownload": "Видалити Завантаження", + "ConfirmCancelConversion": "Скасувати перетворення?", + "CancelConversion": "Скасувати перетворення", + "KeepDownload": "Зберегти завантажене", + "AddedOnValue": "Додано {0}", + "RemovingFromDevice": "Видаляється з пристрою", + "KeepOnDevice": "Зберегти на пристрої", + "CancelDownload": "Скасувати завантаження", + "SyncJobItemStatusReadyToTransfer": "Готово до передачі", + "SyncJobItemStatusSyncedMarkForRemoval": "Видаляється з пристрою", + "SyncJobItemStatusQueued": "У черзі", + "SyncJobItemStatusConverting": "Перетворення", + "SyncJobItemStatusTransferring": "Передача", + "SyncJobItemStatusSynced": "Завантажено", + "Failed": "Не вдалося", + "SyncJobItemStatusRemovedFromDevice": "Видалено з пристрою", + "Cancelled": "Скасовано", + "Retry": "Повторити", + "Continue": "Продовжити", + "ContinueInSecondsValue": "Продовжити через {0} секунд.", + "HeaderRemoteControl": "Віддалене керування", + "Disconnect": "Відключитись", + "EnableDisplayMirroring": "Увімкнути дзеркальне відображення екрану", + "RemoteAccess": "Віддалений доступ", + "HeaderPlayOn": "Відтворити на", + "Quality": "Якість", + "Auto": "Авто", + "AndroidUnlockRestoreHelp": "Щоб відновити попередню покупку, необхідно увійти в пристрій, використовуючи обліковий запис Google (або Amazon), з якого було зроблено покупку. Переконайтеся, що магазин додатків увімкнено і не обмежено батьківським контролем, і переконайтеся, що у вас є підключення до Інтернету. Вам потрібно буде зробити це лише один раз, щоб відновити попередню покупку.", + "HeaderAspectRatio": "Співвідношення сторін", + "Original": "Оригінальне", + "Fill": "Заповнення", + "Cover": "Обкладинка", + "MessageNoServersAvailableToConnect": "Не вдається знайти сервери для підключення. Якщо вас запросили поділитися сервером, прийміть запрошення нижче або клацніть посилання в електронному листі.", + "MessagePlayAccessRestricted": "Відтворення цього вмісту наразі обмежено. За додатковою інформацією звертайтеся до адміністратора Emby Server.", + "Accept": "Прийняти", + "Reject": "Відхилити", + "Connect": "Підключитись", + "HeaderMyMedia": "Мої медіафайли", + "HeaderMyMediaSmall": "Мої медіафайли (невеликі)", + "LatestFromLibrary": "Останні {0}", + "HeaderLatestEpisodes": "Останні серії", + "ContinuePlaying": "Продовжити відтворення", + "ContinueWatching": "Продовжити перегляд", + "HeaderLatestChannelMedia": "Нове в каналах", + "HeaderContinueWatching": "Продовжити перегляд", + "HeaderContinueListening": "Продовжити прослуховування", + "HeaderActiveRecordings": "Активні записи", + "HeaderLatestRecordings": "Останні записи", + "LabelConvertTo": "Перетворити у", + "LabelDownloadTo": "Завантажити до", + "HeaderDownloadToDots": "Завантажити до...", + "Next": "Далі", + "LabelSource": "Джерело", + "VersionNumber": "Версія {0}", + "HeaderAllLanguages": "Всі мови", + "Previous": "Попередній", + "HeaderNextUp": "Наступне", + "HeaderPlayNextUp": "Відтворити наступне", + "HeaderLatestFrom": "Останні з {0}", + "LabelHomeScreenSectionValue": "Розділ на головному екрані {0}", + "PasswordResetComplete": "Пароль було скинуто.", + "PasswordSaved": "Пароль збережено.", + "SettingsSaved": "Налаштування збережені.", + "Upcoming": "Майбутні", + "HeaderSelectImageFile": "Обрати файл зображення", + "None": "Нічого", + "More": "Більше", + "Up": "Вгору", + "Down": "Вниз", + "Home": "На головну", + "Back": "Назад", + "Random": "Випадково", + "Playback": "Відтворення", + "Favorites": "Улюблене", + "HeaderHomeScreen": "Головний екран", + "HeaderLatestChannelItems": "Нове в каналах", + "HeaderLibraryOrder": "Порядок медіатек", + "HeaderOnNow": "Зараз в ефірі", + "HeaderForKids": "Для дітей", + "HeaderPlaybackError": "Помилка відтворення", + "PlaybackErrorNotAllowed": "На даний момент у вас немає дозволу відтворювати цей вміст. За інформацією звертайтесь до системного адміністратора.", + "RateLimitExceeded": "Ваш обліковий запис перевищив максимальне обмеження на передавання потоку, встановлене адміністратором Emby Server. Зверніться до адміністратора.", + "PlaybackErrorNoCompatibleStream": "На даний момент немає сумісних потоків. Повторіть спробу пізніше або зверніться до системного адміністратора за детальною інформацією.", + "PlaybackErrorPlaceHolder": "Вставте диск, щоб відтворити це відео.", + "PlaybackErrorNoPlayableItems": "Не знайдено жодних елементів для відтворення. Ви намагаєтеся відтворити порожню папку?", + "Guide": "Телегід", + "Games": "Ігри", + "GameSystem": "Ігрова система", + "Suggestions": "Рекомендації", + "HeaderFavoriteChannels": "Улюблені канали", + "HeaderFavoriteCollections": "Улюблені колекції", + "HeaderFavoritePlaylists": "Улюблені списки відтворення", + "Collection": "Колекція", + "Collections": "Колекції", + "LabelSelectFolderGroups": "Автоматично групувати вміст з наступних тек в групи, такі як фільми, музика та ТБ:", + "LabelSelectFolderGroupsHelp": "Папки, які не відмічені, відображатимуться самі по собі.", + "Mute": "Вимкнути звук", + "Unmute": "Увімкнути звук", + "Folder": "Папка", + "Folders": "Папки", + "FileName": "Назва файлу", + "DisplayInOtherHomeScreenSections": "Показати на додатковому екрані розділи, такі як останні медіа, та продовжити перегляд", + "DisplayInMyMedia": "Показувати на головному екрані", + "Shows": "Серіали", + "MoviesAndShows": "Фільми та серіали", + "HeaderMusicVideo": "Музичне відео", + "HeaderMusicVideos": "Музичні відео", + "MusicVideos": "Музичні відео", + "Videos": "Відео", + "MixedContent": "Змішаний вміст", + "HomeVideos": "Домашні відео", + "HomeVideosAndPhotos": "Домашні відео та світлини", + "TVShows": "Серіали", + "HeaderLibraryFolders": "Папки медіатек", + "HeaderTermsOfPurchase": "Умови придбання", + "PrivacyPolicy": "Політика конфіденційності", + "TermsOfUse": "Умови використання", + "HeaderRepeatMode": "Режим повтору", + "HeaderToneMapping": "Тонове відображення", + "RepeatOne": "Повторювати один", + "RepeatAll": "Повторювати все", + "LabelDefaultScreen": "Стандартний екран", + "ConfirmEndPlayerSession": "Зупинити Emby на {0}?", + "Yesterday": "Вчора", + "Yes": "Так", + "No": "Ні", + "HeaderScanLibraryFiles": "Сканувати файли медіатеки", + "LiveTV": "Ефірне ТБ", + "Schedule": "Розклад", + "Recordings": "Записи", + "ScanForNewAndUpdatedFiles": "Сканувати нові ті оновлені файли", + "NewVersionOfXAvailableForY": "{0} доступна для {1}", + "DirectStreamHelp1": "Медіафайл сумісний із пристроєм щодо роздільної здатності та кодека (H.264, AC3 тощо), але несумісний щодо контейнеру (.mkv, .avi, .wmv тощо). Відео буде переупаковано на льоту перш ніж його буде передано на пристрій.", + "DirectStreamHelp2": "Для прямого відтворення файлу потрібно дуже мало обчислювальних потужностей без втрати якості відео.", + "MediaIsBeingConverted": "Медіафайли перетворюються у формат, сумісний із пристроєм для відтворення.", + "StatsForNerds": "Статистика для експертів", + "HeaderHardwareAcceleratedDecoding": "Декодування з апаратним прискоренням", + "HeaderHardwareAcceleratedEncoding": "Кодування з апаратним прискоренням", + "HeaderDirectPlay": "Пряме відтворення", + "DirectPlaying": "Пряме відтворення", + "DirectStreaming": "Пряме передавання потоку", + "Transcode": "Перекодування", + "Transcoding": "Перекодування", + "ContainerBitrateExceedsLimit": "Зменшення швидкості потоку через налаштування якості", + "VideoCodecNotSupported": "Перетворення відео у сумісний формат", + "AudioCodecNotSupported": "Перетворення звуку в сумісний формат", + "SubtitleCodecNotSupported": "Перетворення субтитрів безпосередньо у відео", + "DirectPlayError": "Відновлення після помилки відтворення", + "ContainerNotSupported": "Перетворення у сумісний контейнер", + "VideoLevelNotSupported": "Перетворення у сумісний рівень відео", + "AudioBitrateNotSupported": "Перетворення у сумісну швидкість потоку аудіо", + "AudioChannelsNotSupported": "Перетворення у сумісну кількість аудіоканалів", + "VideoResolutionNotSupported": "Перетворення у сумісну роздільну здатність відео", + "AudioProfileNotSupported": "Перетворення у сумісний профіль аудіо", + "AudioSampleRateNotSupported": "Перетворення у сумісну частоту дискретизації аудіо", + "AnamorphicVideoNotSupported": "Анаморфне відео не підтримується", + "InterlacedVideoNotSupported": "Перетворення відео у черезрядкове", + "SecondaryAudioNotSupported": "Вибір іншої звукової доріжки", + "ExternalAudioNotSupported": "Вибір зовнішньої аудіодоріжки", + "ErrorRemovingEmbyConnectAccount": "Не вдалося видалити обліковий запис Emby Connect. Переконайтеся, що у вас працює Інтернет, і повторіть спробу.", + "HeaderEmbyAccountRemoved": "Обліковий запис Emby видалено", + "MessageEmbyAccontRemoved": "Обліковий запис Emby було видалено для цього користувача.", + "HeaderInvitationSent": "Запрошення надіслано", + "Offline": "Поза мережею", + "HeaderSignUp": "Реєстрація", + "ServerDownloadMessage": "Щоб завантажити та встановити Emby Server, відвідайте сторінку {0}", + "ServerDownloadMessageWithoutLink": "Щоб завантажити та встановити Emby Server, відвідайте веб-сайт Emby.", + "MessageInvitationSentToUser": "На адресу {0} надіслано електронний лист із запрошенням прийняти ваше запрошення на спільний доступ.", + "MessageInvitationSentToNewUser": "На адресу {0} надіслано електронний лист із запрошенням зареєструватися у Emby.", + "GuestUserNotFound": "Користувач не знайдений. Переконайтесь, що ім’я правильне, і спробуйте ще раз, або спробуйте ввести адресу електронної пошти.", + "ErrorReachingEmbyConnect": "Не вдалося підключитися до серверу Emby Connect. Переконайтеся, що у вас працює Інтернет, і повторіть спробу.", + "ErrorAddingEmbyConnectAccount1": "Не вдалось додати обліковий запис Emby Connect. Ви створювали обліковий запис Emby? Зареєструватись можна за адресою {0}.", + "ErrorAddingEmbyConnectAccount2": "Якщо проблему все ще не вдається вирішити, надішліть електронний лист на адресу {0} з поштової скриньки, яка була вказана для облікового запису Emby.", + "ErrorAddingGuestAccount1": "Не вдалось додати обліковий запис Emby Connect. Ваш гість створив обліковий запис Emby? Зареєструватись можна за адресою {0}.", + "ErrorAddingGuestAccount2": "Якщо проблему все ще не вдається вирішити, надішліть електронний лист на адресу {0} та вкажіть свою адресу електронної пошти та адреси гостей.", + "MessageEmbyAccountAdded": "Обліковий запис Emby було додано для цього користувача.", + "MessagePendingEmbyAccountAdded": "Обліковий запис Emby було додано для цього користувача. Власнику облікового запису буде надіслано електронний лист. Запрошення потрібно буде підтвердити, натиснувши посилання в електронному листі.", + "HeaderEmbyAccountAdded": "Обліковий запис Emby додано", + "Skip": "Пропустити", + "HeaderAdditionalParts": "Додаткові частини", + "ButtonGenerateNewPin": "Створити новий PIN-код", + "ConnectLoginHelp1": "З Emby Connect можна легко отримати доступ до свого Emby Server з будь-якого місця і надавати доступ до серверів своїй родині та друзям.", + "CreatePinErrorMessage": "Під час створення PIN-коду сталася помилка. Натисніть «Створити новий PIN-код», щоб спробувати ще раз.", + "PinExpiredMessage": "Термін дії PIN-коду закінчився. Натисніть «Створити новий PIN-код», щоб спробувати ще раз.", + "ConnectPinCodeHeader": "Щоб увійти в систему за допомогою Emby Connect, на мобільному пристрої або комп’ютері відкрийте посилання {0} та уведіть наступний PIN-код:", + "LabelSubtitlePlaybackMode": "Режим субтитрів", + "ErrorDeletingItem": "Не вдалося видалити елемент з Emby Server. Переконайтеся, що Emby Server може писати в папку мультимедіа, і спробуйте ще раз.", + "NoSubtitles": "Без субтитрів", + "Default": "Стандартні", + "Absolute": "Абсолютні", + "Smart": "Розумні", + "Small": "Невеликі", + "Smaller": "Менші", + "Medium": "Середні", + "Large": "Великі", + "Larger": "Збільшені", + "ExtraLarge": "Надвеликі", + "ExtraSmall": "Найменші", + "Forced": "Примусові", + "External": "Зовнішні", + "HeaderEmbeddedTitle": "Вбудована назва", + "OnlyForcedSubtitles": "Лише примусові субтитри", + "AlwaysPlaySubtitles": "Завжди показувати субтитри", + "DefaultSubtitlesHelp": "Субтитри завантажуються на основі прапорів «Стандартні» та «Примусові» у вбудованих метаданих. Якщо доступно кілька варіантів, враховуються мовні уподобання.", + "SmartSubtitlesHelp": "Якщо аудіо йде іноземною мовою, будуть завантажуватись субтитри, що відповідають обраній мові.", + "HeaderSubtitleSettings": "Налаштування субтитрів", + "HeaderSubtitleAppearance": "Вигляд субтитрів", + "OnlyForcedSubtitlesHelp": "Будуть завантажені лише ті субтитри, що позначені як примусові.", + "AutoSelectHearingImpairedHelp": "Будуть завантажені субтитри, які відповідають мовним налаштуванням, причому перевага надаватиметься трекам, позначеним як для людей із вадами слуху (SDH).", + "AlwaysPlaySubtitlesHelp": "Субтитри, що відповідають обраній мові, завантажуватимуться незалежно від мови аудіо.", + "NoSubtitlesHelp": "За замовчуванням субтитри не завантажуються. Їх можна увімкнути вручну під час відтворення відео.", + "LabelPreferredSubtitleLanguage": "Бажана мова субтитрів", + "LabelTextSize": "Розмір тексту", + "TheseSettingsAffectSubtitlesOnThisDevice": "Ці налаштування впливають на субтитри на цьому пристрої", + "LabelDropShadow": "Тінь", + "LabelTextBackgroundColor": "Фоновий колір тексту", + "LabelWindowBackgroundColor": "Фоновий колір тексту", + "LabelFont": "Шрифт", + "LabelTextColor": "Колір тексту", + "LabelBackgroundColor": "Колір фону", + "LabelBackgroundOpacity": "Непрозорість фону", + "Raised": "Піднятий", + "Depressed": "Втиснений", + "Uniform": "Звичайний", + "DropShadow": "Тінь", + "SmallCaps": "Зменш. великі букви", + "SubtitleAppearanceSettingsDisclaimer": "Ці налаштування не застосовуватимуться до графічних субтитрів (PGS, DVD тощо) або субтитрів, які мають власні вбудовані стилі (ASS/SSA).", + "Normal": "Звичайні", + "HeaderWaitingForWifi": "Очікування на Wi-Fi", + "WifiRequiredToDownload": "Для продовження завантаження потрібне з’єднання Wi-Fi.", + "DownloadOnlyOnWifi": "Завантажувати лише через Wi-Fi", + "LabelMusicDownloadQuality": "Якість завантажуваної музики", + "MusicDownloadQualityHelp": "Emby Server перетворюватиме аудіофайли з більшою швидкістю потока. Чим більше значення, тим краще якість, але й потрібно більше місця у локальному сховищі.", + "HeaderDownloadSettings": "Налаштування завантаження", + "LabelDownloadLocation": "Місце завантаження", + "BrowseForFolder": "Обрати папку", + "Unlimited": "Необмежена", + "NoLimit": "Без обмежень", + "Hide": "Сховати", + "HeaderKeepWatching": "Продовжити перегляд", + "HeaderNextEpisode": "Наступна серія", + "AudioBitDepthNotSupported": "Перетворення у сумісну бітову глибину аудіо", + "VideoBitrateNotSupported": "Перетворення у сумісний бітрейт відео", + "VideoProfileNotSupported": "Перетворення у сумісний профіль відео", + "VideoFramerateNotSupported": "Перетворення у сумісну частоту кадрів відео", + "VideoBitDepthNotSupported": "Перетворення у сумісну бітову глибину відео", + "RefFramesNotSupported": "Перетворення у сумісну кількість опорних кадрів відео", + "ErrorConnectServerUnreachable": "Під час виконання запитуваної операції сталася помилка. Ваш сервер не може зв’язатися з нашим сервером Emby Connect за адресою {0}. Переконайтеся, що на вашому сервері є з'єднання Інтернетом, і що зв’язок дозволений брандмауером або програмою забезпечення захисту.", + "HeaderStopRecording": "Зупинити запис", + "ManageRecording": "Керування записами", + "LabelDropImageHere": "Перетягніть сюди зображення або натисніть, щоб вибрати зображення для завантаження.", + "MessageFileReadError": "Не вдалося прочитати файл. Спробуйте ще раз.", + "Browse": "Перегляд", + "HeaderUploadImage": "Завантажити зображення", + "HeaderAddUpdateImage": "Додати/оновити зображення", + "HeaderShowFields": "Показати поля", + "LabelView": "Подання", + "LabelImageType": "Тип зображення", + "Upload": "Завантажити", + "Primary": "Основне", + "PrimaryImageBlur": "Розмиття основного зображення", + "Art": "Ілюстрація", + "Backdrop": "Задник", + "Banner": "Банер", + "Box": "Коробка", + "BoxRear": "Коробка (ззаду)", + "Disc": "Диск", + "Logo": "Логотип", + "LogoDark": "Логотип (темна версія)", + "LogoLight": "Логотип (світла версія)", + "LogoLightColor": "Логотип (світлий з кольором)", + "Menu": "Меню", + "Screenshot": "Знімок екрану", + "Thumb": "Ескіз", + "HeaderAudioSettings": "Налаштування звуку", + "LabelAudioLanguagePreference": "Бажана мова аудіо", + "LabelPlayDefaultAudioTrack": "Відтворювати стандартну звукову доріжку незалежно від мови", + "HeaderVideoQuality": "Якість відео", + "CinemaModeConfigurationHelp": "Кінозаставки дарують вам відчуття справжнього кінозалу завдяки можливості відтворювати трейлери та спеціальні заставки перед основним фільмом.", + "ShowUpNextPreview": "Показати наступний превью", + "ShowUpNextPreviewHelp": "Показати інформацію для наступного елемента в кінці поточного.", + "PlayNextEpisodeAutomatically": "Автоматично відтворювати наступну серію", + "LabelMaxChromecastBitrate": "Якість потоку для Chromecast", + "LabelSkipBackLength": "Тривалість переходу назад", + "LabelSkipForwardLength": "Тривалість переходу вперед", + "EnableCinemaMode": "Увімкнути кінозаставки", + "LabelInternetQuality": "Якість Інтернету", + "LabelCellularQuality": "Якість віддаленої трансляції (через мобільну мережу)", + "HeaderMusicQuality": "Якість музики", + "LabelHomeNetworkQuality": "Якість домашньої мережі", + "HeaderLatestMedia": "Останні медіафайли", + "HeaderRestartingEmbyServer": "Триває перезапуск Emby Server", + "RestartPleaseWaitMessage": "Зачекайте, поки Emby Server зупиниться та перезапуститься. Це може зайняти хвилину чи дві.", + "HeaderPlayNext": "Відтворити наступне", + "AutoBasedOnLanguageSetting": "Авто (на основі налаштувань пристрою)", + "SameAsMainTheme": "Так само, як і основна тема", + "LabelDateTimeLocale": "Місцеві час і дата", + "Genre": "Жанр", + "DirectorValue": "Режисер: {0}", + "DirectorsValue": "Режисери: {0}", + "GenreValue": "Жанр: {0}", + "GenresValue": "Жанри: {0}", + "TagsValue": "Теги: {0}", + "Off": "Вимк.", + "Title": "Назва", + "Year": "Рік", + "Filter": "Фільтр", + "Filters": "Фільтри", + "Unplayed": "Не відтворено", + "LabelTVHomeScreen": "Головний екран у режимі ТБ", + "Horizontal": "Горизонтальна", + "Vertical": "Вертикальна", + "HeaderGroupBy": "Групувати за", + "HeaderMediaType": "Тип медіафайлу", + "GroupBySeries": "Групувати за серіалами", + "HeaderVideoType": "Тип відео", + "HeaderSeriesStatus": "Статус серіалу", + "Features": "Особливості", + "Trailers": "Трейлери", + "Extras": "Додаткові матеріали", + "ThemeSongs": "Тематичні пісні", + "ThemeVideos": "Тематичні відео", + "HeaderFavoriteMovies": "Улюблені фільми", + "HeaderFavoritePhotos": "Улюблені фото", + "HeaderFavoriteShows": "Улюблені серіали", + "HeaderFavoriteEpisodes": "Улюблені серії", + "HeaderFavoriteVideos": "Улюблені відео", + "HeaderFavoriteMusicVideos": "Улюблені музичні відео", + "HeaderFavoriteGames": "Улюблені ігри", + "HeaderFavoriteArtists": "Улюблені виконавці", + "HeaderFavoriteAlbums": "Улюблені альбоми", + "HeaderFavoriteSongs": "Улюблені пісні", + "HeaderFavoriteAuthors": "Улюблені автори", + "HeaderFavoriteAudioBooks": "Улюблені аудіокниги", + "Ascending": "За зростанням", + "Descending": "За спаданням", + "HeaderColorPrimaries": "Основні кольори", + "HeaderColorSpace": "Колірний простір", + "HeaderColorTransfer": "Передача кольорів", + "HeaderVideoRange": "Діапазон відео", + "SeriesDisplayOrderHelp": "Впорядкувати серії за датою виходу в ефір, за порядком DVD або за абсолютною нумерацією.", + "LabelVerticalPositionFromBottom": "Вертикальне положення (знизу)", + "HeaderFavoritePeople": "Улюблені люди", + "MultiSelect": "Множинний вибір", + "HeaderSignOut": "Вийти", + "HeaderSelectServer": "Вибрати сервер", + "HeaderChangeServer": "Змінити сервер", + "HeaderChangeUser": "Змінити користувача", + "HeaderAppSettings": "Налаштування додатку", + "HeaderLoginSettings": "Налаштування входу", + "LabelRememberLogin": "Запам'ятати логін", + "LabelAutomaticallySignOut": "Автоматично вийти", + "BetaTesterMessage": "Дякуємо за участь у бета-тестуванні Emby! Залишайте свої відгуки у {0}розділі тестування спільноти Emby{1}.", + "HardwareAccelerated": "З апаратним прискоренням", + "Software": "ПЗ", + "Metadata": "Метадані", + "HeaderMediaInfo": "Відомості про медіафайл", + "Locked": "Заблоковано", + "HeaderSplitVersionsApart": "Відокремити версії", + "Any": "Будь-яка", + "Admin": "Адмін", + "HeaderReadMore": "Більше", + "CustomRatingHelp": "Власний рейтинг використовується для оцінок батьківського контролю, але не відображається. Поле батьківського рейтингу все ще відображається.", + "KeepUpToHelp": "Записи поза обмеженням видаляються з початком наступного запису. Спочатку видаляються найдавніші записи.", + "NoItemsMatchingFound": "Не знайдено елементи, що відповідають вашим критеріям пошуку.", + "TwoSearchCharsRequired": "Введіть не менше двох літер для пошуку.", + "PreventPlaybackContinuing": "Запобігати безкінечному відтворенню, періодично запитуючи користувача.", + "PromptStillWatching": "Увімкнути запитання «Ви ще дивитесь?»", + "HeaderMissingMetadata": "Відсутні метадані", + "HeaderIncludedIn": "Входить до", + "EmbyConnectUserAlreadyLinked": "Обліковий запис Emby Connect вже зв’язаний з іншим користувачем на цьому сервері.", + "VideoFilesWillBeConvertedTo": "Перетворені відео будуть збережені як {0}.", + "VideoWillBeConvertedTo": "Відеопотоки будуть перетворені в {0} або скопійовані з вихідного файлу, якщо вони вже {0}, а якість відповідає параметрам перетворення.", + "VideoWillBeConvertedToOrCopied": "Відеопотоки будуть перетворені в {0} або скопійовані з вихідного файлу, якщо вони є ({1}), а якість відповідає параметрам перетворення.", + "AudioWillBeConvertedTo": "Аудіопотоки будуть перетворені в {0} або скопійовані з вихідного файлу, якщо вони вже {0}, і якість відповідає параметрам перетворення.", + "AudioWillBeConvertedToOrCopied": "Аудіопотоки будуть перетворені в {0} або скопійовані з вихідного файлу, якщо вони є ({1}), а якість відповідає параметрам перетворення.", + "HeaderSpecialKeys": "Спеціальні клавіші", + "FollowingSpecialKeys": "Наступні спеціальні клавіші підтримуються на більшості клавіатур та пультів дистанційного керування:", + "HeaderDeleteSeries": "Видалити серіал", + "HeaderDeleteLastPlayedEpisode": "Видалити останню відтворену серію", + "HeaderConnectingToServer": "Підключення до сервера", + "ServerNameValue": "Назва сервера: {0}", + "DomainValue": "Домен: {0}", + "RatedValue": "Рейтинг {0}", + "LocalServerRedirectMessage": "Зараз вас буде перенаправлено на домен, який належить адміністратору сервера, до якого ви хочете підключитись:", + "AllMediaOwnedHosted": "Усі медіафайли розміщені власником {0} та керуються ним.", + "EnableResolutionSwitching": "Відповідність роздільній здатності відео", + "EnableResolutionSwitchingHelp": "Це дозволяє Emby змінити роздільну здатність на те саме значення, у якому було закодовано відео перед початком відтворення. Це може допомогти мінімізувати кількість заїкань/тремтів, які ви могли б побачити під час відтворення відео, які не збігаються належним чином.", + "EnableDisplayRefreshRateSwitching": "Увімкнути перемикання частоти оновлення дисплея", + "EnableDisplayRefreshRateSwitchingHelp": "Це дозволяє Emby змінювати частоту оновлення дисплея на те саме значення (або кратне) частоті кадрів, у якій було закодовано відео перед початком відтворення. Це може допомогти мінімізувати кількість заїкань/тремтів, які ви могли б побачити під час відтворення відео, які не збігаються належним чином.", + "RememberSelectedAudioTracks": "Запам’ятати вибір звукових доріжок", + "RememberSelectedSubtitleTracks": "Запам’ятати вибір доріжок субтитрів", + "RememberSelectedSubtitleTracksHelp": "Вибір доріжок субтитрів буде запомнено для кожного відео та повторно застосується під час повторного відтворення того самого відео.", + "RememberSelectedAudioTracksHelp": "Вибір звукових доріжок буде запомнено для кожного відео та повторно застосується під час повторного відтворення того самого відео.", + "ClearSavedTrackSelections": "Очистити збережений вибір доріжок", + "HeaderClearTrackSelections": "Очистити збережений вибір доріжок", + "QuestionClearSavedTracks": "Очистити збережений вибір доріжок?", + "LabelChannelTags": "Теги каналу", + "AfterThisPlaysConfirmation": "Після відтворення цього треку продовжити програвання чи очистити чергу з раніше доданої музики?", + "Keep": "Зберегти", + "Clear": "Очистити", + "HeaderClearFilters": "Скинути фільтри", + "HeaderSearchForImages": "Пошук зображень", + "HeaderSearchNewImage": "Шукати нове зображення", + "HeaderSearchForAnImage": "Пошук зображення", + "DragDropToReorder": "Перетягніть, щоб змінити порядок", + "HeaderAddImageFromUrl": "Додати зображення за URL-адресою", + "HeaderSetImageFromUrl": "Встановити зображення за URL-адресою", + "LabelUrl": "URL", + "LabelChannelNumber": "Номер каналу", + "LabelGuideDataChannel": "Канал даних телегіда", + "GuideDataSource": "Джерело даних посібника", + "HeaderCopyToClipboard": "Копіювати в буфер обміну", + "TimeRemainingValue": "{0} залишилось", + "LabelResumeRewindSeconds": "При поновленні автоматично перемотати назад", + "ResumeRewindSecondsHelp": "Це може допомогти вам згадати, де ви зупинилися. Це стосується початкового відновлення, а не кожної окремої паузи під час відтворення.", + "HeaderSavePlayQueueToPlaylist": "Зберегти чергу відтворення до списку відтворення", + "EnableLogoImagesAsTitle": "Показувати зображення логотипів як заголовки на екранах відомостей", + "EnableLogoImagesAsTitleHelp": "Замість тексту заголовка на екранах відеофайлів, серіалів та інших екранів відомостей можна використовувати зображення логотипу, якщо вони доступні. Заголовок буде замінений на текст, якщо зображення логотипу недоступне.", + "LabelNowPlayingAudioBackgroundStyle": "Стиль фону для аудіо, що відтворюється зараз", + "LabelNowPlayingVideoBackgroundStyle": "Стиль фону для поточного відтворюваного відео", + "NowPlayingVideoBackgroundStyleHelp": "Визначає стиль фону під час дистанційного керування відтворенням відео на іншому пристрої.", + "Rotation": "Обертання", + "Minutes": "Хвилини", + "LabelMaxRecordingLength": "Максимальна тривалість запису", + "MaxRecordingLengthHelp": "Записи будуть мати визначену довжину незалежно від тривалості трансляції. 0 знімає обмеження.", + "RemoteWAN": "Адреса для зовнішньої мережі", + "HeaderLastConnectedTo": "Останнє підключення до", + "Version": "Версія", + "Keyword": "Ключове слово", + "HeaderServerAddress": "Адреса серверу", + "HeaderSkipIntro": "Пропустити заставку", + "HeaderCreateRecording": "Створити запис", + "HeaderAddRecording": "Додати запис", + "HeaderChannelAndTime": "Канал та час", + "LabelRecordProgramOrSeriesFrom": "Записати програму або серіал з", + "LabelStartTime": "Час початку", + "LabelEndTime": "Час закінчення", + "LabelFrequency": "Частота", + "Recurring": "Повторювання", + "Once": "Лише раз", + "Start": "Запуск", + "Unpause": "Відновити", + "LabelIntroSkipMode": "Режим пропуску заставок", + "ShowSkipIntroButton": "Показати кнопку «Пропустити заставку»", + "AutoSkipIntro": "Автоматично пропускати заставки", + "DisplayRatingInformationOnVideoPlaybackStart": "Показувати рейтинг під час запуску відтворення відео", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Коли почнеться відтворення відео, ненадовго будуть показані відомості про рейтинг.", + "IntroSkipModeHelp": "Показувати кнопку «Пропустити заставку» або автоматично пропускати заставки для серій, в яких Emby Server виявив маркери заставок. Для цього в параметрах медіатеки Emby Server має бути увімкнено виявлення заставок.", + "EnableHomeScreenFocusPreview": "Використовувати на головному екрані макет з детальним попереднім переглядом вибраного елемента", + "EnableHomeScreenFocusPreviewHelp": "Це може не працювати належним чином, якщо на головному екрані змішані різні типі медіафайлів.", + "LabelHideMediaTransportButtons": "Приховати кнопки керування програвача", + "HideMediaTransportButtonsHelp": "Створює простий екранний інтерфейс програвача, приховавши основні кнопки керування, такі як перехід вперед, назад і пауза. Ці команди можна буде виконувати за допомогою клавіш зі стрілками та ОК/Enter. Кнопки керування автоматично приховуються, якщо в додатку не буде виявлено використання миші.", + "ImageSizeHelp": "Установіть бажаний розмір сітки зображень.", + "LabelImageSize": "Розмір зображень", + "ThisImageIsOnlyPreview": "Це зображення є лише попереднім переглядом результату із пошукової системи. Фактичне зображення, яке завантажить Emby Server, може відрізнятись та залежатиме від параметрів, які ви налаштували для медіатеки Emby.", + "ResultsRangeValue": "{0} до {1} з {2}", + "NotificationsDescription": "Налаштуйте сповіщення, щоб бути в курсі важливих подій на Emby Server.", + "DeleteEmbyConnectAccount": "Видалити обліковий запис Emby Connect", + "DeleteEmbyConnectAccountHelp": "Щоб видалити свій обліковий запис Emby Connect, увійдіть на сайті {0}спільноти Emby {1} за адресою {2} . Після входу клацніть своє ім’я користувача у верхньому правому куті, потім клацніть «Налаштування облікового запису», а потім клацніть «Видалити мій обліковий запис».", + "KeepPlayingInBackground": "Продовжувати відтворення у фоновому режимі", + "LabelVideoBackBehavior": "Поведінка кнопки \"Назад\" відеопрогравача", + "HeaderViewLyrics": "Переглянути тексти пісень", + "HeaderViewMissingEpisodes": "Переглянути відсутні епізоди", + "HeaderMissingEpisodes": "Відсутні епізоди", + "HeaderManageAccess": "Керувати доступом", + "HeaderManageCollaboration": "Керуйте співпрацею", + "HeaderLeaveCollaboration": "Залишити співпрацю", + "HeaderRemoveFromLibrary": "Видалити з бібліотеки", + "RemoveSharedItemConfirmation": "Ви впевнені, що бажаєте видалити цей елемент із вашої бібліотеки? Щоб отримати його назад, власник повинен буде знову надати вам доступ.", + "SubtitlesDownloaded": "Субтитри завантажено", + "HeaderMakePrivate": "Зробити приватним", + "HeaderMakePublic": "Оприлюднити", + "MakePublicDescription": "Усі користувачі зможуть переглядати цей елемент. Користувачам можна надати доступ до редагування.", + "MakePrivateDescription": "Користувачам все ще можна надавати доступ окремо.", + "Private": "Приватний", + "Public": "Громадський", + "Collaborative": "Спільний", + "PreferredShowDisplay": "Бажаний показ серіалу", + "ShowAllEpisodesAllSeasons": "Показати всі серії всіх сезонів разом", + "ShowAllEpisodesSingleSeason": "Показати всі епізоди лише для шоу одного сезону", + "ShowSeasonFolders": "Завжди показувати папки сезонів", + "HeaderAddAgain": "Додати ще раз", + "UpNext": "Далі", + "ItemsAlreadyInPlaylist": "Деякі з цих елементів уже є у вашому списку відтворення.", + "ItemAlreadyInPlaylist": "Цей елемент уже є у вашому списку відтворення.", + "HeaderPlayChannel": "Відтворити канал", + "LabelScreenOrientationDuringVideo": "Орієнтація екрану під час відтворення відео", + "UseDeviceSetting": "Використовувати налаштування пристрою", + "LockToLandscape": "Зафіксувати альбомну орієнтацію", + "UsernameForFolderHelp": "Ім’я користувача, необхідне для доступу до цієї папки у вашій мережі (якщо є).", + "PasswordForFolderHelp": "Пароль, необхідний для доступу до цієї папки у вашій мережі (якщо є).", + "ShowMediaInfoOnDetailScreens": "Показати повний медіа-файл внизу екранів аудіо та відео", + "ForgotPasswordNoUserFound": "Користувачів із введеним іменем не знайдено. Спробуйте ще раз або залиште ім’я порожнім, щоб скинути пароль для всіх користувачів цього сервера.", + "Silver": "Срібло", + "DimGray": "Дим Грей", + "DarkGray": "Темно-сірий", + "LightGray": "Світло-сірий", + "Black": "Чорний", + "Blue": "Синій", + "Cyan": "Блакитний", + "Gray": "Сірий", + "Green": "Зелений", + "Lime": "Вапно", + "Magenta": "Маджента", + "Orange": "Помаранчевий", + "Pink": "Рожевий", + "Red": "Червоний", + "Yellow": "Жовтий", + "White": "Білий", + "Purple": "Фіолетовий", + "RecentlyReleasedMovies": "Нещодавно випущені фільми", + "RecentlyReleasedEpisodes": "Нещодавно випущені епізоди", + "DolbyProfile": "Профіль Dolby", + "IpAddress": "IP-адреса", + "VideoType": "Тип відео", + "HidePlayedMediaFrom": "Приховати відтворені мультимедійні файли", + "BottomEdgePosition": "Положення нижнього краю", + "VerticalPositionFromBottomScreen": "Встановіть вертикальне розташування субтитрів відносно нижньої частини екрана.", + "TopEdgePosition": "Положення верхнього краю", + "TopEdgePositionHelp": "Встановіть найвище дозволене вертикальне положення субтитрів відносно верхньої частини екрана. Це використовується, коли субтитри містять інструкції щодо позиціонування, які потрібно розмістити вгорі.", + "HeaderSubtitlePosition": "Позиція субтитрів", + "TitleProfilePin": "PIN-код профілю", + "ProfilePinConfirm": "PIN-код профілю (підтвердити)", + "SaveProfilePin": "Зберегти PIN-код", + "ProfilePinDescription": "Створіть додатковий PIN-код, який буде пропонувати вам ввести щоразу, коли ви повертатиметеся до програми Emby на пристрої, на якому ви вже виконали вхід Це корисно, якщо у вас є пристрої, які використовуються кількома користувачами. Ви можете вибірково вмикати його на кожному пристрої за потреби.", + "TitleNewEpisodes": "Нові епізоди", + "EnterYourPinToContinue": "Введіть PIN-код, щоб продовжити.", + "YourPinMustBe": "Ваш PIN-код має містити {0} цифр.", + "ForgotPin": "Забули PIN-код?", + "RequireEnteringPinToReturn": "Вимагати введення PIN-коду мого профілю щоразу, коли я повертаюся до цієї програми.", + "RequireEnteringPinToReturnQuestion": "Чи потрібно запитувати PIN-код вашого профілю кожного разу, коли ви повертаєтеся до цієї програми? Якщо цей пристрій використовується кількома користувачами, ваш PIN-код профілю може допомогти запобігти іншим користувачам отримати доступ до ваших даних.", + "RequireEnteringPinToReturnHelp": "Корисно, якщо цей пристрій використовується кількома користувачами.", + "WrongPinPleaseTryAgain": "На жаль, неправильний PIN-код. Будь ласка спробуйте ще раз.", + "ProfilePinIsOn": "PIN-код профілю зараз увімкнено.", + "IfTryingToConnectToHttp": "Якщо ви намагаєтесь підключитись до Emby Server за HTTP-адресою, можливо ваш браузер не дозволяє це через вимоги HTTPS. Спробуйте один з наступних способів:", + "SetupHttpsForYourServer": "Налаштуйте {0}HTTPS для свого Emby Server{1}, щоб до нього можна було підключись через HTTPS.", + "TitleUnableToReachServer": "Не вдалося підключитися до сервера", + "TitleUnableToReachName": "Неможливо зв’язатися з {0}", + "HearingImpaired": "З порушеннями слуху", + "SignIntoServerName": "Увійти в {0}", + "About": "Подробиці", + "Specials": "Спец", + "NSettings": "Налаштування {0}", + "NPreferences": "Уподобання {0}", + "DetailScreenOptions": "Екран подробиць", + "LabelGenreDisplayLimit": "Обмеження показу жанру", + "GenreDisplayLimitHelp": "Обмежте кількість жанрів, що відображаються у верхній частині екрану з інформацією про предмет.", + "GenreDisplayLimitForListsHelp": "Обмежте кількість жанрів, що відображаються у верхній частині екрана списків відтворення, колекції та відомостей про виконавця.", + "LabelGenreDisplayLimitForLists": "Обмеження відображення жанру для списків", + "ShowPosterOnDetails": "Покажіть плакат на екрані деталей", + "ShowPosterOnDetailsHelp": "Виберіть показ плаката на екранах із деталями відео або приховайте його для більш мінімального вигляду, який підкреслює фон. Цей параметр не використовується на макетах менших екранів. Деякі типи елементів ігноруватимуть це налаштування.", + "EnableAppLogging": "Увімкнути ведення журналу програми", + "EnableAppLoggingHelp": "Ведення журналу може погіршити продуктивність програми, тому його слід увімкнути лише за потреби для вирішення проблем. Зміни вимагають перезапуску програми.", + "LabelSlideshowInterval": "Тривалість показу одного слайда у слайд-шоу", + "TVChannelImageEditorHelp": "Підтримується кілька версій логотипу. Додатки Emby автоматично виберуть відповідний залежно від поточної теми.", + "PlaySlideshow": "Відтворення слайд-шоу", + "CheckForExistingEpisodesInAllLibraries": "Перевірте наявність епізодів у всіх бібліотеках", + "GroupNotificationsBySeriesOrAlbum": "Групуйте сповіщення за серіями та альбомами", + "ThemeSettings": "Налаштування теми", + "FollowingActivityWillBeDisrupted": "Наведену нижче діяльність буде перервано, і для перезапуску може знадобитися ручне втручання:", + "OneActivePlaybackSession": "1 сеанс активного відтворення", + "NumActivePlaybackSessions": "{0} Сеанси активного відтворення", + "OneActiveRecording": "1 активний запис", + "NumActiveRecordings": "{0} активних записів", + "PlayFromLivePosition": "Відтворити з поточної позиції в реальному часі", + "PlayFromStartOfRecording": "Відтворити від початку запису", + "ThisChannelIsActivelyRecording": "Цей канал зараз записується. З якого місця почати відтворення?", + "ThemeSongVolume": "Гучність тематичної пісні", + "HeaderForceConversionForFormats": "Примусове перекодування для форматів", + "ForceConversionForFormatsHelp": "Увімкніть, щоб застосувати примусове перекодування або перепакування контейнеру на сервері для форматів, які не дуже добре відтворюються напряму на цьому пристрої.", + "StartupBehavior": "Дії під час запуску", + "RememberLastUser": "Запам'ятати останнього користувача", + "ShowLoginScreen": "Показати вікно входу", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Конвертувати непідтримуване багатоканальне аудіо у Dolby Digital", + "ConvertUnsupportedAudioHelp": "Щоб уникнути зведення непідтримуваних форматів об'ємного звуку до стерео, дозвольте Emby Server перекодувати їх у Dolby Digital.", + "HeaderPlaybackCorrection": "Корекція відтворення", + "HeaderAttemptPlaybackCorrection": "Спробувати виправити відтворення", + "PlaybackCorrectionConfirm": "Спробувати виправити відтворення?", + "PlaybackCorrectionDescription": "Поточний елемент має проблеми з відтворенням, наприклад відсутній звук чи відео? Цей параметр спробує виправити проблеми з відтворенням шляхом перекодування на сервері, щоб перетворити цей файл у більш зручний для потокової передачі формат. Це призведе до збільшення використання ресурсів на цьому Emby Server.", + "PlaybackCorrectionDescription2": "Це можна зробити до трьох разів для кожного відео, де одночасно активовані перепакування контейнеру, перекодування відео та перекодування аудіо.", + "HeaderAlbumsAsContributingArtist": "Альбоми, де є співавтором", + "HeaderAlbumsAsComposer": "Альбоми, де є композитором", + "Duplicates": "Дублікати", + "HeaderSleepTimer": "Таймер сну", + "AfterCurrentItem": "Після поточного елемента", + "HeaderStopPlayback": "Зупинити відтворення", + "TurnOffTimer": "Вимкнути таймер", + "SleepTimerIsSet": "Таймер сну встановлено", + "SleepTimerIsOff": "Таймер сну вимкнено", + "LabelEnableRemoteControlTVMode": "Показувати функції трансляції та віддаленого керування", + "EnableRemoteControlTVModeHelp": "Увімкніть, якщо ви збираєтесь надсилати мультимедійні дані з цього пристрою на інші пристрої.", + "ShowOnScreenControls": "Показати екранні елементи керування", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Виберіть дію для виконання після натискання кнопки вгору на екрані відеопрогравача. Це відбувається, коли елементи керування не відображаються на екрані. Коли елементи керування видимі, кнопка вгору буде використовуватись для навігації.", + "LabelVideoPlayerLongPressAction": "Дія довгого натискання у відеопрогравачі", + "LetsGetSetup": "Почнімо налаштування", + "VideoPlayerLongPressActionHelp": "Виберіть функцію або меню, які відображатимуться після довгого натисканні кнопки ОК під час відтворення відео. Ця відбувається тільки тоді, коли елементи керування відео сховано або у фокусі знаходиться панель перемотування.", + "AskAdminToGetPremiere": "Цю покупку повинен здійснити адміністратор сервера. Попросіть адміністратора цього Emby Server увійти та оформити підписку Emby Premiere, щоб ви могли отримати переваги від преміум-функцій.", + "AutoOpenSingleItemsFolders": "Автоматично відкривати одиночні елементи у режимі теки", + "AutoOpenSingleItemsFoldersHelp": "Якщо тека містить тільки один елемент, автоматично відкривати цей елемент.", + "PlayedOnValue": "Відтворено {0}", + "TheseSettingsApplyAppDevice": "Ці налаштування застосовуються до всіх користувачів, які відтворюють медіафайли на цьому пристрої.", + "LastContentDateAdded": "Дата додавання останнього вмісту", + "RepeatThemeMedia": "Відтворювати теми у циклі", + "HideEpisodeSpoilerInfo": "Приховувати спойлери з непроглянутих серій", + "HideEpisodeSpoilerInfoHelp": "Приховує зображення та огляд для непроглянутих серій на більшості екранів.", + "BornValueAge": "Народився(ась): {0} (вік {1})", + "PreferDirectStreamLiveTV": "Надавати перевагу прямому передаванню потоку ефірного ТБ", + "PreferDirectStreamLiveTVHelp": "Пряме передавання потоку ефірного ТБ зменшить споживання ресурсів на Emby Server, але може обмежити можливість перемотування під час відтворення. Увімкнення цього параметру дозволить пряме передавання потоку ефірного ТБ, якщо формат підтримується і відповідає налаштованій якості. Щоб мати можливість перемотування під час відтворення, вимкніть цей параметр, але це призведе до додаткового споживання ресурсів.", + "HeaderAllRecordings": "Всі записи", + "RememberLoginDescription": "Після входу в додатку можна налаштувати різні дії під час запуску: запам’ятати вхід, входити як певний користувач або завжди показувати екран входу.", + "ForgetThisServer": "Забути цей сервер", + "ForgetServerConfirmation": "Дійсно забути цей сервер?", + "HeaderThisDevice": "Цей пристрій", + "ChaptersGuide": "Розділи / телегід ефірного ТБ", + "ChaptersGuideHelp": "Показувати розділи для медіафайлів із розділами. Для медіафайлів без розділів показувати телегід ефірного ТБ (за наявності).", + "HeaderShowSeriesImages": "Показати зображення серіалу", + "AppExitConfirmation": "Закрити Emby?", + "AppExitMenu": "Меню виходу", + "SideMenu": "Бокове меню навігації", + "SystemStorage": "Системне сховище ({0})" +} diff --git a/modules/common/strings/vi.json b/modules/common/strings/vi.json new file mode 100644 index 0000000..e5a7fdc --- /dev/null +++ b/modules/common/strings/vi.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "Replace existing video preview thumbnails", + "ReplaceExistingThumbnailImagesHelp": "All existing video preview thumbnails will be deleted and new ones will be generated, if enabled in the options for the library.", + "DateCreated": "Date Created", + "CreatedOnValue": "Created {0}", + "UpdatedOnValue": "Updated {0}", + "EmbyLoginTerms": "Emby được thiết kế để hỗ trợ bạn quản lý thư viện đa phương tiện cá nhân của bạn, như là ảnh và video gia đình. Vui lòng xem {0}điều khoản sử dụng{1} của chúng tôi. Việc sử dụng phần mềm Emby đồng nghĩa với việc chấp nhận các điều khoản này.", + "MessageUnableToConnectToServer": "Hiện tại chúng tôi không thể kết nối đến máy chủ đã chọn. Vui lòng đảm bảo máy chủ đang chạy và thử lại.", + "EmbyIntroMessage": "Với Emby, bạn có thể dễ dàng truyền phát video, nhạc và ảnh tới điện thoại thông minh, máy tính bảng và các thiết bị khác từ Máy chủ Emby.", + "HeaderSignInWithConnect": "Đăng nhập bằng Emby Connect", + "HeaderWelcomeToEmby": "Chào mừng đến với Emby", + "HeaderNewUsers": "Các người dùng mới", + "HeaderPleaseSignIn": "Vui lòng đăng nhập", + "MessageInvalidUser": "Tên đăng nhập hoặc mật khẩu không hợp lệ. Vui lòng thử lại.", + "MessageUnlockAppWithPurchaseOrSupporter": "Mở khóa tính năng này bằng cách mua một lần với mức phí nhỏ hoặc bằng gói đăng ký Emby Premiere đang hoạt động.", + "MessageUnlockAppWithSupporter": "Mở khóa tính năng này bằng đăng ký Emby Premiere đang hoạt động.", + "MessageToValidateSupporter": "Nếu bạn có đăng ký Emby Premiere đang hoạt động, hãy đảm bảo bạn đã thiết lập Emby Premiere trong Bảng điều khiển máy chủ Emby mà bạn có thể truy cập bằng cách nhấp vào Emby Premiere trong menu chính.", + "ValueSpecialEpisodeName": "Đặc biệt - {0}", + "HeaderSignIn": "Đăng nhập", + "Share": "Chia sẻ", + "Shared": "Đã chia sẻ", + "Info": "Thông tin", + "Add": "Thêm", + "Speed": "Tốc độ", + "PlaybackSpeed": "Tốc độ phát lại", + "Chapters": "Các chương", + "Password": "Mật khẩu", + "SavePassword": "Lưu mật khẩu", + "LabelPassword": "Mật khẩu", + "HeaderResetPassword": "Đặt lại mật khẩu", + "Series": "Loạt phim", + "Preview": "Xem trước", + "Submit": "Nộp", + "Never": "Không bao giờ", + "Table": "Bảng", + "HeaderScheduledTasks": "Tác vụ đã lên lịch", + "Plays": "Phát", + "LastUsedAddressValue": "Lần cuối {0}", + "LabelKeywordType": "Loại từ khóa", + "HeaderSelectColumns": "Chọn các cột", + "HeaderTopResults": "Các kết quả hàng đầu", + "HeaderPinSidebar": "Ghim thanh bên", + "Collapse": "Đóng lại", + "LabelBackgroundVideoPlayback": "Phát video trong nền", + "BackgroundVideoPlaybackHelp": "Tính năng phát lại trong nền cho phép video tiếp tục phát ngay cả khi màn hình tắt.", + "AlwaysOn": "Luôn bật", + "HeadphonesOrExternalSpeakersConnected": "Đã kết nối tai nghe hoặc loa ngoài", + "HeaderKeyboardAndRemote": "Bàn phím và điều khiển từ xa", + "NoSelectedItemsSupportOperation": "Không có mục nào được chọn hỗ trợ thao tác này.", + "NoOperationsForSelectedItems": "Không có thao tác nào cho các mục đã chọn.", + "UploadOnlyOnWifi": "Chỉ tải lên trên Wifi", + "HeaderFoldersToUpload": "Thư mục để tải lên", + "LabelPasswordConfirm": "Mật khẩu (xác nhận)", + "HeaderMoveUpInOrder": "Di chuyển lên theo thứ tự", + "HeaderDownUpInOrder": "Di chuyển xuống theo thứ tự", + "LabelUsername": "Tên người dùng", + "HeaderAddServer": "Thêm máy chủ", + "HeaderSubtitleOffset": "Bù phụ đề", + "Watching": "Watching", + "HeaderRemoveFromContinueWatching": "Xóa khỏi Tiếp tục xem", + "RemoveThisTitleFromContinueWatching": "Xóa tiêu đề này khỏi Tiếp tục xem?", + "HeaderRemoveFromContinueListening": "Xóa khỏi Tiếp tục nghe", + "RemoveThisTitleFromContinueListening": "Xóa tiêu đề này khỏi Tiếp tục nghe?", + "HeaderIncreaseSubtitleOffset": "Tăng độ lệch phụ đề", + "HeaderDecreaseSubtitleOffset": "Giảm độ lệch phụ đề", + "Close": "Đóng", + "HeaderSeeAll": "Xem Tất Cả", + "HeaderOpenInNewWindow": "Mở trong cửa sổ mới", + "LabelEmail": "Email", + "LabelHost": "Host", + "LabelHostHelp": "Ví dụ: 192.168.1.100 hoặc https://myserver.com", + "LabelPort": "Cổng", + "Disabled": "Vô hiệu hóa", + "Uninstall": "Gỡ cài đặt", + "Enable": "Bật", + "AllTuners": "All Tuners", + "Disable": "Vô hiệu hóa", + "NextValue": "Tiếp theo: {0}", + "HeaderNextItem": "Mục tiếp theo", + "HeaderPreviousItem": "Mục trước", + "NoTrailersMessage": "Không tìm thấy đoạn giới thiệu nào. Để thêm Đoạn giới thiệu, vui lòng cài đặt plugin Đoạn giới thiệu từ {0}danh mục plugin Emby{1}.", + "UninstallPluginConfirmation": "Bạn có chắc chắn muốn gỡ cài đặt plugin này không?", + "HeaderUninstallPlugin": "Gỡ cài đặt plugin", + "AreYouStillWatching": "Bạn vẫn đang xem phải không?", + "LabelCurrentPassword": "Mật khẩu hiện tại", + "LabelNewPassword": "Mật khẩu mới", + "LabelNewPasswordConfirm": "Xác nhận mật khẩu mới", + "HeaderRemovePassword": "Xóa mật khẩu", + "ServerUpdateNeeded": "Máy chủ Emby này cần được cập nhật. Để tải xuống phiên bản mới nhất, vui lòng truy cập {0}", + "MessageThankYouForConnectSignUp": "Cảm ơn bạn đã đăng ký Emby Connect. Một email sẽ được gửi đến địa chỉ của bạn kèm theo hướng dẫn về cách xác nhận tài khoản mới của bạn. Vui lòng xác nhận tài khoản và sau đó quay lại đây để đăng nhập.", + "MessageThankYouForConnectSignUpNoValidation": "Cảm ơn bạn đã đăng ký Emby Connect! Bây giờ bạn sẽ được yêu cầu đăng nhập bằng thông tin Emby Connect của mình.", + "ErrorMessagePasswordNotMatchConfirm": "Mật khẩu và mật khẩu xác nhận phải khớp nhau.", + "ErrorMessageUsernameInUse": "Tên người dùng đã được sử dụng. Vui lòng chọn tên mới và thử lại.", + "ErrorMessageEmailInUse": "Địa chỉ email đã được sử dụng. Vui lòng nhập địa chỉ email mới và thử lại hoặc sử dụng tính năng quên mật khẩu.", + "HeaderUpcomingOnTV": "Sắp diễn ra trên truyền hình trực tiếp", + "HeaderOtherShowings": "Các buổi trình diễn khác", + "Showings": "Hiển thị", + "HeaderConnectToServer": "Kết nối tới máy chủ", + "ConnectToServerManually": "Kết nối tới máy chủ theo cách thủ công", + "LabelEnterConnectUserNameHelp": "Đây là địa chỉ email bạn đã sử dụng để thiết lập tài khoản Emby Connect.", + "HeaderSignInError": "Lỗi Đăng nhập", + "HeaderManualLogin": "Đăng nhập thủ công", + "PasswordResetConfirmation": "Bạn có chắc chắn muốn đặt lại mật khẩu không?", + "ContactAdminToResetPassword": "Vui lòng liên hệ với quản trị viên hệ thống để đặt lại mật khẩu.", + "ForgotPasswordInNetworkRequired": "Vui lòng thử lại trong mạng gia đình của bạn để bắt đầu quá trình đặt lại mật khẩu.", + "ForgotPasswordFileCreated": "Tệp sau đã được tạo trên máy chủ của bạn, trong đó chứa hướng dẫn về các bước thực hiện tiếp theo:", + "ForgotPasswordFileExpiration": "Mã pin đặt lại sẽ hết hạn vào lúc {0} .", + "InvalidForgotPasswordPin": "Đã nhập mã PIN không hợp lệ hoặc đã hết hạn. Vui lòng thử lại.", + "PasswordResetForUsers": "Mật khẩu đã bị xóa đối với những người dùng sau. Để đăng nhập, hãy đăng nhập bằng mật khẩu trống.", + "HeaderForgotPassword": "Quên mật khẩu?", + "ForgotPasswordUsernameHelp": "Để trống mục này nếu bạn không nhớ tên người dùng của mình.", + "HeaderPasswordReset": "Đặt lại mật khẩu", + "AttributeNew": "Mới", + "Done": "Xong", + "HeaderResetToDefault": "Đặt lại về mặc định", + "Deinterlacing": "Khử xen kẽ", + "HeaderBurningInSubtitles": "Gắn phụ đề trực tiếp vào video", + "Premiere": "Premiere", + "LabelPinCode": "Mã PIN", + "LabelLocalNetworkPinCode": "Mã pin mạng cục bộ", + "LabelLocalNetworkPasswordMode": "Chế độ đăng nhập mạng cục bộ", + "RequirePasswordInLocalNetwork": "Yêu cầu mật khẩu trên mạng cục bộ", + "NoPasswordInLocalNetwork": "Không yêu cầu mật khẩu trên mạng cục bộ", + "PinCodeInLocalNetwork": "Cho phép mã pin số trên mạng cục bộ", + "LocalNetworkPasswordModeHelp": "Chọn phương thức đăng nhập cho các thiết bị trên cùng mạng cục bộ với Máy chủ Emby của bạn.", + "HeaderLocalNetworkAccess": "Truy cập mạng cục bộ", + "Live": "Trực tiếp", + "Reset": "Đặt lại", + "Repeat": "Lặp lại", + "Track": "Theo dõi", + "Tracks": "Luồng âm thanh", + "HeaderCameraUpload": "Tải lên từ camera", + "TrackCount": "{0} Đường", + "ItemCount": "{0} Mục", + "NumberChannelsValue": "{0} Kênh", + "HeaderLatestMusic": "Nhạc mới nhất", + "HeaderLatestAudioBooks": "Sách nói mới nhất", + "HeaderLatestDownloadedVideos": "Video mới tải về", + "HeaderRecentlyPlayed": "Đã phát gần đây", + "Recent": "Gần đây", + "HeaderFrequentlyPlayed": "Phát thường xuyên", + "HeaderMoreLikeThis": "Tương tự", + "HeaderMoreLikeThisOnLiveTV": "Thêm nội dung tương tự trên Live TV", + "OriginalAirDateValue": "Ngày phát sóng ban đầu: {0}", + "EndsAtValue": "Kết thúc vào lúc {0}", + "Date": "Ngày", + "AirDate": "Ngày phát sóng", + "Played": "Đã phát", + "Daily": "Hằng ngày", + "Weekly": "Hàng tuần", + "RequireHashMatch": "Yêu cầu khớp băm", + "RequireHashMatchHelp": "Yêu cầu khớp băm sẽ lọc phụ đề để chỉ bao gồm những phụ đề đã được thử nghiệm với tệp video chính xác của bạn. Bỏ chọn mục này sẽ làm tăng số lượng phụ đề khớp, nhưng cũng sẽ làm tăng khả năng phụ đề không đúng thời điểm hoặc không chính xác.", + "SearchForForcedSubtitlesOnly": "Chỉ phụ đề bắt buộc", + "SearchForForcedSubtitlesOnlyHelp": "Yêu cầu phụ đề bắt buộc sẽ giới hạn kết quả tìm kiếm đối với những phụ đề được gắn thẻ là có ngôn ngữ nước ngoài.", + "LastEpisodeDateAdded": "Ngày thêm tập cuối cùng", + "LastEpisodeDateAired": "Ngày phát hành tập cuối cùng", + "LabelPlaystate": "Trạng thái phát", + "Studio": "Xưởng phim", + "Tag": "Thẻ", + "EpisodeTitle": "Tiêu đề tập phim", + "Audio": "Âm thanh", + "Video": "Băng hình", + "Subtitle": "Phụ đề", + "Image": "Hình ảnh", + "CopyStream": "Copy original stream", + "LabelAudioLayout": "Bố cục âm thanh", + "LabelAudioCodec": "Bộ giải mã âm thanh", + "LabelAudioLanguage": "Ngôn ngữ âm thanh", + "LabelSubtitleLanguage": "Ngôn ngữ phụ đề", + "LabelVideoCodec": "Bộ giải mã video", + "LabelSubtitleCodec": "Bộ giải mã phụ đề", + "LabelParentalRating": "Đánh giá của phụ huynh", + "BecauseYouLikeValue": "Bởi vì bạn thích {0}", + "BecauseYouWatchedValue": "Bởi vì bạn đã xem {0}", + "DirectedByValue": "Đạo diễn bởi {0}", + "StarringValue": "Diễn viên chính {0}", + "Invitations": "Lời mời", + "ActorAsRole": "như {0}", + "ButtonOk": "Xác nhận", + "GroupItemsIntoCollections": "Nhóm các mục vào bộ sưu tập", + "GroupItemsIntoCollectionsHelp": "Nhóm các mục dựa trên bộ sưu tập mà chúng được thêm vào. Bật một số bộ lọc hoặc thứ tự sắp xếp có thể tự động tắt tính năng này.", + "GroupItemsIntoTags": "Nhóm các mục vào thẻ", + "GroupItemsIntoTagsHelp": "Nhóm các mục dựa trên thẻ mà chúng đã được thêm vào. Việc bật một số bộ lọc hoặc thứ tự sắp xếp có thể tự động vô hiệu hóa tính năng này.", + "User": "Người dùng", + "Access": "Truy cập", + "Users": "Người dùng", + "Library": "Thư viện", + "Devices": "Thiết bị", + "Cancel": "Hủy bỏ", + "Restart": "Khởi động lại", + "Shutdown": "Tắt nguồn", + "Logs": "Nhật ký", + "Visibility": "Khả năng hiển thị", + "Notifications": "Thông báo", + "SendTestNotification": "Gửi thông báo kiểm tra", + "NotificationSent": "Đã gửi thông báo", + "DeleteNotificationConfirmation": "Bạn có chắc chắn muốn xóa thông báo này không?", + "DeleteNotification": "Xóa thông báo", + "AddNotification": "Thêm thông báo", + "EditNotification": "Chỉnh sửa thông báo", + "LimitUserEventsTo": "Giới hạn sự kiện người dùng", + "LimitLibraryEventsTo": "Giới hạn các sự kiện thư viện", + "LimitDeviceEventsTo": "Giới hạn các sự kiện thiết bị", + "ForAdditionalNotificationOptions": "Người quản trị máy chủ có thể cài đặt các dịch vụ thông báo bổ sung trong danh mục plugin Emby {0} {1} .", + "Plugins": "Các plugin", + "Systems": "Hệ thống", + "Server": "Máy chủ", + "Dashboard": "Bảng điều khiển", + "PlayOnAnotherDevice": "Phát trên thiết bị khác", + "HeaderConnectionHelp": "Hỗ trợ kết nối", + "AccessRestrictedTryAgainLater": "Hiện tại quyền truy cập bị hạn chế. Vui lòng thử lại sau.", + "ButtonGotIt": "Đã hiểu", + "RememberMe": "Ghi nhớ tôi", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "Quản lý máy chủ Emby", + "ShutdownServer": "Tắt máy chủ Emby", + "RestartServer": "Khởi động lại máy chủ Emby", + "RecordingCancelled": "Đã hủy ghi âm", + "SeriesCancelled": "Loạt phim bị hủy", + "Recording": "Ghi âm", + "SeriesRecording": "Ghi âm loạt phim", + "RecordingScheduled": "Đã lên lịch ghi âm", + "SeriesRecordingScheduled": "Đã lên lịch ghi hình cho loạt phim", + "HeaderNewRecording": "Bản ghi âm mới", + "HeaderWakeServer": "Đánh thức máy chủ", + "AttemptingWakeServer": "Đang cố gắng đánh thức máy chủ. Vui lòng đợi...", + "WakeServerSuccess": "Thành công!", + "HeaderCustomizeHomeScreen": "Tùy chỉnh màn hình chính", + "WakeServerError": "Các gói Wake On LAN đã được gửi đến máy chủ của bạn, nhưng chúng tôi không thể kết nối với Máy chủ Emby của bạn. Máy của bạn có thể cần thêm một chút thời gian để đánh thức hoặc Máy chủ Emby có thể không đang chạy tích cực trên máy.", + "Days": "Ngày", + "Network": "Mạng", + "Networks": "Mạng", + "SortByValue": "Sắp xếp theo {0}", + "HeaderSortBy": "Sắp xếp theo", + "HeaderPhotoAlbums": "Album ảnh", + "Photos": "Hình ảnh", + "HeaderAppearsOn": "Xuất hiện trên", + "List": "Danh sách", + "HeaderRecordSeries": "Loạt Kỷ Lục", + "HeaderCinemaMode": "Giới thiệu phim", + "Conversions": "Chuyển đổi", + "Downloads": "Tải xuống", + "HeaderManageDownloads": "Quản lý Tải xuống", + "InternalStorage": "Lưu trữ nội bộ", + "ExternalStorage": "Lưu trữ ngoài", + "UploadToFollowingServers": "Tải lên máy chủ", + "UploadingNumItems": "Đang tải lên {0} của {1}", + "DownloadNumItems": "Đang tải xuống {0} của {1}", + "HeaderSampleRate": "Tỷ lệ", + "HeaderReferenceFrames": "Khung tham chiếu", + "HeaderBitDepth": "Độ sâu bit", + "HeaderPixelFormat": "Định dạng điểm ảnh", + "Profile": "Hồ sơ", + "Bitrate": "Tốc độ bit", + "Expand": "Mở rộng", + "Container": "Thùng chứa", + "Format": "Định dạng", + "Path": "Đường dẫn", + "Size": "Kích cỡ", + "Resolution": "Độ phân giải", + "HeaderCodecTag": "Thẻ Codec", + "Framerate": "Tốc độ khung hình", + "Interlaced": "xen kẽ", + "Anamorphic": "Biến dạng", + "Level": "Mức độ", + "Timestamp": "Dấu thời gian", + "Language": "Ngôn ngữ", + "Codec": "Bộ giải mã", + "Stream": "Phát trực tuyến", + "HeaderExtradata": "Dữ liệu bổ sung", + "HeaderHardwareAcceleratedTranscoding": "Chuyển mã tăng tốc phần cứng", + "HeaderHardwareAcceleratedTranscodingDescription": "Tận dụng GPU máy chủ của bạn. Emby có khả năng tăng tốc phần cứng tiên tiến và nhanh nhất trong ngành.", + "HeaderOfflineDownloads": "Media ngoại tuyến", + "AndMuchMoreExclamation": "Và nhiều hơn nữa!", + "HeaderOfflineDownloadsDescription": "Tải phương tiện xuống thiết bị của bạn để dễ dàng sử dụng ngoại tuyến.", + "LiveTvFeatureDescription": "Truyền phát TV trực tiếp tới bất kỳ ứng dụng Emby nào, với thiết bị dò TV tương thích được cài đặt trên Máy chủ Emby của bạn.", + "DvrFeatureDescription": "Lên lịch ghi hình truyền hình trực tiếp, ghi hình loạt phim và nhiều nội dung khác bằng Emby DVR.", + "CinemaModeFeatureDescription": "Cinema Intros mang đến cho bạn trải nghiệm điện ảnh thực sự với các đoạn giới thiệu và phần giới thiệu tùy chỉnh trước khi chiếu phim chính.", + "HeaderFreeApps": "Ứng dụng Emby miễn phí", + "FreeAppsFeatureDescription": "Tận hưởng quyền truy cập miễn phí vào các ứng dụng Emby cho thiết bị của bạn.", + "HeaderBecomeProjectSupporter": "Nhận Emby Premiere", + "HeaderViewServerInfo": "Xem thông tin máy chủ", + "PlaybackTvModeRequiresEmbyPremiere": "Phát lại phương tiện ở chế độ TV yêu cầu phải có đăng ký {0} Emby Premiere {1} đang hoạt động .", + "FeatureRequiresEmbyPremiere": "Tính năng này yêu cầu đăng ký {0} Emby Premiere {1} đang hoạt động .", + "HeaderConvertYourRecordings": "Chuyển đổi bản ghi âm của bạn", + "Record": "Ghi", + "Save": "Lưu", + "Edit": "Biên tập", + "HeaderSavePlaylist": "Lưu danh sách phát", + "Latest": "Mới nhất", + "Download": "Tải về", + "Downloaded": "Đã tải xuống", + "Converted": "Đã chuyển đổi", + "RemoveFromHistory": "Xóa khỏi Lịch sử", + "ConfirmRemoveFromHistory": "Xóa mục này khỏi lịch sử?", + "Downloading": "Đang tải xuống", + "Advanced": "Nâng cao", + "LinkedToEmbyConnect": "Liên kết với Emby Connect", + "Delete": "Xóa bỏ", + "Both": "Cả hai", + "LabelChannelDisplay": "Hiển thị kênh", + "HeaderDeleteItem": "Xóa mục", + "HeaderDeleteUser": "Xóa người dùng", + "DeleteItemConfirmation": "Bạn có chắc chắn muốn xóa {0} không ?", + "DeleteUserConfirmation": "Bạn có chắc chắn muốn xóa người dùng {0} không?", + "DeleteUsersConfirmation": "Bạn có chắc chắn muốn xóa những người dùng {0} này không ?", + "HeaderDeleteDevice": "Xóa thiết bị", + "DeleteDeviceConfirmation": "Bạn có chắc chắn muốn xóa thiết bị này không? Thiết bị sẽ xuất hiện lại vào lần tiếp theo người dùng đăng nhập bằng thiết bị này.", + "ConfirmDeleteItem": "Xóa mục này sẽ xóa mục đó khỏi cả hệ thống tệp và thư viện phương tiện của bạn.", + "FollowingFilesWillBeDeleted": "Các tập tin và thư mục sau đây sẽ bị xóa:", + "AreYouSureToContinue": "Bạn có chắc chắn muốn tiếp tục không?", + "Refresh": "Làm mới", + "RefreshingMetadataDots": "Đang làm mới siêu dữ liệu...", + "ScanningLibraryFilesDots": "Đang quét các tập tin thư viện...", + "HeaderFavoritesThenByChannelNumber": "Yêu thích, sau đó theo số kênh", + "HeaderAddToCollection": "Thêm vào Bộ sưu tập", + "HeaderFavoritesThenByTitle": "Yêu thích, sau đó theo tiêu đề", + "HeaderFavoritesThenByDefault": "Kênh yêu thích, sau đó theo thứ tự mặc định", + "HeaderDefaultChannelOrder": "Thứ tự kênh mặc định", + "HeaderAddToFavorites": "Thêm vào mục yêu thích", + "HeaderRemoveFromFavorites": "Xóa khỏi mục Yêu thích", + "Favorited": "Đã đánh dấu yêu thích.", + "Unfavorited": "Bỏ đánh dấu yêu thích", + "HeaderNewCollection": "Bộ sưu tập mới", + "HeaderNewPlaylist": "Danh sách phát mới", + "AllCollections": "Tất cả các bộ sưu tập", + "AllPlaylists": "Tất cả danh sách phát", + "Create": "Tạo", + "HeaderAddedToPlaylist": "Đã thêm vào danh sách phát", + "HeaderAddedToCollection": "Đã thêm vào Bộ sưu tập", + "OneItemAddedTo": "Đã thêm 1 mục vào \" {0} \".", + "ItemsAddedTo": "{0} mục đã được thêm vào \" {1} \".", + "HeaderAddedToPlayQueue": "Đã thêm vào hàng đợi phát", + "HeaderPlayingNext": "Phát tiếp theo", + "Help": "Hỗ trợ", + "HeaderGetHelp": "Nhận hỗ trợ", + "LabelTVDisplayMode": "Enable TV display mode", + "Desktop": "Máy tính", + "Mobile": "Di động / Máy tính bảng", + "Navigation": "Điều hướng", + "HeaderVideoPlayback": "Phát lại video", + "TV": "TV", + "HeaderEmbyConnect": "Kết nối Emby", + "Seasons": "Mùa", + "OneTrack": "1 đường", + "OneSeason": "1 Mùa", + "Libraries": "Thư viện", + "NumberSeasonsValue": "{0} Mùa", + "TVDisplayModeHelp": "Optimize the user interface on this device for display on a TV and input method with a remote control. This is generally not recommended if your primary input method is a mouse or is touch-based.", + "LabelDisplayLanguage": "Ngôn ngữ hiển thị", + "LabelDisplayLanguageHelp": "Việc dịch Emby là một dự án đang được tiến hành.", + "LearnHowYouCanContribute": "Tìm hiểu cách bạn có thể đóng góp.", + "NewCollectionHelp": "Bộ sưu tập cho phép bạn tạo các nhóm phim và nội dung thư viện khác theo sở thích cá nhân.", + "SearchForCollectionInternetMetadata": "Tìm kiếm tác phẩm nghệ thuật và siêu dữ liệu trên internet", + "DisplayMissingEpisodesWithinSeasons": "Hiển thị các tập phim bị thiếu trong các mùa", + "DisplayMissingEpisodesWithinSeasonsHelp": "Tính năng này cũng phải được bật cho thư viện TV trong quá trình thiết lập Emby Server.", + "EnableThemeSongs": "Bật bài hát chủ đề", + "EnableBackdrops": "Bật phông nền", + "EnableThemeSongsHelp": "Nếu được bật, các bài hát chủ đề sẽ được phát ở chế độ nền trong khi duyệt thư viện.", + "EnableBackdropsHelp": "Nếu được bật, hình nền sẽ được hiển thị ở nền của một số trang khi duyệt thư viện.", + "EnableThemeVideos": "Bật video chủ đề", + "EnableThemeVideosHelp": "Nếu được bật, video chủ đề sẽ được phát ở chế độ nền trong khi duyệt thư viện.", + "RunAtStartup": "Chạy khi khởi động", + "ServerStartup": "Khởi động máy chủ", + "EmbyServerOnXHasStarted": "Máy chủ Emby trên {0} đã khởi động.", + "LabelScreensaver": "Màn hình bảo vệ", + "LabelSoundEffects": "Hiệu ứng âm thanh", + "LabelName": "Tên", + "NewCollectionNameExample": "Ví dụ: Bộ sưu tập Star Wars", + "MessageItemsAdded": "Đã thêm mục.", + "OptionNew": "Mới...", + "LabelPlaylist": "Danh sách phát", + "AddToPlaylist": "Thêm vào danh sách phát", + "HeaderAddToPlaylist": "Thêm vào danh sách phát", + "Subtitles": "Phụ đề", + "LabelTheme": "Chủ đề", + "LabelSettingsTheme": "Cài đặt chủ đề", + "LabelThemeAccentColor": "Màu nhấn", + "ThemeAccentColorDescription": "Kiểm soát màu sắc của các chỉ báo, biểu tượng và văn bản quan trọng.", + "SearchForSubtitles": "Tìm kiếm phụ đề", + "LabelLanguage": "Ngôn ngữ", + "Search": "Tìm kiếm", + "NoSubtitleSearchResultsFound": "Không tìm thấy kết quả nào. Bạn đã cấu hình {0} tải xuống phụ đề {1} chưa?", + "NoLyricsSearchResultsFound": "Không tìm thấy kết quả nào. Bạn đã cấu hình {0} tải xuống lời bài hát {1} chưa ?", + "Lyrics": "Lời bài hát", + "SearchForLyrics": "Tìm kiếm lời bài hát", + "Finish": "Hoàn thành", + "File": "Tài liệu", + "Exit": "Thoát", + "Sleep": "Ngủ", + "Setup": "Cài đặt", + "MessageAreYouSureDeleteSubtitles": "Bạn có chắc chắn muốn xóa tệp phụ đề này không?", + "ConfirmDeletion": "Xác nhận xóa", + "MySubtitles": "Phụ đề của tôi", + "MessageDownloadQueued": "Đang xếp hàng tải xuống.", + "HeaderEditSubtitles": "Chỉnh sửa phụ đề", + "UnlockGuide": "Hướng dẫn mở khóa", + "HeaderRefreshMetadata": "Làm mới siêu dữ liệu", + "HeaderRefreshAllMetadata": "Làm mới tất cả siêu dữ liệu", + "ReplaceExistingImages": "Thay thế hình ảnh hiện có", + "ReplaceExistingImagesHelp": "Tất cả hình ảnh hiện có sẽ bị xóa và hình ảnh mới sẽ được tải xuống. Trong một số trường hợp, điều này có thể dẫn đến ít hình ảnh khả dụng hơn trước.", + "ReplaceAllMetadata": "Thay thế tất cả siêu dữ liệu", + "SearchForMissingMetadata": "Tìm kiếm siêu dữ liệu bị thiếu", + "LabelRefreshMode": "Chế độ làm mới", + "NoItemsFound": "Không tìm thấy mục nào.", + "HeaderSaySomethingLike": "Nói điều gì đó như...", + "ButtonTryAgain": "Thử lại", + "HeaderYouSaid": "Bạn nói...", + "MessageWeDidntRecognizeCommand": "Rất tiếc, chúng tôi không nhận ra lệnh đó.", + "MessageIfYouBlockedVoice": "Nếu bạn từ chối quyền truy cập bằng giọng nói vào ứng dụng, bạn sẽ cần phải cấu hình lại trước khi thử lại.", + "ValueDiscNumber": "Đĩa {0}", + "Unrated": "Chưa được xếp hạng", + "Favorite": "Yêu thích", + "Like": "Thích", + "Dislike": "Không thích", + "RefreshDialogHelp": "Siêu dữ liệu được cập nhật bằng dữ liệu mới dựa trên các cài đặt và nhà cung cấp siêu dữ liệu được bật trong thiết lập thư viện Emby.", + "Open": "Mở", + "Play": "Phát", + "Pause": "Tạm dừng", + "HeaderPlayQueue": "Hàng đợi phát", + "HeaderAddToPlayQueue": "Thêm vào hàng đợi phát", + "Shuffle": "Trộn", + "Identify": "Nhận dạng", + "HeaderRemoveIdentification": "Xóa nhận dạng", + "ResetMetadataConfirmation": "Bạn có chắc chắn muốn thiết lập lại toàn bộ siêu dữ liệu không?", + "HeaderEditMetadata": "Chỉnh sửa siêu dữ liệu", + "Convert": "Chuyển đổi", + "Resume": "Tiếp tục xem", + "HeaderInstantMix": "Trộn nhanh", + "HeaderGoToItem": "Đi đến mục", + "HeaderGoToSeason": "Đi đến Mùa", + "HeaderGoToSeries": "Đi đến loạt phim", + "HeaderGoToAlbum": "Đi đến Album", + "HeaderGoToArtist": "Đi đến Nghệ sĩ", + "HeaderPlayAll": "Phát tất cả", + "PictureInPicture": "Hình ảnh trong hình ảnh", + "Fullscreen": "Toàn màn hình", + "ExitFullscreen": "Thoát toàn màn hình", + "Rewind": "Quay lại", + "FastForward": "Chuyển tiếp nhanh", + "Remove": "Loại bỏ", + "Rename": "Đổi tên", + "Queue": "Hàng đợi", + "QueueAllFromHere": "Thêm vào vị trí hiện tại", + "PlayAllFromHere": "Phát tất cả từ đây", + "PlayFromBeginning": "Phát từ đầu", + "FromBeginning": "Xem lại từ đầu", + "ResumeAt": "Tiếp tục từ {0}", + "HeaderRemoveFromPlaylist": "Xóa khỏi danh sách phát", + "HeaderRemoveFromPlayQueue": "Xóa khỏi hàng đợi phát", + "HeaderRemoveFromCollection": "Xóa khỏi Bộ sưu tập", + "Sort": "Loại", + "Trailer": "Đoạn giới thiệu", + "SelectNone": "Chọn Không", + "SelectAll": "Chọn tất cả", + "HeaderMarkPlayed": "Đánh dấu đã phát", + "HeaderMarkUnplayed": "Đánh dấu chưa phát", + "HeaderGroupVersions": "Phiên bản nhóm", + "PleaseSelectTwoItems": "Vui lòng chọn ít nhất hai mục.", + "HeaderConfirmRecordingCancellation": "Xác nhận hủy ghi âm", + "MessageConfirmRecordingCancellation": "Hủy ghi âm?", + "Album": "Album", + "AlbumArtist": "Album nghệ sĩ", + "Error": "Lỗi", + "VoiceInput": "Nhập liệu bằng giọng nói", + "LabelContentType": "Loại nội dung", + "LabelPath": "Đường", + "Playlists": "Danh sách phát", + "LabelTitle": "Tiêu đề", + "LabelOriginalTitle": "Tiêu đề gốc", + "LabelSortTitle": "Sắp xếp tiêu đề", + "LabelDateAdded": "Ngày thêm", + "DateAdded": "Ngày thêm", + "DateModified": "Ngày sửa đổi", + "DatePlayed": "Ngày phát", + "DateLastActive": "Ngày hoạt động cuối cùng", + "ConfigureDateAdded": "Cấu hình cách xác định ngày thêm vào trong bảng điều khiển Emby Server trong phần Cài đặt thư viện", + "LabelStatus": "Trạng thái", + "LabelArtistsHelp": "Phân tách nhiều bằng cách sử dụng ;", + "HeaderAlbumArtists": "Nghệ sĩ Album", + "LabelAlbumArtists": "Nghệ sĩ album", + "LabelAlbum": "Album", + "Artist": "Nghệ sĩ", + "Artists": "Nghệ sĩ", + "ImdbRating": "Xếp hạng IMDb", + "CommunityRating": "Đánh giá cộng đồng", + "LabelCommunityRating": "Đánh giá cộng đồng", + "LabelCriticRating": "Đánh giá của nhà phê bình", + "CriticRating": "Đánh giá của nhà phê bình", + "LabelWebsite": "Trang web", + "Tagline": "Khẩu hiệu", + "LabelOverview": "Tổng quan", + "LabelShortOverview": "Tổng quan ngắn gọn", + "LabelReleaseDate": "Ngày phát hành", + "LabelPlaceOfBirth": "Nơi sinh", + "Aired": "Đã phát sóng", + "LabelAirDays": "Ngày phát sóng", + "LabelAirTime": "Giờ phát sóng", + "LabelRuntimeMinutes": "Thời gian chạy (phút)", + "LabelCustomRating": "Xếp hạng tùy chỉnh", + "LabelOriginalAspectRatio": "Tỷ lệ khung hình gốc", + "Label3DFormat": "Định dạng 3D", + "FormatValue": "Định dạng: {0}", + "DownloadsValue": "{0} Tải xuống", + "HashMatch": "Khớp băm", + "EnableExternalVideoPlayers": "Bật trình phát video bên ngoài", + "EnableExternalVideoPlayersHelp": "Menu trình phát bên ngoài sẽ hiển thị khi bắt đầu phát video.", + "HeaderSpecialEpisodeInfo": "Thông tin tập đặc biệt", + "LabelAirsDuringSeason": "Phát sóng trong mùa", + "LabelAirsAfterSeason": "Phát sóng sau mùa", + "LabelAirsBeforeEpisode": "Phát sóng trước tập phim", + "HeaderExternalIds": "ID bên ngoài", + "HeaderDisplaySettings": "Cài đặt hiển thị", + "PlaylistOrder": "Thứ tự danh sách phát", + "CollectionOrder": "Lệnh thu thập", + "LabelDisplayOrder": "Thứ tự hiển thị", + "LabelFileOrder": "Thứ tự tệp", + "Display": "Hiển thị", + "Countries": "Quốc gia", + "Genres": "Thể loại", + "Studios": "Xưởng phim", + "Tags": "Thẻ", + "Links": "Liên kết", + "Movie": "Bộ phim", + "Program": "Chương trình", + "Channel": "Kênh", + "Episode": "Tập phim", + "Season": "Mùa", + "HeaderMetadataSettings": "Cài đặt siêu dữ liệu", + "People": "Mọi người", + "Number": "Số", + "Lock": "Khóa", + "HeaderScreenLocked": "Đã khóa màn hình", + "HeaderUnlockControls": "Mở khóa điều khiển", + "HeaderTapToUnlock": "Nhấn để mở khóa", + "LabelMetadataDownloadLanguage": "Ngôn ngữ tải xuống siêu dữ liệu được ưu tiên", + "LabelImageDownloadLanguage": "Ngôn ngữ tải hình ảnh ưa thích", + "LabelLockItemToPreventChanges": "Khóa mục này để ngăn chặn những thay đổi trong tương lai", + "LockThisField": "Khóa trường này để ngăn chặn những thay đổi trong tương lai khi làm mới siêu dữ liệu", + "MessageLeaveEmptyToInherit": "Để trống để kế thừa cài đặt từ mục cha hoặc giá trị mặc định chung.", + "LabelCountry": "Quốc gia", + "LabelCertificationCountry": "Quốc gia chứng nhận", + "CertificationCountryHelp": "Điều này sẽ ảnh hưởng đến hệ thống xếp hạng nội dung được sử dụng.", + "LabelDynamicExternalId": "{0} Mã số", + "LabelBirthYear": "Năm sinh", + "LabelBirthDate": "Ngày sinh", + "LabelDeathDate": "Ngày mất", + "LabelEndDate": "Ngày kết thúc", + "LabelSeasonNumber": "Số mùa", + "LabelEpisodeNumber": "Số tập", + "LabelTrackNumber": "Số theo dõi", + "LabelNumber": "Số", + "LabelDiscNumber": "Số đĩa", + "LabelParentNumber": "Số phụ huynh", + "SortName": "Sắp xếp tiêu đề", + "OriginalTitle": "Tiêu đề gốc", + "ReleaseDate": "Ngày phát hành", + "Continuing": "Tiếp tục", + "Ended": "Đã kết thúc", + "HeaderEnabledFields": "Các trường được kích hoạt", + "HeaderEnabledFieldsHelp": "Bỏ chọn một trường để khóa trường đó và ngăn dữ liệu trong trường đó bị thay đổi.", + "Backdrops": "Phông nền", + "Images": "Hình ảnh", + "Runtime": "Thời gian chạy", + "ProductionLocations": "Nơi sản xuất", + "BirthLocation": "Nơi sinh", + "ParentalRating": "Đánh giá của phụ huynh", + "PlayCount": "Số lần phát", + "Name": "Tên", + "Overview": "Tổng quan", + "LabelType": "Kiểu", + "LabelPersonRole": "Vai trò", + "LabelPersonRoleHelp": "Ví dụ: Tài xế xe bán kem", + "Actor": "Diễn viên", + "Composers": "Các nhà soạn nhạc", + "Composer": "Nhà soạn nhạc", + "Director": "Đạo diễn", + "GuestStar": "Khách mời", + "Producer": "Nhà sản xuất", + "Writer": "Nhà văn", + "MessageNoSyncJobsFound": "Không tìm thấy mục tải xuống nào. Tạo tác vụ tải xuống bằng các nút Tải xuống có trong ứng dụng.", + "MessageNoDownloadsFound": "Không tải xuống ngoại tuyến. Tải xuống phương tiện của bạn để sử dụng ngoại tuyến bằng cách nhấp vào Tải xuống trong toàn bộ ứng dụng.", + "InstallingPackage": "Đang cài đặt {0}", + "PackageInstallCompleted": "{0} cài đặt đã hoàn tất.", + "PackageInstallFailed": "{0} cài đặt không thành công.", + "PackageInstallCancelled": "{0} cài đặt đã bị hủy.", + "SeriesYearToPresent": "{0} - Hiện tại", + "OneDevice": "1 Thiết bị", + "DeviceCountValue": "{0} Thiết bị", + "OneLog": "1 Nhật ký", + "LogCountValue": "{0} Nhật ký", + "OneVote": "1 phiếu bầu", + "VoteCountValue": "{0} Phiếu bầu", + "OneLike": "1 Thích", + "LikeCountValue": "{0} Thích", + "OneUser": "1 Người dùng", + "UserCountValue": "{0} Người dùng", + "OneLibrary": "1 Thư viện", + "LibraryCountValue": "{0} Thư viện", + "ValueOneItem": "1 mục", + "ValueOneEpisode": "1 tập", + "ValueEpisodeCount": "{0} tập", + "Albums": "Album", + "Song": "Bài hát", + "Songs": "Bài hát", + "Authors": "Tác giả", + "Books": "Sách", + "AudioBooks": "Sách nói", + "HeaderAudioBooks": "Sách nói", + "HeaderAudioBook": "Audio Book", + "HeaderIdentifyItemHelp": "Nhập một hoặc nhiều tiêu chí tìm kiếm. Xóa tiêu chí để tăng kết quả tìm kiếm.", + "PleaseEnterNameOrId": "Vui lòng nhập tên hoặc ID bên ngoài.", + "MessageItemSaved": "Đã lưu mục.", + "SearchResults": "Kết quả tìm kiếm", + "ServerNameIsRestarting": "Máy chủ Emby - {0} đang khởi động lại.", + "ServerNameIsShuttingDown": "Máy chủ Emby - {0} đang ngừng hoạt động.", + "HeaderDeleteItems": "Xóa mục", + "ConfirmDeleteItems": "Xóa những mục này sẽ xóa chúng khỏi cả hệ thống tệp và thư viện phương tiện của bạn.", + "PleaseRestartServerName": "Vui lòng khởi động lại máy chủ Emby trên {0}", + "ConvertingDots": "Đang chuyển đổi...", + "LabelSyncNoTargetsHelp": "Có vẻ như hiện tại bạn không có ứng dụng nào hỗ trợ tải xuống ngoại tuyến.", + "DownloadingDots": "Đang tải xuống...", + "LearnMore": "Tìm hiểu thêm", + "LabelBitrateMbps": "Tốc độ bit (Mbps)", + "ConvertUnwatchedVideosOnly": "Chỉ chuyển đổi video chưa phát", + "SyncUnwatchedVideosOnly": "Chỉ tải xuống video chưa phát", + "ConvertUnwatchedVideosOnlyHelp": "Chỉ những video chưa được đánh dấu là đã phát đầy đủ mới được chuyển đổi.", + "SyncUnwatchedVideosOnlyHelp": "Chỉ những video chưa được đánh dấu là đã phát hoàn toàn mới được tải xuống và video sẽ bị xóa khỏi thiết bị khi đã phát hoàn toàn.", + "AutomaticallySyncNewContent": "Tự động tải xuống nội dung mới", + "AutomaticallySyncNewContentHelp": "Nội dung mới được thêm vào thư mục này sẽ tự động được tải xuống thiết bị.", + "AutomaticallyConvertNewContent": "Tự động chuyển đổi nội dung mới", + "AutomaticallyConvertNewContentHelp": "Nội dung mới được thêm vào thư mục này sẽ được tự động chuyển đổi.", + "LabelItemLimit": "Giới hạn mục", + "ConvertItemLimitHelp": "Tùy chọn. Đặt giới hạn số lượng mục sẽ được chuyển đổi.", + "DownloadItemLimitHelp": "Tùy chọn. Đặt giới hạn số lượng mục sẽ được tải xuống.", + "PleaseSelectDeviceToSyncTo": "Vui lòng chọn thiết bị để tải xuống.", + "Screenshots": "Ảnh chụp màn hình", + "MoveRight": "Dịch sang phải", + "MoveLeft": "Dịch sang trái", + "HeaderUploadNewImage": "Tải ảnh mới lên", + "HeaderDeleteImage": "Xóa ảnh", + "ConfirmDeleteImage": "Xóa hình ảnh?", + "HeaderEditImages": "Chỉnh sửa hình ảnh", + "Settings": "Cài đặt", + "ShowIndicatorsFor": "Hiển thị chỉ số", + "Episodes": "Tập phim", + "Programs": "Chương trình", + "HeaderCastCrew": "Diễn viên & Đoàn phim", + "DvrSubscriptionRequired": "Emby Live TV & DVR yêu cầu phải có {0}đăng ký Emby Premiere{1} đang hoạt động.", + "HeaderCancelRecording": "Hủy ghi âm", + "HeaderKeepRecording": "Tiếp tục ghi âm", + "HeaderCancelSeries": "Hủy bỏ loạt phim", + "HeaderKeepSeries": "Giữ loạt phim", + "HeaderLearnMore": "Tìm hiểu thêm", + "SeriesSettings": "hiết lập chuỗi", + "HeaderRecordingOptions": "Tùy chọn ghi âm", + "HeaderDoNotRecord": "Không ghi lại", + "HeaderSeriesOptions": "Tùy chọn Series", + "Layout": "Cách trình bày", + "Channels": "Kênh", + "ChannelNameOnly": "Chỉ kênh {0}", + "Anytime": "Bất kì lúc nào", + "AnyLanguage": "Bất kỳ ngôn ngữ nào", + "AroundTime": "Khoảng {0}", + "HeaderLatestMovies": "Phim Mới Nhất", + "All": "Tất cả", + "Stop": "Dừng", + "AllChannels": "Tất cả các kênh", + "NewEpisodesOnly": "Chỉ có tập mới", + "AllEpisodes": "Tất cả các tập phim", + "LabelStartWhenPossible": "Bắt đầu khi có thể", + "LabelStopWhenPossible": "Dừng lại khi có thể", + "MinutesBefore": "phút trước", + "MinutesAfter": "phút sau", + "SkipEpisodesAlreadyInMyLibrary": "Không ghi lại các tập phim đã có trong thư viện của tôi", + "SkipEpisodesAlreadyInMyLibraryHelp": "Các tập phim sẽ được so sánh theo mùa và số tập, nếu có.", + "LabelKeepUpTo": "Theo kịp", + "AsManyAsPossible": "Càng nhiều càng tốt", + "DefaultErrorMessage": "Đã xảy ra lỗi khi xử lý yêu cầu. Vui lòng thử lại sau.", + "UntilIDelete": "Cho đến khi tôi xóa", + "UntilSpaceNeeded": "Cho đến khi cần không gian", + "Categories": "Thể loại", + "Sports": "Thể thao", + "News": "Tin tức", + "Movies": "Phim", + "Music": "Âm nhạc", + "Kids": "Trẻ em", + "MoreFromValue": "Thêm từ {0}", + "DiedValue": "Đã chết: {0}", + "BornValue": "Ngày sinh: {0}", + "EnableColorCodedBackgrounds": "Áp dụng nền màu cho các chương trình, dựa trên danh mục của chúng", + "SortChannelsBy": "Sắp xếp các kênh theo", + "ChannelNumber": "Số kênh", + "HeaderBenefitsEmbyPremiere": "Lợi ích của Emby Premiere", + "ThankYouForTryingEnjoyOneMinute": "Xin hãy thưởng thức một phút phát lại. Cảm ơn bạn đã dùng thử Emby.", + "HeaderTryPlayback": "Thử phát lại", + "HowDidYouPay": "Bạn đã thanh toán bằng cách nào?", + "IHaveEmbyPremiere": "Tôi có Emby Premiere", + "IPurchasedThisApp": "Tôi đã mua ứng dụng này", + "ButtonRestorePreviousPurchase": "Khôi phục mua hàng", + "ButtonUnlockWithPurchase": "Mở khóa bằng cách mua hàng", + "ButtonUnlockPrice": "Mở khóa {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere hàng tháng {0}", + "HeaderAlreadyPaid": "Đã thanh toán?", + "ButtonPlayOneMinute": "Phát Một Phút", + "PlaceFavoriteChannelsAtBeginning": "Đặt kênh yêu thích ở đầu", + "HeaderUnlockFeature": "Mở khóa tính năng", + "MessageDidYouKnowCinemaMode": "Bạn có biết rằng với Emby Premiere, bạn có thể nâng cao trải nghiệm của mình bằng các tính năng như Cinema Intros không?", + "HeaderPlayMyMedia": "Phát phương tiện của tôi", + "HeaderDiscoverEmbyPremiere": "Khám phá Emby Premiere", + "HeaderNowPlaying": "Đang phát", + "Items": "Các mục", + "AppName": "Tên ứng dụng", + "OneChannel": "Một kênh", + "ConfirmRemoveDownload": "Xóa phần tải xuống?", + "ConfirmRemoveItem": "Xóa mục?", + "RemoveDownload": "Xóa Tải xuống", + "ConfirmCancelConversion": "Hủy chuyển đổi?", + "CancelConversion": "Hủy chuyển đổi", + "KeepDownload": "Tiếp tục tải xuống", + "AddedOnValue": "Đã thêm {0}", + "RemovingFromDevice": "Xóa khỏi thiết bị", + "KeepOnDevice": "Giữ trên thiết bị", + "CancelDownload": "Hủy tải xuống", + "SyncJobItemStatusReadyToTransfer": "Sẵn sàng để chuyển", + "SyncJobItemStatusSyncedMarkForRemoval": "Xóa khỏi thiết bị", + "SyncJobItemStatusQueued": "Đã thêm vào hàng đợi", + "SyncJobItemStatusConverting": "Chuyển đổi", + "SyncJobItemStatusTransferring": "Chuyển giao", + "SyncJobItemStatusSynced": "Đã tải xuống", + "Failed": "Thất bại", + "SyncJobItemStatusRemovedFromDevice": "Đã xóa khỏi thiết bị", + "Cancelled": "Đã hủy", + "Retry": "Thử lại", + "Continue": "Tiếp tục", + "ContinueInSecondsValue": "Tiếp tục sau {0} giây.", + "HeaderRemoteControl": "Điều khiển từ xa", + "Disconnect": "Ngắt kết nối", + "EnableDisplayMirroring": "Bật tính năng phản chiếu màn hình", + "RemoteAccess": "Truy cập từ xa", + "HeaderPlayOn": "Phát trên", + "Quality": "Chất lượng", + "Auto": "Tự động", + "AndroidUnlockRestoreHelp": "Để khôi phục giao dịch mua trước đó, vui lòng đảm bảo bạn đã đăng nhập vào thiết bị bằng cùng tài khoản Google (hoặc Amazon) đã thực hiện giao dịch mua ban đầu. Đảm bảo cửa hàng ứng dụng được bật và không bị hạn chế bởi bất kỳ quyền kiểm soát của phụ huynh nào và đảm bảo bạn có kết nối internet đang hoạt động. Bạn chỉ cần thực hiện thao tác này một lần để khôi phục giao dịch mua trước đó.", + "HeaderAspectRatio": "Tỷ lệ khung hình", + "Original": "Nguyên bản", + "Fill": "Lấp đầy", + "Cover": "Che phủ", + "MessageNoServersAvailableToConnect": "Không có máy chủ nào có thể kết nối. Nếu bạn được mời chia sẻ máy chủ, hãy đảm bảo chấp nhận bên dưới hoặc bằng cách nhấp vào liên kết trong email.", + "MessagePlayAccessRestricted": "Việc phát lại nội dung này hiện đang bị hạn chế. Vui lòng liên hệ với quản trị viên Emby Server của bạn để biết thêm thông tin.", + "Accept": "Chấp nhận", + "Reject": "Từ chối", + "Connect": "Kết nối", + "HeaderMyMedia": "Media của tôi", + "HeaderMyMediaSmall": "Media của tôi (nhỏ)", + "LatestFromLibrary": "Mới nhất từ {0}", + "HeaderLatestEpisodes": "Tập mới nhất", + "ContinuePlaying": "Tiếp tục phát", + "ContinueWatching": "Tiếp tục xem", + "HeaderLatestChannelMedia": "Các mục kênh mới nhất", + "HeaderContinueWatching": "Tiếp tục xem", + "HeaderContinueListening": "Tiếp tục nghe", + "HeaderActiveRecordings": "Bản ghi hoạt động", + "HeaderLatestRecordings": "Bản ghi âm mới nhất", + "LabelConvertTo": "Chuyển đổi sang", + "LabelDownloadTo": "Tải xuống", + "HeaderDownloadToDots": "Tải xuống...", + "Next": "Kế tiếp", + "LabelSource": "Nguồn", + "VersionNumber": "Phiên bản {0}", + "HeaderAllLanguages": "Tất cả các ngôn ngữ", + "Previous": "Trước", + "HeaderNextUp": "Tiếp theo", + "HeaderPlayNextUp": "Chơi tiếp theo", + "HeaderLatestFrom": "Mới nhất từ ​​{0}", + "LabelHomeScreenSectionValue": "Phần màn hình chính {0}", + "PasswordResetComplete": "Mật khẩu đã được đặt lại.", + "PasswordSaved": "Đã lưu mật khẩu.", + "SettingsSaved": "Đã lưu cài đặt.", + "Upcoming": "Sắp tới", + "HeaderSelectImageFile": "Chọn hình ảnh", + "None": "Không có", + "More": "Hơn", + "Up": "Hướng lên", + "Down": "Xuống", + "Home": "Trang chủ", + "Back": "Quay lại", + "Random": "Ngẫu nhiên", + "Playback": "Phát", + "Favorites": "Yêu thích", + "HeaderHomeScreen": "Màn hình chính", + "HeaderLatestChannelItems": "Các mục kênh mới nhất", + "HeaderLibraryOrder": "Thư viện đặt hàng", + "HeaderOnNow": "Hiện tại", + "HeaderForKids": "Dành cho trẻ em", + "HeaderPlaybackError": "Lỗi phát", + "PlaybackErrorNotAllowed": "Hiện tại bạn không được phép phát nội dung này. Vui lòng liên hệ với quản trị viên hệ thống của bạn để biết chi tiết.", + "RateLimitExceeded": "Tài khoản của bạn đã vượt quá giới hạn phát trực tuyến tối đa do quản trị viên Emby Server của bạn đặt ra. Vui lòng liên hệ với họ để được hỗ trợ.", + "PlaybackErrorNoCompatibleStream": "Hiện không có luồng tương thích nào khả dụng. Vui lòng thử lại sau hoặc liên hệ với quản trị viên hệ thống của bạn để biết chi tiết.", + "PlaybackErrorPlaceHolder": "Vui lòng cho đĩa vào để phát video này.", + "PlaybackErrorNoPlayableItems": "Không tìm thấy mục nào có thể phát được. Bạn đang cố gắng phát một thư mục trống phải không?", + "Guide": "Hướng dẫn", + "Games": "Trò chơi", + "GameSystem": "Hệ thống trò chơi", + "Suggestions": "Gợi ý", + "HeaderFavoriteChannels": "Kênh yêu thích", + "HeaderFavoriteCollections": "Bộ sưu tập yêu thích", + "HeaderFavoritePlaylists": "Danh sách phát yêu thích", + "Collection": "Bộ sưu tập", + "Collections": "Bộ sưu tập", + "LabelSelectFolderGroups": "Tự động nhóm nội dung từ các thư mục sau vào các chế độ xem như Phim, Nhạc và TV:", + "LabelSelectFolderGroupsHelp": "Các thư mục không được chọn sẽ được hiển thị riêng theo chế độ xem của chúng.", + "Mute": "Tắt tiếng", + "Unmute": "Bỏ tắt tiếng", + "Folder": "Thư mục", + "Folders": "Thư mục", + "FileName": "Tên tập tin", + "DisplayInOtherHomeScreenSections": "Hiển thị ở các phần màn hình chính phụ như phương tiện truyền thông mới nhất và tiếp tục xem", + "DisplayInMyMedia": "Hiển thị trên màn hình chính", + "Shows": "Hiển thị", + "MoviesAndShows": "Phim & Chương trình", + "HeaderMusicVideo": "Video ca nhạc", + "HeaderMusicVideos": "Video ca nhạc", + "MusicVideos": "Video âm nhạc", + "Videos": "Video", + "MixedContent": "Nội dung hỗn hợp", + "HomeVideos": "Video gia đình", + "HomeVideosAndPhotos": "Video và ảnh gia đình", + "TVShows": "Chương trình truyền hình", + "HeaderLibraryFolders": "Thư mục thư viện", + "HeaderTermsOfPurchase": "Điều khoản mua hàng", + "PrivacyPolicy": "Chính sách bảo mật", + "TermsOfUse": "Điều khoản sử dụng", + "HeaderRepeatMode": "Chế độ lặp lại", + "HeaderToneMapping": "Ánh xạ tông màu", + "RepeatOne": "Lặp một lần", + "RepeatAll": "Lặp tất cả", + "LabelDefaultScreen": "Màn hình mặc định", + "ConfirmEndPlayerSession": "Bạn có muốn tắt Emby trên {0} không ?", + "Yesterday": "Hôm qua", + "Yes": "Đồng ý", + "No": "Không", + "HeaderScanLibraryFiles": "Quét tập tin thư viện", + "LiveTV": "Truyền hình trực tiếp", + "Schedule": "Lịch trình", + "Recordings": "Ghi âm", + "ScanForNewAndUpdatedFiles": "Quét các tập tin mới và cập nhật", + "NewVersionOfXAvailableForY": "{0} có sẵn cho {1}", + "DirectStreamHelp1": "Phương tiện tương thích với thiết bị về độ phân giải và loại phương tiện (H.264, AC3, v.v.), nhưng lại nằm trong vùng chứa tệp không tương thích (.mkv, .avi, .wmv, v.v.). Video sẽ được đóng gói lại ngay lập tức trước khi truyền trực tuyến đến thiết bị.", + "DirectStreamHelp2": "Truyền trực tiếp một tập tin sử dụng rất ít năng lượng xử lý mà không làm giảm chất lượng video.", + "MediaIsBeingConverted": "Media đang được chuyển đổi sang định dạng tương thích với thiết bị đang phát media đó.", + "StatsForNerds": "Thông số kỹ thuật", + "HeaderHardwareAcceleratedDecoding": "Giải mã tăng tốc phần cứng", + "HeaderHardwareAcceleratedEncoding": "Mã hóa tăng tốc phần cứng", + "HeaderDirectPlay": "Phát trực tiếp", + "DirectPlaying": "Phát trực tiếp", + "DirectStreaming": "Phát trực tiếp", + "Transcode": "Chuyển mã", + "Transcoding": "Chuyển mã", + "ContainerBitrateExceedsLimit": "Giảm tốc độ bit do cài đặt chất lượng", + "VideoCodecNotSupported": "Chuyển đổi video sang codec tương thích", + "AudioCodecNotSupported": "Chuyển đổi âm thanh sang codec tương thích", + "SubtitleCodecNotSupported": "Chuyển đổi phụ đề trực tiếp vào video", + "DirectPlayError": "Phục hồi từ lỗi phát lại", + "ContainerNotSupported": "Chuyển đổi sang container tương thích", + "VideoLevelNotSupported": "Chuyển đổi sang mức video tương thích", + "AudioBitrateNotSupported": "Chuyển đổi sang tốc độ bit âm thanh tương thích", + "AudioChannelsNotSupported": "Chuyển đổi sang số kênh âm thanh tương thích", + "VideoResolutionNotSupported": "Chuyển đổi sang độ phân giải video tương thích", + "AudioProfileNotSupported": "Chuyển đổi sang cấu hình âm thanh tương thích", + "AudioSampleRateNotSupported": "Chuyển đổi sang tốc độ mẫu âm thanh tương thích", + "AnamorphicVideoNotSupported": "Video Anamorphic không được hỗ trợ", + "InterlacedVideoNotSupported": "Video khử xen kẽ", + "SecondaryAudioNotSupported": "Chọn bản âm thanh thứ cấp", + "ExternalAudioNotSupported": "Selecting external audio track", + "ErrorRemovingEmbyConnectAccount": "Đã xảy ra lỗi khi xóa tài khoản Emby Connect. Vui lòng đảm bảo bạn có kết nối internet đang hoạt động và thử lại.", + "HeaderEmbyAccountRemoved": "Tài khoản Emby đã bị xóa", + "MessageEmbyAccontRemoved": "Tài khoản Emby đã bị xóa khỏi người dùng này.", + "HeaderInvitationSent": "Đã gửi lời mời", + "Offline": "Ngoại tuyến", + "HeaderSignUp": "Đăng ký", + "ServerDownloadMessage": "Để tải xuống và cài đặt Emby Server miễn phí hãy truy cập {0}", + "ServerDownloadMessageWithoutLink": "Để tải xuống và cài đặt Emby Server miễn phí, hãy truy cập trang web Emby.", + "MessageInvitationSentToUser": "Một email đã được gửi đến {0} , mời họ chấp nhận lời mời chia sẻ của bạn.", + "MessageInvitationSentToNewUser": "Một email đã được gửi tới {0} để mời họ đăng ký với Emby.", + "GuestUserNotFound": "Không tìm thấy người dùng. Vui lòng đảm bảo tên chính xác và thử lại hoặc thử nhập địa chỉ email của họ.", + "ErrorReachingEmbyConnect": "Đã xảy ra lỗi khi truy cập máy chủ Emby Connect. Vui lòng đảm bảo bạn có kết nối internet đang hoạt động và thử lại.", + "ErrorAddingEmbyConnectAccount1": "Đã xảy ra lỗi khi thêm tài khoản Emby Connect. Bạn đã tạo tài khoản Emby chưa? Đăng ký tại {0} .", + "ErrorAddingEmbyConnectAccount2": "Nếu bạn vẫn gặp sự cố, vui lòng gửi email đến {0} từ địa chỉ email được sử dụng với tài khoản Emby.", + "ErrorAddingGuestAccount1": "Đã xảy ra lỗi khi thêm tài khoản Emby Connect. Khách của bạn đã tạo tài khoản Emby chưa? Họ có thể đăng ký tại {0} .", + "ErrorAddingGuestAccount2": "Nếu bạn vẫn gặp sự cố, vui lòng gửi email đến {0} và ghi rõ địa chỉ email của bạn cũng như của họ.", + "MessageEmbyAccountAdded": "Tài khoản Emby đã được thêm vào người dùng này.", + "MessagePendingEmbyAccountAdded": "Tài khoản Emby đã được thêm vào người dùng này. Một email sẽ được gửi đến chủ sở hữu tài khoản. Lời mời sẽ cần được xác nhận bằng cách nhấp vào liên kết trong email.", + "HeaderEmbyAccountAdded": "Tài khoản Emby đã được thêm vào", + "Skip": "Bỏ qua", + "HeaderAdditionalParts": "Các phần bổ sung", + "ButtonGenerateNewPin": "Tạo mã pin mới", + "ConnectLoginHelp1": "Với Emby Connect, bạn có thể dễ dàng truy cập Máy chủ Emby của mình mọi lúc mọi nơi và chia sẻ máy chủ với gia đình và bạn bè.", + "CreatePinErrorMessage": "Đã xảy ra lỗi khi tạo mã pin. Vui lòng nhấp vào Tạo mã pin mới để thử lại.", + "PinExpiredMessage": "Mã pin đã hết hạn. Vui lòng nhấp vào Tạo mã pin mới để thử lại.", + "ConnectPinCodeHeader": "Để đăng nhập bằng Emby Connect, hãy sử dụng thiết bị di động hoặc máy tính để truy cập {0} và nhập mã pin sau:", + "LabelSubtitlePlaybackMode": "Chế độ phụ đề", + "ErrorDeletingItem": "Đã xảy ra lỗi khi xóa mục khỏi Emby Server. Vui lòng kiểm tra xem Emby Server có quyền ghi vào thư mục phương tiện hay không và thử lại.", + "NoSubtitles": "Không có phụ đề", + "Default": "Mặc định", + "Absolute": "Tuyệt đối", + "Smart": "Thông minh", + "Small": "Bé nhỏ", + "Smaller": "Nhỏ hơn", + "Medium": "Trung bình", + "Large": "Lớn", + "Larger": "Lớn hơn", + "ExtraLarge": "Cực lớn", + "ExtraSmall": "Cực nhỏ", + "Forced": "Bắt buộc", + "External": "Bên ngoài", + "HeaderEmbeddedTitle": "Tiêu đề nhúng", + "OnlyForcedSubtitles": "Chỉ phụ đề bắt buộc", + "AlwaysPlaySubtitles": "Luôn luôn phát phụ đề", + "DefaultSubtitlesHelp": "Phụ đề được tải dựa trên các cờ mặc định và bắt buộc trong siêu dữ liệu nhúng. Tùy chọn ngôn ngữ được xem xét khi có nhiều tùy chọn.", + "SmartSubtitlesHelp": "Phụ đề phù hợp với ngôn ngữ bạn chọn sẽ được tải khi âm thanh bằng ngôn ngữ nước ngoài.", + "HeaderSubtitleSettings": "Cài đặt phụ đề", + "HeaderSubtitleAppearance": "Xuất hiện phụ đề", + "OnlyForcedSubtitlesHelp": "Chỉ những phụ đề được đánh dấu là bắt buộc mới được tải.", + "AutoSelectHearingImpairedHelp": "Phụ đề phù hợp với ngôn ngữ bạn chọn sẽ được tải, ưu tiên các bản nhạc được đánh dấu là dành cho người khiếm thính (SDH).", + "AlwaysPlaySubtitlesHelp": "Phụ đề phù hợp với ngôn ngữ bạn chọn sẽ được tải bất kể ngôn ngữ âm thanh.", + "NoSubtitlesHelp": "Phụ đề sẽ không được tải theo mặc định. Chúng vẫn có thể được bật thủ công trong khi phát lại.", + "LabelPreferredSubtitleLanguage": "Ngôn ngữ phụ đề ưa thích", + "LabelTextSize": "Kích thước văn bản", + "TheseSettingsAffectSubtitlesOnThisDevice": "Những thiết lập này ảnh hưởng đến phụ đề trên thiết bị này", + "LabelDropShadow": "Bóng đổ", + "LabelTextBackgroundColor": "Màu nền chữ", + "LabelWindowBackgroundColor": "Màu nền chữ", + "LabelFont": "Phông chữ", + "LabelTextColor": "Màu chữ", + "LabelBackgroundColor": "Màu nền", + "LabelBackgroundOpacity": "Độ mờ nền", + "Raised": "Nâng lên", + "Depressed": "Trầm cảm", + "Uniform": "Đồng nhất", + "DropShadow": "Bóng đổ", + "SmallCaps": "Chữ hoa nhỏ", + "SubtitleAppearanceSettingsDisclaimer": "Những cài đặt này sẽ không áp dụng cho phụ đề đồ họa (PGS, DVD, v.v.) hoặc phụ đề có nhúng kiểu riêng (ASS/SSA).", + "Normal": "Bình thường", + "HeaderWaitingForWifi": "Đang chờ Wifi", + "WifiRequiredToDownload": "Cần có kết nối Wifi để tiếp tục tải xuống.", + "DownloadOnlyOnWifi": "Chỉ tải xuống trên Wifi", + "LabelMusicDownloadQuality": "Chất lượng tải nhạc", + "MusicDownloadQualityHelp": "Các tệp âm thanh có bitrate cao hơn sẽ được chuyển đổi bởi Emby Server. Chọn giá trị cao hơn để có chất lượng tốt hơn hoặc giá trị thấp hơn để tiết kiệm dung lượng lưu trữ cục bộ.", + "HeaderDownloadSettings": "Tải xuống Cài đặt", + "LabelDownloadLocation": "Tải xuống vị trí", + "BrowseForFolder": "Duyệt thư mục", + "Unlimited": "Không giới hạn", + "NoLimit": "No limit", + "Hide": "Ẩn", + "HeaderKeepWatching": "Tiếp tục theo dõi", + "HeaderNextEpisode": "Tập tiếp theo", + "AudioBitDepthNotSupported": "Chuyển đổi sang độ sâu bit âm thanh tương thích", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "Chuyển đổi sang cấu hình video tương thích", + "VideoFramerateNotSupported": "Chuyển đổi sang tốc độ khung hình video tương thích", + "VideoBitDepthNotSupported": "Chuyển đổi sang độ sâu bit video tương thích", + "RefFramesNotSupported": "Chuyển đổi sang số lượng khung tham chiếu video tương thích", + "ErrorConnectServerUnreachable": "Đã xảy ra lỗi khi thực hiện thao tác được yêu cầu. Máy chủ của bạn không thể liên lạc với Máy chủ Emby Connect của chúng tôi tại {0} . Vui lòng đảm bảo máy chủ của bạn có kết nối internet đang hoạt động và các thông tin liên lạc được cho phép bởi bất kỳ tường lửa hoặc phần mềm bảo mật nào mà bạn đã cài đặt.", + "HeaderStopRecording": "Dừng ghi âm", + "ManageRecording": "Quản lý ghi âm", + "LabelDropImageHere": "Kéo và thả hình ảnh vào đây hoặc nhấp để chọn hình ảnh để tải lên.", + "MessageFileReadError": "Đã xảy ra lỗi khi đọc tệp. Vui lòng thử lại.", + "Browse": "Duyệt", + "HeaderUploadImage": "Tải lên hình ảnh", + "HeaderAddUpdateImage": "Thêm/Cập nhật hình ảnh", + "HeaderShowFields": "Hiển thị các trường", + "LabelView": "Xem", + "LabelImageType": "Loại hình ảnh", + "Upload": "Tải lên", + "Primary": "Chính", + "PrimaryImageBlur": "Làm mờ hình ảnh chính", + "Art": "Nghệ thuật", + "Backdrop": "Phông nền", + "Banner": "Ảnh bìa", + "Box": "Hộp", + "BoxRear": "Hộp (Phía sau)", + "Disc": "Đĩa", + "Logo": "Logo", + "LogoDark": "Logo (Phiên bản tối)", + "LogoLight": "Logo (Phiên bản sáng)", + "LogoLightColor": "Logo (Ánh sáng với màu sắc)", + "Menu": "Menu", + "Screenshot": "Ảnh chụp màn hình", + "Thumb": "Ảnh thu nhỏ", + "HeaderAudioSettings": "Cài đặt âm thanh", + "LabelAudioLanguagePreference": "Ngôn ngữ âm thanh ưa thích", + "LabelPlayDefaultAudioTrack": "Phát bản nhạc mặc định bất kể ngôn ngữ nào", + "HeaderVideoQuality": "Chất lượng video", + "CinemaModeConfigurationHelp": "Cinema Intros mang trải nghiệm xem phim tại rạp đến thẳng phòng khách của bạn với khả năng phát đoạn giới thiệu và phần giới thiệu tùy chỉnh trước khi chiếu phim chính.", + "ShowUpNextPreview": "Hiển thị bản xem trước tiếp theo", + "ShowUpNextPreviewHelp": "Hiển thị thông tin cho mục tiếp theo gần cuối mục hiện tại.", + "PlayNextEpisodeAutomatically": "Tự động phát tập tiếp theo", + "LabelMaxChromecastBitrate": "Chất lượng phát trực tuyến Chromecast", + "LabelSkipBackLength": "Bỏ qua khi quay lại", + "LabelSkipForwardLength": "Bỏ qua phía trước", + "EnableCinemaMode": "Bật Cinema Intros", + "LabelInternetQuality": "Chất lượng phát trực tuyến từ xa", + "LabelCellularQuality": "Chất lượng phát trực tuyến từ xa (di động)", + "HeaderMusicQuality": "Chất lượng âm nhạc", + "LabelHomeNetworkQuality": "Chất lượng phát trực tuyến tại nhà", + "HeaderLatestMedia": "Media mới nhất", + "HeaderRestartingEmbyServer": "Khởi động lại máy chủ Emby", + "RestartPleaseWaitMessage": "Vui lòng đợi trong khi Emby Server tắt và khởi động lại. Quá trình này có thể mất một hoặc hai phút.", + "HeaderPlayNext": "Phát tiếp theo", + "AutoBasedOnLanguageSetting": "Tự động (dựa trên cài đặt của thiết bị)", + "SameAsMainTheme": "Giống như chủ đề chính", + "LabelDateTimeLocale": "Ngày giờ địa phương", + "Genre": "Thể loại", + "DirectorValue": "Đạo diễn: {0}", + "DirectorsValue": "Đạo diễn: {0}", + "GenreValue": "Thể loại: {0}", + "GenresValue": "Thể loại: {0}", + "TagsValue": "Thẻ: {0}", + "Off": "Tắt", + "Title": "Tiêu đề", + "Year": "Năm", + "Filter": "Lọc", + "Filters": "Bộ lọc", + "Unplayed": "Chưa phát", + "LabelTVHomeScreen": "Màn hình chính chế độ TV", + "Horizontal": "Ngang", + "Vertical": "Dọc", + "HeaderGroupBy": "Nhóm theo", + "HeaderMediaType": "Loại Media", + "GroupBySeries": "Nhóm theo chuỗi", + "HeaderVideoType": "Loại video", + "HeaderSeriesStatus": "Trạng thái của loạt phim", + "Features": "Tính năng", + "Trailers": "Đoạn giới thiệu", + "Extras": "Thêm vào", + "ThemeSongs": "Bài hát chủ đề", + "ThemeVideos": "Video chủ đề", + "HeaderFavoriteMovies": "Phim yêu thích", + "HeaderFavoritePhotos": "Ảnh yêu thích", + "HeaderFavoriteShows": "Chương trình yêu thích", + "HeaderFavoriteEpisodes": "Tập phim yêu thích", + "HeaderFavoriteVideos": "Video yêu thích", + "HeaderFavoriteMusicVideos": "Video âm nhạc yêu thích", + "HeaderFavoriteGames": "Trò chơi yêu thích", + "HeaderFavoriteArtists": "Nghệ sĩ yêu thích", + "HeaderFavoriteAlbums": "Album yêu thích", + "HeaderFavoriteSongs": "Bài hát yêu thích", + "HeaderFavoriteAuthors": "Tác giả yêu thích", + "HeaderFavoriteAudioBooks": "Sách nói yêu thích", + "Ascending": "Đang tăng dần", + "Descending": "Giảm dần", + "HeaderColorPrimaries": "Màu cơ bản", + "HeaderColorSpace": "Không gian màu", + "HeaderColorTransfer": "Chuyển màu", + "HeaderVideoRange": "Không gian màu", + "SeriesDisplayOrderHelp": "Sắp xếp các tập phim theo ngày phát sóng, thứ tự DVD hoặc số lượng tuyệt đối.", + "LabelVerticalPositionFromBottom": "Vị trí dọc (từ dưới lên)", + "HeaderFavoritePeople": "Những người yêu thích", + "MultiSelect": "Chọn nhiều", + "HeaderSignOut": "Đăng xuất", + "HeaderSelectServer": "Chọn máy chủ", + "HeaderChangeServer": "Thay đổi máy chủ", + "HeaderChangeUser": "Thay đổi người dùng", + "HeaderAppSettings": "Cài đặt ứng dụng", + "HeaderLoginSettings": "Cài đặt đăng nhập", + "LabelRememberLogin": "Nhớ đăng nhập", + "LabelAutomaticallySignOut": "Tự động đăng xuất", + "BetaTesterMessage": "Cảm ơn bạn đã trở thành người thử nghiệm beta của Emby! Vui lòng để lại phản hồi trong {0} Khu vực thử nghiệm của Cộng đồng Emby {1} .", + "HardwareAccelerated": "Tăng tốc phần cứng", + "Software": "Phần mềm", + "Metadata": "Siêu dữ liệu", + "HeaderMediaInfo": "Thông tin media", + "Locked": "Đã khóa", + "HeaderSplitVersionsApart": "Các phiên bản tách biệt", + "Any": "Bất kì", + "Admin": "Quản trị viên", + "HeaderReadMore": "Đọc thêm", + "CustomRatingHelp": "Xếp hạng tùy chỉnh được sử dụng để đánh giá kiểm soát của phụ huynh nhưng không được hiển thị. Trường xếp hạng của phụ huynh vẫn được hiển thị.", + "KeepUpToHelp": "Các bản ghi vượt quá giới hạn sẽ bị xóa khi bản ghi tiếp theo bắt đầu. Các bản ghi cũ nhất sẽ bị xóa trước, theo ngày thêm vào.", + "NoItemsMatchingFound": "Không tìm thấy mục nào phù hợp với tiêu chí tìm kiếm của bạn.", + "TwoSearchCharsRequired": "Vui lòng nhập ít nhất hai ký tự tìm kiếm.", + "PreventPlaybackContinuing": "Ngăn chặn việc phát lại liên tục vô thời hạn bằng cách nhắc nhở người dùng nhập dữ liệu định kỳ.", + "PromptStillWatching": "Bật lời nhắc 'Bạn vẫn đang xem chứ?'", + "HeaderMissingMetadata": "Thiếu siêu dữ liệu", + "HeaderIncludedIn": "Bao gồm trong", + "EmbyConnectUserAlreadyLinked": "Người dùng Emby Connect đã được liên kết với người dùng khác trên máy chủ này.", + "VideoFilesWillBeConvertedTo": "Video đã chuyển đổi sẽ được lưu dưới dạng {0} .", + "VideoWillBeConvertedTo": "Luồng video sẽ được chuyển đổi thành {0} hoặc được sao chép từ tệp gốc nếu chúng đã là {0} và chất lượng phù hợp với các tùy chọn chuyển đổi.", + "VideoWillBeConvertedToOrCopied": "Luồng video sẽ được chuyển đổi thành {0} hoặc được sao chép từ tệp gốc nếu chúng là bất kỳ tệp nào trong số ( {1} ) và chất lượng phù hợp với các tùy chọn chuyển đổi.", + "AudioWillBeConvertedTo": "Luồng âm thanh sẽ được chuyển đổi thành {0} hoặc được sao chép từ tệp gốc nếu chúng đã là {0} và chất lượng phù hợp với các tùy chọn chuyển đổi.", + "AudioWillBeConvertedToOrCopied": "Luồng âm thanh sẽ được chuyển đổi thành {0} hoặc được sao chép từ tệp gốc nếu chúng là bất kỳ tệp nào trong số ( {1} ) và chất lượng phù hợp với các tùy chọn chuyển đổi.", + "HeaderSpecialKeys": "Các phím đặc biệt", + "FollowingSpecialKeys": "Các phím đặc biệt sau đây được hỗ trợ trên hầu hết các bàn phím và điều khiển từ xa:", + "HeaderDeleteSeries": "Xóa loạt phim", + "HeaderDeleteLastPlayedEpisode": "Xóa tập đã phát gần đây nhất", + "HeaderConnectingToServer": "Kết nối tới máy chủ", + "ServerNameValue": "Tên máy chủ: {0}", + "DomainValue": "Tên miền: {0}", + "RatedValue": "Đánh giá {0}", + "LocalServerRedirectMessage": "Bây giờ bạn sẽ được chuyển hướng đến miền do quản trị viên của máy chủ mà bạn chọn kết nối sở hữu và vận hành:", + "AllMediaOwnedHosted": "Mọi media đều được lưu trữ và quản lý bởi chủ sở hữu của {0} .", + "EnableResolutionSwitching": "Độ phân giải video phù hợp", + "EnableResolutionSwitchingHelp": "Điều này cho phép Emby thay đổi độ phân giải thành cùng giá trị mà video được mã hóa trước khi bắt đầu phát lại. Điều này có thể giúp giảm thiểu lượng giật/rung mà bạn có thể thấy khi phát các video không khớp tốt.", + "EnableDisplayRefreshRateSwitching": "Bật chuyển đổi tốc độ làm mới màn hình", + "EnableDisplayRefreshRateSwitchingHelp": "Điều này cho phép Emby thay đổi tốc độ làm mới màn hình thành cùng một giá trị (hoặc bội số của) tốc độ khung hình mà video được mã hóa trước khi bắt đầu phát lại. Điều này có thể giúp giảm thiểu lượng giật/rung mà bạn có thể thấy khi phát các video không khớp tốt.", + "RememberSelectedAudioTracks": "Điều này cho phép Emby thay đổi tốc độ làm mới màn hình thành cùng một giá trị (hoặc bội số của) tốc độ khung hình mà video được mã hóa trước khi bắt đầu phát lại. Điều này có thể giúp giảm thiểu lượng giật/rung mà bạn có thể thấy khi phát các video không khớp tốt.", + "RememberSelectedSubtitleTracks": "Ghi nhớ lựa chọn phụ đề", + "RememberSelectedSubtitleTracksHelp": "Các lựa chọn phụ đề sẽ được ghi nhớ trên từng video và áp dụng lại khi phát lại cùng một video đó.", + "RememberSelectedAudioTracksHelp": "Các lựa chọn bản âm thanh sẽ được ghi nhớ trên từng video và được áp dụng lại khi phát lại cùng một video đó.", + "ClearSavedTrackSelections": "Xóa các lựa chọn bản nhạc đã lưu", + "HeaderClearTrackSelections": "Xóa các lựa chọn theo dõi đã lưu", + "QuestionClearSavedTracks": "Xóa tất cả các lựa chọn bản nhạc đã lưu?", + "LabelChannelTags": "Thẻ kênh", + "AfterThisPlaysConfirmation": "Sau khi phát xong, bạn có muốn tiếp tục phát hay xóa bản nhạc đã xếp hàng trước đó không?", + "Keep": "Giữ", + "Clear": "Xóa", + "HeaderClearFilters": "Xóa lọc", + "HeaderSearchForImages": "Tìm kiếm hình ảnh", + "HeaderSearchNewImage": "Tìm kiếm hình ảnh mới", + "HeaderSearchForAnImage": "Tìm kiếm hình ảnh", + "DragDropToReorder": "Kéo và thả để sắp xếp lại", + "HeaderAddImageFromUrl": "Thêm hình ảnh từ URL", + "HeaderSetImageFromUrl": "Đặt hình ảnh từ URL", + "LabelUrl": "Địa chỉ", + "LabelChannelNumber": "Số kênh", + "LabelGuideDataChannel": "Kênh dữ liệu hướng dẫn", + "GuideDataSource": "Nguồn dữ liệu hướng dẫn", + "HeaderCopyToClipboard": "Sao chép vào Bảng tạm", + "TimeRemainingValue": "{0} còn lại", + "LabelResumeRewindSeconds": "Khi tiếp tục, tự động tua lại", + "ResumeRewindSecondsHelp": "Điều này có thể giúp bạn nhớ lại nơi bạn đã dừng lại. Điều này áp dụng cho lần tiếp tục ban đầu chứ không phải mỗi lần tạm dừng riêng lẻ trong khi phát lại.", + "HeaderSavePlayQueueToPlaylist": "Lưu hàng đợi phát vào danh sách phát", + "EnableLogoImagesAsTitle": "Hiển thị hình ảnh logo dưới dạng tiêu đề trên màn hình chi tiết", + "EnableLogoImagesAsTitleHelp": "Khi có sẵn, hình ảnh logo có thể được sử dụng thay cho văn bản tiêu đề trên video, loạt phim và các màn hình chi tiết khác. Tiêu đề sẽ chuyển sang văn bản khi không có hình ảnh logo.", + "LabelNowPlayingAudioBackgroundStyle": "Đang phát nhạc nền theo phong cách âm thanh", + "LabelNowPlayingVideoBackgroundStyle": "Đang phát video nền theo phong cách", + "NowPlayingVideoBackgroundStyleHelp": "Xác định kiểu nền khi điều khiển từ xa phát lại video trên thiết bị khác.", + "Rotation": "Xoay", + "Minutes": "Phút", + "LabelMaxRecordingLength": "Độ dài ghi âm tối đa", + "MaxRecordingLengthHelp": "Giới hạn bản ghi trong một khoảng thời gian nhất định, bất kể thời lượng phát sóng. Đặt thành 0 để không giới hạn.", + "RemoteWAN": "Địa chỉ từ xa (WAN)", + "HeaderLastConnectedTo": "Kết nối cuối cùng tới", + "Version": "Phiên bản", + "Keyword": "Từ khóa", + "HeaderServerAddress": "Địa chỉ máy chủ", + "HeaderSkipIntro": "Bỏ qua phần giới thiệu", + "HeaderCreateRecording": "Tạo bản ghi", + "HeaderAddRecording": "Thêm bản ghi âm", + "HeaderChannelAndTime": "Kênh và thời gian", + "LabelRecordProgramOrSeriesFrom": "Ghi lại một chương trình hoặc loạt phim từ", + "LabelStartTime": "Thời gian bắt đầu", + "LabelEndTime": "Thời gian kết thúc", + "LabelFrequency": "Thường xuyên", + "Recurring": "Định kỳ", + "Once": "Một lần", + "Start": "Bắt đầu", + "Unpause": "Bỏ tạm dừng", + "LabelIntroSkipMode": "Chế độ bỏ qua giới thiệu", + "ShowSkipIntroButton": "Hiển thị nút 'Bỏ qua phần giới thiệu'", + "AutoSkipIntro": "Tự động bỏ qua phần giới thiệu", + "DisplayRatingInformationOnVideoPlaybackStart": "Hiển thị thông tin xếp hạng khi bắt đầu phát lại video", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "Thông tin xếp hạng sẽ hiển thị ngắn gọn khi bắt đầu phát lại video.", + "IntroSkipModeHelp": "Hiển thị nút 'Bỏ qua phần giới thiệu' hoặc tự động bỏ qua phần giới thiệu cho các tập mà Emby Server đã phát hiện ra các điểm đánh dấu phần giới thiệu. Phát hiện phần giới thiệu phải được bật trong tùy chọn thư viện Emby Server.", + "EnableHomeScreenFocusPreview": "Sử dụng bố cục trên màn hình chính hiển thị bản xem trước chi tiết của mục đã chọn", + "EnableHomeScreenFocusPreviewHelp": "Cách này có thể không hiệu quả nếu màn hình chính của bạn chứa nhiều loại phương tiện truyền thông khác nhau.", + "LabelHideMediaTransportButtons": "Ẩn các nút vận chuyển trình phát video", + "HideMediaTransportButtonsHelp": "Tạo giao diện phát lại trên màn hình đơn giản hơn bằng cách ẩn các nút vận chuyển cơ bản như bỏ qua, quay lại và tạm dừng. Bạn vẫn có thể sử dụng các chức năng này bằng các phím mũi tên và OK/Enter. Tự động sẽ ẩn các nút vận chuyển khi không phát hiện thấy sử dụng chuột trong ứng dụng.", + "ImageSizeHelp": "Thiết lập kích thước lưới hình ảnh bạn muốn.", + "LabelImageSize": "Kích thước hình ảnh", + "ThisImageIsOnlyPreview": "Hình ảnh này chỉ là bản xem trước đến từ công cụ tìm kiếm siêu dữ liệu. Hình ảnh thực tế mà Emby Server tải xuống có thể khác và sẽ phụ thuộc vào các tùy chọn bạn đã cấu hình trong thiết lập thư viện Emby.", + "ResultsRangeValue": "{0} đến {1} của {2}", + "NotificationsDescription": "Thiết lập thông báo để luôn cập nhật những sự kiện quan trọng trên Máy chủ Emby của bạn.", + "DeleteEmbyConnectAccount": "Xóa tài khoản Emby Connect", + "DeleteEmbyConnectAccountHelp": "Để xóa tài khoản Emby Connect của bạn, vui lòng đăng nhập vào {0} Cộng đồng Emby {1} tại {2} . Sau khi đăng nhập, hãy nhấp vào tên người dùng của bạn ở góc trên bên phải, sau đó nhấp vào Cài đặt tài khoản, sau đó nhấp vào Xóa tài khoản của tôi.", + "KeepPlayingInBackground": "Tiếp tục phát ở chế độ nền", + "LabelVideoBackBehavior": "Hành vi nút quay lại của trình phát video", + "HeaderViewLyrics": "Xem lời bài hát", + "HeaderViewMissingEpisodes": "Xem các tập phim bị thiếu", + "HeaderMissingEpisodes": "Các tập phim bị thiếu", + "HeaderManageAccess": "Quản lý quyền truy cập", + "HeaderManageCollaboration": "Quản lý cộng tác", + "HeaderLeaveCollaboration": "Rời khỏi sự hợp tác", + "HeaderRemoveFromLibrary": "Xóa khỏi Thư viện", + "RemoveSharedItemConfirmation": "Bạn có chắc chắn muốn xóa mục này khỏi thư viện của mình không? Để lấy lại mục này, chủ sở hữu sẽ cần cấp lại quyền truy cập cho bạn.", + "SubtitlesDownloaded": "Phụ đề đã tải xuống", + "HeaderMakePrivate": "Tạo riêng tư", + "HeaderMakePublic": "Công khai", + "MakePublicDescription": "Tất cả người dùng đều có thể xem mục này. Người dùng có thể được cấp quyền chỉnh sửa.", + "MakePrivateDescription": "Người dùng vẫn có thể được cấp quyền truy cập riêng lẻ.", + "Private": "Riêng tư", + "Public": "Công khai", + "Collaborative": "Hợp tác", + "PreferredShowDisplay": "Hiển thị chương trình truyền hình ưa thích", + "ShowAllEpisodesAllSeasons": "Hiển thị tất cả các tập của tất cả các mùa cùng nhau", + "ShowAllEpisodesSingleSeason": "Hiển thị tất cả các tập phim chỉ dành cho một mùa duy nhất", + "ShowSeasonFolders": "Luôn hiển thị các thư mục theo mùa", + "HeaderAddAgain": "Thêm Lại", + "UpNext": "Tiếp theo", + "ItemsAlreadyInPlaylist": "Một số mục này đã có trong danh sách phát của bạn.", + "ItemAlreadyInPlaylist": "Mục này đã có trong danh sách phát của bạn.", + "HeaderPlayChannel": "Phát Kênh", + "LabelScreenOrientationDuringVideo": "Hướng màn hình trong khi phát lại video", + "UseDeviceSetting": "Sử dụng cài đặt thiết bị", + "LockToLandscape": "Khóa theo phong cảnh", + "UsernameForFolderHelp": "Tên người dùng cần thiết để truy cập thư mục này trên mạng của bạn (nếu có).", + "PasswordForFolderHelp": "Mật khẩu cần thiết để truy cập thư mục này trên mạng của bạn (nếu có).", + "ShowMediaInfoOnDetailScreens": "Hiển thị toàn bộ phương tiện ở cuối màn hình chi tiết âm thanh và video", + "ForgotPasswordNoUserFound": "Không tìm thấy người dùng nào có tên đã nhập. Vui lòng thử lại hoặc để trống tên để đặt lại mật khẩu cho tất cả người dùng trên máy chủ này.", + "Silver": "Bạc", + "DimGray": "Màu xám mờ", + "DarkGray": "Xám đậm", + "LightGray": "Xám nhạt", + "Black": "Đen", + "Blue": "Xanh da trời", + "Cyan": "Màu lục lam", + "Gray": "Xám", + "Green": "Xanh lá", + "Lime": "Chanh xanh", + "Magenta": "Đỏ tía", + "Orange": "Cam", + "Pink": "Hồng", + "Red": "Màu đỏ", + "Yellow": "Màu vàng", + "White": "Trắng", + "Purple": "Tím", + "RecentlyReleasedMovies": "Phim mới phát hành gần đây", + "RecentlyReleasedEpisodes": "Các tập phim mới phát hành gần đây", + "DolbyProfile": "Hồ sơ Dolby", + "IpAddress": "Địa chỉ IP", + "VideoType": "Loại video", + "HidePlayedMediaFrom": "Ẩn phương tiện đã phát từ", + "BottomEdgePosition": "Vị trí cạnh dưới", + "VerticalPositionFromBottomScreen": "Đặt vị trí dọc của phụ đề so với phía dưới màn hình.", + "TopEdgePosition": "Vị trí cạnh trên", + "TopEdgePositionHelp": "Đặt vị trí dọc cao nhất được phép của phụ đề so với đầu màn hình. Điều này được sử dụng khi phụ đề chứa hướng dẫn định vị được đặt ở đầu.", + "HeaderSubtitlePosition": "Vị trí phụ đề", + "TitleProfilePin": "Mã PIN hồ sơ", + "ProfilePinConfirm": "Mã PIN hồ sơ (xác nhận)", + "SaveProfilePin": "Lưu Ghim", + "ProfilePinDescription": "Tạo một mã pin tùy chọn để được nhắc nhập bất cứ khi nào bạn quay lại ứng dụng Emby trên thiết bị mà bạn đã đăng nhập. Điều này hữu ích nếu bạn có các thiết bị được nhiều người dùng chia sẻ. Bạn có thể chọn bật tính năng này một cách có chọn lọc trên từng thiết bị khi cần.", + "TitleNewEpisodes": "Tập mới", + "EnterYourPinToContinue": "Nhập mã PIN để tiếp tục.", + "YourPinMustBe": "Mã PIN của bạn phải có {0} chữ số.", + "ForgotPin": "Quên mã PIN?", + "RequireEnteringPinToReturn": "Yêu cầu nhập mã PIN hồ sơ của tôi mỗi khi tôi quay lại ứng dụng này.", + "RequireEnteringPinToReturnQuestion": "Chúng tôi có nên nhắc bạn nhập mã PIN hồ sơ bất cứ khi nào bạn quay lại ứng dụng này không? Nếu thiết bị này được nhiều người dùng chia sẻ, mã PIN hồ sơ của bạn có thể giúp ngăn những người dùng khác truy cập dữ liệu của bạn.", + "RequireEnteringPinToReturnHelp": "Hữu ích nếu thiết bị này được nhiều người dùng chia sẻ.", + "WrongPinPleaseTryAgain": "Ồ, mã PIN sai rồi. Vui lòng thử lại.", + "ProfilePinIsOn": "Mã PIN hồ sơ hiện đang được bật.", + "IfTryingToConnectToHttp": "Nếu bạn đang cố gắng kết nối với Máy chủ Emby của mình bằng địa chỉ HTTP, trình duyệt của bạn có thể không cho phép điều này do yêu cầu HTTPS. Vui lòng thử một trong những cách sau:", + "SetupHttpsForYourServer": "Thiết lập {0}HTTPS cho Máy chủ Emby của bạn{1} để bạn có thể kết nối bằng HTTPS.", + "TitleUnableToReachServer": "Không thể truy cập máy chủ", + "TitleUnableToReachName": "Không thể đạt được {0}", + "HearingImpaired": "Người khiếm thính", + "SignIntoServerName": "Đăng nhập vào {0}", + "About": "Thông tin", + "Specials": "Đặc biệt", + "NSettings": "{0} Cài đặt", + "NPreferences": "{0} Tùy chọn", + "DetailScreenOptions": "Màn hình chi tiết", + "LabelGenreDisplayLimit": "Giới hạn hiển thị thể loại", + "GenreDisplayLimitHelp": "Giới hạn số lượng thể loại hiển thị ở đầu màn hình chi tiết mục.", + "GenreDisplayLimitForListsHelp": "Giới hạn số lượng thể loại hiển thị ở đầu màn hình danh sách phát, bộ sưu tập và chi tiết nghệ sĩ.", + "LabelGenreDisplayLimitForLists": "Giới hạn hiển thị thể loại cho danh sách", + "ShowPosterOnDetails": "Hiển thị áp phích trên màn hình chi tiết", + "ShowPosterOnDetailsHelp": "Chọn hiển thị áp phích trên màn hình chi tiết video hoặc ẩn áp phích để có giao diện tối giản hơn, nhấn mạnh vào nền. Cài đặt này không được sử dụng trên các bố cục màn hình nhỏ hơn. Một số loại mục sẽ bỏ qua cài đặt này.", + "EnableAppLogging": "Bật ghi nhật ký ứng dụng", + "EnableAppLoggingHelp": "Ghi nhật ký có thể làm giảm hiệu suất ứng dụng và chỉ nên bật khi cần thiết cho mục đích khắc phục sự cố. Thay đổi yêu cầu khởi động lại ứng dụng.", + "LabelSlideshowInterval": "Thời gian trình chiếu ảnh cho mỗi slide", + "TVChannelImageEditorHelp": "Nhiều phiên bản logo được hỗ trợ. Ứng dụng Emby sẽ tự động chọn phiên bản phù hợp tùy thuộc vào chủ đề hiện tại.", + "PlaySlideshow": "Phát trình chiếu", + "CheckForExistingEpisodesInAllLibraries": "Kiểm tra các tập phim hiện có trong tất cả các thư viện", + "GroupNotificationsBySeriesOrAlbum": "Nhóm thông báo theo series và album", + "ThemeSettings": "Cài đặt chủ đề", + "FollowingActivityWillBeDisrupted": "Hoạt động sau đây sẽ bị gián đoạn và có thể cần can thiệp thủ công để khởi động lại:", + "OneActivePlaybackSession": "1 Phiên phát lại đang hoạt động", + "NumActivePlaybackSessions": "{0} Phiên phát lại đang hoạt động", + "OneActiveRecording": "1 bản ghi đang hoạt động", + "NumActiveRecordings": "{0} Bản ghi đang hoạt động", + "PlayFromLivePosition": "phát từ vị trí trực tiếp", + "PlayFromStartOfRecording": "Phát từ đầu bản ghi âm", + "ThisChannelIsActivelyRecording": "Kênh này đang ghi hình. Bạn muốn bắt đầu phát như thế nào?", + "ThemeSongVolume": "Âm lượng bài hát chủ đề", + "HeaderForceConversionForFormats": "Force Conversion for Formats", + "ForceConversionForFormatsHelp": "Use this to force server-side transcoding or remuxing for formats that don't direct play very well on this device.", + "StartupBehavior": "Startup behavior", + "RememberLastUser": "Ghi nhớ người dùng cuối cùng", + "ShowLoginScreen": "Hiển thị màn hình đăng nhập", + "SignInAsValue": "Sign in as {0}", + "ConvertUnsupportedAudio": "Convert unsupported surround audio to Dolby Digital", + "ConvertUnsupportedAudioHelp": "Avoid downmixing unsupported surround formats to stereo by having Emby Server transcode them to Dolby Digital.", + "HeaderPlaybackCorrection": "Playback Correction", + "HeaderAttemptPlaybackCorrection": "Attempt Playback Correction", + "PlaybackCorrectionConfirm": "Attempt playback correction?", + "PlaybackCorrectionDescription": "Is the current item exhibiting a playback problem such as no video or audio? This will try and correct playback issues using server transcoding to convert this file into a more streaming friendly format. This will result in increased resource consumption on this Emby Server.", + "PlaybackCorrectionDescription2": "You can do this up to three times per video, where remuxing, video transcoding and audio transcoding are each activated one at a time.", + "HeaderAlbumsAsContributingArtist": "Albums as Contributing Artist", + "HeaderAlbumsAsComposer": "Albums as Composer", + "Duplicates": "Duplicates", + "HeaderSleepTimer": "Sleep Timer", + "AfterCurrentItem": "After current item", + "HeaderStopPlayback": "Stop Playback", + "TurnOffTimer": "Turn off timer", + "SleepTimerIsSet": "Your sleep timer is set", + "SleepTimerIsOff": "Your sleep timer is off", + "LabelEnableRemoteControlTVMode": "Display casting and remote control functions", + "EnableRemoteControlTVModeHelp": "Enable if you intend to use this device to send media to other devices.", + "ShowOnScreenControls": "Show on-screen controls", + "LabelVideoScreenUpAction": "Video player up action", + "VideoScreenUpActionHelp": "Select the action to take when pressing the up key on the video player screen. This applies when no on-screen controls are currently visible. When controls are already visible, the up key will be used for navigation.", + "LabelVideoPlayerLongPressAction": "Video player long press action", + "LetsGetSetup": "Let's Get Set Up", + "VideoPlayerLongPressActionHelp": "Choose what function or menu is shown when long pressing the OK button during video playback. This only takes effect when the video controls are hidden or the seek bar has focus.", + "AskAdminToGetPremiere": "This purchase must be made by the server administrator. Please ask the administrator of this Emby Server to sign in and get Emby Premiere so that you can enjoy access to premium features.", + "AutoOpenSingleItemsFolders": "Auto open single items in folder view", + "AutoOpenSingleItemsFoldersHelp": "When a folder only contains one item, automatically open that item.", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/zh-CN.json b/modules/common/strings/zh-CN.json new file mode 100644 index 0000000..019f54c --- /dev/null +++ b/modules/common/strings/zh-CN.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "替换现有视频预览缩略图", + "ReplaceExistingThumbnailImagesHelp": "如果在媒体库选项中启用此功能,将删除所有现有视频预览缩略图并生成新缩略图。", + "DateCreated": "创建日期", + "CreatedOnValue": "创建于 {0}", + "UpdatedOnValue": "已更新 {0}", + "EmbyLoginTerms": "Emby 旨在帮助您管理您的个人媒体库,如家庭视频和照片。请参阅我们的{0}使用条款{1}。使用 Emby 的任何软件视为接受了这些条款。", + "MessageUnableToConnectToServer": "我们目前无法连接至所选的服务器。请确保它正在运行后重试。", + "EmbyIntroMessage": "通过 Emby,您可以轻松地将视频、音乐和照片从 Emby Server 流式传输到智能手机、平板电脑和其他设备上。", + "HeaderSignInWithConnect": "通过 Emby Connect 登录", + "HeaderWelcomeToEmby": "欢迎来到 Emby", + "HeaderNewUsers": "新用户", + "HeaderPleaseSignIn": "请登录", + "MessageInvalidUser": "无效用户名或密码。请重试。", + "MessageUnlockAppWithPurchaseOrSupporter": "通过一次性付费或有一个有效的 Emby Premiere 订阅可解锁这项功能。", + "MessageUnlockAppWithSupporter": "通过一个有效的 Emby Premiere 订阅来解锁这项功能。", + "MessageToValidateSupporter": "如果您已经拥有一个有效的 Emby Premiere 订阅,请确保您已在 Emby Server 控制台中配置好,您可以通过点击主菜单中 “Emby Premiere” 选项访问。", + "ValueSpecialEpisodeName": "特别篇 - {0}", + "HeaderSignIn": "登录", + "Share": "共享", + "Shared": "已分享", + "Info": "信息", + "Add": "添加", + "Speed": "速度", + "PlaybackSpeed": "播放倍速", + "Chapters": "章节", + "Password": "密码", + "SavePassword": "保存密码", + "LabelPassword": "密码", + "HeaderResetPassword": "重置密码", + "Series": "剧集", + "Preview": "预览", + "Submit": "提交", + "Never": "从不", + "Table": "表格", + "HeaderScheduledTasks": "计划任务", + "Plays": "播放次数", + "LastUsedAddressValue": "上次使用{0}", + "LabelKeywordType": "关键词类型", + "HeaderSelectColumns": "选择列", + "HeaderTopResults": "热门结果", + "HeaderPinSidebar": "固定侧边栏", + "Collapse": "折叠", + "LabelBackgroundVideoPlayback": "后台视频播放", + "BackgroundVideoPlaybackHelp": "后台播放允许视频即使在屏幕关闭时也可以继续播放。", + "AlwaysOn": "始终开启", + "HeadphonesOrExternalSpeakersConnected": "耳机或外接扬声器已连接", + "HeaderKeyboardAndRemote": "键盘和遥控器", + "NoSelectedItemsSupportOperation": "未选中支持此操作的项目。", + "NoOperationsForSelectedItems": "所选项目没有可用的操作。", + "UploadOnlyOnWifi": "仅在 Wi-Fi 下上传", + "HeaderFoldersToUpload": "要上传的文件夹", + "LabelPasswordConfirm": "确认密码", + "HeaderMoveUpInOrder": "顺序上移", + "HeaderDownUpInOrder": "顺序下移", + "LabelUsername": "用户名", + "HeaderAddServer": "添加服务器", + "HeaderSubtitleOffset": "字幕偏移", + "Watching": "正在观看", + "HeaderRemoveFromContinueWatching": "移出 “继续观看”", + "RemoveThisTitleFromContinueWatching": "从 “继续观看” 中移除此项 ?", + "HeaderRemoveFromContinueListening": "继续监听移出 “继续聆听”", + "RemoveThisTitleFromContinueListening": "从 “继续聆听” 中移除此项 ?", + "HeaderIncreaseSubtitleOffset": "增加字幕偏移", + "HeaderDecreaseSubtitleOffset": "减少字幕偏移", + "Close": "关闭", + "HeaderSeeAll": "查看全部", + "HeaderOpenInNewWindow": "在新窗口中打开", + "LabelEmail": "邮箱地址", + "LabelHost": "主机", + "LabelHostHelp": "例如:192.168.1.100 或 https://myserver.com", + "LabelPort": "端口", + "Disabled": "已禁用", + "Uninstall": "卸载", + "Enable": "启用", + "AllTuners": "全部调谐器", + "Disable": "禁用", + "NextValue": "下一项:{0}", + "HeaderNextItem": "下一项", + "HeaderPreviousItem": "上一项", + "NoTrailersMessage": "未找到预告片。要添加预告片,请在 {0}Emby 插件目录{1}中安装 Trailers 插件。", + "UninstallPluginConfirmation": "您确定要卸载此插件?", + "HeaderUninstallPlugin": "卸载插件", + "AreYouStillWatching": "您还在看吗?", + "LabelCurrentPassword": "当前密码", + "LabelNewPassword": "新密码", + "LabelNewPasswordConfirm": "新密码确认", + "HeaderRemovePassword": "移除密码", + "ServerUpdateNeeded": "Emby Server 需要更新。访问 {0} 可下载最新的版本", + "MessageThankYouForConnectSignUp": "感谢您注册 Emby Connect 。您将会收到一封邮件,其中包含有关如何确认新账户的说明。请确认此账户并返回此处登录。", + "MessageThankYouForConnectSignUpNoValidation": "感谢您注册 Emby Connect !现在将要求您使用 Emby Connect 登录。", + "ErrorMessagePasswordNotMatchConfirm": "密码和确认密码必须匹配。", + "ErrorMessageUsernameInUse": "此用户名已被使用。请选择一个新用户名并重试。", + "ErrorMessageEmailInUse": "此邮箱地址已被使用。请输入一个新地址并重试,或者使用 “忘记密码” 功能。", + "HeaderUpcomingOnTV": "电视直播预告", + "HeaderOtherShowings": "其他放映", + "Showings": "放映", + "HeaderConnectToServer": "连接至服务器", + "ConnectToServerManually": "手动连接至服务器", + "LabelEnterConnectUserNameHelp": "这是您用于设置 Emby Connect 账号的电子邮件地址。", + "HeaderSignInError": "登录出错", + "HeaderManualLogin": "手动登录", + "PasswordResetConfirmation": "您确定要重置密码吗?", + "ContactAdminToResetPassword": "请联系管理员以重置您的密码。", + "ForgotPasswordInNetworkRequired": "请在您的家庭网络中重试以开始密码重置流程。", + "ForgotPasswordFileCreated": "以下文件已在您的服务器上创建,并包含有关如何继续的说明:", + "ForgotPasswordFileExpiration": "重置 PIN 码将于 {0} 过期。", + "InvalidForgotPasswordPin": "输入的 PIN 码无效或已过期。请再试一次。", + "PasswordResetForUsers": "已移除以下用户的密码。请使用空密码登录。", + "HeaderForgotPassword": "忘记密码?", + "ForgotPasswordUsernameHelp": "如果您不记得用户名,请将此留空。", + "HeaderPasswordReset": "重置密码", + "AttributeNew": "新建", + "Done": "完成", + "HeaderResetToDefault": "重置为默认", + "Deinterlacing": "去隔行", + "HeaderBurningInSubtitles": "字幕压制", + "Premiere": "首映", + "LabelPinCode": "PIN 码", + "LabelLocalNetworkPinCode": "本地网络 PIN 码", + "LabelLocalNetworkPasswordMode": "本地网络登录模式", + "RequirePasswordInLocalNetwork": "在本地网络上需要密码", + "NoPasswordInLocalNetwork": "在本地网络上不需要密码", + "PinCodeInLocalNetwork": "允许在本地网络上使用数字 PIN 码", + "LocalNetworkPasswordModeHelp": "选择与 Emby Server 处于同一本地网络上设备的登录方式。", + "HeaderLocalNetworkAccess": "本地网络访问", + "Live": "直播", + "Reset": "重置", + "Repeat": "重播", + "Track": "首", + "Tracks": "首", + "HeaderCameraUpload": "相机上传", + "TrackCount": "共 {0} 首", + "ItemCount": "共 {0} 项", + "NumberChannelsValue": "共 {0} 个频道", + "HeaderLatestMusic": "最新音乐", + "HeaderLatestAudioBooks": "最新有声读物", + "HeaderLatestDownloadedVideos": "最新下载视频", + "HeaderRecentlyPlayed": "近期播放", + "Recent": "近期", + "HeaderFrequentlyPlayed": "经常播放", + "HeaderMoreLikeThis": "其它类似", + "HeaderMoreLikeThisOnLiveTV": "电视直播中类似节目", + "OriginalAirDateValue": "原始播出日期:{0}", + "EndsAtValue": "结束于 {0}", + "Date": "日期", + "AirDate": "播出日期", + "Played": "已播放", + "Daily": "每天", + "Weekly": "每周", + "RequireHashMatch": "要求哈希匹配", + "RequireHashMatchHelp": "要求进行哈希匹配来筛选出已用您实际视频文件测试过的字幕。取消选择此项会增加匹配字幕的数量,但也会增加误判或不正确的字幕文本。", + "SearchForForcedSubtitlesOnly": "仅强制字幕", + "SearchForForcedSubtitlesOnlyHelp": "要求强制字幕会将结果限制在标记为具有外语的字幕上。", + "LastEpisodeDateAdded": "上次添加集日期", + "LastEpisodeDateAired": "上次发布集日期", + "LabelPlaystate": "播放状态", + "Studio": "工作室", + "Tag": "标签", + "EpisodeTitle": "集标题", + "Audio": "音频", + "Video": "视频", + "Subtitle": "字幕", + "Image": "图像", + "CopyStream": "复制原始流", + "LabelAudioLayout": "音频布局", + "LabelAudioCodec": "音频编解码器", + "LabelAudioLanguage": "音频语言", + "LabelSubtitleLanguage": "字幕语言", + "LabelVideoCodec": "视频编解码器", + "LabelSubtitleCodec": "字幕编解码器", + "LabelParentalRating": "家长评分", + "BecauseYouLikeValue": "类似收藏:{0}", + "BecauseYouWatchedValue": "类似看过:{0}", + "DirectedByValue": "同一执导:{0}", + "StarringValue": "同一出演:{0}", + "Invitations": "邀请", + "ActorAsRole": "扮演 {0}", + "ButtonOk": "确定", + "GroupItemsIntoCollections": "将项目分组到合集中", + "GroupItemsIntoCollectionsHelp": "根据已添加到的合集对项目进行分组。启用某些筛选器或排序命令可能会自动禁用此功能。", + "GroupItemsIntoTags": "按标签分组项目", + "GroupItemsIntoTagsHelp": "根据已添加的标签对项目进行分组。启用筛选或排序会自动禁用此功能。", + "User": "用户", + "Access": "访问", + "Users": "用户", + "Library": "媒体库", + "Devices": "设备", + "Cancel": "取消", + "Restart": "重启", + "Shutdown": "关机", + "Logs": "日志", + "Visibility": "可见性", + "Notifications": "通知", + "SendTestNotification": "发送测试通知", + "NotificationSent": "通知已发送", + "DeleteNotificationConfirmation": "您确定要删除此通知吗?", + "DeleteNotification": "删除通知", + "AddNotification": "添加通知", + "EditNotification": "编辑通知", + "LimitUserEventsTo": "将用户事件限制为", + "LimitLibraryEventsTo": "将媒体库事件限制为", + "LimitDeviceEventsTo": "将设备事件限制为", + "ForAdditionalNotificationOptions": "服务器管理员可以在 Emby {0}插件目录{1}中安装其它通知服务。", + "Plugins": "插件", + "Systems": "系统", + "Server": "服务器", + "Dashboard": "控制台", + "PlayOnAnotherDevice": "在其它设备上播放", + "HeaderConnectionHelp": "连接帮助", + "AccessRestrictedTryAgainLater": "访问目前受限。请稍后再试。", + "ButtonGotIt": "明白", + "RememberMe": "记住我", + "EmbyServer": "Emby Server", + "ManageEmbyServer": "管理 Emby Server", + "ShutdownServer": "关闭 Emby Server", + "RestartServer": "重启 Emby Server", + "RecordingCancelled": "已取消录制", + "SeriesCancelled": "剧集已取消", + "Recording": "正在录制", + "SeriesRecording": "剧集录制", + "RecordingScheduled": "已计划录制", + "SeriesRecordingScheduled": "计划剧集录制", + "HeaderNewRecording": "新建录制", + "HeaderWakeServer": "唤醒服务器", + "AttemptingWakeServer": "尝试唤醒服务器中,请稍候...", + "WakeServerSuccess": "成功!", + "HeaderCustomizeHomeScreen": "自定义主屏幕", + "WakeServerError": "Wake On LAN 数据包已发送到您的服务器上,但是我们无法连接到您的 Emby Server 。您的服务器可能需要更多时间才能被唤醒,或者 Emby Server 可能未在此计算机上有效运行。", + "Days": "天", + "Network": "网络", + "Networks": "电视网", + "SortByValue": "排序:{0}", + "HeaderSortBy": "排序:", + "HeaderPhotoAlbums": "相册", + "Photos": "照片", + "HeaderAppearsOn": "出现于", + "List": "列表", + "HeaderRecordSeries": "录制剧集", + "HeaderCinemaMode": "Cinema Intros", + "Conversions": "转换", + "Downloads": "下载", + "HeaderManageDownloads": "管理下载内容", + "InternalStorage": "内部存储", + "ExternalStorage": "外部存储", + "UploadToFollowingServers": "上传到服务器", + "UploadingNumItems": "正在上传 {1} 个,共 {0} 个", + "DownloadNumItems": "正在下载 {1} 个,共 {0} 个", + "HeaderSampleRate": "采样率", + "HeaderReferenceFrames": "参考帧", + "HeaderBitDepth": "位深度", + "HeaderPixelFormat": "像素格式", + "Profile": "配置", + "Bitrate": "比特率", + "Expand": "展开", + "Container": "媒体容器", + "Format": "格式", + "Path": "路径", + "Size": "文件尺寸", + "Resolution": "分辨率", + "HeaderCodecTag": "编解码器标签", + "Framerate": "帧率", + "Interlaced": "隔行", + "Anamorphic": "变形", + "Level": "等级", + "Timestamp": "时间戳", + "Language": "语言", + "Codec": "编解码器", + "Stream": "流媒体", + "HeaderExtradata": "额外数据", + "HeaderHardwareAcceleratedTranscoding": "硬件加速转码", + "HeaderHardwareAcceleratedTranscodingDescription": "利用您服务器的 GPU 。Emby 拥有业界最先进、最快的硬件加速能力。", + "HeaderOfflineDownloads": "离线媒体", + "AndMuchMoreExclamation": "以及更多!", + "HeaderOfflineDownloadsDescription": "将媒体下载到您的设备以方便离线使用。", + "LiveTvFeatureDescription": "通过您 Emby Server 上已安装的兼容电视调谐器设备,将电视直播流式传输到任何 Emby 应用。", + "DvrFeatureDescription": "通过 Emby DVR 计划录制各个电视直播、剧集等。", + "CinemaModeFeatureDescription": "Cinema Intros 带给您真实的电影体验,在正式播放之前可为您提供预告片和自定义介绍。", + "HeaderFreeApps": "免费 Emby 应用", + "FreeAppsFeatureDescription": "在您的设备上免费使用 Emby 应用。", + "HeaderBecomeProjectSupporter": "获取 Emby Premiere", + "HeaderViewServerInfo": "查看服务器信息", + "PlaybackTvModeRequiresEmbyPremiere": "电视模式下的媒体播放需要有效的 {0}Emby Premiere 订阅{1}。", + "FeatureRequiresEmbyPremiere": "此功能需要有效的 {0}Emby Premiere 订阅{1}。", + "HeaderConvertYourRecordings": "转换您的录制", + "Record": "录制", + "Save": "保存", + "Edit": "编辑", + "HeaderSavePlaylist": "保存播放列表", + "Latest": "最新", + "Download": "下载", + "Downloaded": "已下载", + "Converted": "已转换", + "RemoveFromHistory": "移出“历史”", + "ConfirmRemoveFromHistory": "要从历史记录中移除此项目吗 ?", + "Downloading": "正在下载", + "Advanced": "高级", + "LinkedToEmbyConnect": "链接至 Emby Connect", + "Delete": "删除", + "Both": "两者", + "LabelChannelDisplay": "频道显示", + "HeaderDeleteItem": "删除项目", + "HeaderDeleteUser": "删除用户", + "DeleteItemConfirmation": "您确定要删除 {0} 吗 ?", + "DeleteUserConfirmation": "您确定要删除用户 {0} 吗 ?", + "DeleteUsersConfirmation": "您确定要删除这 {0} 用户吗 ?", + "HeaderDeleteDevice": "删除设备", + "DeleteDeviceConfirmation": "您确定要删除此设备吗 ?当用户用此设备再次登录时,它将会重新出现。", + "ConfirmDeleteItem": "删除此项目会将其从文件系统和媒体库同时删除。", + "FollowingFilesWillBeDeleted": "将删除以下文件和文件夹:", + "AreYouSureToContinue": "您确定要继续吗 ?", + "Refresh": "刷新", + "RefreshingMetadataDots": "正在刷新元数据…", + "ScanningLibraryFilesDots": "正在扫描媒体库文件…", + "HeaderFavoritesThenByChannelNumber": "收藏、频道编号", + "HeaderAddToCollection": "添加到 “合集”", + "HeaderFavoritesThenByTitle": "收藏、标题", + "HeaderFavoritesThenByDefault": "收藏、默认频道顺序", + "HeaderDefaultChannelOrder": "默认频道顺序", + "HeaderAddToFavorites": "添加到 “收藏“", + "HeaderRemoveFromFavorites": "移出 “收藏”", + "Favorited": "已收藏", + "Unfavorited": "已取消收藏", + "HeaderNewCollection": "新建合集", + "HeaderNewPlaylist": "新建播放列表", + "AllCollections": "所有系列", + "AllPlaylists": "所有播放列表", + "Create": "创建", + "HeaderAddedToPlaylist": "已添加到 “播放列表”", + "HeaderAddedToCollection": "已添加到 “合集”", + "OneItemAddedTo": "已添加 1 项到 “{0}”。", + "ItemsAddedTo": "已添加 {0} 项到 “{1}”。", + "HeaderAddedToPlayQueue": "已添加到 “播放队列”", + "HeaderPlayingNext": "下个播放", + "Help": "帮助", + "HeaderGetHelp": "获取帮助", + "LabelTVDisplayMode": "启用电视显示模式", + "Desktop": "桌面", + "Mobile": "手机 / 平板电脑", + "Navigation": "导航", + "HeaderVideoPlayback": "视频播放", + "TV": "电视", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "播出季", + "OneTrack": "共 1 首", + "OneSeason": "共 1 季", + "Libraries": "媒体库", + "NumberSeasonsValue": "共 {0} 季", + "TVDisplayModeHelp": "优化此设备上的用户交互界面,以便遥控方式操作和电视显示。如果您的主要输入方式是鼠标或触摸,通常不建议这样做。", + "LabelDisplayLanguage": "显示语言", + "LabelDisplayLanguageHelp": "Emby 的翻译工作是一个持续进行的项目。", + "LearnHowYouCanContribute": "了解如何贡献自己的力量。", + "NewCollectionHelp": "“合集” 可让您为电影和其它媒体库内容创建个性化分组。", + "SearchForCollectionInternetMetadata": "在互联网上搜索媒体图片和元数据", + "DisplayMissingEpisodesWithinSeasons": "显示每季里遗漏的集", + "DisplayMissingEpisodesWithinSeasonsHelp": "必须在 Emby Server 设置中为“电视”媒体库启用此功能。", + "EnableThemeSongs": "播放主题曲", + "EnableBackdrops": "启用壁纸", + "EnableThemeSongsHelp": "如果启用,将在您浏览媒体库时在后台播放主题曲。", + "EnableBackdropsHelp": "如果启用,在您浏览媒体库时某些页面的背景将显示壁纸。", + "EnableThemeVideos": "播放主题视频", + "EnableThemeVideosHelp": "如果启用,在您浏览媒体库时将在后台播放主题视频。", + "RunAtStartup": "开机运行", + "ServerStartup": "服务器启动", + "EmbyServerOnXHasStarted": "Emby Server 于 {0} 启动。", + "LabelScreensaver": "屏幕保护", + "LabelSoundEffects": "音效", + "LabelName": "名称", + "NewCollectionNameExample": "例如:“星球大战” 合集", + "MessageItemsAdded": "项目已添加。", + "OptionNew": "新建…", + "LabelPlaylist": "播放列表", + "AddToPlaylist": "添加到 “播放列表”", + "HeaderAddToPlaylist": "添加到 “播放列表”", + "Subtitles": "字幕", + "LabelTheme": "主题", + "LabelSettingsTheme": "设置主题", + "LabelThemeAccentColor": "强调色", + "ThemeAccentColorDescription": "控制重要指示器、图标和文本的颜色。", + "SearchForSubtitles": "搜索字幕", + "LabelLanguage": "语言", + "Search": "搜索", + "NoSubtitleSearchResultsFound": "未找到结果。您是否已配置{0}字幕下载{1} ?", + "NoLyricsSearchResultsFound": "未找到结果。您是否已配置{0}字幕下载{1} ?", + "Lyrics": "歌词", + "SearchForLyrics": "搜索歌词", + "Finish": "完成", + "File": "文件", + "Exit": "退出", + "Sleep": "睡眠", + "Setup": "设置", + "MessageAreYouSureDeleteSubtitles": "您确定要删除此字幕文件吗?", + "ConfirmDeletion": "确认删除", + "MySubtitles": "我的字幕", + "MessageDownloadQueued": "下载已排队。", + "HeaderEditSubtitles": "编辑字幕", + "UnlockGuide": "解锁指南", + "HeaderRefreshMetadata": "刷新元数据", + "HeaderRefreshAllMetadata": "刷新所有元数据", + "ReplaceExistingImages": "替换现有图像", + "ReplaceExistingImagesHelp": "基于媒体库选项,将删除全部现有图像,并下载新图像。在某些情况下,这可能会导致可用图像比以前要少。", + "ReplaceAllMetadata": "替换所有元数据", + "SearchForMissingMetadata": "搜索缺少的元数据", + "LabelRefreshMode": "刷新模式", + "NoItemsFound": "未找到项目。", + "HeaderSaySomethingLike": "说点什么…", + "ButtonTryAgain": "重试", + "HeaderYouSaid": "您说了…", + "MessageWeDidntRecognizeCommand": "很抱歉,我们无法识别此命令。", + "MessageIfYouBlockedVoice": "如果您拒绝应用的语音访问功能,则需要先重新配置再重试。", + "ValueDiscNumber": "光盘 {0}", + "Unrated": "未分级", + "Favorite": "收藏", + "Like": "喜欢", + "Dislike": "不喜欢", + "RefreshDialogHelp": "依据 Emby 媒体库中的设置和元数据提供器,用新的数据更新元数据。", + "Open": "打开", + "Play": "播放", + "Pause": "暂停", + "HeaderPlayQueue": "播放队列", + "HeaderAddToPlayQueue": "添加到 “播放队列”", + "Shuffle": "随机播放", + "Identify": "识别", + "HeaderRemoveIdentification": "移除识别", + "ResetMetadataConfirmation": "您确定要重置所有元数据吗 ?", + "HeaderEditMetadata": "编辑元数据", + "Convert": "转换", + "Resume": "恢复播放", + "HeaderInstantMix": "即时混合", + "HeaderGoToItem": "转到项目", + "HeaderGoToSeason": "转到季", + "HeaderGoToSeries": "转到剧集", + "HeaderGoToAlbum": "转到专辑", + "HeaderGoToArtist": "转至艺人", + "HeaderPlayAll": "全部播放", + "PictureInPicture": "画中画", + "Fullscreen": "全屏", + "ExitFullscreen": "退出全屏", + "Rewind": "退回", + "FastForward": "快进", + "Remove": "移除", + "Rename": "重命名", + "Queue": "排队", + "QueueAllFromHere": "由此开始全部排队", + "PlayAllFromHere": "由此开始全部播放", + "PlayFromBeginning": "从头开始播放", + "FromBeginning": "从头开始", + "ResumeAt": "从 {0} 恢复播放", + "HeaderRemoveFromPlaylist": "移出 “播放列表”", + "HeaderRemoveFromPlayQueue": "移出“播放队列”", + "HeaderRemoveFromCollection": "移出 “合集”", + "Sort": "排序", + "Trailer": "预告片", + "SelectNone": "不选择", + "SelectAll": "全选", + "HeaderMarkPlayed": "标记为已播放", + "HeaderMarkUnplayed": "标记为未播放", + "HeaderGroupVersions": "组合版本", + "PleaseSelectTwoItems": "请至少选择 2 项。", + "HeaderConfirmRecordingCancellation": "确认取消录制", + "MessageConfirmRecordingCancellation": "要取消录制吗 ?", + "Album": "专辑", + "AlbumArtist": "专辑艺人", + "Error": "出错", + "VoiceInput": "语音输入", + "LabelContentType": "内容类型", + "LabelPath": "路径", + "Playlists": "播放列表", + "LabelTitle": "标题", + "LabelOriginalTitle": "原标题", + "LabelSortTitle": "排序标题", + "LabelDateAdded": "加入日期", + "DateAdded": "加入日期", + "DateModified": "修改日期", + "DatePlayed": "播放日期", + "DateLastActive": "上次活动日期", + "ConfigureDateAdded": "在 Emby Server 控制台 \"媒体库” 设置中可配置如何确定加入日期", + "LabelStatus": "状态", + "LabelArtistsHelp": "多个可使用 ;(英文分号)分隔", + "HeaderAlbumArtists": "专辑艺人", + "LabelAlbumArtists": "专辑艺人", + "LabelAlbum": "专辑", + "Artist": "艺人", + "Artists": "艺人", + "ImdbRating": "IMDb 评分", + "CommunityRating": "社区评分", + "LabelCommunityRating": "社区评分", + "LabelCriticRating": "影评人评分", + "CriticRating": "影评人评分", + "LabelWebsite": "网站", + "Tagline": "宣传语", + "LabelOverview": "概要", + "LabelShortOverview": "简介", + "LabelReleaseDate": "发行日期", + "LabelPlaceOfBirth": "出生地", + "Aired": "已播出", + "LabelAirDays": "播出日期", + "LabelAirTime": "播出时间", + "LabelRuntimeMinutes": "播放时长(分钟)", + "LabelCustomRating": "自定义评分", + "LabelOriginalAspectRatio": "原始宽高比", + "Label3DFormat": "3D 格式", + "FormatValue": "格式:{0}", + "DownloadsValue": "{0} 个下载", + "HashMatch": "哈希匹配", + "EnableExternalVideoPlayers": "启用外部视频播放器", + "EnableExternalVideoPlayersHelp": "在开始播放视频时,将显示一个外部播放器菜单。", + "HeaderSpecialEpisodeInfo": "特别篇信息", + "LabelAirsDuringSeason": "在以下季中播出", + "LabelAirsAfterSeason": "在以下季后播出", + "LabelAirsBeforeEpisode": "在以下集前播出", + "HeaderExternalIds": "外部标识符", + "HeaderDisplaySettings": "显示设置", + "PlaylistOrder": "播放列表顺序", + "CollectionOrder": "合集顺序", + "LabelDisplayOrder": "显示顺序", + "LabelFileOrder": "文件顺序", + "Display": "显示", + "Countries": "国家", + "Genres": "类型", + "Studios": "工作室", + "Tags": "标签", + "Links": "数据库链接", + "Movie": "影片", + "Program": "节目", + "Channel": "频道", + "Episode": "集", + "Season": "播出季", + "HeaderMetadataSettings": "元数据设置", + "People": "人物", + "Number": "编号", + "Lock": "锁定", + "HeaderScreenLocked": "屏幕锁定", + "HeaderUnlockControls": "解锁控制", + "HeaderTapToUnlock": "点击可解锁", + "LabelMetadataDownloadLanguage": "首选元数据下载语言", + "LabelImageDownloadLanguage": "首选图像下载语言", + "LabelLockItemToPreventChanges": "锁定此项目可防止今后改动", + "LockThisField": "锁定此字段可防止今后刷新元数据时发生改动", + "MessageLeaveEmptyToInherit": "留空可继承上级项目的设置,或者使用全局默认值。", + "LabelCountry": "国家或地区", + "LabelCertificationCountry": "认证国家或地区", + "CertificationCountryHelp": "这将影响使用哪种内容分级系统。", + "LabelDynamicExternalId": "{0} 标识符", + "LabelBirthYear": "出生年份", + "LabelBirthDate": "出生日期", + "LabelDeathDate": "去世日期", + "LabelEndDate": "结束日期", + "LabelSeasonNumber": "季编号", + "LabelEpisodeNumber": "集编号", + "LabelTrackNumber": "曲号", + "LabelNumber": "编号", + "LabelDiscNumber": "盘号", + "LabelParentNumber": "上级编号", + "SortName": "排序标题", + "OriginalTitle": "原标题", + "ReleaseDate": "发行日期", + "Continuing": "继续", + "Ended": "完结", + "HeaderEnabledFields": "已启用字段", + "HeaderEnabledFieldsHelp": "取消选中某字段可将其锁定并防止其数据被更改。", + "Backdrops": "壁纸", + "Images": "图像", + "Runtime": "播放时长", + "ProductionLocations": "产地", + "BirthLocation": "出生地", + "ParentalRating": "家长评分", + "PlayCount": "播放次数", + "Name": "名称", + "Overview": "概要", + "LabelType": "类型", + "LabelPersonRole": "角色", + "LabelPersonRoleHelp": "例如:冰淇淋卡车司机", + "Actor": "演员", + "Composers": "作曲家", + "Composer": "作曲家", + "Director": "导演", + "GuestStar": "客串明星", + "Producer": "制片", + "Writer": "编剧", + "MessageNoSyncJobsFound": "未找到下载项。使用应用中的 “下载” 按钮可创建下载任务。", + "MessageNoDownloadsFound": "未找到离线下载项。使用应用中的 “下载” 按钮可创建下载任务,今后可离线使用。", + "InstallingPackage": "正在安装 {0}", + "PackageInstallCompleted": "{0} 安装已完成。", + "PackageInstallFailed": "{0} 安装失败。", + "PackageInstallCancelled": "{0} 安装已被取消。", + "SeriesYearToPresent": "{0} - 现在", + "OneDevice": "共 1 个设备", + "DeviceCountValue": "共 {0} 个设备", + "OneLog": "共 1 个日志", + "LogCountValue": "共 {0} 个日志", + "OneVote": "共 1 票", + "VoteCountValue": "共 {0} 票", + "OneLike": "共 1 个喜欢", + "LikeCountValue": "共 {0} 个喜欢", + "OneUser": "共 1 个用户", + "UserCountValue": "共 {0} 个用户", + "OneLibrary": "共 1 个媒体库", + "LibraryCountValue": "共 {0} 个媒体库", + "ValueOneItem": "1 项", + "ValueOneEpisode": "共 1 集", + "ValueEpisodeCount": "共 {0} 集", + "Albums": "专辑", + "Song": "歌曲", + "Songs": "歌曲", + "Authors": "作者", + "Books": "书籍", + "AudioBooks": "有声读物", + "HeaderAudioBooks": "有声读物", + "HeaderAudioBook": "有声读物", + "HeaderIdentifyItemHelp": "输入一个或多个搜索条件。移除条件可增加搜索结果。", + "PleaseEnterNameOrId": "请输入名称或外部标识符。", + "MessageItemSaved": "项目已保存。", + "SearchResults": "搜索结果", + "ServerNameIsRestarting": "Emby Server - {0} 正在重启。", + "ServerNameIsShuttingDown": "Emby Server - {0} 正在关闭。", + "HeaderDeleteItems": "删除项目", + "ConfirmDeleteItems": "删除这些项目会将它们从文件系统和媒体库中同时删除。", + "PleaseRestartServerName": "请重启“{0}”上的 Emby Server", + "ConvertingDots": "正在转换…", + "LabelSyncNoTargetsHelp": "您似乎没有任何可支持离线下载的应用。", + "DownloadingDots": "正在下载…", + "LearnMore": "了解更多", + "LabelBitrateMbps": "比特率 (Mbps)", + "ConvertUnwatchedVideosOnly": "仅转换未播放视频", + "SyncUnwatchedVideosOnly": "仅下载未播放视频", + "ConvertUnwatchedVideosOnlyHelp": "仅转换未标记为完全播放的视频。", + "SyncUnwatchedVideosOnlyHelp": "仅下载未标记为完全播放的视频,并在其完全播放后从设备中删除。", + "AutomaticallySyncNewContent": "自动下载新内容", + "AutomaticallySyncNewContentHelp": "添加到此文件夹的新内容将会被自动下载到设备。", + "AutomaticallyConvertNewContent": "自动转换新内容", + "AutomaticallyConvertNewContentHelp": "添加到此文件夹的新内容将会被被自动转换。", + "LabelItemLimit": "项目限制", + "ConvertItemLimitHelp": "可选。设置将要转换的项目数量限制。", + "DownloadItemLimitHelp": "可选。设置将要下载的项目数量限制。", + "PleaseSelectDeviceToSyncTo": "请选择要下载的设备。", + "Screenshots": "截图", + "MoveRight": "右移", + "MoveLeft": "左移", + "HeaderUploadNewImage": "上传新图像", + "HeaderDeleteImage": "删除图像", + "ConfirmDeleteImage": "删除图像?", + "HeaderEditImages": "编辑图像", + "Settings": "设置", + "ShowIndicatorsFor": "显示指示器", + "Episodes": "集", + "Programs": "节目", + "HeaderCastCrew": "演职人员", + "DvrSubscriptionRequired": "Emby Live TV & DVR 需要有效的 {0}Emby Premiere 订阅{1}。", + "HeaderCancelRecording": "取消录制", + "HeaderKeepRecording": "保持录制", + "HeaderCancelSeries": "取消剧集", + "HeaderKeepSeries": "保留剧集", + "HeaderLearnMore": "了解更多", + "SeriesSettings": "剧集设置", + "HeaderRecordingOptions": "录制选项", + "HeaderDoNotRecord": "不要录制", + "HeaderSeriesOptions": "剧集选项", + "Layout": "布局", + "Channels": "频道", + "ChannelNameOnly": "仅频道 {0}", + "Anytime": "任意时间", + "AnyLanguage": "任意语言", + "AroundTime": "{0} 左右", + "HeaderLatestMovies": "最新影片", + "All": "全部", + "Stop": "停止", + "AllChannels": "所有频道", + "NewEpisodesOnly": "仅新集", + "AllEpisodes": "所有集", + "LabelStartWhenPossible": "随时开始", + "LabelStopWhenPossible": "随时停止", + "MinutesBefore": "分钟前", + "MinutesAfter": "分钟后", + "SkipEpisodesAlreadyInMyLibrary": "不要录制我媒体库中已存在的集", + "SkipEpisodesAlreadyInMyLibraryHelp": "如果可用,将使用季和集编号比较剧集。", + "LabelKeepUpTo": "跟随", + "AsManyAsPossible": "尽可能多", + "DefaultErrorMessage": "处理请求时出错。请稍后再试。", + "UntilIDelete": "直到我删除", + "UntilSpaceNeeded": "直到需要空间", + "Categories": "类别", + "Sports": "体育", + "News": "新闻", + "Movies": "影片", + "Music": "音乐", + "Kids": "儿童", + "MoreFromValue": "更多来自 {0}", + "DiedValue": "去世:{0}", + "BornValue": "出生:{0}", + "EnableColorCodedBackgrounds": "依据类别使用要显示的着色背景", + "SortChannelsBy": "频道排序:", + "ChannelNumber": "频道编号", + "HeaderBenefitsEmbyPremiere": "Emby Premiere 特权", + "ThankYouForTryingEnjoyOneMinute": "请享受 1 分钟的播放时间。感谢您试用 Emby 。", + "HeaderTryPlayback": "尝试播放", + "HowDidYouPay": "您想如何付款?", + "IHaveEmbyPremiere": "我拥有 Emby Premiere", + "IPurchasedThisApp": "我已购买此应用", + "ButtonRestorePreviousPurchase": "恢复购买", + "ButtonUnlockWithPurchase": "购买解锁", + "ButtonUnlockPrice": "解锁{0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}", + "HeaderAlreadyPaid": "已付款?", + "ButtonPlayOneMinute": "播放 1 分钟", + "PlaceFavoriteChannelsAtBeginning": "收藏频道置顶", + "HeaderUnlockFeature": "解锁功能", + "MessageDidYouKnowCinemaMode": "您知道吗,借助 Emby Premiere ,您可以使用 Cinema Intros 等功能来增强体验 ?", + "HeaderPlayMyMedia": "播放我的媒体", + "HeaderDiscoverEmbyPremiere": "探索 Emby Premiere", + "HeaderNowPlaying": "正在播放", + "Items": "项目", + "AppName": "应用名称", + "OneChannel": "1 个频道", + "ConfirmRemoveDownload": "要移除下载吗 ?", + "ConfirmRemoveItem": "要移除项目吗 ?", + "RemoveDownload": "移除下载", + "ConfirmCancelConversion": "要取消转换吗 ?", + "CancelConversion": "取消转换", + "KeepDownload": "保留下载", + "AddedOnValue": "添加于 {0}", + "RemovingFromDevice": "正从设备中移除", + "KeepOnDevice": "在设备上保留", + "CancelDownload": "取消下载", + "SyncJobItemStatusReadyToTransfer": "准备传输", + "SyncJobItemStatusSyncedMarkForRemoval": "正从设备中移除", + "SyncJobItemStatusQueued": "已排队", + "SyncJobItemStatusConverting": "正在转换", + "SyncJobItemStatusTransferring": "正在传输", + "SyncJobItemStatusSynced": "已下载", + "Failed": "已失败", + "SyncJobItemStatusRemovedFromDevice": "已从设备中移除", + "Cancelled": "已取消", + "Retry": "重试", + "Continue": "继续", + "ContinueInSecondsValue": "在 {0} 秒后继续。", + "HeaderRemoteControl": "遥控", + "Disconnect": "断连", + "EnableDisplayMirroring": "启用投屏", + "RemoteAccess": "远程访问", + "HeaderPlayOn": "播放于", + "Quality": "质量", + "Auto": "自动", + "AndroidUnlockRestoreHelp": "要恢复以前的购买项,请确保您登录了最初用于购买的 Amazon 或 Google 账户。确保已启用应用商店,且没有任何家长控制的限制,确保您的互联网连接有效。您只需要操作一次,即可恢复之前的购买项。", + "HeaderAspectRatio": "宽高比", + "Original": "原始", + "Fill": "填充", + "Cover": "覆盖", + "MessageNoServersAvailableToConnect": "没有可连接的服务器。如果您被邀请共享服务器,请确保在下面接受了邀请,或者单击了邮件中的链接。", + "MessagePlayAccessRestricted": "此内容的播放受到限制。请与您的 Emby Server 管理员联系以获取更多信息。", + "Accept": "接受", + "Reject": "拒绝", + "Connect": "连接", + "HeaderMyMedia": "我的媒体", + "HeaderMyMediaSmall": "我的媒体(小)", + "LatestFromLibrary": "最新{0}", + "HeaderLatestEpisodes": "最新集", + "ContinuePlaying": "继续播放", + "ContinueWatching": "继续观看", + "HeaderLatestChannelMedia": "最新频道项目", + "HeaderContinueWatching": "继续观看", + "HeaderContinueListening": "继续聆听", + "HeaderActiveRecordings": "进行中录制", + "HeaderLatestRecordings": "最新录制内容", + "LabelConvertTo": "转换为", + "LabelDownloadTo": "下载到", + "HeaderDownloadToDots": "下载到…", + "Next": "下一项", + "LabelSource": "来源", + "VersionNumber": "版本 {0}", + "HeaderAllLanguages": "所有语言", + "Previous": "上一项", + "HeaderNextUp": "后续播放", + "HeaderPlayNextUp": "播放后续内容", + "HeaderLatestFrom": "最新来自{0}", + "LabelHomeScreenSectionValue": "主屏幕区块 {0}", + "PasswordResetComplete": "密码已重置。", + "PasswordSaved": "密码已保存。", + "SettingsSaved": "设置已保存。", + "Upcoming": "预告", + "HeaderSelectImageFile": "选择图像文件", + "None": "无", + "More": "更多", + "Up": "上", + "Down": "下", + "Home": "首页", + "Back": "返回", + "Random": "随机", + "Playback": "播放", + "Favorites": "收藏", + "HeaderHomeScreen": "主屏幕", + "HeaderLatestChannelItems": "最新频道项目", + "HeaderLibraryOrder": "媒体库顺序", + "HeaderOnNow": "正在播出", + "HeaderForKids": "面向儿童", + "HeaderPlaybackError": "播放错误", + "PlaybackErrorNotAllowed": "您目前无权播放此内容。请与系统管理员联系以获取详细信息。", + "RateLimitExceeded": "您的账户已超出 Emby Server 管理员设置的最大流传输限制。请与您的管理员联系以寻求帮助。", + "PlaybackErrorNoCompatibleStream": "当前没有兼容的流。请稍后再试或联系您的系统管理员以获取详细信息。", + "PlaybackErrorPlaceHolder": "请插入光盘以播放此视频。", + "PlaybackErrorNoPlayableItems": "未找到可播放项目。您是否尝试播放了一个空文件夹 ?", + "Guide": "指南", + "Games": "游戏", + "GameSystem": "游戏系统", + "Suggestions": "推荐", + "HeaderFavoriteChannels": "收藏频道", + "HeaderFavoriteCollections": "收藏合集", + "HeaderFavoritePlaylists": "收藏播放列表", + "Collection": "合集", + "Collections": "合集", + "LabelSelectFolderGroups": "自动将以下文件夹中的内容分组到各个视图,例如电影,音乐和电视:", + "LabelSelectFolderGroupsHelp": "未选中的文件夹将显示其自己的视图。", + "Mute": "静音", + "Unmute": "取消静音", + "Folder": "文件夹", + "Folders": "文件夹", + "FileName": "文件名", + "DisplayInOtherHomeScreenSections": "在次屏幕区块中显示,例如“最新媒体”和“继续观看”", + "DisplayInMyMedia": "在主屏幕中显示", + "Shows": "节目", + "MoviesAndShows": "影片和节目", + "HeaderMusicVideo": "音乐视频", + "HeaderMusicVideos": "音乐视频", + "MusicVideos": "音乐视频", + "Videos": "视频", + "MixedContent": "混合内容", + "HomeVideos": "家庭视频", + "HomeVideosAndPhotos": "家庭视频和照片", + "TVShows": "电视节目", + "HeaderLibraryFolders": "媒体库文件夹", + "HeaderTermsOfPurchase": "购买条款", + "PrivacyPolicy": "隐私政策", + "TermsOfUse": "使用条款", + "HeaderRepeatMode": "重播模式", + "HeaderToneMapping": "色调映射", + "RepeatOne": "单项重播", + "RepeatAll": "全部重播", + "LabelDefaultScreen": "默认屏幕", + "ConfirmEndPlayerSession": "您要关闭位于 {0} 的 Emby 吗 ?", + "Yesterday": "昨天", + "Yes": "是", + "No": "否", + "HeaderScanLibraryFiles": "扫描媒体库文件", + "LiveTV": "电视直播", + "Schedule": "计划", + "Recordings": "录制内容", + "ScanForNewAndUpdatedFiles": "扫描新增和已更新的文件", + "NewVersionOfXAvailableForY": "{0} 可用于 {1}", + "DirectStreamHelp1": "媒体的分辨率和媒体类型(H.264 、AC3 等等)与设备兼容,但其媒体容器(.mkv 、.avi 、.wmv 等等)不兼容。此视频将被实时重新打包后再流传输到设备。", + "DirectStreamHelp2": "直接流传输使用很少的处理能力,且不会降低视频质量。", + "MediaIsBeingConverted": "正在将媒体转换为与播放设备兼容的格式。", + "StatsForNerds": "播放统计信息", + "HeaderHardwareAcceleratedDecoding": "硬件加速解码", + "HeaderHardwareAcceleratedEncoding": "硬件加速编码", + "HeaderDirectPlay": "直接播放", + "DirectPlaying": "正在直接播放", + "DirectStreaming": "直接流传输", + "Transcode": "转码", + "Transcoding": "转码", + "ContainerBitrateExceedsLimit": "因质量设置而降低比特率", + "VideoCodecNotSupported": "正在转换视频为兼容的编解码器", + "AudioCodecNotSupported": "正在转换音频为兼容的编解码器", + "SubtitleCodecNotSupported": "正在直接转换字幕进视频", + "DirectPlayError": "正在从播放错误中恢复", + "ContainerNotSupported": "正在转换为兼容的容器", + "VideoLevelNotSupported": "正在转换为兼容的视频级别", + "AudioBitrateNotSupported": "正在转换为兼容的音频比特率", + "AudioChannelsNotSupported": "正在转换为兼容数量的音频声道", + "VideoResolutionNotSupported": "正在转换为兼容的视频分辨率", + "AudioProfileNotSupported": "正在转换为兼容的音频配置", + "AudioSampleRateNotSupported": "正在转换为兼容的音频采样率", + "AnamorphicVideoNotSupported": "不支持的变形视频", + "InterlacedVideoNotSupported": "去隔行视频", + "SecondaryAudioNotSupported": "选择辅助音轨", + "ExternalAudioNotSupported": "选择外部音轨", + "ErrorRemovingEmbyConnectAccount": "移除 Emby Connect 账户时出错。请确保您的互联网连接有效后重试。", + "HeaderEmbyAccountRemoved": "已移除 Emby 账户", + "MessageEmbyAccontRemoved": "已从此用户移除 Emby 账户。", + "HeaderInvitationSent": "已发送邀请", + "Offline": "离线", + "HeaderSignUp": "注册", + "ServerDownloadMessage": "访问 {0} 可下载并安装免费的 Emby Server", + "ServerDownloadMessageWithoutLink": "访问 Emby 网站可下载并安装免费的 Emby Server 。", + "MessageInvitationSentToUser": "已向 {0} 发送了一封邮件,邀请他们接受您的共享邀请。", + "MessageInvitationSentToNewUser": "已向 {0} 发送了一封邮件,邀请他们注册 Emby。", + "GuestUserNotFound": "未找到用户。请确保用户名正确并重试,或尝试输入邮箱地址。", + "ErrorReachingEmbyConnect": "连接 Emby Connect 服务器时出错。请确保你的互联网连接有效并重试。", + "ErrorAddingEmbyConnectAccount1": "添加 Emby Connect 账户时出错。您是否已创建了一个 Emby 账户 ?您可以在 {0} 注册。", + "ErrorAddingEmbyConnectAccount2": "如果仍有问题,请从 Emby 账户使用的邮箱地址向 {0} 发送邮件。", + "ErrorAddingGuestAccount1": "添加 Emby Connect 账户时出错。您的访客是否已创建了一个 Emby 账户 ?他们可以在 {0} 注册。", + "ErrorAddingGuestAccount2": "如果仍有问题,请发送邮件至 {0} ,并附上您以及他们的邮箱地址。", + "MessageEmbyAccountAdded": "已为此用户添加了 Emby 账户。", + "MessagePendingEmbyAccountAdded": "已为此用户添加了 Emby 账户。将发送邮件给此账户的所有者。您需要单击邮件中的链接来确认邀请。", + "HeaderEmbyAccountAdded": "已添加 Emby 账户", + "Skip": "跳过", + "HeaderAdditionalParts": "额外部分", + "ButtonGenerateNewPin": "生成新 PIN 码", + "ConnectLoginHelp1": "借助 Emby Connect ,您可以随时随地访问 Emby Server ,并与家人和朋友共享。", + "CreatePinErrorMessage": "创建 PIN 码时出错。请单击”生成新 PIN 码“并重试。", + "PinExpiredMessage": "PIN 码已过期。请单击”生成新 PIN 码“并重试。", + "ConnectPinCodeHeader": "要用 Emby Connect 登录,请使用移动设备或计算机访问 {0} 并输入以下 PIN 码:", + "LabelSubtitlePlaybackMode": "字幕模式", + "ErrorDeletingItem": "从 Emby Server 中删除项目时出错。请检查 Emby Server 对媒体文件夹具有写入权限后重试。", + "NoSubtitles": "无字幕", + "Default": "默认", + "Absolute": "独立", + "Smart": "智能", + "Small": "小", + "Smaller": "特小", + "Medium": "中", + "Large": "大", + "Larger": "特大", + "ExtraLarge": "超大", + "ExtraSmall": "超小", + "Forced": "强制", + "External": "外部", + "HeaderEmbeddedTitle": "内嵌标题", + "OnlyForcedSubtitles": "仅强制字幕", + "AlwaysPlaySubtitles": "始终播放字幕", + "DefaultSubtitlesHelp": "根据内嵌元数据中的“默认”和“强制”标签加载字幕。当有多个可用字幕时,将优先考虑首选语言。", + "SmartSubtitlesHelp": "音轨为外语时,加载与首选语言匹配的字幕。", + "HeaderSubtitleSettings": "字幕设置", + "HeaderSubtitleAppearance": "字幕外观", + "OnlyForcedSubtitlesHelp": "仅加载标签为 “强制” 的字幕。", + "AutoSelectHearingImpairedHelp": "将加载与首选语言匹配的字幕,还有一个首选项用于标记为听力障碍 (SDH) 的字幕。", + "AlwaysPlaySubtitlesHelp": "忽略音频语言,加载与首选语言匹配的字幕。", + "NoSubtitlesHelp": "默认不加载字幕。您可在播放过程中手动加载。", + "LabelPreferredSubtitleLanguage": "首选字幕语言", + "LabelTextSize": "文本大小", + "TheseSettingsAffectSubtitlesOnThisDevice": "这些设置会影响此设备上的字幕", + "LabelDropShadow": "投影", + "LabelTextBackgroundColor": "文本背景色", + "LabelWindowBackgroundColor": "文本背景色", + "LabelFont": "字体", + "LabelTextColor": "文本颜色", + "LabelBackgroundColor": "背景色", + "LabelBackgroundOpacity": "背景不透明度", + "Raised": "凸", + "Depressed": "凹", + "Uniform": "统一", + "DropShadow": "投影", + "SmallCaps": "全部大写", + "SubtitleAppearanceSettingsDisclaimer": "这些设置不适用于图形字幕(PGS 、DVD 等)以及有其自己内嵌样式的字幕(ASS/SSA)。", + "Normal": "正常", + "HeaderWaitingForWifi": "等待无线连接", + "WifiRequiredToDownload": "需要无线连接才能继续下载。", + "DownloadOnlyOnWifi": "仅无线连接时下载", + "LabelMusicDownloadQuality": "音乐下载质量", + "MusicDownloadQualityHelp": "比特率较高的音频文件将由 Emby Server 转换。选择较高的值可获得更好的质量,或选择较低的值以节省本地存储空间。", + "HeaderDownloadSettings": "下载设置", + "LabelDownloadLocation": "下载位置", + "BrowseForFolder": "浏览文件夹", + "Unlimited": "无限制", + "NoLimit": "无限制", + "Hide": "隐藏", + "HeaderKeepWatching": "继续观看", + "HeaderNextEpisode": "下一集", + "AudioBitDepthNotSupported": "正在转换为兼容的音频位深", + "VideoBitrateNotSupported": "正在转换为兼容的视频比特率", + "VideoProfileNotSupported": "正在转换为兼容的视频配置", + "VideoFramerateNotSupported": "正在转换为兼容的视频帧率", + "VideoBitDepthNotSupported": "正在转换为兼容的视频位深", + "RefFramesNotSupported": "正在转换为兼容数量的视频参考帧", + "ErrorConnectServerUnreachable": "执行请求操作时出错。您的服务器无法通过 {0} 与我们的 Emby Connect 服务器连接。请确保您的服务器具有有效的互联网连接,且已安装的任何防火墙或安全软件都允许其通信。", + "HeaderStopRecording": "停止录制", + "ManageRecording": "管理录制", + "LabelDropImageHere": "在此处拖放图像,或单击选择要上传的图像。", + "MessageFileReadError": "读取文件时出错。请重试。", + "Browse": "浏览", + "HeaderUploadImage": "上传图像", + "HeaderAddUpdateImage": "添加/更新图像", + "HeaderShowFields": "显示字段", + "LabelView": "视图", + "LabelImageType": "图像类型", + "Upload": "上传", + "Primary": "海报", + "PrimaryImageBlur": "海报图模糊", + "Art": "艺术图", + "Backdrop": "壁纸", + "Banner": "横幅图", + "Box": "包装盒(正面)", + "BoxRear": "包装盒(背面)", + "Disc": "光盘封面", + "Logo": "徽标", + "LogoDark": "徽标(深色)", + "LogoLight": "徽标(浅色)", + "LogoLightColor": "徽标(彩色)", + "Menu": "菜单", + "Screenshot": "屏幕截图", + "Thumb": "缩略图", + "HeaderAudioSettings": "音频设置", + "LabelAudioLanguagePreference": "首选音频语言", + "LabelPlayDefaultAudioTrack": "忽略语言,播放默认音轨", + "HeaderVideoQuality": "视频质量", + "CinemaModeConfigurationHelp": "Cinema Intros 可为您的客厅带来真实的电影体验,在正式播放之前可为您提供预告片和自定义介绍。", + "ShowUpNextPreview": "显示下一集预览", + "ShowUpNextPreviewHelp": "在当前结尾处显示下一项的信息。", + "PlayNextEpisodeAutomatically": "自动播放下一集", + "LabelMaxChromecastBitrate": "Chromecast 流传输质量", + "LabelSkipBackLength": "后跳长度", + "LabelSkipForwardLength": "前跳长度", + "EnableCinemaMode": "启用 Cinema Intros", + "LabelInternetQuality": "远程流传输质量", + "LabelCellularQuality": "远程流传输质量(移动网络)", + "HeaderMusicQuality": "音乐质量", + "LabelHomeNetworkQuality": "家庭流传输质量", + "HeaderLatestMedia": "最新媒体", + "HeaderRestartingEmbyServer": "正在重启 Emby Server", + "RestartPleaseWaitMessage": "Emby Server 正在关闭并重启,请稍候。可能需要大约 1 - 2 分钟的时间。", + "HeaderPlayNext": "播放下一项", + "AutoBasedOnLanguageSetting": "自动(基于设备设置)", + "SameAsMainTheme": "与主题相同", + "LabelDateTimeLocale": "日期时区设置", + "Genre": "类型", + "DirectorValue": "导演:{0}", + "DirectorsValue": "导演:{0}", + "GenreValue": "类型:{0}", + "GenresValue": "类型:{0}", + "TagsValue": "标签:{0}", + "Off": "关", + "Title": "标题", + "Year": "年份", + "Filter": "过滤器", + "Filters": "筛选", + "Unplayed": "未播放", + "LabelTVHomeScreen": "电视模式主屏幕", + "Horizontal": "水平", + "Vertical": "垂直", + "HeaderGroupBy": "分组", + "HeaderMediaType": "媒体类型", + "GroupBySeries": "按剧集分组", + "HeaderVideoType": "视频类型", + "HeaderSeriesStatus": "剧集状态", + "Features": "功能", + "Trailers": "预告片", + "Extras": "附加篇", + "ThemeSongs": "主题曲", + "ThemeVideos": "主题视频", + "HeaderFavoriteMovies": "收藏影片", + "HeaderFavoritePhotos": "收藏照片", + "HeaderFavoriteShows": "收藏节目", + "HeaderFavoriteEpisodes": "收藏集", + "HeaderFavoriteVideos": "收藏视频", + "HeaderFavoriteMusicVideos": "收藏音乐视频", + "HeaderFavoriteGames": "收藏游戏", + "HeaderFavoriteArtists": "收藏艺人", + "HeaderFavoriteAlbums": "收藏专辑", + "HeaderFavoriteSongs": "收藏歌曲", + "HeaderFavoriteAuthors": "收藏作者", + "HeaderFavoriteAudioBooks": "收藏有声读物", + "Ascending": "升序", + "Descending": "降序", + "HeaderColorPrimaries": "基色", + "HeaderColorSpace": "色域", + "HeaderColorTransfer": "色彩转换", + "HeaderVideoRange": "视频范围", + "SeriesDisplayOrderHelp": "按播出日期、DVD 序号或绝对编号来购买集。", + "LabelVerticalPositionFromBottom": "垂直位置(从底部开始)", + "HeaderFavoritePeople": "收藏人物", + "MultiSelect": "多选", + "HeaderSignOut": "注销退出", + "HeaderSelectServer": "选择服务器", + "HeaderChangeServer": "更改服务器", + "HeaderChangeUser": "更改用户", + "HeaderAppSettings": "应用设置", + "HeaderLoginSettings": "登录设置", + "LabelRememberLogin": "记住登录", + "LabelAutomaticallySignOut": "自动注销", + "BetaTesterMessage": "感谢您成为 Emby Beta 测试人员!请在 {0}Emby 社区的测试区域{1}中留下反馈。", + "HardwareAccelerated": "硬件加速", + "Software": "软件", + "Metadata": "元数据", + "HeaderMediaInfo": "媒体信息", + "Locked": "已锁定", + "HeaderSplitVersionsApart": "拆分版本", + "Any": "任意", + "Admin": "管理", + "HeaderReadMore": "展开", + "CustomRatingHelp": "自定义评分不会显示,但会用于家长控制评估。家长评分字段仍会显示。", + "KeepUpToHelp": "下次录制开始时,将删除超过限制的录制内容。按照添加日期,优先删除最早的录制内容。", + "NoItemsMatchingFound": "未找到符合您搜索条件的项目。", + "TwoSearchCharsRequired": "请输入至少两个搜索字符。", + "PreventPlaybackContinuing": "通过定期提示用户,以防止无休止的播放。", + "PromptStillWatching": "启用 “您还在看吗?” 提示", + "HeaderMissingMetadata": "缺少元数据", + "HeaderIncludedIn": "所属合集", + "EmbyConnectUserAlreadyLinked": "Emby Connect 账户已链接到该服务器上的另一个用户。", + "VideoFilesWillBeConvertedTo": "转换后的视频将另存为 {0}。", + "VideoWillBeConvertedTo": "视频流将被转换为 {0},或者如果已经是 {0} 且质量符合转换选项,则将直接复制原始文件。", + "VideoWillBeConvertedToOrCopied": "视频流将被转换为 {0},或者如果已是({1})中的任何一个,且质量符合转换选项,则将直接复制原始文件。", + "AudioWillBeConvertedTo": "音频流将被转换为 {0},或者如果已经是 {0} 且质量符合转换选项,则将直接复制原始文件。", + "AudioWillBeConvertedToOrCopied": "音频流将被转换为 {0},或者如果已是({1})中的任何一个,且质量符合转换选项,则将直接复制原始文件。", + "HeaderSpecialKeys": "特殊键", + "FollowingSpecialKeys": "大多数键盘和遥控器均支持以下特殊键:", + "HeaderDeleteSeries": "删除剧集", + "HeaderDeleteLastPlayedEpisode": "删除上次播放的集", + "HeaderConnectingToServer": "正在连接到服务器", + "ServerNameValue": "服务器名称:{0}", + "DomainValue": "域:{0}", + "RatedValue": "分级为 {0}", + "LocalServerRedirectMessage": "现在您将被重定向到您所选连接服务器的管理员所拥有并运营的域:", + "AllMediaOwnedHosted": "所有媒体均由 {0} 的所有者托管和管理。", + "EnableResolutionSwitching": "匹配视频分辨率", + "EnableResolutionSwitchingHelp": "这使得 Emby 能够将分辨率更改为视频播放前编码的相同分辨率。这有助于最大程度的减少您在播放不匹配的视频时可能会出现的卡顿/抖动的情况。", + "EnableDisplayRefreshRateSwitching": "启用显示刷新率切换", + "EnableDisplayRefreshRateSwitchingHelp": "这使得 Emby 可以将显示刷新率更改为与视频播放前编码的帧速率相同(或整倍)的值。这有助于最大程度地减少在播放效果不佳的视频时可能出现的卡顿或抖动的情况。", + "RememberSelectedAudioTracks": "记住音轨选择", + "RememberSelectedSubtitleTracks": "记住字幕选择", + "RememberSelectedSubtitleTracksHelp": "会记住每个视频所选择的字幕,并在以后播放同一视频时起作用。", + "RememberSelectedAudioTracksHelp": "会记住每个视频所选择的音轨,并在以后播放同一视频时起作用。", + "ClearSavedTrackSelections": "清除已保存音轨选择", + "HeaderClearTrackSelections": "清除已保存音轨选择", + "QuestionClearSavedTracks": "清除所有已保存的音轨选择 ?", + "LabelChannelTags": "频道标签", + "AfterThisPlaysConfirmation": "当前播放完后,您想保持播放还是清除之前已排队的音乐 ?", + "Keep": "保持", + "Clear": "清除", + "HeaderClearFilters": "清除筛选", + "HeaderSearchForImages": "搜索图像", + "HeaderSearchNewImage": "搜索新图像", + "HeaderSearchForAnImage": "搜索图像", + "DragDropToReorder": "拖放可重新排序", + "HeaderAddImageFromUrl": "添加来自网址的图像", + "HeaderSetImageFromUrl": "设置来自网址的图像", + "LabelUrl": "网址", + "LabelChannelNumber": "频道编号", + "LabelGuideDataChannel": "指南数据频道", + "GuideDataSource": "指南数据源", + "HeaderCopyToClipboard": "复制到剪贴板", + "TimeRemainingValue": "剩余 {0}", + "LabelResumeRewindSeconds": "恢复播放时自动退回", + "ResumeRewindSecondsHelp": "这可以帮助您回忆起上次中断的地方。仅适用于首次恢复播放,不适用于播放时的每次暂停。", + "HeaderSavePlayQueueToPlaylist": "保存 “播放队列” 为 “播放列表”", + "EnableLogoImagesAsTitle": "在详情屏幕上将徽标图像显示为标题", + "EnableLogoImagesAsTitleHelp": "当有徽标图像时,替换标题文本显示于视频、剧集和其它详情屏幕上。当没有徽标图像时,则自动回退显示标题文本。", + "LabelNowPlayingAudioBackgroundStyle": "播放音频时的背景样式:", + "LabelNowPlayingVideoBackgroundStyle": "播放视频时的背景样式:", + "NowPlayingVideoBackgroundStyleHelp": "设定在其它设备上遥控播放视频时的背景样式。", + "Rotation": "旋转", + "Minutes": "分钟", + "LabelMaxRecordingLength": "最大录制长度", + "MaxRecordingLengthHelp": "限制录制内容的最大时间长度,无论广播将持续多久。如设置为 0,即无限制。", + "RemoteWAN": "远程(广域网)地址", + "HeaderLastConnectedTo": "上次连接至", + "Version": "版本", + "Keyword": "关键词", + "HeaderServerAddress": "服务器地址", + "HeaderSkipIntro": "跳过片头", + "HeaderCreateRecording": "创建录制", + "HeaderAddRecording": "添加录制", + "HeaderChannelAndTime": "频道与时间", + "LabelRecordProgramOrSeriesFrom": "录制以下节目或剧集", + "LabelStartTime": "开始时间", + "LabelEndTime": "结束时间", + "LabelFrequency": "频率", + "Recurring": "重复", + "Once": "一次", + "Start": "开始", + "Unpause": "取消暂停", + "LabelIntroSkipMode": "片头跳过模式", + "ShowSkipIntroButton": "显示 “跳过片头” 按钮", + "AutoSkipIntro": "自动跳过片头", + "DisplayRatingInformationOnVideoPlaybackStart": "视频播放开始时显示评分信息", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "视频开始播放时会简要显示其分级信息。", + "IntroSkipModeHelp": "显示 “跳过片头” 按钮,或者按 Emby Server 检测到的片头标记自动跳过每集片头。必须在 Emby Server 媒体库选项中启用片头检测。", + "EnableHomeScreenFocusPreview": "在主屏幕上显示所选项目的详情预览", + "EnableHomeScreenFocusPreviewHelp": "如果您的主屏幕包含不同的媒体类型,效果可能会不好。", + "LabelHideMediaTransportButtons": "隐藏视频播放控制按钮", + "HideMediaTransportButtonsHelp": "通过隐藏基本的播放控制按钮(如向前、向后和暂停),创建更简单的屏幕播放界面。您仍然可以使用方向键和确认/回车键来使用这些功能。当应用中未检测到鼠标活动时,“自动” 选项将隐藏这些按钮。", + "ImageSizeHelp": "设置图像网格的首选尺寸。", + "LabelImageSize": "图像大小", + "ThisImageIsOnlyPreview": "此图像只是来自元数据搜索引擎的预览。与 Emby Server 下载的实际图像可能不同,这取决于您在 Emby 媒体库设置中配置的选项。", + "ResultsRangeValue": "{2} 的 {0} 到 {1}", + "NotificationsDescription": "设置通知可随时了解 Emby Server 上所发生的重要事件。", + "DeleteEmbyConnectAccount": "删除 Emby Connect 账户", + "DeleteEmbyConnectAccountHelp": "要删除您的 Emby Connect 账户,请登录位于 {2} 的 {0}Emby Community{1} 。登录后,单击右上角的用户名,然后单击“账户设置”,再单击“删除我的账户”。", + "KeepPlayingInBackground": "后台保持播放", + "LabelVideoBackBehavior": "视频播放器后退按钮行为", + "HeaderViewLyrics": "查看歌词", + "HeaderViewMissingEpisodes": "查看遗漏集", + "HeaderMissingEpisodes": "遗漏集", + "HeaderManageAccess": "管理访问", + "HeaderManageCollaboration": "管理协作", + "HeaderLeaveCollaboration": "离开协作", + "HeaderRemoveFromLibrary": "从媒体库中移除", + "RemoveSharedItemConfirmation": "您确定要从媒体库中移除此项吗 ?如要恢复它,所有者需要再次授予您访问权限。", + "SubtitlesDownloaded": "已下载字幕", + "HeaderMakePrivate": "设为私有", + "HeaderMakePublic": "设为公开", + "MakePublicDescription": "所有用户都可以查看此项。用户可以被授予编辑权限。", + "MakePrivateDescription": "用户仍然可以被单独授予访问权限。", + "Private": "私有", + "Public": "公开", + "Collaborative": "协作", + "PreferredShowDisplay": "首选电视节目显示", + "ShowAllEpisodesAllSeasons": "同时显示所有季及其所有集", + "ShowAllEpisodesSingleSeason": "在单季节目中显示所有集", + "ShowSeasonFolders": "始终显示季文件夹", + "HeaderAddAgain": "再次添加", + "UpNext": "下个播放", + "ItemsAlreadyInPlaylist": "其中一些项目已经在您的播放列表中。", + "ItemAlreadyInPlaylist": "此项目已在您的播放列表中。", + "HeaderPlayChannel": "播放频道", + "LabelScreenOrientationDuringVideo": "视频播放时的屏幕方向", + "UseDeviceSetting": "使用设备设置", + "LockToLandscape": "锁定横屏", + "UsernameForFolderHelp": "用于访问此网络文件夹的用户名(如果有)。", + "PasswordForFolderHelp": "用于访问此网络文件夹的密码(如果有)。", + "ShowMediaInfoOnDetailScreens": "在音频和视频详情屏幕的底部显示完整媒体", + "ForgotPasswordNoUserFound": "未找到所输入名称的用户。请重试,或者将名称留空以重置此服务器上所有用户的密码。", + "Silver": "银色", + "DimGray": "暗灰色", + "DarkGray": "深灰色", + "LightGray": "浅灰色", + "Black": "黑色", + "Blue": "蓝色", + "Cyan": "青色", + "Gray": "灰色", + "Green": "绿色", + "Lime": "橙色", + "Magenta": "品红色", + "Orange": "橙色", + "Pink": "粉色", + "Red": "红色", + "Yellow": "黄色", + "White": "白色", + "Purple": "紫色", + "RecentlyReleasedMovies": "近期上映影片", + "RecentlyReleasedEpisodes": "近期发布集", + "DolbyProfile": "杜比配置", + "IpAddress": "IP 地址", + "VideoType": "视频类型", + "HidePlayedMediaFrom": "隐藏已播放媒体,位于", + "BottomEdgePosition": "底部边缘位置", + "VerticalPositionFromBottomScreen": "设置字幕相对于屏幕底部的垂直位置。", + "TopEdgePosition": "顶部边缘位置", + "TopEdgePositionHelp": "设置字幕相对于屏幕顶部允许的最高垂直位置。当字幕包含要放置在顶部的定位指令时使用此功能。", + "HeaderSubtitlePosition": "字幕位置", + "TitleProfilePin": "配置 PIN 码", + "ProfilePinConfirm": "配置 PIN 码(确认)", + "SaveProfilePin": "保存 PIN 码", + "ProfilePinDescription": "创建一个可选的 PIN 码,每当您返回已授权设备上的 Emby 应用时,系统都会提示您输入。如果您的设备有多个用户共用时,此选项会非常有用。您可以根据需要在每台设备上选择是否启用此功能。", + "TitleNewEpisodes": "新集", + "EnterYourPinToContinue": "输入您的 PIN 码可继续。", + "YourPinMustBe": "您的 PIN 码必须是 {0} 位数字。", + "ForgotPin": "忘记 PIN 码 ?", + "RequireEnteringPinToReturn": "每当我返回此应用时,都要求输入我的配置 PIN 码。", + "RequireEnteringPinToReturnQuestion": "每当您返回此应用时,是否要提示您输入配置 PIN 码 ?如果该设备由多个用户共用,您的配置 PIN 码可以帮助防止其他用户访问您的数据。", + "RequireEnteringPinToReturnHelp": "如果该设备由多个用户共享,则非常有用。", + "WrongPinPleaseTryAgain": "糟糕,PIN 码错误。请再试一次。", + "ProfilePinIsOn": "当前已启用配置 PIN 码。", + "IfTryingToConnectToHttp": "如果您尝试使用 HTTP 地址连接到 Emby 服务器,但要求 HTTPS 连接时,您的浏览器可能会拒绝。请尝试以下操作之一:", + "SetupHttpsForYourServer": "设置 {0}Emby Server 要求 HTTPS{1} ,以便您可以使用 HTTPS 进行连接。", + "TitleUnableToReachServer": "无法访问服务器", + "TitleUnableToReachName": "无法访问 {0}", + "HearingImpaired": "听力障碍", + "SignIntoServerName": "登录 {0}", + "About": "其它信息", + "Specials": "特别篇", + "NSettings": "{0} 设置", + "NPreferences": "{0} 首选项", + "DetailScreenOptions": "详情屏幕", + "LabelGenreDisplayLimit": "类型显示限制", + "GenreDisplayLimitHelp": "限制所显示类型的数量(位于项目详情屏幕顶部)。", + "GenreDisplayLimitForListsHelp": "限制所显示类型的数量(位于播放列表、合集和艺人详情屏幕的顶部)。", + "LabelGenreDisplayLimitForLists": "列表中类型显示限制", + "ShowPosterOnDetails": "在详情屏幕上显示海报", + "ShowPosterOnDetailsHelp": "选择在视频详情屏幕上显示海报,或隐藏海报以获得突出背景的简约外观。此设置不适用于较小的屏幕布局,某些项目类型将忽略此设置。", + "EnableAppLogging": "启用应用程序日志记录", + "EnableAppLoggingHelp": "日志记录可能会降低应用性能,并且仅应在出于故障排除目的需要时才启用。更改后需要重新启动应用。", + "LabelSlideshowInterval": "每张照片幻灯片的播放时间", + "TVChannelImageEditorHelp": "支持多个徽标版本。Emby 应用将依据当前主题自动选择合适的徽标。", + "PlaySlideshow": "播放幻灯片", + "CheckForExistingEpisodesInAllLibraries": "检查所有媒体库中现有的集", + "GroupNotificationsBySeriesOrAlbum": "按剧集和专辑对通知进行分组", + "ThemeSettings": "主题设置", + "FollowingActivityWillBeDisrupted": "以下活动将被中断,并且可能需要手动干预才能重新启动:", + "OneActivePlaybackSession": "共 1 个活动播放会话", + "NumActivePlaybackSessions": "共 {0} 个活动播放会话", + "OneActiveRecording": "共 1 个活动录制", + "NumActiveRecordings": "共 {0} 个进行中录制", + "PlayFromLivePosition": "从实时位置开始播放", + "PlayFromStartOfRecording": "从录制内容的开头开始播放", + "ThisChannelIsActivelyRecording": "此频道正在录制中。您想如何开始播放 ?", + "ThemeSongVolume": "主题曲音量", + "HeaderForceConversionForFormats": "强制格式转码", + "ForceConversionForFormatsHelp": "使用此选项可强制对无法在此设备上正常直接播放的格式进行服务器端转码或重新封装。", + "StartupBehavior": "启动行为", + "RememberLastUser": "记住上次用户", + "ShowLoginScreen": "显示登录屏幕", + "SignInAsValue": "登录为 {0}", + "ConvertUnsupportedAudio": "转换不支持的环绕声音频为 Dolby Digital", + "ConvertUnsupportedAudioHelp": "通过让 Emby Server 将不支持的环绕声格式转码为 Dolby Digital ,避免将它们缩减为立体声。", + "HeaderPlaybackCorrection": "播放校正", + "HeaderAttemptPlaybackCorrection": "尝试播放校正", + "PlaybackCorrectionConfirm": "要尝试播放校正吗 ?", + "PlaybackCorrectionDescription": "当前项目是否存在播放问题,例如无视频或音频 ?将尝试使用服务器转码(将此文件转换为对流传输更友好的格式)来纠正播放问题。这将导致此 Emby Server 上的资源消耗增加。", + "PlaybackCorrectionDescription2": "你可以对每个视频最多执行此操作三次,其中重新封装、视频转码和音频转码每次各激活一次。", + "HeaderAlbumsAsContributingArtist": "合作艺人专辑", + "HeaderAlbumsAsComposer": "作曲家专辑", + "Duplicates": "重制", + "HeaderSleepTimer": "睡眠定时器", + "AfterCurrentItem": "当前项目之后", + "HeaderStopPlayback": "停止播放", + "TurnOffTimer": "关闭定时器", + "SleepTimerIsSet": "您已设置睡眠定时器", + "SleepTimerIsOff": "您的睡眠定时器已关闭", + "LabelEnableRemoteControlTVMode": "显示投屏和遥控功能", + "EnableRemoteControlTVModeHelp": "如果您打算使用此设备将媒体发送到其他设备,请启用。", + "ShowOnScreenControls": "显示屏幕控件", + "LabelVideoScreenUpAction": "视频播放器向上操作", + "VideoScreenUpActionHelp": "选择在视频播放器上按下“向上”键时要采取的操作。这适用于当前屏幕上没有可见控件的情况。当控件已经可见时,向上键将用于导航。", + "LabelVideoPlayerLongPressAction": "视频播放器长按操作", + "LetsGetSetup": "让我们做好准备", + "VideoPlayerLongPressActionHelp": "选择在视频播放期间长按“确定”按钮时显示的功能或菜单。仅当视频控制被隐藏或进度条获得焦点时,此设置才会生效。", + "AskAdminToGetPremiere": "此购买操作必须由服务器管理员执行。请让此 Emby Server 的管理员登录并获取 Emby Premiere ,以便您能够享受高级功能。", + "AutoOpenSingleItemsFolders": "自动打开文件夹视图中的单个项目", + "AutoOpenSingleItemsFoldersHelp": "当文件夹只包含一个项目时,自动打开该项目。", + "PlayedOnValue": "已播放 {0}", + "TheseSettingsApplyAppDevice": "这些设置会影响在此设备上播放的所有用户。", + "LastContentDateAdded": "上次添加内容日期", + "RepeatThemeMedia": "重复播放主题", + "HideEpisodeSpoilerInfo": "隐藏未观看剧集的剧透信息", + "HideEpisodeSpoilerInfoHelp": "在大多数屏幕上隐藏未观看剧集的图像和概要。", + "BornValueAge": "出生:{0}(年龄 {1})", + "PreferDirectStreamLiveTV": "电视直播首选直接流传输", + "PreferDirectStreamLiveTVHelp": "直接流传输电视直播可减少 Emby Server 的资源消耗,但在播放过程中可能不那么容易进行跳转操作。启用此功能后,当格式支持且在您配置的质量设置范围内时,电视直播将以直接流传输的方式进行播放。禁用此功能可以在播放时获得更便捷的跳转体验,但会增加资源消耗。", + "HeaderAllRecordings": "全部录制", + "RememberLoginDescription": "登录后,您可以使用应用设置来配置启动行为,包括记住登录状态、以特定用户身份登录或始终显示登录屏幕。", + "ForgetThisServer": "忘记此服务器", + "ForgetServerConfirmation": "您确定要忘记这台服务器吗 ?", + "HeaderThisDevice": "此设备", + "ChaptersGuide": "章节 / 电视直播指南", + "ChaptersGuideHelp": "对于有章节的媒体,显示章节。对于没有章节的媒体,显示电视直播指南(若有)。", + "HeaderShowSeriesImages": "显示剧集图像", + "AppExitConfirmation": "你准备好退出 Emby 了吗 ?", + "AppExitMenu": "退出菜单", + "SideMenu": "侧边导航菜单", + "SystemStorage": "系统存储 ({0})" +} diff --git a/modules/common/strings/zh-HK.json b/modules/common/strings/zh-HK.json new file mode 100644 index 0000000..7f8cc77 --- /dev/null +++ b/modules/common/strings/zh-HK.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "取代現有影片預覽縮圖", + "ReplaceExistingThumbnailImagesHelp": "如果媒體庫啟用此選項,所有現有的影片預覽縮圖將會刪除,並生成新縮圖。", + "DateCreated": "建立日期", + "CreatedOnValue": "建立於 {0}", + "UpdatedOnValue": "更新於 {0}", + "EmbyLoginTerms": "Emby 助你管理家庭影片、照片等個人媒體庫。請參閱{0}使用條款{1},若要繼續使用任何 Emby 軟件,即表示你接受使用條款。", + "MessageUnableToConnectToServer": "現時無法連接到所選的伺服器,請確定伺服器運行無誤,然後再試一次。", + "EmbyIntroMessage": "Emby 讓你輕鬆地從伺服器串流影片、音樂和照片到智能手機、平板電腦和其他裝置。", + "HeaderSignInWithConnect": "以 Emby Connect 登入", + "HeaderWelcomeToEmby": "Emby 歡迎您", + "HeaderNewUsers": "新使用者", + "HeaderPleaseSignIn": "請登入", + "MessageInvalidUser": "使用者名稱或密碼無效,請再試一次。", + "MessageUnlockAppWithPurchaseOrSupporter": "請購買 Emby 永久授權或訂閱 Emby Premiere,以解鎖此功能。", + "MessageUnlockAppWithSupporter": "請訂閱 Emby Premiere 以解鎖此功能。", + "MessageToValidateSupporter": "如果你已經訂閱 Emby Premiere,請確保你已經在你 Emby 伺服器控制台的“Emby Premiere”選項中配置了你的 Emby Premiere,你可以在 Emby 伺服器控制台主菜單中找到“Emby Premiere”選項。", + "ValueSpecialEpisodeName": "特典 - {0}", + "HeaderSignIn": "登入", + "Share": "分享", + "Shared": "已分享", + "Info": "訊息", + "Add": "新增", + "Speed": "速度", + "PlaybackSpeed": "播放速度", + "Chapters": "章節", + "Password": "密碼", + "SavePassword": "儲存密碼", + "LabelPassword": "密碼", + "HeaderResetPassword": "重設密碼", + "Series": "節目系列", + "Preview": "預覽", + "Submit": "提交", + "Never": "永不", + "Table": "表格", + "HeaderScheduledTasks": "任務時間表", + "Plays": "播放次數", + "LastUsedAddressValue": "上次使用位址 {0}", + "LabelKeywordType": "關鍵字類型", + "HeaderSelectColumns": "請選擇欄位", + "HeaderTopResults": "最佳結果", + "HeaderPinSidebar": "釘住側欄", + "Collapse": "收合", + "LabelBackgroundVideoPlayback": "影片背景播放", + "BackgroundVideoPlaybackHelp": "「背景播放」讓影片即使在熒幕關閉的情況下繼續播放。", + "AlwaysOn": "保持開啟", + "HeadphonesOrExternalSpeakersConnected": "已連接耳機或外置喇叭", + "HeaderKeyboardAndRemote": "鍵盤與遙控", + "NoSelectedItemsSupportOperation": "沒有項目被選取,不支持此操作。", + "NoOperationsForSelectedItems": "無法操作所選項目。", + "UploadOnlyOnWifi": "只限 Wi-Fi 上傳", + "HeaderFoldersToUpload": "要上傳的資料夾", + "LabelPasswordConfirm": "確認新密碼", + "HeaderMoveUpInOrder": "按順序上移", + "HeaderDownUpInOrder": "按順序下移", + "LabelUsername": "用戶名稱", + "HeaderAddServer": "新增伺服器", + "HeaderSubtitleOffset": "字幕偏移", + "Watching": "觀看中", + "HeaderRemoveFromContinueWatching": "從繼續播放中移除", + "RemoveThisTitleFromContinueWatching": "從繼續播放中移除此標題?", + "HeaderRemoveFromContinueListening": "從繼續收聽中移除", + "RemoveThisTitleFromContinueListening": "從繼續收聽中移除此標題?", + "HeaderIncreaseSubtitleOffset": "增加字幕偏移", + "HeaderDecreaseSubtitleOffset": "減少字幕偏移", + "Close": "關閉", + "HeaderSeeAll": "全部展開", + "HeaderOpenInNewWindow": "在新視窗中打開", + "LabelEmail": "電子郵件", + "LabelHost": "主機", + "LabelHostHelp": "例如:192.168.1.100 或 https://myserver.com", + "LabelPort": "連接埠", + "Disabled": "已禁用", + "Uninstall": "卸載", + "Enable": "啟用", + "AllTuners": "全部調諧器", + "Disable": "停用", + "NextValue": "下一個:{0}", + "HeaderNextItem": "下一個項目", + "HeaderPreviousItem": "上一個項目", + "NoTrailersMessage": "沒有預告片。要添加預告片,請從{0}Emby插件目錄{1}安裝預告片插件。", + "UninstallPluginConfirmation": "你確定要卸載插件?", + "HeaderUninstallPlugin": "卸載插件", + "AreYouStillWatching": "你還在看嗎?", + "LabelCurrentPassword": "目前密碼", + "LabelNewPassword": "新密碼", + "LabelNewPasswordConfirm": "確認新密碼", + "HeaderRemovePassword": "移除密碼", + "ServerUpdateNeeded": "Emby 伺服器需要更新,請前往 {0} 以下載最新的版本。", + "MessageThankYouForConnectSignUp": "感謝您註冊Emby Connect。電子郵件將發送到您的地址,說明如何確認您的新帳戶。請確認帳號,然後回到這裏登錄。", + "MessageThankYouForConnectSignUpNoValidation": "感謝您註冊Emby Connect! 您可以登錄您的Emby Connect。", + "ErrorMessagePasswordNotMatchConfirm": "兩次密碼必須匹配。", + "ErrorMessageUsernameInUse": "用戶名使用中。請選擇另一個新名稱,然後重試。", + "ErrorMessageEmailInUse": "電子郵件地址使用中。請輸入新的電子郵件地址並重試,或使用忘記密碼功能。", + "HeaderUpcomingOnTV": "即將在直播電視上播放", + "HeaderOtherShowings": "其他放映", + "Showings": "放映", + "HeaderConnectToServer": "連接到伺服器", + "ConnectToServerManually": "手動連接到伺服器", + "LabelEnterConnectUserNameHelp": "這是您用來設置您的 Emby Connect 帳戶", + "HeaderSignInError": "登錄錯誤", + "HeaderManualLogin": "手動登錄", + "PasswordResetConfirmation": "你確定要重置密碼?", + "ContactAdminToResetPassword": "請聯繫你的管理員以重置你的密碼。", + "ForgotPasswordInNetworkRequired": "請連接你的家庭網絡後再試一次以開始密碼重置流程。", + "ForgotPasswordFileCreated": "已在伺服器上創建了以下文件, 並包含有關後續步驟說明:", + "ForgotPasswordFileExpiration": "重設定的PIN碼將在{0}過期", + "InvalidForgotPasswordPin": "輸入為無效或過期的PIN碼,請重試。", + "PasswordResetForUsers": "下列用戶的密碼已被刪除。之後請使用空白密碼登錄。", + "HeaderForgotPassword": "忘記密碼?", + "ForgotPasswordUsernameHelp": "如果您忘記了您的用戶名稱,請留空此欄。", + "HeaderPasswordReset": "密碼重設", + "AttributeNew": "新增", + "Done": "完成", + "HeaderResetToDefault": "重設到預設值", + "Deinterlacing": "去交錯", + "HeaderBurningInSubtitles": "嵌入字幕", + "Premiere": "首映", + "LabelPinCode": "PIN 碼", + "LabelLocalNetworkPinCode": "區域網絡 PIN 碼", + "LabelLocalNetworkPasswordMode": "區域網絡登入模式", + "RequirePasswordInLocalNetwork": "在區域網絡需要輸入密碼", + "NoPasswordInLocalNetwork": "在區域網絡不需要輸入密碼", + "PinCodeInLocalNetwork": "在區域網路允許數字PIN碼", + "LocalNetworkPasswordModeHelp": "選擇與 Emby Server 處於相同本地網絡上設備的登錄方式。", + "HeaderLocalNetworkAccess": "區域網絡訪問", + "Live": "直播", + "Reset": "重設", + "Repeat": "重播", + "Track": "軌", + "Tracks": "音軌", + "HeaderCameraUpload": "相機上傳", + "TrackCount": "{0}首曲目", + "ItemCount": "{0}項目", + "NumberChannelsValue": "{0} 頻道", + "HeaderLatestMusic": "最新音樂", + "HeaderLatestAudioBooks": "最新的有聲書", + "HeaderLatestDownloadedVideos": "最新下載影片", + "HeaderRecentlyPlayed": "最近播放", + "Recent": "最近的", + "HeaderFrequentlyPlayed": "經常播放", + "HeaderMoreLikeThis": "更多相似的", + "HeaderMoreLikeThisOnLiveTV": "在直播電視上更多相似的", + "OriginalAirDateValue": "原始播出日期:{0}", + "EndsAtValue": "完結於{0}", + "Date": "日期", + "AirDate": "播放日期", + "Played": "已播放", + "Daily": "每日", + "Weekly": "每週", + "RequireHashMatch": "需要Hash值吻合", + "RequireHashMatchHelp": "需要Hash值吻合將只留下有實際影片檔測試過的字幕.不勾選此設定,會增加很多字幕檔案,但也增加很多過時或錯誤的字幕", + "SearchForForcedSubtitlesOnly": "只顯示強制字幕", + "SearchForForcedSubtitlesOnlyHelp": "強制字幕會限縮留下標示有外國語言的字幕", + "LastEpisodeDateAdded": "新增最新一集的日期", + "LastEpisodeDateAired": "最新一集發放日期", + "LabelPlaystate": "播放狀態", + "Studio": "製作商", + "Tag": "標籤", + "EpisodeTitle": "集標題", + "Audio": "音訊", + "Video": "影像", + "Subtitle": "字幕", + "Image": "圖像", + "CopyStream": "複製原串流", + "LabelAudioLayout": "音訊佈局", + "LabelAudioCodec": "音訊編碼", + "LabelAudioLanguage": "音訊語言", + "LabelSubtitleLanguage": "字幕語言", + "LabelVideoCodec": "視訊編碼", + "LabelSubtitleCodec": "字幕編碼", + "LabelParentalRating": "家長分級", + "BecauseYouLikeValue": "因為你喜歡{0}", + "BecauseYouWatchedValue": "因為你觀賞過{0}", + "DirectedByValue": "由{0}執導", + "StarringValue": "主演{0}", + "Invitations": "邀請", + "ActorAsRole": "扮演{0}", + "ButtonOk": "確定", + "GroupItemsIntoCollections": "將項目集合到合輯", + "GroupItemsIntoCollectionsHelp": "按加入的珍藏集來分類,如用特定過濾或排序,將自動取消預設分類", + "GroupItemsIntoTags": "將項目集合到標籤", + "GroupItemsIntoTagsHelp": "按項目的標籤來集合分類,如用特定過濾或排序,將自動取消預設分類", + "User": "使用者", + "Access": "存取", + "Users": "用戶", + "Library": "媒體庫", + "Devices": "設備", + "Cancel": "取消", + "Restart": "重新啟動", + "Shutdown": "關機", + "Logs": "日誌", + "Visibility": "可視度", + "Notifications": "通知", + "SendTestNotification": "發送測試通知", + "NotificationSent": "通知已發送", + "DeleteNotificationConfirmation": "你確定要刪除此通知?", + "DeleteNotification": "刪除通知", + "AddNotification": "新增通知", + "EditNotification": "編輯通知", + "LimitUserEventsTo": "限制使用者事件為", + "LimitLibraryEventsTo": "限制媒體庫事件為", + "LimitDeviceEventsTo": "限制裝置事件為", + "ForAdditionalNotificationOptions": "伺服器管理員可以在 Emby {0}插件目錄{1}安裝更多通知服務。", + "Plugins": "外掛程式", + "Systems": "系統", + "Server": "伺服器", + "Dashboard": "控制台", + "PlayOnAnotherDevice": "在另一裝置上播放", + "HeaderConnectionHelp": "連線幫助", + "AccessRestrictedTryAgainLater": "存取被拒,請稍候再試", + "ButtonGotIt": "我知道了", + "RememberMe": "記住賬號", + "EmbyServer": "Emby 伺服器", + "ManageEmbyServer": "管理Emby伺服器", + "ShutdownServer": "關閉Emby伺服器", + "RestartServer": "重新啟動 Emby 伺服器", + "RecordingCancelled": "錄影已取消", + "SeriesCancelled": "電視劇系列已取消", + "Recording": "錄影中", + "SeriesRecording": "電視劇錄影中", + "RecordingScheduled": "已預約錄影", + "SeriesRecordingScheduled": "已預約電視劇系列的錄影", + "HeaderNewRecording": "新的錄影", + "HeaderWakeServer": "喚醒伺服器", + "AttemptingWakeServer": "嘗試喚醒伺服器,請稍候...", + "WakeServerSuccess": "成功!", + "HeaderCustomizeHomeScreen": "主頁個人化", + "WakeServerError": "喚醒伺服器網路封包送達主機,但無法連上Emby伺服器.需多些時間喚醒主機,或是Emby伺服器可能在主機上還沒啟動", + "Days": "錄影日", + "Network": "網絡", + "Networks": "網路", + "SortByValue": "以{0}排序", + "HeaderSortBy": "排序", + "HeaderPhotoAlbums": "相簿", + "Photos": "相片", + "HeaderAppearsOn": "出現在", + "List": "清單", + "HeaderRecordSeries": "錄影電視劇系列", + "HeaderCinemaMode": "電影介紹", + "Conversions": "轉換", + "Downloads": "下載", + "HeaderManageDownloads": "管理下載", + "InternalStorage": "內部儲存空間", + "ExternalStorage": "外部儲存空間", + "UploadToFollowingServers": "上傳到伺服器", + "UploadingNumItems": "正在上傳 {1} 的 {0}", + "DownloadNumItems": "正在下載 {1} 的 {0}", + "HeaderSampleRate": "取樣頻率", + "HeaderReferenceFrames": "影片幀數", + "HeaderBitDepth": "位元深度", + "HeaderPixelFormat": "像素格式", + "Profile": "配置", + "Bitrate": "位元率", + "Expand": "展開", + "Container": "容器", + "Format": "格式", + "Path": "路徑", + "Size": "大小", + "Resolution": "解像度", + "HeaderCodecTag": "編碼標籤", + "Framerate": "幀率", + "Interlaced": "隔行掃描", + "Anamorphic": "寬螢幕", + "Level": "級別", + "Timestamp": "時間戳", + "Language": "語言", + "Codec": "編碼", + "Stream": "串流", + "HeaderExtradata": "額外資料", + "HeaderHardwareAcceleratedTranscoding": "硬體加速轉碼", + "HeaderHardwareAcceleratedTranscodingDescription": "利用您的伺服器 GPU。 Emby 擁有業界最先進、最快的硬體加速。", + "HeaderOfflineDownloads": "離線媒體", + "AndMuchMoreExclamation": "以及更多!", + "HeaderOfflineDownloadsDescription": "下載媒體到您的設備以方便離線使用。", + "LiveTvFeatureDescription": "只要在Emby伺服器中安裝相容的電視調頻設備,即可串流線上電視到任何Emby應用程式中", + "DvrFeatureDescription": "通過Emby DVR安排單個直播電視錄製,系列錄製等。", + "CinemaModeFeatureDescription": "在節目播放前,劇院前導將帶來真實劇院感受的前導片或預告片。", + "HeaderFreeApps": "免費Emby應用程式", + "FreeAppsFeatureDescription": "在你的設備中享用免費登入Emby應用程式", + "HeaderBecomeProjectSupporter": "取得 Emby Premiere", + "HeaderViewServerInfo": "查看伺機器信息", + "PlaybackTvModeRequiresEmbyPremiere": "電視模式下的媒體播放需要有效的 {0}Emby Premiere 訂閱{1}。", + "FeatureRequiresEmbyPremiere": "此功能需要有效的 {0}Emby Premiere 訂閱{1}。", + "HeaderConvertYourRecordings": "錄影轉檔", + "Record": "錄影", + "Save": "儲存", + "Edit": "編輯", + "HeaderSavePlaylist": "儲存播放清單", + "Latest": "最新", + "Download": "下載", + "Downloaded": "已下載", + "Converted": "已轉換", + "RemoveFromHistory": "從記錄中移除", + "ConfirmRemoveFromHistory": "從歷史記錄中刪除此項目嗎?", + "Downloading": "下載中", + "Advanced": "進階", + "LinkedToEmbyConnect": "連結到Emby Connect", + "Delete": "删除", + "Both": "兩者", + "LabelChannelDisplay": "頻道顯示", + "HeaderDeleteItem": "刪除項目", + "HeaderDeleteUser": "刪除使用者", + "DeleteItemConfirmation": "確定要刪除{0}嗎?", + "DeleteUserConfirmation": "確定要刪除用戶{0}嗎?", + "DeleteUsersConfirmation": "確定要刪除這 {0} 個使用者嗎?", + "HeaderDeleteDevice": "刪除設備", + "DeleteDeviceConfirmation": "確定要刪除設備? 下次有使用者以此登入會再次出現", + "ConfirmDeleteItem": "刪除此項目時,也會一併從檔案系統及媒體櫃中刪除。", + "FollowingFilesWillBeDeleted": "下列檔案和資料夾將被刪除:", + "AreYouSureToContinue": "確定要繼續執行?", + "Refresh": "重新整理", + "RefreshingMetadataDots": "刷新中繼資料", + "ScanningLibraryFilesDots": "掃描媒體庫文件...", + "HeaderFavoritesThenByChannelNumber": "我的最愛,之後是頻道台數字", + "HeaderAddToCollection": "添加到收藏庫", + "HeaderFavoritesThenByTitle": "我的最愛,之後是標題", + "HeaderFavoritesThenByDefault": "我的最愛,之後是預設頻道台順序", + "HeaderDefaultChannelOrder": "預設頻道順序", + "HeaderAddToFavorites": "加到我的最愛", + "HeaderRemoveFromFavorites": "從我的最愛中移除", + "Favorited": "已收藏", + "Unfavorited": "取消收藏", + "HeaderNewCollection": "新珍藏集", + "HeaderNewPlaylist": "新播放清單", + "AllCollections": "所有合輯", + "AllPlaylists": "所有播放列表", + "Create": "創建", + "HeaderAddedToPlaylist": "已加入到播放清單", + "HeaderAddedToCollection": "已加入到珍藏集", + "OneItemAddedTo": "1個項目已新增到 \"{0}\"", + "ItemsAddedTo": "{0}個項目已加入到 \"{1}\"", + "HeaderAddedToPlayQueue": "已加入到播放隊列", + "HeaderPlayingNext": "正在播放下一個", + "Help": "幫助", + "HeaderGetHelp": "需要幫助", + "LabelTVDisplayMode": "啟用電視版介面", + "Desktop": "桌面", + "Mobile": "手機/平板", + "Navigation": "導航", + "HeaderVideoPlayback": "視訊播放", + "TV": "電視", + "HeaderEmbyConnect": "Emby 連線", + "Seasons": "季度集", + "OneTrack": "1音軌", + "OneSeason": "1季", + "Libraries": "媒體庫", + "NumberSeasonsValue": "{0}季", + "TVDisplayModeHelp": "啟用電視版介面,以便以遙控器操作。如果您主要以滑鼠或觸控熒幕操作的話,則不建議啟用此選項。", + "LabelDisplayLanguage": "顯示語言", + "LabelDisplayLanguageHelp": "翻譯 Emby 是一個進行中的項目。", + "LearnHowYouCanContribute": "讓你學習如何貢獻", + "NewCollectionHelp": "合輯讓您能夠建立個人化的電影及其他媒體內容", + "SearchForCollectionInternetMetadata": "從互聯網搜尋相關圖片和資料屬性", + "DisplayMissingEpisodesWithinSeasons": "顯示本季缺少的節目單元", + "DisplayMissingEpisodesWithinSeasonsHelp": "必須在 Emby 伺服器的電視媒體庫設定中也啟用此功能。", + "EnableThemeSongs": "開啟主題曲", + "EnableBackdrops": "啟用背景音樂", + "EnableThemeSongsHelp": "如啟用,瀏覽媒體庫時,背景將播放主題曲", + "EnableBackdropsHelp": "如啟用,瀏覽媒體庫中部分頁面,將播放背景音樂", + "EnableThemeVideos": "啟用主題影片", + "EnableThemeVideosHelp": "如啟用,瀏覽媒體庫時,背景將播放主題影片", + "RunAtStartup": "在啟動時執行", + "ServerStartup": "伺服器啟動", + "EmbyServerOnXHasStarted": "Emby 伺機器 {0} 已啟動。", + "LabelScreensaver": "螢幕保護程式", + "LabelSoundEffects": "聲音特效", + "LabelName": "名稱", + "NewCollectionNameExample": "例如:星球大戰收藏庫", + "MessageItemsAdded": "已加入項目", + "OptionNew": "新增...", + "LabelPlaylist": "播放清單", + "AddToPlaylist": "添加到播放列表", + "HeaderAddToPlaylist": "添加到播放列表", + "Subtitles": "字幕", + "LabelTheme": "主題", + "LabelSettingsTheme": "設定頁面主題", + "LabelThemeAccentColor": "強調色", + "ThemeAccentColorDescription": "控制重要指標,圖示和文字顏色", + "SearchForSubtitles": "字幕搜索", + "LabelLanguage": "語言", + "Search": "搜尋", + "NoSubtitleSearchResultsFound": "找不到任何結果。您是否已配置{0}字幕下載{1}?", + "NoLyricsSearchResultsFound": "無發現任何結果。是否已有設定{0}歌詞下載{1}", + "Lyrics": "歌詞", + "SearchForLyrics": "歌詞搜尋", + "Finish": "完成", + "File": "檔案", + "Exit": "離開", + "Sleep": "休眠", + "Setup": "設定", + "MessageAreYouSureDeleteSubtitles": "您確定希望刪除此字幕文件?", + "ConfirmDeletion": "確定刪除", + "MySubtitles": "我的字幕", + "MessageDownloadQueued": "已排隊下載", + "HeaderEditSubtitles": "編輯字幕", + "UnlockGuide": "解鎖指南", + "HeaderRefreshMetadata": "刷新中繼資料", + "HeaderRefreshAllMetadata": "刷新所有中繼資料", + "ReplaceExistingImages": "取代現有圖片", + "ReplaceExistingImagesHelp": "所有現有圖片將被刪除,新圖片將被下載。在某些情況下,這可能會導致可用圖片比以前更少。", + "ReplaceAllMetadata": "取代所有中繼資料", + "SearchForMissingMetadata": "搜尋遺漏的中繼資料", + "LabelRefreshMode": "重新整理模式", + "NoItemsFound": "未找到項目", + "HeaderSaySomethingLike": "說點東西,像是...", + "ButtonTryAgain": "重試", + "HeaderYouSaid": "您說了...", + "MessageWeDidntRecognizeCommand": "很抱歉,我們無法辨識此指令", + "MessageIfYouBlockedVoice": "如果您拒絕程式使用語音辨識,您將需要在重試之前再次設定", + "ValueDiscNumber": "光碟{0}", + "Unrated": "未分級", + "Favorite": "最喜愛", + "Like": "喜歡", + "Dislike": "不喜歡", + "RefreshDialogHelp": "元資料會根據 Emby 的媒體庫設定以及所啟用的元資料提供者更新。", + "Open": "開啟", + "Play": "播放", + "Pause": "暫停", + "HeaderPlayQueue": "播放排序", + "HeaderAddToPlayQueue": "加到播放排序", + "Shuffle": "隨機播放", + "Identify": "識別", + "HeaderRemoveIdentification": "移除識別", + "ResetMetadataConfirmation": "您確定要重置所有中繼資料嗎?", + "HeaderEditMetadata": "編輯中繼資料", + "Convert": "轉換", + "Resume": "恢復播放", + "HeaderInstantMix": "實時混音", + "HeaderGoToItem": "前往項目", + "HeaderGoToSeason": "前往季度", + "HeaderGoToSeries": "前往劇集", + "HeaderGoToAlbum": "前往專輯", + "HeaderGoToArtist": "前往藝術家", + "HeaderPlayAll": "全部播放", + "PictureInPicture": "畫中畫", + "Fullscreen": "全屏幕", + "ExitFullscreen": "離開全屏幕", + "Rewind": "倒前", + "FastForward": "快速向前", + "Remove": "移除", + "Rename": "重新命名", + "Queue": "排序", + "QueueAllFromHere": "由此處開始排序", + "PlayAllFromHere": "由此處開始全部播放", + "PlayFromBeginning": "從頭播放", + "FromBeginning": "從頭播放", + "ResumeAt": "從{0}恢復播放", + "HeaderRemoveFromPlaylist": "從播放清單中移除", + "HeaderRemoveFromPlayQueue": "從播放排序移除", + "HeaderRemoveFromCollection": "從珍藏集中移除", + "Sort": "排序", + "Trailer": "預告片", + "SelectNone": "選擇無", + "SelectAll": "全部選擇", + "HeaderMarkPlayed": "標示已播放", + "HeaderMarkUnplayed": "標示未播放", + "HeaderGroupVersions": "群組版本", + "PleaseSelectTwoItems": "請至少選擇兩個項目", + "HeaderConfirmRecordingCancellation": "確認取消錄影", + "MessageConfirmRecordingCancellation": "取消錄影", + "Album": "專輯", + "AlbumArtist": "專輯歌手", + "Error": "錯誤", + "VoiceInput": "語音輸入", + "LabelContentType": "內容類型", + "LabelPath": "路徑", + "Playlists": "播放清單", + "LabelTitle": "標題", + "LabelOriginalTitle": "原始標題", + "LabelSortTitle": "排序用標題", + "LabelDateAdded": "加入日期", + "DateAdded": "新增日期", + "DateModified": "修改日期", + "DatePlayed": "已播放日期", + "DateLastActive": "最後活動日期", + "ConfigureDateAdded": "Emby伺服器總覽頁中,媒體庫配置可設定-如何決定資料加入時間", + "LabelStatus": "狀態", + "LabelArtistsHelp": "分開多重使用", + "HeaderAlbumArtists": "專輯歌手", + "LabelAlbumArtists": "專輯歌手", + "LabelAlbum": "專輯", + "Artist": "歌手:", + "Artists": "藝術家", + "ImdbRating": "IMDB 評分", + "CommunityRating": "討論區評分", + "LabelCommunityRating": "討論區評分", + "LabelCriticRating": "評論家評分", + "CriticRating": "評論家評分", + "LabelWebsite": "網站", + "Tagline": "標語", + "LabelOverview": "概要", + "LabelShortOverview": "簡述", + "LabelReleaseDate": "發行日期", + "LabelPlaceOfBirth": "出生地", + "Aired": "已發表", + "LabelAirDays": "播出日子", + "LabelAirTime": "播出時間", + "LabelRuntimeMinutes": "長度 (分鐘)", + "LabelCustomRating": "自訂評分", + "LabelOriginalAspectRatio": "原始長闊比", + "Label3DFormat": "3D 格式", + "FormatValue": "格式:{0}", + "DownloadsValue": "{0}下載", + "HashMatch": "Hash值吻合", + "EnableExternalVideoPlayers": "啟用外部視訊播放器", + "EnableExternalVideoPlayersHelp": "開始播放視頻時,將顯示一個外部播放器菜單。", + "HeaderSpecialEpisodeInfo": "特別劇集資訊", + "LabelAirsDuringSeason": "季度中播出次數", + "LabelAirsAfterSeason": "季度後播出次數", + "LabelAirsBeforeEpisode": "劇集播出前播出次數", + "HeaderExternalIds": "外部識別碼", + "HeaderDisplaySettings": "顯示設定", + "PlaylistOrder": "播放清單排序", + "CollectionOrder": "珍藏集排序", + "LabelDisplayOrder": "顯示順序", + "LabelFileOrder": "檔案順序", + "Display": "顯示", + "Countries": "國家", + "Genres": "類型", + "Studios": "工作室", + "Tags": "標籤", + "Links": "連結", + "Movie": "電影", + "Program": "節目", + "Channel": "頻道", + "Episode": "劇集", + "Season": "季度", + "HeaderMetadataSettings": "中繼資料設定", + "People": "人物", + "Number": "編號", + "Lock": "鎖定", + "HeaderScreenLocked": "屏幕鎖定", + "HeaderUnlockControls": "解鎖控制", + "HeaderTapToUnlock": "點擊解鎖", + "LabelMetadataDownloadLanguage": "首選元資料下載語言", + "LabelImageDownloadLanguage": "首選圖片下載語言", + "LabelLockItemToPreventChanges": "鎖定此項目以防止更改", + "LockThisField": "當刷新中繼資料,鎖定此區避免未來改變", + "MessageLeaveEmptyToInherit": "保留空白以繼承父系項目設定或全域預設值", + "LabelCountry": "國家", + "LabelCertificationCountry": "認證地", + "CertificationCountryHelp": "此設定將決定使用哪套評級制度。", + "LabelDynamicExternalId": "{0} 識別碼", + "LabelBirthYear": "出生年份", + "LabelBirthDate": "出生日期", + "LabelDeathDate": "逝世日期", + "LabelEndDate": "完結日期", + "LabelSeasonNumber": "季度編號", + "LabelEpisodeNumber": "集數編號", + "LabelTrackNumber": "音軌編號", + "LabelNumber": "編號", + "LabelDiscNumber": "光碟編號", + "LabelParentNumber": "家長編號", + "SortName": "排序標題", + "OriginalTitle": "原裝標題", + "ReleaseDate": "發佈日期", + "Continuing": "繼續", + "Ended": "完成", + "HeaderEnabledFields": "已啟用的欄目", + "HeaderEnabledFieldsHelp": "不勾選此欄位以鎖定,避免資料被變更", + "Backdrops": "背景", + "Images": "圖片", + "Runtime": "片長", + "ProductionLocations": "產地", + "BirthLocation": "出生地", + "ParentalRating": "家長評級", + "PlayCount": "播放次數", + "Name": "名稱", + "Overview": "總覽", + "LabelType": "類型", + "LabelPersonRole": "角色", + "LabelPersonRoleHelp": "舉例: 冰淇淋車司機", + "Actor": "演員", + "Composers": "作曲家", + "Composer": "作曲家", + "Director": "導演", + "GuestStar": "特約明星", + "Producer": "製片人", + "Writer": "編劇", + "MessageNoSyncJobsFound": "沒有找到已下載的項目。在應用程式中使用下載按鈕,新增下載工作", + "MessageNoDownloadsFound": "沒有已離線下載的項目。在應用程式中點擊下載按鈕,下載媒體到離線使用", + "InstallingPackage": "正在安裝{0}", + "PackageInstallCompleted": "{0}安裝完成", + "PackageInstallFailed": "{0}安裝失敗", + "PackageInstallCancelled": "{0}已取消安裝", + "SeriesYearToPresent": "{0} - 現在", + "OneDevice": "1個裝置", + "DeviceCountValue": "{0}個設備", + "OneLog": "1個日誌", + "LogCountValue": "{0}日誌", + "OneVote": "1個投票", + "VoteCountValue": "{0} 投票", + "OneLike": "1個喜歡", + "LikeCountValue": "{0} 喜歡", + "OneUser": "1個使用者", + "UserCountValue": "{0}個用戶", + "OneLibrary": "1個媒體庫", + "LibraryCountValue": "{0} 媒體庫", + "ValueOneItem": "1個項目", + "ValueOneEpisode": "1集", + "ValueEpisodeCount": "{0} 劇集", + "Albums": "專輯", + "Song": "歌曲", + "Songs": "歌曲", + "Authors": "作者", + "Books": "書籍", + "AudioBooks": "有聲讀物", + "HeaderAudioBooks": "有聲讀物", + "HeaderAudioBook": "有聲書", + "HeaderIdentifyItemHelp": "輸入一至兩個搜尋條件,移除增加搜尋結果的條件", + "PleaseEnterNameOrId": "請輸入名稱或外部ID", + "MessageItemSaved": "項目已儲存", + "SearchResults": "搜尋結果", + "ServerNameIsRestarting": "Emby伺機器 - {0} 正在重新啟動", + "ServerNameIsShuttingDown": "Emby伺機器 - {0} 正在關機中", + "HeaderDeleteItems": "刪除項目", + "ConfirmDeleteItems": "從檔案系統刪除此項目將和從媒體庫中移除", + "PleaseRestartServerName": "請重新啟動Emby伺服器 - {0}.", + "ConvertingDots": "轉換中...", + "LabelSyncNoTargetsHelp": "似乎看來完全可支援離線下載的app", + "DownloadingDots": "下載中...", + "LearnMore": "了解更多", + "LabelBitrateMbps": "位元率 (Mbps)", + "ConvertUnwatchedVideosOnly": "只轉換未播放影片", + "SyncUnwatchedVideosOnly": "只下載未播放影片", + "ConvertUnwatchedVideosOnlyHelp": "只為被標注已觀看的影片轉檔", + "SyncUnwatchedVideosOnlyHelp": "只下載被標注未觀看完成的影片,影片全部播放後將被移除", + "AutomaticallySyncNewContent": "自動下載新內容", + "AutomaticallySyncNewContentHelp": "加入到資料夾的新內容將會自動下載到設備", + "AutomaticallyConvertNewContent": "自動轉換新內容", + "AutomaticallyConvertNewContentHelp": "加入到資料夾的新內容將會被自動轉換", + "LabelItemLimit": "項目限制", + "ConvertItemLimitHelp": "(選用)設定項目數量限制將被轉換", + "DownloadItemLimitHelp": "(選用)設定項目數量限制將被下載", + "PleaseSelectDeviceToSyncTo": "請選擇要下載的設備。", + "Screenshots": "螢幕擷圖", + "MoveRight": "右移", + "MoveLeft": "左移", + "HeaderUploadNewImage": "上載新圖片", + "HeaderDeleteImage": "刪除圖片", + "ConfirmDeleteImage": "刪除圖片?", + "HeaderEditImages": "編輯圖片", + "Settings": "設定", + "ShowIndicatorsFor": "呈現指示給:", + "Episodes": "劇集", + "Programs": "節目表", + "HeaderCastCrew": "演員&工作人員", + "DvrSubscriptionRequired": "Emby直播電視和DVR需要有效的{0} Emby Premiere訂閱{1}。", + "HeaderCancelRecording": "取消錄影", + "HeaderKeepRecording": "保持錄影", + "HeaderCancelSeries": "取消電視劇", + "HeaderKeepSeries": "保留電視劇", + "HeaderLearnMore": "了解更多", + "SeriesSettings": "系列劇集設定", + "HeaderRecordingOptions": "錄影選項", + "HeaderDoNotRecord": "不要錄影", + "HeaderSeriesOptions": "系列劇集選項", + "Layout": "使用者介面", + "Channels": "頻道", + "ChannelNameOnly": "只限{0}頻道", + "Anytime": "任何時間", + "AnyLanguage": "任何語言", + "AroundTime": "大約{0}", + "HeaderLatestMovies": "最新電影", + "All": "全部", + "Stop": "停止", + "AllChannels": "所有頻道", + "NewEpisodesOnly": "只限新劇集", + "AllEpisodes": "只限新劇集", + "LabelStartWhenPossible": "可以的話就啟動", + "LabelStopWhenPossible": "可以的話就停止", + "MinutesBefore": "分鐘之前", + "MinutesAfter": "分鐘之後", + "SkipEpisodesAlreadyInMyLibrary": "已在資料庫內的劇集不用錄影", + "SkipEpisodesAlreadyInMyLibraryHelp": "如果可以,劇集會以季度和集數來比較", + "LabelKeepUpTo": "保持到", + "AsManyAsPossible": "越多越好", + "DefaultErrorMessage": "處理請求發生錯誤。 請稍後再試。", + "UntilIDelete": "直到刪除", + "UntilSpaceNeeded": "直到需要空間", + "Categories": "目錄", + "Sports": "運動", + "News": "新聞", + "Movies": "電影", + "Music": "音樂", + "Kids": "兒童", + "MoreFromValue": "更多來自 {0}", + "DiedValue": "死於: {0}", + "BornValue": "出生: {0}", + "EnableColorCodedBackgrounds": "根據類別,套用多彩底色呈現", + "SortChannelsBy": "頻道排序依據", + "ChannelNumber": "頻道編號", + "HeaderBenefitsEmbyPremiere": "Emby高級會員好處", + "ThankYouForTryingEnjoyOneMinute": "請享受一分鐘的播放。感謝您嘗試Emby。", + "HeaderTryPlayback": "嘗試播放", + "HowDidYouPay": "你想如何付款?", + "IHaveEmbyPremiere": "我擁有Emby高級會員", + "IPurchasedThisApp": "我已購買這程式", + "ButtonRestorePreviousPurchase": "恢復購買", + "ButtonUnlockWithPurchase": "購買以解鎖", + "ButtonUnlockPrice": "解鎖 {0}", + "EmbyPremiereMonthlyWithPrice": "Emby高級會員月費 {0}", + "HeaderAlreadyPaid": "已付費?", + "ButtonPlayOneMinute": "播放1分鐘", + "PlaceFavoriteChannelsAtBeginning": "將最愛頻道放到開頭", + "HeaderUnlockFeature": "解鎖功能", + "MessageDidYouKnowCinemaMode": "你知道有了Emby高級會員,可使用像是劇院模式功能,以享有更好的使用體驗?", + "HeaderPlayMyMedia": "播放我的媒體", + "HeaderDiscoverEmbyPremiere": "探索Emby 高級會員", + "HeaderNowPlaying": "現在播放中", + "Items": "項目", + "AppName": "應用程式名稱", + "OneChannel": "一個頻道", + "ConfirmRemoveDownload": "移除下載?", + "ConfirmRemoveItem": "要移除此項目嗎?", + "RemoveDownload": "移除下載", + "ConfirmCancelConversion": "取消轉換?", + "CancelConversion": "取消轉換", + "KeepDownload": "保留下載", + "AddedOnValue": "新增{0}", + "RemovingFromDevice": "從裝置中移除中", + "KeepOnDevice": "保留在裝置上", + "CancelDownload": "取消下載", + "SyncJobItemStatusReadyToTransfer": "準備傳送", + "SyncJobItemStatusSyncedMarkForRemoval": "從裝置中移除中", + "SyncJobItemStatusQueued": "已排列", + "SyncJobItemStatusConverting": "轉換中", + "SyncJobItemStatusTransferring": "傳送中", + "SyncJobItemStatusSynced": "已下載", + "Failed": "失敗", + "SyncJobItemStatusRemovedFromDevice": "已從裝置中移除", + "Cancelled": "已取消", + "Retry": "重試", + "Continue": "繼續", + "ContinueInSecondsValue": "將在 {0} 秒後繼續", + "HeaderRemoteControl": "遙遠控制", + "Disconnect": "中斷連線", + "EnableDisplayMirroring": "啟用顯示鏡像", + "RemoteAccess": "遠端存取", + "HeaderPlayOn": "播放到", + "Quality": "品質", + "Auto": "自動", + "AndroidUnlockRestoreHelp": "恢復之前購買,請確認使用原購買的Google或Amazon帳號登入設備。確認App商店啟用,且無任何家長管制,也確認有外部網路連線。僅需執行一次即可恢復之前購買", + "HeaderAspectRatio": "長寬比", + "Original": "原始", + "Fill": "填入", + "Cover": "封面", + "MessageNoServersAvailableToConnect": "網路上無可用伺服器可連接。如被邀請分享伺服器,確定有接受,或是在電郵中有按下連結", + "MessagePlayAccessRestricted": "目前,此內容的播放受到限制。請與您的Emby服務器管理員聯繫以獲取更多信息。", + "Accept": "接受", + "Reject": "拒絕", + "Connect": "連接", + "HeaderMyMedia": "我的媒體", + "HeaderMyMediaSmall": "我的媒體(小)", + "LatestFromLibrary": "最新{0}", + "HeaderLatestEpisodes": "最新劇集", + "ContinuePlaying": "繼續播放", + "ContinueWatching": "繼續觀看", + "HeaderLatestChannelMedia": "最新頻道項目", + "HeaderContinueWatching": "繼續觀看", + "HeaderContinueListening": "繼續收聽", + "HeaderActiveRecordings": "正在錄影的節目", + "HeaderLatestRecordings": "最新錄製的節目", + "LabelConvertTo": "轉換到", + "LabelDownloadTo": "下載到", + "HeaderDownloadToDots": "下載到...", + "Next": "下一首", + "LabelSource": "來源", + "VersionNumber": "版本 {0}", + "HeaderAllLanguages": "所有語言", + "Previous": "上一首", + "HeaderNextUp": "接下來", + "HeaderPlayNextUp": "播放接下來", + "HeaderLatestFrom": "最新的 {0}", + "LabelHomeScreenSectionValue": "主頁部分 {0}", + "PasswordResetComplete": "密碼已經重設", + "PasswordSaved": "密碼已保存", + "SettingsSaved": "設定已保存", + "Upcoming": "即將上映", + "HeaderSelectImageFile": "選擇圖片檔案", + "None": "沒有", + "More": "更多", + "Up": "上", + "Down": "下", + "Home": "主頁", + "Back": "返回", + "Random": "隨機", + "Playback": "播放", + "Favorites": "我的最愛", + "HeaderHomeScreen": "主頁", + "HeaderLatestChannelItems": "最新頻道項目", + "HeaderLibraryOrder": "資料庫排序", + "HeaderOnNow": "現在播放", + "HeaderForKids": "給兒童", + "HeaderPlaybackError": "播放錯誤", + "PlaybackErrorNotAllowed": "您目前不允許播放此內容。請與系統管理員聯繫以獲取詳細信息。", + "RateLimitExceeded": "你的帳號已超過Emby伺服器管理員設定最大串流限制。請聯繫尋求協助", + "PlaybackErrorNoCompatibleStream": "當前沒有兼容的流。請稍後再試或聯繫您的系統管理員以獲取詳細信息。", + "PlaybackErrorPlaceHolder": "請插入光盤以播放此視頻。", + "PlaybackErrorNoPlayableItems": "未找到可播放的項目。您想嘗試播放一個空資料夾嗎?", + "Guide": "指南", + "Games": "遊戲", + "GameSystem": "遊戲系統", + "Suggestions": "推薦影片", + "HeaderFavoriteChannels": "最喜愛的頻道", + "HeaderFavoriteCollections": "最喜愛珍藏集", + "HeaderFavoritePlaylists": "最喜愛的播放清單", + "Collection": "珍藏集", + "Collections": "合輯", + "LabelSelectFolderGroups": "自動分類以下資料夾,預覽內容,如:電影,音樂和電視:", + "LabelSelectFolderGroupsHelp": "沒勾選的資料夾將以各自方式顯示", + "Mute": "靜音", + "Unmute": "取消靜音", + "Folder": "資料夾", + "Folders": "資料夾", + "FileName": "檔案名稱", + "DisplayInOtherHomeScreenSections": "在首頁中第二段顯示如最新媒體和繼續觀賞", + "DisplayInMyMedia": "在主頁上顯示", + "Shows": "電視秀", + "MoviesAndShows": "電影和節目", + "HeaderMusicVideo": "音樂影片", + "HeaderMusicVideos": "MV", + "MusicVideos": "MV", + "Videos": "影片", + "MixedContent": "混合內容", + "HomeVideos": "家庭影片", + "HomeVideosAndPhotos": "家庭影片和照片", + "TVShows": "電視節目", + "HeaderLibraryFolders": "媒體庫資料夾", + "HeaderTermsOfPurchase": "購買條款", + "PrivacyPolicy": "隱私權政策", + "TermsOfUse": "使用條款", + "HeaderRepeatMode": "重播模式", + "HeaderToneMapping": "色調映射", + "RepeatOne": "單曲重播", + "RepeatAll": "全部重播", + "LabelDefaultScreen": "預設畫面", + "ConfirmEndPlayerSession": "你希望在{0}關閉Emby?", + "Yesterday": "昨天", + "Yes": "是", + "No": "否", + "HeaderScanLibraryFiles": "掃描媒體庫文件", + "LiveTV": "電視直播", + "Schedule": "排程", + "Recordings": "錄影", + "ScanForNewAndUpdatedFiles": "探索新和更新過檔案", + "NewVersionOfXAvailableForY": "{0} 可用於 {1}", + "DirectStreamHelp1": "媒體分辨率和媒體編碼(H.264,AC3等)方面與裝置兼容,但在不兼容的媒體容器(.mkv,.avi,.wmv等)中,視頻將被重新打包後流傳輸到裝置", + "DirectStreamHelp2": "直接傳輸使用較少的處理能力,且不會降低視頻質量。", + "MediaIsBeingConverted": "媒體正在轉換為與裝置兼容的格式", + "StatsForNerds": "播放統計", + "HeaderHardwareAcceleratedDecoding": "硬體加速解碼", + "HeaderHardwareAcceleratedEncoding": "硬體加速編碼", + "HeaderDirectPlay": "直接播放", + "DirectPlaying": "直接播放中", + "DirectStreaming": "直接串流中", + "Transcode": "轉碼", + "Transcoding": "轉碼", + "ContainerBitrateExceedsLimit": "由於品質設置而降低比特率", + "VideoCodecNotSupported": "將視頻轉換為兼容的編解碼器", + "AudioCodecNotSupported": "將音訊轉換為兼容的編解碼器", + "SubtitleCodecNotSupported": "將字幕直接轉入視頻中", + "DirectPlayError": "從播放發生錯誤中恢復", + "ContainerNotSupported": "轉換到兼容的容器", + "VideoLevelNotSupported": "轉換到兼容的影片級別", + "AudioBitrateNotSupported": "轉換到兼容的音訊比特率", + "AudioChannelsNotSupported": "轉換到兼容的音樂頻道", + "VideoResolutionNotSupported": "轉換到兼容的影像解像度", + "AudioProfileNotSupported": "轉換到兼容的音頻設定檔", + "AudioSampleRateNotSupported": "轉換到兼容的音訊取樣率", + "AnamorphicVideoNotSupported": "不支持寬螢幕影片", + "InterlacedVideoNotSupported": "隔行掃描視頻", + "SecondaryAudioNotSupported": "選擇第二條聲軌", + "ExternalAudioNotSupported": "選擇外部聲軌", + "ErrorRemovingEmbyConnectAccount": "移除 Emby Connect帳號發生錯誤,請確定網路連線後,再試一次", + "HeaderEmbyAccountRemoved": "已移除Emby帳號", + "MessageEmbyAccontRemoved": "從使用者中移除Emby帳號", + "HeaderInvitationSent": "送出邀請", + "Offline": "離線", + "HeaderSignUp": "註冊", + "ServerDownloadMessage": "此Emby 伺服器需要更新,請至 {0} 取得最新版本", + "ServerDownloadMessageWithoutLink": "要下載並安裝免費的 Emby 伺服器,請前往 Emby 網站", + "MessageInvitationSentToUser": "電子郵件已寄到{0},邀請他們接受你的分享邀請", + "MessageInvitationSentToNewUser": "電子郵件已寄到{0},邀請他們註冊Emby", + "GuestUserNotFound": "找不到使用者,請確認名稱是否正確,再試一次,或輸入他們的電子信箱", + "ErrorReachingEmbyConnect": "連接Emby Connect伺服器時發生錯誤,請確認已經連上網路後,再試一次", + "ErrorAddingEmbyConnectAccount1": "新增Emby Connect帳號時發生錯誤,已經建立好Emby帳號了?可在{0}註冊", + "ErrorAddingEmbyConnectAccount2": "如問題仍在,請以Emby Connect帳號所用的電子信箱寄信到{0}", + "ErrorAddingGuestAccount1": "新增Emby Connect帳號時發生錯誤。受邀者是否已有Emby帳號? 可否在{0}登入", + "ErrorAddingGuestAccount2": "如問題仍在,請發送郵件至 {0},並附上您的以及他們的郵箱地址", + "MessageEmbyAccountAdded": "Emby帳號已新增至此使用者", + "MessagePendingEmbyAccountAdded": "Emby帳號已新增至此使用者,將發信到此帳號的使用者。需按下信中連結,以確認接受邀請", + "HeaderEmbyAccountAdded": "已新增Emby帳號", + "Skip": "略過", + "HeaderAdditionalParts": "附加部份", + "ButtonGenerateNewPin": "產生新的PIN碼", + "ConnectLoginHelp1": "使用 Emby Connect,無論身在何處,您都可以輕鬆訪問 Emby Server,並與家人和朋友共享伺服器", + "CreatePinErrorMessage": "產生代碼時發生錯誤,請點擊「產生新的代碼」再試一次。", + "PinExpiredMessage": "這個代碼過期了,請點擊「產生新代碼」再試一次。", + "ConnectPinCodeHeader": "以Emby Connect來登入,使用行動裝置或電腦來訪問{0},並輸入下方識別碼:", + "LabelSubtitlePlaybackMode": "字幕模式", + "ErrorDeletingItem": "從Emby伺服器刪除項目時發生錯誤,請確定Emby伺服器對此媒體資料夾有讀取權限後,再試一次", + "NoSubtitles": "沒有字幕", + "Default": "預設", + "Absolute": "絕對", + "Smart": "智能", + "Small": "小", + "Smaller": "較小", + "Medium": "中", + "Large": "大", + "Larger": "較大", + "ExtraLarge": "超大", + "ExtraSmall": "特細", + "Forced": "強制", + "External": "外部", + "HeaderEmbeddedTitle": "嵌入式標題", + "OnlyForcedSubtitles": "只限強制字幕", + "AlwaysPlaySubtitles": "總是播放字幕", + "DefaultSubtitlesHelp": "根據嵌入式元數據中的 “默認” 和 “強制” 標籤加載字幕。當有多個選項可用時,將優先考慮語言偏好", + "SmartSubtitlesHelp": "當音訊為外語時,載入符合語言偏好的字幕", + "HeaderSubtitleSettings": "字幕設定", + "HeaderSubtitleAppearance": "字幕外觀", + "OnlyForcedSubtitlesHelp": "只載入有標示強制的字幕", + "AutoSelectHearingImpairedHelp": "字幕比對會載入偏好語系的字幕,給標有聽障輔助(SDH)的音軌。", + "AlwaysPlaySubtitlesHelp": "不論音訊為何種語言,一律載入符合語言偏好的字幕", + "NoSubtitlesHelp": "默認情況下不會加載字幕,在播放過程中仍可以手動打開。", + "LabelPreferredSubtitleLanguage": "首選字幕語言", + "LabelTextSize": "文字大小", + "TheseSettingsAffectSubtitlesOnThisDevice": "這些設置只會影響此設備上的字幕", + "LabelDropShadow": "陰影", + "LabelTextBackgroundColor": "文字背景顏色", + "LabelWindowBackgroundColor": "文字背景顏色", + "LabelFont": "字體", + "LabelTextColor": "文字顏色", + "LabelBackgroundColor": "背景顏色", + "LabelBackgroundOpacity": "背景透明度", + "Raised": "浮刻", + "Depressed": "扁平", + "Uniform": "統一", + "DropShadow": "投影式陰影", + "SmallCaps": "小型大寫字母", + "SubtitleAppearanceSettingsDisclaimer": "這些設置不適用於圖形字幕(PGS,DVD等)或嵌入了自己的樣式的字幕(ASS / SSA)。", + "Normal": "正常", + "HeaderWaitingForWifi": "等待Wifi連線", + "WifiRequiredToDownload": "要持續下載必須有Wifi網路連線", + "DownloadOnlyOnWifi": "只會在Wifi連線下才下載", + "LabelMusicDownloadQuality": "音樂下載品質", + "MusicDownloadQualityHelp": "比特率較高的音頻文件將由 Emby 伺服器轉換。選擇較高的值可獲得更好的質量,或選擇較低的值以節省本地存儲空間", + "HeaderDownloadSettings": "下載設定", + "LabelDownloadLocation": "下載位置", + "BrowseForFolder": "瀏覽資料夾", + "Unlimited": "無限制", + "NoLimit": "無限制", + "Hide": "隱藏", + "HeaderKeepWatching": "保持觀看", + "HeaderNextEpisode": "下一集", + "AudioBitDepthNotSupported": "轉換到兼容的音訊位元深度", + "VideoBitrateNotSupported": "Converting to compatible video bitrate", + "VideoProfileNotSupported": "轉換到兼容的影片設定檔", + "VideoFramerateNotSupported": "轉換到兼容的影片格數", + "VideoBitDepthNotSupported": "轉換到兼容的影片位元深度", + "RefFramesNotSupported": "轉換到兼容的影片格數", + "ErrorConnectServerUnreachable": "執行請求操作時出錯。您的伺服器無法通過 {0} 與我們的 Emby Connect 服務器連接。請確保您的服務器具有有效的互聯網連接,且已安裝的任何防火牆或安全軟件都允許其通信。", + "HeaderStopRecording": "停止錄影", + "ManageRecording": "管理錄影", + "LabelDropImageHere": "在此處拖放圖像,或單擊以選擇要上傳的圖像。", + "MessageFileReadError": "讀取檔案時發生錯誤,請重試", + "Browse": "瀏覽", + "HeaderUploadImage": "上傳圖像", + "HeaderAddUpdateImage": "新增/更新圖像", + "HeaderShowFields": "顯示欄", + "LabelView": "檢視", + "LabelImageType": "圖像類型", + "Upload": "上傳", + "Primary": "封面圖", + "PrimaryImageBlur": "封面圖模糊", + "Art": "藝術圖", + "Backdrop": "背景", + "Banner": "橫幅", + "Box": "包裝盒", + "BoxRear": "包裝盒 (背面)", + "Disc": "光碟", + "Logo": "標誌", + "LogoDark": "標誌 (暗黑版本)", + "LogoLight": "標誌 (光亮版本)", + "LogoLightColor": "標誌 (彩色)", + "Menu": "選單", + "Screenshot": "畫面擷圖", + "Thumb": "縮圖", + "HeaderAudioSettings": "音訊設定", + "LabelAudioLanguagePreference": "首選的音訊語言", + "LabelPlayDefaultAudioTrack": "忽略語言偏好,播放預設聲軌", + "HeaderVideoQuality": "影像品質", + "CinemaModeConfigurationHelp": "在客廳裡,劇院前導模式,將帶來真實劇院感受的預告片或自訂前導片。", + "ShowUpNextPreview": "顯示下個項目的預覽", + "ShowUpNextPreviewHelp": "在本項目將近結束時顯示下個項目的資訊。", + "PlayNextEpisodeAutomatically": "自動播放下一集", + "LabelMaxChromecastBitrate": "Chromecast 串流品質", + "LabelSkipBackLength": "倒後長度", + "LabelSkipForwardLength": "快進長度", + "EnableCinemaMode": "啟用劇院前導模式", + "LabelInternetQuality": "遠端串流品質", + "LabelCellularQuality": "遠端串流品質 (流動網絡)", + "HeaderMusicQuality": "音樂品質", + "LabelHomeNetworkQuality": "本地網絡串流品質", + "HeaderLatestMedia": "最新媒體", + "HeaderRestartingEmbyServer": "重新啟動Emby伺服器", + "RestartPleaseWaitMessage": "請等候Emby伺服器關閉後重啟,約花1到2分鐘", + "HeaderPlayNext": "播放下一首", + "AutoBasedOnLanguageSetting": "自動 (根據裝置設定)", + "SameAsMainTheme": "與總主題相同", + "LabelDateTimeLocale": "日期時間格式", + "Genre": "類型", + "DirectorValue": "導演: {0}", + "DirectorsValue": "導演: {0}", + "GenreValue": "類型: {0}", + "GenresValue": "類型: {0}", + "TagsValue": "標籤: {0}", + "Off": "關閉", + "Title": "標題", + "Year": "年份", + "Filter": "篩選", + "Filters": "篩選", + "Unplayed": "未播放", + "LabelTVHomeScreen": "電視模式主頁", + "Horizontal": "水平", + "Vertical": "垂直", + "HeaderGroupBy": "分類準則", + "HeaderMediaType": "媒體類型", + "GroupBySeries": "根據電視劇分類", + "HeaderVideoType": "視訊類型", + "HeaderSeriesStatus": "電視劇狀態", + "Features": "功能", + "Trailers": "預告片", + "Extras": "附加功能", + "ThemeSongs": "主題曲", + "ThemeVideos": "主題影片", + "HeaderFavoriteMovies": "最喜歡的電影", + "HeaderFavoritePhotos": "最喜愛的照片", + "HeaderFavoriteShows": "最喜歡的節目", + "HeaderFavoriteEpisodes": "最喜愛的劇集", + "HeaderFavoriteVideos": "最喜愛的影片", + "HeaderFavoriteMusicVideos": "最愛的音樂影片", + "HeaderFavoriteGames": "最喜歡的遊戲", + "HeaderFavoriteArtists": "最喜愛的演員", + "HeaderFavoriteAlbums": "最喜愛的專輯", + "HeaderFavoriteSongs": "最喜歡的歌曲", + "HeaderFavoriteAuthors": "最喜愛的作者", + "HeaderFavoriteAudioBooks": "最喜愛的有聲書", + "Ascending": "順序", + "Descending": "倒序", + "HeaderColorPrimaries": "原色", + "HeaderColorSpace": "色域", + "HeaderColorTransfer": "色彩傳送", + "HeaderVideoRange": "視訊範圍", + "SeriesDisplayOrderHelp": "根據上映日期,DVD訂購單,或TVDB序號,來排序影集", + "LabelVerticalPositionFromBottom": "垂直位置 (從底部起)", + "HeaderFavoritePeople": "最喜愛的人物", + "MultiSelect": "多重選擇", + "HeaderSignOut": "登出", + "HeaderSelectServer": "選擇伺服器", + "HeaderChangeServer": "更改伺服器", + "HeaderChangeUser": "更換使用者", + "HeaderAppSettings": "程式設定", + "HeaderLoginSettings": "登入設定", + "LabelRememberLogin": "記住帳號", + "LabelAutomaticallySignOut": "自動登出時間", + "BetaTesterMessage": "感謝你成為Emby beta測試者。請在{0}Emby論壇測試區{1}寫下回饋", + "HardwareAccelerated": "硬體加速", + "Software": "軟體", + "Metadata": "中繼資料", + "HeaderMediaInfo": "媒體資訊", + "Locked": "已鎖", + "HeaderSplitVersionsApart": "分離版本", + "Any": "任何", + "Admin": "管理員", + "HeaderReadMore": "閱讀更多", + "CustomRatingHelp": "自定義評分用於家長控制評估,但不會顯示。家長評分字段仍會顯示。", + "KeepUpToHelp": "當下一新錄影開始時,超過上限數量的錄影,將從時間最舊的開始刪除", + "NoItemsMatchingFound": "沒有找到吻合設定搜尋條件的項目", + "TwoSearchCharsRequired": "請至少輸入兩個搜尋字符", + "PreventPlaybackContinuing": "週而復始的彈出需要使用者輸入的視窗,使用來預防無止盡的連續播放", + "PromptStillWatching": "啟用\"你仍要觀看?\" 提醒視窗", + "HeaderMissingMetadata": "缺少中繼資料", + "HeaderIncludedIn": "已包含", + "EmbyConnectUserAlreadyLinked": "Emby Connect使用者已連結此伺服器上另一使用者", + "VideoFilesWillBeConvertedTo": "轉檔後影片將儲存在{0}", + "VideoWillBeConvertedTo": "如果影片已經{0}且畫質符合轉換選項,影片串流將被轉換到{0},或從原始檔案複製", + "VideoWillBeConvertedToOrCopied": "如果影片是任何{1}且畫質符合轉換選項,影片串流將被轉換到{0},或從原始檔案複製", + "AudioWillBeConvertedTo": "如果影片已經{0}且畫質符合轉換選項,影片串流將被轉換到{0},或從原始檔案複製", + "AudioWillBeConvertedToOrCopied": "如果影片是任何({1})且畫質符合轉換選項,影片串流將被轉換到{0},或從原始檔案複製", + "HeaderSpecialKeys": "特殊鍵", + "FollowingSpecialKeys": "下列特殊鍵可適用在多數鍵盤和遠端操作:", + "HeaderDeleteSeries": "刪除電視劇", + "HeaderDeleteLastPlayedEpisode": "刪除最後播放劇集", + "HeaderConnectingToServer": "連接至伺服器", + "ServerNameValue": "伺服器名稱: {0}", + "DomainValue": "網域: {0}", + "RatedValue": "評分 {0}", + "LocalServerRedirectMessage": "你將被導向所選伺服器的管理員,其所擁有/操作的網域", + "AllMediaOwnedHosted": "所有媒體均由 {0} 的所有者託管和管理", + "EnableResolutionSwitching": "對應影片解像度", + "EnableResolutionSwitchingHelp": "開始播放前,讓Emby改變解像度,以便與原影片編碼時相同。有時撥放影片會發生延遲/晃動問題,此舉會改善此問題。", + "EnableDisplayRefreshRateSwitching": "啟用顯示器刷新率切換", + "EnableDisplayRefreshRateSwitchingHelp": "這設定讓 Emby 在影片開始播放前變更顯示更新率,使更新率與相關影片所編碼的幀率相同 (或其幀率的倍數)。此設定或有助減少播放不支援當前顯示更新率的影片時可能出現的停頓或振動。", + "RememberSelectedAudioTracks": "記得聲軌選擇", + "RememberSelectedSubtitleTracks": "記得字幕軌的選擇", + "RememberSelectedSubtitleTracksHelp": "每部影片基本資訊會記憶字幕選項,在下次影片播放會再次套用", + "RememberSelectedAudioTracksHelp": "每部影片的基本資訊會記憶聲軌選項,在下次影片播放會再次套用", + "ClearSavedTrackSelections": "清除已存音軌選單", + "HeaderClearTrackSelections": "清除已存音軌選單", + "QuestionClearSavedTracks": "確認清除所有已存音軌選單", + "LabelChannelTags": "頻道標籤", + "AfterThisPlaysConfirmation": "播放完畢後,你希望保留播放/或清除先前排序的音樂表單?", + "Keep": "保持", + "Clear": "清除", + "HeaderClearFilters": "清除篩選", + "HeaderSearchForImages": "搜尋圖像", + "HeaderSearchNewImage": "搜尋一個新圖像", + "HeaderSearchForAnImage": "搜尋一個圖像", + "DragDropToReorder": "拖放方法來錄影", + "HeaderAddImageFromUrl": "從網址新增圖像", + "HeaderSetImageFromUrl": "從網址選擇圖像", + "LabelUrl": "網址", + "LabelChannelNumber": "頻道號碼", + "LabelGuideDataChannel": "節目表頻道", + "GuideDataSource": "指南資料來源", + "HeaderCopyToClipboard": "複製到剪貼簿", + "TimeRemainingValue": "{0}剩餘", + "LabelResumeRewindSeconds": "恢復播放時自動倒帶", + "ResumeRewindSecondsHelp": "這可能會幫助您記住您中斷的地方。 這適用於首次繼續播放,而不適用於播放期間的每個單獨暫停。", + "HeaderSavePlayQueueToPlaylist": "播放序新增到播放清單", + "EnableLogoImagesAsTitle": "再詳細頁面上,呈現商標圖案,如同標題", + "EnableLogoImagesAsTitleHelp": "當可用時,可以使用標誌圖像代替視頻、系列和其他詳細信息屏幕上的標題文本。 當標誌圖像不可用時,標題將退回成文字。", + "LabelNowPlayingAudioBackgroundStyle": "正在播放音訊背景風格", + "LabelNowPlayingVideoBackgroundStyle": "「播放中影片」背景風格", + "NowPlayingVideoBackgroundStyleHelp": "設定在其他裝置上遠程控制視頻播放時的背景風格。", + "Rotation": "旋轉", + "Minutes": "分鐘", + "LabelMaxRecordingLength": "最大錄影長度", + "MaxRecordingLengthHelp": "限制錄製的最大長度,無論廣播將持續多久。如果設置為 0,即無限制。", + "RemoteWAN": "遠端(WAN)地址", + "HeaderLastConnectedTo": "最後連線到", + "Version": "版本", + "Keyword": "關鍵字", + "HeaderServerAddress": "伺服器地址", + "HeaderSkipIntro": "略過介紹", + "HeaderCreateRecording": "創建錄影", + "HeaderAddRecording": "新增錄影", + "HeaderChannelAndTime": "頻道和時間", + "LabelRecordProgramOrSeriesFrom": "從以下位置錄影", + "LabelStartTime": "開始時間", + "LabelEndTime": "結束時間", + "LabelFrequency": "頻率", + "Recurring": "再次發生的", + "Once": "一次", + "Start": "開始", + "Unpause": "取消暫停", + "LabelIntroSkipMode": "略過簡介", + "ShowSkipIntroButton": "顯示\"略過簡介\"按鈕", + "AutoSkipIntro": "自動略過簡介", + "DisplayRatingInformationOnVideoPlaybackStart": "在視頻播放開始時顯示評級信息", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "視頻播放開始時,評級信息將短暫顯示。", + "IntroSkipModeHelp": "顯示\"略過簡介\"按鈕或自動略過Emby 服務器檢測到簡介標記的劇集。 必須在 Emby Server 庫選項中啟用簡介檢測。", + "EnableHomeScreenFocusPreview": "在主屏幕上使用顯示所選項目詳細預覽的佈局", + "EnableHomeScreenFocusPreviewHelp": "如果您的主屏幕包含不同媒體類型的混合,這可能效果不佳。", + "LabelHideMediaTransportButtons": "隱藏影片播放器傳輸按鈕", + "HideMediaTransportButtonsHelp": "通過隱藏基本的傳輸按鈕(例如快進、後退和暫停)來創建更簡單的屏幕播放界面。 您仍然可以使用箭頭鍵和 OK/Enter 來使用這些功能。 當應用程序內未檢測到鼠標使用時,自動將隱藏傳輸按鈕。", + "ImageSizeHelp": "設置您喜歡的圖像網格大小。", + "LabelImageSize": "圖像大小", + "ThisImageIsOnlyPreview": "此圖像只是來自元數據搜索引擎的預覽。 Emby 服務器下載的實際圖像可能會有所不同,這取決於您在 Emby 媒體庫設置中配置的選項。", + "ResultsRangeValue": "{2} 的 {0} 到 {1}", + "NotificationsDescription": "設置通知以隨時了解您的 Emby 服務器上的重要事件。", + "DeleteEmbyConnectAccount": "刪除Emby Connect帳戶", + "DeleteEmbyConnectAccountHelp": "要刪除您的 Emby Connect 帳戶,請先通過 {2} 登入 {0}Emby Community{1},然後點擊您的用戶名稱 (位於網頁右上方),再選擇「帳戶設定」 (Account Settings),並點擊「刪除我的帳戶」 (Delete My Account)。", + "KeepPlayingInBackground": "繼續在後台播放", + "LabelVideoBackBehavior": "影片播放器後退按鈕行為", + "HeaderViewLyrics": "查看歌詞", + "HeaderViewMissingEpisodes": "檢視缺少的集數", + "HeaderMissingEpisodes": "缺少的集數", + "HeaderManageAccess": "管理訪問", + "HeaderManageCollaboration": "管理共同合作", + "HeaderLeaveCollaboration": "離開共同合作", + "HeaderRemoveFromLibrary": "從媒體庫中移除", + "RemoveSharedItemConfirmation": "確定要從資料館中移除此項目?如果要恢復此項目,需要擁有者授權可以再次存取.", + "SubtitlesDownloaded": "字幕已下載", + "HeaderMakePrivate": "設為私人", + "HeaderMakePublic": "設為公用", + "MakePublicDescription": "所有使用者將可檢視此項目。使用者可以被授權編輯.", + "MakePrivateDescription": "可以個別授權每一位使用者存取權限.", + "Private": "私人", + "Public": "公用", + "Collaborative": "共同合作", + "PreferredShowDisplay": "首選電視節目顯示", + "ShowAllEpisodesAllSeasons": "將所有季度劇集一同顯示", + "ShowAllEpisodesSingleSeason": "僅顯示單獨季中的所有集數", + "ShowSeasonFolders": "始終顯示季度資料夾", + "HeaderAddAgain": "再次新增", + "UpNext": "下個項目", + "ItemsAlreadyInPlaylist": "其中一些項目已經在您的播放列表中", + "ItemAlreadyInPlaylist": "此項目已在您的播放列表中", + "HeaderPlayChannel": "播放頻道", + "LabelScreenOrientationDuringVideo": "影片播放時畫面方向", + "UseDeviceSetting": "使用裝置設定", + "LockToLandscape": "橫向鎖定", + "UsernameForFolderHelp": "在此網路中可存取該資料夾的使用者名稱。", + "PasswordForFolderHelp": "在此網路中可存取該資料夾的密碼。", + "ShowMediaInfoOnDetailScreens": "在音訊和視訊詳細畫面中顯示完整媒體資訊", + "ForgotPasswordNoUserFound": "無法找到輸入使用者名稱,請再試一次。或針對此伺服器全部使用者重設密碼。", + "Silver": "銀", + "DimGray": "暗灰", + "DarkGray": "深灰", + "LightGray": "淺灰", + "Black": "黑", + "Blue": "藍", + "Cyan": "青", + "Gray": "灰", + "Green": "綠", + "Lime": "青檸", + "Magenta": "洋紅", + "Orange": "橙", + "Pink": "粉紅", + "Red": "紅", + "Yellow": "黃", + "White": "白", + "Purple": "紫", + "RecentlyReleasedMovies": "最新上架電影", + "RecentlyReleasedEpisodes": "最近上架劇集", + "DolbyProfile": "杜比設定檔", + "IpAddress": "IP地址", + "VideoType": "視訊類型", + "HidePlayedMediaFrom": "隱藏已播放的媒體", + "BottomEdgePosition": "底邊位置", + "VerticalPositionFromBottomScreen": "設定字幕相對於螢幕底部的垂直位置。", + "TopEdgePosition": "頂部邊緣位置", + "TopEdgePositionHelp": "設定字幕相對於螢幕頂部允許的最高垂直位置。當字幕包含要放置在頂部的定位指令時使用此功能。", + "HeaderSubtitlePosition": "字幕位置", + "TitleProfilePin": "設定檔PIN碼", + "ProfilePinConfirm": "設定檔PIN碼 (確認)", + "SaveProfilePin": "儲存PIN碼", + "ProfilePinDescription": "建立一個可選的 PIN 碼,每當您在已登入的裝置上返回 Emby 應用程式時,系統都會提示您輸入。如果您的裝置由多個使用者共享,這非常有用。您可以根據需要選擇在每個裝置上選擇性地啟用它。", + "TitleNewEpisodes": "新劇集", + "EnterYourPinToContinue": "輸入您的 PIN 碼以繼續。", + "YourPinMustBe": "您的 PIN 碼必須是 {0} 位。", + "ForgotPin": "忘記PIN碼?", + "RequireEnteringPinToReturn": "每當我返回此應用程式時,都需要輸入我的個人資料 PIN 碼。", + "RequireEnteringPinToReturnQuestion": "當您返回此應用程式時,我們是否應該提示您輸入個人資料 PIN 碼?如果該裝置由多個使用者共用,您的個人資料 PIN 碼可以協助防止其他使用者存取您的資料。", + "RequireEnteringPinToReturnHelp": "如果該裝置由多個用戶共享,則非常有用。", + "WrongPinPleaseTryAgain": "糟糕,PIN 碼錯誤。請再試一次。", + "ProfilePinIsOn": "個人資料 PIN 目前已啟用。", + "IfTryingToConnectToHttp": "如果以 HTTP 位址連線而瀏覽器因 HTTPS 要求而拒絕連線,請嘗試下列其中一項操作:", + "SetupHttpsForYourServer": "要以 HTTPS 連線,請 {0}為您的 Emby 伺服器設定 HTTPS{1}。", + "TitleUnableToReachServer": "無法訪問伺服器", + "TitleUnableToReachName": "無法訪問 {0}", + "HearingImpaired": "聽力障礙", + "SignIntoServerName": "登入到 {0}", + "About": "關於", + "Specials": "特別篇", + "NSettings": "{0} 設定", + "NPreferences": "{0} 偏好設定", + "DetailScreenOptions": "詳細信息畫面", + "LabelGenreDisplayLimit": "類型顯示限制", + "GenreDisplayLimitHelp": "限制項目詳細資料畫面上方顯示的類型數量。", + "GenreDisplayLimitForListsHelp": "限制播放清單、收藏和藝術家詳細資訊畫面頂部顯示的類型數量。", + "LabelGenreDisplayLimitForLists": "清單上的類型顯示限制", + "ShowPosterOnDetails": "在詳細資訊畫面上顯示海報", + "ShowPosterOnDetailsHelp": "選擇在影片詳細資料畫面上顯示海報,或隱藏海報以獲得強調背景的簡約外觀。此設定不適用於較小的螢幕佈局。某些項目類型將忽略此設定。", + "EnableAppLogging": "啟用應用程式日誌記錄", + "EnableAppLoggingHelp": "日誌記錄可能會降低應用程式效能,並且僅應在出於故障排除目的需要時才啟用。更改需要重新啟動應用程式。", + "LabelSlideshowInterval": "每張照片幻燈片的播放時間", + "TVChannelImageEditorHelp": "支援多個標誌版本。 Emby 應用程式將根據目前主題自動選擇合適的主題。", + "PlaySlideshow": "播放幻燈片", + "CheckForExistingEpisodesInAllLibraries": "檢查所有媒體庫中現有的劇集", + "GroupNotificationsBySeriesOrAlbum": "按節目和專輯對通知進行分組", + "ThemeSettings": "主題設定", + "FollowingActivityWillBeDisrupted": "以下工作將被中斷,或需人手重新啟動:", + "OneActivePlaybackSession": "1 項播放項目進行中", + "NumActivePlaybackSessions": "{0} 項播放項目進行中", + "OneActiveRecording": "1 項錄影項目進行中", + "NumActiveRecordings": "{0} 項錄影項目進行中", + "PlayFromLivePosition": "從當前直播時間點播放", + "PlayFromStartOfRecording": "從錄影開端播放", + "ThisChannelIsActivelyRecording": "本頻道正在錄影中,你希望如何播放呢?", + "ThemeSongVolume": "主題曲音樂", + "HeaderForceConversionForFormats": "強制轉換下列格式", + "ForceConversionForFormatsHelp": "強制對無法在此裝置上直接播放的媒體格式進行伺服器端轉碼或重新混合。", + "StartupBehavior": "啟動行為", + "RememberLastUser": "記住上一位使用者", + "ShowLoginScreen": "顯示登入畫面", + "SignInAsValue": "以 {0} 登入", + "ConvertUnsupportedAudio": "轉換不支援的環繞聲音訊至杜比數碼格式", + "ConvertUnsupportedAudioHelp": "讓 Emby Server 轉換不支援的環繞聲格式成杜比數碼格式,以避免將其混音成立體聲。", + "HeaderPlaybackCorrection": "播放校正", + "HeaderAttemptPlaybackCorrection": "播放校正", + "PlaybackCorrectionConfirm": "要讓系統嘗試修正播放問題嗎?", + "PlaybackCorrectionDescription": "現正播放的媒體出現無畫面或無聲音的問題嗎?啟用此選項的話,系統將通過伺服器轉碼將檔案轉換成更適合串流的格式,嘗試修正播放問題。這將增加 Emby 伺服器的資源消耗。", + "PlaybackCorrectionDescription2": "每段影片最多可以執行此操作三次,當中重新混合、視訊轉碼和音訊轉碼都各啟動一次。", + "HeaderAlbumsAsContributingArtist": "擔任特約藝人的專輯", + "HeaderAlbumsAsComposer": "擔任作曲家的專輯", + "Duplicates": "重複項目", + "HeaderSleepTimer": "睡眠計時器", + "AfterCurrentItem": "在這項目之後", + "HeaderStopPlayback": "停止回放", + "TurnOffTimer": "關閉計時器", + "SleepTimerIsSet": "已設置睡眠計時器", + "SleepTimerIsOff": "您的睡眠計時器已關閉", + "LabelEnableRemoteControlTVMode": "顯示媒體投放及遙控功能", + "EnableRemoteControlTVModeHelp": "如果你希望在此裝置投放媒體至其他裝置的話,請啟用此選項。", + "ShowOnScreenControls": "在熒幕上顯示控制項", + "LabelVideoScreenUpAction": "「上」方向鍵功能", + "VideoScreenUpActionHelp": "設定當按下「上」方向鍵時所採取的操作。此設定只適用在熒幕控制項沒有顯示的情況;在熒幕控制項顯示的情況下按「上」方向鍵的話,則會進行「往上移動」操作。", + "LabelVideoPlayerLongPressAction": "影片播放時長按 OK 按鈕所觸發的操作", + "LetsGetSetup": "開始設定吧!", + "VideoPlayerLongPressActionHelp": "設定在影片播放的時候長按 OK 按鈕會觸發哪項功能或顯示哪個選單,此功能只在播放控制項隱藏時或在影片時間軸獲選取時有效。", + "AskAdminToGetPremiere": "Emby Premiere 必須經伺服器管理員購買。請要求此 Emby 伺服器的管理員登入伺服器並購買 Emby Premiere,以啟用進階功能。", + "AutoOpenSingleItemsFolders": "在「資料夾」檢視模式下自動打開單一項目", + "AutoOpenSingleItemsFoldersHelp": "在「資料夾」檢視模式下,如果資料夾內只有一個項目,系統就會自動打開有關項目", + "PlayedOnValue": "Played {0}", + "TheseSettingsApplyAppDevice": "These settings apply to all users playing on this device.", + "LastContentDateAdded": "Last Content Date Added", + "RepeatThemeMedia": "Play themes on repeat", + "HideEpisodeSpoilerInfo": "Hide spoiler information from unwatched episodes", + "HideEpisodeSpoilerInfoHelp": "Hides the title, overview and image for unwatched episodes on most screens.", + "BornValueAge": "Born: {0} (age {1})", + "PreferDirectStreamLiveTV": "Prefer direct streaming of Live TV", + "PreferDirectStreamLiveTVHelp": "Direct streaming Live TV will reduce resource consumption on your Emby Server but may not be as seekable during playback. Enabling this will direct stream Live TV when the format is supported and is within your configured quality setting. Disable this to enjoy more seeking during playback at the cost of additional resource consumption.", + "HeaderAllRecordings": "All Recordings", + "RememberLoginDescription": "After signing in, you can use the app settings to configure the startup behavior to remember login, sign in as a specific user, or always show the login screen.", + "ForgetThisServer": "Forget This Server", + "ForgetServerConfirmation": "Are you sure you wish to forget this server?", + "HeaderThisDevice": "This Device", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/strings/zh-TW.json b/modules/common/strings/zh-TW.json new file mode 100644 index 0000000..0ba52e3 --- /dev/null +++ b/modules/common/strings/zh-TW.json @@ -0,0 +1,1340 @@ +{ + "ReplaceExistingThumbnailImages": "取代現有的圖片", + "ReplaceExistingThumbnailImagesHelp": "啟用後,目前所有的影片封面都將會被刪除,並由新產生的圖片取代。", + "DateCreated": "建立日期", + "CreatedOnValue": "已建立 {0}", + "UpdatedOnValue": "已更新 {0}", + "EmbyLoginTerms": "Emby 可以協助你管理你的個人媒體庫,像是家庭影片或相片。請檢閱 Emby 的{0}使用條款{1}。使用任何 Emby 軟體即表示您已同意我們的服務條款。", + "MessageUnableToConnectToServer": "無法連線至選取的伺服器。請確定伺服器正在執行,並再試一次。", + "EmbyIntroMessage": "有了 Emby,您可以輕鬆地將 Emby 伺服器上的影片、音樂和照片串流到手機、平板電腦或其他装置。", + "HeaderSignInWithConnect": "使用 Emby Connect 登入", + "HeaderWelcomeToEmby": "歡迎使用 Emby", + "HeaderNewUsers": "新使用者", + "HeaderPleaseSignIn": "請登入", + "MessageInvalidUser": "無效的使用者名稱或密碼,請再試一次。", + "MessageUnlockAppWithPurchaseOrSupporter": "單次付費或是訂閱 Emby Premiere,即可解鎖此功能。", + "MessageUnlockAppWithSupporter": "解鎖此功能需要訂閱 Emby Premiere。", + "MessageToValidateSupporter": "如果您已經訂閱了 Emby Premiere,請確認您有在 Emby 伺服器控制台主選單 -> Emby Premiere 中,輸入 Emby Premiere 金鑰。", + "ValueSpecialEpisodeName": "特別篇 - {0}", + "HeaderSignIn": "登入", + "Share": "分享", + "Shared": "已分享", + "Info": "資訊", + "Add": "新增", + "Speed": "速度", + "PlaybackSpeed": "播放速度", + "Chapters": "章節", + "Password": "密碼", + "SavePassword": "儲存密碼", + "LabelPassword": "密碼", + "HeaderResetPassword": "重設密碼", + "Series": "電視劇", + "Preview": "預覽", + "Submit": "提交", + "Never": "從不", + "Table": "表格", + "HeaderScheduledTasks": "排程任務", + "Plays": "播放", + "LastUsedAddressValue": "上次使用 {0}", + "LabelKeywordType": "關鍵字類型", + "HeaderSelectColumns": "選擇欄位", + "HeaderTopResults": "最佳結果", + "HeaderPinSidebar": "釘選側邊列", + "Collapse": "摺疊", + "LabelBackgroundVideoPlayback": "背景播放", + "BackgroundVideoPlaybackHelp": "啟用背景播放可以讓您在螢幕關閉時,也能繼續播放影片。", + "AlwaysOn": "永遠啟用", + "HeadphonesOrExternalSpeakersConnected": "僅使用耳機或外接喇叭時", + "HeaderKeyboardAndRemote": "鍵盤與遙控", + "NoSelectedItemsSupportOperation": "所選項目不支援此操作。", + "NoOperationsForSelectedItems": "無操作適合所選項目。", + "UploadOnlyOnWifi": "僅使用 Wifi 上傳", + "HeaderFoldersToUpload": "上傳的資料夾", + "LabelPasswordConfirm": "確認密碼", + "HeaderMoveUpInOrder": "依序上移", + "HeaderDownUpInOrder": "依序下移", + "LabelUsername": "使用者名稱", + "HeaderAddServer": "新增伺服器", + "HeaderSubtitleOffset": "字幕延遲", + "Watching": "觀看中", + "HeaderRemoveFromContinueWatching": "從繼續觀看清單中移除", + "RemoveThisTitleFromContinueWatching": "確定要從繼續觀看清單中移除嗎?", + "HeaderRemoveFromContinueListening": "從繼續聆聽清單中移除", + "RemoveThisTitleFromContinueListening": "確定要從繼續聆聽清單中移除嗎?", + "HeaderIncreaseSubtitleOffset": "增加字幕延遲", + "HeaderDecreaseSubtitleOffset": "減少字幕延遲", + "Close": "關閉", + "HeaderSeeAll": "展開全部", + "HeaderOpenInNewWindow": "於新視窗中開啟", + "LabelEmail": "電子郵件", + "LabelHost": "主機端", + "LabelHostHelp": "如:192.168.1.100 或 https://myserver.com", + "LabelPort": "連接埠", + "Disabled": "停用", + "Uninstall": "解除安裝", + "Enable": "啟用", + "AllTuners": "所有調諧器", + "Disable": "停用", + "NextValue": "接著播放:{0}", + "HeaderNextItem": "下一項目", + "HeaderPreviousItem": "前一項目", + "NoTrailersMessage": "找不到預告。若要新增預告,請從 {0}Emby 擴充套件目錄{1} 安裝預告擴充套件。", + "UninstallPluginConfirmation": "確定要移除此擴充套件嗎?", + "HeaderUninstallPlugin": "移除擴充套件", + "AreYouStillWatching": "您還在螢幕前嗎?", + "LabelCurrentPassword": "目前密碼", + "LabelNewPassword": "新密碼", + "LabelNewPasswordConfirm": "確認新密碼", + "HeaderRemovePassword": "移除密碼", + "ServerUpdateNeeded": "此 Emby 伺服器需要更新,請至 {0} 下載最新版本", + "MessageThankYouForConnectSignUp": "感謝您註冊 Emby Connect,我們將會發送一封確認電子郵件到您的信箱。請驗證您的帳號後,再回到此處進行登入。", + "MessageThankYouForConnectSignUpNoValidation": "感謝您註冊 Emby Connect!現在您可使用 Emby Connect 來登入。", + "ErrorMessagePasswordNotMatchConfirm": "密碼和確認密碼必須吻合。", + "ErrorMessageUsernameInUse": "這個使用者名稱已被使用,請輸入新名稱再試一次。", + "ErrorMessageEmailInUse": "此電子郵件已被使用,請嘗試提供其他電子郵件,或使用「忘記密碼」功能找回密碼。", + "HeaderUpcomingOnTV": "即將播放的電視節目", + "HeaderOtherShowings": "其他影片", + "Showings": "放映", + "HeaderConnectToServer": "連線至伺服器", + "ConnectToServerManually": "手動連線到伺服器", + "LabelEnterConnectUserNameHelp": "這是您註冊 Emby Connect 時所使用的電子郵件。", + "HeaderSignInError": "登入錯誤", + "HeaderManualLogin": "手動登入", + "PasswordResetConfirmation": "確定要重設密碼嗎?", + "ContactAdminToResetPassword": "請聯繫 Emby 系統管理員重設您的密碼。", + "ForgotPasswordInNetworkRequired": "請透過區域網路再試一次密碼重設。", + "ForgotPasswordFileCreated": "以下檔案已在您的伺服器上建立,內含後續操作的指示說明:", + "ForgotPasswordFileExpiration": "重設 PIN 碼將在 {0} 後過期。", + "InvalidForgotPasswordPin": "無效或過期的 PIN 碼,請重試。", + "PasswordResetForUsers": "下列使用者的密碼已經被移除。該使用者登入時,密碼欄位請留白。", + "HeaderForgotPassword": "忘記密碼?", + "ForgotPasswordUsernameHelp": "如果您不記得使用者名稱,請保持欄位空白。", + "HeaderPasswordReset": "重設密碼", + "AttributeNew": "新增", + "Done": "完成", + "HeaderResetToDefault": "重置", + "Deinterlacing": "去交錯", + "HeaderBurningInSubtitles": "燒錄字幕中", + "Premiere": "首播", + "LabelPinCode": "PIN 碼", + "LabelLocalNetworkPinCode": "區域網路 PIN 碼", + "LabelLocalNetworkPasswordMode": "區域網路登入模式", + "RequirePasswordInLocalNetwork": "在區域網路登入時需要密碼", + "NoPasswordInLocalNetwork": "在區域網路登入時不需要密碼", + "PinCodeInLocalNetwork": "在區域網路時允許使用數字 PIN 碼", + "LocalNetworkPasswordModeHelp": "請選擇與您的 Emby 伺服器位於同一區域網路上的裝置之登入方法。", + "HeaderLocalNetworkAccess": "區域網路存取", + "Live": "直播", + "Reset": "重設", + "Repeat": "重播", + "Track": "音軌", + "Tracks": "音軌", + "HeaderCameraUpload": "照片上傳", + "TrackCount": "{0} 首曲目", + "ItemCount": "{0} 個項目", + "NumberChannelsValue": "{0} 個頻道", + "HeaderLatestMusic": "最近新增的音樂", + "HeaderLatestAudioBooks": "最近新增的有聲書", + "HeaderLatestDownloadedVideos": "最新下載的影片", + "HeaderRecentlyPlayed": "最近播放", + "Recent": "最近", + "HeaderFrequentlyPlayed": "經常播放", + "HeaderMoreLikeThis": "更多相似內容", + "HeaderMoreLikeThisOnLiveTV": "其他相似的網路電視", + "OriginalAirDateValue": "原始播出日期:{0}", + "EndsAtValue": "結束於 {0}", + "Date": "日期", + "AirDate": "播出日期", + "Played": "已播放", + "Daily": "每日", + "Weekly": "每週", + "RequireHashMatch": "需要比對 Hash 值", + "RequireHashMatchHelp": "啟用 Hash 比對時,僅會篩選與您的影片檔案完全相符的字幕。取消勾選將增加可匹配的字幕數量,但同時也可能提高字幕時間錯誤或內容不正確的風險。", + "SearchForForcedSubtitlesOnly": "僅強制字幕", + "SearchForForcedSubtitlesOnlyHelp": "啟用強制字幕時,僅會顯示標記為外語對白的字幕。", + "LastEpisodeDateAdded": "最新一集新增日期", + "LastEpisodeDateAired": "最新一集發布日期", + "LabelPlaystate": "播放狀態", + "Studio": "工作室", + "Tag": "標籤", + "EpisodeTitle": "標題", + "Audio": "音訊", + "Video": "影片", + "Subtitle": "字幕", + "Image": "圖像", + "CopyStream": "複製原始串流", + "LabelAudioLayout": "音訊介面", + "LabelAudioCodec": "音訊編碼", + "LabelAudioLanguage": "音訊語言", + "LabelSubtitleLanguage": "字幕語言", + "LabelVideoCodec": "視訊編碼", + "LabelSubtitleCodec": "字幕編碼", + "LabelParentalRating": "電影分級", + "BecauseYouLikeValue": "因為您喜歡 {0}", + "BecauseYouWatchedValue": "因為您看過 {0}", + "DirectedByValue": "導演 {0}", + "StarringValue": "演出 {0}", + "Invitations": "邀請", + "ActorAsRole": "當 {0}", + "ButtonOk": "確定", + "GroupItemsIntoCollections": "根據收藏清單分類", + "GroupItemsIntoCollectionsHelp": "根據加入的收藏清單來分類。如使用特定過濾或排序方式,將自動取消預設分類。", + "GroupItemsIntoTags": "根據標籤分類", + "GroupItemsIntoTagsHelp": "根據項目擁有的標籤來分類。如使用特定過濾或排序方式,將自動取消預設分類。", + "User": "使用者", + "Access": "存取權限", + "Users": "使用者", + "Library": "媒體庫", + "Devices": "裝置", + "Cancel": "取消", + "Restart": "重新啟動", + "Shutdown": "關閉", + "Logs": "日誌", + "Visibility": "可視性", + "Notifications": "通知", + "SendTestNotification": "發送測試通知", + "NotificationSent": "通知已傳送", + "DeleteNotificationConfirmation": "確定要刪除此通知?", + "DeleteNotification": "刪除通知", + "AddNotification": "新增通知", + "EditNotification": "編輯通知", + "LimitUserEventsTo": "傳送以下使用者事件通知", + "LimitLibraryEventsTo": "傳送以下媒體庫事件通知", + "LimitDeviceEventsTo": "傳送以下裝置事件通知", + "ForAdditionalNotificationOptions": "伺服器管理員可在 Emby {0}擴充套件目錄{1}中安裝其他通知服務。", + "Plugins": "擴充套件", + "Systems": "系統", + "Server": "伺服器", + "Dashboard": "控制台", + "PlayOnAnotherDevice": "在其他裝置上播放", + "HeaderConnectionHelp": "連線協助", + "AccessRestrictedTryAgainLater": "存取遭拒,請稍後再試。", + "ButtonGotIt": "我知道了", + "RememberMe": "記住我", + "EmbyServer": "Emby 伺服器", + "ManageEmbyServer": "管理 Emby 伺服器", + "ShutdownServer": "關閉 Emby 伺服器", + "RestartServer": "重新啟動 Emby 伺服器", + "RecordingCancelled": "已取消錄影", + "SeriesCancelled": "已取消錄影", + "Recording": "錄製", + "SeriesRecording": "錄影中的電視劇", + "RecordingScheduled": "已排程錄影", + "SeriesRecordingScheduled": "已排程錄影", + "HeaderNewRecording": "新錄影", + "HeaderWakeServer": "喚醒伺服器", + "AttemptingWakeServer": "試圖喚醒伺服器,請稍候...", + "WakeServerSuccess": "成功!", + "HeaderCustomizeHomeScreen": "自訂首頁", + "WakeServerError": "網路喚醒(WoL)封包已發送至主機,但仍無法連上 Emby 伺服器。可能啟動主機需一些時間,或是 Emby 伺服器尚未在主機上啟動。", + "Days": "錄影日", + "Network": "網路", + "Networks": "播放平台", + "SortByValue": "排序方式:{0}", + "HeaderSortBy": "排序方式", + "HeaderPhotoAlbums": "相簿", + "Photos": "相片", + "HeaderAppearsOn": "出現在", + "List": "清單", + "HeaderRecordSeries": "電視劇錄影", + "HeaderCinemaMode": "電影前導", + "Conversions": "轉換", + "Downloads": "下載", + "HeaderManageDownloads": "管理下載項目", + "InternalStorage": "內部儲存空間", + "ExternalStorage": "外接儲存空間", + "UploadToFollowingServers": "上傳到伺服器", + "UploadingNumItems": "上傳中 {0} / {1}", + "DownloadNumItems": "下載中 {0} / {1}", + "HeaderSampleRate": "取樣率", + "HeaderReferenceFrames": "參考影格", + "HeaderBitDepth": "色彩深度", + "HeaderPixelFormat": "像素格式", + "Profile": "檔案", + "Bitrate": "位元率", + "Expand": "拓展", + "Container": "容器", + "Format": "格式", + "Path": "路徑", + "Size": "檔案大小", + "Resolution": "解析度", + "HeaderCodecTag": "編碼標籤", + "Framerate": "影格率", + "Interlaced": "交錯掃描", + "Anamorphic": "寬螢幕", + "Level": "層級", + "Timestamp": "時間戳記", + "Language": "語言", + "Codec": "編碼", + "Stream": "串流", + "HeaderExtradata": "額外資料", + "HeaderHardwareAcceleratedTranscoding": "硬體加速轉碼", + "HeaderHardwareAcceleratedTranscodingDescription": "充分發揮伺服器 GPU 的效能。Emby 提供業界最先進且最快速的硬體加速技術。", + "HeaderOfflineDownloads": "離線媒體", + "AndMuchMoreExclamation": "還有更多!", + "HeaderOfflineDownloadsDescription": "將媒體下載到裝置中,方便離線觀賞。", + "LiveTvFeatureDescription": "只要在 Emby 伺服器中安裝相容的調諧器,您即可串流網路電視到任何 Emby 應用程式中。", + "DvrFeatureDescription": "使用 Emby DVR 即可定時錄製網路電視、電視劇和其他內容。", + "CinemaModeFeatureDescription": "啟用電影院模式後,Emby 會在影片正式開始前播放前導片或預告片,給您帶來真實的電影院體驗。", + "HeaderFreeApps": "免費 Emby 應用程式", + "FreeAppsFeatureDescription": "在您的裝置上享用免費的 Emby 應用程式。", + "HeaderBecomeProjectSupporter": "訂閱 Emby Premiere", + "HeaderViewServerInfo": "查看伺服器資訊", + "PlaybackTvModeRequiresEmbyPremiere": "若要在電視模式播放影片,需訂閱 {0}Emby Premiere{1}。", + "FeatureRequiresEmbyPremiere": "此功能需訂閱 {0}Emby Premiere{1}。", + "HeaderConvertYourRecordings": "錄影轉檔", + "Record": "開始錄影", + "Save": "儲存", + "Edit": "編輯", + "HeaderSavePlaylist": "儲存播放清單", + "Latest": "最近新增", + "Download": "下載", + "Downloaded": "已下載", + "Converted": "轉換", + "RemoveFromHistory": "從觀看紀錄中移除", + "ConfirmRemoveFromHistory": "確定要從觀看紀錄中移除此項目嗎?", + "Downloading": "下載中", + "Advanced": "進階設定", + "LinkedToEmbyConnect": "已綁定 Emby Connect", + "Delete": "刪除", + "Both": "兩者", + "LabelChannelDisplay": "頻道展示", + "HeaderDeleteItem": "刪除項目", + "HeaderDeleteUser": "刪除用戶", + "DeleteItemConfirmation": "確定要刪除 {0} 嗎?", + "DeleteUserConfirmation": "確定要刪除使用者 {0} 嗎?", + "DeleteUsersConfirmation": "確定要刪除這些使用者 {0} 嗎?", + "HeaderDeleteDevice": "刪除裝置", + "DeleteDeviceConfirmation": "確定要刪除該裝置嗎?此裝置會於下次登入後再次出現。", + "ConfirmDeleteItem": "刪除此項目時,也會一併從檔案系統及媒體庫中刪除。", + "FollowingFilesWillBeDeleted": "下列檔案和資料夾將被刪除:", + "AreYouSureToContinue": "確定要繼續嗎?", + "Refresh": "重新整理", + "RefreshingMetadataDots": "重整中繼資料中...", + "ScanningLibraryFilesDots": "掃描媒體庫檔案中...", + "HeaderFavoritesThenByChannelNumber": "我的最愛,之後是頻道台數字", + "HeaderAddToCollection": "加入收藏清單", + "HeaderFavoritesThenByTitle": "我的最愛,之後是標題", + "HeaderFavoritesThenByDefault": "我的最愛,之後是預設頻道台順序", + "HeaderDefaultChannelOrder": "預設頻道順序", + "HeaderAddToFavorites": "新增到我的最愛", + "HeaderRemoveFromFavorites": "從我的最愛移除", + "Favorited": "我的最愛", + "Unfavorited": "不喜愛", + "HeaderNewCollection": "新增收藏清單", + "HeaderNewPlaylist": "新增播放清單", + "AllCollections": "所有收藏清單", + "AllPlaylists": "所有播放清單", + "Create": "建立", + "HeaderAddedToPlaylist": "已新增到播放清單", + "HeaderAddedToCollection": "已加入收藏清單", + "OneItemAddedTo": "1 個項目已新增到 「{0}」。", + "ItemsAddedTo": "{0} 個項目已新增到 「{1}」。", + "HeaderAddedToPlayQueue": "將於稍後播放", + "HeaderPlayingNext": "正在播放下一個", + "Help": "說明", + "HeaderGetHelp": "需要幫助", + "LabelTVDisplayMode": "啟用電視模式", + "Desktop": "桌上型電腦", + "Mobile": "手機/平板", + "Navigation": "導引", + "HeaderVideoPlayback": "影片播放", + "TV": "電視", + "HeaderEmbyConnect": "Emby Connect", + "Seasons": "季別", + "OneTrack": "1音軌", + "OneSeason": "1 季", + "Libraries": "媒體庫", + "NumberSeasonsValue": "{0} 季", + "TVDisplayModeHelp": "為電視播放和遙控器最佳化使用者介面,不建議在使用鍵鼠或是觸控輸入的裝置啟用。", + "LabelDisplayLanguage": "顯示語言", + "LabelDisplayLanguageHelp": "Emby 的翻譯工作仍在持續進行中。", + "LearnHowYouCanContribute": "瞭解如何參與貢獻。", + "NewCollectionHelp": "收藏清單可以讓您建立個人化的電影與其他媒體內容清單。", + "SearchForCollectionInternetMetadata": "在網路上搜索媒體圖像和資料", + "DisplayMissingEpisodesWithinSeasons": "顯示本季缺少的集數", + "DisplayMissingEpisodesWithinSeasonsHelp": "此功能也需要在 Emby 伺服器設定中的電視媒體庫啟用。", + "EnableThemeSongs": "播放背景音樂", + "EnableBackdrops": "顯示背景圖片", + "EnableThemeSongsHelp": "啟用後,Emby 會於瀏覽媒體庫時播放背景音樂。", + "EnableBackdropsHelp": "啟用後,Emby 會於瀏覽部分媒體庫頁面時顯示背景圖片。", + "EnableThemeVideos": "播放背景影片", + "EnableThemeVideosHelp": "啟用後,Emby 會於瀏覽媒體庫時播放背景影片。", + "RunAtStartup": "在系統啟動時自動執行", + "ServerStartup": "啟動伺服器", + "EmbyServerOnXHasStarted": "已啟動 Emby 伺服器 - {0}。", + "LabelScreensaver": "螢幕保護程式", + "LabelSoundEffects": "音效", + "LabelName": "名稱", + "NewCollectionNameExample": "例如:星際大戰合集", + "MessageItemsAdded": "已新增項目。", + "OptionNew": "新增...", + "LabelPlaylist": "播放清單", + "AddToPlaylist": "新增到播放清單", + "HeaderAddToPlaylist": "新增到播放清單", + "Subtitles": "字幕", + "LabelTheme": "佈景主題", + "LabelSettingsTheme": "控制台佈景主題", + "LabelThemeAccentColor": "強調色", + "ThemeAccentColorDescription": "修改重要指示器、圖示和文字的顏色。", + "SearchForSubtitles": "搜尋字幕", + "LabelLanguage": "語言", + "Search": "搜尋", + "NoSubtitleSearchResultsFound": "沒有任何結果,請問已設定好{0}字幕下載{1}了嗎?", + "NoLyricsSearchResultsFound": "沒有任何結果,請問已設定好{0}歌詞下載{1}了嗎?", + "Lyrics": "歌詞", + "SearchForLyrics": "搜尋歌詞", + "Finish": "結束", + "File": "檔案", + "Exit": "離開", + "Sleep": "睡眠", + "Setup": "設定", + "MessageAreYouSureDeleteSubtitles": "您確定要刪除這個字幕檔嗎?", + "ConfirmDeletion": "確定刪除", + "MySubtitles": "我的字幕", + "MessageDownloadQueued": "已佇列下載。", + "HeaderEditSubtitles": "編輯字幕", + "UnlockGuide": "解鎖方式", + "HeaderRefreshMetadata": "重整中繼資料", + "HeaderRefreshAllMetadata": "重整所有中繼資料", + "ReplaceExistingImages": "取代現有圖片", + "ReplaceExistingImagesHelp": "所有現有圖片將被刪除,並重新下載新的圖片。某些情況下,下載後的圖片數量可能會少於原本的數量。", + "ReplaceAllMetadata": "取代所有中繼資料", + "SearchForMissingMetadata": "搜尋缺少的中繼資料", + "LabelRefreshMode": "重整模式", + "NoItemsFound": "找不到任何項目。", + "HeaderSaySomethingLike": "例如...", + "ButtonTryAgain": "重試", + "HeaderYouSaid": "您是指...", + "MessageWeDidntRecognizeCommand": "很抱歉,我們無法辨識此指令。", + "MessageIfYouBlockedVoice": "如果您拒絕應用程式存取麥克風,需重新授權才能繼續設定。", + "ValueDiscNumber": "光碟 {0}", + "Unrated": "未分級", + "Favorite": "加到最愛", + "Like": "喜歡", + "Dislike": "不喜歡", + "RefreshDialogHelp": "中繼資料會依據 Emby 伺服器控制台中的設定及網路服務來更新。", + "Open": "開啟", + "Play": "播放", + "Pause": "暫停", + "HeaderPlayQueue": "稍後播放", + "HeaderAddToPlayQueue": "稍後播放", + "Shuffle": "隨機播放", + "Identify": "身分識別", + "HeaderRemoveIdentification": "移除身分識別", + "ResetMetadataConfirmation": "確定要重設所有中繼資料嗎?", + "HeaderEditMetadata": "編輯中繼資料", + "Convert": "轉換", + "Resume": "恢復播放", + "HeaderInstantMix": "瞬時隨機播放", + "HeaderGoToItem": "前往該項目", + "HeaderGoToSeason": "前往該季別", + "HeaderGoToSeries": "前往電視劇", + "HeaderGoToAlbum": "前往該專輯", + "HeaderGoToArtist": "前往該藝人", + "HeaderPlayAll": "全部播放", + "PictureInPicture": "子母畫面", + "Fullscreen": "全螢幕", + "ExitFullscreen": "退出全螢幕", + "Rewind": "倒轉", + "FastForward": "快轉", + "Remove": "移除", + "Rename": "重新命名", + "Queue": "佇列", + "QueueAllFromHere": "從此開始全部加入播放佇列", + "PlayAllFromHere": "從此開始全部播放", + "PlayFromBeginning": "從頭開始播放", + "FromBeginning": "從頭開始播放", + "ResumeAt": "從 {0} 處恢復播放", + "HeaderRemoveFromPlaylist": "從播放清單中移除", + "HeaderRemoveFromPlayQueue": "從播放佇列中移除", + "HeaderRemoveFromCollection": "從收藏清單中移除", + "Sort": "排序", + "Trailer": "預告片", + "SelectNone": "不選擇", + "SelectAll": "全選", + "HeaderMarkPlayed": "標示為已播放", + "HeaderMarkUnplayed": "標示為未播放", + "HeaderGroupVersions": "根據版本分類", + "PleaseSelectTwoItems": "請至少選擇兩個項目。", + "HeaderConfirmRecordingCancellation": "確認取消錄影", + "MessageConfirmRecordingCancellation": "確定要取消錄影嗎?", + "Album": "專輯", + "AlbumArtist": "專輯藝人", + "Error": "錯誤", + "VoiceInput": "音訊輸入", + "LabelContentType": "內容類型", + "LabelPath": "路徑", + "Playlists": "播放清單", + "LabelTitle": "名稱", + "LabelOriginalTitle": "原始名稱", + "LabelSortTitle": "排序名稱", + "LabelDateAdded": "加入日期", + "DateAdded": "加入日期", + "DateModified": "資料修改", + "DatePlayed": "播放日期", + "DateLastActive": "最後活動日期", + "ConfigureDateAdded": "您可以在 Emby 伺服器的控制台中,於「媒體庫」頁面設定新增日期的判定方式", + "LabelStatus": "狀態", + "LabelArtistsHelp": "使用分號區隔多種條件 ;", + "HeaderAlbumArtists": "專輯藝人", + "LabelAlbumArtists": "專輯藝人", + "LabelAlbum": "專輯", + "Artist": "藝人", + "Artists": "藝人", + "ImdbRating": "IMDb 評分", + "CommunityRating": "社群評分", + "LabelCommunityRating": "社群評分", + "LabelCriticRating": "影評人評分", + "CriticRating": "影評人評分", + "LabelWebsite": "網站", + "Tagline": "標語", + "LabelOverview": "劇情簡介", + "LabelShortOverview": "劇情簡介", + "LabelReleaseDate": "推出日期", + "LabelPlaceOfBirth": "出生地", + "Aired": "已播出", + "LabelAirDays": "播出日期", + "LabelAirTime": "播出時間", + "LabelRuntimeMinutes": "片長(分)", + "LabelCustomRating": "自訂分級", + "LabelOriginalAspectRatio": "原始長寬比", + "Label3DFormat": "3D 格式", + "FormatValue": "格式:{0}", + "DownloadsValue": "{0} 個下載項目", + "HashMatch": "Hash 比對", + "EnableExternalVideoPlayers": "啟用外部影片播放器", + "EnableExternalVideoPlayersHelp": "開始播放影片時將會顯示外部播放器選單。", + "HeaderSpecialEpisodeInfo": "特別篇資訊", + "LabelAirsDuringSeason": "播出於季", + "LabelAirsAfterSeason": "播出於季 (之後)", + "LabelAirsBeforeEpisode": "播出於集 (之前)", + "HeaderExternalIds": "外部識別碼", + "HeaderDisplaySettings": "顯示設定", + "PlaylistOrder": "播放清單順序", + "CollectionOrder": "收藏清單順序", + "LabelDisplayOrder": "顯示順序", + "LabelFileOrder": "檔案順序", + "Display": "顯示", + "Countries": "國家", + "Genres": "類型", + "Studios": "工作室", + "Tags": "標籤", + "Links": "連結", + "Movie": "電影", + "Program": "節目", + "Channel": "頻道", + "Episode": "單集", + "Season": "季別", + "HeaderMetadataSettings": "中繼資料設定", + "People": "人物", + "Number": "音軌", + "Lock": "鎖定", + "HeaderScreenLocked": "螢幕已鎖定", + "HeaderUnlockControls": "解鎖控制選項", + "HeaderTapToUnlock": "輕觸以解除鎖定", + "LabelMetadataDownloadLanguage": "偏好中繼資料下載語系", + "LabelImageDownloadLanguage": "偏好影像下載語系", + "LabelLockItemToPreventChanges": "鎖定此項目以防止修改", + "LockThisField": "鎖定此區塊以避免在資料重整時被覆寫", + "MessageLeaveEmptyToInherit": "留白以繼承父系項目設定或全域預設值。", + "LabelCountry": "國家", + "LabelCertificationCountry": "分級地區", + "CertificationCountryHelp": "設定要使用的內容分級系統。", + "LabelDynamicExternalId": "{0} Id:", + "LabelBirthYear": "出生年份", + "LabelBirthDate": "出生日期", + "LabelDeathDate": "逝世日期", + "LabelEndDate": "終止日期", + "LabelSeasonNumber": "季別", + "LabelEpisodeNumber": "集數", + "LabelTrackNumber": "音軌數", + "LabelNumber": "編號", + "LabelDiscNumber": "光碟編號", + "LabelParentNumber": "父母編號:", + "SortName": "排序名稱", + "OriginalTitle": "原始名稱", + "ReleaseDate": "推出日期", + "Continuing": "播放中", + "Ended": "完結", + "HeaderEnabledFields": "啟用選項", + "HeaderEnabledFieldsHelp": "取消勾選後,此欄位會被鎖定以防止變更。", + "Backdrops": "背景圖片", + "Images": "圖片", + "Runtime": "片長", + "ProductionLocations": "拍攝地點", + "BirthLocation": "出生地:", + "ParentalRating": "電影分級", + "PlayCount": "播放次數", + "Name": "名稱", + "Overview": "劇情簡介", + "LabelType": "類型", + "LabelPersonRole": "角色", + "LabelPersonRoleHelp": "例如:冰淇淋車司機", + "Actor": "演員", + "Composers": "作曲", + "Composer": "作曲", + "Director": "導演", + "GuestStar": "客串", + "Producer": "製作人", + "Writer": "編劇", + "MessageNoSyncJobsFound": "沒有已下載的項目。您可以在應用程式中使用下載按鈕新增下載工作。", + "MessageNoDownloadsFound": "沒有已下載的項目。您可以在應用程式中點擊下載按鈕,並下載媒體供離線使用。", + "InstallingPackage": "正在安裝 {0}", + "PackageInstallCompleted": "{0} 安裝完成。", + "PackageInstallFailed": "{0} 安裝失敗。", + "PackageInstallCancelled": "已取消安裝 {0}。", + "SeriesYearToPresent": "{0} - 現在", + "OneDevice": "1 台裝置", + "DeviceCountValue": "{0} 台裝置", + "OneLog": "1 則日誌", + "LogCountValue": "{0} 則日誌", + "OneVote": "1 次票選", + "VoteCountValue": "{0} 次喜歡", + "OneLike": "1 次喜歡", + "LikeCountValue": "{0} 次喜歡", + "OneUser": "1 位使用者", + "UserCountValue": "{0} 位使用者", + "OneLibrary": "1 個媒體庫", + "LibraryCountValue": "{0} 個媒體庫", + "ValueOneItem": "1 個項目", + "ValueOneEpisode": "1 集", + "ValueEpisodeCount": "{0} 集", + "Albums": "專輯", + "Song": "歌曲", + "Songs": "歌曲", + "Authors": "作者", + "Books": "書籍", + "AudioBooks": "有聲書", + "HeaderAudioBooks": "有聲書", + "HeaderAudioBook": "有聲書", + "HeaderIdentifyItemHelp": "輸入一個以上的搜尋條件,或者嘗試移除條件以增加搜尋結果。", + "PleaseEnterNameOrId": "請輸入名稱或外部識別碼。", + "MessageItemSaved": "項目已儲存。", + "SearchResults": "搜索結果", + "ServerNameIsRestarting": "Emby 伺服器 - {0} 重新啟動中。", + "ServerNameIsShuttingDown": "Emby 伺服器 - {0} 正在關閉中。", + "HeaderDeleteItems": "刪除項目", + "ConfirmDeleteItems": "刪除此項目將會同時從檔案系統與媒體庫中移除。", + "PleaseRestartServerName": "請重新啟動 Emby 伺服器 - {0}", + "ConvertingDots": "轉檔中...", + "LabelSyncNoTargetsHelp": "您似乎沒有支援離線下載的應用程式。", + "DownloadingDots": "下載中...", + "LearnMore": "了解更多", + "LabelBitrateMbps": "位元率 (Mbps)", + "ConvertUnwatchedVideosOnly": "只轉換未播放影片", + "SyncUnwatchedVideosOnly": "只下載未播放影片", + "ConvertUnwatchedVideosOnlyHelp": "只有未播放完畢的影片會被轉換。", + "SyncUnwatchedVideosOnlyHelp": "只有未觀賞影片會被下載,並於觀賞後自動移除。", + "AutomaticallySyncNewContent": "自動下載新內容", + "AutomaticallySyncNewContentHelp": "自動下載此資料夾的新內容到裝置。", + "AutomaticallyConvertNewContent": "自動轉換", + "AutomaticallyConvertNewContentHelp": "自動轉換此資料夾中的新內容。", + "LabelItemLimit": "項目限制", + "ConvertItemLimitHelp": "(選用) 設定轉換項目的數量限制。", + "DownloadItemLimitHelp": "(選用) 設定下載項目的數量限制。", + "PleaseSelectDeviceToSyncTo": "請選擇要下載的裝置。", + "Screenshots": "螢幕擷圖", + "MoveRight": "右移", + "MoveLeft": "左移", + "HeaderUploadNewImage": "上傳新圖片", + "HeaderDeleteImage": "刪除圖片", + "ConfirmDeleteImage": "刪除圖片?", + "HeaderEditImages": "編輯圖片", + "Settings": "設定", + "ShowIndicatorsFor": "顯示指示器", + "Episodes": "單集", + "Programs": "節目表", + "HeaderCastCrew": "演員及工作人員", + "DvrSubscriptionRequired": "Emby 網路電視和 DVR 功能需要訂閱 {0}Emby Premiere{1}。", + "HeaderCancelRecording": "取消錄影", + "HeaderKeepRecording": "保留錄影", + "HeaderCancelSeries": "取消錄影", + "HeaderKeepSeries": "繼續錄影", + "HeaderLearnMore": "了解更多", + "SeriesSettings": "電視劇設定", + "HeaderRecordingOptions": "錄影選項", + "HeaderDoNotRecord": "不錄影", + "HeaderSeriesOptions": "電視劇選項", + "Layout": "聲道配置", + "Channels": "頻道", + "ChannelNameOnly": "僅限頻道 {0}", + "Anytime": "任何時間", + "AnyLanguage": "任何語言", + "AroundTime": "大約 {0}", + "HeaderLatestMovies": "最近新增的電影", + "All": "全部", + "Stop": "停止", + "AllChannels": "所有頻道", + "NewEpisodesOnly": "只限新集數", + "AllEpisodes": "所有集數", + "LabelStartWhenPossible": "當可能時啟動", + "LabelStopWhenPossible": "當可能時終止", + "MinutesBefore": "幾分鐘前", + "MinutesAfter": "幾分鐘後", + "SkipEpisodesAlreadyInMyLibrary": "不要錄影已存在於媒體庫中的集數", + "SkipEpisodesAlreadyInMyLibraryHelp": "如果可以,單集會以季別和集數來比較。", + "LabelKeepUpTo": "直到", + "AsManyAsPossible": "越多越好", + "DefaultErrorMessage": "處理請求時發生錯誤,請稍後再試。", + "UntilIDelete": "直到刪除", + "UntilSpaceNeeded": "直到儲存空間不足", + "Categories": "類別", + "Sports": "體育", + "News": "新聞", + "Movies": "電影", + "Music": "音樂", + "Kids": "兒童", + "MoreFromValue": "更多來自 {0} 的內容", + "DiedValue": "逝世於:{0}", + "BornValue": "出生於:{0}", + "EnableColorCodedBackgrounds": "根據類別套用不同的背景顏色", + "SortChannelsBy": "頻道排序方式", + "ChannelNumber": "頻道編號", + "HeaderBenefitsEmbyPremiere": "Emby Premiere 權益", + "ThankYouForTryingEnjoyOneMinute": "請享受一分鐘試播,感謝您試用 Emby。", + "HeaderTryPlayback": "試用播放功能", + "HowDidYouPay": "要如何付款?", + "IHaveEmbyPremiere": "我有 Emby Premiere", + "IPurchasedThisApp": "我已經購買此應用程式", + "ButtonRestorePreviousPurchase": "恢復購買", + "ButtonUnlockWithPurchase": "購買以解鎖", + "ButtonUnlockPrice": "解鎖 {0}", + "EmbyPremiereMonthlyWithPrice": "Emby Premiere 月費方案 {0}", + "HeaderAlreadyPaid": "已經付款了嗎?", + "ButtonPlayOneMinute": "播放一分鐘預覽", + "PlaceFavoriteChannelsAtBeginning": "在首頁顯示最愛頻道", + "HeaderUnlockFeature": "解鎖功能", + "MessageDidYouKnowCinemaMode": "您知道有了 Emby Premiere,就可以使用電影院模式等功能增強使用者體驗嗎?", + "HeaderPlayMyMedia": "播放我的媒體", + "HeaderDiscoverEmbyPremiere": "探索 Emby Premiere", + "HeaderNowPlaying": "正在播放", + "Items": "項目", + "AppName": "應用程式名稱", + "OneChannel": "1 個頻道", + "ConfirmRemoveDownload": "移除下載項目?", + "ConfirmRemoveItem": "移除項目?", + "RemoveDownload": "移除下載項目", + "ConfirmCancelConversion": "取消轉換?", + "CancelConversion": "取消轉換", + "KeepDownload": "保留下載項目", + "AddedOnValue": "已新增 {0}", + "RemovingFromDevice": "移除中", + "KeepOnDevice": "保留在裝置上", + "CancelDownload": "取消下載", + "SyncJobItemStatusReadyToTransfer": "準備傳輸", + "SyncJobItemStatusSyncedMarkForRemoval": "移除中", + "SyncJobItemStatusQueued": "已佇列", + "SyncJobItemStatusConverting": "轉檔中", + "SyncJobItemStatusTransferring": "傳輸中", + "SyncJobItemStatusSynced": "已下載", + "Failed": "失敗", + "SyncJobItemStatusRemovedFromDevice": "已從裝置移除", + "Cancelled": "已取消", + "Retry": "重試", + "Continue": "繼續", + "ContinueInSecondsValue": "將在 {0} 秒後繼續。", + "HeaderRemoteControl": "遠端控制", + "Disconnect": "中斷連線", + "EnableDisplayMirroring": "啟用鏡像顯示", + "RemoteAccess": "遠端存取", + "HeaderPlayOn": "播放裝置", + "Quality": "品質", + "Auto": "自動", + "AndroidUnlockRestoreHelp": "若要恢復您先前的購買紀錄,請確保您已使用當初購買時的 Google(或 Amazon)帳號登入此裝置。請確認應用程式商店已啟用,且未受家長監護功能限制,並確保目前已連接至網際網路。您只需執行一次,即可恢復您先前的購買紀錄。", + "HeaderAspectRatio": "長寬比", + "Original": "等比例縮放", + "Fill": "填滿全螢幕", + "Cover": "封面", + "MessageNoServersAvailableToConnect": "沒有可連線的伺服器。如您已被邀請分享伺服器,請在下方點選接受邀請,或是點擊電子郵件中的連結。", + "MessagePlayAccessRestricted": "已限制播放此內容,請聯絡 Emby 伺服器管理員以了解更多資訊。", + "Accept": "接受", + "Reject": "拒絕", + "Connect": "連線", + "HeaderMyMedia": "我的媒體", + "HeaderMyMediaSmall": "我的媒體(小)", + "LatestFromLibrary": "最近新增至 {0}", + "HeaderLatestEpisodes": "最近新增的單集", + "ContinuePlaying": "繼續播放", + "ContinueWatching": "繼續觀看", + "HeaderLatestChannelMedia": "最新頻道項目", + "HeaderContinueWatching": "繼續觀看", + "HeaderContinueListening": "繼續聆聽", + "HeaderActiveRecordings": "正在進行的錄影", + "HeaderLatestRecordings": "最近新增的錄影", + "LabelConvertTo": "轉檔位置", + "LabelDownloadTo": "下載至", + "HeaderDownloadToDots": "下載至...", + "Next": "下一步", + "LabelSource": "來源", + "VersionNumber": "版本 {0}", + "HeaderAllLanguages": "所有語言", + "Previous": "上一個", + "HeaderNextUp": "接著播放", + "HeaderPlayNextUp": "繼續播放", + "HeaderLatestFrom": "最近新增至 {0}", + "LabelHomeScreenSectionValue": "首頁區塊 {0}", + "PasswordResetComplete": "密碼已重設。", + "PasswordSaved": "密碼已儲存。", + "SettingsSaved": "設定已儲存。", + "Upcoming": "即將播出", + "HeaderSelectImageFile": "選擇影像檔案", + "None": "無", + "More": "更多", + "Up": "上", + "Down": "下", + "Home": "首頁", + "Back": "返回", + "Random": "隨機", + "Playback": "播放", + "Favorites": "我的最愛", + "HeaderHomeScreen": "首頁", + "HeaderLatestChannelItems": "最近新增的頻道", + "HeaderLibraryOrder": "媒體庫順序", + "HeaderOnNow": "上映中", + "HeaderForKids": "專為兒童打造", + "HeaderPlaybackError": "播放錯誤", + "PlaybackErrorNotAllowed": "您尚未被授權播放此內容,請聯繫系統管理員了解更多資訊。", + "RateLimitExceeded": "您的帳號已超過串流限制,請聯絡 Emby 伺服器管理員處理。", + "PlaybackErrorNoCompatibleStream": "目前無法提供串流,請稍後重試或與系統管理員聯繫以獲取詳細資訊。", + "PlaybackErrorPlaceHolder": "請插入光碟來播放此影片。", + "PlaybackErrorNoPlayableItems": "沒有可播放的項目,請問您是否正在播放空目錄呢?", + "Guide": "指南", + "Games": "遊戲", + "GameSystem": "遊戲系統", + "Suggestions": "推薦內容", + "HeaderFavoriteChannels": "最愛頻道", + "HeaderFavoriteCollections": "最愛收藏清單", + "HeaderFavoritePlaylists": "最愛播放清單", + "Collection": "收藏清單", + "Collections": "收藏清單", + "LabelSelectFolderGroups": "自動將以下資料夾中的內容分類為「電影」、「音樂」與「電視」:", + "LabelSelectFolderGroupsHelp": "未勾選的資料夾將會獨立顯示。", + "Mute": "靜音", + "Unmute": "取消靜音", + "Folder": "資料夾", + "Folders": "資料夾", + "FileName": "檔案名稱", + "DisplayInOtherHomeScreenSections": "顯示於次要首頁區塊,例如:最近新增媒體與繼續觀看清單", + "DisplayInMyMedia": "在主畫面顯示", + "Shows": "電視劇", + "MoviesAndShows": "電影和節目", + "HeaderMusicVideo": "音樂影片", + "HeaderMusicVideos": "音樂影片", + "MusicVideos": "音樂影片", + "Videos": "影片", + "MixedContent": "混合", + "HomeVideos": "家庭影片", + "HomeVideosAndPhotos": "家庭影片和相片", + "TVShows": "電視節目", + "HeaderLibraryFolders": "媒體庫資料夾", + "HeaderTermsOfPurchase": "銷售條款", + "PrivacyPolicy": "隱私權政策", + "TermsOfUse": "使用條款", + "HeaderRepeatMode": "循環播放", + "HeaderToneMapping": "色調映射", + "RepeatOne": "重播", + "RepeatAll": "全部重播", + "LabelDefaultScreen": "首頁", + "ConfirmEndPlayerSession": "您希望在 {0} 上關閉 Emby 嗎?", + "Yesterday": "昨天", + "Yes": "是", + "No": "否", + "HeaderScanLibraryFiles": "掃描媒體庫檔案", + "LiveTV": "網路電視", + "Schedule": "排程", + "Recordings": "錄影", + "ScanForNewAndUpdatedFiles": "探索新增和更新的檔案", + "NewVersionOfXAvailableForY": "{0} 已經可供 {1} 下載", + "DirectStreamHelp1": "該裝置相容於解析度和格式(如 H.264、AC3 等),但與檔案容器格式(如 .mkv、.avi、.wmv 等)不相容。影片將在串流到裝置之前即時重新封裝。", + "DirectStreamHelp2": "直接串流只使用極少的處理資源,且不損失任何影片品質。", + "MediaIsBeingConverted": "媒體正在被轉換為相容於播放裝置的格式。", + "StatsForNerds": "統計資訊", + "HeaderHardwareAcceleratedDecoding": "硬體加速解碼", + "HeaderHardwareAcceleratedEncoding": "硬體加速編碼", + "HeaderDirectPlay": "直接播放", + "DirectPlaying": "直接播放", + "DirectStreaming": "直接串流", + "Transcode": "轉碼", + "Transcoding": "轉碼", + "ContainerBitrateExceedsLimit": "已根據品質設定降低位元率", + "VideoCodecNotSupported": "將視訊轉換至相容編碼中", + "AudioCodecNotSupported": "將音訊轉換至相容編碼中", + "SubtitleCodecNotSupported": "將字幕直接轉換進視訊中", + "DirectPlayError": "從播放錯誤恢復中", + "ContainerNotSupported": "轉換至相容容器中", + "VideoLevelNotSupported": "轉換至相容影片層級中", + "AudioBitrateNotSupported": "轉換至相容音訊位元率中", + "AudioChannelsNotSupported": "轉換至相容聲道數量中", + "VideoResolutionNotSupported": "轉換至相容解析度中", + "AudioProfileNotSupported": "轉換至相容音訊檔案中", + "AudioSampleRateNotSupported": "轉換至相容音訊取樣率中", + "AnamorphicVideoNotSupported": "不支援寬螢幕影片", + "InterlacedVideoNotSupported": "去交錯影片", + "SecondaryAudioNotSupported": "選擇次要音軌", + "ExternalAudioNotSupported": "選擇外部音軌", + "ErrorRemovingEmbyConnectAccount": "移除 Emby Connect 帳號時發生錯誤,請檢查網路連線後再試一次。", + "HeaderEmbyAccountRemoved": "已移除 Emby 帳號", + "MessageEmbyAccontRemoved": "已將 Emby 帳號與此使用者解除綁定。", + "HeaderInvitationSent": "已送出邀請", + "Offline": "離線", + "HeaderSignUp": "註冊", + "ServerDownloadMessage": "若要下載並安裝 Emby 伺服器,請至 {0} 取得最新版本", + "ServerDownloadMessageWithoutLink": "要下載並安裝免費的 Emby 伺服器,請前往 Emby 網站。", + "MessageInvitationSentToUser": "系統已寄送一封電子郵件到 {0},邀請他們接受你的分享。", + "MessageInvitationSentToNewUser": "系統已寄送一封電子郵件到 {0},邀請他們註冊 Emby。", + "GuestUserNotFound": "查無使用者,請確認名稱是否正確後再試一次,或嘗試輸入他們的電子信箱。", + "ErrorReachingEmbyConnect": "連線至 Emby Connect 伺服器時發生錯誤,請檢查網路連線後再試一次。", + "ErrorAddingEmbyConnectAccount1": "新增 Emby Connect 帳號時發生錯誤。請問受邀者是否已擁有 Emby 帳號?他們可以造訪 {0} 以完成註冊。", + "ErrorAddingEmbyConnectAccount2": "如仍有問題,請使用註冊 Emby Connect 帳號的電子信箱寄信到 {0}。", + "ErrorAddingGuestAccount1": "新增 Emby Connect 帳號時發生錯誤。請問受邀者是否已擁有 Emby 帳號?他們可以造訪 {0} 以完成註冊。", + "ErrorAddingGuestAccount2": "如仍有問題,請寄信到 {0},並附上您和其他人的電子信箱。", + "MessageEmbyAccountAdded": "已將 Emby 帳號新增至此使用者。", + "MessagePendingEmbyAccountAdded": "已將 Emby 帳號新增至此使用者。系統將發送一封電子郵件給帳號擁有者,並需要透過點擊郵件中的連結來確認邀請。", + "HeaderEmbyAccountAdded": "已新增 Emby 帳號", + "Skip": "略過", + "HeaderAdditionalParts": "附加部份", + "ButtonGenerateNewPin": "產生新 PIN 碼", + "ConnectLoginHelp1": "使用 Emby Connect,無論身在何處,您都可以輕鬆造訪 Emby 伺服器,還能與家人和朋友共享伺服器。", + "CreatePinErrorMessage": "建立 PIN 碼時發生錯誤,請按下「產生新 PIN 碼」再試一次。", + "PinExpiredMessage": "PIN 碼已過期,請按下「產生新 PIN 碼」再試一次。", + "ConnectPinCodeHeader": "如要使用 Emby Connect 登入,請使用行動裝置或電腦造訪 {0},並輸入下方 PIN 碼:", + "LabelSubtitlePlaybackMode": "字幕模式", + "ErrorDeletingItem": "無法刪除此項目。請確認 Emby 伺服器對此媒體資料夾有寫入權限後,再試一次。", + "NoSubtitles": "無字幕", + "Default": "預設", + "Absolute": "絕對", + "Smart": "智慧", + "Small": "小", + "Smaller": "較小", + "Medium": "中", + "Large": "大", + "Larger": "較大", + "ExtraLarge": "特大", + "ExtraSmall": "超小", + "Forced": "強制", + "External": "外部通知", + "HeaderEmbeddedTitle": "內嵌名稱", + "OnlyForcedSubtitles": "僅限強制字幕", + "AlwaysPlaySubtitles": "永遠顯示字幕", + "DefaultSubtitlesHelp": "字幕會根據內嵌中繼資料中的預設和強制標記載入。當有多個選項時,會根據語言偏好設定顯示。", + "SmartSubtitlesHelp": "當音訊為外語時,載入符合語言偏好的字幕。", + "HeaderSubtitleSettings": "字幕設定", + "HeaderSubtitleAppearance": "字幕外觀", + "OnlyForcedSubtitlesHelp": "僅載入標記為「強制字幕」的字幕。", + "AutoSelectHearingImpairedHelp": "根據語言偏好載入字幕,並優先選擇標記為聽障用(SDH)的字幕軌。", + "AlwaysPlaySubtitlesHelp": "不論音訊為何種語言,一律載入符合語言偏好的字幕。", + "NoSubtitlesHelp": "預設不載入字幕,您可於播放時手動開啟字幕。", + "LabelPreferredSubtitleLanguage": "偏好字幕語言", + "LabelTextSize": "字體大小", + "TheseSettingsAffectSubtitlesOnThisDevice": "這些設定會影響裝置上顯示的字幕", + "LabelDropShadow": "字幕陰影", + "LabelTextBackgroundColor": "文字背景顏色", + "LabelWindowBackgroundColor": "文字背景顏色", + "LabelFont": "字型", + "LabelTextColor": "文字顏色", + "LabelBackgroundColor": "背景顏色", + "LabelBackgroundOpacity": "背景不透明度", + "Raised": "浮雕", + "Depressed": "凹陷", + "Uniform": "統一", + "DropShadow": "字幕陰影", + "SmallCaps": "小型大寫字母", + "SubtitleAppearanceSettingsDisclaimer": "這些設定無法套用於圖像式字幕(例如:PGS, DVD 等),或已有內嵌風格的字幕(ASS/SSA)。", + "Normal": "正常", + "HeaderWaitingForWifi": "等待 Wifi 連線中", + "WifiRequiredToDownload": "需連線至 Wifi 後才能繼續下載。", + "DownloadOnlyOnWifi": "僅使用 Wifi 下載", + "LabelMusicDownloadQuality": "音樂下載品質", + "MusicDownloadQualityHelp": "較高位元率的音訊檔將由 Emby 伺服器轉檔。選擇較高的數值獲得最佳品質,或選擇較低的數值以節省本機儲存空間。", + "HeaderDownloadSettings": "下載設定", + "LabelDownloadLocation": "下載位置", + "BrowseForFolder": "瀏覽資料夾", + "Unlimited": "無限制", + "NoLimit": "無限制", + "Hide": "隱藏", + "HeaderKeepWatching": "繼續觀看", + "HeaderNextEpisode": "下一集", + "AudioBitDepthNotSupported": "轉換至相容音訊位深中", + "VideoBitrateNotSupported": "正在轉換為支援的視訊位元率", + "VideoProfileNotSupported": "轉換至相容視訊檔案中", + "VideoFramerateNotSupported": "轉換至相容視訊影格中", + "VideoBitDepthNotSupported": "轉換至相容視訊位深中", + "RefFramesNotSupported": "轉換至相容參考視訊影格數中", + "ErrorConnectServerUnreachable": "執行要求的動作發生錯誤,您位於 {0} 的伺服器無法連線至 Emby Connect 伺服器。請確認伺服器已連上網路,且已在所安裝的資安軟體或防火牆內允許該連線。", + "HeaderStopRecording": "停止錄影", + "ManageRecording": "管理錄影", + "LabelDropImageHere": "請將圖片拖曳到此處,或點擊以瀏覽並上傳圖片。", + "MessageFileReadError": "讀取檔案時發生錯誤,請重試。", + "Browse": "瀏覽", + "HeaderUploadImage": "上傳圖片", + "HeaderAddUpdateImage": "新增/更新圖片", + "HeaderShowFields": "啟用範疇", + "LabelView": "檢視", + "LabelImageType": "圖片類型", + "Upload": "上傳", + "Primary": "主圖", + "PrimaryImageBlur": "主圖模糊", + "Art": "藝術圖", + "Backdrop": "背景", + "Banner": "橫幅", + "Box": "套裝", + "BoxRear": "套裝(後方)", + "Disc": "光碟", + "Logo": "標誌", + "LogoDark": "圖示(深色)", + "LogoLight": "圖示(淺色)", + "LogoLightColor": "商標(多彩色光)", + "Menu": "選單", + "Screenshot": "螢幕擷圖", + "Thumb": "縮圖", + "HeaderAudioSettings": "音訊設定", + "LabelAudioLanguagePreference": "偏好音訊語言", + "LabelPlayDefaultAudioTrack": "播放預設音軌時不考慮語系", + "HeaderVideoQuality": "影片品質", + "CinemaModeConfigurationHelp": "啟用電影院模式後,Emby 會在影片正式開始前播放前導片或預告片,給您帶來真實的電影院體驗。", + "ShowUpNextPreview": "播放預覽", + "ShowUpNextPreviewHelp": "當播放即將結束時,顯示下一項目的資訊。", + "PlayNextEpisodeAutomatically": "自動播放下一集", + "LabelMaxChromecastBitrate": "Chromecast 串流品質", + "LabelSkipBackLength": "倒轉長度", + "LabelSkipForwardLength": "快轉長度", + "EnableCinemaMode": "啟用電影院模式", + "LabelInternetQuality": "遠端串流品質", + "LabelCellularQuality": "遠端串流品質(手機)", + "HeaderMusicQuality": "音樂品質", + "LabelHomeNetworkQuality": "家庭串流品質", + "HeaderLatestMedia": "最近新增的媒體", + "HeaderRestartingEmbyServer": "正在重新啟動 Emby 伺服器中", + "RestartPleaseWaitMessage": "請稍後 Emby 伺服器將會關閉並重新啟動,過程大約花費 1 至 2 分鐘。", + "HeaderPlayNext": "播放下一項目", + "AutoBasedOnLanguageSetting": "自動(與裝置同步)", + "SameAsMainTheme": "與主佈景主題同步", + "LabelDateTimeLocale": "時區", + "Genre": "類型", + "DirectorValue": "導演:{0}", + "DirectorsValue": "導演:{0}", + "GenreValue": "類型:{0}", + "GenresValue": "類型:{0}", + "TagsValue": "標籤:{0}", + "Off": "關閉", + "Title": "名稱", + "Year": "年份", + "Filter": "篩選條件", + "Filters": "篩選條件", + "Unplayed": "未播放", + "LabelTVHomeScreen": "電視模式首頁", + "Horizontal": "水平", + "Vertical": "重直", + "HeaderGroupBy": "分類為", + "HeaderMediaType": "媒體類型", + "GroupBySeries": "根據電視劇系列分類", + "HeaderVideoType": "影片類型", + "HeaderSeriesStatus": "電視劇狀態", + "Features": "功能", + "Trailers": "預告片", + "Extras": "額外內容", + "ThemeSongs": "背景音樂", + "ThemeVideos": "背景影片", + "HeaderFavoriteMovies": "最愛電影", + "HeaderFavoritePhotos": "最喜歡的照片", + "HeaderFavoriteShows": "最愛電視劇", + "HeaderFavoriteEpisodes": "最愛單集", + "HeaderFavoriteVideos": "最愛影片", + "HeaderFavoriteMusicVideos": "最愛音樂影片", + "HeaderFavoriteGames": "最愛遊戲", + "HeaderFavoriteArtists": "最愛藝人", + "HeaderFavoriteAlbums": "最愛專輯", + "HeaderFavoriteSongs": "最愛歌曲", + "HeaderFavoriteAuthors": "最愛作者", + "HeaderFavoriteAudioBooks": "最愛的有聲書", + "Ascending": "升冪", + "Descending": "降冪", + "HeaderColorPrimaries": "原色", + "HeaderColorSpace": "色彩空間", + "HeaderColorTransfer": "色彩轉換", + "HeaderVideoRange": "視訊範圍", + "SeriesDisplayOrderHelp": "根據播出日期、DVD 順序,或絕對集數排序單集。", + "LabelVerticalPositionFromBottom": "垂直位置(從底部算起)", + "HeaderFavoritePeople": "最愛人物", + "MultiSelect": "多重選取", + "HeaderSignOut": "登出", + "HeaderSelectServer": "選擇伺服器", + "HeaderChangeServer": "切換伺服器", + "HeaderChangeUser": "變更使用者", + "HeaderAppSettings": "應用程式設定", + "HeaderLoginSettings": "登入設定", + "LabelRememberLogin": "保持登入", + "LabelAutomaticallySignOut": "自動登出", + "BetaTesterMessage": "感謝您成為 Emby beta 測試者!請在 {0}Emby 論壇測試區{1} 留下您的回饋。", + "HardwareAccelerated": "硬體加速", + "Software": "軟體", + "Metadata": "中繼資料", + "HeaderMediaInfo": "媒體資訊", + "Locked": "已鎖定", + "HeaderSplitVersionsApart": "分離版本", + "Any": "任何", + "Admin": "管理員", + "HeaderReadMore": "了解更多", + "CustomRatingHelp": "自訂分級可用於家長監護評估,但不會顯示於資訊頁面。啟用後「電影分級」欄位仍會正常顯示。", + "KeepUpToHelp": "當下一新錄影開始時,超過上限數量的錄影,將從時間最舊的開始刪除。", + "NoItemsMatchingFound": "沒有符合條件的搜尋結果。", + "TwoSearchCharsRequired": "請至少輸入兩個字元。", + "PreventPlaybackContinuing": "定期提示使用者操作,防止無限播放。", + "PromptStillWatching": "顯示 「您還在螢幕前嗎?」提示", + "HeaderMissingMetadata": "缺少中繼資料", + "HeaderIncludedIn": "包含在", + "EmbyConnectUserAlreadyLinked": "Emby Connect 帳號已綁定至此伺服器上的另一位使用者。", + "VideoFilesWillBeConvertedTo": "轉檔後影片將儲存為 {0}。", + "VideoWillBeConvertedTo": "如果影片已經{0}且畫質符合轉換選項,影片串流將被轉換到{0},或從原始檔案複製。", + "VideoWillBeConvertedToOrCopied": "如果影片是任何{1}且畫質符合轉換選項,影片串流將被轉換到{0},或從原始檔案複製。", + "AudioWillBeConvertedTo": "如果影片已經{0}且畫質符合轉換選項,影片串流將被轉換到{0},或從原始檔案複製。", + "AudioWillBeConvertedToOrCopied": "如果影片是任何({1})且畫質符合轉換選項,影片串流將被轉換到{0},或從原始檔案複製。", + "HeaderSpecialKeys": "特殊按鍵", + "FollowingSpecialKeys": "下列特殊按鍵受多數鍵盤和遙控器支援:", + "HeaderDeleteSeries": "刪除電視劇", + "HeaderDeleteLastPlayedEpisode": "刪除最後播放集數", + "HeaderConnectingToServer": "連線至伺服器中", + "ServerNameValue": "伺服器名稱: {0}", + "DomainValue": "網域: {0}", + "RatedValue": "評分 {0}", + "LocalServerRedirectMessage": "您將被重新導向至該伺服器管理員擁有並營運的網域:", + "AllMediaOwnedHosted": "所有影音檔案都是由 {0} 擁有及管理。", + "EnableResolutionSwitching": "配對影片解析度", + "EnableResolutionSwitchingHelp": "在開始播放前讓 Emby 將影片解析度調整為與原編碼相同,啟用此選項可以改善解析度不合導致的卡頓。", + "EnableDisplayRefreshRateSwitching": "啟用顯示器更新率切換", + "EnableDisplayRefreshRateSwitchingHelp": "啟用此功能後,Emby 會在開始播放前,將顯示器的更新率調整為與影片編碼時的影格率相同(或其倍數)。這有助於減少播放時可能出現的畫面抖動或不流暢情形。", + "RememberSelectedAudioTracks": "記住音軌選擇", + "RememberSelectedSubtitleTracks": "儲存字幕選擇", + "RememberSelectedSubtitleTracksHelp": "您選擇的字幕會記錄於伺服器,並在下次影片播放時自動套用。", + "RememberSelectedAudioTracksHelp": "您選擇的音軌會記錄於伺服器,並在下次影片播放時自動套用。", + "ClearSavedTrackSelections": "清除已儲存的選擇", + "HeaderClearTrackSelections": "清除已儲存的選擇", + "QuestionClearSavedTracks": "確定要清除已儲存的選擇嗎?", + "LabelChannelTags": "頻道標籤", + "AfterThisPlaysConfirmation": "在播放完畢後,請問您希望繼續播放還是清除待播清單呢?", + "Keep": "保留", + "Clear": "清除", + "HeaderClearFilters": "清除篩選條件", + "HeaderSearchForImages": "尋找圖片", + "HeaderSearchNewImage": "尋找新圖片", + "HeaderSearchForAnImage": "尋找一個圖片", + "DragDropToReorder": "拖曳以調整順序", + "HeaderAddImageFromUrl": "從連結新增影像檔", + "HeaderSetImageFromUrl": "從連結設定影像檔", + "LabelUrl": "網址", + "LabelChannelNumber": "頻道編號", + "LabelGuideDataChannel": "節目指南頻道", + "GuideDataSource": "節目指南來源", + "HeaderCopyToClipboard": "複製到剪貼簿", + "TimeRemainingValue": "剩餘 {0}", + "LabelResumeRewindSeconds": "恢復播放後,自動倒轉", + "ResumeRewindSecondsHelp": "幫助您回想起上次中斷播放的位置。此設定僅會於恢復播放時套用,暫停播放不會觸發此設定。", + "HeaderSavePlayQueueToPlaylist": "將待播清單新增到播放清單中", + "EnableLogoImagesAsTitle": "顯示標誌", + "EnableLogoImagesAsTitleHelp": "當有可以使用的標誌時,系統會以標誌取代影片、電視劇或其他詳細資訊頁面的標題文字。若無可用的標誌,Emby 將會以文字作為替代。", + "LabelNowPlayingAudioBackgroundStyle": "現正播放音訊背景風格", + "LabelNowPlayingVideoBackgroundStyle": "現正播放影片背景風格", + "NowPlayingVideoBackgroundStyleHelp": "設定在其他裝置上遠端播放影片時,使用的背景風格。", + "Rotation": "旋轉", + "Minutes": "分鐘", + "LabelMaxRecordingLength": "最大錄影長度", + "MaxRecordingLengthHelp": "無論廣播時長,限制錄影時間長度。設為 0 即無限制。", + "RemoteWAN": "遠端(網際網路)位址", + "HeaderLastConnectedTo": "上次連線到", + "Version": "版本", + "Keyword": "關鍵字", + "HeaderServerAddress": "伺服器網址", + "HeaderSkipIntro": "略過片頭", + "HeaderCreateRecording": "創建錄影", + "HeaderAddRecording": "增加錄音", + "HeaderChannelAndTime": "頻道和時間", + "LabelRecordProgramOrSeriesFrom": "錄製以下節目或電視劇", + "LabelStartTime": "開始時間", + "LabelEndTime": "結束時間", + "LabelFrequency": "頻率", + "Recurring": "循環播放中", + "Once": "一次", + "Start": "開始", + "Unpause": "取消暫停", + "LabelIntroSkipMode": "略過片頭模式", + "ShowSkipIntroButton": "顯示「略過片頭」按鈕", + "AutoSkipIntro": "自動略過片頭", + "DisplayRatingInformationOnVideoPlaybackStart": "顯示電影分級", + "DisplayRatingInformationOnVideoPlaybackStartHelp": "在影片開始播放時短暫顯示電影分級。", + "IntroSkipModeHelp": "在 Emby 伺服器偵測到片頭標記的影片中,顯示「略過片頭」按鈕或自動跳過片頭。此功能需先在 Emby 伺服器的媒體庫設定中啟用片頭偵測功能。", + "EnableHomeScreenFocusPreview": "在首頁畫面中使用布局來顯示所選項目的詳細預覽", + "EnableHomeScreenFocusPreviewHelp": "如果首頁中包含不同類型的媒體,此設定可能無法正常啟用。", + "LabelHideMediaTransportButtons": "隱藏影片撥放傳輸按鈕", + "HideMediaTransportButtonsHelp": "透過隱藏基本按鍵,像是快轉、倒轉、暫停等,簡化播放介面。您仍可利用鍵盤上方向鍵和 Enter 鍵來使用這些功能。當設為「自動」時,應用程式將會自動偵測滑鼠狀態並隱藏按鍵。", + "ImageSizeHelp": "設定偏好的縮圖尺寸。", + "LabelImageSize": "縮圖尺寸", + "ThisImageIsOnlyPreview": "這張圖片僅是來自中繼資料搜尋引擎的預覽圖,與 Emby 伺服器下載的實際圖片可能會有所不同。實際下載的圖片可能會根據您的 Emby 媒體庫設定而有所變動。", + "ResultsRangeValue": "{2}的{0}到{1}", + "NotificationsDescription": "設定通知以掌握 Emby 伺服器上的重要事件。", + "DeleteEmbyConnectAccount": "刪除 Emby Connect 帳號", + "DeleteEmbyConnectAccountHelp": "若要刪除 Emby Connect 帳號,請造訪 {2} 並登入到 {0}Emby 社群{1}。登入後,請點選右上方使用者名稱、帳號設定,接著點選刪除我的帳號。", + "KeepPlayingInBackground": "背景播放", + "LabelVideoBackBehavior": "播放器倒退按鈕行為", + "HeaderViewLyrics": "查看歌詞", + "HeaderViewMissingEpisodes": "檢視缺少集數", + "HeaderMissingEpisodes": "缺少集數", + "HeaderManageAccess": "管理存取", + "HeaderManageCollaboration": "管理共同合作", + "HeaderLeaveCollaboration": "離開共同合作", + "HeaderRemoveFromLibrary": "從媒體庫移除", + "RemoveSharedItemConfirmation": "確定要從媒體庫中移除此項目嗎?如果要恢復此項目,您需要重新獲得擁有者授權才能再次存取。", + "SubtitlesDownloaded": "已下載字幕", + "HeaderMakePrivate": "設為私人", + "HeaderMakePublic": "設為公開", + "MakePublicDescription": "所有使用者皆可檢視此項目,且使用者可以被授權編輯。", + "MakePrivateDescription": "可以個別設定每一位使用者的存取權限。", + "Private": "私人", + "Public": "公開", + "Collaborative": "共同合作", + "PreferredShowDisplay": "偏好電視劇顯示方式", + "ShowAllEpisodesAllSeasons": "顯示全季集數", + "ShowAllEpisodesSingleSeason": "顯示單季集數", + "ShowSeasonFolders": "永遠顯示季資料夾", + "HeaderAddAgain": "再次增加", + "UpNext": "接著播放", + "ItemsAlreadyInPlaylist": "部分項目已在播放清單中。", + "ItemAlreadyInPlaylist": "此項目已在播放清單中。", + "HeaderPlayChannel": "播放頻道", + "LabelScreenOrientationDuringVideo": "影片播放時的螢幕方向", + "UseDeviceSetting": "與裝置設定同步", + "LockToLandscape": "橫向鎖定", + "UsernameForFolderHelp": "在此網路中可存取該資料夾的使用者名稱(如有)。", + "PasswordForFolderHelp": "在此網路中可存取該資料夾的密碼(如有)。", + "ShowMediaInfoOnDetailScreens": "在詳細資訊頁面底部顯示完整媒體內容", + "ForgotPasswordNoUserFound": "沒有符合的使用者名稱。請再試一次,或將姓名欄位留空以重設所有使用者的密碼。", + "Silver": "銀", + "DimGray": "昏灰色", + "DarkGray": "深灰色", + "LightGray": "淺灰色", + "Black": "黑色", + "Blue": "藍色", + "Cyan": "青色", + "Gray": "灰色", + "Green": "綠色", + "Lime": "青檸", + "Magenta": "洋紅", + "Orange": "橘色", + "Pink": "粉紅色", + "Red": "紅色", + "Yellow": "黃色", + "White": "白色", + "Purple": "紫色", + "RecentlyReleasedMovies": "最近上映電影", + "RecentlyReleasedEpisodes": "最新播出集數", + "DolbyProfile": "杜比設定", + "IpAddress": "IP 位址", + "VideoType": "影片類型", + "HidePlayedMediaFrom": "從以下位置隱藏已播放媒體", + "BottomEdgePosition": "下置字幕", + "VerticalPositionFromBottomScreen": "下置字幕與螢幕底部的相對距離。", + "TopEdgePosition": "上置字幕", + "TopEdgePositionHelp": "上置字幕與螢幕頂部的相對距離,此設定會套用至顯示於頂部的字幕。", + "HeaderSubtitlePosition": "字幕位置", + "TitleProfilePin": "個人檔案 PIN 碼", + "ProfilePinConfirm": "確認個人檔案 PIN 碼", + "SaveProfilePin": "儲存 PIN 碼", + "ProfilePinDescription": "建立一組 PIN 碼。每當您在已登入的裝置上開啟 Emby 應用程式時,系統都會提示您輸入該 PIN 碼;如果該裝置是由多位使用者共享,這將會是非常實用的設定。您可以根據需求在每台裝置上選擇性地啟用它。", + "TitleNewEpisodes": "新單集", + "EnterYourPinToContinue": "輸入您的 PIN 碼以繼續。", + "YourPinMustBe": "您的 PIN 碼必須為 {0} 個字元。", + "ForgotPin": "忘記 PIN 碼?", + "RequireEnteringPinToReturn": "當返回此應用程式時,需要輸入個人檔案 PIN 碼。", + "RequireEnteringPinToReturnQuestion": "每當您返回此應用程式時,是否應該提示您輸入個人檔案 PIN 碼? 如果此裝置是由多個使用者共用,您的個人檔案 PIN 碼可以防止其他使用者存取您的資料。", + "RequireEnteringPinToReturnHelp": "若此裝置由多位使用者共用,啟用此功能會很實用。", + "WrongPinPleaseTryAgain": "糟糕,PIN 碼錯誤,請再試一次。", + "ProfilePinIsOn": "個人檔案 PIN 碼已啟用。", + "IfTryingToConnectToHttp": "如果您正嘗試使用 HTTP 連線至 Emby 伺服器,瀏覽器可能會因不符合 HTTPS 要求而拒絕連線。請嘗試使用:", + "SetupHttpsForYourServer": "為您的 Emby 伺服器設定 {0}HTTPS 連線{1},以便將來可以使用 HTTPS 加密連線。", + "TitleUnableToReachServer": "無法連線至伺服器", + "TitleUnableToReachName": "無法連線至 {0}", + "HearingImpaired": "聽力障礙", + "SignIntoServerName": "登入至 {0}", + "About": "關於", + "Specials": "特別篇", + "NSettings": "{0} 設定", + "NPreferences": "{0} 偏好設定", + "DetailScreenOptions": "詳細資訊", + "LabelGenreDisplayLimit": "類型顯示限制", + "GenreDisplayLimitHelp": "限制顯示於詳細資訊上方的類型數量。", + "GenreDisplayLimitForListsHelp": "限制顯示於播放清單、收藏清單及藝人詳細資訊上方的類型數量。", + "LabelGenreDisplayLimitForLists": "清單類型顯示限制", + "ShowPosterOnDetails": "顯示海報", + "ShowPosterOnDetailsHelp": "在詳細資訊頁面上顯示海報,或將其隱藏到最小以強調背景。這項設定不支援小螢幕排版,且某些項目類型可能會忽略此設定。", + "EnableAppLogging": "啟用應用程式日誌", + "EnableAppLoggingHelp": "啟用日誌會降低應用程式效能,因此只應在需要除錯才啟用。需要重啟應用程式才能套用變更。", + "LabelSlideshowInterval": "相片幻燈片輪換間隔", + "TVChannelImageEditorHelp": "Emby 支援多種圖示 ,應用程式會根據佈景主題自動挑選最適合的版本。", + "PlaySlideshow": "播放幻燈片", + "CheckForExistingEpisodesInAllLibraries": "檢查媒體庫中已有集數", + "GroupNotificationsBySeriesOrAlbum": "分類電視劇和影集通知", + "ThemeSettings": "佈景主題設定", + "FollowingActivityWillBeDisrupted": "以下活動將被中斷,且須手動重啟:", + "OneActivePlaybackSession": "1 個正在進行的播放工作階段", + "NumActivePlaybackSessions": "{0} 個正在進行的播放工作階段", + "OneActiveRecording": "1 項正在進行的錄影", + "NumActiveRecordings": "{0} 項正在進行的錄影", + "PlayFromLivePosition": "從直播位置開始播放", + "PlayFromStartOfRecording": "從錄影起始點開始播放", + "ThisChannelIsActivelyRecording": "正在錄影此頻道中,請問您想如何開始播放呢?", + "ThemeSongVolume": "背景音樂音量", + "HeaderForceConversionForFormats": "強制轉碼格式", + "ForceConversionForFormatsHelp": "強制伺服器端轉碼無法在此裝置順利播放的格式。", + "StartupBehavior": "啟動行為", + "RememberLastUser": "記住上次登入的使用者", + "ShowLoginScreen": "顯示登入介面", + "SignInAsValue": "登入身分為 {0}", + "ConvertUnsupportedAudio": "將不支援的環繞音效格式轉換為杜比環繞音效", + "ConvertUnsupportedAudioHelp": "透過 Emby 伺服器將不支援的環繞音效格式轉換為杜比環繞音效,避免將其重新混音為立體聲。", + "HeaderPlaybackCorrection": "播放校正", + "HeaderAttemptPlaybackCorrection": "嘗試播放校正", + "PlaybackCorrectionConfirm": "是否要嘗試播放校正?", + "PlaybackCorrectionDescription": "目前的影片是否無法正常播放(例如: 沒有畫面或聲音)?系統會嘗試透過伺服器轉碼使其適合用於串流播放,此功能可能增加伺服器負擔。", + "PlaybackCorrectionDescription2": "每部影片最多可以執行三次,包括重封裝、影片轉碼和音訊轉碼,每次只會使用一種方式。", + "HeaderAlbumsAsContributingArtist": "以協力藝人身分參與的專輯", + "HeaderAlbumsAsComposer": "以作曲家身分參與的專輯", + "Duplicates": "重複", + "HeaderSleepTimer": "休眠計時器", + "AfterCurrentItem": "在當前項目之後", + "HeaderStopPlayback": "停止播放", + "TurnOffTimer": "關閉計時器", + "SleepTimerIsSet": "已設定休眠計時器", + "SleepTimerIsOff": "已關閉休眠計時器", + "LabelEnableRemoteControlTVMode": "顯示投影與遠端控制功能", + "EnableRemoteControlTVModeHelp": "如果您想要使用此裝置傳送媒體到其他裝置,請啟用此功能。", + "ShowOnScreenControls": "顯示螢幕上控制視窗", + "LabelVideoScreenUpAction": "影片上滑動作", + "VideoScreenUpActionHelp": "請選擇在播放畫面中按下「上」鍵時要執行的動作。此設定僅會套用在畫面上沒有顯示控制項時,若已顯示控制選項,「上」鍵將用於導向。", + "LabelVideoPlayerLongPressAction": "播放器長按動作", + "LetsGetSetup": "讓我們開始吧", + "VideoPlayerLongPressActionHelp": "選擇播放時長按 OK 按鈕觸發的功能或選單。此選項只有在隱藏播放控制,或是控制進度條時才會生效。", + "AskAdminToGetPremiere": "只有伺服器管理員才可以購買 Emby Premiere,請聯絡 Emby 伺服器管理員進行登入並購買取得 Emby Premiere 以享用相關權益。", + "AutoOpenSingleItemsFolders": "自動開啟檔案", + "AutoOpenSingleItemsFoldersHelp": "如果資料夾中只包含單一檔案,則自動開啟該檔案。", + "PlayedOnValue": "已播放 {0}", + "TheseSettingsApplyAppDevice": "這些設定會套用至所有使用此裝置的使用者。", + "LastContentDateAdded": "最後新增內容日期", + "RepeatThemeMedia": "重複播放主題曲", + "HideEpisodeSpoilerInfo": "隱藏未觀看集數的劇透資訊", + "HideEpisodeSpoilerInfoHelp": "在多數介面隱藏未觀看集數的摘要和圖像。", + "BornValueAge": "生於:{0} (年齡 {1})", + "PreferDirectStreamLiveTV": "偏好直接串流網路電視", + "PreferDirectStreamLiveTVHelp": "直接串流網路電視可以節省 Emby 伺服器消耗的資源,但可能會導致無法自由跳轉。啟用此選項後,伺服器可以直接串流使用支援格式且於畫質限制內的網路電視。停用此功能可以讓您在播放過程中更自由的跳轉,但也會使伺服器消耗更多資源。", + "HeaderAllRecordings": "所有錄影", + "RememberLoginDescription": "登入後,您可以在應用程式設定內調整應記住登入、以特定使用者登入,或是永遠顯示登入畫面。", + "ForgetServerConfirmation": "你確定要忘記此伺服器嗎?", + "ForgetThisServer": "忘記此伺服器", + "HeaderThisDevice": "此裝置", + "ChaptersGuide": "Chapters / Live TV Guide", + "ChaptersGuideHelp": "Show Chapters for media with chapters. For media without chapters, show the Live TV Guide (when available).", + "HeaderShowSeriesImages": "Show Series Images", + "AppExitConfirmation": "Are you ready to exit Emby?", + "AppExitMenu": "Exit menu", + "SideMenu": "Side navigation menu", + "SystemStorage": "System storage ({0})" +} diff --git a/modules/common/subtitleappearancehelper.js b/modules/common/subtitleappearancehelper.js new file mode 100644 index 0000000..fd142ee --- /dev/null +++ b/modules/common/subtitleappearancehelper.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function getTextStyles(settings){var list=[],multiplier={smaller:.5,small:.7,medium:1,large:1.3,larger:1.72,extralarge:2}[settings.textSize||"medium"],multiplier=(list.push({name:"font-size",value:multiplier+"em"}),settings.positionBottom||"10"),multiplier=(list.push({name:"positionBottom",value:multiplier}),settings.positionTop||"5");switch(list.push({name:"positionTop",value:multiplier}),settings.dropShadow||""){case"raised":list.push({name:"text-shadow",value:"-1px -1px white, 0px -1px white, -1px 0px white, 1px 1px black, 0px 1px black, 1px 0px black"});break;case"depressed":list.push({name:"text-shadow",value:"1px 1px white, 0px 1px white, 1px 0px white, -1px -1px black, 0px -1px black, -1px 0px black"});break;case"uniform":list.push({name:"text-shadow",value:"-1px 0px #000000, 0px 1px #000000, 1px 0px #000000, 0px -1px #000000"});break;case"none":list.push({name:"text-shadow",value:"none"});break;default:list.push({name:"text-shadow",value:"#000000 0 0 .25em"})}multiplier=function(hex,alpha){if("transparent"===hex)return hex;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex))return hex="0x"+(hex=3===(hex=hex.substring(1).split("")).length?[hex[0],hex[0],hex[1],hex[1],hex[2],hex[2]]:hex).join(""),alpha=Math.min(1,alpha),alpha=Math.max(0,alpha),"rgba("+[hex>>16&255,hex>>8&255,255&hex].join(",")+","+alpha+")";throw new Error("Bad Hex")}(settings.textBackground,parseFloat(settings.textBackgroundOpacity)),multiplier&&list.push({name:"background-color",value:multiplier}),multiplier=settings.textColor||"#ffffff";return multiplier&&list.push({name:"color",value:multiplier}),list.push({name:"font-family",value:"inherit"}),list}function convertStyleListToObject(list){for(var obj={},i=0,length=list.length;iremove',div.classList.add("controlBox"),document.querySelector(".windowDragRegion").appendChild(div),document.querySelector(".appExitButton").addEventListener("click",function(){_servicelocator.appHost.exit()}),document.querySelector(".minimizeButton").addEventListener("click",function(){_servicelocator.appHost.setWindowState("Minimized")}),document.querySelector(".maximizeButton").addEventListener("click",function(){"Normal"===_servicelocator.appHost.getWindowState()?_servicelocator.appHost.setWindowState("Maximized"):_servicelocator.appHost.setWindowState("Normal")})}); \ No newline at end of file diff --git a/modules/css-vars-ponyfill/css-vars-ponyfill.js b/modules/css-vars-ponyfill/css-vars-ponyfill.js new file mode 100644 index 0000000..6945771 --- /dev/null +++ b/modules/css-vars-ponyfill/css-vars-ponyfill.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function getUrls(urls,argument_1){var options=1.dataGridItem-content-touchzoom,.itemElement-activetouch>.dataGridItem-content-touchzoom{-webkit-transform:scale(.98);transform:scale(.98)}.dataGridItemContextMenuButton{display:none!important}}.dataGridItemCell{width:15ch;-webkit-flex-grow:0;flex-grow:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;padding:0 .5em;-webkit-flex-shrink:0;flex-shrink:0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;contain:layout style paint;box-sizing:border-box}.dataGridItemCell-nopadding{padding:0}.dataGridItemCell-centered{-webkit-justify-content:center;justify-content:center}.dataGridItemCell-fillheight{height:100%}.dataGridItemCell-2{width:3ch}.dataGridItemCell-3{width:4ch}.dataGridItemCell-4{width:5ch}.dataGridItemCell-5{width:6ch}.dataGridItemCell-6{width:7ch}.dataGridItemCell-7{width:8ch}.dataGridItemCell-8{width:9ch}.dataGridItemCell-9{width:10ch}.dataGridItemCell-10{width:11ch}.dataGridItemCell-12{width:13ch}.dataGridItemCell-15{width:16ch}.dataGridItemCell-18{width:19ch}.dataGridItemCell-20{width:21ch}.dataGridItemCell-25{width:26ch}.dataGridItemCell-30{width:31ch}.dataGridItemCell-40{width:41ch}.dataGridItemCell-80{width:81ch}.dataGridItemCell-fill{-webkit-flex-grow:1;flex-grow:1}.dataGridItemCell-button{padding:.25em!important;margin:0!important;box-sizing:border-box}.dataGridItemCell-icon{padding:0!important;margin:0!important;box-sizing:border-box;font-size:160%}.dataGridItemImageContainer{width:2.4em;height:2.4em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;border-radius:.42em;overflow:hidden;contain:strict;-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0}.dataGridItemImageContainer-fourThree{height:1.8em}.dataGridItemImageContainer-backdrop{height:1.35em}.dataGridItemImageContainer-portrait{width:1.6em}@supports (aspect-ratio:2 / 3){.dataGridItemImageContainer{width:auto!important;height:70%;height:calc(100% - 1.4em)}}.dataGridItemCell-img{border-radius:inherit;background-position:center center;background-repeat:no-repeat;position:relative;overflow:hidden;width:100%;height:100%;object-position:center center;contain:layout style paint}.dataGridItemImage-round,.dataGridItemCell-img-round{border-radius:100em}.dataGridItemCell-img:not(.coveredImage){background-size:contain;object-fit:contain}.dataGridItemCell-img.coveredImage{background-size:contain;object-fit:contain}.dataGridItemCell-img.coveredImage-noScale{background-size:contain;object-fit:contain}@supports (aspect-ratio:2 / 3){.dataGridItemCell-img.coveredImage{background-size:100% 100%;object-fit:fill}.dataGridItemCell-img.coveredImage-noScale{background-size:cover;object-fit:cover}.dataGridItemCell-img-fourThree{height:auto}.dataGridItemCell-img-backdrop{height:auto}.dataGridItemCell-img-square{height:auto}.dataGridItemCell-img-portrait{width:auto}}.dataGridItemCell-img.coveredImage-contain{background-size:contain;object-fit:contain}.dataGridItemOverlayButton-hover{display:none;position:absolute;margin:0 auto!important;color:#fff!important}@media all and (pointer:fine){.dataGridItem:hover .dataGridItemOverlayButton-hover{display:-webkit-flex;display:flex}}.dataGridItemOverlayButton-imagehover{background:#666;border-radius:100em!important;inset-inline-start:0.1em;inset-inline-end:0.1em;z-index:999999999;width:2.1em;height:2.1em;padding:0!important;-webkit-align-self:center;align-self:center;margin:0 auto}.chkDataGridItemSelectContainer{font-size:72%;width:auto!important;height:100%;margin:0!important;padding:0 1em!important;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;display:none!important}.dataGridItem-textActionButton{line-height:inherit!important}@media (pointer:fine){.dataGridItem:hover{border-start-start-radius:0;border-end-start-radius:0}.chkDataGridItemSelectContainer{position:absolute!important;left:-3.9em;right:initial;inset-inline-start:-3.9em;inset-inline-end:initial;opacity:0;display:-webkit-flex!important;display:flex!important;border-start-start-radius:.6em;border-end-start-radius:.6em}.item-multiselected .chkDataGridItemSelectContainer,.multi-select-active .chkDataGridItemSelectContainer{opacity:1}.dataGridItem:hover .chkDataGridItemSelectContainer{opacity:1}}@media not all and (pointer:fine){.item-multiselected .chkDataGridItemSelectContainer,.multi-select-active .chkDataGridItemSelectContainer{display:-webkit-flex!important;display:flex!important}}.multi-select-active .dataGridItemCell-button{display:none!important}.dataGridMediaInfoItem{-webkit-justify-content:flex-start;justify-content:flex-start}.itemsContainer_header_fixed{position:fixed;top:11em;top:calc(var(--header-height) + 5.5rem);z-index:1;box-sizing:border-box;overflow:scroll;contain:layout style}.itemsContainer_header_fixed,.dataGrid-mainscroller-scrollX{-webkit-margin-end:2em;margin-inline-end:2em}@media all and (pointer:fine){.itemsContainer_header_fixed,.dataGrid-mainscroller-scrollX{-webkit-margin-end:3em;margin-inline-end:3em}}@media all and (min-width:62.5em){.itemsContainer_header_fixed,.dataGrid-mainscroller-scrollX{-webkit-margin-end:4em;margin-inline-end:4em}}.itemsContainer_header:not(.itemsContainer_header_fixed) .dataGridHeader-content{-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:0;padding-inline-end:0;width:auto!important}@media all and (pointer:fine){.itemsContainer_header_fixed .dataGridHeader-content{-webkit-margin-end:1em;margin-inline-end:1em}}.dataGridHeader-content-inner{border-radius:.6em;display:-webkit-flex;display:flex;-webkit-flex-grow:1;flex-grow:1;-webkit-align-items:center;align-items:center;height:100%}.dataGridHeaderText{font-size:92%;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-flex-grow:1;flex-grow:1;height:100%;font-weight:500}.dataGridHeaderText-centered{-webkit-justify-content:center;justify-content:center}.btnGridHeaderColumnSort{-webkit-flex-grow:1;flex-grow:1;text-align:start;height:100%}.dataGridSortIndicator{margin-top:0;margin-bottom:0;-webkit-margin-start:.25ch;margin-inline-start:.25ch;-webkit-margin-end:0;margin-inline-end:0;font-size:130%}.dataGridItem-focusscale{transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out}.dataGridItem-focusscale:focus{-webkit-transform:scale(1.015,1.015);transform:scale(1.015,1.015);z-index:1}.dataGridItemImageContainer-nowplaying::after{background-size:contain;background-image:url(./../listview/ani_equalizer_white.gif);background-position:center center;background-repeat:no-repeat;background-size:contain;position:absolute;top:0;bottom:0;inset-inline-start:0;inset-inline-end:0;content:' '} \ No newline at end of file diff --git a/modules/datagrid/datagrid.js b/modules/datagrid/datagrid.js new file mode 100644 index 0000000..9837dcb --- /dev/null +++ b/modules/datagrid/datagrid.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/events.js","./../emby-apiclient/connectionmanager.js","./../layoutmanager.js","./../common/globalize.js","./../common/datetime.js","./../common/textencoding.js","./../common/dataformatter.js","./../mediainfo/mediainfo.js","./../focusmanager.js","./../common/itemmanager/itemmanager.js","./../common/imagehelper.js","./../lazyloader/lazyimageloader.js","./../shortcuts.js","./../common/playback/playbackmanager.js","./../emby-elements/userdatabuttons/emby-ratingbutton.js","./../emby-elements/userdatabuttons/emby-playstatebutton.js","./../emby-elements/sync/emby-downloadbutton.js","./../emby-elements/emby-button/emby-button.js","./../dom.js","./../browser.js","./../common/usersettings/usersettings.js"],function(_exports,_events,_connectionmanager,_layoutmanager,_globalize,_datetime,_textencoding,_dataformatter,_mediainfo,_focusmanager,_itemmanager,_imagehelper,_lazyimageloader,_shortcuts,_playbackmanager,_embyRatingbutton,_embyPlaystatebutton,_embyDownloadbutton,_embyButton,_dom,_browser,_usersettings){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/datagrid/datagrid.css"]);var CurrentPlayingItemId,embyCheckboxLoaded,supportsNativeLazyLoading="loading"in HTMLImageElement.prototype,decodingAttribute=_dom.default.supportsAsyncDecodedImages()?' decoding="async"':"",supportsObjectFit=CSS.supports("object-fit","contain");function onPlaybackStart(e,player,state){state=state.NowPlayingItem,state="Audio"===(null==state?void 0:state.MediaType)?state.Id:null;CurrentPlayingItemId=state}function getTextActionButton(options,item,text,textSuffix,cssClass,serverId,parentId,isSameItemAsCard){return text=text||_itemmanager.default.getDisplayName(item,{includeIndexNumber:!1,hideEpisodeSpoilerInfo:options.hideEpisodeSpoilerInfo}),textSuffix&&(text+=textSuffix),!_layoutmanager.default.tv&&!1!==options.textLinks&&(item.Id||isSameItemAsCard)?'":_textencoding.default.htmlEncode(text)}function getTextLinks(items,linkedType,item,options){return items.length?'
'+items.map(function(i,index){i.Type=linkedType,i.IsFolder=!0;index=index":""}function getCellImage(item,options){var imageClass,itemShape,imageContainerClass,currentPlayingItemId,imageItem=options.showCurrentProgramImage?item.CurrentProgram||item:item.ProgramInfo||item,apiClient=_connectionmanager.default.getApiClient(item),imgUrlInfo=_imagehelper.default.getImageUrl(imageItem,apiClient,{width:80,showChannelLogo:"channel"===options.imageSource,uiAspect:options.aspectInfo.aspect}),imgUrl=options.preferIcon?null:imgUrlInfo.imgUrl,html="",enableHoverPlayButton=!_layoutmanager.default.tv&&!1!==options.hoverPlayButton&&_playbackmanager.default.canPlay(item);return imgUrl&&(imageContainerClass="dataGridItemImageContainer dataGridItemImageContainer-"+options.shape,imageClass="dataGridItemCell-img",itemShape=imgUrlInfo.aspect?_imagehelper.default.getShapeFromAspect(imgUrlInfo.aspect):_imagehelper.default.getShape([item],options)||"square","square"===options.shape&&"MusicArtist"===item.Type&&(imageClass+=" dataGridItemCell-img-round"),!1===options.playQueueIndicator||!(currentPlayingItemId=CurrentPlayingItemId)||currentPlayingItemId!==item.PlaylistItemId&¤tPlayingItemId!==item.Id||_playbackmanager.default.paused()||(imageContainerClass+=" itemelement-nowplaying dataGridItemImageContainer-nowplaying"),(currentPlayingItemId=[]).push("aspect-ratio:"+options.aspectInfo.aspectCss),html+='
",imageContainerClass=_imagehelper.default.getAspectFromShape(itemShape,options),imageClass+=" dataGridItemImage-"+itemShape,(currentPlayingItemId=_imagehelper.default.getCoveredImageClass(imageItem,apiClient,imgUrlInfo,imageContainerClass.aspect))&&(imageClass+=currentPlayingItemId),2===options.lazy?html+=supportsObjectFit?'':'
':html+=supportsNativeLazyLoading&&supportsObjectFit?'':'
',html+="
"),enableHoverPlayButton&&(html+=''),html}function getColumnInnerHtml(item,itemController,column,options){switch(column.id){case"Name":return getTextActionButton(options,item,null,null,null,null,null,!0);case"Number":return item.Number||item.IndexNumber;case"ProductionYear":return item.ProductionYear;case"Filename":var filename=item.FileName||item.Filename;return filename?getTextActionButton(options,item,filename,null,null,null,null,!0):filename;case"Path":return item.Path;case"SortName":return _textencoding.default.htmlEncode(item.SortName||"");case"OriginalTitle":return _textencoding.default.htmlEncode(item.OriginalTitle||"");case"Overview":return _textencoding.default.htmlEncode(item.Overview||"");case"Tagline":return _textencoding.default.htmlEncode((item.Taglines||[])[0]||"");case"Runtime":return item.RunTimeTicks?_datetime.default.getHumanReadableRuntime(item.RunTimeTicks):null;case"PremiereDate":return item.PremiereDate?_datetime.default.toLocaleDateString(new Date(Date.parse(item.PremiereDate))):null;case"StartDate":return item.StartDate?_datetime.default.toLocaleString(new Date(Date.parse(item.StartDate))):null;case"DatePlayed":return null!=(filename=item.UserData)&&filename.LastPlayedDate?_datetime.default.toLocaleDateString(new Date(Date.parse(null==(filename=item.UserData)?void 0:filename.LastPlayedDate))):null;case"CommunityRating":return item.CommunityRating?_mediainfo.default.getCommunityRating(item,{outerClass:"dataGridMediaInfoItem"}):null;case"OfficialRating":return item.OfficialRating;case"EpisodeNumber":return function(item){var season,number=item.IndexNumber;return null==number?null:(null!=item.ParentIndexNumber&&(season="S"+item.ParentIndexNumber,number=(season=item.SeasonId?getTextActionButton({},{Id:item.SeasonId,Type:"Season",ServerId:item.ServerId,Name:season,IsFolder:!0}):season)+":E"+number),null!=item.IndexNumberEnd&&(number+="-"+item.IndexNumberEnd),number)}(item);case"SeriesName":return item.SeriesId&&"Episode"===item.Type?getTextActionButton(options,{Id:item.SeriesId,Type:"Series",ServerId:item.ServerId,Name:item.SeriesName,IsFolder:!0}):item.SeriesName;case"Album":return item.AlbumId?getTextActionButton(options,{Id:item.AlbumId,Type:"MusicAlbum",ServerId:item.ServerId,Name:item.Album,IsFolder:!0}):item.Album;case"IndexNumber":return item.IndexNumber;case"Genres":return getTextLinks(item.GenreItems||[],"Genre",item,options);case"Studios":return getTextLinks(item.Studios||[],"Studio",item,options);case"Tags":return getTextLinks(item.TagItems||[],"Tag",item,options);case"Artist":return getTextLinks(item.ArtistItems||[],"MusicArtist",item,options);case"AlbumArtist":return getTextLinks(item.AlbumArtists||[],"MusicArtist",item,options);case"Director":return function(items,personType,item,options){return getTextLinks(items=items.filter(function(i){return i.Type===personType}),"Person",item,options)}(item.People||[],"Director",item,options);case"Composer":return getTextLinks(item.Composers||[],"MusicArtist",item,options);case"ParentIndexNumber":return item.ParentIndexNumber;case"Video3DFormat":return item.Video3DFormat?'':null;case"CriticRating":return item.CriticRating?_mediainfo.default.getCriticRating(item,{outerClass:"dataGridMediaInfoItem"}):null;case"PlayCount":return null==(filename=item.UserData)?void 0:filename.PlayCount;case"Resolution":return item.Width&&item.Height?_dataformatter.default.getResolutionText(item):null;case"IsDisabled":return null!=(filename=item.Policy)&&filename.IsDisabled?'':"";case"EnableRemoteAccess":return null!=(filename=item.Policy)&&filename.EnableRemoteAccess?'':"";case"IsAdministrator":return null!=(filename=item.Policy)&&filename.IsAdministrator?'':"";case"HasPassword":return item.HasConfiguredPassword?'':"";case"HasProfilePin":return null!=(filename=item.Configuration)&&filename.ProfilePin?'':"";case"ColumnSelector":case"Image":return getCellImage(item,options);case"ContextMenu":return'';case"IsFavorite":return _itemmanager.default.canRate(item)?_embyRatingbutton.default.getHtml(item.UserData.IsFavorite,"dataGridItemCell-button paper-icon-button-light itemAction"):"";case"Played":return _itemmanager.default.canMarkPlayed(item)?_embyPlaystatebutton.default.getHtml(item.UserData.Played,"dataGridItemCell-button paper-icon-button-light itemAction"):"";case"Download":return _itemmanager.default.canSync(item)?_embyDownloadbutton.default.getHtml(item,"dataGridItemCell-button paper-icon-button-light itemAction color-accent"):"";case"Play":return _playbackmanager.default.canPlay(item)?'':"";default:return itemController.resolveField(item,column.id)}}_events.default.on(_playbackmanager.default,"playbackstart",onPlaybackStart),_events.default.on(_playbackmanager.default,"statechange",onPlaybackStart),_events.default.on(_playbackmanager.default,"playbackstop",function(){CurrentPlayingItemId=null});var columnSizes=[2,3,4,5,6,7,8,9,10,12,15,18,20,25,30,40,80];function getColumnHtml(item,itemController,column,options,isHeader){var html="",columnClass="dataGridItemCell";if(column.center&&(columnClass+=" dataGridItemCell-centered"),column.center)switch(column.gridColumnType){case"button":case"icon":columnClass+=" dataGridItemCell-nopadding"}var innerHTML,sortValues=options.sortValues,interactiveHeader=(column.fillGrid&&(columnClass+=" dataGridItemCell-fill"),!_layoutmanager.default.tv);return html+='
',isHeader?(isHeader="dataGridHeaderText",column.center&&(isHeader+=" dataGridHeaderText-centered"),column.sortBy&&interactiveHeader?(innerHTML='"):innerHTML=(innerHTML='
')+(column.gridDisplayNameHtml||column.gridDisplayNameText||column.name)+"
"):null==(innerHTML=getColumnInnerHtml(item,itemController,column,options))&&(innerHTML=" "),html+innerHTML+"
"}function getListItemHtml(item,index,options){for(var attributes,tagName=options.tagName,action=options.action,html="",itemController=(options.multiSelect&&(html+=''),html+='
',_itemmanager.default.getItemController(item.Type)),columns=options.columns,i=0,length=columns.length;i"+html+"")}function setListOptions(items,options){options.shape=_imagehelper.default.getShape(items,options)||"square",options.aspectInfo=_imagehelper.default.getAspectFromShape(options.shape,options),null==options.hideEpisodeSpoilerInfo&&(options.hideEpisodeSpoilerInfo=_usersettings.default.hideEpisodeSpoilerInfo()),"banner"===options.shape&&(options.shape="backdrop"),options.columnSelector=!_layoutmanager.default.tv&&!1!==options.columnSelector,null==options.isBoundListItem&&(options.isBoundListItem=!0),options.itemSelector=".dataGridItem",options.enableScrollX=!_layoutmanager.default.tv,options.enableFixedPositionHeader=options.enableScrollX,options.dataGridItemContentClass="dataGridItem-content",options.contextMenu=!1!==options.contextMenu,options.enableUserDataButtons=!1!==options.enableUserDataButtons,options.moreButton=options.contextMenu&&!1!==options.moreButton&&!_layoutmanager.default.tv,options.moreButton&&(items={gridColumnType:"button",name:" ",gridDisplayNameText:" ",id:"ContextMenu",size:5,center:!0},2<=options.columns.length?options.columns.splice(function(columns){for(var i=0,length=columns.length;i'});for(var i=0,length=options.columns.length;i',options.columns),item={},itemController=_itemmanager.default.getItemController(item.Type),_i4=0,_length4=columns.length;_i4<_length4;_i4++)innerHTML+=getColumnHtml(item,itemController,columns[_i4],options);innerHTML+="
";items="";options.addTabIndex&&(items+=' tabindex="0"'),options.anyDraggable&&(items+=' draggable="true"'),options.clickEntireItem,options.fixedAttributes=items.trim(),options.templateInnerHTML=innerHTML}function getItemsHtml(items,options){setListOptions(items,options);for(var html="",i=0,length=items.length;i')+'
',options.columns),i=0,length=columns.length;i"+"
"},onMultiSelectActive:function(itemsContainer,header){header&&header.classList.add("multi-select-active")},onMultiSelectInactive:function(itemsContainer,header){header&&header.classList.remove("multi-select-active")},removeNowPlayingIndicator:function(indicator){indicator.classList.remove("itemelement-nowplaying","dataGridItemImageContainer-nowplaying")},addNowPlayingIndicator:function(itemElement){(itemElement=itemElement.querySelector(".dataGridItemImageContainer"))&&itemElement.classList.add("itemelement-nowplaying","dataGridItemImageContainer-nowplaying")}}}); \ No newline at end of file diff --git a/modules/dialog/dialog.css b/modules/dialog/dialog.css new file mode 100644 index 0000000..d262bd9 --- /dev/null +++ b/modules/dialog/dialog.css @@ -0,0 +1 @@ +.dialog-largefont{font-size:118%}.dialogHeader-withpreview{height:5.6em;padding-top:0;padding-bottom:0;margin-top:1.5em;margin-bottom:1.5em}.dialog-fullscreen .dialogHeader-withpreview{margin-top:0}.dialogItemPreview{height:100%}.dialog-dialog-close{position:absolute;top:-1em;right:1em;inset-inline-start:initial;inset-inline-end:1em;margin:0!important}.dialog-dialog-close-reducefont{font-size:92%}.dialogItemPreviewImage-bg{-webkit-margin-end:1em;margin-inline-end:1em;height:100%;border-radius:.42em;background-position:center center;background-size:contain;background-repeat:no-repeat;-webkit-flex-shrink:0;flex-shrink:0;-webkit-align-self:center;align-self:center}.dialogItemPreviewImage-bg-backdrop{height:2.7em;width:4.8em}.dialogItemPreviewImage-bg-fourThree{height:3.6em;width:4.8em}.dialogItemPreviewImage-bg-portrait{width:3.2em}.dialogItemPreviewImage-bg-square{width:4.8em}@supports (aspect-ratio:2 / 3){.dialogItemPreviewImage-bg-backdrop{width:auto}.dialogItemPreviewImage-bg-portrait{width:auto}.dialogItemPreviewImage-bg-square{width:auto}.dialogItemPreviewImage-bg-fourThree{width:auto}}.dialogItemPreviewImage-iconcontainer{-webkit-margin-end:.9em;margin-inline-end:.9em;padding:.7em;border-radius:.42em;background:rgba(120,120,120,.3);-webkit-flex-shrink:0;flex-shrink:0}.dialogItemPreviewImage-icon{height:1em;width:1em;font-size:2.4em}.dialogItemPreviewContent{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-justify-content:center;justify-content:center;-webkit-flex-grow:1;flex-grow:1}.dialogItemPreviewText{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 -1em!important;padding:0 1em!important}.dialogItemPreviewText:focus-within{overflow:visible}.dialogItemPreviewText:not(.secondaryText){font-weight:600}.dialogItemPreviewImage-round{border-radius:100em}.dialog-btn-textscroll{-webkit-align-items:initial;align-items:initial;-webkit-flex-direction:column;flex-direction:column;width:100%} \ No newline at end of file diff --git a/modules/dialog/dialog.js b/modules/dialog/dialog.js new file mode 100644 index 0000000..deb6b2e --- /dev/null +++ b/modules/dialog/dialog.js @@ -0,0 +1 @@ +define(["exports","./../layoutmanager.js","./../common/globalize.js","./../approuter.js","./../dialoghelper/dialoghelper.js","./../dom.js","./../common/inputmanager.js","./../emby-apiclient/connectionmanager.js","./../common/imagehelper.js","./../common/itemmanager/itemmanager.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_layoutmanager,_globalize,_approuter,_dialoghelper,_dom,_inputmanager,_connectionmanager,_imagehelper,_itemmanager,_embyButton,_embyScroller,_embyDialogclosebutton){function wrapTextWithButtonIfNeeded(text,enableScrollWithDirectionButtons){return enableScrollWithDirectionButtons&&(text='"),text}function getTextLinkButton(item){var href=_approuter.default.getRouteUrl(item);return''+item.Name+""}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=function(text,title){var options;options="string"==typeof text?{title:title,text:text}:text;var deps,title=uiDependencies;title.length?(deps=title.slice(0),uiDependencies=[]):deps=[];return deps.unshift("text!modules/dialog/dialog.template.html"),require(deps).then(function(responses){return window.dispatchEvent(new CustomEvent("userprompt",{detail:{promptType:options.dialogType},bubbles:!0,cancelable:!1})),function(options,template){var dialogOptions={removeOnClose:!0,scrollY:!1,lowResAutoHeight:!0},enableTvLayout=_layoutmanager.default.tv;enableTvLayout&&(dialogOptions.size="fullscreen");var dlg=_dialoghelper.default.createDialog(dialogOptions);dlg.classList.add("formDialog","justify-content-center"),options.dialogType&&dlg.classList.add(options.dialogType+"Dialog");var optionButtons=options.buttons||[],dialogOptions=enableTvLayout&&0===optionButtons.length;dialogOptions&&(template=template.replace('data-focusscroll="true"','data-focusscroll="false"'));dlg.innerHTML=_globalize.default.translateHtml(template,"sharedcomponents");template=dlg.querySelector(".formDialogContent");template.classList.add("no-grow"),enableTvLayout?template.style["max-height"]="60%":_dom.default.allowBackdropFilter()&&dlg.classList.add("dialog-blur");enableTvLayout=dlg.querySelector(".formDialogHeaderTitle"),template=dlg.querySelector(".formDialogHeader");options.item?(template.insertAdjacentHTML("afterbegin",function(options,item){var html="",apiClient=(html+='
',_connectionmanager.default.getApiClient(item)),imageUrlInfo=_imagehelper.default.getImageUrl(item,apiClient,{height:60,width:200}),imageUrl=imageUrlInfo.imgUrl,imgClass="",round="MusicArtist"===item.Type;html=imageUrl?(imgClass+=" dialogItemPreviewImage-bg",imageUrlInfo=imageUrlInfo.aspect||1,shape=_imagehelper.default.getShapeFromAspect(imageUrlInfo),imgClass+=" dialogItemPreviewImage-bg-"+shape,round&&"square"===shape&&(imgClass+=" dialogItemPreviewImage-round"),html+('
'):(imgClass+=" dialogItemPreviewImage-iconcontainer",round&&(imgClass+=" dialogItemPreviewImage-round"),(html=(html=html+('
')+_itemmanager.default.getDefaultIcon(item))+"
");html+='
';var lines=[];item.SeriesName?item.SeriesId?lines.push(getTextLinkButton({Type:"Series",Id:item.SeriesId,Name:item.SeriesName,IsFolder:!0,ServerId:item.ServerId})):lines.push(item.SeriesName):"Program"===item.Type&&lines.push(item.Name);lines.push(_itemmanager.default.getDisplayName(item,{})),"Server"===item.Type&&(apiClient&&apiClient.serverVersion()&&lines.push(apiClient.serverVersion()),apiClient)&&apiClient.serverAddress()&&lines.push(apiClient.serverAddress());{var shape;"User"===item.Type&&options.showServerName&&(shape=apiClient.serverName())&&lines.push(shape)}item.IsFolder&&item.AlbumArtists&&item.AlbumArtists.length?lines.push(getTextLinkButton({Type:"MusicArtist",Id:item.AlbumArtists[0].Id,Name:item.AlbumArtists[0].Name,ServerId:item.ServerId})):item.ArtistItems&&item.ArtistItems.length?lines.push(getTextLinkButton({Type:"MusicArtist",Id:item.ArtistItems[0].Id,Name:item.ArtistItems[0].Name,ServerId:item.ServerId})):item.AlbumArtists&&item.AlbumArtists.length&&lines.push(getTextLinkButton({Type:"MusicArtist",Id:item.AlbumArtists[0].Id,Name:item.AlbumArtists[0].Name,ServerId:item.ServerId}));imageUrlInfo=[];item.Album&&item.AlbumId?imageUrlInfo.push(getTextLinkButton({Type:"Photo"===item.MediaType?"PhotoAlbum":"MusicAlbum",Id:item.AlbumId,Name:item.Album,ServerId:item.ServerId})):item.Album&&imageUrlInfo.push(item.Album);item.ProductionYear&&"Episode"!==item.Type&&imageUrlInfo.push(item.ProductionYear);imageUrlInfo.length&&lines.push(imageUrlInfo.join(" · "));for(var i=0,length=Math.min(lines.length,3);i')+lines[i]+"
":(html+='
')+lines[i]+"
";return html+="
"}(options,options.item)),template.classList.remove("justify-content-center"),template.classList.add("padded-left","padded-right","dialogHeader-withpreview","dialog-content-centered"),enableTvLayout.classList.add("hide")):options.title?enableTvLayout.innerHTML=options.title||"":(enableTvLayout.classList.add("hide"),template.style.height="auto");var i,length,enableTvLayout=dlg.querySelector(".dialogContentInner");!1!==options.centerText&&(enableTvLayout.style.textAlign="center",isDialogContentCentered=!0);_layoutmanager.default.tv||optionButtons.length||dlg.classList.add("dialog-largefont");options.html?enableTvLayout.innerHTML=wrapTextWithButtonIfNeeded(options.html,dialogOptions):options.preFormattedText?(!(template='
",dialogOptions)):options.code?enableTvLayout.innerHTML=wrapTextWithButtonIfNeeded('
'+options.code+"
",dialogOptions):options.text?(template=enableTvLayout,isDialogContentCentered&&(enableTvLayout.innerHTML='',template=enableTvLayout.querySelector("span")),template.innerText=wrapTextWithButtonIfNeeded((options.text||"").replaceAll("
","\n"),dialogOptions)):enableTvLayout.classList.add("hide");var html="",hasDescriptions=!1;for(i=0,length=optionButtons.length;i'+item.name+"":html+='",item.description&&(html+='
'+item.description+"
")}var dialogResult,isDialogContentCentered=dlg.querySelector(".formDialogFooter");(isDialogContentCentered.innerHTML=html)||(isDialogContentCentered.classList.add("hide"),(template=dlg.querySelector(".scrollSlider")).style["padding-bottom"]="2em",options.item&&(template.style["padding-top"]="0"),_layoutmanager.default.tv?dlg.querySelector(".formDialogHeader").insertAdjacentHTML("afterbegin",''):dlg.querySelector(".formDialogHeader").insertAdjacentHTML("afterbegin",''));hasDescriptions&&dlg.querySelector(".formDialogFooter").classList.add("formDialogFooter-vertical");function onButtonClick(){dialogResult=this.getAttribute("data-id"),_dialoghelper.default.close(dlg)}var timeout,buttons=dlg.querySelectorAll(".btnOption");for(i=0,length=buttons.length;i +

+
+ +
+
+ +
+
+ +
+
\ No newline at end of file diff --git a/modules/dialoghelper/dialoghelper.css b/modules/dialoghelper/dialoghelper.css new file mode 100644 index 0000000..945fea9 --- /dev/null +++ b/modules/dialoghelper/dialoghelper.css @@ -0,0 +1 @@ +.dialogContainer{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;position:fixed;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;z-index:999999!important;contain:strict;overflow:hidden}.dialogBackdrop-anchored{contain:style size}.dialog{margin:0;border-radius:1em;border:0;padding:0;contain:style paint}.dialog-draggable{transition:translate .3s ease}.dialog-dragging{transition:translate 0s ease}.dialog .padded-left{padding-left:min(4vw,2.7rem)}.dialog .padded-right{padding-right:min(4vw,2.7rem)}@-webkit-keyframes scaledown{from{opacity:1;-webkit-transform:none;transform:none}to{opacity:.5;-webkit-transform:scale(0);transform:scale(0)}}@keyframes scaledown{from{opacity:1;-webkit-transform:none;transform:none}to{opacity:.5;-webkit-transform:scale(0);transform:scale(0)}}@-webkit-keyframes scaleup{from{-webkit-transform:scale(.7);transform:scale(.7);opacity:.5}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes scaleup{from{-webkit-transform:scale(.7);transform:scale(.7);opacity:.5}to{-webkit-transform:none;transform:none;opacity:1}}@-webkit-keyframes scaleup2{from{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes scaleup2{from{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@-webkit-keyframes scaleupY{from{-webkit-transform:scaleY(.5);transform:scaleY(.5);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes scaleupY{from{-webkit-transform:scaleY(.5);transform:scaleY(.5);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@-webkit-keyframes scaledownY{from{-webkit-transform:none;transform:none;opacity:1}to{-webkit-transform:scaleY(.5);transform:scaleY(.5);opacity:0}}@keyframes scaledownY{from{-webkit-transform:none;transform:none;opacity:1}to{-webkit-transform:scaleY(.5);transform:scaleY(.5);opacity:0}}@-webkit-keyframes slideup{from{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform:translateY(calc(50vh + 50%));transform:translateY(calc(50vh + 50%))}to{-webkit-transform:none;transform:none}}@keyframes slideup{from{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform:translateY(calc(50vh + 50%));transform:translateY(calc(50vh + 50%))}to{-webkit-transform:none;transform:none}}@-webkit-keyframes slidedown{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform:translateY(calc(50vh + 50%));transform:translateY(calc(50vh + 50%))}}@keyframes slidedown{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform:translateY(calc(50vh + 50%));transform:translateY(calc(50vh + 50%))}}@-webkit-keyframes slidedownfade{from{-webkit-transform:translateY(-3rem);transform:translateY(-3rem);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes slidedownfade{from{-webkit-transform:translateY(-3rem);transform:translateY(-3rem);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@-webkit-keyframes slideupfade{from{-webkit-transform:none;transform:none;opacity:1}to{-webkit-transform:translateY(-3rem);transform:translateY(-3rem);opacity:0}}@keyframes slideupfade{from{-webkit-transform:none;transform:none;opacity:1}to{-webkit-transform:translateY(-3rem);transform:translateY(-3rem);opacity:0}}.dialog-animated{-webkit-animation:slidedownfade .2s ease-out normal both;animation:slidedownfade .2s ease-out normal both}.dialog-scrollY{overscroll-behavior-y:contain}@media not all and (pointer:fine){.dialog-fullscreen-lowres{-webkit-transform-origin:center top;transform-origin:center top;-webkit-animation:slideup .3s ease-out normal both;animation:slideup .3s ease-out normal both}.dialog-close.dialog-fullscreen-lowres{-webkit-animation:slidedown .3s ease-out normal both;animation:slidedown .3s ease-out normal both}}.dialog-transformorigin-top{-webkit-transform-origin:center top;transform-origin:center top;-webkit-animation:scaleupY .2s ease-out normal both;animation:scaleupY .2s ease-out normal both}.dialog-transformorigin-top.dialog-close{-webkit-animation:scaledown .2s ease-out normal both;animation:scaledown .2s ease-out normal both}.dialog-transformorigin-bottom{-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation:scaleup2 .2s ease-out normal both;animation:scaleup2 .2s ease-out normal both}.dialog-transformorigin-bottom.dialog-close{-webkit-animation:scaledown .2s ease-out normal both;animation:scaledown .2s ease-out normal both}.dialog-transformorigin-lefttop{-webkit-transform-origin:left top;transform-origin:left top;-webkit-animation:scaleup2 .2s ease-out normal both;animation:scaleup2 .2s ease-out normal both}.dialog-transformorigin-lefttop.dialog-close{-webkit-animation:scaledown .2s ease-out normal both;animation:scaledown .2s ease-out normal both}.dialog-transformorigin-leftbottom{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-animation:scaleup2 .2s ease-out normal both;animation:scaleup2 .2s ease-out normal both}.dialog-transformorigin-leftbottom.dialog-close{-webkit-animation:scaledown .2s ease-out normal both;animation:scaledown .2s ease-out normal both}.dialog-transformorigin-righttop{-webkit-transform-origin:right top;transform-origin:right top;-webkit-animation:scaleup2 .2s ease-out normal both;animation:scaleup2 .2s ease-out normal both}.dialog-transformorigin-righttop.dialog-close{-webkit-animation:scaledown .2s ease-out normal both;animation:scaledown .2s ease-out normal both}.dialog-transformorigin-rightbottom{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-animation:scaleup2 .2s ease-out normal both;animation:scaleup2 .2s ease-out normal both}.dialog-transformorigin-rightbottom.dialog-close{-webkit-animation:scaledown .2s ease-out normal both;animation:scaledown .2s ease-out normal both}.dialog-close{-webkit-animation:slideupfade .2s ease-out normal both;animation:slideupfade .2s ease-out normal both}.dialog-close.dialog-transformorigin-top{-webkit-animation:scaledownY .2s ease-out normal both;animation:scaledownY .2s ease-out normal both} \ No newline at end of file diff --git a/modules/dialoghelper/dialoghelper.js b/modules/dialoghelper/dialoghelper.js new file mode 100644 index 0000000..a5b5e18 --- /dev/null +++ b/modules/dialoghelper/dialoghelper.js @@ -0,0 +1 @@ +define(["exports","./../approuter.js","./../dom.js","./../focusmanager.js","./../common/inputmanager.js","./../browser.js","./../emby-apiclient/events.js","./../layoutmanager.js","./../gesture/gesture.js"],function(_exports,_approuter,_dom,_focusmanager,_inputmanager,_browser,_events,_layoutmanager,_gesture){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var globalOnOpenCallback,uiDependencies=["css!modules/dialoghelper/dialoghelper.css","css!!tv|modules/dialoghelper/dialoghelper_nontv.css","css!modules/dialoghelper/dialoghelper2.css","css!!tv|modules/dialoghelper/dialoghelper_nontv2.css","css!modules/dialoghelper/dialoghelper3.css"],appMode=globalThis.appMode,SupportsTranslate=CSS.supports("translate","40px 100px"),SupportsPositionAnchoring=!1,allowHistory=_browser.default.tv&&"standalone"===(appMode||"standalone");uiDependencies.length&&require(uiDependencies);var AnimationSupported=CSS.supports("animation-name","a")&&_dom.default.supportsEventListenerOnce();function enableAnimation(dlg){return!(!AnimationSupported||dlg&&dlg.classList.contains("dialog-noanimation"))}function tryRemoveElement(elem){try{elem.remove()}catch(err){console.log("Error removing dialog element: "+err)}}function getScrollingElement(){return document.scrollingElement||document.documentElement}function DialogHashHandler(dlg,hash,resolve){var originalUrl=window.location.href,activeElement=document.activeElement,removeScrollLockOnClose=!1;function onHashChange(e){var isBack=originalUrl===window.location.href;!isBack&&isOpened(dlg)||window.removeEventListener("popstate",onHashChange),isBack&&hideDialog(dlg)}function onNavigate(e){dlg._closedForNavigation=!0,close(dlg)}function onInputCommand(e){var command=e.detail.command;switch(console.log("dialogHelper input command: "+command),command){case"left":case"right":case"up":case"down":case"pageup":case"pagedown":case"channelup":case"channeldown":case"select":e.stopPropagation();break;case"home":"false"!==dlg.getAttribute("data-blocknav")&&e.preventDefault();break;case"end":case"settings":case"guide":case"recordedtv":case"favorites":e.preventDefault();break;case"back":e.preventDefault(),e.stopPropagation(),requestClose(dlg);break;case"forward":e.preventDefault(),e.stopPropagation()}}function afterClosed(){resolve({element:dlg})}_dom.default.addEventListener(dlg,"preclosing",function(){var elemForEvents=dlg.dialogContainer;elemForEvents&&dlg.boundDocumentMouseDown&&(_dom.default.removeEventListener(elemForEvents,window.PointerEvent?"pointerdown":"mousedown",dlg.boundDocumentMouseDown,{passive:!0}),dlg.boundDocumentMouseDown=null),elemForEvents&&dlg.boundDocumentClick&&(_dom.default.removeEventListener(elemForEvents,"click",dlg.boundDocumentClick,{passive:!0}),dlg.boundDocumentClick=null),_inputmanager.default.off(dlg,onInputCommand),_events.default.off(_approuter.default,"navigate",onNavigate),window.removeEventListener("popstate",onHashChange)},{once:!0}),_dom.default.addEventListener(dlg,"close",function(){(elemForEvents=dlg.dialogContainer)&&dlg.boundDocumentMouseDown&&(_dom.default.removeEventListener(elemForEvents,window.PointerEvent?"pointerdown":"mousedown",dlg.boundDocumentMouseDown,{passive:!0}),dlg.boundDocumentMouseDown=null),elemForEvents&&dlg.boundDocumentClick&&(_dom.default.removeEventListener(elemForEvents,"click",dlg.boundDocumentClick,{passive:!0}),dlg.boundDocumentClick=null),_inputmanager.default.off(dlg,onInputCommand),_events.default.off(_approuter.default,"navigate",onNavigate),window.removeEventListener("popstate",onHashChange),dlg.classList.remove("opened"),removeScrollLockOnClose&&getScrollingElement().classList.remove("withDialogOpen"),!1!==(null==(elemForEvents=dlg.dialogOptions)?void 0:elemForEvents.refocus)&&activeElement&&_focusmanager.default.isCurrentlyFocusable(activeElement)&&_focusmanager.default.focus(activeElement);var elemForEvents=dlg.dialogContainer;"false"!==dlg.getAttribute("data-removeonclose")?elemForEvents?(function(dlg){var onAnimationFinish,backdrop=dlg.dialogContainer;backdrop&&(onAnimationFinish=function(){tryRemoveElement(backdrop)},enableAnimation(dlg)?(backdrop.classList.remove("dialogBackdropOpened"),setTimeout(onAnimationFinish,300)):onAnimationFinish())}(dlg),dlg.dialogContainer=null):tryRemoveElement(dlg):elemForEvents&&elemForEvents.classList.remove("dialogBackdropOpened"),isHistoryEnabled(dlg)?setTimeout(afterClosed,1):afterClosed()},{once:!0}),function(dlg){var transparentBackground=dlg.getAttribute("data-transparentbackground")||"false",blurBackground=dlg.getAttribute("data-blurbackground")&&_dom.default.allowBackdropFilter();"true"===transparentBackground&&!blurBackground||(dlg.dialogContainer.classList.add("dialogBackdrop"),"true"===transparentBackground&&dlg.dialogContainer.classList.add("dialogBackdrop-nomouse"),blurBackground&&dlg.dialogContainer.classList.add("dialogBackdrop-blur"),"auto"===transparentBackground&&dlg.dialogContainer.classList.add("dialogBackdrop-auto"),dlg.dialogContainer.offsetWidth,dlg.dialogContainer.classList.add("dialogBackdropOpened"));setTimeout(function(){this.boundDocumentMouseDown||(this.boundDocumentMouseDown=function(e){this.pointerDownTarget=e.target}.bind(this));var elemForEvents=this.dialogContainer;elemForEvents&&(_dom.default.addEventListener(elemForEvents,window.PointerEvent?"pointerdown":"mousedown",this.boundDocumentMouseDown,{passive:!0}),this.boundDocumentClick||(this.boundDocumentClick=function(e){e=e.target;this.pointerDownTarget&&this.pointerDownTarget!==this.dialogContainer||e!==this.dialogContainer&&this.contains(e)||requestClose(this);this.pointerDownTarget=null}.bind(this)),_dom.default.addEventListener(elemForEvents,"click",this.boundDocumentClick,{passive:!0}))}.bind(dlg),100)}(dlg),dlg.classList.remove("hide"),dlg.classList.add("opened"),dlg.dispatchEvent(new CustomEvent("open",{bubbles:!1,cancelable:!1}));var scrollingElement=getScrollingElement();"true"!==dlg.getAttribute("data-lockscroll")||scrollingElement.classList.contains("withDialogOpen")||(scrollingElement.classList.add("withDialogOpen"),removeScrollLockOnClose=!0),function(dlg){enableAnimation(dlg)?_dom.default.addEventListener(dlg,"animationend",onOpenAnimationFinish,{passive:!0}):onOpenAnimationFinish.call(dlg,{target:dlg,currentTarget:dlg})}(dlg),isHistoryEnabled(dlg)&&(_approuter.default.pushState({dialogId:hash},"Dialog","#"+hash),window.addEventListener("popstate",onHashChange)),_inputmanager.default.on(dlg,onInputCommand),_events.default.on(_approuter.default,"navigate",onNavigate),positionDialog(dlg,!1===(null==(scrollingElement=dlg.dialogOptions)?void 0:scrollingElement.setDialogSize))}function onOpenAnimationFinish(e){e.target===e.currentTarget&&(_dom.default.removeEventListener(this,"animationend",onOpenAnimationFinish,{passive:!0}),"false"!==this.getAttribute("data-focusscope")&&_focusmanager.default.pushScope(this),this.dispatchEvent(new CustomEvent("opened",{bubbles:!1,cancelable:!1})),"true"===this.getAttribute("data-autofocus")&&_focusmanager.default.autoFocus(this,{skipIfNotEnabled:!1!==(null==(e=this.dialogOptions)?void 0:e.skipAutoFocusIfNotEnabled)}),this.classList.add("afterOpened"))}function isHistoryEnabled(dlg){return"true"===dlg.getAttribute("data-history")}var UnknownDialogHeight=300,UnknownDialogWidth=160;function getPosition(options,dlg,isInitialPositioning){var dlgHeight,dlgWidth,containerHeight,padding,overflowLeft,windowSize=_dom.default.getWindowSize(),pos=function(elem,windowSize){return document?{top:(elem=elem.getBoundingClientRect()).top,bottom:windowSize.innerHeight-elem.bottom,left:elem.left,right:windowSize.innerWidth-elem.right,width:elem.width,height:elem.height,verticalPositionProp:"top",horizontalPositionProp:"left"}:null}(options.positionTo,windowSize),positionX=options.positionX,positionY=options.positionY,isRTL="rtl"===document.dir;if(isRTL)switch(positionX){case"right":positionX="left";break;case"left":positionX="right";break;case"after":positionX="before";break;case"before":positionX="after"}switch(null!=options.positionClientY&&(positionY="top"),null!=options.positionClientX&&(positionX="left"),positionY){case"bottom":pos.top+=pos.height||0,pos.height&&(pos.top+=2);break;case"above":pos.verticalPositionProp="bottom";break;case"top":case"match":break;default:pos.top+=(pos.height||0)/2}switch(positionX){case"after":isRTL||(pos.left+=pos.width||0);break;case"right":isRTL||(pos.horizontalPositionProp="right");break;case"before":isRTL||(pos.horizontalPositionProp="right",pos.right+=pos.width||0);break;case"left":case"match":break;default:null==dlgWidth&&(dlgWidth=dlg.offsetWidth||UnknownDialogWidth),pos.left+=(pos.width||0)/2,pos.left-=dlgWidth/2}switch(pos.offsetTop=options.offsetTop||0,pos.offsetLeft=options.offsetLeft||0,null!=options.positionClientY&&(pos.offsetTop+=options.positionClientY-pos.top),null!=options.positionClientX&&(pos.offsetLeft+=options.positionClientX-pos.left),pos.top+=pos.offsetTop||0,pos.left+=pos.offsetLeft||0,positionY){case"above":pos.bottom+=pos.height;break;case"bottom":case"center":case"top":case"match":break;default:isInitialPositioning||(null==dlgHeight&&(dlgHeight=dlg.offsetHeight||UnknownDialogHeight),pos.top-=dlgHeight/2)}return isInitialPositioning||(containerHeight=windowSize.innerHeight,windowSize=windowSize.innerWidth,padding=_layoutmanager.default.tv?30:20,null==dlgWidth&&(dlgWidth=dlg.offsetWidth||UnknownDialogWidth),0<(overflowLeft=pos.left+dlgWidth-windowSize+padding)&&(pos.left-=overflowLeft),0<(overflowLeft=pos.right+dlgWidth-windowSize+padding)&&(pos.right-=overflowLeft),!1!==options.autoRepositionY&&(null==dlgHeight&&(dlgHeight=dlg.offsetHeight||UnknownDialogHeight),0<(windowSize=pos.top+dlgHeight-containerHeight+padding)&&pos.top>containerHeight/2&&(pos.top-=windowSize),0<(overflowLeft=pos.bottom+dlgHeight-containerHeight+padding))&&pos.bottom>containerHeight/2&&(pos.bottom-=overflowLeft)),pos.top=Math.max(pos.top,10),pos.bottom=Math.max(pos.bottom,10),pos.left=Math.max(pos.left,10),pos.right=Math.max(pos.right,10),pos.positionY=positionY,pos.positionX=positionX,pos}function enablePositioning(dialogOptions){return dialogOptions.positionTo&&"fullscreen"!==dialogOptions.size}var AnchorId=0;function positionDialog(dlg,isInitialPositioning){var options=dlg.dialogOptions,isInitialPositioning=enablePositioning(options)?getPosition(options,dlg,isInitialPositioning):null;if(isInitialPositioning){var positionYAnchored,positionXAnchored,anchorName,container=options.positionTo&&SupportsPositionAnchoring?(elem=options.positionTo,(container=elem.closest(".card,.listItem"))?container.querySelector(".cardFooterContent")||container.querySelector(".cardContent,.listItemContent")||container:elem):null,elem=(dlg.style.position="fixed",isInitialPositioning[isInitialPositioning.horizontalPositionProp]),verticalPos=isInitialPositioning[isInitialPositioning.verticalPositionProp];if(container){switch(isInitialPositioning.positionY){case"above":dlg.style.bottom="anchor(top)",positionYAnchored=!0;break;case"bottom":dlg.style.top="anchor(bottom)",positionYAnchored=!0;break;case"center":dlg.style.top="anchor(center)",positionYAnchored=!0;break;case"top":dlg.style.top="anchor(top)",positionYAnchored=!0}switch(isInitialPositioning.positionX){case"left":dlg.style.left="anchor(left)",positionXAnchored=!0;break;case"right":case"before":dlg.style.right="anchor(left)",positionXAnchored=!0;break;case"after":dlg.style.left="anchor(right)",positionXAnchored=!0}}(positionXAnchored||positionYAnchored)&&((anchorName=container.style.anchorName)||(anchorName="--dialoganchor"+AnchorId,AnchorId++,container.style.anchorName=anchorName),dlg.style.positionAnchor=anchorName,null!=(anchorName=dlg.dialogContainer)&&anchorName.classList.add("dialogBackdrop-anchored"),anchorName=[],positionYAnchored&&anchorName.push("flip-block"),positionXAnchored&&anchorName.push("flip-inline"),anchorName.length)&&(dlg.style.positionTryFallbacks=anchorName.join(",")),positionXAnchored?dlg.style.marginLeft=isInitialPositioning.offsetLeft+"px":dlg.style[isInitialPositioning.horizontalPositionProp]=elem+"px",positionYAnchored?dlg.style.marginTop=isInitialPositioning.offsetTop+"px":dlg.style[isInitialPositioning.verticalPositionProp]=verticalPos+"px",!1!==options.setDialogSize&&(anchorName="android"===appMode?"var(--window-inset-bottom, 0)":"env(safe-area-inset-bottom, 0)",options.fixedSize?dlg.style.height=positionYAnchored?"calc(98% - anchor(bottom) - "+anchorName+")":"calc(98% - "+verticalPos+"px - "+anchorName+")":positionYAnchored||(dlg.style.maxHeight="calc(98% - "+verticalPos+"px - "+anchorName+")"),options.minWidthToElement&&isInitialPositioning.width)&&(options.fixedSize?dlg.style.width=positionXAnchored?"anchor-size(width)":isInitialPositioning.width+"px":dlg.style.minWidth=positionXAnchored?"anchor-size(width)":isInitialPositioning.width+"px")}}function isOpened(dlg){return!dlg.classList.contains("hide")}function requestClose(dlg,forceClose){!isOpened(dlg)||dlg.queryCloseHandler&&!dlg.queryCloseHandler(dlg,forceClose)||close(dlg)}function close(dlg){isOpened(dlg)&&(isHistoryEnabled(dlg)?_approuter.default.back():hideDialog(dlg))}function onCloseAnimationFinish(e){e.target===e.currentTarget&&(_dom.default.removeEventListener(this,"animationend",onCloseAnimationFinish,{passive:!0}),_focusmanager.default.popScope(this),this.classList.add("hide"),this.dispatchEvent(new CustomEvent("close",{bubbles:!1,cancelable:!0})))}function hideDialog(dlg){dlg.gesture&&(dlg.gesture.destroy(),dlg.gesture=null),dlg.classList.contains("hide")||(dlg.dispatchEvent(new CustomEvent("preclosing",{bubbles:!1,cancelable:!1})),dlg.dispatchEvent(new CustomEvent("closing",{bubbles:!1,cancelable:!1})),dlg.classList.add("dialog-close"),enableAnimation(dlg)?_dom.default.addEventListener(dlg,"animationend",onCloseAnimationFinish,{passive:!0}):onCloseAnimationFinish.call(dlg,{target:dlg,currentTarget:dlg}))}_exports.default={open:function(dlg){!_layoutmanager.default.tv&&SupportsTranslate&&dlg.classList.contains("dialog-swipe-close")&&!function(dlg){var gesture=new _gesture.default(dlg);(dlg.gesture=gesture).on("panmove",function(event){var target=event.target;if(target.closest('.dragHandle,input[type="range"]'))dlg.classList.remove("dialog-dragging"),gesture.isScrolling=!0,gesture.isDragging=null;else{var target=target.closest(".emby-scroller.scrollY"),diff=gesture.touchMoveY;if(target){target=target.getScrollTop();if(diff<0&&target<=0)return dlg.classList.remove("dialog-dragging"),gesture.isScrolling=!0,void(gesture.isDragging=null);if(0!==target)return dlg.classList.remove("dialog-dragging"),gesture.isScrolling=!0,void(gesture.isDragging=null)}gesture.isScrolling||(null==gesture.isSliding&&(gesture.isSliding="slideup"===getComputedStyle(dlg).getPropertyValue("animation-name")),gesture.isDragging=gesture.isSliding,gesture.isDragging&&(event.preventDefault(),dlg.classList.add("dialog-draggable","dialog-dragging"),dlg.style.translate="0 "+Math.max(Math.floor(diff),0)+"px"))}}),gesture.on("panend",function(event){dlg.classList.remove("dialog-dragging"),dlg.style.translate="none",gesture.isScrolling=null}),gesture.on("swipedown",function(){dlg.classList.remove("dialog-dragging"),dlg.style.translate="none",gesture.isDragging&&(gesture.isDragging=null,requestClose(dlg))})}(dlg),dlg.classList.remove("dialog-close"),globalOnOpenCallback&&globalOnOpenCallback(dlg),dlg.remove();var dialogContainer=document.createElement("div");return dialogContainer.classList.add("dialogContainer"),dialogContainer.appendChild(dlg),dlg.dialogContainer=dialogContainer,document.body.appendChild(dialogContainer),new Promise(function(resolve,reject){DialogHashHandler(dlg,"dlg"+Date.now(),resolve)})},close:close,createDialog:function(options){var positionX=(options=options||{}).positionX,transformOrigin=options.transformOrigin;if("rtl"===document.dir){switch(positionX){case"right":positionX="left";break;case"left":positionX="right";break;case"after":positionX="before";break;case"before":positionX="after"}"right top"===transformOrigin?transformOrigin="left top":"left top"===transformOrigin?transformOrigin="right top":"left bottom"===transformOrigin?transformOrigin="right bottom":"right bottom"===transformOrigin&&(transformOrigin="left bottom")}var dlg=options.dialog||document.createElement("div"),autoCenter=(dlg.classList.add("hide","focuscontainer"),dlg.setAttribute("data-lockscroll","true"),allowHistory&&!1!==options.enableHistory&&dlg.setAttribute("data-history","true"),!1!==options.autoFocus&&dlg.setAttribute("data-autofocus","true"),dlg.classList.add("dialog","dialog-animated"),!1!==options.animate&&enableAnimation()||dlg.classList.add("dialog-noanimation"),!1===options.blockInputCommandNavigation&&dlg.setAttribute("data-blocknav","false"),!1===options.setCurrentFocusScope&&dlg.setAttribute("data-focusscope","false"),options.removeOnClose&&dlg.setAttribute("data-removeonclose","true"),options.transparentBackground&&dlg.setAttribute("data-transparentbackground",options.transparentBackground),options.blurBackground&&"fullscreen"!==options.size&&dlg.setAttribute("data-blurbackground","true"),options.size&&dlg.classList.add("dialog-fixedSize","dialog-"+options.size),!1!==options.autoCenter),isFullscreen="fullscreen"===options.size;if(!1===options.autoLowResLayout||_layoutmanager.default.tv||isFullscreen||(dlg.classList.add("dialog-fullscreen-lowres"),options.lowResXMargin&&dlg.classList.add("dialog-fullscreen-lowres-xmargin"),options.lowResAutoHeight&&dlg.classList.add("dialog-fullscreen-lowres-autoheight"),options.lowResAutoHeight&&!autoCenter&&!options.size&&options.lowerLowResThreshold)||dlg.classList.add("dialog-fullscreen-lowres-higherthreshold"),autoCenter&&!dlg.classList.contains("dialog-fixedSize")&&dlg.classList.add("centeredDialog"),!1!==options.swipeClose&&dlg.classList.add("dialog-swipe-close"),enablePositioning(options))if(transformOrigin)"center top"===transformOrigin?dlg.classList.add("dialog-transformorigin-top"):"left top"===transformOrigin?dlg.classList.add("dialog-transformorigin-lefttop"):"right top"===transformOrigin?dlg.classList.add("dialog-transformorigin-righttop"):"center bottom"===transformOrigin?dlg.classList.add("dialog-transformorigin-bottom"):"right bottom"===transformOrigin?dlg.classList.add("dialog-transformorigin-rightbottom"):"left bottom"===transformOrigin&&dlg.classList.add("dialog-transformorigin-leftbottom");else if("bottom"===options.positionY)switch(positionX){case"right":case"after":dlg.classList.add("dialog-transformorigin-lefttop");break;case"left":case"before":dlg.classList.add("dialog-transformorigin-righttop");break;default:dlg.classList.add("dialog-transformorigin-top")}else if("top"===options.positionY)switch(positionX){case"right":case"after":dlg.classList.add("dialog-transformorigin-lefttop");break;case"left":case"before":dlg.classList.add("dialog-transformorigin-righttop");break;default:dlg.classList.add("dialog-transformorigin-bottom")}return(dlg.dialogOptions=options).queryCloseHandler&&(dlg.queryCloseHandler=options.queryCloseHandler),dlg},setOnOpen:function(val){globalOnOpenCallback=val},positionDialog:positionDialog}}); \ No newline at end of file diff --git a/modules/dialoghelper/dialoghelper2.css b/modules/dialoghelper/dialoghelper2.css new file mode 100644 index 0000000..412c26f --- /dev/null +++ b/modules/dialoghelper/dialoghelper2.css @@ -0,0 +1 @@ +@-webkit-keyframes scaledown-fullscreen{from{opacity:1;-webkit-transform:none;transform:none}to{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}}@keyframes scaledown-fullscreen{from{opacity:1;-webkit-transform:none;transform:none}to{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}}@-webkit-keyframes scaleup-fullscreen{from{-webkit-transform:scale(.7);transform:scale(.7);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes scaleup-fullscreen{from{-webkit-transform:scale(.7);transform:scale(.7);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}.dialog-fullscreen{position:fixed!important;top:0!important;bottom:0!important;left:0!important;right:0!important;inset-inline-start:0!important;inset-inline-end:0!important;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)!important;margin:0!important;box-shadow:none!important;border-radius:0!important;max-width:none!important;max-height:none!important;-webkit-animation:scaleup-fullscreen 340ms ease-out normal both;animation:scaleup-fullscreen 340ms ease-out normal both;border:0!important}.dialog-fullscreen.dialog-close{-webkit-animation:scaledown-fullscreen 340ms ease-out normal both;animation:scaledown-fullscreen 340ms ease-out normal both}@media all and (min-width:37em) and (min-height:36em){.dialog-medium{max-width:80%;height:80%}.dialog-medium-tall{max-width:80%;height:90%}.dialog-small{max-width:60%;height:80%}.dialog-fullscreen-border{width:90%;height:90%}.dialogbutton-hidenotfullscreen{display:none!important}}.dialog-fullscreen-border-force{width:90%;height:90%}.dialogBackdrop{overflow:hidden;overscroll-behavior-y:contain} \ No newline at end of file diff --git a/modules/dialoghelper/dialoghelper3.css b/modules/dialoghelper/dialoghelper3.css new file mode 100644 index 0000000..0ec31d7 --- /dev/null +++ b/modules/dialoghelper/dialoghelper3.css @@ -0,0 +1 @@ +@media all and (min-width:37em) and (min-height:36em){.dialogBackdrop-auto{background-color:transparent;transition:none}@media not all and (pointer:fine){.dialogBackdrop-blur{transition:background ease-out .2s,-webkit-backdrop-filter ease-out .2s}@supports (backrop-filter:blur(1em)){.dialogBackdrop-blur{transition:background ease-out .2s,backdrop-filter ease-out .2s}}.dialogBackdrop-blur.dialogBackdropOpened{-webkit-backdrop-filter:blur(.35em)}}}.dialog-noanimation{-webkit-animation:initial!important;animation:initial!important} \ No newline at end of file diff --git a/modules/dialoghelper/dialoghelper_nontv.css b/modules/dialoghelper/dialoghelper_nontv.css new file mode 100644 index 0000000..5b94f1a --- /dev/null +++ b/modules/dialoghelper/dialoghelper_nontv.css @@ -0,0 +1 @@ +@media not all and (min-width:37em),not all and (min-height:36em){@-webkit-keyframes slideup{from{-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:none;transform:none}}@keyframes slideup{from{-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes slidedown{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slidedown{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}.centeredDialog{position:initial!important;top:initial!important;bottom:initial!important;left:inherit!important;right:inherit!important;inset-inline-start:inherit!important;inset-inline-end:initial!important;position-anchor:initial!important}.dialog-fullscreen-lowres-higherthreshold{position:fixed!important;top:1em!important;top:calc(1em + env(safe-area-inset-top,0))!important;bottom:0!important;left:0!important;right:0!important;inset-inline-start:0!important;inset-inline-end:0!important;padding:0 env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)!important;margin:0!important;box-shadow:none!important;border:0!important;border-top-left-radius:1em!important;border-top-right-radius:1em!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;min-width:initial!important;max-width:none!important;min-height:initial!important;max-height:none!important;height:auto!important;width:auto!important;-webkit-animation:slideup 240ms ease-out normal both;animation:slideup 240ms ease-out normal both;-webkit-transform-origin:center top;transform-origin:center top;position-anchor:initial!important}.dialog-fullscreen-lowres-higherthreshold.dialog-fullscreen-lowres-xmargin{inset-inline-start:.5em!important;inset-inline-end:.5em!important;inset-inline-start:calc(env(safe-area-inset-left,0) + .5em)!important;inset-inline-end:calc(env(safe-area-inset-right,0) + .5em)!important;-webkit-padding-start:0!important;padding-inline-start:0!important;-webkit-padding-end:0!important;padding-inline-end:0!important;border-bottom-left-radius:1em!important;border-bottom-right-radius:1em!important}@media all and (min-height:30em){.dialog-fullscreen-lowres-higherthreshold{top:calc(4em + env(safe-area-inset-top,0))!important}}.dialog-fullscreen-lowres-higherthreshold.dialog-close{-webkit-animation:slidedown 240ms ease-out normal both!important;animation:slidedown 240ms ease-out normal both!important}@media not all and (min-width:26em),not all and (min-height:36em){.dialog-fullscreen-lowres{position:fixed!important;top:1em!important;top:calc(1em + env(safe-area-inset-top,0))!important;bottom:0!important;left:0!important;right:0!important;inset-inline-start:0!important;inset-inline-end:0!important;padding:0 env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)!important;margin:0!important;box-shadow:none!important;border:0!important;border-top-left-radius:1em!important;border-top-right-radius:1em!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;min-width:initial!important;max-width:none!important;min-height:initial!important;max-height:none!important;height:auto!important;width:auto!important;-webkit-animation:slideup 240ms ease-out normal both;animation:slideup 240ms ease-out normal both;-webkit-transform-origin:center top;transform-origin:center top;position-anchor:initial!important}.dialog-fullscreen-lowres-xmargin{inset-inline-start:.5em!important;inset-inline-end:.5em!important;inset-inline-start:calc(env(safe-area-inset-left,0) + .5em)!important;inset-inline-end:calc(env(safe-area-inset-right,0) + .5em)!important;-webkit-padding-start:0!important;padding-inline-start:0!important;-webkit-padding-end:0!important;padding-inline-end:0!important;border-bottom-left-radius:1em!important;border-bottom-right-radius:1em!important}@media all and (min-height:30em){.dialog-fullscreen-lowres{top:calc(4em + env(safe-area-inset-top,0))!important}}.dialog-fullscreen-lowres.dialog-close{-webkit-animation:slidedown 240ms ease-out normal both!important;animation:slidedown 240ms ease-out normal both!important}.dialog-fullscreen-lowres-autoheight{top:initial!important;max-height:72%!important;max-height:calc(100% - 4em - env(safe-area-inset-top,0))!important;min-height:15em!important;-webkit-justify-content:flex-start!important;justify-content:flex-start!important}}.dialog-fullscreen-lowres-higherthreshold.dialog-fullscreen-lowres-autoheight{top:initial!important;max-height:72%!important;max-height:calc(100% - 4em - env(safe-area-inset-top,0))!important;min-height:15em!important;-webkit-justify-content:flex-start!important;justify-content:flex-start!important}} \ No newline at end of file diff --git a/modules/dialoghelper/dialoghelper_nontv2.css b/modules/dialoghelper/dialoghelper_nontv2.css new file mode 100644 index 0000000..a3fd689 --- /dev/null +++ b/modules/dialoghelper/dialoghelper_nontv2.css @@ -0,0 +1 @@ +@media all and (pointer:fine){.dialogBackdrop{background-color:transparent;transition:background-color ease-out 180ms}.dialogBackdropOpened{background-color:rgba(0,0,0,.5)}.dialogBackdrop-nomouse{background-color:transparent;transition:none}}@media not all and (pointer:fine){.dialogBackdrop{background-color:transparent;transition:background-color ease-out 180ms}.dialogBackdropOpened{background-color:rgba(0,0,0,.5)}} \ No newline at end of file diff --git a/modules/dialogsidebar/dialogsidebar.css b/modules/dialogsidebar/dialogsidebar.css new file mode 100644 index 0000000..86a6813 --- /dev/null +++ b/modules/dialogsidebar/dialogsidebar.css @@ -0,0 +1 @@ +.sidebar{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 10%));position:absolute;z-index:150;top:0;bottom:0;width:16.5em;display:-webkit-flex;display:flex;scrollbar-gutter:stable;box-sizing:border-box}.sidebarBackdrop{position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;background-color:#000;opacity:.3;z-index:145;contain:strict;overflow:hidden;overscroll-behavior:contain} \ No newline at end of file diff --git a/modules/dialogsidebar/dialogsidebar.js b/modules/dialogsidebar/dialogsidebar.js new file mode 100644 index 0000000..d50ceba --- /dev/null +++ b/modules/dialogsidebar/dialogsidebar.js @@ -0,0 +1 @@ +define(["exports","./../emby-elements/emby-scroller/emby-scroller.js"],function(_exports,_embyScroller){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/dialogsidebar/dialogsidebar.css"]);var SIDEBAR_CLASS="sidebar",SIDEBAR_BACKDROP_CLASS="sidebarBackdrop",SIDEBAR_EXTRA_CLASSES="focuscontainer padded-bottom-page flex-direction-column drawer-open",sidebars={};function DialogSidebar(anchorcontainer,options){var self=this,container=anchorcontainer;if(!(anchorcontainer instanceof _embyScroller.default)){container=document.createElement("div",{is:"emby-scroller"});for(var attr of anchorcontainer.attributes)"is"!==attr.name&&container.setAttribute(attr.name,attr.value)}(self.container=container).dataset.miniscrollbar="true",container.dataset.horizontal="false",container.dataset.focusscroll="true",container.dataset.forcescrollbar="true",container.dataset.forcenativescroll="false",container.classList.add(SIDEBAR_CLASS),container.dataset.sidebar=options.className,options.className.split(" ").forEach(function(classToAdd){return container.classList.add(classToAdd)}),SIDEBAR_EXTRA_CLASSES.split(" ").forEach(function(classToAdd){return container.classList.add(classToAdd)}),container.style[options.reverse?"insetInlineEnd":"insetInlineStart"]=0;var contents=container.querySelector(".scrollSlider"),anchorcontainer=(contents||((contents=document.createElement("div")).classList.add("scrollSlider"),container.append(contents)),self.contents=contents,anchorcontainer!==container&&(anchorcontainer.parentElement.insertBefore(container,anchorcontainer),anchorcontainer.remove()),sidebars[options.className]=this,options.backdropElement);(anchorcontainer="string"==typeof anchorcontainer?document.querySelector(anchorcontainer):anchorcontainer)||!1===anchorcontainer||(anchorcontainer=document.createElement("div"),container.parentElement.insertBefore(anchorcontainer,container)),anchorcontainer instanceof HTMLElement&&(anchorcontainer.classList.add(SIDEBAR_BACKDROP_CLASS),anchorcontainer.dataset.sidebar=options.className,anchorcontainer.addEventListener("click",function(){self.hide()}),self.backdropContainer=anchorcontainer),options.template&&(contents.innerHTML=options.template),self.show=function(){self.container.classList.remove("hide"),self.backdropContainer&&self.backdropContainer.classList.remove("hide")},self.hide=function(){self.container.classList.add("hide"),self.backdropContainer&&self.backdropContainer.classList.add("hide")},self.toggle=function(){self.container.classList.contains("hide")?self.show():self.hide()},self.destroy=function(){self.hide(),self.container.classList.remove(SIDEBAR_CLASS),delete self.container.dataset.sidebar,sidebars[options.className]&&delete sidebars[options.className]}}function show(options){("object"!=typeof options||options instanceof HTMLElement)&&(options={container:options});var sidebar,container=(options=Object.assign({container:void 0,parent:void 0,className:void 0,template:void 0,reverse:!1,backdropElement:void 0},options)).container;if(!((container="string"==typeof container?document.querySelector(container):container)instanceof HTMLElement))throw new Error("The container must be a HTML element.");if(options.parent||(options.parent=container.parentElement),container.classList.contains(SIDEBAR_CLASS))return(sidebar=sidebars[container.dataset.sidebar]).show(),sidebar;if(options.className)return new DialogSidebar(container,options);throw new Error("Sidebar requires a className.")}_exports.default={show:show,create:function(options){if((options="object"!=typeof options||options instanceof HTMLElement?{parent:options}:options).parent)return options.container=document.createElement("div"),options.parent.append(options.container),show(options);throw new Error("This function requires a 'parent' element.")},get:function(className){return sidebars[className]},sidebarClass:SIDEBAR_CLASS}}); \ No newline at end of file diff --git a/modules/dialogsidebar/indexitem.template.html b/modules/dialogsidebar/indexitem.template.html new file mode 100644 index 0000000..d4e104c --- /dev/null +++ b/modules/dialogsidebar/indexitem.template.html @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/modules/dialogsidebar/indexnode.template.html b/modules/dialogsidebar/indexnode.template.html new file mode 100644 index 0000000..b19042f --- /dev/null +++ b/modules/dialogsidebar/indexnode.template.html @@ -0,0 +1,4 @@ +
+
+
+
\ No newline at end of file diff --git a/modules/dialogsidebar/indexsidebar.css b/modules/dialogsidebar/indexsidebar.css new file mode 100644 index 0000000..db2e2c5 --- /dev/null +++ b/modules/dialogsidebar/indexsidebar.css @@ -0,0 +1 @@ +.indexSidebar{padding-top:calc(1em + env(safe-area-inset-top,0));-webkit-padding-start:1em;padding-inline-start:1em;-webkit-padding-end:1em;padding-inline-end:1em}.indexItem{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;text-decoration:none;color:inherit;font-weight:400!important;margin:0!important;-webkit-user-select:none;user-select:none;width:auto!important}.indexItemBody{padding:.19em .5em!important}.indexCollapse{position:relative;margin-top:0}.indexCollapseButton{width:2em!important;padding:0!important;position:absolute;inset-inline-end:0;z-index:10}.indexCollapseIcon{line-height:inherit}.indexCollapseButton.emby-collapsible-button-collapsed::after{display:none}.indexNodeTitle{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-margin-end:2.5em;margin-inline-end:2.5em}.indexNodeSubItems.collapseContent{padding-top:.5em;padding-bottom:0;-webkit-padding-end:0.5em;padding-inline-end:0.5em} \ No newline at end of file diff --git a/modules/dialogsidebar/indexsidebar.js b/modules/dialogsidebar/indexsidebar.js new file mode 100644 index 0000000..682e69c --- /dev/null +++ b/modules/dialogsidebar/indexsidebar.js @@ -0,0 +1 @@ +define(["exports","./dialogsidebar.js","./../common/inputmanager.js","./../emby-elements/emby-collapse/emby-collapse.js","./../emby-elements/emby-button/emby-button.js"],function(_exports,_dialogsidebar,_inputmanager,_embyCollapse,_embyButton){function ownKeys(e,r){var o,t=Object.keys(e);return Object.getOwnPropertySymbols&&(o=Object.getOwnPropertySymbols(e),r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)),t}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/dialogsidebar/indexsidebar.css"]);var PATH_MAIN_TEMPLATE="text!./modules/dialogsidebar/indexsidebar.template.html",PATH_NODE_TEMPLATE="text!./modules/dialogsidebar/indexnode.template.html",PATH_ITEM_TEMPLATE="text!./modules/dialogsidebar/indexitem.template.html";function IndexSidebar(options){var _this=this,self=this;function addItemsToContainer(items,container){function _loop(item){label=item.label,callback=item.href&&options.callback?function(){return options.callback(item.href,item.id)}:null,id=item.id||item.href,(temp=document.createElement("div")).innerHTML=self.itemTemplate,(temp=temp.firstElementChild).querySelector(".indexItemBody").textContent=label,callback&&temp.addEventListener("click",callback),id&&(temp.dataset.indexItemId=id);var callback,temp,id,label=temp;null!=(callback=item.subitems)&&callback.length?((id=function(){var temp=document.createElement("div");return temp.innerHTML=self.nodeTemplate,temp.firstElementChild}()).querySelector(".indexNodeTitle").append(label),addItemsToContainer(item.subitems,id.querySelector(".indexNodeSubItems")),item.className&&id.classList.add(item.className),container.append(id)):(item.className&&label.classList.add(item.className),container.append(label))}var item;for(item of items)_loop(item)}self.nodeTemplate=null,self.itemTemplate=null,self.selected=null,self.container=null,self.ready=new Promise(function(resolve){require([PATH_MAIN_TEMPLATE,PATH_NODE_TEMPLATE,PATH_ITEM_TEMPLATE]).then(function(templates){self.sidebar=_dialogsidebar.default.show(function(e){for(var r=1;r
+
\ No newline at end of file diff --git a/modules/directorybrowser/directorybrowser.js b/modules/directorybrowser/directorybrowser.js new file mode 100644 index 0000000..462d4c4 --- /dev/null +++ b/modules/directorybrowser/directorybrowser.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/connectionmanager.js","./../common/globalize.js","./../layoutmanager.js","./../focusmanager.js","./../loading/loading.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-input/emby-input.js","./../listview/listview.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../dialoghelper/dialoghelper.js","./../dom.js","./../common/responsehelper.js"],function(_exports,_connectionmanager,_globalize,_layoutmanager,_focusmanager,_loading,_embyScroller,_embyInput,_listview,_paperIconButtonLight,_embyButton,_embyDialogclosebutton,_dialoghelper,_dom,_responsehelper){function initEditor(instance,content,options,apiClient){var btnRefreshDirectories=content.querySelector(".btnRefreshDirectories");function onPathTextChange(e){var value=this.value,value=value&&(value.startsWith("\\\\")||value.toLowerCase().startsWith("smb://")),fldUsername=content.querySelector(".fldUsername"),fldPassword=content.querySelector(".fldPassword");value?(fldUsername&&fldUsername.classList.remove("hide"),fldPassword&&fldPassword.classList.remove("hide")):(fldUsername&&fldUsername.classList.add("hide"),fldPassword&&fldPassword.classList.add("hide"))}btnRefreshDirectories&&btnRefreshDirectories.addEventListener("click",function(e){var _content$querySelecto;instance.path=content.querySelector(".txtDirectoryPickerPath").value,instance.username=null==(_content$querySelecto=content.querySelector(".txtUsername"))?void 0:_content$querySelecto.value,instance.password=null==(_content$querySelecto=content.querySelector(".txtPassword"))?void 0:_content$querySelecto.value,instance.itemsContainer.resume({refresh:!0}).catch(_responsehelper.default.handleErrorResponse)}),content.querySelector(".txtDirectoryPickerPath").addEventListener("change",onPathTextChange),content.querySelector(".txtDirectoryPickerPath").addEventListener("input",onPathTextChange),content.querySelector("form").addEventListener("submit",function(e){var _this$querySelector,path,username,password,networkSharePath;return options.callback&&(path=this.querySelector(".txtDirectoryPickerPath").value,username=(null==(_this$querySelector=this.querySelector(".txtUsername"))?void 0:_this$querySelector.value)||null,password=(null==(_this$querySelector=this.querySelector(".txtPassword"))?void 0:_this$querySelector.value)||null,networkSharePath=(null==(_this$querySelector=this.querySelector(".txtNetworkPath"))?void 0:_this$querySelector.value)||null,function(path,validateWriteable,username,password,apiClient){return apiClient.ajax({type:"POST",url:apiClient.getUrl("Environment/ValidatePath"),data:{ValidateWriteable:validateWriteable,Path:path,Username:username,Password:password}}).catch(_responsehelper.default.handleErrorResponse)}(path,options.validateWriteable,username,password,apiClient).then(function(){options.callback(path,networkSharePath,username,password)})),e.preventDefault(),e.stopPropagation(),!1})}function getListOptions(items){return{renderer:_listview.default,options:{enableDefaultIcon:!0,action:"custom",fields:["Name"],draggable:!1,draggableXActions:!1,multiSelect:!1,contextMenu:!1,hoverPlayButton:!1,enableUserDataButtons:!1,mediaInfo:!1,defaultBackground:!1,enableFocusScaling:!1,allowBorderXOffset:!1,playQueueIndicator:!1},virtualScrollLayout:"vertical-list"}}function onItemsContainerUpgraded(){this.itemsContainer.resume({refresh:!0}).then(function(){var context=this.dlg;_focusmanager.default.autoFocus(context,{skipIfNotEnabled:!0})}.bind(this))}function DirectoryBrowser(){}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle"]),DirectoryBrowser.prototype.show=function(options){var fileOptions={includeDirectories:!0},apiClient=(null!=(options=options||{}).includeDirectories&&(fileOptions.includeDirectories=options.includeDirectories),null!=options.includeFiles&&(fileOptions.includeFiles=options.includeFiles),_connectionmanager.default.currentApiClient()),instance=this;return instance.fileOptions=fileOptions,instance.apiClient=apiClient,instance.options=options,Promise.all([apiClient.getSystemInfo(),function(options,apiClient){return options.path?Promise.resolve(options.path):apiClient.getJSON(apiClient.getUrl("Environment/DefaultDirectoryBrowser")).then(function(result){return result.Path||""},function(){return""})}(options,apiClient)]).then(function(responses){var systemInfo=responses[0],responses=responses[1],dlg=_dialoghelper.default.createDialog({size:_layoutmanager.default.tv?"fullscreen":"medium-tall",removeOnClose:!0,scrollY:!1}),html=((instance.dlg=dlg).classList.add("ui-body-a"),dlg.classList.add("background-theme-a"),dlg.classList.add("directoryPicker"),dlg.classList.add("formDialog"),""),systemInfo=(html=(html=(html=(html=(html+='
')+''+'

')+(options.header||_globalize.default.translate("HeaderSelectPath")))+"

"+"
")+function(options,apiClient,systemInfo){var html="",labelKey=(html=html+'
'+'
',options.pathReadOnly||(html=(html=(html+='
')+'
'+(options.instruction?options.instruction+"

":""))+_globalize.default.translate("MessageDirectoryPickerInstruction").replace("{0}","\\\\server").replace("{1}","\\\\192.168.1.101"),"synology"===(systemInfo.PackageName||"").toLowerCase()?html=(html+="

")+''+_globalize.default.translate("LearnHowToCreateSynologyShares")+"":"bsd"===systemInfo.OperatingSystem.toLowerCase()?html=(html=(html+="

")+_globalize.default.translate("MessageDirectoryPickerBSDInstruction")+"
")+''+_globalize.default.translate("LearnMore")+"":"linux"===systemInfo.OperatingSystem.toLowerCase()&&(html=(html+="

")+_globalize.default.translate("MessageDirectoryPickerLinuxInstruction")+"
"),html+="
"),!0!==options.includeFiles?"Folder":"LabelPath"),readOnlyAttribute=options.pathReadOnly?" readonly":"";return html=(html=(html+='
')+'
'+'
')+('')+"
",readOnlyAttribute||(html+=''),html+="
",options.enableLoginCredentials&&"windows"!==systemInfo.OperatingSystem.toLowerCase()&&apiClient.isMinServerVersion("4.8.0.40")&&(html=(html=(html=(html=(html+='
')+'
')+_globalize.default.translate("UsernameForFolderHelp")+'
')+'
')+_globalize.default.translate("PasswordForFolderHelp")+"
"),readOnlyAttribute||(html+='
'),options.enableNetworkSharePath&&(html=(html=(html+='
')+'
')+_globalize.default.translate("LabelOptionalNetworkPathHelp")+"
"),html=(html=(html=(html+='
')+('")+"
")+"
"+"
")+"
"+"
"}(options,apiClient,systemInfo),dlg.innerHTML=html,initEditor(instance,dlg,options,apiClient),dlg.addEventListener("close",function(){_loading.default.hide(),this.destroy()}.bind(instance)),dlg.querySelector(".itemsContainer")),html=(systemInfo&&(systemInfo.addEventListener("action-null",function(e){var path=(e=e.detail.item).Path;"File"===e.FileType?(this.dlg.querySelector(".txtDirectoryPickerPath").value=path,this.dlg.querySelector(".txtDirectoryPickerPath").dispatchEvent(new CustomEvent("change",{bubbles:!0}))):(this.path=path,this.username=null==(e=this.dlg.querySelector(".txtUsername"))?void 0:e.value,this.password=null==(path=this.dlg.querySelector(".txtPassword"))?void 0:path.value,this.itemsContainer.resume({refresh:!0}))}.bind(instance)),systemInfo.fetchData=function(query){var instance,apiClient,promises,fileOptions,path=this.path;return path&&"string"!=typeof path||(instance=this).options.pathReadOnly?Promise.resolve({Items:[],TotalRecordCount:0}):(apiClient=this.apiClient,fileOptions=this.fileOptions,promises=[],"Network"===path?promises.push(apiClient.getNetworkDevices()):path?((fileOptions=Object.assign({},fileOptions)).username=this.username,fileOptions.password=this.password,promises.push(apiClient.getDirectoryContents(path,fileOptions)),promises.push(apiClient.getParentPath(path))):promises.push(apiClient.getDrives()),Promise.all(promises).then(function(responses){var folders=responses[0],responses=responses[1]||"",items=(instance.dlg.querySelector(".txtDirectoryPickerPath").value=path||"",[]);path&&items.push({Path:responses,Name:".. ["+_globalize.default.translate("Back")+"]",Icon:"arrow_back"}),items=items.concat(folders.map(function(f){return{Path:f.Path,Name:f.Name,FileType:f.Type,Icon:"File"===f.Type?"description":"folder"}})),path||items.push({Path:"Network",Name:_globalize.default.translate("Network"),Icon:"wifi"});for(var i=0,length=items.length;i '+tab.icon+"
"+tab.name+"
"}).join(""),parentElement.innerHTML=tabs):parentElement.innerHTML="",parentElement.onTabsChanged()}(tabs,parentElement)})}(e,getElement(tabs)),mode===hiddenMode?(tabs.hide(),updateHomeButton(!1),updateSearchButton(!1),updateMenuButton(!1)):(tabs.show(),updateHomeButton(!0),updateSearchButton(!0),updateMenuButton(!0)))}function onViewShow(e){var _detail$params,detail=e.detail;"true"!==(null==(_detail$params=detail.params)?void 0:_detail$params.asDialog)&&(_layoutmanager.default.tv||!1===detail.dockedTabs||!userSignedIn?setMode(e,hiddenMode):setMode(e,libraryMode))}function onTabsClick(e){var button=e.target.closest(".dockedtabs-tab-button");button&&(button=button.getAttribute("data-navmenuid"))&&"search"===button&&(_inputmanager.default.trigger("search",{sourceElement:_viewmanager.default.currentView(),originalEvent:e}),e.preventDefault())}function getElement(instance){var element=instance.element;return element||(element=instance.element=(_appfooter.default.add('
'),_appfooter.default.element.querySelector(".dockedtabs"))).addEventListener("click",onTabsClick),element}function DockedTabs(){instance=this,_events.default.on(_connectionmanager.default,"localusersignedin",onLocalUserSignedIn),_events.default.on(_connectionmanager.default,"localusersignedout",onLocalUserSignedOut),document.addEventListener("viewshow",onViewShow);var apiClient=_connectionmanager.default.currentApiClient();null!=apiClient&&apiClient.isLoggedIn()&&onLocalUserSignedIn(0,apiClient.serverId(),apiClient.getCurrentUserId())}DockedTabs.prototype.destroy=function(){document.removeEventListener("viewshow",onViewShow);this.element=null},DockedTabs.prototype.show=function(){getElement(this).classList.remove("hide"),_appfooter.default.setWithContent50w(!0)},DockedTabs.prototype.hide=function(){var element=this.element;element&&(element.classList.add("hide"),element.innerHTML="",_appfooter.default.setWithContent50w(!1))};_exports.default=new DockedTabs}); \ No newline at end of file diff --git a/modules/dom.js b/modules/dom.js new file mode 100644 index 0000000..fb777de --- /dev/null +++ b/modules/dom.js @@ -0,0 +1 @@ +define(["exports","./common/textencoding.js","./browser.js"],function(_exports,_textencoding,_browser){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var windowSize,windowSizeEventsBound,_animationEvent,_transitionEvent,supportsCaptureOption=!1;try{var opts=Object.defineProperty({},"capture",{get:function(){supportsCaptureOption=!0}});window.addEventListener("test",null,opts)}catch(e){}function addEventListenerWithOptions(target,type,handler,options){options=supportsCaptureOption?options:options.capture;target.addEventListener(type,handler,options)}function clearWindowSize(){windowSize=null}function whichAnimationEvent(){if(!_animationEvent){var t,el=document.createElement("div"),animations={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(t in animations)if(void 0!==el.style[t])return _animationEvent=animations[t];_animationEvent="animationend"}return _animationEvent}function supportsEventListenerOnce(){return supportsCaptureOption}function stripScriptsWithDom(s){for(var div=document.createElement("div"),scripts=(div.innerHTML=s,div.getElementsByTagName("script")),i=scripts.length;i--;)scripts[i].remove();for(var elems=div.getElementsByTagName("*"),i=0,length=elems.length;i.previousTarget,.paginatorFlexContainer>.nextTarget{-webkit-flex-grow:1;flex-grow:1}.paginatorFlexContainer>.resizeTarget{width:.5em;cursor:ew-resize;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.resizeTargetHandle{-webkit-margin-start:-0.3em;margin-inline-start:-.3em;color:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 10%),var(--button-background-alpha));user-select:none;-webkit-user-select:none}.tocHeader{position:relative;overflow:hidden;display:-webkit-flex;display:flex}.ebook-toc-cover{float:left;max-height:4ch;max-width:1.414ch}.ebook-toc-title,.ebook-toc-author{overflow:hidden;text-overflow:ellipsis}.ebookControls{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row}.ebookControls>.separatedAfter{-webkit-margin-end:.4em;margin-inline-end:.4em}.ebookControls>.separatedBefore{-webkit-margin-start:.4em;margin-inline-start:.4em}.ebook-progress{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.ebook-progress>.progress-text{padding:0 .5ch}.ebook-progress>.progress-number{padding:0;width:3ch;text-align:end}.ebook-progress>.page-input{box-sizing:content-box;width:4ch;text-align:end;display:inline-block}.ebookTextSizeLabels{margin:.5em 0} \ No newline at end of file diff --git a/modules/ebookplayer/ebookplayer.js b/modules/ebookplayer/ebookplayer.js new file mode 100644 index 0000000..3f9a238 --- /dev/null +++ b/modules/ebookplayer/ebookplayer.js @@ -0,0 +1 @@ +define(["exports","./../dialoghelper/dialoghelper.js","./../common/globalize.js","./../emby-apiclient/connectionmanager.js","./../common/inputmanager.js","../layoutmanager.js","./../actionsheet/actionsheet.js","./../loading/loading.js","./../fluidheader/fluidheader.js","./../dialogsidebar/indexsidebar.js","./../common/appsettings.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-slider/emby-slider.js","./foliate/view.js"],function(_exports,_dialoghelper,_globalize,_connectionmanager,_inputmanager,_layoutmanager,_actionsheet,_loading,_fluidheader,_indexsidebar,_appsettings,_embyDialogclosebutton,_embyInput,_embySlider,_view){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=function(){var self=this;function throttle(callback){var throttleTimer=null;return function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];throttleTimer&&clearTimeout(throttleTimer),throttleTimer=setTimeout(function(){throttleTimer=null,callback.apply(void 0,args)},THROTTLE)}}function getBackgroundContainer(){return self.dlg.querySelector(".ebookBackgroundPaginator")}function getBookContainer(){return self.dlg.querySelector(".ebookContainer")}function getScrollbarContainer(){return self.dlg.querySelector(".ebookOverlayScroller")}function getOverlayContainer(){return self.dlg.querySelector(".ebookOverlayPaginator")}function getTocContainer(){return self.dlg.querySelector(".ebookTocDrawer")}function getScrollbarVirtualContainerHeight(){return self.isFixedLayout()?self.getPageCount()*getBookContainer().clientHeight:self.loadedView?self.totalBookSize/(fontSize=parseFloat(getComputedStyle(self.loadedView.body).fontSize),parseFloat(getComputedStyle(self.loadedView.documentElement).columnWidth)*(getBookContainer().clientHeight-2*FOL_MARGIN)/(SCROLLBAR_EST_CHAR_COEF*Math.pow(fontSize,2)))*SCROLLBAR_EST_PAGE_HEIGHT:SCROLLBAR_BASE_RESOLUTION;var fontSize}function setScrollbarHeight(){var container=getScrollbarContainer();container.children[0].style.height=container.offsetHeight+getScrollbarVirtualContainerHeight()+"px"}function moveScrollToFraction(fraction){var fraction=fraction*getScrollbarVirtualContainerHeight(),scrollbarContainer=getScrollbarContainer();fraction!==scrollbarContainer.scrollTop&&self.scrollState!==SCROLL_STATE_MANUAL&&(self.scrollState=SCROLL_STATE_AUTO,scrollbarContainer.scrollTop=fraction)}function getBookViewportOffset(){var bookContainer=getBookContainer();return bookContainer.offsetWidth-bookContainer.clientWidth}function bestChoiceForLocale(obj,locale){var simpleLocale,options,bestKey;return"object"==typeof obj&&locale?obj[locale]||(obj[simpleLocale=(simpleLocale=locale.match(/^([a-z]+)(-|_|$)/i))&&simpleLocale[1]]?obj[simpleLocale]:(bestKey=(bestKey=(options=Object.keys(obj)).find(function(option){return option.startsWith(locale)}))||options.find(function(option){return option.startsWith(simpleLocale)}))?obj[bestKey]:null):null}function bestMetadataChoice(obj){var pick=bestChoiceForLocale(obj,_globalize.default.getCurrentLocale());return pick=(pick=!pick&&self.view.book.metadata.language?bestChoiceForLocale(obj,self.view.book.metadata.language):pick)||Object.values(obj)[0]||""}function forceDir(dir,addClass,removeClass){getBackgroundContainer().setAttribute("dir",dir),getBookContainer().setAttribute("dir",dir),getScrollbarContainer().setAttribute("dir",dir),getOverlayContainer().setAttribute("dir",dir);var tocScrollSlider=getTocContainer().firstElementChild,tocScrollSlider=(tocScrollSlider&&tocScrollSlider.setAttribute("dir",dir),self.dlg.querySelector(".ebookControls"));tocScrollSlider.setAttribute("dir",dir),"ltr"===dir?tocScrollSlider.querySelectorAll(".autortl").forEach(function(control){control.classList.remove("autortl"),control.classList.add("forceltr")}):tocScrollSlider.querySelectorAll(".forceltr").forEach(function(control){control.classList.remove("forceltr"),control.classList.add("autortl")}),addClass&&tocScrollSlider.classList.add(addClass),removeClass&&tocScrollSlider.classList.remove(removeClass)}function isTocOpen(){var tocContainer=getTocContainer();return self.tocSidebar&&tocContainer.classList.contains("sidebar")&&!tocContainer.classList.contains("hide")}function adjustOverlayPaginatorSizes(){var previousTarget,bgPreviousTarget,renderDetails,outsideOffset;self.isFixedLayout()&&(previousTarget=getOverlayContainer().querySelector(".previousTarget"),bgPreviousTarget=getBackgroundContainer().querySelector(".previousTarget"),"center"!==(renderDetails=self.view.renderer.getRenderDetails()).side&&renderDetails.leftWidth&&renderDetails.rightWidth?(previousTarget.style.flexGrow=0,previousTarget.style.width=renderDetails.leftWidth+"px",outsideOffset=(getBackgroundContainer().clientWidth-getOverlayContainer().querySelector(".paginatorFlexContainer").offsetWidth)/2,bgPreviousTarget.style.flexGrow=0,bgPreviousTarget.style.width=renderDetails.leftWidth+outsideOffset+"px"):(previousTarget.style.flexGrow=1,previousTarget.style.width="",bgPreviousTarget.style.flexGrow=1,bgPreviousTarget.style.width=""))}function setupPageSizes(){var bookContainer=getBookContainer(),pageSizeButton=self.dlg.querySelector(".ebook-pagesize");pageSizeButton.addEventListener("click",function(){var items;_actionsheet.default.show({title:_globalize.default.translate("LabelPageSize"),items:(items=[],PAGE_SIZES.forEach(function(option,i){items.push({id:i,Name:_globalize.default.translate(option.tag),icon:option.icon})}),items),hasItemSelectionState:!1,fields:["Name"],positionTo:pageSizeButton,positionY:"bottom",positionX:"right",transformOrigin:"right top",resolveOnClick:!0,hasItemIcon:!0}).then(function(pageSizeIndex){pageSizeIndex=PAGE_SIZES[pageSizeIndex];self.setPageWidth(bookContainer.clientHeight*pageSizeIndex.ratio)}).catch(function(){})}),self.dlg.addEventListener("resize",function(_ref){_ref=_ref.detail;self.isFullWidth(null,_ref.previousWidth)&&_ref.width>_ref.previousWidth?self.setPageWidth(_ref.width):self.setPageWidth()})}function setupUIElements(){function overlayClickHandler(pageChangeFunction){return function(mouseEvent){if(!self.inputingPage){if(self.loadedView){var contentOffset=self.measureRectangle.getClientRects()[0];if(contentOffset){var inlineTarget=self.loadedView.elementFromPoint(mouseEvent.x-contentOffset.x,mouseEvent.y-contentOffset.y);if(inlineTarget&&["A","BUTTON","INPUT"].find(function(tagName){return tagName===inlineTarget.tagName.toUpperCase()}))return void inlineTarget.click()}}return pageChangeFunction()}}}var toc,scrollbarContainer,anchorPosition,resizeWidth,bookContainer,resizeTarget,textSizeButton,dlg=self.dlg,prevSection=(!function(){var dlg,pageCount,pageinput,maxLength;self.isFixedLayout()&&(dlg=self.dlg,pageCount=self.getPageCount(),dlg.querySelector(".ebookPages > .total").textContent=pageCount||"?",pageinput=dlg.querySelector(".page-input"),pageCount&&(maxLength=String(pageCount).length,pageinput.maxLength=maxLength,pageinput.style.width=maxLength+"ch"),dlg.querySelector(".ebookPercentage").classList.add("hide"),dlg.querySelector(".ebookPages").classList.remove("hide"),pageinput.addEventListener("keydown",function(e){e.ctrlKey||e.metaKey||e.altKey||e.key.match(/[0-9]/)||["Backspace","Delete","ArrowLeft","ArrowRight","Enter","Home","End","Insert","Tab"].includes(e.key)||e.preventDefault()}),pageinput.addEventListener("focus",function(e){e.target.select(),self.inputingPage=!0}),pageinput.addEventListener("blur",function(e){setTimeout(function(){self.inputingPage=!1},100)}),pageinput.addEventListener("change",function(e){e=parseInt(e.target.value)-1;e<0||pageCount&&pageCount<=e?pageinput.value=self.getCurrentPage()+1:self.view.goTo(e)}))}(),dlg.querySelector(".ebook-previous").addEventListener("click",function(){return self.previousPage()}),dlg.querySelector(".ebook-next").addEventListener("click",function(){return self.nextPage()}),prevSection=self.dlg.querySelector(".ebook-prevsection"),nextSection=self.dlg.querySelector(".ebook-nextsection"),toc=self.dlg.querySelector(".ebook-toc"),self.isSectioned()?(prevSection.addEventListener("click",function(){return self.previousSection()}),nextSection.addEventListener("click",function(){return self.nextSection()}),toc.addEventListener("click",self.showHideToc)):(prevSection.remove(),nextSection.remove(),toc.remove()),getOverlayContainer()),nextSection=(prevSection.querySelector(".previousTarget").addEventListener("click",overlayClickHandler(self.previousPage)),prevSection.querySelector(".nextTarget").addEventListener("click",overlayClickHandler(self.nextPage)),getBackgroundContainer());return nextSection.querySelector(".previousTarget").addEventListener("click",function(){return!self.inputingPage&&self.previousPage()}),nextSection.querySelector(".nextTarget").addEventListener("click",function(){return!self.inputingPage&&self.nextPage()}),self.view.addEventListener("relocate",function(){adjustOverlayPaginatorSizes()}),scrollbarContainer=getScrollbarContainer(),_layoutmanager.default.tv?scrollbarContainer.style.visibility="hidden":(self.isFixedLayout()?setScrollbarHeight():self.view.renderer.addEventListener("create-overlayer",function(){setScrollbarHeight()}),scrollbarContainer.addEventListener("scroll",throttle(function(){var scroll;self.scrollState===SCROLL_STATE_AUTO?self.scrollState=SCROLL_STATE_IDLE:(self.scrollState=SCROLL_STATE_MANUAL,scroll=scrollbarContainer.scrollTop/getScrollbarVirtualContainerHeight(),self.view.goToFraction(scroll))})),self.view.addEventListener("relocate",function(e){moveScrollToFraction(e.detail.fraction||0)}),self.view.addEventListener("relocate",throttle(function(){self.scrollState===SCROLL_STATE_MANUAL&&(self.scrollState=SCROLL_STATE_IDLE)})),self.dlg.addEventListener("resize",function(){setScrollbarHeight()})),bookContainer=getBookContainer(),resizeTarget=getOverlayContainer().querySelector(".resizeTarget"),_layoutmanager.default.tv?resizeTarget.style.visibility="hidden":(resizeWidth=function(e){var rtl=isRTL(),dx=rtl?e.x-anchorPosition:anchorPosition-e.x;!rtl&&(0resizeTarget.offsetLeft+resizeTarget.offsetWidth||dx<0&&e.xresizeTarget.offsetLeft+resizeTarget.offsetWidth)||self.setPageWidth(bookContainer.offsetWidth+2*dx)&&(anchorPosition=e.x)},resizeTarget.addEventListener("mousedown",function(e){anchorPosition=e.x,document.addEventListener("mousemove",resizeWidth,{capture:!0})}),document.addEventListener("mouseup",function(){document.removeEventListener("mousemove",resizeWidth,{capture:!0})})),setupPageSizes(),textSizeButton=self.dlg.querySelector(".ebook-textsize"),self.isFixedLayout()?textSizeButton.remove():(textSizeButton.addEventListener("click",function(){function updateValue(){self.setFontSize(parseFloat(slider.value))}var sliderDlg=_dialoghelper.default.createDialog({removeOnClose:!0,autoFocus:!0,positionTo:textSizeButton,positionY:"bottom",positionX:"right",transformOrigin:"right top",transparentBackground:"auto",blurBackground:!1,lowResXMargin:!0,lowResAutoHeight:!0}),slider=(sliderDlg.classList.add("actionSheet"),sliderDlg.classList.add("dialog-blur"),sliderDlg.innerHTML='\n

'+_globalize.default.translate("LabelTextSize")+'

\n
\n
\n
\n \n
\n
\n
'+_globalize.default.translate("Smaller")+'
\n
'+_globalize.default.translate("Larger")+"
\n
\n
\n
\n ",sliderDlg.querySelector(".textSizeSlider"));slider.setValue(self.currentTextSize);slider.addEventListener("input",updateValue),slider.addEventListener("change",updateValue),slider.addEventListener("endediting",function(){_dialoghelper.default.close(sliderDlg)}),_dialoghelper.default.open(sliderDlg)}),self.view.renderer.addEventListener("create-overlayer",function(e){e=e.detail.doc;self.baseFontSize=parseFloat(getComputedStyle(e.body).fontSize),e.querySelectorAll("p").forEach(function(p){p.dataset.originalSize=parseFloat(getComputedStyle(p).fontSize)}),self.setFontSize(self.currentTextSize)})),dlg}function abortWithReason(signal){_loading.default.hide();signal=signal.reason;return signal||((signal=new Error("Aborted")).name="AbortError"),signal}function updateHeaderLabels(){var nextSection,currentIndex,prevLabel,_self$flatToc,nextLabel,titleElm=self.dlg.querySelector(".ebookDialogHeaderTitle");self.currentTocItem&&self.currentTocItem.label?titleElm.textContent=self.currentTocItem.label:titleElm.textContent=self.getBookTitle(),self.isSectioned()&&(titleElm=self.dlg.querySelector(".ebook-prevsection"),nextSection=self.dlg.querySelector(".ebook-nextsection"),currentIndex=self.getCurrentSectionIndex(),0=self.flatToc.length-1?nextLabel="":(nextLabel=_globalize.default.translate("NextSection"),(titleElm=null==(_self$flatToc=self.flatToc[currentIndex+1])?void 0:_self$flatToc.label)&&(nextLabel+=" - "+titleElm)),nextSection.setAttribute("title",nextLabel),nextSection.setAttribute("aria-label",nextLabel))}function setupDialog(template){var dlg=self.dlg=_dialoghelper.default.createDialog({removeOnClose:!0,autoFocus:!0,size:"fullscreen"}),template=(dlg.classList.add("ebookPlayerDialog"),dlg.classList.add("formDialog"),dlg.innerHTML=_globalize.default.translateDocument(template),self.view=document.createElement("foliate-view"));return dlg.querySelector(".ebookContent").append(template),template.addEventListener("relocate",function(e){self.currentFraction=e.detail.fraction||0,self.currentPageItem=e.detail.pageItem,self.currentTocItem=e.detail.tocItem,dlg.querySelector(".position").textContent=Math.round(100*self.currentFraction),dlg.querySelector(".page-input").value=self.getCurrentPage()+1,self.tocSidebar&&self.currentTocItem&&self.tocSidebar.selectItem(self.currentTocItem.id||self.currentTocItem.href)}),getScrollbarContainer().addEventListener("click",function(mouseEvent){mouseEvent.target.style.pointerEvents="none";var newTarget=document.elementFromPoint(mouseEvent.clientX,mouseEvent.clientY);if(mouseEvent.target.style.pointerEvents="auto",newTarget)return mouseEvent=new MouseEvent("click",mouseEvent),newTarget.dispatchEvent(mouseEvent),mouseEvent}),dlg}function open(url,name,knownType){return self.view.open(url,{smartSpreads:!0,forceType:knownType}).then(function(){return self.view.book.getCover()}).then(function(coverBlob){self.view.renderer.addEventListener("create-overlayer",function(e){self.loadedView=e.detail.doc;var measureRectangle=document.createElement("div");measureRectangle.style.position="absolute",e.detail.attach({element:measureRectangle,redraw:function(){}}),self.measureRectangle=measureRectangle}),self.totalBookSize=self.view.book.sections.map(function(s){return"no"!==s.linear&&0TEXT_SIZES_MIN&&self.setFontSize(self.currentTextSize-TEXT_SIZES_STEP),void e.preventDefault();if("green"===command||"down"===command&&_e$detail$originalEve)return self.currentTextSizecurrentWidth});return-1===targetIndex?PAGE_SIZES.length-1:0===targetIndex?-.5:Math.round(bookContainer.clientHeight*PAGE_SIZES[targetIndex-1].ratio)===currentWidth?targetIndex-1:targetIndex-.5},self.previousPageSize=function(){var pageSizeOption=PAGE_SIZES[Math.max(Math.ceil(self.currentPageSize())-1,0)];self.setPageWidth(getBookContainer().clientHeight*pageSizeOption.ratio)},self.nextPageSize=function(){var pageSizeOption=PAGE_SIZES[Math.min(Math.floor(self.currentPageSize())+1,PAGE_SIZES.length-1)];self.setPageWidth(getBookContainer().clientHeight*pageSizeOption.ratio)},self.setFontSize=function(currentTextSize){var documentFontSize=self.baseFontSize*currentTextSize;self.loadedView.body.style.fontSize=documentFontSize+"px",self.currentTextSize=currentTextSize,_appsettings.default.set(APPSETTINGS_TEXTSIZE,currentTextSize),self.loadedView.querySelectorAll("p").forEach(function(p){var paragraphOriginalSize=parseFloat(p.dataset.originalSize);p.style.fontSize=paragraphOriginalSize*currentTextSize+"px"}),setScrollbarHeight(),moveScrollToFraction(self.currentFraction)},self.getBookTitle=function(){var _self$view9,_self$view8;return null!=(_self$view8=self.view)&&_self$view8.book.metadata.title?"string"!=typeof(_self$view8=self.view.book.metadata.title)||null!=(_self$view9=self.view)&&null!=(_self$view9=_self$view9.book.metadata.title)&&_self$view9.endsWith("Download")?bestMetadataChoice(_self$view8):self.view.book.metadata.title:self.fileName},self.getBookAuthor=function(){var _self$view0=null==(_self$view0=self.view)||null==(_self$view0=_self$view0.book.metadata.author)?void 0:_self$view0.name;return _self$view0?"string"==typeof _self$view0?_self$view0:bestMetadataChoice(_self$view0):null},self.forceRTL=function(){forceDir("rtl","rtl")},self.forceLTR=function(){forceDir("ltr",null,"rtl")},self.showHideToc=function(){var tocContainer=getTocContainer();self.tocSidebar&&tocContainer.classList.contains("sidebar")?self.tocSidebar.toggle():(self.tocSidebar=_indexsidebar.default.show({container:tocContainer,className:"ebookTocDrawer",header:'

',reverse:!0,items:self.view.book.toc,callback:function(href){self.view.goTo(href)}}),self.tocSidebar.ready.then(function(tocContainer){tocContainer.querySelector(".ebook-toc-title").textContent=self.getBookTitle(),tocContainer.querySelector(".ebook-toc-author").textContent=self.getBookAuthor();var bookContainer=getBookContainer();bookContainer.getAttribute("dir")&&tocContainer.firstElementChild.setAttribute("dir",bookContainer.getAttribute("dir")),self.currentTocItem&&self.tocSidebar.selectItem(self.currentTocItem.id||self.currentTocItem.href)}))},self.show=function(item,signal){if(_loading.default.show(),null!=signal&&signal.aborted)throw abortWithReason(signal);var apiClient=_connectionmanager.default.getApiClient(item);return require([PATH_TEMPLATE]).then(function(responses){return setupDialog(responses[0])}).then(function(){return open(apiClient.getItemOriginalFileUrl(item.Id),item.Name,function(item){return(item=item.FileName||"").match(/\.fb2$/i)?"application/fictionbook2":item.match(/\.(fbz|fb2\.zip)$/i)?"application/fictionbook2+zip":void 0}(item))}).then(function(){if(null!=signal&&signal.aborted)throw self.clear(),abortWithReason(signal)}).then(setupUIElements).then(setupInputs).then(function(dlg){if(null!=signal&&signal.aborted)throw self.clear(),abortWithReason(signal);_fluidheader.default.fluidify({container:dlg.querySelector(".formDialogHeader"),defaultLTR:!0,item:item}),self.previousWidth=self.dlg.offsetWidth,self.resizeObserver=new ResizeObserver(function(){self.dlg.dispatchEvent(new CustomEvent("resize",{detail:{previousWidth:self.previousWidth,width:self.dlg.offsetWidth,deltaWidth:self.dlg.offsetWidth-self.previousWidth}})),self.previousWidth=self.dlg.offsetWidth}),self.resizeObserver.observe(self.dlg),_dialoghelper.default.open(dlg)}).finally(function(){_loading.default.hide()})},self.clear=function(){var _self$view10;self.resizeObserver&&(self.resizeObserver.unobserve(self.dlg),self.resizeObserver=null),null!=(_self$view10=self.view)&&_self$view10.close(),null!=(_self$view10=self.tocSidebar)&&_self$view10.destroy(),self.dlg=null,self.view=null,self.tocSidebar=null,self.flatToc=[],self.currentFraction=0,self.currentSectionFraction=0,self.currentPageItem=null,self.currentTocItem=null,self.loadedView=null,self.measureRectangle=null,self.previousWidth=null,self.inputingPage=!1,self.scrollState=SCROLL_STATE_IDLE}};var _excluded=["subitems"],PATH_TEMPLATE=(require(["formDialogStyle","css!modules/ebookplayer/ebookplayer.css"]),"text!./modules/ebookplayer/ebookplayer.template.html"),APPSETTINGS_TEXTSIZE="ebooktextsize",SCROLLBAR_BASE_RESOLUTION=1e6,SCROLLBAR_EST_CHAR_COEF=.72,SCROLLBAR_EST_PAGE_HEIGHT=1500,SCROLL_STATE_IDLE=0,SCROLL_STATE_AUTO=1,SCROLL_STATE_MANUAL=2,THROTTLE=250,MINIMUM_PAGE_VIEWPORT_RATIO=.5,FOL_MAX_COLUMN_COUNT=4,FOL_COLUMN_GAP=.07,FOL_MARGIN=48,DEFAULT_BACKGROUND="white",ISO216_PAGE_SIDE_RATIO=Math.sqrt(2),TEXT_SIZES_MIN=.6,TEXT_SIZES_STEP=.1,TEXT_SIZES_MAX=2.5,PAGE_SIZES=[{tag:"PageNarrow",icon:"width_normal",ratio:MINIMUM_PAGE_VIEWPORT_RATIO},{tag:"PageSingle",icon:"width_wide",ratio:ISO216_PAGE_SIDE_RATIO/2},{tag:"PageBook",icon:"width_full",ratio:ISO216_PAGE_SIDE_RATIO},{tag:"PageMaximized",icon:"smart_screen",ratio:10}],INITIAL_PAGE_RATIO=ISO216_PAGE_SIDE_RATIO}); \ No newline at end of file diff --git a/modules/ebookplayer/ebookplayer.template.html b/modules/ebookplayer/ebookplayer.template.html new file mode 100644 index 0000000..882d497 --- /dev/null +++ b/modules/ebookplayer/ebookplayer.template.html @@ -0,0 +1,68 @@ +
+ + +

+ +
+ +
+ + + + + + + +
+
+
%
+
+ +
+ +
/
+
+
+ + + + +
+ + + + + +
+ +
+ +
+
+ + +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + + + +
+
+ +
+
+ +
diff --git a/modules/ebookplayer/foliate/comic-book.js b/modules/ebookplayer/foliate/comic-book.js new file mode 100644 index 0000000..455c25f --- /dev/null +++ b/modules/ebookplayer/foliate/comic-book.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function _createForOfIteratorHelper(r,e){var o,a,u,n,t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(t)return u=!(a=!0),{s:function(){t=t.call(r)},n:function(){var r=t.next();return a=r.done,r},e:function(r){u=!0,o=r},f:function(){try{a||null==t.return||t.return()}finally{if(u)throw o}}};if(Array.isArray(r)||(t=function(r,a){{var t;if(r)return"string"==typeof r?_arrayLikeToArray(r,a):"Map"===(t="Object"===(t={}.toString.call(r).slice(8,-1))&&r.constructor?r.constructor.name:t)||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r))||e&&r&&"number"==typeof r.length)return t&&(r=t),n=0,{s:e=function(){},n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e>6)}):"VP8X"===riff?{width:1+getUint24LittleEndian(view,24),height:1+getUint24LittleEndian(view,27)}:null}};_exports.makeComicBook=async function(_ref,file,smartSpreads){var spreads,promises,book,entries=_ref.entries,loadBlob=_ref.loadBlob,getSize=_ref.getSize,cache=new Map,urls=new Map,exts=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".jxl",".avif"],files=entries.map(function(entry){return entry.filename}).filter(function(name){return exts.some(function(ext){return name.endsWith(ext)})}).sort(function(a,b){return a.localeCompare(b,void 0,{numeric:!0})});if(files.length)return spreads={},smartSpreads&&(promises=[],files.forEach(function(name){var extension=name.slice(2+(name.lastIndexOf(".")-1>>>0));pageDimensions[extension]&&promises.push(new Promise(function(resolve,reject){loadBlob(name).then(function(blob){return pageDimensions[extension](blob)}).then(function(dimensions){dimensions.width>1.05*dimensions.height&&(spreads[name]="center"),resolve()}).catch(function(e){return reject(e)})}))}),await Promise.all(promises)),(book={getCover:function(){return loadBlob(files[0])}}).metadata={title:file.name},book.sections=files.map(function(name){return{id:name,load:function(){return async function(name){var src,page;return cache.has(name)?cache.get(name):(src=URL.createObjectURL(await loadBlob(name)),page=URL.createObjectURL(new Blob(['')],{type:"text/html"})),urls.set(name,[src,page]),cache.set(name,page),page)}(name)},unload:function(){return function(name){var _urls$get;null!=(_urls$get=urls.get(name))&&null!=_urls$get.forEach&&_urls$get.forEach(function(url){return URL.revokeObjectURL(url)}),urls.delete(name),cache.delete(name)}(name)},size:getSize(name),pageSpread:spreads[name]}}),book.toc=files.map(function(name){return{label:name,href:name}}),book.rendition={layout:"pre-paginated"},book.resolveHref=function(href){return{index:book.sections.findIndex(function(s){return s.id===href})}},book.splitTOCHref=function(href){return[href,null]},book.getTOCFragment=function(doc){return doc.documentElement},book.destroy=function(){var _step,_iterator=_createForOfIteratorHelper(urls.values());try{for(_iterator.s();!(_step=_iterator.n()).done;){var _step2,_iterator2=_createForOfIteratorHelper(_step.value);try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var url=_step2.value;URL.revokeObjectURL(url)}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}}}catch(err){_iterator.e(err)}finally{_iterator.f()}},book;throw new Error("No supported image files in archive")}}); \ No newline at end of file diff --git a/modules/ebookplayer/foliate/epub.js b/modules/ebookplayer/foliate/epub.js new file mode 100644 index 0000000..7b7bc8f --- /dev/null +++ b/modules/ebookplayer/foliate/epub.js @@ -0,0 +1 @@ +define(["exports","./epubcfi.js"],function(_exports,CFI){function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function(){return!!t})()}function _classPrivateMethodInitSpec(e,a){_checkPrivateRedeclaration(e,a),a.add(e)}function _classPrivateFieldInitSpec(e,t,a){_checkPrivateRedeclaration(e,t),t.set(e,a)}function _checkPrivateRedeclaration(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function _classPrivateGetter(s,r,a){return a(_assertClassBrand(s,r))}function _classPrivateFieldSet(s,a,r){s.set(_assertClassBrand(s,a),r)}function _classPrivateFieldGet(s,a){return s.get(_assertClassBrand(s,a))}function _assertClassBrand(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function _createForOfIteratorHelper(r,e){var o,a,u,n,t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(t)return u=!(a=!0),{s:function(){t=t.call(r)},n:function(){var r=t.next();return a=r.done,r},e:function(r){u=!0,o=r},f:function(){try{a||null==t.return||t.return()}finally{if(u)throw o}}};if(Array.isArray(r)||(t=function(r,a){{var t;if(r)return"string"==typeof r?_arrayLikeToArray(r,a):"Map"===(t="Object"===(t={}.toString.call(r).slice(8,-1))&&r.constructor?r.constructor.name:t)||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r))||e&&r&&"number"==typeof r.length)return t&&(r=t),n=0,{s:e=function(){},n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e(null==(_classPrivateGetter5=_classPrivateGetter(_MediaOverlay_brand,_this10,_get_activeItem))?void 0:_classPrivateGetter5.end)&&(_assertClassBrand(_MediaOverlay_brand,_this10,_unhighlight).call(_this10),_classPrivateFieldGet(_itemIndex,_this10)===items.length-1))_assertClassBrand(_MediaOverlay_brand,_this10,_play).call(_this10,_classPrivateFieldGet(_audioIndex,_this10)+1,0).catch(function(e){return _assertClassBrand(_MediaOverlay_brand,_this10,_error).call(_this10,e)});else{for(var _items,_classPrivateGetter5=_classPrivateFieldGet(_itemIndex,_this10);(null==(_items=items[_classPrivateFieldGet(_itemIndex,_this10)+1])?void 0:_items.begin)<=t;)_classPrivateFieldSet(_itemIndex,_this10,(_items=_classPrivateFieldGet(_itemIndex,_this10),_items++,_items));_classPrivateFieldGet(_itemIndex,_this10)!==_classPrivateGetter5&&_assertClassBrand(_MediaOverlay_brand,_this10,_highlight).call(_this10)}}}),audio.addEventListener("error",function(){return _assertClassBrand(_MediaOverlay_brand,_this10,_error).call(_this10,new Error("Failed to load ".concat(src)))}),audio.addEventListener("playing",function(){return _assertClassBrand(_MediaOverlay_brand,_this10,_highlight).call(_this10)}),audio.addEventListener("ended",function(){_assertClassBrand(_MediaOverlay_brand,_this10,_unhighlight).call(_this10),URL.revokeObjectURL(url),_classPrivateFieldSet(_audio,_this10,null),_assertClassBrand(_MediaOverlay_brand,_this10,_play).call(_this10,audioIndex+1,0).catch(function(e){return _assertClassBrand(_MediaOverlay_brand,_this10,_error).call(_this10,e)})}),"paused"===_classPrivateFieldGet(_state,this)?(_assertClassBrand(_MediaOverlay_brand,this,_highlight).call(this),audio.currentTime=null!=(itemIndex=_classPrivateGetter(_MediaOverlay_brand,this,_get_activeItem).begin)?itemIndex:0):audio.addEventListener("canplaythrough",function(){var _classPrivateGetter$b2;audio.currentTime=null!=(_classPrivateGetter$b2=_classPrivateGetter(_MediaOverlay_brand,_this10,_get_activeItem).begin)?_classPrivateGetter$b2:0,_classPrivateFieldSet(_state,_this10,"playing"),audio.play().catch(function(e){return _assertClassBrand(_MediaOverlay_brand,_this10,_error).call(_this10,e)})},{once:!0})}function _stop(){_classPrivateFieldGet(_audio,this)&&(_classPrivateFieldGet(_audio,this).pause(),URL.revokeObjectURL(_classPrivateFieldGet(_audio,this).src),_classPrivateFieldSet(_audio,this,null),_assertClassBrand(_MediaOverlay_brand,this,_unhighlight).call(this))}var isUUID=/([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})/,getUUID=function(opf){var _step6,_iterator6=_createForOfIteratorHelper(opf.getElementsByTagNameNS(NS.DC,"identifier"));try{for(_iterator6.s();!(_step6=_iterator6.n()).done;){var el=_step6.value,_getElementText$split=getElementText(el).split(":").slice(-1),id=babelHelpers.slicedToArray(_getElementText$split,1)[0];if(isUUID.test(id))return id}}catch(err){_iterator6.e(err)}finally{_iterator6.f()}return""},getIdentifier=function(opf){var _opf$getElementById;return getElementText(null!=(_opf$getElementById=opf.getElementById(opf.documentElement.getAttribute("unique-identifier")))?_opf$getElementById:opf.getElementsByTagNameNS(NS.DC,"identifier")[0])},deobfuscate=async function(key,length,blob){var array=new Uint8Array(await blob.slice(0,length).arrayBuffer());length=Math.min(length,array.length);for(var i=0;ibs.length?as:bs).findIndex(function(_,i){return as[i]!==bs[i]}))<0?"":Array(as.length-from).fill("..").concat(bs.slice(from)).join("/")):to,to=encodeURI(from),rootRelative="/"+asset.href,rootRelativeEnc=encodeURI(rootRelative),from=new Set([from,to,rootRelative,rootRelativeEnc]),_iterator12=_createForOfIteratorHelper(from);try{for(_iterator12.s();!(_step12=_iterator12.n()).done;){var url=_step12.value;assetMap.set(url,asset)}}catch(err){_iterator12.e(err)}finally{_iterator12.f()}return Array.from(from)}}).flat().filter(function(x){return x});return urls.length?(urls=new RegExp(urls.map(regexEscape).join("|"),"g"),replaceSeries(str,urls,async function(match){return _this0.loadItem(assetMap.get(match.replace(/^\//,"")),parents.concat(href))})):str}},{key:"unloadItem",value:function(item){this.unref(null==item?void 0:item.href)}},{key:"destroy",value:function(){var _step13,_iterator13=_createForOfIteratorHelper(_classPrivateFieldGet(_cache,this).values());try{for(_iterator13.s();!(_step13=_iterator13.n()).done;){var url=_step13.value;URL.revokeObjectURL(url)}}catch(err){_iterator13.e(err)}finally{_iterator13.f()}}}])}(),_loader=new WeakMap,_encryption=new WeakMap,_EPUB_brand=new WeakSet;_exports.EPUB=function(){return babelHelpers.createClass(function EPUB(_ref0){var loadText=_ref0.loadText,loadBlob=_ref0.loadBlob,getSize=_ref0.getSize,_ref0=_ref0.sha1;babelHelpers.classCallCheck(this,EPUB),_classPrivateMethodInitSpec(this,_EPUB_brand),babelHelpers.defineProperty(this,"parser",new DOMParser),_classPrivateFieldInitSpec(this,_loader,void 0),_classPrivateFieldInitSpec(this,_encryption,void 0),this.loadText=loadText,this.loadBlob=loadBlob,this.getSize=getSize,_classPrivateFieldSet(_encryption,this,new Encryption(function(){var sha1=0=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);ey.index)return 1;if(x.indexy.offset)return 1;if(x.offset=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e img, section > img {\n display: block;\n margin: auto;\n}\n.title h1 {\n text-align: center;\n}\nbody > section > .title, body.notesBodyType > .title {\n margin: 3em 0;\n}\nbody.notesBodyType > section .title h1 {\n text-align: start;\n}\nbody.notesBodyType > section .title {\n margin: 1em 0;\n}\np {\n text-indent: 1em;\n margin: 0;\n}\n:not(p) + p, p:first-child {\n text-indent: 0;\n}\n.poem p {\n text-indent: 0;\n margin: 1em 0;\n}\n.text-author, .date {\n text-align: end;\n}\n.text-author:before {\n content: "—";\n}\ntable {\n border-collapse: collapse;\n}\ntd, th {\n padding: .25em;\n}\na[epub|type~="noteref"] {\n font-size: .75em;\n vertical-align: super;\n}\nbody:not(.notesBodyType) > .title, body:not(.notesBodyType) > .epigraph {\n margin: 3em 0;\n}\n'],{type:"text/css"})),dataID="data-foliate-id";_exports.makeFB2=async function(blob){function $(x){return doc.querySelector(x)}function $$(x){return babelHelpers.toConsumableArray(doc.querySelectorAll(x))}function getPerson(el){var middle,nick=getElementText(el.querySelector("nickname"));return nick||{name:[nick=getElementText(el.querySelector("first-name")),middle=getElementText(el.querySelector("middle-name")),el=getElementText(el.querySelector("last-name"))].filter(function(x){return x}).join(" "),sortAs:el?[el,[nick,middle].filter(function(x){return x}).join(" ")].join(", "):null}}function getDate(el){var _el$getAttribute;return null!=(_el$getAttribute=null==el?void 0:el.getAttribute("value"))?_el$getAttribute:getElementText(el)}var src,book={},doc=await async function(blob){var blob=await blob.arrayBuffer(),str=new TextDecoder("utf-8").decode(blob),parser=new DOMParser,doc=parser.parseFromString(str,MIME.XML),str=doc.xmlEncoding||(null==(str=str.match(/^<\?xml\s+version\s*=\s*["']1.\d+"\s+encoding\s*=\s*["']([A-Za-z0-9._-]*)["']/))?void 0:str[1]);return str&&"utf-8"!==str.toLowerCase()?(str=new TextDecoder(str).decode(blob),parser.parseFromString(str,MIME.XML)):doc}(blob),converter=new FB2Converter(doc),blob=$("title-info annotation"),blob=(book.metadata={title:getElementText($("title-info book-title")),identifier:getElementText($("document-info id")),language:getElementText($("title-info lang")),author:$$("title-info author").map(getPerson),translator:$$("title-info translator").map(getPerson),contributor:$$("document-info author").map(getPerson).concat($$("document-info program-used").map(getElementText)).map(function(x){return Object.assign("string"==typeof x?{name:x}:x,{role:"bkp"})}),publisher:getElementText($("publish-info publisher")),published:getDate($("title-info date")),modified:getDate($("document-info date")),description:blob?converter.convert(blob,{annotation:["div",SECTION]}).innerHTML:null,subject:$$("title-info genre").map(getElementText)},$("coverpage image")?(src=converter.getImageSrc($("coverpage image")),book.getCover=function(){return fetch(src).then(function(res){return res.blob()})}):book.getCover=function(){return null},Array.from(doc.querySelectorAll("body"),function(body){body=converter.convert(body,{body:["body",BODY]});return[Array.from(body.children,function(el){var ids=[el].concat(babelHelpers.toConsumableArray(el.querySelectorAll("[id]"))).map(function(el){return el.id});return{el:el,ids:ids}}),body]})),urls=[],blob=blob[0][0].map(function(_ref){var el=_ref.el;return{ids:_ref.ids,titles:Array.from(el.querySelectorAll(":scope > section > .title"),function(el,index){return el.setAttribute(dataID,index),{title:getElementText(el),index:index}}),el:el}}).concat(blob.slice(1).map(function(_ref2){var _ref2=babelHelpers.slicedToArray(_ref2,2),sections=_ref2[0],_ref2=_ref2[1],sections=sections.map(function(s){return s.ids}).flat();return _ref2.classList.add("notesBodyType"),{ids:sections,el:_ref2,linear:"no"}})).map(function(_ref4){var ids=_ref4.ids,titles=_ref4.titles,el=_ref4.el,_ref4=_ref4.linear,str=(html=el.outerHTML,'\n\n \n ').concat(html,"\n")),html=new Blob([str],{type:MIME.XHTML}),url=URL.createObjectURL(html);return urls.push(url),{ids:ids,title:normalizeWhitespace(null!=(ids=null==(ids=el.querySelector(".title, .subtitle, p"))?void 0:ids.textContent)?ids:el.classList.contains("title")?el.textContent:""),titles:titles,load:function(){return url},createDocument:function(){return(new DOMParser).parseFromString(str,MIME.XHTML)},size:html.size-Array.from(el.querySelectorAll("[src]"),function(el){return null!=(el=null==(el=el.getAttribute("src"))?void 0:el.length)?el:0}).reduce(function(a,b){return a+b},0),linear:_ref4}}),idMap=new Map;return book.sections=blob.map(function(section,index){var _step3,ids=section.ids,load=section.load,createDocument=section.createDocument,size=section.size,section=section.linear,_iterator3=_createForOfIteratorHelper(ids);try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var id=_step3.value;id&&idMap.set(id,index)}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}return{id:index,load:load,createDocument:createDocument,size:size,linear:section}}),book.toc=blob.map(function(_ref5,index){var title=_ref5.title,_ref5=_ref5.titles,id=index.toString();return{label:title,href:id,subitems:null!=_ref5&&_ref5.length?_ref5.map(function(_ref6){var title=_ref6.title,_ref6=_ref6.index;return{label:title,href:"".concat(id,"#").concat(_ref6)}}):null}}).filter(function(item){return item}),book.resolveHref=function(href){var href=href.split("#"),href=babelHelpers.slicedToArray(href,2),a=href[0],b=href[1];return a?{index:Number(a),anchor:function(doc){return doc.querySelector("[".concat(dataID,'="').concat(b,'"]'))}}:{index:idMap.get(b),anchor:function(doc){return doc.getElementById(b)}}},book.splitTOCHref=function(href){return null!=(href=null==href||null==(href=href.split("#"))?void 0:href.map(function(x){return Number(x)}))?href:[]},book.getTOCFragment=function(doc,id){return doc.querySelector("[".concat(dataID,'="').concat(id,'"]'))},book.destroy=function(){for(var _i=0,_urls=urls;_i<_urls.length;_i++)URL.revokeObjectURL(_urls[_i])},book}}); \ No newline at end of file diff --git a/modules/ebookplayer/foliate/fixed-layout.js b/modules/ebookplayer/foliate/fixed-layout.js new file mode 100644 index 0000000..2f05da7 --- /dev/null +++ b/modules/ebookplayer/foliate/fixed-layout.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function(){return!!t})()}function _classPrivateFieldInitSpec(e,t,a){_checkPrivateRedeclaration(e,t),t.set(e,a)}function _checkPrivateRedeclaration(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function _classPrivateFieldSet(s,a,r){s.set(_assertClassBrand(s,a),r)}function _classPrivateFieldGet(s,a){return s.get(_assertClassBrand(s,a))}function _assertClassBrand(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.FixedLayout=void 0;function parseViewport(str){return null==str||null==(str=str.split(/[,;\s]/))||null==(str=str.filter(function(x){return x}))?void 0:str.map(function(x){return x.split("=").map(function(x){return x.trim()})})}var getViewport=function(doc,viewport){var _doc$documentElement$2;return"svg"===doc.documentElement.localName?(_doc$documentElement$2=null!=(_doc$documentElement$2=null==(_doc$documentElement$2=doc.documentElement.getAttribute("viewBox"))?void 0:_doc$documentElement$2.split(/\s/))?_doc$documentElement$2:[],{width:(_doc$documentElement$2=babelHelpers.slicedToArray(_doc$documentElement$2,4))[2],height:_doc$documentElement$2[3]}):(_doc$documentElement$2=parseViewport(null==(_doc$documentElement$2=doc.querySelector('meta[name="viewport"]'))?void 0:_doc$documentElement$2.getAttribute("content")))?Object.fromEntries(_doc$documentElement$2):"string"==typeof viewport?parseViewport(viewport):null!=viewport&&viewport.width&&viewport.height?viewport:(_doc$documentElement$2=doc.querySelector("img"))?{width:_doc$documentElement$2.naturalWidth,height:_doc$documentElement$2.naturalHeight}:(console.warn(new Error("Missing viewport properties")),{width:1e3,height:2e3})},_root=new WeakMap,_observer=new WeakMap,_spreads=new WeakMap,_index=new WeakMap,_rtl=new WeakMap,_oddPages=new WeakMap,_portrait=new WeakMap,_left=new WeakMap,_right=new WeakMap,_center=new WeakMap,_side=new WeakMap,_zoom=new WeakMap,_FixedLayout_brand=new WeakSet,_exports=_exports.FixedLayout=function(_HTMLElement){function FixedLayout(){babelHelpers.classCallCheck(this,FixedLayout),t=this,o=FixedLayout,o=babelHelpers.getPrototypeOf(o),function(e,a){_checkPrivateRedeclaration(e,a),a.add(e)}(_this=babelHelpers.possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],babelHelpers.getPrototypeOf(t).constructor):o.apply(t,e)),_FixedLayout_brand),_classPrivateFieldInitSpec(_this,_root,_this.attachShadow({mode:"closed"})),_classPrivateFieldInitSpec(_this,_observer,new ResizeObserver(function(){return _assertClassBrand(_FixedLayout_brand,_this,_render).call(_this)})),_classPrivateFieldInitSpec(_this,_spreads,void 0),_classPrivateFieldInitSpec(_this,_index,-1),babelHelpers.defineProperty(_this,"defaultViewport",void 0),babelHelpers.defineProperty(_this,"spread",void 0),_classPrivateFieldInitSpec(_this,_rtl,void 0),_classPrivateFieldInitSpec(_this,_oddPages,void 0),_classPrivateFieldInitSpec(_this,_portrait,!1),_classPrivateFieldInitSpec(_this,_left,void 0),_classPrivateFieldInitSpec(_this,_right,void 0),_classPrivateFieldInitSpec(_this,_center,void 0),_classPrivateFieldInitSpec(_this,_side,void 0),_classPrivateFieldInitSpec(_this,_zoom,void 0);var _this,t,e,o=new CSSStyleSheet;return _classPrivateFieldGet(_root,_this).adoptedStyleSheets=[o],o.replaceSync(":host {\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: auto;\n }"),_classPrivateFieldSet(_oddPages,_this,_this.getAttribute("odd-pages")),_classPrivateFieldGet(_observer,_this).observe(_this),_this}return babelHelpers.inherits(FixedLayout,_HTMLElement),babelHelpers.createClass(FixedLayout,[{key:"attributeChangedCallback",value:function(name,_,value){switch(name){case"zoom":_classPrivateFieldSet(_zoom,this,"fit-width"!==value&&"fit-page"!==value?parseFloat(value):value),_assertClassBrand(_FixedLayout_brand,this,_render).call(this);break;case"spread":this.spread=value,this.respread();break;case"odd-pages":_classPrivateFieldSet(_oddPages,this,value),_assertClassBrand(_FixedLayout_brand,this,_determineOddPages).call(this),this.respread()}}},{key:"respread",value:function(){_assertClassBrand(_FixedLayout_brand,this,_respread).call(this),this.goToSpread(_classPrivateFieldGet(_index,this),_classPrivateFieldGet(_side,this),"respread")}},{key:"open",value:function(book){var rendition=(this.book=book).rendition;this.spread=this.getAttribute("spread"),this.spread&&"auto"!==this.spread||(this.spread=null==rendition?void 0:rendition.spread),this.defaultViewport=null==rendition?void 0:rendition.viewport,_classPrivateFieldSet(_rtl,this,"rtl"===book.dir),_assertClassBrand(_FixedLayout_brand,this,_determineOddPages).call(this),_assertClassBrand(_FixedLayout_brand,this,_respread).call(this)}},{key:"index",get:function(){var spread=_classPrivateFieldGet(_spreads,this)[_classPrivateFieldGet(_index,this)],_spread$center=null!=(_spread$center=null==spread?void 0:spread.center)?_spread$center:"left"===_classPrivateFieldGet(_side,this)?null!=(_spread$center=spread.left)?_spread$center:spread.right:null!=(_spread$center=spread.right)?_spread$center:spread.left;return this.book.sections.indexOf(_spread$center)}},{key:"getSpreadOf",value:function(section){for(var spreads=_classPrivateFieldGet(_spreads,this),index=0;index_classPrivateFieldGet(_spreads,this).length-1||(index===_classPrivateFieldGet(_index,this)&&"respread"!==reason?_assertClassBrand(_FixedLayout_brand,this,_render).call(this,side):(_classPrivateFieldSet(_index,this,index),(index=_classPrivateFieldGet(_spreads,this)[index]).center?(_index2=this.book.sections.indexOf(index.center),_spread$center2=await(null==(_spread$center2=index.center)||null==_spread$center2.load?void 0:_spread$center2.load()),await _assertClassBrand(_FixedLayout_brand,this,_showSpread).call(this,{center:{index:_index2,src:_spread$center2}})):(_index2=this.book.sections.indexOf(index.left),_spread$center2=this.book.sections.indexOf(index.right),_index2={index:_index2,src:await(null==(_index2=index.left)||null==_index2.load?void 0:_index2.load())},index={index:_spread$center2,src:await(null==(_spread$center2=index.right)||null==_spread$center2.load?void 0:_spread$center2.load())},await _assertClassBrand(_FixedLayout_brand,this,_showSpread).call(this,{left:_index2,right:index,side:side})),_assertClassBrand(_FixedLayout_brand,this,_reportLocation).call(this,reason)))}},{key:"select",value:async function(target){await this.goTo(target)}},{key:"goTo",value:async function(target){var book=this.book,target=await target,book=book.sections[target.index];book&&(book=(target=this.getSpreadOf(book)).index,target=target.side,await this.goToSpread(book,target))}},{key:"next",value:async function(){if(!(_classPrivateFieldGet(_rtl,this)?_assertClassBrand(_FixedLayout_brand,this,_goLeft):_assertClassBrand(_FixedLayout_brand,this,_goRight)).call(this))return this.goToSpread(_classPrivateFieldGet(_index,this)+1,_classPrivateFieldGet(_rtl,this)?"right":"left","page")}},{key:"prev",value:async function(){if(!(_classPrivateFieldGet(_rtl,this)?_assertClassBrand(_FixedLayout_brand,this,_goRight):_assertClassBrand(_FixedLayout_brand,this,_goLeft)).call(this))return this.goToSpread(_classPrivateFieldGet(_index,this)-1,_classPrivateFieldGet(_rtl,this)?"left":"right","page")}},{key:"getContents",value:function(){return Array.from(_classPrivateFieldGet(_root,this).querySelectorAll("iframe"),function(frame){return{doc:frame.contentDocument}})}},{key:"getRenderDetails",value:function(){var _classPrivateFieldGet2;return{leftWidth:null==(_classPrivateFieldGet2=_classPrivateFieldGet(_left,this))?void 0:_classPrivateFieldGet2.element.clientWidth,rightWidth:null==(_classPrivateFieldGet2=_classPrivateFieldGet(_right,this))?void 0:_classPrivateFieldGet2.element.clientWidth,centerWidth:null==(_classPrivateFieldGet2=_classPrivateFieldGet(_center,this))?void 0:_classPrivateFieldGet2.element.clientWidth,height:(null==(_classPrivateFieldGet2=_classPrivateFieldGet(_left,this))?void 0:_classPrivateFieldGet2.element.clientHeight)||(null==(_classPrivateFieldGet2=_classPrivateFieldGet(_right,this))?void 0:_classPrivateFieldGet2.element.clientHeight)||(null==(_classPrivateFieldGet2=_classPrivateFieldGet(_center,this))?void 0:_classPrivateFieldGet2.element.clientHeight),side:_classPrivateFieldGet(_side,this)}}},{key:"destroy",value:function(){_classPrivateFieldGet(_observer,this).unobserve(this)}}])}(babelHelpers.wrapNativeSuper(HTMLElement));async function _createFrame(_ref3){var _this2=this,index=_ref3.index,_ref3=_ref3.src,srcOptionIsString="string"==typeof _ref3,src=srcOptionIsString?_ref3:null==_ref3?void 0:_ref3.src,onZoom=srcOptionIsString?null:null==_ref3?void 0:_ref3.onZoom,element=document.createElement("div"),iframe=(element.setAttribute("dir","ltr"),document.createElement("iframe"));return element.append(iframe),Object.assign(iframe.style,{border:"0",display:"none",overflow:"hidden"}),iframe.setAttribute("sandbox","allow-same-origin allow-scripts"),iframe.setAttribute("scrolling","no"),iframe.setAttribute("part","filter"),_classPrivateFieldGet(_root,this).append(element),src?new Promise(function(resolve){iframe.addEventListener("load",function(){var doc=iframe.contentDocument,doc=(_this2.dispatchEvent(new CustomEvent("load",{detail:{doc:doc,index:index}})),getViewport(doc,_this2.defaultViewport)),width=doc.width,doc=doc.height;resolve({element:element,iframe:iframe,width:parseFloat(width),height:parseFloat(doc),onZoom:onZoom})},{once:!0}),iframe.src=src}):{blank:!0,element:element,iframe:iframe}}function _render(){var _left$width,_classPrivateFieldGet8,_classPrivateFieldGet9,target,width,portrait,blankWidth,blankHeight,scale,side=0=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e>>3,length=3+(7&bytes),j=0;j>>8]}),table2=[null].concat(Array.from({length:32},function(_,i){return offset2+8*i}).map(function(offset){return[getUint(huffRecord.slice(offset,offset+4)),getUint(huffRecord.slice(offset+4,offset+8))]})),dictionary=[],i=1;i>>24],3),found=_table[0],codeLength=_table[1],_table=_table[2];if(!found){for(;bits>>>32-codeLengthbitLength)break;var found=_table-(bits>>>32-codeLength),_table=babelHelpers.slicedToArray(dictionary[found],2),result=_table[0];_table[1]||(result=decompress(result),dictionary[found]=[result,!0]),output=concatTypedArray(output,result)}return output}return decompress}async function getIndexData(indxIndex,loadRecord){var indxRecord=await loadRecord(indxIndex),indx=getStruct(INDX_HEADER,indxRecord);if("INDX"!==indx.magic)throw new Error("Invalid INDX record");var decoder=getDecoder(indx.encoding),tagxBuffer=indxRecord.slice(indx.length),tagx=getStruct(TAGX_HEADER,tagxBuffer);if("TAGX"!==tagx.magic)throw new Error("Invalid TAGX section");for(var indxRecord=(tagx.length-12)/4,tagTable=Array.from({length:indxRecord},function(_,i){return new Uint8Array(tagxBuffer.slice(12+4*i,12+4*i+4))}),cncx={},cncxRecordOffset=0,i=0;i>countUnsetEnd(mask),null,_numValues]))}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}for(var tagMap={},_i4=0,_tags=tags;_i4<_tags.length;_i4++){var _tags$_i=babelHelpers.slicedToArray(_tags[_i4],4),tag=_tags$_i[0],valueCount=_tags$_i[1],valueBytes=_tags$_i[2],numValues=_tags$_i[3],values=[];if(null!=valueCount)for(var _i5=0;_i5>>0;if(length++,128&byte)break}}catch(err){_iterator.e(err)}finally{_iterator.f()}return{value:value,length:length}},countBitsSet=function(x){for(var count=0;0>=1)1==(1&x)&&count++;return count},countUnsetEnd=function(x){for(var count=0;0==(1&x);)x>>=1,count++;return count},read32Bits=function(byteArray,from){for(var end=from+32,endByte=end>>3,bits=0n,i=from>>3;i<=endByte;i++)var _byteArray$i,bits=bits<<8n|BigInt(null!=(_byteArray$i=byteArray[i])?_byteArray$i:0);return bits>>8n-BigInt(7&end)&0xffffffffn},_file=(_exports.isMOBI=async function(file){return"BOOKMOBI"===getString(await file.slice(60,68).arrayBuffer())},new WeakMap),_offsets=new WeakMap,PDB=function(){return babelHelpers.createClass(function PDB(){babelHelpers.classCallCheck(this,PDB),_classPrivateFieldInitSpec(this,_file,void 0),_classPrivateFieldInitSpec(this,_offsets,void 0),babelHelpers.defineProperty(this,"pdb",void 0)},[{key:"open",value:async function(file){_classPrivateFieldSet(_file,this,file);var pdb=getStruct(PDB_HEADER,await file.slice(0,78).arrayBuffer()),buffer=(this.pdb=pdb,await file.slice(78,78+8*pdb.numRecords).arrayBuffer());_classPrivateFieldSet(_offsets,this,Array.from({length:pdb.numRecords},function(_,i){return getUint(buffer.slice(8*i,8*i+4))}).map(function(x,i,a){return[x,a[i+1]]}))}},{key:"loadRecord",value:function(index){var _classPrivateFieldGet2,index=_classPrivateFieldGet(_offsets,this)[index];if(index)return(_classPrivateFieldGet2=_classPrivateFieldGet(_file,this)).slice.apply(_classPrivateFieldGet2,babelHelpers.toConsumableArray(index)).arrayBuffer();throw new RangeError("Record index out of bounds")}},{key:"loadMagic",value:async function(index){index=_classPrivateFieldGet(_offsets,this)[index][0];return getString(await _classPrivateFieldGet(_file,this).slice(index,index+4).arrayBuffer())}}])}(),_start=new WeakMap,_resourceStart=new WeakMap,_decoder=new WeakMap,_encoder=new WeakMap,_decompress=new WeakMap,_removeTrailingEntries=new WeakMap,_MOBI_brand=new WeakSet;_exports.MOBI=function(){function MOBI(_ref4){var t,o,e,_ref4=_ref4.unzlib;return babelHelpers.classCallCheck(this,MOBI),t=this,o=MOBI,o=babelHelpers.getPrototypeOf(o),_classPrivateMethodInitSpec(o=babelHelpers.possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],babelHelpers.getPrototypeOf(t).constructor):o.apply(t,e)),_MOBI_brand),_classPrivateFieldInitSpec(o,_start,0),_classPrivateFieldInitSpec(o,_resourceStart,void 0),_classPrivateFieldInitSpec(o,_decoder,void 0),_classPrivateFieldInitSpec(o,_encoder,void 0),_classPrivateFieldInitSpec(o,_decompress,void 0),_classPrivateFieldInitSpec(o,_removeTrailingEntries,void 0),o.unzlib=_ref4,o}return babelHelpers.inherits(MOBI,PDB),babelHelpers.createClass(MOBI,[{key:"open",value:async function(file){await _superPropGet(MOBI,"open",this,3)([file]),this.headers=_assertClassBrand(_MOBI_brand,this,_getHeaders).call(this,await _superPropGet(MOBI,"loadRecord",this,3)([0])),_classPrivateFieldSet(_resourceStart,this,this.headers.mobi.resourceStart);file=8<=this.headers.mobi.version;if(!file){var _this$headers$exth=null==(_this$headers$exth=this.headers.exth)?void 0:_this$headers$exth.boundary;if(_this$headers$exth<4294967295)try{this.headers=_assertClassBrand(_MOBI_brand,this,_getHeaders).call(this,await _superPropGet(MOBI,"loadRecord",this,3)([_this$headers$exth])),_classPrivateFieldSet(_start,this,_this$headers$exth),file=!0}catch(e){console.warn(e),console.warn("Failed to open KF8; falling back to MOBI")}}return await _assertClassBrand(_MOBI_brand,this,_setup).call(this),new(file?KF8:MOBI6)(this).init()}},{key:"decode",value:function(){var _classPrivateFieldGet3;return(_classPrivateFieldGet3=_classPrivateFieldGet(_decoder,this)).decode.apply(_classPrivateFieldGet3,arguments)}},{key:"encode",value:function(){var _classPrivateFieldGet4;return(_classPrivateFieldGet4=_classPrivateFieldGet(_encoder,this)).encode.apply(_classPrivateFieldGet4,arguments)}},{key:"loadRecord",value:function(index){return _superPropGet(MOBI,"loadRecord",this,3)([_classPrivateFieldGet(_start,this)+index])}},{key:"loadMagic",value:function(index){return _superPropGet(MOBI,"loadMagic",this,3)([_classPrivateFieldGet(_start,this)+index])}},{key:"loadText",value:function(index){return this.loadRecord(index+1).then(function(buf){return new Uint8Array(buf)}).then(_classPrivateFieldGet(_removeTrailingEntries,this)).then(_classPrivateFieldGet(_decompress,this))}},{key:"loadResource",value:async function(index){var index=await _superPropGet(MOBI,"loadRecord",this,3)([_classPrivateFieldGet(_resourceStart,this)+index]),magic=getString(index.slice(0,4));return"FONT"===magic?async function(buf,unzlib){var _getStruct3=getStruct(FONT_HEADER,buf),flags=_getStruct3.flags,dataStart=_getStruct3.dataStart,keyLength=_getStruct3.keyLength,_getStruct3=_getStruct3.keyStart,array=new Uint8Array(buf.slice(dataStart));if(2&flags)for(var dataStart=16===keyLength?1024:1040,key=new Uint8Array(buf.slice(_getStruct3,_getStruct3+keyLength)),length=Math.min(dataStart,array.length),i=0;i>2])?titleLength:null==titleOffset?void 0:titleOffset[0],64&mobi.exthFlag?function(buf,encoding){var _getStruct2=getStruct(EXTH_HEADER,buf),magic=_getStruct2.magic,count=_getStruct2.count;if("EXTH"!==magic)throw new Error("Invalid EXTH header");for(var decoder=getDecoder(encoding),results={},offset=12,i=0;i>>1);_classPrivateFieldSet(_removeTrailingEntries,this,function(array){for(var _length5,i=0;i]*>/gi,fileposRegex=/<[^<>]+filepos=['"]{0,1}(\d+)[^<>]*>/gi,_resourceCache=new WeakMap,_textCache=new WeakMap,_cache=new WeakMap,_sections=new WeakMap,_fileposList=new WeakMap,_type=new WeakMap,MOBI6=function(){return babelHelpers.createClass(function MOBI6(mobi){babelHelpers.classCallCheck(this,MOBI6),babelHelpers.defineProperty(this,"parser",new DOMParser),babelHelpers.defineProperty(this,"serializer",new XMLSerializer),_classPrivateFieldInitSpec(this,_resourceCache,new Map),_classPrivateFieldInitSpec(this,_textCache,new Map),_classPrivateFieldInitSpec(this,_cache,new Map),_classPrivateFieldInitSpec(this,_sections,void 0),_classPrivateFieldInitSpec(this,_fileposList,[]),_classPrivateFieldInitSpec(this,_type,MIME.HTML),this.mobi=mobi},[{key:"init",value:async function(){for(var _this2=this,array=new Uint8Array,i=0;i=section.start&&_ref6'));arr=concatTypedArray3(arr,filepos,raw.subarray(_ref7,null==i?void 0:i.offset))})),str=this.mobi.decode(arr).replaceAll(mbpPagebreakRegex,""),_classPrivateFieldGet(_textCache,this).set(section,str),str)}},{key:"createDocument",value:async function(section){section=await this.loadText(section);return this.parser.parseFromString(section,_classPrivateFieldGet(_type,this))}},{key:"loadSection",value:async function(section){var style,doc;return _classPrivateFieldGet(_cache,this).has(section)?_classPrivateFieldGet(_cache,this).get(section):(style=(doc=await this.createDocument(section)).createElement("style"),doc.head.append(style),style.append(doc.createTextNode("blockquote {\n margin-block-start: 0;\n margin-block-end: 0;\n margin-inline-start: 1em;\n margin-inline-end: 0;\n }")),await this.replaceResources(doc),style=this.serializer.serializeToString(doc),doc=URL.createObjectURL(new Blob([style],{type:_classPrivateFieldGet(_type,this)})),_classPrivateFieldGet(_cache,this).set(section,doc),doc)}},{key:"resolveHref",value:function(href){var filepos=href.match(/filepos:(.*)/)[1],number=Number(filepos);return{index:_classPrivateFieldGet(_sections,this).findIndex(function(section){return section.end>number}),anchor:function(doc){return doc.getElementById("filepos".concat(filepos))}}}},{key:"splitTOCHref",value:function(href){var href=href.match(/filepos:(.*)/)[1],number=Number(href);return[_classPrivateFieldGet(_sections,this).findIndex(function(section){return section.end>number}),"filepos".concat(href)]}},{key:"getTOCFragment",value:function(doc,id){return doc.getElementById(id)}},{key:"isExternal",value:function(uri){return/^(?!blob|filepos)\w+:/i.test(uri)}},{key:"destroy",value:function(){var _step8,_iterator8=_createForOfIteratorHelper(_classPrivateFieldGet(_resourceCache,this).values());try{for(_iterator8.s();!(_step8=_iterator8.n()).done;){var url=_step8.value;URL.revokeObjectURL(url)}}catch(err){_iterator8.e(err)}finally{_iterator8.f()}var _step9,_iterator9=_createForOfIteratorHelper(_classPrivateFieldGet(_cache,this).values());try{for(_iterator9.s();!(_step9=_iterator9.n()).done;){var _url=_step9.value;URL.revokeObjectURL(_url)}}catch(err){_iterator9.e(err)}finally{_iterator9.f()}}}])}(),kindleResourceRegex=/kindle:(flow|embed):(\w+)(?:\?mime=(\w+\/[-+.\w]+))?/,kindlePosRegex=/kindle:pos:fid:(\w+):off:(\w+)/,_cache2=new WeakMap,_fragmentOffsets=new WeakMap,_fragmentSelectors=new WeakMap,_tables=new WeakMap,_sections2=new WeakMap,_fullRawLength=new WeakMap,_rawHead=new WeakMap,_rawTail=new WeakMap,_lastLoadedHead=new WeakMap,_lastLoadedTail=new WeakMap,_type2=new WeakMap,_inlineMap=new WeakMap,_KF8_brand=new WeakSet,KF8=function(){return babelHelpers.createClass(function KF8(mobi){babelHelpers.classCallCheck(this,KF8),_classPrivateMethodInitSpec(this,_KF8_brand),babelHelpers.defineProperty(this,"parser",new DOMParser),babelHelpers.defineProperty(this,"serializer",new XMLSerializer),_classPrivateFieldInitSpec(this,_cache2,new Map),_classPrivateFieldInitSpec(this,_fragmentOffsets,new Map),_classPrivateFieldInitSpec(this,_fragmentSelectors,new Map),_classPrivateFieldInitSpec(this,_tables,{}),_classPrivateFieldInitSpec(this,_sections2,void 0),_classPrivateFieldInitSpec(this,_fullRawLength,void 0),_classPrivateFieldInitSpec(this,_rawHead,new Uint8Array),_classPrivateFieldInitSpec(this,_rawTail,new Uint8Array),_classPrivateFieldInitSpec(this,_lastLoadedHead,-1),_classPrivateFieldInitSpec(this,_lastLoadedTail,-1),_classPrivateFieldInitSpec(this,_type2,MIME.XHTML),_classPrivateFieldInitSpec(this,_inlineMap,new Map),this.mobi=mobi},[{key:"init",value:async function(){var _this4=this,loadRecord=this.mobi.loadRecord.bind(this.mobi),kf8=this.mobi.headers.kf8;try{var fdstBuffer=await loadRecord(kf8.fdst),fdst=getStruct(FDST_HEADER,fdstBuffer);if("FDST"!==fdst.magic)throw new Error("Missing FDST record");var fdstTable=Array.from({length:fdst.numEntries},function(_,i){return 12+8*i}).map(function(offset){return[getUint(fdstBuffer.slice(offset,offset+4)),getUint(fdstBuffer.slice(offset+4,offset+8))]});_classPrivateFieldGet(_tables,this).fdstTable=fdstTable,_classPrivateFieldSet(_fullRawLength,this,fdstTable[fdstTable.length-1][1])}catch(_unused3){}var fdst=(await getIndexData(kf8.skel,loadRecord)).table.map(function(_ref8,index){var name=_ref8.name,_ref8=_ref8.tagMap;return{index:index,name:name,numFrag:_ref8[1][0],offset:_ref8[6][0],length:_ref8[6][1]}}),fragData=await getIndexData(kf8.frag,loadRecord),fragTable=fragData.table.map(function(_ref9){var name=_ref9.name,_ref9=_ref9.tagMap;return{insertOffset:parseInt(name),selector:fragData.cncx[_ref9[2][0]],index:_ref9[4][0],offset:_ref9[6][0],length:_ref9[6][1]}}),fdstTable=(_classPrivateFieldGet(_tables,this).skelTable=fdst,_classPrivateFieldGet(_tables,this).fragTable=fragTable,_classPrivateFieldSet(_sections2,this,fdst.reduce(function(arr,skel){var last=arr[arr.length-1],_last$fragEnd=null!=(_last$fragEnd=null==last?void 0:last.fragEnd)?_last$fragEnd:0,fragEnd=_last$fragEnd+skel.numFrag,_last$fragEnd=fragTable.slice(_last$fragEnd,fragEnd),length=skel.length+_last$fragEnd.map(function(f){return f.length}).reduce(function(a,b){return a+b}),last=(null!=(last=null==last?void 0:last.totalLength)?last:0)+length;return arr.concat({skel:skel,frags:_last$fragEnd,fragEnd:fragEnd,length:length,totalLength:last})},[])),await this.getResourcesByMagic(["RESC","PAGE"])),pageSpreads=new Map;if(fdstTable.RESC){var _step1,kf8=await this.mobi.loadRecord(fdstTable.RESC),loadRecord=this.mobi.decode(kf8.slice(16)).replace(/\0/g,""),fdst=loadRecord.search(/\?>/),fdstTable="".concat(loadRecord.slice(fdst),""),_iterator1=_createForOfIteratorHelper(this.parser.parseFromString(fdstTable,MIME.XML).querySelectorAll("spine > itemref"));try{for(_iterator1.s();!(_step1=_iterator1.n()).done;){var _$itemref$getAttribut,_$itemref$getAttribut2,$itemref=_step1.value,i=parseInt($itemref.getAttribute("skelid"));pageSpreads.set(i,function(properties){var _step0,_iterator0=_createForOfIteratorHelper(properties);try{for(_iterator0.s();!(_step0=_iterator0.n()).done;){var p=_step0.value;if("page-spread-left"===p||"rendition:page-spread-left"===p)return"left";if("page-spread-right"===p||"rendition:page-spread-right"===p)return"right";if("rendition:page-spread-center"===p)return"center"}}catch(err){_iterator0.e(err)}finally{_iterator0.f()}}(null!=(_$itemref$getAttribut=null==(_$itemref$getAttribut2=$itemref.getAttribute("properties"))?void 0:_$itemref$getAttribut2.split(" "))?_$itemref$getAttribut:[]))}}catch(err){_iterator1.e(err)}finally{_iterator1.f()}}this.sections=_classPrivateFieldGet(_sections2,this).map(function(section,index){return section.frags.length?{id:index,load:function(){return _this4.loadSection(section)},createDocument:function(){return _this4.createDocument(section)},size:section.length,pageSpread:pageSpreads.get(index)}:{linear:"no"}});try{var ncx=await this.mobi.getNCX(),map=function(_ref0){var label=_ref0.label,pos=_ref0.pos,_ref0=_ref0.children,pos=babelHelpers.slicedToArray(pos,2),fid=pos[0],pos=pos[1],href=makePosURI(fid,pos),arr=_classPrivateFieldGet(_fragmentOffsets,_this4).get(fid);return arr?arr.push(pos):_classPrivateFieldGet(_fragmentOffsets,_this4).set(fid,[pos]),{label:unescapeHTML(label),href:href,subitems:null==_ref0?void 0:_ref0.map(map)}};this.toc=null==ncx?void 0:ncx.map(map),this.landmarks=await this.getGuide()}catch(e){console.warn(e)}kf8=this.mobi.headers.exth;return this.dir=kf8.pageProgressionDirection,this.rendition={layout:"true"===kf8.fixedLayout?"pre-paginated":"reflowable",viewport:Object.fromEntries(null!=(fdst=null==(loadRecord=kf8.originalResolution)||null==(loadRecord=loadRecord.split("x"))||null==(loadRecord=loadRecord.slice(0,2))?void 0:loadRecord.map(function(x,i){return[i?"height":"width",x]}))?fdst:[])},this.metadata=this.mobi.getMetadata(),this.getCover=this.mobi.getCover.bind(this.mobi),this}},{key:"getResourcesByMagic",value:async function(keys){for(var _this5=this,results={},start=this.mobi.headers.kf8.resourceStart,end=this.mobi.pdb.numRecords,i=start;istart;){var _this$lastLoadedTail=this.mobi.headers.palmdoc.numTextRecords-1-_classPrivateFieldSet(_lastLoadedTail,this,(_this$lastLoadedTail=_classPrivateFieldGet(_lastLoadedTail,this),++_this$lastLoadedTail)),_this$lastLoadedTail=await this.mobi.loadText(_this$lastLoadedTail);_classPrivateFieldSet(_rawTail,this,concatTypedArray(_this$lastLoadedTail,_classPrivateFieldGet(_rawTail,this)))}distanceHead=_classPrivateFieldGet(_fullRawLength,this)-_classPrivateFieldGet(_rawTail,this).length;return _classPrivateFieldGet(_rawTail,this).slice(start-distanceHead,end-distanceHead)}},{key:"loadFlow",value:function(index){if(index<4294967295)return this.loadRaw.apply(this,babelHelpers.toConsumableArray(_classPrivateFieldGet(_tables,this).fdstTable[index]))}},{key:"loadText",value:async function(section){var _step10,skel=section.skel,frags=section.frags,section=section.length,raw=await this.loadRaw(skel.offset,skel.offset+section),skeleton=raw.slice(0,skel.length),_iterator10=_createForOfIteratorHelper(frags);try{for(_iterator10.s();!(_step10=_iterator10.n()).done;){var frag=_step10.value,insertOffset=frag.insertOffset-skel.offset,offset=skel.length+frag.offset,fragRaw=raw.slice(offset,offset+frag.length),skeleton=concatTypedArray3(skeleton.slice(0,insertOffset),fragRaw,skeleton.slice(insertOffset)),offsets=_classPrivateFieldGet(_fragmentOffsets,this).get(frag.index);if(offsets){var _step11,_iterator11=_createForOfIteratorHelper(offsets);try{for(_iterator11.s();!(_step11=_iterator11.n()).done;){var _offset2=_step11.value,str=this.mobi.decode(fragRaw).slice(_offset2),selector=getFragmentSelector(str);_assertClassBrand(_KF8_brand,this,_setFragmentSelector).call(this,frag.index,_offset2,selector)}}catch(err){_iterator11.e(err)}finally{_iterator11.f()}}}}catch(err){_iterator10.e(err)}finally{_iterator10.f()}return this.mobi.decode(skeleton)}},{key:"createDocument",value:async function(section){section=await this.loadText(section);return this.parser.parseFromString(section,_classPrivateFieldGet(_type2,this))}},{key:"loadSection",value:async function(section){if(_classPrivateFieldGet(_cache2,this).has(section))return _classPrivateFieldGet(_cache2,this).get(section);var _step12,str=await this.loadText(section),str=await this.replaceResources(str),doc=this.parser.parseFromString(str,_classPrivateFieldGet(_type2,this)),_iterator12=(!doc.querySelector("parsererror")&&null!=(_doc$documentElement=doc.documentElement)&&_doc$documentElement.namespaceURI||(_classPrivateFieldSet(_type2,this,MIME.HTML),doc=this.parser.parseFromString(str,_classPrivateFieldGet(_type2,this))),_createForOfIteratorHelper(_classPrivateFieldGet(_inlineMap,this)));try{for(_iterator12.s();!(_step12=_iterator12.n()).done;){var _step13,_step12$value=babelHelpers.slicedToArray(_step12.value,2),_url2=_step12$value[0],node=_step12$value[1],_iterator13=_createForOfIteratorHelper(doc.querySelectorAll('img[src="'.concat(_url2,'"]')));try{for(_iterator13.s();!(_step13=_iterator13.n()).done;)_step13.value.replaceWith(node)}catch(err){_iterator13.e(err)}finally{_iterator13.f()}}}catch(err){_iterator12.e(err)}finally{_iterator12.f()}var _doc$documentElement=URL.createObjectURL(new Blob([this.serializer.serializeToString(doc)],{type:_classPrivateFieldGet(_type2,this)}));return _classPrivateFieldGet(_cache2,this).set(section,_doc$documentElement),_doc$documentElement}},{key:"getIndexByFID",value:function(fid){return _classPrivateFieldGet(_sections2,this).findIndex(function(section){return section.frags.some(function(frag){return frag.index===fid})})}},{key:"resolveHref",value:async function(href){var saved,skel,_classPrivateFieldGet5,selector,href=parsePosURI(href),fid=href.fid,href=href.off,index=this.getIndexByFID(fid);if(!(index<0))return(saved=null==(_classPrivateFieldGet5=_classPrivateFieldGet(_fragmentSelectors,this).get(fid))?void 0:_classPrivateFieldGet5.get(href))?{index:index,anchor:function(doc){return doc.querySelector(saved)}}:(skel=(_classPrivateFieldGet5=_classPrivateFieldGet(_sections2,this)[index]).skel,_classPrivateFieldGet5=_classPrivateFieldGet5.frags.find(function(frag){return frag.index===fid}),skel=skel.offset+skel.length+_classPrivateFieldGet5.offset,skel=await this.loadRaw(skel,skel+_classPrivateFieldGet5.length),_classPrivateFieldGet5=this.mobi.decode(skel).slice(href),selector=getFragmentSelector(_classPrivateFieldGet5),_assertClassBrand(_KF8_brand,this,_setFragmentSelector).call(this,fid,href,selector),{index:index,anchor:function(doc){return doc.querySelector(selector)}})}},{key:"splitTOCHref",value:function(href){href=parsePosURI(href);return[this.getIndexByFID(href.fid),href]}},{key:"getTOCFragment",value:function(doc,_ref10){var fid=_ref10.fid,_ref10=_ref10.off,fid=null==(fid=_classPrivateFieldGet(_fragmentSelectors,this).get(fid))?void 0:fid.get(_ref10);return doc.querySelector(fid)}},{key:"isExternal",value:function(uri){return/^(?!blob|kindle)\w+:/i.test(uri)}},{key:"destroy",value:function(){var _step14,_iterator14=_createForOfIteratorHelper(_classPrivateFieldGet(_cache2,this).values());try{for(_iterator14.s();!(_step14=_iterator14.n()).done;){var url=_step14.value;URL.revokeObjectURL(url)}}catch(err){_iterator14.e(err)}finally{_iterator14.f()}}}])}();function _setFragmentSelector(id,offset,selector){var map=_classPrivateFieldGet(_fragmentSelectors,this).get(id);(map||(map=new Map,_classPrivateFieldGet(_fragmentSelectors,this).set(id,map),map)).set(offset,selector)}}); \ No newline at end of file diff --git a/modules/ebookplayer/foliate/overlayer.js b/modules/ebookplayer/foliate/overlayer.js new file mode 100644 index 0000000..ed5e8dc --- /dev/null +++ b/modules/ebookplayer/foliate/overlayer.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function _createForOfIteratorHelper(r,e){var o,a,u,n,t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(t)return u=!(a=!0),{s:function(){t=t.call(r)},n:function(){var r=t.next();return a=r.done,r},e:function(r){u=!0,o=r},f:function(){try{a||null==t.return||t.return()}finally{if(u)throw o}}};if(Array.isArray(r)||(t=function(r,a){{var t;if(r)return"string"==typeof r?_arrayLikeToArray(r,a):"Map"===(t="Object"===(t={}.toString.call(r).slice(8,-1))&&r.constructor?r.constructor.name:t)||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r))||e&&r&&"number"==typeof r.length)return t&&(r=t),n=0,{s:e=function(){},n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);estart?0:b.left>start?-1:1}),endOffset=1===_nodes.nodeType?0:bisectNode(doc,_nodes,function(a,b){a=mapRect(getBoundingClientRect(a)),b=mapRect(getBoundingClientRect(b));return a.rightend?0:b.left>end?-1:1}),range=doc.createRange();return range.setStart(_nodes$,startOffset),range.setEnd(_nodes,endOffset),range}function selectionIsBackward(sel){var range=document.createRange();return range.setStart(sel.anchorNode,sel.anchorOffset),range.setEnd(sel.focusNode,sel.focusOffset),range.collapsed}function setSelectionTo(target,collapse){var range;target.startContainer?range=target.cloneRange():target.nodeType&&(range=document.createRange()).selectNode(target),range&&(target=range.startContainer.ownerDocument.defaultView.getSelection())&&(target.removeAllRanges(),-1===collapse?range.collapse(!0):1===collapse&&range.collapse(),target.addRange(range))}function getBackground(doc){var bodyStyle=doc.defaultView.getComputedStyle(doc.body);return("rgba(0, 0, 0, 0)"===bodyStyle.backgroundColor&&"none"===bodyStyle.backgroundImage?doc.defaultView.getComputedStyle(doc.documentElement):bodyStyle).background}function makeMarginals(length,part){return Array.from({length:length},function(){var div=document.createElement("div"),child=document.createElement("div");return div.append(child),child.setAttribute("part",part),div})}function setStylesImportant(el,styles){for(var style=el.style,_i=0,_Object$entries=Object.entries(styles);_i<_Object$entries.length;_i++){var _Object$entries$_i=babelHelpers.slicedToArray(_Object$entries[_i],2),k=_Object$entries$_i[0],_Object$entries$_i=_Object$entries$_i[1];style.setProperty(k,_Object$entries$_i,"important")}}var easeOutQuad=function(x){return 1-(1-x)*(1-x)},animate=function(a,b,duration,ease,render){return new Promise(function(resolve){var start,step=function(now){null==start&&(start=now);var min,max,now=Math.min(1,(now-start)/duration);render((min=a,max=b,ease(now)*(max-min)+min)),now<1?requestAnimationFrame(step):resolve()};requestAnimationFrame(step)})},uncollapse=function(range){if(null!=range&&range.collapsed){var node,endOffset=range.endOffset,endContainer=range.endContainer;if(1===endContainer.nodeType)return 1===(null==(node=endContainer.childNodes[endOffset])?void 0:node.nodeType)?node:endContainer;if(endOffset+1=this.pages-2}},{key:"prev",value:function(distance){return _assertClassBrand(_Paginator_brand,this,_turnPage).call(this,-1,distance)}},{key:"next",value:function(distance){return _assertClassBrand(_Paginator_brand,this,_turnPage).call(this,1,distance)}},{key:"prevSection",value:function(){return this.goTo({index:_assertClassBrand(_Paginator_brand,this,_adjacentIndex).call(this,-1)})}},{key:"nextSection",value:function(){return this.goTo({index:_assertClassBrand(_Paginator_brand,this,_adjacentIndex).call(this,1)})}},{key:"firstSection",value:function(){var index=this.sections.findIndex(function(section){return"no"!==section.linear});return this.goTo({index:index})}},{key:"lastSection",value:function(){var index=this.sections.findLastIndex(function(section){return"no"!==section.linear});return this.goTo({index:index})}},{key:"getContents",value:function(){return _classPrivateFieldGet(_view,this)?[{index:_classPrivateFieldGet(_index,this),overlayer:_classPrivateFieldGet(_view,this).overlayer,doc:_classPrivateFieldGet(_view,this).document}]:[]}},{key:"setStyles",value:function(styles){var $beforeStyle,beforeStyle,_styles2,_this5=this,_classPrivateFieldGet8=(_classPrivateFieldSet(_styles,this,styles),_classPrivateFieldGet(_styleMap,this).get(null==(_classPrivateFieldGet8=_classPrivateFieldGet(_view,this))?void 0:_classPrivateFieldGet8.document));_classPrivateFieldGet8&&($beforeStyle=(_classPrivateFieldGet8=babelHelpers.slicedToArray(_classPrivateFieldGet8,2))[0],_classPrivateFieldGet8=_classPrivateFieldGet8[1],Array.isArray(styles)?(beforeStyle=(_styles2=babelHelpers.slicedToArray(styles,2))[0],_styles2=_styles2[1],$beforeStyle.textContent=beforeStyle,_classPrivateFieldGet8.textContent=_styles2):_classPrivateFieldGet8.textContent=styles,requestAnimationFrame(function(){return _classPrivateFieldGet(_background,_this5).style.background=getBackground(_classPrivateFieldGet(_view,_this5).document)}),null!=($beforeStyle=_classPrivateFieldGet(_view,this)))&&null!=($beforeStyle=$beforeStyle.document)&&null!=($beforeStyle=$beforeStyle.fonts)&&null!=($beforeStyle=$beforeStyle.ready)&&$beforeStyle.then(function(){return _classPrivateFieldGet(_view,_this5).expand()})}},{key:"focusView",value:function(){_classPrivateFieldGet(_view,this).document.defaultView.focus()}},{key:"destroy",value:function(){var _this$sections$_class;_classPrivateFieldGet(_observer2,this).unobserve(this),_classPrivateFieldGet(_view,this).destroy(),_classPrivateFieldSet(_view,this,null),null!=(_this$sections$_class=this.sections[_classPrivateFieldGet(_index,this)])&&null!=_this$sections$_class.unload&&_this$sections$_class.unload(),_classPrivateFieldGet(_mediaQuery,this).removeEventListener("change",_classPrivateFieldGet(_mediaQueryListener,this))}}])}(babelHelpers.wrapNativeSuper(HTMLElement));function _createView(){var _this6=this;return _classPrivateFieldGet(_view,this)&&(_classPrivateFieldGet(_view,this).destroy(),_classPrivateFieldGet(_container,this).removeChild(_classPrivateFieldGet(_view,this).element)),_classPrivateFieldSet(_view,this,new View({container:this,onExpand:function(){return _assertClassBrand(_Paginator_brand,_this6,_scrollToAnchor).call(_this6,_classPrivateFieldGet(_anchor,_this6))}})),_classPrivateFieldGet(_container,this).append(_classPrivateFieldGet(_view,this).element),_classPrivateFieldGet(_view,this)}function _beforeRender(_ref8){var _columnWidth,vertical=_ref8.vertical,rtl=_ref8.rtl,_ref8=_ref8.background,_ref8=(_classPrivateFieldSet(_vertical2,this,vertical),_classPrivateFieldSet(_rtl2,this,rtl),_classPrivateFieldGet(_top,this).classList.toggle("vertical",vertical),_classPrivateFieldGet(_background,this).style.background=_ref8,_classPrivateFieldGet(_container,this).getBoundingClientRect()),width=_ref8.width,_ref8=_ref8.height,size=vertical?_ref8:width,style=getComputedStyle(_classPrivateFieldGet(_top,this)),maxInlineSize=parseFloat(style.getPropertyValue("--_max-inline-size")),maxColumnCount=parseInt(style.getPropertyValue("--_max-column-count-spread")),margin=parseFloat(style.getPropertyValue("--_margin")),style=(_classPrivateFieldSet(_margin,this,margin),parseFloat(style.getPropertyValue("--_gap"))/100),style=-style/(style-1)*size,flow=this.getAttribute("flow");return"scrolled"===flow?(this.setAttribute("dir",vertical?"rtl":"ltr"),_classPrivateFieldGet(_top,this).style.padding="0",_columnWidth=maxInlineSize,this.heads=null,this.feet=null,_classPrivateFieldGet(_header,this).replaceChildren(),_classPrivateFieldGet(_footer,this).replaceChildren(),{flow:flow,margin:margin,gap:style,columnWidth:_columnWidth}):(_columnWidth=size/(flow=Math.min(maxColumnCount,Math.ceil(size/maxInlineSize)))-style,this.setAttribute("dir",rtl?"rtl":"ltr"),maxColumnCount=vertical?Math.min(2,Math.ceil(width/maxInlineSize)):flow,size={gridTemplateColumns:"repeat(".concat(maxColumnCount,", 1fr)"),gap:"".concat(style,"px"),direction:"rtl"===this.bookDir?"rtl":"ltr"},Object.assign(_classPrivateFieldGet(_header,this).style,size),Object.assign(_classPrivateFieldGet(_footer,this).style,size),rtl=makeMarginals(maxColumnCount,"head"),vertical=makeMarginals(maxColumnCount,"foot"),this.heads=rtl.map(function(el){return el.children[0]}),this.feet=vertical.map(function(el){return el.children[0]}),(maxInlineSize=_classPrivateFieldGet(_header,this)).replaceChildren.apply(maxInlineSize,babelHelpers.toConsumableArray(rtl)),(flow=_classPrivateFieldGet(_footer,this)).replaceChildren.apply(flow,babelHelpers.toConsumableArray(vertical)),{height:_ref8,width:width,margin:margin,gap:style,columnWidth:_columnWidth})}function _onTouchStart(e){var touch=e.changedTouches[0];_classPrivateFieldSet(_touchState,this,{x:null==touch?void 0:touch.screenX,y:null==touch?void 0:touch.screenY,t:e.timeStamp,vx:0,xy:0})}function _onTouchMove(e){var x,touch,dx,dy,dt,state=_classPrivateFieldGet(_touchState,this);state.pinched||(state.pinched=1=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e=_classPrivateFieldGet(_arr,this).length-1||(detail={state:_classPrivateFieldGet(_arr,this)[index+1]},_classPrivateFieldSet(_index,this,index+1),this.dispatchEvent(new CustomEvent("popstate",{detail:detail})),this.dispatchEvent(new Event("index-change")))}},{key:"canGoBack",get:function(){return 0<_classPrivateFieldGet(_index,this)}},{key:"canGoForward",get:function(){return _classPrivateFieldGet(_index,this)<_classPrivateFieldGet(_arr,this).length-1}},{key:"clear",value:function(){_classPrivateFieldSet(_arr,this,[]),_classPrivateFieldSet(_index,this,-1)}}])}(babelHelpers.wrapNativeSuper(EventTarget)),_root=new WeakMap,_sectionProgress=new WeakMap,_tocProgress=new WeakMap,_pageProgress=new WeakMap,_searchResults=new WeakMap,_cursorAutohider=new WeakMap,_View_brand=new WeakSet,_exports=_exports.View=function(_HTMLElement){function View(){var _this3,e,a;return babelHelpers.classCallCheck(this,View),_this3=_callSuper(this,View),_checkPrivateRedeclaration(e=_this3,a=_View_brand),a.add(e),_classPrivateFieldInitSpec(_this3,_root,_this3.attachShadow({mode:"closed"})),_classPrivateFieldInitSpec(_this3,_sectionProgress,void 0),_classPrivateFieldInitSpec(_this3,_tocProgress,void 0),_classPrivateFieldInitSpec(_this3,_pageProgress,void 0),_classPrivateFieldInitSpec(_this3,_searchResults,new Map),_classPrivateFieldInitSpec(_this3,_cursorAutohider,new CursorAutohider(_this3,function(){return _this3.hasAttribute("autohide-cursor")})),babelHelpers.defineProperty(_this3,"isFixedLayout",!1),babelHelpers.defineProperty(_this3,"lastLocation",void 0),babelHelpers.defineProperty(_this3,"history",new History),_this3.history.addEventListener("popstate",function(_ref8){_ref8=_ref8.detail,_ref8=_this3.resolveNavigation(_ref8.state);_this3.renderer.goTo(_ref8)}),_this3}return babelHelpers.inherits(View,_HTMLElement),babelHelpers.createClass(View,[{key:"sectionProgress",get:function(){return _classPrivateFieldGet(_sectionProgress,this)}},{key:"open",value:async function(book,options){var _book$toc,splitHref,getFragment,activeClass,playbackActiveClass,lastActive,_this4=this;options=Object.assign({fileToBook:makeBook},options||{}),"string"!=typeof book&&"function"!=typeof book.arrayBuffer&&!book.isDirectory||(book=await options.fileToBook(book,options)),this.book=book,this.language=function(lang){if(!lang)return{};try{var _ref7,_locale$getTextInfo,canonical=Intl.getCanonicalLocales(lang)[0],locale=new Intl.Locale(canonical),isCJK=["zh","ja","kr"].includes(locale.language),direction=null==(_ref7=null!=(_locale$getTextInfo=null==locale.getTextInfo?void 0:locale.getTextInfo())?_locale$getTextInfo:locale.textInfo)?void 0:_ref7.direction;return{canonical:canonical,locale:locale,isCJK:isCJK,direction:direction}}catch(e){return console.warn(e),{}}}(null==(options=book.metadata)?void 0:options.language),book.splitTOCHref&&book.getTOCFragment&&(options=book.sections.map(function(s){return s.id}),_classPrivateFieldSet(_sectionProgress,this,new _progress.SectionProgress(book.sections,1500,1600)),splitHref=book.splitTOCHref.bind(book),getFragment=book.getTOCFragment.bind(book),_classPrivateFieldSet(_tocProgress,this,new _progress.TOCProgress),await _classPrivateFieldGet(_tocProgress,this).init({toc:null!=(_book$toc=book.toc)?_book$toc:[],ids:options,splitHref:splitHref,getFragment:getFragment}),_classPrivateFieldSet(_pageProgress,this,new _progress.TOCProgress),await _classPrivateFieldGet(_pageProgress,this).init({toc:null!=(_book$toc=book.pageList)?_book$toc:[],ids:options,splitHref:splitHref,getFragment:getFragment})),this.isFixedLayout="pre-paginated"===(null==(_book$toc=this.book.rendition)?void 0:_book$toc.layout),this.isFixedLayout?(await Emby.importModule("./modules/ebookplayer/foliate/fixed-layout.js"),this.renderer=document.createElement("foliate-fxl")):(await Emby.importModule("./modules/ebookplayer/foliate/paginator.js"),this.renderer=document.createElement("foliate-paginator")),this.renderer.setAttribute("exportparts","head,foot,filter"),this.renderer.addEventListener("load",function(e){return _assertClassBrand(_View_brand,_this4,_onLoad).call(_this4,e.detail)}),this.renderer.addEventListener("relocate",function(e){return _assertClassBrand(_View_brand,_this4,_onRelocate).call(_this4,e.detail)}),this.renderer.addEventListener("create-overlayer",function(e){return e.detail.attach(_assertClassBrand(_View_brand,_this4,_createOverlayer).call(_this4,e.detail))}),this.renderer.open(book),_classPrivateFieldGet(_root,this).append(this.renderer),book.sections.some(function(section){return section.mediaOverlay})&&(activeClass=book.media.activeClass,playbackActiveClass=book.media.playbackActiveClass,this.mediaOverlay=book.getMediaOverlay(),this.mediaOverlay.addEventListener("highlight",function(e){var resolved=_this4.resolveNavigation(e.detail.text);_this4.renderer.goTo(resolved).then(function(){var doc=_this4.renderer.getContents().find(function(x){return x.index=resolved.index}).doc,doc=resolved.anchor(doc);doc.classList.add(activeClass),playbackActiveClass&&doc.ownerDocument.documentElement.classList.add(playbackActiveClass),lastActive=new WeakRef(doc)})}),this.mediaOverlay.addEventListener("unhighlight",function(){var el=null==lastActive?void 0:lastActive.deref();el&&(el.classList.remove(activeClass),playbackActiveClass)&&el.ownerDocument.documentElement.classList.remove(playbackActiveClass)}))}},{key:"close",value:function(){var _this$renderer;null!=(_this$renderer=this.renderer)&&_this$renderer.destroy(),null!=(_this$renderer=this.renderer)&&_this$renderer.remove(),_classPrivateFieldSet(_sectionProgress,this,null),_classPrivateFieldSet(_tocProgress,this,null),_classPrivateFieldSet(_pageProgress,this,null),_classPrivateFieldSet(_searchResults,this,new Map),this.lastLocation=null,this.history.clear(),this.mediaOverlay=null}},{key:"goToTextStart",value:function(){var _this$book$landmarks;return this.goTo(null!=(_this$book$landmarks=null==(_this$book$landmarks=this.book.landmarks)||null==(_this$book$landmarks=_this$book$landmarks.find(function(m){return m.type.includes("bodymatter")||m.type.includes("text")}))?void 0:_this$book$landmarks.href)?_this$book$landmarks:this.book.sections.findIndex(function(s){return"no"!==s.linear}))}},{key:"init",value:async function(_ref9){var lastLocation=_ref9.lastLocation,_ref9=_ref9.showTextStart,resolved=lastLocation?this.resolveNavigation(lastLocation):null;resolved?(await this.renderer.goTo(resolved),this.history.pushState(lastLocation)):_ref9?await this.goToTextStart():(this.history.pushState(0),await this.next())}},{key:"addAnnotation",value:async function(annotation,remove){var _overlayer,_range,value=annotation.value;if(!value.startsWith("foliate-search:"))return index=(_await$this$resolveNa2=await this.resolveNavigation(value)).index,_await$this$resolveNa2=_await$this$resolveNa2.anchor,(obj=_assertClassBrand(_View_brand,this,_getOverlayer).call(this,index))&&(_overlayer=obj.overlayer,obj=obj.doc,_overlayer.remove(value),remove||(_range=obj?_await$this$resolveNa2(obj):_await$this$resolveNa2,_assertClassBrand(_View_brand,this,_emit).call(this,"draw-annotation",{draw:function(func,opts){return _overlayer.add(value,_range,func,opts)},annotation:annotation,doc:obj,range:_range}))),{index:index,label:null!=(annotation=null==(_await$this$resolveNa2=_classPrivateFieldGet(_tocProgress,this).getProgress(index))?void 0:_await$this$resolveNa2.label)?annotation:""};var obj=value.replace("foliate-search:",""),index=await this.resolveNavigation(obj),_await$this$resolveNa2=index.index,annotation=index.anchor,obj=_assertClassBrand(_View_brand,this,_getOverlayer).call(this,_await$this$resolveNa2);if(obj){index=obj.overlayer,_await$this$resolveNa2=obj.doc;if(remove)return void index.remove(value);obj=_await$this$resolveNa2?annotation(_await$this$resolveNa2):annotation;index.add(value,obj,_overlayer2.Overlayer.outline)}}},{key:"deleteAnnotation",value:function(annotation){return this.addAnnotation(annotation,!0)}},{key:"showAnnotation",value:async function(annotation){var index,annotation=annotation.value,resolved=await this.goTo(annotation);resolved&&(index=resolved.index,resolved=(0,resolved.anchor)(_assertClassBrand(_View_brand,this,_getOverlayer).call(this,index).doc),_assertClassBrand(_View_brand,this,_emit).call(this,"show-annotation",{value:annotation,index:index,range:resolved}))}},{key:"getCFI",value:function(index,range){var _this$book$sections$i=null!=(_this$book$sections$i=this.book.sections[index].cfi)?_this$book$sections$i:CFI.fake.fromIndex(index);return range?CFI.joinIndir(_this$book$sections$i,CFI.fromRange(range)):_this$book$sections$i}},{key:"resolveCFI",value:function(cfi){var parts;return this.book.resolveCFI?this.book.resolveCFI(cfi):(parts=CFI.parse(cfi),{index:CFI.fake.toIndex((null!=(cfi=parts.parent)?cfi:parts).shift()),anchor:function(doc){return CFI.toRange(doc,parts)}})}},{key:"resolveNavigation",value:function(target){try{var _classPrivateFieldGet4,_classPrivateFieldGet5;return"number"==typeof target?{index:target}:"number"==typeof target.fraction?(_classPrivateFieldGet4=_classPrivateFieldGet(_sectionProgress,this).getSection(target.fraction),{index:(_classPrivateFieldGet5=babelHelpers.slicedToArray(_classPrivateFieldGet4,2))[0],anchor:_classPrivateFieldGet5[1]}):CFI.isCFI.test(target)?this.resolveCFI(target):this.book.resolveHref(target)}catch(e){console.error(e),console.error("Could not resolve target ".concat(target))}}},{key:"goTo",value:async function(target){var resolved=this.resolveNavigation(target);try{return await this.renderer.goTo(resolved),this.history.pushState(target),resolved}catch(e){console.error(e),console.error("Could not go to ".concat(target))}}},{key:"goToFraction",value:async function(frac){var _classPrivateFieldGet6=_classPrivateFieldGet(_sectionProgress,this).getSection(frac),_classPrivateFieldGet6=babelHelpers.slicedToArray(_classPrivateFieldGet6,2),index=_classPrivateFieldGet6[0],_classPrivateFieldGet6=_classPrivateFieldGet6[1];await this.renderer.goTo({index:index,anchor:_classPrivateFieldGet6}),this.history.pushState({fraction:frac})}},{key:"select",value:async function(target){try{var obj=await this.resolveNavigation(target);await this.renderer.goTo(_objectSpread({},obj,{select:!0})),this.history.pushState(target)}catch(e){console.error(e),console.error("Could not go to ".concat(target))}}},{key:"deselect",value:function(){var _step,_iterator=_createForOfIteratorHelper(this.renderer.getContents());try{for(_iterator.s();!(_step=_iterator.n()).done;)_step.value.doc.defaultView.getSelection().removeAllRanges()}catch(err){_iterator.e(err)}finally{_iterator.f()}}},{key:"getSectionFractions",value:function(){var _classPrivateFieldGet9;return(null!=(_classPrivateFieldGet9=null==(_classPrivateFieldGet9=_classPrivateFieldGet(_sectionProgress,this))?void 0:_classPrivateFieldGet9.sectionFractions)?_classPrivateFieldGet9:[]).map(function(x){return x+Number.EPSILON})}},{key:"getProgressOf",value:function(index,range){var _classPrivateFieldGet0;return{tocItem:null==(_classPrivateFieldGet0=_classPrivateFieldGet(_tocProgress,this))?void 0:_classPrivateFieldGet0.getProgress(index,range),pageItem:null==(_classPrivateFieldGet0=_classPrivateFieldGet(_pageProgress,this))?void 0:_classPrivateFieldGet0.getProgress(index,range)}}},{key:"getTOCItemOf",value:async function(target){try{var _await$this$resolveNa3=await this.resolveNavigation(target),index=_await$this$resolveNa3.index,anchor=_await$this$resolveNa3.anchor,doc=await this.book.sections[index].createDocument(),frag=anchor(doc),isRange=frag instanceof Range,range=isRange?frag:doc.createRange();return isRange||range.selectNodeContents(frag),_classPrivateFieldGet(_tocProgress,this).getProgress(index,range)}catch(e){console.error(e),console.error("Could not get ".concat(target))}}},{key:"prev",value:async function(distance){await this.renderer.prev(distance)}},{key:"next",value:async function(distance){await this.renderer.next(distance)}},{key:"goLeft",value:function(){return"rtl"===this.book.dir?this.next():this.prev()}},{key:"goRight",value:function(){return"rtl"===this.book.dir?this.prev():this.next()}},{key:"search",value:async function*(opts){this.clearSearch();var _step2,searchMatcher=(await Emby.importModule("./modules/ebookplayer/foliate/search.js")).searchMatcher,query=opts.query,index=opts.index,searchMatcher=searchMatcher(_textWalker.textWalker,_objectSpread({defaultLocale:this.language},opts)),opts=null!=index?_assertClassBrand(_View_brand,this,_searchSection).call(this,searchMatcher,query,index):_assertClassBrand(_View_brand,this,_searchBook).call(this,searchMatcher,query),list=[],_iterator2=(_classPrivateFieldGet(_searchResults,this).set(index,list),_createForOfIteratorHelper(opts));try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var _item,result=_step2.value;if(result.subitems){var _classPrivateFieldGet10,_classPrivateFieldGet11,_step3,_list=result.subitems.map(function(_ref0){return{value:"foliate-search:"+_ref0.cfi}}),_iterator3=(_classPrivateFieldGet(_searchResults,this).set(result.index,_list),_createForOfIteratorHelper(_list));try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var item=_step3.value;this.addAnnotation(item)}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}yield{label:null!=(_classPrivateFieldGet10=null==(_classPrivateFieldGet11=_classPrivateFieldGet(_tocProgress,this).getProgress(result.index))?void 0:_classPrivateFieldGet11.label)?_classPrivateFieldGet10:"",subitems:result.subitems}}else result.cfi&&(_item={value:"foliate-search:"+result.cfi},list.push(_item),this.addAnnotation(_item)),yield result}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}yield"done"}},{key:"clearSearch",value:function(){var _step4,_iterator4=_createForOfIteratorHelper(_classPrivateFieldGet(_searchResults,this).values());try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var _step5,_iterator5=_createForOfIteratorHelper(_step4.value);try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var item=_step5.value;this.deleteAnnotation(item)}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}_classPrivateFieldGet(_searchResults,this).clear()}},{key:"startMediaOverlay",value:function(){var index=this.renderer.getContents()[0].index;return this.mediaOverlay.start(index)}}])}(babelHelpers.wrapNativeSuper(HTMLElement));function _emit(name,detail,cancelable){return this.dispatchEvent(new CustomEvent(name,{detail:detail,cancelable:cancelable}))}function _onRelocate(_ref1){var reason=_ref1.reason,range=_ref1.range,index=_ref1.index,fraction=_ref1.fraction,_ref1=_ref1.size,fraction=null!=(_classPrivateFieldGet13=null==(_classPrivateFieldGet13=_classPrivateFieldGet(_sectionProgress,this))?void 0:_classPrivateFieldGet13.getProgress(index,fraction,_ref1))?_classPrivateFieldGet13:{},_classPrivateFieldGet13=null==(_ref1=_classPrivateFieldGet(_tocProgress,this))?void 0:_ref1.getProgress(index,range),_ref1=null==(_ref1=_classPrivateFieldGet(_pageProgress,this))?void 0:_ref1.getProgress(index,range),index=this.getCFI(index,range);this.lastLocation=_objectSpread({},fraction,{tocItem:_classPrivateFieldGet13,pageItem:_ref1,cfi:index,range:range}),"snap"!==reason&&"page"!==reason&&"scroll"!==reason||this.history.replaceState(index),_assertClassBrand(_View_brand,this,_emit).call(this,"relocate",this.lastLocation)}function _onLoad(_ref10){var _doc$documentElement,doc=_ref10.doc,_ref10=_ref10.index;(_doc$documentElement=doc.documentElement).lang||(_doc$documentElement.lang=null!=(_doc$documentElement=this.language.canonical)?_doc$documentElement:""),this.language.isCJK||(_doc$documentElement=doc.documentElement).dir||(_doc$documentElement.dir=null!=(_doc$documentElement=this.language.direction)?_doc$documentElement:""),_assertClassBrand(_View_brand,this,_handleLinks).call(this,doc,_ref10),_classPrivateFieldGet(_cursorAutohider,this).cloneFor(doc.documentElement),_assertClassBrand(_View_brand,this,_emit).call(this,"load",{doc:doc,index:_ref10})}function _handleLinks(doc,index){var _this5=this,book=this.book,section=book.sections[index];doc.addEventListener("click",function(e){var _section$resolveHref,href,a=e.target.closest("a[href]");a&&(e.preventDefault(),e=a.getAttribute("href"),href=null!=(_section$resolveHref=null==section||null==section.resolveHref?void 0:section.resolveHref(e))?_section$resolveHref:e,null!=book&&null!=book.isExternal&&book.isExternal(href)?Promise.resolve(_assertClassBrand(_View_brand,_this5,_emit).call(_this5,"external-link",{a:a,href:href},!0)).then(function(x){return x?globalThis.open(href,"_blank"):null}).catch(function(e){return console.error(e)}):Promise.resolve(_assertClassBrand(_View_brand,_this5,_emit).call(_this5,"link",{a:a,href:href},!0)).then(function(x){return x?_this5.goTo(href):null}).catch(function(e){return console.error(e)}))})}function _getOverlayer(index){return this.renderer.getContents().find(function(x){return x.index===index&&x.overlayer})}function _createOverlayer(_ref11){var _this6=this,doc=_ref11.doc,index=_ref11.index,overlayer=new _overlayer2.Overlayer,_ref11=(doc.addEventListener("click",function(e){var e=overlayer.hitTest(e),e=babelHelpers.slicedToArray(e,2),value=e[0],e=e[1];value&&!value.startsWith("foliate-search:")&&_assertClassBrand(_View_brand,_this6,_emit).call(_this6,"show-annotation",{value:value,index:index,range:e})},!1),_classPrivateFieldGet(_searchResults,this).get(index));if(_ref11){var _step6,_iterator6=_createForOfIteratorHelper(_ref11);try{for(_iterator6.s();!(_step6=_iterator6.n()).done;){var item=_step6.value;this.addAnnotation(item)}}catch(err){_iterator6.e(err)}finally{_iterator6.f()}}return _assertClassBrand(_View_brand,this,_emit).call(this,"create-overlay",{index:index}),overlayer}async function*_searchSection(matcher,query,index){var _step7,_iterator7=_createForOfIteratorHelper(matcher(await this.book.sections[index].createDocument(),query));try{for(_iterator7.s();!(_step7=_iterator7.n()).done;){var _step7$value=_step7.value,range=_step7$value.range,excerpt=_step7$value.excerpt;yield{cfi:this.getCFI(index,range),excerpt:excerpt}}}catch(err){_iterator7.e(err)}finally{_iterator7.f()}}async function*_searchBook(matcher,query){var _step8,_this7=this,sections=this.book.sections,_iterator8=_createForOfIteratorHelper(sections.entries());try{for(_iterator8.s();!(_step8=_iterator8.n()).done;)yield*async function*(){var _step8$value=babelHelpers.slicedToArray(_step8.value,2),index=_step8$value[0],_step8$value=_step8$value[1].createDocument;if(!_step8$value)return 1;_step8$value=await _step8$value(),_step8$value=Array.from(matcher(_step8$value,query),function(_ref12){var range=_ref12.range,_ref12=_ref12.excerpt;return{cfi:_this7.getCFI(index,range),excerpt:_ref12}});yield{progress:(index+1)/sections.length},_step8$value.length&&(yield{index:index,subitems:_step8$value})}()}catch(err){_iterator8.e(err)}finally{_iterator8.f()}}customElements.define("foliate-view",_exports)}); \ No newline at end of file diff --git a/modules/ebookplayer/plugin.js b/modules/ebookplayer/plugin.js new file mode 100644 index 0000000..143069f --- /dev/null +++ b/modules/ebookplayer/plugin.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=function(){this.name="E-book Viewer",this.type="mediaplayer",this.id="ebookplayer",this.priority=1;var self=this;self.ebookplayer=null,self.play=function(options,signal){return signal.aborted?((signal=signal.reason)||((signal=new Error("Aborted")).name="AbortError"),Promise.reject(signal)):null===self.ebookplayer?Emby.importModule(PATH_PLAYER).then(function(playermodule){return self.ebookplayer=new playermodule,self.ebookplayer.show(options.item)}):self.ebookplayer.show(options.item)},self.stop=function(options){return null!==self.ebookplayer&&self.ebookplayer.clear(),Promise.resolve()},self.destroy=function(options){self.stop()},self.isPlaying=function(mediaType){return(!mediaType||"Book"===mediaType)&&null!==self.ebookplayer&&null!==self.ebookplayer.currentPage},self.pause=function(){},self.unpause=function(){},self.paused=function(){return!1},self.getVolume=function(){return 100},self.setVolume=function(){},self.volumeUp=function(){},self.volumeDown=function(){},self.setMute=function(mute){},self.currentTime=function(){},self.duration=function(){},self.isMuted=function(){return!1},self.canPlayMediaType=function(mediaType){return"Book"===mediaType},self.canPlayItem=function(item,playOptions){switch(null==(item=item.Container)?void 0:item.toLowerCase()){case"epub":case"mobi":case"kf8":case"azw3":case"cbz":case"cbr":case"cbt":case"cb7":case"fb2":case"fbz":return!0;default:return!1}}};var PATH_PLAYER="./modules/ebookplayer/ebookplayer.js"}); \ No newline at end of file diff --git a/modules/emby-apiclient/apiclient.js b/modules/emby-apiclient/apiclient.js new file mode 100644 index 0000000..5f3439f --- /dev/null +++ b/modules/emby-apiclient/apiclient.js @@ -0,0 +1 @@ +define(["exports","./events.js","./../common/servicelocator.js","./../common/querystring.js","./../common/qualitydetection.js"],function(_exports,_events,_servicelocator,_querystring,_qualitydetection){var globalize,userSettings;function loadGlobalize(){return globalize?Promise.resolve(globalize):Emby.importModule("./modules/common/globalize.js").then(function(globalizeModule){return globalize=globalizeModule})}function loadUserSettings(){return userSettings?Promise.resolve(userSettings):Emby.importModule("./modules/common/usersettings/usersettings.js").then(function(userSettingsModule){return userSettings=userSettingsModule})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;function isLocalId(str){return str&&str.startsWith("local")}function isNotLocalId(id){return!isLocalId(id)}function replaceAll(originalString,strReplace,strWith){strReplace=new RegExp(strReplace,"ig");return originalString.replace(strReplace,strWith)}function getFetchPromise(instance,request,signal){var err,fetchRequest,timeoutSignal;return signal&&signal.aborted?Promise.reject(((err=new Error("AbortError")).name="AbortError",err)):(err=request.headers||{},"json"===request.dataType&&(err.accept="application/json"),fetchRequest={headers:err,method:request.type,credentials:"same-origin"},request.timeout&&(timeoutSignal=AbortSignal.timeout(request.timeout),signal=signal?AbortSignal.any([signal,timeoutSignal]):timeoutSignal),signal&&(fetchRequest.signal=signal),timeoutSignal=request.contentType,request.data&&("string"==typeof request.data?fetchRequest.body=request.data:(fetchRequest.body=_querystring.default.paramsToString(request.data),timeoutSignal=timeoutSignal||"application/x-www-form-urlencoded; charset=UTF-8")),signal=request.url,"application/json"===timeoutSignal&&(timeoutSignal="text/plain",signal=signal+(signal.includes("?")?"&":"?")+"reqformat=json"),timeoutSignal&&(err["Content-Type"]=timeoutSignal),fetch(signal,fetchRequest))}function setServerAddress(instance,address){instance._serverAddress=address,_events.default.trigger(instance,"serveraddresschanged",[{apiClient:instance,address:address}])}function onNetworkChanged(instance,resetAddress){resetAddress&&(instance.connected=!1,(resetAddress=getAddresses(instance.serverInfo())).length)&&setServerAddress(instance,resetAddress[0].url),instance._endPointInfo=null}function getAddresses(serverInfo){var address,addresses=[],addressesStrings=[];return!serverInfo.ManualAddress||!(address=serverInfo.ManualAddress).includes("://127.0.0.1")&&!address.toLowerCase().includes("://localhost")||addressesStrings.includes(serverInfo.ManualAddress.toLowerCase())||(addresses.push({url:serverInfo.ManualAddress}),addressesStrings.push(addresses[addresses.length-1].url.toLowerCase())),serverInfo.LocalAddress&&!addressesStrings.includes(serverInfo.LocalAddress.toLowerCase())&&(addresses.push({url:serverInfo.LocalAddress}),addressesStrings.push(addresses[addresses.length-1].url.toLowerCase())),serverInfo.ManualAddress&&!addressesStrings.includes(serverInfo.ManualAddress.toLowerCase())&&(addresses.push({url:serverInfo.ManualAddress}),addressesStrings.push(addresses[addresses.length-1].url.toLowerCase())),serverInfo.RemoteAddress&&!addressesStrings.includes(serverInfo.RemoteAddress.toLowerCase())&&(addresses.push({url:serverInfo.RemoteAddress}),addressesStrings.push(addresses[addresses.length-1].url.toLowerCase())),console.log("getAddresses: "+addressesStrings.join("|")),addresses}function setTimeoutPromise(timeout){return new Promise(function(resolve){setTimeout(resolve,timeout)})}function tryReconnectInternal(instance,signal){var addresses=getAddresses(instance.serverInfo());if(!addresses.length)return Promise.reject();if(1===addresses.length)return Promise.resolve(addresses[0].url);for(var abortController=new AbortController,boundAbort=abortController.abort.bind(abortController),promises=(signal&&signal.addEventListener("abort",boundAbort),signal=abortController.signal,[]),i=0,length=addresses.length;iquery.Limit&&(users.length=query.Limit),{Items:users,TotalRecordCount:totalRecordCount}})},ApiClient.prototype.getPublicUsers=function(){return this.getPublicUsersQueryResult({}).then(function(result){return result.Items})},ApiClient.prototype.getUsersQueryResult=function(query,signal){var serverId=this.serverId();return this.getJSON(this.getUrl("Users/Query",query),signal).then(function(result){return setUsersProperties(result.Items,serverId),result})},ApiClient.prototype.getUsersForItemAccess=function(query,signal){var serverId=this.serverId();return this.getJSON(this.getUrl("Users/ItemAccess",query),signal).then(function(result){return setUsersProperties(result.Items,serverId),result})},ApiClient.prototype.getUsers=function(query,signal){return this.getUsersQueryResult(query,signal).then(function(result){return result.Items})},ApiClient.prototype.getUserPrefixes=function(query,signal){return this.getJSON(this.getUrl("Users/Prefixes",query),signal)},ApiClient.prototype.getApiKeys=function(query,signal){var instance=this;return this.getJSON(this.getUrl("Auth/Keys",query),signal).then(function(result){return function(instance,response){for(var serverId=instance.serverId(),i=0,length=response.Items.length;iquery.Limit&&(trailers.length=query.Limit),Promise.resolve({Items:trailers,TotalRecordCount:localTrailers})})},ApiClient.prototype.getGameSystems=function(){var options={},userId=this.getCurrentUserId(),userId=(userId&&(options.userId=userId),this.getUrl("Games/SystemSummaries",options));return this.getJSON(userId)},ApiClient.prototype.getAdditionalVideoParts=function(userId,itemId,mediaSourceId){var options;if(itemId)return isLocalId(itemId)||isLocalId(mediaSourceId)?Promise.resolve([]):(options={},userId&&(options.userId=userId),mediaSourceId&&(options.mediaSourceId=mediaSourceId),userId=this.getUrl("Videos/"+itemId+"/AdditionalParts",options),this.getJSON(userId));throw new Error("null itemId")},ApiClient.prototype.getThemeMedia=function(itemId,options,signal){return isLocalId(itemId)?Promise.resolve({ThemeVideosResult:{Items:[],TotalRecordCount:0},ThemeSongsResult:{Items:[],TotalRecordCount:0}}):(itemId=this.getUrl("Items/"+itemId+"/ThemeMedia",options),this.getJSON(itemId,signal))},ApiClient.prototype.getAudioStreamUrl=function(_ref5,_ref6,directPlayContainers,maxBitrate,maxAudioSampleRate,maxAudioBitDepth,startPosition,enableRemoteMedia){var _ref5=_ref5.Id,Container=_ref6.Container,Protocol=_ref6.Protocol,_ref6=_ref6.AudioCodec;return startingPlaySession++,this.getUrl("Audio/"+_ref5+"/universal",{UserId:this.getCurrentUserId(),DeviceId:this.deviceId(),MaxStreamingBitrate:maxBitrate,Container:directPlayContainers,TranscodingContainer:Container||null,TranscodingProtocol:Protocol||null,AudioCodec:_ref6,MaxAudioSampleRate:maxAudioSampleRate,MaxAudioBitDepth:maxAudioBitDepth,api_key:this.accessToken(),PlaySessionId:startingPlaySession,StartTimeTicks:startPosition||0,EnableRedirection:!0,EnableRemoteMedia:enableRemoteMedia})},ApiClient.prototype.getAudioStreamUrls=function(items,transcodingProfile,directPlayContainers,maxBitrate,maxAudioSampleRate,maxAudioBitDepth,startPosition,enableRemoteMedia){for(var streamUrls=[],i=0,length=items.length;i=infos.length?Promise.resolve():(info=infos[index],console.log("sending wakeonlan to "+info.MacAddress),_servicelocator.wakeOnLan.send(info).then(goNext,goNext));function goNext(){return sendNextWakeOnLan(infos,index+1)}}(getCachedWakeOnLanInfo(this),0)},ApiClient.prototype.getAddToPlaylistInfo=function(userId,id,addIds){return this.isMinServerVersion("4.8.0.30")?(id=this.getUrl("Playlists/"+id+"/AddToPlaylistInfo",{Ids:addIds,userId:userId}),this.getJSON(id)):Promise.resolve({ContainsDuplicates:!1,ItemCount:addIds.length})},ApiClient.prototype.addToList=function(userId,type,id,addIds,skipDuplicates){var url=this.getUrl(("BoxSet"===type||"Collection"===type?"Collections":"Playlists")+"/"+id+"/Items"),dataType="Playlist"===type&&this.isMinServerVersion("4.8.0.30")?"json":null,instance=this;return this.ajax({type:"POST",url:url,dataType:dataType,data:JSON.stringify({Ids:addIds.join(","),userId:userId,SkipDuplicates:"Playlist"===type?skipDuplicates:null}),contentType:"application/json"}).then(function(result){return null==(result=result||{}).ItemAddedCount&&(result.ItemAddedCount=addIds.length),onItemUpdated.call({instance:instance,itemId:id},result)})},ApiClient.prototype.createList=function(userId,type,name,addIds){type=this.getUrl("BoxSet"===type||"Collection"===type?"Collections":"Playlists",{Name:name,Ids:addIds,userId:userId});return this.ajax({type:"POST",url:type,dataType:"json"}).then(function(result){return null==(result=result||{}).ItemAddedCount&&(result.ItemAddedCount=(addIds||[]).length),Promise.resolve(result)})},ApiClient.prototype.setSystemInfo=function(systemInfo){var instance,info;null!=systemInfo.HasImageEnhancers&&(this.hasImageEnhancers=systemInfo.HasImageEnhancers),systemInfo.WakeOnLanInfo&&(instance=this,info=systemInfo.WakeOnLanInfo,instance=instance.serverId(),_servicelocator.appStorage.setItem("server-"+instance+"-wakeonlaninfo",JSON.stringify(info))),this._serverVersion=systemInfo.Version},ApiClient.prototype.serverVersion=function(){return this._serverVersion},ApiClient.prototype.isMinServerVersion=function(version){var serverVersion=this.serverVersion();return!!serverVersion&&0<=function(a,b){a=a.split("."),b=b.split(".");for(var i=0,length=Math.max(a.length,b.length);i=.9*libraryItem.RunTimeTicks&&(libraryItem.UserData.Played=!0,libraryItem.UserData.PlaybackPositionTicks=0,libraryItem.UserData.PlayedPercentage=0),_servicelocator.itemRepository.updateLibraryItem(item.ServerId,item.Id,item)):void 0:(console.log("item not found in local database: "+stripLocalPrefix(localId)),Promise.resolve())})),serverInfo=isLocalId(options.ItemId)?Promise.resolve():_apiclient.default.prototype.reportPlaybackProgress.apply(this,arguments),Promise.all([localPromise||Promise.resolve(),serverInfo]);throw new Error("null options")},ApiClientEx.prototype.reportPlaybackStopped=function(options){var localId,serverInfo,instance,localPromise,serverPromise;if(options)return(localId=isLocalId(options.ItemId)?options.ItemId:isLocalId(options.MediaSourceId)?options.MediaSourceId:null)&&(serverInfo=this.serverInfo())&&(instance=this,localPromise=_servicelocator.itemRepository.getLibraryItem(serverInfo.Id,stripLocalPrefix(localId)).then(function(item){var libraryItem;return item?"Video"===(libraryItem=item.Item).MediaType?(libraryItem.UserData=libraryItem.UserData||{},libraryItem.UserData.PlaybackPositionTicks=options.PositionTicks,libraryItem.UserData.PlayedPercentage=Math.min(libraryItem.RunTimeTicks?(options.PositionTicks||0)/libraryItem.RunTimeTicks*100:0,100),libraryItem.UserData.PlaybackPositionTicks&&libraryItem.RunTimeTicks&&libraryItem.UserData.PlaybackPositionTicks>=.9*libraryItem.RunTimeTicks&&(libraryItem.UserData.Played=!0,libraryItem.UserData.PlaybackPositionTicks=0,libraryItem.UserData.PlayedPercentage=0),_servicelocator.itemRepository.updateLibraryItem(item.ServerId,item.Id,item).then(function(){var action,d;return isLocalId(options.ItemId)?(action={Date:(new Date).toISOString(),ItemId:stripLocalPrefix(localId),PositionTicks:options.PositionTicks,ServerId:serverInfo.Id,Type:"PlayedItem",UserId:instance.getCurrentUserId(),Id:(d=Date.now(),window.performance&&"function"==typeof window.performance.now&&(d+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=(d+16*Math.random())%16|0;return d=Math.floor(d/16),("x"===c?r:3&r|8).toString(16)}))},_servicelocator.userActionRepository.addUserAction(action.Id,action)):Promise.resolve()})):void 0:(console.log("item not found in local database: "+stripLocalPrefix(localId)),Promise.resolve())})),serverPromise=isLocalId(options.ItemId)?Promise.resolve():_apiclient.default.prototype.reportPlaybackStopped.apply(this,arguments),Promise.all([localPromise||Promise.resolve(),serverPromise]);throw new Error("null options")},ApiClientEx.prototype.getItemDownloadUrl=function(itemId,mediaSourceId){var serverInfo,localId=isLocalId(itemId)?itemId:isLocalId(mediaSourceId)?mediaSourceId:null;return localId?(serverInfo=this.serverInfo())?_servicelocator.itemRepository.getLibraryItem(serverInfo.Id,stripLocalPrefix(localId)).then(function(_ref7){_ref7=_ref7.LocalPath;return Promise.resolve(_ref7)}):Promise.reject():_apiclient.default.prototype.getItemDownloadUrl.apply(this,arguments)},ApiClientEx.prototype.getItemOriginalFileUrl=function(itemId,mediaSourceId){var serverInfo,localId=isLocalId(itemId)?itemId:isLocalId(mediaSourceId)?mediaSourceId:null;return localId?(serverInfo=this.serverInfo())?_servicelocator.itemRepository.getLibraryItem(serverInfo.Id,stripLocalPrefix(localId)).then(function(_ref8){_ref8=_ref8.LocalPath;return Promise.resolve(_ref8)}):Promise.reject():_apiclient.default.prototype.getItemOriginalFileUrl.apply(this,arguments)},ApiClientEx.prototype.deleteItemsInternal=function(items){var itemIds,instance;if(items)return itemIds=items.map(mapToId).filter(isLocalId),_apiclient.default.prototype.deleteItemsInternal.apply(instance=this,arguments).then(function(){return Promise.all(itemIds.map(function(itemId){return _servicelocator.itemRepository.getLibraryItem(instance.serverId(),stripLocalPrefix(itemId)).then(function(item){return item?_localassetmanager.default.removeLocalItem(item).then(syncNow):Promise.resolve()})}))});throw new Error("null itemId")};_exports.default=ApiClientEx}); \ No newline at end of file diff --git a/modules/emby-apiclient/appstorage-cache.js b/modules/emby-apiclient/appstorage-cache.js new file mode 100644 index 0000000..782b337 --- /dev/null +++ b/modules/emby-apiclient/appstorage-cache.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function updateCache(instance,localData){instance.cache.put("data",new Response(JSON.stringify(localData)))}function MyStore(){}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,MyStore.prototype.init=function(){var instance=this;return caches.open("embydata").then(function(cache){return(instance.cache=cache).match("data").then(function(response){return response?response.text().then(function(text){instance.localData=JSON.parse(text)}):(instance.localData={},Promise.resolve())},function(){instance.localData={}})})},MyStore.prototype.setItem=function(name,value){var localData=this.localData;localData&&localData[name]!==value&&(localData[name]=value,updateCache(this,localData))},MyStore.prototype.getItem=function(name){var localData=this.localData;if(localData)return localData[name]},MyStore.prototype.removeItem=function(name){var localData=this.localData;localData&&(localData[name]=null,delete localData[name],updateCache(this,localData))};_exports.default=new MyStore}); \ No newline at end of file diff --git a/modules/emby-apiclient/appstorage-localstorage.js b/modules/emby-apiclient/appstorage-localstorage.js new file mode 100644 index 0000000..2d22583 --- /dev/null +++ b/modules/emby-apiclient/appstorage-localstorage.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function MyStore(){}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,MyStore.prototype.init=function(){return Promise.resolve()},MyStore.prototype.setItem=function(name,value){localStorage.setItem(name,value)},MyStore.prototype.getItem=function(name){return localStorage.getItem(name)},MyStore.prototype.removeItem=function(name){localStorage.removeItem(name)};_exports.default=new MyStore}); \ No newline at end of file diff --git a/modules/emby-apiclient/appstorage-localstoragecache.js b/modules/emby-apiclient/appstorage-localstoragecache.js new file mode 100644 index 0000000..4086975 --- /dev/null +++ b/modules/emby-apiclient/appstorage-localstoragecache.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function onCachePutFail(e){console.log(e)}function updateCache(instance){var cache=instance.cache;cache&&cache.put("data",new Response(JSON.stringify(instance.localData))).catch(onCachePutFail)}function MyStore(){}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,MyStore.prototype.init=function(){try{"undefined"!=typeof caches&&caches.open("embydata").then(function(result){this.cache=result,this.localData={}}.bind(this),function(err){return console.log("Error opening cache: "+err),this.localData={},Promise.resolve()}.bind(this))}catch(err){console.log("Error opening cache: "+err)}return Promise.resolve()},MyStore.prototype.setItem=function(name,value){localStorage.setItem(name,value);var localData=this.localData;localData&&localData[name]!==value&&(localData[name]=value,updateCache(this))},MyStore.prototype.getItem=function(name){return localStorage.getItem(name)},MyStore.prototype.removeItem=function(name){localStorage.removeItem(name);var localData=this.localData;localData&&(localData[name]=null,delete localData[name],updateCache(this))};_exports.default=new MyStore}); \ No newline at end of file diff --git a/modules/emby-apiclient/appstorage-memory.js b/modules/emby-apiclient/appstorage-memory.js new file mode 100644 index 0000000..6350821 --- /dev/null +++ b/modules/emby-apiclient/appstorage-memory.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function MyStore(){this.localData={}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,MyStore.prototype.setItem=function(name,value){this.localData[name]=value},MyStore.prototype.getItem=function(name){return this.localData[name]},MyStore.prototype.removeItem=function(name){this.localData[name]=null};_exports.default=new MyStore}); \ No newline at end of file diff --git a/modules/emby-apiclient/connectionmanager.js b/modules/emby-apiclient/connectionmanager.js new file mode 100644 index 0000000..f2410ca --- /dev/null +++ b/modules/emby-apiclient/connectionmanager.js @@ -0,0 +1 @@ +define(["exports","./events.js","./apiclient.js","./credentials.js","./../common/servicelocator.js","./../common/querystring.js","./../common/usersettings/usersettings.js","./../common/appsettings.js"],function(_exports,_events,_apiclient,_credentials,_servicelocator,_querystring,_usersettings,_appsettings){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var currentApiClient,defaultTimeout=2e4;function setCurrentApiClient(instance,apiClient){instance.globalScopeApiClient&&(globalThis.ApiClient=apiClient),currentApiClient=apiClient}var ConnectionMode_Local=0,ConnectionMode_Remote=1,ConnectionMode_Manual=2;function getServerAddress(server,mode){switch(mode){case ConnectionMode_Local:return server.LocalAddress;case ConnectionMode_Manual:return server.ManualAddress;case ConnectionMode_Remote:return server.RemoteAddress;default:return server.ManualAddress||server.LocalAddress||server.RemoteAddress}}function mergeServers(credentialProvider,list1,list2){for(var changed=!1,i=0,length=list2.length;ihttps://emby.media/connect'),html+="

"+_globalize.default.translate("ErrorAddingEmbyConnectAccount2","support@emby.media")),statusCode=_globalize.default.translate("ErrorAddingEmbyConnectAccount1","https://emby.media/connect"),statusCode+="\n\n"+_globalize.default.translate("ErrorAddingEmbyConnectAccount2","support@emby.media"),(0,_alert.default)({text:statusCode,html:html})):_responsehelper.default.handleErrorResponse(response)}(response,".",null==response?void 0:response.status).then(rejectPromise)})):Promise.reject()}}}); \ No newline at end of file diff --git a/modules/emby-elements/emby-button/emby-button.css b/modules/emby-elements/emby-button/emby-button.css new file mode 100644 index 0000000..d5bfb44 --- /dev/null +++ b/modules/emby-elements/emby-button/emby-button.css @@ -0,0 +1 @@ +.emby-button{position:relative;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;box-sizing:border-box;margin:0 .29em;font-size:inherit;font-family:inherit;color:inherit;z-index:0;padding:.66em 2ch;vertical-align:middle;border:0;vertical-align:middle;position:relative;font-weight:600;-webkit-tap-highlight-color:transparent;text-decoration:none;line-height:inherit;outline:0!important;letter-spacing:inherit;-webkit-border-fit:border!important;cursor:pointer}.emby-button[disabled]{opacity:.4;cursor:default}.emby-button::-moz-focus-inner{border:0}.button-link{background:0 0;margin:0;padding:0;border:0;vertical-align:initial;outline:0!important;text-shadow:inherit;-webkit-user-select:inherit;user-select:inherit;position:relative}.button-link-fontweight-inherit{font-weight:inherit}.button-link:focus{text-shadow:none}.button-link:not([disabled]){cursor:pointer}.button-inherit-color{color:inherit!important}.button-link.button-link-no-focus-bg:focus::before{background:0 0!important;box-shadow:none!important}.raised,.fab{-webkit-user-select:none;user-select:none}.raised{text-align:center;border-radius:100em}.raised-mini{padding-top:.6em;padding-bottom:.6em;border-radius:100em}.emby-button-text{-webkit-flex-shrink:0;flex-shrink:0}.button-link:focus-visible::before{position:absolute;top:0;left:-.35em;right:-.35em;bottom:0;content:" ";z-index:-1;border-radius:100em;box-shadow:0 .25em .4375em rgba(0,0,0,.25);contain:strict}.button-icon,.fab-icon{font-size:1.59em}.button-icon-left{-webkit-margin-end:.35em;margin-inline-end:.35em;-webkit-margin-start:-.1em;margin-inline-start:-.1em}.button-icon-right{-webkit-margin-start:.35em;margin-inline-start:.35em;-webkit-margin-end:-.1em;margin-inline-end:-.1em}.fab{display:-webkit-inline-flex;display:inline-flex;border-radius:50%;padding:.66em;box-sizing:border-box;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;text-align:center}.fab-mini{padding:.6em}.emby-button.block{display:block;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;margin:.25em 0;width:100%}.paper-icon-button-light{position:relative;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;box-sizing:border-box;margin:0 .29em;background:0 0;text-align:center;font-size:inherit;font-family:inherit;color:inherit;-webkit-user-select:none;user-select:none;z-index:0;min-width:initial;min-height:initial;width:auto;height:auto;padding:.556em;vertical-align:middle;border:0;vertical-align:middle;position:relative;overflow:hidden;border-radius:50%;-webkit-tap-highlight-color:transparent;-webkit-justify-content:center;justify-content:center;outline:0!important;text-shadow:inherit;-webkit-border-fit:border!important;cursor:pointer}.paper-icon-button-light::-moz-focus-inner{border:0}.paper-icon-button-light[disabled]{opacity:.3;cursor:default}.paper-icon-button-light>.md-icon{font-size:1.66956521739130434em;position:relative;z-index:1;vertical-align:middle}.paper-icon-button-light.md-icon{font-size:1.66956521739130434em;margin:0 .17em;padding:.333em}.paper-icon-button-light:focus{text-shadow:none}.paper-icon-button-img{width:1.72em;height:1.72em;object-fit:cover;object-position:center;max-height:100%;position:relative;z-index:1;vertical-align:middle}.toggleButtonIcon{border-radius:.3em}.toggleButtonIcon-backdropfilter.toggleButtonIcon-active{-webkit-backdrop-filter:saturate(1.8) blur(1.5em);backdrop-filter:saturate(1.8) blur(1.5em)} \ No newline at end of file diff --git a/modules/emby-elements/emby-button/emby-button.js b/modules/emby-elements/emby-button/emby-button.js new file mode 100644 index 0000000..43e013d --- /dev/null +++ b/modules/emby-elements/emby-button/emby-button.js @@ -0,0 +1 @@ +define(["exports","./../../emby-apiclient/connectionmanager.js","./../../dom.js","./../../layoutmanager.js","./../../common/servicelocator.js","./../../approuter.js"],function(_exports,_connectionmanager,_dom,_layoutmanager,_servicelocator,_approuter){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/emby-elements/emby-button/emby-button.css","css!!tv|modules/emby-elements/emby-button/emby-button_nontv.css","css!tv|modules/emby-elements/emby-button/emby-button_tv.css"]);var EnableFocusTransfrom=_dom.default.allowFocusScaling();function openPremiumInfo(){Emby.importModule("./modules/registrationservices/registrationservices.js").then(function(registrationServices){registrationServices.showPremiereInfo()})}function showPremiereInfoToPremiereUser(){_connectionmanager.default.currentApiClient().getCurrentUser().then(function(user){user.Policy.IsAdministrator&&_approuter.default.getRouteInfo("/embypremiere")?_approuter.default.show("embypremiere"):openPremiumInfo()})}function onAnchorClick(e){var href=this.getAttribute("href")||"";"#"===href?(e.preventDefault(),"premiereinfo"===this.getAttribute("data-preset")&&Emby.importModule("./modules/registrationservices/registrationservices.js").then(function(registrationServices){registrationServices.validateFeature("themes",{viewOnly:!0,showDialog:!0}).then(showPremiereInfoToPremiereUser)})):this.getAttribute("target")?-1===href.indexOf("emby.media/premiere")||_servicelocator.appHost.supports("externalpremium")?_servicelocator.appHost.supports("targetblank")&&!_servicelocator.appHost.supports("shellopenurl")||(e.preventDefault(),_servicelocator.shell.openUrl(href)):(e.preventDefault(),openPremiumInfo()):_approuter.default.handleAnchorClick(e)}function onInit(){var classList;this.hasInit||(this.hasInit=!0,(classList=this.classList).add("emby-button"),_dom.default.allowBackdropFilter()&&!classList.contains("nobackdropfilter")&&(classList.contains("raised")?classList.add("raised-backdropfilter"):classList.contains("fab")&&classList.add("fab-backdropfilter")),_layoutmanager.default.tv?EnableFocusTransfrom&&"false"!==this.getAttribute("data-focusscale")&&classList.add("emby-button-focusscale"):classList.add("button-hoverable"))}var EmbyButton=function(_HTMLButtonElement){function EmbyButton(){var _this,self=_this=_HTMLButtonElement.call(this)||this;return onInit.call(self),babelHelpers.possibleConstructorReturn(_this,self)}return babelHelpers.inherits(EmbyButton,_HTMLButtonElement),babelHelpers.createClass(EmbyButton,[{key:"connectedCallback",value:function(){onInit.call(this)}},{key:"disconnectedCallback",value:function(){}}])}(babelHelpers.wrapNativeSuper(HTMLButtonElement)),EmbyAnchor=(customElements.define("emby-button",EmbyButton,{extends:"button"}),function(_HTMLAnchorElement){function EmbyAnchor(){var _this2,self=_this2=_HTMLAnchorElement.call(this)||this;return onInit.call(self),babelHelpers.possibleConstructorReturn(_this2,self)}return babelHelpers.inherits(EmbyAnchor,_HTMLAnchorElement),babelHelpers.createClass(EmbyAnchor,[{key:"connectedCallback",value:function(){onInit.call(this),_dom.default.removeEventListener(this,"click",onAnchorClick,{}),_dom.default.addEventListener(this,"click",onAnchorClick,{}),"true"===this.getAttribute("data-autohide")&&(_servicelocator.appHost.supports("externallinks")&&(_servicelocator.appHost.supports("externalappinfo")||"true"!==this.getAttribute("data-externalappinfo"))?this.classList.remove("hide"):this.classList.add("hide"))}},{key:"disconnectedCallback",value:function(){_dom.default.removeEventListener(this,"click",onAnchorClick,{})}}])}(babelHelpers.wrapNativeSuper(HTMLAnchorElement))),EmbySectionTitle=(customElements.define("emby-linkbutton",EmbyAnchor,{extends:"a"}),function(_EmbyAnchor){function EmbySectionTitle(){var _this3;_this3=_EmbyAnchor.call(this)||this;return babelHelpers.possibleConstructorReturn(_this3,_this3)}return babelHelpers.inherits(EmbySectionTitle,_EmbyAnchor),babelHelpers.createClass(EmbySectionTitle,[{key:"addSeeAllButton",value:function(){var elem;_layoutmanager.default.tv||this.querySelector(".sectionTitleMoreIcon")||((elem=document.createElement("i")).classList.add("md-icon","sectionTitleMoreIcon","secondaryText"),elem.innerHTML="",this.appendChild(elem),null!=(elem=this.querySelector(".sectionTitle"))&&elem.classList.add("sectionTitleText-withseeall"))}},{key:"connectedCallback",value:function(){EmbyAnchor.prototype.connectedCallback.call(this),this.addSeeAllButton()}},{key:"disconnectedCallback",value:function(){EmbyAnchor.prototype.disconnectedCallback.call(this)}}])}(EmbyAnchor));customElements.define("emby-sectiontitle",EmbySectionTitle,{extends:"a"}),_exports.default=EmbyButton}); \ No newline at end of file diff --git a/modules/emby-elements/emby-button/emby-button_nontv.css b/modules/emby-elements/emby-button/emby-button_nontv.css new file mode 100644 index 0000000..0356d90 --- /dev/null +++ b/modules/emby-elements/emby-button/emby-button_nontv.css @@ -0,0 +1 @@ +@media (pointer:fine){.button-link:not([disabled]):hover{text-decoration:underline}.button-link:not([disabled]):active{text-decoration:underline}}@media not all and (pointer:fine){.raised{padding-top:.9em;padding-bottom:.9em}.raised-mini{padding-top:.6em;padding-bottom:.6em}.fab{padding:.9em}.fab-mini{padding:.6em}.button-link:not([disabled]):active{opacity:.7}} \ No newline at end of file diff --git a/modules/emby-elements/emby-button/emby-button_tv.css b/modules/emby-elements/emby-button/emby-button_tv.css new file mode 100644 index 0000000..ba03679 --- /dev/null +++ b/modules/emby-elements/emby-button/emby-button_tv.css @@ -0,0 +1 @@ +.button-link.emby-button:focus::before{position:absolute;top:0;left:-.35em;right:-.35em;bottom:0;content:" ";z-index:-1;border-radius:.6em;box-shadow:0 .25em .4375em rgba(0,0,0,.25);contain:strict}.emby-button-focusscale{transition:-webkit-transform .2s ease-out!important;transition:transform .2s ease-out!important;-webkit-transform-origin:center center;transform-origin:center center}.emby-button-focusscale:focus{-webkit-transform:scale(1.1);transform:scale(1.1);z-index:1}.emby-button-focusscale.block:focus{-webkit-transform:scale(1.025);transform:scale(1.025)}.icon-button-focusscale{transition:-webkit-transform .2s ease-out!important;transition:transform .2s ease-out!important;-webkit-transform-origin:center center;transform-origin:center center}.icon-button-focusscale:focus{-webkit-transform:scale(1.14);transform:scale(1.14);z-index:1} \ No newline at end of file diff --git a/modules/emby-elements/emby-button/paper-icon-button-light.js b/modules/emby-elements/emby-button/paper-icon-button-light.js new file mode 100644 index 0000000..06d5c06 --- /dev/null +++ b/modules/emby-elements/emby-button/paper-icon-button-light.js @@ -0,0 +1 @@ +define(["exports","./../../layoutmanager.js","./../../dom.js","./emby-button.js"],function(_exports,_layoutmanager,_dom,_embyButton){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var EnableFocusTransfrom=_dom.default.allowFocusScaling();function onInit(){var classList;this.hasInit||(this.hasInit=!0,(classList=this.classList).add("paper-icon-button-light"),_layoutmanager.default.tv&&EnableFocusTransfrom&&"false"!==this.getAttribute("data-focusscale")&&classList.add("emby-button-focusscale"))}_dom=function(_HTMLButtonElement){function PaperIconButtonLight(){var _this,self=_this=_HTMLButtonElement.call(this)||this;return onInit.call(self),babelHelpers.possibleConstructorReturn(_this,self)}return babelHelpers.inherits(PaperIconButtonLight,_HTMLButtonElement),babelHelpers.createClass(PaperIconButtonLight,[{key:"connectedCallback",value:function(){onInit.call(this)}}])}(babelHelpers.wrapNativeSuper(HTMLButtonElement));customElements.define("paper-icon-button-light",_dom,{extends:"button"}),_exports.default=_dom}); \ No newline at end of file diff --git a/modules/emby-elements/emby-checkbox/emby-checkbox.css b/modules/emby-elements/emby-checkbox/emby-checkbox.css new file mode 100644 index 0000000..fbe52f4 --- /dev/null +++ b/modules/emby-elements/emby-checkbox/emby-checkbox.css @@ -0,0 +1 @@ +.emby-checkbox-label{position:relative;vertical-align:middle;display:-webkit-inline-flex;display:inline-flex;box-sizing:border-box;width:100%;margin:0;padding:0;-webkit-align-items:center;align-items:center;outline:0!important}.checkboxFieldDescription{-webkit-padding-start:2.4em;padding-inline-start:2.4em}.checkboxContainer{margin-top:.3em;margin-bottom:1.5em;display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0}.checkboxListContainer{margin-bottom:1.41em}.listItem .checkboxContainer{margin-bottom:0}.checkboxContainer-withDescription{-webkit-flex-direction:column;flex-direction:column}.emby-checkbox{position:absolute;width:1px;height:1px;margin:0;padding:0;-webkit-appearance:none;appearance:none;border:none;outline:0!important;width:100%;height:100%;z-index:-1;background:0 0!important}.checkboxLabel{position:relative;margin:0;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:flex-start;align-items:flex-start;border-radius:.42em;-webkit-padding-end:.5em;padding-inline-end:.5em;z-index:1;-webkit-user-select:none;user-select:none}.emby-checkbox-notext+.checkboxLabel{-webkit-padding-end:0;padding-inline-end:0}.checkboxList>.emby-checkbox-label,.checkboxList>.checkboxContainer{display:-webkit-flex;display:flex;margin:.75em 0}.checkboxListLabel{margin-bottom:1rem}.checkboxLabel::before{content:"";display:inline-block;height:1.56em;width:1.56em;border:.16em solid;border-radius:.3em;position:static;-webkit-margin-end:.5em;margin-inline-end:.5em;margin-top:-.18em;-webkit-flex-shrink:0;flex-shrink:0}.emby-checkbox-notext+.checkboxLabel::before{-webkit-margin-end:0;margin-inline-end:0}.emby-checkbox[disabled]+.checkboxLabel::before{opacity:.5}.checkboxLabel::after{position:absolute;content:"";display:inline-block;height:.36em;width:1em;border-left:.18em solid;border-bottom:.18em solid;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);top:.32em;left:.33em;inset-inline-start:.33em;inset-inline-end:initial;color:#fff}.emby-checkbox-notext+.checkboxLabel::after{position:absolute;content:"";display:inline-block;height:.54em;width:1.18em;border-left:.18em solid;border-bottom:.18em solid;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);top:50%;left:50%;inset-inline-start:50%;inset-inline-end:initial;color:#fff;margin-top:-.4425em;-webkit-margin-start:-.59em;margin-inline-start:-.59em;box-sizing:border-box}.emby-checkbox+.checkboxLabel::after{display:none}.emby-checkbox:checked+.checkboxLabel::after{display:block}.emby-checkbox-focusoutline{display:none;position:absolute;top:-.94em;left:-.78em;inset-inline-start:-0.78em;inset-inline-end:initial;width:3.4em;height:3.4em;border-radius:100em}.emby-checkbox:focus-visible+.checkboxLabel+.emby-checkbox-focusoutline{display:block} \ No newline at end of file diff --git a/modules/emby-elements/emby-checkbox/emby-checkbox.js b/modules/emby-elements/emby-checkbox/emby-checkbox.js new file mode 100644 index 0000000..1f72464 --- /dev/null +++ b/modules/emby-elements/emby-checkbox/emby-checkbox.js @@ -0,0 +1 @@ +define(["exports","./../../input/keyboard.js"],function(_exports,_keyboard){function onKeyDown(e){var key=_keyboard.default.normalizeKeyFromEvent(e);if("Enter"===key)return e.preventDefault(),e.repeat?void 0:(this.checked=!this.checked,this.dispatchEvent(new CustomEvent("change",{bubbles:!0})),!1)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/emby-elements/emby-checkbox/emby-checkbox.css","css!tv|modules/emby-elements/emby-checkbox/emby-checkbox_tv.css"]);var EmbyCheckbox=function(_HTMLInputElement){function EmbyCheckbox(){var _this;_this=_HTMLInputElement.call(this)||this;return babelHelpers.possibleConstructorReturn(_this,_this)}return babelHelpers.inherits(EmbyCheckbox,_HTMLInputElement),babelHelpers.createClass(EmbyCheckbox,[{key:"connectedCallback",value:function(){var labelElement;!this.hasAttribute("data-classes")&&(this.classList.add("emby-checkbox"),(labelElement=this.parentNode).classList.add("emby-checkbox-label"),labelElement=labelElement.querySelector("span"))&&(labelElement.classList.add("checkboxLabel"),labelElement.insertAdjacentHTML("afterend",'
')),-1!==this.tabIndex&&this.addEventListener("keydown",onKeyDown)}},{key:"disconnectedCallback",value:function(){this.removeEventListener("keydown",onKeyDown)}}])}(babelHelpers.wrapNativeSuper(HTMLInputElement));customElements.define("emby-checkbox",EmbyCheckbox,{extends:"input"}),_exports.default=EmbyCheckbox}); \ No newline at end of file diff --git a/modules/emby-elements/emby-checkbox/emby-checkbox_tv.css b/modules/emby-elements/emby-checkbox/emby-checkbox_tv.css new file mode 100644 index 0000000..93a7435 --- /dev/null +++ b/modules/emby-elements/emby-checkbox/emby-checkbox_tv.css @@ -0,0 +1 @@ +.emby-checkbox:focus+.checkboxLabel+.emby-checkbox-focusoutline{display:block} \ No newline at end of file diff --git a/modules/emby-elements/emby-collapse/emby-collapse.css b/modules/emby-elements/emby-collapse/emby-collapse.css new file mode 100644 index 0000000..aa1eec0 --- /dev/null +++ b/modules/emby-elements/emby-collapse/emby-collapse.css @@ -0,0 +1 @@ +.emby-collapse{margin:.5em 0}.collapseContent{border-width:0;padding:1.25em 1.25em;height:0;transition:height .4s ease-out;overflow:hidden}.emby-collapsible-button{margin:0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;text-transform:none;width:100%;text-align:start;text-transform:none;-webkit-padding-start:.1em;padding-inline-start:.1em;background:0 0;box-shadow:none}.emby-collapsible-button-collapsed::after{position:absolute;content:" ";bottom:-.15em;left:0;right:0;height:.08em}.emby-collapse-expandIcon{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;font-size:1.66956521739130434em;-webkit-transform:rotate(270deg);transform:rotate(270deg);-webkit-margin-start:auto;margin-inline-start:auto;-webkit-flex-shrink:0;flex-shrink:0}.emby-collapse-expandIcon-rtl{-webkit-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}.emby-collapse-expandIconExpanded{-webkit-transform:none!important;transform:none!important}.emby-collapsible-title{margin:0;padding:0} \ No newline at end of file diff --git a/modules/emby-elements/emby-collapse/emby-collapse.js b/modules/emby-elements/emby-collapse/emby-collapse.js new file mode 100644 index 0000000..1ec01a0 --- /dev/null +++ b/modules/emby-elements/emby-collapse/emby-collapse.js @@ -0,0 +1 @@ +define(["exports","./../../dom.js","./../emby-button/emby-button.js"],function(_exports,_dom,_embyButton){function setState(button,expanded,animate){var collapseContent=button.parentNode.querySelector(".collapseContent");(collapseContent.expanded=expanded)?function(button,elem,animate){elem.classList.remove("hide"),elem.classList.add("expanded"),elem.style.height="auto",animate&&(animate=elem.offsetHeight+"px",elem.style.height="0",elem.offsetHeight,elem.style.height=animate,setTimeout(function(){elem.classList.contains("expanded")?elem.classList.remove("hide"):elem.classList.add("hide"),elem.style.height="auto"},400)),button.querySelector("i").classList.add("emby-collapse-expandIconExpanded"),button.classList.remove("emby-collapsible-button-collapsed")}(button,collapseContent,!1!==animate):function(button,elem){elem.style.height=elem.offsetHeight+"px",elem.offsetHeight,elem.classList.remove("expanded"),elem.style.height="0",setTimeout(function(){button.classList.add("emby-collapsible-button-collapsed"),elem.classList.contains("expanded")?elem.classList.remove("hide"):elem.classList.add("hide")},400),button.querySelector("i").classList.remove("emby-collapse-expandIconExpanded")}(button,collapseContent)}function onButtonClick(e,animate){var collapseContent=this.parentNode.querySelector(".collapseContent");setState(this,!0!==collapseContent.expanded,animate)}function onInit(){this.hasInit||(this.hasInit=!0)}function onButtonDragEnter(e){this.parentNode.querySelector(".collapseContent").expanded||this.click()}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/emby-elements/emby-collapse/emby-collapse.css"]);var EmbyCollapse=function(_HTMLDivElement){function EmbyCollapse(){var _this,self=_this=_HTMLDivElement.call(this)||this;return onInit.call(self),babelHelpers.possibleConstructorReturn(_this,self)}return babelHelpers.inherits(EmbyCollapse,_HTMLDivElement),babelHelpers.createClass(EmbyCollapse,[{key:"expand",value:function(){var button=this.querySelector(".emby-collapsible-button");button&&setState(button,!0,!1)}},{key:"collapse",value:function(){var button=this.querySelector(".emby-collapsible-button");button&&setState(button,!1,!1)}},{key:"connectedCallback",value:function(){onInit.call(this),function(){var collapseContent,headerClass,expandIconClass,buttonClass;this.classList.contains("emby-collapse")||(this.classList.add("emby-collapse"),(collapseContent=this.querySelector(".collapseContent"))&&collapseContent.classList.add("hide"),collapseContent=this.getAttribute("title"),this.title="",headerClass=((this.getAttribute("data-headerclass")||"")+" emby-collapsible-title").trim(),buttonClass=((this.getAttribute("data-buttonclass")||"")+" emby-collapsible-button").trim(),expandIconClass="emby-collapse-expandIcon","rtl"===document.dir&&(expandIconClass+=" emby-collapse-expandIcon-rtl"),expandIconClass=((this.getAttribute("data-iconclass")||"")+" md-icon "+expandIconClass).trim(),this.insertAdjacentHTML("afterbegin",''),(buttonClass=this.querySelector(".emby-collapsible-button")).addEventListener("click",onButtonClick),"true"===this.getAttribute("data-expanded")?setState(buttonClass,!0,!1):buttonClass.classList.add("emby-collapsible-button-collapsed"),_dom.default.addEventListener(buttonClass,"dragenter",onButtonDragEnter,{passive:!0}))}.call(this)}}])}(babelHelpers.wrapNativeSuper(HTMLDivElement));customElements.define("emby-collapse",EmbyCollapse,{extends:"div"}),_exports.default=EmbyCollapse}); \ No newline at end of file diff --git a/modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.css b/modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.css new file mode 100644 index 0000000..11f0ead --- /dev/null +++ b/modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.css @@ -0,0 +1 @@ +.dialogCloseButton{margin-top:0;margin-bottom:0;-webkit-flex-shrink:0;flex-shrink:0}.dialogCloseButton-positionstart{position:absolute;left:1em;inset-inline-start:1em;inset-inline-end:initial} \ No newline at end of file diff --git a/modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js b/modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js new file mode 100644 index 0000000..bf0d884 --- /dev/null +++ b/modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js @@ -0,0 +1 @@ +define(["exports","./../../layoutmanager.js","./../../dialoghelper/dialoghelper.js","./../../common/globalize.js","./../../dom.js"],function(_exports,_layoutmanager,_dialoghelper,_globalize,_dom){function onInit(){var header;this.hasInit||(this.hasInit=!0,this.classList.add("dialogCloseButton","hide-mouse-idle-tv","dialogHeaderButton","paper-icon-button-light"),this.setAttribute("tabindex","-1"),(null==(header=this.closest(".formDialogHeader"))?void 0:header.classList.contains("justify-content-center"))&&this.classList.add("dialogCloseButton-positionstart"),_layoutmanager.default.tv||"done"===this.getAttribute("closetype")&&this.classList.add("dialogCloseButton-autoright"),"true"===this.getAttribute("data-blur")&&(this.classList.add("paper-icon-button-light-blur"),_dom.default.allowBackdropFilter())&&this.classList.add("paper-icon-button-light-blur-bf"),this.addEventListener("click",onClick),this.innerHTML=function(instance){var html="";return _layoutmanager.default.tv||"done"!==instance.getAttribute("closetype")?html+'':(html+='')+''+_globalize.default.translate("Done")+""}(this))}function onClick(){var dlg=this.closest(".dialog");dlg&&_dialoghelper.default.close(dlg)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.css","css!!tv|modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton_nontv.css"]);var EmbyDialogCloseButton=function(_HTMLButtonElement){function EmbyDialogCloseButton(){var _this,self=_this=_HTMLButtonElement.call(this)||this;return onInit.call(self),babelHelpers.possibleConstructorReturn(_this,self)}return babelHelpers.inherits(EmbyDialogCloseButton,_HTMLButtonElement),babelHelpers.createClass(EmbyDialogCloseButton,[{key:"connectedCallback",value:function(){onInit.call(this)}},{key:"disconnectedCallback",value:function(){var observer=this.observer;observer&&(observer.disconnect(),this.observer=null)}}])}(babelHelpers.wrapNativeSuper(HTMLButtonElement));customElements.define("emby-dialogclosebutton",EmbyDialogCloseButton,{extends:"button"}),_exports.default=EmbyDialogCloseButton}); \ No newline at end of file diff --git a/modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton_nontv.css b/modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton_nontv.css new file mode 100644 index 0000000..fc19bf9 --- /dev/null +++ b/modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton_nontv.css @@ -0,0 +1 @@ +@media not all and (pointer:fine){.dialogCloseButton{font-size:118%;font-weight:600;background:0 0}.dialogCloseButton-autoright{-webkit-order:1000;order:1000;-webkit-margin-start:auto!important;margin-inline-start:auto!important}.dialogCloseButton-positionstart.dialogCloseButton-autoright{-webkit-margin-start:0!important;margin-inline-start:0!important;left:initial;right:1em;inset-inline-start:initial;inset-inline-end:1em}.dialogCloseButton:active{background-color:transparent;opacity:.5}} \ No newline at end of file diff --git a/modules/emby-elements/emby-file-input/emby-file-input.css b/modules/emby-elements/emby-file-input/emby-file-input.css new file mode 100644 index 0000000..749f744 --- /dev/null +++ b/modules/emby-elements/emby-file-input/emby-file-input.css @@ -0,0 +1 @@ +.emby-file-input{color:transparent}.emby-file-input::file-selector-button{display:none!important} \ No newline at end of file diff --git a/modules/emby-elements/emby-file-input/emby-file-input.js b/modules/emby-elements/emby-file-input/emby-file-input.js new file mode 100644 index 0000000..71600e6 --- /dev/null +++ b/modules/emby-elements/emby-file-input/emby-file-input.js @@ -0,0 +1 @@ +require(["css!modules/emby-elements/emby-file-input/emby-file-input.css"]); \ No newline at end of file diff --git a/modules/emby-elements/emby-input/emby-input.css b/modules/emby-elements/emby-input/emby-input.css new file mode 100644 index 0000000..409df91 --- /dev/null +++ b/modules/emby-elements/emby-input/emby-input.css @@ -0,0 +1 @@ +.emby-input{display:block;margin:0;margin-bottom:0!important;font-size:inherit;font-family:inherit;font-weight:inherit;padding:0 1ch;height:3em;box-sizing:border-box;outline:0!important;-webkit-tap-highlight-color:transparent;width:100%;border-radius:.3em;letter-spacing:inherit}@media all and (pointer:fine){.emby-input-smaller{height:2.4em}}.emby-input::-webkit-input-placeholder{font-family:inherit}.emby-input::placeholder{font-family:inherit}.emby-input:disabled{opacity:.5}.emby-input::-moz-focus-inner{border:0}.inputContainer{margin-bottom:1.5em}.inputLabel{display:inline-block;margin-bottom:.1em;-webkit-user-select:none;user-select:none}.emby-input-iconbutton{-webkit-align-self:flex-end;align-self:flex-end}.emby-input-hide-spin-button{-moz-appearance:textfield}.emby-input-hide-spin-button::-webkit-outer-spin-button,.emby-input-hide-spin-button::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.emby-input-actionsheet{font-size:92%;width:24em!important}.emby-input-text-security{-moz-text-security:disc;-webkit-text-security:disc} \ No newline at end of file diff --git a/modules/emby-elements/emby-input/emby-input.js b/modules/emby-elements/emby-input/emby-input.js new file mode 100644 index 0000000..650c7d1 --- /dev/null +++ b/modules/emby-elements/emby-input/emby-input.js @@ -0,0 +1 @@ +define(["exports","./../../dom.js","./../../layoutmanager.js","./../../actionsheet/actionsheet.js","./../../focusmanager.js"],function(_exports,_dom,_layoutmanager,_actionsheet,_focusmanager){function _superPropSet(t,e,o,r,p,f){babelHelpers.set(babelHelpers.getPrototypeOf(f?t.prototype:t),e,o,r,p)}function _superPropGet(t,o,e,r){var p=babelHelpers.get(babelHelpers.getPrototypeOf(1&r?t.prototype:t),o,e);return 2&r&&"function"==typeof p?function(t){return p.apply(e,t)}:p}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var ActionSheet=_actionsheet.default.constructor;function onFocus(){var _this$labelElement;document.attachIME&&document.attachIME(this),null!=(_this$labelElement=this.labelElement)&&_this$labelElement.classList.add("inputLabelFocused")}function onBlur(){var _this$labelElement2;null!=(_this$labelElement2=this.labelElement)&&_this$labelElement2.classList.remove("inputLabelFocused")}function destroyActionSheet(elem){clearInputTimer(elem);var actionsheet=elem.actionsheet;actionsheet&&(actionsheet.isShowing()&&actionsheet.close(),actionsheet.destroy(),elem.actionsheet=null)}function clearInputTimer(elem){elem.inputTimeout&&clearTimeout(elem.inputTimeout)}function onInput(){clearInputTimer(this),this.value.trim()?this.inputTimeout=setTimeout(function(){var options,refocus,elem=this,value=elem.value.trim();if(console.log("onInputTimeout: "+value),value){if(!elem.actionsheet)return value=new ActionSheet,elem.actionsheet=value,options={getItems:elem.getItems,enableVirtualScroller:!1,positionTo:elem,resolveWithSelectedItem:!0,hasItemIcon:!0,iconRight:!1,fields:["Name","Type","ParentName"],dialogClass:"emby-input-actionsheet",offsetTop:2,refocus:!1,artist:!1,enableDefaultIcon:!0,imageSize:"small",hasItemImage:!0,setCurrentFocusScope:!1},_layoutmanager.default.tv||(options.positionY="bottom",options.positionX="left",options.transformOrigin="center top",options.minWidthToElement=!0),refocus="false"!==elem.getAttribute("data-refocus"),elem.dispatchEvent(new CustomEvent("selectionopen",{bubbles:!1,cancelable:!1,detail:{}})),value.show(options).then(function(item){elem.value=item.Name,elem.dispatchEvent(new CustomEvent("itemselected",{bubbles:!1,cancelable:!1,detail:{item:item}})),refocus&&_focusmanager.default.focus(elem),elem.dispatchEvent(new CustomEvent("selectionclose",{bubbles:!1,cancelable:!1,detail:{}})),destroyActionSheet(elem)},function(){elem.dispatchEvent(new CustomEvent("selectioncancel",{bubbles:!1,cancelable:!1,detail:{}})),refocus&&_focusmanager.default.focus(elem),elem.dispatchEvent(new CustomEvent("selectionclose",{bubbles:!1,cancelable:!1,detail:{}})),destroyActionSheet(elem)});elem.actionsheet.refreshItems()}else destroyActionSheet(elem)}.bind(this),400):destroyActionSheet(this)}function isDecimal(val){return!Number.isInteger(parseFloat(val))}require(["css!modules/emby-elements/emby-input/emby-input.css"]);var inputId=0;function onInit(){var label,labelClass,parentNode=this.parentNode;parentNode&&(this.hasInit||(this.hasInit=!0,this.id||(this.id="embyinput"+inputId,inputId++),this.classList.contains("emby-input"))?this.labelElement&&(this.labelElement.htmlFor=this.id):(this.classList.add("emby-input"),_layoutmanager.default.tv?"number"===this.type&&this.classList.add("emby-input-hide-spin-button"):this.classList.add("emby-input-smaller"),(label=this.ownerDocument.createElement("label")).innerHTML=this.getAttribute("label")||"",label.classList.add("inputLabel"),(labelClass=this.getAttribute("labelclass"))&&label.classList.add(labelClass),label.htmlFor=this.id,parentNode.insertBefore(label,this),this.labelElement=label,_dom.default.addEventListener(this,"focus",onFocus,{passive:!0}),_dom.default.addEventListener(this,"blur",onBlur,{passive:!0}),"true"===this.getAttribute("data-autocompleteitems")&&_dom.default.addEventListener(this,"input",onInput,{passive:!0}),function(elem){var isDecimalInput;"number"===elem.type&&(isDecimalInput=isDecimal(elem.getAttribute("step"))||isDecimal(elem.getAttribute("min"))||isDecimal(elem.getAttribute("max")),elem.setAttribute("inputmode",isDecimalInput?"decimal":"numeric"))}(this)))}function roundMsToStep(ms,step){return step=step||1,step*=1e3,ms-ms%(step=Math.floor(step))}var supportsValueAsNumber=void 0!==document.createElement("input").valueAsNumber,supportsValueAsDate=void 0!==document.createElement("input").valueAsDate;function pad(num,size){for(var s=num+"";s.length"+listItemOptions.templateInnerHTML+"",itemParts.fetchItems=this.fetchData.bind(this),(this.virtualScroller=itemParts).updateElement=this.updateVirtualElement.bind(this),itemParts.onRecycleElement=this.onRecycleElement,isNewVirtualScroller)||itemParts.resetAll(),focusIndexElement&&!listOptionsSet&&focusIndexElement.renderer.setListOptions(items,focusIndexElement.options),this.items=null,this.onRefreshing&&this.onRefreshing(result),itemParts.setItemSource(items,result.TotalRecordCount),parentContainer=50):(this._hasOtherInnerHtml=null,this.classList.remove("virtualItemsContainer"),this.currentListOptions=focusIndexElement,this.onRefreshing&&this.onRefreshing(result),focusIndexElement?(focusIndexElement.options.horizontalGrid||(focusIndexElement.options.horizontal=null),"number"==typeof focusIndexElement.options.rowCount&&this.classList.add("itemRows"+focusIndexElement.options.rowCount),focusIndexElement.options.isVirtualList=null,this.innerHTML=focusIndexElement.renderer.getItemsHtml(items,focusIndexElement.options)):this.innerHTML=this.getItemsHtml(items),this.virtualScroller&&this.virtualScroller.disconnectedCallback(),this.virtualScroller=null,this.items=items,listItemOptions&&!1===listItemOptions.image||_lazyimageloader.default.lazyChildren(this)),!focusIndexElement||!focusIndexElement.options.dropTarget&&!1===focusIndexElement.options.anyDraggable||(isNewVirtualScroller=this,_layoutmanager.default.tv)||isNewVirtualScroller._dragEventsBound||(isNewVirtualScroller._dragEventsBound=!0,isNewVirtualScroller.addEventListener("dragstart",onItemDragStart),isNewVirtualScroller.addEventListener("drag",onItemDrag),isNewVirtualScroller.addEventListener("dragend",onItemDragEnd),isNewVirtualScroller.addEventListener("dragendcomplete",onItemDragEndComplete),isNewVirtualScroller.addEventListener("dragenter",onItemDragOver),isNewVirtualScroller.addEventListener("dragover",onItemDragOver),isNewVirtualScroller.addEventListener("dragleave",onItemDragLeave),isNewVirtualScroller.addEventListener("drop",onItemDrop)),this.enableContextMenu(listItemOptions&&listItemOptions.contextMenu),this.enableMultiSelect(listItemOptions&&listItemOptions.multiSelect),(parentContainer?function(delay){return new Promise(function(resolve,reject){setTimeout(resolve,delay)})}(parentContainer):Promise.resolve()).then(function(){hasActiveElement&&(null!=scrollPosition?this.closest(".emby-scroller").scrollToPosition({position:scrollPosition,behavior:"instant"}):function(itemsContainer,focusId,focusIndex){if(console.log("setFocus: focusId: "+focusId+", focusIndex: "+focusIndex),focusId){focusId=itemsContainer.indexOfItemId(focusId);if(-1!==focusId)return console.log("setFocus: found item at index "+focusId),itemsContainer.scrollToIndex(focusId,{},!0)}if(null!=focusIndex&&(focusIndex=parseInt(focusIndex),0<=(focusIndex=Math.min(focusIndex,itemsContainer.getItems().length-1))))return itemsContainer.scrollToIndex(focusIndex,{},!0);focusId={skipIfNotEnabled:!0};console.log("setFocus: auto-focusing into itemsContainer"),_focusmanager.default.autoFocus(itemsContainer,focusId)||(focusIndex=itemsContainer.closest(".view"))&&(null!=(itemsContainer=focusIndex.controller)&&itemsContainer.autoFocus?focusIndex.controller.autoFocus(focusId):_focusmanager.default.autoFocus(focusIndex,focusId))}(this,focusId,focusIndex));var dataItemIds=this.getAttribute("data-monitorids");this.mergeRefreshOptions({refreshIntervalMs:parseInt(this.getAttribute("data-refreshinterval")||"0"),immediateUpdate:"false"!==this.getAttribute("data-immediateupdate"),enableUserData:listItemOptions&&listItemOptions.enableUserData,refreshOnItemUpdated:this.refreshOnItemUpdated,parentId:this.getAttribute("data-parentid")||null,itemIds:dataItemIds?dataItemIds.split(","):[]}),this.afterRefresh&&this.afterRefresh(result)}.bind(this))}function getClosest(node,selector){return node.closest?node.closest(selector):(node=node.parentNode)?getClosest(node,selector):null}function onItemDragStart(e){var _e$detail,item,multiSelectedItems,itemsContainer;!RequiresDragEventsPolyfill||null!=(_e$detail=e.detail)&&_e$detail.polyfill?(e.dataTransfer.effectAllowed="copy",(_e$detail=getClosest(e.target,'[draggable="true"]'))&&(itemsContainer=_e$detail.closest(".itemsContainer"),item=_shortcuts.default.getItemFromChildNode(_e$detail,null,itemsContainer),multiSelectedItems=(null==MultiSelect?void 0:MultiSelect.getSelectedItems())||[],window.CurrentDragInfo={element:_e$detail,elementIndex:itemsContainer.indexOfElement(_e$detail),item:item,items:multiSelectedItems.length?multiSelectedItems:[item]},itemsContainer=e.detail,headerElement.classList.add("headerElement-drag-reorder-active"),itemsContainer.dragY&&_e$detail.classList.contains("ordered-drop-target-y")?(e.dataTransfer.effectAllowed="copyMove",(appFooter=appFooter||document.querySelector(".appfooter"))&&appFooter.classList.add("appfooter-drag-reorder-active")):itemsContainer.dragX&&_e$detail.classList.contains("ordered-drop-target-x")&&(e.dataTransfer.effectAllowed="move"))):e.preventDefault()}function onItemDrag(e){var target=e.target;target.classList.contains("dragging-over-x-axis")&&function(e,elem,item,itemsContainer){(function(elem,item,itemsContainer){var xAxisContent=elem.querySelector(".listItem-drag-x-axis-content");if(!xAxisContent){var xAxisContent=null==(xAxisContent=_connectionmanager.default.getApiClient(item))?void 0:xAxisContent.getCurrentUserCached(),itemsContainer=Object.assign({},itemsContainer.getCommandOptions(item),{items:[item],user:xAxisContent}),commands=_itemmanager.default.getCommands(itemsContainer).filter(isXAxisCommand),item=elem.querySelector(".listItem-content"),html="";html=html+'
'+'
';for(var i=0,length=commands.length;i'+command.icon+"";break}}html=html+"
"+'
';for(var _i2=0,_length2=commands.length;_i2<_length2;_i2++){var _command=commands[_i2];if("right"===_command.horizontalDragSection){html+='";break}}html=html+"
"+"
",item.insertAdjacentHTML("afterend",html)}})(elem,item,itemsContainer),elem.leftDragSection||(elem.leftDragSection=elem.querySelector(".listItem-drag-x-axis-content-left"));elem.rightDragSection||(elem.rightDragSection=elem.querySelector(".listItem-drag-x-axis-content-right"));item=e.detail.pt,itemsContainer=e.detail.ptDown,e=item.x-itemsContainer.x,item=Math.abs(e),itemsContainer=elem.cachedOffsetWidth;itemsContainer||(itemsContainer=elem.offsetWidth,elem.cachedOffsetWidth=itemsContainer);var pct=0;itemsContainer&&MinXDragPct<=(pct=item/itemsContainer*100)?elem.vibratedForXDrag||(tryVibrate(),elem.vibratedForXDrag=!0):elem.vibratedForXDrag=null;0'+labelText+"
"),label.classList.add("selectLabel")):((label=this.ownerDocument.createElement("label")).classList.add("selectLabel","selectLabelText"),label.innerHTML=labelText,label.htmlFor=this.id,insertLabel=!0),labelText="selectArrowContainer",this.classList.contains("emby-multilineselect-inline")&&(label.classList.add("selectLabel2-inline"),labelText+=" selectArrowContainer-inline"),insertLabel&&container.insertBefore(label,wrapper),this.classList.contains("emby-multilineselect-withcolor")&&this.parentNode.insertAdjacentHTML("beforeend",'
')):((insertLabel=document.createElement("div")).classList.add("emby-select-wrapper"),this.parentNode.replaceChild(insertLabel,this),insertLabel.appendChild(this)))}.call(this)}},{key:"setLabel",value:function(){!function(text){this.parentNode.parentNode.querySelector("label").innerHTML=text}.apply(this,arguments)}}])}(babelHelpers.wrapNativeSuper(HTMLSelectElement));customElements.define("emby-multilineselect",EmbyMultiLineSelect,{extends:"select"}),_exports.default=EmbyMultiLineSelect}); \ No newline at end of file diff --git a/modules/emby-elements/emby-multilineselect/emby-multilineselect_tv.css b/modules/emby-elements/emby-multilineselect/emby-multilineselect_tv.css new file mode 100644 index 0000000..fa4abfa --- /dev/null +++ b/modules/emby-elements/emby-multilineselect/emby-multilineselect_tv.css @@ -0,0 +1 @@ +.emby-multilineselect-focusscale:focus{-webkit-transform:scale(1.04);transform:scale(1.04);z-index:1}.emby-multilineselect-inline{width:auto;padding-right:.5em}.emby-multilineselect-inline.emby-multilineselect+.selectArrowContainer{display:none} \ No newline at end of file diff --git a/modules/emby-elements/emby-premierecontainer/emby-premierecontainer.css b/modules/emby-elements/emby-premierecontainer/emby-premierecontainer.css new file mode 100644 index 0000000..df7f58e --- /dev/null +++ b/modules/emby-elements/emby-premierecontainer/emby-premierecontainer.css @@ -0,0 +1 @@ +.premirecontainer-forcehide{display:none!important} \ No newline at end of file diff --git a/modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js b/modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js new file mode 100644 index 0000000..52a4582 --- /dev/null +++ b/modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js @@ -0,0 +1 @@ +define(["exports","./../../registrationservices/registrationservices.js","./../../common/servicelocator.js"],function(_exports,_registrationservices,_servicelocator){function showElementIfUnlocked(elem,unlocks,index){var inverse,unlock=unlocks[index];unlock?(inverse=!1,(unlock=unlock).startsWith("!")&&(unlock=unlock.substring(1),inverse=!0),_servicelocator.iapManager.isUnlockedByDefault(unlock).then(function(){inverse?elem.classList.add("premirecontainer-forcehide"):showElementIfUnlocked(elem,unlocks,index+1)},function(){inverse?showElementIfUnlocked(elem,unlocks,index+1):elem.classList.add("premirecontainer-forcehide")})):elem.classList.remove("premirecontainer-forcehide")}function checkStatus(elem){_registrationservices.default.validateFeature("dvr",{showDialog:!1,viewOnly:!0}).then(function(){elem.classList.add("premirecontainer-forcehide")},function(){!function(elem){var showIfUnlocked=elem.getAttribute("data-showifunlocked");showElementIfUnlocked(elem,showIfUnlocked?showIfUnlocked.split(","):[],0)}(elem)})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/emby-elements/emby-premierecontainer/emby-premierecontainer.css"]);var EmbyPremiereContainer=function(_HTMLDivElement){function EmbyPremiereContainer(){var _this,self=_this=_HTMLDivElement.call(this)||this;return function(){this.hasInit||(this.hasInit=!0,this.classList.add("premirecontainer-forcehide"))}.call(self),babelHelpers.possibleConstructorReturn(_this,self)}return babelHelpers.inherits(EmbyPremiereContainer,_HTMLDivElement),babelHelpers.createClass(EmbyPremiereContainer,[{key:"connectedCallback",value:function(){checkStatus(this)}},{key:"disconnectedCallback",value:function(){}}])}(babelHelpers.wrapNativeSuper(HTMLDivElement));customElements.define("emby-premierecontainer",EmbyPremiereContainer,{extends:"div"}),_exports.default=EmbyPremiereContainer}); \ No newline at end of file diff --git a/modules/emby-elements/emby-progressbar/emby-progressbar.js b/modules/emby-elements/emby-progressbar/emby-progressbar.js new file mode 100644 index 0000000..6dbb2d9 --- /dev/null +++ b/modules/emby-elements/emby-progressbar/emby-progressbar.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var EmbyProgressBar=function(_HTMLDivElement){function EmbyProgressBar(){var _this;_this=_HTMLDivElement.call(this)||this;return babelHelpers.possibleConstructorReturn(_this,_this)}return babelHelpers.inherits(EmbyProgressBar,_HTMLDivElement),babelHelpers.createClass(EmbyProgressBar,[{key:"connectedCallback",value:function(){this.timeInterval&&clearInterval(this.timeInterval),"time"===this.getAttribute("data-automode")&&(this.timeInterval=setInterval(function(){var start=parseInt(this.getAttribute("data-starttime")),end=parseInt(this.getAttribute("data-endtime")),end=(Date.now()-start)/(end-start)*100,end=Math.min(100,end);end=Math.max(0,end),this.querySelector(".itemProgressBarForeground").style.width=end+"%"}.bind(this),6e4))}},{key:"disconnectedCallback",value:function(){this.timeInterval&&(clearInterval(this.timeInterval),this.timeInterval=null)}}])}(babelHelpers.wrapNativeSuper(HTMLDivElement));customElements.define("emby-progressbar",EmbyProgressBar,{extends:"div"}),_exports.default=EmbyProgressBar}); \ No newline at end of file diff --git a/modules/emby-elements/emby-progressring/emby-progressring.css b/modules/emby-elements/emby-progressring/emby-progressring.css new file mode 100644 index 0000000..d30d879 --- /dev/null +++ b/modules/emby-elements/emby-progressring/emby-progressring.css @@ -0,0 +1 @@ +.progressring{width:2.6em;height:2.6em;-webkit-user-select:none;user-select:none;box-sizing:border-box;position:absolute;top:50%;left:50%;inset-inline-start:50%;inset-inline-end:initial;-webkit-margin-start:-1.3em;margin-inline-start:-1.3em;margin-top:-1.3em}.progressring-bg{width:100%;height:100%;border-radius:50%;border:.25em solid #000;box-sizing:border-box;background:rgba(0,0,0,.9);display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}.progressring-text{text-align:center;color:#ddd;font-size:90%}.spiner-holder-one{position:absolute;top:0;left:0;overflow:hidden;width:51%;height:51%;background:0 0;box-sizing:border-box}.spiner-holder-two{position:absolute;top:0;left:0;overflow:hidden;width:100%;height:100%;background:0 0;box-sizing:border-box}.progressring-spiner{width:200%;height:200%;border-radius:50%;border-width:.25em;border-style:solid;box-sizing:border-box}.animate-0-25-a{-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:-webkit-transform 180ms ease-out;transition:transform 180ms ease-out}.animate-0-25-b{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:-webkit-transform 180ms ease-out;transition:transform 180ms ease-out}.animate-25-50-a{-webkit-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:-webkit-transform 180ms ease-out;transition:transform 180ms ease-out}.animate-25-50-b{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:-webkit-transform 180ms ease-out;transition:transform 180ms ease-out}.animate-50-75-a{-webkit-transform:rotate(270deg);transform:rotate(270deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:-webkit-transform 180ms ease-out;transition:transform 180ms ease-out}.animate-50-75-b{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:-webkit-transform 180ms ease-out;transition:transform 180ms ease-out}.animate-75-100-a{-webkit-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:-webkit-transform 180ms ease-out;transition:transform 180ms ease-out}.animate-75-100-b{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:-webkit-transform 180ms ease-out;transition:transform 180ms ease-out} \ No newline at end of file diff --git a/modules/emby-elements/emby-progressring/emby-progressring.js b/modules/emby-elements/emby-progressring/emby-progressring.js new file mode 100644 index 0000000..04ffe96 --- /dev/null +++ b/modules/emby-elements/emby-progressring/emby-progressring.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function onInit(){this.hasInit||(this.hasInit=!0,this.classList.add("progressring"),this.innerHTML='
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
',this.setProgress(parseFloat(this.getAttribute("data-progress")||"0")))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/emby-elements/emby-progressring/emby-progressring.css"]);var EmbyProgressRing=function(_HTMLDivElement){function EmbyProgressRing(){var _this,self=_this=_HTMLDivElement.call(this)||this;return onInit.call(self),babelHelpers.possibleConstructorReturn(_this,self)}return babelHelpers.inherits(EmbyProgressRing,_HTMLDivElement),babelHelpers.createClass(EmbyProgressRing,[{key:"connectedCallback",value:function(){onInit.call(this)}},{key:"disconnectedCallback",value:function(){var observer=this.observer;observer&&(observer.disconnect(),this.observer=null)}},{key:"setProgress",value:function(progress){var angle;(progress=Math.floor(progress))<25?(angle=progress/100*360-90,this.querySelector(".animate-0-25-b").style.transform="rotate("+angle+"deg)",this.querySelector(".animate-25-50-b").style.transform="rotate(-90deg)",this.querySelector(".animate-50-75-b").style.transform="rotate(-90deg)",this.querySelector(".animate-75-100-b").style.transform="rotate(-90deg)"):25<=progress&&progress<50?(angle=(progress-25)/100*360-90,this.querySelector(".animate-0-25-b").style.transform="none",this.querySelector(".animate-25-50-b").style.transform="rotate("+angle+"deg)",this.querySelector(".animate-50-75-b").style.transform="rotate(-90deg)",this.querySelector(".animate-75-100-b").style.transform="rotate(-90deg)"):50<=progress&&progress<75?(angle=(progress-50)/100*360-90,this.querySelector(".animate-0-25-b").style.transform="none",this.querySelector(".animate-25-50-b").style.transform="none",this.querySelector(".animate-50-75-b").style.transform="rotate("+angle+"deg)",this.querySelector(".animate-75-100-b").style.transform="rotate(-90deg)"):75<=progress&&progress<=100&&(angle=(progress-75)/100*360-90,this.querySelector(".animate-0-25-b").style.transform="none",this.querySelector(".animate-25-50-b").style.transform="none",this.querySelector(".animate-50-75-b").style.transform="none",this.querySelector(".animate-75-100-b").style.transform="rotate("+angle+"deg)"),this.querySelector(".progressring-text").innerHTML=progress+"%"}}])}(babelHelpers.wrapNativeSuper(HTMLDivElement));customElements.define("emby-progressring",EmbyProgressRing,{extends:"div"}),_exports.default=EmbyProgressRing}); \ No newline at end of file diff --git a/modules/emby-elements/emby-radio/emby-radio.css b/modules/emby-elements/emby-radio/emby-radio.css new file mode 100644 index 0000000..2e84533 --- /dev/null +++ b/modules/emby-elements/emby-radio/emby-radio.css @@ -0,0 +1 @@ +.emby-radio-label{position:relative;display:inline-block;box-sizing:border-box;margin:0;-webkit-margin-start:0.3em;margin-inline-start:.3em;-webkit-padding-start:2.05em;padding-inline-start:2.05em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;margin-top:1em;margin-bottom:1em;-webkit-user-select:none;user-select:none;cursor:pointer}.radioButtonLabel{-webkit-user-select:none;user-select:none;font-weight:500;padding-bottom:1px}.radioFieldDescription{margin-top:-1em;margin-bottom:1.2em;display:block;-webkit-padding-start:2.4em;padding-inline-start:2.4em}.radioContainer{margin-bottom:1.5em;position:relative;-webkit-user-select:none;user-select:none}.emby-radio{line-height:24px;position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0;-webkit-appearance:none;appearance:none;border:none}.emby-radio-focusoutline{display:none;position:absolute;top:0;bottom:0;left:0;box-sizing:border-box;width:1.2em;height:1.2em;margin:auto 0;border-radius:50%;-webkit-transform:scale(2.2);transform:scale(2.2)}.emby-radio:focus-visible~.emby-radio-focusoutline{display:block}.emby-radio-outer-circle{position:absolute;top:0;bottom:0;left:0;display:inline-block;box-sizing:border-box;width:1.2em;height:1.2em;margin:auto 0;cursor:pointer;border:.15em solid currentcolor;border-radius:50%;opacity:.7}.emby-radio:checked+.emby-radio-label+.emby-radio-outer-circle{opacity:1}.emby-radio:disabled+.emby-radio-label+.emby-radio-outer-circle{opacity:.4;cursor:auto}.emby-radio-inner-circle{position:absolute;margin:auto 0;top:0;bottom:0;left:0;box-sizing:border-box;width:1.2em;height:1.2em;cursor:pointer;transition-duration:.28s;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-property:-webkit-transform;transition-property:transform;-webkit-transform:scale3d(0,0,0);transform:scale3d(0,0,0);border-radius:50%;border:solid .26em transparent;-webkit-clip-path:padding-box;clip-path:padding-box}.emby-radio:checked~.emby-radio-inner-circle{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.emby-radio:disabled~.emby-radio-outer-circle,.emby-radio:disabled~.emby-radio-innter-circle{opacity:.4;cursor:auto}.emby-radio:disabled+.radioButtonLabel{opacity:.7;cursor:auto} \ No newline at end of file diff --git a/modules/emby-elements/emby-radio/emby-radio.js b/modules/emby-elements/emby-radio/emby-radio.js new file mode 100644 index 0000000..bea78ca --- /dev/null +++ b/modules/emby-elements/emby-radio/emby-radio.js @@ -0,0 +1 @@ +define(["exports","./../../input/keyboard.js"],function(_exports,_keyboard){function onKeyDown(e){var key=_keyboard.default.normalizeKeyFromEvent(e);if("Enter"===key)return e.preventDefault(),e.repeat?void 0:(this.checked=!this.checked,this.dispatchEvent(new CustomEvent("change",{bubbles:!0})),!1)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/emby-elements/emby-radio/emby-radio.css","css!tv|modules/emby-elements/emby-radio/emby-radio_tv.css"]);var inputId=0;function onInit(){this.hasInit||(this.hasInit=!0,this.id||(this.id="embyradio"+inputId,inputId++),this.addEventListener("keydown",onKeyDown))}var EmbyRadio=function(_HTMLInputElement){function EmbyRadio(){var _this,self=_this=_HTMLInputElement.call(this)||this;return onInit.call(self),babelHelpers.possibleConstructorReturn(_this,self)}return babelHelpers.inherits(EmbyRadio,_HTMLInputElement),babelHelpers.createClass(EmbyRadio,[{key:"connectedCallback",value:function(){onInit.call(this),function(){var labelElement;this.classList.contains("emby-radio")||(this.classList.add("emby-radio"),(labelElement=this.parentNode).classList.add("emby-radio-label"),labelElement.querySelector("span").classList.add("radioButtonLabel"),labelElement.insertAdjacentHTML("beforeend",''))}.call(this)}},{key:"disconnectedCallback",value:function(){this.removeEventListener("keydown",onKeyDown)}}])}(babelHelpers.wrapNativeSuper(HTMLInputElement));customElements.define("emby-radio",EmbyRadio,{extends:"input"}),_exports.default=EmbyRadio}); \ No newline at end of file diff --git a/modules/emby-elements/emby-radio/emby-radio_tv.css b/modules/emby-elements/emby-radio/emby-radio_tv.css new file mode 100644 index 0000000..3189c4a --- /dev/null +++ b/modules/emby-elements/emby-radio/emby-radio_tv.css @@ -0,0 +1 @@ +.emby-radio:focus~.emby-radio-focusoutline{display:block} \ No newline at end of file diff --git a/modules/emby-elements/emby-scrollbuttons/emby-scrollbuttons.css b/modules/emby-elements/emby-scrollbuttons/emby-scrollbuttons.css new file mode 100644 index 0000000..d1809a9 --- /dev/null +++ b/modules/emby-elements/emby-scrollbuttons/emby-scrollbuttons.css @@ -0,0 +1 @@ +.scrollbuttoncontainer{position:absolute;bottom:15%;height:80%;height:calc(85% - 1.5em);height:max(calc(85% - 1.5em),2em);-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;z-index:99999;display:none}.scrollbuttoncontainer-backwards{left:0;inset-inline-start:0;inset-inline-end:initial}.scrollbuttoncontainer-forwards{right:0;inset-inline-start:initial;inset-inline-end:0}.emby-scrollbuttons-scrollbutton{margin:0}.emby-scrollbuttons{display:none;font-size:1.9em}@media (pointer:fine){.emby-scrollbuttons{display:-webkit-flex;display:flex}.emby-scrollbuttons-scroller{position:relative}.emby-scrollbuttons-scroller:hover .scrollbuttoncontainer{display:-webkit-flex;display:flex}.emby-scrollbuttons-scrollbutton{transition:-webkit-transform 180ms ease-out;transition:transform 180ms ease-out;background:#fff!important;color:#000!important;border-radius:100em;padding:.2em;box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.4)!important;margin:0 .25em}.emby-scrollbuttons-scrollbutton:hover{-webkit-transform:scale(1.1,1.1);transform:scale(1.1,1.1)}.emby-scrollbuttons-scrollSlider::after{content:"";border:solid transparent;border-width:0 2.5em}} \ No newline at end of file diff --git a/modules/emby-elements/emby-scrollbuttons/emby-scrollbuttons.js b/modules/emby-elements/emby-scrollbuttons/emby-scrollbuttons.js new file mode 100644 index 0000000..1200bec --- /dev/null +++ b/modules/emby-elements/emby-scrollbuttons/emby-scrollbuttons.js @@ -0,0 +1 @@ +define(["exports","./../emby-button/paper-icon-button-light.js"],function(_exports,_paperIconButtonLight){function getScrollButtonContainerHtml(direction){var html="";return(html+='
')+('"+"
"}function getScrollPosition(parent,scrollType){if("x"===scrollType){if(parent.getScrollLeft)return parent.getScrollLeft()}else if(parent.getScrollTop)return parent.getScrollTop();return 0}function onScroll(e){var scroller=this.scroller,scrollType=this.scrollType;!function(scrollButtons,pos,scrollContentSize){0<(pos=Math.abs(pos))?scrollButtons.scrollButtonsBackwards.classList.remove("hide"):scrollButtons.scrollButtonsBackwards.classList.add("hide"),0
')}_layoutmanager.default.tv||loadEmbyScrollButtons();var EmbyScroller=function(_HTMLDivElement){function EmbyScroller(){var _this,self=_this=_HTMLDivElement.call(this)||this;return onInit.call(self),babelHelpers.possibleConstructorReturn(_this,self)}return babelHelpers.inherits(EmbyScroller,_HTMLDivElement),babelHelpers.createClass(EmbyScroller,[{key:"connectedCallback",value:function(){onInit.call(this);var scroller,horizontal="false"!==this.getAttribute("data-horizontal"),slider=this.querySelector(".scrollSlider"),bindHeaderValue=(horizontal&&(slider.style["white-space"]="nowrap"),this.getAttribute("data-bindheader")),bindHeaderValue="true"===bindHeaderValue||_layoutmanager.default.tv&&"tv"===bindHeaderValue,enableScrollButtons=!_layoutmanager.default.tv&&(horizontal||"x"===this.getAttribute("data-scrollbuttonstype"))&&"false"!==this.getAttribute("data-scrollbuttons"),focusScroll="true"===(focusScroll=this.getAttribute("data-focusscroll"))?"adaptive":"false"===focusScroll?null:focusScroll||("false"!==this.getAttribute("data-centerfocus")?"adaptive":null),forceScrollbar=(this.isPrimaryScroller=bindHeaderValue||"true"===this.getAttribute("data-primaryscroller"),"true"===this.getAttribute("data-forcescrollbar")),slider={horizontal:horizontal,mouseWheel:"false"!==this.getAttribute("data-mousewheel"),touchDragging:1,slidee:slider,dragHandle:1,hideScrollbar:enableScrollButtons&&horizontal||!forceScrollbar&&null,forceScrollbar:enableScrollButtons&&horizontal||forceScrollbar,allowNativeSmoothScroll:"true"===this.getAttribute("data-allownativesmoothscroll"),focusScroll:focusScroll,focusScrollOffsetLeft:this.getAttribute("data-focusscrolloffsetleft")||this.getAttribute("data-focusscrolloffset")||null,focusScrollOffsetTop:this.getAttribute("data-focusscrolloffsettop")||this.getAttribute("data-focusscrolloffset")||null,forceNativeScroll:"true"===this.getAttribute("data-forcenativescroll"),forceSmoothScroll:"true"===this.getAttribute("data-forcesmoothscroll"),dualScroll:"true"===this.getAttribute("data-dualscroll"),miniScrollbar:"true"===this.getAttribute("data-miniscrollbar"),autoStartEdge:horizontal||this.isPrimaryScroller},forceScrollbar=(slider.dualScroll&&(slider.autoStartEdge=!1),horizontal||this.isPrimaryScroller||(slider.adaptiveBorderYStart=0),this.getAttribute("data-adaptiveborder")),focusScroll=(forceScrollbar&&(slider.adaptiveBorderXStart=slider.adaptiveBorderXEnd=slider.adaptiveBorderYStart=slider.adaptiveBorderYEnd=parseInt(forceScrollbar)),this.getAttribute("data-adaptiveborderxstart")),horizontal=(focusScroll&&(slider.adaptiveBorderXStart=parseInt(focusScroll)),this.getAttribute("data-adaptiveborderystart")),forceScrollbar=(horizontal&&(slider.adaptiveBorderYStart=parseInt(horizontal)),this.getAttribute("data-adaptiveborderxend")),focusScroll=(forceScrollbar&&(slider.adaptiveBorderXEnd=parseInt(forceScrollbar)),this.getAttribute("data-adaptiveborderyend"));focusScroll&&(slider.adaptiveBorderYEnd=parseInt(focusScroll)),this.scroller=new _smoothscroller.default(this,slider),this.scroller.init(),bindHeaderValue&&(horizontal=this,_skinviewmanager.default.getSkinOptions().disableHeadRoom||((forceScrollbar=new _headroom.default({scroller:horizontal,element:headerElement,enableScrollingStatus:!0})).init(),horizontal.headroom=forceScrollbar)),enableScrollButtons&&(scroller=this,_layoutmanager.default.tv||(embyScrollButtonsLoaded?onScrollButtonsLoaded(scroller):loadEmbyScrollButtons().then(function(){onScrollButtonsLoaded(scroller)}))),this.__upgraded=!0,this.dispatchEvent(new CustomEvent("upgraded",{cancelable:!1}))}},{key:"disconnectedCallback",value:function(){var headroom=this.headroom,headroom=(headroom&&(headroom.destroy(),this.headroom=null),this.scroller);headroom&&(headroom.destroy(),this.scroller=null)}},{key:"pause",value:function(){this.paused=!0;var headroom=this.headroom;headroom&&headroom.pause()}},{key:"beginResume",value:function(){this.paused=!1;var headroom=this.headroom;headroom&&headroom.beginResume()}},{key:"resume",value:function(){this.paused=!1;var headroom=this.headroom;headroom?headroom.resume():this.isPrimaryScroller&&(headerElement.classList.add("headroom-scrolling"),headerElement.classList.remove("headroom-hidden"))}},{key:"getScrollSize",value:function(){if(this.scroller)return this.scroller.getScrollSize()}},{key:"getScrollWidth",value:function(){if(this.scroller)return this.scroller.getScrollWidth()}},{key:"getScrollHeight",value:function(){if(this.scroller)return this.scroller.getScrollHeight()}},{key:"getScrollPosition",value:function(){if(this.scroller)return this.scroller.getScrollPosition()}},{key:"getLastScrollPosition",value:function(){if(this.scroller)return this.scroller.getLastScrollPosition()}},{key:"isNativeScroll",value:function(){if(this.scroller)return this.scroller.isNativeScroll()}},{key:"getScrollLeft",value:function(){if(this.scroller)return this.scroller.getScrollLeft()}},{key:"getScrollTop",value:function(){if(this.scroller)return this.scroller.getScrollTop()}},{key:"getScrollContainerBoundingClientRect",value:function(){if(this.scroller)return this.scroller.getScrollContainerBoundingClientRect()}},{key:"getScrollSlider",value:function(){if(this.scroller)return this.scroller.getScrollSlider()}},{key:"scrollToBeginning",value:function(scrollOptions){if(this.scroller)return(scrollOptions=scrollOptions||{}).position=0,this.scroller.scrollToPosition(scrollOptions)}},{key:"toStart",value:function(elem,scrollOptions){this.scroller&&this.scroller.toStart(elem,scrollOptions)}},{key:"toCenter",value:function(elem,scrollOptions){this.scroller&&this.scroller.toCenter(elem,scrollOptions)}},{key:"scrollToElement",value:function(elem,scrollOptions){this.scroller&&this.scroller.scrollToElement(elem,scrollOptions)}},{key:"scrollToPosition",value:function(pos){if(this.scroller)return this.scroller.scrollToPosition(pos)}},{key:"addScrollEventListener",value:function(fn,options){this.scroller&&this.scroller.addScrollEventListener(fn,options)}},{key:"removeScrollEventListener",value:function(fn,options){this.scroller&&this.scroller.removeScrollEventListener(fn,options)}},{key:"scrollBackwards",value:function(){this.scroller&&this.scroller.scrollBackwards()}},{key:"scrollForwards",value:function(){this.scroller&&this.scroller.scrollForwards()}},{key:"scrollBy",value:function(delta,scrollOptions){this.scroller&&this.scroller.scrollBy(delta,scrollOptions)}},{key:"addResizeObserver",value:function(fn){this.scroller&&this.scroller.addResizeObserver(fn)}},{key:"removeResizeObserver",value:function(fn){this.scroller&&this.scroller.removeResizeObserver(fn)}},{key:"getScrollMultiplier",value:function(){if(this.scroller)return this.scroller.getScrollMultiplier()}},{key:"getScrollLeftMultiplier",value:function(){if(this.scroller)return this.scroller.getScrollLeftMultiplier()}},{key:"getScrollTopMultiplier",value:function(){if(this.scroller)return this.scroller.getScrollTopMultiplier()}},{key:"getPadding",value:function(){if(this.scroller)return this.scroller.getPadding()}},{key:"getElementPosition",value:function(element,horizontal,scrollOptions){if(this.scroller)return this.scroller.getElementPosition(element,horizontal,scrollOptions)}},{key:"notifyResized",value:function(){if(this.scroller)return this.scroller.notifyResized()}},{key:"setHeaderBindingEnabled",value:function(enabled){this.headroom&&!this.paused&&(enabled?(this.headroom.beginResume({}),this.headroom.resume({})):(this.headroom.pause(),this.headroom.clearTransform()))}},{key:"setFocusScroll",value:function(focusScroll){this.scroller&&(null==focusScroll&&(focusScroll="adaptive"),this.scroller.options)&&(this.scroller.options.focusScroll=focusScroll)}},{key:"setFocusScrollOffsetLeft",value:function(val){this.scroller&&this.scroller.options&&(this.scroller.options.focusScrollOffsetLeft=val)}}])}(babelHelpers.wrapNativeSuper(HTMLDivElement));EmbyScroller.upgradeElement=function(elem){Object.assign(elem,EmbyScroller.prototype);for(var names=Object.getOwnPropertyNames(EmbyScroller.prototype),i=0,length=names.length;ilabelLimit&&(suffix="...",items=items.slice(0,labelLimit)),ensureSelectNameLabel(select).innerHTML=items.map(getItemDisplayHtml.bind(select)).join(" / ")+suffix}function getItemId(item){var idProp;return this.getItemId?this.getItemId(item):(idProp=this.getAttribute("data-id-property"))?item[idProp]:null!=item.Id?item.Id:null!=item.id&&""!==item.id?item.id:null!=item.value?item.value:item.Name||item.name}function setLabelFromNamesOfValues(select,values){var suffix="";return values.length>labelLimit&&(suffix="...",values=values.slice(0,labelLimit)),getItems(select,{Ids:values}).then(function(result){result=result.Items;result.length>values.length&&(result=result.filter(function(i){i=getItemId.call(select,i);return null!=i&&values.includes(i)})),ensureSelectNameLabel(select).innerHTML=result.map(getItemDisplayHtml.bind(select)).join(" / ")+suffix})}function setLabelFromValues(select,values){values.length||select.parentContainer?(values.length?Promise.resolve(!0):hasAnyItems(select)).then(function(any){if(select.parentContainer&&(any?select.parentContainer.classList.remove("hide"):select.parentContainer.classList.add("hide")),values.length)return!select.hasAttribute("multiple")||!emptyValueSetEqualsAll(select)||"false"===select.getAttribute("data-autoallany")?setLabelFromNamesOfValues(select,values):getTotalRecordCount(select).then(function(totalRecordCount){if(values.length!==totalRecordCount)return setLabelFromNamesOfValues(select,values);ensureSelectNameLabel(select).innerHTML=getAllSelectedLabel(select)});setLabelWhenNoValuesSelected(select)}):setLabelWhenNoValuesSelected(select)}function getItemsFromSelectElement(elem){for(var selectOptions=elem.options,items=[],i=0,length=selectOptions.length;i
'),select.nameLabel=nameLabel=wrapper.querySelector(".emby-select-selectedName")),nameLabel}function setValuesFromActionsheet(select,values){return!(values.length&&emptyValueSetEqualsAll(select)&&select.hasAttribute("multiple"))||"false"===select.getAttribute("data-autoallany")?(select.setValues(values,!0),Promise.resolve()):getTotalRecordCount(select).then(function(totalRecordCount){values.length>=totalRecordCount&&(values=[]),select.setValues(values,!0)})}function setDynamicFieldDescription(select){var _select$closest;select.classList.contains("emby-select-dynamicfielddescription")&&(_select$closest=null==(_select$closest=select.closest(".selectContainer"))?void 0:_select$closest.querySelector(".dynamicFieldDescription"))&&(select=(null==(select=getItemsFromSelectElement(select).filter(function(s){return s.Selected})[0])?void 0:select.secondaryText)||"",_select$closest.innerHTML=_textencoding.default.htmlEncode(select),select?_select$closest.classList.remove("hide"):_select$closest.classList.add("hide"))}SupportsTouchEvent=function(_HTMLSelectElement){function EmbySelect(){var _this,self=_this=_HTMLSelectElement.call(this)||this;return onInit.call(self),babelHelpers.possibleConstructorReturn(_this,self)}return babelHelpers.inherits(EmbySelect,_HTMLSelectElement),babelHelpers.createClass(EmbySelect,[{key:"getValues",value:function(){return this._multipleValues}},{key:"setValues",value:function(values,triggerChangeEvent,selectedItems){this.hasAttribute("multiple")||this.getItems?(this._multipleValues=values,this.getItems&&this.getItems!==genericElemGetItems&&(this.innerHTML=''),selectedItems?function(select,selectedItems){selectedItems.length||select.parentContainer?(selectedItems.length?Promise.resolve(!0):hasAnyItems(select)).then(function(any){if(select.parentContainer&&(any?select.parentContainer.classList.remove("hide"):select.parentContainer.classList.add("hide")),selectedItems.length)return!select.hasAttribute("multiple")||!emptyValueSetEqualsAll(select)||"false"===select.getAttribute("data-autoallany")?setLabelFromItems(select,selectedItems):getTotalRecordCount(select).then(function(totalRecordCount){if(selectedItems.length!==totalRecordCount)return setLabelFromItems(select,selectedItems);ensureSelectNameLabel(select).innerHTML=getAllSelectedLabel(select)});setLabelWhenNoValuesSelected(select)}):setLabelWhenNoValuesSelected(select)}(this,selectedItems):setLabelFromValues(this,values)):this.value=Array.isArray(values)?values[0]||"":values||"",triggerChangeEvent&&(selectedItems=this,(values=document.createEvent("HTMLEvents")).initEvent("change",!0,!0),selectedItems.dispatchEvent(values)),setDynamicFieldDescription(this)}},{key:"values",get:function(){return this.getValues()},set:function(values){this.setValues(values)}},{key:"singleValue",get:function(){return this.getItems?this._multipleValues[0]||"":this.value},set:function(val){var newValues;this.getItems?(setLabelFromValues(this,newValues=null!=val&&""!==val?[val]:[]),this._multipleValues=newValues,this.getItems!==genericElemGetItems&&(this.innerHTML='')):this.value=val,setDynamicFieldDescription(this)}},{key:"connectedCallback",value:function(){var wrapper,label,multiple,labelText,labelFormatArgs,arrowContainerClass;onInit.call(this),this.classList.contains("emby-select")||((wrapper=this.closest(".emby-select-wrapper"))?(label=this.closest("label"),(multiple=this.hasAttribute("multiple"))&&(this.size=1,this.classList.add("hiddenScrollY")),this.classList.add("emby-select"),labelText=this.getAttribute("label")||"",(labelFormatArgs=this.getAttribute("data-labelformatargs"))&&((labelFormatArgs=labelFormatArgs.split("|")).unshift(labelText),labelText=_globalize.default.translate.apply(this,labelFormatArgs)),labelFormatArgs="selectLabelText",arrowContainerClass="selectArrowContainer",this.classList.contains("emby-select-inline")&&(label.classList.add("selectLabel-inline"),labelFormatArgs+=" selectLabelText-inline","true"===this.getAttribute("data-hidelabeltext")&&(labelFormatArgs+=" hide"),arrowContainerClass+=" selectArrowContainer-inline"),label.classList.add("selectLabel"),label.insertAdjacentHTML("afterbegin",'
'+labelText+"
"),label.removeEventListener("click",onLabelClick),label.addEventListener("click",onLabelClick),(multiple||this.getItems)&&ensureSelectNameLabel(this),wrapper.insertAdjacentHTML("beforeend",'
'),enableNativeMenu(this)||this.classList.add("emby-select-nopointer")):wrapper=ensureWrapper(this))}},{key:"disconnectedCallback",value:function(){}},{key:"setLabel",value:function(text){this.closest("label").querySelector(".selectLabelText").innerHTML=text}}])}(babelHelpers.wrapNativeSuper(HTMLSelectElement));customElements.define("emby-select",SupportsTouchEvent,{extends:"select"}),_exports.default=SupportsTouchEvent}); \ No newline at end of file diff --git a/modules/emby-elements/emby-slider/emby-slider.css b/modules/emby-elements/emby-slider/emby-slider.css new file mode 100644 index 0000000..8266718 --- /dev/null +++ b/modules/emby-elements/emby-slider/emby-slider.css @@ -0,0 +1 @@ +.emby-slider{width:100%;-webkit-appearance:none;appearance:none;box-sizing:border-box;height:100%;background:0 0;-webkit-user-select:none;user-select:none;outline:0;padding:1em 0;padding:1rem 0;-webkit-align-self:center;align-self:center;z-index:1;margin:-1.105em 0;margin:-1.105rem 0;-webkit-tap-highlight-color:transparent;display:block;font-size:inherit;opacity:0}.emby-slider:enabled{cursor:pointer}.emby-slider[orient=vertical]{margin:0 -1.105em;margin:0 -1.105rem;padding:0 1em;padding:0 1rem;appearance:slider-vertical}.emby-slider::-moz-focus-outer{border:0}.emby-slider::-ms-tooltip{display:none}.emby-slider::-webkit-slider-runnable-track{background:0 0}.emby-slider::-moz-range-track{border:none}.emby-slider::-ms-track{background:0 0;color:transparent;width:100%;border:none}.emby-slider::-ms-fill-lower{display:none}.emby-slider::-ms-fill-upper{display:none}.emby-slider::-webkit-slider-thumb{width:2em;height:2em;box-sizing:border-box;border:none;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;opacity:0}.emby-slider::-moz-range-thumb{width:2em;height:2em;box-sizing:border-box;background-image:none;border:none;opacity:0}.emby-slider::-ms-thumb{width:2em;height:2em;box-sizing:border-box;border:none;opacity:0}.emby-slider-container{position:relative;background:0 0;display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;height:.5em}.sliderLabelText+.emby-slider-container{margin:.5em 0}.emby-slider-container-vertical{height:auto;width:.5em;-webkit-flex-direction:column;flex-direction:column;max-height:100%}.emby-slider-background{position:absolute;width:100%;top:0;bottom:0;left:0;inset-inline-start:0;inset-inline-end:initial;display:-webkit-flex;display:flex;border:0;padding:0;border-radius:.6em;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;overflow:hidden}.emby-slider-background-inner{position:relative;-webkit-flex-grow:1;flex-grow:1}.emby-slider[orient=vertical]+.emby-slider-background .emby-slider-background-inner{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.emby-slider-background-lower{position:absolute;top:0;bottom:0;left:0;inset-inline-start:0;inset-inline-end:initial;width:0}.emby-slider[orient=vertical]+.emby-slider-background .emby-slider-background-lower{width:100%;height:0}.emby-slider-background-lower-clear{background-color:transparent}.emby-slider-background-upper{position:absolute;top:0;bottom:0;left:0;inset-inline-start:0;inset-inline-end:initial;width:0;border-radius:.6em}.emby-slider[orient=vertical]+.emby-slider-background .emby-slider-background-upper{width:100%;height:0}.emby-slider-thumb{position:absolute;top:50%;left:0;inset-inline-start:0;inset-inline-end:initial;width:1.3em;height:1.3em;margin-top:-.65em;-webkit-margin-start:-.65em;margin-inline-start:-.65em;-webkit-margin-end:-.65em;margin-inline-end:-.65em;border-radius:100%;transition:-webkit-transform .4s ease-out;transition:transform .4s ease-out}.emby-slider-thumb-hoveronly{-webkit-transform:scale(0);transform:scale(0)}.emby-slider-editing+.emby-slider-background+.emby-slider-thumb{-webkit-transform:scale(1.1);transform:scale(1.1)}@media all and (pointer:fine){.emby-slider-container:hover .emby-slider-thumb{-webkit-transform:scale(1.1);transform:scale(1.1)}}.emby-slider[orient=vertical]+.emby-slider-background+.emby-slider-thumb{margin-top:0;margin-bottom:-.65em;top:initial;bottom:0;left:50%;inset-inline-start:50%;inset-inline-end:initial}.emby-slider[disabled]+.emby-slider-background+.emby-slider-thumb{display:none}.emby-slider:focus-visible+.emby-slider-background+.emby-slider-thumb{-webkit-transform:scale(1.1);transform:scale(1.1)}.sliderBubble{position:absolute;top:0;left:0;inset-inline-start:0;inset-inline-end:initial;margin-top:-1.25em;-webkit-transform:translate3d(-50%,-100%,0);transform:translate3d(-50%,-100%,0);display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;border-radius:.6em;z-index:1;font-size:1rem;z-index:-1;opacity:0}.emby-slider-thumb-withicon{font-size:120%;background:0 0!important} \ No newline at end of file diff --git a/modules/emby-elements/emby-slider/emby-slider.js b/modules/emby-elements/emby-slider/emby-slider.js new file mode 100644 index 0000000..be6c541 --- /dev/null +++ b/modules/emby-elements/emby-slider/emby-slider.js @@ -0,0 +1 @@ +define(["exports","./../../dom.js","./../../layoutmanager.js","./../../common/inputmanager.js","./../../customelementupgrade.js"],function(_exports,_dom,_layoutmanager,_inputmanager,_customelementupgrade){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/emby-elements/emby-slider/emby-slider.css","css!!tv|modules/emby-elements/emby-slider/emby-slider_nontv.css","css!tv|modules/emby-elements/emby-slider/emby-slider_tv.css","css!modules/emby-elements/emby-slider/emby-slider2.css"]);var insetInlineStartProp=CSS.supports("inset-inline-start","0")?"insetInlineStart":"left",insetBlockStartProp="bottom",SupportsCalc=CSS.supports("width","min(45.2%,calc(100% - .65em))"),SupportsMin=CSS.supports("width","min(10em, 5vw)"),SupportsCalcMin=SupportsCalc&&SupportsMin;function onInputCommand(e){var stepUpCommand,stepDownCommand="vertical"===this.getAttribute("orient")?(stepUpCommand="up","down"):"rtl"===document.dir?(stepUpCommand="left","right"):(stepUpCommand="right","left");switch(e.detail.command){case stepUpCommand:e.preventDefault(),this.stepUp();var value=parseFloat(this.value);this.beginEditing(value);break;case stepDownCommand:e.preventDefault(),this.stepDown();value=parseFloat(this.value);this.beginEditing(value)}}function getValueAsPercent(range,value){var min=parseFloat(range.min),value=(value-min)/(parseFloat(range.max)-min);return value*=100}function updateValues(range,value){requestAnimationFrame(function(){var backgroundLower=range.backgroundLower,originalPct=getValueAsPercent(range,value),pct=originalPct+"%",backgroundLower=(backgroundLower&&(prop="vertical"===range.getAttribute("orient")?"height":"width",backgroundLower.style[prop]=pct),range.sliderThumb);if(backgroundLower){var prop="vertical"===range.getAttribute("orient")?insetBlockStartProp:insetInlineStartProp;if(SupportsMin){if(originalPct<10)return void(backgroundLower.style[prop]="max("+originalPct+"%,.65em)");if(90'+(value=range.getBubbleText?range.getBubbleText(value):Math.round(value))+"";bubble.innerHTML=value;value="vertical"===range.getAttribute("orient")?insetBlockStartProp:insetInlineStartProp;if(SupportsCalcMin){var size=getBubbleOffsetSize(range),size=Math.round(size/2);if(pct<30)return void(bubble.style[value]="max("+pct+"%,"+size+"px)");if(70
')+'
',"false"!==this.getAttribute("data-bubble")&&(backgroundClass="sliderBubble dialog",(thumbClass=this.getAttribute("data-bubbleclass"))&&(backgroundClass+=" "+thumbClass),"rtl"===document.dir&&(backgroundClass+=" sliderBubble-rtl"),htmlToInsert+='
'),containerElement.insertAdjacentHTML("beforeend",htmlToInsert),this.backgroundElement=containerElement.querySelector(".emby-slider-background"),this.backgroundLower=containerElement.querySelector(".emby-slider-background-lower"),this.backgroundUpper=containerElement.querySelector(".emby-slider-background-upper"),this.sliderThumb=containerElement.querySelector(".emby-slider-thumb"),this.sliderBubble=containerElement.querySelector(".sliderBubble"),this.containerElement=containerElement,this.containerResizeObserver=new ResizeObserver(function(){this.containerOffsetSize=null}.bind(this),{}),this.containerResizeObserver.observe(containerElement),this.sliderBubble&&(this.bubbleResizeObserver=new ResizeObserver(function(){this.bubbleOffsetSize=null}.bind(this),{}),this.bubbleResizeObserver.observe(this.sliderBubble)),thumbClass="true"!==this.getAttribute("data-hoverthumb"),this.setForceDisplayThumb(thumbClass),_dom.default.addEventListener(this,"input",onInput,{passive:!0}),_dom.default.addEventListener(this,"change",onChange,{passive:!0}),_dom.default.addEventListener(this,"contextmenu",onContextMenu,{}),_dom.default.addEventListener(this,"blur",onBlur,{}),_dom.default.addEventListener(this,window.PointerEvent?"pointermove":"mousemove",onPointerMove,{passive:!0}),_dom.default.addEventListener(this,window.PointerEvent?"pointerleave":"mouseleave",onPointerLeave,{passive:!0}),_dom.default.addEventListener(this,window.PointerEvent?"pointerup":"mouseup",onPointerUp,{passive:!0}),_dom.default.addEventListener(this,"wheel",onMouseWheel,{}),"false"!==this.getAttribute("data-defaultinputhandling")&&_inputmanager.default.on(this,onInputCommand),this.__upgraded=!0,this.dispatchEvent(new CustomEvent("upgraded",{cancelable:!1})))}},{key:"setValue",value:function(val,triggerChange){this.value=val,updateValues(this,val),triggerChange&&this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!1,detail:{isStep:!0}}))}},{key:"disconnectedCallback",value:function(){this.backgroundUpper=null,this.backgroundLower=null,this.sliderThumb=null,this.sliderBubble=null,this.backgroundElement=null,this.containerElement=null;var observer=this.containerResizeObserver;observer&&observer.disconnect(),this.containerResizeObserver=null,(observer=this.bubbleResizeObserver)&&observer.disconnect(),this.bubbleResizeObserver=null,this.bubbleOffsetSize=null,this.containerOffsetSize=null}},{key:"setSeekRanges",value:function(ranges,runtime,position){var elem=this.backgroundUpper;if(elem){null!=runtime&&(ranges=function(ranges,runtime){return runtime?ranges.map(function(r){return{start:r.start/runtime*100,end:r.end/runtime*100}}):[]}(ranges,runtime),position=position/runtime*100);for(var i=0,length=ranges.length;i=range.end))return void setRange(elem,this,range.start,range.end)}setRange(elem,this,0,0)}}},{key:"setIsClear",value:function(isClear){var backgroundLower=this.backgroundLower;backgroundLower&&(isClear?backgroundLower.classList.add("emby-slider-background-lower-clear"):backgroundLower.classList.remove("emby-slider-background-lower-clear"))}},{key:"beginEditing",value:function(value){this.dragging=!0,this.classList.add("emby-slider-editing");var sliderBubble=this.sliderBubble;sliderBubble&&updateBubble(this,value,getValueAsPercent(this,value),sliderBubble),updateValues(this,value),this.dispatchEvent(new CustomEvent("beginediting",{bubbles:!0,cancelable:!1}))}},{key:"cancelEditing",value:function(){this.endEditing(!1)}},{key:"endEditing",value:function(triggerChange,value){this.dragging&&console.log("slider endEditing"),this.dragging=!1,this.classList.remove("emby-slider-editing"),triggerChange&&(this.value=value,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!1}))),this.dispatchEvent(new CustomEvent("endediting",{bubbles:!0,cancelable:!1}))}},{key:"stepUp",value:function(){HTMLInputElement.prototype.stepUp.call(this),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!1,detail:{isStep:!0}}))}},{key:"stepDown",value:function(){HTMLInputElement.prototype.stepDown.call(this),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!1,detail:{isStep:!0}}))}},{key:"getBubbleElement",value:function(){return this.sliderBubble}},{key:"getTrackBackgroundUpper",value:function(){return this.backgroundUpper}},{key:"setThumbIcon",value:function(options){var sliderThumb=this.sliderThumb;options?(sliderThumb.classList.add("emby-slider-thumb-withicon"),sliderThumb.innerHTML=options.icon,sliderThumb.style.fontSize=options.fontSize||null):(sliderThumb.classList.remove("emby-slider-thumb-withicon"),sliderThumb.innerHTML="",sliderThumb.style.fontSize=null)}}])}(babelHelpers.wrapNativeSuper(HTMLInputElement));customElements.define("emby-slider",SupportsCalc,{extends:"input"}),_exports.default=SupportsCalc}); \ No newline at end of file diff --git a/modules/emby-elements/emby-slider/emby-slider2.css b/modules/emby-elements/emby-slider/emby-slider2.css new file mode 100644 index 0000000..585eb51 --- /dev/null +++ b/modules/emby-elements/emby-slider/emby-slider2.css @@ -0,0 +1 @@ +.emby-slider[orient=vertical]~.sliderBubble{margin-top:0;-webkit-margin-start:-1.25em;margin-inline-start:-1.25em;-webkit-transform:translate3d(-100%,50%,0);transform:translate3d(-100%,50%,0);top:initial;bottom:0}.emby-slider-hovering~.sliderBubble,.emby-slider-editing~.sliderBubble{display:-webkit-flex;display:flex;opacity:1;z-index:1;-webkit-transform:translate3d(-50%,-100%,0);transform:translate3d(-50%,-100%,0)}.emby-slider-hovering~.sliderBubble-rtl,.emby-slider-editing~.sliderBubble-rtl{-webkit-transform:translate3d(50%,-100%,0);transform:translate3d(50%,-100%,0)}.emby-slider-hovering[orient=vertical]~.sliderBubble,.emby-slider-editing[orient=vertical]~.sliderBubble{-webkit-transform:translate3d(-100%,50%,0);transform:translate3d(-100%,50%,0)}.sliderBubbleText{margin:0;padding:.35em .75em}.emby-slider-label-text{margin-bottom:.5em} \ No newline at end of file diff --git a/modules/emby-elements/emby-slider/emby-slider_nontv.css b/modules/emby-elements/emby-slider/emby-slider_nontv.css new file mode 100644 index 0000000..1ed11f6 --- /dev/null +++ b/modules/emby-elements/emby-slider/emby-slider_nontv.css @@ -0,0 +1 @@ +.sliderBubble-rtl{-webkit-transform:translate3d(50%,-100%,0);transform:translate3d(50%,-100%,0)}.sliderBubble{display:none}@media not all and (pointer:fine){.emby-slider-nothumb+.emby-slider-background+.emby-slider-thumb{display:none!important}.emby-slider:focus-visible+.emby-slider-background{-webkit-transform:scale(1.01,2.42);transform:scale(1.01,2.42)}.emby-slider.emby-slider-editing+.emby-slider-background{-webkit-transform:scale(1.01,2.42);transform:scale(1.01,2.42)}.emby-slider[orient=vertical]:focus-visible+.emby-slider-background{-webkit-transform:scale(2.42,1.01);transform:scale(2.42,1.01)}.emby-slider.emby-slider-editing[orient=vertical]+.emby-slider-background{-webkit-transform:scale(2.42,1.01);transform:scale(2.42,1.01)}} \ No newline at end of file diff --git a/modules/emby-elements/emby-slider/emby-slider_tv.css b/modules/emby-elements/emby-slider/emby-slider_tv.css new file mode 100644 index 0000000..4bc51ea --- /dev/null +++ b/modules/emby-elements/emby-slider/emby-slider_tv.css @@ -0,0 +1 @@ +.sliderBubble{-webkit-transform-origin:bottom center;transform-origin:bottom center;transition:-webkit-transform 340ms ease-out,opacity .2s ease-out;transition:transform 340ms ease-out,opacity .2s ease-out}@supports selector(:hover) and (display:revert) and (column-gap:1em){.sliderBubble{-webkit-transform:translate3d(-50%,-100%,0) scale(0);transform:translate3d(-50%,-100%,0) scale(0)}}.sliderBubble-rtl{-webkit-transform:translate3d(50%,-100%,0);transform:translate3d(50%,-100%,0)}@supports selector(:hover) and (display:revert) and (column-gap:1em){.sliderBubble-rtl{-webkit-transform:translate3d(50%,-100%,0) scale(0);transform:translate3d(50%,-100%,0) scale(0)}}.emby-slider:focus+.emby-slider-background+.emby-slider-thumb{-webkit-transform:scale(1.1);transform:scale(1.1)} \ No newline at end of file diff --git a/modules/emby-elements/emby-tabs/emby-tabs.css b/modules/emby-elements/emby-tabs/emby-tabs.css new file mode 100644 index 0000000..ea4b0f7 --- /dev/null +++ b/modules/emby-elements/emby-tabs/emby-tabs.css @@ -0,0 +1 @@ +.emby-tab-button{background:0 0;box-shadow:none;cursor:pointer;width:auto;font-family:inherit;font-size:inherit;display:inline-block;vertical-align:middle;-webkit-flex-shrink:0;flex-shrink:0;margin:0;padding:.83em .9em;position:relative;height:auto;min-width:initial;border-radius:0;overflow:hidden;font-weight:600;-webkit-user-select:none;user-select:none}.emby-tabs-slider{position:relative;white-space:nowrap}.tabContent-positioned{contain:strict;position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0}.tabContent-positioned.itemsTab{contain:style size}.tabContent:not(.is-active){display:none} \ No newline at end of file diff --git a/modules/emby-elements/emby-tabs/emby-tabs.js b/modules/emby-elements/emby-tabs/emby-tabs.js new file mode 100644 index 0000000..63b99a9 --- /dev/null +++ b/modules/emby-elements/emby-tabs/emby-tabs.js @@ -0,0 +1 @@ +define(["exports","./../../dom.js","./../../scroller/smoothscroller.js","./../../focusmanager.js"],function(_exports,_dom,_smoothscroller,_focusmanager){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/emby-elements/emby-tabs/emby-tabs.css"]);var buttonClass="emby-tab-button",activeButtonClass="emby-tab-button-active";function setActiveTabButton(tabs,newButton){newButton&&newButton.classList.add(activeButtonClass)}function onFocus(e){var delay;this.clearFocusTimeout(),e.target.closest("."+buttonClass)&&(delay=-1===this.selectedIndex()?0:700,this.focusTimeout=setTimeout(function(tabs,e){return function(){var target,activeElement=document.activeElement;activeElement&&(activeElement===(target=e.target)||activeElement.contains(target)?(e={type:e.type,target:target,currentTarget:e.currentTarget},onClick.call(tabs,e)):(activeElement=tabs.querySelector("."+activeButtonClass))&&tabs.scroller&&tabs.scroller.scrollToElement(activeElement,{}))}}(this,e),delay))}function triggerBeforeTabChangeInternal(tabs,index,previousIndex,triggerEvent){!1!==triggerEvent&&tabs.dispatchEvent(new CustomEvent("beforetabchange",{detail:{selectedTabIndex:index,previousIndex:previousIndex}}))}function onClick(e){this.clearFocusTimeout();var previousIndex,index,current=this.querySelector("."+activeButtonClass),tabButton=e.target.closest("."+buttonClass);tabButton&&tabButton!==current?(current&¤t.classList.remove(activeButtonClass),previousIndex=current?parseInt(current.getAttribute("data-index")):null,setActiveTabButton(0,tabButton),triggerBeforeTabChangeInternal(this,index=parseInt(tabButton.getAttribute("data-index")),previousIndex),this.selectedTabIndex=index,"click"!==e.type&&tabButton.href&&tabButton.click(),this.dispatchEvent(new CustomEvent("tabchange",{detail:{selectedTabIndex:index,previousIndex:previousIndex}}))):tabButton&&tabButton===current&&(e=parseInt(tabButton.getAttribute("data-index")),this.dispatchEvent(new CustomEvent("activetabclick",{detail:{selectedTabIndex:e}})))}function onInit(){this.hasInit||(this.hasInit=!0,this.classList.add("emby-tabs","focusable"))}var EmbyTabs=function(_HTMLDivElement){function EmbyTabs(){var _this,self=_this=_HTMLDivElement.call(this)||this;return onInit.call(self),babelHelpers.possibleConstructorReturn(_this,self)}return babelHelpers.inherits(EmbyTabs,_HTMLDivElement),babelHelpers.createClass(EmbyTabs,[{key:"connectedCallback",value:function(){var tabs,focusScroll,contentScrollSlider;onInit.call(this),_dom.default.removeEventListener(this,"click",onClick,{passive:!0}),_dom.default.addEventListener(this,"click",onClick,{passive:!0}),_dom.default.removeEventListener(this,"focus",onFocus,{passive:!0,capture:!0}),_dom.default.addEventListener(this,"focus",onFocus,{passive:!0,capture:!0}),!(tabs=this).scroller&&(focusScroll="true"===(focusScroll=tabs.getAttribute("data-focusscroll"))?"adaptive":"false"===focusScroll?null:focusScroll||("false"!==tabs.getAttribute("data-centerfocus")?"adaptive":null),contentScrollSlider=tabs.querySelector(".emby-tabs-slider"))&&(contentScrollSlider.classList.add("nohoverfocus"),tabs.scroller=new _smoothscroller.default(tabs,{horizontal:1,slidee:contentScrollSlider,speed:240,dragHandle:1,hiddenScroll:!0,focusScroll:focusScroll,focusScrollOffsetLeft:tabs.getAttribute("data-focusscrolloffsetleft")||tabs.getAttribute("data-focusscrolloffset")||null,allowNativeSmoothScroll:!0,autoPreventScrollOnFocus:!1,autoStartEdge:!1,adaptiveBorderXStart:0,adaptiveBorderXEnd:0}),tabs.scroller.init()),this.onTabsChanged(),this.readyFired||(this.readyFired=!0,this.dispatchEvent(new CustomEvent("ready",{})))}},{key:"onTabsChanged",value:function(){var current=this.querySelector("."+activeButtonClass),current=current?parseInt(current.getAttribute("data-index")):parseInt(this.getAttribute("data-index")||"0");-1!==(this.selectedTabIndex=current)&&(current=this.querySelectorAll("."+buttonClass)[current])&&(setActiveTabButton(0,current),this.scroller)&&this.scroller.scrollToElement(current,{behavior:"instant"})}},{key:"clearFocusTimeout",value:function(){this.focusTimeout&&clearTimeout(this.focusTimeout)}},{key:"detachedCallback",value:function(){this.scroller&&(this.scroller.destroy(),this.scroller=null),_dom.default.removeEventListener(this,"click",onClick,{passive:!0}),_dom.default.removeEventListener(this,"focus",onFocus,{passive:!0,capture:!0})}},{key:"focus",value:function(){var selected=this.querySelector("."+activeButtonClass);selected?_focusmanager.default.focus(selected):_focusmanager.default.autoFocus(this)}},{key:"selectedIndex",value:function(selected,triggerEvent){if(null==selected)return this.selectedTabIndex||0;this.clearFocusTimeout();var current=this.selectedIndex(),tabButtons=(this.selectedTabIndex=selected,this.querySelectorAll("."+buttonClass));current===selected||!1===triggerEvent||-1===selected?(triggerBeforeTabChangeInternal(this,selected,current,triggerEvent),!1!==triggerEvent&&this.dispatchEvent(new CustomEvent("tabchange",{detail:{selectedTabIndex:selected}})),triggerEvent=tabButtons[current],setActiveTabButton(0,tabButtons[selected]),current!==selected&&triggerEvent&&triggerEvent.classList.remove(activeButtonClass)):onClick.call(this,{target:tabButtons[selected]})}},{key:"triggerBeforeTabChange",value:function(selected){triggerBeforeTabChangeInternal(this,this.selectedIndex())}},{key:"triggerTabChange",value:function(selected){this.dispatchEvent(new CustomEvent("tabchange",{detail:{selectedTabIndex:this.selectedIndex()}}))}},{key:"setTabEnabled",value:function(index,enabled){index=this.querySelector('.emby-tab-button[data-index="'+index+'"]');enabled?index.classList.remove("hide"):index.classList.add("hide")}}])}(babelHelpers.wrapNativeSuper(HTMLDivElement));customElements.define("emby-tabs",EmbyTabs,{extends:"div"}),_exports.default=EmbyTabs}); \ No newline at end of file diff --git a/modules/emby-elements/emby-textarea/emby-textarea.css b/modules/emby-elements/emby-textarea/emby-textarea.css new file mode 100644 index 0000000..4bc3f06 --- /dev/null +++ b/modules/emby-elements/emby-textarea/emby-textarea.css @@ -0,0 +1 @@ +.emby-textarea{display:block;margin:0;margin-bottom:0!important;font-size:inherit;font-family:inherit;font-weight:inherit;color:inherit;padding:.35em .45ch;box-sizing:border-box;outline:0!important;-webkit-tap-highlight-color:transparent;width:100%;border-radius:.3em;letter-spacing:inherit}.emby-textarea:disabled{opacity:.5}.emby-textarea::-moz-focus-inner{border:0}.emby-textarea-labeltext{display:inline-block;margin-bottom:.1em;-webkit-user-select:none;user-select:none} \ No newline at end of file diff --git a/modules/emby-elements/emby-textarea/emby-textarea.js b/modules/emby-elements/emby-textarea/emby-textarea.js new file mode 100644 index 0000000..1ab06e9 --- /dev/null +++ b/modules/emby-elements/emby-textarea/emby-textarea.js @@ -0,0 +1 @@ +define(["exports","./../emby-input/emby-input.js"],function(_exports,_embyInput){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/emby-elements/emby-textarea/emby-textarea.css"]);var EmbyTextArea=function(_HTMLTextAreaElement){function EmbyTextArea(){var _this;_this=_HTMLTextAreaElement.call(this)||this;return babelHelpers.possibleConstructorReturn(_this,_this)}return babelHelpers.inherits(EmbyTextArea,_HTMLTextAreaElement),babelHelpers.createClass(EmbyTextArea,[{key:"connectedCallback",value:function(){!function(){var label,labelText;!this.classList.contains("emby-textarea")&&(this.hasAttribute("rows")||(this.rows=10),this.classList.add("emby-textarea"),label=this.closest("label"))&&(labelText=this.getAttribute("label")||"",label.insertAdjacentHTML("afterbegin",'
'+labelText+"
"),label.classList.add("emby-textarea-label"))}.call(this)}}])}(babelHelpers.wrapNativeSuper(HTMLTextAreaElement));customElements.define("emby-textarea",EmbyTextArea,{extends:"textarea"}),_exports.default=EmbyTextArea}); \ No newline at end of file diff --git a/modules/emby-elements/emby-toggle/emby-toggle.css b/modules/emby-elements/emby-toggle/emby-toggle.css new file mode 100644 index 0000000..df7b1d9 --- /dev/null +++ b/modules/emby-elements/emby-toggle/emby-toggle.css @@ -0,0 +1 @@ +.emby-toggle-label{position:relative;vertical-align:middle;display:-webkit-inline-flex;display:inline-flex;box-sizing:border-box;width:100%;margin:0;padding:0;-webkit-align-items:center;align-items:center;outline:0!important}.toggleContainer{margin-bottom:1.5em}.toggleContainer-listItem{margin-bottom:.5em}.emby-toggle{position:absolute;width:1px;height:1px;margin:0;padding:0;-webkit-appearance:none;appearance:none;border:none;outline:0!important}.emby-toggle:not(:disabled){cursor:pointer}.toggleLabel{position:relative;margin:0;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center}.emby-toggle:not(:disabled)+.toggleLabel,.emby-toggle:not(:disabled)~.toggleSwitch{cursor:pointer}.toggleSwitch{content:"";display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;position:relative;-webkit-margin-start:.5em;margin-inline-start:.5em;-webkit-flex-shrink:0;flex-shrink:0;width:3.7em;height:2.16em;border-radius:1.1em}.toggleSwitch::before{position:absolute;content:"";display:inline-block;left:.2em;right:initial;inset-inline-start:.2em;inset-inline-end:initial;height:1.82em;width:1.82em;border-radius:50%;transition-duration:.28s;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-property:inset-inline-start;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;background:#fff;box-shadow:0 0 .3em rgba(0,0,0,.25)}.emby-toggle:checked~.toggleSwitch::before{left:calc(100% - .2em - 1.82em);right:initial;inset-inline-start:calc(100% - .2em - 1.82em);inset-inline-end:initial}.emby-toggle[disabled]~.toggleSwitch{opacity:.5}.toggleFieldDescription{margin-top:.2em} \ No newline at end of file diff --git a/modules/emby-elements/emby-toggle/emby-toggle.js b/modules/emby-elements/emby-toggle/emby-toggle.js new file mode 100644 index 0000000..ae0bde4 --- /dev/null +++ b/modules/emby-elements/emby-toggle/emby-toggle.js @@ -0,0 +1 @@ +define(["exports","./../../input/keyboard.js"],function(_exports,_keyboard){function onKeyDown(e){var key=_keyboard.default.normalizeKeyFromEvent(e);if("Enter"===key)return e.preventDefault(),e.repeat?void 0:(this.checked=!this.checked,this.dispatchEvent(new CustomEvent("change",{bubbles:!0})),!1)}function onFocus(){var _this$closest;null!=(_this$closest=this.closest(".emby-toggle-label"))&&_this$closest.classList.add("emby-toggle-label-focus")}function onBlur(){var _this$closest2;null!=(_this$closest2=this.closest(".emby-toggle-label"))&&_this$closest2.classList.remove("emby-toggle-label-focus")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/emby-elements/emby-toggle/emby-toggle.css","css!!tv|modules/emby-elements/emby-toggle/emby-toggle_nontv.css","css!tv|modules/emby-elements/emby-toggle/emby-toggle_tv.css"]);var EmbyToggle=function(_HTMLInputElement){function EmbyToggle(){var _this;_this=_HTMLInputElement.call(this)||this;return babelHelpers.possibleConstructorReturn(_this,_this)}return babelHelpers.inherits(EmbyToggle,_HTMLInputElement),babelHelpers.createClass(EmbyToggle,[{key:"connectedCallback",value:function(){!function(){this.setAttribute("role","switch"),this.classList.add("emby-toggle");var labelElement=this.parentNode,labelTextElement=(labelElement.classList.add("emby-toggle-label"),labelElement.querySelector(".toggleLabel"));labelTextElement||((labelTextElement=document.createElement("span")).innerHTML=this.getAttribute("label")||"",labelElement.appendChild(labelTextElement)),labelTextElement.classList.add("toggleLabel"),this.classList.contains("toggle-inline")||labelTextElement.classList.add("flex-grow"),(labelTextElement=labelElement.querySelector(".toggleSwitch"))||((labelTextElement=document.createElement("div")).classList.add("toggleSwitch"),labelElement.appendChild(labelTextElement)),this.addEventListener("keydown",onKeyDown),this.removeEventListener("focus",onFocus),this.addEventListener("focus",onFocus),this.removeEventListener("blur",onBlur),this.addEventListener("blur",onBlur)}.call(this)}},{key:"disconnectedCallback",value:function(){!function(){this.removeEventListener("keydown",onKeyDown)}.call(this)}}])}(babelHelpers.wrapNativeSuper(HTMLInputElement));customElements.define("emby-toggle",EmbyToggle,{extends:"input"}),_exports.default=EmbyToggle}); \ No newline at end of file diff --git a/modules/emby-elements/emby-toggle/emby-toggle_nontv.css b/modules/emby-elements/emby-toggle/emby-toggle_nontv.css new file mode 100644 index 0000000..feb9156 --- /dev/null +++ b/modules/emby-elements/emby-toggle/emby-toggle_nontv.css @@ -0,0 +1 @@ +.emby-toggle:focus-visible~.toggleSwitch::before{box-shadow:0 0 0 .7em rgba(0,0,0,.3)}@media all and (pointer:fine){.toggleSwitch{width:3em;height:1.66em}.toggleSwitch::before{height:1.37em;width:1.37em}.emby-toggle:checked~.toggleSwitch::before{left:calc(100% - .2em - 1.37em);right:initial;inset-inline-start:calc(100% - .2em - 1.37em);inset-inline-end:initial}} \ No newline at end of file diff --git a/modules/emby-elements/emby-toggle/emby-toggle_tv.css b/modules/emby-elements/emby-toggle/emby-toggle_tv.css new file mode 100644 index 0000000..910c83f --- /dev/null +++ b/modules/emby-elements/emby-toggle/emby-toggle_tv.css @@ -0,0 +1 @@ +.emby-toggle-label{box-sizing:content-box;padding-top:.25em;padding-bottom:.25em}.emby-toggle-label.emby-toggle-label-focus{border-radius:.6em;-webkit-padding-start:.5em;padding-inline-start:.5em;-webkit-padding-end:.5em;padding-inline-end:.5em;-webkit-margin-start:-.5em;margin-inline-start:-.5em;-webkit-margin-end:-.5em;margin-inline-end:-.5em} \ No newline at end of file diff --git a/modules/emby-elements/guide/gridrowrenderer.js b/modules/emby-elements/guide/gridrowrenderer.js new file mode 100644 index 0000000..476a7c0 --- /dev/null +++ b/modules/emby-elements/guide/gridrowrenderer.js @@ -0,0 +1 @@ +define(["exports","./../../common/globalize.js","./../../common/usersettings/usersettings.js","./../../shortcuts.js","./../../emby-apiclient/connectionmanager.js","./../../indicators/indicators.js","./../../skinmanager.js","./../../common/itemmanager/itemmanager.js"],function(_exports,_globalize,_usersettings,_shortcuts,_connectionmanager,_indicators,_skinmanager,_itemmanager){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var supportsCssVariables=CSS.supports("color","var(--fake-var)");function parseDates(program){if(!program.StartDateLocalMs)try{program.StartDateLocalMs=Date.parse(program.StartDate)}catch(err){}if(!program.EndDateLocalMs)try{program.EndDateLocalMs=Date.parse(program.EndDate)}catch(err){}return null}var insetInlineStartProp=CSS.supports("inset-inline-start","0")?"inset-inline-start":"left";function getShadedMediaInfoItem(text,itemClass){return'
'+text+"
"}function getProgramHtml(program,options,totalGridMs){var html="",startMs=options.startMs,endMs=options.endMs,startDateLocalMs=(parseDates(program),program.StartDateLocalMs),endDateLocalMs=program.EndDateLocalMs,renderStartMs=Math.max(startDateLocalMs,startMs),startDateLocalMs=(startDateLocalMs-startMs)/totalGridMs,startDateLocalMs=(startDateLocalMs*=100,Math.max(startDateLocalMs,0)),startMs=(Math.min(endDateLocalMs,endMs)-renderStartMs)/totalGridMs,endDateLocalMs=null,endMs=!0,renderStartMs=options.displayMovieContent,totalGridMs=options.displaySportsContent,displayNewsContent=options.displayNewsContent,displayKidsContent=options.displayKidsContent,displaySeriesContent=options.displaySeriesContent,enableColorCodedBackgrounds=options.enableColorCodedBackgrounds,renderStartMs=(program.IsKids?(endMs=displayKidsContent,endDateLocalMs="kids"):program.IsSports?(endMs=totalGridMs,endDateLocalMs="sports"):program.IsNews?(endMs=displayNewsContent,endDateLocalMs="news"):program.IsMovie?(endMs=renderStartMs,endDateLocalMs="movie"):endMs=(program.IsSeries||renderStartMs&&displayNewsContent&&totalGridMs&&displayKidsContent)&&displaySeriesContent,"");program.TimerId&&(renderStartMs+=' data-timerid="'+program.TimerId+'"'),program.Status&&(renderStartMs+=' data-status="'+program.Status+'"'),program.SeriesTimerId&&(renderStartMs+=' data-seriestimerid="'+program.SeriesTimerId+'"');var text,displayNewsContent="programCellInner epgCellInner mediaInfoItems programMediaInfoItems";return enableColorCodedBackgrounds&&endDateLocalMs&&(displayNewsContent+=" programCellInner-"+endDateLocalMs),html=html+("')+('
'),html=(html=endMs&&(html+='',(totalGridMs=program.EpisodeTitle&&options.showEpisodeTitle&&(!options.conditionalEhowTitle||program.IsSports))&&(html+='
'),html=(html+='
'+program.Name)+"
"+function(item){var status;if("SeriesTimer"===item.Type)return'';if(item.TimerId||item.SeriesTimerId)status=item.Status||"Cancelled";else{if("Timer"!==item.Type)return"";status=item.Status}return item.SeriesTimerId?"Cancelled"!==status?'':'':''}(program),program.IsLive&&options.showLiveIndicator?html+=getShadedMediaInfoItem(_globalize.default.translate("Live"),"mediaInfoProgramAttribute guideProgramIndicator liveTvProgram"):program.IsPremiere&&options.showPremiereIndicator?html+=getShadedMediaInfoItem(_globalize.default.translate("Premiere"),"mediaInfoProgramAttribute guideProgramIndicator premiereTvProgram"):options.showNewIndicator&&program.IsNew?html+=getShadedMediaInfoItem(_globalize.default.translate("AttributeNew"),"mediaInfoProgramAttribute guideProgramIndicator newTvProgram"):program.IsRepeat&&options.showRepeatIndicator&&(html+=getShadedMediaInfoItem(_globalize.default.translate("Repeat"),"mediaInfoProgramAttribute guideProgramIndicator repeatTvProgram")),(options.showHdIcon||options.show4kIcon)&&program.Width&&1200<=program.Width&&(program.Width&&3800<=program.Width?options.show4kIcon&&(text="4K"):options.showHdIcon&&(text="HD"),html+=getShadedMediaInfoItem(text,"mediaInfoProgramAttribute guideProgramIndicator")),totalGridMs)?(html+="
")+'
'+program.EpisodeTitle+"
":html)+"
"+""}function getEpgRowHtml(instance,item,index,options){for(var guideChannelImageClass,apiClient=_connectionmanager.default.getApiClient(item),html="",channel=item.Channel,apiClient=options.showChannelImage?apiClient.getLogoImageUrl(channel,{maxHeight:220},_skinmanager.default.getPreferredLogoImageTypes()):null,cssClass=options.channelCellClass,titleText=_itemmanager.default.getDisplayName(channel,{}),titleText=(html+='"+'
',options.endMs-options.startMs),i=0,length=programs.length;i'+html+"")}function GridRowRenderer(options){this.options=options}GridRowRenderer.prototype.getItemParts=function(item,index,options){return options.parts=!0,getEpgRowHtml(0,item,0,options)},GridRowRenderer.prototype.getItemsHtml=function(items,options){this.setListOptions(items,options);for(var html="",i=0,length=items.length;i
'),guideChannelImageClass=(options.templateInnerHTML=guideChannelStyle,options.clickAction="linkdialog",options.startMs=options.startDateMs,options.endMs=options.endDateMs,options.categories||[]),guideChannelStyle=(options.displayMovieContent=!guideChannelImageClass.length||-1!==guideChannelImageClass.indexOf("movies"),options.displaySportsContent=!guideChannelImageClass.length||-1!==guideChannelImageClass.indexOf("sports"),options.displayNewsContent=!guideChannelImageClass.length||-1!==guideChannelImageClass.indexOf("news"),options.displayKidsContent=!guideChannelImageClass.length||-1!==guideChannelImageClass.indexOf("kids"),options.displaySeriesContent=!guideChannelImageClass.length||-1!==guideChannelImageClass.indexOf("series"),options.enableColorCodedBackgrounds="true"===_usersettings.default.get("guide-colorcodedbackgrounds"),options.conditionalEhowTitle=!0,options.showHdIcon="true"===_usersettings.default.get("guide-indicator-hd"),options.show4kIcon="false"!==_usersettings.default.get("guide-indicator-4k"),options.showLiveIndicator="false"!==_usersettings.default.get("guide-indicator-live"),options.showPremiereIndicator="false"!==_usersettings.default.get("guide-indicator-premiere"),options.showNewIndicator="false"!==_usersettings.default.get("guide-indicator-new"),options.showRepeatIndicator="true"===_usersettings.default.get("guide-indicator-repeat"),'data-focusabletype="nearest"');return options.addTabIndex&&(guideChannelStyle+=' tabindex="0"'),options.fixedAttributes=guideChannelStyle.trim(),options},GridRowRenderer.prototype.setListClasses=function(elem){},GridRowRenderer.parseDates=parseDates,GridRowRenderer.getProgramHtml=getProgramHtml,GridRowRenderer.virtualChunkSize=30;_exports.default=GridRowRenderer}); \ No newline at end of file diff --git a/modules/emby-elements/guide/guide-settings.js b/modules/emby-elements/guide/guide-settings.js new file mode 100644 index 0000000..4ef78b5 --- /dev/null +++ b/modules/emby-elements/guide/guide-settings.js @@ -0,0 +1 @@ +define(["exports","./../../common/globalize.js","./../../layoutmanager.js","./../../common/usersettings/usersettings.js","./../../dialoghelper/dialoghelper.js","./../emby-scroller/emby-scroller.js","./../emby-toggle/emby-toggle.js","./../emby-select/emby-select.js","./../emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_globalize,_layoutmanager,_usersettings,_dialoghelper,_embyScroller,_embyToggle,_embySelect,_embyDialogclosebutton){function load(context){for(var chkIndicators=context.querySelectorAll(".chkIndicator"),i=0,length=chkIndicators.length;i'+item.name+"",item.selected&&(value=item.value)}(context=context.querySelector(".selectChannelSort")).innerHTML=html,context.value=value}(context)}function loadChannelTags(context,apiClient){var selectTags=context.querySelector(".selectTags");selectTags.getItems=function(query){var outerItemIds=query.Ids;return query.Ids=null,this.getLiveTvChannelTags(Object.assign({SortBy:"SortName",SortOrder:"Ascending",EnableImages:!1,EnableUserData:!1,OuterIds:outerItemIds},query))}.bind(apiClient),selectTags.parentContainer=context.querySelector(".fldTags"),function(context){var context=context.querySelector(".selectTags"),channelTagIds=(channelTagIds=_usersettings.default.get("guide-tagids"))?channelTagIds.split(","):[];context.values=channelTagIds}(context)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle","material-icons"]);_exports.default={show:function(options,apiClient){return new Promise(function(resolve,reject){var settingsChanged=!1;require(["text!modules/emby-elements/guide/guide-settings.template.html"],function(template){var dialogOptions={removeOnClose:!0,scrollY:!1,offsetTop:2,positionTo:options.positionTo,positionX:options.positionX,positionY:options.positionY},dlg=(_layoutmanager.default.tv&&(dialogOptions.size="fullscreen"),_dialoghelper.default.createDialog(dialogOptions)),dialogOptions=(dlg.classList.add("formDialog"),"");dialogOptions+=_globalize.default.translateDocument(template,"sharedcomponents"),dlg.innerHTML=dialogOptions,dlg.addEventListener("change",function(){settingsChanged=!0}),dlg.addEventListener("close",function(){for(var context=dlg,chkIndicators=context.querySelectorAll(".chkIndicator"),i=0,length=chkIndicators.length;i + +

+ ${Settings} +

+
+
+
+ +
+
+
+ +
+ +
+ +
+ +
+ +
+
+
+ +
+ + ${HeaderShowFields} + +
+ + + + + + + +
+
+ +
+
+ +
+
+ +
+
\ No newline at end of file diff --git a/modules/emby-elements/guide/guide.css b/modules/emby-elements/guide/guide.css new file mode 100644 index 0000000..d841efc --- /dev/null +++ b/modules/emby-elements/guide/guide.css @@ -0,0 +1 @@ +.tvguide{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:initial;align-items:initial;box-sizing:border-box;overflow:hidden}.epgVirtualScrollerScrollContainer-both{overflow:scroll}.guide-headerTimeslots{display:-webkit-flex;display:flex;z-index:1}.tvProgram{display:block;text-decoration:none;white-space:nowrap;position:relative}.guideProgramIndicator{font-size:84%;line-height:inherit;padding:0 .5em}.guide-channelTimeslotHeader{-webkit-flex-shrink:0;flex-shrink:0;-webkit-justify-content:center;justify-content:center;border-inline-end-color:transparent}.timeslotHeaders{white-space:nowrap;position:relative;-webkit-align-items:center;align-items:center}.channelPrograms{-webkit-flex-direction:row;flex-direction:row;display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-grow:1;flex-grow:1;position:relative;contain:strict}.timeslotHeader{text-indent:.08em;-webkit-flex-grow:1;flex-grow:1;border-width:0 0 0 .46em;border-style:solid;border-color:transparent;height:100%;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.epgRow{width:100%;height:4.8em;padding:.23em 0;box-sizing:border-box}.channelCell,.guide-channelTimeslotHeader{padding:0!important;outline:0!important;width:100%;vertical-align:middle;font-family:inherit;font-size:inherit;overflow:hidden;text-overflow:ellipsis;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;text-decoration:none;-webkit-flex-shrink:0;flex-shrink:0;color:inherit;box-sizing:border-box}.channelCell{padding:0!important;margin:0!important;width:18ch;width:min(18ch,23vw);left:0;inset-inline-start:0;inset-inline-end:initial;z-index:1;position:relative;background:0 0;border-width:0;contain:layout style paint;font-weight:400;line-height:inherit;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.channelCell-wide{width:20ch;width:min(20ch,23vw)}.channelCell-wide2{width:26ch;width:min(26ch,23vw)}button.channelCell{cursor:pointer}.guideEpg-currentTimeIndicatorDot{-webkit-margin-start:min(18ch,23vw);margin-inline-start:min(18ch,23vw);position:absolute;top:0;bottom:0;z-index:1;border-style:solid;border-width:0 .2em 0 0;border-inline-start-width:0;border-inline-end-width:.2em;contain:strict}.guideEpg-currentTimeIndicatorDot-wide{-webkit-margin-start:22ch;margin-inline-start:22ch;-webkit-margin-start:min(22ch,23vw);margin-inline-start:min(22ch,23vw)}.guideEpg-currentTimeIndicatorDot-wide2{-webkit-margin-start:26ch;margin-inline-start:26ch;-webkit-margin-start:min(26ch,23vw);margin-inline-start:min(26ch,23vw)}.guideHeader-currentTimeIndicatorDot{position:absolute;top:0;bottom:0;z-index:1;border-style:solid;border-width:0 .2em 0 0;border-inline-start-width:0;border-inline-end-width:.2em;border-color:transparent!important;contain:layout size}.guideHeader-currentTimeIndicatorDot::before{content:"";border-color:currentcolor transparent transparent transparent;border-style:solid;border-width:.5em;pointer-events:none;position:absolute;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);bottom:-1em;left:.1em;inset-inline-start:.1em;inset-inline-end:initial}.channelCellInner{display:-webkit-flex;display:flex;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-direction:column;flex-direction:column;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;contain:strict;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row-reverse;flex-direction:row-reverse;padding:0 1em!important}.channelCellInner,.firstChannelCell,.programCellInner{border-radius:.42em}@supports ((position:-webkit-sticky) or (position:sticky)){.channelCell{position:-webkit-sticky;position:sticky}}.firstChannelCell{-webkit-justify-content:center;justify-content:center;height:2.3em;-webkit-flex-direction:row;flex-direction:row;padding:0 .25em!important;border-color:transparent!important}.btnGuideViewSettings{-webkit-flex-shrink:0;flex-shrink:0;-webkit-flex-grow:0;flex-grow:0}.btnGuideViewSettingsIcon{font-size:1.5em!important}.guideIconButton{padding:.3em}.selectDateIcon{-webkit-flex-shrink:0;flex-shrink:0}.programCell{color:inherit;background:0 0;border-style:solid;border-width:0 0 0 .46em;border-inline-start-width:.46em;border-inline-end-width:0;border-color:transparent;padding:0!important;cursor:pointer;outline:0!important;width:100%;vertical-align:middle;font-family:inherit;font-size:inherit;position:absolute;top:0;bottom:0;display:-webkit-flex;display:flex;text-decoration:none;overflow:hidden;-webkit-align-items:center;align-items:center;text-align:start;-webkit-flex-shrink:0;flex-shrink:0;margin:0!important;contain:strict;box-sizing:border-box;font-weight:400;line-height:inherit;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.programCellInner{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-align-content:center;align-content:center;-webkit-flex-grow:1;flex-grow:1;height:100%;overflow:hidden;text-overflow:ellipsis;contain:strict;position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;box-sizing:border-box;padding:0 1em}.programMediaInfoItems{-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-align-items:center!important;align-items:center!important}.guideProgramNameCaretIcon{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;font-size:200%;contain:style layout paint;-webkit-flex-shrink:0;flex-shrink:0;-webkit-margin-start:-.25em;margin-inline-start:-.25em;-webkit-margin-end:-.25em;margin-inline-end:-.25em}.guideProgramNameText{margin:0;overflow:hidden;text-overflow:ellipsis;contain:style layout paint;white-space:nowrap;-webkit-flex-direction:row;flex-direction:row;-webkit-align-items:center;align-items:center}.guideProgramSecondaryInfo{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:92%;-webkit-flex-basis:100%;flex-basis:100%}.programIcon{height:1em;width:1em;font-size:1.6em;color:#ddd;-webkit-flex-shrink:0;flex-shrink:0;-webkit-flex-grow:0;flex-grow:0}.guide-programTextIcon{color:#fff}.guideChannelImage{width:100%;background-size:contain;background-repeat:no-repeat;background-position:center center;-webkit-flex-grow:1;flex-grow:1;contain:strict;height:66%;height:calc(100% - 1.4em);-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:0;margin-inline-end:0;-webkit-flex-grow:initial;flex-grow:initial;background-position:right center}.guideChannelImage-rtl{background-position:left center}.guideChannelImage-withtext{max-width:50%;-webkit-margin-start:auto;margin-inline-start:auto}.guideChannelText{text-overflow:ellipsis;overflow:hidden;max-width:100%;margin:0;text-align:start;white-space:nowrap;display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-grow:1;flex-grow:1}.guideChannelImage+.guideChannelText{font-size:inherit;-webkit-flex-grow:1;flex-grow:1;-webkit-margin-end:1em;margin-inline-end:1em}.guideChannelName{-webkit-flex-grow:1;flex-grow:1;display:-webkit-flex;display:flex;-webkit-justify-content:flex-end;justify-content:flex-end}.guideChannelNumber+.guideChannelName{-webkit-margin-start:1ch;margin-inline-start:1ch}.epgCurrentProgramProgress{position:absolute;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;height:.16em} \ No newline at end of file diff --git a/modules/emby-elements/guide/guide.js b/modules/emby-elements/guide/guide.js new file mode 100644 index 0000000..ad70a76 --- /dev/null +++ b/modules/emby-elements/guide/guide.js @@ -0,0 +1 @@ +define(["exports","./../../browser.js","./../../shortcuts.js","./../../emby-apiclient/connectionmanager.js","./../../common/input/api.js","./../../emby-apiclient/events.js","./../../common/globalize.js","./../../dom.js","./../../layoutmanager.js","./../../common/datetime.js","./../../focusmanager.js","./../../loading/loading.js","./../../input/mouse.js","./../../common/usersettings/usersettings.js","./gridrowrenderer.js","./../emby-button/emby-button.js","./../emby-scroller/emby-scroller.js","./../emby-button/paper-icon-button-light.js","./../../common/methodtimer.js","./../emby-itemscontainer/emby-itemscontainer.js","./../../common/inputmanager.js","./../../common/playback/playbackmanager.js"],function(_exports,_browser,_shortcuts,_connectionmanager,_api,_events,_globalize,_dom,_layoutmanager,_datetime,_focusmanager,_loading,_mouse,_usersettings,_gridrowrenderer,_embyButton,_embyScroller,_paperIconButtonLight,_methodtimer,_embyItemscontainer,_inputmanager,_playbackmanager){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/emby-elements/guide/guide.css","css!!tv|modules/emby-elements/guide/guide_nontv.css","css!tv|modules/emby-elements/guide/guide_tv.css","css!modules/emby-elements/guide/guide_post.css","css!firefox|modules/emby-elements/guide/guide_firefox.css","programStyles","material-icons","flexStyles"]);var cellDurationMs=18e5,msPerMinute=6e4,msPerPage=288e5,startId=Date.now();function normalizeDateToTimeslot(value,roundUp){var delta=value%cellDurationMs;return roundUp&&delta&&(value+=cellDurationMs),value-=delta}function onSettingsButtonClick(e){var instance=this;Emby.importModule("./modules/emby-elements/guide/guide-settings.js").then(function(guideSettingsDialog){guideSettingsDialog.show({categoryOptions:instance.categoryOptions,positionTo:e.target,positionY:"bottom",positionX:"after"},_connectionmanager.default.getApiClient(instance.options.serverId)).then(function(){instance.refresh()})})}function onDateButtonClick(e){!function(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}({items:function(instance){for(var items=[],start=new Date(instance._startDateMs),end=new Date(instance._endDateMs),nowHours=(today=new Date).getHours(),nowMinutes=30<=today.getMinutes()?30:0,nowHours=(start.setHours(nowHours,nowMinutes,0,0),end.setHours(0,0,0,0),start.getTime()>=end.getTime()&&end.setDate(start.getDate()+1),start=new Date(Math.max(today,start)),instance.scroller),nowMinutes=instance.scroller.getScrollWidth(),today=(nowMinutes-=getChannelCellWidth(instance),instance._startDateMs),instance=instance._endDateMs,nowHours=Math.abs(nowHours.getScrollLeft())/nowMinutes*(instance-today),date=(nowHours+=today,new Date(nowHours));start<=end;)items.push({name:_datetime.default.toLocaleDateString(start,{weekday:"long",month:"short",day:"numeric"}),value:start.getTime().toString(),selected:date.getDate()===start.getDate()&&date.getMonth()===start.getMonth()&&date.getFullYear()===start.getFullYear()}),start.setDate(start.getDate()+1),start.setHours(0,0,0,0);return items}(this),positionTo:e.target,title:_globalize.default.translate("Date"),positionY:"bottom",hasItemSelectionState:!0}).then(function(value){scrollToTimeMs(this,value,!1,!0)}.bind(this))}function scrollToTimeMs(instance,value,exactTime,autoFocus){value=parseInt(value);var startDate,endDate,date=new Date,value=(date.setTime(value),instance.scroller),scrollWidth=instance.scroller.getScrollWidth();scrollWidth&&(scrollWidth-=getChannelCellWidth(instance),startDate=instance._startDateMs,endDate=instance._endDateMs,exactTime||(exactTime=Math.abs(value.getScrollLeft())/scrollWidth*(endDate-startDate),exactTime+=startDate,exactTime=new Date(exactTime),date.setHours(exactTime.getHours(),exactTime.getMinutes()+1,0,0)),date.setTime(normalizeDateToTimeslot(date.getTime())),exactTime=Math.max(date.getTime()-startDate,0)/(endDate-startDate),value.scrollToPosition({left:exactTime*scrollWidth*value.getScrollLeftMultiplier(),behavior:"instant"}),onScroll.call(instance,{currentTarget:instance.scroller,target:instance.scroller,autoFocus:autoFocus}))}var InsetInlineStartProp=CSS.supports("inset-inline-start","0")?"insetInlineStart":"left",BorderInlineStartWidthProp=CSS.supports("border-inline-start-width","0")?"borderInlineStartWidth":"borderLeftWidth";function setPaddingInlineStart(elem,value){(elem._paddingInlineStart||"0")!==value&&(elem._paddingInlineStart=value,elem.style[InsetInlineStartProp]=value)}function getChannelCellWidth(instance){var scroller,focusScrollOffsetLeft,channelCellWidth=instance.channelCellWidth;return channelCellWidth||(channelCellWidth=instance.firstChannelCell.offsetWidth,instance.channelCellWidth=channelCellWidth,(scroller=instance.scroller).setFocusScrollOffsetLeft&&(focusScrollOffsetLeft=(0-channelCellWidth)*scroller.getScrollLeftMultiplier(),scroller.setFocusScrollOffsetLeft(focusScrollOffsetLeft),focusScrollOffsetLeft=instance.headerScroller.querySelector(".timeslotHeader"))&&(scroller.scroller.options.scrollSnapSizeX=focusScrollOffsetLeft.getBoundingClientRect().width)),channelCellWidth}function getTimeBlockStart(instance,scrollLeft,scrollWidth){var startDate=instance._startDateMs,instance=instance._endDateMs,scrollLeft=scrollWidth?scrollLeft/scrollWidth*(instance-startDate):0;return(scrollLeft=Math.floor(scrollLeft))-scrollLeft%msPerPage+startDate}function getProgramFieldsProperty(){var programFields=[];return"true"===_usersettings.default.get("false"!==_usersettings.default.get("guide-indicator-4k")||"guide-indicator-hd")&&(programFields.push("IsHD"),programFields.push("Width")),programFields.length?programFields.join(","):null}function loadPrograms(instance,epgRowMap,channelIds,timeBlockStart){var promise,apiClient=_connectionmanager.default.getApiClient(instance.options.serverId),cacheKey=[apiClient.getCurrentUserId(),timeBlockStart.toString(),channelIds.join(",")].join("|"),cachedResult=(instance.programCache||(instance.programCache={}),instance.programCache[cacheKey]);return(promise=cachedResult?Promise.resolve(cachedResult):promise)||(cachedResult=timeBlockStart===getTimeBlockStart(instance,0,0)?1e3:0,timeBlockStart={UserId:apiClient.getCurrentUserId(),MaxStartDate:new Date(timeBlockStart+msPerPage).toISOString(),MinEndDate:new Date(timeBlockStart+cachedResult).toISOString(),channelIds:channelIds.join(","),ImageTypeLimit:1,SortBy:"StartDate",EnableTotalRecordCount:!1,EnableUserData:!1,Fields:getProgramFieldsProperty(),EnableImages:!1},promise=apiClient.getLiveTvPrograms(timeBlockStart)),promise.then(function(result){return instance.programCache||(instance.programCache={}),instance.programCache[cacheKey]=result,function(instance,epgRowMap,programs){for(var i=0,length=programs.length;i'+item.Name+""}var parent=instance.options.element.querySelector(".tagFilters");parent.innerHTML=html;for(var _i=0,_length=selectedTagIds.length;_i<_length;_i++){var id=selectedTagIds[_i],id=parent.querySelector('button[data-id="'+id+'"]');id&&addSelectedClass(id)}}(instance,result.Items),selectAllButtonIfNeeded(instance)})}function removeSelectedClass(elems){for(var i=0,length=elems.length;icheck_circle')}function selectAllButtonIfNeeded(instance){instance.options.element.querySelectorAll(".emby-tab-button-active:not(.btnGuideCategory-all)").length||addSelectedClass(instance.options.element.querySelector(".btnGuideCategory-all"))}function initialRender(instance){return instance.rendered?Promise.resolve():(instance.rendered=!0,require(["text!modules/emby-elements/guide/tvguide.template.html"]).then(function(responses){for(var context=instance.options.element,responses=(context.classList.add("tvguide"),context.insertAdjacentHTML("beforeend",_globalize.default.translateDocument(responses[0],"sharedcomponents")),instance.firstChannelCell=context.querySelector(".firstChannelCell"),instance.settingsChannelCell=context.querySelector(".settingsChannelCell"),instance.onTimerCreatedFn=function(e,apiClient,data){for(var programId=data.ProgramId,newTimerId=data.Id,cells=this.options.element.querySelectorAll('.programCell[data-id="'+programId+'"]'),i=0,length=cells.length;i'):programCellInner.insertAdjacentHTML("beforeend",'')),newTimerId&&cell.setAttribute("data-timerid",newTimerId)}}.bind(instance),_events.default.on(_api.default,"TimerCreated",instance.onTimerCreatedFn),instance.onSeriesTimerCreatedFn=function(e,apiClient,data){}.bind(instance),_events.default.on(_api.default,"SeriesTimerCreated",instance.onSeriesTimerCreatedFn),instance.onTimerCancelledFn=function(e,apiClient,data){for(var options=this.options,data=data.Id,cells=options.element.querySelectorAll('.programCell[data-timerid="'+data+'"]'),i=0,length=cells.length;i'),this.currentTimeIndicatorDots=this.options.element.querySelectorAll(".guide-currentTimeIndicatorDot")),this.options.element.querySelector(".guideEpg-currentTimeIndicatorDot"));(_this$itemsContainer$=_this$itemsContainer$.channelCellClass||"").includes("channelCell-wide2")?(firstChannelCell.classList.add("channelCell-wide2"),firstChannelCell.classList.remove("channelCell-wide"),settingsChannelCell.classList.add("channelCell-wide2"),settingsChannelCell.classList.remove("channelCell-wide"),elem.classList.add("guideEpg-currentTimeIndicatorDot-wide2"),elem.classList.remove("guideEpg-currentTimeIndicatorDot-wide")):_this$itemsContainer$.includes("channelCell-wide")?(firstChannelCell.classList.add("channelCell-wide"),firstChannelCell.classList.remove("channelCell-wide2"),settingsChannelCell.classList.add("channelCell-wide"),settingsChannelCell.classList.remove("channelCell-wide2"),elem.classList.add("guideEpg-currentTimeIndicatorDot-wide"),elem.classList.remove("guideEpg-currentTimeIndicatorDot-wide2")):(firstChannelCell.classList.remove("channelCell-wide","channelCell-wide2"),settingsChannelCell.classList.remove("channelCell-wide","channelCell-wide2"),elem.classList.remove("guideEpg-currentTimeIndicatorDot-wide","guideEpg-currentTimeIndicatorDot-wide2")),this.startCurrentTimeUpdateInterval()}.bind(instance),responses.virtualChunkSize=25,responses.getListOptions=instance.getListOptions.bind(instance),instance.itemsContainer=responses,instance.boundFocusableElements=function(newRowToFocus,activeElement,direction,focusOptions){var isRTL="rtl"===document.dir,scrollToChannelId=((scrollToChannelId=this.scrollToChannelId)&&(-1!==(scrollToChannelId=this.itemsContainer.indexOfItemId(scrollToChannelId))&&(scrollToChannelId=this.itemsContainer.getElement(scrollToChannelId))&&(newRowToFocus=scrollToChannelId),this.scrollToChannelId=null),activeElement.closest(".channelCell")),isGoingBackHorizontally=isRTL?1===direction:0===direction;if(scrollToChannelId){if(newRowToFocus)return(_elems=newRowToFocus.querySelectorAll(".channelCell")).length?_elems:null;if(isGoingBackHorizontally)return null}newRowToFocus=newRowToFocus||activeElement.closest(".epgRow");var _elems=activeElement.closest(".programCell");if(isGoingBackHorizontally||_elems&&null!=direction&&direction<2){isGoingBackHorizontally=newRowToFocus.querySelectorAll(".programCell,.channelCell"),activeElement=Array.prototype.indexOf.call(isGoingBackHorizontally,activeElement);if(-1!==activeElement){var offset=0===direction||2===direction?-1:1,activeElement=(direction<2&&isRTL&&(offset*=-1),activeElement+offset),activeElement=Math.min(Math.max(0,activeElement),isGoingBackHorizontally.length-1);if((isGoingBackHorizontally=Array.prototype.slice.call(isGoingBackHorizontally,activeElement,activeElement+1)).length)return isGoingBackHorizontally}return null}if(offset=newRowToFocus.querySelectorAll(".programCell"),null==direction||2<=direction||scrollToChannelId&&(isRTL?0===direction:1===direction)){for(var activeElement=this.currentPositionMs+msPerMinute,currentPositionMs=!_elems||!(null==direction||2<=direction)||null!=focusOptions&&focusOptions.ignoreFocusedProgram?activeElement:(currentPositionMs=getProgramFromProgramCell(_elems).StartDateLocalMs,Math.max(currentPositionMs,activeElement)),isGoingBackHorizontally=Date.now(),programs=(currentPositionMs<=isGoingBackHorizontally&&isGoingBackHorizontally')+getDisplayTime(startDate)+"",startDate.setTime(startDate.getTime()+cellDurationMs);return html}(startDate,guideInfo),this.currentPositionMs?null:startDate);return this.updateDateButtonText(guideInfo,Math.abs(this.scroller.getScrollLeft())),refreshTagFilters(this),null!=(startDate=this.itemsContainer.virtualScroller)&&startDate.resetAll(),this.itemsContainer.resume({refresh:!0}).then(function(){_loading.default.hide()})}var dateLocalOptions={weekday:"short",month:"short",day:"numeric"};function hideOrShow(elem,hide){!0===elem._showing?hide&&(elem.classList.add("hide"),elem._showing=!1):hide||(elem.classList.remove("hide"),elem._showing=!0)}function isInCurrentFocusScope(){return!_focusmanager.default.hasExclusiveFocusScope()}Guide.prototype.updateCurrentPositionIfNeeded=function(){var now,currentPositionMs=this.currentPositionMs;currentPositionMs&&(console.log("currentPositionMs: "+currentPositionMs),currentPositionMs=normalizeDateToTimeslot(currentPositionMs),console.log("currentPositionMs normalized: "+currentPositionMs),now=Date.now(),console.log("now: "+now),currentPositionMs<=now&&nowcellDurationMs?hideOrShow(scrollLeft,!1):hideOrShow(scrollLeft,!0),_usersettings.default.guideChannelStyle();_usersettings.default.showChannelNumberInGuide(),!1===this.options.dateButton?this.dateButtons[0].classList.add("hide"):this.dateButtons[0].classList.remove("hide")};function scrollToIndex(instance,index,focus,scrollBehavior){focus&&instance.scroller.setFocusScroll("start"),instance.itemsContainer.scrollToIndex(index,{behavior:scrollBehavior},focus),focus&&instance.scroller.setFocusScroll(null)}function scrollToChannel(instance,itemId,focus,scrollBehavior){focus||(instance.scrollToChannelId=itemId);var index=instance.itemsContainer.indexOfItemId(itemId);-1!==index?scrollToIndex(instance,index,focus,scrollBehavior):instance.itemsContainer.fetchData({Limit:0}).then(function(totalResult){totalResult.TotalRecordCount<=1?scrollToIndex(instance,0,focus,scrollBehavior):instance.itemsContainer.fetchData({StartItemId:itemId,Limit:0}).then(function(result){result=result.TotalRecordCount?Math.max(totalResult.TotalRecordCount-result.TotalRecordCount,0):0;scrollToIndex(instance,result,focus,scrollBehavior)})})}function getProgramMap(epgItem){for(var programMap={},items=epgItem.Programs,i=0,length=items.length;i.btnLiveGuideText{background:rgba(204,51,51,.2)}@media not all and (min-height:38em){.btnLiveGuide{display:none!important}}.tvguide .emby-scrollbuttons{font-size:inherit}.tvguide .scrollbuttoncontainer{position:fixed!important;background:0 0!important;z-index:99999999999999;bottom:initial;top:50%;height:initial;left:initial;right:3.5em;inset-inline-start:initial;inset-inline-end:3.5em}@media all and (pointer:fine){.tvguide .scrollbuttoncontainer{right:2.8em;inset-inline-start:initial;inset-inline-end:2.8em;display:-webkit-flex;display:flex}}.tvguide .scrollbuttoncontainer-backwards{margin-top:-6em}.tvguide .scrollbuttoncontainer-forwards{margin-top:2.5em}.tvguide .emby-scrollbuttons-scrollbutton{color:#000!important;font-weight:700;border-radius:100em;font-size:140%;padding:0;background:#fff;box-shadow:0 .18em .36em 0 rgb(0 0 0 / 16%);width:2.518em;height:2.518em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;overflow:hidden;-webkit-transform:none!important;transform:none!important;margin:0!important} \ No newline at end of file diff --git a/modules/emby-elements/guide/guide_post.css b/modules/emby-elements/guide/guide_post.css new file mode 100644 index 0000000..43faaec --- /dev/null +++ b/modules/emby-elements/guide/guide_post.css @@ -0,0 +1 @@ +.channelCellInner-twoline{-webkit-flex-direction:column;flex-direction:column;padding:.6em 1em .4em!important}.channelCellInner-notext{padding:.7em 1em!important}.guideChannelImage-twoline{background-position:center center;height:auto;-webkit-flex-grow:1;flex-grow:1;max-width:initial;-webkit-margin-start:0;margin-inline-start:0}.channelCellInner-twoline .guideChannelText{margin:0!important;-webkit-flex-grow:initial!important;flex-grow:initial!important;max-width:initial;-webkit-flex-shrink:0;flex-shrink:0}.guideChannelImage-twoline+.guideChannelText{font-size:82%;margin:.6em 0 0!important}.programCell,.channelCell{outline:0!important}.timerIcon,.seriesTimerIcon{color:#c33!important}.seriesTimerIcon-inactive{color:inherit!important;opacity:.7}.guideOptions{-webkit-flex-shrink:0;flex-shrink:0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.guideRequiresUnlock{margin:1em auto;text-align:center;padding:1em;-webkit-flex-shrink:0;flex-shrink:0}@supports selector(:hover) and (display:revert) and (column-gap:1em){.programMediaInfoItems{-webkit-column-gap:.8ch;column-gap:.8ch}}.guide-filter-button{padding-top:.3em;padding-bottom:.3em;margin:0 .25em}.guide-filters-active-icon{font-size:110%} \ No newline at end of file diff --git a/modules/emby-elements/guide/guide_tv.css b/modules/emby-elements/guide/guide_tv.css new file mode 100644 index 0000000..c7e0d8f --- /dev/null +++ b/modules/emby-elements/guide/guide_tv.css @@ -0,0 +1 @@ +.epgRow{height:3.2em}.epgRow-twoline{height:5em} \ No newline at end of file diff --git a/modules/emby-elements/guide/programs.css b/modules/emby-elements/guide/programs.css new file mode 100644 index 0000000..444657c --- /dev/null +++ b/modules/emby-elements/guide/programs.css @@ -0,0 +1 @@ +.newTvProgram{background:hsl(209,100%,50.2%);color:#fff}.liveTvProgram{background:#c33;color:#fff}.premiereTvProgram{background:hsl(209,100%,50.2%);color:#fff} \ No newline at end of file diff --git a/modules/emby-elements/guide/tvguide.template.html b/modules/emby-elements/guide/tvguide.template.html new file mode 100644 index 0000000..207cac0 --- /dev/null +++ b/modules/emby-elements/guide/tvguide.template.html @@ -0,0 +1,59 @@ +
+ +
+ + +
+ +
+
+ + + +
+ +
+ +
+ + + + +
+ +
+
+
+ +
+ +
+ +
+ + + + + +
+
+
+ +
+ + \ No newline at end of file diff --git a/modules/emby-elements/sync/emby-downloadbutton.js b/modules/emby-elements/sync/emby-downloadbutton.js new file mode 100644 index 0000000..662402d --- /dev/null +++ b/modules/emby-elements/sync/emby-downloadbutton.js @@ -0,0 +1 @@ +define(["exports","./../../common/globalize.js","./../../emby-apiclient/connectionmanager.js","./../emby-button/emby-button.js","./../../layoutmanager.js"],function(_exports,_globalize,_connectionmanager,_embyButton,_layoutmanager){function onClick(e){var options,button=this,id=button.getAttribute("data-id"),serverId=button.getAttribute("data-serverid"),type=button.getAttribute("data-itemtype"),apiClient=_connectionmanager.default.getApiClient(serverId);button.classList.contains("downloadbutton-on")?(options={text:_globalize.default.translate("ConfirmRemoveDownload"),confirmText:_globalize.default.translate("RemoveDownload"),cancelText:_globalize.default.translate("KeepDownload"),primary:"cancel"},Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)}).then(function(){apiClient.cancelSyncItems([id]),button.dispatchEvent(new CustomEvent("download-cancel",{cancelable:!1}))})):Emby.importModule("./modules/sync/sync.js").then(function(syncDialog){syncDialog.showMenu({items:[{Id:id,Type:type,ServerId:serverId}],mode:"download",serverId:serverId}).then(function(){button.dispatchEvent(new CustomEvent("download",{cancelable:!1}))})})}function clearEvents(button){button.removeEventListener("click",onClick)}function bindEvents(button){clearEvents(button),button.addEventListener("click",onClick)}function fetchAndUpdate(button,item){_connectionmanager.default.getApiClient(item).getSyncStatus(item).then(function(result){!function(button,status){var icon=button.iconElement;icon||(button.iconElement=button.querySelector("i"),icon=button.iconElement),null!=status?(button.classList.add("downloadbutton-on"),icon&&icon.classList.add("downloadbutton-icon-on")):(button.classList.remove("downloadbutton-on"),icon&&icon.classList.remove("downloadbutton-icon-on")),"Synced"===status?(button.classList.add("downloadbutton-complete"),icon&&icon.classList.add("downloadbutton-icon-complete")):(button.classList.remove("downloadbutton-complete"),icon&&icon.classList.remove("downloadbutton-icon-complete")),icon="Synced"===status?_globalize.default.translate("Downloaded"):null!=status?_globalize.default.translate("Downloading"):_globalize.default.translate("Download"),(status=button.querySelector(".button-text"))&&(status.innerHTML=icon),button.title=icon,button.setAttribute("aria-label",icon)}(button,result.Status)},function(){})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var EmbyDownloadButton=function(_EmbyButton){function EmbyDownloadButton(){var _this;_this=_EmbyButton.call(this)||this;return babelHelpers.possibleConstructorReturn(_this,_this)}return babelHelpers.inherits(EmbyDownloadButton,_EmbyButton),babelHelpers.createClass(EmbyDownloadButton,[{key:"connectedCallback",value:function(){_embyButton.default.prototype.connectedCallback.call(this),function(){var itemId=this.getAttribute("data-id"),serverId=this.getAttribute("data-serverid");itemId&&serverId&&bindEvents(this)}.call(this)}},{key:"disconnectedCallback",value:function(){_embyButton.default.prototype.disconnectedCallback.call(this),function(){clearEvents(this),this.iconElement=null}.call(this)}},{key:"setItem",value:function(item){!function(item){(item?(this.setAttribute("data-id",item.Id),this.setAttribute("data-serverid",item.ServerId),this.setAttribute("data-itemtype",item.Type),fetchAndUpdate(this,item),bindEvents):(this.removeAttribute("data-id"),this.removeAttribute("data-serverid"),this.removeAttribute("data-itemtype"),clearEvents))(this)}.call(this,item)}}])}(_embyButton.default);EmbyDownloadButton.getHtml=function(item,buttonClass,iconClass,buttonType){iconClass=iconClass||"",buttonType=buttonType||"paper-icon-button-light",buttonClass?buttonClass+=" md-icon "+buttonType:buttonClass="md-icon "+buttonType,_layoutmanager.default.tv||(buttonClass+=" button-hoverable");buttonType=item.SyncStatus;return null!=buttonType&&(buttonClass+=" downloadbutton-on",iconClass+=" downloadbutton-icon-on"),"Synced"===buttonType&&(buttonClass+=" downloadbutton-complete",iconClass+=" downloadbutton-icon-complete"),iconClass&&(buttonClass+=" "+iconClass),iconClass="Synced"===buttonType?_globalize.default.translate("Downloaded"):null!=buttonType?_globalize.default.translate("Downloading"):_globalize.default.translate("Download"),''},customElements.define("emby-downloadbutton",EmbyDownloadButton,{extends:"button"}),_exports.default=EmbyDownloadButton}); \ No newline at end of file diff --git a/modules/emby-elements/userdatabuttons/emby-playstatebutton.js b/modules/emby-elements/userdatabuttons/emby-playstatebutton.js new file mode 100644 index 0000000..54b92cd --- /dev/null +++ b/modules/emby-elements/userdatabuttons/emby-playstatebutton.js @@ -0,0 +1 @@ +define(["exports","./../../shortcuts.js","./../../emby-apiclient/connectionmanager.js","./../../emby-apiclient/events.js","./../../common/globalize.js","./../../common/input/api.js","./../emby-button/emby-button.js","./../../layoutmanager.js"],function(_exports,_shortcuts,_connectionmanager,_events,_globalize,_api,_embyButton,_layoutmanager){function onClick(e){e.preventDefault();var e=function(button){if(button.hasAttribute("data-owned"))return _shortcuts.default.getItemFromChildNode(button,!0);var id=button.getAttribute("data-id"),button=button.getAttribute("data-serverid");return{Id:id,ServerId:button}}(this),apiClient=_connectionmanager.default.getApiClient(e);"true"!==this.getAttribute("data-played")?(apiClient.markPlayed(apiClient.getCurrentUserId(),[e.Id]),setState(this,!0)):(apiClient.markUnplayed(apiClient.getCurrentUserId(),[e.Id]),setState(this,!1))}function onUserDataChanged(e,apiClient,userData){userData.ItemId===this.getAttribute("data-id")&&setState(this,userData.Played)}function setState(button,played,updateAttribute){!function(button,played){played=played?_globalize.default.translate("HeaderMarkUnplayed"):_globalize.default.translate("HeaderMarkPlayed"),button.title=played,button.setAttribute("aria-label",played),played=button.querySelector(".button-text");played&&(played.innerHTML=_globalize.default.translate("Played"))}(button,played);var icon=button.querySelector("i")||button;played?icon&&icon.classList.add("playstatebutton-icon","playstatebutton-icon-played"):icon&&(icon.classList.add("playstatebutton-icon"),icon.classList.remove("playstatebutton-icon-played")),!1!==updateAttribute&&button.setAttribute("data-played",played)}function clearEvents(button){var name,handler;button.removeEventListener("click",onClick),(handler=(button=button)[name="UserDataChanged"])&&(_events.default.off(_api.default,name,handler),button[name]=null)}function bindEvents(button){var name,handler;button.addEventListener("click",onClick),button.hasAttribute("data-owned")||(name="UserDataChanged",handler=(handler=onUserDataChanged).bind(button=button),_events.default.on(_api.default,name,handler),button[name]=handler)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var EmbyPlaystateButton=function(_EmbyButton){function EmbyPlaystateButton(){var _this;_this=_EmbyButton.call(this)||this;return babelHelpers.possibleConstructorReturn(_this,_this)}return babelHelpers.inherits(EmbyPlaystateButton,_EmbyButton),babelHelpers.createClass(EmbyPlaystateButton,[{key:"connectedCallback",value:function(){_embyButton.default.prototype.connectedCallback.call(this),bindEvents(this)}},{key:"disconnectedCallback",value:function(){_embyButton.default.prototype.disconnectedCallback.call(this),clearEvents(this)}},{key:"setItem",value:function(item){item?(this.setAttribute("data-id",item.Id),this.setAttribute("data-serverid",item.ServerId),setState(this,item.UserData&&item.UserData.Played)):(this.removeAttribute("data-id"),this.removeAttribute("data-serverid"),this.removeAttribute("data-played"))}}])}(_embyButton.default);EmbyPlaystateButton.getHtml=function(played,buttonClass,iconClass,buttonType){iconClass?iconClass+=" playstatebutton-icon":iconClass="playstatebutton-icon",played&&(iconClass+=" playstatebutton-icon-played"),buttonType=buttonType||"paper-icon-button-light",buttonClass?buttonClass+=" md-icon "+buttonType:buttonClass="md-icon "+buttonType,iconClass&&(buttonClass+=" "+iconClass),_layoutmanager.default.tv||(buttonClass+=" button-hoverable");buttonType=played?_globalize.default.translate("HeaderMarkUnplayed"):_globalize.default.translate("HeaderMarkPlayed");return''},customElements.define("emby-playstatebutton",EmbyPlaystateButton,{extends:"button"}),_exports.default=EmbyPlaystateButton}); \ No newline at end of file diff --git a/modules/emby-elements/userdatabuttons/emby-ratingbutton.js b/modules/emby-elements/userdatabuttons/emby-ratingbutton.js new file mode 100644 index 0000000..8cf5af2 --- /dev/null +++ b/modules/emby-elements/userdatabuttons/emby-ratingbutton.js @@ -0,0 +1 @@ +define(["exports","./../../shortcuts.js","./../../emby-apiclient/connectionmanager.js","./../../emby-apiclient/events.js","./../../common/globalize.js","./../../common/input/api.js","./../emby-button/emby-button.js","./../../layoutmanager.js"],function(_exports,_shortcuts,_connectionmanager,_events,_globalize,_api,_embyButton,_layoutmanager){function showToast(options){Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}function onClick(e){e.preventDefault();var e=function(button){if(button.hasAttribute("data-owned"))return _shortcuts.default.getItemFromChildNode(button,!0);var id=button.getAttribute("data-id"),button=button.getAttribute("data-serverid");return{Id:id,ServerId:button}}(this),id=e.Id,e=e.ServerId;id&&e&&!function(apiClient,itemId,isFavorite){var newValue=!isFavorite;apiClient.updateFavoriteStatus(apiClient.getCurrentUserId(),[itemId],newValue).then(function(){showToast(newValue?{text:_globalize.default.translate("Favorited"),icon:""}:{text:_globalize.default.translate("Unfavorited"),icon:"",iconStrikeThrough:!0})})}(_connectionmanager.default.getApiClient(e),id,"true"===this.getAttribute("data-isfavorite"))}function onUserDataChanged(e,apiClient,userData){userData.ItemId===this.getAttribute("data-id")&&setState(this,userData.IsFavorite)}function setState(button,isFavorite,updateAttribute){!function(button,isFavorite){isFavorite=isFavorite?_globalize.default.translate("HeaderRemoveFromFavorites"):_globalize.default.translate("HeaderAddToFavorites"),button.title=isFavorite,button.setAttribute("aria-label",isFavorite),isFavorite=button.querySelector(".button-text");isFavorite&&(isFavorite.innerHTML=_globalize.default.translate("Favorite"))}(button,isFavorite);var icon=button.querySelector("i")||button;isFavorite?icon&&(icon.innerHTML="",icon.classList.add("ratingbutton-icon-withrating","md-icon-fill")):icon&&(icon.innerHTML="",icon.classList.remove("ratingbutton-icon-withrating","md-icon-fill")),!1!==updateAttribute&&button.setAttribute("data-isfavorite",isFavorite)}function clearEvents(button){var name,handler;button.removeEventListener("click",onClick),(handler=(button=button)[name="UserDataChanged"])&&(_events.default.off(_api.default,name,handler),button[name]=null)}function bindEvents(button){var name,handler;button.addEventListener("click",onClick),button.hasAttribute("data-owned")||(name="UserDataChanged",handler=(handler=onUserDataChanged).bind(button=button),_events.default.on(_api.default,name,handler),button[name]=handler)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var EmbyRatingButton=function(_EmbyButton){function EmbyRatingButton(){var _this;_this=_EmbyButton.call(this)||this;return babelHelpers.possibleConstructorReturn(_this,_this)}return babelHelpers.inherits(EmbyRatingButton,_EmbyButton),babelHelpers.createClass(EmbyRatingButton,[{key:"connectedCallback",value:function(){_embyButton.default.prototype.connectedCallback.call(this),bindEvents(this)}},{key:"disconnectedCallback",value:function(){_embyButton.default.prototype.disconnectedCallback.call(this),clearEvents(this)}},{key:"setItem",value:function(item){item?(this.setAttribute("data-id",item.Id),this.setAttribute("data-serverid",item.ServerId),setState(this,(item.UserData||{}).IsFavorite)):(this.removeAttribute("data-id"),this.removeAttribute("data-serverid"),this.removeAttribute("data-isfavorite"))}}])}(_embyButton.default);EmbyRatingButton.getHtml=function(isFavorite,buttonClass,iconClass,buttonType){iconClass=iconClass||"",isFavorite&&(iconClass+=" ratingbutton-icon-withrating md-icon-fill"),buttonType=buttonType||"paper-icon-button-light",buttonClass?buttonClass+=" md-icon "+buttonType:buttonClass="md-icon "+buttonType,iconClass&&(buttonClass+=" "+iconClass),_layoutmanager.default.tv||(buttonClass+=" button-hoverable");buttonType=isFavorite?_globalize.default.translate("HeaderRemoveFromFavorites"):_globalize.default.translate("HeaderAddToFavorites");return''},customElements.define("emby-ratingbutton",EmbyRatingButton,{extends:"button"}),_exports.default=EmbyRatingButton}); \ No newline at end of file diff --git a/modules/filtermenu/filtermenu.css b/modules/filtermenu/filtermenu.css new file mode 100644 index 0000000..f712e52 --- /dev/null +++ b/modules/filtermenu/filtermenu.css @@ -0,0 +1 @@ +.filterMenu-indicator{position:absolute;top:0;bottom:0;width:.4em;border-radius:100em;content:" ";position:absolute;left:-.75em;inset-inline-start:-.75em;inset-inline-end:initial}.filterMenuClearButton{-webkit-margin-start:auto;margin-inline-start:auto} \ No newline at end of file diff --git a/modules/filtermenu/filtermenu.js b/modules/filtermenu/filtermenu.js new file mode 100644 index 0000000..edd2e29 --- /dev/null +++ b/modules/filtermenu/filtermenu.js @@ -0,0 +1 @@ +define(["exports","./../dialoghelper/dialoghelper.js","./../layoutmanager.js","./../common/globalize.js","./../emby-apiclient/connectionmanager.js","./../emby-elements/emby-toggle/emby-toggle.js","./../emby-elements/emby-select/emby-select.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_dialoghelper,_layoutmanager,_globalize,_connectionmanager,_embyToggle,_embySelect,_embyButton,_paperIconButtonLight,_embyDialogclosebutton){function onSubmit(e){return e.preventDefault(),!1}function renderMultiSelectList(container,getItemsFn,options,property,delimiter){var select=container.querySelector("select");select.getItems=getItemsFn,select.parentContainer=container;getItemsFn=(getItemsFn=options.settings[property])?getItemsFn.split(delimiter):[];select.values=getItemsFn,afterSelectValueSet(select,getItemsFn[0])}function getBaseFilterMenuOptions(options){return Object.assign({},options.filterMenuOptions)}function loadGenres(context,options){renderMultiSelectList(context.querySelector(".genreFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,OuterIds:outerItemIds,IncludeItemTypes:this.itemTypes.join(",")},query),apiClient.getGenres(apiClient.getCurrentUserId(),query)}.bind(options),options,"GenreIds",",")}function loadStudios(context,options){renderMultiSelectList(context.querySelector(".studioFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getStudios(apiClient.getCurrentUserId(),query)}.bind(options),options,"StudioIds",",")}function loadOfficialRatings(context,options){renderMultiSelectList(context.querySelector(".officialRatingFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getOfficialRatings(apiClient.getCurrentUserId(),query)}.bind(options),options,"OfficialRatings","|")}function loadTags(context,options){renderMultiSelectList(context.querySelector(".tagFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getTags(apiClient.getCurrentUserId(),query)}.bind(options),options,"TagIds",",")}function loadYears(context,options){renderMultiSelectList(context.querySelector(".yearFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Descending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getYears(apiClient.getCurrentUserId(),query)}.bind(options),options,"Years",",")}function loadContainers(context,options){renderMultiSelectList(context.querySelector(".containerFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getContainers(apiClient.getCurrentUserId(),query)}.bind(options),options,"Containers",",")}function loadAudioCodecs(context,options){renderMultiSelectList(context.querySelector(".audioCodecFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getAudioCodecs(apiClient.getCurrentUserId(),query)}.bind(options),options,"AudioCodecs",",")}function loadAudioLayouts(context,options){renderMultiSelectList(context.querySelector(".audioLayoutFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getAudioLayouts(apiClient.getCurrentUserId(),query)}.bind(options),options,"AudioLayouts",",")}function loadAudioLanguages(context,options){renderMultiSelectList(context.querySelector(".audioLanguageFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),StreamType:"Audio",OuterIds:outerItemIds},query),apiClient.getStreamLanguages(apiClient.getCurrentUserId(),query)}.bind(options),options,"AudioLanguages",",")}function loadSubtitleLanguages(context,options){renderMultiSelectList(context.querySelector(".subtitleLanguageFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),StreamType:"Subtitle",OuterIds:outerItemIds},query),apiClient.getStreamLanguages(apiClient.getCurrentUserId(),query)}.bind(options),options,"SubtitleLanguages",",")}function loadVideoCodecs(context,options){renderMultiSelectList(context.querySelector(".videoCodecFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getVideoCodecs(apiClient.getCurrentUserId(),query)}.bind(options),options,"VideoCodecs",",")}function loadExtendedVideoTypes(context,options){renderMultiSelectList(context.querySelector(".fldExtendedVideoTypes"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getExtendedVideoTypes(apiClient.getCurrentUserId(),query)}.bind(options),options,"ExtendedVideoTypes",",")}function loadSubtitleCodecs(context,options){renderMultiSelectList(context.querySelector(".subtitleCodecFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getSubtitleCodecs(apiClient.getCurrentUserId(),query)}.bind(options),options,"SubtitleCodecs",",")}function updateClearButton(context){context.querySelector(".filter-active")||context.querySelector("input:checked")?context.querySelector(".filterMenuClearButton").classList.remove("hide"):context.querySelector(".filterMenuClearButton").classList.add("hide")}function afterSelectValueSet(elem,value){var filterIndicator,elem=elem.closest(".selectContainer");elem&&(filterIndicator=elem.querySelector(".filterMenu-indicator"),value?filterIndicator||elem.insertAdjacentHTML("afterbegin",'
'):filterIndicator&&filterIndicator.remove())}function onValueChange(){"SELECT"===this.tagName&&afterSelectValueSet(this,this.singleValue),updateClearButton(this.closest(".dialog"))}function setBasicFilter(filters,key,elem){var value="SELECT"===elem.tagName?elem.singleValue||null:"true"===elem.getAttribute("data-invert")?!elem.checked&&null:(value=elem.checked)||null;filters[key]=value}function FilterMenu(){}function onResetClick(){for(var context=this.closest(".dialog"),elems=context.querySelectorAll("select,input"),i=0,length=elems.length;i'+'')+('

'+_globalize.default.translate("Filters")+"

"))+('"),dialogOptions.innerHTML=_globalize.default.translateDocument(html=html+""+responses,"sharedcomponents"),dialogOptions.querySelectorAll(".viewSetting")),i=0,length=settingElements.length;i"+m.name+""}).join("")),allText=_globalize.default.translate("Any"),allText=anySelected?'":'",selectPlaystate=context.querySelector(".selectPlaystate");selectPlaystate.innerHTML=allText+html,afterSelectValueSet(selectPlaystate,selectPlaystate.singleValue),menuItems.length?context.querySelector(".playstateFilters").classList.remove("hide"):context.querySelector(".playstateFilters").classList.add("hide")}(dialogOptions,options),-1!==options.visibleSettings.indexOf("Genres")&&loadGenres(dialogOptions,options),-1!==options.visibleSettings.indexOf("Studios")&&loadStudios(dialogOptions,options),-1!==options.visibleSettings.indexOf("Tags")&&loadTags(dialogOptions,options),-1!==options.visibleSettings.indexOf("OfficialRatings")&&loadOfficialRatings(dialogOptions,options),-1!==options.visibleSettings.indexOf("Containers")&&loadContainers(dialogOptions,options),-1!==options.visibleSettings.indexOf("Years")&&loadYears(dialogOptions,options),-1!==options.visibleSettings.indexOf("AudioCodecs")&&(loadAudioCodecs(dialogOptions,options),loadAudioLanguages(dialogOptions,options)),-1!==options.visibleSettings.indexOf("AudioLayouts")&&loadAudioLayouts(dialogOptions,options),-1!==options.visibleSettings.indexOf("VideoCodecs")&&loadVideoCodecs(dialogOptions,options),-1!==options.visibleSettings.indexOf("ExtendedVideoTypes")&&loadExtendedVideoTypes(dialogOptions,options),-1!==options.visibleSettings.indexOf("SubtitleCodecs")&&(loadSubtitleCodecs(dialogOptions,options),loadSubtitleLanguages(dialogOptions,options)),updateClearButton(dialogOptions),dialogOptions.querySelector(".filterMenuClearButton").addEventListener("click",onResetClick),dialogOptions.querySelector("form").addEventListener("change",function(e){submitted=!0,options.onChange(function(elem){var filters={};if(selectPlaystate=elem.closest(".selectPlaystate"))for(var options=selectPlaystate.options,value=selectPlaystate.singleValue,i=0,length=options.length;i +
+ +
+ \ No newline at end of file diff --git a/modules/flexstyles.css b/modules/flexstyles.css new file mode 100644 index 0000000..c89f674 --- /dev/null +++ b/modules/flexstyles.css @@ -0,0 +1 @@ +.flex{display:-webkit-flex;display:flex}.inline-flex{display:-webkit-inline-flex;display:inline-flex}.flex-direction-column{-webkit-flex-direction:column;flex-direction:column}.flex-direction-row{-webkit-flex-direction:row;flex-direction:row}.flex-direction-row-reverse{-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.flex-grow{-webkit-flex-grow:1;flex-grow:1}.flex-shrink-zero{-webkit-flex-shrink:0;flex-shrink:0}.flex-shrink-one{-webkit-flex-shrink:1;flex-shrink:1}.align-items-center{-webkit-align-items:center;align-items:center}.align-items-baseline{-webkit-align-items:baseline;align-items:baseline}.align-items-flex-start{-webkit-align-items:flex-start;align-items:flex-start}.align-items-flex-end{-webkit-align-items:flex-end;align-items:flex-end}.justify-content-center{-webkit-justify-content:center;justify-content:center}.justify-content-flex-start{-webkit-justify-content:flex-start;justify-content:flex-start}.justify-content-flex-end{-webkit-justify-content:flex-end;justify-content:flex-end}.flex-wrap-wrap{-webkit-flex-wrap:wrap;flex-wrap:wrap}.align-self-flex-start{-webkit-align-self:flex-start;align-self:flex-start}.align-self-flex-end{-webkit-align-self:flex-end;align-self:flex-end}.text-align-start{text-align:start}.text-align-end{text-align:end}.align-self-center{-webkit-align-self:center;align-self:center} \ No newline at end of file diff --git a/modules/fluidheader/fluidheader.css b/modules/fluidheader/fluidheader.css new file mode 100644 index 0000000..6ec8336 --- /dev/null +++ b/modules/fluidheader/fluidheader.css @@ -0,0 +1 @@ +.fluidHeaderContainer{overflow:hidden} \ No newline at end of file diff --git a/modules/fluidheader/fluidheader.js b/modules/fluidheader/fluidheader.js new file mode 100644 index 0000000..97e3186 --- /dev/null +++ b/modules/fluidheader/fluidheader.js @@ -0,0 +1 @@ +define(["exports","./../actionsheet/actionsheet.js"],function(_exports,_actionsheet){function FluidHeader(container,options){var self=this,more=(container.classList.add("fluidHeaderContainer"),self.container=container,self.latestWidth=null,self.overflowItems=[],self.isTitleVisible=!0,self.resizeObserver=null,container.querySelector(".fluidHeaderMore"));function getRelevantElements(sorted){var selector=".fluidHeaderItem:not(.fluidHeaderMore)",selector=(options.collapseTitle||(selector+=":not(.formDialogHeaderTitle):not(h1):not(h2):not(h3)"),Array.from(self.container.querySelectorAll(selector)));return sorted?selector.map(function(element,idx){return{element:element,idx:idx}}).sort(function(a,b){var apri=a.element.dataset.fluidPriority||options.defaultPriority,bpri=b.element.dataset.fluidPriority||options.defaultPriority;return apri===bpri?options.defaultLTR?b.idx-a.idx:a.idx-b.idx:bpri-apri}):selector}function updateContainer(){var items=getRelevantElements(!0),more=(items.forEach(function(item){item.element.classList.remove("hide")}),container.querySelector(".fluidHeaderMore"));for(container.scrollWidth>container.clientWidth||0container.clientWidth&&0!==function(){var _item$element$querySe,item=items.pop();return item?(item.element.classList.add("hide"),(item.element.classList.contains("formDialogHeaderTitle")||["H1","H2","H3"].find(function(tag){return item.element.tagName===tag}))&&(self.isTitleVisible=!1),"A"!==item.element.tagName&&"BUTTON"!==item.element.tagName?1:void self.overflowItems.push({id:"fluid-"+item.idx,Name:item.element.ariaLabel||item.element.title,icon:item.element.classList.contains("md-icon")?item.element.textContent:null==(_item$element$querySe=item.element.querySelector(".md-icon"))?void 0:_item$element$querySe.textContent})):0}(););}more?more.classList.add("hide"):((more=document.createElement("button")).className="fluidHeaderMore paper-icon-button-light md-icon hide",more.type="button",more.textContent=options.moreIcon,more.title=options.moreTitle,more.ariaLabel=options.moreTitle,options.moreLeft?container.prepend(more):container.append(more)),more.addEventListener("click",function(){var overflowItems=self.overflowItems.concat(options.extraItems),overflowItems=Object.assign({item:options.moreItemIfTitleCollapsed&&!self.isTitleVisible&&options.item,items:overflowItems,fields:["Name"],positionTo:more,positionY:"bottom",positionX:options.moreLeft?"left":"right",transformOrigin:(options.moreLeft?"left":"right")+" top",resolveOnClick:!0,hasItemIcon:!0},options.actionSheetOptions);_actionsheet.default.show(overflowItems).then(function(itemid){var idmatch=itemid.match(/fluid-(-?[0-9]+)/i),idmatch=(idmatch&&getRelevantElements()[idmatch[1]].click(),options.extraItems.find(function(ex){return ex.id===itemid}));idmatch&&idmatch.handler()})}),self.resizeObserver=new ResizeObserver(function(entries){container.clientWidth!==self.latestWidth&&(self.latestWidth=container.clientWidth,updateContainer())}),self.resizeObserver.observe(container),updateContainer(),self.cleanup=function(){self.resizeObserver&&(self.resizeObserver.unobserve(container),self.resizeObserver=null);getRelevantElements().forEach(function(item){item.element.classList.remove("hide")});var more=container.querySelector(".fluidHeaderMore");0=activeElementRect.bottom)continue;break;case 3:if(elementRect.bottom<=activeElementRect.bottom)continue;if(elementRectTop<=activeElementTop)continue}var x2=elementRectLeft+elementRectWidth-1,y2=elementRectTop+elementRectHeight-1,distX=void 0,distY=void 0;switch(direction){case 0:var intersectY=intersection(point1y,point2y,elementRectTop,y2),distX=Math.abs(point1x-Math.min(point1x,x2)),distY=intersectY||1+Math.min(Math.abs(point1y-y2),Math.abs(point2y-elementRectTop));break;case 1:intersectY=intersection(point1y,point2y,elementRectTop,y2);distX=Math.abs(point2x-Math.max(point2x,elementRectLeft)),distY=intersectY||1+Math.min(Math.abs(point1y-y2),Math.abs(point2y-elementRectTop));break;case 2:var intersectX=intersection(point1x,point2x,elementRectLeft,x2);distY=Math.abs(point1y-Math.min(point1y,y2)),distX=intersectX||1+Math.min(Math.abs(point1x-x2),Math.abs(point2x-elementRectLeft));break;case 3:intersectX=intersection(point1x,point2x,elementRectLeft,x2);distY=Math.abs(point2y-Math.max(point2y,elementRectTop)),distX=intersectX||1+Math.min(Math.abs(point1x-x2),Math.abs(point2x-elementRectLeft))}elementRectWidth=Math.sqrt(distX*distX+distY*distY);elementRectWidthcondition.Value;break;case"IsGreaterOrEqual":conditionResult=targetValue>=condition.Value;break;case"IsLess":conditionResult=targetValue';return zeros=(zeros+="")+'
'+item.Description+"
"}(item);case"Boolean":return function(item){var map=new Map;item.IsReadOnly&&(map.set("readonly","readonly"),map.set("disabled","disabled"));return DIV(null,"toggleContainer"+item.extraClasses,null,function(children){children.push(LABEL(null,null,null,function(){return INPUT(item.Id,"checkbox","emby-toggle",null,null,map,function(){return style=cls=id=null,contentFunc=item.DisplayName,EL("span",id,cls,style,null,null,null,contentFunc);var id,cls,style,contentFunc})})),item.Description&&children.push(DIV(null,"fieldDescription toggleFieldDescription",null,item.Description))})}(item);case"SelectSingle":return renderSelect(item,!1);case"SelectMultiple":return renderSelect(item,!0);case"Date":return function(item){var attributes=[];attributes.push('is="emby-input"'),attributes.push('type="date"'),attributes.push('id="'+item.Id+'"'),item.AllowEmpty||attributes.push('required="required"');item.IsReadOnly&&(attributes.push('readonly="readonly"'),attributes.push('disabled="disabled"'));attributes.push('label="'+item.DisplayName+'"');var html='
';return html=(html+="")+'
'+item.Description+"
"}(item);case"FilePath":return renderFilePicker(item,!1);case"FolderPath":return renderFilePicker(item,!0);case"StatusItem":return function(item){var bannerClass="infoBanner";"Warning"===item.Status&&(bannerClass+=" warningBanner");bannerClass='
';return bannerClass=(bannerClass=(bannerClass=(bannerClass+='
check_circle_outline')+'
')+'
 
 
')+"
"}(item);case"ProgressItem":return function(item){var attributes=[],html=(attributes.push('id="'+item.Id+'"'),attributes.push('min="0"'),attributes.push('max="0"'),attributes.push('style="width: 100%; height: 2em;"'),attributes.push('label="'+item.DisplayName+'"'),'
');return html=(html+="")+'
'+item.Description+"
"}(item);case"ButtonItem":return function(item){return DIV(null,"verticalSection","margin-top: 1.2em;",function(){return DIV(null,"horizontalSection allSection",null,function(){return renderButtonItemCore(item)})})}(item);case"ButtonGroup":return function(item){if(item.IsBottomPanel)return function(item){return DIV(null,"verticalSection","position: absolute; bottom: 0.5em; left: 0.8em; z-index: 100000;",function(){return DIV(null,"horizontalSection allSection",null,function(){return item.EditorItems.map(renderButtonItemCore).join("")})})}(item);return DIV(null,"verticalSection","margin-top: 1.2em;",function(){return DIV(null,"horizontalSection allSection",null,function(){return item.EditorItems.map(renderButtonItemCore).join("")})})}(item);case"CaptionItem":return function(item){return DIV(item.Id,"verticalSection"+item.extraClasses,"margin-top: 1em;",function(){return DIV(null,"sectionTitleContainer",null,function(){return EL("h3",null,"sectionTitle captionText",void 0,null,null,null,void 0)})})}(item);case"LabelItem":return function(item){return DIV(item.Id,"verticalSection"+item.extraClasses,"margin-top: 0.5em;",function(){return'

'})}(item);case"SpacerItem":return function(item){return DIV(item.Id,"verticalSection"+item.extraClasses)}(item);case"ItemList":return function(item){return DIV(null,item.extraClasses,null,function(children){children.push(DIV(item.Id,"paperList visualCardBox vertical-list ge-itemlist")),children.push(DIV(null,"fieldDescription",null,item.Description))})}(item);case"RadioGroup":return function(item){var map=new Map;return map.set("itemssourceid",item.ItemsSourceId),DIV(null,"radioContainer"+item.extraClasses,null,function(children){item.DisplayName&&children.push(LABEL("radioLabel",null,item.Id,item.DisplayName)),children.push(EL("div",item.Id,"radioGroup",null,null,null,map))})}(item);case"DxDataGrid":case"DataGrid":return genericEditDx.renderDataGridElement(item);case"DxPivotGrid":case"PivotGrid":return genericEditDx.renderPivotGridElement(item);default:var editor=getEditor(item.EditorType);return editor?editor.renderSingleItem(item):"
Unknown cofig element type: "+item.ElementType+"
"}}function renderSelect(item,multiselect){var html,containerClass,map,elementName;return item.ShowAsRadio?function(item){var map=new Map;return map.set("itemssourceid",item.ItemsSourceId),map.set("staticitemssourceid",item.StaticItemsSourceId),DIV(null,"radioContainer"+item.extraClasses,null,function(children){item.DisplayName&&children.push(LABEL("radioLabel",null,item.Id,item.DisplayName)),children.push(EL("div",item.Id,"radioGroup",null,null,null,map,function(){return item.SelectOptions.map(renderRadioItem,item).join("")}))})}(item):(html="",containerClass="selectContainer",elementName="emby-select",map=new Map,item.AllowEmpty||map.set("required","required"),item.IsReadOnly&&map.set("disabled","disabled"),multiselect&&map.set("multiple","multiple"),map.set("allselected-labeltext",_globalize.default.translate("All")),map.set("data-empty-is-all","false"),map.set("itemssourceid",item.ItemsSourceId),map.set("staticitemssourceid",item.StaticItemsSourceId),map.set("label",item.DisplayName),item.MultiLine&&1"+option.Name+""}function renderFilePicker(item,isFolderPicker){var map=new Map,buttonMap=(item.AllowEmpty||map.set("required","required"),item.IsReadOnly&&(map.set("readonly","readonly"),map.set("disabled","disabled")),map.set("label",item.DisplayName),_layoutmanager.default.tv&&map.set("autocomplete","off"),new Map);return buttonMap.set("title",_globalize.default.translate("ButtonSelectDirectory")),buttonMap.set("inputId",item.Id),buttonMap.set("fieldName",item.DisplayName),buttonMap.set("isFolderPicker",isFolderPicker),DIV(null,"inputContainer"+item.extraClasses,null,function(children){children.push(DIV(null,"flex align-items-center",null,function(c2){c2.push(DIV(null,"flex-grow",null,function(){return INPUT(item.Id,"text","emby-input","ge-picker",null,map)})),c2.push(EL("button",null,"filePickerButton emby-input-iconbutton",null,"paper-icon-button-light","button",buttonMap,function(){return EL("i",null,"md-icon",null,null,null,null,"search")}))})),children.push(DIV(null,"fieldDescription",null,item.Description))})}function renderButtonItemCore(item){var attributes=[],item=(attributes.push('is="emby-button"'),attributes.push('id="'+item.Id+'"'),attributes.push('type="button"'),attributes.push('class="raised raised-mini btnButtonItem emby-button'+item.extraClasses+'"'),attributes.push('style="margin-left:0;"'),""}function renderRadioItem(item,x,y){var disabled=item.IsEnabled?"":'disabled="disabled"',disabled='"}function renderRadioGroupItem(item,x,y){var disabled=item.IsEnabled?"":'disabled="disabled"',disabled='",item.SecondaryText&&(disabled+='
'+item.SecondaryText+"
"),disabled}function objHash(obj){for(var objStr=JSON.stringify(obj),hash=0,i=0;iitems.length;)listElement.lastElementChild.remove();for(var i=0;i';return(item.DisplayName||item.Description)&&(html='
',html+='
',item.DisplayName&&(html+='

'+item.DisplayName+"

"),itemcount="ge-section-description",item.TitleButton&&(html+=function(item){var attributes=[];return attributes.push('is="emby-button"'),attributes.push('id="'+item.Id+'"'),attributes.push('type="button"'),attributes.push('class="fab btnButtonItem submit sectionTitleButton'+item.extraClasses+'"'),attributes.push('style="margin-left:0.9em !important; opacity: 0.6;font-size: 0.9em;"'),(item=""}(item.TitleButton),itemcount+=" ge-section-withtitlebutton-description"),html+="
",item.Description)&&(html+='

'+formatDescription(item.Description)+"

"),html=(html+='
')+item.EditorItems.map(renderSingleItem).join("")+"
"}function formatDescription(description){return description&&0!==description.length?description.split("\n").join("
"):null}function getAllItems(editorRoot){var allItems=[];return editorRoot&&editorRoot.EditorItems&&function collectItems(item,allItems){item.TitleButton&&allItems.push(item.TitleButton);if(item.EditorItems)for(var i=0;i");return contentFunc&&("function"==typeof contentFunc?(style=contentFunc(elemClass=[]),id=id+elemClass.join(" ")+(style||"")):id+=contentFunc),id+=""}function getStatusColor(status,isStatusItem){switch(status){case"None":return statusColorNone;case"Succeeded":return statusColorOk;case"Failed":return statusColorError;case"Warning":return isStatusItem?null:statusColorWarning;case"Unknown":return statusColorGhosted;default:return statusColorDisabled}}function DIV(id,cls,style,contentFunc,is){return EL("div",id,cls,style,is,null,null,contentFunc)}function LABEL(cls,style,for1,contentFunc){var map=new Map;return for1&&0',""),c2.push(DIV(null,null,"margin:1em 0;",id,"emby-premierecontainer")))})),children.push(DIV(null,"sectionContent",null,function(){return root.EditorItems.map(renderSingleItem).join("")}))):children.push(root.EditorItems.map(renderSingleItem).join(""))}),container.PostbackActions=root.PostbackActions,registerFilePickerEvents(container),editObjectContainer.Object);function onChangeHandler(e){if("number"===e.target.type||"text"===e.target.type&&!e.target.classList.contains("ge-picker")){if("change"===e.type)return}else if("input"===e.type)return;var targetValue=e.target.value,targetId=("checkbox"===e.target.type&&(targetValue=e.target.checked),e.target.id);if("radio"===e.target.type&&(targetId=e.target.name),applyPropertyConditions(root,container,targetValue,targetId),container.PostbackActions){for(var timerId,action=null,i=0;i +
+ +
+ +
+ +
+
+
+ +
+
+ +
+ +
+
+
+
+ diff --git a/modules/genericui/genericui.js b/modules/genericui/genericui.js new file mode 100644 index 0000000..9f22282 --- /dev/null +++ b/modules/genericui/genericui.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/connectionmanager.js","./../viewmanager/basesettingsview.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../appheader/appheader.js","./../common/globalize.js","./../layoutmanager.js","./../genericedit/genericedit.js","./../loading/loading.js","./../dialoghelper/dialoghelper.js","./../emby-apiclient/events.js","./../common/input/api.js","./../common/responsehelper.js","./../maintabsmanager.js","./../emby-elements/emby-scroller/emby-scroller.js","./../focusmanager.js"],function(_exports,_connectionmanager,_basesettingsview,_embyButton,_embyDialogclosebutton,_appheader,_globalize,_layoutmanager,_genericedit,_loading,_dialoghelper,_events,_api,_responsehelper,_maintabsmanager,_embyScroller,_focusmanager){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/genericui/genericui.css"]);var currentViewData,currentPage,currentDlg,isDataValid,infoChangedEventName="UIPageInfoChanged";function dashboardConfirm(message,title,callback){var options;options=message,Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)}).then(function(){callback(!0)},function(){callback(!1)})}function onServerEvent(e,apiClient,updatedData){var mainContent;e.type===infoChangedEventName&¤tViewData&&updatedData&&updatedData.PageId===currentViewData.PageId&&(updatedData.ViewId===currentViewData.ViewId?updatedData.IsPageChangeInfo||(currentViewData=updatedData,mainContent=(e=currentDlg||currentPage).querySelector(".mainContent"),updatePageData(updatedData,e,updatedData.EditObjectContainer,mainContent,currentViewData.EditObjectContainer.Object,currentViewData.EditObjectContainer.DefaultObject)):updatedData.IsPageChangeInfo&&showStage(updatedData,currentPage))}function onInvalid(e){null!==e.target.offsetParent&&(isDataValid=!1)}function onButtonClick(e){var button=e.target.closest("BUTTON");if(button||(button=e.target.closest("INPUT"))&&!button.getAttribute("data-data1")&&(button=null),e.Data1||button&&!button.hasAttribute("disabled")){e.preventDefault();var commandId=e.Data1||(button?button.getAttribute("data-data1"):null),itemId=e.Data2||(button?button.getAttribute("data-data2"):null),confirmationPrompt=e.ConfirmationPrompt||(button?button.getAttribute("data-prompt"):null);e.Caption||button&&button.getAttribute("data-caption");if(commandId){e.stopPropagation();var data=null;if(!_genericedit.default.runCommand(commandId,(currentDlg||currentPage).querySelector(".mainContent"),itemId)){if(currentViewData.EditObjectContainer){button=(currentDlg||currentPage).querySelector(".mainContent");if(_genericedit.default.getItemValues(currentViewData.EditObjectContainer,button),data=JSON.stringify(currentViewData.EditObjectContainer.Object),"WizardNext"===commandId||"WizardFinish"===commandId||"DialogOk"===commandId||"PageSave"===commandId){e=button.closest("FORM");if(e&&(isDataValid=!0,e.reportValidity(),!isDataValid||!1===currentViewData.EditObjectContainer.isDataValid))return}}confirmationPrompt?dashboardConfirm(confirmationPrompt,0,wrapRunCommand):wrapRunCommand(!0)}}}function wrapRunCommand(run){run&&runUiCommand(currentViewData.PageId,currentViewData.ViewType,commandId,data,itemId).then(function(){},_responsehelper.default.handleErrorResponse)}}function updatePageData(stage,page,container,htmlElement){_genericedit.default.setFormValues(container,htmlElement);for(var container=page.querySelector(".mainTitle"),htmlElement=(container&&(container.innerHTML=stage.Caption),page.querySelector(".mainSubTitle")),buttons=(htmlElement&&stage.SubCaption&&(htmlElement.innerHTML=(container=stage.SubCaption)&&0!==container.length?container.split("\n").join("
"):null),(page.closest(".dialog")||page).querySelectorAll(".btnButtonItem, .wizardbutton, .pagebutton, .dialogHeaderButton")),n=0;n + + + + +

Wizard Page

+ + + +
+
+
+ +
+ +

+ +
+
+
+
+
+
+ + + +
+ + + + +
diff --git a/modules/gesture/gesture.js b/modules/gesture/gesture.js new file mode 100644 index 0000000..153b3f6 --- /dev/null +++ b/modules/gesture/gesture.js @@ -0,0 +1 @@ +define(["exports","./../dom.js"],function(_exports,_dom){function TinyGesture(element,options){this.element=element,this.touch1=null,this.touch2=null,this.touchStartX=null,this.touchStartY=null,this.touchEndX=null,this.touchEndY=null,this.touchMove1=null,this.touchMove2=null,this.touchMoveX=null,this.touchMoveY=null,this.velocityX=null,this.velocityY=null,this.longPressTimer=null,this.doubleTapTimer=null,this.doubleTapWaiting=!1,this.thresholdX=0,this.thresholdY=0,this.disregardVelocityThresholdX=0,this.disregardVelocityThresholdY=0,this.swipingHorizontal=!1,this.swipingVertical=!1,this.swipingDirection=null,this.swipedHorizontal=!1,this.swipedVertical=!1,this.originalDistance=null,this.newDistance=null,this.scale=null,this.originalAngle=null,this.newAngle=null,this.rotation=null,this.handlers={panstart:[],panmove:[],panend:[],swipeleft:[],swiperight:[],swipeup:[],swipedown:[],tap:[],doubletap:[],longpress:[],pinch:[],pinchend:[],rotate:[],rotateend:[]},this._onTouchStart=this.onTouchStart.bind(this),this._onTouchMove=this.onTouchMove.bind(this),this._onTouchEnd=this.onTouchEnd.bind(this),this.opts=Object.assign({},TinyGesture.defaults,options),_dom.default.addEventListener(this.element,"touchstart",this._onTouchStart,{passive:!0}),this.element.addEventListener("touchmove",this._onTouchMove),_dom.default.addEventListener(this.element,"touchend",this._onTouchEnd,{passive:!0})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,TinyGesture.prototype.destroy=function(){var _a;_dom.default.removeEventListener(this.element,"touchstart",this._onTouchStart,{passive:!0}),this.element.removeEventListener("touchmove",this._onTouchMove),_dom.default.removeEventListener(this.element,"touchend",this._onTouchEnd,{passive:!0}),clearTimeout(null!=(_a=this.longPressTimer)?_a:void 0),clearTimeout(null!=(_a=this.doubleTapTimer)?_a:void 0)},TinyGesture.prototype.on=function(type,fn){var _this=this;if(this.handlers[type])return this.handlers[type].push(fn),{type:type,fn:fn,cancel:function(){return _this.off(type,fn)}}},TinyGesture.prototype.off=function(type,fn){this.handlers[type]&&-1!==(fn=this.handlers[type].indexOf(fn))&&this.handlers[type].splice(fn,1)},TinyGesture.prototype.fire=function(type,event){for(var i=0;ithis.thresholdX,this.swipingVertical=_c>this.thresholdY,this.swipingDirection=_cthis.opts.pressThreshold&&clearTimeout(null!=(touch1=this.longPressTimer)?touch1:void 0),this.fire("panmove",event)),"mousemove"!==event.type)&&null!=this.touchMove1&&null!=this.touchMove2&&(this.newDistance=Math.sqrt(Math.pow(this.touchMove2.screenX-this.touchMove1.screenX,2)+Math.pow(this.touchMove2.screenY-this.touchMove1.screenY,2)),this.scale=this.newDistance/(null!=(touch2=this.originalDistance)?touch2:0),this.fire("pinch",event),this.newAngle=Math.atan2((null!=(_c=this.touchMove2.screenY)?_c:0)-(null!=(touch1=this.touchMove1.screenY)?touch1:0),(null!=(touch2=this.touchMove2.screenX)?touch2:0)-(null!=(_c=this.touchMove1.screenX)?_c:0))/(Math.PI/180),this.rotation=this.newAngle-(null!=(touch1=this.originalAngle)?touch1:0),this.fire("rotate",event))},TinyGesture.prototype.onTouchEnd=function(event){var _a,_e,absY,distance,absDistance,diagonal,_this4=this,touch1=void 0;"mouseup"!==event.type&&(touch1=babelHelpers.toConsumableArray(event.changedTouches).find(function(touch){return touch.identifier===(null==(touch=_this4.touch1)?void 0:touch.identifier)}),babelHelpers.toConsumableArray(event.touches).find(function(touch){return touch.identifier===(null==(touch=_this4.touch1)?void 0:touch.identifier)})||(this.touch1=null,this.touchMove1=null),babelHelpers.toConsumableArray(event.touches).find(function(touch){return touch.identifier===(null==(touch=_this4.touch2)?void 0:touch.identifier)})||(this.touch2=null,this.touchMove2=null)),("mouseup"!==event.type||this.touchStartX&&null===this.touchEndX)&&("mouseup"!==event.type&&!touch1||(this.touchEndX="mouseup"===event.type?event.screenX:null!=(_a=null==touch1?void 0:touch1.screenX)?_a:0,this.touchEndY="mouseup"===event.type?event.screenY:null!=(_a=null==touch1?void 0:touch1.screenY)?_a:0,this.fire("panend",event),clearTimeout(null!=(touch1=this.longPressTimer)?touch1:void 0),touch1=this.touchEndX-(null!=(_a=this.touchStartX)?_a:0),_a=Math.abs(touch1),_e=this.touchEndY-(null!=(_e=this.touchStartY)?_e:0),absY=Math.abs(_e),distance=Math.sqrt(Math.pow(touch1,2)+Math.pow(_e,2)),absDistance=Math.abs(distance),diagonal=absY/_a,_a>this.thresholdX||absY>this.thresholdY||this.opts.diagonalSwipes&&(absDistance>this.thresholdX||absDistance>this.thresholdY)?(this.swipedHorizontal=_a>this.thresholdX||this.opts.diagonalSwipes&&absDistance>this.thresholdX,this.swipedVertical=absY>this.thresholdY||this.opts.diagonalSwipes&&absDistance>this.thresholdY,(!this.opts.diagonalSwipes||diagonalMath.tan((45+this.opts.diagonalLimit)*Math.PI/180))&&(absY<=_a&&(this.swipedVertical=!1),_athis.opts.velocityThreshold||distance>this.disregardVelocityThresholdX)&&this.fire("swiperight",event)),this.swipedVertical&&(_e<0?((null!=(touch1=this.velocityY)?touch1:0)<-this.opts.velocityThreshold||distance<-this.disregardVelocityThresholdY)&&this.fire("swipeup",event):((null!=(absDistance=this.velocityY)?absDistance:0)>this.opts.velocityThreshold||distance>this.disregardVelocityThresholdY)&&this.fire("swipedown",event))):_ascrollThreshold,!top&&1===enableBackgroundSupport&&lastTransformScrollY?this.setTransform(1,currentScrollY,top,forceRefresh,immediate):-1===enableBackgroundSupport&&!hideWithAnyScroll&&lastTransformScrollY||top?this.setTransform(0,currentScrollY,top,forceRefresh||top,immediate):!enableBackgroundSupport&&forceRefresh&&(scrollThreshold=this.transform,this.setTransform(top?0:null==scrollThreshold?1:scrollThreshold,currentScrollY,top,forceRefresh||top,immediate)),this.lastScrollY=currentScrollY)},updateWithRequestAnimationFrame:function(e,forceRefresh,immediate,enableBackgroundSupport){var instance=this;requestAnimationFrame(function(){instance.update(e,forceRefresh,immediate,enableBackgroundSupport)})}},_exports.default=Headroom}); \ No newline at end of file diff --git a/modules/hlsjs/hls.js b/modules/hlsjs/hls.js new file mode 100644 index 0000000..d81f0f5 --- /dev/null +++ b/modules/hlsjs/hls.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e=r.length?{done:!0}:{done:!1,value:r[o++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _extends(){return(_extends=Object.assign?Object.assign.bind():function(n){for(var e=1;e=this.minWeight_},_proto.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},_proto.getEstimateTTFB=function(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_},_proto.destroy=function(){},_createClass(EwmaBandWidthEstimator,[{key:"defaultEstimate",get:function(){return this.defaultEstimate_}}])}(),fakeLogger={trace:noop,debug:noop,log:noop,warn:noop,info:noop,error:noop};function createLogger(){return _extends({},fakeLogger)}function getLoggerFn(key,debugConfig,id){return debugConfig[key]?debugConfig[key].bind(debugConfig):function(type,id){var func=self.console[type];return func?func.bind(self.console,(id?"["+id+"] ":"")+"["+type+"] >"):noop}(key,id)}var exportedLogger=createLogger();function enableLogs(debugConfig,context,id){var newLogger=createLogger();if("object"==typeof console&&!0===debugConfig||"object"==typeof debugConfig){var keys=["debug","log","info","warn","error"];keys.forEach(function(key){newLogger[key]=getLoggerFn(key,debugConfig,id)});try{newLogger.log('Debug logs enabled for "'+context+'" in hls.js version 1.6.0-beta.2')}catch(e){return createLogger()}keys.forEach(function(key){exportedLogger[key]=getLoggerFn(key,debugConfig)})}else _extends(exportedLogger,newLogger);return newLogger}var logger=exportedLogger;function getMediaSource(preferManagedMediaSource){if(void 0===preferManagedMediaSource&&(preferManagedMediaSource=!0),"undefined"!=typeof self)return(preferManagedMediaSource||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}function isCompatibleTrackChange(currentTracks,requiredTracks){var currentTracks=Object.keys(currentTracks),requiredTrackNames=Object.keys(requiredTracks),requiredTracks=currentTracks.length,requiredTrackCount=requiredTrackNames.length;return!requiredTracks||!requiredTrackCount||requiredTracks===requiredTrackCount&&!currentTracks.some(function(name){return-1===requiredTrackNames.indexOf(name)})}var sampleEntryCodesISO={audio:{a3ds:1,"ac-3":.95,"ac-4":1,alac:.9,alaw:1,dra1:1,"dts+":1,"dts-":1,dtsc:1,dtse:1,dtsh:1,"ec-3":.9,enca:1,fLaC:.9,flac:.9,FLAC:.9,g719:1,g726:1,m4ae:1,mha1:1,mha2:1,mhm1:1,mhm2:1,mlpa:1,mp4a:1,"raw ":1,Opus:1,opus:1,samr:1,sawb:1,sawp:1,sevc:1,sqcp:1,ssmv:1,twos:1,ulaw:1},video:{avc1:1,avc2:1,avc3:1,avc4:1,avcp:1,av01:.8,drac:1,dva1:1,dvav:1,dvh1:.7,dvhe:.7,encv:1,hev1:.75,hvc1:.75,mjp2:1,mp4v:1,mvc1:1,mvc2:1,mvc3:1,mvc4:1,resv:1,rv60:1,s263:1,svc1:1,svc2:1,"vc-1":1,vp08:1,vp09:.9},text:{stpp:1,wvtt:1}};function areCodecsMediaSourceSupported(codecs,type,preferManagedMediaSource){return void 0===preferManagedMediaSource&&(preferManagedMediaSource=!0),!codecs.split(",").some(function(codec){return!isCodecMediaSourceSupported(codec,type,preferManagedMediaSource)})}function isCodecMediaSourceSupported(codec,type,preferManagedMediaSource){var preferManagedMediaSource=getMediaSource(preferManagedMediaSource=void 0===preferManagedMediaSource?!0:preferManagedMediaSource);return null!=(preferManagedMediaSource=null==preferManagedMediaSource?void 0:preferManagedMediaSource.isTypeSupported(type+"/mp4;codecs="+codec))&&preferManagedMediaSource}function mimeTypeForCodec(codec,type){return type+"/mp4;codecs="+codec}function videoCodecPreferenceValue(videoCodec){return videoCodec?(videoCodec=videoCodec.substring(0,4),sampleEntryCodesISO.video[videoCodec]):2}function codecsSetSelectionPreferenceValue(codecSet){return codecSet.split(",").reduce(function(num,fourCC){var preferenceValue=sampleEntryCodesISO.video[fourCC];return preferenceValue?(2*preferenceValue+num)/(num?3:2):(sampleEntryCodesISO.audio[fourCC]+num)/(num?2:1)},0)}var CODEC_COMPATIBLE_NAMES={};var AUDIO_CODEC_REGEXP=/flac|opus|mp4a\.40\.34/i;function getCodecCompatibleName(codec,preferManagedMediaSource){return void 0===preferManagedMediaSource&&(preferManagedMediaSource=!0),codec.replace(AUDIO_CODEC_REGEXP,function(m){return function(lowerCaseCodec,preferManagedMediaSource){if(void 0===preferManagedMediaSource&&(preferManagedMediaSource=!0),CODEC_COMPATIBLE_NAMES[lowerCaseCodec])return CODEC_COMPATIBLE_NAMES[lowerCaseCodec];for(var _getMediaSource,codecsToCheck={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"],"mp4a.40.34":["mp3"]}[lowerCaseCodec],i=0;icurrentBw)return logStartCodecCandidateIgnored(candidate,"min bitrate of "+candidateTier.minBitrate+" > current estimate of "+currentBw),selected;if(!candidateTier.hasDefaultAudio)return logStartCodecCandidateIgnored(candidate,"no renditions with default or auto-select sound found"),selected;if(audioCodecPreference&&candidate.indexOf(audioCodecPreference.substring(0,4))%5!=0)return logStartCodecCandidateIgnored(candidate,'audio codec preference "'+audioCodecPreference+'" not found'),selected;if(channelsPreference&&!preferStereo){if(!candidateTier.channels[channelsPreference])return logStartCodecCandidateIgnored(candidate,"no renditions with "+channelsPreference+" channel sound found (channels options: "+Object.keys(candidateTier.channels)+")"),selected}else if((!audioCodecPreference||preferStereo)&&hasStereo&&0===candidateTier.channels[2])return logStartCodecCandidateIgnored(candidate,"no renditions with stereo sound found"),selected;if(candidateTier.minHeight>maxHeight)return logStartCodecCandidateIgnored(candidate,"min resolution of "+candidateTier.minHeight+" > maximum of "+maxHeight),selected;if(candidateTier.minFramerate>maxFramerate)return logStartCodecCandidateIgnored(candidate,"min framerate of "+candidateTier.minFramerate+" > maximum of "+maxFramerate),selected;if(!videoRanges.some(function(range){return 0=codecsSetSelectionPreferenceValue(selected)||candidateTier.fragmentError>codecTiers[selected].fragmentError)?selected:(minIndex=candidateTier.minIndex,selectedScore=candidateTier.maxScore,candidate)},void 0),videoRanges:videoRanges,preferHDR:videoPreference,minFramerate:minFramerate,minBitrate:minBitrate,minIndex:minIndex}}function logStartCodecCandidateIgnored(codeSet,reason){logger.log('[abr] start candidates with "'+codeSet+'" ignored because '+reason)}function getAudioTracksByGroup(allAudioTracks){return allAudioTracks.reduce(function(audioTracksByGroup,track){var trackGroup=audioTracksByGroup.groups[track.groupId],channelsKey=((trackGroup=trackGroup||(audioTracksByGroup.groups[track.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1})).tracks.push(track),track.channels||"2");return trackGroup.channels[channelsKey]=(trackGroup.channels[channelsKey]||0)+1,trackGroup.hasDefault=trackGroup.hasDefault||track.default,trackGroup.hasAutoSelect=trackGroup.hasAutoSelect||track.autoselect,trackGroup.hasDefault&&(audioTracksByGroup.hasDefaultAudio=!0),trackGroup.hasAutoSelect&&(audioTracksByGroup.hasAutoSelectAudio=!0),audioTracksByGroup},{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}function getBasicSelectionOption(option){return option&&{lang:option.lang,assocLang:option.assocLang,characteristics:option.characteristics,channels:option.channels,audioCodec:option.audioCodec}}function findMatchingOption(option,tracks,matchPredicate){if("attrs"in option){var index=tracks.indexOf(option);if(-1!==index)return index}for(var i=0;imedia&&_this.resetEstimator(media),-1<(ttfbEstimate=_this.findBestLevel(media,minAutoLevel,nextLoadLevel,0,bufferStarvationDelay,1,1))&&(nextLoadLevel=ttfbEstimate),_this.warn("Fragment "+frag.sn+(part?" part "+part.index:"")+" of level "+frag.level+" is loading too slowly;\n Fragment duration: "+frag.duration.toFixed(3)+"\n Time to underbuffer: "+bufferStarvationDelay.toFixed(3)+" s\n Estimated load time for current fragment: "+level.toFixed(3)+" s\n Estimated load time for down switch fragment: "+fragLevelNextLoadedDelay.toFixed(3)+" s\n TTFB estimate: "+(0|autoLevelEnabled)+" ms\n Current BW estimate: "+(isFiniteNumber(bwEstimate)?0|bwEstimate:"Unknown")+" bps\n New BW estimate: "+(0|_this.getBwEstimate())+" bps\n Switching to level "+nextLoadLevel+" @ "+(0|media)+" bps"),_this2.nextLoadLevel=_this2.nextAutoLevel=nextLoadLevel,_this.clearTimer(),_this.timer=self.setInterval(function(){var _bufferStarvationDelay;_this.clearTimer(),_this.fragCurrent===frag&&_this.hls.loadLevel===nextLoadLevel&&0Math.max(currentFrameRate,30)||"SDR"!==level.videoRange&&level.videoRange!==currentVideoRange||level.bitrate>Math.max(currentBw,8e6))||audioPreference&&isFiniteNumber(maxChannels)&&Object.keys(audioPreference).some(function(channels){return parseInt(channels)>maxChannels})}(levelInfo,audioTracksByGroup,currentVideoRange,currentFrameRate,currentBw,audioPreference)&&"hvc1"!==(null==(_levelInfo$videoCodec=levelInfo.videoCodec)?void 0:_levelInfo$videoCodec.substring(0,4))?levelInfo.supportedResult=SUPPORTED_INFO_DEFAULT:(levelInfo.supportedPromise=getMediaDecodingInfoPromise(levelInfo,audioTracksByGroup,mediaCapabilities),levelInfo.supportedPromise.then(function(decodingInfo){var levels,index;_this3.hls&&(levelInfo.supportedResult=decodingInfo,index=(levels=_this3.hls.levels).indexOf(levelInfo),decodingInfo.error?_this3.warn('MediaCapabilities decodingInfo error: "'+decodingInfo.error+'" for level '+index+" "+JSON.stringify(decodingInfo)):decodingInfo.supported||(_this3.warn("Unsupported MediaCapabilities decodingInfo result for level "+index+" "+JSON.stringify(decodingInfo)),-1levelInfo.frameRate||!upSwitch&&0"+i+" adjustedbw("+Math.round(upSwitch)+")-bitrate="+Math.round(upSwitch-bitrate)+" ttfb:"+ttfbEstimateSec.toFixed(1)+" avgDuration:"+_levelInfo$videoCodec.toFixed(1)+" maxFetchDuration:"+maxFetchDuration.toFixed(1)+" fetchDuration:"+mediaCapabilities.toFixed(1)+" firstSelection:"+firstSelection+" codecSet:"+levelInfo.codecSet+" videoRange:"+levelInfo.videoRange+" hls.loadLevel:"+loadLevel)),firstSelection&&(_this3.firstSelection=i),{v:i}):void 0):(levelsSkipped.push(i),0)):0}for(var _ret,currentFragDuration=partCurrent?partCurrent.duration:fragCurrent?fragCurrent.duration:0,ttfbEstimateSec=this.bwEstimator.getEstimateTTFB()/1e3,levelsSkipped=[],i=maxAutoLevel;minAutoLevel<=i;i--)if(0!==(_ret=_loop())&&_ret)return _ret.v;return-1},_createClass(AbrController,[{key:"firstAutoLevel",get:function(){var _this$hls2=this.hls,maxAutoLevel=_this$hls2.maxAutoLevel,_this$hls2=_this$hls2.minAutoLevel,bwEstimate=this.getBwEstimate(),maxStartDelay=this.hls.config.maxStarvationDelay,bwEstimate=this.findBestLevel(bwEstimate,_this$hls2,maxAutoLevel,0,maxStartDelay,1,1);return-1Math.max(forcedAutoLevel,useEstimate)&&loadedFirstFrag[forcedAutoLevel].loadError<=loadedFirstFrag[useEstimate].loadError)return forcedAutoLevel}return this._nextAutoLevel=useEstimate,this.nextAutoLevelKey=this.getAutoLevelKey(),useEstimate},set:function(nextLevel){var _this$hls3=this.hls,maxAutoLevel=_this$hls3.maxAutoLevel,_this$hls3=_this$hls3.minAutoLevel,nextLevel=Math.min(Math.max(nextLevel,_this$hls3),maxAutoLevel);this._nextAutoLevel!==nextLevel&&(this.nextAutoLevelKey="",this._nextAutoLevel=nextLevel)}}])}(Logger),BinarySearch={search:function(list,comparisonFn){for(var minIndex=0,maxIndex=list.length-1;minIndex<=maxIndex;){var currentIndex,currentElement,comparisonResult=comparisonFn(currentElement=list[currentIndex=(minIndex+maxIndex)/2|0]);if(0pdtBufferEnd}(PDTValue,maxFragLookUpTolerance,frag))return frag}}}}return null}function findFragmentByPTS(fragPrevious,fragments,bufferEnd,maxFragLookUpTolerance,nextFragLookupTolerance){void 0===bufferEnd&&(bufferEnd=0),void 0===maxFragLookUpTolerance&&(maxFragLookUpTolerance=0),void 0===nextFragLookupTolerance&&(nextFragLookupTolerance=.005);var bufferEdgeError,fragNext=null;return fragPrevious?(fragNext=fragments[1+fragPrevious.sn-fragments[0].sn]||null,0<(bufferEdgeError=fragPrevious.endDTS-bufferEnd)&&bufferEdgeError<15e-7&&(bufferEnd+=15e-7),fragNext&&fragPrevious.level!==fragNext.level&&fragNext.end<=fragPrevious.end&&(fragNext=fragments[2+fragPrevious.sn-fragments[0].sn]||null)):0===bufferEnd&&0===fragments[0].start&&(fragNext=fragments[0]),fragNext&&(!(fragPrevious&&fragPrevious.level!==fragNext.level||0!==fragmentWithinToleranceTest(bufferEnd,maxFragLookUpTolerance,fragNext))||function(fragNext,fragPrevious,nextFragLookupTolerance){if(fragPrevious&&0===fragPrevious.start&&fragPrevious.levelbufferEnd?0:(maxFragLookUpTolerance=Math.min(maxFragLookUpTolerance,candidate.duration+(candidate.deltaPTS||0)),candidate.start+candidate.duration-maxFragLookUpTolerance<=bufferEnd?1:candidate.start-maxFragLookUpTolerance>bufferEnd&&candidate.start?-1:0)}function findFragWithCC(fragments,cc){return BinarySearch.search(fragments,function(candidate){return candidate.cccc?-1:0})}function isTimeoutError(error){switch(error.details){case ErrorDetails.FRAG_LOAD_TIMEOUT:case ErrorDetails.KEY_LOAD_TIMEOUT:case ErrorDetails.LEVEL_LOAD_TIMEOUT:case ErrorDetails.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function getRetryConfig(loadPolicy,error){error=isTimeoutError(error);return loadPolicy.default[(error?"timeout":"error")+"Retry"]}function getRetryDelay(retryConfig,retryCount){retryCount="linear"===retryConfig.backoff?1:Math.pow(2,retryCount);return Math.min(retryCount*retryConfig.retryDelayMs,retryConfig.maxRetryDelayMs)}function getLoaderConfigWithoutReties(loderConfig){return _objectSpread2(_objectSpread2({},loderConfig),{errorRetry:null,timeoutRetry:null})}function shouldRetry(retryConfig,retryCount,isTimeout,loaderResponse){var httpStatus;return!!retryConfig&&(httpStatus=null==loaderResponse?void 0:loaderResponse.code,httpStatus=retryCount=fragmentEntity.body.sn||(fragmentEntity.buffered||fragmentEntity.loaded&&!removeAppending?(key=fragmentEntity.range[elementaryStream])&&(0===key.time.length?_this.removeFragment(fragmentEntity.body):key.time.some(function(time){time=!_this.isTimeBuffered(time.startPTS,time.endPTS,timeRange);return time&&_this.removeFragment(fragmentEntity.body),time})):fragmentEntity.body.type===playlistType&&_this.removeFragment(fragmentEntity.body))})},_proto.detectPartialFragments=function(data){var frag,fragKey,fragmentEntity,isFragHint,_this2=this,timeRanges=this.timeRanges;timeRanges&&"initSegment"!==data.frag.sn&&(fragKey=getFragmentKey(frag=data.frag),!(fragmentEntity=this.fragments[fragKey])||fragmentEntity.buffered&&frag.gap||(isFragHint=!frag.relurl,Object.keys(timeRanges).forEach(function(elementaryStream){var timeRange,streamInfo=frag.elementaryStreams[elementaryStream];streamInfo&&(timeRange=timeRanges[elementaryStream],streamInfo=isFragHint||!0===streamInfo.partial,fragmentEntity.range[elementaryStream]=_this2.getBufferedTimes(frag,data.part,streamInfo,timeRange))}),fragmentEntity.loaded=null,Object.keys(fragmentEntity.range).length?(fragmentEntity.buffered=!0,(fragmentEntity.body.endList=frag.endList||fragmentEntity.body.endList)&&(this.endListFragments[fragmentEntity.body.type]=fragmentEntity),isPartial(fragmentEntity)||this.removeParts(frag.sn-1,frag.type)):this.removeFragment(fragmentEntity.body)))},_proto.removeParts=function(snToKeep,levelType){var activeParts=this.activePartLists[levelType];activeParts&&(this.activePartLists[levelType]=activeParts.filter(function(part){return part.fragment.sn>=snToKeep}))},_proto.fragBuffered=function(frag,force){var fragKey=getFragmentKey(frag),fragmentEntity=this.fragments[fragKey];!fragmentEntity&&force&&(fragmentEntity=this.fragments[fragKey]={body:frag,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},frag.gap)&&(this.hasGaps=!0),fragmentEntity&&(fragmentEntity.loaded=null,fragmentEntity.buffered=!0)},_proto.getBufferedTimes=function(fragment,part,partial,timeRange){for(var buffered={time:[],partial:partial},startPTS=fragment.start,endPTS=fragment.end,minEndPTS=fragment.minEndPTS||endPTS,maxStartPTS=fragment.maxStartPTS||startPTS,i=0;istart&&(key.buffered||unbufferedOnly)&&_this3.removeFragment(frag)})},_proto.removeFragment=function(fragment){var snToRemove,fragKey=getFragmentKey(fragment),activeParts=(fragment.stats.loaded=0,fragment.clearElementaryStreamInfo(),this.activePartLists[fragment.type]);activeParts&&(snToRemove=fragment.sn,this.activePartLists[fragment.type]=activeParts.filter(function(part){return part.fragment.sn!==snToRemove})),delete this.fragments[fragKey],fragment.endList&&delete this.endListFragments[fragment.type]},_proto.removeAllFragments=function(){this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1;var _this$hls=null==(_this$hls=this.hls)||null==(_this$hls=_this$hls.latestLevelDetails)?void 0:_this$hls.partList;_this$hls&&_this$hls.forEach(function(part){return part.clearElementaryStreamInfo()})},FragmentTracker}();function isPartial(fragmentEntity){var _fragmentEntity$range;return fragmentEntity.buffered&&(fragmentEntity.body.gap||(null==(_fragmentEntity$range=fragmentEntity.range.video)?void 0:_fragmentEntity$range.partial)||(null==(_fragmentEntity$range=fragmentEntity.range.audio)?void 0:_fragmentEntity$range.partial)||(null==(_fragmentEntity$range=fragmentEntity.range.audiovideo)?void 0:_fragmentEntity$range.partial))}function getFragmentKey(fragment){return fragment.type+"_"+fragment.level+"_"+fragment.sn}var DecrypterAesMode_cbc=0,DecrypterAesMode_ctr=1,AESCrypto=function(){function AESCrypto(subtle,iv,aesMode){this.subtle=void 0,this.aesIV=void 0,this.aesMode=void 0,this.subtle=subtle,this.aesIV=iv,this.aesMode=aesMode}return AESCrypto.prototype.decrypt=function(data,key){switch(this.aesMode){case DecrypterAesMode_cbc:return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},key,data);case DecrypterAesMode_ctr:return this.subtle.decrypt({name:"AES-CTR",counter:this.aesIV,length:64},key,data);default:throw new Error("[AESCrypto] invalid aes mode "+this.aesMode)}},AESCrypto}();function sliceUint8(array,start,end){return Uint8Array.prototype.slice?array.slice(start,end):new Uint8Array(Array.prototype.slice.call(array,start,end))}var AESDecryptor=function(){function AESDecryptor(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}var _proto=AESDecryptor.prototype;return _proto.uint8ArrayToUint32Array_=function(arrayBuffer){for(var view=new DataView(arrayBuffer),newArray=new Uint32Array(4),i=0;i<4;i++)newArray[i]=view.getUint32(4*i);return newArray},_proto.initTable=function(){for(var sBox=this.sBox,invSBox=this.invSBox,subMix=this.subMix,subMix0=subMix[0],subMix1=subMix[1],subMix2=subMix[2],subMix3=subMix[3],subMix=this.invSubMix,invSubMix0=subMix[0],invSubMix1=subMix[1],invSubMix2=subMix[2],invSubMix3=subMix[3],d=new Uint32Array(256),x=0,xi=0,i=0,i=0;i<256;i++)d[i]=i<128?i<<1:i<<1^283;for(i=0;i<256;i++){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4,x2=(sBox[x]=sx=sx>>>8^255&sx^99,d[invSBox[sx]=x]),x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx;subMix0[x]=t<<24|t>>>8,subMix1[x]=t<<16|t>>>16,subMix2[x]=t<<8|t>>>24,subMix3[x]=t,invSubMix0[sx]=(t=16843009*x8^65537*x4^257*x2^16843008*x)<<24|t>>>8,invSubMix1[sx]=t<<16|t>>>16,invSubMix2[sx]=t<<8|t>>>24,invSubMix3[sx]=t,x?(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]]):x=xi=1}},_proto.expandKey=function(keyBuffer){for(var key=this.uint8ArrayToUint32Array_(keyBuffer),sameKey=!0,offset=0;offset>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:out+=String.fromCharCode(c);break;case 12:case 13:char2=array[i++],out+=String.fromCharCode((31&c)<<6|63&char2);break;case 14:char2=array[i++],char3=array[i++],out+=String.fromCharCode((15&c)<<12|(63&char2)<<6|(63&char3)<<0)}}return out}function LoadStats(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}}var Hex={hexDump:function(array){for(var str="",i=0;i>24,buffer[offset+1]=value>>16&255,buffer[offset+2]=value>>8&255,buffer[offset+3]=255&value}function findBox(data,path){var results=[];if(path.length)for(var end=data.byteLength,i=0;i>3;31===audioObjectType&&(audioObjectType+=1+((7&flags)<<3)+((224&avcCBox[i])>>5)),codec+="."+audioObjectType}break;case"hvc1":case"hev1":for(var flags=findBox(sampleEntriesEnd,["hvcC"])[0],avcCBox=flags[1],i=["","A","B","C"][avcCBox>>6],audioObjectType=31&avcCBox,profileCompat=readUint32(flags,2),avcCBox=(32&avcCBox)>>5?"H":"L",levelIDC=flags[12],constraintIndicator=flags.subarray(6,12),constraintString=(codec=(codec=(codec+="."+i+audioObjectType)+("."+profileCompat.toString(16).toUpperCase()))+("."+avcCBox+levelIDC),""),_i=constraintIndicator.length;_i--;){var _byte=constraintIndicator[_i];(_byte||constraintString)&&(_byte=_byte.toString(16).toUpperCase(),constraintString="."+_byte+constraintString)}codec+=constraintString;break;case"dvh1":case"dvhe":flags=findBox(sampleEntriesEnd,["dvcC"])[0],i=flags[2]>>1&127,audioObjectType=flags[2]<<5&32|flags[3]>>3&31;codec+="."+addLeadingZero(i)+"."+addLeadingZero(audioObjectType);break;case"vp09":profileCompat=findBox(sampleEntriesEnd,["vpcC"])[0],avcCBox=profileCompat[4],levelIDC=profileCompat[5],flags=profileCompat[6]>>4&15;codec+="."+addLeadingZero(avcCBox)+"."+addLeadingZero(levelIDC)+"."+addLeadingZero(flags);break;case"av01":var i=findBox(sampleEntriesEnd,["av1C"])[0],audioObjectType=i[1]>>>5,profileCompat=31&i[1],avcCBox=i[2]>>>7?"H":"M",levelIDC=(64&i[2])>>6,flags=(32&i[2])>>5,flags=2==audioObjectType&&levelIDC?flags?12:10:levelIDC?10:8,levelIDC=(16&i[2])>>4,chromaSubsamplingX=(8&i[2])>>3,chromaSubsamplingY=(4&i[2])>>2,i=3&i[2];codec+="."+audioObjectType+"."+addLeadingZero(profileCompat)+avcCBox+"."+addLeadingZero(flags)+"."+levelIDC+"."+chromaSubsamplingX+chromaSubsamplingY+i+".01.01.01.0"}return{codec:codec,encrypted:stsd}}(findBox(trak,["mdia","minf","stbl","stsd"])[0]),result[tkhd]={timescale:mdhd,type:hdlr},result[hdlr]=_objectSpread2({timescale:mdhd,id:tkhd},trak))}return findBox(initSegment,["moov","mvex","trex"]).forEach(function(trex){var trackId=readUint32(trex,4),trackId=result[trackId];trackId&&(trackId.default={duration:readUint32(trex,12),flags:readUint32(trex,20)})}),result}function skipBERInteger(bytes,i){for(var limit=i+5;128&bytes[i++]&&i>>31)return logger.warn("SIDX has hierarchical references (not supported)"),null;referenceInfo=readUint32(sidx,referenceIndex);referenceIndex+=4,references.push({referenceSize:referenceSize,subsegmentDuration:referenceInfo,info:{duration:referenceInfo/timescale,start:startByte,end:startByte+referenceSize-1}}),startByte+=referenceSize,index=referenceIndex+=4}return{earliestPresentationTime:earliestPresentationTime,timescale:timescale,version:version,referencesCount:referencesCount,references:references}}(sidxs[_i2]);null!=sidx&&sidx.references&&(sidxMinStart=Math.min(sidxMinStart,sidx.earliestPresentationTime/sidx.timescale),subSegmentDuration=sidx.references.reduce(function(dur,ref){return dur+ref.info.duration||0},0),sidxDuration=(sidxMaxEnd=Math.max(sidxMaxEnd,subSegmentDuration+sidx.earliestPresentationTime/sidx.timescale))-sidxMinStart)}if(sidxDuration&&isFiniteNumber(sidxDuration))return sidxDuration}return videoDuration||audioDuration}function appendUint8Array(data1,data2){var temp=new Uint8Array(data1.length+data2.length);return temp.set(data1),temp.set(data2,data1.length),temp}function parseSamples(timeOffset,track){var seiSamples=[],videoData=track.samples,timescale=track.timescale,trackId=track.id,isHEVCFlavor=!1;return findBox(videoData,["moof"]).map(function(moof){var moofOffset=moof.byteOffset-8;findBox(moof,["traf"]).map(function(traf){var baseTime=findBox(traf,["tfdt"]).map(function(tfdt){var version=tfdt[0],result=readUint32(tfdt,4);return(result=1===version?(result*=Math.pow(2,32))+readUint32(tfdt,8):result)/timescale})[0];return void 0!==baseTime&&(timeOffset=baseTime),findBox(traf,["tfhd"]).map(function(tfhd){var id=readUint32(tfhd,4),tfhdFlags=16777215&readUint32(tfhd,0),defaultSampleDuration=0,defaultSampleSize=0,tfhdOffset=8;id===trackId&&(0!=(1&tfhdFlags)&&(tfhdOffset+=8),0!=(2&tfhdFlags)&&(tfhdOffset+=4),0!=(8&tfhdFlags)&&(defaultSampleDuration=readUint32(tfhd,tfhdOffset),tfhdOffset+=4),0!=(16&tfhdFlags)&&(defaultSampleSize=readUint32(tfhd,tfhdOffset),tfhdOffset+=4),0!=(32&tfhdFlags)&&(tfhdOffset+=4),"video"===track.type&&(id=track.codec,isHEVCFlavor=!!id&&("hvc1"===(id=(tfhd=id.indexOf("."))<0?id:id.substring(0,tfhd))||"hev1"===id||"dvh1"===id||"dvhe"===id)),findBox(traf,["trun"]).map(function(trun){for(var version=trun[0],flags=16777215&readUint32(trun,0),dataOffset=0,sampleDurationPresent=0!=(256&flags),sampleDuration=0,sampleSizePresent=0!=(512&flags),sampleSize=0,sampleFlagsPresent=0!=(1024&flags),sampleCompositionOffsetsPresent=0!=(2048&flags),compositionOffset=0,sampleCount=readUint32(trun,4),trunOffset=8,sampleOffset=(0!=(1&flags)&&(dataOffset=readUint32(trun,trunOffset),trunOffset+=4),0!=(4&flags)&&(trunOffset+=4),dataOffset+moofOffset),ix=0;ix>1&63)||40==isHEVCFlavor:6==(31&naluHeader)}(isHEVCFlavor,videoData[sampleOffset+=4])||parseSEIMessageFromNALu(videoData.subarray(sampleOffset,sampleOffset+naluSize),isHEVCFlavor?2:1,timeOffset+compositionOffset/timescale,seiSamples),sampleOffset+=naluSize,naluTotalSize+=naluSize+4}timeOffset+=sampleDuration/timescale}}))})})}),seiSamples}function parseSEIMessageFromNALu(unescapedData,headerSize,pts,samples){for(var data=discardEPB(unescapedData),seiPtr=0,payloadType=(seiPtr+=headerSize,0),payloadSize=0,b=0;seiPtr=data.length)&&(payloadType+=b=data[seiPtr++],255===b););for(payloadSize=0;!(seiPtr>=data.length)&&(payloadSize+=b=data[seiPtr++],255===b););var leftOver=data.length-seiPtr,payPtr=seiPtr;if(payloadSize>24&255,result[1]=size>>16&255,result[2]=size>>8&255,result[3]=255&size,result.set(type,4),i=0,size=8;i>>24;if(0!=version&&1!=version)return{offset:offset,size:size};var buffer=view.buffer,systemId=Hex.hexDump(new Uint8Array(buffer,offset+12,16)),dataSizeOrKidCount=view.getUint32(28),kids=null,view=null;if(0==version){if(size-32=buffered.start(i)&&position<=buffered.end(i))return!0;return!1},BufferHelper.bufferInfo=function(media,pos,maxHoleDuration){if(media){var vbuffered=BufferHelper.getBuffered(media);if(vbuffered.length){for(var buffered=[],i=0;ibuf2end&&(buffered2[buf2len-1].end=buffered[i].end):buffered2.push(buffered[i])}else buffered2=buffered;for(var bufferStartNext,bufferLen=0,bufferStart=pos,bufferEnd=pos,_i=0;_iNumber.MAX_SAFE_INTEGER?1/0:attrName},_proto.hexadecimalInteger=function(attrName){if(this[attrName]){for(var stringValue=(1&(stringValue=(this[attrName]||"0x").slice(2)).length?"0":"")+stringValue,value=new Uint8Array(stringValue.length/2),i=0;iNumber.MAX_SAFE_INTEGER?1/0:attrName},_proto.decimalFloatingPoint=function(attrName){return parseFloat(this[attrName])},_proto.optionalFloat=function(attrName,defaultValue){attrName=this[attrName];return attrName?parseFloat(attrName):defaultValue},_proto.enumeratedString=function(attrName){return this[attrName]},_proto.enumeratedStringList=function(attrName,dict){attrName=this[attrName];return(attrName?attrName.split(/[ ,]+/):[]).reduce(function(result,identifier){return result[identifier.toLowerCase()]=!0,result},dict)},_proto.bool=function(attrName){return"YES"===this[attrName]},_proto.decimalResolution=function(attrName){attrName=DECIMAL_RESOLUTION_REGEX.exec(this[attrName]);if(null!==attrName)return{width:parseInt(attrName[1],10),height:parseInt(attrName[2],10)}},AttrList.parseAttrList=function(input,parsed){var attrs={};for(ATTR_LIST_REGEX.lastIndex=0;null!==(match=ATTR_LIST_REGEX.exec(input));){var name=match[1].trim(),value=match[2],match=0===value.indexOf('"')&&value.lastIndexOf('"')===value.length-1,hexadecimalSequence=!1;if(match)value=value.slice(1,-1);else switch(name){case"IV":case"SCTE35-CMD":case"SCTE35-IN":case"SCTE35-OUT":hexadecimalSequence=!0}if(parsed&&(match||hexadecimalSequence))value=substituteVariables(parsed,value);else if(!hexadecimalSequence&&!match)switch(name){case"CLOSED-CAPTIONS":if("NONE"===value)break;case"ALLOWED-CPC":case"CLASS":case"ASSOC-LANGUAGE":case"AUDIO":case"BYTERANGE":case"CHANNELS":case"CHARACTERISTICS":case"CODECS":case"DATA-ID":case"END-DATE":case"GROUP-ID":case"ID":case"IMPORT":case"INSTREAM-ID":case"KEYFORMAT":case"KEYFORMATVERSIONS":case"LANGUAGE":case"NAME":case"PATHWAY-ID":case"QUERYPARAM":case"RECENTLY-REMOVED-DATERANGES":case"SERVER-URI":case"STABLE-RENDITION-ID":case"STABLE-VARIANT-ID":case"START-DATE":case"SUBTITLES":case"SUPPLEMENTAL-CODECS":case"URI":case"VALUE":case"VIDEO":case"X-ASSET-LIST":case"X-ASSET-URI":logger.warn(input+": attribute "+name+" is missing quotes")}attrs[name]=value}return attrs},_createClass(AttrList,[{key:"clientAttrs",get:function(){return Object.keys(this).filter(function(attr){return"X-"===attr.substring(0,2)})}}])}();var DateRange=function(){return _createClass(function(dateRangeAttr,dateRangeWithSameId,tagCount){var _dateRangeWithSameId$;if(void 0===tagCount&&(tagCount=0),this.attr=void 0,this.tagAnchor=void 0,this.tagOrder=void 0,this._startDate=void 0,this._endDate=void 0,this._dateAtEnd=void 0,this._cue=void 0,this._badValueForSameId=void 0,this.tagAnchor=(null==dateRangeWithSameId?void 0:dateRangeWithSameId.tagAnchor)||null,this.tagOrder=null!=(_dateRangeWithSameId$=null==dateRangeWithSameId?void 0:dateRangeWithSameId.tagOrder)?_dateRangeWithSameId$:tagCount,dateRangeWithSameId){var key,previousAttr=dateRangeWithSameId.attr;for(key in previousAttr)if(Object.prototype.hasOwnProperty.call(dateRangeAttr,key)&&dateRangeAttr[key]!==previousAttr[key]){logger.warn('DATERANGE tag attribute: "'+key+'" does not match for tags with ID: "'+dateRangeAttr.ID+'"'),this._badValueForSameId=key;break}dateRangeAttr=_extends(new AttrList({}),previousAttr,dateRangeAttr)}this.attr=dateRangeAttr,dateRangeWithSameId?(this._startDate=dateRangeWithSameId._startDate,this._cue=dateRangeWithSameId._cue,this._endDate=dateRangeWithSameId._endDate,this._dateAtEnd=dateRangeWithSameId._dateAtEnd):this._startDate=new Date(dateRangeAttr["START-DATE"]),"END-DATE"in this.attr&&(_dateRangeWithSameId$=(null==dateRangeWithSameId?void 0:dateRangeWithSameId.endDate)||new Date(this.attr["END-DATE"]),isFiniteNumber(_dateRangeWithSameId$.getTime()))&&(this._endDate=_dateRangeWithSameId$)},[{key:"id",get:function(){return this.attr.ID}},{key:"class",get:function(){return this.attr.CLASS}},{key:"cue",get:function(){var _cue=this._cue;return void 0===_cue?this._cue=this.attr.enumeratedStringList(this.attr.CUE?"CUE":"X-CUE",{pre:!1,post:!1,once:!1}):_cue}},{key:"startTime",get:function(){var tagAnchor=this.tagAnchor;return null===tagAnchor||null===tagAnchor.programDateTime?(logger.warn('Expected tagAnchor Fragment with PDT set for DateRange "'+this.id+'": '+tagAnchor),NaN):tagAnchor.start+(this.startDate.getTime()-tagAnchor.programDateTime)/1e3}},{key:"startDate",get:function(){return this._startDate}},{key:"endDate",get:function(){var dateAtEnd=this._endDate||this._dateAtEnd;return dateAtEnd||(null!==(dateAtEnd=this.duration)?this._dateAtEnd=new Date(this._startDate.getTime()+1e3*dateAtEnd):null)}},{key:"duration",get:function(){if("DURATION"in this.attr){var duration=this.attr.decimalFloatingPoint("DURATION");if(isFiniteNumber(duration))return duration}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1e3;return null}},{key:"plannedDuration",get:function(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}},{key:"endOnNext",get:function(){return this.attr.bool("END-ON-NEXT")}},{key:"isInterstitial",get:function(){return"com.apple.hls.interstitial"===this.class}},{key:"isValid",get:function(){return!!this.id&&!this._badValueForSameId&&isFiniteNumber(this.startDate.getTime())&&(null===this.duration||0<=this.duration)&&(!this.endOnNext||!!this.class)&&(!this.attr.CUE||!this.cue.pre&&!this.cue.post||this.cue.pre!==this.cue.post)&&(!this.isInterstitial||"X-ASSET-URI"in this.attr||"X-ASSET-LIST"in this.attr)}}])}(),LevelDetails=function(){function LevelDetails(baseUrl){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.dateRangeTagCount=0,this.live=!0,this.requestScheduled=-1,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.availabilityDelay=void 0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.appliedTimelineOffset=void 0,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=baseUrl}return LevelDetails.prototype.reloaded=function(previous){var partSnDiff,partIndexDiff;previous?(partSnDiff=this.lastPartSn-previous.lastPartSn,partIndexDiff=this.lastPartIndex-previous.lastPartIndex,this.updated=this.endSN!==previous.endSN||!!partIndexDiff||!!partSnDiff||!this.live,this.advanced=this.endSN>previous.endSN||0lastIndex)return partList[i].index;return lastIndex}}return 0}},{key:"lastPartSn",get:function(){var _this$partList3;return null!=(_this$partList3=this.partList)&&_this$partList3.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}},{key:"expired",get:function(){var playlistWindowDuration;return!(!this.live||!this.age)&&(playlistWindowDuration=this.partEnd-this.fragmentStart,this.age>Math.max(playlistWindowDuration,this.totalduration)+this.levelTargetDuration)}}])}();function isFullSegmentEncryption(method){return"AES-128"===method||"AES-256"===method||"AES-256-CTR"===method}function getAesModeFromFullSegmentMethod(method){switch(method){case"AES-128":case"AES-256":return DecrypterAesMode_cbc;case"AES-256-CTR":return DecrypterAesMode_ctr;default:throw new Error("invalid full segment method "+method)}}function base64Decode(base64encodedStr){return Uint8Array.from(atob(base64encodedStr),function(c){return c.charCodeAt(0)})}function strToUtf8array(str){return Uint8Array.from(unescape(encodeURIComponent(str)),function(c){return c.charCodeAt(0)})}function changeEndianness(keyId){function swap(array,from,to){var cur=array[from];array[from]=array[to],array[to]=cur}swap(keyId,0,3),swap(keyId,1,2),swap(keyId,4,5),swap(keyId,6,7)}function convertDataUriToArrayBytes(uri){var commasplit,isbase64,uri=uri.split(":"),keydata=null;return"data"===uri[0]&&2===uri.length&&2===(commasplit=(uri=uri[1].split(";"))[uri.length-1].split(",")).length&&(isbase64="base64"===commasplit[0],commasplit=commasplit[1],keydata=isbase64?(uri.splice(-1,1),base64Decode(commasplit)):(isbase64=strToUtf8array(isbase64=commasplit).subarray(0,16),(uri=new Uint8Array(16)).set(isbase64,16-isbase64.length),uri)),keydata}var optionalSelf="undefined"!=typeof self?self:void 0,KeySystems={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},KeySystemFormats={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.streamingkeydelivery",PLAYREADY:"com.microsoft.playready",WIDEVINE:"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"};function keySystemFormatToKeySystemDomain(format){switch(format){case KeySystemFormats.FAIRPLAY:return KeySystems.FAIRPLAY;case KeySystemFormats.PLAYREADY:return KeySystems.PLAYREADY;case KeySystemFormats.WIDEVINE:return KeySystems.WIDEVINE;case KeySystemFormats.CLEARKEY:return KeySystems.CLEARKEY}}var KeySystemIds={CENC:"1077efecc0b24d02ace33c1e52e2fb4b",CLEARKEY:"e2719d58a985b3c9781ab030af78d30e",FAIRPLAY:"94ce86fb07ff4f43adb893d2fa968ca2",PLAYREADY:"9a04f07998404286ab92e65be0885f95",WIDEVINE:"edef8ba979d64acea3c827dcd51d21ed"};function keySystemIdToKeySystemDomain(systemId){return systemId===KeySystemIds.WIDEVINE?KeySystems.WIDEVINE:systemId===KeySystemIds.PLAYREADY?KeySystems.PLAYREADY:systemId===KeySystemIds.CENC||systemId===KeySystemIds.CLEARKEY?KeySystems.CLEARKEY:void 0}function keySystemDomainToKeySystemFormat(keySystem){switch(keySystem){case KeySystems.FAIRPLAY:return KeySystemFormats.FAIRPLAY;case KeySystems.PLAYREADY:return KeySystemFormats.PLAYREADY;case KeySystems.WIDEVINE:return KeySystemFormats.WIDEVINE;case KeySystems.CLEARKEY:return KeySystemFormats.CLEARKEY}}function getKeySystemsForConfig(config){var drmSystems=config.drmSystems,config=config.widevineLicenseUrl,keySystemsToAttempt=drmSystems?[KeySystems.FAIRPLAY,KeySystems.WIDEVINE,KeySystems.PLAYREADY,KeySystems.CLEARKEY].filter(function(keySystem){return!!drmSystems[keySystem]}):[];return!keySystemsToAttempt[KeySystems.WIDEVINE]&&config&&keySystemsToAttempt.push(KeySystems.WIDEVINE),keySystemsToAttempt}var requestMediaKeySystemAccess=null!=optionalSelf&&null!=(_optionalSelf$navigat=optionalSelf.navigator)&&_optionalSelf$navigat.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null;function parsePlayReadyWRM(keyBytes){keyBytes=new Uint16Array(keyBytes.buffer,keyBytes.byteOffset,keyBytes.byteLength/2),keyBytes=String.fromCharCode.apply(null,Array.from(keyBytes)),keyBytes=keyBytes.substring(keyBytes.indexOf("<"),keyBytes.length),keyBytes=(new DOMParser).parseFromString(keyBytes,"text/xml").getElementsByTagName("KID")[0];if(keyBytes){var keyBytes=keyBytes.childNodes[0]?keyBytes.childNodes[0].nodeValue:keyBytes.getAttribute("VALUE");if(keyBytes)return changeEndianness(keyBytes=base64Decode(keyBytes).subarray(0,16)),keyBytes}return null}var keyUriToKeyIdMap={},LevelKey=function(){function LevelKey(method,uri,format,formatversions,iv){void 0===formatversions&&(formatversions=[1]),void 0===iv&&(iv=null),this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=method,this.uri=uri,this.keyFormat=format,this.keyFormatVersions=formatversions,this.iv=iv,this.encrypted=!!method&&"NONE"!==method,this.isCommonEncryption=this.encrypted&&!isFullSegmentEncryption(method)}LevelKey.clearKeyUriToKeyIdMap=function(){keyUriToKeyIdMap={}};var _proto=LevelKey.prototype;return _proto.isSupported=function(){if(this.method){if(isFullSegmentEncryption(this.method)||"NONE"===this.method)return!0;if("identity"===this.keyFormat)return"SAMPLE-AES"===this.method;switch(this.keyFormat){case KeySystemFormats.FAIRPLAY:case KeySystemFormats.WIDEVINE:case KeySystemFormats.PLAYREADY:case KeySystemFormats.CLEARKEY:return-1!==["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)}}return!1},_proto.getDecryptData=function(sn){if(!this.encrypted||!this.uri)return null;if(isFullSegmentEncryption(this.method)&&this.uri&&!this.iv)return"number"!=typeof sn&&(logger.warn('missing IV for initialization segment with method="'+this.method+'" - compliance issue'),sn=0),sn=function(segmentNumber){for(var uint8View=new Uint8Array(16),i=12;i<16;i++)uint8View[i]=segmentNumber>>8*(15-i)&255;return uint8View}(sn),new LevelKey(this.method,this.uri,"identity",this.keyFormatVersions,sn);var val,keyBytes=convertDataUriToArrayBytes(this.uri);if(keyBytes)switch(this.keyFormat){case KeySystemFormats.WIDEVINE:22<=(this.pssh=keyBytes).length&&(this.keyId=keyBytes.subarray(keyBytes.length-22,keyBytes.length-6));break;case KeySystemFormats.PLAYREADY:var PlayReadyKeySystemUUID=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=mp4pssh(PlayReadyKeySystemUUID,0,keyBytes),this.keyId=parsePlayReadyWRM(keyBytes);break;default:var padded,PlayReadyKeySystemUUID=keyBytes.subarray(0,16);16!==PlayReadyKeySystemUUID.length&&((padded=new Uint8Array(16)).set(PlayReadyKeySystemUUID,16-PlayReadyKeySystemUUID.length),PlayReadyKeySystemUUID=padded),this.keyId=PlayReadyKeySystemUUID}return this.keyId&&16===this.keyId.byteLength||((sn=keyUriToKeyIdMap[this.uri])||(val=Object.keys(keyUriToKeyIdMap).length%Number.MAX_SAFE_INTEGER,sn=new Uint8Array(16),new DataView(sn.buffer,12,4).setUint32(0,val),keyUriToKeyIdMap[this.uri]=sn),this.keyId=sn),this},LevelKey}();var MASTER_PLAYLIST_REGEX=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g,MASTER_PLAYLIST_MEDIA_REGEX=/#EXT-X-MEDIA:(.*)/g,IS_MEDIA_PLAYLIST=/^#EXT(?:INF|-X-TARGETDURATION):/m,LEVEL_PLAYLIST_REGEX_FAST=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[^\r\n]*)/.source,/#.*/.source].join("|"),"g"),LEVEL_PLAYLIST_REGEX_SLOW=new RegExp([/#(EXTM3U)/.source,/#EXT-X-(PROGRAM-DATE-TIME|BYTERANGE|DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|")),M3U8Parser=function(){function M3U8Parser(){}return M3U8Parser.findGroup=function(groups,mediaGroupId){for(var i=0;iprogramDateTimes.length)for(var i=(programDateTimes[index+1]||fragments[fragments.length-1]).sn-details.startSN;startIndexfragFrom.sn?(duration=fragToPTS-fragFrom.start,fragFrom):(duration=fragFrom.start-fragToPTS,fragTo)).duration!==duration&&fragToPTS.setDuration(duration)):fragTo.sn>fragFrom.sn?fragFrom.cc===fragTo.cc&&fragFrom.minEndPTS?fragTo.setStart(fragFrom.start+(fragFrom.minEndPTS-fragFrom.start)):fragTo.setStart(fragFrom.start+fragFrom.duration):fragTo.setStart(Math.max(fragFrom.start-fragTo.duration,0))}function updateFragPTSDTS(details,frag,startPTS,endPTS,startDTS,endDTS){endPTS-startPTS<=0&&(logger.warn("Fragment should have a positive duration",frag),endPTS=startPTS+frag.duration,endDTS=startDTS+frag.duration);var i,maxStartPTS=startPTS,minEndPTS=endPTS,fragStartPts=frag.startPTS,fragEndPts=frag.endPTS,deltaPTS=(isFiniteNumber(fragStartPts)&&(deltaPTS=Math.abs(fragStartPts-startPTS),isFiniteNumber(frag.deltaPTS)?frag.deltaPTS=Math.max(deltaPTS,frag.deltaPTS):frag.deltaPTS=deltaPTS,maxStartPTS=Math.max(startPTS,fragStartPts),startPTS=Math.min(startPTS,fragStartPts),startDTS=Math.min(startDTS,frag.startDTS),minEndPTS=Math.min(endPTS,fragEndPts),endPTS=Math.max(endPTS,fragEndPts),endDTS=Math.max(endDTS,frag.endDTS)),startPTS-frag.start),fragStartPts=(0!==frag.start&&frag.setStart(startPTS),frag.setDuration(endPTS-frag.start),frag.startPTS=startPTS,frag.maxStartPTS=maxStartPTS,frag.startDTS=startDTS,frag.endPTS=endPTS,frag.minEndPTS=minEndPTS,frag.endDTS=endDTS,frag.sn);if(!details||fragStartPtsdetails.endSN)return 0;var fragEndPts=fragStartPts-details.startSN,fragments=details.fragments;for(fragments[fragEndPts]=frag,i=fragEndPts;0refDetails.startCC)})(refDetails,details)&&(targetCC=Math.min(refDetails.endCC,details.endCC),refDetails=findFirstFragWithCC(refDetails.fragments,targetCC),frag=findFirstFragWithCC(details.fragments,targetCC),refDetails)&&frag&&(logger.log("Aligning playlist at start of dicontinuity sequence "+targetCC),adjustSlidingStart(refDetails.start-frag.start,details))}function alignMediaPlaylistByPDT(details,refDetails){var fragments,refFragments,refFrag,frag,targetCC;details.hasProgramDateTime&&refDetails.hasProgramDateTime&&(fragments=details.fragments,refFragments=refDetails.fragments,fragments.length)&&refFragments.length&&(targetCC=Math.min(refDetails.endCC,details.endCC),refDetails.startCCmediaBuffer.end)&&(_this2=_this2config.end&&config.nextEvent)return}}}this.startFragRequested=!0,this._loadFragForPlayback(frag,level,targetBufferTime)},_proto._loadFragForPlayback=function(fragment,level,targetBufferTime){var _this3=this;this._doFragLoad(fragment,level,targetBufferTime,function(data){var frag=data.frag;_this3.fragContextChanged(frag)?(_this3.warn(frag.type+" sn: "+frag.sn+(data.part?" part: "+data.part.index:"")+" of "+_this3.fragInfo(frag,!1,data.part)+") was dropped during download."),_this3.fragmentTracker.removeFragment(frag)):(frag.stats.chunkCount++,_this3._handleFragmentLoadProgress(data))}).then(function(data){var state,frag;data&&(state=_this3.state,frag=data.frag,_this3.fragContextChanged(frag)?state!==State_FRAG_LOADING&&(_this3.fragCurrent||state!==State_PARSING)||(_this3.fragmentTracker.removeFragment(frag),_this3.state=State_IDLE):("payload"in data&&(_this3.log("Loaded "+frag.type+" sn: "+frag.sn+" of "+_this3.playlistLabel()+" "+frag.level),_this3.hls.trigger(Events.FRAG_LOADED,data)),_this3._handleFragmentLoadComplete(data)))}).catch(function(reason){_this3.state!==State_STOPPED&&_this3.state!==State_ERROR&&(_this3.warn("Frag error: "+((null==reason?void 0:reason.message)||reason)),_this3.resetFragmentLoading(fragment))})},_proto.clearTrackerIfNeeded=function(frag){var playlistType,backtrackFragment,fragmentTracker=this.fragmentTracker;fragmentTracker.getState(frag)===FragmentState_APPENDING?(playlistType=frag.type,playlistType=this.getFwdBufferInfo(this.mediaBuffer,playlistType),playlistType=Math.max(frag.duration,playlistType?playlistType.len:this.config.maxBufferLength),1!=((backtrackFragment=this.backtrackFragment)?frag.sn-backtrackFragment.sn:0)&&!this.reduceMaxBufferLength(playlistType,frag.duration)||fragmentTracker.removeFragment(frag)):0===(null==(backtrackFragment=this.mediaBuffer)?void 0:backtrackFragment.buffered.length)?fragmentTracker.removeAllFragments():fragmentTracker.hasParts(frag.type)&&(fragmentTracker.detectPartialFragments({frag:frag,part:null,stats:frag.stats,id:frag.type}),fragmentTracker.getState(frag)===FragmentState_PARTIAL)&&fragmentTracker.removeFragment(frag)},_proto.checkLiveUpdate=function(details){var lastFragment;details.updated&&!details.live&&(lastFragment=details.fragments[details.fragments.length-1],this.fragmentTracker.detectPartialFragments({frag:lastFragment,part:null,stats:lastFragment.stats,id:lastFragment.type})),details.fragments[0]||(details.deltaUpdateFailed=!0)},_proto.waitForLive=function(levelInfo){var details=levelInfo.details;return(null==details?void 0:details.live)&&"EVENT"!==details.type&&(this.levelLastLoaded!==levelInfo||details.expired)},_proto.flushMainBuffer=function(startOffset,endOffset,type){void 0===type&&(type=null),startOffset-endOffset&&this.hls.trigger(Events.BUFFER_FLUSHING,{startOffset:startOffset,endOffset:endOffset,type:type})},_proto._loadInitSegment=function(fragment,level){var _this4=this;this._doFragLoad(fragment,level).then(function(data){var frag=null==data?void 0:data.frag;if(frag&&!_this4.fragContextChanged(frag)&&_this4.levels)return data;throw new Error("init load aborted")}).then(function(data){var startTime,hls=_this4.hls,frag=data.frag,payload=data.payload,decryptData=frag.decryptdata;return payload&&0 buffer:"+(media?TimeRanges_toString(BufferHelper.getBuffered(media)):"(detached)")+")"),isMediaFragment(frag)){if(frag.type!==PlaylistLevelType_SUBTITLE){var el=frag.elementaryStreams;if(!Object.keys(el).some(function(type){return!!el[type]}))return void(this.state=State_IDLE)}media=null==(part=this.levels)?void 0:part[frag.level];null!=media&&media.fragmentError&&(this.log("Resetting level fragment error count of "+media.fragmentError+" on frag buffered"),media.fragmentError=0)}this.state=State_IDLE},_proto._handleFragmentLoadComplete=function(fragLoadedEndData){var part,frag,transmuxer=this.transmuxer;transmuxer&&(frag=fragLoadedEndData.frag,part=fragLoadedEndData.part,fragLoadedEndData=!(fragLoadedEndData=fragLoadedEndData.partsLoaded)||0===fragLoadedEndData.length||fragLoadedEndData.some(function(fragLoaded){return!fragLoaded}),frag=new ChunkMetadata(frag.level,frag.sn,frag.stats.chunkCount+1,0,part?part.index:-1,!fragLoadedEndData),transmuxer.flush(frag))},_proto._handleFragmentLoadProgress=function(frag){},_proto._doFragLoad=function(frag,level,targetBufferTime,progressCallback){var _this5=this,details=(void 0===targetBufferTime&&(targetBufferTime=null),this.fragCurrent=frag,null==level?void 0:level.details);if(!this.levels||!details)throw new Error("frag load aborted, missing level"+(details?"":" detail")+"s");var keyLoadingPromise=null,_frag$decryptdata=(!frag.encrypted||null!=(_frag$decryptdata=frag.decryptdata)&&_frag$decryptdata.key?!frag.encrypted&&details.encryptedFragments.length&&this.keyLoader.loadClear(frag,details.encryptedFragments):(this.log("Loading key for "+frag.sn+" of ["+details.startSN+"-"+details.endSN+"], "+this.playlistLabel()+" "+frag.level),this.state=State_KEY_LOADING,this.fragCurrent=frag,keyLoadingPromise=this.keyLoader.load(frag).then(function(keyLoadedData){if(!_this5.fragContextChanged(keyLoadedData.frag))return _this5.hls.trigger(Events.KEY_LOADED,keyLoadedData),_this5.state===State_KEY_LOADING&&(_this5.state=State_IDLE),keyLoadedData}),this.hls.trigger(Events.KEY_LOADING,{frag:frag}),null===this.fragCurrent&&(keyLoadingPromise=Promise.reject(new Error("frag load aborted, context changed in KEY_LOADING")))),this.fragPrevious);if(!isMediaFragment(frag)||_frag$decryptdata&&frag.sn===_frag$decryptdata.sn||(shouldLoadParts=this.shouldLoadParts(level.details,frag.end))!==this.loadingParts&&(this.log("LL-Part loading "+(shouldLoadParts?"ON":"OFF")+" loading sn "+(null==_frag$decryptdata?void 0:_frag$decryptdata.sn)+"->"+frag.sn),this.loadingParts=shouldLoadParts),targetBufferTime=Math.max(frag.start,targetBufferTime||0),this.loadingParts&&isMediaFragment(frag)){_frag$decryptdata=details.partList;if(_frag$decryptdata&&progressCallback){targetBufferTime>frag.end&&details.fragmentHint&&(frag=details.fragmentHint);var part,shouldLoadParts=this.getNextPart(_frag$decryptdata,frag,targetBufferTime);if(-1now.endSN||this.shouldLoadParts(now,frag.end))!==this.loadingParts&&(this.log("LL-Part loading "+(now?"ON":"OFF")+" after parsing segment ending @"+frag.end.toFixed(2)),this.loadingParts=now),this.updateLevelTiming(frag,part,context,chunkMeta.partial)):this.fragCurrent||this.state===State_STOPPED||this.state===State_ERROR||(this.state=State_IDLE)},_proto.shouldLoadParts=function(details,bufferEnd){if(this.config.lowLatencyMode){if(!details)return this.loadingParts;if(null!=details&&details.partList){var firstPart=details.partList[0],details=firstPart.end+((null==(details=details.fragmentHint)?void 0:details.duration)||0);if(details<=bufferEnd)if((this.hls.hasEnoughToStart?(null==(details=this.media)?void 0:details.currentTime)||this.lastCurrentTime:this.getLoadPosition())>firstPart.start-firstPart.fragment.duration)return!0}}return!1},_proto.getCurrentContext=function(chunkMeta){var levelDetails,levels=this.levels,fragCurrent=this.fragCurrent,levelIndex=chunkMeta.level,sn=chunkMeta.sn,chunkMeta=chunkMeta.part;return null!=levels&&levels[levelIndex]?(levelDetails=(levels=levels[levelIndex]).details,(levelDetails=(chunkMeta=-1fragDuration&&this.flushMainBuffer(media,frag.start)):this.flushMainBuffer(0,frag.start))},_proto.getFwdBufferInfo=function(bufferable,type){var _this$media2,pos=this.getLoadPosition();return isFiniteNumber(pos)?(_this$media2=this.lastCurrentTime>pos||null!=(_this$media2=this.media)&&_this$media2.paused?0:this.config.maxBufferHole,this.getFwdBufferInfoAtPos(bufferable,pos,type,_this$media2)):null},_proto.getFwdBufferInfoAtPos=function(bufferable,pos,type,maxBufferHole){var bufferInfo=BufferHelper.bufferInfo(bufferable,pos,maxBufferHole);if(0===bufferInfo.len&&void 0!==bufferInfo.nextStart){type=this.fragmentTracker.getBufferedFrag(pos,type);if(type&&(bufferInfo.nextStart<=type.end||type.gap))return BufferHelper.bufferInfo(bufferable,pos,Math.max(bufferInfo.nextStart,maxBufferHole))}return bufferInfo},_proto.getMaxBufferLength=function(levelBitrate){var config=this.config,levelBitrate=levelBitrate?Math.max(8*config.maxBufferSize/levelBitrate,config.maxBufferLength):config.maxBufferLength;return Math.min(levelBitrate,config.maxMaxBufferLength)},_proto.reduceMaxBufferLength=function(threshold,fragDuration){var config=this.config,minLength=Math.max(Math.min(threshold-fragDuration,config.maxBufferLength),fragDuration),threshold=Math.max(threshold-3*fragDuration,config.maxMaxBufferLength/2,minLength);return minLength<=threshold&&(config.maxMaxBufferLength=threshold,this.warn("Reduce max buffer length to "+threshold+"s"),!0)},_proto.getAppendedFrag=function(position,playlistType){void 0===playlistType&&(playlistType=PlaylistLevelType_MAIN);var _this$fragmentTracker=null==(_this$fragmentTracker=this.fragmentTracker)?void 0:_this$fragmentTracker.getAppendedFrag(position,playlistType);return _this$fragmentTracker&&"fragment"in _this$fragmentTracker?_this$fragmentTracker.fragment:_this$fragmentTracker},_proto.getNextFragment=function(pos,levelDetails){var fragments=levelDetails.fragments,fragLen=fragments.length;if(!fragLen)return null;var config=this.config,start=fragments[0].start,canLoadParts=config.lowLatencyMode&&!!levelDetails.partList,frag=null;if(levelDetails.live){var config=config.initialLiveManifestSize;if(fragLentargetBufferTime},_proto.getNextFragmentLoopLoading=function(frag,levelDetails,bufferInfo,playlistType,maxBufLen){var nextFragment=null;if(frag.gap&&(nextFragment=this.getNextFragment(this.nextLoadPosition,levelDetails))&&!nextFragment.gap&&bufferInfo.nextStart){frag=this.getFwdBufferInfoAtPos(this.mediaBuffer||this.media,bufferInfo.nextStart,playlistType,0);if(null!==frag&&bufferInfo.len+frag.len>=maxBufLen)return levelDetails=nextFragment.sn,this.loopSn!==levelDetails&&(this.log('buffer full after gaps in "'+playlistType+'" playlist starting at sn: '+levelDetails),this.loopSn=levelDetails),null}return this.loopSn=void 0,nextFragment},_proto.mapToInitFragWhenRequired=function(frag){return null==frag||!frag.initSegment||null!=frag&&frag.initSegment.data||this.bitrateTest?frag:frag.initSegment},_proto.getNextPart=function(partList,frag,targetBufferTime){for(var nextPart=-1,contiguous=!1,independentAttrOmitted=!0,i=0,len=partList.length;ipartList.start&&partList.loaded},_proto.getInitialLiveFragment=function(levelDetails,fragments){var targetSN,fragPrevious=this.fragPrevious,frag=null;return fragPrevious?(levelDetails.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: "+fragPrevious.programDateTime),frag=findFragmentByPDT(fragments,fragPrevious.endProgramDateTime,this.config.maxFragLookUpTolerance)),frag||((targetSN=fragPrevious.sn+1)>=levelDetails.startSN&&targetSN<=levelDetails.endSN&&(targetSN=fragments[targetSN-levelDetails.startSN],fragPrevious.cc===targetSN.cc)&&this.log("Live playlist, switching playlist, load frag with next SN: "+(frag=targetSN).sn),frag)||(frag=findFragWithCC(fragments,fragPrevious.cc))&&this.log("Live playlist, switching playlist, load frag with same CC: "+frag.sn)):null!==(targetSN=this.hls.liveSyncPosition)&&(frag=this.getFragmentAtPosition(targetSN,this.bitrateTest?levelDetails.fragmentEnd:levelDetails.edge,levelDetails)),frag},_proto.getFragmentAtPosition=function(bufferEnd,end,levelDetails){var config=this.config,fragPrevious=this.fragPrevious,fragments=levelDetails.fragments,endSN=levelDetails.endSN,fragmentHint=levelDetails.fragmentHint,config=config.maxFragLookUpTolerance,partList=levelDetails.partList,loadingParts=!!(this.loadingParts&&null!=partList&&partList.length&&fragmentHint);return loadingParts&&fragmentHint&&!this.bitrateTest&&partList[partList.length-1].fragment.sn===fragmentHint.sn&&(fragments=fragments.concat(fragmentHint),endSN=fragmentHint.sn),(end=bufferEndend.sn||!levelDetails.live&&!loadingParts)&&fragPrevious&&end.level===fragPrevious.level&&(config=fragments[1+bufferEnd],end=end.sn"+details.startSN+" fragments: "+length),firstLevelLoad):slidingStart):(this.warn("No fragments in live playlist"),0)},_proto.waitForCdnTuneIn=function(details){return details.live&&details.canBlockReload&&details.partTarget&&details.tuneInGoal>Math.max(details.partHoldBack,3*details.partTarget)},_proto.setStartPosition=function(details,sliding){var offsetInMultivariantPlaylist,startTimeOffset,startPosition=this.startPosition;-1===(startPosition=startPosition "+(null==(_this$fragCurrent=this.fragCurrent)?void 0:_this$fragCurrent.url));else{var _this$fragCurrent=data.details===ErrorDetails.FRAG_GAP,errorAction=(_this$fragCurrent&&this.fragmentTracker.fragBuffered(context,!0),data.errorAction),_ref2=errorAction||{},action=_ref2.action,flags=_ref2.flags,_ref2$retryCount=_ref2.retryCount,_ref2$retryCount=void 0===_ref2$retryCount?0:_ref2$retryCount,_ref2=_ref2.retryConfig,couldRetry=!!errorAction&&!!_ref2,retry=couldRetry&&action===NetworkErrorAction_RetryRequest,couldRetry=couldRetry&&!errorAction.resolved&&flags===ErrorActionFlags_MoveAllAlternatesMatchingHost;if(!retry&&couldRetry&&isMediaFragment(context)&&!context.endList)this.resetFragmentErrors(filterType),this.treatAsGap(context),errorAction.resolved=!0;else if((retry||couldRetry)&&_ref2$retryCount<_ref2.maxNumRetry){this.resetStartWhenNotLoaded(this.levelLastLoaded);flags=getRetryDelay(_ref2,_ref2$retryCount);this.warn("Fragment "+context.sn+" of "+filterType+" "+context.level+" errored with "+data.details+", retrying loading "+(_ref2$retryCount+1)+"/"+_ref2.maxNumRetry+" in "+flags+"ms"),errorAction.resolved=!0,this.retryDate=self.performance.now()+flags,this.state=State_FRAG_LOADING_WAITING_RETRY}else if(_ref2&&errorAction){if(this.resetFragmentErrors(filterType),!(_ref2$retryCount<_ref2.maxNumRetry))return void this.warn(data.details+" reached or exceeded max retry ("+_ref2$retryCount+")");_this$fragCurrent||action===NetworkErrorAction_RemoveAlternatePermanently||(errorAction.resolved=!0)}else this.state=action===NetworkErrorAction_SendAlternateToPenaltyBox?State_WAITING_LEVEL:State_ERROR;this.tickImmediate()}},_proto.reduceLengthAndFlushBuffer=function(data){var frag,buffered,bufferedInfo;return(this.state===State_PARSING||this.state===State_PARSED)&&(frag=data.frag,data=data.parent,(buffered=(bufferedInfo=this.getFwdBufferInfo(this.mediaBuffer,data))&&.5"+nextState))}}])}(BaseSegment),ChunkCache=function(){function ChunkCache(){this.chunks=[],this.dataLength=0}var _proto=ChunkCache.prototype;return _proto.push=function(chunk){this.chunks.push(chunk),this.dataLength+=chunk.length},_proto.flush=function(){var chunks=this.chunks,dataLength=this.dataLength;return chunks.length?(chunks=1===chunks.length?chunks[0]:function(chunks,dataLength){for(var result=new Uint8Array(dataLength),offset=0,i=0;i>>5}function isHeader$1(data,offset){return offset+1>2&15;if(!(12>6&3))&&29!=adtsObjectType||(aacSampleIndex-=3),data=[adtsObjectType<<3|(14&aacSampleIndex)>>1,(1&aacSampleIndex)<<7|(aacSampleIndex=data[offset+3]>>6&3|(1&byte2)<<2)<<3],logger.log("manifest codec:"+manifestCodec+", parsed codec:"+(offset="mp4a.40."+adtsObjectType)+", channels:"+aacSampleIndex+", rate:"+(byte2=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350][adtsSamplingIndex])+" (ADTS object type:"+adtsObjectType+" sampling index:"+adtsSamplingIndex+")"),{config:data,samplerate:byte2,channelCount:aacSampleIndex,codec:offset,parsedCodec:offset,manifestCodec:manifestCodec};adtsObjectType=new Error("invalid ADTS sampling index:"+adtsSamplingIndex),observer.emit(Events.ERROR,Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.FRAG_PARSING_ERROR,fatal:!0,error:adtsObjectType,reason:adtsObjectType.message})}(observer,data,offset,audioCodec))&&_extends(track,observer)}function appendFrame$1(track,data,offset,pts,frameIndex){var frameLength,missing,unit,pts=pts+frameIndex*(9216e4/track.samplerate),frameIndex=function(data,offset){var headerLength=getHeaderLength(data,offset);if(offset+headerLength<=data.length){data=getFullFrameLength(data,offset)-headerLength;if(0>6&1&&(offset+=HEADER_FOOTER_SIZE),(offset+=HEADER_FOOTER_SIZE)+size);offset+FRAME_SIZEdata.length)&&(header=parseHeader(data,offset))&&offset+header.frameLength<=data.length?(pts=pts+frameIndex*(9e4*header.samplesPerFrame/header.sampleRate),frameIndex={unit:data.subarray(offset,offset+header.frameLength),pts:pts,dts:pts},track.config=[],track.channelCount=header.channelCount,track.samplerate=header.sampleRate,track.samples.push(frameIndex),{sample:frameIndex,length:header.frameLength,missing:0}):void 0}function parseHeader(data,offset){var channelMode,channelCount,bytesInSlot,samplesPerFrame,paddingBit,mpegVersion=data[offset+1]>>3&3,mpegLayer=data[offset+1]>>1&3,bitRateIndex=data[offset+2]>>4&15,sampleRateIndex=data[offset+2]>>2&3;if(1!=mpegVersion&&0!=bitRateIndex&&15!=bitRateIndex&&3!=sampleRateIndex)return paddingBit=data[offset+2]>>1&1,channelMode=data[offset+3]>>6,bitRateIndex=1e3*BitratesMap[14*(3==mpegVersion?3-mpegLayer:3==mpegLayer?3:4)+bitRateIndex-1],sampleRateIndex=SamplingRateMap[3*(3==mpegVersion?0:2==mpegVersion?1:2)+sampleRateIndex],channelCount=3==channelMode?1:2,samplesPerFrame=8*(mpegVersion=SamplesCoefficients[mpegVersion][mpegLayer])*(bytesInSlot=BytesInSlot[mpegLayer]),mpegVersion=Math.floor(mpegVersion*bitRateIndex/sampleRateIndex+paddingBit)*bytesInSlot,null===chromeVersion$1&&(paddingBit=(navigator.userAgent||"").match(/Chrome\/(\d+)/i),chromeVersion$1=paddingBit?parseInt(paddingBit[1]):0),!!chromeVersion$1&&chromeVersion$1<=87&&2==mpegLayer&&224e3<=bitRateIndex&&0==channelMode&&(data[offset+3]=128|data[offset+3]),{sampleRate:sampleRateIndex,channelCount:channelCount,frameLength:mpegVersion,samplesPerFrame:samplesPerFrame}}function isHeaderPattern(data,offset){return 255===data[offset]&&224==(224&data[offset+1])&&0!=(6&data[offset+1])}function isHeader(data,offset){return offset+1>>24+shift<>shift,bsid=bsid?bsid<=data.length?void 0:!((frameLength=getFullFrameLength(data,offset))<=headerLength)&&((headerLength=offset+frameLength)===data.length||isHeader$1(data,headerLength))}(data,offset))return logger.log("ADTS sync word found !"),!0}return!1},_proto.canParse=function(data,offset){return offset+5data.length||11!==data[start]||119!==data[start+1]||3<=(samplingRateCode=data[start+4]>>6)||(sampleRate=[48e3,44100,32e3][samplingRateCode],start+(frameLength=2*[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][3*(frameSizeCode=63&data[start+4])+samplingRateCode])>data.length)?-1:(skipCount=0,(2==(channelMode=data[start+6]>>5)||(1&channelMode&&1!=channelMode&&(skipCount+=2),4&channelMode))&&(skipCount+=2),skipCount=(data[start+6]<<8|data[start+7])>>12-skipCount&1,channelCount=[2,1,2,3,3,4,4,5][channelMode]+skipCount,bsid=data[start+5]>>3,bsmod=7&data[start+5],samplingRateCode=new Uint8Array([samplingRateCode<<6|bsid<<1|bsmod>>2,(3&bsmod)<<6|channelMode<<3|skipCount<<2|frameSizeCode>>4,frameSizeCode<<4&224]),bsid=pts+frameIndex*(1536/sampleRate*9e4),bsmod=data.subarray(start,start+frameLength),track.config=samplingRateCode,track.channelCount=channelCount,track.samplerate=sampleRate,track.samples.push({unit:bsmod,pts:bsid}),frameLength)}var BaseSegment=function(_BaseAudioDemuxer){function MP3Demuxer(){return _BaseAudioDemuxer.apply(this,arguments)||this}_inheritsLoose(MP3Demuxer,_BaseAudioDemuxer);var _proto=MP3Demuxer.prototype;return _proto.resetInitSegment=function(initSegment,audioCodec,videoCodec,trackDuration){_BaseAudioDemuxer.prototype.resetInitSegment.call(this,initSegment,audioCodec,videoCodec,trackDuration),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:audioCodec,duration:trackDuration,inputTimeScale:9e4,dropped:0}},MP3Demuxer.probe=function(data){if(data){var id3Data=getId3Data(data,0),offset=(null==id3Data?void 0:id3Data.length)||0;if(!(id3Data&&11===data[offset]&&119===data[offset+1]&&void 0!==getId3Timestamp(id3Data)&&getAudioBSID(data,offset)<=16))for(var length=data.length;offset=samples.length)return void callback();if(!(samples[sampleIndex].unit.length<32)&&(this.decryptAacSample(samples,sampleIndex,callback),!this.decrypter.isSync()))return}},_proto.getAvcEncryptedData=function(decodedData){for(var encryptedDataLen=16*Math.floor((decodedData.length-48)/160)+16,encryptedData=new Int8Array(encryptedDataLen),outputPos=0,inputPos=32;inputPos=samples.length)return void callback();for(var curUnits=samples[sampleIndex].units;!(unitIndex>=curUnits.length);unitIndex++){var curUnit=curUnits[unitIndex];if(!(curUnit.data.length<=48||1!==curUnit.type&&5!==curUnit.type||(this.decryptAvcSample(samples,sampleIndex,unitIndex,callback,curUnit),this.decrypter.isSync())))return}}},SampleAesDecrypter}(),BaseVideoParser=function(){function BaseVideoParser(){this.VideoSample=null}var _proto=BaseVideoParser.prototype;return _proto.createVideoSample=function(key,pts,dts){return{key:key,frame:!1,pts:pts,dts:dts,units:[],length:0}},_proto.getLastNalUnit=function(samples){var lastUnit,VideoSample=this.VideoSample;return lastUnit=null!=(VideoSample=VideoSample&&0!==VideoSample.units.length?VideoSample:samples[samples.length-1])&&VideoSample.units?(samples=VideoSample.units)[samples.length-1]:lastUnit},_proto.pushAccessUnit=function(VideoSample,videoTrack){if(VideoSample.units.length&&VideoSample.frame){if(void 0===VideoSample.pts){var samples=videoTrack.samples,nbSamples=samples.length;if(!nbSamples)return void videoTrack.dropped++;samples=samples[nbSamples-1];VideoSample.pts=samples.pts,VideoSample.dts=samples.dts}videoTrack.samples.push(VideoSample)}},_proto.parseNALu=function(track,array,endOfSegment){var _unit,len=array.byteLength,lastState=state=track.naluState||0,units=[],i=0,lastUnitStart=-1,lastUnitType=0;for(-1===state&&(lastUnitType=this.getNALuType(array,lastUnitStart=0),state=0,i=1);icount||(count=(count-=this.bitsAvailable)-((skipBytes=count>>3)<<3),this.bytesAvailable-=skipBytes,this.loadWord()),this.word<<=count,this.bitsAvailable-=count},_proto.readBits=function(size){var bits=Math.min(this.bitsAvailable,size),valu=this.word>>>32-bits;if(32>>leadingZeroCount))return this.word<<=leadingZeroCount,this.bitsAvailable-=leadingZeroCount,leadingZeroCount;return this.loadWord(),leadingZeroCount+this.skipLZ()},_proto.skipUEG=function(){this.skipBits(1+this.skipLZ())},_proto.skipEG=function(){this.skipBits(1+this.skipLZ())},_proto.readUEG=function(){var clz=this.skipLZ();return this.readBits(clz+1)-1},_proto.readEG=function(){var valu=this.readUEG();return 1&valu?1+valu>>>1:-1*(valu>>>1)},_proto.readBoolean=function(){return 1===this.readBits(1)},_proto.readUByte=function(){return this.readBits(8)},_proto.readUShort=function(){return this.readBits(16)},_proto.readUInt=function(){return this.readBits(32)},ExpGolomb}(),AvcVideoParser=function(_BaseVideoParser){function AvcVideoParser(){return _BaseVideoParser.apply(this,arguments)||this}_inheritsLoose(AvcVideoParser,_BaseVideoParser);var _proto=AvcVideoParser.prototype;return _proto.parsePES=function(track,textTrack,pes,endOfSegment){var push,_this=this,units=this.parseNALu(track,pes.data,endOfSegment),VideoSample=this.VideoSample,spsfound=!1;pes.data=null,VideoSample&&units.length&&!track.audFound&&(this.pushAccessUnit(VideoSample,track),VideoSample=this.VideoSample=this.createVideoSample(!1,pes.pts,pes.dts)),units.forEach(function(unit){switch(unit.type){case 1:var iskey=!1,data=(push=!0,unit.data);spsfound&&4>>1},_proto.ebsp2rbsp=function(arr){for(var dst=new Uint8Array(arr.byteLength),dstIdx=0,i=0;i>_i8&1)<<31-_i8)>>>0;pic_right_offset=profile_compatibility_rev.toString(16);return{codecString:"hvc1."+pic_width_in_luma_samples+general_profile_idc+"."+(pic_right_offset=1===general_profile_idc&&"2"===pic_right_offset?"6":pic_right_offset)+"."+(general_tier_flag?"H":"L")+general_level_idc+".B0",params:{general_tier_flag:general_tier_flag,general_profile_idc:general_profile_idc,general_profile_space:sps,general_profile_compatibility_flags:[general_profile_compatibility_flags_1,general_profile_compatibility_flags_2,general_profile_compatibility_flags_3,general_profile_compatibility_flags_4],general_constraint_indicator_flags:[general_constraint_indicator_flags_1,general_constraint_indicator_flags_2,general_constraint_indicator_flags_3,general_constraint_indicator_flags_4,general_constraint_indicator_flags_5,general_constraint_indicator_flags_6],general_level_idc:general_level_idc,bit_depth:bit_depth_luma_minus8+8,bit_depth_luma_minus8:bit_depth_luma_minus8,bit_depth_chroma_minus8:bit_depth_chroma_minus8,min_spatial_segmentation_idc:scaling_list_enabled_flag,chroma_format_idc:chroma_format_idc,frame_rate:{fixed:fps_fixed,fps:fps_num/fps_den}},width:aspect_ratio_idc,height:height,pixelRatio:[sar_width,sar_height]}},_proto.readPPS=function(pps){pps=new ExpGolomb(this.ebsp2rbsp(pps));pps.readUByte(),pps.readUByte(),pps.skipUEG(),pps.skipUEG(),pps.skipBits(2),pps.skipBits(3),pps.skipBits(2),pps.skipUEG(),pps.skipUEG(),pps.skipEG(),pps.skipBits(2);pps.readBoolean()&&pps.skipUEG(),pps.skipEG(),pps.skipEG(),pps.skipBits(4);var tiles_enabled_flag=pps.readBoolean(),pps=pps.readBoolean(),parallelismType=1;return pps&&tiles_enabled_flag?parallelismType=0:pps?parallelismType=3:tiles_enabled_flag&&(parallelismType=2),{parallelismType:parallelismType}},_proto.matchSPS=function(sps1,sps2){return String.fromCharCode.apply(null,sps1).substr(3)===String.fromCharCode.apply(null,sps2).substr(3)},HevcVideoParser}(BaseVideoParser),BaseVideoParser=function(){function TSDemuxer(observer,config,typeSupported,logger){this.logger=void 0,this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._pmtId=-1,this._videoTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.remainderData=null,this.videoParser=void 0,this.observer=observer,this.config=config,this.typeSupported=typeSupported,this.logger=logger,this.videoParser=null}TSDemuxer.probe=function(data,logger){data=TSDemuxer.syncOffset(data);return 0>4){if((offset=start+5+data[start+4])===start+188)continue}else offset=start+4;switch(pid){case videoPid:if(stt){if(videoData&&(pes=parsePES(videoData,this.logger))){if(null===this.videoParser)switch(videoTrack.segmentCodec){case"avc":this.videoParser=new AvcVideoParser;break;case"hevc":this.videoParser=new HevcVideoParser}null!==this.videoParser&&this.videoParser.parsePES(videoTrack,textTrack,pes,!1)}videoData={data:[],size:0}}videoData&&(videoData.data.push(data.subarray(offset,start+188)),videoData.size+=start+188-offset);break;case audioPid:if(stt){if(audioData&&(pes=parsePES(audioData,this.logger)))switch(audioTrack.segmentCodec){case"aac":this.parseAACPES(audioTrack,pes);break;case"mp3":this.parseMPEGPES(audioTrack,pes);break;case"ac3":this.parseAC3PES(audioTrack,pes)}audioData={data:[],size:0}}audioData&&(audioData.data.push(data.subarray(offset,start+188)),audioData.size+=start+188-offset);break;case id3Pid:stt&&(id3Data&&(pes=parsePES(id3Data,this.logger))&&this.parseID3PES(id3Track,pes),id3Data={data:[],size:0}),id3Data&&(id3Data.data.push(data.subarray(offset,start+188)),id3Data.size+=start+188-offset);break;case 0:stt&&(offset+=data[offset]+1),pmtId=this._pmtId=function(data,offset){return(31&data[offset+10])<<8|data[offset+11]}(data,offset);break;case pmtId:stt&&(offset+=data[offset]+1);var parsedPIDs=function(data,offset,typeSupported,isSampleAes,observer,logger){var result={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},sectionLength=(15&data[offset+1])<<8|data[offset+2],tableEnd=offset+3+sectionLength-4,sectionLength=(15&data[offset+10])<<8|data[offset+11];offset+=12+sectionLength;for(;offsetstream.size-6)return null;var pesFlags=frag[7],payloadStartOffset=(192&pesFlags&&(pesPts=536870912*(14&frag[9])+4194304*(255&frag[10])+16384*(254&frag[11])+128*(255&frag[12])+(254&frag[13])/2,64&pesFlags?54e5>24&255,result[1]=size>>16&255,result[2]=size>>8&255,result[3]=255&size,result.set(type,4),i=0,size=8;i>24&255,timescale>>16&255,timescale>>8&255,255×cale,upperWordDuration>>24,upperWordDuration>>16&255,upperWordDuration>>8&255,255&upperWordDuration,duration>>24,duration>>16&255,duration>>8&255,255&duration,85,196,0,0]))},MP4.mdia=function(track){return MP4.box(MP4.types.mdia,MP4.mdhd(track.timescale,track.duration),MP4.hdlr(track.type),MP4.minf(track))},MP4.mfhd=function(sequenceNumber){return MP4.box(MP4.types.mfhd,new Uint8Array([0,0,0,0,sequenceNumber>>24,sequenceNumber>>16&255,sequenceNumber>>8&255,255&sequenceNumber]))},MP4.minf=function(track){return"audio"===track.type?MP4.box(MP4.types.minf,MP4.box(MP4.types.smhd,MP4.SMHD),MP4.DINF,MP4.stbl(track)):MP4.box(MP4.types.minf,MP4.box(MP4.types.vmhd,MP4.VMHD),MP4.DINF,MP4.stbl(track))},MP4.moof=function(sn,baseMediaDecodeTime,track){return MP4.box(MP4.types.moof,MP4.mfhd(sn),MP4.traf(track,baseMediaDecodeTime))},MP4.moov=function(tracks){for(var i=tracks.length,boxes=[];i--;)boxes[i]=MP4.trak(tracks[i]);return MP4.box.apply(null,[MP4.types.moov,MP4.mvhd(tracks[0].timescale,tracks[0].duration)].concat(boxes).concat(MP4.mvex(tracks)))},MP4.mvex=function(tracks){for(var i=tracks.length,boxes=[];i--;)boxes[i]=MP4.trex(tracks[i]);return MP4.box.apply(null,[MP4.types.mvex].concat(boxes))},MP4.mvhd=function(timescale,duration){duration*=timescale;var upperWordDuration=Math.floor(duration/(1+UINT32_MAX)),duration=Math.floor(duration%(1+UINT32_MAX)),timescale=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,timescale>>24&255,timescale>>16&255,timescale>>8&255,255×cale,upperWordDuration>>24,upperWordDuration>>16&255,upperWordDuration>>8&255,255&upperWordDuration,duration>>24,duration>>16&255,duration>>8&255,255&duration,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return MP4.box(MP4.types.mvhd,timescale)},MP4.sdtp=function(track){for(var flags,samples=track.samples||[],bytes=new Uint8Array(4+samples.length),i=0;i>>8&255),sps.push(255&len),sps=sps.concat(Array.prototype.slice.call(data));for(i=0;i>>8&255),pps.push(255&len),pps=pps.concat(Array.prototype.slice.call(data));var avcc=MP4.box(MP4.types.avcC,new Uint8Array([1,sps[3],sps[4],sps[5],255,224|track.sps.length].concat(sps).concat([track.pps.length]).concat(pps))),width=track.width,height=track.height,hSpacing=track.pixelRatio[0],vSpacing=track.pixelRatio[1];return MP4.box(MP4.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,width>>8&255,255&width,height>>8&255,255&height,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),avcc,MP4.box(MP4.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),MP4.box(MP4.types.pasp,new Uint8Array([hSpacing>>24,hSpacing>>16&255,hSpacing>>8&255,255&hSpacing,vSpacing>>24,vSpacing>>16&255,vSpacing>>8&255,255&vSpacing])))},MP4.esds=function(track){track=track.config;return new Uint8Array([0,0,0,0,3,25,0,1,0,4,17,64,21,0,0,0,0,0,0,0,0,0,0,0,5,2].concat(track,[6,1,2]))},MP4.audioStsd=function(track){var samplerate=track.samplerate;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,track.channelCount,0,16,0,0,0,0,samplerate>>8&255,255&samplerate,0,0])},MP4.mp4a=function(track){return MP4.box(MP4.types.mp4a,MP4.audioStsd(track),MP4.box(MP4.types.esds,MP4.esds(track)))},MP4.mp3=function(track){return MP4.box(MP4.types[".mp3"],MP4.audioStsd(track))},MP4.ac3=function(track){return MP4.box(MP4.types["ac-3"],MP4.audioStsd(track),MP4.box(MP4.types.dac3,track.config))},MP4.stsd=function(track){return"audio"===track.type?"mp3"===track.segmentCodec&&"mp3"===track.codec?MP4.box(MP4.types.stsd,MP4.STSD,MP4.mp3(track)):"ac3"===track.segmentCodec?MP4.box(MP4.types.stsd,MP4.STSD,MP4.ac3(track)):MP4.box(MP4.types.stsd,MP4.STSD,MP4.mp4a(track)):"avc"===track.segmentCodec?MP4.box(MP4.types.stsd,MP4.STSD,MP4.avc1(track)):MP4.box(MP4.types.stsd,MP4.STSD,MP4.hvc1(track))},MP4.tkhd=function(track){var id=track.id,duration=track.duration*track.timescale,width=track.width,track=track.height,upperWordDuration=Math.floor(duration/(1+UINT32_MAX)),duration=Math.floor(duration%(1+UINT32_MAX));return MP4.box(MP4.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,id>>24&255,id>>16&255,id>>8&255,255&id,0,0,0,0,upperWordDuration>>24,upperWordDuration>>16&255,upperWordDuration>>8&255,255&upperWordDuration,duration>>24,duration>>16&255,duration>>8&255,255&duration,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,width>>8&255,255&width,0,0,track>>8&255,255&track,0,0]))},MP4.traf=function(track,baseMediaDecodeTime){var sampleDependencyTable=MP4.sdtp(track),id=track.id,upperWordBaseMediaDecodeTime=Math.floor(baseMediaDecodeTime/(1+UINT32_MAX)),baseMediaDecodeTime=Math.floor(baseMediaDecodeTime%(1+UINT32_MAX));return MP4.box(MP4.types.traf,MP4.box(MP4.types.tfhd,new Uint8Array([0,0,0,0,id>>24,id>>16&255,id>>8&255,255&id])),MP4.box(MP4.types.tfdt,new Uint8Array([1,0,0,0,upperWordBaseMediaDecodeTime>>24,upperWordBaseMediaDecodeTime>>16&255,upperWordBaseMediaDecodeTime>>8&255,255&upperWordBaseMediaDecodeTime,baseMediaDecodeTime>>24,baseMediaDecodeTime>>16&255,baseMediaDecodeTime>>8&255,255&baseMediaDecodeTime])),MP4.trun(track,sampleDependencyTable.length+16+20+8+16+8+8),sampleDependencyTable)},MP4.trak=function(track){return track.duration=track.duration||4294967295,MP4.box(MP4.types.trak,MP4.tkhd(track),MP4.mdia(track))},MP4.trex=function(track){track=track.id;return MP4.box(MP4.types.trex,new Uint8Array([0,0,0,0,track>>24,track>>16&255,track>>8&255,255&track,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},MP4.trun=function(track,offset){var i,duration,size,flags,sample,samples=track.samples||[],len=samples.length,arraylen=12+16*len,array=new Uint8Array(arraylen);for(array.set(["video"===track.type?1:0,0,15,1,len>>>24&255,len>>>16&255,len>>>8&255,255&len,(offset+=8+arraylen)>>>24&255,offset>>>16&255,offset>>>8&255,255&offset],0),i=0;i>>24&255,duration>>>16&255,duration>>>8&255,255&duration,size>>>24&255,size>>>16&255,size>>>8&255,255&size,flags.isLeading<<2|flags.dependsOn,flags.isDependedOn<<6|flags.hasRedundancy<<4|flags.paddingValue<<1|flags.isNonSync,61440&flags.degradPrio,15&flags.degradPrio,sample>>>24&255,sample>>>16&255,sample>>>8&255,255&sample],12+16*i);return MP4.box(MP4.types.trun,array)},MP4.initSegment=function(tracks){MP4.types||MP4.init();tracks=MP4.moov(tracks);return appendUint8Array(MP4.FTYP,tracks)},MP4.hvc1=function(track){for(var ps=track.params,units=[track.vps,track.sps,track.pps],ps=new Uint8Array([1,ps.general_profile_space<<6|(ps.general_tier_flag?32:0)|ps.general_profile_idc,ps.general_profile_compatibility_flags[0],ps.general_profile_compatibility_flags[1],ps.general_profile_compatibility_flags[2],ps.general_profile_compatibility_flags[3],ps.general_constraint_indicator_flags[0],ps.general_constraint_indicator_flags[1],ps.general_constraint_indicator_flags[2],ps.general_constraint_indicator_flags[3],ps.general_constraint_indicator_flags[4],ps.general_constraint_indicator_flags[5],ps.general_level_idc,240|ps.min_spatial_segmentation_idc>>8,255&ps.min_spatial_segmentation_idc,252|ps.parallelismType,252|ps.chroma_format_idc,248|ps.bit_depth_luma_minus8,248|ps.bit_depth_chroma_minus8,0,parseInt(ps.frame_rate.fps),3|ps.temporal_id_nested<<2|ps.num_temporal_layers<<3|(ps.frame_rate.fixed?64:0),units.length]),length=ps.length,i=0;i>8,255&units[_i][_j].length]),length),length+=2,hvcC.set(units[_i][_j],length),length+=units[_i][_j].length}var ps=MP4.box(MP4.types.hvcC,hvcC),width=track.width,height=track.height,hSpacing=track.pixelRatio[0],track=track.pixelRatio[1];return MP4.box(MP4.types.hvc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,width>>8&255,255&width,height>>8&255,255&height,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),ps,MP4.box(MP4.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),MP4.box(MP4.types.pasp,new Uint8Array([hSpacing>>24,hSpacing>>16&255,hSpacing>>8&255,255&hSpacing,track>>24,track>>16&255,track>>8&255,255&track])))},MP4}(),MPEG_TS_CLOCK_FREQ_HZ=(MP4.types=void 0,MP4.HDLR_TYPES=void 0,MP4.STTS=void 0,MP4.STSC=void 0,MP4.STCO=void 0,MP4.STSZ=void 0,MP4.VMHD=void 0,MP4.SMHD=void 0,MP4.STSD=void 0,MP4.FTYP=void 0,MP4.DINF=void 0,9e4);function toTimescaleFromBase(baseTime,destScale,srcBase,round){baseTime=baseTime*destScale*(srcBase=void 0===srcBase?1:srcBase);return(round=void 0===round?!1:round)?Math.round(baseTime):baseTime}function toMsFromMpegTsClock(baseTime,round){return toTimescaleFromBase(baseTime,1e3,1/MPEG_TS_CLOCK_FREQ_HZ,round)}var chromeVersion=null,safariWebkitVersion=null,MP4Remuxer=function(){function MP4Remuxer(observer,config,typeSupported,logger){this.logger=void 0,this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextAvcDts=null,this.nextAudioPts=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.videoTrackConfig=void 0,this.observer=observer,this.config=config,this.typeSupported=typeSupported,this.logger=logger,this.ISGenerated=!1,null===chromeVersion&&(observer=(navigator.userAgent||"").match(/Chrome\/(\d+)/i),chromeVersion=observer?parseInt(observer[1]):0),null===safariWebkitVersion&&(config=navigator.userAgent.match(/Safari\/(\d+)/i),safariWebkitVersion=config?parseInt(config[1]):0)}var _proto=MP4Remuxer.prototype;return _proto.destroy=function(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null},_proto.resetTimeStamp=function(defaultTimeStamp){this.logger.log("[mp4-remuxer]: initPTS & initDTS reset"),this._initPTS=this._initDTS=defaultTimeStamp},_proto.resetNextTimestamp=function(){this.logger.log("[mp4-remuxer]: reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1},_proto.resetInitSegment=function(){this.logger.log("[mp4-remuxer]: ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0},_proto.getVideoStartPts=function(videoSamples){var rolloverDetected=!1,firstPts=videoSamples[0].pts,videoSamples=videoSamples.reduce(function(minPTS,sample){var sample=sample.pts,delta=sample-minPTS;return delta<-4294967296&&(rolloverDetected=!0,delta=(sample=normalizePts(sample,firstPts))-minPTS),0=inputSamples[0].pts||chromeVersion)){var pts=nextAvcDts,firstPTS=inputSamples[0].pts-delta;if(initPTS)inputSamples[0].dts=pts,inputSamples[0].pts=firstPTS;else for(var isPTSOrderRetained=!0,_i=0;_ifirstPTS&&isPTSOrderRetained);_i++){var nextSamplePTS,prevPTS=inputSamples[_i].pts;inputSamples[_i].dts-=delta,inputSamples[_i].pts-=delta,_isinf>>tenc' box: "+Hex.hexDump(tencKeyId)+" -> "+Hex.hexDump(keyId)),sinf.set(keyId,8))})})}),initSegment}(initSegment,decryptdata)),this.emitInitSegment=!0},_proto.generateInitSegment=function(initSegment){var initData,tracks,audioCodec=this.audioCodec,videoCodec=this.videoCodec;null!=initSegment&&initSegment.byteLength?((initData=this.initData=parseInitSegment(initSegment)).audio&&(audioCodec=getParsedTrackCodec(initData.audio,ElementaryStreamTypes_AUDIO)),initData.video&&(videoCodec=getParsedTrackCodec(initData.video,ElementaryStreamTypes_VIDEO)),tracks={},initData.audio&&initData.video?tracks.audiovideo={container:"video/mp4",codec:audioCodec+","+videoCodec,initSegment:initSegment,id:"main"}:initData.audio?tracks.audio={container:"audio/mp4",codec:audioCodec,initSegment:initSegment,id:"audio"}:initData.video?tracks.video={container:"video/mp4",codec:videoCodec,initSegment:initSegment,id:"main"}:this.logger.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."),this.initTracks=tracks):(this.initTracks=void 0,this.initData=void 0)},_proto.remux=function(audioTrack,videoTrack,id3Track,textTrack,timeOffset,accurateTimeOffset){var initSegment,duration,startDTS,initData,initPTS=this.initPTS,lastEndTime=this.lastEndTime,result={audio:void 0,video:void 0,text:textTrack,id3:id3Track,initSegment:void 0},videoTrack=(isFiniteNumber(lastEndTime)||(lastEndTime=this.lastEndTime=timeOffset||0),videoTrack.samples);return null!=videoTrack&&videoTrack.length&&(initSegment={initPTS:void 0,timescale:1},null!=(initData=this.initData)&&initData.length||(this.generateInitSegment(videoTrack),initData=this.initData),null!=initData&&initData.length?(this.emitInitSegment&&(initSegment.tracks=this.initTracks,this.emitInitSegment=!1),duration=getDuration(videoTrack,initData),(function(initPTS,startDTS,timeOffset,duration){if(null===initPTS)return 1;duration=Math.max(duration,1),startDTS-=initPTS.baseTime/initPTS.timescale;return Math.abs(startDTS-timeOffset)>duration}(initPTS,startDTS=null===(startDTS=function(initData,fmp4){return findBox(fmp4,["moof","traf"]).reduce(function(result,traf){var tfdt=findBox(traf,["tfdt"])[0],version=tfdt[0],traf=findBox(traf,["tfhd"]).reduce(function(result,tfhd){tfhd=readUint32(tfhd,4),tfhd=initData[tfhd];if(tfhd){var baseTime=readUint32(tfdt,4);if(1===version){if(baseTime===UINT32_MAX$1)return logger.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"),result;baseTime=baseTime*(1+UINT32_MAX$1)+readUint32(tfdt,8)}baseTime=baseTime/(tfhd.timescale||9e4);if(isFiniteNumber(baseTime)&&(null===result||baseTime=cc?(start=fragment.start,end=fragment.end,fragments=details.fragments,fragment.relurl||(fragment=details.fragmentHint)&&(fragments=fragments.concat(fragment)),BinarySearch.search(fragments,function(candidate){return candidate.cccc||candidate.start>=end?-1:0})):null}(trackDetails,cc,mainFrag)||trackDetails&&findFragWithCC(trackDetails.fragments,cc)||mainFrag},_proto.startLoad=function(startPosition){var lastCurrentTime;this.levels?(lastCurrentTime=this.lastCurrentTime,this.stopLoad(),this.setInterval(100),0start||trackId.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),media.currentTime=start+.05),!(hls<=bufferLen&&!switchingTrack&&targetBufferTimestart.end&&(bufferLen=this.fragmentTracker.getFragAtPos(targetBufferTime,PlaylistLevelType_MAIN))&&bufferLen.end>media.end&&(this.mainFragLoading={frag:start=bufferLen,targetBufferTime:null}),bufferedTrack.start>start.end)return}this.loadFragment(bufferedTrack,config,targetBufferTime)}else this.bufferFlushed=!0}}}}}},_proto.onMediaDetaching=function(event,data){this.bufferFlushed=this.flushing=!1,_BaseStreamController.prototype.onMediaDetaching.call(this,event,data)},_proto.onAudioTracksUpdated=function(event,_ref2){_ref2=_ref2.audioTracks;this.resetTransmuxer(),this.levels=_ref2.map(function(mediaPlaylist){return new Level(mediaPlaylist)})},_proto.onAudioTrackSwitching=function(event,data){var altAudio=!!data.url,fragCurrent=(this.trackId=data.id,this.fragCurrent);fragCurrent&&(fragCurrent.abortRequests(),this.removeUnbufferedFrags(fragCurrent.start)),this.resetLoadingState(),altAudio?(this.switchingTrack=data,this.flushAudioIfNeeded(data),this.state!==State_STOPPED&&(this.setInterval(100),this.state=State_IDLE,this.tick())):(this.resetTransmuxer(),this.switchingTrack=null,this.bufferedTrack=data,this.clearInterval())},_proto.onManifestLoading=function(){_BaseStreamController.prototype.onManifestLoading.call(this),this.bufferFlushed=this.flushing=this.audioOnly=!1,this.resetItem(),this.trackId=-1},_proto.onLevelLoaded=function(event,data){this.mainDetails=data.details;data=this.cachedTrackLoadedData;data&&(this.cachedTrackLoadedData=null,this.hls.trigger(Events.AUDIO_TRACK_LOADED,data))},_proto.onAudioTrackLoaded=function(event,data){var levels=this.levels,newDetails=data.details,trackId=data.id,mainDetails=this.mainDetails;if(!mainDetails||mainDetails.expired||newDetails.endCC>mainDetails.endCC)this.cachedTrackLoadedData=data,this.state!==State_STOPPED&&(this.state=State_WAITING_TRACK);else if(levels){this.log("Audio track "+trackId+" loaded ["+newDetails.startSN+","+newDetails.endSN+"]"+(newDetails.lastPartSn?"[part-"+newDetails.lastPartSn+"-"+newDetails.lastPartIndex+"]":"")+",duration:"+newDetails.totalduration);var _track$details,levels=levels[trackId],sliding=0;if(newDetails.live||null!=(_track$details=levels.details)&&_track$details.live){if(this.checkLiveUpdate(newDetails),newDetails.deltaUpdateFailed)return;levels.details&&(sliding=this.alignPlaylists(newDetails,levels.details,null==(_track$details=this.levelLastLoaded)?void 0:_track$details.details)),newDetails.alignedSliding||(alignDiscontinuities(newDetails,mainDetails),newDetails.alignedSliding||alignMediaPlaylistByPDT(newDetails,mainDetails),sliding=newDetails.fragmentStart)}levels.details=newDetails,this.levelLastLoaded=levels,this.startFragRequested||this.setStartPosition(mainDetails,sliding),this.hls.trigger(Events.AUDIO_TRACK_UPDATED,{details:newDetails,id:trackId,groupId:data.groupId}),this.state!==State_WAITING_TRACK||this.waitForCdnTuneIn(newDetails)||(this.state=State_IDLE),this.tick()}else this.warn("Audio tracks were reset while loading level "+trackId)},_proto._handleFragmentLoadProgress=function(data){var details,initPTS,_frag$initSegment,partIndex,frag=data.frag,part=data.part,data=data.payload,config=this.config,trackId=this.trackId,levels=this.levels;levels?(levels=levels[trackId])?(details=levels.details)?(config=config.defaultAudioCodec||levels.audioCodec||"mp4a.40.2",levels=(levels=this.transmuxer)||(this.transmuxer=new TransmuxerInterface(this.hls,PlaylistLevelType_AUDIO,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this))),initPTS=this.initPTS[frag.cc],_frag$initSegment=null==(_frag$initSegment=frag.initSegment)?void 0:_frag$initSegment.data,void 0!==initPTS?(partIndex=part?part.index:-1,partIndex=new ChunkMetadata(frag.level,frag.sn,frag.stats.chunkCount,data.byteLength,partIndex,-1!==partIndex),levels.push(data,_frag$initSegment,config,"",frag,part,details.totalduration,!1,partIndex,initPTS)):(this.log("Unknown video PTS for cc "+frag.cc+", waiting for video PTS before demuxing audio frag "+frag.sn+" of ["+details.startSN+" ,"+details.endSN+"],track "+trackId),(this.waitingData=this.waitingData||{frag:frag,part:part,cache:new ChunkCache,complete:!1}).cache.push(new Uint8Array(data)),this.state!==State_STOPPED&&(this.state=State_WAITING_INIT_PTS))):(this.warn("Audio track details undefined on fragment load progress"),this.removeUnbufferedFrags(frag.start)):this.warn("Audio track is undefined on fragment load progress"):this.warn("Audio tracks were reset while fragment load was in progress. Fragment "+frag.sn+" of level "+frag.level+" will not be buffered")},_proto._handleFragmentLoadComplete=function(fragLoadedData){this.waitingData?this.waitingData.complete=!0:_BaseStreamController.prototype._handleFragmentLoadComplete.call(this,fragLoadedData)},_proto.onBufferReset=function(){this.mediaBuffer=null},_proto.onBufferCreated=function(event,data){this.bufferFlushed=this.flushing=!1;data=data.tracks.audio;data&&(this.mediaBuffer=data.buffer||null)},_proto.onFragLoading=function(event,data){!this.audioOnly&&data.frag.type===PlaylistLevelType_MAIN&&isMediaFragment(data.frag)&&(this.mainFragLoading=data,this.state===State_IDLE)&&this.tick()},_proto.onFragBuffered=function(event,data){var track,frag=data.frag,data=data.part;frag.type!==PlaylistLevelType_AUDIO?this.audioOnly||frag.type!==PlaylistLevelType_MAIN||frag.elementaryStreams.video||frag.elementaryStreams.audiovideo||(this.audioOnly=!0,this.mainFragLoading=null):this.fragContextChanged(frag)?this.warn("Fragment "+frag.sn+(data?" p: "+data.index:"")+" of level "+frag.level+" finished buffering, but was aborted. state: "+this.state+", audioSwitch: "+(this.switchingTrack?this.switchingTrack.name:"false")):(isMediaFragment(frag)&&(this.fragPrevious=frag,track=this.switchingTrack)&&(this.bufferedTrack=track,this.switchingTrack=null,this.hls.trigger(Events.AUDIO_TRACK_SWITCHED,_objectSpread2({},track))),this.fragBufferedComplete(frag,data),this.media&&this.tick())},_proto.onError=function(event,data){var _data$context;if(data.fatal)this.state=State_ERROR;else switch(data.details){case ErrorDetails.FRAG_GAP:case ErrorDetails.FRAG_PARSING_ERROR:case ErrorDetails.FRAG_DECRYPT_ERROR:case ErrorDetails.FRAG_LOAD_ERROR:case ErrorDetails.FRAG_LOAD_TIMEOUT:case ErrorDetails.KEY_LOAD_ERROR:case ErrorDetails.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(PlaylistLevelType_AUDIO,data);break;case ErrorDetails.AUDIO_TRACK_LOAD_ERROR:case ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:case ErrorDetails.LEVEL_PARSING_ERROR:data.levelRetry||this.state!==State_WAITING_TRACK||(null==(_data$context=data.context)?void 0:_data$context.type)!==PlaylistContextType_AUDIO_TRACK||(this.state=State_IDLE);break;case ErrorDetails.BUFFER_APPEND_ERROR:case ErrorDetails.BUFFER_FULL_ERROR:data.parent&&"audio"===data.parent&&(data.details===ErrorDetails.BUFFER_APPEND_ERROR?this.resetLoadingState():this.reduceLengthAndFlushBuffer(data)&&(this.bufferedTrack=null,_BaseStreamController.prototype.flushMainBuffer.call(this,0,Number.POSITIVE_INFINITY,"audio")));break;case ErrorDetails.INTERNAL_EXCEPTION:this.recoverWorkerError(data)}},_proto.onBufferFlushing=function(event,_ref3){_ref3.type!==ElementaryStreamTypes_VIDEO&&(this.flushing=!0)},_proto.onBufferFlushed=function(event,_ref4){var mediaBuffer,_ref4=_ref4.type;_ref4!==ElementaryStreamTypes_VIDEO&&(this.flushing=!1,this.bufferFlushed=!0,this.state===State_ENDED&&(this.state=State_IDLE),mediaBuffer=this.mediaBuffer||this.media)&&(this.afterBufferFlushed(mediaBuffer,_ref4,PlaylistLevelType_AUDIO),this.tick())},_proto._handleTransmuxComplete=function(transmuxResult){var frag,part,details,audio,text,id3,endDTS,mapFragment,id="audio",hls=this.hls,remuxResult=transmuxResult.remuxResult,transmuxResult=transmuxResult.chunkMeta,context=this.getCurrentContext(transmuxResult);context?(frag=context.frag,part=context.part,details=(context=context.level).details,audio=remuxResult.audio,text=remuxResult.text,id3=remuxResult.id3,remuxResult=remuxResult.initSegment,this.fragContextChanged(frag)||!details?this.fragmentTracker.removeFragment(frag):(this.state=State_PARSING,this.switchingTrack&&audio&&this.completeAudioSwitch(this.switchingTrack),null!=remuxResult&&remuxResult.tracks&&(mapFragment=frag.initSegment||frag,this._bufferInitSegment(context,remuxResult.tracks,mapFragment,transmuxResult),hls.trigger(Events.FRAG_PARSING_INIT_SEGMENT,{frag:mapFragment,id:id,tracks:remuxResult.tracks})),audio&&(context=audio.startPTS,mapFragment=audio.endPTS,remuxResult=audio.startDTS,endDTS=audio.endDTS,part&&(part.elementaryStreams[ElementaryStreamTypes_AUDIO]={startPTS:context,endPTS:mapFragment,startDTS:remuxResult,endDTS:endDTS}),frag.setElementaryStreamInfo(ElementaryStreamTypes_AUDIO,context,mapFragment,remuxResult,endDTS),this.bufferFragmentData(audio,frag,part,transmuxResult)),null!=id3&&null!=(context=id3.samples)&&context.length&&(mapFragment=_extends({id:id,frag:frag,details:details},id3),hls.trigger(Events.FRAG_PARSING_METADATA,mapFragment)),text&&(remuxResult=_extends({id:id,frag:frag,details:details},text),hls.trigger(Events.FRAG_PARSING_USERDATA,remuxResult)))):this.resetWhenMissingContext(transmuxResult)},_proto._bufferInitSegment=function(currentLevel,tracks,frag,chunkMeta){var track;this.state===State_PARSING&&(tracks.video&&delete tracks.video,tracks.audiovideo&&delete tracks.audiovideo,tracks.audio)&&((track=tracks.audio).id="audio",currentLevel=currentLevel.audioCodec,this.log("Init audio buffer, container:"+track.container+", codecs[level/parsed]=["+currentLevel+"/"+track.codec+"]"),currentLevel&&1===currentLevel.split(",").length&&(track.levelCodec=currentLevel),this.hls.trigger(Events.BUFFER_CODECS,tracks),null!=(currentLevel=track.initSegment)&¤tLevel.byteLength&&(tracks={type:"audio",frag:frag,part:null,chunkMeta:chunkMeta,parent:frag.type,data:currentLevel},this.hls.trigger(Events.BUFFER_APPENDING,tracks)),this.tickImmediate())},_proto.loadFragment=function(frag,track,targetBufferTime){var fragState=this.fragmentTracker.getState(frag);this.switchingTrack||fragState===FragmentState_NOT_LOADED||fragState===FragmentState_PARTIAL?isMediaFragment(frag)?null!=(fragState=track.details)&&fragState.live&&!this.initPTS[frag.cc]?(this.log("Waiting for video PTS in continuity counter "+frag.cc+" of live stream before loading audio fragment "+frag.sn+" of level "+this.trackId),this.state=State_WAITING_INIT_PTS,(fragState=this.mainDetails)&&fragState.fragmentStart!==track.details.fragmentStart&&alignMediaPlaylistByPDT(track.details,fragState)):_BaseStreamController.prototype.loadFragment.call(this,frag,track,targetBufferTime):this._loadInitSegment(frag,track):this.clearTrackerIfNeeded(frag)},_proto.flushAudioIfNeeded=function(switchingTrack){var media=this.media,bufferedTrack=this.bufferedTrack,bufferedAttributes=null==bufferedTrack?void 0:bufferedTrack.attrs,switchAttributes=switchingTrack.attrs;media&&bufferedAttributes&&(bufferedAttributes.CHANNELS!==switchAttributes.CHANNELS||bufferedTrack.name!==switchingTrack.name||bufferedTrack.lang!==switchingTrack.lang)&&(this.log("Switching audio track : flushing all audio"),_BaseStreamController.prototype.flushMainBuffer.call(this,0,Number.POSITIVE_INFINITY,"audio"),this.bufferedTrack=null)},_proto.completeAudioSwitch=function(switchingTrack){var hls=this.hls;this.flushAudioIfNeeded(switchingTrack),this.bufferedTrack=switchingTrack,this.switchingTrack=null,hls.trigger(Events.AUDIO_TRACK_SWITCHED,_objectSpread2({},switchingTrack))},AudioStreamController}(_optionalSelf$navigat),PassThroughRemuxer=function(_Logger){function BasePlaylistController(hls,logPrefix){logPrefix=_Logger.call(this,logPrefix,hls.logger)||this;return logPrefix.hls=void 0,logPrefix.canLoad=!1,logPrefix.timer=-1,logPrefix.hls=hls,logPrefix}_inheritsLoose(BasePlaylistController,_Logger);var _proto=BasePlaylistController.prototype;return _proto.destroy=function(){this.clearTimer(),this.hls=this.log=this.warn=null},_proto.clearTimer=function(){-1!==this.timer&&(self.clearTimeout(this.timer),this.timer=-1)},_proto.startLoad=function(){this.canLoad=!0,this.loadPlaylist()},_proto.stopLoad=function(){this.canLoad=!1,this.clearTimer()},_proto.switchParams=function(playlistUri,previous,current){var renditionReports=null==previous?void 0:previous.renditionReports;if(renditionReports){for(var msn,_attr,currentGoal,foundIndex=-1,i=0;iprevious.partTarget&&(_attr+=1),currentGoal=current&&getSkipValue(current),new HlsUrlParameters(msn,0<=_attr?_attr:void 0,currentGoal)}},_proto.loadPlaylist=function(hlsUrlParameters){this.clearTimer()},_proto.loadingPlaylist=function(playlist,hlsUrlParameters){this.clearTimer()},_proto.shouldLoadPlaylist=function(playlist){return this.canLoad&&!!playlist&&!!playlist.url&&(!playlist.details||playlist.details.live)},_proto.getUrlWithDirectives=function(uri,hlsUrlParameters){if(hlsUrlParameters)try{return hlsUrlParameters.addDirectives(uri)}catch(error){this.warn("Could not construct new URL with HLS Delivery Directives: "+error)}return uri},_proto.playlistLoaded=function(index,data,previousDetails){var offset,details=data.details,stats=data.stats,now=self.performance.now(),elapsed=stats.loading.first?Math.max(0,now-stats.loading.first):0,timelineOffset=(details.advancedDateTime=Date.now()-elapsed,this.hls.config.timelineOffset);if(timelineOffset!==details.appliedTimelineOffset&&(offset=Math.max(timelineOffset||0,0),details.appliedTimelineOffset=offset,details.fragments.forEach(function(frag){frag.start=frag.playlistOffset+offset})),details.live||null!=previousDetails&&previousDetails.live){var timelineOffset="levelInfo"in data?data.levelInfo:data.track,bufferInfo=(details.reloaded(previousDetails),previousDetails&&03*details.targetduration?(this.log("Playlist last advanced "+lastPartSn.toFixed(2)+"s ago. Omitting segment and part directives."),part=index=void 0):null!=previousDetails&&previousDetails.tuneInGoal&&lastPartIndex-details.partTarget>previousDetails.tuneInGoal?(this.warn("CDN Tune-in goal increased from: "+previousDetails.tuneInGoal+" to: "+endSn+" with playlist age: "+details.age),endSn=0):(index+=lastPartIndex=Math.floor(endSn/details.targetduration),void 0!==part&&(part+=Math.round(endSn%details.targetduration/details.partTarget)),this.log("CDN Tune-in age: "+details.ageHeader+"s last advanced "+lastPartSn.toFixed(2)+"s goal: "+endSn+" skip sn "+lastPartIndex+" to part "+part)),details.tuneInGoal=endSn),lastPartSn=this.getDeliveryDirectives(details,data.deliveryDirectives,index,part),lowLatencyMode||!atLastPartOfSegment)return details.requestScheduled=now,void this.loadingPlaylist(timelineOffset,lastPartSn)}else(details.canBlockReload||details.canSkipUntil)&&(lastPartSn=this.getDeliveryDirectives(details,data.deliveryDirectives,index,part));lastPartSn&&void 0!==index&&details.canBlockReload&&(details.requestScheduled=stats.loading.first+Math.max(bufferInfo-2*elapsed,bufferInfo/2)),this.scheduleLoading(timelineOffset,lastPartSn,details)}}else this.clearTimer()},_proto.scheduleLoading=function(levelOrTrack,deliveryDirectives,updatedDetails){var now,_this2=this,updatedDetails=updatedDetails||levelOrTrack.details;!updatedDetails||(now=self.performance.now(),(updatedDetails=updatedDetails.requestScheduled)<=now)?this.loadingPlaylist(levelOrTrack,deliveryDirectives):(updatedDetails=updatedDetails-now,this.log("reload live playlist "+(levelOrTrack.name||levelOrTrack.bitrate+"bps")+" in "+Math.round(updatedDetails)+" ms"),this.clearTimer(),this.timer=self.setTimeout(function(){return _this2.loadingPlaylist(levelOrTrack,deliveryDirectives)},updatedDetails))},_proto.getDeliveryDirectives=function(details,previousDeliveryDirectives,msn,part){var skip=getSkipValue(details);return null!=previousDeliveryDirectives&&previousDeliveryDirectives.skip&&details.deltaUpdateFailed&&(msn=previousDeliveryDirectives.msn,part=previousDeliveryDirectives.part,skip=HlsSkip_No),new HlsUrlParameters(msn,part,skip)},_proto.checkRetry=function(errorEvent){var _this3=this,errorDetails=errorEvent.details,isTimeout=isTimeoutError(errorEvent),errorAction=errorEvent.errorAction,_ref=errorAction||{},action=_ref.action,_ref$retryCount=_ref.retryCount,_ref$retryCount=void 0===_ref$retryCount?0:_ref$retryCount,_ref=_ref.retryConfig,action=!!errorAction&&!!_ref&&(action===NetworkErrorAction_RetryRequest||!errorAction.resolved&&action===NetworkErrorAction_SendAlternateToPenaltyBox);if(action){if(_ref$retryCount>=_ref.maxNumRetry)return!1;isTimeout&&null!=(isTimeout=errorEvent.context)&&isTimeout.deliveryDirectives?(this.warn("Retrying playlist loading "+(_ref$retryCount+1)+"/"+_ref.maxNumRetry+' after "'+errorDetails+'" without delivery-directives'),this.loadPlaylist()):(isTimeout=getRetryDelay(_ref,_ref$retryCount),this.clearTimer(),this.timer=self.setTimeout(function(){return _this3.loadPlaylist()},isTimeout),this.warn("Retrying playlist loading "+(_ref$retryCount+1)+"/"+_ref.maxNumRetry+' after "'+errorDetails+'" in '+isTimeout+"ms")),errorEvent.levelRetry=!0,errorAction.resolved=!0}return action},BasePlaylistController}(Logger),BaseVideoParser=function(_BasePlaylistControll){function AudioTrackController(hls){hls=_BasePlaylistControll.call(this,hls,"audio-track-controller")||this;return hls.tracks=[],hls.groupIds=null,hls.tracksInGroup=[],hls.trackId=-1,hls.currentTrack=null,hls.selectDefaultTrack=!0,hls.registerListeners(),hls}_inheritsLoose(AudioTrackController,_BasePlaylistControll);var _proto=AudioTrackController.prototype;return _proto.registerListeners=function(){var hls=this.hls;hls.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),hls.on(Events.MANIFEST_PARSED,this.onManifestParsed,this),hls.on(Events.LEVEL_LOADING,this.onLevelLoading,this),hls.on(Events.LEVEL_SWITCHING,this.onLevelSwitching,this),hls.on(Events.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),hls.on(Events.ERROR,this.onError,this)},_proto.unregisterListeners=function(){var hls=this.hls;hls.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),hls.off(Events.MANIFEST_PARSED,this.onManifestParsed,this),hls.off(Events.LEVEL_LOADING,this.onLevelLoading,this),hls.off(Events.LEVEL_SWITCHING,this.onLevelSwitching,this),hls.off(Events.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),hls.off(Events.ERROR,this.onError,this)},_proto.destroy=function(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,_BasePlaylistControll.prototype.destroy.call(this)},_proto.onManifestLoading=function(){this.tracks=[],this.tracksInGroup=[],this.groupIds=null,this.currentTrack=null,this.trackId=-1,this.selectDefaultTrack=!0},_proto.onManifestParsed=function(event,data){this.tracks=data.audioTracks||[]},_proto.onAudioTrackLoaded=function(event,data){var curDetails,id=data.id,groupId=data.groupId,details=data.details,trackInActiveGroup=this.tracksInGroup[id];trackInActiveGroup&&trackInActiveGroup.groupId===groupId?(curDetails=trackInActiveGroup.details,trackInActiveGroup.details=data.details,this.log("Audio track "+id+' "'+trackInActiveGroup.name+'" lang:'+trackInActiveGroup.lang+" group:"+groupId+" loaded ["+details.startSN+"-"+details.endSN+"]"),id===this.trackId&&this.playlistLoaded(id,data,curDetails)):this.warn("Audio track with id:"+id+" and group:"+groupId+" not found in active group "+(null==trackInActiveGroup?void 0:trackInActiveGroup.groupId))},_proto.onLevelLoading=function(event,data){this.switchLevel(data.level)},_proto.onLevelSwitching=function(event,data){this.switchLevel(data.level)},_proto.switchLevel=function(levelIndex){levelIndex=this.hls.levels[levelIndex];if(levelIndex){var audioGroups=levelIndex.audioGroups||null,currentGroups=this.groupIds,levelIndex=this.currentTrack;if(!audioGroups||(null==currentGroups?void 0:currentGroups.length)!==(null==audioGroups?void 0:audioGroups.length)||null!=audioGroups&&audioGroups.some(function(groupId){return-1===(null==currentGroups?void 0:currentGroups.indexOf(groupId))})){this.groupIds=audioGroups,this.trackId=-1,this.currentTrack=null;var audioTracks=this.tracks.filter(function(track){return!audioGroups||-1!==audioGroups.indexOf(track.groupId)});if(audioTracks.length)this.selectDefaultTrack&&!audioTracks.some(function(track){return track.default})&&(this.selectDefaultTrack=!1),audioTracks.forEach(function(track,i){track.id=i});else if(!levelIndex&&!this.tracksInGroup.length)return;this.tracksInGroup=audioTracks;var audioPreference=this.hls.config.audioPreference,audioPreference=(!levelIndex&&audioPreference&&(levelIndex=-1<(groupIndex=findMatchingOption(audioPreference,audioTracks,audioMatchPredicate))?audioTracks[groupIndex]:(groupIndex=findMatchingOption(audioPreference,this.tracks),this.tracks[groupIndex])),this.findTrackId(levelIndex)),groupIndex=(-1===audioPreference&&levelIndex&&(audioPreference=this.findTrackId(null)),{audioTracks:audioTracks}),levelIndex=(this.log("Updating audio tracks, "+audioTracks.length+" track(s) found in group(s): "+(null==audioGroups?void 0:audioGroups.join(","))),this.hls.trigger(Events.AUDIO_TRACKS_UPDATED,groupIndex),this.trackId);-1!==audioPreference&&-1===levelIndex?this.setAudioTrack(audioPreference):audioTracks.length&&-1===levelIndex&&(audioPreference=new Error("No audio track selected for current audio group-ID(s): "+(null==(groupIndex=this.groupIds)?void 0:groupIndex.join(","))+" track count: "+audioTracks.length),this.warn(audioPreference.message),this.hls.trigger(Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:audioPreference}))}}},_proto.onError=function(event,data){data.fatal||!data.context||data.context.type!==PlaylistContextType_AUDIO_TRACK||data.context.id!==this.trackId||this.groupIds&&-1===this.groupIds.indexOf(data.context.groupId)||this.checkRetry(data)},_proto.setAudioOption=function(audioOption){var hls=this.hls;if(hls.config.audioPreference=audioOption){var allAudioTracks=this.allAudioTracks;if(this.selectDefaultTrack=!1,allAudioTracks.length){var currentTrack=this.currentTrack;if(currentTrack&&matchesOption(audioOption,currentTrack,audioMatchPredicate))return currentTrack;var groupIndex=findMatchingOption(audioOption,this.tracksInGroup,audioMatchPredicate);if(-1=tracks.length?this.warn("Invalid audio track id: "+newId):(this.selectDefaultTrack=!1,lastTrack=this.currentTrack,trackLoaded=(tracks=tracks[newId]).details&&!tracks.details.live,newId===this.trackId&&tracks===lastTrack&&trackLoaded||(this.log("Switching to audio-track "+newId+' "'+tracks.name+'" lang:'+tracks.lang+" group:"+tracks.groupId+" channels:"+tracks.channels),this.trackId=newId,this.currentTrack=tracks,this.hls.trigger(Events.AUDIO_TRACK_SWITCHING,_objectSpread2({},tracks)),trackLoaded)||(newId=this.switchParams(tracks.url,null==lastTrack?void 0:lastTrack.details,tracks.details),this.loadPlaylist(newId)))},_proto.findTrackId=function(currentTrack){for(var audioTracks=this.tracksInGroup,i=0;i":"\n"+this.list("video")+"\n"+this.list("audio")+"\n"+this.list("audiovideo")+"}"},_proto.list=function(type){var _this$queues2;return null!=(_this$queues2=this.queues)&&_this$queues2[type]||null!=(_this$queues2=this.tracks)&&_this$queues2[type]?type+": ("+this.listSbInfo(type)+") "+this.listOps(type):""},_proto.listSbInfo=function(type){var _this$tracks2=null==(_this$tracks2=this.tracks)?void 0:_this$tracks2[type],type=null==_this$tracks2?void 0:_this$tracks2.buffer;return type?"SourceBuffer"+(type.updating?" updating":"")+(_this$tracks2.ended?" ended":"")+(_this$tracks2.ending?" ending":""):"none"},_proto.listOps=function(type){var _this$queues3;return(null==(_this$queues3=this.queues)?void 0:_this$queues3[type].map(function(op){return op.label}).join(", "))||""},BufferOperationQueue}(),VIDEO_CODEC_PROFILE_REPLACE=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/,HlsJsTrackRemovedError=function(_Error){function HlsJsTrackRemovedError(message){message=_Error.call(this,message)||this;return message.name="HlsJsTrackRemovedError",message}return _inheritsLoose(HlsJsTrackRemovedError,_Error),HlsJsTrackRemovedError}(_wrapNativeSuper(Error)),AACDemuxer=function(_Logger){function BufferController(hls,fragmentTracker){var _this2=_Logger.call(this,"buffer-controller",hls.logger)||this;return _this2.hls=void 0,_this2.fragmentTracker=void 0,_this2.details=null,_this2._objectUrl=null,_this2.operationQueue=null,_this2.bufferCodecEventsTotal=0,_this2.media=null,_this2.mediaSource=null,_this2.lastMpegAudioChunk=null,_this2.blockedAudioAppend=null,_this2.lastVideoAppendEnd=0,_this2.appendSource=void 0,_this2.transferData=void 0,_this2.overrides=void 0,_this2.appendErrors={audio:0,video:0,audiovideo:0},_this2.tracks={},_this2.sourceBuffers=[[null,null],[null,null]],_this2._onEndStreaming=function(event){var _this2$mediaSource;_this2.hls&&"open"===(null==(_this2$mediaSource=_this2.mediaSource)?void 0:_this2$mediaSource.readyState)&&_this2.hls.pauseBuffering()},_this2._onStartStreaming=function(event){_this2.hls&&_this2.hls.resumeBuffering()},_this2._onMediaSourceOpen=function(e){var _this3=_this2,media=_this3.media,_this3=_this3.mediaSource;e&&_this2.log("Media source opened"),media&&_this3&&(media.removeEventListener("emptied",_this2._onMediaEmptied),_this2.updateDuration(),_this2.hls.trigger(Events.MEDIA_ATTACHED,{media:media,mediaSource:_this3}),_this3.removeEventListener("sourceopen",_this2._onMediaSourceOpen),null!==_this2.mediaSource)&&_this2.checkPendingTracks()},_this2._onMediaSourceClose=function(){_this2.log("Media source closed")},_this2._onMediaSourceEnded=function(){_this2.log("Media source ended")},_this2._onMediaEmptied=function(){var _this4=_this2,mediaSrc=_this4.mediaSrc,_this4=_this4._objectUrl;mediaSrc!==_this4&&_this2.error("Media element src was set while attaching MediaSource ("+_this4+" > "+mediaSrc+")")},_this2.hls=hls,_this2.fragmentTracker=fragmentTracker,_this2.appendSource=(fragmentTracker=getMediaSource(hls.config.preferManagedMediaSource),"undefined"!=typeof self&&fragmentTracker===self.ManagedMediaSource),_this2.initTracks(),_this2.registerListeners(),_this2}_inheritsLoose(BufferController,_Logger);var _proto=BufferController.prototype;return _proto.hasSourceTypes=function(){return 0 "+details):(this.warn('attachTransferred: resetting MediaSource for incompatible tracks ("'+Object.keys(transferredTracks)+'"->"'+Object.keys(requiredTracks)+'") start time: '+details+" currentTime: "+trackCount),this.onMediaDetaching(Events.MEDIA_DETACHING,{}),this.onMediaAttaching(Events.MEDIA_ATTACHING,data),void(media.currentTime=details));this.transferData=void 0,trackNames.forEach(function(trackName){var sb,fragmentTracker,playlistType,bufferedTimeRanges,track=transferredTracks[trackName];track&&(sb=track.buffer)&&(fragmentTracker=_this6.fragmentTracker,playlistType=track.id,(fragmentTracker.hasFragments(playlistType)||fragmentTracker.hasParts(playlistType))&&(bufferedTimeRanges=BufferHelper.getBuffered(sb),fragmentTracker.detectEvictedFragments(trackName,bufferedTimeRanges,playlistType,null,!0)),_this6.sourceBuffers["audio"===trackName?1:0]=[trackName,sb],sb.updating&&_this6.operationQueue&&_this6.operationQueue.prependBlocker(trackName),_this6.trackSourceBuffer(trackName,track))}),mediaSourceOpenCallback(),this.bufferCreated()}else this.hls.config.startFragPrefetch=!0,this.log("attachTransferred: waiting for SourceBuffer track info");else this.log("attachTransferred: MediaSource w/o SourceBuffers"),mediaSourceOpenCallback()}},_proto.onMediaDetaching=function(event,data){var _this7=this,transferringMedia=!!data.transferMedia,media=(this.transferData=this.overrides=void 0,this.media),mediaSource=this.mediaSource,_objectUrl=this._objectUrl;if(mediaSource){if(this.log("media source "+(transferringMedia?"transferring":"detaching")),transferringMedia)this.sourceBuffers.forEach(function(_ref){_ref=_ref[0];_ref&&_this7.removeBuffer(_ref)}),this.resetQueue();else{if(this.mediaSourceOpenOrEnded){var open="open"===mediaSource.readyState;try{for(var sourceBuffers=mediaSource.sourceBuffers,i=sourceBuffers.length;i--;)open&&sourceBuffers[i].abort(),mediaSource.removeSourceBuffer(sourceBuffers[i]);open&&mediaSource.endOfStream()}catch(err){this.warn("onMediaDetaching: "+err.message+" while calling endOfStream")}}this.sourceBufferCount&&this.onBufferReset()}mediaSource.removeEventListener("sourceopen",this._onMediaSourceOpen),mediaSource.removeEventListener("sourceended",this._onMediaSourceEnded),mediaSource.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(mediaSource.removeEventListener("startstreaming",this._onStartStreaming),mediaSource.removeEventListener("endstreaming",this._onEndStreaming)),this.mediaSource=null,this._objectUrl=null}media&&(media.removeEventListener("emptied",this._onMediaEmptied),transferringMedia||(_objectUrl&&self.URL.revokeObjectURL(_objectUrl),this.mediaSrc===_objectUrl?(media.removeAttribute("src"),this.appendSource&&removeSourceChildren(media),media.load()):this.warn("media|source.src was changed by a third party - skip cleanup")),this.media=null),this.hls.trigger(Events.MEDIA_DETACHED,data)},_proto.onBufferReset=function(){var _this8=this;this.sourceBuffers.forEach(function(_ref2){_ref2=_ref2[0];_ref2&&_this8.resetBuffer(_ref2)}),this.initTracks()},_proto.resetBuffer=function(type){var _this$mediaSource,_this$tracks$type=null==(_this$tracks$type=this.tracks[type])?void 0:_this$tracks$type.buffer;if(this.removeBuffer(type),_this$tracks$type)try{null!=(_this$mediaSource=this.mediaSource)&&_this$mediaSource.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(_this$tracks$type)}catch(err){this.warn("onBufferReset "+type,err)}delete this.tracks[type]},_proto.removeBuffer=function(type){this.removeBufferListeners(type),this.sourceBuffers["audio"===type?1:0]=[null,null];type=this.tracks[type];type&&(type.buffer=void 0)},_proto.resetQueue=function(){this.operationQueue&&this.operationQueue.destroy(),this.operationQueue=new BufferOperationQueue(this.tracks)},_proto.onBufferCodecs=function(event,data){var _this9=this,tracks=this.tracks,trackNames=Object.keys(data),unmuxedToMuxed=(this.log('BUFFER_CODECS: "'+trackNames+'" (current SB count '+this.sourceBufferCount+")"),"audiovideo"in data&&(tracks.audio||tracks.video)||tracks.audiovideo&&("audio"in data||"video"in data)),muxedToUnmuxed=!unmuxedToMuxed&&this.sourceBufferCount&&this.media&&trackNames.some(function(sbName){return!tracks[sbName]});unmuxedToMuxed||muxedToUnmuxed?this.warn('Unsupported transition between "'+Object.keys(tracks)+'" and "'+trackNames+'" SourceBuffers'):(trackNames.forEach(function(trackName){var parsedTrack=data[trackName],id=parsedTrack.id,codec=parsedTrack.codec,levelCodec=parsedTrack.levelCodec,container=parsedTrack.container,parsedTrack=parsedTrack.metadata,track=tracks[trackName],_this9$transferData=null==(_this9$transferData=_this9.transferData)||null==(_this9$transferData=_this9$transferData.tracks)?void 0:_this9$transferData[trackName],_this9$transferData=null!=_this9$transferData&&_this9$transferData.buffer?_this9$transferData:track,sbCodec=(null==_this9$transferData?void 0:_this9$transferData.pendingCodec)||(null==_this9$transferData?void 0:_this9$transferData.codec),trackLevelCodec=null==_this9$transferData?void 0:_this9$transferData.levelCodec,_this9$transferData=!_this9$transferData||!!_this9.hls.config.assetPlayerId,track=track||(tracks[trackName]={buffer:void 0,listeners:[],codec:codec,container:container,levelCodec:levelCodec,metadata:parsedTrack,id:id}),parsedTrack=pickMostCompleteCodecName(sbCodec,trackLevelCodec),id=null==parsedTrack?void 0:parsedTrack.replace(VIDEO_CODEC_PROFILE_REPLACE,"$1"),trackLevelCodec=pickMostCompleteCodecName(codec,levelCodec),parsedTrack=null==trackLevelCodec?void 0:trackLevelCodec.replace(VIDEO_CODEC_PROFILE_REPLACE,"$1");trackLevelCodec&&(id!==parsedTrack||_this9$transferData)&&("audio"===trackName.slice(0,5)&&(trackLevelCodec=getCodecCompatibleName(trackLevelCodec,_this9.appendSource)),_this9.log("switching codec "+sbCodec+" to "+trackLevelCodec),trackLevelCodec!==(track.pendingCodec||track.codec)&&(track.pendingCodec=trackLevelCodec),track.container=container,_this9.appendChangeType(trackName,container,trackLevelCodec))}),(this.tracksReady||this.sourceBufferCount)&&(data.tracks=this.sourceBufferTracks),this.sourceBufferCount||this.mediaSourceOpenOrEnded&&this.checkPendingTracks())},_proto.appendChangeType=function(type,container,codec){var _this10=this,mimeType=container+";codecs="+codec;this.append({label:"change-type="+mimeType,execute:function(){var sb,track=_this10.tracks[type];track&&null!=(sb=track.buffer)&&sb.changeType&&(_this10.log("changing "+type+" sourceBuffer type to "+mimeType),sb.changeType(mimeType),track.codec=codec,track.container=container),_this10.shiftAndExecuteNext(type)},onStart:function(){},onComplete:function(){},onError:function(error){_this10.warn("Failed to change "+type+" SourceBuffer type",error)}},type,this.isPending(this.tracks[type]))},_proto.blockAudio=function(partOrFrag){var _this11=this,pStart=partOrFrag.start,pTime=pStart+.05*partOrFrag.duration;!0!==(null==(pStart=this.fragmentTracker.getAppendedFrag(pStart,PlaylistLevelType_MAIN))?void 0:pStart.gap)&&(this.blockedAudioAppend={op:pStart={label:"block-audio",execute:function(){var videoTrack=_this11.tracks.video;(_this11.lastVideoAppendEnd>pTime||null!=videoTrack&&videoTrack.buffer&&BufferHelper.isBuffered(videoTrack.buffer,pTime)||!0===(null==(videoTrack=_this11.fragmentTracker.getAppendedFrag(pTime,PlaylistLevelType_MAIN))?void 0:videoTrack.gap))&&(_this11.blockedAudioAppend=null,_this11.shiftAndExecuteNext("audio"))},onStart:function(){},onComplete:function(){},onError:function(error){_this11.warn("Error executing block-audio operation",error)}},frag:partOrFrag},this.append(pStart,"audio",!0))},_proto.unblockAudio=function(){var blockedAudioAppend=this.blockedAudioAppend,operationQueue=this.operationQueue;blockedAudioAppend&&operationQueue&&(this.blockedAudioAppend=null,operationQueue.unblockAudio(blockedAudioAppend.op))},_proto.onBufferAppending=function(event,eventData){var blockedAudioAppend,vappending,_this12=this,tracks=this.tracks,data=eventData.data,type=eventData.type,parent=eventData.parent,frag=eventData.frag,part=eventData.part,chunkMeta=eventData.chunkMeta,chunkStats=chunkMeta.buffering[type],sn=frag.sn,eventData=self.performance.now(),fragBuffering=(chunkStats.start=eventData,frag.stats.buffering),partBuffering=part?part.stats.buffering:null,eventData=(0===fragBuffering.start&&(fragBuffering.start=eventData),partBuffering&&0===partBuffering.start&&(partBuffering.start=eventData),tracks.audio),checkTimestampOffset=!1,tracks=("audio"===type&&"audio/mpeg"===(null==eventData?void 0:eventData.container)&&(checkTimestampOffset=!this.lastMpegAudioChunk||1===chunkMeta.id||this.lastMpegAudioChunk.sn!==chunkMeta.sn,this.lastMpegAudioChunk=chunkMeta),this.tracks.video),eventData=null==tracks?void 0:tracks.buffer,fragStart=(eventData&&"initSegment"!==sn&&(tracks=part||frag,blockedAudioAppend=this.blockedAudioAppend,"audio"!==type||"main"===parent||this.blockedAudioAppend?"video"===type&&(parent=tracks.end,blockedAudioAppend&&((blockedAudioAppend=blockedAudioAppend.frag.start)=_this12.hls.config.appendErrorMaxRetry&&(event.fatal=!0)):event.errorAction=createDoNothingErrorAction(!0),_this12.hls.trigger(Events.ERROR,event)}},type,this.isPending(this.tracks[type]))},_proto.getFlushOp=function(type,start,end){var _this13=this;return this.log('queuing "'+type+'" remove '+start+"-"+end),{label:"remove",execute:function(){_this13.removeExecutor(type,start,end)},onStart:function(){},onComplete:function(){_this13.hls.trigger(Events.BUFFER_FLUSHED,{type:type})},onError:function(error){_this13.warn("Failed to remove "+start+"-"+end+' from "'+type+'" SourceBuffer',error)}}},_proto.onBufferFlushing=function(event,data){var _this14=this,type=data.type,startOffset=data.startOffset,endOffset=data.endOffset;type?this.append(this.getFlushOp(type,startOffset,endOffset),type):this.sourceBuffers.forEach(function(_ref4){_ref4=_ref4[0];_ref4&&_this14.append(_this14.getFlushOp(_ref4,startOffset,endOffset),_ref4)})},_proto.onFragParsed=function(event,data){var _this15=this,frag=data.frag,part=data.part,data=[],elementaryStreams=(part||frag).elementaryStreams;elementaryStreams[ElementaryStreamTypes_AUDIOVIDEO]?data.push("audiovideo"):(elementaryStreams[ElementaryStreamTypes_AUDIO]&&data.push("audio"),elementaryStreams[ElementaryStreamTypes_VIDEO]&&data.push("video"));0===data.length&&this.warn("Fragments must have at least one ElementaryStreamType set. type: "+frag.type+" level: "+frag.level+" sn: "+frag.sn),this.blockBuffers(function(){var now=self.performance.now(),now=(frag.stats.buffering.end=now,part&&(part.stats.buffering.end=now),(part||frag).stats);_this15.hls.trigger(Events.FRAG_BUFFERED,{frag:frag,part:part,stats:now,id:frag.type})},data)},_proto.onFragChanged=function(event,data){this.trimBuffers()},_proto.onBufferEos=function(event,data){var _this$overrides,_this16=this,allowEndOfStream=(this.sourceBuffers.forEach(function(_ref5){var track,_ref5=_ref5[0];_ref5&&(track=_this16.tracks[_ref5],data.type&&data.type!==_ref5||(track.ending=!0,track.ended)||(track.ended=!0,_this16.log(_ref5+" buffer reached EOS")))}),!1!==(null==(_this$overrides=this.overrides)?void 0:_this$overrides.endOfStream));0_ref9.start(0)){_this18.hls.trigger(Events.BACK_BUFFER_REACHED,{bufferEnd:targetBackBufferPosition});var _this18$details,track=_this18.tracks[type];if(null!=(_this18$details=_this18.details)&&_this18$details.live)_this18.hls.trigger(Events.LIVE_BACK_BUFFER_REACHED,{bufferEnd:targetBackBufferPosition});else if(null!=track&&track.ended&&_ref9.end(_ref9.length-1)-currentTime<2*targetDuration)return void _this18.log("Cannot flush "+type+" back buffer while SourceBuffer is in ended state");_this18.hls.trigger(Events.BUFFER_FLUSHING,{startOffset:0,endOffset:targetBackBufferPosition,type:type})}}})},_proto.flushFrontBuffer=function(currentTime,targetDuration,targetFrontBufferPosition){var _this19=this;this.sourceBuffers.forEach(function(_ref10){var bufferStart,numBufferedRanges,type=_ref10[0],_ref10=_ref10[1];!_ref10||(numBufferedRanges=(_ref10=BufferHelper.getBuffered(_ref10)).length)<2||(bufferStart=_ref10.start(numBufferedRanges-1),_ref10=_ref10.end(numBufferedRanges-1),numBufferedRanges=_this19.tracks[type],bufferStart=this.bufferCodecEventsTotal||this.isPending(this.tracks.audiovideo))}},{key:"mediaSrc",get:function(){var _this$media,_this$media$querySele=(null==(_this$media=this.media)||null==(_this$media$querySele=_this$media.querySelector)?void 0:_this$media$querySele.call(_this$media,"source"))||this.media;return null==_this$media$querySele?void 0:_this$media$querySele.src}},{key:"pendingTrackCount",get:function(){var _this27=this;return Object.keys(this.tracks).reduce(function(acc,type){return acc+(_this27.isPending(_this27.tracks[type])?1:0)},0)}},{key:"sourceBufferCount",get:function(){return this.sourceBuffers.reduce(function(acc,_ref17){return acc+(_ref17[0]?1:0)},0)}},{key:"sourceBufferTypes",get:function(){return this.sourceBuffers.map(function(_ref18){return _ref18[0]}).filter(function(type){return!!type})}}])}(Logger);function removeSourceChildren(node){var sourceChildren=node.querySelectorAll("source");[].slice.call(sourceChildren).forEach(function(source){node.removeChild(source)})}function SfItem(value,params){Array.isArray(value)&&(value=value.map(function(v){return v instanceof SfItem?v:new SfItem(v)})),this.value=value,this.params=params}var BaseSegment=function(){function CapLevelController(hls){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=hls,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}var _proto=CapLevelController.prototype;return _proto.setStreamController=function(streamController){this.streamController=streamController},_proto.destroy=function(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null},_proto.registerListeners=function(){var hls=this.hls;hls.on(Events.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),hls.on(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),hls.on(Events.MANIFEST_PARSED,this.onManifestParsed,this),hls.on(Events.LEVELS_UPDATED,this.onLevelsUpdated,this),hls.on(Events.BUFFER_CODECS,this.onBufferCodecs,this),hls.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this)},_proto.unregisterListener=function(){var hls=this.hls;hls.off(Events.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),hls.off(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),hls.off(Events.MANIFEST_PARSED,this.onManifestParsed,this),hls.off(Events.LEVELS_UPDATED,this.onLevelsUpdated,this),hls.off(Events.BUFFER_CODECS,this.onBufferCodecs,this),hls.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this)},_proto.onFpsDropLevelCapping=function(event,data){data=this.hls.levels[data.droppedLevel];this.isLevelAllowed(data)&&this.restrictedLevels.push({bitrate:data.bitrate,height:data.height,width:data.width})},_proto.onMediaAttaching=function(event,data){this.media=data.media instanceof HTMLVideoElement?data.media:null,this.clientRect=null,this.timer&&this.hls.levels.length&&this.detectPlayerSize()},_proto.onManifestParsed=function(event,data){var hls=this.hls;this.restrictedLevels=[],this.firstLevel=data.firstLevel,hls.config.capLevelToPlayerSize&&data.video&&this.startCapping()},_proto.onLevelsUpdated=function(event,data){this.timer&&isFiniteNumber(this.autoLevelCapping)&&this.detectPlayerSize()},_proto.onBufferCodecs=function(event,data){this.hls.config.capLevelToPlayerSize&&data.video&&this.startCapping()},_proto.onMediaDetaching=function(){this.stopCapping(),this.media=null},_proto.detectPlayerSize=function(){var levels,hls,maxLevel;this.media&&(this.mediaHeight<=0||this.mediaWidth<=0?this.clientRect=null:(levels=this.hls.levels).length&&(hls=this.hls,(maxLevel=this.getMaxLevel(levels.length-1))!==this.autoLevelCapping&&hls.logger.log("Setting autoLevelCapping to "+maxLevel+": "+levels[maxLevel].height+"p@"+levels[maxLevel].bitrate+" for media "+this.mediaWidth+"x"+this.mediaHeight),hls.autoLevelCapping=maxLevel,hls.autoLevelEnabled&&hls.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=hls.autoLevelCapping))},_proto.getMaxLevel=function(capLevelIndex){var _this=this,levels=this.hls.levels;return levels.length?(levels=levels.filter(function(level,index){return _this.isLevelAllowed(level)&&index<=capLevelIndex}),this.clientRect=null,CapLevelController.getMaxLevelByMediaSize(levels,this.mediaWidth,this.mediaHeight)):-1},_proto.startCapping=function(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())},_proto.stopCapping=function(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)},_proto.getDimensions=function(){var media,boundsRect,clientRect;return this.clientRect||(boundsRect={width:0,height:0},(media=this.media)&&(clientRect=media.getBoundingClientRect(),boundsRect.width=clientRect.width,boundsRect.height=clientRect.height,boundsRect.width||boundsRect.height||(boundsRect.width=clientRect.right-clientRect.left||media.width||0,boundsRect.height=clientRect.bottom-clientRect.top||media.height||0)),this.clientRect=boundsRect)},_proto.isLevelAllowed=function(level){return!this.restrictedLevels.some(function(restrictedLevel){return level.bitrate===restrictedLevel.bitrate&&level.width===restrictedLevel.width&&level.height===restrictedLevel.height})},CapLevelController.getMaxLevelByMediaSize=function(levels,width,height){if(null==levels||!levels.length)return-1;for(var nextLevel,maxLevelIndex=levels.length-1,squareSize=Math.max(width,height),i=0;i=squareSize||level.height>=squareSize)&&(level=level,!(nextLevel=levels[i+1])||level.width!==nextLevel.width||level.height!==nextLevel.height)){maxLevelIndex=i;break}}return maxLevelIndex},_createClass(CapLevelController,[{key:"mediaWidth",get:function(){return this.getDimensions().width*this.contentScaleFactor}},{key:"mediaHeight",get:function(){return this.getDimensions().height*this.contentScaleFactor}},{key:"contentScaleFactor",get:function(){var pixelRatio=1;if(!this.hls.config.ignoreDevicePixelRatio)try{pixelRatio=self.devicePixelRatio}catch(e){}return Math.min(pixelRatio,this.hls.config.maxDevicePixelRatio)}}])}(),CmcdObjectType={MANIFEST:"m",AUDIO:"a",VIDEO:"v",MUXED:"av",INIT:"i",CAPTION:"c",TIMED_TEXT:"tt",KEY:"k",OTHER:"o"},CmcdStreamingFormat={DASH:"d",HLS:"h",SMOOTH:"s",OTHER:"o"},CmcdHeaderField={OBJECT:"CMCD-Object",REQUEST:"CMCD-Request",SESSION:"CMCD-Session",STATUS:"CMCD-Status"},CmcdHeaderMap=((AC3Demuxer={})[CmcdHeaderField.OBJECT]=["br","d","ot","tb"],AC3Demuxer[CmcdHeaderField.REQUEST]=["bl","dl","mtp","nor","nrr","su"],AC3Demuxer[CmcdHeaderField.SESSION]=["cid","pr","sf","sid","st","v"],AC3Demuxer[CmcdHeaderField.STATUS]=["bs","rtp"],AC3Demuxer);function throwError(action,src,type,cause){return new Error("failed to "+action+' "'+(action=src,Array.isArray(action)?JSON.stringify(action):action instanceof Map?"Map{}":action instanceof Set?"Set{}":"object"==typeof action?JSON.stringify(action):String(action))+'" as '+type,{cause:cause})}function serializeError(src,type,cause){return throwError("serialize",src,type,cause)}function SfToken(description){this.description=description}function serializeByteSequence(value){if(!1===ArrayBuffer.isView(value))throw serializeError(value,"Byte Sequence");return":"+btoa(String.fromCharCode.apply(String,value))+":"}function serializeInteger(value){if(function(value){return value<-999999999999999||999999999999999bitrate&&(bitrate=_step.bitrate)}return 0 tenc");keyId=tenc.subarray(8,24),keySystemDomain=KeySystems.FAIRPLAY}catch(error){return void _this.warn(event+" Failed to parse sinf: "+error)}}else if(_this.getLicenseServerUrl(KeySystems.WIDEVINE)){var keyId,json=parseMultiPssh(initData),keySystems=Object.keys(_this.keySystemAccessPromises),tenc=(keySystems.length||(keySystems=getKeySystemsForConfig(_this.config)),json.filter(function(pssh){pssh=pssh.systemId?keySystemIdToKeySystemDomain(pssh.systemId):null;return!!pssh&&-1 in key message")},_proto.setupLicenseXHR=function(xhr,url,keysListItem,licenseChallenge){var _this12=this,licenseXhrSetup=this.config.licenseXhrSetup;return licenseXhrSetup?Promise.resolve().then(function(){if(keysListItem.decryptdata)return licenseXhrSetup.call(_this12.hls,xhr,url,keysListItem,licenseChallenge);throw new Error("Key removed")}).catch(function(error){if(keysListItem.decryptdata)return xhr.open("POST",url,!0),licenseXhrSetup.call(_this12.hls,xhr,url,keysListItem,licenseChallenge);throw error}).then(function(licenseXhrSetupResult){return xhr.readyState||xhr.open("POST",url,!0),{xhr:xhr,licenseChallenge:licenseXhrSetupResult||licenseChallenge}}):(xhr.open("POST",url,!0),Promise.resolve({xhr:xhr,licenseChallenge:licenseChallenge}))},_proto.requestLicense=function(keySessionContext,licenseChallenge){var _this13=this,keyLoadPolicy=this.config.keyLoadPolicy.default;return new Promise(function(resolve,reject){var url=_this13.getLicenseServerUrlOrThrow(keySessionContext.keySystem),xhr=(_this13.log("Sending license request to URL: "+url),new XMLHttpRequest);xhr.responseType="arraybuffer",xhr.onreadystatechange=function(){if(!_this13.hls||!keySessionContext.mediaKeysSession)return reject(new Error("invalid state"));if(4===xhr.readyState)if(200===xhr.status){_this13._requestLicenseFailureCount=0;var data=xhr.response,licenseResponseCallback=(_this13.log("License received "+(data instanceof ArrayBuffer?data.byteLength:data)),_this13.config.licenseResponseCallback);if(licenseResponseCallback)try{data=licenseResponseCallback.call(_this13.hls,xhr,url,keySessionContext)}catch(error){_this13.error(error)}resolve(data)}else{var licenseResponseCallback=keyLoadPolicy.errorRetry,data=licenseResponseCallback?licenseResponseCallback.maxNumRetry:0;_this13._requestLicenseFailureCount++,_this13._requestLicenseFailureCount>data||400<=xhr.status&&xhr.status<500?reject(new EMEKeyError({type:ErrorTypes.KEY_SYSTEM_ERROR,details:ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0,networkDetails:xhr,response:{url:url,data:void 0,code:xhr.status,text:xhr.statusText}},"License Request XHR failed ("+url+"). Status: "+xhr.status+" ("+xhr.statusText+")")):(licenseResponseCallback=data-_this13._requestLicenseFailureCount+1,_this13.warn("Retrying license request, "+licenseResponseCallback+" attempts left"),_this13.requestLicense(keySessionContext,licenseChallenge).then(resolve,reject))}},keySessionContext.licenseXhr&&keySessionContext.licenseXhr.readyState!==XMLHttpRequest.DONE&&keySessionContext.licenseXhr.abort(),keySessionContext.licenseXhr=xhr,_this13.setupLicenseXHR(xhr,url,keySessionContext,licenseChallenge).then(function(_ref5){var xhr=_ref5.xhr,_ref5=_ref5.licenseChallenge;keySessionContext.keySystem==KeySystems.PLAYREADY&&(_ref5=_this13.unpackPlayReadyKeyMessage(xhr,_ref5)),xhr.send(_ref5)})})},_proto.onMediaAttached=function(event,data){this.config.emeEnabled&&(data=data.media,(this.media=data).removeEventListener("encrypted",this.onMediaEncrypted),data.removeEventListener("waitingforkey",this.onWaitingForKey),data.addEventListener("encrypted",this.onMediaEncrypted),data.addEventListener("waitingforkey",this.onWaitingForKey))},_proto.onMediaDetached=function(){var _this14=this,media=this.media,mediaKeysList=this.mediaKeySessions,keySessionCount=(media&&(media.removeEventListener("encrypted",this.onMediaEncrypted),media.removeEventListener("waitingforkey",this.onWaitingForKey),this.media=null),this._requestLicenseFailureCount=0,this.setMediaKeysQueue=[],this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},LevelKey.clearKeyUriToKeyIdMap(),mediaKeysList.length);EMEController.CDMCleanupPromise=Promise.all(mediaKeysList.map(function(mediaKeySessionContext){return _this14.removeSession(mediaKeySessionContext)}).concat(null==media||null==(media=media.setMediaKeys(null))?void 0:media.catch(function(error){var _this14$hls;_this14.log("Could not clear media keys: "+error),null!=(_this14$hls=_this14.hls)&&_this14$hls.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR,fatal:!1,error:new Error("Could not clear media keys: "+error)})}))).then(function(){keySessionCount&&(_this14.log("finished closing key sessions and clearing media keys"),mediaKeysList.length=0)}).catch(function(error){var _this14$hls2;_this14.log("Could not close sessions and clear media keys: "+error),null!=(_this14$hls2=_this14.hls)&&_this14$hls2.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:new Error("Could not close sessions and clear media keys: "+error)})})},_proto.onManifestLoading=function(){this.keyFormatPromise=null},_proto.onManifestLoaded=function(event,_ref6){var _ref6=_ref6.sessionKeys;_ref6&&this.config.emeEnabled&&(this.keyFormatPromise||(_ref6=_ref6.reduce(function(formats,sessionKey){return-1===formats.indexOf(sessionKey.keyFormat)&&formats.push(sessionKey.keyFormat),formats},[]),this.log("Selecting key-system from session-keys "+_ref6.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(_ref6)))},_proto.removeSession=function(mediaKeySessionContext){var _this15=this,mediaKeysSession=mediaKeySessionContext.mediaKeysSession,licenseXhr=mediaKeySessionContext.licenseXhr;if(mediaKeysSession)return this.log("Remove licenses and keys and close session "+mediaKeysSession.sessionId),mediaKeySessionContext._onmessage&&(mediaKeysSession.removeEventListener("message",mediaKeySessionContext._onmessage),mediaKeySessionContext._onmessage=void 0),mediaKeySessionContext._onkeystatuseschange&&(mediaKeysSession.removeEventListener("keystatuseschange",mediaKeySessionContext._onkeystatuseschange),mediaKeySessionContext._onkeystatuseschange=void 0),licenseXhr&&licenseXhr.readyState!==XMLHttpRequest.DONE&&licenseXhr.abort(),mediaKeySessionContext.mediaKeysSession=mediaKeySessionContext.decryptdata=mediaKeySessionContext.licenseXhr=void 0,-1<(licenseXhr=this.mediaKeySessions.indexOf(mediaKeySessionContext))&&this.mediaKeySessions.splice(licenseXhr,1),mediaKeysSession.remove().catch(function(error){var _this15$hls;_this15.log("Could not remove session: "+error),null!=(_this15$hls=_this15.hls)&&_this15$hls.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR,fatal:!1,error:new Error("Could not remove session: "+error)})}).then(function(){return mediaKeysSession.close()}).catch(function(error){var _this15$hls2;_this15.log("Could not close session: "+error),null!=(_this15$hls2=_this15.hls)&&_this15$hls2.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:new Error("Could not close session: "+error)})})},EMEController}(Logger),EMEKeyError=(EMEController.CDMCleanupPromise=void 0,function(_Error){function EMEKeyError(data,message){var _this16=_Error.call(this,message)||this;return _this16.data=void 0,data.error||(data.error=new Error(message)),(_this16.data=data).err=data.error,_this16}return _inheritsLoose(EMEKeyError,_Error),EMEKeyError}(_wrapNativeSuper(Error))),FPSController=function(){function FPSController(hls){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=hls,this.registerListeners()}var _proto=FPSController.prototype;return _proto.setStreamController=function(streamController){this.streamController=streamController},_proto.registerListeners=function(){this.hls.on(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this)},_proto.unregisterListeners=function(){this.hls.off(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this)},_proto.destroy=function(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null},_proto.onMediaAttaching=function(event,data){var config=this.hls.config;config.capLevelOnFPSDrop&&(data=data.media instanceof self.HTMLVideoElement?data.media:null,(this.media=data)&&"function"==typeof data.getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),config.fpsDroppedMonitoringPeriod))},_proto.onMediaDetaching=function(){this.media=null},_proto.checkFPS=function(video,decodedFrames,droppedFrames){var currentDropped,currentDecoded,hls,currentPeriod,currentTime=performance.now();decodedFrames&&(this.lastTime&&(currentPeriod=currentTime-this.lastTime,currentDropped=droppedFrames-this.lastDroppedFrames,currentDecoded=decodedFrames-this.lastDecodedFrames,currentPeriod=1e3*currentDropped/currentPeriod,(hls=this.hls).trigger(Events.FPS_DROP,{currentDropped:currentDropped,currentDecoded:currentDecoded,totalDroppedFrames:droppedFrames}),0hls.config.fpsDroppedMonitoringThreshold*currentDecoded&&(currentPeriod=hls.currentLevel,hls.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+currentPeriod),0=currentPeriod)&&(hls.trigger(Events.FPS_DROP_LEVEL_CAPPING,{level:currentPeriod-=1,droppedLevel:hls.currentLevel}),hls.autoLevelCapping=currentPeriod,this.streamController.nextLevelSwitch()),this.lastTime=currentTime,this.lastDroppedFrames=droppedFrames,this.lastDecodedFrames=decodedFrames)},_proto.checkFPSInterval=function(){var videoPlaybackQuality,video=this.media;video&&(this.isVideoPlaybackQualityAvailable?(videoPlaybackQuality=video.getVideoPlaybackQuality(),this.checkFPS(video,videoPlaybackQuality.totalVideoFrames,videoPlaybackQuality.droppedVideoFrames)):this.checkFPS(video,video.webkitDecodedFrameCount,video.webkitDroppedFrameCount))},FPSController}();function hash(text){for(var hash=5381,i=text.length;i;)hash=33*hash^text.charCodeAt(--i);return(hash>>>0).toString()}var TimelineOccupancy=function(TimelineOccupancy){return TimelineOccupancy[TimelineOccupancy.Point=0]="Point",TimelineOccupancy[TimelineOccupancy.Range=1]="Range",TimelineOccupancy}({});var InterstitialEvent=function(){function InterstitialEvent(dateRange,base){this.base=void 0,this._duration=null,this._timelineStart=null,this.appendInPlaceDisabled=void 0,this.appendInPlaceStarted=void 0,this.dateRange=void 0,this.hasPlayed=!1,this.cumulativeDuration=0,this.resumeOffset=NaN,this.playoutLimit=NaN,this.restrictions={skip:!1,jump:!1},this.snapOptions={out:!1,in:!1},this.assetList=[],this.assetListLoader=void 0,this.assetListResponse=null,this.resumeAnchor=void 0,this.error=void 0,this.base=base,this.dateRange=dateRange,this.setDateRange(dateRange)}var _proto=InterstitialEvent.prototype;return _proto.setDateRange=function(dateRange){this.dateRange=dateRange,this.resumeOffset=dateRange.attr.optionalFloat("X-RESUME-OFFSET",this.resumeOffset),this.playoutLimit=dateRange.attr.optionalFloat("X-PLAYOUT-LIMIT",this.playoutLimit),this.restrictions=dateRange.attr.enumeratedStringList("X-RESTRICT",this.restrictions),this.snapOptions=dateRange.attr.enumeratedStringList("X-SNAP",this.snapOptions)},_proto.reset=function(){var _this$assetListLoader;null!=(_this$assetListLoader=this.assetListLoader)&&_this$assetListLoader.destroy(),this.assetListLoader=this.error=void 0},_proto.isAssetPastPlayoutLimit=function(assetIndex){var playoutLimit;return assetIndex>=this.assetList.length||(playoutLimit=this.playoutLimit,!(assetIndex<=0||isNaN(playoutLimit))&&playoutLimit":interstitial.cue.post?"":"")+interstitial.timelineStart.toFixed(2)+"-"+interstitial.resumeTime.toFixed(2)+"]";var interstitial},_createClass(InterstitialEvent,[{key:"identifier",get:function(){return this.dateRange.id}},{key:"startDate",get:function(){return this.dateRange.startDate}},{key:"startTime",get:function(){var startTime=this.dateRange.startTime;if(this.snapOptions.out){var frag=this.dateRange.tagAnchor;if(frag)return getSnapToFragmentTime(startTime,frag)}return startTime}},{key:"startOffset",get:function(){return this.cue.pre?0:this.startTime}},{key:"resumptionOffset",get:function(){var resumeOffset=this.resumeOffset,resumeOffset=isFiniteNumber(resumeOffset)?resumeOffset:this.duration;return this.cumulativeDuration+resumeOffset}},{key:"resumeTime",get:function(){var resumeTime=this.startOffset+this.resumptionOffset;if(this.snapOptions.in){var frag=this.resumeAnchor;if(frag)return getSnapToFragmentTime(resumeTime,frag)}return resumeTime}},{key:"appendInPlace",get:function(){return!this.appendInPlaceDisabled&&!(this.cue.once||this.cue.pre||0!==this.startTime&&!this.snapOptions.out||!(isNaN(this.playoutLimit)&&isNaN(this.resumeOffset)||this.resumeOffset&&this.duration&&Math.abs(this.resumeOffset-this.duration)<.02))},set:function(value){this.appendInPlaceStarted||(this.appendInPlaceDisabled=!value)}},{key:"timelineStart",get:function(){return null!==this._timelineStart?this._timelineStart:this.startTime},set:function(value){this._timelineStart=value}},{key:"duration",get:function(){var playoutLimit=this.playoutLimit,duration=this._duration||this.dateRange.duration||this.dateRange.plannedDuration||0;return duration=!isNaN(playoutLimit)&&playoutLimit=playoutLimit&&_this.hls.trigger(Events.PLAYOUT_LIMIT_REACHED,{})},this.hls=new HlsPlayerClass(userConfig)),userConfig=(this.interstitial=_interstitial,(this.assetItem=assetItem).uri);try{userConfig=getInterstitialUrl(userConfig,HlsPlayerClass.sessionId).href}catch(error){}HlsPlayerClass.loadSource(userConfig);function detailsLoaded(){_this.hasDetails=!0}HlsPlayerClass.once(Events.LEVEL_LOADED,detailsLoaded),HlsPlayerClass.once(Events.AUDIO_TRACK_LOADED,detailsLoaded),HlsPlayerClass.once(Events.SUBTITLE_TRACK_LOADED,detailsLoaded),HlsPlayerClass.on(Events.MEDIA_ATTACHING,function(name,_ref){var _ref=_ref.media,event=(_this.removeMediaListeners(),_this.mediaAttached=_ref,_this.interstitial);event.playoutLimit&&(_this.playoutOffset=(null==(event=event.assetList[event.assetList.indexOf(assetItem)])?void 0:event.startOffset)||0,_ref.addEventListener("timeupdate",_this.checkPlayout))})}var _proto=HlsAssetPlayer.prototype;return _proto.getAssetTime=function(time){var timelineOffset=this.timelineOffset,duration=this.duration;return Math.min(Math.max(0,time-timelineOffset),duration)},_proto.removeMediaListeners=function(){var media=this.mediaAttached;media&&media.removeEventListener("timeupdate",this.checkPlayout)},_proto.destroy=function(){this.removeMediaListeners(),this.hls.destroy(),this.hls=this.interstitial=null,this.tracks=this.mediaAttached=this.checkPlayout=null},_proto.attachMedia=function(data){this.hls.attachMedia(data)},_proto.detachMedia=function(){this.removeMediaListeners(),this.hls.detachMedia()},_proto.resumeBuffering=function(){this.hls.resumeBuffering()},_proto.pauseBuffering=function(){this.hls.pauseBuffering()},_proto.transferMedia=function(){return this.hls.transferMedia()},_proto.on=function(event,listener,context){this.hls.on(event,listener)},_proto.once=function(event,listener,context){this.hls.once(event,listener)},_proto.off=function(event,listener,context){this.hls.off(event,listener)},_proto.toString=function(){return"HlsAssetPlayer: "+eventAssetToString(this.assetItem)+" "+this.hls.sessionId+" "+(this.interstitial.appendInPlace?"append-in-place":"")},_createClass(HlsAssetPlayer,[{key:"destroyed",get:function(){var _this$hls;return!(null!=(_this$hls=this.hls)&&_this$hls.userConfig)}},{key:"assetId",get:function(){return this.assetItem.identifier}},{key:"interstitialId",get:function(){return this.assetItem.parentIdentifier}},{key:"media",get:function(){return this.hls.media}},{key:"bufferedEnd",get:function(){var media=this.media||this.mediaAttached;return media?(media=BufferHelper.bufferInfo(media,media.currentTime,.001),this.getAssetTime(media.end)):0}},{key:"currentTime",get:function(){var media=this.media||this.mediaAttached;return media?this.getAssetTime(media.currentTime):0}},{key:"duration",get:function(){var _this$assetItem=null==(_this$assetItem=this.assetItem)?void 0:_this$assetItem.duration;return _this$assetItem||0}},{key:"remaining",get:function(){var duration=this.duration;return duration?Math.max(0,duration-this.currentTime):0}},{key:"timelineOffset",get:function(){return this.hls.config.timelineOffset||0},set:function(value){var timelineOffset=this.timelineOffset;if(value!==timelineOffset&&Math.abs(value-timelineOffset)>1/9e4){if(this.hasDetails)throw new Error("Cannot set timelineOffset after playlists are loaded");this.hls.config.timelineOffset=value}}}])}(),InterstitialsSchedule=function(_Logger){function InterstitialsSchedule(onScheduleUpdate,logger){logger=_Logger.call(this,"interstitials-sched",logger)||this;return logger.onScheduleUpdate=void 0,logger.eventMap={},logger.events=null,logger.items=null,logger.durations={primary:0,playout:0,integrated:0},logger.onScheduleUpdate=onScheduleUpdate,logger}_inheritsLoose(InterstitialsSchedule,_Logger);var _proto=InterstitialsSchedule.prototype;return _proto.destroy=function(){this.reset(),this.onScheduleUpdate=null},_proto.reset=function(){this.eventMap={},this.setDurations(0,0,0),this.events&&this.events.forEach(function(interstitial){return interstitial.reset()}),this.events=this.items=null},_proto.getEvent=function(identifier){return identifier&&this.eventMap[identifier]||null},_proto.hasEvent=function(identifier){return identifier in this.eventMap},_proto.findItemIndex=function(item,time){if(item.event)return this.findEventIndex(item.event.identifier);var _items$index,index=-1,items=(item.nextEvent?index=this.findEventIndex(item.nextEvent.identifier)-1:item.previousEvent&&(index=this.findEventIndex(item.previousEvent.identifier)+1),this.items);if(items)for(items[index]||(void 0===time&&(time=item.start),index=this.findItemIndexAtTime(time));0<=index&&null!=(_items$index=items[index])&&_items$index.event;)index--;return index},_proto.findItemIndexAtTime=function(timelinePos,timelineType){var items=this.items;if(items)for(var i=0;itimeRange.start&&timelinePos=diff.end){var scheduleIndex=_this.schedule.findItemIndexAtTime(_this.timelinePos);if(!_this.isInterstitial(diff)&&null!=(_this$media=_this.media)&&_this$media.paused&&(_this.shouldPlay=!1),!roundingError){var _this$media=_this.findItemIndex(diff);if(_this$media_this.timelinePos&&(currentTime>_this.bufferedPos&&_this.checkBuffer(),_this.timelinePos=currentTime,playingItem=_this.playingItem)&&!_this.playingLastItem&&(currentTime>=playingItem.end&&(_this.timelinePos=playingItem.end,playingItem=_this.findItemIndex(playingItem),_this.setSchedulePosition(playingItem+1)),playingItem=_this.playingAsset)&&playingItem.timelineStart+(playingItem.duration||0)<=currentTime&&_this.setScheduleToAssetAtTime(currentTime,playingItem)},_this.onScheduleUpdate=function(removedInterstitials,previousItems){var schedule=_this.schedule,playingItem=_this.playingItem,interstitialEvents=schedule.events||[],scheduleItems=schedule.items||[],schedule=schedule.durations,removedIds=removedInterstitials.map(function(interstitial){return interstitial.identifier}),interstitialsUpdated=!(!interstitialEvents.length&&!removedIds.length),bufferingItem=(interstitialsUpdated&&(!1===_this.hls.config.interstitialAppendInPlace&&interstitialEvents.forEach(function(event){return event.appendInPlace=!1}),_this.log("INTERSTITIALS_UPDATED ("+interstitialEvents.length+"): "+interstitialEvents+"\nSchedule: "+scheduleItems.map(segmentToString))),removedIds.length&&_this.log("Removed events "+removedIds),_this.playerQueue.forEach(function(player){if(player.interstitial.appendInPlace){var timelineStart=player.assetItem.timelineStart,diff=player.timelineOffset-timelineStart;if(diff)try{player.timelineOffset=timelineStart}catch(e){.02"+timelineStart+")")}}}),playingItem&&!playingItem.event&&(_this.playingItem=_this.updateItem(playingItem,_this.timelinePos)),_this.bufferingItem);bufferingItem&&(bufferingItem.event?_this.updateItem(bufferingItem)||(_this.bufferingItem=null,_this.clearInterstitial(bufferingItem.event,null)):_this.bufferingItem=_this.updateItem(bufferingItem,_this.bufferedPos)),_this.waitingItem=_this.updateItem(_this.waitingItem),removedInterstitials.forEach(function(interstitial){interstitial.assetList.forEach(function(asset){_this.clearAssetPlayer(asset.identifier,null)})}),(interstitialsUpdated||previousItems)&&(_this.hls.trigger(Events.INTERSTITIALS_UPDATED,{events:interstitialEvents.slice(0),schedule:scheduleItems.slice(0),durations:schedule,removedIds:removedIds}),_this.isInterstitial(playingItem)&&removedIds.includes(playingItem.event.identifier)?(_this.warn('Interstitial "'+playingItem.event.identifier+'" removed while playing'),_this.primaryFallback(playingItem.event)):_this.checkBuffer())},_this.hls=hls,_this.HlsPlayerClass=HlsPlayerClass,_this.assetListLoader=new AssetListLoader(hls),_this.schedule=new InterstitialsSchedule(_this.onScheduleUpdate,hls.logger),_this.registerListeners(),_this}_inheritsLoose(InterstitialsController,_Logger);var _proto=InterstitialsController.prototype;return _proto.registerListeners=function(){var hls=this.hls;hls.on(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),hls.on(Events.MEDIA_ATTACHED,this.onMediaAttached,this),hls.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this),hls.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),hls.on(Events.LEVEL_UPDATED,this.onLevelUpdated,this),hls.on(Events.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),hls.on(Events.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),hls.on(Events.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),hls.on(Events.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),hls.on(Events.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),hls.on(Events.ASSET_LIST_LOADED,this.onAssetListLoaded,this),hls.on(Events.BUFFER_APPENDED,this.onBufferAppended,this),hls.on(Events.BUFFER_FLUSHED,this.onBufferFlushed,this),hls.on(Events.BUFFERED_TO_END,this.onBufferedToEnd,this),hls.on(Events.MEDIA_ENDED,this.onMediaEnded,this),hls.on(Events.ERROR,this.onError,this),hls.on(Events.DESTROYING,this.onDestroying,this)},_proto.unregisterListeners=function(){var hls=this.hls;hls&&(hls.off(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),hls.off(Events.MEDIA_ATTACHED,this.onMediaAttached,this),hls.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this),hls.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),hls.off(Events.LEVEL_UPDATED,this.onLevelUpdated,this),hls.off(Events.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),hls.off(Events.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),hls.off(Events.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),hls.off(Events.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),hls.off(Events.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),hls.off(Events.ASSET_LIST_LOADED,this.onAssetListLoaded,this),hls.off(Events.BUFFER_CODECS,this.onBufferCodecs,this),hls.off(Events.BUFFER_APPENDED,this.onBufferAppended,this),hls.off(Events.BUFFER_FLUSHED,this.onBufferFlushed,this),hls.off(Events.BUFFERED_TO_END,this.onBufferedToEnd,this),hls.off(Events.MEDIA_ENDED,this.onMediaEnded,this),hls.off(Events.ERROR,this.onError,this),hls.off(Events.DESTROYING,this.onDestroying,this))},_proto.startLoad=function(){this.resumeBuffering()},_proto.stopLoad=function(){this.pauseBuffering()},_proto.resumeBuffering=function(){this.playerQueue.forEach(function(player){return player.resumeBuffering()})},_proto.pauseBuffering=function(){this.playerQueue.forEach(function(player){return player.pauseBuffering()})},_proto.destroy=function(){this.unregisterListeners(),this.stopLoad(),this.assetListLoader&&this.assetListLoader.destroy(),this.emptyPlayerQueue(),this.clearScheduleState(),this.schedule&&this.schedule.destroy(),this.media=this.detachedData=this.mediaSelection=this.requiredTracks=this.altSelection=this.manager=null,this.hls=this.HlsPlayerClass=this.schedule=this.log=null,this.assetListLoader=null,this.onPlay=this.onPause=this.onSeeking=this.onTimeupdate=null,this.onScheduleUpdate=null},_proto.onDestroying=function(){var media=this.primaryMedia;media&&this.removeMediaListeners(media)},_proto.removeMediaListeners=function(media){media.removeEventListener("play",this.onPlay),media.removeEventListener("pause",this.onPause),media.removeEventListener("seeking",this.onSeeking),media.removeEventListener("timeupdate",this.onTimeupdate)},_proto.onMediaAttaching=function(event,data){data=this.media=data.media;this.removeMediaListeners(data),data.addEventListener("seeking",this.onSeeking),data.addEventListener("timeupdate",this.onTimeupdate),data.addEventListener("play",this.onPlay),data.addEventListener("pause",this.onPause)},_proto.onMediaAttached=function(event,data){var playingItem=this.playingItem,detachedMedia=this.detachedData;(this.detachedData=null)===playingItem?this.checkStart():detachedMedia||(this.clearScheduleState(),detachedMedia=this.findItemIndex(playingItem),this.setSchedulePosition(detachedMedia))},_proto.clearScheduleState=function(){this.playingItem=this.bufferingItem=this.waitingItem=this.playingAsset=this.bufferingAsset=null},_proto.onMediaDetaching=function(event,data){var data=!!data.transferMedia,media=this.media;this.media=null,data||(media&&this.removeMediaListeners(media),this.detachedData&&((data=this.getBufferingPlayer())&&(this.playingAsset=null,this.bufferingAsset=null,this.bufferingItem=null,this.waitingItem=null,this.detachedData=null,data.detachMedia()),this.shouldPlay=!1))},_proto.isInterstitial=function(item){return!(null==item||!item.event)},_proto.retreiveMediaSource=function(assetId,toSegment){assetId=this.getAssetPlayer(assetId);assetId&&this.transferMediaFromPlayer(assetId,toSegment)},_proto.transferMediaFromPlayer=function(player,toSegment){var appendInPlace=player.interstitial.appendInPlace,playerMedia=player.media;appendInPlace&&playerMedia===this.primaryMedia?!toSegment||this.isInterstitial(toSegment)&&!toSegment.event.appendInPlace?toSegment&&playerMedia&&(this.detachedData={media:playerMedia}):(appendInPlace=player.transferMedia(),this.log("transfer MediaSource from "+player+" "+JSON.stringify(appendInPlace)),this.bufferingAsset=null,this.detachedData=appendInPlace):toSegment&&playerMedia&&(this.shouldPlay||(this.shouldPlay=!playerMedia.paused))},_proto.transferMediaTo=function(player,media){var attachMediaSourceData=null,primaryPlayer=this.hls,isAssetPlayer=player!==primaryPlayer,appendInPlace=isAssetPlayer&&player.interstitial.appendInPlace,_this$detachedData=null==(_this$detachedData=this.detachedData)?void 0:_this$detachedData.mediaSource,primaryPlayer=primaryPlayer.media&&appendInPlace?(attachMediaSourceData=primaryPlayer.transferMedia(),this.detachedData=attachMediaSourceData,"Primary"):_this$detachedData?((appendInPlace=this.getBufferingPlayer())&&(attachMediaSourceData=appendInPlace.transferMedia()),""+appendInPlace):"",primaryPlayer=(this.log("transferring to "+(isAssetPlayer?player:"Primary")+"\nMediaSource "+JSON.stringify(attachMediaSourceData)+" from "+primaryPlayer),attachMediaSourceData||(_this$detachedData?(attachMediaSourceData=this.detachedData,this.log("using detachedData: MediaSource "+JSON.stringify(attachMediaSourceData))):this.detachedData&&this.hls.media!==media||(this.hls.detachMedia(),this.detachedData={media:media})),attachMediaSourceData&&"mediaSource"in attachMediaSourceData&&"closed"!==(null==(appendInPlace=attachMediaSourceData.mediaSource)?void 0:appendInPlace.readyState)),_this$detachedData=primaryPlayer&&attachMediaSourceData?attachMediaSourceData:media;this.log((primaryPlayer?"transfering MediaSource":"attaching media")+" to "+(isAssetPlayer?player:"Primary")),_this$detachedData===attachMediaSourceData&&(appendInPlace=isAssetPlayer&&player.assetId===this.schedule.assetIdAtEnd,_this$detachedData.overrides={duration:this.schedule.duration,endOfStream:!isAssetPlayer||appendInPlace,cueRemoval:!1}),player.attachMedia(_this$detachedData)},_proto.onInterstitialCueEnter=function(){this.onTimeupdate()},_proto.checkStart=function(){var waitingItem,timelinePos,schedule=this.schedule,interstitialEvents=schedule.events;interstitialEvents&&!this.playbackDisabled&&(-1===this.bufferedPos&&(this.bufferedPos=0),timelinePos=this.timelinePos,waitingItem=this.waitingItem,-1===timelinePos?(timelinePos=this.hls.startPosition,this.timelinePos=timelinePos,interstitialEvents.length&&interstitialEvents[0].cue.pre?(interstitialEvents=schedule.findEventIndex(interstitialEvents[0].identifier),this.setSchedulePosition(interstitialEvents)):(0<=timelinePos||!this.primaryLive)&&(interstitialEvents=this.timelinePos=0=scheduledItem.end)&&(_this$detachedData2=this.getPrimaryResumption(scheduledItem,index),this.timelinePos=_this$detachedData2),this.attachPrimary(_this$detachedData2,scheduledItem)),fromItem&&(_this$detachedData2=this.schedule.items)&&(this.log("resumed "+segmentToString(scheduledItem)),this.hls.trigger(Events.INTERSTITIALS_PRIMARY_RESUMED,{schedule:_this$detachedData2.slice(0),scheduleIndex:index}),this.checkBuffer())},_proto.getPrimaryResumption=function(scheduledItem,index){scheduledItem=scheduledItem.start;if(this.primaryLive){var details=this.primaryDetails;if(0===index)return this.hls.startPosition;if(details&&(scheduledItemdetails.edge))return this.hls.liveSyncPosition||-1}return scheduledItem},_proto.isAssetBuffered=function(asset){var player=this.getAssetPlayer(asset.identifier);return null!=player&&player.hls?player.hls.bufferedToEnd:BufferHelper.bufferInfo(this.primaryMedia,this.timelinePos,0).end+1>=asset.timelineStart+(asset.duration||0)},_proto.attachPrimary=function(timelinePos,item,skipSeekToStartPosition){item?this.setBufferingItem(item):this.bufferingItem=null,this.bufferingAsset=null;var hls,item=this.primaryMedia;item&&((hls=this.hls).media?this.checkBuffer():(this.transferMediaTo(hls,item),skipSeekToStartPosition&&this.startLoadingPrimaryAt(timelinePos,skipSeekToStartPosition)),skipSeekToStartPosition||(this.timelinePos=timelinePos,this.startLoadingPrimaryAt(timelinePos,skipSeekToStartPosition)))},_proto.startLoadingPrimaryAt=function(timelinePos,skipSeekToStartPosition){this.hls.loadingEnabled&&this.hls.startLoad(timelinePos,skipSeekToStartPosition)},_proto.onManifestLoading=function(){this.stopLoad(),this.schedule.reset(),this.emptyPlayerQueue(),this.clearScheduleState(),this.shouldPlay=!1,this.bufferedPos=this.timelinePos=-1,this.mediaSelection=this.altSelection=this.manager=this.requiredTracks=null,this.hls.off(Events.BUFFER_CODECS,this.onBufferCodecs,this),this.hls.on(Events.BUFFER_CODECS,this.onBufferCodecs,this)},_proto.onLevelUpdated=function(event,data){-1!==data.level&&(data=this.hls.levels[data.level],data=_objectSpread2(_objectSpread2({},this.mediaSelection||this.altSelection),{},{main:data}),this.mediaSelection=data,this.schedule.parseInterstitialDateRanges(data),!this.playingItem)&&this.schedule.items&&this.checkStart()},_proto.onAudioTrackUpdated=function(event,data){var data=this.hls.audioTracks[data.id],previousSelection=this.mediaSelection;previousSelection?(previousSelection=_objectSpread2(_objectSpread2({},previousSelection),{},{audio:data}),this.mediaSelection=previousSelection):this.altSelection=_objectSpread2(_objectSpread2({},this.altSelection),{},{audio:data})},_proto.onSubtitleTrackUpdated=function(event,data){var data=this.hls.subtitleTracks[data.id],previousSelection=this.mediaSelection;previousSelection?(previousSelection=_objectSpread2(_objectSpread2({},previousSelection),{},{subtitles:data}),this.mediaSelection=previousSelection):this.altSelection=_objectSpread2(_objectSpread2({},this.altSelection),{},{subtitles:data})},_proto.onAudioTrackSwitching=function(event,data){var audioOption=getBasicSelectionOption(data);this.playerQueue.forEach(function(player){return player.hls.setAudioOption(data)||player.hls.setAudioOption(audioOption)})},_proto.onSubtitleTrackSwitch=function(event,data){var subtitleOption=getBasicSelectionOption(data);this.playerQueue.forEach(function(player){return player.hls.setSubtitleOption(data)||-1!==data.id&&player.hls.setSubtitleOption(subtitleOption)})},_proto.onBufferCodecs=function(event,data){data=data.tracks;data&&(this.requiredTracks=data)},_proto.onBufferAppended=function(event,data){this.checkBuffer()},_proto.onBufferFlushed=function(event,data){var timelinePos,playingItem=this.playingItem;playingItem&&playingItem!==this.bufferingItem&&!this.isInterstitial(playingItem)&&(timelinePos=this.timelinePos,this.bufferedPos=timelinePos,this.setBufferingItem(playingItem))},_proto.onBufferedToEnd=function(event){var interstitialEvents=this.schedule.events;if(this.bufferedPosbufferEnd||(1===items.length&&this.itemsMatch(items[0],bufferingItem)?this.bufferedPos=bufferEnd:(playingItem=this.playingItem,playingIndex=this.findItemIndex(playingItem),schedule=schedule.findItemIndexAtTime(bufferEnd),this.bufferedPos=bufferingItem.end&&(schedule=items),1items.edge-items.targetduration&&nextItemToBuffer.start "+errorData),assetItem.duration=errorData,_this4.updateSchedule()))}function endedWithAssetIndex(assetIndex){return function(){var scheduleIndex;_this4.getAssetPlayer(assetId)&&(_this4.shouldPlay=!0,scheduleIndex=_this4.schedule.findEventIndex(interstitial.identifier),_this4.advanceAfterAssetEnded(interstitial,scheduleIndex,assetIndex))}}var _this4=this,primary=(this.log("create HLSAssetPlayer for "+eventAssetToString(assetItem)),this.hls),userConfig=primary.userConfig,videoPreference=userConfig.videoPreference,currentLevel=primary.levels[primary.loadLevel]||primary.levels[primary.currentLevel],currentLevel=((videoPreference||currentLevel)&&(videoPreference=_extends({},videoPreference),currentLevel.videoCodec&&(videoPreference.videoCodec=currentLevel.videoCodec),currentLevel.videoRange)&&(videoPreference.allowedVideoRanges=[currentLevel.videoRange]),primary.audioTracks[primary.audioTrack]),selectedSubtitle=primary.subtitleTracks[primary.subtitleTrack],startPosition=0,duration=(this.primaryLive&&1<(timePastStart=this.timelinePos-assetItem.timelineStart)&&(duration=assetItem.duration)&&timePastStart")+" error: "+interstitial.error),interstitial.appendInPlace&&(interstitial.appendInPlace=!1,this.attachPrimary(flushStart,null),this.flushFrontBuffer(flushStart)),-1===(interstitial=this.timelinePos)&&(interstitial=this.hls.startPosition),flushStart=this.updateItem(playingItem,interstitial),this.itemsMatch(playingItem,flushStart)||(playingItem=this.schedule.findItemIndexAtTime(interstitial),this.setSchedulePosition(playingItem))):this.checkStart()},_proto.onAssetListLoaded=function(event,data){var eventStart,sumDuration,_this$bufferingItem,_this$schedule$items3,_this6=this,interstitial=data.event,interstitialId=interstitial.identifier,data=data.assetListResponse.ASSETS;this.schedule.hasEvent(interstitialId)&&(eventStart=interstitial.timelineStart,sumDuration=0,data.forEach(function(asset,assetListIndex){var duration=parseFloat(asset.DURATION);_this6.createAsset(interstitial,assetListIndex,sumDuration,eventStart+sumDuration,duration,asset.URI),sumDuration+=duration}),interstitial.duration=sumDuration,data=(null==(data=this.waitingItem)?void 0:data.event.identifier)===interstitialId,this.updateSchedule(),_this$bufferingItem=null==(_this$bufferingItem=this.bufferingItem)?void 0:_this$bufferingItem.event,data?(data=this.schedule.findEventIndex(interstitialId),(_this$schedule$items3=null==(_this$schedule$items3=this.schedule.items)?void 0:_this$schedule$items3[data])&&this.setBufferingItem(_this$schedule$items3),this.setSchedulePosition(data)):(null==_this$bufferingItem?void 0:_this$bufferingItem.identifier)===interstitialId&&_this$bufferingItem.appendInPlace&&(_this$schedule$items3=interstitial.assetList[0],data=this.getAssetPlayer(_this$schedule$items3.identifier),interstitialId=this.primaryMedia,_this$schedule$items3)&&data&&interstitialId&&this.bufferAssetPlayer(data,interstitialId))},_proto.onError=function(event,data){switch(data.details){case ErrorDetails.ASSET_LIST_PARSING_ERROR:case ErrorDetails.ASSET_LIST_LOAD_ERROR:case ErrorDetails.ASSET_LIST_LOAD_TIMEOUT:var interstitial=data.interstitial;interstitial&&this.primaryFallback(interstitial)}},_createClass(InterstitialsController,[{key:"interstitialsManager",get:function(){if(!this.manager){if(!this.hls||!this.schedule.events)return null;function effectiveBufferingItem(){return c.bufferingItem||c.waitingItem}function effectivePlayingItem(){return c.playingItem||c.waitingItem}function getMappedTime(item,timelineType,asset,controllerField,assetPlayerField){var time,interstitial;return item?(time=item[timelineType].start,(interstitial=item.event)?"playout"!==timelineType&&interstitial.timelineOccupancy===TimelineOccupancy.Point||(null==(timelineType=getAssetPlayer(asset))?void 0:timelineType.interstitial)===interstitial&&(time+=timelineType.assetItem.startOffset+timelineType[assetPlayerField]):time+=("bufferedPos"===controllerField?getBufferedEnd():c[controllerField])-item.start,time):0}function findMappedTime(primaryTime,timelineType){if(0!==primaryTime&&"primary"!==timelineType&&c.schedule.length){var index=c.schedule.findItemIndexAtTime(primaryTime),_c$schedule$items=null==(_c$schedule$items=c.schedule.items)?void 0:_c$schedule$items[index];if(_c$schedule$items)return primaryTime+(_c$schedule$items[timelineType].start-_c$schedule$items.start)}return primaryTime}function getMappedDuration(timelineType){var _c$primaryDetails;return null!=(_c$primaryDetails=c.primaryDetails)&&_c$primaryDetails.live?c.primaryDetails.edge:c.schedule.durations[timelineType]}function _seekTo(time,timelineType){var item=effectivePlayingItem();if(null==item||null==(item=item.event)||!item.restrictions.skip){c.log("seek to "+time+' "'+timelineType+'"');var item=effectivePlayingItem(),targetIndex=c.schedule.findItemIndexAtTime(time,timelineType),_c$schedule$items2=null==(_c$schedule$items2=c.schedule.items)?void 0:_c$schedule$items2[targetIndex],playingInterstitial=null==item?void 0:item.event,playingInterstitial=null==playingInterstitial?void 0:playingInterstitial.appendInPlace,seekInItem=item&&c.itemsMatch(item,_c$schedule$items2);if(item&&(playingInterstitial||seekInItem)){var seekInItem=getAssetPlayer(c.playingAsset),media=(null==seekInItem?void 0:seekInItem.media)||c.hls.media;if(media){var currentTime="primary"===timelineType?media.currentTime:getMappedTime(item,timelineType,c.playingAsset,"timelinePos","currentTime"),currentTime=media.currentTime+(time-currentTime);if(0<=currentTime&&(!seekInItem||playingInterstitial||currentTime<=seekInItem.duration))return void(media.currentTime=currentTime)}}if(_c$schedule$items2){playingInterstitial=time,media=("primary"!==timelineType&&(seekInItem=_c$schedule$items2[timelineType].start,playingInterstitial=_c$schedule$items2.start+(time-seekInItem)),!c.isInterstitial(_c$schedule$items2));if(c.isInterstitial(item)||!media&&!_c$schedule$items2.event.appendInPlace){if(item){currentTime=c.findItemIndex(item);if(currentTime=asset.startOffset&&eventTime=buffered[i].start&&fragStart<=buffered[i].end){timeRange=buffered[i];break}data=frag.start+frag.duration;timeRange?timeRange.end=data:buffered.push(timeRange={start:fragStart,end:data}),this.fragmentTracker.fragBuffered(frag),this.fragBufferedComplete(frag,null),this.media&&this.tick()}}},_proto.onBufferFlushing=function(event,data){var endOffsetSubtitles,startOffset=data.startOffset,endOffset=data.endOffset;0!==startOffset||endOffset===Number.POSITIVE_INFINITY||(endOffsetSubtitles=endOffset-1)<=0||(data.endOffsetSubtitles=Math.max(0,endOffsetSubtitles),this.tracksBuffered.forEach(function(buffered){for(var i=0;i=levels.length)&&track){this.log("Subtitle track "+trackId+" loaded ["+newDetails.startSN+","+newDetails.endSN+"]"+(newDetails.lastPartSn?"[part-"+newDetails.lastPartSn+"-"+newDetails.lastPartIndex+"]":"")+",duration:"+newDetails.totalduration),this.mediaBuffer=this.mediaBufferTimeRanges;if(newDetails.live||null!=(levels=track.details)&&levels.live){levels=this.mainDetails;if(newDetails.deltaUpdateFailed||!levels)return;var _this$levelLastLoaded,mainSlidingStartFragment=levels.fragments[0];track.details?0===this.alignPlaylists(newDetails,track.details,null==(_this$levelLastLoaded=this.levelLastLoaded)?void 0:_this$levelLastLoaded.details)&&mainSlidingStartFragment&&addSliding(newDetails,mainSlidingStartFragment.start):newDetails.hasProgramDateTime&&levels.hasProgramDateTime?(alignMediaPlaylistByPDT(newDetails,levels),newDetails.fragmentStart):mainSlidingStartFragment&&addSliding(newDetails,mainSlidingStartFragment.start)}track.details=newDetails,this.levelLastLoaded=track,trackId===currentTrackId&&(this.hls.trigger(Events.SUBTITLE_TRACK_UPDATED,{details:newDetails,id:trackId,groupId:data.groupId}),this.tick(),newDetails.live)&&!this.fragCurrent&&this.media&&this.state===State_IDLE&&!findFragmentByPTS(null,newDetails.fragments,this.media.currentTime,0)&&(this.warn("Subtitle playlist not aligned with playback"),track.details=void 0)}}else this.warn("Subtitle tracks were reset while loading level "+trackId)},_proto._handleFragmentLoadComplete=function(fragLoadedData){var startTime,_this3=this,frag=fragLoadedData.frag,fragLoadedData=fragLoadedData.payload,decryptData=frag.decryptdata,hls=this.hls;this.fragContextChanged(frag)||fragLoadedData&&0>>=0))throw new DOMException("Failed to execute '"+name+"' on 'TimeRanges': The index provided ("+index+") is greater than the maximum bound ("+length+")");return timeranges[index][name]}this.buffered={get length(){return timeranges.length},end:function(index){return getRange("end",index,timeranges.length)},start:function(index){return getRange("start",index,timeranges.length)}}};function sendAddTrackEvent(track,videoEl){var event;try{event=new Event("addtrack")}catch(err){(event=document.createEvent("Event")).initEvent("addtrack",!1,!1)}event.track=track,videoEl.dispatchEvent(event)}function addCueToTrack(track,cue){var mode=track.mode;if("disabled"===mode&&(track.mode="hidden"),track.cues&&!track.cues.getCueById(cue.id))try{if(track.addCue(cue),!track.cues.getCueById(cue.id))throw new Error("addCue is failed for: "+cue)}catch(err){logger.debug("[texttrack-utils]: "+err);try{var textTrackCue=new self.TextTrackCue(cue.startTime,cue.endTime,cue.text);textTrackCue.id=cue.id,track.addCue(textTrackCue)}catch(err2){logger.debug("[texttrack-utils]: Legacy TextTrackCue fallback failed: "+err2)}}"disabled"===mode&&(track.mode=mode)}function clearCurrentCues(track,enterHandler){var mode=track.mode;if("disabled"===mode&&(track.mode="hidden"),track.cues)for(var i=track.cues.length;i--;)enterHandler&&track.cues[i].removeEventListener("enter",enterHandler),track.removeCue(track.cues[i]);"disabled"===mode&&(track.mode=mode)}function removeCuesInRange(track,start,end,predicate){var mode=track.mode;if("disabled"===mode&&(track.mode="hidden"),track.cues&&0cues[len].endTime)return-1;var left=0,right=len;for(;left<=right;){var mid=Math.floor((right+left)/2);if(timecues[mid].startTime&&left=start&&cue.endTime<=end)cuesFound.push(cue);else if(cue.startTime>end)return cuesFound}return cuesFound}(track.cues,start,end),i=0;i=tracks.length||!isFiniteNumber(newId)?this.warn("Invalid subtitle track id: "+newId):(this.selectDefaultTrack=!1,lastTrack=this.currentTrack,tracks=tracks[newId]||null,this.trackId=newId,this.currentTrack=tracks,this.toggleTrackModes(),tracks?(trackLoaded=!!tracks.details&&!tracks.details.live,newId===this.trackId&&tracks===lastTrack&&trackLoaded||(this.log("Switching to subtitle-track "+newId+(tracks?' "'+tracks.name+'" lang:'+tracks.lang+" group:"+tracks.groupId:"")),trackLoaded=tracks.id,_track$groupId=tracks.groupId,name=tracks.name,type=tracks.type,url=tracks.url,this.hls.trigger(Events.SUBTITLE_TRACK_SWITCH,{id:trackLoaded,groupId:void 0===_track$groupId?"":_track$groupId,name:name,type:type,url:url}),trackLoaded=this.switchParams(tracks.url,null==lastTrack?void 0:lastTrack.details,tracks.details),this.loadPlaylist(trackLoaded))):this.hls.trigger(Events.SUBTITLE_TRACK_SWITCH,{id:newId})):this.queuedDefaultTrack=newId},_createClass(SubtitleTrackController,[{key:"subtitleDisplay",get:function(){return this._subtitleDisplay},set:function(value){this._subtitleDisplay=value,-1=severity&&(msg="function"==typeof msg?msg():msg,logger.log(this.time+" ["+severity+"] "+msg))},CaptionsLogger}(),PenState=function(){function PenState(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}var _proto2=PenState.prototype;return _proto2.reset=function(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1},_proto2.setStyles=function(styles){for(var attribs=["foreground","underline","italics","background","flash"],i=0;i ("+numArrayToHexArray([a,b])+")"});var cmdHistory=_this5.cmdHistory;if(16<=a&&a<=31){if(function(a,b,cmdHistory){return cmdHistory.a===a&&cmdHistory.b===b}(a,b,cmdHistory))return setLastCmd(null,null,cmdHistory),_this5.logger.log(3,function(){return"Repeated command ("+numArrayToHexArray([a,b])+") is dropped"});setLastCmd(a,b,_this5.cmdHistory),cmdFound=(cmdFound=(cmdFound=(cmdFound=_this5.parseCmd(a,b))||_this5.parseMidrow(a,b))||_this5.parsePAC(a,b))||_this5.parseBackgroundAttributes(a,b)}else setLastCmd(null,null,cmdHistory);cmdFound||(charsFound=_this5.parseChars(a,b))&&((cmdHistory=_this5.currentChannel)&&0/gi,"\n")}function startsWith(inputString,searchString,position){return inputString.slice(position=void 0===position?0:position,position+searchString.length)===searchString}var VTTParser=function(){function VTTParser(){this.state="INITIAL",this.buffer="",this.decoder=new StringDecoder,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}var _proto3=VTTParser.prototype;return _proto3.parse=function(data){var _this=this;function collectNextLine(){for(var pos=0,buffer=fixLineBreaks(buffer=_this.buffer);posstartTime)&&(this.startTime=startTime),this.endTime=endTime,this.screen=screen,this.timelineController.createCaptionsTrack(this.trackName)},_proto.reset=function(){this.cueRanges=[],this.startTime=null},OutputFilter}(),TimelineController=function(){function TimelineController(hls){this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=newVTTCCs(),this.captionsProperties=void 0,this.hls=hls,this.config=hls.config,this.Cues=hls.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},hls.on(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),hls.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this),hls.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),hls.on(Events.MANIFEST_LOADED,this.onManifestLoaded,this),hls.on(Events.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),hls.on(Events.FRAG_LOADING,this.onFragLoading,this),hls.on(Events.FRAG_LOADED,this.onFragLoaded,this),hls.on(Events.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),hls.on(Events.FRAG_DECRYPTED,this.onFragDecrypted,this),hls.on(Events.INIT_PTS_FOUND,this.onInitPtsFound,this),hls.on(Events.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),hls.on(Events.BUFFER_FLUSHING,this.onBufferFlushing,this)}var _proto=TimelineController.prototype;return _proto.destroy=function(){var hls=this.hls;hls.off(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),hls.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this),hls.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),hls.off(Events.MANIFEST_LOADED,this.onManifestLoaded,this),hls.off(Events.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),hls.off(Events.FRAG_LOADING,this.onFragLoading,this),hls.off(Events.FRAG_LOADED,this.onFragLoaded,this),hls.off(Events.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),hls.off(Events.FRAG_DECRYPTED,this.onFragDecrypted,this),hls.off(Events.INIT_PTS_FOUND,this.onInitPtsFound,this),hls.off(Events.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),hls.off(Events.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.media=null,this.cea608Parser1=this.cea608Parser2=void 0},_proto.initCea608Parsers=function(){var channel1=new OutputFilter(this,"textTrack1"),channel2=new OutputFilter(this,"textTrack2"),channel3=new OutputFilter(this,"textTrack3"),channel4=new OutputFilter(this,"textTrack4");this.cea608Parser1=new Cea608Parser(1,channel1,channel2),this.cea608Parser2=new Cea608Parser(3,channel3,channel4)},_proto.addCues=function(trackName,startTime,endTime,screen,cueRanges){for(var x1,y1,track,merged=!1,i=cueRanges.length;i--;){var cueRange=cueRanges[i],x2=(x1=cueRange[0],x2=cueRange[1],y1=startTime,Math.min(x2,endTime)-Math.max(x1,y1));if(0<=x2&&(cueRange[0]=Math.min(cueRange[0],startTime),cueRange[1]=Math.max(cueRange[1],endTime),merged=!0,.5frag.cc||hls.trigger(Events.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:frag,error:error})})):unparsedVttFrags.push(data)},_proto._fallbackToIMSC1=function(frag,payload){var _this6=this,trackPlaylistMedia=this.tracks[frag.level];trackPlaylistMedia.textCodec||parseIMSC1(payload,this.initPTS[frag.cc],function(){trackPlaylistMedia.textCodec="stpp.ttml.im1t",_this6._parseIMSC1(frag,payload)},function(){trackPlaylistMedia.textCodec="wvtt"})},_proto._appendCues=function(cues,fragLevel){var textTrack,currentTrack,hls=this.hls;this.config.renderTextTracksNatively?(textTrack=this.textTracks[fragLevel])&&"disabled"!==textTrack.mode&&cues.forEach(function(cue){return addCueToTrack(textTrack,cue)}):(currentTrack=this.tracks[fragLevel])&&(currentTrack=currentTrack.default?"default":"subtitles"+fragLevel,hls.trigger(Events.CUES_PARSED,{type:"subtitles",cues:cues,track:currentTrack}))},_proto.onFragDecrypted=function(event,data){data.frag.type===PlaylistLevelType_SUBTITLE&&this.onFragLoaded(Events.FRAG_LOADED,data)},_proto.onSubtitleTracksCleared=function(){this.tracks=[],this.captionsTracks={}},_proto.onFragParsingUserdata=function(event,data){if(this.enabled&&this.config.enableCEA708Captions){var frag=data.frag,samples=data.samples;if(frag.type!==PlaylistLevelType_MAIN||"NONE"!==this.closedCaptionsForLevel(frag))for(var i=0;i=highWaterMark&&onProgress(stats,context,chunkCache.flush().buffer,response)):onProgress(stats,context,data.buffer,response),_pump())}).catch(function(){return Promise.reject()})}var chunkCache=new ChunkCache,reader=response.body.getReader();return _pump()},FetchLoader}();function getRequest(context,initParams){return new self.Request(context.url,initParams)}var FetchError=function(_Error){function FetchError(message,code,details){message=_Error.call(this,message)||this;return message.code=void 0,message.details=void 0,message.code=code,message.details=details,message}return _inheritsLoose(FetchError,_Error),FetchError}(_wrapNativeSuper(Error)),AGE_HEADER_LINE_REGEX=/^age:\s*[\d.]+\s*$/im,XhrLoader=function(){function XhrLoader(config){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=null,this.loader=null,this.stats=void 0,this.xhrSetup=config&&config.xhrSetup||null,this.stats=new LoadStats,this.retryDelay=0}var _proto=XhrLoader.prototype;return _proto.destroy=function(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null},_proto.abortInternal=function(){var loader=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),loader&&(loader.onreadystatechange=null,loader.onprogress=null,4!==loader.readyState)&&(this.stats.aborted=!0,loader.abort())},_proto.abort=function(){var _this$callbacks;this.abortInternal(),null!=(_this$callbacks=this.callbacks)&&_this$callbacks.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)},_proto.load=function(context,config,callbacks){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=context,this.config=config,this.callbacks=callbacks,this.loadInternal()},_proto.loadInternal=function(){var xhr,stats,xhrSetup,_this=this,config=this.config,context=this.context;config&&context&&(xhr=this.loader=new self.XMLHttpRequest,(stats=this.stats).loading.first=0,stats.loaded=0,stats.aborted=!1,(xhrSetup=this.xhrSetup)?Promise.resolve().then(function(){if(_this.loader===xhr&&!_this.stats.aborted)return xhrSetup(xhr,context.url)}).catch(function(error){if(_this.loader===xhr&&!_this.stats.aborted)return xhr.open("GET",context.url,!0),xhrSetup(xhr,context.url)}).then(function(){_this.loader!==xhr||_this.stats.aborted||_this.openAndSendXhr(xhr,context,config)}).catch(function(error){_this.callbacks.onError({code:xhr.status,text:error.message},context,xhr,stats)}):this.openAndSendXhr(xhr,context,config))},_proto.openAndSendXhr=function(xhr,context,config){xhr.readyState||xhr.open("GET",context.url,!0);var headers=context.headers,_config$loadPolicy=config.loadPolicy,maxTimeToFirstByteMs=_config$loadPolicy.maxTimeToFirstByteMs,_config$loadPolicy=_config$loadPolicy.maxLoadTimeMs;if(headers)for(var header in headers)xhr.setRequestHeader(header,headers[header]);context.rangeEnd&&xhr.setRequestHeader("Range","bytes="+context.rangeStart+"-"+(context.rangeEnd-1)),xhr.onreadystatechange=this.readystatechange.bind(this),xhr.onprogress=this.loadprogress.bind(this),xhr.responseType=context.responseType,self.clearTimeout(this.requestTimeout),config.timeout=maxTimeToFirstByteMs&&isFiniteNumber(maxTimeToFirstByteMs)?maxTimeToFirstByteMs:_config$loadPolicy,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),config.timeout),xhr.send()},_proto.readystatechange=function(){var context=this.context,xhr=this.loader,stats=this.stats;if(context&&xhr){var readyState=xhr.readyState,config=this.config;if(!stats.aborted&&2<=readyState&&(0===stats.loading.first&&(stats.loading.first=Math.max(self.performance.now(),stats.loading.start),config.timeout!==config.loadPolicy.maxLoadTimeMs)&&(self.clearTimeout(this.requestTimeout),config.timeout=config.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),config.loadPolicy.maxLoadTimeMs-(stats.loading.first-stats.loading.start))),4===readyState)){self.clearTimeout(this.requestTimeout),xhr.onreadystatechange=null,xhr.onprogress=null;var readyState=xhr.status,useResponseText="text"===xhr.responseType?xhr.responseText:null;if(200<=readyState&&readyState<300){var len,useResponseText=null!=useResponseText?useResponseText:xhr.response;if(null!=useResponseText)return stats.loading.end=Math.max(self.performance.now(),stats.loading.first),len="arraybuffer"===xhr.responseType?useResponseText.byteLength:useResponseText.length,stats.loaded=stats.total=len,stats.bwEstimate=8e3*stats.total/(stats.loading.end-stats.loading.first),this.callbacks&&((len=this.callbacks.onProgress)&&len(stats,context,useResponseText,xhr),this.callbacks)?(len={url:xhr.responseURL,data:useResponseText,code:readyState},void this.callbacks.onSuccess(len,stats,context,xhr)):void 0}useResponseText=config.loadPolicy.errorRetry;shouldRetry(useResponseText,stats.retry,!1,{url:context.url,data:void 0,code:readyState})?this.retry(useResponseText):(logger.error(readyState+" while loading "+context.url),this.callbacks.onError({code:readyState,text:xhr.statusText},context,xhr,stats))}}},_proto.loadtimeout=function(){var retryConfig;this.config&&(shouldRetry(retryConfig=this.config.loadPolicy.timeoutRetry,this.stats.retry,!0)?this.retry(retryConfig):(logger.warn("timeout while loading "+(null==(retryConfig=this.context)?void 0:retryConfig.url)),(retryConfig=this.callbacks)&&(this.abortInternal(),retryConfig.onTimeout(this.stats,this.context,this.loader))))},_proto.retry=function(retryConfig){var context=this.context,stats=this.stats;this.retryDelay=getRetryDelay(retryConfig,stats.retry),stats.retry++,logger.warn((status?"HTTP Status "+status:"Timeout")+" while loading "+(null==context?void 0:context.url)+", retrying "+stats.retry+"/"+retryConfig.maxNumRetry+" in "+this.retryDelay+"ms"),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)},_proto.loadprogress=function(event){var stats=this.stats;stats.loaded=event.loaded,event.lengthComputable&&(stats.total=event.total)},_proto.getCacheAge=function(){var ageHeader,result=null;return result=this.loader&&AGE_HEADER_LINE_REGEX.test(this.loader.getAllResponseHeaders())?(ageHeader=this.loader.getResponseHeader("age"))?parseFloat(ageHeader):null:result},_proto.getResponseHeader=function(name){return this.loader&&new RegExp("^"+name+":\\s*[\\d.]+\\s*$","im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(name):null},XhrLoader}(),hlsDefaultConfig=_objectSpread2(_objectSpread2({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,maxDevicePixelRatio:Number.POSITIVE_INFINITY,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,maxBufferSize:6e7,maxBufferHole:.1,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,maxFragLookUpTolerance:.25,liveSyncDurationCount:3,liveSyncOnStallIncrease:1,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,loader:XhrLoader,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:eventemitter3,bufferController:AACDemuxer,capLevelController:BaseSegment,errorController:ErrorController,fpsController:FPSController,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrEwmaDefaultEstimateMax:5e6,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:requestMediaKeySystemAccess,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableEmsgKLVMetadata:!1,enableID3MetadataCues:!0,enableInterstitialPlayback:!0,interstitialAppendInPlace:!0,interstitialLiveLookAhead:10,useMediaCapabilities:!0,certLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:null,errorRetry:null}},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:12e4,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},interstitialAssetListLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:3e4,timeoutRetry:{maxNumRetry:0,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:0,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3},{cueHandler:Cues,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}),{},{subtitleStreamController:SubtitleStreamController,subtitleTrackController:SubtitleTrackController,timelineController:TimelineController,audioStreamController:MP4Demuxer,audioTrackController:BaseVideoParser,emeController:EMEController,cmcdController:MP4Remuxer,contentSteeringController:AC3Demuxer,interstitialsController:InterstitialsController});function deepCpy(obj){return obj&&"object"==typeof obj?Array.isArray(obj)?obj.map(deepCpy):Object.keys(obj).reduce(function(result,key){return result[key]=deepCpy(obj[key]),result},{}):obj}function enableStreamingMode(config,logger){var currentLoader=config.loader;currentLoader!==FetchLoader&¤tLoader!==XhrLoader?(logger.log("[config]: Custom loader detected, cannot enable progressive streaming"),config.progressive=!1):function(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(e){}return!1}()&&(config.loader=FetchLoader,config.progressive=!0,config.enableSoftwareAES=!0,logger.log("[config]: Progressive streaming enabled, using FetchLoader"))}function getCueClass(){if("undefined"!=typeof self)return self.VTTCue||self.TextTrackCue}function createCueWithDataFields(Cue,startTime,endTime,data,type){var cue=new Cue(startTime,endTime,"");try{cue.value=data,type&&(cue.type=type)}catch(e){cue=new Cue(startTime,endTime,JSON.stringify(type?_objectSpread2({type:type},data):data))}return cue}var MAX_CUE_ENDTIME=function(){var Cue=getCueClass();try{Cue&&new Cue(0,Number.POSITIVE_INFINITY,"")}catch(e){return Number.MAX_VALUE}return Number.POSITIVE_INFINITY}();var ID3TrackController=function(){function ID3TrackController(hls){var _this=this;this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.removeCues=!0,this.onEventCueEnter=function(){_this.hls&&_this.hls.trigger(Events.EVENT_CUE_ENTER,{})},this.hls=hls,this._registerListeners()}var _proto=ID3TrackController.prototype;return _proto.destroy=function(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=this.onEventCueEnter=null},_proto._registerListeners=function(){var hls=this.hls;hls.on(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),hls.on(Events.MEDIA_ATTACHED,this.onMediaAttached,this),hls.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this),hls.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),hls.on(Events.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),hls.on(Events.BUFFER_FLUSHING,this.onBufferFlushing,this),hls.on(Events.LEVEL_UPDATED,this.onLevelUpdated,this),hls.on(Events.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this)},_proto._unregisterListeners=function(){var hls=this.hls;hls.off(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),hls.off(Events.MEDIA_ATTACHED,this.onMediaAttached,this),hls.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this),hls.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),hls.off(Events.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),hls.off(Events.BUFFER_FLUSHING,this.onBufferFlushing,this),hls.off(Events.LEVEL_UPDATED,this.onLevelUpdated,this),hls.off(Events.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this)},_proto.onMediaAttaching=function(event,data){this.media=data.media,!1===(null==(data=data.overrides)?void 0:data.cueRemoval)&&(this.removeCues=!1)},_proto.onMediaAttached=function(){var details=this.hls.latestLevelDetails;details&&this.updateDateRangeCues(details)},_proto.onMediaDetaching=function(event,data){this.media=null,!data.transferMedia&&(this.id3Track&&(this.removeCues&&clearCurrentCues(this.id3Track,this.onEventCueEnter),this.id3Track=null),this.dateRangeCuesAppended={})},_proto.onManifestLoading=function(){this.dateRangeCuesAppended={}},_proto.createTrack=function(media){media=this.getID3Track(media.textTracks);return media.mode="hidden",media},_proto.getID3Track=function(textTracks){if(this.media){for(var i=0;idateRange.startDate&&(!candidateDateRange||dateRange.startDate(b.attrs["HDCP-LEVEL"]||"")?1:-1;if(resolutionFound&&a.height!==b.height)return a.height-b.height;if(a.frameRate!==b.frameRate)return a.frameRate-b.frameRate;if(a.videoRange!==b.videoRange)return VideoRangeValues.indexOf(a.videoRange)-VideoRangeValues.indexOf(b.videoRange);if(a.videoCodec!==b.videoCodec){var valueA=videoCodecPreferenceValue(a.videoCodec),valueB=videoCodecPreferenceValue(b.videoCodec);if(valueA!==valueB)return valueB-valueA}if(a.uri===b.uri&&a.codecSet!==b.codecSet){valueB=codecsSetSelectionPreferenceValue(a.codecSet),valueA=codecsSetSelectionPreferenceValue(b.codecSet);if(valueB!==valueA)return valueA-valueB}return a.averageBitrate!==b.averageBitrate?a.averageBitrate-b.averageBitrate:0}),unsortedLevels[0]);if(this.steering&&(levels=this.steering.filterParsedLevels(levels)).length!==unsortedLevels.length)for(var i=0;i=levels.length){var error=new Error("invalid level idx"),fatal=newLevel<0;if(this.hls.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.LEVEL_SWITCH_ERROR,level:newLevel,fatal:fatal,error:error,reason:error.message}),fatal)return;newLevel=Math.min(newLevel,levels.length-1)}var error=this.currentLevelIndex,fatal=this.currentLevel,lastPathwayId=fatal?fatal.attrs["PATHWAY-ID"]:void 0,levels=levels[newLevel],pathwayId=levels.attrs["PATHWAY-ID"];this.currentLevelIndex=newLevel,this.currentLevel=levels,error===newLevel&&fatal&&lastPathwayId===pathwayId||(this.log("Switching to level "+newLevel+" ("+(levels.height?levels.height+"p ":"")+(levels.videoRange?levels.videoRange+" ":"")+(levels.codecSet?levels.codecSet+" ":"")+"@"+levels.bitrate+")"+(pathwayId?" with Pathway "+pathwayId:"")+" from level "+error+(lastPathwayId?" with Pathway "+lastPathwayId:"")),pathwayId={level:newLevel,attrs:levels.attrs,details:levels.details,bitrate:levels.bitrate,averageBitrate:levels.averageBitrate,maxBitrate:levels.maxBitrate,realBitrate:levels.realBitrate,width:levels.width,height:levels.height,codecSet:levels.codecSet,audioCodec:levels.audioCodec,videoCodec:levels.videoCodec,audioGroups:levels.audioGroups,subtitleGroups:levels.subtitleGroups,loaded:levels.loaded,loadError:levels.loadError,fragmentError:levels.fragmentError,name:levels.name,id:levels.id,uri:levels.uri,url:levels.url,urlId:0,audioGroupIds:levels.audioGroupIds,textGroupIds:levels.textGroupIds},this.hls.trigger(Events.LEVEL_SWITCHING,pathwayId),(error=levels.details)&&!error.live)||(lastPathwayId=this.switchParams(levels.uri,null==fatal?void 0:fatal.details,error),this.loadPlaylist(lastPathwayId))}}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(newLevel){this.manualLevelIndex=newLevel,void 0===this._startLevel&&(this._startLevel=newLevel),-1!==newLevel&&(this.level=newLevel)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(newLevel){this._firstLevel=newLevel}},{key:"startLevel",get:function(){var configStartLevel;return void 0===this._startLevel?void 0!==(configStartLevel=this.hls.config.startLevel)?configStartLevel:this.hls.firstAutoLevel:this._startLevel},set:function(newLevel){this._startLevel=newLevel}},{key:"pathwayPriority",get:function(){return this.steering?this.steering.pathwayPriority:null},set:function(pathwayPriority){var pathwaysList,filteredPathwayPriority;this.steering&&(pathwaysList=this.steering.pathways(),filteredPathwayPriority=pathwayPriority.filter(function(pathwayId){return-1!==pathwaysList.indexOf(pathwayId)}),pathwayPriority.length<1?this.warn("pathwayPriority "+pathwayPriority+" should contain at least one pathway from list: "+pathwaysList):this.steering.pathwayPriority=filteredPathwayPriority)}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(nextLevel){this.level=nextLevel,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=nextLevel)}}])}(PassThroughRemuxer);function assignTrackIdsByGroup(tracks){var groups={};tracks.forEach(function(track){var groupId=track.groupId||"";track.id=groups[groupId]=groups[groupId]||0,groups[groupId]++})}var GapController=function(_Logger){function GapController(config,media,fragmentTracker,hls){var _this=_Logger.call(this,"gap-controller",hls.logger)||this;return _this.config=void 0,_this.media=null,_this.fragmentTracker=void 0,_this.hls=void 0,_this.nudgeRetry=0,_this.stallReported=!1,_this.stalled=null,_this.moved=!1,_this.seeking=!1,_this.ended=0,_this.config=config,_this.media=media,_this.fragmentTracker=fragmentTracker,_this.hls=hls,_this}_inheritsLoose(GapController,_Logger);var _proto=GapController.prototype;return _proto.destroy=function(){this.media=null,this.hls=this.fragmentTracker=null},_proto.poll=function(lastCurrentTime,activeFrag,levelDetails,state){var config=this.config,media=this.media,stalled=this.stalled;if(null!==media){var currentTime=media.currentTime,seeking=media.seeking,seeked=this.seeking&&!seeking,beginSeek=!this.seeking&&seeking;if(this.seeking=seeking,currentTime!==lastCurrentTime)lastCurrentTime&&(this.ended=0),this.moved=!0,seeking||(this.nudgeRetry=0),null!==stalled&&(this.stallReported&&(lastCurrentTime=self.performance.now()-stalled,this.warn("playback not stuck anymore @"+currentTime+", after "+Math.round(lastCurrentTime)+"ms"),this.stallReported=!1),this.stalled=null);else if(beginSeek||seeked)this.stalled=null;else if(media.paused&&!seeking||media.ended||0===media.playbackRate||!BufferHelper.getBuffered(media).length)!this.ended&&media.ended&&(this.ended=currentTime||1,this.hls.trigger(Events.MEDIA_ENDED,{stalled:!1})),this.nudgeRetry=0;else{lastCurrentTime=BufferHelper.bufferInfo(media,currentTime,0),beginSeek=lastCurrentTime.nextStart||0;if(seeking){seeked=2config.maxBufferHole||bufferInfo.nextStart&&bufferInfo.nextStart-media1e3*config.highBufferWatchdogPeriod&&(this.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())}},_proto._reportStall=function(bufferInfo){var hls=this.hls,media=this.media;!this.stallReported&&media&&(this.stallReported=!0,media=new Error("Playback stalling at @"+media.currentTime+" due to low buffer ("+JSON.stringify(bufferInfo)+")"),this.warn(media.message),hls.trigger(Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.BUFFER_STALLED_ERROR,fatal:!1,error:media,buffer:bufferInfo.len}))},_proto._trySkipBufferHole=function(partial){var config=this.config,hls=this.hls,media=this.media;if(null!==media){var currentTime=media.currentTime,bufferInfo=BufferHelper.bufferInfo(media,currentTime,0),startTime=currentTimeconfig.maxBufferHole){var fragmentTracker=this.fragmentTracker,bufferStarved=!1;if(!(bufferStarved=0===currentTime&&(bufferInfo=fragmentTracker.getAppendedFrag(0,PlaylistLevelType_MAIN))&&startTimelevels.end&&(this.backtrackFragment=null),hls=this.backtrackFragment?this.backtrackFragment.start:levels.end,frag=this.getNextFragment(hls,lastDetails),this.couldBacktrack&&!this.fragPrevious&&frag&&isMediaFragment(frag)&&this.fragmentTracker.getState(frag)!==FragmentState_OK?(_this$backtrackFragme=(null!=(_this$backtrackFragme=this.backtrackFragment)?_this$backtrackFragme:frag).sn-lastDetails.startSN,(_this$backtrackFragme=lastDetails.fragments[_this$backtrackFragme-1])&&frag.cc===_this$backtrackFragme.cc&&this.fragmentTracker.removeFragment(frag=_this$backtrackFragme)):this.backtrackFragment&&levels.len&&(this.backtrackFragment=null),frag&&this.isLoopLoading(frag,hls)&&(frag.gap||(mediaBuffer=((_this$backtrackFragme=this.audioOnly&&!this.altAudio?ElementaryStreamTypes_AUDIO:ElementaryStreamTypes_VIDEO)===ElementaryStreamTypes_VIDEO?this.videoBuffer:this.mediaBuffer)||this.media)&&this.afterBufferFlushed(mediaBuffer,_this$backtrackFragme,PlaylistLevelType_MAIN),frag=this.getNextFragmentLoopLoading(frag,lastDetails,levels,PlaylistLevelType_MAIN,levelLastLoaded)),frag&&(!frag.initSegment||frag.initSegment.data||this.bitrateTest||(frag=frag.initSegment),this.loadFragment(frag,media,hls)))))))},_proto.loadFragment=function(frag,level,targetBufferTime){var fragState=this.fragmentTracker.getState(frag);fragState===FragmentState_NOT_LOADED||fragState===FragmentState_PARTIAL?isMediaFragment(frag)?this.bitrateTest?(this.log("Fragment "+frag.sn+" of level "+frag.level+" is being downloaded to test bitrate and will not be buffered"),this._loadBitrateTestFrag(frag,level)):_BaseStreamController.prototype.loadFragment.call(this,frag,level,targetBufferTime):this._loadInitSegment(frag,level):this.clearTrackerIfNeeded(frag)},_proto.getBufferedFrag=function(position){return this.fragmentTracker.getBufferedFrag(position,PlaylistLevelType_MAIN)},_proto.followingBufferedFrag=function(frag){return frag?this.getBufferedFrag(frag.end+.5):null},_proto.immediateLevelSwitch=function(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},_proto.nextLevelSwitch=function(){var levels=this.levels,media=this.media;if(null!=media&&media.readyState){var fragPlayingCurrent=this.getAppendedFrag(media.currentTime),fragPlayingCurrent=(fragPlayingCurrent&&1=start-config.maxFragLookUpTolerance&¤tTime<=end,null!==liveSyncPosition)&&media.duration>liveSyncPosition&&(currentTimeinitSegment.cc;if(!1!==remuxResult.independent){var initSegment=video.startPTS,remuxResult=video.endPTS,startDTS=video.startDTS,endDTS=video.endDTS;if(part)part.elementaryStreams[video.type]={startPTS:initSegment,endPTS:remuxResult,startDTS:startDTS,endDTS:endDTS};else if(video.firstKeyFrame&&video.independent&&1===transmuxResult.id&&!mapFragment&&(this.couldBacktrack=!0),video.dropped&&video.independent){var bufferInfo=this.getMainFwdBufferInfo(),bufferInfo=(bufferInfo?bufferInfo.end:this.getLoadPosition())+this.config.maxBufferHole,startTime=video.firstKeyFramePTS||initSegment;if(!context&&bufferInfo":"")+")"),this.started=!0,this.resumeBuffering();for(var i=0;i=minAutoBitrate)return i;return 0}},{key:"maxAutoLevel",get:function(){var levels=this.levels,autoLevelCapping=this.autoLevelCapping,maxHdcpLevel=this.maxHdcpLevel,autoLevelCapping=-1===autoLevelCapping&&null!=levels&&levels.length?levels.length-1:autoLevelCapping;if(maxHdcpLevel)for(var i=autoLevelCapping;i--;){var hdcpLevel=levels[i].attrs["HDCP-LEVEL"];if(hdcpLevel&&hdcpLevel<=maxHdcpLevel)return i}return autoLevelCapping}},{key:"firstAutoLevel",get:function(){return this.abrController.firstAutoLevel}},{key:"nextAutoLevel",get:function(){return this.abrController.nextAutoLevel},set:function(nextLevel){this.abrController.nextAutoLevel=nextLevel}},{key:"playingDate",get:function(){return this.streamController.currentProgramDateTime}},{key:"mainForwardBufferInfo",get:function(){return this.streamController.getMainFwdBufferInfo()}},{key:"maxBufferLength",get:function(){return this.streamController.maxBufferLength}},{key:"allAudioTracks",get:function(){var audioTrackController=this.audioTrackController;return audioTrackController?audioTrackController.allAudioTracks:[]}},{key:"audioTracks",get:function(){var audioTrackController=this.audioTrackController;return audioTrackController?audioTrackController.audioTracks:[]}},{key:"audioTrack",get:function(){var audioTrackController=this.audioTrackController;return audioTrackController?audioTrackController.audioTrack:-1},set:function(audioTrackId){var audioTrackController=this.audioTrackController;audioTrackController&&(audioTrackController.audioTrack=audioTrackId)}},{key:"allSubtitleTracks",get:function(){var subtitleTrackController=this.subtitleTrackController;return subtitleTrackController?subtitleTrackController.allSubtitleTracks:[]}},{key:"subtitleTracks",get:function(){var subtitleTrackController=this.subtitleTrackController;return subtitleTrackController?subtitleTrackController.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var subtitleTrackController=this.subtitleTrackController;return subtitleTrackController?subtitleTrackController.subtitleTrack:-1},set:function(subtitleTrackId){var subtitleTrackController=this.subtitleTrackController;subtitleTrackController&&(subtitleTrackController.subtitleTrack=subtitleTrackId)}},{key:"media",get:function(){return this._media}},{key:"subtitleDisplay",get:function(){var subtitleTrackController=this.subtitleTrackController;return!!subtitleTrackController&&subtitleTrackController.subtitleDisplay},set:function(value){var subtitleTrackController=this.subtitleTrackController;subtitleTrackController&&(subtitleTrackController.subtitleDisplay=value)}},{key:"lowLatencyMode",get:function(){return this.config.lowLatencyMode},set:function(mode){this.config.lowLatencyMode=mode}},{key:"liveSyncPosition",get:function(){return this.latencyController.liveSyncPosition}},{key:"latency",get:function(){return this.latencyController.latency}},{key:"maxLatency",get:function(){return this.latencyController.maxLatency}},{key:"targetLatency",get:function(){return this.latencyController.targetLatency},set:function(latency){this.latencyController.targetLatency=latency}},{key:"drift",get:function(){return this.latencyController.drift}},{key:"forceStartLoad",get:function(){return this.streamController.forceStartLoad}},{key:"pathwayPriority",get:function(){return this.levelController.pathwayPriority},set:function(pathwayPriority){this.levelController.pathwayPriority=pathwayPriority}},{key:"bufferedToEnd",get:function(){var _this$bufferControlle;return!(null==(_this$bufferControlle=this.bufferController)||!_this$bufferControlle.bufferedToEnd)}},{key:"interstitialsManager",get:function(){var _this$interstitialsCo;return(null==(_this$interstitialsCo=this.interstitialsController)?void 0:_this$interstitialsCo.interstitialsManager)||null}}],[{key:"version",get:function(){return version}},{key:"Events",get:function(){return Events}},{key:"MetadataSchema",get:function(){return MetadataSchema}},{key:"ErrorTypes",get:function(){return ErrorTypes}},{key:"ErrorDetails",get:function(){return ErrorDetails}},{key:"DefaultConfig",get:function(){return Hls.defaultConfig||hlsDefaultConfig},set:function(defaultConfig){Hls.defaultConfig=defaultConfig}}])}();eventemitter3.defaultConfig=void 0,_exports.default=eventemitter3}); \ No newline at end of file diff --git a/modules/howlerjs/howler.core.js b/modules/howlerjs/howler.core.js new file mode 100644 index 0000000..5726925 --- /dev/null +++ b/modules/howlerjs/howler.core.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;function HowlerGlobal(){this._counter=1e3,this._howls=[],this._muted=!1,this._volume=1,this.masterGain=null,this.noAudio=!1,this.autoSuspend=!0,this.ctx=null,this.bound_onAutoSuspendTimeout=this._onAutoSuspendTimeout.bind(this),this.bound_handleSuspension=this._handleSuspension.bind(this),this.bound_onCtxResume=this._onCtxResume.bind(this),this._setup()}function decodeAudioData(arraybuffer,self){function error(){console.log("loaderror")}function success(buffer){buffer&&0=allowance&&(element.currentTime=seconds)}function rejectWithError(reject,errorCode){var e=new Error("Playback failure");errorCode&&(e.name=errorCode),reject(e)}function bindEventsToHlsPlayer(instance,hls,elem,resolve,reject){hls.on(Hls.Events.MANIFEST_PARSED,function(){instance.playWithPromise(elem).then(function(result){reject=null,resolve(result)},function(){reject&&(reject(),reject=null)})}),hls.on(Hls.Events.ERROR,function(event,data){if(console.log("HLS Error: Type: "+data.type+" Details: "+(data.details||"")+" Fatal: "+(data.fatal||!1)+" Reason: "+(data.reason||"")),data.type===Hls.ErrorTypes.NETWORK_ERROR)if(data.response&&data.response.code&&400<=data.response.code)return console.log("hls.js response error code: "+data.response.code),hls.destroy(),void(reject?(rejectWithError(reject,"servererror"),reject=null):instance.onError("servererror"));if(data.fatal||reject)switch(data.type){case Hls.ErrorTypes.NETWORK_ERROR:reject||data.response&&0===data.response.code?(data.response&&console.log("hls.js response error code: "+data.response.code),hls.destroy(),reject?(rejectWithError(reject,"network"),reject=null):instance.onError("network")):(console.log("fatal network error encountered, try to recover"),hls.startLoad());break;case Hls.ErrorTypes.MEDIA_ERROR:console.log("media error encountered, try to recover");var currentReject=reject;reject=null,currentReject?rejectWithError(currentReject,"mediadecodeerror"):handleHlsJsMediaError(instance,currentReject);break;default:console.log("Cannot recover from hls error - destroy and trigger error"),hls.destroy(),reject?(rejectWithError(reject,"mediadecodeerror"),reject=null):instance.onError("mediadecodeerror")}})}function handleHlsJsMediaError(instance,reject){var now,hlsPlayer=instance._hlsPlayer;hlsPlayer&&(now=Date.now(),window.performance&&window.performance.now&&(now=performance.now()),!recoverDecodingErrorDate||3e3=(currentPlayOptions="VideoSideData"===mediaSource.DeliveryMethod?function(tracks,kind){for(var list=[],i=0,length=tracks.length;i'),videoElement=dlg.querySelector("video"),self.addEventListeners(videoElement),_events.default.off(_usersettings.default,"change",self.boundonUserSettingsChange),_events.default.on(_usersettings.default,"change",self.boundonUserSettingsChange),videoElement.textTracks&&videoElement.textTracks.addEventListener&&(videoElement.textTracks.addEventListener("addtrack",onAddTrack),videoElement.textTracks.addEventListener("removetrack",onRemoveTrack)),videoElement.addEventListener("click",onClick),videoElement.addEventListener("dblclick",onDblClick),_browser.default.chromecast||videoElement.classList.add("moveUpSubtitles"),self._mediaElement=videoElement,_browser.default.chromecast&&(cast.framework.CastReceiverContext.getInstance().getPlayerManager().setMediaElement(videoElement),self.bindMediaManagerEvents()));self.useElementVolume()&&(videoElement.volume=_appsettings.default.volume()/100);return videoElement}(),promise.then(function(){return signal.aborted?rejectOnAbort(signal):function(elem,options){self.removeErrorEventListener(elem);var url=options.url;_browser.default.ps4||(seconds=(options.playerStartPositionTicks||0)/1e7)&&(url+="#t="+seconds);console.log("playing url: "+url),setCurrentTrackElement(self,elem,-1,options),elem.innerHTML="",self.destroyHlsPlayer(),self.destroyCastPlayer();var seconds=getMediaStreamSubtitleTracks(options.mediaSource);null!=(subtitleTrackIndexToSetOnPlaying=null==options.mediaSource.DefaultSubtitleStreamIndex?-1:options.mediaSource.DefaultSubtitleStreamIndex)&&0<=subtitleTrackIndexToSetOnPlaying&&((initialSubtitleStream=function(mediaStreams,index){for(var i=0,length=mediaStreams.length;i\n')}).join("")}(seconds,options.item,options.mediaSource);return _browser.default.chromecast?self.setCurrentSrcChromecast(elem,options,url,initialSubtitleStream,seconds):_htmlmediahelper.default.enableHlsJsPlayer(options.mediaSource.RunTimeTicks,"Video")&&-1!==url.indexOf(".m3u8")?(initialSubtitleStream||setTracks(elem,seconds),self.setSrcWithHlsJs(elem,options,url)):(elem.autoplay=!0,elem.src=url,self._currentSrc=url,setTracks(elem,seconds),self.playWithPromise(elem))}(elem,options).then(function(result){return signal.aborted?(self.stopInternal(!1,!1),rejectOnAbort(signal)):Promise.resolve(result)})}))},self.loadIntoPlayer=function(elem,options,val,media,data,customData){var hasHlsTextTracks=customData.hasHlsTextTracks,customData=customData.tracksHtml;return-1!==val.indexOf(".m3u8")&&_htmlmediahelper.default.enableHlsJsPlayer(options.mediaSource.RunTimeTicks,"Video")&&-1!==val.indexOf(".m3u8")?(hasHlsTextTracks||setTracks(elem,customData),self.setSrcWithHlsJs(elem,options,val)):(elem.autoplay=!0,elem.src=val,self._currentSrc=val,setTracks(elem,customData),self.playWithPromise(elem))},self.setSubtitleStreamIndex=function(index){setCurrentTrackElement(self,self._mediaElement,index,self._currentPlayOptions)},self.setAudioStreamIndex=function(index){var streams=function(instance){var mediaSource,profile,currentPlayOptions=instance._currentPlayOptions;return currentPlayOptions?(mediaSource=currentPlayOptions.mediaSource,profile=instance._lastProfile,getMediaStreamTracks(mediaSource,"Audio").filter(function(stream){return _playbackmanager.default.isAudioStreamSupported(stream,mediaSource,profile)})):[]}(self);if(!(streams.length<2)){isNativeLG&&_browser.default.sdkVersion&&4<=_browser.default.sdkVersion&&("DirectStream"!==(playMethod=(currentPlayOptions=self._currentPlayOptions).playMethod)&&"DirectPlay"!==playMethod||"mkv"===currentPlayOptions.mediaSource.Container&&streams.sort(sortDefaultTracksFirst));for(var currentPlayOptions,playMethod,audioIndex=-1,i=0,length=streams.length;i=seconds){activeCues.push(currentTrackEvent);break}}renderCues(instance,activeCues)}}}(this,timeMs+=(_this$currentSubtitle.transcodingOffsetTicks||0)/1e4))},HtmlVideoPlayer.prototype.onEnded=function(elem,triggerStopEvent){_basehtmlplayer.default.prototype.onEnded.apply(this,arguments),destroyCustomTrack(this,elem)},HtmlVideoPlayer.prototype.onError=function(errorType){destroyCustomTrack(this,this._mediaElement),_basehtmlplayer.default.prototype.onError.apply(this,arguments)};_exports.default=HtmlVideoPlayer}); \ No newline at end of file diff --git a/modules/htmlvideoplayer/style.css b/modules/htmlvideoplayer/style.css new file mode 100644 index 0000000..5fd835a --- /dev/null +++ b/modules/htmlvideoplayer/style.css @@ -0,0 +1 @@ +.htmlVideoPlayerContainer{position:fixed!important;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;-webkit-align-items:center;align-items:center;container-type:size;box-sizing:border-box}.transparentDocument .htmlVideoPlayerContainer{background:#000!important}.htmlvideoplayer{margin:0!important;padding:0!important;width:100%;height:100%}.htmlvideoplayer::cue{-webkit-font-smoothing:antialiased}.moveUpSubtitles::-webkit-media-text-track-display{margin-top:-2em}.htmlvideo-subtitles-canvas-parent{position:absolute!important;margin:0!important} \ No newline at end of file diff --git a/modules/humanedate/humanedate.js b/modules/humanedate/humanedate.js new file mode 100644 index 0000000..74fa3ad --- /dev/null +++ b/modules/humanedate/humanedate.js @@ -0,0 +1 @@ +define(["exports","./../common/dataformatter.js"],function(_exports,_dataformatter){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default=_dataformatter.default.formatRelativeTime}); \ No newline at end of file diff --git a/modules/iap.js b/modules/iap.js new file mode 100644 index 0000000..5ae55db --- /dev/null +++ b/modules/iap.js @@ -0,0 +1 @@ +define(["exports","./common/servicelocator.js","./layoutmanager.js","./common/globalize.js","./browser.js"],function(_exports,_servicelocator,_layoutmanager,_globalize,_browser){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var isNativeLG="webos"===globalThis.appMode;var isNativeWindows="embyclient"===globalThis.appMode;function getPremiumInfoUrl(){return"https://emby.media/premiere"}function getAdminFeatureName(feature){return"playback"===feature&&(_layoutmanager.default.tv||isNativeWindows||_browser.default.electron)?"embytheater-unlock":feature}_exports.default={getProductInfo:function(feature){return null},beginPurchase:function(feature,email){var options;return _servicelocator.appHost.supports("externalpremium")?_servicelocator.shell.openUrl(getPremiumInfoUrl()):(options="Please visit "+getPremiumInfoUrl(),Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})),Promise.reject()},restorePurchase:function(id){return Promise.reject()},getSubscriptionOptions:function(){var options=[];return options.push({id:"embypremiere",title:_globalize.default.translate("HeaderBecomeProjectSupporter"),requiresEmail:!1}),Promise.resolve(options)},isUnlockedByDefault:function(feature,options){return("playback"===feature||"playback-tv"===feature)&&(!(_layoutmanager.default.tv||"playback-tv"===feature||isNativeWindows||_browser.default.electron)||_browser.default.operaTv||_browser.default.tizen||isNativeLG)?Promise.resolve():Promise.reject()},getAdminFeatureName:getAdminFeatureName,getRestoreButtonText:function(){return _globalize.default.translate("HeaderAlreadyPaid")},getPeriodicMessageIntervalMs:function(feature){return"playback"===feature&&"embytheater-unlock"===getAdminFeatureName(feature)?864e5:0},getPremiumInfoUrl:getPremiumInfoUrl}}); \ No newline at end of file diff --git a/modules/imagedownloader/imagedownloader.js b/modules/imagedownloader/imagedownloader.js new file mode 100644 index 0000000..c8dadc5 --- /dev/null +++ b/modules/imagedownloader/imagedownloader.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/connectionmanager.js","./../common/globalize.js","./../layoutmanager.js","./../loading/loading.js","./../dialoghelper/dialoghelper.js","./../cardbuilder/cardbuilder.js","./../focusmanager.js","./../mediainfo/mediainfo.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-select/emby-select.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-toggle/emby-toggle.js","./../emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_connectionmanager,_globalize,_layoutmanager,_loading,_dialoghelper,_cardbuilder,_focusmanager,_mediainfo,_embyButton,_embySelect,_embyScroller,_embyToggle,_embyItemscontainer,_paperIconButtonLight,_embyDialogclosebutton){function ImageDownloader(){}function getDisplayUrl(url,apiClient){return apiClient.getUrl("Images/Remote",{api_key:apiClient.accessToken(),imageUrl:url})}function normalizeResult(result){var providersHtml=result.Providers.map(function(p){return'"}),selectImageProvider=this.dlg.querySelector(".selectImageProvider");return selectImageProvider.innerHTML='"+providersHtml,selectImageProvider.value=this.options.imageProvider||"",result.Items=result.Images,result.Images=null,result.Items.forEach(function(image){var options=this.options,options=_connectionmanager.default.getApiClient(options.item);return image.Name=image.ProviderName,image.ImageUrl=getDisplayUrl(image.ThumbnailUrl||image.Url,options),image.OriginalImageUrl=getDisplayUrl(image.Url,options),image}.bind(this)),result}function onItemsContainerUpgraded(){_loading.default.show(),this.itemsContainer.resume({refresh:!0}).then(function(){var dlg=this.dlg;_loading.default.hide(),_focusmanager.default.autoFocus(dlg,{skipIfNotEnabled:!0})}.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle","material-icons"]),ImageDownloader.prototype.getItems=function(query){var options=this.options,item=options.item;return _connectionmanager.default.getApiClient(item).getAvailableRemoteImages(Object.assign({Type:options.imageType||"Primary",IncludeAllLanguages:options.allLanguages,EnableSeriesImages:options.seriesImages,ProviderName:options.imageProvider,itemId:item.Id},query)).then(normalizeResult.bind(this))},ImageDownloader.prototype.getCardOptions=function(items){var options=this.options,imageType=options.imageType,currentItemType=options.item.Type,options=options.item.MediaType;return{shape:"Backdrop"===imageType||"Thumb"===imageType||"Art"===imageType||"Logo"===imageType||"LogoLight"===imageType||"LogoLightColor"===imageType?"backdrop":"Banner"===imageType?"banner":"Disc"===imageType?"square":"Episode"===currentItemType?"backdrop":"MusicAlbum"===currentItemType||"MusicArtist"===currentItemType||"Audio"===options?"square":"portrait",fields:["Name","DownloadableImageInfo"],coverImage:"Logo"!==imageType,multiSelect:!1,contextMenu:!1,hoverDownloadButton:!0,action:"custom",textLinks:!1,lazy:2,previewImageButton:!0,draggable:!1,playQueueIndicator:!1}},ImageDownloader.prototype.getListOptions=function(items){return{renderer:_cardbuilder.default,options:this.getCardOptions(items),virtualScrollLayout:"vertical-grid"}},ImageDownloader.prototype.show=function(options){var dialogOptions={removeOnClose:!0,scrollY:!1,autoFocus:!1},dialogOptions=(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="fullscreen-border",_dialoghelper.default.createDialog(dialogOptions)),html=(dialogOptions.classList.add("formDialog"),""),html=(html=(html=(html=(html=(html+='
')+''+'

')+_globalize.default.translate("HeaderSearchForImages"))+"

"+"
")+function(options){var html="",fldShowSeriesImagesClass=(html=(html=(html=(html=(html=(html=(html=(html=(html=(html=(html=(html=(html=(html=(html=(html+='
')+'
'+'
')+'
'+'
')+('")+"
"+'
')+('")+"
"+'","fldShowSeriesImages"),options=options.item,apiClient=_connectionmanager.default.getApiClient(options);return"Season"===options.Type&&apiClient.isMinServerVersion("4.9.1.90")||(fldShowSeriesImagesClass+=" hide"),html=(html=(html=(html=(html+='")+"
"+'
')+"
"+"
")+"
"+"
"}(options),dialogOptions.innerHTML=html,options.imageType||dialogOptions.querySelector(".fldSelectImageType").classList.remove("hide"),this.dlg=dialogOptions,this.options=options,dialogOptions.querySelector(".selectBrowsableImageType")),options=(html.value=options.imageType||"Primary",html.addEventListener("change",function(e){this.options.imageType=e.target.value,this.options.imageProvider=null,_loading.default.show(),this.itemsContainer.refreshItems().then(_loading.default.hide.bind(_loading.default))}.bind(this)),dialogOptions.querySelector(".selectImageProvider").addEventListener("change",function(e){this.options.imageProvider=e.target.value,_loading.default.show(),this.itemsContainer.refreshItems().then(_loading.default.hide.bind(_loading.default))}.bind(this)),dialogOptions.querySelector(".chkAllLanguages").addEventListener("change",function(e){this.options.allLanguages=e.target.checked,_loading.default.show(),this.itemsContainer.refreshItems().then(_loading.default.hide.bind(_loading.default))}.bind(this)),dialogOptions.querySelector(".chkSeriesImages").addEventListener("change",function(e){this.options.seriesImages=e.target.checked,_loading.default.show(),this.itemsContainer.refreshItems().then(_loading.default.hide.bind(_loading.default))}.bind(this)),dialogOptions.querySelector(".itemsContainer")),html=(options.addEventListener("action-null",function(e){var options=this.options,e=e.detail.item,mediaItem=options.item,downloadOptions={itemId:mediaItem.Id},options=(downloadOptions.Type=e.Type,null!=options.imageIndex&&(downloadOptions.ImageIndex=options.imageIndex),downloadOptions.ImageUrl=e.Url,downloadOptions.ProviderName=e.ProviderName,_loading.default.show(),_connectionmanager.default.getApiClient(mediaItem)),instance=this;options.downloadRemoteImage(downloadOptions).then(function(){instance.result=!0,instance.closeDialog()})}.bind(this)),options.fetchData=this.getItems.bind(this),options.getListOptions=this.getListOptions.bind(this),this.itemsContainer=options,dialogOptions.addEventListener("opened",function(){var instance=this;this.itemsContainer.waitForCustomElementUpgrade().then(function(){onItemsContainerUpgraded.call(instance)})}.bind(this)),function(){var result=this.result;return this.cleanup(),_loading.default.hide(),result?Promise.resolve():Promise.reject()}.bind(this));return _dialoghelper.default.open(dialogOptions).then(html,html)},ImageDownloader.prototype.closeDialog=function(){var dlg=this.dlg;dlg&&_dialoghelper.default.close(dlg)},ImageDownloader.prototype.cleanup=function(){this.options=null,this.dlg=null,this.itemsContainer=null};_exports.default=ImageDownloader}); \ No newline at end of file diff --git a/modules/imageeditor/imageeditor.css b/modules/imageeditor/imageeditor.css new file mode 100644 index 0000000..5b0e976 --- /dev/null +++ b/modules/imageeditor/imageeditor.css @@ -0,0 +1 @@ +.imageEditorCardDefaultText{margin:0!important}.imageEditorCard .cardText-first{font-weight:600;font-size:1.17em;margin-bottom:.15em}.imageEditorAddIcon{display:block;margin-top:.25em;font-size:1.7em} \ No newline at end of file diff --git a/modules/imageeditor/imageeditor.js b/modules/imageeditor/imageeditor.js new file mode 100644 index 0000000..3ec5649 --- /dev/null +++ b/modules/imageeditor/imageeditor.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/connectionmanager.js","./../dom.js","./../common/globalize.js","./../layoutmanager.js","./../loading/loading.js","./../dialoghelper/dialoghelper.js","./../cardbuilder/cardbuilder.js","./../focusmanager.js","./../common/servicelocator.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_connectionmanager,_dom,_globalize,_layoutmanager,_loading,_dialoghelper,_cardbuilder,_focusmanager,_servicelocator,_embyButton,_embyScroller,_paperIconButtonLight,_embyDialogclosebutton){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle","css!modules/imageeditor/imageeditor.css"]);var currentItemId,currentServerId,hasChanges=!1;function getItemInfo(){_loading.default.show();var apiClient=_connectionmanager.default.getApiClient(currentServerId);return apiClient.getItem(apiClient.getCurrentUserId(),currentItemId,{ExcludeFields:"Chapters,MediaSources,MediaStreams,People,Overview,Subviews"}).then(function(item){return apiClient.getItemImageInfos(currentItemId).then(function(imageInfos){return apiClient.getRemoteImageProviders({itemId:currentItemId}).then(function(providers){providers={item:item,imageInfos:imageInfos,providers:providers};return _loading.default.hide(),providers})})})}function addListeners(container,className,eventName,fn){container.addEventListener(eventName,function(e){var elem=e.target.closest("."+className);elem&&fn.call(elem,e)})}function getImageUrl(item,apiClient,type,index,options){return(options=options||{}).type=type,options.index=index,index="Backdrop"===type?(options.tag=item.BackdropImageTags[index],item.Id||item.ItemId):"Primary"===type?(options.tag=item.PrimaryImageTag||item.ImageTags[type],item.PrimaryImageItemId||item.Id||item.ItemId):(options.tag=item.ImageTags[type],item.Id||item.ItemId),options.tag?apiClient.getImageUrl(index,options):null}function setImageProperties(image,itemInfo,apiClient){var item=itemInfo.item;image.Type="ItemImage",image.ServerId=item.ServerId,image.Id=item.Id+"_ItemImage_"+image.imageType+"_"+(image.ImageIndex||0),image.ItemId=item.Id,image.OwnerItem=item,image.Providers=itemInfo.providers,image.Name=_globalize.default.translate(image.ImageType),"Backdrop"===image.ImageType?image.ImageUrl=getImageUrl(item,apiClient,image.ImageType,image.ImageIndex):(image.ImageTags={},image.ImageTags[image.ImageType]=item.ImageTags?item.ImageTags[image.ImageType]:null,"Primary"!==image.ImageType||image.ImageTags[image.ImageType]?image.ImageTags[image.ImageType]&&(image.ImageUrl=getImageUrl(item,apiClient,image.ImageType)):(image.PrimaryImageTag=item.PrimaryImageTag,image.PrimaryImageItemId=item.PrimaryImageItemId),image.ImageTag=image.ImageTags[image.ImageType],"Primary"===image.ImageType&&"TvChannel"===itemInfo.item.Type&&(image.Name=_globalize.default.translate("LogoDark")))}function getStandardImages(){return getItemInfo().then(function(itemInfo){for(var item=itemInfo.item,imageInfos=itemInfo.imageInfos,types=["Primary"],apiClient=(("TvChannel"!==item.Type||item.ImageTags&&item.ImageTags.Logo)&&types.push("Logo"),_connectionmanager.default.getApiClient(item)),result=("TvChannel"===item.Type&&(types.push("LogoLight"),types.push("LogoLightColor")),types.push("Thumb"),types.push("Banner"),types.push("Disc"),types.push("Art"),"Game"===item.Type&&types.push("Box"),[]),i=0,length=types.length;i + +

+ ${HeaderEditImages} +

+ + +
+
+
+ +
+ +
+ +

${Images}

+
+ +
+ +
${TVChannelImageEditorHelp}
+
+ +
+
+
+ +
+
+ +

${Backdrops}

+ + +
+ +
+
+
+
+
+
\ No newline at end of file diff --git a/modules/imageuploader/imageuploader.js b/modules/imageuploader/imageuploader.js new file mode 100644 index 0000000..5dc8826 --- /dev/null +++ b/modules/imageuploader/imageuploader.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/connectionmanager.js","./../common/globalize.js","./../layoutmanager.js","./../loading/loading.js","./../dialoghelper/dialoghelper.js","./../common/textencoding.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-select/emby-select.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-file-input/emby-file-input.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_connectionmanager,_globalize,_layoutmanager,_loading,_dialoghelper,_textencoding,_embyButton,_embySelect,_embyScroller,_embyFileInput,_embyDialogclosebutton){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle","css!modules/imageuploader/style.css"]);var currentItem,currentFile,hasChanges=!1;function showAlert(options){Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function onFileReaderError(evt){switch(_loading.default.hide(),evt.target.error.code){case evt.target.error.NOT_FOUND_ERR:showAlert(_globalize.default.translate("MessageFileReadError"));break;case evt.target.error.ABORT_ERR:break;default:showAlert(_globalize.default.translate("MessageFileReadError"))}}function setFiles(page,files){var reader,theFile,files=(files=function(files){for(var list=[],i=0,length=files.length;i'].join("");page.querySelector(".imageOutput").innerHTML=e,page.querySelector(".fldUpload").classList.remove("hide")}),reader.readAsDataURL(files)):(page.querySelector(".imageOutput").innerHTML="",page.querySelector(".fldUpload").classList.add("hide"),currentFile=null)}var supportedImageTypes=["image/png","image/jpg","image/jpeg","image/webp","image/gif"];function validateImage(file){return!!supportedImageTypes.includes(file.type)}function onSubmit(e){e.preventDefault();var dlg,imageType,imageIndex,e=currentFile;return e&&validateImage(e)&&(_loading.default.show(),imageType=(dlg=this.closest(".dialog")).querySelector(".selectImageType").value,imageIndex=dlg.imageIndex,_connectionmanager.default.getApiClient(currentItem).uploadItemImage(currentItem.Id,imageType,imageIndex,e).then(function(){dlg.querySelector(".uploadImage").value="",_loading.default.hide(),hasChanges=!0,_dialoghelper.default.close(dlg)})),!1}function removeImageType(dlg,type){dlg=dlg.querySelector('option[value="'+type+'"]');dlg&&dlg.parentNode.removeChild(dlg)}function showEditor(options,resolve){options=options||{},require(["text!modules/imageuploader/imageuploader.template.html"],function(template){currentItem=options.item;var page,dialogOptions={removeOnClose:!0},dialogOptions=(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="fullscreen-border",_dialoghelper.default.createDialog(dialogOptions));dialogOptions.classList.add("formDialog"),dialogOptions.imageIndex=options.imageIndex,dialogOptions.innerHTML=_globalize.default.translateDocument(template,"sharedcomponents"),dialogOptions.querySelector(".uploadImage").setAttribute("accept",supportedImageTypes.join(",")),"TvChannel"!==currentItem.Type&&(removeImageType(dialogOptions,"LogoLight"),removeImageType(dialogOptions,"LogoLightColor")),dialogOptions.addEventListener("close",function(){_loading.default.hide(),resolve(hasChanges)}),options.imageType||dialogOptions.querySelector(".fldSelectImageType").classList.remove("hide"),_dialoghelper.default.open(dialogOptions),(page=dialogOptions).querySelector("form").addEventListener("submit",onSubmit),page.querySelector(".uploadImage").addEventListener("change",function(){setFiles(page,this.files)}),page.querySelector(".btnBrowse").addEventListener("click",function(){var uploadInput=page.querySelector(".uploadImage");uploadInput.focus(),uploadInput.click()}),dialogOptions.querySelector(".selectImageType").value=options.imageType||"Primary"})}_exports.default={show:function(options){return new Promise(function(resolve,reject){hasChanges=!1,showEditor(options,resolve)})}}}); \ No newline at end of file diff --git a/modules/imageuploader/imageuploader.template.html b/modules/imageuploader/imageuploader.template.html new file mode 100644 index 0000000..4ba1124 --- /dev/null +++ b/modules/imageuploader/imageuploader.template.html @@ -0,0 +1,55 @@ +
+ +

+ ${HeaderUploadImage} +

+
+ +
+
+
+ +
+

${HeaderAddUpdateImage}

+ + +
+
+
+ + + +
+
+
+
+ +
+ +
+
+
+
+
+ diff --git a/modules/imageuploader/style.css b/modules/imageuploader/style.css new file mode 100644 index 0000000..a11535c --- /dev/null +++ b/modules/imageuploader/style.css @@ -0,0 +1 @@ +.imageEditor-dropZone{border:.2em dashed currentcolor;border-radius:.6em;text-align:center;position:relative;height:12em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center} \ No newline at end of file diff --git a/modules/indicators/indicators.css b/modules/indicators/indicators.css new file mode 100644 index 0000000..b21208f --- /dev/null +++ b/modules/indicators/indicators.css @@ -0,0 +1 @@ +.indicator{border-radius:100em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;font-weight:600;width:2em;height:2em}.timerIndicator{color:#cb272a}.timerIndicator-inactive{color:#888}.indicatorIcon{width:auto;height:auto;font-size:1.6em}.countIndicator{border-radius:100em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;font-weight:600;width:1.8em;height:1.8em;color:#fff;font-size:84%}.playedIndicator{border-radius:100em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;color:#fff}.syncIndicator{border-radius:100em;font-size:1.28em;height:1.25em;width:1.25em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}.emptySyncIndicator{background:#ccc;color:#333}.itemProgressBar{position:relative;height:.4em}.itemProgressBarRound{border-radius:100em}.itemProgressBarForeground{position:absolute;bottom:0;top:0;left:0;inset-inline-start:0;inset-inline-end:initial}.itemProgressBarForegroundRound{border-top-left-radius:100em;border-bottom-left-radius:100em;border-start-start-radius:100em;border-start-end-radius:100em}.itemProgressBarText{-webkit-margin-start:.25em;margin-inline-start:.25em} \ No newline at end of file diff --git a/modules/indicators/indicators.js b/modules/indicators/indicators.js new file mode 100644 index 0000000..b4e96d5 --- /dev/null +++ b/modules/indicators/indicators.js @@ -0,0 +1 @@ +define(["exports","./../common/itemmanager/itemmanager.js","./../emby-apiclient/apiclient.js"],function(_exports,_itemmanager,_apiclient){var progressBarRequired;function getProgressHtml(pct,options){progressBarRequired||(progressBarRequired=!0,Emby.importModule("./modules/emby-elements/emby-progressbar/emby-progressbar.js"));var containerClass="itemProgressBar";return options&&options.containerClass&&(containerClass+=" "+options.containerClass),'
'}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/indicators/indicators.css","material-icons"]);_exports.default={getProgressBarHtml:function(item,options){var itemType=item.Type;switch(itemType){case"Program":case"Timer":case"Recording":case"TvChannel":if((item=item.CurrentProgram||item).StartDate&&item.EndDate){var startDate=0,endDate=1;try{startDate=Date.parse(item.StartDate)}catch(err){}try{endDate=Date.parse(item.EndDate)}catch(err){}var pct=(Date.now()-startDate)/(endDate-startDate)*100;if(0
'}(pct,options,"Timer"===itemType||"Recording"===itemType||item.TimerId,startDate,endDate)}break;case"ActiveSession":pct=item.PlayState,startDate=item.NowPlayingItem;if(pct&&startDate&&startDate.RunTimeTicks)return endDate=getProgressHtml(100*(pct.PositionTicks||0)/startDate.RunTimeTicks,{}),item.TranscodingInfo&&item.TranscodingInfo.CompletionPercentage&&(endDate+=getProgressHtml(item.TranscodingInfo.CompletionPercentage,{containerClass:"sessionTranscodingProgress"})),endDate;break;case"Chapter":return"";default:if(!item.IsFolder){pct=options&&options.userData||item.UserData;if(pct){startDate=pct.PlayedPercentage;if(startDate&&startDate<100)return getProgressHtml(startDate,options)}}}return""},getPlayedIndicatorHtml:function(item,classNamePrefix){var userData=item.UserData;if(userData){if(userData.Played)return item.IsFolder&&"MusicAlbum"!==item.Type||!_itemmanager.default.canMarkPlayed(item)?"":'';if(userData.UnplayedItemCount&&!item.TimerId)return _itemmanager.default.canMarkPlayed(item)&&!_apiclient.default.isLocalItem(item)?'
'+userData.UnplayedItemCount+"
":""}return""},getTimerIndicator:function(item,classNamePrefix){var status,itemType=(item=item.CurrentProgram||item).Type,classNamePrefix=classNamePrefix?classNamePrefix+"TimerIndicator ":"";if("SeriesTimer"===itemType)return'';if(item.TimerId||item.SeriesTimerId)status=item.Status||"Cancelled";else{if("Timer"!==itemType)return"";status=item.Status}return item.SeriesTimerId?"Cancelled"!==status?'':'':''}}}); \ No newline at end of file diff --git a/modules/input/gamepadtokey.js b/modules/input/gamepadtokey.js new file mode 100644 index 0000000..e3801c2 --- /dev/null +++ b/modules/input/gamepadtokey.js @@ -0,0 +1 @@ +var thumbStickThreshHold=.75,buttonStates=[{padIndex:0,key:"GamepadA",keyCode:195},{padIndex:1,key:"GamepadB",keyCode:196},{padIndex:2,key:"GamepadX",keyCode:197},{padIndex:3,key:"GamepadY",keyCode:198},{padIndex:4,key:"GamepadLeftShoulder",keyCode:200},{padIndex:5,key:"GamepadRightShoulder",keyCode:199},{padIndex:6,key:"GamepadLeftTrigger",keyCode:201},{padIndex:7,key:"GamepadRightTrigger",keyCode:202},{padIndex:8,key:"GamepadView",keyCode:208},{padIndex:9,key:"GamepadMenu",keyCode:207},{padIndex:10,key:"GamepadLeftThumbstickButton",keyCode:209},{padIndex:11,key:"GamepadRightThumbstickButton",keyCode:210},{padIndex:12,key:"GamepadDPadUp",keyCode:203},{padIndex:13,key:"GamepadDPadDown",keyCode:204},{padIndex:14,key:"GamepadDPadLeft",keyCode:205},{padIndex:15,key:"GamepadDPadRight",keyCode:206}],axisStates=[{axis:0,key:"GamepadLeftThumbstickLeft",keyCode:214},{axis:0,key:"GamepadLeftThumbstickRight",keyCode:213},{axis:1,key:"GamepadLeftThumbstickUp",keyCode:211},{axis:1,key:"GamepadLeftThumbstickDown",keyCode:212},{axis:2,key:"GamepadRightThumbstickLeft",keyCode:218},{axis:2,key:"GamepadRightThumbstickRight",keyCode:217},{axis:3,key:"GamepadRightThumbstickUp",keyCode:215},{axis:3,key:"GamepadRightThumbstickDown",keyCode:216}],allControls=[],isLooping=!1,repeatIntervalId=null;function allowInput(){var doc=document;return"hidden"!==doc.visibilityState&&!!doc.hasFocus()}function stopRepeatInterval(){repeatIntervalId&&(clearInterval(repeatIntervalId),repeatIntervalId=null)}function startRepeatInterval(){stopRepeatInterval(),repeatIntervalId=window.setInterval(onRepeatInterval,100)}function onRepeatInterval(){var downButton=allControls.find(function(e){return e.pressed});downButton&&1thumbStickThreshHold;allControls.some(function(e){return e.pressed!==e.newPressedState})&&processStateChanges()}requestAnimationFrame(runInputLoop)}else clearAll(),console.log("exiting gamepad input loop"),isLooping=!1}buttonStates.forEach(function(e){return allControls.push(e)}),axisStates.forEach(function(e){return allControls.push(e)}),allControls.forEach(function(e){return e.pressed=!1}),allControls.forEach(function(e){return e.newPressedState=!1}),allControls.forEach(function(e,index){return e.index=index}),navigator.getGamepads||(navigator.webkitGetGamepads?navigator.getGamepads=navigator.webkitGetGamepads:navigator.getGamepads=function(){return null}),window.addEventListener("gamepadconnected",function(e){var e=e.gamepad;e&&(e=e.index,console.log("gamepadconnected: "+e),isLooping||(isLooping=!0,runInputLoop()))}),window.addEventListener("gamepaddisconnected",function(e){clearAll();var e=e.gamepad;e&&(e=e.index,console.log("gamepaddisconnected: "+e))}); \ No newline at end of file diff --git a/modules/input/hidinput.js b/modules/input/hidinput.js new file mode 100644 index 0000000..2b99674 --- /dev/null +++ b/modules/input/hidinput.js @@ -0,0 +1 @@ +define(["exports","./../common/inputmanager.js","./../common/servicelocator.js"],function(_exports,_inputmanager,_servicelocator){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var hidInput={requestCount:0},_COMPATIBLE_PRODUCT_IDs=[{vendorId:1118,productId:109},{vendorId:1118,productId:160},{vendorId:1118,productId:218},{vendorId:4219,productId:12297},{vendorId:5385,productId:37442},{vendorId:1006,productId:9473},{vendorId:1137,productId:2069},{vendorId:1545,productId:797},{vendorId:8256,productId:25360},{vendorId:4105,productId:14},{vendorId:4121,productId:3896},{vendorId:1011,productId:148},{vendorId:4024,productId:2},{vendorId:1256,productId:28769},{vendorId:5216,productId:37200},{vendorId:1006,productId:9474},{vendorId:1545,productId:802},{vendorId:4872,productId:49153},{vendorId:1896,productId:35},{vendorId:1137,productId:1544},{vendorId:1086,productId:38915},{vendorId:6045,productId:16},{vendorId:6045,productId:32},{vendorId:6020,productId:1},{vendorId:6020,productId:2},{vendorId:6072,productId:4352},{vendorId:6072,productId:1100},{vendorId:6072,productId:1200},{vendorId:5553,productId:32912},{vendorId:5242,productId:57365},{vendorId:5242,productId:57366},{vendorId:1308,productId:49153},{vendorId:1308,productId:49154},{vendorId:3094,productId:129},{vendorId:3094,productId:128},{vendorId:16700,productId:33059},{vendorId:16700,productId:33060},{vendorId:1033,productId:102},{vendorId:1137,productId:1548},{vendorId:1137,productId:1549},{vendorId:1137,productId:1551},{vendorId:1204,productId:19559},{vendorId:1259,productId:57346},{vendorId:1259,productId:57348},{vendorId:1545,productId:820},{vendorId:1545,productId:824},{vendorId:2632,productId:12930},{vendorId:3034,productId:353},{vendorId:3034,productId:360},{vendorId:5242,productId:57367},{vendorId:5242,productId:57368},{vendorId:5242,productId:57396},{vendorId:5242,productId:57399},{vendorId:5242,productId:57402},{vendorId:5242,productId:57404},{vendorId:6020,productId:8},{vendorId:6020,productId:6},{vendorId:6452,productId:1538},{vendorId:6452,productId:1794},{vendorId:7012,productId:312}];function handleInputReport(e){if("hidden"!==(doc=document).visibilityState&&doc.hasFocus()){var doc;if(3===e.reportId&&0')+''+'

',"Playlist"===item.Type?html+=_globalize.default.translate("HeaderManageCollaboration"):html+=_globalize.default.translate("HeaderManageAccess"),html=(html=html+"

"+"")+function(options){var html="",options=options.item,html=(html=(html=(html=html+'
'+'
')+'
'+'
')+('")+'
'+"
")+'
'+'
')+('

'+_globalize.default.translate("User"))+"

")+('

'+_globalize.default.translate("Access")))+"

"+"
")+'
'+"
")+"
"+"
")+"
"+"
"}(options),dialogOptions.innerHTML=html,dialogOptions.querySelector(".selectVisibility")),html=(html.addEventListener("change",function(e){var instance=this,options=instance.options,item=options.item,apiClient=_connectionmanager.default.getApiClient(item);return(e="public"===e.target.value?apiClient.makePublic(item.Id):apiClient.makePrivate(item.Id)).then(function(){return apiClient.getItem(apiClient.getCurrentUserId(),options.item.Id,{fields:"ShareLevel",ExcludeFields:"Chapters,MediaSources,MediaStreams,People,Overview,Subviews"}).then(function(item){options.item=item,instance.itemsContainer.refreshItems()})})}.bind(this)),html.singleValue=item.CanMakePublic?"private":"public",this.dlg=dialogOptions,this.options=options,dialogOptions.querySelector(".allItemsContainer")),item=(html.addEventListener("action-null",function(e){_layoutmanager.default.tv&&e.target.closest(".listItem").querySelector("select").click()}.bind(this)),html.fetchData=this.getItems.bind(this),html.getListOptions=this.getListOptions.bind(this),html.addEventListener("change",function(e){var item=this.options.item,e=e.target,itemsContainer=this.itemsContainer,itemElement=_shortcuts.default.getItemElementFromChildNode(e,!1,itemsContainer),itemElement=itemsContainer.getItemFromElement(itemElement),e=e.value;_connectionmanager.default.getApiClient(itemElement).updateUserItemAccess({UserIds:[itemElement.Id],ItemIds:[item.Id],ItemAccess:e}).then(function(){itemsContainer.refreshItems()},_responsehelper.default.handleErrorResponse)}.bind(this)),html.parentContainer=html.closest(".userItemAccessContainer"),this.itemsContainer=html,dialogOptions.addEventListener("opened",function(){var itemsContainer=this.itemsContainer;itemsContainer.resume?onAllItemsContainerUpgraded.call(this):_dom.default.addEventListener(itemsContainer,"upgraded",onAllItemsContainerUpgraded.bind(this),{once:!0})}.bind(this)),function(){return this.result?(this.cleanup(),Promise.resolve()):(this.cleanup(),Promise.reject())}.bind(this));return _dialoghelper.default.open(dialogOptions).then(item,item)},ItemAccessDialog.prototype.closeDialog=function(){var dlg=this.dlg;dlg&&_dialoghelper.default.close(dlg)},ItemAccessDialog.prototype.cleanup=function(){this.listName=null,this.options=null,this.dlg=null,this.itemsContainer=null};_exports.default=ItemAccessDialog}); \ No newline at end of file diff --git a/modules/itemcontextmenu.js b/modules/itemcontextmenu.js new file mode 100644 index 0000000..70a46a1 --- /dev/null +++ b/modules/itemcontextmenu.js @@ -0,0 +1 @@ +define(["exports","./commandprocessor.js","./common/itemmanager/itemmanager.js"],function(_exports,_commandprocessor,_itemmanager){function getResolveFn(id,changed){return function(result){return Promise.resolve({command:id,updated:changed,result:result})}}function executeCommand(items,id,options){switch(id){case"multiselect":case"connecttoserver":case"scan":case"refresh":return _commandprocessor.default.executeCommand(id,items,options),getResolveFn(id)();default:return _commandprocessor.default.executeCommand(id,items,options).then(getResolveFn(id))}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={show:function(options){var commands=_itemmanager.default.getCommands(options),items=options.items;return function(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}({items:commands,positionTo:options.positionTo,positionY:options.positionY,positionX:options.positionX,positionClientY:options.positionClientY,positionClientX:options.positionClientX,transformOrigin:options.transformOrigin,item:1===items.length?items[0]:null,blurBackground:!0,noTextWrap:!0,hasItemIcon:!0,linkToItem:!1!==options.play,lowerLowResThreshold:!0}).then(function(id){return executeCommand(items,id,options)}).then(function(result){return Promise.resolve(result)},function(err){return Promise.reject(err)})},executeCommand:executeCommand}}); \ No newline at end of file diff --git a/modules/itemidentifier/itemidentifier.js b/modules/itemidentifier/itemidentifier.js new file mode 100644 index 0000000..d1a2063 --- /dev/null +++ b/modules/itemidentifier/itemidentifier.js @@ -0,0 +1 @@ +define(["exports","./../dialoghelper/dialoghelper.js","./../dom.js","./../cardbuilder/cardbuilder.js","./../listview/listview.js","./../loading/loading.js","./../emby-apiclient/connectionmanager.js","./../focusmanager.js","./../common/globalize.js","./../common/servicelocator.js","./../common/textencoding.js","./../layoutmanager.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-toggle/emby-toggle.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../common/dialogs/confirm.js"],function(_exports,_dialoghelper,_dom,_cardbuilder,_listview,_loading,_connectionmanager,_focusmanager,_globalize,_servicelocator,_textencoding,_layoutmanager,_embyInput,_paperIconButtonLight,_embyScroller,_embyToggle,_embyDialogclosebutton,_confirm){function showIdentifyOptions(instance,page,identifyResult){var identifyOptionsForm=page.querySelector(".identifyOptionsForm"),identifyOptionsForm=(page.querySelector(".popupIdentifyForm").classList.add("hide"),page.querySelector(".identificationSearchResults").classList.add("hide"),identifyOptionsForm.classList.remove("hide"),page.querySelector(".chkIdentifyReplaceImages").checked=!0,[]),identifyOptionsForm=(identifyOptionsForm.push(identifyResult.Name),identifyResult.ProductionYear&&identifyOptionsForm.push(identifyResult.ProductionYear),identifyResult.GameSystem&&identifyOptionsForm.push(identifyResult.GameSystem),identifyOptionsForm.join("
"));identifyResult.ImageUrl&&(identifyOptionsForm='
'+identifyOptionsForm+"
"),page.querySelector(".selectedSearchResult").innerHTML=identifyOptionsForm,autoFocus.call(instance)}function autoFocus(){var dlg=this.dlg;_loading.default.hide(),_focusmanager.default.autoFocus(dlg,{skipIfNotEnabled:!0})}function ItemIdentifier(options){this.options=options}function onItemsContainerUpgraded(){this.itemsContainer.resume({refresh:!1}).then(autoFocus.bind(this))}function mapToId(item){return item.Id}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle","material-icons"]),ItemIdentifier.prototype.afterRefresh=function(result){result.length?this.dlg.querySelector(".noResultsFound").classList.add("hide"):this.dlg.querySelector(".noResultsFound").classList.remove("hide")},ItemIdentifier.prototype.getItems=function(query){_loading.default.show();var dlg=this.dlg;if(!dlg)return Promise.resolve([]);for(var value,item=this.options.item,apiClient=_connectionmanager.default.getApiClient(item),lookupInfo={ProviderIds:{}},identifyField=dlg.querySelectorAll(".identifyField"),i=0,length=identifyField.length;i',_globalize.default.translate("LabelDynamicExternalId").replace("{0}",idInfo.Name));html+='',idInfo.Website&&(html+='
',_servicelocator.appHost.supports("targetblank")&&_servicelocator.appHost.supports("externallinks")?html+=''+idInfo.Website+"":html+=_textencoding.default.htmlEncode(idInfo.Website),html+="
"),html+="
"}dlg.querySelector(".txtLookupName").value="","Person"===item.Type||"BoxSet"===item.Type?dlg.querySelector(".fldLookupYear").classList.add("hide"):dlg.querySelector(".fldLookupYear").classList.remove("hide"),dlg.querySelector(".txtLookupYear").value="",dlg.querySelector(".identifyProviderIds").innerHTML=html,dlg.querySelector(".formDialogHeaderTitle").innerHTML=_globalize.default.translate("Identify")})}:function(dlg,item){dlg.querySelector(".txtLookupName").value=item.Name||"","Person"===item.Type||"BoxSet"===item.Type?(dlg.querySelector(".fldLookupYear").classList.add("hide"),dlg.querySelector(".txtLookupYear").value=""):(dlg.querySelector(".fldLookupYear").classList.remove("hide"),dlg.querySelector(".txtLookupYear").value=item.ProductionYear||""),dlg.querySelector(".formDialogHeaderTitle").innerHTML=_globalize.default.translate("Search")})(dialogOptions,item),dialogOptions.querySelector(".itemsContainer")),html=("MusicAlbum"===item.Type&&(responses.classList.remove("vertical-wrap"),responses.classList.add("vertical-list"),dialogOptions.querySelector(".sectionTitle-cards").classList.remove("sectionTitle-cards")),responses.addEventListener("action-null",function(e){var dlg,e=e.detail.item;this.currentSearchResult=e,_loading.default.hide(),this.options.item.Id?(dlg=this.dlg)&&showIdentifyOptions(this,dlg,e):(this.hasChanges=!0,this.closeDialog())}.bind(instance)),responses.fetchData=instance.getItems.bind(instance),responses.afterRefresh=instance.afterRefresh.bind(instance),responses.getListOptions=instance.getListOptions.bind(instance),instance.itemsContainer=responses,dialogOptions.addEventListener("opened",function(){var itemsContainer=this.itemsContainer;itemsContainer.resume?onItemsContainerUpgraded.call(this):_dom.default.addEventListener(itemsContainer,"upgraded",onItemsContainerUpgraded.bind(this),{once:!0})}.bind(instance)),function(){_loading.default.hide();var hasChanges=this.hasChanges;return this.cleanup(),hasChanges?Promise.resolve(this.currentSearchResult):Promise.reject()}.bind(instance));return _dialoghelper.default.open(dialogOptions).then(html,html)})},ItemIdentifier.prototype.onIdentifyFormSubmit=function(e){e.preventDefault(),e.stopPropagation();e=this.dlg,e&&(e.querySelector(".popupIdentifyForm").classList.add("hide"),e.querySelector(".identificationSearchResults").classList.remove("hide"),e.querySelector(".identifyOptionsForm").classList.add("hide")),e=this.itemsContainer;return e&&e.refreshItems().then(autoFocus.bind(this)),!1},ItemIdentifier.prototype.onResultConfirmed=function(e){e.preventDefault(),e.stopPropagation();var instance,dlg=this.dlg;return dlg&&(_loading.default.show(),_connectionmanager.default.getApiClient(this.options.item).applyRemoteSearchResult((instance=this).options.item.Id,instance.currentSearchResult,{ReplaceAllImages:dlg.querySelector(".chkIdentifyReplaceImages").checked}).then(function(){var options;options=_globalize.default.translate("RefreshingMetadataDots"),Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)}),instance.hasChanges=!0,_loading.default.hide(),_dialoghelper.default.close(dlg)},function(){_loading.default.hide()})),!1},ItemIdentifier.prototype.closeDialog=function(){var dlg=this.dlg;dlg&&_dialoghelper.default.close(dlg)},ItemIdentifier.prototype.cleanup=function(){this.options=null,this.dlg=null,this.itemsContainer=null};_exports.default={show:function(item){return new ItemIdentifier({item:item}).show()},showFindNew:function(itemName,itemYear,itemType,serverId){return new ItemIdentifier({item:{Name:itemName,ProductionYear:itemYear,Type:itemType,ServerId:serverId}}).show()},resetMetadata:function(items){(0,_confirm.default)({title:_globalize.default.translate("HeaderRemoveIdentification"),text:_globalize.default.translate("ResetMetadataConfirmation"),confirmText:_globalize.default.translate("HeaderRemoveIdentification"),primaryButton:"cancel"}).then(function(){var apiClient=_connectionmanager.default.getApiClient(items[0]),options={ItemIds:items.map(mapToId).join(",")};return _loading.default.show(),apiClient.resetMetadata(options).then(function(result){return _loading.default.hide(),Promise.resolve(result)},function(err){return _loading.default.hide(),Promise.reject(err)})})}}}); \ No newline at end of file diff --git a/modules/itemidentifier/itemidentifier.template.html b/modules/itemidentifier/itemidentifier.template.html new file mode 100644 index 0000000..6fb1302 --- /dev/null +++ b/modules/itemidentifier/itemidentifier.template.html @@ -0,0 +1,72 @@ +
+ +

+ ${Identify} +

+
+ +
+
+ +
+
+ +

${HeaderIdentifyItemHelp}

+ +
+
${LabelPath}
+
+
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+ +

${SearchResults}

+
+ +
+

${NoItemsMatchingFound}

+
+ +
+ +
+
+
+ +
+
+ ${ThisImageIsOnlyPreview} +
+
+ + + +
+ +
+
+
+
+
\ No newline at end of file diff --git a/modules/layout/layout.css b/modules/layout/layout.css new file mode 100644 index 0000000..087161d --- /dev/null +++ b/modules/layout/layout.css @@ -0,0 +1,385 @@ +:root { + /* Need the px or it won't work inside calc expression */ + --window-inset-top: 0px; + --window-inset-bottom: 0px; + --window-inset-left: 0px; + --window-inset-right: 0px; + /* this is the height of headerLeft + 1.2em padding top + 1.2em padding bottom */ + --header-height: 5.527em; + /* this is here for now instead of headroom.css to ensure it is loaded in time for the js */ + --env-inset-top: env(safe-area-inset-top); + --logo-object-position: left center; +} + +/* this @supports shouldn't be necessary because browsers should ignore what they don't support, but that doesn't seem to be the case with tizen or legacy edge + don't use env as part of the supports check because then tizen falsely considers it supported +*/ +@supports (height: calc(3.125em + 2 * max(3em,4em))) { + + :root { + --header-height: calc(4.327em + max(1.2em, env(safe-area-inset-top, 0))); + } +} + +.rtl:root { + --logo-object-position: right center; +} + +.skinHeader { + /* This will ensure it is on top of the main body */ + z-index: 1; + display: -webkit-flex; + display: flex; + position: fixed; + top: 0; + left: 0; + right: 0; + inset-inline-start: 0; + inset-inline-end: 0; + box-sizing: border-box; + height: var(--header-height); + -webkit-align-items: flex-start; + align-items: flex-start; + contain: strict; + padding-top: 1.2em; + padding-left: 0; + padding-left: env(safe-area-inset-left, 0); + padding-right: 0; + padding-right: env(safe-area-inset-right, 0); + -webkit-align-content: flex-start; + align-content: flex-start; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; +} + +:root, body { + margin: 0 !important; + padding: 0 !important; + height: 100%; + /* Needed to prevent a horizontal scrollbar when animating */ + overflow-x: hidden; + overflow-anchor: none; +} + +.noScrollY { + overflow-y: hidden; +} + +/* Used on document.body to lock document level scrolling when dialogs are open */ +.withDialogOpen { + overflow-y: hidden !important; + /* Have to use this instead of none, otherwise the slideshow can't zoom */ + touch-action: pinch-zoom !important; +} + +.backgroundContainer { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + inset-inline-start: 0; + inset-inline-end: 0; + contain: strict; + /* Can't do this. It causes loss of scrolling on Firefox Android + https://emby.media/community/index.php?/topic/81799-firefox-android-cannot-swipe-scroll-on-any-listing-page + touch-action: none; */ +} + +.transparentDocument, .backgroundContainer-transparent { + background: none !important; + background-color: transparent !important; +} + +.skinBody { + contain: style size; +} + +.hide { + display: none !important; +} + +.page { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + inset-inline-start: 0; + inset-inline-end: 0; + contain: strict; +} + + .page.withTabs { + container-type: inline-size; + container-name: viewwithtabs; + } + +/* Until there's a better place for these */ +.itemsViewSettingsContainer { + -webkit-justify-content: center; + justify-content: center; + padding: 1em 0 1.75em !important; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-align-items: center; + align-items: center; + font-size: 88%; + /* this is a workaround to make it smaller so that pressing the right arrow on an items list doesn't result in navigation moving up to this bar */ + max-width: 95%; + margin: 0 auto; + container-type: inline-size; + container-name: itemsviewsettingscontainer; +} + +.itemsViewSettingsContainer-align-start { + -webkit-justify-content: flex-start; + justify-content: flex-start; + margin: 0; +} + +.itemsViewSettingsContainer-fixed { + position: fixed; + top: 6.25em; + top: calc(var(--header-height) + 1em); + left: 0; + right: 0; + inset-inline-start: 0; + inset-inline-end: 0; + z-index: 1; +} + +.itemsViewSettingsContainer-fixed-scrollx { + top: 5.25em; + top: var(--header-height); + padding: 1em 0 !important; +} + +.itemsContainer_header_fixed { + left: 0; + right: 0; + inset-inline-start: 0; + inset-inline-end: 0; + height: 3.18em; +} + +/* dirty hack to detect support for column-gap in combination with flexbox, which is in Chrome 66+ and iOS 14.1+. + support for @supports with a selector became available around the same time +*/ +@supports selector(:hover) and (display: revert) and (column-gap: 1em) { + + .itemsViewSettingsContainer { + -webkit-column-gap: 1.1ch; + column-gap: 1.1ch; + row-gap: 1em; + } + + .itemsViewSettingsContainer-button, .listTotalRecordCount { + margin: 0 !important; + } +} + +.padded-top { + padding-top: 1em; +} + +.padded-top-page { + padding-top: 6em; + padding-top: var(--header-height); +} + + .padded-top-page.verticalSections { + padding-top: calc(.85em + var(--header-height)); + } + + .padded-top-page.horizontalSections { + margin-top: calc(.85em + var(--header-height)); + padding-top: 0; + container-type: size; + } + +.itemMainScrollSlider { + padding-top: var(--header-height) !important; +} + +.margin-top-page-listheader { + padding-top: 0 !important; + margin-top: 14.3em !important; + margin-top: calc(var(--header-height) + 8.7em) !important; +} + +/* + Forms + */ +form, .readOnlyContent { + max-width: 80ch; +} + +.auto-center { + -webkit-margin-start: auto; + margin-inline-start: auto; + -webkit-margin-end: auto; + margin-inline-end: auto; +} + +.page.dialog { + position: static; + -webkit-flex-grow: 0; + flex-grow: 0; +} + +.listTotalRecordCount { + margin: 0 .75em; +} + +.fieldDescription { + margin-top: .2em; + font-weight: normal; + white-space: normal !important; +} + +.legendDescription { + margin-top: 0; +} + +button::-moz-focus-inner { + padding: 0; + border: 0; +} + +/* Need a better spot for this. used by directory picker and other areas */ +.infoBanner { + margin-bottom: 2em; + padding: 1em; + border-radius: .42em; + display: -webkit-flex; + display: flex; + -webkit-align-items: center; + align-items: center; + -webkit-flex-direction: row; + flex-direction: row; +} + +.infoBanner-primaryText { + margin: 0; + font-weight: bold; +} + +/* Need a better spot for this. used by directory picker and other areas */ +.warningBanner, .errorBanner { + padding: 1em; + border-radius: .42em; + font-weight: 500; +} + +.infoBannerIconContainer { + -webkit-margin-end: 1em; + margin-inline-end: 1em; +} + +.infoBannerIcon { + font-size: 2em; +} + +.rtl .autortl, .rtl-arabic .autortl-arabic { + -webkit-transform: scaleX(-1); + transform: scaleX(-1); +} + +fieldset { + contain: style; + margin: 2em 0; + padding: 0; + border: 0; +} + +legend { + padding: 0; +} + +.fieldset-fields { + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-flex-wrap: nowrap; + flex-wrap: nowrap; +} + +.fieldset-fields-nested { + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-flex-wrap: nowrap; + flex-wrap: nowrap; + padding: 0; +} + +.fieldset-actions { + margin-top: 1em; +} + +.fieldsets { + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-flex-wrap: nowrap; + flex-wrap: nowrap; +} + +.legendWithContent { + display: -webkit-flex; + display: flex; + -webkit-align-items: center; + align-items: center; +} + +.legendActions { + -webkit-margin-start: 1em; + margin-inline-start: 1em; + display: -webkit-flex; + display: flex; + -webkit-align-items: center; + align-items: center; + font-size: 1rem; +} + +.legend-incontainer { + margin: 0; +} + +/* dirty hack to detect support for column-gap in combination with flexbox, which is in Chrome 66+ and iOS 14.1+. + support for @supports with a selector became available around the same time +*/ +@supports selector(:hover) and (display: revert) and (column-gap: 1em) { + .fieldsets { + row-gap: 2em; + } + + .fieldset-fields, .fieldset-fields-nested { + row-gap: 1.6em; + } + + .fieldset-fields-listitems { + row-gap: 1em; + } + + .fieldset-fields-fieldmargins { + row-gap: 0; + } + + .fieldset-field { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + fieldset, .fieldsets-item { + margin: 0; + } +} diff --git a/modules/layout/layout_nocssvars.css b/modules/layout/layout_nocssvars.css new file mode 100644 index 0000000..a6b6c60 --- /dev/null +++ b/modules/layout/layout_nocssvars.css @@ -0,0 +1 @@ +.withheadernowplaying:root .skinHeader{height:9.125em}:root .padded-top-page{padding-top:5.925em!important}:root .padded-top-page.horizontalSections{padding-top:0!important;margin-top:6.5em}.withheadernowplaying:root .padded-top-page{padding-top:9.525em!important}.withheadernowplaying:root .padded-top-page.horizontalSections{padding-top:0!important;margin-top:8.5em} \ No newline at end of file diff --git a/modules/layout/layout_nontv.css b/modules/layout/layout_nontv.css new file mode 100644 index 0000000..6ea3877 --- /dev/null +++ b/modules/layout/layout_nontv.css @@ -0,0 +1 @@ +@media not all and (pointer:fine){:root{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}@media all and (pointer:fine){.hidepointerfine{display:none!important}}@media not all and (pointer:fine){.hidetouch{display:none!important}.withDialogOpen .view.scrollY:not(.dialog){overflow-y:hidden!important;touch-action:pinch-zoom!important}}@media not all and (min-width:60em){.drawer-docked{display:none!important}}@media all and (min-width:60em){.drawer-docked{left:0!important;right:initial!important;inset-inline-start:0%!important;inset-inline-end:initial!important;-webkit-transform:none!important;transform:none!important;box-shadow:none!important}.page-withFullDrawer,.page-withFullDrawer .viewContent-fixed{left:33.15ch;left:clamp(33.15ch,30%,45.5ch);right:0;inset-inline-start:33.15ch;inset-inline-start:clamp(33.15ch,30%,45.5ch);inset-inline-end:0}.skinHeader-withfulldrawer{-webkit-margin-start:33.15ch;margin-inline-start:33.15ch;-webkit-margin-start:clamp(33.15ch,30%,45.5ch);margin-inline-start:clamp(33.15ch,30%,45.5ch)}@media all and (pointer:fine){.page-withFullDrawer,.page-withFullDrawer .viewContent-fixed{left:16.5em;left:calc(16.5em + env(safe-area-inset-left,0));right:0;inset-inline-start:16.5em;inset-inline-start:calc(16.5em + env(safe-area-inset-left,0));inset-inline-end:0}.rtl.withFullDrawer:root .page,.rtl.withFullDrawer:root .viewContent-fixed{inset-inline-start:calc(16.5em + env(safe-area-inset-right,0))}.skinHeader-withfulldrawer{-webkit-margin-start:16.5em;margin-inline-start:16.5em;-webkit-margin-start:calc(16.5em + env(safe-area-inset-left,0));margin-inline-start:calc(16.5em + env(safe-area-inset-left,0))}.rtl:root .skinHeader-withfulldrawer{-webkit-margin-start:calc(16.5em + env(safe-area-inset-right,0));margin-inline-start:calc(16.5em + env(safe-area-inset-right,0))}}.withTabs .viewContent-fixed{inset-inline-start:0!important}.page-withMiniDrawer{left:10ch;right:0;inset-inline-start:10ch;inset-inline-end:0}.skinHeader-withminidrawer{-webkit-margin-start:10ch;margin-inline-start:10ch}}@supports not (container-type:inline-size){@media not all and (min-width:28em){.listTotalRecordCount{display:none!important}}}@container itemsviewsettingscontainer not (min-width:50ch){.listTotalRecordCount{display:none!important}}.page-withDockedDrawer .auto-center{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:0;margin-inline-end:0}@media not all and (min-width:126em){.withHeaderTabs.withFullDrawer:root{--header-height:9.104em}@supports (height:calc(3.125em + 2 * max(3em,4em))){.withHeaderTabs.withFullDrawer:root{--header-height:calc(7.904em + max(1.2em, env(safe-area-inset-top, 0)))}}.withheadernowplaying.withHeaderTabs.withFullDrawer:root{--header-height:13.904em}@supports (height:calc(3.125em + 2 * max(3em,4em))){.withheadernowplaying.withHeaderTabs.withFullDrawer:root{--header-height:calc(12.704em + max(1.2em, env(safe-area-inset-top, 0)))}}}@media not all and (min-width:120em){.withHeaderTabs:root{--header-height:9.104em}@supports (height:calc(3.125em + 2 * max(3em,4em))){.withHeaderTabs:root{--header-height:calc(7.904em + max(1.2em, env(safe-area-inset-top, 0)))}}.withheadernowplaying.withHeaderTabs:root{--header-height:13.904em}@supports (height:calc(3.125em + 2 * max(3em,4em))){.withheadernowplaying.withHeaderTabs:root{--header-height:calc(12.704em + max(1.2em, env(safe-area-inset-top, 0)))}}}@media not all and (min-width:66em){.withHeaderTabs.withFullDrawer:root,.withHeaderTabs:root{--header-height:8.027em}@supports (height:calc(3.125em + 2 * max(3em,4em))){.withHeaderTabs.withFullDrawer:root,.withHeaderTabs:root{--header-height:calc(6.827em + max(1.2em, env(safe-area-inset-top, 0)))}}.withheadernowplaying.withHeaderTabs.withFullDrawer:root,.withheadernowplaying.withHeaderTabs:root{--header-height:12.827em}@supports (height:calc(3.125em + 2 * max(3em,4em))){.withheadernowplaying.withHeaderTabs.withFullDrawer:root,.withheadernowplaying.withHeaderTabs:root{--header-height:calc(11.627em + max(1.2em, env(safe-area-inset-top, 0)))}}}@media all and (min-width:50em){.listIconButton-autohide{display:none!important}}@media not all and (min-width:50em){.listTextButton-autohide{display:none!important}} \ No newline at end of file diff --git a/modules/layout/layout_tv.css b/modules/layout/layout_tv.css new file mode 100644 index 0000000..f2d1a23 --- /dev/null +++ b/modules/layout/layout_tv.css @@ -0,0 +1 @@ +:root{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.withheadernowplaying:root{--header-height:10.327em}@supports (height:calc(3.125em + 2 * max(3em,4em))){.withheadernowplaying:root{--header-height:calc(9.127em + max(1.2em, env(safe-area-inset-top, 0)))}}.focusPreviewContainer{position:fixed;top:0;left:0;right:0}.focusPreviewContainer-clip{max-width:40%}.focusPreviewContainer-horizontal{top:85%;height:12%}.scrollSliderX-withfocusPreview{margin-bottom:20vh}.horizontalSections.scrollSliderX-withfocusPreview{margin-bottom:calc(20vh + 1.25em)}.focusPreviewContainer-inner{height:100%}.focusPreviewImageElement{-webkit-margin-end:1em;margin-inline-end:1em;background-position:center center;background-size:contain;background-repeat:no-repeat;height:100%;width:18vh;-webkit-flex-shrink:0;flex-shrink:0;border-radius:.42em}.focusPreviewImageCard{width:100%!important}.focusPreviewImageCardBox{margin:0!important}.focusPreviewImageContainer{background-color:transparent!important}.focusPreviewTitle{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.focusPreviewTitleImg{height:2em;max-width:97%;margin:0!important;border:0!important;object-fit:contain;object-position:left center;object-position:var(--logo-object-position)}.focusPreviewMediaInfo{-webkit-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.focusPreviewSecondaryTitle{margin:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.focusPreviewOverview{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.focusPreviewOverview-horizontal{-webkit-line-clamp:1}.tab-scroller-withfocuspreview{margin-top:48vh;contain:size style!important}.tab-scroller-withfocuspreview-padded-top-page{padding-top:0!important}.tab-scroller-withfocuspreview:focus-within .verticalSection:has(~ .verticalSection:focus-within){opacity:0}@supports (height:calc(3.125em + 2 * max(3em,4em))){.backdropContainer-withfocuspreview{left:initial;right:0;inset-inline-start:initial;inset-inline-end:0;-webkit-transform:scale(.7);transform:scale(.7);-webkit-transform-origin:top right;transform-origin:top right;opacity:initial}.backdropContainer-withfocuspreview.withBackdrop{background-color:#000;-webkit-mask-image:linear-gradient(to right,transparent 0%,black 50%,black 100%),linear-gradient(to top,transparent 0%,black 50%,black 100%);mask-image:linear-gradient(to right,transparent 0%,black 50%,black 100%),linear-gradient(to top,transparent 0%,black 50%,black 100%);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:source-in;mask-composite:intersect}.backdropContainer-withfocuspreview-rtl.withBackdrop{-webkit-mask-image:linear-gradient(to left,transparent 0%,black 50%,black 100%),linear-gradient(to top,transparent 0%,black 50%,black 100%);mask-image:linear-gradient(to left,transparent 0%,black 50%,black 100%),linear-gradient(to top,transparent 0%,black 50%,black 100%);-webkit-transform-origin:top left;transform-origin:top left}.backgroundContainer-withfocuspreview{z-index:-2}}.settingsContentContainer{max-width:initial;-webkit-padding-end:6%;padding-inline-end:6%}.listIconButton-autohide{display:none!important}.horizontalSection{-webkit-margin-end:1.5em;margin-inline-end:1.5em;-webkit-flex-shrink:0;flex-shrink:0}.wideSpotlightCard:focus>.cardBox-focustransform{-webkit-transform:scale(1.04,1.04)!important;transform:scale(1.04,1.04)!important} \ No newline at end of file diff --git a/modules/layoutmanager.js b/modules/layoutmanager.js new file mode 100644 index 0000000..2e35fa2 --- /dev/null +++ b/modules/layoutmanager.js @@ -0,0 +1 @@ +define(["exports","./browser.js","./emby-apiclient/events.js","./common/appsettings.js","./common/servicelocator.js"],function(_exports,_browser,_events,_appsettings,_servicelocator){var currentLayout;function setLayout(instance,layout,selectedLayout){layout===selectedLayout?(instance[layout]=!0,"tv"===layout&&document.documentElement.classList.add("layout-"+layout)):(instance[layout]=!1,"tv"===layout&&document.documentElement.classList.remove("layout-"+layout))}function LayoutManager(){var saved=this.getSavedLayout();saved?this.setLayout(saved,!1):this.autoLayout()}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,LayoutManager.prototype.setLayout=function(layout,save){var changed;layout&&"auto"!==layout?(setLayout(this,"mobile",layout),setLayout(this,"tv",layout),setLayout(this,"desktop",layout),!1!==save&&_appsettings.default.set("layout",layout),changed=currentLayout!==layout,currentLayout=layout,changed&&_events.default.trigger(this,"modechange")):(this.autoLayout(),!1!==save&&_appsettings.default.set("layout",""))},LayoutManager.prototype.getSavedLayout=function(){return _appsettings.default.get("layout")},LayoutManager.prototype.autoLayout=function(){this.setLayout(this.getDefaultLayout(),!1)},LayoutManager.prototype.getDefaultLayout=function(){if(_servicelocator.appHost.getDefaultLayout){var result=_servicelocator.appHost.getDefaultLayout();if(result)return result}return _browser.default.tv||(!(result=navigator.userAgentData)||!result.mobile)&&window.location.href.toString().toLowerCase().includes("operatv.emby")?"tv":"mobile"},LayoutManager.prototype.enableTVDisplayMode=function(enabled){if(null==enabled)return"tv"===this.getSavedLayout();this.setLayout(enabled?"tv":"mobile",!0)};_exports.default=new LayoutManager}); \ No newline at end of file diff --git a/modules/lazyloader/lazyimageloader.css b/modules/lazyloader/lazyimageloader.css new file mode 100644 index 0000000..472b58a --- /dev/null +++ b/modules/lazyloader/lazyimageloader.css @@ -0,0 +1 @@ +.lazy:not(.legacyLazyLoadImmediate){background-image:none!important} \ No newline at end of file diff --git a/modules/lazyloader/lazyimageloader.js b/modules/lazyloader/lazyimageloader.js new file mode 100644 index 0000000..76adb48 --- /dev/null +++ b/modules/lazyloader/lazyimageloader.js @@ -0,0 +1 @@ +define(["exports","./lazyloader-intersectionobserver.js"],function(_exports,_lazyloaderIntersectionobserver){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var supportsNativeLazyLoading="loading"in HTMLImageElement.prototype;function fillImage(elem){supportsNativeLazyLoading||("IMG"===elem.tagName?(elem.setAttribute("src",elem.getAttribute("data-src")),elem.removeAttribute("data-src")):elem.classList.remove("lazy"))}supportsNativeLazyLoading||require(["css!modules/lazyloader/lazyimageloader.css"]);_exports.default={lazyChildren:function(elem){supportsNativeLazyLoading||_lazyloaderIntersectionobserver.default.lazyChildren(elem,fillImage)}}}); \ No newline at end of file diff --git a/modules/lazyloader/lazyloader-intersectionobserver.js b/modules/lazyloader/lazyloader-intersectionobserver.js new file mode 100644 index 0000000..c1f401b --- /dev/null +++ b/modules/lazyloader/lazyloader-intersectionobserver.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function LazyLoader(options){this.options=options}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,LazyLoader.prototype.createObserver=function(){var observerOptions={},options=this.options,loadedCount=0,callback=options.callback,observerId=(observerOptions.rootMargin="50%","obs"+Date.now()),self=this,observer=new IntersectionObserver(function(entries){for(var j=0,length2=entries.length;j=self.elementCount&&self.destroyObserver()))}},observerOptions);this.observer=observer},LazyLoader.prototype.addElements=function(elements){var observer=this.observer;observer||(this.createObserver(),observer=this.observer),this.elementCount=(this.elementCount||0)+elements.length;for(var i=0,length=elements.length;i*,.libjass-subs .an5>*,.libjass-subs .an6>*{display:table-cell;vertical-align:middle}.libjass-subs .an7,.libjass-subs .an8,.libjass-subs .an9{top:0}.libjass-subs .an1,.libjass-subs .an4,.libjass-subs .an7{text-align:left}.libjass-subs .an2,.libjass-subs .an5,.libjass-subs .an8{text-align:center}.libjass-subs .an3,.libjass-subs .an6,.libjass-subs .an9{text-align:right}.libjass-subs{line-height:0}.libjass-subs div[data-dialogue-id]>span{-webkit-perspective-origin:center;-webkit-perspective:400px;-webkit-perspective-origin:center;perspective-origin:center;-webkit-perspective:400px;perspective:400px}.libjass-font-measure{position:absolute;visibility:hidden;border:0;margin:0;padding:0;line-height:normal}.libjass-filters{display:block} \ No newline at end of file diff --git a/modules/libjass/libjass.js b/modules/libjass/libjass.js new file mode 100644 index 0000000..10be213 --- /dev/null +++ b/modules/libjass/libjass.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/libjass/libjass.css"]);modules=[function(exports,require){var settings=require(23),settings_1=require(23),set=(exports.debugMode=settings_1.debugMode,exports.verboseMode=settings_1.verboseMode,require(33)),settings_1=require(33),map=(exports.Set=settings_1.Set,require(30)),settings_1=require(30),promise=(exports.Map=settings_1.Map,require(32)),settings_1=require(32),settings_1=(exports.Promise=settings_1.Promise,exports.DeferredPromise=settings_1.DeferredPromise,require(37)),settings_1=(exports.webworker=settings_1,require(8)),settings_1=(exports.parts=settings_1,require(1)),settings_1=(exports.parser=settings_1,require(14)),settings_1=(exports.renderers=settings_1,require(24)),settings_1=(exports.ASS=settings_1.ASS,require(25)),settings_1=(exports.Attachment=settings_1.Attachment,exports.AttachmentType=settings_1.AttachmentType,require(26)),settings_1=(exports.Dialogue=settings_1.Dialogue,require(28)),settings_1=(exports.ScriptProperties=settings_1.ScriptProperties,require(29)),settings_1=(exports.Style=settings_1.Style,require(27));exports.BorderStyle=settings_1.BorderStyle,exports.Format=settings_1.Format,exports.WrappingStyle=settings_1.WrappingStyle,Object.defineProperties(exports,{debugMode:{get:function(){return settings.debugMode},set:settings.setDebugMode},verboseMode:{get:function(){return settings.verboseMode},set:settings.setVerboseMode},Set:{get:function(){return set.Set},set:set.setImplementation},Map:{get:function(){return map.Map},set:map.setImplementation},Promise:{get:function(){return promise.Promise},set:promise.setImplementation}})},function(exports,require){var parse_1=require(3),parse_1=(exports.parse=parse_1.parse,require(5)),parse_1=(exports.BrowserReadableStream=parse_1.BrowserReadableStream,exports.StringStream=parse_1.StringStream,exports.XhrStream=parse_1.XhrStream,require(4));exports.StreamParser=parse_1.StreamParser,exports.SrtStreamParser=parse_1.SrtStreamParser},function(exports,require){var map_1=require(30);function parseLineIntoProperty(line){var colonPos=line.indexOf(":");return-1===colonPos?null:{name:line.substr(0,colonPos),value:line.substr(colonPos+1).replace(/^\s+/,"")}}exports.parseLineIntoProperty=parseLineIntoProperty,exports.parseLineIntoTypedTemplate=function(line,formatSpecifier){var value,template;return null===(line=parseLineIntoProperty(line))?null:((value=line.value.split(",")).length>formatSpecifier.length&&(value[formatSpecifier.length-1]=value.slice(formatSpecifier.length-1).join(",")),template=new map_1.Map,formatSpecifier.forEach(function(formatKey,index){template.set(formatKey,value[index])}),{type:line.name,template:template})}},function(exports,require){var parts=require(8),settings_1=require(23),rules=new(require(30).Map);function parse(input,rule){var run=new ParserRun(input,rule);if(null===run.result||run.result.end!==input.length)throw settings_1.debugMode&&console.error("Parse failed. %s %s %o",rule,input,run.result),new Error("Parse failed.");return run.result.value}exports.parse=parse;var ParserRun=function(){function ParserRun(input,rule){this._input=input,this._parseTree=new ParseNode(null),this._result=rules.get(rule).call(this,this._parseTree)}return Object.defineProperty(ParserRun.prototype,"result",{get:function(){return this._result},enumerable:!0,configurable:!0}),ParserRun.prototype.parse_dialogueParts=function(parent){var current=new ParseNode(parent);for(current.value=[];this._haveMore();){var enclosedTagsNode=this.parse_enclosedTags(current);if(null!==enclosedTagsNode)(_a=current.value).push.apply(_a,enclosedTagsNode.value);else{var _a=this.parse_newline(current)||this.parse_hardspace(current)||this.parse_text(current);if(null===_a)return parent.pop(),null;_a.value instanceof parts.Text&¤t.value[current.value.length-1]instanceof parts.Text?(enclosedTagsNode=current.value[current.value.length-1],current.value[current.value.length-1]=new parts.Text(enclosedTagsNode.value+_a.value.value)):current.value.push(_a.value)}}var inDrawingMode=!1;return current.value.forEach(function(part,i){part instanceof parts.DrawingMode?inDrawingMode=0!==part.scale:part instanceof parts.Text&&inDrawingMode&&(current.value[i]=new parts.DrawingInstructions(parse(part.value,"drawingInstructions")))}),current},ParserRun.prototype.parse_enclosedTags=function(parent){var current=new ParseNode(parent);if(current.value=[],null===this.read(current,"{"))return parent.pop(),null;for(var next=this._peek();this._haveMore()&&"}"!==next;next=this._peek()){var childNode=null;if(null!==this.read(current,"\\")&&null===(childNode=this.parse_tag_alpha(current)||this.parse_tag_iclip(current)||this.parse_tag_xbord(current)||this.parse_tag_ybord(current)||this.parse_tag_xshad(current)||this.parse_tag_yshad(current)||this.parse_tag_blur(current)||this.parse_tag_bord(current)||this.parse_tag_clip(current)||this.parse_tag_fade(current)||this.parse_tag_fscx(current)||this.parse_tag_fscy(current)||this.parse_tag_move(current)||this.parse_tag_shad(current)||this.parse_tag_fad(current)||this.parse_tag_fax(current)||this.parse_tag_fay(current)||this.parse_tag_frx(current)||this.parse_tag_fry(current)||this.parse_tag_frz(current)||this.parse_tag_fsp(current)||this.parse_tag_fsplus(current)||this.parse_tag_fsminus(current)||this.parse_tag_org(current)||this.parse_tag_pbo(current)||this.parse_tag_pos(current)||this.parse_tag_an(current)||this.parse_tag_be(current)||this.parse_tag_fn(current)||this.parse_tag_fr(current)||this.parse_tag_fs(current)||this.parse_tag_kf(current)||this.parse_tag_ko(current)||this.parse_tag_1a(current)||this.parse_tag_1c(current)||this.parse_tag_2a(current)||this.parse_tag_2c(current)||this.parse_tag_3a(current)||this.parse_tag_3c(current)||this.parse_tag_4a(current)||this.parse_tag_4c(current)||this.parse_tag_a(current)||this.parse_tag_b(current)||this.parse_tag_c(current)||this.parse_tag_i(current)||this.parse_tag_k(current)||this.parse_tag_K(current)||this.parse_tag_p(current)||this.parse_tag_q(current)||this.parse_tag_r(current)||this.parse_tag_s(current)||this.parse_tag_t(current)||this.parse_tag_u(current))&¤t.pop(),null===(childNode=null===childNode?this.parse_comment(current):childNode))return parent.pop(),null;childNode.value instanceof parts.Comment&¤t.value[current.value.length-1]instanceof parts.Comment?current.value[current.value.length-1]=new parts.Comment(current.value[current.value.length-1].value+childNode.value.value):current.value.push(childNode.value)}return null===this.read(current,"}")?(parent.pop(),null):current},ParserRun.prototype.parse_newline=function(parent){var current=new ParseNode(parent);return null===this.read(current,"\\N")?(parent.pop(),null):(current.value=new parts.NewLine,current)},ParserRun.prototype.parse_hardspace=function(parent){var current=new ParseNode(parent);return null===this.read(current,"\\h")?(parent.pop(),null):(current.value=new parts.Text(" "),current)},ParserRun.prototype.parse_text=function(parent){var value=this._peek(),parent=new ParseNode(parent),value=new ParseNode(parent,value);return parent.value=new parts.Text(value.value),parent},ParserRun.prototype.parse_comment=function(parent){var value=this._peek(),parent=new ParseNode(parent),value=new ParseNode(parent,value);return parent.value=new parts.Comment(value.value),parent},ParserRun.prototype.parse_tag_a=function(parent){var current=new ParseNode(parent);if(null===this.read(current,"a"))return parent.pop(),null;var next=this._peek();switch(next){case"1":var next2=this._peek(2);switch(next2){case"10":case"11":next=next2}break;case"2":case"3":case"5":case"6":case"7":case"9":break;default:return parent.pop(),null}var value=null;switch(new ParseNode(current,next).value){case"1":value=1;break;case"2":value=2;break;case"3":value=3;break;case"5":value=7;break;case"6":value=8;break;case"7":value=9;break;case"9":value=4;break;case"10":value=5;break;case"11":value=6}return current.value=new parts.Alignment(value),current},ParserRun.prototype.parse_tag_alpha=function(){throw new Error("Method not implemented.")},ParserRun.prototype.parse_tag_an=function(parent){var next,current=new ParseNode(parent);return null===this.read(current,"an")||(next=this._peek())<"1"||"9">8&255,parent>>16&255);null!==this.read(current,"&")||null!==this.read(current,"H"););return current},ParserRun.prototype.parse_alpha=function(parent){for(var current=new ParseNode(parent);null!==this.read(current,"&")||null!==this.read(current,"H"););var valueNode=this.parse_hexInt32(current);if(null===valueNode)return parent.pop(),null;parent=valueNode.value;for(current.value=1-(255&parent)/255;null!==this.read(current,"&")||null!==this.read(current,"H"););return current},ParserRun.prototype.parse_colorWithAlpha=function(parent){var current=new ParseNode(parent),valueNode=this.parse_decimalOrHexInt32(current);return null===valueNode?(parent.pop(),null):(parent=valueNode.value,current.value=new parts.Color(255&parent,parent>>8&255,parent>>16&255,1-(parent>>24&255)/255),current)},ParserRun.prototype.read=function(parent,next){return this._peek(next.length)!==next?null:new ParseNode(parent,next)},ParserRun.prototype._peek=function(count){return 1===(count=void 0===count?1:count)?this._input[this._parseTree.end]:this._input.substr(this._parseTree.end,count)},ParserRun.prototype._haveMore=function(){return this._parseTree.end (\d\d:\d\d:\d\d,\d\d\d)/.exec(line))&&(this._currentDialogueStart=match[1].replace(",","."),this._currentDialogueEnd=match[2].replace(",",".")):(line=line.replace(//g,"{\\b1}").replace(/\{b\}/g,"{\\b1}").replace(/<\/b>/g,"{\\b0}").replace(/\{\/b\}/g,"{\\b0}").replace(//g,"{\\i1}").replace(/\{i\}/g,"{\\i1}").replace(/<\/i>/g,"{\\i0}").replace(/\{\/i\}/g,"{\\i0}").replace(//g,"{\\u1}").replace(/\{u\}/g,"{\\u1}").replace(/<\/u>/g,"{\\u0}").replace(/\{\/u\}/g,"{\\u0}").replace(//g,function(substring,red,green,blue){return"{c&H"+blue+green+red+"&}"}).replace(/<\/font>/g,"{\\c}"),null!==this._currentDialogueText?this._currentDialogueText+="\\N"+line:this._currentDialogueText=line),this._stream.nextLine().then(function(line){return _this._onNextLine(line)},function(reason){_this._deferred.reject(reason)}))},SrtStreamParser}());exports.SrtStreamParser=require},function(exports,require){var promise_1=require(32),require=function(){function StringStream(str){this._str=str,this._readTill=0}return StringStream.prototype.nextLine=function(){var nextNewLinePos,result=null;return this._readTillthis._autoPauseAfter?(this._lastKnownExternalTimeObtainedAt=null,this._manualClock.pause()):this._manualClock.tick((timeStamp-this._lastKnownExternalTimeObtainedAt)/1e3*this._manualClock.rate+this._lastKnownExternalTime):(this._lastKnownExternalTime=currentExternalTime,this._lastKnownExternalTimeObtainedAt=timeStamp,this._manualClock.tick(currentExternalTime)),this._nextAnimationFrameRequestId=requestAnimationFrame(function(timeStamp){return _this._onTimerTick(timeStamp)})):settings_1.debugMode&&console.warn("AutoClock._onTimerTick: Called when disabled.")},AutoClock.prototype._startTicking=function(){var _this=this;null===this._nextAnimationFrameRequestId&&(this._nextAnimationFrameRequestId=requestAnimationFrame(function(timeStamp){return _this._onTimerTick(timeStamp)}))},AutoClock.prototype._stopTicking=function(){null!==this._nextAnimationFrameRequestId&&(cancelAnimationFrame(this._nextAnimationFrameRequestId),this._nextAnimationFrameRequestId=null)},AutoClock}();exports.AutoClock=require},function(exports){var EventSource=function(){function EventSource(){}return EventSource.prototype.addEventListener=function(type,listener){var listeners=this._eventListeners.get(type);void 0===listeners&&this._eventListeners.set(type,listeners=[]),listeners.push(listener)},EventSource.prototype._dispatchEvent=function(type,args){var listeners=this._eventListeners.get(type);if(void 0!==listeners)for(var _i=0;_i=part.end?1:Math.pow((currentTimeRelativeToDialogueStart-part.start)/(part.end-part.start),part.accel),_b=0,_c=part.tags;_b<_c.length;_b++){var tag=_c[_b];tag instanceof parts.Border?(currentSpanStyles.outlineWidth+=progression*(tag.value-currentSpanStyles.outlineWidth),currentSpanStyles.outlineHeight+=progression*(tag.value-currentSpanStyles.outlineHeight)):tag instanceof parts.BorderX?currentSpanStyles.outlineWidth+=progression*(tag.value-currentSpanStyles.outlineWidth):tag instanceof parts.BorderY?currentSpanStyles.outlineHeight+=progression*(tag.value-currentSpanStyles.outlineHeight):tag instanceof parts.Shadow?(currentSpanStyles.shadowDepthX+=progression*(tag.value-currentSpanStyles.shadowDepthX),currentSpanStyles.shadowDepthY+=progression*(tag.value-currentSpanStyles.shadowDepthY)):tag instanceof parts.ShadowX?currentSpanStyles.shadowDepthX+=progression*(tag.value-currentSpanStyles.shadowDepthX):tag instanceof parts.ShadowY?currentSpanStyles.shadowDepthY+=progression*(tag.value-currentSpanStyles.shadowDepthY):tag instanceof parts.Blur?currentSpanStyles.blur+=progression*(tag.value-currentSpanStyles.blur):tag instanceof parts.GaussianBlur?currentSpanStyles.gaussianBlur+=progression*(tag.value-currentSpanStyles.gaussianBlur):tag instanceof parts.FontSize?currentSpanStyles.fontSize+=progression*(tag.value-currentSpanStyles.fontSize):tag instanceof parts.FontSizePlus?currentSpanStyles.fontSize+=progression*tag.value:tag instanceof parts.FontSizeMinus?currentSpanStyles.fontSize-=progression*tag.value:tag instanceof parts.FontScaleX?currentSpanStyles.fontScaleX+=progression*(tag.value-currentSpanStyles.fontScaleX):tag instanceof parts.FontScaleY?currentSpanStyles.fontScaleY+=progression*(tag.value-currentSpanStyles.fontScaleY):tag instanceof parts.LetterSpacing?currentSpanStyles.letterSpacing+=progression*(tag.value-currentSpanStyles.letterSpacing):tag instanceof parts.RotateX?currentSpanStyles.rotationX+=progression*(tag.value-currentSpanStyles.rotationX):tag instanceof parts.RotateY?currentSpanStyles.rotationY+=progression*(tag.value-currentSpanStyles.rotationY):tag instanceof parts.RotateZ?currentSpanStyles.rotationZ+=progression*(tag.value-currentSpanStyles.rotationZ):tag instanceof parts.SkewX?currentSpanStyles.skewX+=progression*(tag.value-currentSpanStyles.skewX):tag instanceof parts.SkewY?currentSpanStyles.skewY+=progression*(tag.value-currentSpanStyles.skewY):tag instanceof parts.PrimaryColor?currentSpanStyles.primaryColor=currentSpanStyles.primaryColor.interpolate(tag.value,progression):tag instanceof parts.SecondaryColor?currentSpanStyles.secondaryColor=currentSpanStyles.secondaryColor.interpolate(tag.value,progression):tag instanceof parts.OutlineColor?currentSpanStyles.outlineColor=currentSpanStyles.outlineColor.interpolate(tag.value,progression):tag instanceof parts.ShadowColor?currentSpanStyles.shadowColor=currentSpanStyles.shadowColor.interpolate(tag.value,progression):tag instanceof parts.Alpha?(currentSpanStyles.primaryAlpha+=progression*(tag.value-currentSpanStyles.primaryAlpha),currentSpanStyles.secondaryAlpha+=progression*(tag.value-currentSpanStyles.secondaryAlpha),currentSpanStyles.outlineAlpha+=progression*(tag.value-currentSpanStyles.outlineAlpha),currentSpanStyles.shadowAlpha+=progression*(tag.value-currentSpanStyles.shadowAlpha)):tag instanceof parts.PrimaryAlpha?currentSpanStyles.primaryAlpha+=progression*(tag.value-currentSpanStyles.primaryAlpha):tag instanceof parts.SecondaryAlpha?currentSpanStyles.secondaryAlpha+=progression*(tag.value-currentSpanStyles.secondaryAlpha):tag instanceof parts.OutlineAlpha?currentSpanStyles.outlineAlpha+=progression*(tag.value-currentSpanStyles.outlineAlpha):tag instanceof parts.ShadowAlpha&&(currentSpanStyles.shadowAlpha+=progression*(tag.value-currentSpanStyles.shadowAlpha))}else part instanceof parts.DrawingMode?0!==part.scale&&(currentDrawingStyles.scale=part.scale):part instanceof parts.DrawingBaselineOffset?currentDrawingStyles.baselineOffset=part.value:part instanceof parts.DrawingInstructions?(currentSpan.appendChild(currentDrawingStyles.toSVG(part,currentSpanStyles.primaryColor.withAlpha(currentSpanStyles.primaryAlpha))),startNewSpan(!1)):part instanceof parts.Text?(currentSpan.appendChild(document.createTextNode(part.value+"")),startNewSpan(!1)):settings_1.debugMode&&part instanceof parts.Comment?(currentSpan.appendChild(document.createTextNode(part.value)),startNewSpan(!1)):part instanceof parts.NewLine&&startNewSpan(!0);for(var _d=0,_e=dialogue.parts;_d<_e.length;_d++)if((part=_e[_d])instanceof parts.Position||part instanceof parts.Move){var transformOrigin=WebRenderer._transformOrigins[dialogue.alignment],divTransformStyle="translate("+-transformOrigin[0]+"%, "+-transformOrigin[1]+"%) translate(-"+sub.style.marginLeft+", -"+sub.style.marginTop+")",transformOrigin=transformOrigin[0]+"% "+transformOrigin[1]+"%";sub.style.webkitTransform=divTransformStyle,sub.style.webkitTransformOrigin=transformOrigin,sub.style.transform=divTransformStyle,sub.style.transformOrigin=transformOrigin;break}switch(wrappingStyle){case misc_1.WrappingStyle.EndOfLineWrapping:sub.style.whiteSpace="pre-wrap";break;case misc_1.WrappingStyle.NoLineWrapping:sub.style.whiteSpace="pre";break;case misc_1.WrappingStyle.SmartWrappingWithWiderTopLine:case misc_1.WrappingStyle.SmartWrappingWithWiderBottomLine:sub.style.whiteSpace="pre-wrap"}if(""!==sub.style.position)switch(dialogue.alignment){case 1:case 4:case 7:sub.style.textAlign="left";break;case 2:case 5:case 8:sub.style.textAlign="center";break;case 3:case 6:case 9:sub.style.textAlign="right"}sub.style.webkitAnimation=dialogueAnimationCollection.animationStyle,sub.style.animation=dialogueAnimationCollection.animationStyle,sub.setAttribute("data-dialogue-id",this.id+"-"+dialogue.id),""!==dialogueAnimationStylesElement.textContent&&sub.appendChild(dialogueAnimationStylesElement),svgDefsElement.hasChildNodes()&&sub.appendChild(alreadyPreRenderedSub);svgDefsElement={sub:sub,animationDelays:dialogueAnimationCollection.animationDelays};return dialogue.containsTransformTag||this._preRenderedSubs.set(dialogue.id,svgDefsElement),svgDefsElement},WebRenderer.prototype.draw=function(dialogue){var _this=this;if(!this._currentSubs.has(dialogue)||dialogue.containsTransformTag){settings_1.debugMode&&console.log(dialogue.toString());function applyAnimationDelays(node){var animationNames=node.style.animationName||node.style.webkitAnimationName;void 0!==animationNames&&""!==animationNames&&(animationNames=animationNames.split(",").map(function(name){return name=name.trim(),((preRenderedSub.animationDelays.get(name)+dialogue.start-_this.clock.currentTime)/_this.clock.rate).toFixed(3)+"s"}).join(", "),node.style.webkitAnimationDelay=animationNames,node.style.animationDelay=animationNames)}for(var preRenderedSub=this._preRenderedSubs.get(dialogue.id),result=(void 0===preRenderedSub&&(preRenderedSub=this.preRender(dialogue),settings_1.debugMode)&&console.log(dialogue.toString()),preRenderedSub.sub.cloneNode(!0)),animatedDescendants=(applyAnimationDelays(result),result.querySelectorAll('[style*="animation:"]')),i=0;icurrentTime||dialogue.end.listItemContent-touchzoom,.itemElement-activetouch>.listItemContent-touchzoom{-webkit-transform:scale(1.03);transform:scale(1.03)}}.listItem-content{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;width:100%;position:relative;contain:layout style;box-sizing:border-box}.listItem-content-withwrap{-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:initial;align-items:initial}@media (pointer:fine){.listItem-hoverable:hover .listItem-content::before{position:absolute;content:" ";top:0;left:-.6em;right:-.6em;bottom:0;border-radius:.6em;z-index:-1}}.dragClone .listItem-content::before{position:absolute;content:" ";top:0;left:-.6em;right:-.6em;bottom:0;border-radius:.6em;z-index:-1}.listItem-expandout:focus .listItem-content::before{position:absolute;content:" ";top:0;left:-1em;right:-1em;bottom:0;border-radius:.6em;z-index:-1}.listItem-border{margin:.16em 0}.listItem-border::after{content:" ";position:absolute;left:0;right:0;bottom:-.2em;height:.07em}@media (-webkit-min-device-pixel-ratio:2){.listItem-border::after{height:.04em;bottom:-.18em}}@media (-webkit-min-device-pixel-ratio:3){.listItem-border::after{height:.02em;bottom:-.17em}}@media not all and (pointer:fine){.listItem-border-autohide{margin-bottom:0}.listItem-border-autohide::after{display:none}.listItem-border-autohide .listItemBody{padding-top:.3em;padding-bottom:.3em}}.listItem-content-bg-background{margin:.276em 0}.listItem-content-margin{margin:.3em 0}.listItem-content-margin.listItem-border::after{bottom:-.321em}@media (-webkit-min-device-pixel-ratio:2){.listItem-content-margin.listItem-border::after{bottom:-.319em}}@media (-webkit-min-device-pixel-ratio:3){.listItem-content-margin.listItem-border::after{bottom:-.318em}}.listItem-content-marginx2{margin:.5em 0}.listItem-content-marginx2.listItem-border{margin:.57em 0}.listItem-content-marginx2.listItem-border::after{bottom:-.61em}@media (-webkit-min-device-pixel-ratio:2){.listItem-content-marginx2.listItem-border::after{bottom:-.59em}}@media (-webkit-min-device-pixel-ratio:3){.listItem-content-marginx2.listItem-border::after{bottom:-.58em}}.listItem-content-marginx3{margin:.5em 0}.listItem-content-marginx3.listItem-border::after{bottom:-.54em}@media (-webkit-min-device-pixel-ratio:2){.listItem-content-marginx3.listItem-border::after{bottom:-.52em}}@media (-webkit-min-device-pixel-ratio:3){.listItem-content-marginx3.listItem-border::after{bottom:-.51em}}@media all and (orientation:landscape){.listItem-content-marginx3{margin:1em 0}.listItem-content-marginx3.listItem-border::after{bottom:-1.04em}@media (-webkit-min-device-pixel-ratio:2){.listItem-content-marginx3.listItem-border::after{bottom:-1.02em}}@media (-webkit-min-device-pixel-ratio:3){.listItem-content-marginx3.listItem-border::after{bottom:-1.01em}}}.listItem-innerwrapper{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-grow:1;flex-grow:1;-webkit-align-items:center;align-items:center}.listItem-indexnumberleft{width:3ch;text-align:start;-webkit-flex-shrink:0;flex-shrink:0}.listItemImageContainer,.listItemImage,.listItemIcon,.listItemAside{-webkit-flex-shrink:0;flex-shrink:0}.listItemAsideContainer{-webkit-margin-end:.25em;margin-inline-end:.25em}.listItemAsideIcon{font-size:163%}.listItemButton{margin:0;-webkit-flex-shrink:0;flex-shrink:0;contain:layout style;-webkit-align-self:center;align-self:center}.listItemBody{-webkit-flex-grow:1;flex-grow:1;padding:.44em .75em;-webkit-padding-start:1em;padding-inline-start:1em;min-height:2.4em;overflow:hidden;text-overflow:ellipsis;-webkit-flex-direction:column;flex-direction:column;vertical-align:middle;-webkit-justify-content:center;justify-content:center;text-align:start;-webkit-align-items:initial;align-items:initial;margin:0}.listItemBody-reduceypadding{padding-top:.24em;padding-bottom:.24em}@media not all and (pointer:fine){.listItemBody-draghandle{min-height:3.4em}}.listItemBody-3-lines{min-height:4.29em}.listItemBody-4-lines{min-height:5.72em}.listItemBody-5-lines{min-height:7.15em}.listItemBody-6-lines{min-height:8.58em}.listItemBody-7-lines{min-height:10.01em}.listItemBody-noleftpadding{-webkit-padding-start:0!important;padding-inline-start:0!important}.listItemBody-code{font-family:ui-monospace,monospace}.listItemBody-noverticalpadding{padding-top:0;padding-bottom:0}.listItemBodyText{margin:0;overflow:hidden;text-overflow:ellipsis}h3.listItemBodyText{margin:.25em 0 0;font-weight:600}.listItemBodyText-nowrap{white-space:nowrap}.listItemBodyText-withmediainfo{margin:.4em 0;-webkit-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.listItemBodyText-secondary{font-size:92%}@media all and (min-width:50em){.listItemBodyText-secondary-of{font-size:inherit}}@media not all and (pointer:fine){.listItemBodyText-lf{font-size:116%}.listItemBodyText-lf.listItemBodyText-secondary{font-size:92%}}.listItemImageContainer{width:3.42em;height:3.42em;position:relative;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;border-radius:.42em;overflow:hidden;contain:strict;-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0}.listItem-border-offset::after{-webkit-margin-start:1em;margin-inline-start:1em;left:3.42em;right:0;inset-inline-start:3.42em;inset-inline-end:0}.listItemImageContainer-margin{margin:.27em 0}.listItem-hoverable:hover .listItemImageContainer:not(.listItemImageContainer-margin),.listItem-tv:focus .listItemImageContainer:not(.listItemImageContainer-margin){border-start-end-radius:0;border-end-end-radius:0}.listItem-tv:focus .listItem-content-fb::before{content:" ";position:absolute;top:-.33em;left:-.33em;right:-.33em;bottom:-.33em;border-width:.25em;border-style:solid;border-radius:.7em}.listItem:focus-visible .listItem-content-fb::before{content:" ";position:absolute;top:-.33em;left:-.33em;right:-.33em;bottom:-.33em;border-width:.25em;border-style:solid;border-radius:.7em}.listItem-tv:focus .listItem-content-bg{z-index:1}.listItemImageContainer-fourThree{width:4.56em;height:3.42em}.listItem-border-offset-fourThree::after{left:4.56em;right:0;inset-inline-start:4.56em;inset-inline-end:0}.listItemImageContainer-backdrop{width:6.08em;height:3.26em}.listItem-border-offset-backdrop::after{left:6.08em;right:0;inset-inline-start:6.08em;inset-inline-end:0}.listItemImageContainer-portrait{width:4.4666666666667em;height:6.7em}.listItem-border-offset-portrait::after{left:4.4666666666667em;right:0;inset-inline-start:4.4666666666667em;inset-inline-end:0}.listItemImageContainer-smallest.listItemImageContainer-square{height:2.4em;width:2.4em}.listItem-border-offset-square-smallest::after{left:2.4em;right:0;inset-inline-start:2.4em;inset-inline-end:0}.listItemImageContainer-small.listItemImageContainer-square{height:4.2em;width:4.2em}.listItem-border-offset-square-small::after{left:4.2em;right:0;inset-inline-start:4.2em;inset-inline-end:0}.listItemImageContainer-medium{height:9em;width:16em;-webkit-margin-end:.25em;margin-inline-end:.25em}.listItem-border-offset-medium::after{left:16em;right:0;inset-inline-start:16em;inset-inline-end:0}.listItemImageContainer-medium.listItemImageContainer-backdrop{height:7em;width:12.44444444444em}.listItem-border-offset-backdrop-medium::after{left:12.44444444444em;right:0;inset-inline-start:12.44444444444em;inset-inline-end:0}.listItemImageContainer-medium.listItemImageContainer-fourThree{width:12em;height:9em}.listItem-border-offset-fourThree-medium::after{left:12em;right:0;inset-inline-start:12em;inset-inline-end:0}.listItemImageContainer-medium.listItemImageContainer-portrait{height:7em;width:4.666666667em}.listItem-border-offset-portrait-medium::after{left:4.666666667em;right:0;inset-inline-start:4.666666667em;inset-inline-end:0}.listItemImageContainer-medium.listItemImageContainer-square{height:7em;width:7em}.listItem-border-offset-square-medium::after{left:7em;right:0;inset-inline-start:7em;inset-inline-end:0}@supports (width:max(10em,5vw)){.listItemImageContainer-medium.listItemImageContainer-square{height:min(7em,20vw);width:min(7em,20vw)}.listItem-border-offset-square-medium::after{left:min(7em,20vw);right:0;inset-inline-start:min(7em,20vw);inset-inline-end:0}.listItemImageContainer-medium.listItemImageContainer-backdrop{height:min(7em,18vw);width:calc(min(7em,18vw) * 16 / 9)}.listItem-border-offset-backdrop-medium::after{left:calc(min(7em,18vw) * 16 / 9);right:0;inset-inline-start:calc(min(7em,18vw) * 16 / 9);inset-inline-end:0}.listItemImageContainer-medium.listItemImageContainer-fourThree{height:min(9em,18vw);width:calc(min(9em,18vw) * 4 / 3)}.listItem-border-offset-fourThree-medium::after{left:calc(min(9em,18vw) * 4 / 3);right:0;inset-inline-start:calc(min(9em,18vw) * 4 / 3);inset-inline-end:0}}.listItemImageContainer-large{width:16em;height:9em}.listItem-border-offset-large::after{-webkit-margin-start:1em;margin-inline-start:1em;left:16em;right:0;inset-inline-start:16em;inset-inline-end:0}.listItemImageContainer-large.listItemImageContainer-fourThree{height:9em;width:12em}.listItem-border-offset-fourThree-large::after{left:12em;right:0;inset-inline-start:12em;inset-inline-end:0}.listItemImageContainer-large.listItemImageContainer-square{height:9em;width:9em}.listItem-border-offset-square-large::after{left:9em;right:0;inset-inline-start:9em;inset-inline-end:0}.listItemImageContainer-large.listItemImageContainer-portrait{height:11em;width:7.333333333333em}.listItem-border-offset-portrait-large::after{left:7.333333333333em;right:0;inset-inline-start:7.333333333333em;inset-inline-end:0}@supports (width:max(10em,5vw)){.listItemImageContainer-large.listItemImageContainer-square{height:min(9em,20vw);width:min(9em,20vw)}.listItem-border-offset-square-large::after{left:min(9em,20vw);right:0;inset-inline-start:min(9em,20vw);inset-inline-end:0}.listItemImageContainer-large.listItemImageContainer-backdrop{height:min(9em,18vw);width:calc(min(9em,18vw) * 16 / 9)}.listItem-border-offset-backdrop-large::after{left:calc(min(9em,18vw) * 16 / 9);right:0;inset-inline-start:calc(min(9em,18vw) * 16 / 9);inset-inline-end:0}.listItemImageContainer-large.listItemImageContainer-fourThree{height:min(10em,18vw);width:calc(min(10em,18vw) * 4 / 3)}.listItem-border-offset-fourThree-large::after{left:calc(min(10em,18vw) * 4 / 3);right:0;inset-inline-start:calc(min(10em,18vw) * 4 / 3);inset-inline-end:0}}.listItemImageContainer-large-tv.listItemImageContainer-backdrop{width:17.777777777777777778em;height:10em}.listItemImageContainer-large-tv.listItemImageContainer-fourThree{width:16em;height:12em}.listItemImageContainer-large-tv.listItemImageContainer-square{width:12em;height:12em}.listItemImageContainer-large-tv.listItemImageContainer-portrait{width:8em;height:12em}@supports (aspect-ratio:2 / 3){.listItemImageContainer-backdrop,.listItemImageContainer-fourThree,.listItemImageContainer-square,.listItemImageContainer-portrait{width:auto!important}}.listItemImage{border-radius:inherit;background-position:center center;background-repeat:no-repeat;position:relative;overflow:hidden;width:100%;height:100%;object-position:center center;contain:layout style paint}.listItemImage:not(.coveredImage){background-size:contain;object-fit:contain}.listItemImage.coveredImage{background-size:contain;object-fit:contain}.listItemImage.coveredImage-noScale{background-size:contain;object-fit:contain}.listItemImage-round,.listItemImageContainer-round{border-radius:100em}@supports (aspect-ratio:2 / 3){.listItemImage.coveredImage{background-size:100% 100%;object-fit:fill}.listItemImage.coveredImage-noScale{background-size:cover;object-fit:cover}.listItemImage-fourThree{height:auto}.listItemImage-backdrop{height:auto}.listItemImage-square{height:auto}.listItemImage-portrait{width:auto}}.listItemImage.coveredImage-contain{background-size:contain;object-fit:contain}.listItemImageButton{margin:0;color:#fff;font-size:1em;background:0 0;transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out;display:-webkit-flex;display:flex;position:absolute;top:50%;left:50%;inset-inline-start:50%;inset-inline-end:initial;-webkit-margin-start:-1.85em;margin-inline-start:-1.85em;margin-top:-1.85em;-webkit-border-fit:border!important}@media (pointer:fine){.listItemImageButton{display:none}}.listItemImageButton-icon{background:rgba(0,0,0,.5);border:.09em solid currentcolor;border-radius:100em;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;padding:.16em}.listItemIcon{font-size:163%;padding:0 .25em}.listItemImageContainer-smaller .listItemIcon{font-size:200%}.listItemImageContainer-medium .listItemIcon{font-size:240%}.listItemImageContainer>.listItemIcon{margin:0}.listViewDragHandle{padding:.3em;-webkit-align-self:center;align-self:center}@media not all and (pointer:fine){.listViewDragHandle{padding:.66em}}.listItemProgressBar{position:absolute!important;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0}.listItem-content-bg{border-radius:.6em}.listItem:focus .secondary{color:inherit!important}.listItem-focusscale{transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out}.listItem-focusscale:focus{-webkit-transform:scale(1.015,1.015);transform:scale(1.015,1.015)}.listItemMediaInfo{display:none;-webkit-align-items:center;align-items:center;-webkit-margin-end:1em;margin-inline-end:1em;-webkit-flex-shrink:0;flex-shrink:0}.listGroupHeader-first{margin-top:0}.listItemIndicator{right:.324em;inset-inline-start:initial;inset-inline-end:.324em;top:.324em;position:absolute;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.listItemIndicator-mini{right:.2em;inset-inline-start:initial;inset-inline-end:.2em;top:.2em}.listItem,.listItemBody,.listItemMediaInfo{display:-webkit-flex;display:flex;contain:layout style}.listItem-bottomoverview{font-size:92%;height:3.1em;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}@supports (container-type:inline-size){@container itemscontainer-list not (min-width:50em){.listItem-overview-autohide,.listItemMediaInfo-autohide{display:none!important}}@container itemscontainer-list not (min-width:75em){.listItemButton-autohide{display:none!important}}@container itemscontainer-list (min-width:50em){.listItem-bottomoverview{display:none!important}}}@supports not (container-type:inline-size){@media not all and (min-width:50em){.listItem-overview-autohide,.listItemMediaInfo-autohide{display:none!important}}@media all and (min-width:50em){.listItem-bottomoverview{display:none!important}}@media not all and (min-width:75em){.listItemButton-autohide{display:none!important}}}.listItem-overview{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-height:3.1em;height:3.1em}.listItem-overview-3-lines{-webkit-line-clamp:3;max-height:4.41em;height:4.41em}.listItem-topoverview{height:initial;-webkit-margin-end:.25em;margin-inline-end:.25em}.listItemCheckboxContainer{width:auto!important}.listItemPlayedIndicator{font-size:1.6em}.listItemPlayedIndicator.listItemIndicator-mini{font-size:1.1em}@media not all and (pointer:fine){.listItem-textActionButton{pointer-events:none!important}}.listItemOverlayButton-hover{display:none;position:absolute;margin:0!important;color:#fff!important}.listItem-indexnumberleft-withhoverbutton .listItemOverlayButton-hover{margin-top:0!important;margin-bottom:0!important;-webkit-margin-start:-.756em!important;margin-inline-start:-.756em!important;-webkit-margin-end:0!important;margin-inline-end:0!important}@media all and (pointer:fine){.listItemOverlayButtonIcon{transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out}.listItemOverlayButton-hover:hover .listItemOverlayButtonIcon{-webkit-transform:scale(1.2);transform:scale(1.2)}.listItem-indexnumberleft-withhoverbutton{min-width:2.4em;position:relative;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.listItem:hover .listItemOverlayButton-hover{display:-webkit-flex;display:flex}}.listItemOverlayButton-imagehover{background:rgba(0,0,0,.6);border-radius:0!important;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;width:100%}.listItemOverlayButtonIcon{border-radius:100em;width:1.25em!important;height:1.25em!important;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:flex;font-size:1.5em!important;color:#fff}.chkListItemSelectContainer{font-size:70%;width:auto!important;-webkit-padding-end:1em!important;padding-inline-end:1em!important;-webkit-margin-end:.4em!important;margin-inline-end:.4em!important;-webkit-padding-start:.75em!important;padding-inline-start:.75em!important;height:100%;display:none!important}@media (pointer:fine){.chkListItemSelectContainer{position:absolute!important;left:-4em;inset-inline-start:-4em;inset-inline-end:initial;width:4em!important;opacity:0;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;display:-webkit-flex!important;display:flex!important}.item-multiselected .chkListItemSelectContainer,.multi-select-active .chkListItemSelectContainer{opacity:1}.listItem:hover .chkListItemSelectContainer{opacity:1;border-start-start-radius:.6em;border-end-start-radius:.6em}}@media not all and (pointer:fine){.item-multiselected .chkListItemSelectContainer,.multi-select-active .chkListItemSelectContainer{display:-webkit-flex!important;display:flex!important}}.chkListItemSelect-checkboxLabel,.chkListItemSelect-checkboxLabel::before{border-radius:100em!important}.chkListItemSelect-checkboxLabel::before{border-width:.2em!important}.chkListItemSelect-checkboxLabel::after{border-width:.2em!important}.multi-select-active .listItemIndicator,.multi-select-active .listItemOverlayButton-hover,.multi-select-active .listItemButton,.multi-select-active .listItemImageButton,.multi-select-active .listViewDragHandle{display:none!important}.listItem-emby-checkbox-label{margin-top:0!important;margin-bottom:0!important;-webkit-margin-start:.25em!important;margin-inline-start:.25em!important;-webkit-margin-end:.75em!important;margin-inline-end:.75em!important;width:auto!important}.listItem-checkboxLabel-round{-webkit-margin-end:1em!important;margin-inline-end:1em!important;font-size:88%}.listItem-checkboxLabel-round::before{border-radius:100em!important;border-width:.16em!important}.listItem-syncStatusIcon{padding:.18em;border-radius:100em;font-size:88%}@media not all and (pointer:fine){.listItem-syncStatusIcon-smallfont{font-size:68%}}@media not all and (pointer:fine){.listViewFavoriteButton-automove{-webkit-order:-1;order:-1;font-size:86%!important;-webkit-margin-end:.5em!important;margin-inline-end:.5em!important;pointer-events:none!important}.listViewFavoriteButton-automove:not(.ratingbutton-icon-withrating){visibility:hidden}.padded-left-withlist-autocollapse{-webkit-padding-start:env(safe-area-inset-left,0)!important;padding-inline-start:env(safe-area-inset-left,0)!important}@media all and (min-width:60em){.page-withDockedDrawer .padded-left-withlist-autocollapse{-webkit-padding-start:0!important;padding-inline-start:0!important}}}.listviewitemelement-nowplaying{position:relative}.listviewitemelement-nowplaying::after{background-size:contain;background-image:url(ani_equalizer_white.gif);background-position:center center;background-repeat:no-repeat;background-size:auto;position:absolute;top:0;bottom:0;inset-inline-start:0;inset-inline-end:0;content:' '}.listviewitemelement-nowplaying-indexnumber{color:transparent!important}.listviewitemelement-nowplaying-indexnumber::after{background-size:contain}.listviewitemelement-nowplaying-left::after{background-position:left bottom}.listviewitemelement-nowplaying-right::after{background-position:right bottom} \ No newline at end of file diff --git a/modules/listview/listview.js b/modules/listview/listview.js new file mode 100644 index 0000000..330de4b --- /dev/null +++ b/modules/listview/listview.js @@ -0,0 +1 @@ +define(["exports","./../dom.js","./../browser.js","./../layoutmanager.js","./../common/globalize.js","./../common/datetime.js","./../common/textencoding.js","./../mediainfo/mediainfo.js","./../indicators/indicators.js","./../focusmanager.js","./../common/itemmanager/itemmanager.js","./../emby-apiclient/connectionmanager.js","./../emby-apiclient/events.js","./../common/imagehelper.js","./../lazyloader/lazyimageloader.js","./../shortcuts.js","./../common/playback/playbackmanager.js","./../emby-elements/userdatabuttons/emby-ratingbutton.js","./../emby-elements/userdatabuttons/emby-playstatebutton.js","./../common/dataformatter.js","./../emby-elements/emby-button/emby-button.js","./../common/usersettings/usersettings.js"],function(_exports,_dom,_browser,_layoutmanager,_globalize,_datetime,_textencoding,_mediainfo,_indicators,_focusmanager,_itemmanager,_connectionmanager,_events,_imagehelper,_lazyimageloader,_shortcuts,_playbackmanager,_embyRatingbutton,_embyPlaystatebutton,_dataformatter,_embyButton,_usersettings){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/listview/listview.css"]);var CurrentPlayingItemId,embyCheckboxLoaded,supportsNativeLazyLoading="loading"in HTMLImageElement.prototype,decodingAttribute=_dom.default.supportsAsyncDecodedImages()?' decoding="async"':"",supportsObjectFit=CSS.supports("object-fit","contain"),enableFocusTransfrom=_dom.default.allowFocusScaling(),secondaryTextClass=CSS.supports("color","var(--fake-var)")?"secondaryText":"",DownloadIcon="";function onPlaybackStart(e,player,state){state=state.NowPlayingItem,state="Audio"===(null==state?void 0:state.MediaType)?state.Id:null;CurrentPlayingItemId=state}function getTextLinesHtml(textlines,options){for(var html="",isFirst=!0,listItemBodyTextTagName=options.listItemBodyTextTagName,cssClass=options.listItemBodyTextClass,i=0,length=textlines.length;i',isFirst=!1,listItemBodyTextTagName="div"):html+='
',html=html+text+"")}return html}function getId(item){return item.Id}function getTextActionButton(options,item,text,serverId,parentId,isSameItemAsCard){return text=text||_itemmanager.default.getDisplayName(item,{hideEpisodeSpoilerInfo:options.hideEpisodeSpoilerInfo}),!_layoutmanager.default.tv&&!1!==options.textLinks&&(item.Id||isSameItemAsCard)?'":_textencoding.default.htmlEncode(text)}function isUsingLiveTvNaming(itemType){return"Program"===itemType||"Timer"===itemType||"Recording"===itemType}function mapArtistsToTextButtons(item,artistItems,options){return artistItems.map(function(a){return a.Type="MusicArtist",a.IsFolder=!0,getTextActionButton(options,a,null,item.ServerId)}).join(", ")}function getMdIconClass(icon){switch(icon){case"":case"":case"":case"":case"":case"":case"":case"":case"":return" md-icon-fill";case"":case"":return" md-icon-pushdown-bubble";default:return""}}function getPlayAction(item,options){return item.IsFolder?"resume":"Photo"===item.MediaType?"playallfromhere":options.playAction}function getListItemHtml(item,index,options){var fields,enableSideMediaInfo=options.enableSideMediaInfo,tagName=options.tagName,action=options.action,html="",downloadWidth=options.imageDownloadWidth,hoverPlayButtonRequested=!_layoutmanager.default.tv&&!1!==options.hoverPlayButton,enableHoverPlayButton=hoverPlayButtonRequested&&_playbackmanager.default.canPlay(item),itemType=item.Type,itemController=_itemmanager.default.getItemController(itemType),serverId=(html+="',options.enableBottomOverview&&(html+='
'),item.ServerId),apiClient=serverId?_connectionmanager.default.getApiClient(serverId):null,fieldMap=(options.multiSelect&&(html+=''),options.fieldMap),listItemBodyTextTagName=(fieldMap.ItemCheckbox&&(checkbox=options.itemCheckbox,html+=checkbox=(options.getIsItemChecked?options.getIsItemChecked(item):item.Selected||!1===item.Disabled)?checkbox.replace('type="checkbox"','type="checkbox" checked'):checkbox),options.treeButton&&(item.IsFolder?html+=options.treeButtonHtml:html+=options.disabledTreeButtonHtml),!1!==options.image&&(checkbox=options.showCurrentProgramImage?item.CurrentProgram||item:item.ProgramInfo||item,downloadWidth=_imagehelper.default.getImageUrl(checkbox,apiClient,{width:downloadWidth,showChannelLogo:"channel"===options.imageSource,uiAspect:options.aspectInfo.aspect,hideEpisodeSpoilerInfo:options.hideEpisodeSpoilerInfo}),imgUrl=options.preferIcon?null:downloadWidth.imgUrl,imageContainerClass=options.imageContainerClass,imageClass="listItemImage",options.imageSize&&(imageClass+=" listItemImage-"+options.imageSize),options.roundImage&&(imageClass+=" listItemImage-round",imgUrl||(imageContainerClass+=" listItemImageContainer-round")),playOnImageClick=options.imagePlayButton&&!_layoutmanager.default.tv,!1===options.playQueueIndicator||!(currentPlayingItemId=CurrentPlayingItemId)||currentPlayingItemId!==item.PlaylistItemId&¤tPlayingItemId!==item.Id||_playbackmanager.default.paused()||(imageContainerClass+=" itemelement-nowplaying listviewitemelement-nowplaying"),currentPlayingItemId=playOnImageClick?"resume":action,(imgUrl||options.preferIcon||!1===options.defaultBackground)&&!options.defaultBackground||(imageContainerClass+=" defaultCardBackground"),styleRules=[],(color="Error"===item.Severity||"Fatal"===item.Severity||"Warn"===item.Severity?"background-color:#cc0000;color:#fff;":"")&&styleRules.push(color),styleRules.push("aspect-ratio:"+options.aspectInfo.aspectCss),html+='
",color=_indicators.default.getProgressBarHtml(item,{containerClass:"listItemProgressBar"}),imgUrl?(currentPlayingItemId=downloadWidth.aspect?_imagehelper.default.getShapeFromAspect(downloadWidth.aspect):_imagehelper.default.getShape([item],options)||"square",imageContainerClass=_imagehelper.default.getAspectFromShape(currentPlayingItemId,options),imageClass+=" listItemImage-"+currentPlayingItemId,(styleRules=_imagehelper.default.getCoveredImageClass(checkbox,apiClient,downloadWidth,imageContainerClass.aspect))&&(imageClass+=styleRules),2===options.lazy?supportsObjectFit?(html+='',isImg=!0):html+='
':supportsNativeLazyLoading&&supportsObjectFit?(html+='',isImg=!0):html+='
',color&&(html+=color),isImg||(html+="
")):((currentPlayingItemId=!(currentPlayingItemId=item.Icon)&&options.enableDefaultIcon?itemController.getDefaultIcon(item):currentPlayingItemId)&&(checkbox=options.iconClass,item.iconClass&&(checkbox+=" "+item.iconClass),html+=''+currentPlayingItemId+""),color&&(html+=color)),options.iconSpacing||(downloadWidth=_indicators.default.getPlayedIndicatorHtml(item,options.indicatorClass))&&(html+=downloadWidth),enableHoverPlayButton&&(html+=''),playOnImageClick&&(html+=''),html+="
"),(options.showIndexNumberLeft||options.showChapterTimeLeft)&&(styleRules="listItem-indexnumberleft secondaryText",hoverPlayButtonRequested&&(styleRules+=" listItem-indexnumberleft-withhoverbutton"),!(imageClass=CurrentPlayingItemId)||!1!==options.image||imageClass!==item.PlaylistItemId&&imageClass!==item.Id||_playbackmanager.default.paused()||(styleRules+=" itemelement-nowplaying listviewitemelement-nowplaying listviewitemelement-nowplaying-indexnumber","rtl"===document.dir?styleRules+=" listviewitemelement-nowplaying-right":styleRules+=" listviewitemelement-nowplaying-left"),options.showChapterTimeLeft?(html+='
',null==item.StartPositionTicks?html+=" ":html+=_datetime.default.getDisplayRunningTime(item.StartPositionTicks)):options.showIndexNumberLeft&&(html+='
',null==item.IndexNumber?html+=" ":html+=item.IndexNumber),enableHoverPlayButton&&(html+=''),html+="
"),html+="<"+options.listItemBodyTagName+' class="'+options.listItemBodyClassName+'">',options.listItemBodyTextTagName),textCssClass=options.listItemBodyTextClass,listItemBodyTextOpen="<"+listItemBodyTextTagName+' class="'+textCssClass+'">',listItemBodyTextClose="",secondaryListItemBodyTextOpen='
',imageContainerClass=item.ProgramInfo||item;switch(itemType){case"MusicAlbum":case"Audio":case"MusicVideo":case"Game":fields=options.fieldsParentNameAfter||options.fields;break;default:fields=options.fields}var displayName=_itemmanager.default.getDisplayName(imageContainerClass,{includeParentInfo:options.includeParentInfoInTitle,includeIndexNumber:options.includeIndexNumberInTitle||(!item.SupportsResume||"Audio"!==item.Type)&&null,hideEpisodeSpoilerInfo:options.hideEpisodeSpoilerInfo});options.showIndexNumber&&null!=imageContainerClass.IndexNumber&&(displayName=imageContainerClass.IndexNumber+". "+displayName);for(var i=0,length=fields.length;i'+mediaInfoHtml:html+=listItemBodyTextOpen,html=html+_textencoding.default.htmlEncode(displayName)+listItemBodyTextClose,listItemBodyTextTagName="div",listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="
"):displayName&&(html+=listItemBodyTextOpen+_textencoding.default.htmlEncode(displayName)+listItemBodyTextClose,listItemBodyTextTagName="div",listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="
");break;case"ParentNameOrName":"Episode"===itemType&&item.SeriesName?item.SeriesId?(html+=listItemBodyTextOpen+getTextActionButton(options,{Id:item.SeriesId,ServerId:serverId,Name:item.SeriesName,Type:"Series",IsFolder:!0})+listItemBodyTextClose,listItemBodyTextTagName="div",listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="
"):item.SeriesName&&(html+=listItemBodyTextOpen+_textencoding.default.htmlEncode(item.SeriesName||"")+listItemBodyTextClose,listItemBodyTextTagName="div",listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="
"):isUsingLiveTvNaming(itemType)?(html+=listItemBodyTextOpen+_textencoding.default.htmlEncode(item.Name||"")+listItemBodyTextClose,listItemBodyTextTagName="div",listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="
"):(mediaInfoHtml=item.SeriesName||item.Series||item.Album||(item.AlbumArtist?item.AlbumArtist.Name||item.AlbumArtist:null)||item.GameSystem||"")&&(html+=listItemBodyTextOpen+_textencoding.default.htmlEncode(mediaInfoHtml||"")+listItemBodyTextClose,listItemBodyTextTagName="div",listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="");break;case"ParentName":var showArtist=void 0,containerAlbumArtistIds=options.containerAlbumArtistIds,artistItems="MusicAlbum"===item.Type?item.AlbumArtists:item.ArtistItems;(!artistItems||!artistItems.length||1";break;case"ItemCheckbox":case"ProductionYear":case"Overview":break;case"Type":html+=listItemBodyTextOpen+itemController.getItemTypeName(item)+listItemBodyTextClose,listItemBodyTextTagName="div",listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="";break;case"StartDateTime":html+=listItemBodyTextOpen+_datetime.default.toLocaleString(new Date(Date.parse(item.StartDate)),{weekday:"long",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})+listItemBodyTextClose,listItemBodyTextTagName="div",listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="";break;case"StartToEndDateTime":html=(html+='
'+_datetime.default.toLocaleString(new Date(Date.parse(item.StartDate)),{weekday:"long",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}))+(" – "+_datetime.default.toLocaleString(new Date(Date.parse(item.EndDate)),{hour:"numeric",minute:"2-digit"}))+listItemBodyTextClose,listItemBodyTextTagName="div",listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="
";break;case"ChannelName":html=html+listItemBodyTextOpen+'
',containerAlbumArtistIds=[];"TvChannel"===item.Type?containerAlbumArtistIds.push(item.Name):item.ChannelName?containerAlbumArtistIds.push(item.ChannelName):item.ProgramInfo&&item.ProgramInfo.ChannelName&&containerAlbumArtistIds.push(item.ProgramInfo.ChannelName),item.ChannelNumber?containerAlbumArtistIds.push(item.ChannelNumber):item.ProgramInfo&&item.ProgramInfo.ChannelNumber&&containerAlbumArtistIds.push(item.ProgramInfo.ChannelNumber),html+=_textencoding.default.htmlEncode(containerAlbumArtistIds.join(" "))+"
"+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="";break;case"MappedChannelInfo":html+=listItemBodyTextOpen;showArtist=void 0;item.ListingsChannelName&&(showArtist=item.ListingsChannelName,item.ListingsChannelNumber&&(showArtist=item.ListingsChannelNumber+" "+showArtist),item.AffiliateCallSign&&(showArtist+=" - "+item.AffiliateCallSign),(artistItems=item.ListingsId||item.ListingsPath)&&(showArtist+=" - "+_textencoding.default.htmlEncode(artistItems)),showArtist=_globalize.default.translate("MappedToValue",showArtist)),html=html+(showArtist||_globalize.default.translate("NotMappedToGuideData"))+listItemBodyTextClose,listItemBodyTextTagName="div",listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="";break;case"CurrentProgramParentName":item.CurrentProgram&&(html+=listItemBodyTextOpen+_textencoding.default.htmlEncode(item.CurrentProgram.Name||"")+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="");break;case"CurrentProgramName":null!=(_item$CurrentProgram=item.CurrentProgram)&&_item$CurrentProgram.EpisodeTitle&&(html+=listItemBodyTextOpen+_textencoding.default.htmlEncode(_itemmanager.default.getDisplayName(item.CurrentProgram))+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="");break;case"CurrentProgramTime":item.CurrentProgram&&(html+=listItemBodyTextOpen+_mediainfo.default.getAirTimeText(item.CurrentProgram,!1,!0)+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="");break;case"LogLine":html+=listItemBodyTextOpen+_textencoding.default.htmlEncode(item)+listItemBodyTextClose,listItemBodyTextTagName="div",listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="";break;case"DeviceUserInfo":var _item$CurrentProgram="";item.LastUserName&&(item.LastUserId?_item$CurrentProgram+=getTextActionButton(options,{Id:item.LastUserId,Name:item.LastUserName,ServerId:serverId,Type:"User"},item.LastUserName+", "+_dataformatter.default.formatRelativeTime(item.DateLastActivity),null,null):item.LastUserName&&(_item$CurrentProgram+=item.LastUserName+", "+_dataformatter.default.formatRelativeTime(item.DateLastActivity))),html+=listItemBodyTextOpen+_item$CurrentProgram+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="";break;case"ChannelNumber":item.ChannelNumber&&(html+=listItemBodyTextOpen+_textencoding.default.htmlEncode(item.ChannelNumber)+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="");break;case"ShortOverview":item.ShortOverview&&(html+=listItemBodyTextOpen+(item.ShortOverview?_textencoding.default.htmlEncode(item.ShortOverview):" ")+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="");break;case"Date":html+=listItemBodyTextOpen+_datetime.default.toLocaleString(new Date(Date.parse(item.Date)))+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="";break;case"ChapterTime":html+=listItemBodyTextOpen+(null==item.StartPositionTicks?"":_datetime.default.getDisplayRunningTime(item.StartPositionTicks))+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="";break;case"PathOrTitle":html+=listItemBodyTextOpen+(item.Path||item.Title?_textencoding.default.htmlEncode(item.Path||item.Title):" ")+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="";break;case"Text":html+=listItemBodyTextOpen+(item.Text?_textencoding.default.htmlEncode(item.Text):" ")+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="";break;case"Path":html+=listItemBodyTextOpen+(item.Path?_textencoding.default.htmlEncode(item.Path):" ")+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="";break;case"ProviderName":html+=listItemBodyTextOpen+(item.ProviderName?_textencoding.default.htmlEncode(item.ProviderName):" ")+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose="";break;case"MediaInfo":var _mediaInfoHtml=_mediainfo.default.getPrimaryMediaInfoHtml(item,{episodeTitle:!1,subtitles:!1,endsAt:!1});_mediaInfoHtml&&(html+='
'+_mediaInfoHtml+"
");break;default:_mediaInfoHtml=itemController.resolveField(item,field);html+=listItemBodyTextOpen+(_mediaInfoHtml=null==_mediaInfoHtml?"":_mediaInfoHtml)+listItemBodyTextClose,listItemBodyTextOpen=secondaryListItemBodyTextOpen,listItemBodyTextClose=""}}var color,playOnImageClick,imageClass,styleRules,checkbox,isImg,currentPlayingItemId,imgUrl=[];if(fieldMap.MediaStreamInfo&&_mediainfo.default.pushMediaStreamLines(item,options,imgUrl,itemController.getDefaultIcon(item)),html+=getTextLinesHtml(imgUrl,options),!1===options.mediaInfo||enableSideMediaInfo||(html+='
'+_mediainfo.default.getPrimaryMediaInfoHtml(item,{episodeTitle:!1,subtitles:!1,endsAt:!1})+"
"),fieldMap.Overview&&(html+='
',isImg=item.Overview,html=html+((isImg=options.hideEpisodeSpoilerInfo&&"Episode"===itemType&&!1===(null==(checkbox=item.UserData)?void 0:checkbox.Played)?null:isImg)?_dom.default.stripScripts(isImg):"")+"
"),html+="",item.SyncStatus&&(currentPlayingItemId="listItem-syncStatusIcon",_layoutmanager.default.tv||(currentPlayingItemId+=" listItem-syncStatusIcon-smallfont"),html+='
'+DownloadIcon+"
"),!1!==options.mediaInfo&&enableSideMediaInfo&&(color=_mediainfo.default.getPrimaryMediaInfoHtml(item,{year:!1,container:!1,episodeTitle:!1,criticRating:!1,endsAt:!1}))&&(!(downloadWidth="listItemMediaInfo mediaInfoItems secondaryText")!==options.autoHideMediaInfo&&(downloadWidth+=" listItemMediaInfo-autohide"),html+='
'+color+"
"),options.recordButton||"Timer"!==itemType&&"Program"!==itemType||(html+=_indicators.default.getTimerIndicator(item).replace("indicatorIcon","indicatorIcon listItemAside")),item.asideText&&(html=(html+='
')+item.asideText+"
"),item.asideIcon&&(html=(html+='
')+item.asideIcon+"
"),options.clickEntireItem)options.itemAccessSelection&&(html+='
',"Write"===item.UserItemShareLevel?html+=_globalize.default.translate("Edit"):"Read"===item.UserItemShareLevel?html+=_globalize.default.translate("View"):html+=_globalize.default.translate("None"),html=(html+="
")+getItemAccessSelectContainer(item,!0));else{if(options.allowButtonCommands){if(options.overviewButton&&(playOnImageClick=item.Overview,playOnImageClick=options.hideEpisodeSpoilerInfo&&"Episode"===itemType&&!1===(null==(hoverPlayButtonRequested=item.UserData)?void 0:hoverPlayButtonRequested.Played)?null:playOnImageClick)&&(html+=''),options.enableUserDataButtons&&(imageClass=item.UserData||{},itemController.canRate(item)&&(styleRules="listViewFavoriteButton",options.autoMoveFavoriteButton?styleRules+=" listViewFavoriteButton-automove":styleRules+=" listItemButton-autohide",html+=_embyRatingbutton.default.getHtml(imageClass.IsFavorite,styleRules+" listItemButton paper-icon-button-light secondaryText itemAction")),itemController.canMarkPlayed(item))&&(html+=_embyPlaystatebutton.default.getHtml(imageClass.Played,"listViewPlayedButton listItemButton-autohide listItemButton paper-icon-button-light secondaryText itemAction")),options.contextMenu&&options.moreButton&&itemController.supportsContextMenu(item)&&(enableHoverPlayButton="listItemContextMenuButton",options.hideMoreButtonOnTouch&&(enableHoverPlayButton+=" hidetouch"),html+=''),null!=(imageContainerClass=options.buttonCommands)&&imageContainerClass.length)for(var commands=itemController.getCommands({items:[item],user:null==apiClient?void 0:apiClient.getCurrentUserCached()}),_i=0,_length=(commands=commands.filter(function(c){return options.buttonCommands.includes(c.id)})).length;_i<_length;_i++){var cmd=commands[_i];html+='"}options.dragReorder&&!1!==item.CanReorder&&(html+='')}options.itemAccessSelection&&(html+=getItemAccessSelectContainer(item))}return options.enableBottomOverview&&(html=html+'
',imgUrl=item.Overview,html=html+((imgUrl=options.hideEpisodeSpoilerInfo&&"Episode"===itemType&&!1===(null==(fieldMap=item.UserData)?void 0:fieldMap.Played)?null:imgUrl)?_dom.default.stripScripts(imgUrl):"")+"
"),html+="",options.listItemParts?(checkbox=_shortcuts.default.getShortcutAttributes(item,options),action&&checkbox.push({name:"data-action",value:action}),options.isVirtualList||checkbox.push({name:"data-index",value:index}),{attributes:checkbox,html:html}):(isImg=_shortcuts.default.getShortcutAttributesHtml(item,options),action&&(isImg+=' data-action="'+action+'"'),options.isVirtualList||(isImg+=' data-index="'+index+'"'),(currentPlayingItemId=options.fixedAttributes)&&(isImg+=" "+currentPlayingItemId),enableSideMediaInfo=options.className,item.ItemClass&&(enableSideMediaInfo+=" "+item.ItemClass),"<"+tagName+' class="'+enableSideMediaInfo+'"'+isImg+">"+html+"")}function getItemAccessSelectContainer(item,hide){var html="",html=(html+='
')+'"+"
"}function setListOptions(items,options){null==options.iconSpacing&&(options.preferIcon||options.code||!1!==options.image&&options.roundImage)&&(options.iconSpacing=!0),null==options.hideEpisodeSpoilerInfo&&(options.hideEpisodeSpoilerInfo=_usersettings.default.hideEpisodeSpoilerInfo()),null==options.isBoundListItem&&(options.isBoundListItem=!0),options.itemSelector=".listItem",options.enableDefaultIcon=!1!==options.enableDefaultIcon;for(var contentWrapperClass=((options.contentWrapperClass||"")+" listItem-content").trim(),fieldMap=(options.contentWrapperClass=contentWrapperClass,options.containerAlbumArtistIds=(options.containerAlbumArtists||[]).map(getId),options.contextMenu=!1!==options.contextMenu,options.enableUserDataButtons=!1!==options.enableUserDataButtons,options.moreButton=options.contextMenu&&!1!==options.moreButton,options.fields||(options.fields=[],options.fields.push("Name")),options.fields=Array.from(new Set(options.fields)),options.autoMoveParentName&&(options.fieldsParentNameAfter=options.fields.slice(0),contentWrapperClass=options.fieldsParentNameAfter.indexOf("ParentName"),nameIndex=options.fieldsParentNameAfter.indexOf("Name"),-1!==contentWrapperClass&&-1!==nameIndex&&contentWrapperClass',options.enableBottomOverview&&(isLargeStyle+='
'),fieldMap.ItemCheckbox&&(contentWrapperClass="listItem-checkboxLabel",options.roundCheckbox&&(contentWrapperClass+=" listItem-checkboxLabel-round"),options.itemCheckbox='',isLargeStyle+=options.itemCheckbox),options.treeButton&&(options.disabledTreeButtonHtml='',options.treeButtonHtml='',isLargeStyle+=options.treeButtonHtml),!1!==options.image&&(items=((options.imageContainerClass||"")+" listItemImageContainer").trim(),options.imageSize&&(items+=" listItemImageContainer-"+options.imageSize,_layoutmanager.default.tv)&&(items+=" listItemImageContainer-"+options.imageSize+"-tv"),options.clickEntireItem||(items+=" itemAction"),options.iconSpacing&&(items+=" listItemImageContainer-margin"),items+=" listItemImageContainer-"+options.shape,isLargeStyle+='
'),((options.listItemBodyClassName||"")+" listItemBody").trim()),textlines=(options.clickEntireItem||(contentWrapperClass+=" itemAction"),nameIndex||(contentWrapperClass+=" listItemBody-noleftpadding"),!1===options.verticalPadding&&(contentWrapperClass+=" listItemBody-noverticalpadding"),options.code&&(contentWrapperClass+=" listItemBody-code"),options.dragReorder&&(contentWrapperClass+=" listItemBody-draghandle"),options.iconSpacing||(contentWrapperClass+=" listItemBody-reduceypadding"),options.iconClass?options.iconClass+=" listItemIcon md-icon autortl":options.iconClass="listItemIcon md-icon autortl",[]),_i2=0,_length2=options.fields.length;_i2<_length2;_i2++)switch(options.fields[_i2]){case"ItemCheckbox":case"ProductionYear":break;default:textlines.push(" ")}fieldMap.Overview&&(options.isLargeStyle?options.overviewLines=options.overviewLines||3:options.overviewLines=options.overviewLines||2,options.overviewClass="listItem-overview-"+options.overviewLines+"-lines");items=textlines.length,fieldMap.Overview&&(items+=options.overviewLines-1),options.mediaInfo&&!options.enableSideMediaInfo&&items++,options.listItemBodyClassName=contentWrapperClass+=" listItemBody-"+items+"-lines",isLargeStyle=(isLargeStyle+="<"+options.listItemBodyTagName+' class="'+options.listItemBodyClassName+'">')+getTextLinesHtml(textlines,options),fieldMap.Overview&&(options.mediaInfo&&!options.enableSideMediaInfo&&(isLargeStyle+='
'),options.topOverviewClassName="listItem-overview listItem-topoverview listItemBodyText "+options.listItemBodyTextSecondaryClass,options.enableBottomOverview&&(options.topOverviewClassName+=" listItem-overview-autohide"),options.topOverviewClassName+=" "+options.overviewClass,isLargeStyle+='
'),isLargeStyle+="",options.dragReorder&&(isLargeStyle+=''),options.enableBottomOverview&&(isLargeStyle+="
",options.bottomOverviewClassName="listItem-bottomoverview secondaryText",options.bottomOverviewClassName+=" "+options.overviewClass,isLargeStyle+='
 
'),isLargeStyle+="",nameIndex="";options.addTabIndex&&(nameIndex+=' tabindex="0"'),options.anyDraggable&&(nameIndex+=' draggable="true"'),"button"===options.tagName&&(nameIndex+=' type="button"'),options.clickEntireItem,options.fixedAttributes=nameIndex.trim(),options.templateInnerHTML=isLargeStyle}function getItemsHtml(items,options){setListOptions(items,options);for(var groupTitle="",html="",i=0,length=items.length;i':'

')+itemGroupTitle+"

",groupTitle=itemGroupTitle),html+=getListItemHtml(item,i,options)}return html}_events.default.on(_playbackmanager.default,"playbackstart",onPlaybackStart),_events.default.on(_playbackmanager.default,"statechange",onPlaybackStart),_events.default.on(_playbackmanager.default,"playbackstop",function(){CurrentPlayingItemId=null});_exports.default={getItemsHtml:getItemsHtml,setListOptions:setListOptions,getItemParts:function(item,index,options){return options.listItemParts=!0,getListItemHtml(item,index,options)},buildItems:function(items,options){var itemsContainer=options.itemsContainer;if(document.body.contains(itemsContainer)){var parentContainer=options.parentContainer;if(parentContainer){if(!items.length)return void parentContainer.classList.add("hide");parentContainer.classList.remove("hide")}parentContainer=getItemsHtml(items,options);itemsContainer.innerHTML=parentContainer,itemsContainer.items=items,options.multiSelect&&(itemsContainer.enableMultiSelect?itemsContainer.enableMultiSelect(!0):itemsContainer.setAttribute("data-multiselect","true")),options.contextMenu&&(itemsContainer.enableContextMenu?itemsContainer.enableContextMenu(!0):itemsContainer.setAttribute("data-contextmenu","true")),parentContainer&&_lazyimageloader.default.lazyChildren(itemsContainer),options.autoFocus&&_focusmanager.default.autoFocus(itemsContainer)}},virtualChunkSize:30,setListClasses:function(elem){(elem=elem.classList).remove("vertical-wrap","itemsContainer-horizontalgrid","itemsContainer-horizontalgrid-withcolumns"),elem.add("vertical-list")},removeNowPlayingIndicator:function(indicator){indicator.classList.remove("itemelement-nowplaying","listviewitemelement-nowplaying","listviewitemelement-nowplaying-indexnumber","listviewitemelement-nowplaying-left","listviewitemelement-nowplaying-right")},addNowPlayingIndicator:function(itemElement){var listItemImageContainer=itemElement.querySelector(".listItemImageContainer");listItemImageContainer?listItemImageContainer.classList.add("itemelement-nowplaying","listviewitemelement-nowplaying"):(listItemImageContainer=itemElement.querySelector(".listItem-indexnumberleft"))&&(listItemImageContainer.classList.add("itemelement-nowplaying","listviewitemelement-nowplaying","listviewitemelement-nowplaying-indexnumber"),"rtl"===document.dir?listItemImageContainer.classList.add("listviewitemelement-nowplaying-right"):listItemImageContainer.classList.add("listviewitemelement-nowplaying-left"))}}}); \ No newline at end of file diff --git a/modules/loading/loading.css b/modules/loading/loading.css new file mode 100644 index 0000000..866aa42 --- /dev/null +++ b/modules/loading/loading.css @@ -0,0 +1 @@ +.mdl-spinner{position:relative;width:1.95em;height:1.95em;display:inline-block;margin-top:-5vh;-webkit-margin-start:-5vh;margin-inline-start:-5vh;width:10vh;height:10vh;position:fixed;top:50%;left:50%;inset-inline-start:50%;inset-inline-end:initial;z-index:9999999;contain:layout style size;-webkit-animation:mdl-spinner__container-rotate 1.568s linear infinite;animation:mdl-spinner__container-rotate 1.568s linear infinite;-webkit-transform:scale(0);transform:scale(0);-webkit-animation-delay:.6s;animation-delay:.6s;pointer-events:none;touch-action:none}@-webkit-keyframes mdl-spinner__container-rotate{0%{-webkit-transform:none;transform:none}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes mdl-spinner__container-rotate{0%{-webkit-transform:none;transform:none}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.mdl-spinner__layer{position:absolute;width:100%;height:100%}.mdl-spinner__layer-1{-webkit-animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes mdl-spinner__fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@keyframes mdl-spinner__fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}.mdl-spinner__circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.mdl-spinner__circle{box-sizing:border-box;height:100%;width:200%;border-width:.21em;border-style:solid;border-color:inherit;border-bottom-color:transparent!important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0}.mdl-spinner__circleLeft{border-inline-end-color:transparent!important;-webkit-transform:rotate(129deg);transform:rotate(129deg);-webkit-animation:mdl-spinner__left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdl-spinner__left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.mdl-spinner__circleRight{left:-100%;inset-inline-start:-100%;inset-inline-end:initial;border-inline-start-color:transparent!important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg);-webkit-animation:mdl-spinner__right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdl-spinner__right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes mdl-spinner__left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@keyframes mdl-spinner__left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@-webkit-keyframes mdl-spinner__right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}@keyframes mdl-spinner__right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}} \ No newline at end of file diff --git a/modules/loading/loading.js b/modules/loading/loading.js new file mode 100644 index 0000000..93cd255 --- /dev/null +++ b/modules/loading/loading.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/events.js"],function(_exports,_events){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/loading/loading.css"]);var loadingElem,isHidden,loading={show:function(){var elem=loadingElem;elem||(elem=document.createElement("div"),(loadingElem=elem).classList.add("mdl-spinner"),elem.innerHTML='
',document.body.appendChild(elem)),isHidden&&(isHidden=!1,_events.default.trigger(loading,"loading-state-change",[!0]),elem.classList.remove("hide"))},hide:function(){var elem=loadingElem;elem&&!isHidden&&(isHidden=!0,_events.default.trigger(loading,"loading-state-change",[!1]),elem.classList.add("hide"))}};_exports.default=loading}); \ No newline at end of file diff --git a/modules/loadingdialog/loadingdialog.js b/modules/loadingdialog/loadingdialog.js new file mode 100644 index 0000000..9562865 --- /dev/null +++ b/modules/loadingdialog/loadingdialog.js @@ -0,0 +1 @@ +define(["exports","./../dialoghelper/dialoghelper.js","./../layoutmanager.js","./../common/globalize.js","./../loading/loading.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-scroller/emby-scroller.js"],function(_exports,_dialoghelper,_layoutmanager,_globalize,_loading,_embyButton,_paperIconButtonLight,_embyScroller){function LoadingDialog(options){this.options=options}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons","formDialogStyle","flexStyles"]),LoadingDialog.prototype.show=function(){var instance=this;return _loading.default.show(),require(["dialogTemplateHtml"]).then(function(responses){return function(instance,options,template){var dialogOptions={removeOnClose:!0,scrollY:!1},enableTvLayout=_layoutmanager.default.tv;return enableTvLayout&&(dialogOptions.size="fullscreen"),(dialogOptions=_dialoghelper.default.createDialog(dialogOptions)).classList.add("formDialog"),dialogOptions.innerHTML=_globalize.default.translateHtml(template,"sharedcomponents"),dialogOptions.classList.add("align-items-center"),dialogOptions.classList.add("justify-items-center"),(template=dialogOptions.querySelector(".formDialogContent")).style["flex-grow"]="initial",template.style["max-width"]="50%",template.style["max-height"]="60%",enableTvLayout&&(dialogOptions.querySelector(".formDialogHeader").style.marginTop="15%"),dialogOptions.querySelector(".formDialogHeaderTitle").innerHTML=options.title,dialogOptions.querySelector(".dialogContentInner").innerHTML=options.text,instance.dlg=dialogOptions,_dialoghelper.default.open(dialogOptions).then(function(){_loading.default.hide()})}(instance,instance.options,responses[0])})},LoadingDialog.prototype.setTitle=function(title){},LoadingDialog.prototype.setText=function(text){},LoadingDialog.prototype.hide=function(){this.dlg&&(_dialoghelper.default.close(this.dlg),this.dlg=null)},LoadingDialog.prototype.destroy=function(){this.dlg=null,this.options=null};_exports.default=LoadingDialog}); \ No newline at end of file diff --git a/modules/localdatabase/idbcore.js b/modules/localdatabase/idbcore.js new file mode 100644 index 0000000..8a5932f --- /dev/null +++ b/modules/localdatabase/idbcore.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function getObjectByKey(db,key,storeName){return new Promise(function(resolve,reject){var request=getStore(db,storeName).get(key);request.onerror=reject,request.onsuccess=function(){resolve(request.result)}})}function getObjectsBySingleIndexKey(db,indexName,key,storeName){return new Promise(function(resolve,reject){storeName=storeName||db.name;var results,request,index=db.transaction([storeName],"readonly").objectStore(storeName).index(indexName);"function"==typeof index.getAll?(request=index.getAll(key)).onsuccess=function(event){resolve(event.target.result)}:(results=[],(request=index.openCursor(key)).onsuccess=function(event){event=event.target.result;event?(results.push(event.value),event.continue()):resolve(results)}),request.onerror=reject})}function getStore(db,storeName,access){return storeName=storeName||db.name,db.transaction(storeName,access=access||"readonly").objectStore(storeName)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={addObject:function(db,key,val,storeName){return new Promise(function(resolve,reject){var request=getStore(db,storeName,"readwrite").put(val,key);request.onerror=reject,request.onsuccess=resolve})},updateObject:function(db,key,val,storeName){return new Promise(function(resolve,reject){var request=getStore(db,storeName,"readwrite").put(val,key);request.onerror=reject,request.onsuccess=function(){resolve(request.result)}})},deleteObject:function(db,key,storeName){return new Promise(function(resolve,reject){var request=getStore(db,storeName,"readwrite").delete(key);request.onerror=reject,request.onsuccess=resolve})},clearObjects:function(db,storeName){return new Promise(function(resolve,reject){var request=getStore(db,storeName,"readwrite").clear();request.onerror=reject,request.onsuccess=resolve})},getAllObjects:function(db,storeName){return new Promise(function(resolve,reject){var results,request,objectStore=getStore(db,storeName);"function"==typeof objectStore.getAll?(request=objectStore.getAll()).onsuccess=function(event){resolve(event.target.result)}:(results=[],(request=objectStore.openCursor()).onsuccess=function(event){event=event.target.result;event?(results.push(event.value),event.continue()):resolve(results)}),request.onerror=reject})},getObjectByKey:getObjectByKey,getObjectsByKeys:function(db,keys,storeName){return Array.isArray(keys)&&1!==keys.length?(4find.length&&0===str.indexOf(find))return 1;return}(str,find)?str.substr(find.length):str}_exports.default={getLibarytemTypes:function(serverId){return getLibraryDb(serverId).then(function(db){return _idbcore.default.getDistinctndexKeys(db,"Index_ItemType")})},getLibraryItemsByIds:getLibraryItemsByIds,getLibraryItemPathsByIds:function(serverId,ids){return getLibraryItemsByIds(serverId,ids).then(function(items){items=items.reduce(function(result,item){var id_path;return item&&(id_path={ItemId:item.ItemId,LocalPath:""},item.LocalPath?id_path.LocalPath=item.LocalPath:item.Item&&item.Item.MediaSources&&item.Item.MediaSources.length&&(item=item.Item.MediaSources[0],id_path.LocalPath=item.StreamUrl||item.Path),result.push(id_path)),result},[]);return Promise.resolve(items)}).catch(function(error){return Promise.resolve([])})},getLibraryItemsBySyncStatus:function(serverId,syncStati){return getLibraryDb(serverId).then(function(db){return _idbcore.default.getObjectsByIndexKeys(db,"Index_SyncStatus",syncStati)})},getLibraryItemsByType:getLibraryItemsByType,getAllLibraryItems:getAllLibraryItems,getLibraryItem:getLibraryItem,getLibraryItems:function(serverId,options){var searchParentId=normalizeId(searchParentId=options.ParentId),seasonId=normalizeId(options.SeasonId||options.seasonId),seriesId=normalizeId(options.SeriesId||options.seriesId),albumIds=function(val){if(val)return val.split(",").map(normalizeId);return[]}(options.AlbumIds||options.albumIds),includeItemTypes=options.IncludeItemTypes?options.IncludeItemTypes.split(","):[],filters=options.Filters?options.Filters.split(","):[],mediaTypes=options.MediaTypes?options.MediaTypes.split(","):[],getPromise=(!function(parentId,includeItemTypes,query){switch(parentId){case"MusicView":case"MusicAlbumsView":return query.Recursive?includeItemTypes.push("Audio"):includeItemTypes.push("MusicAlbum"),1;case"MusicSongsView":return includeItemTypes.push("Audio"),1;case"PhotosView":return query.Recursive?includeItemTypes.push("Photo"):includeItemTypes.push("PhotoAlbum"),1;case"TVView":return query.Recursive?includeItemTypes.push("Episode"):includeItemTypes.push("Series"),1;case"VideosView":return query.Recursive,includeItemTypes.push("Video"),1;case"MoviesView":return query.Recursive,includeItemTypes.push("Movie"),1;case"MusicVideosView":return query.Recursive,includeItemTypes.push("MusicVideo"),1;case"TrailersView":return query.Recursive,includeItemTypes.push("Trailer"),1;case"BooksView":return query.Recursive,includeItemTypes.push("Book"),1;case"GamesView":return query.Recursive,includeItemTypes.push("Game"),1}return}(searchParentId,includeItemTypes,options)||(searchParentId=null),Promise.resolve());return searchParentId&&(getPromise=getLibraryItem(serverId,searchParentId).then(function(item){item&&item.Item&&"MusicAlbum"===item.Item.Type&&(albumIds.push(searchParentId),searchParentId=null,options.Recursive=!0,includeItemTypes.push("Audio"))})),(getPromise=includeItemTypes.length?getPromise.then(function(){var includeSet=Array.from(new Set(includeItemTypes));return includeItemTypes=[],getLibraryItemsByType(serverId,includeSet)}):getPromise.then(function(){return getAllLibraryItems(serverId)})).then(function(items){var addSubtreeIds,itemsMap=new Map,subtreeIdSet=new Set,searchParentItem=(items.forEach(function(item){item.Item.LocalChildren=[],itemsMap.set(item.Item.Id,item.Item)}),itemsMap.forEach(function(item){item.ParentId&&itemsMap.has(item.ParentId)&&itemsMap.get(item.ParentId).LocalChildren.push(item)}),options.Recursive&&searchParentId&&itemsMap.has(searchParentId)&&(addSubtreeIds=function(recurseItem){subtreeIdSet.has(recurseItem.Id)||subtreeIdSet.add(recurseItem.Id),recurseItem.LocalChildren.forEach(function(childItem){addSubtreeIds(childItem)})},searchParentItem=itemsMap.get(searchParentId),addSubtreeIds(searchParentItem)),items.filter(function(item){return!(item.SyncStatus&&"synced"!==item.SyncStatus||mediaTypes.length&&-1===mediaTypes.indexOf(item.Item.MediaType||"")||seriesId&&item.Item.SeriesId!==seriesId||seasonId&&item.Item.SeasonId!==seasonId||albumIds.length&&-1===albumIds.indexOf(item.Item.AlbumId||"")||item.Item.IsFolder&&-1!==filters.indexOf("IsNotFolder")||!item.Item.IsFolder&&-1!==filters.indexOf("IsFolder")||includeItemTypes.length&&-1===includeItemTypes.indexOf(item.Item.Type||""))&&(!searchParentId||(options.Recursive?subtreeIdSet.has(item.Item.Id):item.Item.ParentId===searchParentId))}).map(function(item2){return item2.Item})),items=(searchParentItem=function(items,query){query.LocalSortBy&&0!==query.LocalSortBy.length&&(query.SortBy=query.LocalSortBy);if(query.SortBy&&0!==query.SortBy.length){if("Random"===query.SortBy)return function(array){var temporaryValue,randomIndex,currentIndex=array.length;for(;0!==currentIndex;)randomIndex=Math.floor(Math.random()*currentIndex),temporaryValue=array[--currentIndex],array[currentIndex]=array[randomIndex],array[randomIndex]=temporaryValue;return array}(items);var sortSpec=function(query){for(var sortFields=(query.SortBy||"").split(","),sortOrders=(query.SortOrder||"").split(","),sortSpec=[],i=0;i'),stopInterval(),interval=new _methodtimer.default({onInterval:animate,type:"interval",timeoutMs:3e3})})},self.hide=function(){stopInterval();var onAnimationFinish,elem=document.querySelector(".logoScreenSaver");elem&&(onAnimationFinish=function(){var parentNode=elem.parentNode;parentNode&&parentNode.removeChild(elem)},elem.animate?function(elem,iterations){return elem.animate([{opacity:"1",offset:0},{opacity:"0",offset:1}],{duration:400,iterations:iterations})}(elem,1).onfinish=onAnimationFinish:onAnimationFinish())}}}); \ No newline at end of file diff --git a/modules/logoscreensaver/style.css b/modules/logoscreensaver/style.css new file mode 100644 index 0000000..29cb430 --- /dev/null +++ b/modules/logoscreensaver/style.css @@ -0,0 +1 @@ +.logoScreenSaver{background:#000;position:fixed;top:0;left:0;right:0;bottom:0;inset-inline-start:0;inset-inline-end:0;z-index:1101;text-align:center}.logoScreenSaverImage{height:120px;position:absolute;top:50%;margin-top:-60px;-webkit-margin-start:-197px;margin-inline-start:-197px} \ No newline at end of file diff --git a/modules/maintabsmanager.js b/modules/maintabsmanager.js new file mode 100644 index 0000000..137c88d --- /dev/null +++ b/modules/maintabsmanager.js @@ -0,0 +1 @@ +define(["exports","./layoutmanager.js","./dom.js","./emby-elements/emby-button/emby-button.js","./emby-elements/emby-tabs/emby-tabs.js","./focusmanager.js"],function(_exports,_layoutmanager,_dom,_embyButton,_embyTabs,_focusmanager){var tabOwnerView,headerTabsContainer,tabsElem,headerTop,headerMiddle;function ensureElements(){headerTabsContainer=headerTabsContainer||document.querySelector(".headerMiddle")}function onViewTabsReady(){this.selectedIndex(this.readySelectedIndex),this.readySelectedIndex=null}function defaultGetTabContainersFn(){return[]}function focus(){var btn;return headerMiddle?(btn=headerMiddle.querySelector(".emby-tab-button-active"))?(_focusmanager.default.focus(btn),btn):_focusmanager.default.autoFocus(headerMiddle):null}function getTabsElement(){return null==headerMiddle?void 0:headerMiddle.querySelector(".tabs-viewmenubar")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={setTabs:function(view,selectedIndex,getTabsFn,getTabContainersFn,onTabChange,setSelectedIndex){if(!view)return tabOwnerView&&(headerTabsContainer=headerTabsContainer||document.querySelector(".headerMiddle"),ensureElements(),headerTop&&headerTop.classList.remove("headerTop-withSectionTabs","headerTop-withSectionTabs-hideTitle"),headerMiddle&&headerMiddle.classList.remove("headerMiddle-withSectionTabs"),document.documentElement.classList.remove("withHeaderTabs"),headerTabsContainer.innerHTML="",tabOwnerView=null),{tabsContainer:headerTabsContainer,replaced:!1};ensureElements();var index,tabsClass,tabsSliderClass,indexAttribute,tabsContainerElem=headerTabsContainer;return tabOwnerView!==view?(index=0,indexAttribute=null==selectedIndex?"":' data-index="'+selectedIndex+'"',tabsClass="tabs-viewmenubar tabs-viewmenubar-backgroundcontainer emby-tabs padded-left padded-right",tabsSliderClass="tabs-viewmenubar-slider emby-tabs-slider",_dom.default.allowBackdropFilter()&&(tabsClass+=" tabs-viewmenubar-backgroundcontainer-backdropfilter"),_layoutmanager.default.tv&&(tabsClass+=" scrollFrameX",tabsSliderClass+=" scrollSliderX"),indexAttribute='
'+getTabsFn().map(function(t){var tabClass="emby-button secondaryText emby-tab-button main-tab-button";return!1===t.enabled&&(tabClass+=" hide"),t.cssClass&&(tabClass+=" "+t.cssClass),tabClass=t.href?'':'",index++,tabClass}).join("")+"
",tabsContainerElem.innerHTML=indexAttribute,headerTop=headerTop||document.querySelector(".headerTop"),headerMiddle=headerMiddle||document.querySelector(".headerMiddle"),_layoutmanager.default.tv?headerTop.classList.add("headerTop-withSectionTabs","headerTop-withSectionTabs-hideTitle"):headerTop.classList.add("headerTop-withSectionTabs"),headerMiddle.classList.add("headerMiddle-withSectionTabs"),document.documentElement.classList.add("withHeaderTabs"),tabOwnerView=view,tabsElem=tabsContainerElem.querySelector('[is="emby-tabs"]'),getTabContainersFn=getTabContainersFn||defaultGetTabContainersFn,tabsElem.addEventListener("beforetabchange",function(e){var tabContainers=getTabContainersFn(),previousPanel=(null!=e.detail.previousIndex&&(previousPanel=tabContainers[e.detail.previousIndex])&&previousPanel.classList.remove("is-active"),tabContainers[e.detail.selectedTabIndex]);previousPanel&&previousPanel.classList.add("is-active")}),onTabChange&&tabsElem.addEventListener("tabchange",onTabChange),!1!==setSelectedIndex&&(tabsElem.selectedIndex?tabsElem.selectedIndex(selectedIndex):(tabsElem.readySelectedIndex=selectedIndex,tabsElem.addEventListener("ready",onViewTabsReady))),{tabsContainer:tabsContainerElem,replaced:!0}):(tabsElem=tabsElem||tabsContainerElem.querySelector('[is="emby-tabs"]'),tabOwnerView=view,{tabsContainer:tabsContainerElem,replaced:!1})},getTabsElement:getTabsElement,selectedTabIndex:function(index){tabsElem=tabsElem||headerTabsContainer.querySelector('[is="emby-tabs"]'),null!=index?tabsElem.selectedIndex(index):tabsElem.triggerTabChange()},focus:focus,setTabVisible:function(index,visible){var tabsElem=getTabsElement();tabsElem&&(tabsElem=tabsElem.querySelector('.main-tab-button[data-index="'+index+'"]'))&&(visible?tabsElem.classList.remove("hide"):(index=document.activeElement===tabsElem,tabsElem.classList.add("hide"),index&&focus()))}}}); \ No newline at end of file diff --git a/modules/mediainfo/fresh.png b/modules/mediainfo/fresh.png new file mode 100644 index 0000000..d0f146b Binary files /dev/null and b/modules/mediainfo/fresh.png differ diff --git a/modules/mediainfo/mediainfo.css b/modules/mediainfo/mediainfo.css new file mode 100644 index 0000000..ee3c309 --- /dev/null +++ b/modules/mediainfo/mediainfo.css @@ -0,0 +1 @@ +.mediaInfoItems,.buttonItems,.textItems,.fieldItems{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;align-items:center}.textItems-nowrap{-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.mediaInfoItem{-webkit-margin-end:1.5ch;margin-inline-end:1.5ch;white-space:nowrap}.buttonItems-item{-webkit-margin-end:1.5ch;margin-inline-end:1.5ch}.fieldItems-item{-webkit-margin-end:1.5ch;margin-inline-end:1.5ch}.verticalFieldItems{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.verticalFieldItem{margin-bottom:.5em}.verticalFieldItem-condensed{margin-bottom:.25em}@supports selector(:hover) and (display:revert) and (column-gap:1em){.verticalFieldItems{row-gap:.75em}.verticalFieldItems-condensed{row-gap:.25em}.verticalFieldItems-condensed-medium{row-gap:.4em}.verticalFieldItem,.verticalFieldItem-condensed{margin-bottom:0}.mediaInfoItems{-webkit-column-gap:1.2ch;column-gap:1.2ch}.mediaInfoItems-condensed{-webkit-column-gap:.75ch;column-gap:.75ch}.buttonItems{-webkit-column-gap:1.5ch;column-gap:1.5ch;row-gap:1em}.fieldItems{-webkit-column-gap:2.25ch;column-gap:2.25ch;row-gap:.5em}.textItems{-webkit-column-gap:.5ch;column-gap:.5ch}.buttonItems-item{margin:0}.mediaInfoItem,.textItem,.fieldItems-item{-webkit-margin-end:0;margin-inline-end:0}}.mediaInfoText{padding:.22em .5em;border-radius:.25em;font-size:92%;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;white-space:nowrap;margin-top:0;margin-bottom:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:.5em;margin-inline-end:.5em}.mediaInfoText-upper{text-transform:uppercase}.mediaInfoIconItem{width:auto;height:auto;font-size:1.6em;-webkit-margin-end:.6em;margin-inline-end:.6em}.starRatingContainer{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;vertical-align:middle;padding-top:0;padding-bottom:0;-webkit-align-self:center;align-self:center}.starIcon{width:auto!important;height:auto!important;font-size:1.4em}.mediaInfoCriticRating{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-align-self:center;align-self:center}.mediaInfoCriticRatingImage{background-position:center center;background-repeat:no-repeat;background-size:auto 1em;width:1.2em;height:1.5em}.mediaInfoCriticRatingFresh{background-image:url(fresh.png)}.mediaInfoCriticRatingRotten{background-image:url(rotten.png)}.mediaInfoItem-shaded{border-radius:.3em;padding:.1em .3em;line-height:1em;vertical-align:middle;background:rgba(235,235,245,.6);color:#000;text-align:center;text-shadow:none}.mediaInfoItem-shaded-text{vertical-align:middle;display:inline-block;font-weight:600}.mediaInfoProgramAttribute{text-transform:uppercase}.mediaInfoItem-border{border-radius:.24em;padding:.04em .2em;line-height:1em;vertical-align:middle;border:.08em solid hsla(0,0%,100%,.5);text-align:center;text-shadow:none}.mediaInfoItem_svg{-webkit-align-self:center;align-self:center;height:1.3em;width:auto}.mediaInfoItem_svg_lg{height:1.1em}.mediaInfoItem_sm{height:1.6em} \ No newline at end of file diff --git a/modules/mediainfo/mediainfo.js b/modules/mediainfo/mediainfo.js new file mode 100644 index 0000000..ea586f5 --- /dev/null +++ b/modules/mediainfo/mediainfo.js @@ -0,0 +1 @@ +define(["exports","./../common/datetime.js","./../common/globalize.js","./../common/textencoding.js","./../common/itemmanager/itemmanager.js","./../approuter.js","./../emby-elements/emby-button/emby-button.js","./../common/dataformatter.js","./../browser.js"],function(_exports,_datetime,_globalize,_textencoding,_itemmanager,_approuter,_embyButton,_dataformatter,_browser){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons","css!modules/mediainfo/mediainfo.css","programStyles"]);var IconSvg={};function getAirTimeText(item,showAirDateTime,showAirEndTime){var date,airTimeText="";return item.StartDate&&(date=new Date(Date.parse(item.StartDate)+(item.PrePaddingSeconds||0)),showAirDateTime&&(airTimeText+=_datetime.default.toLocaleDateString(date,{weekday:"short",month:"short",day:"numeric"})+" "),airTimeText+=_datetime.default.getDisplayTime(date),item.EndDate)&&showAirEndTime&&(date=new Date(Date.parse(item.EndDate)+(item.PostPaddingSeconds||0)),airTimeText+=" – "+_datetime.default.getDisplayTime(date)),airTimeText}function getProgramInfoHtml(item,options){var name,dummyChannel,html="",miscInfo=[];if(options.programIndicator&&(item.IsLive?miscInfo.push(getShadedMediaInfoItem(_globalize.default.translate("Live"),"mediaInfoProgramAttribute liveTvProgram")):item.IsPremiere?miscInfo.push(getShadedMediaInfoItem(_globalize.default.translate("Premiere"),"mediaInfoProgramAttribute premiereTvProgram")):item.IsNew?miscInfo.push(getShadedMediaInfoItem(_globalize.default.translate("AttributeNew"),"mediaInfoProgramAttribute newTvProgram")):item.IsRepeat&&miscInfo.push(getShadedMediaInfoItem(_globalize.default.translate("Repeat"),"mediaInfoProgramAttribute repeatTvProgram"))),item.StartDate&&!1!==options.programTime)try{miscInfo.push(getAirTimeText(item,!0,!0))}catch(e){console.log("Error parsing date: "+item.StartDate)}return item.ChannelName&&!1!==options.channelName&&(dummyChannel={ServerId:item.ServerId,Type:"TvChannel",Name:item.ChannelName,Id:item.ChannelId,Number:item.Number,ChannelNumber:item.ChannelNumber},name=_itemmanager.default.getDisplayName(dummyChannel,{}),options.interactive&&item.ChannelId?miscInfo.push({html:''+name+""}):miscInfo.push(name)),item.OfficialRating&&options.officialRating&&miscInfo.push(getBorderMediaInfoItem(item.OfficialRating)),options.timerIndicator&&(dummyChannel=function(item){var status,itemType=item.Type;if("SeriesTimer"===itemType)return'';if(item.TimerId||item.SeriesTimerId)status=item.Status||"Cancelled";else{if("Timer"!==itemType)return"";status=item.Status}return item.SeriesTimerId?"Cancelled"!==status?'':'':''}(item))&&miscInfo.push({html:dummyChannel}),html+=miscInfo.map(getMediaInfoItem).join("")}function getShadedMediaInfoItem(text,itemClass){itemClass=("mediaInfoItem-shaded "+(itemClass||"")).trim();return _browser.default.android||(itemClass+=" flex align-items-center"),{html:'
'+text+"
"}}function getBorderMediaInfoItem(text,itemClass){return{html:'
'+text+"
"}}function addMediaIcons(item,options,miscInfo){var mediaStreams=(null==(_options$mediaSource=options.mediaSource)?void 0:_options$mediaSource.MediaStreams)||item.MediaStreams||[],_options$mediaSource=[];if(!1!==options.mediaInfoIcons)for(var i=0,length=mediaStreams.length;i'+_options$mediaSource.join("")+""})}function getMediaInfoHtml(item,options){var showFolderRuntime,miscInfo=[],itemType=(options=options||{},item.Type);switch(itemType){case"MusicAlbum":case"MusicArtist":case"Playlist":case"MusicGenre":case"BoxSet":showFolderRuntime=!0}if(!1!==options.CommunityRating&&item.CommunityRating&&"RemoteSubtitle"!==item.Type&&(starHtml=getStarIconsHtml(item))&&miscInfo.push({html:starHtml}),item.CriticRating&&!1!==options.criticRating&&(starHtml=getCriticRating(item))&&miscInfo.push({html:starHtml}),("Episode"===itemType||"Recording"===itemType&&item.SeriesId||"Photo"===item.MediaType)&&!1!==options.originalAirDate&&item.PremiereDate)try{date=new Date(Date.parse(item.PremiereDate)),text=_datetime.default.toLocaleDateString(date,{month:"short",day:"numeric",year:"numeric"}),miscInfo.push(text)}catch(e){console.log("Error parsing date: "+item.PremiereDate)}if("SeriesTimer"===itemType&&(item.RecordAnyTime?miscInfo.push(_globalize.default.translate("Anytime")):item.StartDate&&miscInfo.push(_datetime.default.getDisplayTime(item.StartDate)),item.RecordAnyChannel||null==(starHtml=item.ChannelIds)||!starHtml.length?miscInfo.push(_globalize.default.translate("AllChannels")):miscInfo.push(item.ChannelName||_globalize.default.translate("OneChannel"))),!1!==options.year&&item.ProductionYear&&"Series"===itemType)if("Continuing"===item.Status)miscInfo.push(_globalize.default.translate("SeriesYearToPresent",item.ProductionYear));else if(item.ProductionYear){if(text=item.ProductionYear,item.EndDate)try{var endYear=new Date(Date.parse(item.EndDate)).getFullYear();endYear!==item.ProductionYear&&(text+=" – "+endYear)}catch(e){console.log("Error parsing date: "+item.EndDate)}miscInfo.push(text)}if("Series"===itemType&&(starHtml="",item.Studios&&item.Studios.length&&(endYear=item.Studios[0],starHtml&&(starHtml+=" on "),starHtml+=''+endYear.Name+""),starHtml)&&miscInfo.push(starHtml),!1!==options.programIndicator&&(item.IsLive?miscInfo.push(getShadedMediaInfoItem(_globalize.default.translate("Live"),"mediaInfoProgramAttribute liveTvProgram")):item.IsPremiere?miscInfo.push(getShadedMediaInfoItem(_globalize.default.translate("Premiere"),"mediaInfoProgramAttribute premiereTvProgram")):item.IsNew?miscInfo.push(getShadedMediaInfoItem(_globalize.default.translate("AttributeNew"),"mediaInfoProgramAttribute newTvProgram")):item.IsRepeat&&miscInfo.push(getShadedMediaInfoItem(_globalize.default.translate("Repeat"),"mediaInfoProgramAttribute repeatTvProgram"))),"Program"===itemType)if((item.IsSeries||item.EpisodeTitle)&&!1!==options.episodeTitle)(text=_itemmanager.default.getDisplayName(item,{includeIndexNumber:options.episodeTitleIndexNumber}))&&miscInfo.push(text);else if(item.IsMovie&&item.ProductionYear&&!1!==options.originalAirDate)miscInfo.push(item.ProductionYear);else if(item.PremiereDate&&!1!==options.originalAirDate)try{date=new Date(Date.parse(item.PremiereDate)),text=_globalize.default.translate("OriginalAirDateValue",_datetime.default.toLocaleDateString(date,{month:"short",day:"numeric",year:"numeric"})),miscInfo.push(text)}catch(e){console.log("Error parsing date: "+item.PremiereDate)}else item.ProductionYear&&miscInfo.push(item.ProductionYear);if(!1!==options.year&&"Series"!==itemType&&("Episode"!==itemType||!item.PremiereDate)&&"Person"!==itemType&&"Photo"!==item.MediaType&&"Program"!==itemType&&"Season"!==itemType)if(item.ProductionYear)miscInfo.push(item.ProductionYear);else if(item.PremiereDate)try{text=new Date(Date.parse(item.PremiereDate)).getFullYear(),miscInfo.push(text)}catch(e){console.log("Error parsing date: "+item.PremiereDate)}var date,text,starHtml=(null==(endYear=options.mediaSource)?void 0:endYear.RunTimeTicks)||item.RunTimeTicks,endYear=("Series"===itemType||"Program"===itemType||showFolderRuntime||!1===options.runtime||starHtml&&miscInfo.push("Audio"===itemType?_datetime.default.getDisplayRunningTime(starHtml):_datetime.default.getHumanReadableRuntime(starHtml)),showFolderRuntime&&((date=item.SongCount||item.ChildCount)&&miscInfo.push("BoxSet"===itemType?1===date?_globalize.default.translate("ValueOneItem"):_globalize.default.translate("ItemCount",date):1===date?_globalize.default.translate("OneTrack"):_globalize.default.translate("TrackCount",date)),starHtml)&&"Playlist"===itemType&&miscInfo.push(_datetime.default.getHumanReadableRuntime(starHtml)),"Series"===itemType&&(text=item.ChildCount)&&miscInfo.push(1===text?_globalize.default.translate("OneSeason"):_globalize.default.translate("NumberSeasonsValue",text)),"Photo"===item.MediaType&&item.Width&&item.Height&&miscInfo.push(item.Width+"x"+item.Height),options.container&&item.Container&&miscInfo.push(item.Container.toUpperCase()),item.Bitrate||item.BitRate),starHtml=(options.bitrate&&endYear&&miscInfo.push(_dataformatter.default.bitrateToString(endYear)),"RemoteSubtitle"===itemType&&(item.IsHashMatch&&miscInfo.push(getShadedMediaInfoItem(_globalize.default.translate("HashMatch"))),item.IsForced&&miscInfo.push(getShadedMediaInfoItem(_globalize.default.translate("Forced"))),item.IsHearingImpaired&&miscInfo.push(getShadedMediaInfoItem("SDH")),null!=item.DownloadCount)&&miscInfo.push(_globalize.default.translate("DownloadsValue",item.DownloadCount)),item.OfficialRating&&!1!==options.officialRating&&miscInfo.push(getBorderMediaInfoItem(item.OfficialRating)),options.genres&&(date=function(item,options){var type,context=options.context,genres=(item.GenreItems||[]).slice(0),genreLimit=options.genreLimit;switch(null!=(genreLimit=null==genreLimit?1:genreLimit)&&genres.length>genreLimit&&(genres.length=genreLimit),context){case"games":type="GameGenre";break;case"music":type="MusicGenre";break;default:type="Genre"}return genreLimit=options.genreConcat||", ",options=(options=genres.map(function(p){return''+_textencoding.default.htmlEncode(p.Name)+""}).join(genreLimit))&&'
'+options+"
"}(item,options))&&miscInfo.push({html:date}),addMediaIcons(item,options,miscInfo),miscInfo.map(getMediaInfoItem).join(""));return options.dateAdded&&_itemmanager.default.enableDateAddedDisplay(item)&&(text=new Date(Date.parse(item.DateCreated)),starHtml+=getMediaInfoItem(_globalize.default.translate("AddedOnValue",_datetime.default.toLocaleDateString(text,{month:"short",day:"numeric",year:"numeric"})))),!1!==options.endsAt&&(endYear=getEndsAt(item,options.mediaSource))&&(starHtml+=getMediaInfoItem(endYear,("endsAt "+(options.endsAtClass||"")).trim())),starHtml}function getEndsAt(item,mediaSource){if((mediaSource=mediaSource||item,"Video"===item.MediaType&&mediaSource.RunTimeTicks)&&(!item.StartDate&&"Program"!==item.Type))return item=item.UserData&&item.UserData.PlaybackPositionTicks||0,getEndsAtFromPosition(mediaSource.RunTimeTicks,item);return null}function getEndsAtFromPosition(runtimeTicks,positionTicks,includeText){runtimeTicks=Date.now()+(runtimeTicks-(positionTicks||0))/1e4,runtimeTicks=new Date(runtimeTicks),positionTicks=_datetime.default.getDisplayTime(runtimeTicks);return!1===includeText?positionTicks:_globalize.default.translate("EndsAtValue",positionTicks)}function getMediaInfoItem(m,cssClass){cssClass="string"==typeof cssClass?cssClass+" mediaInfoItem":"mediaInfoItem";var mediaInfoText=m;if("string"!=typeof m&&"number"!=typeof m){if(m.html)return m.html;mediaInfoText=m.text,cssClass+=" "+m.cssClass}return'
'+mediaInfoText+"
"}function getCriticRating(item,options){var outerClass="mediaInfoItem mediaInfoCriticRating";return options&&options.outerClass&&(outerClass+=" "+options.outerClass),'
'+item.CriticRating+"%
"}function getStarIconsHtml(item,options){var outerClass,html="",item=item.CommunityRating;return item&&(outerClass="starRatingContainer mediaInfoItem",options&&options.outerClass&&(outerClass+=" "+options.outerClass),html=(html=html+'
')+_dataformatter.default.numberToString(item,1)+"
"),html}function fillPrimaryMediaInfo(elem,item,options){var html=getPrimaryMediaInfoHtml(item,options);(elem.innerHTML=html)?elem.classList.remove("hide"):elem.classList.add("hide"),afterFill(elem,item,options)}function afterFill(elem,item,options){!1!==options.endsAt&&(elem=elem.querySelector(".endsAt"))&&!function(elem,item,mediaSource){var interval=setInterval(function(){document.body.contains(elem)?elem.innerHTML=getEndsAt(item,mediaSource):clearInterval(interval)},6e4)}(elem,item,options.mediaSource)}function getPrimaryMediaInfoHtml(item,options){return null==(options=options||{}).interactive&&(options.interactive=!1),getMediaInfoHtml(item,options)}function getSecondaryMediaInfoHtml(item,options){null==(options=options||{}).interactive&&(options.interactive=!1);var itemType=item.Type;return"Program"===itemType||"Timer"===itemType||"Recording"===itemType?getProgramInfoHtml(item,options):""}function createAttribute(label,value,className){return'
'+label+''+value+"
"}_exports.default={getMediaInfoHtml:getPrimaryMediaInfoHtml,fill:fillPrimaryMediaInfo,getEndsAt:getEndsAt,getEndsAtFromPosition:getEndsAtFromPosition,getPrimaryMediaInfoHtml:getPrimaryMediaInfoHtml,getSecondaryMediaInfoHtml:getSecondaryMediaInfoHtml,fillPrimaryMediaInfo:fillPrimaryMediaInfo,fillSecondaryMediaInfo:function(elem,item,options){var html=getSecondaryMediaInfoHtml(item,options);(elem.innerHTML=html)?elem.classList.remove("hide"):elem.classList.add("hide"),afterFill(elem,item,options)},getResolutionText:_dataformatter.default.getResolutionText,pushMediaStreamLines:function(stream,options,lines,icon){var streamType=stream.StreamType,streamTypeLocalizationKey="EmbeddedImage"===streamType?"Image":streamType,streamTypeLocalizationKey=("Lyrics"===stream.SubtitleType&&(streamTypeLocalizationKey="Lyrics"),_globalize.default.translate(streamTypeLocalizationKey));lines.push('

'+(streamTypeLocalizationKey=icon?''+icon+""+streamTypeLocalizationKey:streamTypeLocalizationKey)+"

"),stream.DisplayTitle&&lines.push(createAttribute(_globalize.default.translate("Title"),stream.DisplayTitle)),stream.Title&&stream.Title!==stream.DisplayTitle&&lines.push(createAttribute(_globalize.default.translate("HeaderEmbeddedTitle"),stream.Title)),(stream.DisplayLanguage||stream.Language)&&"Video"!==streamType&&lines.push(createAttribute(_globalize.default.translate("Language"),stream.DisplayLanguage||stream.Language)),stream.Codec&&lines.push(createAttribute(_globalize.default.translate("Codec"),stream.Codec.toUpperCase())),"DolbyVision"===stream.ExtendedVideoType&&stream.ExtendedVideoSubTypeDescription&&lines.push(createAttribute(_globalize.default.translate("DolbyProfile"),stream.ExtendedVideoSubTypeDescription)),stream.CodecTag&&lines.push(createAttribute(_globalize.default.translate("HeaderCodecTag"),stream.CodecTag)),stream.Profile&&lines.push(createAttribute(_globalize.default.translate("Profile"),stream.Profile)),stream.Level&&lines.push(createAttribute(_globalize.default.translate("Level"),stream.Level)),(stream.Width||stream.Height)&&lines.push(createAttribute(_globalize.default.translate("Resolution"),stream.Width+"x"+stream.Height)),stream.AspectRatio&&"mjpeg"!==stream.Codec&&lines.push(createAttribute(_globalize.default.translate("HeaderAspectRatio"),stream.AspectRatio)),"Video"===streamType&&lines.push(createAttribute(_globalize.default.translate("Interlaced"),stream.IsInterlaced?_globalize.default.translate("Yes"):_globalize.default.translate("No"))),(stream.AverageFrameRate||stream.RealFrameRate)&&lines.push(createAttribute(_globalize.default.translate("Framerate"),_dataformatter.default.numberToString(stream.AverageFrameRate||stream.RealFrameRate,3))),stream.ChannelLayout&&lines.push(createAttribute(_globalize.default.translate("Layout"),stream.ChannelLayout)),stream.Channels&&lines.push(createAttribute(_globalize.default.translate("Channels"),stream.Channels+" ch")),stream.BitRate&&"mjpeg"!==stream.Codec&&lines.push(createAttribute(_globalize.default.translate("Bitrate"),_dataformatter.default.bitrateToString(stream.BitRate))),stream.SampleRate&&lines.push(createAttribute(_globalize.default.translate("HeaderSampleRate"),_dataformatter.default.numberToString(stream.SampleRate)+" Hz")),stream.VideoRange&&"SDR"!==stream.VideoRange&&lines.push(createAttribute(_globalize.default.translate("HeaderVideoRange"),stream.VideoRange)),stream.ColorPrimaries&&lines.push(createAttribute(_globalize.default.translate("HeaderColorPrimaries"),stream.ColorPrimaries)),stream.ColorSpace&&lines.push(createAttribute(_globalize.default.translate("HeaderColorSpace"),stream.ColorSpace)),stream.ColorTransfer&&lines.push(createAttribute(_globalize.default.translate("HeaderColorTransfer"),stream.ColorTransfer)),stream.BitDepth&&lines.push(createAttribute(_globalize.default.translate("HeaderBitDepth"),stream.BitDepth+" bit")),stream.PixelFormat&&lines.push(createAttribute(_globalize.default.translate("HeaderPixelFormat"),stream.PixelFormat)),stream.RefFrames&&lines.push(createAttribute(_globalize.default.translate("HeaderReferenceFrames"),stream.RefFrames)),stream.Rotation&&lines.push(createAttribute(_globalize.default.translate("Rotation"),stream.Rotation)),"Video"!==streamType&&"Attachment"!==streamType&&"Data"!==streamType&&lines.push(createAttribute(_globalize.default.translate("Default"),stream.IsDefault?_globalize.default.translate("Yes"):_globalize.default.translate("No"))),"Subtitle"===streamType&&"Lyrics"!==stream.SubtitleType&&(lines.push(createAttribute(_globalize.default.translate("Forced"),stream.IsForced?_globalize.default.translate("Yes"):_globalize.default.translate("No"))),null!=stream.IsHearingImpaired)&&lines.push(createAttribute(_globalize.default.translate("HearingImpaired"),stream.IsHearingImpaired?_globalize.default.translate("Yes"):_globalize.default.translate("No"))),!stream.IsExternal&&"Subtitle"!==streamType||lines.push(createAttribute(_globalize.default.translate("External"),stream.IsExternal?_globalize.default.translate("Yes"):_globalize.default.translate("No"))),"Attachment"===streamType&&lines.push(createAttribute(_globalize.default.translate("External"),stream.IsExternal?_globalize.default.translate("Yes"):_globalize.default.translate("No"))),(stream.IsExternal||"Attachment"===streamType)&&stream.Path&&lines.push(createAttribute(_globalize.default.translate("File"),function(stream){return(stream=stream.Path.split("/").join("\\").split("\\"))[stream.length-1]}(stream)))},getCommunityRating:getStarIconsHtml,getCriticRating:getCriticRating,bitrateToString:_dataformatter.default.bitrateToString,sizeToString:_dataformatter.default.sizeToString,getAirTimeText:getAirTimeText}}); \ No newline at end of file diff --git a/modules/mediainfo/rotten.png b/modules/mediainfo/rotten.png new file mode 100644 index 0000000..807b8c2 Binary files /dev/null and b/modules/mediainfo/rotten.png differ diff --git a/modules/metadataeditor/externalideditor.js b/modules/metadataeditor/externalideditor.js new file mode 100644 index 0000000..4ff6e6f --- /dev/null +++ b/modules/metadataeditor/externalideditor.js @@ -0,0 +1 @@ +define(["exports","./../common/globalize.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-select/emby-select.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_globalize,_embyInput,_embySelect,_embyButton,_paperIconButtonLight,_embyScroller,_embyDialogclosebutton){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle"]);_exports.default={embed:function(context,item,externalIds){for(var html="",providerIds=item.ProviderIds||{},keys=Object.keys(providerIds),i=0,length=externalIds.length;i'+'
',providerIds[function(keys,key){var keyLower=key.toLowerCase();return keys.filter(function(k){return k.toLowerCase()===keyLower})[0]||key}(keys,idInfo.Key)]||""),html=(html+='
')+('')+"
";formatString&&(html+=''),html=html+"
"+""}context.querySelector(".externalIds",context).innerHTML=html,externalIds.length?context.classList.remove("hide"):context.classList.add("hide")},updateObjectFromElements:function(context,item){context=context.querySelectorAll(".txtExternalId"),Array.prototype.map.call(context,function(idElem){var providerKey=idElem.getAttribute("data-providerkey");item.ProviderIds[providerKey]=idElem.value})}}}); \ No newline at end of file diff --git a/modules/metadataeditor/metadataeditor.css b/modules/metadataeditor/metadataeditor.css new file mode 100644 index 0000000..62500f5 --- /dev/null +++ b/modules/metadataeditor/metadataeditor.css @@ -0,0 +1 @@ +.checkboxContainer-lockedfield{margin-bottom:0!important;width:auto!important}.checkboxContainer-lockedfield-standalone{-webkit-margin-start:auto;margin-inline-start:auto}.checkboxLabel-lockedfield{-webkit-padding-end:0!important;padding-inline-end:0!important;width:2.8em;height:2.8em;-webkit-margin-end:0!important;margin-inline-end:0!important;margin-top:0!important}.checkboxLabel-lockedfield-embeddedintofield{width:3.2em;box-sizing:border-box;border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-start-start-radius:0!important;border-end-start-radius:0!important;border-inline-start-width:.15em!important;border-inline-end-width:0!important;border-inline-start-style:solid;border-top-style:solid;border-bottom-style:solid;border-top-color:transparent!important;border-bottom-color:transparent!important}.checkboxLabel-lockedfield-embeddedintofield,.checkboxLabel-lockedfield-embeddedintoselect{height:3em}.checkboxLabel-lockedfield::before{display:none!important}.checkboxLabel-lockedfield::after{display:none!important}.checkboxLabel-lockedfield-standalone{border-radius:100em!important;border-width:0!important}.txtInput-withlockedfield,.select-withlockedfield{border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-start-end-radius:0!important;border-end-end-radius:0!important}.lockedfield-lockicon{position:absolute;font-size:124%;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;cursor:pointer;z-index:1}.chkLockedField:not(:checked)~.lockedfield-lockicon-lock{display:none}.chkLockedField:checked~.lockedfield-lockicon-unlock{display:none}.chkLockedField~.emby-checkbox-focusoutline{display:none!important}.chkLockedField:checked~.lockedfield-lockicon{color:#fff!important}.inputContainer-withlockedfield{margin-bottom:0!important} \ No newline at end of file diff --git a/modules/metadataeditor/metadataeditor.js b/modules/metadataeditor/metadataeditor.js new file mode 100644 index 0000000..baaafc3 --- /dev/null +++ b/modules/metadataeditor/metadataeditor.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/connectionmanager.js","./../emby-apiclient/events.js","./../dialoghelper/dialoghelper.js","./../layoutmanager.js","./../common/globalize.js","./../common/datetime.js","./../common/textencoding.js","./../common/itemmanager/itemmanager.js","./../loading/loading.js","./../focusmanager.js","./../common/servicelocator.js","./../emby-elements/emby-checkbox/emby-checkbox.js","./../emby-elements/emby-toggle/emby-toggle.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-select/emby-select.js","./../emby-elements/emby-textarea/emby-textarea.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../common/input/api.js","./../listview/listview.js","./externalideditor.js"],function(_exports,_connectionmanager,_events,_dialoghelper,_layoutmanager,_globalize,_datetime,_textencoding,_itemmanager,_loading,_focusmanager,_servicelocator,_embyCheckbox,_embyToggle,_embyInput,_embySelect,_embyTextarea,_embyButton,_paperIconButtonLight,_embyScroller,_embyDialogclosebutton,_api,_listview,_externalideditor){function submitUpdatedItem(instance,form,item){var apiClient=_connectionmanager.default.getApiClient(instance.currentItem);!function(instance,form,item,apiClient){return"TvChannel"!==(item=instance.currentItem).Type||(instance=form.querySelector(".selectGuideDataProvider").value||null,form=form.querySelector(".selectGuideChannel").value||null,instance===item.ListingsProviderId&&form===item.ListingsChannelId)?Promise.resolve():apiClient.ajax({type:"POST",url:apiClient.getUrl("LiveTv/ChannelMappings"),data:{providerId:instance,tunerChannelId:item.ManagementId,providerChannelId:form},dataType:"json"})}(instance,form,0,apiClient).then(function(){apiClient.updateItem(item).then(function(){var options,context;instance.hasChanges=!0,options=_globalize.default.translate("MessageItemSaved"),Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)}),_loading.default.hide(),(context=instance.context).classList.contains("dialog")&&_dialoghelper.default.close(context)})})}function addElementToList(instance,source){var options;options={title:_globalize.default.translate("Add"),label:source.getAttribute("data-label"),confirmText:_globalize.default.translate("Add")},Emby.importModule("./modules/prompt/prompt.js").then(function(prompt){return prompt(options)}).then(function(text){var container=source.closest(".editableListviewContainer"),prop=source.getAttribute("data-field"),prop=(instance.currentItem[prop].push({Name:text}),container.querySelector(".itemsContainer").refreshItems(),container.querySelector(".chkLockedField"));prop&&(prop.checked=!0)})}function addOrEditPerson(instance,person){var isNew;return person||(person={},isNew=!0),Emby.importModule("./modules/metadataeditor/personeditor.js").then(function(personEditor){return personEditor.show(person).then(function(updatedPerson){isNew&&instance.currentItem.People.push(updatedPerson),isNew&&instance.refreshPeople();updatedPerson=instance.context.querySelector('.chkLockedField[data-field="Cast"]');updatedPerson&&(updatedPerson.checked=!0)})})}function onRejected(){}function afterDeleted(instance,item){var parentId=item.ParentId||item.SeasonId||item.SeriesId;parentId?reload(instance,parentId,item.ServerId):Emby.importModule("./modules/approuter.js").then(function(appRouter){appRouter.goHome()})}function onGuideDataProviderChange(e){var apiClient,section=this.context.querySelector(".channelMappingSection"),e=e.target.closest("select").value;e&&"none"!==e&&"tuner"!==e?(section.querySelector(".fldGuideChannelId").classList.remove("hide"),apiClient=_connectionmanager.default.getApiClient(this.currentItem),function(context,item,listingsProviderId,apiClient){apiClient.getJSON(apiClient.getUrl("LiveTv/ChannelMappingOptions",{ProviderId:listingsProviderId})).then(function(result){!function(context,item,channels){context=context.querySelector(".selectGuideChannel"),channels=channels.map(function(i){return'"}).join("");context.innerHTML=channels,context.value=item.ListingsChannelId}(context,item,result.ProviderChannels)})}(section,this.currentItem,e,apiClient)):section.querySelector(".fldGuideChannelId").classList.add("hide")}function onFieldInput(e){var container=this.closest(".inputContainer,.selectContainer").parentNode.closest(".inputContainer");container&&(container.querySelector(".chkLockedField").checked=!0)}function getLinkedItems(query){var instance=this.instance,type=this.type,property=this.property,icon=_itemmanager.default.getDefaultIcon({Type:type}),serverId=instance.serverId,sourceItems=instance.currentItem[property]||[],type=sourceItems.map(function(i,index){return{Type:"GenericListItem",Name:i.Name,CanDelete:!0,CanEdit:!1,Icon:icon,DeleteType:"remove",ShortOverview:i.Role,OriginalItem:i,CanReorder:!0,CanMoveUp:0")+"")+"",select.innerHTML=html}(parentalRatingOptions),parentalRatingOptions.value=item.Status||"",context.querySelector(".select3dFormat",context).value=item.Video3DFormat||"",item.LockData||!1);if(context.querySelector(".chkLockData").checked=select,context.querySelector(".txtPath").innerHTML=item.Path||"",context.querySelector(".txtName").value=item.Name||"",context.querySelector(".txtChannelNumber").value=item.ChannelNumber||"",context.querySelector(".txtOriginalName").value=item.OriginalTitle||"",context.querySelector(".txtOverview").value=item.Overview||"",context.querySelector(".txtTagline").value=item.Taglines&&item.Taglines.length?item.Taglines[0]:"",context.querySelector(".txtSortName").value=item.SortName||"",context.querySelector(".txtCommunityRating").value=null==item.CommunityRating?"":item.CommunityRating.toFixed(1),context.querySelector(".txtCriticRating").value=item.CriticRating||"",context.querySelector(".txtIndexNumber").value=null==item.IndexNumber?"":item.IndexNumber,context.querySelector(".txtParentIndexNumber").value=null==item.ParentIndexNumber?"":item.ParentIndexNumber,context.querySelector(".txtDisplaySeason").value="SortParentIndexNumber"in item?item.SortParentIndexNumber:"",context.querySelector(".txtDisplayEpisode").value="SortIndexNumber"in item?item.SortIndexNumber:"",context.querySelector(".txtAlbum").value=item.Album||"",context.querySelector(".txtAlbumArtist").value=(item.AlbumArtists||[]).map(function(a){return a.Name}).join(";"),"Series"===item.Type?(context.querySelector(".selectFileOrder").value=(item.DisplayOrder||"").toLowerCase(),context.querySelector(".selectDisplayOrder").value=""):(context.querySelector(".selectDisplayOrder").value=item.DisplayOrder||"",context.querySelector(".selectFileOrder").value=""),context.querySelector(".txtArtist").value=(item.ArtistItems||[]).map(function(a){return a.Name}).join(";"),context.querySelector(".txtComposer").value=(item.Composers||[]).map(function(a){return a.Name}).join(";"),item.DateCreated)try{context.querySelector(".txtDateAdded").valueAsNumberUtc=Date.parse(item.DateCreated)}catch(e){context.querySelector(".txtDateAdded").value=""}else context.querySelector(".txtDateAdded").value="";if(item.PremiereDate)try{context.querySelector(".txtPremiereDate").valueAsNumberUtc=Date.parse(item.PremiereDate)}catch(e){context.querySelector(".txtPremiereDate").value=""}else context.querySelector(".txtPremiereDate").value="";if(item.EndDate)try{context.querySelector(".txtEndDate").valueAsNumberUtc=Date.parse(item.EndDate)}catch(e){context.querySelector(".txtEndDate").value=""}else context.querySelector(".txtEndDate").value="";context.querySelector(".txtProductionYear").value=item.ProductionYear||"";for(var parentalRatingOptions=item.ProductionLocations&&item.ProductionLocations.length?item.ProductionLocations[0]:"",promises=(context.querySelector(".txtPlaceOfBirth").value=parentalRatingOptions,context.querySelector(".selectLanguage").value=item.PreferredMetadataLanguage||"",context.querySelector(".selectCountry").value=item.PreferredMetadataCountryCode||"",item.RunTimeTicks?(select=item.RunTimeTicks/6e8,context.querySelector(".txtSeriesRuntime").value=Math.round(select)):context.querySelector(".txtSeriesRuntime",context).value="",_loading.default.hide(),[]),itemsContainers=context.querySelectorAll(".itemsContainer"),i=0,length=itemsContainers.length;i'+i.Name+" "+_textencoding.default.htmlEncode(i.ListingsId||i.Path||"").trim()+""}).join(""),context.innerHTML=providers,context.value=item.ListingsProviderId,onGuideDataProviderChange.call(instance,{target:context,currentTarget:context})}(instance,context,item,result)})}function populateRatings(allParentalRatings,select,currentValue){for(var rating,html="",ratings=(html+="",[]),currentValueFound=!1,i=0,length=allParentalRatings.length;i"+rating.Name+"";select.innerHTML=html}function reload(instance,itemId,serverId){return _loading.default.show(),Promise.all([function(itemId,serverId){return serverId=_connectionmanager.default.getApiClient(serverId),itemId?serverId.getItem(serverId.getCurrentUserId(),itemId,{Fields:"ChannelMappingInfo",ExcludeFields:"Chapters,MediaSources,MediaStreams,Subviews"}):serverId.getRootFolder(serverId.getCurrentUserId())}(itemId,serverId),function(itemId,serverId){return serverId=_connectionmanager.default.getApiClient(serverId),itemId?serverId.getJSON(serverId.getUrl("Items/"+itemId+"/MetadataEditor")):Promise.resolve({})}(itemId,serverId)]).then(function(responses){var item=responses[0],responses=responses[1],context=instance.context,languages=(instance.currentItem=item,instance.hasChanges=!1,responses.Cultures),countries=responses.Countries,languages=(_externalideditor.default.embed(context.querySelector(".externalIdsSection"),item,responses.ExternalIdInfos),!function(context,item){for(var elems=context.querySelectorAll(".chkLockedField"),i=0,length=elems.length;i"+culture.DisplayName+""}select.innerHTML=html}(context.querySelector(".selectLanguage"),languages),context.querySelector(".selectCountry")),allCountries=countries,html="";html+="";for(var i=0,length=allCountries.length;i"+culture.DisplayName+""}languages.innerHTML=html;countries=_connectionmanager.default.getApiClient(item);return function(context,item){var itemType=item.Type;switch((item.Path?showElement:hideElement)(".fldPath",context),("Series"===item.Type||"Movie"===item.Type||"Trailer"===item.Type?showElement:hideElement)(".fldOriginalName",context),"Audio"===item.Type?(hideElement(".fldSortName",context),setRequired(context.querySelector(".txtSortName"),!1)):(showElement(".fldSortName",context),setRequired(context.querySelector(".txtSortName"),!0)),("Series"===item.Type?showElement:hideElement)(".fldSeriesRuntime",context),("Series"===item.Type||"Person"===item.Type?showElement:hideElement)(".fldEndDate",context),("MusicAlbum"===item.Type?showElement:hideElement)(".albumAssociationMessage",context),("Movie"===item.Type||"Trailer"===item.Type||"Series"===item.Type?showElement:hideElement)(".fldCriticRating",context),("Series"===item.Type?showElement:hideElement)(".fldStatus",context),("Video"===item.MediaType&&"TvChannel"!==item.Type?showElement:hideElement)(".fld3dFormat",context),("Audio"===item.Type?showElement:hideElement)(".fldAlbumArtist",context),("TvChannel"===item.Type?showElement:hideElement)(".fldChannelNumber",context),("Audio"===item.Type||"MusicVideo"===item.Type?(showElement(".fldArtist",context),showElement):(hideElement(".fldArtist",context),hideElement))(".fldAlbum",context),("Audio"===item.Type?showElement:hideElement)(".fldComposer",context),("Episode"===item.Type&&0===item.ParentIndexNumber?showElement:hideElement)(".collapsibleSpecialEpisodeInfo",context),("Person"===item.Type||"Genre"===item.Type||"Studio"===item.Type||"GameGenre"===item.Type||"MusicGenre"===item.Type||"TvChannel"===item.Type||"Book"===item.Type||"MusicArtist"===item.Type||"Channel"===item.Type||"TvChannel"===item.Type||"Folder"===item.Type?hideElement:showElement)(".peopleCollapsible",context),("Person"===item.Type||"Genre"===item.Type||"Studio"===item.Type||"GameGenre"===item.Type||"MusicGenre"===item.Type||"TvChannel"===item.Type||"Folder"===item.Type?(hideElement(".fldCommunityRating",context),hideElement(".genresCollapsible",context),hideElement(".studiosCollapsible",context),("TvChannel"===item.Type?showElement:hideElement)(".fldOfficialRating",context),hideElement):(showElement(".fldCommunityRating",context),showElement(".genresCollapsible",context),showElement(".studiosCollapsible",context),showElement(".fldOfficialRating",context),showElement))(".fldCustomRating",context),showElement(".tagsCollapsible",context),("TvChannel"===item.Type?(hideElement(".metadataSettingsCollapsible",context),hideElement):(showElement(".metadataSettingsCollapsible",context),showElement))(".fldDateAdded",context),itemType){case"TvChannel":case"Folder":hideElement(".fldPremiereDate",context);break;default:showElement(".fldPremiereDate",context)}switch(itemType){case"Person":case"TvChannel":case"Folder":hideElement(".fldYear",context);break;default:showElement(".fldYear",context)}("TvChannel"===item.Type||"Folder"===item.Type?hideElement:showElement)(".overviewContainer",context),("Person"===item.Type?(context.querySelector(".txtProductionYear").label(_globalize.default.translate("LabelBirthYear")),context.querySelector(".txtPremiereDate").label(_globalize.default.translate("LabelBirthDate")),context.querySelector(".txtEndDate").label(_globalize.default.translate("LabelDeathDate")),showElement):(context.querySelector(".txtProductionYear").label(_globalize.default.translate("Year")),context.querySelector(".txtPremiereDate").label(_globalize.default.translate("LabelReleaseDate")),context.querySelector(".txtEndDate").label(_globalize.default.translate("LabelEndDate")),hideElement))(".fldPlaceOfBirth"),"Audio"===item.Type||"Episode"===item.Type||"Season"===item.Type?(showElement(".fldIndexNumber"),"Episode"===item.Type?context.querySelector(".txtIndexNumber").label(_globalize.default.translate("LabelEpisodeNumber")):"Season"===item.Type?context.querySelector(".txtIndexNumber").label(_globalize.default.translate("LabelSeasonNumber")):"Audio"===item.Type?context.querySelector(".txtIndexNumber").label(_globalize.default.translate("LabelTrackNumber")):context.querySelector(".txtIndexNumber").label(_globalize.default.translate("LabelNumber"))):hideElement(".fldIndexNumber"),"Audio"===item.Type||"Episode"===item.Type?(showElement(".fldParentIndexNumber"),"Episode"===item.Type?context.querySelector(".txtParentIndexNumber").label(_globalize.default.translate("LabelSeasonNumber")):"Audio"===item.Type?context.querySelector(".txtParentIndexNumber").label(_globalize.default.translate("LabelDiscNumber")):context.querySelector(".txtParentIndexNumber").label(_globalize.default.translate("LabelParentNumber"))):hideElement(".fldParentIndexNumber",context),"BoxSet"===item.Type?(showElement(".fldDisplayOrder",context),hideElement(".fldFileOrder",context),context.querySelector(".selectDisplayOrder").innerHTML='",context.querySelector(".selectFileOrder").innerHTML=""):"Series"===item.Type?(hideElement(".fldDisplayOrder",context),showElement(".fldFileOrder",context),context.querySelector(".selectFileOrder").innerHTML='',context.querySelector(".selectDisplayOrder").innerHTML=""):(context.querySelector(".selectDisplayOrder").innerHTML="",context.querySelector(".selectFileOrder").innerHTML="",hideElement(".fldDisplayOrder",context),hideElement(".fldFileOrder",context))}(context,item),"TvChannel"===item.Type&&fillChannelMapping(instance,context,item,countries),("Video"===item.MediaType&&"Episode"!==item.Type&&"TvChannel"!==item.Type||"Series"===item.Type||"Game"===item.Type?showElement:hideElement)(".fldTagline",context),fillItemInfo(context,item,0,responses.ParentalRatingOptions)})}function show(instance,itemId,serverId){return _loading.default.show(),require(["text!modules/metadataeditor/metadataeditor.template.html"]).then(function(responses){var responses=responses[0],dialogOptions={removeOnClose:!0,scrollY:!1},dialogOptions=(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="medium-tall",_dialoghelper.default.createDialog(dialogOptions)),html=(dialogOptions.classList.add("formDialog"),"");html+=_globalize.default.translateDocument(responses,"sharedcomponents"),dialogOptions.innerHTML=html;for(var elems=dialogOptions.querySelectorAll(".dayText"),date=new Date;0 + +

+ ${Edit} +

+
+ + +
+ + +
+
+
+
+ +
+
${LabelPath}
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
${ConfigureDateAdded}
+
+
+ +
${SeriesDisplayOrderHelp}
+
+ +
+ +
+
+ +
${LabelArtistsHelp}
+
+
+ +
${LabelArtistsHelp}
+
+
+ +
${LabelArtistsHelp}
+
+
+ +
+
+ +
+
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+ +
+
+ +
${CustomRatingHelp}
+
+
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+

+ ${HeaderSpecialEpisodeInfo} +

+
+
+
+ +
+ +
+ +
+
+ +
+ +
+
+
+ +
+

+ ${HeaderExternalIds} +

+
+
+
+ +
+
+

+ ${Genres} +

+ + + +
+
+
+
+
+

+ ${People} +

+ + + +
+
+
+
+
+
+

+ ${Studios} +

+ + + +
+
+
+
+
+

+ ${Tags} +

+ + + +
+ +
+
+
+

${HeaderMetadataSettings}

+
+
+ +
${MessageLeaveEmptyToInherit}
+
+
+ +
${MessageLeaveEmptyToInherit}
+
+ + + +
+
+
+
+ +
+ +
+ +
+
+
+
\ No newline at end of file diff --git a/modules/metadataeditor/metadataeditor_nontv.css b/modules/metadataeditor/metadataeditor_nontv.css new file mode 100644 index 0000000..3944824 --- /dev/null +++ b/modules/metadataeditor/metadataeditor_nontv.css @@ -0,0 +1 @@ +@media all and (pointer:fine){.checkboxLabel-lockedfield-embeddedintofield,.checkboxLabel-lockedfield-embeddedintoselect{height:2.4em}} \ No newline at end of file diff --git a/modules/metadataeditor/personeditor.js b/modules/metadataeditor/personeditor.js new file mode 100644 index 0000000..612ab9b --- /dev/null +++ b/modules/metadataeditor/personeditor.js @@ -0,0 +1 @@ +define(["exports","./../dialoghelper/dialoghelper.js","./../layoutmanager.js","./../common/globalize.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-select/emby-select.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_dialoghelper,_layoutmanager,_globalize,_embyInput,_embySelect,_embyButton,_paperIconButtonLight,_embyScroller,_embyDialogclosebutton){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle"]);_exports.default={show:function(person){return require(["text!modules/metadataeditor/personeditor.template.html"]).then(function(responses){var responses=responses[0],dialogOptions={removeOnClose:!0,scrollY:!1},dlg=(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="medium-tall",_dialoghelper.default.createDialog(dialogOptions)),dialogOptions=(dlg.classList.add("formDialog"),""),submitted=!1;return dialogOptions+=_globalize.default.translateDocument(responses,"sharedcomponents"),dlg.innerHTML=dialogOptions,person.Name?dlg.querySelector(".formDialogHeaderTitle").innerHTML=_globalize.default.translate("Edit"):dlg.querySelector(".formDialogHeaderTitle").innerHTML=_globalize.default.translate("Add"),dlg.querySelector(".txtPersonName",dlg).value=person.Name||"",dlg.querySelector(".selectPersonType",dlg).value=person.Type||"",dlg.querySelector(".txtPersonRole",dlg).value=person.Role||"",dlg.querySelector(".selectPersonType").addEventListener("change",function(e){"Actor"===this.value?dlg.querySelector(".fldRole").classList.remove("hide"):dlg.querySelector(".fldRole").classList.add("hide")}),dlg.querySelector("form").addEventListener("submit",function(e){return submitted=!0,person.Name=dlg.querySelector(".txtPersonName",dlg).value,person.Type=dlg.querySelector(".selectPersonType",dlg).value,person.Role=dlg.querySelector(".txtPersonRole",dlg).value||null,_dialoghelper.default.close(dlg),e.preventDefault(),!1}),dlg.querySelector(".selectPersonType").dispatchEvent(new CustomEvent("change",{bubbles:!0})),_dialoghelper.default.open(dlg).then(function(){return submitted?Promise.resolve(person):Promise.reject()})})}}}); \ No newline at end of file diff --git a/modules/metadataeditor/personeditor.template.html b/modules/metadataeditor/personeditor.template.html new file mode 100644 index 0000000..49275ae --- /dev/null +++ b/modules/metadataeditor/personeditor.template.html @@ -0,0 +1,40 @@ +
+ +

+ ${Edit} +

+
+ +
+
+
+ +
+ +
+ +
+ +
+
+ +
${LabelPersonRoleHelp}
+
+ +
+ +
+ +
+
+
\ No newline at end of file diff --git a/modules/missingepisodesdialog/missingepisodesdialog.js b/modules/missingepisodesdialog/missingepisodesdialog.js new file mode 100644 index 0000000..917fbb8 --- /dev/null +++ b/modules/missingepisodesdialog/missingepisodesdialog.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/connectionmanager.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-toggle/emby-toggle.js","./../emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../dialoghelper/dialoghelper.js","./../layoutmanager.js","./../dom.js","./../common/globalize.js","./../loading/loading.js","./../focusmanager.js","./../listview/listview.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_connectionmanager,_embyButton,_embyScroller,_embyToggle,_embyItemscontainer,_dialoghelper,_layoutmanager,_dom,_globalize,_loading,_focusmanager,_listview,_embyDialogclosebutton){function MissingEpisodesDialog(){}function onAllItemsContainerUpgraded(){this.itemsContainer.resume({refresh:!0}).then(function(){var dlg=this.dlg;_focusmanager.default.autoFocus(dlg,{skipIfNotEnabled:!0})}.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons","formDialogStyle"]),MissingEpisodesDialog.prototype.getItems=function(query){var options=this.options,apiClient=_connectionmanager.default.getApiClient(options.items[0]);return apiClient.getMissingEpisodes(Object.assign({UserId:apiClient.getCurrentUserId(),ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",Fields:"Overview",ParentId:options.items[0].Id,IncludeSpecials:this.dlg.querySelector(".chkSpecials").checked,IncludeUnaired:this.dlg.querySelector(".chkUnaired").checked},query))},MissingEpisodesDialog.prototype.getListOptions=function(items){return{renderer:_listview.default,options:{enableDefaultIcon:!0,action:"overview",fields:["Name","MediaInfo","Overview"],draggable:!1,draggableXActions:!1,multiSelect:!1,contextMenu:!1,hoverPlayButton:!1,imageSize:"medium",enableUserDataButtons:!1,mediaInfo:!1,enableBottomOverview:!1,playQueueIndicator:!1},virtualScrollLayout:"vertical-list"}},MissingEpisodesDialog.prototype.show=function(options){var dialogOptions={removeOnClose:!0,scrollY:!1,autoFocus:!1},dialogOptions=(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="small",_dialoghelper.default.createDialog(dialogOptions)),html=(dialogOptions.classList.add("formDialog"),""),itemsContainer=(html=(html=(html=(html=(html+='
')+''+'

')+_globalize.default.translate("HeaderMissingEpisodes"))+"

"+"
")+function(options){var html="",scrollerStyle="width:100%;",html=(_layoutmanager.default.tv&&(scrollerStyle+="max-width:90ch;"),(html+='
')+'
'),scrollerStyle=_connectionmanager.default.getApiClient(options.items[0]).isMinServerVersion("4.8.0.59")?"":" hide";return _layoutmanager.default.tv&&(scrollerStyle+=" padded-top"),html=(html=(html=(html=(html=(html=(html=(html=(html=(html+='
')+'
'+'"+"
")+'
'+'"+"
")+"
"+'
')+"
"+"
")+"
"+"
"}(options),dialogOptions.innerHTML=html,this.dlg=dialogOptions,this.options=options,dialogOptions.querySelector(".allItemsContainer")),html=(itemsContainer.fetchData=this.getItems.bind(this),itemsContainer.getListOptions=this.getListOptions.bind(this),itemsContainer.afterRefresh=function(result){result.TotalRecordCount||(this.itemsContainer.innerHTML="

"+_globalize.default.translate("NoItemsFound")+"

"),_loading.default.hide()}.bind(this),this.itemsContainer=itemsContainer,dialogOptions.querySelector(".fieldItems").addEventListener("change",function(){itemsContainer.refreshItems()}),dialogOptions.addEventListener("opened",function(){_loading.default.show();var itemsContainer=this.itemsContainer;itemsContainer.resume?onAllItemsContainerUpgraded.call(this):_dom.default.addEventListener(itemsContainer,"upgraded",onAllItemsContainerUpgraded.bind(this),{once:!0})}.bind(this)),function(){return this.cleanup(),Promise.resolve()}.bind(this));return _dialoghelper.default.open(dialogOptions).then(html,html)},MissingEpisodesDialog.prototype.closeDialog=function(){var dlg=this.dlg;dlg&&_dialoghelper.default.close(dlg)},MissingEpisodesDialog.prototype.cleanup=function(){this.listName=null,this.options=null,this.dlg=null,this.itemsContainer=null,this.recentItemsContainer=null};_exports.default=MissingEpisodesDialog}); \ No newline at end of file diff --git a/modules/morphdom/morphdom.js b/modules/morphdom/morphdom.js new file mode 100644 index 0000000..7eb42ae --- /dev/null +++ b/modules/morphdom/morphdom.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var range;var NS_XHTML="http://www.w3.org/1999/xhtml",doc="undefined"==typeof document?void 0:document,HAS_TEMPLATE_SUPPORT=!!doc&&"content"in doc.createElement("template"),HAS_RANGE_SUPPORT=!!doc&&doc.createRange&&"createContextualFragment"in doc.createRange();function toElement(str){return str=str.trim(),(HAS_TEMPLATE_SUPPORT?function(str){var template=doc.createElement("template");return template.innerHTML=str,template.content.childNodes[0]}:HAS_RANGE_SUPPORT?function(str){return range||(range=doc.createRange()).selectNode(doc.body),range.createContextualFragment(str).childNodes[0]}:function(str){var fragment=doc.createElement("body");return fragment.innerHTML=str,fragment.childNodes[0]})(str)}function compareNodeNames(fromEl,toEl){var fromCodeStart,toCodeStart,fromEl=fromEl.nodeName,toEl=toEl.nodeName;return fromEl===toEl||(fromCodeStart=fromEl.charCodeAt(0),toCodeStart=toEl.charCodeAt(0),fromCodeStart<=90&&97<=toCodeStart?fromEl===toEl.toUpperCase():toCodeStart<=90&&97<=fromCodeStart&&toEl===fromEl.toUpperCase())}function syncBooleanAttrProp(fromEl,toEl,name){fromEl[name]!==toEl[name]&&(fromEl[name]=toEl[name],fromEl[name]?fromEl.setAttribute(name,""):fromEl.removeAttribute(name))}var specialElHandlers={OPTION:function(fromEl,toEl){var parentName,parentNode=fromEl.parentNode;parentNode&&"SELECT"===(parentName="OPTGROUP"===(parentName=parentNode.nodeName.toUpperCase())?(parentNode=parentNode.parentNode)&&parentNode.nodeName.toUpperCase():parentName)&&!parentNode.hasAttribute("multiple")&&(fromEl.hasAttribute("selected")&&!toEl.selected&&(fromEl.setAttribute("selected","selected"),fromEl.removeAttribute("selected")),parentNode.selectedIndex=-1),syncBooleanAttrProp(fromEl,toEl,"selected")},INPUT:function(fromEl,toEl){syncBooleanAttrProp(fromEl,toEl,"checked"),syncBooleanAttrProp(fromEl,toEl,"disabled"),fromEl.value!==toEl.value&&(fromEl.value=toEl.value),toEl.hasAttribute("value")||fromEl.removeAttribute("value")},TEXTAREA:function(fromEl,toEl){var oldValue,toEl=toEl.value,firstChild=(fromEl.value!==toEl&&(fromEl.value=toEl),fromEl.firstChild);firstChild&&(oldValue=firstChild.nodeValue)!==toEl&&(toEl||oldValue!==fromEl.placeholder)&&(firstChild.nodeValue=toEl)},SELECT:function(fromEl,toEl){if(!toEl.hasAttribute("multiple")){for(var optgroup,nodeName,selectedIndex=-1,i=0,curChild=fromEl.firstChild;curChild;)if("OPTGROUP"===(nodeName=curChild.nodeName&&curChild.nodeName.toUpperCase()))curChild=(optgroup=curChild).firstChild;else{if("OPTION"===nodeName){if(curChild.hasAttribute("selected")){selectedIndex=i;break}i++}!(curChild=curChild.nextSibling)&&optgroup&&(curChild=optgroup.nextSibling,optgroup=null)}fromEl.selectedIndex=selectedIndex}}};function noop(){}function defaultGetNodeKey(node){if(node)return node.getAttribute&&node.getAttribute("id")||node.id}var morphdom=function(morphAttrs){return function(fromNode,toNode,options){options=options||{},"string"==typeof toNode?"#document"===fromNode.nodeName||"HTML"===fromNode.nodeName||"BODY"===fromNode.nodeName?(toNodeHtml=toNode,(toNode=doc.createElement("html")).innerHTML=toNodeHtml):toNode=toElement(toNode):11===toNode.nodeType&&(toNode=toNode.firstElementChild);var getNodeKey=options.getNodeKey||defaultGetNodeKey,onBeforeNodeAdded=options.onBeforeNodeAdded||noop,onNodeAdded=options.onNodeAdded||noop,onBeforeNodeDiscarded=options.onBeforeNodeDiscarded||noop,onNodeDiscarded=options.onNodeDiscarded||noop,onBeforeElChildrenUpdated=options.onBeforeElChildrenUpdated||noop,toNodeHtml=!0===options.childrenOnly,fromNodesLookup=Object.create(null),keyedRemovalList=[];function addKeyedRemoval(key){keyedRemovalList.push(key)}function removeNode(node,parentNode,skipKeyedNodes){!1!==onBeforeNodeDiscarded(node)&&(parentNode&&parentNode.removeChild(node),onNodeDiscarded(node),function walkDiscardedChildNodes(node,skipKeyedNodes){if(1===node.nodeType)for(var curChild=node.firstChild;curChild;){var key=void 0;skipKeyedNodes&&(key=getNodeKey(curChild))?addKeyedRemoval(key):(onNodeDiscarded(curChild),curChild.firstChild&&walkDiscardedChildNodes(curChild,skipKeyedNodes)),curChild=curChild.nextSibling}}(node,skipKeyedNodes))}function morphEl(fromEl,toEl,childrenOnly){var toElKey=getNodeKey(toEl);if(toElKey&&delete fromNodesLookup[toElKey],!childrenOnly){if(!1===function(fromEl,toEl){return!fromEl.isEqualNode(toEl)}(fromEl,toEl))return;if(morphAttrs(fromEl,toEl),!1===onBeforeElChildrenUpdated(fromEl,toEl))return}"TEXTAREA"!==fromEl.nodeName?function(fromEl,toEl){var curToNodeKey,curFromNodeKey,fromNextSibling,toNextSibling,matchingFromEl,curToNodeChild=toEl.firstChild,curFromNodeChild=fromEl.firstChild;outer:for(;curToNodeChild;){for(toNextSibling=curToNodeChild.nextSibling,curToNodeKey=getNodeKey(curToNodeChild);curFromNodeChild;){if(fromNextSibling=curFromNodeChild.nextSibling,curToNodeChild.isSameNode&&curToNodeChild.isSameNode(curFromNodeChild)){curToNodeChild=toNextSibling,curFromNodeChild=fromNextSibling;continue outer}curFromNodeKey=getNodeKey(curFromNodeChild);var curFromNodeType=curFromNodeChild.nodeType,isCompatible=void 0;if(curFromNodeType===curToNodeChild.nodeType&&(1===curFromNodeType?(curToNodeKey?curToNodeKey!==curFromNodeKey&&(!(matchingFromEl=fromNodesLookup[curToNodeKey])||fromNextSibling===matchingFromEl?isCompatible=!1:(fromEl.insertBefore(matchingFromEl,curFromNodeChild),curFromNodeKey?addKeyedRemoval(curFromNodeKey):removeNode(curFromNodeChild,fromEl,!0),curFromNodeChild=matchingFromEl)):curFromNodeKey&&(isCompatible=!1),(isCompatible=!1!==isCompatible&&compareNodeNames(curFromNodeChild,curToNodeChild))&&morphEl(curFromNodeChild,curToNodeChild)):3!==curFromNodeType&&8!==curFromNodeType||(isCompatible=!0,curFromNodeChild.nodeValue!==curToNodeChild.nodeValue&&(curFromNodeChild.nodeValue=curToNodeChild.nodeValue))),isCompatible){curToNodeChild=toNextSibling,curFromNodeChild=fromNextSibling;continue outer}curFromNodeKey?addKeyedRemoval(curFromNodeKey):removeNode(curFromNodeChild,fromEl,!0),curFromNodeChild=fromNextSibling}var onBeforeNodeAddedResult;curToNodeKey&&(matchingFromEl=fromNodesLookup[curToNodeKey])&&compareNodeNames(matchingFromEl,curToNodeChild)?(fromEl.appendChild(matchingFromEl),morphEl(matchingFromEl,curToNodeChild)):!1!==(onBeforeNodeAddedResult=onBeforeNodeAdded(curToNodeChild))&&((curToNodeChild=onBeforeNodeAddedResult?onBeforeNodeAddedResult:curToNodeChild).actualize&&(curToNodeChild=curToNodeChild.actualize(fromEl.ownerDocument||doc)),fromEl.appendChild(curToNodeChild),function handleNodeAdded(el){onNodeAdded(el);for(var curChild=el.firstChild;curChild;){var nextSibling=curChild.nextSibling,key=getNodeKey(curChild);(key=key&&fromNodesLookup[key])&&compareNodeNames(curChild,key)?(curChild.parentNode.replaceChild(key,curChild),morphEl(key,curChild)):handleNodeAdded(curChild),curChild=nextSibling}}(curToNodeChild)),curToNodeChild=toNextSibling,curFromNodeChild=fromNextSibling}!function(fromEl,curFromNodeChild,curFromNodeKey){for(;curFromNodeChild;){var fromNextSibling=curFromNodeChild.nextSibling;(curFromNodeKey=getNodeKey(curFromNodeChild))?addKeyedRemoval(curFromNodeKey):removeNode(curFromNodeChild,fromEl,!0),curFromNodeChild=fromNextSibling}}(fromEl,curFromNodeChild);var specialElHandler=specialElHandlers[fromEl.nodeName];specialElHandler&&specialElHandler(fromEl,toEl)}(fromEl,toEl):specialElHandlers.TEXTAREA(fromEl,toEl)}!function indexTree(node){if(1===node.nodeType||11===node.nodeType)for(var curChild=node.firstChild;curChild;){var key=getNodeKey(curChild);key&&(fromNodesLookup[key]=curChild),indexTree(curChild),curChild=curChild.nextSibling}}(fromNode);var name,namespaceURI,options=fromNode,morphedNodeType=options.nodeType,toNodeType=toNode.nodeType;if(!toNodeHtml)if(1===morphedNodeType)1===toNodeType?compareNodeNames(fromNode,toNode)||(onNodeDiscarded(fromNode),options=function(fromEl,toEl){for(var curChild=fromEl.firstChild;curChild;){var nextChild=curChild.nextSibling;toEl.appendChild(curChild),curChild=nextChild}return toEl}(fromNode,(name=toNode.nodeName,(namespaceURI=toNode.namespaceURI)&&namespaceURI!==NS_XHTML?doc.createElementNS(namespaceURI,name):doc.createElement(name)))):options=toNode;else if(3===morphedNodeType||8===morphedNodeType){if(toNodeType===morphedNodeType)return options.nodeValue!==toNode.nodeValue&&(options.nodeValue=toNode.nodeValue),options;options=toNode}if(options===toNode)onNodeDiscarded(fromNode);else{if(toNode.isSameNode&&toNode.isSameNode(options))return;if(morphEl(options,toNode,toNodeHtml),keyedRemovalList)for(var i=0,len=keyedRemovalList.length;i'+icon+"",buttonCount++}panel.innerHTML=html}else panel.innerHTML=""}}function addOrRemoveSelectedItem(item,itemElement,add){var serverId=item.ServerId,id=getSelectedItemIdentifier(item);add?(itemElement&&itemElement.classList.add("item-multiselected"),selectedItems.filter(function(i){return getSelectedItemIdentifier(i)===id&&i.ServerId===serverId}).length||(selectedItems.push(item),getSelectedItemsMap(serverId)[id]=!0)):(itemElement&&itemElement.classList.remove("item-multiselected"),selectedItems=selectedItems.filter(function(i){return getSelectedItemIdentifier(i)!==id||i.ServerId!==serverId}),getSelectedItemsMap(serverId)[id]=null)}function onPointerEnter(e){var target;rangeSelectionInfo&&(target=e.target).matches(this.getItemSelector())&&setRangeSelectionInfo(e,this,target,!0)}function showSelections(chkItemSelect,selected){chkItemSelect.classList.contains("chkItemSelect")||(chkItemSelect=chkItemSelect.querySelector(".chkItemSelect")),null==selected?selected=chkItemSelect.checked:chkItemSelect.checked=selected;var itemsContainer=chkItemSelect.closest("[is=emby-itemscontainer]"),itemElement=_shortcuts.default.getItemElementFromChildNode(chkItemSelect,!0,itemsContainer);addOrRemoveSelectedItem(_shortcuts.default.getItemFromChildNode(itemElement,null,itemsContainer),itemElement,selected),selectedItems.length?(_dom.default.removeEventListener(window,"keydown",onKeyDown,{}),_dom.default.addEventListener(window,"keydown",onKeyDown,{}),itemsContainer.classList.contains("multi-select-active")||_dom.default.addEventListener(itemsContainer,"pointerenter",onPointerEnter,{passive:!0,capture:!0}),itemsContainer.classList.add("multi-select-active"),itemsContainer.dispatchEvent(new CustomEvent("multiselectactive",{bubbles:!0,cancelable:!1,detail:{}})),function(chkItemSelect){var header,selectionCommandsPanel=currentSelectionCommandsPanel;selectionCommandsPanel||((selectionCommandsPanel=document.createElement("div")).classList.add("selectionCommandsPanel"),header=(null==(chkItemSelect=chkItemSelect.closest(".dialog"))?void 0:chkItemSelect.querySelector(".formDialogHeader"))||appHeader,(currentHeader=header).appendChild(selectionCommandsPanel),header.classList.add("headroomDisabled"),chkItemSelect&&(chkItemSelect.removeEventListener("close",hideSelections),chkItemSelect.addEventListener("close",hideSelections)),(currentSelectionCommandsPanel=selectionCommandsPanel).innerHTML='

',selectionCommandsPanel.querySelector(".btnCloseSelectionPanel").addEventListener("click",hideSelections),selectionCommandsPanel.querySelector(".multiSelectPrimaryButtons").addEventListener("click",onCommandButtonClick),header=selectionCommandsPanel.querySelector(".btnSelectionPanelOptions"),_dom.default.addEventListener(header,"click",showMenuForSelectedItems,{passive:!0}))}(chkItemSelect),(itemElement=document.querySelector(".itemSelectionCount"))&&(itemElement.innerHTML=selectedItems.length)):hideSelections(),showHideQuickButtons()}function onChange(e){var target=e.target,chkItemSelect=target.closest(".chkItemSelect");if(chkItemSelect)if(_shortcuts.default.getItemElementFromChildNode(target,!0,this))return showSelections(chkItemSelect,chkItemSelect.checked),e.preventDefault(),e.stopPropagation(),!1}var supportsTouchEvent="ontouchstart"in document.documentElement;function setRangeSelectionInfo(e,itemsContainer,target,isHintOnly){var pointerType=(pointerType=e.pointerType)||(supportsTouchEvent?"touch":"mouse");if("touch"!==pointerType){pointerType=_shortcuts.default.getItemElementFromChildNode(target,!0,itemsContainer);if(pointerType){target=itemsContainer.indexOfElement(pointerType),pointerType=rangeSelectionInfo;if(e.shiftKey&&pointerType)pointerType.itemsContainer===itemsContainer&&!function(rangeInfo,endIndex,isHintOnly){for(var previousEndIndex=rangeInfo.endIndex,startIndex=(isHintOnly||(rangeInfo.endIndex=endIndex),rangeInfo.startIndex),newRangeMin=Math.min(startIndex,endIndex),newRangeMax=Math.max(startIndex,endIndex),minIndexForUpdates=null==previousEndIndex?newRangeMin:Math.min(startIndex,Math.min(endIndex,previousEndIndex)),maxIndexForUpdates=null==previousEndIndex?newRangeMax:Math.max(startIndex,Math.max(endIndex,previousEndIndex)),itemsContainer=rangeInfo.itemsContainer,hinted=(console.log("changeSelectionRange: minIndexForUpdates: "+minIndexForUpdates+", maxIndexForUpdates: "+maxIndexForUpdates+", newRangeMin: "+newRangeMin+", newRangeMax: "+newRangeMax),[]),i=minIndexForUpdates;i<=maxIndexForUpdates;i++){var itemElement,isChecked,newChecked,item=itemsContainer.getItem(i);item&&(isChecked=(itemElement=null==(itemElement=itemsContainer.getElement(i))?void 0:itemElement.querySelector(".chkItemSelect"))?itemElement.checked:isSelected(item),newChecked=newRangeMin<=i&&i<=newRangeMax,isHintOnly?itemElement&&(newChecked&&!isChecked?(itemElement.classList.add("chkItemSelect-selecthint"),hinted.push(itemElement)):itemElement.classList.remove("chkItemSelect-selecthint")):isChecked!==newChecked&&(itemElement?(itemElement.checked=newChecked,itemElement.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!1}))):addOrRemoveSelectedItem(item,null,newChecked)))}if(isHintOnly)for(var hintedElems=itemsContainer.querySelectorAll(".chkItemSelect-selecthint"),_i=0,length=hintedElems.length;_i')+('"}function getItemsHtml(items,options){options.isGlobalList?currentListItems=items:options.listItems=items;for(var icon,title,buttonClass,menuHtml="",collapsible=(!1===options.header||_layoutmanager.default.tv||(_layoutmanager.default.tv?menuHtml+='"),!1!==options.collapsible&&!_layoutmanager.default.tv),sectionClose=collapsible?"":"",isSectionOpen=!1,serverId=options.serverId,userId=null==(title=options.user)?void 0:title.Id,defaultItemsContainerClass=("navDrawerItemsContainer "+(options.itemsContainerClass||"")).trim(),sectionsContainerAdded=!1,isCurrentViewServer="admin"===_viewmanager.default.currentViewInfo().roles,i=0,length=items.length;i'):item.Name&&(isSectionOpen&&(isSectionOpen=!1,menuHtml+=sectionClose),sectionsContainerAdded||(menuHtml+='
"}return categoryHtml}).join("")}(elem,stats)}))}function unbindEvents(instance,player){instance=instance.onTimeUpdate;instance&&_events.default.off(player,"timeupdate",instance)}function PlayerStats(options){this.options=options,this.onTimeUpdate=function(){var options=this.options;options&&renderPlayerStats(this,options.player)}.bind(this),init(this,options.view),this.enabled(!0)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/playerstats/playerstats.css"]),PlayerStats.prototype.enabled=function(enabled){if(null==enabled)return this._enabled;var player,options=this.options;options&&((this._enabled=enabled)?(this.element.classList.remove("hide"),enabled=this,player=options.player,(enabled=enabled.onTimeUpdate)&&_events.default.on(player,"timeupdate",enabled)):(this.element.classList.add("hide"),unbindEvents(this,options.player)))},PlayerStats.prototype.toggle=function(){this.enabled(!this.enabled())},PlayerStats.prototype.destroy=function(){var options=this.options,options=(options&&(this.options=null,unbindEvents(this,options.player)),this.element);options&&(options.remove(),this.element=null),this.onTimeUpdate=null};_exports.default=PlayerStats}); \ No newline at end of file diff --git a/modules/polyfills/abortablefetch.js b/modules/polyfills/abortablefetch.js new file mode 100644 index 0000000..e629aca --- /dev/null +++ b/modules/polyfills/abortablefetch.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;function abortableFetch(input,init){var abortError,cancellation,signal=Request&&Request.prototype.isPrototypeOf(input)?input.signal:init?init.signal:void 0;if(signal){try{abortError=new DOMException("Aborted","AbortError")}catch(err){(abortError=new Error("Aborted")).name="AbortError"}return signal.aborted?Promise.reject(abortError):(cancellation=new Promise(function(_,reject){signal.addEventListener("abort",function(){return reject(abortError)},{once:!0})}),init&&init.signal&&delete init.signal,Promise.race([cancellation,realFetch(input,init)]))}return realFetch(input,init)}var fetch=globalThis.fetch,_globalThis$Request=globalThis.Request,NativeRequest=void 0===_globalThis$Request?fetch.Request:_globalThis$Request,realFetch=(globalThis.AbortController,(Request=function(input,init){init&&init.signal&&(signal=init.signal,delete init.signal);var signal,input=new NativeRequest(input,init);return signal&&Object.defineProperty(input,"signal",{writable:!1,enumerable:!1,configurable:!0,value:signal}),input}).prototype=NativeRequest.prototype,fetch);globalThis.fetch=abortableFetch,globalThis.Request=Request,_exports.default=abortableFetch}); \ No newline at end of file diff --git a/modules/polyfills/abortcontroller.js b/modules/polyfills/abortcontroller.js new file mode 100644 index 0000000..ba5ff78 --- /dev/null +++ b/modules/polyfills/abortcontroller.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=_exports.AbortControllerPolyFill=void 0;var AbortControllerPolyFill=_exports.AbortControllerPolyFill=function(){return babelHelpers.createClass(function(){Object.defineProperty(this,"signal",{value:new AbortSignal,writable:!0,configurable:!0})},[{key:"abort",value:function(reason){var event;try{event=new Event("abort")}catch(e){"undefined"!=typeof document?document.createEvent?(event=document.createEvent("Event")).initEvent("abort",!1,!1):(event=document.createEventObject()).type="abort":event={type:"abort",bubbles:!1,cancelable:!1}}if(void 0===reason)if("undefined"==typeof document)(reason=new Error("This operation was aborted")).name="AbortError";else try{reason=new DOMException("signal is aborted without reason")}catch(err){(reason=new Error("This operation was aborted")).name="AbortError"}this.signal.reason=reason,this.signal.dispatchEvent(event)}},{key:"toString",value:function(){return"[object AbortController]"}}])}(),isMissingRequestSignalSupport="function"==typeof globalThis.Request&&!Object.prototype.hasOwnProperty.call(globalThis.Request.prototype,"signal");"undefined"!=typeof AbortController&&!isMissingRequestSignalSupport||Object.defineProperty(globalThis,"AbortController",{writable:!0,enumerable:!1,configurable:!0,value:AbortControllerPolyFill}),_exports.default=AbortControllerPolyFill}); \ No newline at end of file diff --git a/modules/polyfills/abortsignal.js b/modules/polyfills/abortsignal.js new file mode 100644 index 0000000..ecf4f83 --- /dev/null +++ b/modules/polyfills/abortsignal.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=_exports.AbortSignalPolyfill=void 0;var Emitter=function(){return babelHelpers.createClass(function(){Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})},[{key:"addEventListener",value:function(type,callback,options){type in this.listeners||(this.listeners[type]=[]),this.listeners[type].push({callback:callback,options:options})}},{key:"removeEventListener",value:function(type,callback){if(type in this.listeners)for(var stack=this.listeners[type],i=0,l=stack.length;i>>0;if("function"!=typeof fun)throw new TypeError;for(var val,res=[],thisp=arguments[1],i=0;i>>0;if(0!=len)for(var x,y,fromIndex=0|fromIndex,k=Math.max(0<=fromIndex?fromIndex:len-Math.abs(fromIndex),0);k>>0,i=0;i>c/4).toString(16)})}:crypto.randomUUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=16*Math.random()|0;return("x"===c?r:3&r|8).toString(16)})}); \ No newline at end of file diff --git a/modules/polyfills/css.js b/modules/polyfills/css.js new file mode 100644 index 0000000..61bcaf8 --- /dev/null +++ b/modules/polyfills/css.js @@ -0,0 +1 @@ +globalThis.CSS||(globalThis.CSS={}),CSS.supports||(CSS.supports=function(prop,value){if("undefined"!=typeof window&&(value=2===arguments.length?value:"inherit",!(prop.includes("--")||value&&value.includes("--")))){if("supportsCSS"in window)return window.supportsCSS(prop,value);try{var camel=prop.replace(/-([a-z]|[0-9])/gi,function(all,letter){return(letter+"").toUpperCase()}),el=document.createElement("div");if(camel in el.style)return el.style.cssText=prop+":"+value,""!==el.style[camel]}catch(err){}}return!1}); \ No newline at end of file diff --git a/modules/polyfills/custom-elements-builtin.js b/modules/polyfills/custom-elements-builtin.js new file mode 100644 index 0000000..542084f --- /dev/null +++ b/modules/polyfills/custom-elements-builtin.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;function notify(callback){function loop(nodes,selectors,added,removed,connected,pass){for(var node of nodes)(pass||QSA$1 in node)&&(connected?added.has(node)||(added.add(node),removed.delete(node),callback(node,connected)):removed.has(node)||(removed.add(node),added.delete(node),callback(node,connected)),pass||loop(node[QSA$1](selectors),selectors,added,removed,connected,TRUE))}var root=1>0),k="addEventListener",_="attached",x="Callback",q="detached",B="extends",Z="attributeChanged"+x,j=_+x,G="connected"+x,z="disconnected"+x,K="created"+x,X=q+x,$="ADDITION",Q="REMOVAL",W="DOMAttrModified",Y="DOMContentLoaded",J="DOMSubtreeModified",ee="<",te="=",ne=/^[A-Z][A-Z0-9]*(?:-[A-Z0-9]+)+$/,re=["ANNOTATION-XML","COLOR-PROFILE","FONT-FACE","FONT-FACE-SRC","FONT-FACE-URI","FONT-FACE-FORMAT","FONT-FACE-NAME","MISSING-GLYPH"],oe=[],le=[],ae="",ie=y.documentElement,ue=oe.indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},ce=C.prototype,se=ce.hasOwnProperty,me=ce.isPrototypeOf,fe=C.defineProperty,pe=[],de=C.getOwnPropertyDescriptor,he=C.getOwnPropertyNames,Te=C.getPrototypeOf,Le=C.setPrototypeOf,Me=!!C.__proto__,ve="__dreCEv1",He=e.customElements,ge=!/^force/.test(t.type)&&!!(He&&He.define&&He.get&&He.whenDefined),be=C.create||C,ye=e.Map||function(){var e,t=[],n=[];return{get:function(e){return n[ue.call(t,e)]},set:function(r,o){(e=ue.call(t,r))<0?n[t.push(r)-1]=o:n[e]=o}}},Ce=e.Promise||function(e){function t(e){for(r=!0;n.length;)n.shift()(e)}var n=[],r=!1,o={catch:function(){return o},then:function(e){return n.push(e),r&&setTimeout(t,1),o}};return e(t),o},we=!1,Ae=be(null),Oe=be(null),Ne=new ye,De=function(e){return e.toLowerCase()},Ie=C.create||function it(e){return e?(it.prototype=e,new it):this},Fe=Le||(Me?function(e,t){return e.__proto__=t,e}:he&&de?function(t,n){for(;function(e,t){for(var n,r=he(t),o=0,l=r.length;o
",new Se(function(e,t){var n;e[0]&&"childList"==e[0].type&&!e[0].removedNodes[0].childNodes.length&&(n=(P=de(Pe,"innerHTML"))&&P.set)&&fe(Pe,"innerHTML",{set:function(e){for(;this.lastChild;)this.removeChild(this.lastChild);n.call(this,e)}}),t.disconnect(),P=null}).observe(P,{childList:!0,subtree:!0}),P.innerHTML=""),Je||(V=Le||Me?(S=function(e,t){me.call(t,e)||p(e,t)},p):S=function(e,t){e[U]||(e[U]=C(!0),p(e,t))},Re?(nt=!1,function(){function n(e){var t=new CustomEvent(W,{bubbles:!0});t.attrName=e,t.prevValue=Ze.call(this,e),t.newValue=null,t[Q]=t.attrChange=2,Ge.call(this,e),Be.call(this,t)}function r(e,t){var n=je.call(this,e),r=n&&Ze.call(this,e),o=new CustomEvent(W,{bubbles:!0});ze.call(this,e,t),o.attrName=e,o.prevValue=n?r:null,o.newValue=t,n?o.MODIFICATION=o.attrChange=1:o[$]=o.attrChange=0,Be.call(this,o)}function o(e){var t,n=e.currentTarget,r=n[U],e=e.propertyName;r.hasOwnProperty(e)&&(r=r[e],(t=new CustomEvent(W,{bubbles:!0})).attrName=r.name,t.prevValue=r.value||null,t.newValue=r.value=n[e]||null,null==t.prevValue?t[$]=t.attrChange=0:t.MODIFICATION=t.attrChange=1,Be.call(n,t))}var e=de(Pe,k),t=e.value;e.value=function(e,l,a){e===W&&this[Z]&&this.setAttribute!==r&&(this[U]={className:{name:"class",value:this.className}},this.setAttribute=r,this.removeAttribute=n,t.call(this,"propertychange",o)),t.call(this,e,l,a)},fe(Pe,k,e)}()):Se||(ie[k](W,We),ie.setAttribute(U,1),ie.removeAttribute(U),nt&&(O=function(e){var t,n,r,o=this;if(o===e.target){for(r in t=o[U],o[U]=n=D(o),n){if(!(r in t))return N(0,o,r,t[r],n[r],$);if(n[r]!==t[r])return N(1,o,r,t[r],n[r],"MODIFICATION")}for(r in t)if(!(r in n))return N(2,o,r,t[r],n[r],Q)}},N=function(e,t,n,r,o,l){t={attrChange:e,currentTarget:t,attrName:n,prevValue:r,newValue:o};t[l]=e,u(t)},D=function(e){for(var t,n,r={},o=e.attributes,l=0,a=o.length;l$");if(n[B]="a",t.prototype=Ie(Ve.prototype),e.customElements.define(r,t.prototype.constructor=t,n),!o.test(y.createElement("a",{is:r}).outerHTML)||!o.test((new t).outerHTML))throw n}(function ut(){return Reflect.construct(Ve,[],ut)},{},"document-register-element-a")}catch(lt){b()}if(!t.noBuiltIn)try{if(Ke.call(y,"a","a").outerHTML.indexOf("is")<0)throw{}}catch(at){De=function(e){return{is:e.toLowerCase()}}}}(window); \ No newline at end of file diff --git a/modules/polyfills/dragdroptouch.js b/modules/polyfills/dragdroptouch.js new file mode 100644 index 0000000..cd34bed --- /dev/null +++ b/modules/polyfills/dragdroptouch.js @@ -0,0 +1 @@ +define(["./../dom.js"],function(_dom){var kbdProps="altKey,ctrlKey,metaKey,shiftKey".split(","),ptProps="pageX,pageY,clientX,clientY,screenX,screenY".split(",");function DragDrop(){this._boundPointerMove=this._PointerMove.bind(this),this._boundPointerUp=this._PointerUp.bind(this),this._boundContextMenu=this._contextMenu.bind(this),_dom.default.addEventListener(document,window.PointerEvent?"pointerdown":"touchstart",this._pointerDown.bind(this),{passive:!0})}function shouldHandle(e){return e.defaultPrevented||(e=e.touches)&&2=this._delay&&this._dragSourceDraggableXY&&(this._dragY=!0,this._dragX=!0,this._isDragEnabled=dragEnabled=!0),deltaX+ptDown);if(!dragEnabled&&10=topY1&&pt.y=topY1-boundarySize&&pt.yptDown.y&&e.scrollBy(20)))}(e,pt,ptDown)})},new DragDrop}); \ No newline at end of file diff --git a/modules/polyfills/durationformat.js b/modules/polyfills/durationformat.js new file mode 100644 index 0000000..4cfa6d9 --- /dev/null +++ b/modules/polyfills/durationformat.js @@ -0,0 +1 @@ +globalThis.Intl||(globalThis.Intl={});var Styles={long:{years:" years",days:" days",hours:" hours",minutes:" minutes",seconds:" seconds",milliseconds:" milliseconds"},short:{years:" yr",days:" d",hours:" hr",minutes:" min",seconds:" sec",milliseconds:" ms"},narrow:{years:"y",days:"d",hours:"h",minutes:"m",seconds:"s",milliseconds:"ms"},digital:{years:"",days:"",hours:"",minutes:"",seconds:"",milliseconds:""}};Intl.DurationFormat||(Intl.DurationFormat=function(locales,options){this.options=options||{},this.locales=Array.isArray(locales)?locales:[locales]},Intl.DurationFormat.prototype.format=function(value){var options=this.options,requestedStyle=options.style,style=Styles[requestedStyle||"narrow"],parts=[],minutes=(null!=value.years&&parts.push(value.years+style.years),null!=value.days&&parts.push(value.days+style.days),null!=value.hours&&parts.push(value.hours+style.hours),value.minutes),minutes=(null==minutes&&"always"!==options.minutesDisplay||(minutes=minutes||0,parts.push((minutes="digital"===requestedStyle&&minutes<10?"0"+minutes:minutes)+style.minutes)),value.seconds);return null==minutes&&"always"!==options.secondsDisplay||(minutes=minutes||0,parts.push((minutes="digital"===requestedStyle&&minutes<10?"0"+minutes:minutes)+style.seconds)),value.milliseconds&&parts.push(value.milliseconds+style.milliseconds),parts.join("digital"!==requestedStyle?" ":":")}); \ No newline at end of file diff --git a/modules/polyfills/element.js b/modules/polyfills/element.js new file mode 100644 index 0000000..0a8b674 --- /dev/null +++ b/modules/polyfills/element.js @@ -0,0 +1 @@ +Element.prototype.matches||(Element.prototype.matches=Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector||function(s){for(var matches=(this.document||this.ownerDocument).querySelectorAll(s),i=matches.length;0<=--i&&matches.item(i)!==this;);return-1this.length)&&(this_len=this.length),this.substring(this_len-search.length,this_len)===search}),String.prototype.replaceAll||(String.prototype.replaceAll=function(find,replace){for(var index,next,s="";~(next=this.indexOf(find,index));)s+=this.substring(index,next)+replace,index=next+find.length;return s+this.substring(index)}); \ No newline at end of file diff --git a/modules/polyfills/urlsearchparams.js b/modules/polyfills/urlsearchparams.js new file mode 100644 index 0000000..e483fa7 --- /dev/null +++ b/modules/polyfills/urlsearchparams.js @@ -0,0 +1 @@ +var self=globalThis;try{!function(URLSearchParams){if("+"!==new URLSearchParams("q=%2B").get("q")||"+"!==new URLSearchParams({q:"+"}).get("q")||"+"!==new URLSearchParams([["q","+"]]).get("q")||"q=%0A"!==new URLSearchParams("q=\n").toString()||"q=+%26"!==new URLSearchParams({q:" &"}).toString()||"q=%25zx"!==new URLSearchParams({q:"%zx"}).toString())throw URLSearchParams;self.URLSearchParams=URLSearchParams}(URLSearchParams)}catch(URLSearchParams){!function(Object,String,isArray){"use strict";var key,create=Object.create,defineProperty=Object.defineProperty,find=/[!'\(\)~]|%20|%00/g,findPercentSign=/%(?![0-9a-fA-F]{2})/g,plus=/\+/g,replace={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"},proto={append:function(key,value){appendTo(this._ungap,key,value)},delete:function(key){delete this._ungap[key]},get:function(key){return this.has(key)?this._ungap[key][0]:null},getAll:function(key){return this.has(key)?this._ungap[key].slice(0):[]},has:function(key){return key in this._ungap},set:function(key,value){this._ungap[key]=[String(value)]},forEach:function(callback,thisArg){var key,self=this;for(key in self._ungap)!function(key){Object.prototype.hasOwnProperty.call(self._ungap,key)&&self._ungap[key].forEach(function(value){callback.call(thisArg,value,String(key),self)},key)}(key)},toJSON:function(){return{}},toString:function(){var key,query=[];for(key in this._ungap)if(Object.prototype.hasOwnProperty.call(this._ungap,key))for(var encoded=encode(key),value=this._ungap[key],i=0;i>>0)+counter+++"__"}var defineProperty=Object.defineProperty,counter=Date.now()%1e9;WeakMap.prototype={set:function(key,value){var entry=key[this.name];return entry&&entry[0]===key?entry[1]=value:defineProperty(key,this.name,{value:[key,value],writable:!0}),this},get:function(key){var entry;return(entry=key[this.name])&&entry[0]===key?entry[1]:void 0},delete:function(key){var entry=key[this.name];return!(!entry||entry[0]!==key||(entry[0]=entry[1]=void 0))},has:function(key){var entry=key[this.name];return!!entry&&entry[0]===key}},globalThis.WeakMap=WeakMap}(); \ No newline at end of file diff --git a/modules/profilepinprompt/profilepinprompt.css b/modules/profilepinprompt/profilepinprompt.css new file mode 100644 index 0000000..35eb833 --- /dev/null +++ b/modules/profilepinprompt/profilepinprompt.css @@ -0,0 +1 @@ +@media all and (orientation:landscape){@media not all and (min-height:36em){.profilePinDialogHeader{z-index:1}.profilePinScroller-autoabsolute{position:absolute;top:0;left:0;right:0;bottom:0;padding-top:2em}}}.profilePinDialogContentInner{text-align:center;padding-top:0;box-sizing:border-box}.profilePinPromptInputContainer{overflow:hidden;-webkit-flex-wrap:nowrap!important;flex-wrap:nowrap!important;margin:0;-webkit-justify-content:center;justify-content:center;padding:.25em;margin:-.25em}.profilePinPromptInputContainer-invalid{-webkit-animation:profilePinPromptInputContainer-shake .82s ease-out both;animation:profilePinPromptInputContainer-shake .82s ease-out both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.profilePinPromptInputContainer .inputLabel{display:none!important}.txtProfilePinInput{font-size:5vh;width:25%;border-radius:.1em;padding:.5em 0;box-sizing:border-box;text-align:center;max-width:3em}@-webkit-keyframes profilePinPromptInputContainer-shake{10%,90%{-webkit-transform:translate3d(-1.25%,0,0);transform:translate3d(-1.25%,0,0)}20%,80%{-webkit-transform:translate3d(2.5%,0,0);transform:translate3d(2.5%,0,0)}30%,50%,70%{-webkit-transform:translate3d(-5%,0,0);transform:translate3d(-5%,0,0)}40%,60%{-webkit-transform:translate3d(5%,0,0);transform:translate3d(5%,0,0)}}@keyframes profilePinPromptInputContainer-shake{10%,90%{-webkit-transform:translate3d(-1.25%,0,0);transform:translate3d(-1.25%,0,0)}20%,80%{-webkit-transform:translate3d(2.5%,0,0);transform:translate3d(2.5%,0,0)}30%,50%,70%{-webkit-transform:translate3d(-5%,0,0);transform:translate3d(-5%,0,0)}40%,60%{-webkit-transform:translate3d(5%,0,0);transform:translate3d(5%,0,0)}}.profilePinHeaderUserContainer{margin:0 auto 1em}.profilePinImageContainer{width:3em;max-width:initial;margin:0;-webkit-margin-end:.75em;margin-inline-end:.75em}.profilePinImageCard{width:100%!important}.profilePinImageCardBox{margin:0!important} \ No newline at end of file diff --git a/modules/profilepinprompt/profilepinprompt.js b/modules/profilepinprompt/profilepinprompt.js new file mode 100644 index 0000000..6ef5142 --- /dev/null +++ b/modules/profilepinprompt/profilepinprompt.js @@ -0,0 +1 @@ +define(["exports","./../layoutmanager.js","./../common/globalize.js","./../common/textencoding.js","./../dialoghelper/dialoghelper.js","./../focusmanager.js","./../dom.js","./../alphapicker/alphapicker.js","./../cardbuilder/cardbuilder.js","./../input/keyboard.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_layoutmanager,_globalize,_textencoding,_dialoghelper,_focusmanager,_dom,_alphapicker,_cardbuilder,_keyboard,_embyButton,_embyInput,_embyScroller,_paperIconButtonLight,_embyDialogclosebutton){function initUserImage(instance){var itemsContainer=instance.dlg.querySelector(".profilePinImageContainer");itemsContainer.fetchData=function(){var item=this.options.user,items=[];return item&&items.push(item),Promise.resolve({Items:items,TotalRecordCount:items.length})}.bind(instance),itemsContainer.getListOptions=function(items){return{renderer:_cardbuilder.default,options:{overlayText:!0,fields:[],action:"none",multiSelect:!1,contextMenu:!1,ratingButton:!1,playedButton:!1,defaultIcon:!0,typeIndicator:!1,playedIndicator:!1,syncIndicator:!1,timerIndicator:!1,randomDefaultBackground:!1,staticElement:!0,enableUserData:!1,draggable:!1,moreButton:!1,programIndicators:!1,keepImageAnimation:!0,cardClass:"profilePinImageCard",cardBoxClass:"profilePinImageCardBox",round:!0,playQueueIndicator:!1},virtualScrollLayout:"vertical-grid"}}}function moveFocusToTextInput(txt){_focusmanager.default.focus(txt,{}),txt.select()}function onFormKeyDown(e){var input=e.target.closest(".txtProfilePinInput");input&&"Backspace"===_keyboard.default.normalizeKeyFromEvent(e)&&""===input.value&&(e=input.closest("form").querySelectorAll(".txtProfilePinInput"),0<(input=Array.prototype.indexOf.call(e,input)))&&moveFocusToTextInput(e[input-1])}function onFormInput(e){var form,inputs,index,e=e.target.closest(".txtProfilePinInput");e&&(1 + +

+ + +
+
+
+ +
+
+
+

+
+

${ProfilePinIsOn}

+

${EnterYourPinToContinue}

+

${WrongPinPleaseTryAgain}

+ +
+ + + + +
+ +

+ +
+ + +
+
+
\ No newline at end of file diff --git a/modules/prompt/prompt.js b/modules/prompt/prompt.js new file mode 100644 index 0000000..f010ef6 --- /dev/null +++ b/modules/prompt/prompt.js @@ -0,0 +1 @@ +define(["exports","./../layoutmanager.js","./../common/globalize.js","./../dialoghelper/dialoghelper.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_layoutmanager,_globalize,_dialoghelper,_embyButton,_embyInput,_embyScroller,_paperIconButtonLight,_embyDialogclosebutton){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=function(options){return require(["text!modules/prompt/prompt.template.html"]).then(function(responses){responses=responses[0];return function(options,template){var dialogOptions={removeOnClose:!0,scrollY:!1,autoFocus:!0};_layoutmanager.default.tv&&(dialogOptions.size="fullscreen");var submitValue,dlg=_dialoghelper.default.createDialog(dialogOptions);dlg.classList.add("formDialog"),dlg.innerHTML=_globalize.default.translateHtml(template,"sharedcomponents"),dlg.querySelector(".formDialogHeaderTitle").innerHTML=options.title||"",options.description?dlg.querySelector(".fieldDescription").innerHTML=options.description:dlg.querySelector(".fieldDescription").classList.add("hide");return function(dlg,options){dlg=dlg.querySelector(".txtInput");_embyInput.default.setLabel(dlg,options.label||""),dlg.value=options.value||""}(dlg,options),dlg.querySelector("form").addEventListener("submit",function(e){return submitValue=dlg.querySelector(".txtInput").value,e.preventDefault(),e.stopPropagation(),setTimeout(function(){_dialoghelper.default.close(dlg)},300),!1}),dlg.querySelector(".submitText").innerHTML=options.confirmText||_globalize.default.translate("Submit"),_dialoghelper.default.open(dlg).then(function(){var value=submitValue;return value||Promise.reject()})}(options="string"==typeof options?{title:"",label:options}:options,responses)})},require(["formDialogStyle","material-icons"])}); \ No newline at end of file diff --git a/modules/prompt/prompt.template.html b/modules/prompt/prompt.template.html new file mode 100644 index 0000000..3e6c8e4 --- /dev/null +++ b/modules/prompt/prompt.template.html @@ -0,0 +1,21 @@ +
+ +

+
+ +
+
+
+
+ +
+
+ +
+ +
+
+
+
\ No newline at end of file diff --git a/modules/qrcode-generator/qrcode.js b/modules/qrcode-generator/qrcode.js new file mode 100644 index 0000000..76a616a --- /dev/null +++ b/modules/qrcode-generator/qrcode.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var qrcode=function(){function qrcode(typeNumber,errorCorrectionLevel){function makeImpl(test,maskPattern){_modules=function(moduleCount){for(var modules=new Array(moduleCount),row=0;row>i&1);_modules[Math.floor(i/3)][i%3+_moduleCount-8-3]=mod}for(i=0;i<18;i+=1){mod=!test&&1==(bits>>i&1);_modules[i%3+_moduleCount-8-3][Math.floor(i/3)]=mod}},setupTypeInfo=function(test,maskPattern){for(var maskPattern=_errorCorrectionLevel<<3|maskPattern,bits=QRUtil.getBCHTypeInfo(maskPattern),i=0;i<15;i+=1){var mod=!test&&1==(bits>>i&1);i<6?_modules[i][8]=mod:i<8?_modules[i+1][8]=mod:_modules[_moduleCount-15+i][8]=mod}for(i=0;i<15;i+=1){mod=!test&&1==(bits>>i&1);i<8?_modules[8][_moduleCount-i-1]=mod:i<9?_modules[8][15-i-1+1]=mod:_modules[8][15-i-1]=mod}_modules[_moduleCount-8][8]=!test},mapData=function(data,maskPattern){for(var inc=-1,row=_moduleCount-1,bitIndex=7,byteIndex=0,maskFunc=QRUtil.getMaskFunction(maskPattern),col=_moduleCount-1;0>>bitIndex&1)),mask=maskFunc(row,col-c),_modules[row][col-c]=dark=mask?!dark:dark,-1==--bitIndex)&&(byteIndex+=1,bitIndex=7);if((row+=inc)<0||_moduleCount<=row){row-=inc,inc=-inc;break}}},createData=function(typeNumber,errorCorrectionLevel,dataList){for(var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,errorCorrectionLevel),buffer=qrBitBuffer(),i=0;i8*totalDataCount)throw"code length overflow. ("+buffer.getLengthInBits()+">"+8*totalDataCount+")";for(buffer.getLengthInBits()+4<=8*totalDataCount&&buffer.put(0,4);buffer.getLengthInBits()%8!=0;)buffer.putBit(!1);for(;;){if(buffer.getLengthInBits()>=8*totalDataCount)break;if(buffer.put(236,8),buffer.getLengthInBits()>=8*totalDataCount)break;buffer.put(17,8)}return function(buffer,rsBlocks){for(var offset=0,maxDcCount=0,maxEcCount=0,dcdata=new Array(rsBlocks.length),ecdata=new Array(rsBlocks.length),r=0;r'+"",r=0;r<_this.getModuleCount();r+=1){qrHtml+="";for(var c=0;c<_this.getModuleCount();c+=1)qrHtml=(qrHtml=(qrHtml=(qrHtml+='';qrHtml+=""}return qrHtml=qrHtml+""+""},_this.createSvgTag=function(cellSize,margin,alt,title){for(var c,mr,opts={},size=("object"==typeof arguments[0]&&(cellSize=(opts=arguments[0]).cellSize,margin=opts.margin,alt=opts.alt,title=opts.title),cellSize=cellSize||2,margin=void 0===margin?4*cellSize:margin,(alt="string"==typeof alt?{text:alt}:alt||{}).text=alt.text||null,alt.id=alt.text?alt.id||"qrcode-description":null,(title="string"==typeof title?{text:title}:title||{}).text=title.text||null,title.id=title.text?title.id||"qrcode-title":null,_this.getModuleCount()*cellSize+2*margin),rect="l"+cellSize+",0 0,"+cellSize+" -"+cellSize+",0 0,-"+cellSize+"z ",qrSvg=(qrSvg=(qrSvg=(qrSvg=(qrSvg=(qrSvg=(qrSvg="")+'")+(title.text?''+escapeXml(title.text)+"":""))+(alt.text?''+escapeXml(alt.text)+"":""))+''+''+""},_this.createDataURL=function(cellSize,margin){cellSize=cellSize||2,margin=void 0===margin?4*cellSize:margin;var size=_this.getModuleCount()*cellSize+2*margin,min=margin,max=size-margin;return createDataURL(size,size,function(x,y){return min<=x&&x":escaped+=">";break;case"&":escaped+="&";break;case'"':escaped+=""";break;default:escaped+=c}}return escaped});return _this.createASCII=function(cellSize,margin){if((cellSize=cellSize||1)<2)return function(margin){margin=void 0===margin?2:margin;for(var x,r1,r2,p,size=+_this.getModuleCount()+2*margin,min=margin,max=size-margin,blocks={"██":"█","█ ":"▀"," █":"▄"," ":" "},blocksLastLineNoMargin={"██":"▀","█ ":"▀"," █":" "," ":" "},ascii="",y=0;y>>8),bytes.push(255&c)):bytes.push(unknownChar)}return bytes}};var PATTERN_POSITION_TABLE,_this,QRMode_MODE_NUMBER=1,QRMode_MODE_ALPHA_NUM=2,QRMode_MODE_8BIT_BYTE=4,QRMode_MODE_KANJI=8,QRErrorCorrectionLevel={L:1,M:0,Q:3,H:2},QRMaskPattern_PATTERN000=0,QRMaskPattern_PATTERN001=1,QRMaskPattern_PATTERN010=2,QRMaskPattern_PATTERN011=3,QRMaskPattern_PATTERN100=4,QRMaskPattern_PATTERN101=5,QRMaskPattern_PATTERN110=6,QRMaskPattern_PATTERN111=7,QRUtil=(PATTERN_POSITION_TABLE=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],(_this={}).getBCHTypeInfo=function(data){for(var d=data<<10;0<=getBCHDigit(d)-getBCHDigit(1335);)d^=1335<>>=1;return digit}var QRMath=function(){for(var EXP_TABLE=new Array(256),LOG_TABLE=new Array(256),i=0;i<8;i+=1)EXP_TABLE[i]=1<>>_buflen-6),_buflen-=6},flush:function(){if(0<_buflen&&(writeEncoded(_buffer<<6-_buflen),_buflen=_buffer=0),_length%3!=0)for(var padlen=3-_length%3,i=0;i>>length!=0)throw"length over";for(;8<=_bitLength+length;)_out.writeByte(255&(data<<_bitLength|_bitBuffer)),length-=8-_bitLength,data>>>=8-_bitLength,_bitLength=_bitBuffer=0;_bitBuffer|=data<<_bitLength,_bitLength+=length},flush:function(){0<_bitLength&&_out.writeByte(_bitBuffer)}}),dataIndex=(bitOut.write(clearCode,bitLength),0),s=String.fromCharCode(_data[dataIndex]);for(dataIndex+=1;dataIndex<_data.length;){var c=String.fromCharCode(_data[dataIndex]);dataIndex+=1,table.contains(s+c)?s+=c:(bitOut.write(table.indexOf(s),bitLength),table.size()<4095&&(table.size()==1<>>7-index%8&1)},put:function(num,length){for(var i=0;i>>length-i-1&1))},getLengthInBits:function(){return _length},putBit:function(bit){var bufIndex=Math.floor(_length/8);_buffer.length<=bufIndex&&_buffer.push(0),bit&&(_buffer[bufIndex]|=128>>>_length%8),_length+=1}};return _this},qrNumber=function(data){var _mode=QRMode_MODE_NUMBER,_data=data,data={getMode:function(){return _mode},getLength:function(buffer){return _data.length},write:function(buffer){for(var data=_data,i=0;i+2>>8&255)+(255&c),13),i+=2}if(i>>8)},writeBytes:function(b,off,len){off=off||0,len=len||b.length;for(var i=0;i=_str.length){if(0==_buflen)return-1;throw"unexpected end of file./"+_buflen}var c=_str.charAt(_pos);if(_pos+=1,"="==c)return _buflen=0,-1;c.match(/^\s$/)||(_buffer=_buffer<<6|decode(c.charCodeAt(0)),_buflen+=6)}var n=_buffer>>>_buflen-8&255;return _buflen-=8,n}},decode=function(c){if(65<=c&&c<=90)return c-65;if(97<=c&&c<=122)return c-97+26;if(48<=c&&c<=57)return c-48+52;if(43==c)return 62;if(47==c)return 63;throw"c:"+c};return str},createDataURL=function(width,height,getPixel){for(var gif=gifImage(width,height),y=0;y>6,128|63&charcode):charcode<55296||57344<=charcode?utf8.push(224|charcode>>12,128|charcode>>6&63,128|63&charcode):(i++,charcode=65536+((1023&charcode)<<10|1023&str.charCodeAt(i)),utf8.push(240|charcode>>18,128|charcode>>12&63,128|charcode>>6&63,128|63&charcode))}return utf8},_exports.default=qrcode}); \ No newline at end of file diff --git a/modules/qrconnect/qrconnect.js b/modules/qrconnect/qrconnect.js new file mode 100644 index 0000000..0877da8 --- /dev/null +++ b/modules/qrconnect/qrconnect.js @@ -0,0 +1 @@ +define(["exports","./../qrcode-generator/qrcode.js","./../emby-apiclient/connectionmanager.js"],function(_exports,_qrcode,_connectionmanager){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={generateQRCode:function(options){var qr=(0,_qrcode.default)("0","L"),params={},apiClient=options.apiClient,apiClient=_connectionmanager.default.getServerInfo(apiClient.serverId()),options=options.user;return options&&(params.username=options.Name),apiClient.LocalAddress&&(params.localAddress=apiClient.LocalAddress),apiClient.RemoteAddress&&(params.remoteAddress=apiClient.RemoteAddress),qr.addData("emby://connect?"+new URLSearchParams(params).toString()),qr.make(),qr.createDataURL()}}}); \ No newline at end of file diff --git a/modules/recordingcreator/channelrecording.template.html b/modules/recordingcreator/channelrecording.template.html new file mode 100644 index 0000000..6dd72c4 --- /dev/null +++ b/modules/recordingcreator/channelrecording.template.html @@ -0,0 +1,70 @@ +
+ +

+ ${HeaderCreateRecording} +

+
+ +
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+

${Preview}

+
+
+
+ +
+
+ +
+ +
+
+
+
\ No newline at end of file diff --git a/modules/recordingcreator/channelrecordingcreator.js b/modules/recordingcreator/channelrecordingcreator.js new file mode 100644 index 0000000..0879416 --- /dev/null +++ b/modules/recordingcreator/channelrecordingcreator.js @@ -0,0 +1 @@ +define(["exports","./../approuter.js","./../dom.js","./../common/globalize.js","./../common/datetime.js","./../emby-apiclient/connectionmanager.js","./../layoutmanager.js","./../dialoghelper/dialoghelper.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-select/emby-select.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../common/usersettings/usersettings.js","./../common/methodtimer.js","./../registrationservices/registrationservices.js","./../loading/loading.js","./../emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../listview/listview.js"],function(_exports,_approuter,_dom,_globalize,_datetime,_connectionmanager,_layoutmanager,_dialoghelper,_embyButton,_embyInput,_embySelect,_embyDialogclosebutton,_usersettings,_methodtimer,_registrationservices,_loading,_embyItemscontainer,_listview){function updateTimerFromForm(form,timerInfo){var dlg=form.closest(".recordingDialog"),_form$querySelector$v=(timerInfo.Name=form.querySelector(".txtName").value,timerInfo.StartDate=null==(_form$querySelector$v=form.querySelector(".txtStartTime").valueAsDateUtc)?void 0:_form$querySelector$v.toISOString(),timerInfo.EndDate=null==(_form$querySelector$v=form.querySelector(".txtEndTime").valueAsDateUtc)?void 0:_form$querySelector$v.toISOString(),"recurring"===form.querySelector(".selectFrequency").value),creatingSeries=_form$querySelector$v||"Keyword"===dlg.timerType;return creatingSeries?(timerInfo.Days=form.querySelector(".selectAirDays").getValues(),timerInfo.ChannelIds=form.querySelector(".selectChannel").getValues()):timerInfo.ChannelId=form.querySelector(".selectChannel").singleValue,"Keyword"===dlg.timerType&&(dlg=[],form.querySelector(".txtKeyword").value&&dlg.push({KeywordType:form.querySelector(".selectKeywordType").value,Keyword:form.querySelector(".txtKeyword").value}),timerInfo.Keywords=dlg,timerInfo.RecordAnyTime=!0,timerInfo.Recurring=_form$querySelector$v,timerInfo.RecordNewOnly=!1),creatingSeries}function onFormSubmit(e){e.preventDefault();var form=this,dlg=(_loading.default.show(),form.closest(".recordingDialog")),apiClient=dlg.item?_connectionmanager.default.getApiClient(dlg.item):_connectionmanager.default.getApiClient(dlg.options.serverId);return apiClient.getNewLiveTvTimerDefaults({}).then(function(defaults){defaults=Object.assign(defaults,{});(updateTimerFromForm(form,defaults)?apiClient.createLiveTvSeriesTimer(defaults):apiClient.createLiveTvTimer(defaults)).then(function(){var options;_loading.default.hide(),options=_globalize.default.translate("RecordingScheduled"),Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)}),_dialoghelper.default.close(dlg)})}),!1}function onStartTimeChanged(){var form=this.closest("form"),form=form.querySelector(".txtEndTime"),minTime=this.valueAsNumberUtc||Date.now();form.minDateTimeLocal=minTime+=6e4,(!form.valueAsNumberUtc||form.valueAsNumberUtc<=minTime)&&(minTime+=174e4,form.valueAsNumberUtc=Math.max(form.valueAsNumberUtc||minTime,minTime))}function onMinStartTimeTimer(){var minTime=Date.now(),txtStartTime=this.querySelector(".txtStartTime");txtStartTime!==document.activeElement&&(txtStartTime.minDateTimeLocal=minTime,txtStartTime.valueAsNumberUtc=Math.max(txtStartTime.valueAsNumberUtc||minTime,minTime),onStartTimeChanged.call(txtStartTime))}function getAirDaysItems(query){for(var date=new Date;0query.StartIndex&&(items.length=query.StartIndex),Promise.resolve({TotalRecordCount:totalRecordCount,Items:items})}function onFrequencyChange(e){var dlg=this.closest(".recordingDialog"),fldAirDays=dlg.querySelector(".fldAirDays");"recurring"===this.value||"Keyword"===dlg.timerType?fldAirDays.classList.remove("hide"):fldAirDays.classList.add("hide")}function getPreviewListOptions(){return{renderer:_listview.default,options:{enableUserDataButtons:!1,image:!0,mediaInfo:!1,imageSize:"smaller",moreButton:!1,recordButton:!1,draggable:!1,draggableXActions:!1,multiSelect:!1,hoverPlayButton:!1,fields:["ParentName","Name","StartToEndDateTime","ChannelName"],action:"none",playQueueIndicator:!1}}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle"]);function initDialog(context,apiClient,item,timerType){var selectChannel=context.querySelector(".selectChannel"),selectFrequency=(selectChannel.getItems=function(query){return query=Object.assign({UserId:this.getCurrentUserId(),EnableUserData:!1},query),_usersettings.default.addLiveTvChannelSortingToQuery(query,_globalize.default),this.getLiveTvChannels(query)}.bind(apiClient),context.querySelector(".selectAirDays").getItems=getAirDaysItems,context.querySelector(".selectFrequency")),txtStartTime=("DateTime"===timerType?(context.querySelector(".fldChannel").classList.remove("hide"),context.querySelector(".fldStartTime").classList.remove("hide"),context.querySelector(".fldEndTime").classList.remove("hide"),selectChannel.setAttribute("required","required"),selectChannel.removeAttribute("multiple"),selectChannel.setAttribute("label",_globalize.default.translate("Channel")),(txtStartTime=context.querySelector(".txtStartTime")).setAttribute("required","required"),txtStartTime.addEventListener("change",onStartTimeChanged),context.querySelector(".txtEndTime").setAttribute("required","required"),function(context){context.minStartTimeTimer=new _methodtimer.default({onInterval:onMinStartTimeTimer.bind(context),timeoutMs:3e4,type:"interval"})}(context),onMinStartTimeTimer.call(context),selectChannel.singleValue=(null==item?void 0:item.Id)||""):"Keyword"===timerType&&(context.querySelector(".fldChannel").classList.remove("hide"),context.querySelector(".fldKeyword").classList.remove("hide"),context.querySelector(".txtKeyword").setAttribute("required","required"),context.querySelector(".fldKeywordType").classList.remove("hide"),context.querySelector(".selectKeywordType").setAttribute("required","required"),context.querySelector(".txtKeyword").setAttribute("required","required"),selectFrequency.value="recurring",selectChannel.values=item?[item.Id]:[]),context.querySelector(".previewitemsContainer"));txtStartTime.fetchData=function(query){var keywords,context=this.context,apiClient=this.apiClient;return"Keyword"===context.timerType&&apiClient.isMinServerVersion("4.8.0.11")&&(updateTimerFromForm(context,context={}),(keywords=context.Keywords).length)?apiClient.getLiveTvPrograms(Object.assign({ChannelIds:(context.ChannelIds||(context.ChannelId?[context.ChannelId]:[])).join(","),UserId:apiClient.getCurrentUserId(),HasAired:!1,SortBy:"StartDate",ImageTypeLimit:1,EnableUserData:!1,Fields:"PrimaryImageAspectRatio",Limit:20,AirDays:context.Days&&context.Days.length?context.Days:null,RecordingKeyword:keywords[0].Keyword,RecordingKeywordType:keywords[0].KeywordType},query)):Promise.resolve({Items:[],TotalRecordCount:0})}.bind({timerType:timerType,apiClient:apiClient,context:context}),txtStartTime.getListOptions=getPreviewListOptions,txtStartTime.parentContainer=txtStartTime.closest(".previewContainer"),txtStartTime.afterRefresh=function(result){this.querySelector(".previewCountText").innerHTML=_globalize.default.translate("ResultsRangeValue",1,result.Items.length,result.TotalRecordCount)}.bind(context),selectFrequency.addEventListener("change",onFrequencyChange),context.querySelector(".selectAirDays").values=[],context.querySelector("form").addEventListener("submit",onFormSubmit),onFrequencyChange.call(selectFrequency)}function onItemsContainerUpgraded(){this.resume({refresh:!0})}function onValueChange(e){e.target.classList.contains("txtName")||this.querySelector(".itemsContainer").notifyRefreshNeeded(!0)}function onOpened(){var itemsContainer=this.querySelector(".itemsContainer");itemsContainer.resume?onItemsContainerUpgraded.call(itemsContainer):_dom.default.addEventListener(itemsContainer,"upgraded",onItemsContainerUpgraded,{once:!0})}function showRecordingDialog(item,options,timerType){return require(["text!modules/recordingcreator/channelrecording.template.html"]).then(function(responses){var dialogOptions={removeOnClose:!0},dlg=(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="small",_dialoghelper.default.createDialog(dialogOptions)),dialogOptions=(dlg.classList.add("formDialog"),dlg.classList.add("recordingDialog"),dlg.timerType=timerType,dlg.item=item,dlg.options=options,dlg.innerHTML=_globalize.default.translateDocument(responses[0],"sharedcomponents"),item?_connectionmanager.default.getApiClient(item):_connectionmanager.default.getApiClient(options.serverId));return initDialog(dlg,dialogOptions,item,timerType),dlg.addEventListener("opened",onOpened),dlg.addEventListener("change",onValueChange),_dialoghelper.default.open(dlg).then(function(){var context;(context=dlg).minStartTimeTimer&&(context.minStartTimeTimer.destroy(),context.minStartTimeTimer=null),dlg.item=null,dlg.options=null,dlg.timerType=null})})}function createRecordingForChannelInternal(item,options){var items=[];return items.push({name:_globalize.default.translate("Guide"),id:"guide",icon:"dvr"}),items.push({name:_globalize.default.translate("Search"),id:"search",icon:"search"}),items.push({name:_globalize.default.translate("HeaderChannelAndTime"),id:"time",icon:"live_tv"}),items.push({name:_globalize.default.translate("Keyword"),id:"keyword",icon:"text_fields"}),function(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}({items:items,title:_globalize.default.translate("HeaderCreateRecording"),text:_globalize.default.translate("LabelRecordProgramOrSeriesFrom"),positionTo:options.positionTo,positionY:"bottom",positionX:"after",hasItemIcon:!0}).then(function(typeId){if("guide"===typeId)_approuter.default.showGuide();else{if("search"!==typeId)return"time"===typeId?function(item,options){return showRecordingDialog(item,options,"DateTime")}(item,options):"keyword"===typeId?function(item,options){return showRecordingDialog(item,options,"Keyword")}(item,options):void 0;_approuter.default.showSearch()}})}_exports.default={createRecordingForChannel:function(item,options){return _registrationservices.default.validateFeature("dvr",{viewOnly:!0}).then(function(){return createRecordingForChannelInternal(item,options)})}}}); \ No newline at end of file diff --git a/modules/recordingcreator/recordingbutton.js b/modules/recordingcreator/recordingbutton.js new file mode 100644 index 0000000..1a9e60f --- /dev/null +++ b/modules/recordingcreator/recordingbutton.js @@ -0,0 +1 @@ +define(["exports","./../dom.js","./../emby-apiclient/connectionmanager.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../common/recordinghelper.js"],function(_exports,_dom,_connectionmanager,_embyButton,_paperIconButtonLight,_recordinghelper){function RecordingButton(options){(this.options=options).item?this.refreshItem(options.item):options.itemId&&options.serverId&&this.refresh(options.itemId,options.serverId);var options=options.button,icon=options.querySelector("i"),icon=(icon.innerHTML="",icon.classList.add("md-icon-fill"),function(e){var serverId,programId,timerId,timerStatus,instance,item=this.item;item&&(serverId=item.ServerId,programId=item.Id,timerId=item.TimerId,timerStatus=item.Status,item=item.SeriesTimerId,instance=this,_recordinghelper.default.toggleRecording(serverId,programId,timerId,timerStatus,item).then(function(){instance.refresh(serverId,programId)}))}.bind(this));this.clickFn=icon,_dom.default.addEventListener(options,"click",icon,{passive:!0})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,RecordingButton.prototype.refresh=function(serverId,itemId){var serverId=_connectionmanager.default.getApiClient(serverId),self=this;serverId.getItem(serverId.getCurrentUserId(),itemId).then(function(item){self.refreshItem(item)})},RecordingButton.prototype.refreshItem=function(item){var button=this.options.button;this.item=item,button.querySelector("i").innerHTML=function(item){var status;if("SeriesTimer"===item.Type)return"";if(item.TimerId||item.SeriesTimerId)status=item.Status||"Cancelled";else{if("Timer"!==item.Type)return"";status=item.Status}return item.SeriesTimerId&&"Cancelled"!==status?"":""}(item),item.TimerId&&"Cancelled"!==(item.Status||"Cancelled")?button.classList.add("recordingIcon-active"):button.classList.remove("recordingIcon-active")},RecordingButton.prototype.destroy=function(){var clickFn,options=this.options;options&&(options=options.button,clickFn=this.clickFn)&&_dom.default.removeEventListener(options,"click",clickFn,{passive:!0}),this.options=null,this.item=null};_exports.default=RecordingButton}); \ No newline at end of file diff --git a/modules/recordingcreator/recordingcreator.css b/modules/recordingcreator/recordingcreator.css new file mode 100644 index 0000000..53c706e --- /dev/null +++ b/modules/recordingcreator/recordingcreator.css @@ -0,0 +1 @@ +.recordingDialog-imageContainer{-webkit-flex-shrink:0;flex-shrink:0;padding-top:1em;padding-bottom:1em;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:1em;padding-inline-end:1em;width:25%}.recordingDialog-img{width:100%}.recordingDialog-itemName{margin-top:.7em}.recordingDetailsContainer{display:-webkit-flex;display:flex}.recordingDetails{-webkit-flex-grow:1;flex-grow:1} \ No newline at end of file diff --git a/modules/recordingcreator/recordingeditor.js b/modules/recordingcreator/recordingeditor.js new file mode 100644 index 0000000..bc62e42 --- /dev/null +++ b/modules/recordingcreator/recordingeditor.js @@ -0,0 +1 @@ +define(["exports","./../common/globalize.js","./../loading/loading.js","./../emby-apiclient/connectionmanager.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-select/emby-select.js","./../common/methodtimer.js"],function(_exports,_globalize,_loading,_connectionmanager,_embyButton,_embyInput,_embySelect,_methodtimer){var currentItemId,currentServerId;function onStartTimeChanged(){var form=this.closest("form"),form=form.querySelector(".txtEndTime"),minTime=this.valueAsNumberUtc||Date.now();form.minDateTimeLocal=minTime+=6e4,(!form.valueAsNumberUtc||form.valueAsNumberUtc<=minTime)&&(minTime+=174e4,form.valueAsNumberUtc=Math.max(form.valueAsNumberUtc||minTime,minTime))}function onMinStartTimeTimer(){var minTime=Date.now(),txtStartTime=this.querySelector(".txtStartTime");txtStartTime!==document.activeElement&&(txtStartTime.minDateTimeLocal=minTime,txtStartTime.valueAsNumberUtc=Math.max(txtStartTime.valueAsNumberUtc||minTime,minTime),onStartTimeChanged.call(txtStartTime))}function renderTimer(context,item){context.querySelector(".txtPrePaddingMinutes").value=item.PrePaddingSeconds/60,context.querySelector(".txtPostPaddingMinutes").value=item.PostPaddingSeconds/60;var txtStartTime=context.querySelector(".txtStartTime"),txtEndTime=context.querySelector(".txtEndTime");"DateTime"===item.TimerType?(context.querySelector(".fldStartTime").classList.remove("hide"),context.querySelector(".fldEndTime").classList.remove("hide"),txtStartTime.setAttribute("required","required"),txtEndTime.setAttribute("required","required"),txtStartTime.valueAsNumberUtc=Date.parse(item.StartDate),txtEndTime.valueAsNumberUtc=Date.parse(item.EndDate)):(context.querySelector(".fldStartTime").classList.add("hide"),context.querySelector(".fldEndTime").classList.add("hide"),txtStartTime.removeAttribute("required"),txtEndTime.removeAttribute("required")),_loading.default.hide()}function onSubmit(e){var form=this,apiClient=_connectionmanager.default.getApiClient(currentServerId);return apiClient.getLiveTvTimer(currentItemId).then(function(item){var _form$querySelector$v;item.PrePaddingSeconds=60*form.querySelector(".txtPrePaddingMinutes").value,item.PostPaddingSeconds=60*form.querySelector(".txtPostPaddingMinutes").value,"DateTime"===item.TimerType&&(item.StartDate=null==(_form$querySelector$v=form.querySelector(".txtStartTime").valueAsDateUtc)?void 0:_form$querySelector$v.toISOString(),item.EndDate=null==(_form$querySelector$v=form.querySelector(".txtEndTime").valueAsDateUtc)?void 0:_form$querySelector$v.toISOString()),apiClient.updateLiveTvTimer(item)}),e.preventDefault(),!1}function init(context){context.querySelector(".txtStartTime").addEventListener("change",onStartTimeChanged),function(context){context.minStartTimeTimer=new _methodtimer.default({onInterval:onMinStartTimeTimer.bind(context),timeoutMs:3e4,type:"interval"})}(context),onMinStartTimeTimer.call(context),context.querySelector("form").addEventListener("submit",onSubmit)}function onFieldChange(e){this.querySelector(".btnSubmit").click()}function RecordingEditor(){}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/recordingcreator/recordingcreator.css","material-icons","flexStyles"]),RecordingEditor.prototype.embed=function(itemId,serverId,options){currentServerId=serverId,_loading.default.show(),options=options||{},this.options=options,require(["text!modules/recordingcreator/recordingeditor.template.html"],function(template){var dlg=options.context;dlg.innerHTML=_globalize.default.translateDocument(template,"sharedcomponents"),dlg.removeEventListener("change",onFieldChange),dlg.addEventListener("change",onFieldChange),dlg.classList.remove("hide"),_connectionmanager.default.getApiClient(serverId);init(dlg),function(context,id){var apiClient=_connectionmanager.default.getApiClient(currentServerId);_loading.default.show(),"string"==typeof id?(currentItemId=id,apiClient.getLiveTvTimer(id).then(function(result){renderTimer(context,result),_loading.default.hide()})):id&&(currentItemId=id.Id,renderTimer(context,id),_loading.default.hide())}(dlg,itemId)})},RecordingEditor.prototype.pause=function(){var options=this.options;options&&(options=options.context).minStartTimeTimer&&(options.minStartTimeTimer.destroy(),options.minStartTimeTimer=null)},RecordingEditor.prototype.destroy=function(){this.pause()};_exports.default=RecordingEditor}); \ No newline at end of file diff --git a/modules/recordingcreator/recordingeditor.template.html b/modules/recordingcreator/recordingeditor.template.html new file mode 100644 index 0000000..cb298e0 --- /dev/null +++ b/modules/recordingcreator/recordingeditor.template.html @@ -0,0 +1,36 @@ +
+ +
+ +
+ +
+ +
+ +
+
+
+ +
+
+ ${MinutesBefore} +
+
+
+
+
+
+ +
+
+ ${MinutesAfter} +
+
+
+
+ +
+
\ No newline at end of file diff --git a/modules/recordingcreator/recordingfields.js b/modules/recordingcreator/recordingfields.js new file mode 100644 index 0000000..ac2cddb --- /dev/null +++ b/modules/recordingcreator/recordingfields.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/connectionmanager.js","./../common/globalize.js","./../loading/loading.js","./../emby-apiclient/events.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../common/recordinghelper.js","./../common/input/api.js"],function(_exports,_connectionmanager,_globalize,_loading,_events,_embyButton,_paperIconButtonLight,_recordinghelper,_api){function onDataFetched(item){var btnManageSeriesRecording,options=this.options;options.program=item,options=options.parent,(item=item).IsSeries?(options.querySelector(".seriesRecordingButton").classList.remove("hide"),options.querySelector(".btnManageSeriesRecording").classList.remove("hide")):(options.querySelector(".seriesRecordingButton").classList.add("hide"),options.querySelector(".btnManageSeriesRecording").classList.add("hide")),btnManageSeriesRecording=options.querySelector(".btnManageSeriesRecording"),item.SeriesTimerId?(btnManageSeriesRecording&&btnManageSeriesRecording.classList.remove("hide"),options.querySelector(".seriesRecordingButton .recordingIcon").classList.add("recordingIcon-active"),options.querySelector(".seriesRecordingButtonText").innerHTML=_globalize.default.translate("HeaderCancelSeries")):(btnManageSeriesRecording&&btnManageSeriesRecording.classList.add("hide"),options.querySelector(".seriesRecordingButton .recordingIcon").classList.remove("recordingIcon-active"),options.querySelector(".seriesRecordingButtonText").innerHTML=_globalize.default.translate("HeaderRecordSeries")),item.TimerId&&"Cancelled"!==item.Status?(options.querySelector(".btnManageRecording").classList.remove("hide"),options.querySelector(".singleRecordingButton .recordingIcon").classList.add("recordingIcon-active"),"InProgress"===item.Status?options.querySelector(".singleRecordingButtonText").innerHTML=_globalize.default.translate("HeaderStopRecording"):options.querySelector(".singleRecordingButtonText").innerHTML=_globalize.default.translate("HeaderDoNotRecord")):(options.querySelector(".btnManageRecording").classList.add("hide"),options.querySelector(".singleRecordingButton .recordingIcon").classList.remove("recordingIcon-active"),options.querySelector(".singleRecordingButtonText").innerHTML=_globalize.default.translate("Record"))}function RecordingEditor(options){this.options=options,this.embed();options=function(e,apiClient,data){var options=this.options,refresh=!1;data.Id&&options.program.TimerId===data.Id&&(refresh=!0),(refresh=data.ProgramId&&options&&options.program.Id===data.ProgramId?!0:refresh)&&_events.default.trigger(this,"recordingchanged")}.bind(this),this.timerChangedHandler=options,_events.default.on(_api.default,"TimerCreated",options),_events.default.on(_api.default,"TimerCancelled",options),options=function(e,apiClient,data){var options=this.options,refresh=!1;data.Id&&options.program.SeriesTimerId===data.Id&&(refresh=!0),(refresh=data.ProgramId&&options&&options.program.Id===data.ProgramId?!0:refresh)&&_events.default.trigger(this,"recordingchanged")}.bind(this);this.seriesTimerChangedHandler=options,_events.default.on(_api.default,"SeriesTimerCreated",options),_events.default.on(_api.default,"SeriesTimerCancelled",options)}function onRecordSeriesChange(e){this.changed=!0;var self=this,options=this.options,apiClient=_connectionmanager.default.getApiClient(options.program);!e.target.closest("BUTTON").querySelector("i").classList.contains("recordingIcon-active")?(options.parent.querySelector(".seriesRecordingButton").classList.remove("hide"),options.parent.querySelector(".btnManageSeriesRecording").classList.remove("hide"),options.program.SeriesTimerId||(e=options.program.TimerId?_recordinghelper.default.changeRecordingToSeries(apiClient,options.program.TimerId,options.program.Id):_recordinghelper.default.createRecording(apiClient,options.program.Id,!0),_loading.default.show(),e.then(function(){_events.default.trigger(self,"seriesrecordingchanged")}))):options.program.SeriesTimerId&&(_loading.default.show(),apiClient.cancelLiveTvSeriesTimer(options.program.SeriesTimerId).then(function(){var options;options=_globalize.default.translate("RecordingCancelled"),Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)}),_events.default.trigger(self,"seriesrecordingchanged")}))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles"]),RecordingEditor.prototype.embed=function(){var options=this.options,context=options.parent,singleRecordingButton=context.querySelector(".singleRecordingButton");options.program.AsSeries||singleRecordingButton.classList.remove("hide"),singleRecordingButton.addEventListener("click",function(e){this.changed=!0;var self=this,options=this.options,apiClient=_connectionmanager.default.getApiClient(options.program),e=!e.target.closest("BUTTON").querySelector("i").classList.contains("recordingIcon-active"),hasEnabledTimer=options.program.TimerId&&"Cancelled"!==options.program.Status;e?hasEnabledTimer||(_loading.default.show(),_recordinghelper.default.createRecording(apiClient,options.program.Id,!1).then(function(){_events.default.trigger(self,"recordingchanged")})):hasEnabledTimer&&_recordinghelper.default.cancelTimer(apiClient,options.program.TimerId,!0).then(function(){_events.default.trigger(self,"recordingchanged")})}.bind(this)),context.querySelector(".seriesRecordingButton").addEventListener("click",onRecordSeriesChange.bind(this)),onDataFetched.call(this,options.program)},RecordingEditor.prototype.hasChanged=function(){return this.changed},RecordingEditor.prototype.refresh=function(item){onDataFetched.call(this,item)},RecordingEditor.prototype.getProgram=function(){return this.options.program},RecordingEditor.prototype.destroy=function(){var timerChangedHandler=this.timerChangedHandler,timerChangedHandler=(this.timerChangedHandler=null,_events.default.off(_api.default,"TimerCreated",timerChangedHandler),_events.default.off(_api.default,"TimerCancelled",timerChangedHandler),this.seriesTimerChangedHandler);this.seriesTimerChangedHandler=null,_events.default.off(_api.default,"SeriesTimerCreated",timerChangedHandler),_events.default.off(_api.default,"SeriesTimerCancelled",timerChangedHandler)};_exports.default=RecordingEditor}); \ No newline at end of file diff --git a/modules/recordingcreator/seriesrecordingeditor.js b/modules/recordingcreator/seriesrecordingeditor.js new file mode 100644 index 0000000..299718b --- /dev/null +++ b/modules/recordingcreator/seriesrecordingeditor.js @@ -0,0 +1 @@ +define(["exports","./../common/globalize.js","./../common/datetime.js","./../loading/loading.js","./../emby-apiclient/connectionmanager.js","./../emby-elements/emby-toggle/emby-toggle.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-select/emby-select.js","./../common/usersettings/usersettings.js"],function(_exports,_globalize,_datetime,_loading,_connectionmanager,_embyToggle,_embyButton,_embyInput,_embySelect,_usersettings){var currentItemId,currentServerId;function onSkipEpisodesInLibraryChange(){var apiClient=_connectionmanager.default.getApiClient(currentServerId),form=this.closest("form");this.checked&&null!=apiClient&&apiClient.isMinServerVersion("4.8.4")?form.querySelector(".fldCheckAllLibraries").classList.remove("hide"):form.querySelector(".fldCheckAllLibraries").classList.add("hide")}function renderTimer(context,item){var keyword,timerType=item.TimerType||"Program";"Keyword"===timerType&&(context.querySelector(".fldKeyword").classList.remove("hide"),context.querySelector(".txtKeyword").setAttribute("required","required"),context.querySelector(".fldKeywordType").classList.remove("hide"),context.querySelector(".selectKeywordType").setAttribute("required","required"),context.querySelector(".txtKeyword").setAttribute("required","required"),keyword=(item.Keywords||[])[0]||{},context.querySelector(".selectKeywordType").value=keyword.KeywordType||"Name",context.querySelector(".txtKeyword").value=keyword.Keyword||""),"Program"===timerType&&context.querySelector(".fldAirTime").classList.remove("hide"),context.querySelector(".txtPrePaddingMinutes").value=item.PrePaddingSeconds/60,context.querySelector(".txtPostPaddingMinutes").value=item.PostPaddingSeconds/60,context.querySelector(".txtMaxRecordingLength").value=(item.MaxRecordingSeconds||0)/60,context.querySelector(".selectAirTime").value=item.RecordAnyTime?"any":"original",context.querySelector(".selectShowType").value=item.RecordNewOnly?"new":"all",context.querySelector(".chkSkipEpisodesInLibrary").checked=item.SkipEpisodesInLibrary,context.querySelector(".chkCheckAllLibraries").checked=item.MatchExistingItemsWithAnyLibrary||!1,context.querySelector(".selectKeepUpTo").value=item.KeepUpTo||0,item.StartDate&&(context.querySelector(".optionAroundTime").innerHTML=_globalize.default.translate("AroundTime",_datetime.default.getDisplayTime(new Date(Date.parse(item.StartDate))))),context.querySelector(".selectAirDays").values=item.Days,context.querySelector(".selectChannels").values=!item.RecordAnyChannel&&item.ChannelIds||[],onSkipEpisodesInLibraryChange.call(context.querySelector(".chkSkipEpisodesInLibrary")),_loading.default.hide()}function getAirDaysItems(query){for(var date=new Date;0query.StartIndex&&(items.length=query.StartIndex),Promise.resolve({TotalRecordCount:totalRecordCount,Items:items})}function onSubmit(e){var form=this,apiClient=_connectionmanager.default.getApiClient(currentServerId);return apiClient.getLiveTvSeriesTimer(currentItemId).then(function(item){item.PrePaddingSeconds=60*form.querySelector(".txtPrePaddingMinutes").value,item.PostPaddingSeconds=60*form.querySelector(".txtPostPaddingMinutes").value,item.MaxRecordingSeconds=60*form.querySelector(".txtMaxRecordingLength").value,item.RecordAnyTime="any"===form.querySelector(".selectAirTime").value,item.RecordNewOnly="new"===form.querySelector(".selectShowType").value,item.SkipEpisodesInLibrary=form.querySelector(".chkSkipEpisodesInLibrary").checked,item.MatchExistingItemsWithAnyLibrary=form.querySelector(".chkCheckAllLibraries").checked,item.KeepUpTo=form.querySelector(".selectKeepUpTo").value,item.Days=form.querySelector(".selectAirDays").getValues(),item.RecordAnyChannel=0===form.querySelector(".selectChannels").getValues().length,item.ChannelIds=form.querySelector(".selectChannels").getValues(),item.TimerType?item.ChannelId=null:item.ChannelId=item.ChannelIds[0]||null,"Keyword"===item.TimerType&&(item.Keywords=[{KeywordType:form.querySelector(".selectKeywordType").value,Keyword:form.querySelector(".txtKeyword").value}]),apiClient.updateLiveTvSeriesTimer(item)}),e.preventDefault(),!1}function init(context,apiClient){!function(context){for(var html="",i=0;i<=50;i++){var text=void 0;text=0===i?_globalize.default.translate("AsManyAsPossible"):1===i?_globalize.default.translate("ValueOneEpisode"):_globalize.default.translate("ValueEpisodeCount",i),html+='"}context.querySelector(".selectKeepUpTo").innerHTML=html}(context),context.querySelector(".selectAirDays").getItems=getAirDaysItems,context.querySelector(".selectChannels").getItems=function(query){return query=Object.assign({UserId:this.getCurrentUserId(),EnableUserData:!1},query),_usersettings.default.addLiveTvChannelSortingToQuery(query,_globalize.default),this.getLiveTvChannels(query)}.bind(apiClient),context.querySelector("form").addEventListener("submit",onSubmit)}function onFieldChange(e){this.querySelector(".btnSubmit").click()}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/recordingcreator/recordingcreator.css","material-icons","flexStyles"]);_exports.default={embed:function(itemId,serverId,options){currentServerId=serverId,_loading.default.show(),options=options||{},require(["text!modules/recordingcreator/seriesrecordingeditor.template.html"],function(template){var dlg=options.context,template=(dlg.innerHTML=_globalize.default.translateDocument(template,"sharedcomponents"),dlg.removeEventListener("change",onFieldChange),dlg.addEventListener("change",onFieldChange),dlg.classList.remove("hide"),dlg.querySelector(".chkSkipEpisodesInLibrary").addEventListener("change",onSkipEpisodesInLibraryChange),_connectionmanager.default.getApiClient(serverId));init(dlg,template),function(context,id){var apiClient=_connectionmanager.default.getApiClient(currentServerId);_loading.default.show(),"string"==typeof id?(currentItemId=id,apiClient.getLiveTvSeriesTimer(id).then(function(result){renderTimer(context,result),_loading.default.hide()})):id&&(currentItemId=id.Id,renderTimer(context,id),_loading.default.hide())}(dlg,itemId)})}}}); \ No newline at end of file diff --git a/modules/recordingcreator/seriesrecordingeditor.template.html b/modules/recordingcreator/seriesrecordingeditor.template.html new file mode 100644 index 0000000..793819e --- /dev/null +++ b/modules/recordingcreator/seriesrecordingeditor.template.html @@ -0,0 +1,95 @@ +
+
+ +
+ +
+ +
${SkipEpisodesAlreadyInMyLibraryHelp}
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
${KeepUpToHelp}
+
+ +
+
+
+ +
+
+ ${MinutesBefore} +
+
+
+ +
+
+
+ +
+
+ ${MinutesAfter} +
+
+
+ +
+
+
+ +
+
+ ${Minutes} +
+
+
${MaxRecordingLengthHelp}
+
+ + +
diff --git a/modules/refreshdialog/refreshdialog.js b/modules/refreshdialog/refreshdialog.js new file mode 100644 index 0000000..9aae9eb --- /dev/null +++ b/modules/refreshdialog/refreshdialog.js @@ -0,0 +1 @@ +define(["exports","./../dialoghelper/dialoghelper.js","./../layoutmanager.js","./../common/globalize.js","./../loading/loading.js","./../emby-apiclient/connectionmanager.js","./../emby-elements/emby-toggle/emby-toggle.js","./../emby-elements/emby-select/emby-select.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_dialoghelper,_layoutmanager,_globalize,_loading,_connectionmanager,_embyToggle,_embySelect,_embyButton,_paperIconButtonLight,_embyScroller,_embyDialogclosebutton){function onSubmit(e){_loading.default.show();var dlg=e.target.closest(".dialog"),options=this.options,replaceAllMetadata="all"===dlg.querySelector(".selectMetadataRefreshMode").value,mode="FullRefresh",replaceAllImages=dlg.querySelector(".chkReplaceImages").checked,replaceThumbnailImages=dlg.querySelector(".chkReplaceThumbnailImages").checked,options=options.items;return _connectionmanager.default.getApiClient(options[0]).refreshItems(options,{Recursive:!0,ImageRefreshMode:mode,MetadataRefreshMode:mode,ReplaceAllImages:replaceAllImages,ReplaceThumbnailImages:replaceThumbnailImages,ReplaceAllMetadata:replaceAllMetadata}),_dialoghelper.default.close(dlg),function(options){Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}(_globalize.default.translate("RefreshingMetadataDots")),_loading.default.hide(),e.preventDefault(),!1}function RefreshDialog(options){this.options=options}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons","formDialogStyle","flexStyles"]),RefreshDialog.prototype.show=function(){var dialogOptions={removeOnClose:!0,scrollY:!1},dlg=(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="small",_dialoghelper.default.createDialog(dialogOptions)),dialogOptions=(dlg.classList.add("formDialog"),""),instance=(dialogOptions=(dialogOptions=(dialogOptions=(dialogOptions=dialogOptions+'
'+'')+'

'+_globalize.default.translate("HeaderRefreshMetadata"))+"

"+"
")+function(){var html="";return html+'
'+'
'+'
'+'
'+('"+'
'+_globalize.default.translate("RefreshDialogHelp")+"
"+"
"+'
'+""+'
'+_globalize.default.translate("ReplaceExistingImagesHelp")+"
"+"
"+'
'+""+'
'+_globalize.default.translate("ReplaceExistingThumbnailImagesHelp")+"
"+"
"+"
"+'
'+('")+"
"+"
"+"
"+"
"}(),dlg.innerHTML=dialogOptions,dlg.querySelector("form").addEventListener("submit",onSubmit.bind(this)),this);return dlg.querySelector(".selectMetadataRefreshMode").addEventListener("change",function(){dlg.querySelector(".fldReplaceExistingImages").classList.remove("hide"),_connectionmanager.default.getApiClient(instance.options.items[0]).isMinServerVersion("4.9.1.1")&&dlg.querySelector(".fldReplaceExistingThumbnailImages").classList.remove("hide")}),this.options.mode&&(dlg.querySelector(".selectMetadataRefreshMode").value=this.options.mode),dlg.querySelector(".selectMetadataRefreshMode").dispatchEvent(new CustomEvent("change")),new Promise(function(resolve,reject){dlg.addEventListener("close",resolve),_dialoghelper.default.open(dlg)})};_exports.default=RefreshDialog}); \ No newline at end of file diff --git a/modules/registrationservices/registrationservices.js b/modules/registrationservices/registrationservices.js new file mode 100644 index 0000000..a8daf66 --- /dev/null +++ b/modules/registrationservices/registrationservices.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/events.js","./../emby-apiclient/connectionmanager.js","./../common/appsettings.js","./../focusmanager.js","./../dialoghelper/dialoghelper.js","./../loading/loading.js","./../common/servicelocator.js","./../layoutmanager.js","./../common/globalize.js","./../listview/listview.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../emby-elements/emby-itemscontainer/emby-itemscontainer.js"],function(_exports,_events,_connectionmanager,_appsettings,_focusmanager,_dialoghelper,_loading,_servicelocator,_layoutmanager,_globalize,_listview,_embyButton,_embyDialogclosebutton,_embyItemscontainer){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle"]);var currentDisplayingProductInfos=[],currentDisplayingResolve=null,currentValidatingFeature=null,isCurrentDialogRejected=null;function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function showInAppPurchaseInfo(subscriptionOptions,unlockableProductInfo,dialogOptions){return new Promise(function(resolve,reject){!function(subscriptionOptions,unlockableProductInfo,dialogOptions,resolve,reject){cancelInAppPurchase(),currentDisplayingProductInfos=subscriptionOptions.slice(0),unlockableProductInfo&¤tDisplayingProductInfos.push(unlockableProductInfo);var i,length,dlg=_dialoghelper.default.createDialog({size:_layoutmanager.default.tv?"fullscreen-border":"medium-tall",removeOnClose:!0,scrollY:!1}),html=(dlg.classList.add("formDialog"),"");html=(html=(html=(html=(html=(html+='
')+'

')+(dialogOptions.title||""))+"

")+'
')+'

',html+=unlockableProductInfo?_globalize.default.translate("MessageUnlockAppWithPurchaseOrSupporter"):_globalize.default.translate("MessageUnlockAppWithSupporter");for(html=(html+='

')+_globalize.default.translate("MessageToValidateSupporter")+"

",i=0,length=subscriptionOptions.length;i")+'

";unlockableProductInfo&&(unlockText=_globalize.default.translate("ButtonUnlockWithPurchase"),unlockableProductInfo.price&&(unlockText=_globalize.default.translate("ButtonUnlockPrice",unlockableProductInfo.price)),html=(html+="

")+'

");html=(html+="

")+'

",subscriptionOptions.length&&(html=(html=(html+='

'+_globalize.default.translate("HeaderBenefitsEmbyPremiere")+"

")+'
')+'

'+_globalize.default.translate("AndMuchMoreExclamation")+"

");"playback"===dialogOptions.feature&&(html=(html+="

")+'

");html=(html=html+function(){var html="",termsOfPurchase=_servicelocator.iapManager.getTermsOfPurchase?_servicelocator.iapManager.getTermsOfPurchase():[];return termsOfPurchase.length&&(html+="

"+_globalize.default.translate("HeaderTermsOfPurchase")+"

",termsOfPurchase.push(''+_globalize.default.translate("PrivacyPolicy")+""),termsOfPurchase.push(''+_globalize.default.translate("TermsOfUse")+""),html=(html+="
    ")+termsOfPurchase.map(getPurchaseTermHtml).join("")+"
"),html}()+"")+"
",dlg.innerHTML=html,document.body.appendChild(dlg);var btnPurchases=dlg.querySelectorAll(".btnPurchase");for(i=0,length=btnPurchases.length;i')+'

')+_servicelocator.iapManager.getRestoreButtonText())+"

")+'
')+'

')+_globalize.default.translate("HowDidYouPay"))+"

")+'

",unlockableProductInfo&&(html=(html+="

")+'

");html=(html+="
")+"
",dlg.innerHTML=html,document.body.appendChild(dlg),_loading.default.hide(),dlg.querySelector(".btnRestoreSub").addEventListener("click",function(){_dialoghelper.default.close(dlg),showAlert({text:_globalize.default.translate("MessageToValidateSupporter"),title:"Emby Premiere"})});unlockableProductInfo=dlg.querySelector(".btnRestoreUnlock");unlockableProductInfo&&unlockableProductInfo.addEventListener("click",function(){_dialoghelper.default.close(dlg),_servicelocator.iapManager.restorePurchase()});_dialoghelper.default.open(dlg)}(unlockableProductInfo)}),_loading.default.hide(),dlg.classList.add("inAppPurchaseOverlay"),dlg.addEventListener("open",function(){initSubscriptionBenefitsItemsContainer(dlg)}),_dialoghelper.default.open(dlg).then(function(){var rejected=isCurrentDialogRejected;currentDisplayingProductInfos=[],isCurrentDialogRejected=currentValidatingFeature=currentDisplayingResolve=null,rejected?reject():resolveWithTimeLimit&&resolve({enableTimeLimit:!0})})}(subscriptionOptions,unlockableProductInfo,dialogOptions,resolve,reject),currentDisplayingResolve=resolve})}function getBenefitsListOptions(items){return{renderer:_listview.default,options:{defaultBackground:!1,moreButton:!1,action:"none",multiSelect:!1,roundImage:!0,fields:["Name","ShortOverview"],draggable:!1,draggableXActions:!1,contextMenu:!1,playQueueIndicator:!1}}}function initSubscriptionBenefitsItemsContainer(context){var itemsContainer=context.querySelector(".benefitsItemsContainer");itemsContainer&&(itemsContainer.fetchData=getSubscriptionBenefits,itemsContainer.getListOptions=getBenefitsListOptions,itemsContainer.waitForCustomElementUpgrade().then(function(){return itemsContainer.resume({refresh:!0})}))}function isTestServer(apiClient){return"554ae9ea56b94c1c82cc628f6de52d85"===(null==apiClient?void 0:apiClient.serverId())}function showPeriodicMessageIfNeeded(feature){var intervalMs,settingsKey,lastMessage;return"playback"!==feature||(intervalMs=_servicelocator.iapManager.getPeriodicMessageIntervalMs(feature))<=0?Promise.resolve():(settingsKey="periodicmessage11-"+feature,(lastMessage=parseInt(_appsettings.default.get(settingsKey)||"0"))?!(Date.now()-lastMessage>intervalMs)||isTestServer(lastMessage=_connectionmanager.default.currentApiClient())?Promise.resolve():_connectionmanager.default.getRegistrationInfo(_servicelocator.iapManager.getAdminFeatureName(feature),lastMessage,{viewOnly:!0}).catch(function(errorResult){return"overlimit"===errorResult?(_appsettings.default.set(settingsKey,Date.now()),Promise.resolve()):function(settingsKey){return new Promise(function(resolve,reject){for(var dlg=_dialoghelper.default.createDialog({size:_layoutmanager.default.tv?"fullscreen-border":"medium-tall",removeOnClose:!0,scrollY:!1}),html=(dlg.classList.add("formDialog"),""),seconds=(html=(html=(html=(html=(html=(html=(html=(html=(html=(html=(html=(html=html+'
'+'')+'

Emby Premiere'+"

")+"
"+'
')+'
'+'
')+('

'+_globalize.default.translate("HeaderDiscoverEmbyPremiere")+"

"))+("

"+_globalize.default.translate("MessageDidYouKnowCinemaMode")+"

"))+("

"+_globalize.default.translate("CinemaModeFeatureDescription")+"

"))+("

"+_globalize.default.translate("HeaderBenefitsEmbyPremiere")+"

"))+'
'+"
")+('

'+_globalize.default.translate("AndMuchMoreExclamation")+"

"))+"
"+'
')+('"),11),isRejected=(html=(html+='
'+_globalize.default.translate("ContinueInSecondsValue",seconds)+"
")+('"),dlg.innerHTML=html=(html=html+"
"+"
")+"
"+"
",!0),timeTextInterval=setInterval(function(){var btnContinue;--seconds<=0?(clearInterval(timeTextInterval),dlg.querySelector(".continueTimeText").classList.add("hide"),(btnContinue=dlg.querySelector(".btnContinue")).classList.remove("hide"),_focusmanager.default.focus(btnContinue)):dlg.querySelector(".continueTimeText").innerHTML=_globalize.default.translate("ContinueInSecondsValue",seconds)},1e3),btnPurchases=dlg.querySelectorAll(".buttonPremiereInfo"),i=0,length=btnPurchases.length;i"+term+""}function getSubscriptionBenefits(){var list=[];return list.push({Name:_globalize.default.translate("HeaderFreeApps"),Icon:"",ShortOverview:_globalize.default.translate("FreeAppsFeatureDescription")}),list.push({Name:_globalize.default.translate("HeaderOfflineDownloads"),Icon:"",ShortOverview:_globalize.default.translate("HeaderOfflineDownloadsDescription")}),list.push({Name:_globalize.default.translate("HeaderHardwareAcceleratedTranscoding"),Icon:"transform",ShortOverview:_globalize.default.translate("HeaderHardwareAcceleratedTranscodingDescription")}),list.push({Name:_globalize.default.translate("LiveTV"),Icon:"",ShortOverview:_globalize.default.translate("LiveTvFeatureDescription")}),list.push({Name:"Emby DVR",Icon:"",ShortOverview:_globalize.default.translate("DvrFeatureDescription")}),list.push({Name:_globalize.default.translate("HeaderCinemaMode"),Icon:"",ShortOverview:_globalize.default.translate("CinemaModeFeatureDescription")}),Promise.resolve({Items:list,TotalRecordCount:list.length})}function onPurchaseButtonClick(){var featureId=this.getAttribute("data-featureid");if("embypremiere"===featureId&&"ios"===globalThis.appMode){var apiClient=_connectionmanager.default.currentApiClient();if(!isTestServer(apiClient)){var apiClient=null==apiClient?void 0:apiClient.getCurrentUserCached();if(null==apiClient||null==(apiClient=apiClient.Policy)||!apiClient.IsAdministrator)return showAlert({text:_globalize.default.translate("AskAdminToGetPremiere"),title:"Emby Premiere"})}}"true"===this.getAttribute("data-email")?function(){if(_connectionmanager.default.isLoggedIntoConnect()){var connectUser=_connectionmanager.default.connectUser();if(connectUser&&connectUser.Email)return Promise.resolve(connectUser.Email)}return function(options){return Emby.importModule("./modules/prompt/prompt.js").then(function(prompt){return prompt(options)})}({label:_globalize.default.translate("LabelEmail")})}().then(function(email){_servicelocator.iapManager.beginPurchase(featureId,email)}):_servicelocator.iapManager.beginPurchase(featureId)}function showPremiereInfo(){return _servicelocator.appHost.supports("externalpremium")?(showExternalPremiereInfo(),Promise.resolve()):_servicelocator.iapManager.getSubscriptionOptions().then(function(subscriptionOptions){return showInAppPurchaseInfo(subscriptionOptions,null,{title:"Emby Premiere",feature:"sync"})})}_events.default.on(_servicelocator.iapManager,"productupdated",function(e,product){var feature,resolve=currentDisplayingResolve;product.owned&&resolve&¤tDisplayingProductInfos.filter(function(p){return product.id===p.id}).length?(isCurrentDialogRejected=!1,cancelInAppPurchase(),resolve()):(feature=currentValidatingFeature)&&_servicelocator.iapManager.isUnlockedByDefault(feature).then(function(){isCurrentDialogRejected=!1,cancelInAppPurchase(),resolve&&resolve()})});_exports.default={validateFeature:function(feature,options){return options=options||{},console.log("validateFeature: "+feature),_servicelocator.iapManager.isUnlockedByDefault(feature,options).then(function(){return showPeriodicMessageIfNeeded(feature)},function(){var unlockableFeatureCacheKey="featurepurchased-"+feature;if("1"===_appsettings.default.get(unlockableFeatureCacheKey))return showPeriodicMessageIfNeeded(feature);var unlockableProduct=_servicelocator.iapManager.getProductInfo(feature);if(unlockableProduct){var unlockableCacheKey="productpurchased-"+unlockableProduct.id;if(unlockableProduct.owned)return _appsettings.default.set(unlockableFeatureCacheKey,"1"),_appsettings.default.set(unlockableCacheKey,"1"),showPeriodicMessageIfNeeded(feature);if("1"===_appsettings.default.get(unlockableCacheKey))return showPeriodicMessageIfNeeded(feature)}var unlockableProductInfo=unlockableProduct?{enableAppUnlock:!0,id:unlockableProduct.id,price:unlockableProduct.price,feature:feature}:null;return _servicelocator.iapManager.getSubscriptionOptions().then(function(subscriptionOptions){var registrationOptions,apiClient;return 0abs(touches):abs(pathX)=options&&scrollOptions+itemOffset<=currentEnd,options=slideeOffset||Math.abs(enableNativeScroll)+itemOffset>=options&&scrollOptions<=currentEnd,scrollOptions=subtractPaddingFromFrameSize(this,horizontal,scrollOffset);return{start:enableNativeScroll,center:enableNativeScroll+item-(scrollOptions/2-itemOffset/2)*multiplier-(focusScrollOffset||0),end:enableNativeScroll-(scrollOptions-itemOffset)*multiplier-(focusScrollOffset||0),isVisible:slideeOffset,anyVisible:options,size:itemOffset}},Scroller.prototype.ensureSizeInfo=function(){var options,horizontal,dualScroll,frame,newFrameSize;this.requiresReflow&&(this.requiresReflow=!1,frame=this.frame,horizontal=(options=this.options).horizontal,newFrameSize={},dualScroll=options.dualScroll,(horizontal||dualScroll)&&(newFrameSize.width=frame.offsetWidth),horizontal&&!dualScroll||(newFrameSize.height=frame.offsetHeight),this.frameSize=newFrameSize,options.enableNativeScroll||(frame=this.slideeElement,newFrameSize=this.getSlideePadding(),this.slideeSize={width:Math.max(frame.offsetWidth,frame.scrollWidth)+newFrameSize.inlineStart+newFrameSize.inlineEnd,height:Math.max(frame.offsetHeight,frame.scrollHeight)+newFrameSize.top+newFrameSize.bottom},(horizontal||dualScroll)&&(this._pos.endX=Math.max(this.getScrollWidth()-getFrameSize(this,!0,!0),0)*this.getScrollLeftMultiplier()),horizontal&&!dualScroll)||(this._pos.endY=Math.max(this.getScrollHeight()-getFrameSize(this,!1,!0),0)*this.getScrollTopMultiplier()))},Scroller.prototype.getScrollEventName=function(){return this.options.enableNativeScroll?"scroll":"scrollanimate"},Scroller.prototype.getScrollContainerBoundingClientRect=function(){var rect;return this.frameResizeObserver?(null==(rect=this._frameRect)&&(rect=this.nativeScrollElement.getBoundingClientRect(),this._frameRect=rect),rect):(addFrameResizeObserver(this),this.nativeScrollElement.getBoundingClientRect())},Scroller.prototype.getScrollSlider=function(){return this.slideeElement},Scroller.prototype.addScrollEventListener=function(fn,options){this.listenerCount++,this.options.dispatchScrollEvent=0=(horizontal?this._pos.endX:this._pos.endY)-startPadding-2*adaptiveBorderEnd-frameSizeForComparison.size&&(frameSizeForComparison.end+=adaptiveBorderEnd,_options.enableNativeScroll)&&(frameSizeForComparison.end+=adaptiveBorderEnd),adaptiveBorderStart=startPadding),frameSizeForComparison.start*multiplier=scrollPosition?"end":"center",scrollOptions.skipWhenVisibleX=!0),scrollOptions.left=(slideePadding=frameSizeForComparison)[location]),horizontal&&!dualScroll||(_options=toLocation,adaptiveBorderEnd=getFrameSize(this,horizontal=!1),scrollOptions.frameHeightForComparison=adaptiveBorderEnd,null==(startPadding=options.adaptiveBorderYStart)&&(startPadding=Math.max(horizontal?.03*adaptiveBorderEnd:.08*adaptiveBorderEnd,30)),null==(adaptiveBorderStart=options.adaptiveBorderYEnd)&&(adaptiveBorderStart=Math.max(horizontal?.03*adaptiveBorderEnd:.08*adaptiveBorderEnd,30)),scrollOptions.location=_options,scrollOptions.adaptiveBorderYStart=startPadding,scrollOptions.adaptiveBorderYEnd=adaptiveBorderStart,multiplier=this.getElementPosition(item,horizontal,scrollOptions),adaptiveScroll&&(scrollPosition=horizontal?this.getScrollLeftMultiplier():this.getScrollTopMultiplier(),frameSizeForComparison=(horizontal?this.getScrollLeft():this.getScrollTop())*scrollPosition,location=this.options,adaptiveBorderStart*=scrollPosition,multiplier.start-=startPadding*=scrollPosition,multiplier.end+=adaptiveBorderStart,dualScroll=0,location.autoStartEdge&&(toLocation=this.getPadding(),options=this.getSlideePadding(),adaptiveBorderEnd=horizontal?toLocation.inlineStart+options.inlineStart:toLocation.top+options.top,item=horizontal?toLocation.inlineEnd+options.inlineEnd:toLocation.bottom+options.bottom,multiplier.end*scrollPosition>=(horizontal?this._pos.endX:this._pos.endY)-adaptiveBorderEnd-2*item-multiplier.size&&(multiplier.end+=item,location.enableNativeScroll)&&(multiplier.end+=item),dualScroll=adaptiveBorderEnd),multiplier.start*scrollPosition=frameSizeForComparison?"end":"center",scrollOptions.skipWhenVisibleY=!0),scrollOptions.top=(itemPosY=multiplier)[_options]),this.slideTo(scrollOptions,slideePadding,itemPosY)},Scroller.prototype.toStart=function(item,scrollOptions){this.to("start",item,scrollOptions)},Scroller.prototype.toEnd=function(item,scrollOptions){this.to("end",item,scrollOptions)},Scroller.prototype.scrollToElement=function(item,scrollOptions){var options=this.options;return null==(scrollOptions=scrollOptions||{}).offsetLeft&&(scrollOptions.offsetLeft=options.focusScrollOffsetLeft),null==scrollOptions.offsetTop&&(scrollOptions.offsetTop=options.focusScrollOffsetTop),options.enableNativeScroll&&!options.allowNativeSmoothScroll&&(scrollOptions.behavior="instant"),this.to(options.focusScroll||"start",item,scrollOptions)},Scroller.prototype.toCenter=function(item,scrollOptions){this.to("center",item,scrollOptions)},Scroller.prototype.scrollBackwards=function(){this.scrollBy(0-this.options.scrollBy)},Scroller.prototype.scrollForwards=function(){this.scrollBy(this.options.scrollBy)},Scroller.prototype.notifyResized=function(){onResize.call(this,[])},Scroller.prototype.destroy=function(){this.frameResizeObserver&&(this.frameResizeObserver.disconnect(),this.frameResizeObserver=null);var frame=this.frame,mouseWheelHandler=(frame&&(_dom.default.removeEventListener(frame,"scroll",resetScrollTop,{passive:!0}),_dom.default.removeEventListener(frame,"scroll",resetScrollLeft,{passive:!0}),_dom.default.removeEventListener(frame,"scroll",resetScroll,{passive:!0}),mouseWheelHandler=this.mouseWheelHandler)&&_dom.default.removeEventListener(frame,wheelEvent,mouseWheelHandler,{passive:!0}),this.mouseWheelHandler=null,this.dragStartHandler),dragSourceElement=this.dragSourceElement,dragSourceElement=(mouseWheelHandler&&dragSourceElement&&(_dom.default.removeEventListener(dragSourceElement,"touchstart",mouseWheelHandler,{passive:!0}),_dom.default.removeEventListener(dragSourceElement,"mousedown",mouseWheelHandler,{passive:!0}),_dom.default.removeEventListener(dragSourceElement,"pointerdown",mouseWheelHandler,{passive:!0})),this.dragStartHandler=null,this.dragSourceElement=null,this.focusHandler),mouseWheelHandler=(dragSourceElement&&frame&&_dom.default.removeEventListener(frame,"focus",dragSourceElement,{capture:!0,passive:!0}),this.focusHandler=null,this.boundOnFrameClick);return mouseWheelHandler&&frame&&_dom.default.removeEventListener(frame,"click",mouseWheelHandler,{passive:!0,capture:!0}),this.boundOnFrameClick=null,this.removeScrollCacheListener(),this.initialized=null,this.nativeScrollElement=null,this.frame=null,this.options=null,this.slideeSize=null,this._pos=null,this.requiresReflow=null,this.frameSize=null,this.dragging=null,this.contentRects=null,this.dragHandler=null,this.onSourceClickFn=null,this.onScrollForCachingFn=null,this.resizeListeners=null,this._cachedScrollTop=null,this._cachedScrollLeft=null,this._cachedScrollHeight=null,this._cachedScrollWidth=null,this._framePadding=null,this._slideePadding=null,this._frameRect=null,this.slideeElement=null,this.slideeElementStyle=null,this},Scroller.create=function(frame,options){frame=new Scroller(frame,options);return Promise.resolve(frame)};_exports.default=Scroller}); \ No newline at end of file diff --git a/modules/sections/sections.css b/modules/sections/sections.css new file mode 100644 index 0000000..5bb43a9 --- /dev/null +++ b/modules/sections/sections.css @@ -0,0 +1 @@ +.verticalSection{contain:style;margin-bottom:1.5em}.verticalSection-cards{contain:layout style}.emby-scroller{contain:style}.emby-scroller.dataGrid-mainscroller-scrollX{contain:style}.verticalSection-extrabottompadding{margin-bottom:2.6em}@supports selector(:hover) and (display:revert) and (column-gap:1em){.verticalSections{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;row-gap:2em}.verticalSections-condensed{row-gap:1em}.verticalSection{margin-bottom:0}.verticalSections-item{margin:0}.verticalSection-extrabottompadding{margin-bottom:.75em}}.sectionTitleContainer{margin:0 0 .75em;position:relative;contain:layout style}.sectionTitle-withseeall{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.sectionTitleMoreIcon{font-size:150%;font-weight:500!important}.sectionTitleContainer-cards{margin-bottom:0}.sectionTitleContainer-wrappedlistview{margin-bottom:.5em}.sectionTitle{margin-top:0;margin-bottom:.5em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.sectionTitle-cards{-webkit-margin-start:.25em;margin-inline-start:.25em;-webkit-margin-end:.25em;margin-inline-end:.25em;margin-bottom:0;margin-top:0;margin:0 min(.74rem,max(.38rem,1.06vw)) 0}.sectionTitle-cards-horizontal{margin:0 min(.4rem,max(.38rem,1.06vw)) 0;font-size:1em}.sectionTitleContainer>.sectionTitle{margin-top:0;margin-bottom:0;display:inline-block;vertical-align:middle;white-space:nowrap}.sectionTitleText-withseeall{-webkit-margin-end:.1em;margin-inline-end:.1em}.sectionTitleButton{-webkit-margin-start:1em!important;margin-inline-start:1em!important;-webkit-margin-end:0!important;margin-inline-end:0!important;-webkit-flex-shrink:0;flex-shrink:0}.sectionTitleButton+.sectionTitleButton{-webkit-margin-start:.5em!important;margin-inline-start:.5em!important}.sectionTitleIconButton{-webkit-margin-start:1em!important;margin-inline-start:1em!important;-webkit-margin-end:0!important;margin-inline-end:0!important;-webkit-flex-shrink:0;flex-shrink:0;display:inline-block;vertical-align:middle}.horizontalItemsContainer{display:-webkit-flex;display:flex}.sectionTitleTextButton{margin:0!important;display:-webkit-inline-flex!important;display:inline-flex!important}.sectionTitleTextButton:not(.padded-left){padding:0!important}.sectionTitleTextButton.padded-left{padding-bottom:0!important;-webkit-padding-end:0!important;padding-inline-end:0!important;padding-top:0!important}.sectionTitleTextButton>.sectionTitle{margin-bottom:0;margin-top:0}.padded-left{-webkit-padding-start:3.4%;padding-inline-start:3.4%}.padded-left-page{-webkit-padding-start:calc(3.4% + env(safe-area-inset-left,0));padding-inline-start:calc(3.4% + env(safe-area-inset-left,0))}.padded-right{-webkit-padding-end:3.4%;padding-inline-end:3.4%}.padded-left-withalphapicker{-webkit-padding-start:4%;padding-inline-start:4%}.padded-left-withalphapicker.padded-left-page{-webkit-padding-start:calc(4% + env(safe-area-inset-left,0));padding-inline-start:calc(4% + env(safe-area-inset-left,0))}.padded-right-withalphapicker{-webkit-padding-end:4%;padding-inline-end:4%}.padded-right-withlist.padded-right-withalphapicker{-webkit-padding-end:clamp(4%,2.25em,5%);padding-inline-end:clamp(4%,2.25em,5%)} \ No newline at end of file diff --git a/modules/sections/sections_nontv.css b/modules/sections/sections_nontv.css new file mode 100644 index 0000000..cc171ea --- /dev/null +++ b/modules/sections/sections_nontv.css @@ -0,0 +1 @@ +.padded-top-focusscale{padding-top:.5em;margin-top:-.5em}.padded-bottom-focusscale{padding-bottom:.5em;margin-bottom:-.5em}.padded-left-focusscale{padding-left:.5em;margin-left:-.5em}.padded-right-focusscale{padding-right:.5em;margin-right:-.5em}@media all and (min-width:60em){.page-withDockedDrawer .padded-left{-webkit-padding-start:2rem;padding-inline-start:2rem}.page-withDockedDrawer .padded-right{-webkit-padding-end:2rem;padding-inline-end:2rem}}@media all and (min-width:90em){.page-withDockedDrawer .padded-left{-webkit-padding-start:3rem;padding-inline-start:3rem}.page-withDockedDrawer .padded-right{-webkit-padding-end:3rem;padding-inline-end:3rem}}@media all and (min-width:60em){.page-withDockedDrawer .padded-right-withalphapicker{-webkit-padding-end:3rem;padding-inline-end:3rem}.page-withDockedDrawer .padded-right-withlist.padded-right-withalphapicker{-webkit-padding-end:3rem;padding-inline-end:3rem}} \ No newline at end of file diff --git a/modules/sections/sections_post.css b/modules/sections/sections_post.css new file mode 100644 index 0000000..f941ad8 --- /dev/null +++ b/modules/sections/sections_post.css @@ -0,0 +1 @@ +.padded-bottom{padding-bottom:1em}.padded-bottom-page{padding-bottom:9em;padding-bottom:calc(9em + env(safe-area-inset-bottom,0))} \ No newline at end of file diff --git a/modules/sections/sections_tv.css b/modules/sections/sections_tv.css new file mode 100644 index 0000000..fa04cbe --- /dev/null +++ b/modules/sections/sections_tv.css @@ -0,0 +1 @@ +.padded-left-withlist{-webkit-padding-start:6%;padding-inline-start:6%}.padded-left-withlist.padded-left-page{-webkit-padding-start:calc(6% + env(safe-area-inset-left,0));padding-inline-start:calc(6% + env(safe-area-inset-left,0))}.padded-right-withlist{-webkit-padding-end:6%;padding-inline-end:6%}.padded-top-focusscale{padding-top:1.5em;margin-top:-1.5em}.padded-bottom-focusscale{padding-bottom:1.5em;margin-bottom:-1.5em}.padded-left-focusscale{padding-left:1.5em;margin-left:-1.5em}.padded-right-focusscale{padding-right:1.5em;margin-right:-1.5em} \ No newline at end of file diff --git a/modules/serverrestartdialog/serverrestartdialog.js b/modules/serverrestartdialog/serverrestartdialog.js new file mode 100644 index 0000000..3b352b2 --- /dev/null +++ b/modules/serverrestartdialog/serverrestartdialog.js @@ -0,0 +1 @@ +define(["exports","./../dialoghelper/dialoghelper.js","./../layoutmanager.js","./../common/globalize.js","./../loading/loading.js","./../common/servicelocator.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-scroller/emby-scroller.js"],function(_exports,_dialoghelper,_layoutmanager,_globalize,_loading,_servicelocator,_embyButton,_paperIconButtonLight,_embyScroller){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons","formDialogStyle","flexStyles"]);var MaxWaitMinutes=5;function retryReload(instance){setTimeout(function(){Date.now()'+item.name+""}function onButtonClick(){_dialoghelper.default.close(dlg)}dlg.querySelector(".formDialogFooter").innerHTML=html;var buttons=dlg.querySelectorAll(".btnOption");for(i=0,length=buttons.length;i')+'
')+"
"+"",options.interactive&&(html=(html+='
')+'
'+getIcon("more_horiz","btnMore slideshowButton hide-mouse-idle-tv",null,!1)+"
",_layoutmanager.default.tv?html+='
':html+='
',html+='
',_layoutmanager.default.tv?html+=getIcon("","btnSlideshowPrevious buttonItems-item slideshowButton","md-icon-fill",!0):html+=getIcon("","btnSlideshowPrevious buttonItems-item slideshowButton hidetouch","md-icon-fill",!0),html+=getIcon("","btnSlideshowPause buttonItems-item slideshowButton","md-icon-fill",!0),_layoutmanager.default.tv?html+=getIcon("","btnSlideshowNext buttonItems-item slideshowButton","md-icon-fill",!0):html+=getIcon("","btnSlideshowNext buttonItems-item slideshowButton hidetouch","md-icon-fill",!0),html+='
'),dlg.innerHTML=html,dlg.querySelector(".itemsContainer"));html.fetchData=options.getItems||function(query){query=query||{};var items=this.options.items,totalRecordCount=items.length,limit=query.Limit;items=items.slice(query.StartIndex||0),limit&&items.length>limit&&(items.length=limit);return Promise.resolve({Items:items,TotalRecordCount:totalRecordCount})}.bind(self),html.getListOptions=function(items){var fields=this.options.cardFields||["Name"],windowSize=_dom.default.getWindowSize(),cardFooterClass="slideshowCardFooter";this.options.interactive&&(cardFooterClass+=" slideshowCardFooter-interactive");return cardFooterClass+=" slideshow-largefont",{renderer:_cardbuilder.default,options:{shape:"backdrop",preferBackdrop:!0,overlayText:!0,fields:fields,multiSelect:!1,hoverMenu:!1,cardClass:"slideshowCard",cardBoxClass:"slideshowCardBox",cardContentClass:"slideshowCardContent",cardImageClass:"slideshowCardImage",innerCardFooterClass:cardFooterClass,cardTextClass:"slideshowCardText",centerText:!0,staticElement:!0,action:"none",contextMenu:!1,draggable:!1,ignoreUIAspect:!0,playedIndicator:!1,playQueueIndicator:!1},virtualScrollLayout:"horizontal-grid",minOverhang:5*Math.max(windowSize.innerHeight,windowSize.innerWidth)}}.bind(self),html.afterRefresh=function(result){this.TotalRecordCount=result.TotalRecordCount}.bind(self),html.updateVirtualElement=function(elem,item,index){var classList;_embyItemscontainer.default.prototype.updateVirtualElement.apply(this,arguments),elem&&(classList=elem.classList)&&(index===currentIndex?classList.add("slideshowCard-current"):classList.remove("slideshowCard-current"))}.bind(html),self.itemsContainer=html,self.scroller=dlg.querySelector(".slideshowScroller"),options.interactive&&(dlg.querySelector(".btnSlideshowNext").addEventListener("click",nextImage),dlg.querySelector(".btnSlideshowPrevious").addEventListener("click",previousImage),(html=dlg.querySelector(".btnSlideshowPause"))&&html.addEventListener("click",self.playPause.bind(self)),(options=dlg.querySelector(".btnMore"))&&(options.addEventListener("click",self.showMoreMenu.bind(self)),options.classList.add("paper-icon-button-light-blur"),_dom.default.allowBackdropFilter())&&options.classList.add("paper-icon-button-light-blur-bf"),html=dlg.querySelector(".btnPlayVideo"),self.btnPlayVideo=html)&&html.addEventListener("click",self.playVideo.bind(self)),setUserScalable(!0),_mouse.default.requestMouseListening("slideshow"),dlg.addEventListener("opened",function(){this.dlg.classList.add("slideshow-crossfade");var itemsContainer=this.itemsContainer;itemsContainer.resume?onItemsContainerUpgraded.call(this):_dom.default.addEventListener(itemsContainer,"upgraded",onItemsContainerUpgraded.bind(this),{once:!0}),this.scroller.addScrollEventListener(onScroll.bind(this),{})}.bind(self)),_dialoghelper.default.open(dlg).then(function(){_mouse.default.releaseMouseListening("slideshow"),setUserScalable(!1),stopInterval()}),document.activeElement&&document.activeElement.blur(),_inputmanager.default.on(dlg,onInputCommand),_dom.default.addEventListener(document,window.PointerEvent?"pointermove":"mousemove",onPointerMove,{passive:!0}),_dom.default.addEventListener(document,window.PointerEvent?"pointerenter":"mouseenter",onPointerEnter,{passive:!0,capture:!0}),_dom.default.addEventListener(document,window.PointerEvent?"pointerleave":"mouseleave",onPointerLeave,{passive:!0,capture:!0}),dlg.addEventListener("close",onDialogClosed)}function previousImage(){stopInterval(),showNextImage(currentIndex-1,!1)}function nextImage(){stopInterval(),showNextImage(currentIndex+1,!1)}function getCurrentItem(){var index=currentIndex;if(null!=index&&-1!==index)return self.itemsContainer.getItem(index)}function showMoreMenu(item,button){var apiClient=_connectionmanager.default.getApiClient(item.ServerId);apiClient.getCurrentUser().then(function(user){return apiClient.getItem(apiClient.getCurrentUserId(),item.Id,{ExcludeFields:"Chapters,Overview,People,MediaStreams"}).then(function(serverItem){return options=function(item,user,button){return Object.assign({positionTo:button,positionX:"before",positionY:"bottom",transformOrigin:"right top",noTextWrap:!0},{items:[item],open:!1,play:!1,playSlideshow:!1,playAllFromHere:!1,queueAllFromHere:!1,cancelTimer:!1,record:!1,deleteItem:!1,shuffle:!1,instantMix:!1,user:user,share:!0,queue:!1,editSubtitles:!1,convert:!1,refreshMetadata:!1,identify:!1})}(serverItem,user,button),Emby.importModule("./modules/itemcontextmenu.js").then(function(itemContextMenu){return itemContextMenu.show(options)});var options})})}function onDialogClosed(){_inputmanager.default.off(this,onInputCommand),_dom.default.removeEventListener(document,window.PointerEvent?"pointermove":"mousemove",onPointerMove,{passive:!0}),_dom.default.removeEventListener(document,window.PointerEvent?"pointerenter":"mouseenter",onPointerEnter,{passive:!0,capture:!0}),_dom.default.removeEventListener(document,window.PointerEvent?"pointerleave":"mouseleave",onPointerLeave,{passive:!0,capture:!0}),_events.default.trigger(self,"closed")}self.play=function(){var btnSlideshowPause=dlg.querySelector(".btnSlideshowPause i");btnSlideshowPause&&(btnSlideshowPause.innerHTML=""),self.paused=!1},self.pause=function(){var btnSlideshowPause=dlg.querySelector(".btnSlideshowPause i");btnSlideshowPause&&(btnSlideshowPause.innerHTML=""),self.paused=!0},self.playVideo=function(){var item=getCurrentItem();item&&(hideOsd(),self.pause(),_playbackmanager.default.play({items:[item]}))},self.playPause=function(){showOsd(),self.paused?self.play():self.pause()},self.showMoreMenu=function(e){showOsd(),showMoreMenu(getCurrentItem(),e.target)};var mouseOverButton,hideTimeout,lastMouseMoveData,_osdOpen=!1;function getOsdTop(){return dlg.querySelector(".topActionButtons")}function getOsdBottom(){return dlg.querySelector(".slideshowBottomBar")}function showOsd(){var elem,onFinish,bottom=getOsdBottom(),bottom=(bottom&&((elem=bottom).classList.contains("hide")&&(_osdOpen=!0,elem.classList.remove("hide"),(onFinish=function(){_focusmanager.default.focus(elem.querySelector(".btnSlideshowPause"))})(),elem.animate?requestAnimationFrame(function(){var keyframes=[{transform:"translate3d(0,"+elem.offsetHeight+"px,0)",opacity:".3",offset:0},{transform:"translate3d(0,0,0)",opacity:"1",offset:1}];elem.animate(keyframes,{duration:300,iterations:1,easing:"ease-out"}).onfinish=onFinish}):onFinish()),hideTimeout&&(clearTimeout(hideTimeout),hideTimeout=null),hideTimeout=setTimeout(hideOsd,5e3)),getOsdTop());bottom&&!function(elem){var onFinish;elem.classList.contains("hide")&&(elem.classList.remove("hide"),onFinish=function(){},elem.animate)&&requestAnimationFrame(function(){var keyframes=[{transform:"translate3d(0,-"+elem.offsetHeight+"px,0)",opacity:".3",offset:0},{transform:"translate3d(0,0,0)",opacity:"1",offset:1}];elem.animate(keyframes,{duration:300,iterations:1,easing:"ease-out"}).onfinish=onFinish})}(bottom)}function hideOsd(){var elem,onFinish,bottom;!mouseOverButton&&((bottom=getOsdBottom())&&!(elem=bottom).classList.contains("hide")&&(onFinish=function(){elem.classList.add("hide"),_osdOpen=!1},elem.animate?requestAnimationFrame(function(){var keyframes=[{transform:"translate3d(0,0,0)",opacity:"1",offset:0},{transform:"translate3d(0,"+elem.offsetHeight+"px,0)",opacity:".3",offset:1}];elem.animate(keyframes,{duration:300,iterations:1,easing:"ease-out"}).onfinish=onFinish}):onFinish()),bottom=getOsdTop())&&function(elem){var onFinish;elem.classList.contains("hide")||(onFinish=function(){elem.classList.add("hide")},elem.animate?requestAnimationFrame(function(){var keyframes=[{transform:"translate3d(0,0,0)",opacity:"1",offset:0},{transform:"translate3d(0,-"+elem.offsetHeight+"px,0)",opacity:".3",offset:1}];elem.animate(keyframes,{duration:300,iterations:1,easing:"ease-out"}).onfinish=onFinish}):onFinish())}(bottom)}function onPointerEnter(e){var pointerType=e.pointerType;"touch"===pointerType||!pointerType&&supportsTouchEvent||(pointerType=e.target,mouseOverButton=pointerType.closest&&null!=pointerType.closest("button,a"))}function onPointerLeave(e){mouseOverButton=null}function onPointerMove(e){e.pointerType;var eventX=e.screenX||0,e=e.screenY||0,obj=lastMouseMoveData;obj?Math.abs(eventX-obj.x)<10&&Math.abs(e-obj.y)<10||(obj.x=eventX,obj.y=e,showOsd()):lastMouseMoveData={x:eventX,y:e}}var currentElement,currentElementTimeout,lastRepeatingKeyTime=0;function throttleDirectional(e){var timeStamp=e.timeStamp||Date.now();return timeStamp&&(timeStamp-lastRepeatingKeyTime<240?(e.preventDefault(),e.stopPropagation(),1):void(lastRepeatingKeyTime=timeStamp))}function onInputCommand(e){switch(e.detail.command){case"back":_osdOpen&&(e.preventDefault(),hideOsd());break;case"left":_osdOpen?showOsd():throttleDirectional(e)||(e.preventDefault(),e.stopPropagation(),("rtl"===document.dir?nextImage:previousImage)());break;case"right":_osdOpen?showOsd():throttleDirectional(e)||(e.preventDefault(),e.stopPropagation(),("rtl"===document.dir?previousImage:nextImage)());break;case"up":(_osdOpen?hideOsd:showOsd)();break;case"down":case"select":case"menu":case"info":showOsd();break;case"play":self.options.interactive&&(e.preventDefault(),self.play(),showOsd());break;case"playpause":self.options.interactive&&(e.preventDefault(),self.playPause(),showOsd());break;case"pause":self.options.interactive&&(e.preventDefault(),self.pause(),showOsd());break;case"next":self.options.interactive&&(e.preventDefault(),nextImage());break;case"previous":self.options.interactive&&(e.preventDefault(),previousImage());break;default:showOsd()}}function scrollToIndex(index,behavior,enableCrossfade){currentIndex=index;var scrollOptions={};behavior&&(scrollOptions.behavior=behavior),currentElement&&(currentElement.classList.remove("slideshowCard-current"),currentElement=null),self.isProgramScroll="smooth"!==behavior,enableCrossfade||(behavior=self.itemsContainer.getElement(index))&&behavior.classList.add("slideshowCard-current"),enableCrossfade?self.dlg.classList.add("slideshow-crossfade"):self.dlg.classList.remove("slideshow-crossfade"),self.isProgramScroll?self.dlg.classList.remove("slideshow-scrolling"):self.dlg.classList.add("slideshow-scrolling"),self.itemsContainer.scrollToIndex(index,scrollOptions,!1),currentElementTimeout&&clearTimeout(currentElementTimeout),currentElementTimeout=setTimeout(function(){var elem=self.itemsContainer.getElement(index);elem&&(elem.classList.add("slideshowCard-current"),currentElement=elem)},100)}function showNextImage(index,scrollBehavior,enableCrossfade){scrollTimeout&&clearTimeout(scrollTimeout),stopResizeTimer(),scrollToIndex(index=(index=Math.max(0,index))>=self.TotalRecordCount?0:index,scrollBehavior,enableCrossfade),restartInterval()}function onInterval(){self.paused?restartInterval():showNextImage(currentIndex+1,"instant",!0)}function restartInterval(){stopInterval(),currentTimeout=setTimeout(onInterval,currentIntervalMs)}function stopInterval(){currentTimeout&&(clearTimeout(currentTimeout),currentTimeout=null)}self.show=function(){stopInterval(),createElements(self.options),currentIntervalMs=self.options.interval||1e4,!self.options.interactive||_layoutmanager.default.tv||self.options.autoplay?self.play():self.pause()},self.hide=function(){var dialog=dlg;dialog&&_dialoghelper.default.close(dialog)}};var CSSPromise=require(["css!modules/slideshow/style.css","css!tv|modules/slideshow/tv.css"]).then(function(){CSSPromise=Promise.resolve()});function getIcon(icon,cssClass,iconClass,canFocus){return'"}function setUserScalable(scalable){try{_servicelocator.appHost.setUserScalable(scalable)}catch(err){console.log("error in appHost.setUserScalable: "+err)}}var isNativeSmoothScrollSupported="scrollBehavior"in document.documentElement.style}); \ No newline at end of file diff --git a/modules/slideshow/style.css b/modules/slideshow/style.css new file mode 100644 index 0000000..1f413ed --- /dev/null +++ b/modules/slideshow/style.css @@ -0,0 +1 @@ +.slideshowDialog{background:#000;padding:0!important}.slideshowScroller{position:fixed;top:0;bottom:0;left:0;right:0}.slideshowItemsContainer{height:100%!important}.slideshowCard{width:100vw!important}.slideshowCardBox{margin:0!important}.slideshowCardContent{padding-bottom:0!important;height:100vh!important;aspect-ratio:initial!important;background-color:transparent!important;border-radius:0!important;background-color:#000!important}.slideshowCardImage{width:auto!important;height:auto!important;position:static!important;max-width:100%;max-height:100%}@supports (object-fit:contain){.slideshowCardImage.coveredImage{width:100%!important;height:100%!important}}.slideshow-crossfade .slideshowCardBox{opacity:0;transition:opacity ease-out .6s}.slideshowCard-current .cardBox{opacity:initial}.slideshowCardFooter{text-align:center;padding-bottom:1.5em!important;padding-bottom:calc(env(safe-area-inset-bottom,0) + 1.5em)!important;-webkit-padding-start:2ch;padding-inline-start:2ch;-webkit-padding-end:2ch;padding-inline-end:2ch;font-weight:600;opacity:0;transition:opacity ease-out .8s;transition-delay:0.1s}.slideshowCardFooter-interactive{padding-bottom:5em!important;padding-bottom:calc(env(safe-area-inset-bottom,0) + 5em)!important}.slideshowCard-current .slideshowCardFooter{opacity:1}.slideshow-largefont{font-size:120%;font-weight:600}.slideshowCardContent::before,.slideshowCardContent::after{content:' ';position:absolute;top:0;bottom:0;width:3.6%;background-color:#000;z-index:1;opacity:0;transition:opacity .4s ease-out}.slideshowCardContent::before{left:0;inset-inline-start:0;inset-inline-end:initial}.slideshowCardContent::after{right:0;inset-inline-start:initial;inset-inline-end:0}.slideshow-scrolling .cardImageContainer::before,.slideshow-scrolling .cardImageContainer::after{opacity:1}.topActionButtons{top:0;left:0;right:0;z-index:1002;position:absolute;padding-left:calc(env(safe-area-inset-left,0) + 2ch);padding-right:calc(env(safe-area-inset-right,0) + 2ch);padding-top:calc(env(safe-area-inset-top,0) + .75em)}.slideshow-topActionButtons-right{-webkit-margin-start:auto;margin-inline-start:auto}.slideshowBottomBar{position:fixed;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;background:linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,.8) 100%);padding:.75em 1ch;display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-align-items:center;align-items:center;padding-left:calc(env(safe-area-inset-left,0) + 2ch);padding-right:calc(env(safe-area-inset-right,0) + 2ch);padding-bottom:calc(env(safe-area-inset-bottom,0) + .75em)}.slideshow-btnPlayVideo{position:absolute;right:calc(env(safe-area-inset-right,0) + 1ch)} \ No newline at end of file diff --git a/modules/slideshow/tv.css b/modules/slideshow/tv.css new file mode 100644 index 0000000..2a028da --- /dev/null +++ b/modules/slideshow/tv.css @@ -0,0 +1 @@ +.slideshow-largefont{font-size:170%;line-height:1.4;font-weight:600} \ No newline at end of file diff --git a/modules/soundeffects/defaultsoundeffects/navigation.mp3 b/modules/soundeffects/defaultsoundeffects/navigation.mp3 new file mode 100644 index 0000000..8b8db5a Binary files /dev/null and b/modules/soundeffects/defaultsoundeffects/navigation.mp3 differ diff --git a/modules/soundeffects/defaultsoundeffects/plugin.js b/modules/soundeffects/defaultsoundeffects/plugin.js new file mode 100644 index 0000000..cd7d986 --- /dev/null +++ b/modules/soundeffects/defaultsoundeffects/plugin.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function DefaultSoundEffects(){this.name="Default Sound Effects",this.type="soundeffects",this.id="defaultsoundeffects"}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,DefaultSoundEffects.prototype.getEffects=function(){return{navigation:"navigation.mp3",select:"select.mp3"}};_exports.default=DefaultSoundEffects}); \ No newline at end of file diff --git a/modules/soundeffects/defaultsoundeffects/select.mp3 b/modules/soundeffects/defaultsoundeffects/select.mp3 new file mode 100644 index 0000000..2d27b05 Binary files /dev/null and b/modules/soundeffects/defaultsoundeffects/select.mp3 differ diff --git a/modules/soundeffects/soundeffectsmanager.js b/modules/soundeffects/soundeffectsmanager.js new file mode 100644 index 0000000..9658bcf --- /dev/null +++ b/modules/soundeffects/soundeffectsmanager.js @@ -0,0 +1 @@ +define(["exports","./../dom.js","./../emby-apiclient/connectionmanager.js","./../emby-apiclient/events.js","./../common/pluginmanager.js","./../layoutmanager.js","./../common/servicelocator.js","./../common/appsettings.js","./../common/inputmanager.js","./../focusmanager.js","./../input/keyboard.js"],function(_exports,_dom,_connectionmanager,_events,_pluginmanager,_layoutmanager,_servicelocator,_appsettings,_inputmanager,_focusmanager,_keyboard){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var soundEffectsPlayer,effects={};function reload(){var soundeffectPlugin;_servicelocator.appHost.supports("soundeffects")&&(_inputmanager.default.off(window,onInputCommand,{passive:!0}),_dom.default.removeEventListener(window,"keydown",onKeyDown,{passive:!0}),_dom.default.removeEventListener(window,"userprompt",onUserPrompt,{passive:!0}),_events.default.off(_focusmanager.default,"move",onFocusManagerMove),_layoutmanager.default.tv)&&(_inputmanager.default.on(window,onInputCommand,{passive:!0}),_dom.default.addEventListener(window,"keydown",onKeyDown,{passive:!0}),_dom.default.addEventListener(window,"userprompt",onUserPrompt,{passive:!0}),_events.default.on(_focusmanager.default,"move",onFocusManagerMove),(soundeffectPlugin=function(){var soundeffectOption;try{soundeffectOption=_appsettings.default.soundEffects()}catch(err){}soundeffectOption=soundeffectOption||"defaultsoundeffects";if("none"===soundeffectOption)return null;var soundeffectPlugin=_pluginmanager.default.ofType("soundeffects").filter(function(i){return i.id===soundeffectOption})[0];soundeffectPlugin=soundeffectPlugin||_pluginmanager.default.ofType("soundeffects").filter(function(i){return"defaultsoundeffects"===i.id})[0];return soundeffectPlugin}())?function(soundeffectPlugin){var i,effectDictionary=soundeffectPlugin.getEffects(),temp={};for(i in effectDictionary)temp[i]=_pluginmanager.default.mapPath(soundeffectPlugin,effectDictionary[i]);effects=temp}(soundeffectPlugin):effects={})}function onFocusManagerMove(e){play("navigation")}function onInputCommand(evt){var pendingSound,activeElement;if(pendingSound="select"===evt.detail.command&&(pendingSound="miniselect",activeElement=document.activeElement)&&"BUTTON"===activeElement.tagName&&activeElement.classList.contains("button-submit")?"select":pendingSound){if(activeElement)switch(activeElement.type){case"text":case"textarea":case"tel":case"search":case"password":case"number":return}play(pendingSound)}}function onKeyDown(evt){var pendingSound,activeElement;switch(_keyboard.default.normalizeKeyFromEvent(evt)){case"Enter":case" ":if(pendingSound="miniselect",activeElement=document.activeElement){if(activeElement.classList.contains("longpress"))return;"BUTTON"===activeElement.tagName&&activeElement.classList.contains("button-submit")&&(pendingSound="select")}}if(pendingSound){if(activeElement)switch(activeElement.type){case"text":case"textarea":case"tel":case"search":case"password":case"number":return}play(pendingSound)}}function onUserPrompt(evt){if(evt.detail)switch(evt.detail.promptType){case"alert":play("error");break;case"confirm":play("question")}}function play(type){var effect=effects[type];(effect=effect||"miniselect"!==type?effect:effects.select)&&(soundEffectsPlayer?soundEffectsPlayer.play({path:effect}):require(["soundEffectsPlayer"],function(soundEffectsPlayer_){(soundEffectsPlayer=soundEffectsPlayer_).play({path:effect})}))}reload(),_events.default.on(_connectionmanager.default,"localusersignedin",reload),_events.default.on(_appsettings.default,"change",function(e,name){"soundeffects"===name&&reload()});_exports.default={}}); \ No newline at end of file diff --git a/modules/soundeffects/soundeffectsplayer.js b/modules/soundeffects/soundeffectsplayer.js new file mode 100644 index 0000000..06d2e8a --- /dev/null +++ b/modules/soundeffects/soundeffectsplayer.js @@ -0,0 +1 @@ +define(["exports","./../howlerjs/howler.core.js"],function(_exports,_howlerCore){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var sounds={};_exports.default={play:function(options){var path=options.path,sound=sounds[path];sound||(options=options.volume||.3,sound=new _howlerCore.default({src:[path],volume:options}),sounds[path]=sound),sound.play()}}}); \ No newline at end of file diff --git a/modules/subtitleappearancedialog/subtitleappearancedialog.js b/modules/subtitleappearancedialog/subtitleappearancedialog.js new file mode 100644 index 0000000..b696556 --- /dev/null +++ b/modules/subtitleappearancedialog/subtitleappearancedialog.js @@ -0,0 +1 @@ +define(["exports","./../dialoghelper/dialoghelper.js","./../common/globalize.js","./../dom.js","./../common/playback/playbackmanager.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../emby-elements/emby-slider/emby-slider.js","./../emby-elements/emby-scroller/emby-scroller.js","./../viewmanager/basesettingscontainer.js","./../../settings/subtitleappearanceeditor.js"],function(_exports,_dialoghelper,_globalize,_dom,_playbackmanager,_embyButton,_paperIconButtonLight,_embyDialogclosebutton,_embySlider,_embyScroller,_basesettingscontainer,_subtitleappearanceeditor){function SubtitleAppearanceDialog(options){this.options=options}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons","formDialogStyle"]),Object.assign(SubtitleAppearanceDialog.prototype,_basesettingscontainer.default.prototype),SubtitleAppearanceDialog.prototype.show=function(){this.view||(dialogOptions={removeOnClose:!0,scrollY:!1,transparentBackground:!0,positionTo:this.options.positionTo,positionX:this.options.positionX,positionY:this.options.positionY,transformOrigin:this.options.transformOrigin,lowResAutoHeight:!0,skipAutoFocusIfNotEnabled:!1,autoCenter:!1,size:"small"},(dialogOptions=_dialoghelper.default.createDialog(dialogOptions)).classList.add("formDialog","subtitleAppearanceDialog"),_dom.default.allowBackdropFilter()&&dialogOptions.classList.add("dialog-blur"),html="",title=_globalize.default.translate("HeaderSubtitleAppearance"),dialogOptions.innerHTML=html=(html=(html=(html+='
')+''+'

')+title+"

")+"
"+'
',dialogOptions.style.minWidth="initial",dialogOptions.addEventListener("opened",function(){this.settingsOnResume({refresh:!0})}.bind(this)),this.view=dialogOptions,_basesettingscontainer.default.call(this,dialogOptions)),title=this.options.player,_playbackmanager.default.getSubtitleOffset(title);var dialogOptions,title,html=function(){return Promise.resolve()}.bind(this);return _dialoghelper.default.open(this.view).then(html,html)},SubtitleAppearanceDialog.prototype.loadSettingsInternal=function(){var instance=this;return function(instance){var context=instance.view,subtitleAppearanceEditor=new _subtitleappearanceeditor.default({settingsContainer:instance,preview:!1,title:!1});return(instance.subtitleAppearanceEditor=subtitleAppearanceEditor).embed(context.querySelector(".fieldsets"),"afterbegin")}(instance).then(function(){return instance.loadAutoSettings().then(function(){instance.subtitleAppearanceEditor.bindEvents()})})},SubtitleAppearanceDialog.prototype.close=function(){var dlg=this.view;dlg&&_dialoghelper.default.close(dlg)},SubtitleAppearanceDialog.prototype.getApiClient=function(){return this.options.apiClient},SubtitleAppearanceDialog.prototype.destroy=function(){this.close(),_basesettingscontainer.default.prototype.destroy.apply(this,arguments);var subtitleAppearanceEditor=this.subtitleAppearanceEditor;subtitleAppearanceEditor&&(subtitleAppearanceEditor.destroy(),this.subtitleAppearanceEditor=null),this.options=null,this.view=null};_exports.default=SubtitleAppearanceDialog}); \ No newline at end of file diff --git a/modules/subtitleeditor/subtitleeditor.js b/modules/subtitleeditor/subtitleeditor.js new file mode 100644 index 0000000..05f9811 --- /dev/null +++ b/modules/subtitleeditor/subtitleeditor.js @@ -0,0 +1 @@ +define(["exports","./../loading/loading.js","./../dialoghelper/dialoghelper.js","./../layoutmanager.js","./../focusmanager.js","./../common/servicelocator.js","./../common/globalize.js","./../common/itemmanager/itemmanager.js","./../common/usersettings/usersettings.js","./../emby-apiclient/connectionmanager.js","./../emby-apiclient/events.js","./../emby-elements/emby-select/emby-select.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-toggle/emby-toggle.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../listview/listview.js","./../common/itemhelper.js","./../common/input/api.js"],function(_exports,_loading,_dialoghelper,_layoutmanager,_focusmanager,_servicelocator,_globalize,_itemmanager,_usersettings,_connectionmanager,_events,_embySelect,_embyButton,_embyToggle,_paperIconButtonLight,_embyScroller,_embyItemscontainer,_embyDialogclosebutton,_listview,_itemhelper,_api){function onGetItem(instance,item,mediaSource,apiClient,autoSearch){var context=instance.context;instance.currentItem=item,instance.mode="Audio"===item.MediaType?"lyrics":"subtitles",function(instance){var context=instance.context;"lyrics"===instance.mode?(context.querySelector(".formDialogHeaderTitle").innerHTML=_globalize.default.translate("Lyrics"),context.querySelector(".subtitleSearchHeaderText").innerHTML=_globalize.default.translate("SearchForLyrics"),context.querySelector(".fldForcedOnly").classList.add("hide")):(context.querySelector(".formDialogHeaderTitle").innerHTML=_globalize.default.translate("Subtitles"),context.querySelector(".subtitleSearchHeaderText").innerHTML=_globalize.default.translate("SearchForSubtitles"),context.querySelector(".fldForcedOnly").classList.remove("hide"))}(instance),instance.currentMediaSource=mediaSource,apiClient.getCurrentUser().then(function(user){_itemmanager.default.canDownloadSubtitles(item,user)?context.querySelector(".subtitleSearchContainer").classList.remove("hide"):context.querySelector(".subtitleSearchContainer").classList.add("hide"),instance.subtitleList.resume({refresh:!0}).then(function(){autoSearch||(_loading.default.hide(),instance.autoFocus())});var user=instance.currentMediaSource.Path||"",index=Math.max(user.lastIndexOf("/"),user.lastIndexOf("\\"));(user=-1'+l.DisplayName+""}),(context=_usersettings.default.get("subtitleeditor-language"))?selectLanguage.value=context:apiClient.getCurrentUser().then(function(user){user=user.Configuration.SubtitleLanguagePreference;user&&(selectLanguage.value=user)})}(editorContent,apiClient,languages)}),"NoSubtitleSearchResultsFound"),responses=("lyrics"===instance.mode&&(dialogOptions="NoLyricsSearchResultsFound"),_servicelocator.appHost.supports("externallinks")?dlg.querySelector(".noSearchResults").innerHTML=_globalize.default.translate(dialogOptions,'',""):dlg.querySelector(".noSearchResults").innerHTML=_globalize.default.translate(dialogOptions,"",""),dlg.querySelector(".subtitleList")),dialogOptions=(responses.fetchData=function(query){var _instance$options,totalRecordCount,mediaSource=this.currentMediaSource,item=this.currentItem;return item&&mediaSource&&!1!==(null==(_instance$options=this.options)?void 0:_instance$options.showCurrentSubtitles)?(totalRecordCount=(_instance$options=mediaSource.MediaStreams.filter(function(s){return"Subtitle"===s.Type}).map(function(s){return _itemhelper.default.normalizeMediaStreamForDisplay(item,mediaSource,s)})).length,Promise.resolve({Items:_instance$options,TotalRecordCount:totalRecordCount})):Promise.resolve({Items:[],TotalRecordCount:0})}.bind(instance),responses.getListOptions=getExistingSubtitlesListOptions.bind(instance),responses.parentContainer=responses,instance.subtitleList=responses,dlg.querySelector(".subtitleResults")),responses=(dialogOptions.fetchData=function(){var context=this.context,apiClient=_connectionmanager.default.getApiClient(this.currentItem),language=context.querySelector(".selectLanguage").value,itemId=this.currentItem.Id,mediaSourceId=this.currentMediaSource.Id,language=apiClient.getUrl("Items/"+itemId+"/RemoteSearch/Subtitles/"+language,{IsForced:context.querySelector(".chkForcedOnly").checked||null,MediaSourceId:mediaSourceId}),serverId=apiClient.serverId();return apiClient.getJSON(language).then(function(items){for(var i=0,length=items.length;i + +

${Subtitles}

+ + + +
+
+
+
+ +

+ +
+ +
+

+ ${SearchForSubtitles} +

+
+
+
+ +
+
+
+ +
${SearchForForcedSubtitlesOnlyHelp}
+
+ + +
+ +
+
+
+
+
+
+
\ No newline at end of file diff --git a/modules/subtitleoffsetdialog/subtitleoffsetdialog.js b/modules/subtitleoffsetdialog/subtitleoffsetdialog.js new file mode 100644 index 0000000..3a81cc9 --- /dev/null +++ b/modules/subtitleoffsetdialog/subtitleoffsetdialog.js @@ -0,0 +1 @@ +define(["exports","./../dialoghelper/dialoghelper.js","./../common/globalize.js","./../emby-apiclient/events.js","./../dom.js","./../layoutmanager.js","./../common/playback/playbackmanager.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../emby-elements/emby-slider/emby-slider.js"],function(_exports,_dialoghelper,_globalize,_events,_dom,_layoutmanager,_playbackmanager,_embyButton,_paperIconButtonLight,_embyDialogclosebutton,_embySlider){function SubtitleOffsetDialog(options){this.options=options}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons","formDialogStyle"]);function onDialogClosed(){var instance=this,player=this.options.player;return(instance=instance.localOnSubtitleOffsetChange)&&_events.default.off(player,"subtitleoffsetchange",instance),Promise.resolve()}function refreshData(instance,player){!function(instance,offsetValue){var slider,value;instance.dlg.querySelector(".offsetValue").innerHTML=getBubbleText(offsetValue),slider=instance.dlg.querySelector(".subtitleOffsetSlider"),value=offsetValue,slider.dragging||(slider.setValue?slider.setValue(value):slider.waitForCustomElementUpgrade().then(function(){slider.setValue(value)}))}(instance,_playbackmanager.default.getSubtitleOffset(player))}function getBubbleText(value){return value=value,1e3<=Math.abs(value)?(value/=1e3).toFixed(1)+" seconds":value+" ms"}SubtitleOffsetDialog.prototype.show=function(){var dialogOptions,html,instance,player;function localOnSubtitleOffsetChange(e){refreshData(instance,player)}this.dlg||(dialogOptions={removeOnClose:!0,scrollY:!1,transparentBackground:!0,positionTo:this.options.positionTo,positionX:this.options.positionX,positionY:this.options.positionY,transformOrigin:this.options.transformOrigin,lowResAutoHeight:!0,skipAutoFocusIfNotEnabled:!1,autoCenter:!1},(dialogOptions=_dialoghelper.default.createDialog(dialogOptions)).classList.add("formDialog","subtitleOffsetDialog"),_dom.default.allowBackdropFilter()&&dialogOptions.classList.add("dialog-blur"),html="",html=(html=(html='
')+'

'+_globalize.default.translate("HeaderSubtitleOffset")+"

")+function(){var html="",buttonClass=_layoutmanager.default.tv?" hide":"";return html+'
'+'
'+'

'+'
'+('')+'
'+''+"
"+('')+"
"+'
'+('")+"
"+"
"+"
"}(),dialogOptions.innerHTML=html,dialogOptions.style.minWidth="initial",html=(this.dlg=dialogOptions).querySelector(".subtitleOffsetSlider"),boundOnSliderChange=function(e){e=e.target,e=parseInt(e.value),console.log("slider value: "+e+" - "+typeof e),_playbackmanager.default.setSubtitleOffset(e,this.options.player)}.bind(this),html.addEventListener("change",boundOnSliderChange),html.addEventListener("input",boundOnSliderChange),dialogOptions.querySelector(".btnStepDown").addEventListener("click",function(){_playbackmanager.default.incrementSubtitleOffset(-100,this.options.player)}.bind(this)),dialogOptions.querySelector(".btnStepUp").addEventListener("click",function(){_playbackmanager.default.incrementSubtitleOffset(100,this.options.player)}.bind(this)),html.getBubbleText=getBubbleText,dialogOptions.querySelector(".btnReset").addEventListener("click",function(e){_playbackmanager.default.setSubtitleOffset(0,this.options.player)}.bind(this))),player=(instance=this).options.player,instance.localOnSubtitleOffsetChange=localOnSubtitleOffsetChange,_events.default.on(player,"subtitleoffsetchange",localOnSubtitleOffsetChange),refreshData(this,this.options.player);var boundOnSliderChange=onDialogClosed.bind(this);return _dialoghelper.default.open(this.dlg).then(boundOnSliderChange,boundOnSliderChange)},SubtitleOffsetDialog.prototype.close=function(){var dlg=this.dlg;dlg&&_dialoghelper.default.close(dlg)},SubtitleOffsetDialog.prototype.destroy=function(){this.close(),this.options=null,this.dlg=null};_exports.default=SubtitleOffsetDialog}); \ No newline at end of file diff --git a/modules/sync/filerepository.js b/modules/sync/filerepository.js new file mode 100644 index 0000000..9b14176 --- /dev/null +++ b/modules/sync/filerepository.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={getValidFileName:function(path){return path},getFullLocalPath:function(pathArray){return pathArray.join("/")},getFullMetadataPath:function(pathArray){return pathArray.join("/")},getParentPath:function(path){return 0===(path=path.split("/")).length?null:(path=path.slice(0,path.length-1)).join("/")},combinePath:function(path1,path2){return(path1=path1.endsWith("/")?path1.substr(0,path1.length-1):path1)+"/"+(path2=path2.startsWith("/")?path2.substr(1):path2)},deleteFile:function(path){return Promise.resolve()},deleteDirectory:function(path){return Promise.resolve()},fileExists:function(path){return Promise.resolve()},getItemFileSize:function(path){return Promise.resolve(0)},getImageUrl:function(pathParts){return pathParts.join("/")}}}); \ No newline at end of file diff --git a/modules/sync/localsync.js b/modules/sync/localsync.js new file mode 100644 index 0000000..7051a1c --- /dev/null +++ b/modules/sync/localsync.js @@ -0,0 +1 @@ +define(["exports","./../common/appsettings.js"],function(_exports,_appsettings){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var isSyncing,localSync={sync:function(options){return console.log("localSync.sync starting..."),isSyncing?Promise.resolve():(isSyncing=!0,Emby.importModule("./modules/sync/multiserversync.js").then(function(MultiServerSync){(options=options||{}).cameraUploadServers=_appsettings.default.cameraUploadServers(),(new MultiServerSync).sync(options).then(function(){isSyncing=null},function(err){return isSyncing=null,Promise.reject(err)})}))},setProgressUpdatesEnabled:function(enabled){}};_exports.default=localSync}); \ No newline at end of file diff --git a/modules/sync/mediasync.js b/modules/sync/mediasync.js new file mode 100644 index 0000000..1f24c47 --- /dev/null +++ b/modules/sync/mediasync.js @@ -0,0 +1 @@ +define(["exports","./../common/servicelocator.js","./../localdatabase/localassetmanager.js"],function(_exports,_servicelocator,_localassetmanager){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var MaxBackdrops=1;function reportTransfer(apiClient,item){return _localassetmanager.default.getItemFileSize(item.LocalPath).then(function(size){return 0MaxBackdrops&&(downloadedItem.BackdropImageTags.length=MaxBackdrops),downloadedItem.ParentBackdropImageTags=null,downloadedItem.ParentArtImageTag=null,downloadedItem.ParentLogoImageTag=null;var _downloadedItem$Backd,localItem=createLocalItem(downloadedItem,null);return _servicelocator.itemRepository.updateLibraryItem(localItem.ServerId,localItem.Id,localItem).then(function(){return Promise.resolve(localItem)},function(err){return console.error("[mediasync] downloadItem failed: "+err.toString()),Promise.resolve(null)})})}function clearChapterImages(obj){if(obj.Chapters)for(var i=0,length=obj.Chapters.length;i')+'':(html+='
',targetContainerClass=targets.length?"":" required",html=(html+='",targets.length||(html+='
'+_globalize.default.translate("LabelSyncNoTargetsHelp")+"
"),_servicelocator.appHost.supports("externallinks")&&(html+='"),html+="
");targetContainerClass=!1;options.readOnlySyncTarget&&-1===dialogOptions.Options.indexOf("UnwatchedOnly")&&-1===dialogOptions.Options.indexOf("SyncNewContent")&&-1===dialogOptions.Options.indexOf("ItemLimit")&&(targetContainerClass=!0);html=(html=(html=(html=(html=(html=(html=(html=(html=(html+='
')+'')+'
')+'
')+'
')+'
')+'
')+'
')+'")+'
')+'
')+'
')+'
')+'
';syncTargetLabel="";dialogOptions.Options.includes("UnwatchedOnly")||(syncTargetLabel+=" hide");html=(html+='
')+'",html+="convert"===mode?'
'+_globalize.default.translate("ConvertUnwatchedVideosOnlyHelp")+"
":'
'+_globalize.default.translate("SyncUnwatchedVideosOnlyHelp")+"
";html+="
",-1!==dialogOptions.Options.indexOf("SyncNewContent")&&(html=(html=(html=(html+='
')+'")+("convert"===mode?'
'+_globalize.default.translate("AutomaticallyConvertNewContentHelp")+"
":'
'+_globalize.default.translate("AutomaticallySyncNewContentHelp")+"
")+"
");-1!==dialogOptions.Options.indexOf("ItemLimit")&&(html=(html=(html+='
')+'')+("convert"===mode?'
'+_globalize.default.translate("ConvertItemLimitHelp")+"
":'
'+_globalize.default.translate("DownloadItemLimitHelp")+"
")+"
");elem.innerHTML=html;targets=elem.querySelector(".selectSyncTarget");targets&&(targets.addEventListener("change",function(){var form,targetId;form=elem,targetId=this.value,(0,options.dialogOptionsFn)(targetId).then(function(options){return function(form,options){currentDialogOptions=options;var fldProfile=form.querySelector(".fldProfile"),selectProfile=form.querySelector(".selectProfile"),unwatchedOnlyToggleContainer=form.querySelector(".unwatchedOnlyToggleContainer");options.Options.includes("UnwatchedOnly")?null!=unwatchedOnlyToggleContainer&&unwatchedOnlyToggleContainer.classList.remove("hide"):null!=unwatchedOnlyToggleContainer&&unwatchedOnlyToggleContainer.classList.add("hide");options.ProfileOptions.length&&-1!==options.Options.indexOf("Profile")?(fldProfile&&fldProfile.classList.remove("hide"),selectProfile&&selectProfile.setAttribute("required","required")):(fldProfile&&fldProfile.classList.add("hide"),selectProfile&&selectProfile.removeAttribute("required"));setQualityFieldVisible(form,0"+o.Name+""}).join(""),selectProfile.dispatchEvent(new CustomEvent("change",{bubbles:!0})));unwatchedOnlyToggleContainer=form.querySelector(".selectQuality");{var lastQuality;unwatchedOnlyToggleContainer&&(unwatchedOnlyToggleContainer.innerHTML=options.QualityOptions.map(function(o){var selectedAttribute=o.IsDefault?" selected":"";return'"}).join(""),(lastQuality=_appsettings.default.get("sync-lastquality"))&&options.QualityOptions.filter(function(i){return i.Id===lastQuality}).length&&(unwatchedOnlyToggleContainer.value=lastQuality),unwatchedOnlyToggleContainer.dispatchEvent(new CustomEvent("change",{bubbles:!0})))}}(form,options)}).then(resolve)}),targets.dispatchEvent(new CustomEvent("change",{bubbles:!0})));targetContainerClass=elem.querySelector(".selectProfile");targetContainerClass&&(targetContainerClass.addEventListener("change",function(){var form=elem,profileId=this.value,options=currentDialogOptions||{},option=(options.ProfileOptions||[]).filter(function(o){return o.Id===profileId})[0],qualityOptions=options.QualityOptions||[];option?(form.querySelector(".profileDescription").innerHTML=option.Description||"",setQualityFieldVisible(form,0')+''+'

',"convert"===options.mode?_globalize.default.translate("Convert"):_globalize.default.translate("Download")),submitted=(dlgElementOptions=dlgElementOptions+syncButtonLabel+"

",_servicelocator.appHost.supports("externallinks")&&(dlgElementOptions+=''),dlg.innerHTML=dlgElementOptions=(dlgElementOptions=(dlgElementOptions=(dlgElementOptions=(dlgElementOptions=(dlgElementOptions+="")+'
'+'
')+'
'+'
')+'
'+('"))+"
"+"
")+"
"+"
",!1),syncButtonLabel=(dlg.querySelector("form").addEventListener("submit",function(e){return submitted=function(dlg,apiClient,userId,syncOptions,form){if(!userId)throw new Error("userId cannot be null");if(!syncOptions)throw new Error("syncOptions cannot be null");if(!form)throw new Error("form cannot be null");var selectSyncTarget=form.querySelector(".selectSyncTarget"),target=null==selectSyncTarget?void 0:selectSyncTarget.value;if(!target)return showAlert(_globalize.default.translate("PleaseSelectDeviceToSyncTo")),!1;var mode=syncOptions.mode,selectedIndex=("download"!==mode&&_appsettings.default.set("lastsync_"+mode+"_targetid",target),selectSyncTarget.selectedIndex);if(-1!==selectedIndex){selectedIndex=null==(selectSyncTarget=selectSyncTarget.options[selectedIndex])?void 0:selectSyncTarget.innerHTML;if(null!=selectedIndex&&selectedIndex.toLowerCase().includes("windows")&&!apiClient.isMinServerVersion("4.8.4"))return showAlert("To use the download feature, please update Emby Server to at least 4.8.4 or greater."),!0}return setJobValues(selectSyncTarget={userId:userId,TargetId:target,ParentId:syncOptions.ParentId,Category:syncOptions.Category},form),syncOptions.items&&syncOptions.items.length&&(selectSyncTarget.ItemIds=(syncOptions.items||[]).map(function(i){return i.Id||i}).join(",")),apiClient.createSyncJob(selectSyncTarget).then(function(){_dialoghelper.default.close(dlg),showSubmissionToast(mode),"download"===mode&&syncNow()}),!0}(dlg,apiClient,userId,options,this),e.preventDefault(),!1}),_dialoghelper.default.open(dlg));return renderForm({elem:dlg.querySelector(".formFields"),dialogOptions:dialogOptions,dialogOptionsFn:dialogOptionsFn,mode:options.mode,apiClient:apiClient}),syncButtonLabel.then(function(){return submitted?Promise.resolve():Promise.reject()})})}(options)})},renderForm:renderForm,setJobValues:setJobValues}}); \ No newline at end of file diff --git a/modules/sync/syncjobeditor.js b/modules/sync/syncjobeditor.js new file mode 100644 index 0000000..f79374e --- /dev/null +++ b/modules/sync/syncjobeditor.js @@ -0,0 +1 @@ +define(["exports","./../emby-apiclient/connectionmanager.js","./../common/globalize.js","./../layoutmanager.js","./../loading/loading.js","./../dialoghelper/dialoghelper.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../common/input/api.js","./../emby-apiclient/events.js","./../common/servicelocator.js","./../listview/listview.js","./../dom.js"],function(_exports,_connectionmanager,_globalize,_layoutmanager,_loading,_dialoghelper,_paperIconButtonLight,_embyButton,_embyScroller,_embyItemscontainer,_embyDialogclosebutton,_api,_events,_servicelocator,_listview,_dom){function renderJob(context,apiClient,job,dialogOptions,originalOptions){Emby.importModule("./modules/sync/sync.js").then(function(syncDialog){syncDialog.renderForm({elem:context.querySelector(".syncJobFormContent"),dialogOptions:dialogOptions,dialogOptionsFn:function(dialogOptions){return function(targetId){return Promise.resolve(dialogOptions)}}(dialogOptions),readOnlySyncTarget:!0,mode:originalOptions.mode,apiClient:apiClient}).then(function(){!function(context,job,editOptions){var selectProfile=context.querySelector(".selectProfile");selectProfile&&(selectProfile.value=job.Profile||"",triggerChange(selectProfile));selectProfile=context.querySelector(".selectQuality");selectProfile&&(selectProfile.value=job.Quality||"",triggerChange(selectProfile));selectProfile=context.querySelector(".selectJobContainer");selectProfile&&(selectProfile.value=job.Container||"",triggerChange(selectProfile));selectProfile=context.querySelector(".selectVideoCodec");selectProfile&&(selectProfile.value=job.VideoCodec||"",triggerChange(selectProfile));selectProfile=context.querySelector(".selectAudioCodec");selectProfile&&(selectProfile.value=job.AudioCodec||"",triggerChange(selectProfile));selectProfile=context.querySelector(".chkUnwatchedOnly");selectProfile&&(selectProfile.checked=job.UnwatchedOnly);selectProfile=context.querySelector(".chkSyncNewContent");selectProfile&&(selectProfile.checked=job.SyncNewContent);selectProfile=context.querySelector(".txtItemLimit");selectProfile&&(selectProfile.value=job.ItemLimit);selectProfile=context.querySelector(".txtBitrate");job.Bitrate?selectProfile.value=job.Bitrate/1e6:selectProfile.value="";selectProfile=editOptions.Targets.filter(function(t){return t.Id===job.TargetId})[0],editOptions=selectProfile?selectProfile.Name:"",selectProfile=context.querySelector(".selectSyncTarget");selectProfile&&(selectProfile.value=editOptions)}(context,job,dialogOptions)})})}function triggerChange(select){select.dispatchEvent(new CustomEvent("change",{bubbles:!0}))}function saveJob(context,id,apiClient){_loading.default.show(),apiClient.getJSON(apiClient.getUrl("Sync/Jobs/"+id)).then(function(job){Emby.importModule("./modules/sync/sync.js").then(function(syncDialog){syncDialog.setJobValues(job,context),apiClient.ajax({url:apiClient.getUrl("Sync/Jobs/"+id),type:"POST",data:JSON.stringify(job),contentType:"application/json"}).then(function(){_servicelocator.appHost.supports("sync")&&require(["localsync"],function(localSync){localSync.sync()}),_loading.default.hide(),_dialoghelper.default.close(context)})})},function(error){_loading.default.hide(),_dialoghelper.default.close(context)})}function onItemsContainerUpgraded(){this.resume({refresh:!0})}function onOpened(){var itemsContainer=this.querySelector(".jobItems");itemsContainer.resume?onItemsContainerUpgraded.call(itemsContainer):_dom.default.addEventListener(itemsContainer,"upgraded",onItemsContainerUpgraded.bind(this),{once:!0})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={show:function(options){var apiClient=_connectionmanager.default.getApiClient(options.serverId),id=options.jobId,dlgElementOptions={removeOnClose:!0,scrollY:!1,autoFocus:!1},dlg=(_layoutmanager.default.tv?dlgElementOptions.size="fullscreen":dlgElementOptions.size="medium",_dialoghelper.default.createDialog(dlgElementOptions)),dlgElementOptions=(dlg.classList.add("formDialog"),""),itemsContainer=(dlgElementOptions=(dlgElementOptions=(dlgElementOptions+='
')+''+'

')+("convert"===options.mode?_globalize.default.translate("Convert"):_globalize.default.translate("Download"))+"

",_servicelocator.appHost.supports("externallinks")&&(dlgElementOptions+=''),dlgElementOptions=(dlgElementOptions=(dlgElementOptions=(dlgElementOptions=(dlgElementOptions+="
")+'
'+'
')+'
'+'
')+'
'+'
')+('"),dlg.innerHTML=dlgElementOptions=(dlgElementOptions=dlgElementOptions+"
"+"
")+"
"+"
",dlg.querySelector("form").addEventListener("submit",function(e){return saveJob(dlg,id,apiClient),e.preventDefault(),!1}),dlg.querySelector(".jobItems"));function onSyncJobMessage(e,apiClient,job){String(job.Id)===id&&itemsContainer.refreshItems()}return itemsContainer.fetchData=function(query){var id=this.id,apiClient=this.apiClient,serverId=apiClient.serverId(),mode=this.mode;return apiClient.getJSON(apiClient.getUrl("Sync/JobItems",Object.assign(query,{JobId:id,AddMetadata:!0}))).then(function(result){for(var items=result.Items,i=0,length=items.length;i',logoImage=null),names.push(apiClient)),item.Name&&(item.EpisodeTitle||item.IsSeries)&&(apiClient=item.Name,logoImage&&(apiClient=''+apiClient+'',logoImage=null),names.push(apiClient)),item.Name&&(apiClient=_itemmanager.default.getDisplayName(item,{}),logoImage&&(apiClient=''+apiClient+'',logoImage=null),names.push(apiClient)),focusPreviewTitle.innerHTML=names[0]||"",1'),cssClass=(this.view.insertAdjacentHTML("afterbegin",cssClass),this.view.querySelector(".focusPreviewContainer"));return this.fillFocusPreviewContainer(cssClass),cssClass},BaseTab.prototype.getFocusPreviewElement=function(){var elem=this._focusPreviewElement;return elem||(this._focusPreviewElement=elem=this.createFocusPreviewElement()),elem},BaseTab.prototype.fillFocusPreviewContainer=function(elem){var scrollDirection=this.scrollDirection(),readOnlyContentStyle=this.enablePushDownFocusPreview()?' style="padding:0 .75em;box-sizing-border-box;"':'"',itemsContainer=(elem.innerHTML='
\n

\n
\n
\n
\n
',elem.querySelector(".itemsContainer"));itemsContainer.fetchData=function(){var item=this._focusPreviewImageItem,items=[];return item&&items.push(item),Promise.resolve({Items:items,TotalRecordCount:items.length})}.bind(this),(itemsContainer.parentContainer=itemsContainer).getListOptions=function(){return{renderer:_cardbuilder.default,options:{shape:"auto",overlayText:!0,fields:[],action:"none",imageClass:"focusPreviewImageContainer",multiSelect:!1,contextMenu:!1,ratingButton:!1,playedButton:!1,cardClass:"focusPreviewImageCard",cardBoxClass:"focusPreviewImageCardBox",defaultIcon:!1,defaultBackground:!1,typeIndicator:!1,playedIndicator:!1,syncIndicator:!1,downloadButton:!1,timerIndicator:!1,randomDefaultBackground:!1,staticElement:!0,progress:!1,enableUserData:!1,draggable:!1,moreButton:!1,programIndicators:!1,keepImageAnimation:!0,preferLogo:"x"===this.scrollDirection(),paddedImage:!1,playQueueIndicator:!1},virtualScrollLayout:"vertical-grid"}}.bind(this),itemsContainer.waitForCustomElementUpgrade().then(function(){itemsContainer.resume({})})},BaseTab.prototype.autoFocus=function(options){options=Object.assign({skipIfNotEnabled:!0},options);var elem,view=this.view;return view&&(elem=_focusmanager.default.autoFocus(view,options))?elem:(!options.skipIfNotEnabled||_focusmanager.default.isAutoFocusEnabled())&&(elem=_maintabsmanager.default.focus())||null},BaseTab.prototype.showFocusPreview=function(item,itemElement){var elem=this.getFocusPreviewElement(item);item&&"AppCategory"!==item.Type?(fillFocusPreview(this,elem,item,itemElement),_backdrop.default.hasBackdrop()||fillBackdropWithRandomItem(this,0,item)):(fillFocusPreview(this,elem,{}),this.hideFocusPreviewElementUsingDisplay()&&elem.classList.add("hide"))},BaseTab.prototype.hideFocusPreviewElementUsingDisplay=function(){return!0},BaseTab.prototype.refetchItemForFocusPreview=function(){return!1},BaseTab.prototype.getFocusPreviewItem=function(element){return _shortcuts.default.getItemFromChildNode(element,!0)},BaseTab.prototype.enableFocusPreviewImage=function(){return"x"===this.scrollDirection()},BaseTab.prototype.onFocusIn=function(elem){this._focusedElement=elem,startSelectedInfoTimer(this)},BaseTab.prototype.onFocusOut=function(){_focusmanager.default.hasExclusiveFocusScope()||(this._focusedElement=null,startSelectedInfoTimer(this))},BaseTab.prototype.fillFocusPreviewIfNeeded=function(){if(this.enableFocusPreview()||this.enableBackdropsOnFocus()){var elem=document.activeElement||document.body;if(this.view.contains(elem)){var itemsContainer=elem.closest(".itemsContainer");if(itemsContainer&&elem.matches(itemsContainer.getItemSelector()))return}(elem=this.view.querySelector(".card"))&&elem.closest(".itemsContainer")&&fetchAndShowFocusPreview(this,elem)}},BaseTab.prototype.getRequestedItemFields=function(){var fields=this.requestedItemFields;return this.enableFocusPreview()&&(fields+=",Overview,CommunityRating,CriticRating,OfficialRating,PremiereDate,ProductionYear,Container"),fields},BaseTab.prototype.getRequestedImageTypes=function(){var fields="Primary,Backdrop,Thumb";return this.enableFocusPreview()&&(fields+=",Logo"),fields},BaseTab.prototype.enableBackdropsOnFocus=function(){return!!this.enableFocusPreview()||_appsettings.default.enableBackdrops()},BaseTab.prototype.addFocusBehavior=function(element){this._enableBackdrops=_layoutmanager.default.tv&&this.enableBackdropsOnFocus(),(this._enableBackdrops||this.enableFocusPreview())&&(this.boundonItemsContainerFocusIn||(this.boundonItemsContainerFocusIn=function(e){e=e.target,this.onFocusIn(e)}.bind(this)),this.boundonItemsContainerFocusOut||(this.boundonItemsContainerFocusOut=function(e){this.onFocusOut()}.bind(this)),_dom.default.addEventListener(element,"focus",this.boundonItemsContainerFocusIn,{capture:!0,passive:!0}),_dom.default.addEventListener(element,"focusout",this.boundonItemsContainerFocusOut,{passive:!0}))},BaseTab.prototype.hasFocus=function(){var activeElement=document.activeElement,view=this.view;return activeElement&&view&&view.contains(activeElement)},BaseTab.prototype.scrollToBeginning=function(){var scroller=this.scroller;scroller&&scroller.scrollToBeginning()},BaseTab.prototype.loadTemplate=function(){return Promise.resolve()},BaseTab.prototype.onTemplateLoaded=function(){findScroller(this),this.view.classList.add("focuscontainer-x");var focusContainerElem=this.getFocusContainerElement();focusContainerElem&&("x"!==this.scrollDirection()&&focusContainerElem.classList.add("focuscontainer-y","navout-up"),focusContainerElem.getNavOutDestination=getScrollerNavOutDestination)},BaseTab.prototype.getFocusContainerElement=function(){return this.scroller},BaseTab.prototype.getApiClient=function(){var _this$options2;return this.apiClient||((_this$options2=this.params.serverId||(null==(_this$options2=this.options)?void 0:_this$options2.serverId))?_connectionmanager.default.getApiClient(_this$options2):_connectionmanager.default.currentApiClient())},BaseTab.prototype.serverId=function(){var _this$apiClient;return(null==(_this$apiClient=this.apiClient)?void 0:_this$apiClient.serverId())||this.params.serverId||(null==(_this$apiClient=this.options)?void 0:_this$apiClient.serverId)||(null==(_this$apiClient=_connectionmanager.default.currentApiClient())?void 0:_this$apiClient.serverId())},BaseTab.prototype.onBeginResume=function(options){this.paused=!1;var scroller=this.scroller;scroller&&scroller.beginResume&&scroller.beginResume(options)},BaseTab.prototype.onResume=function(options){this.paused=!1;var scroller=this.scroller,scroller=(scroller&&scroller.resume&&scroller.resume(options),this.enableFocusPreview());(scroller||this._focusPreviewElement)&&(this.enablePushDownFocusPreview()?(this.scroller.setHeaderBindingEnabled(!scroller),this.scroller.getScrollSlider().classList.remove("scrollSliderX-withfocusPreview"),options=this.scroller.querySelector(".scrollSlider.padded-top-page")||this.scroller.querySelector(".padded-top-page"),scroller?(this.scroller.classList.add("tab-scroller-withfocuspreview"),options&&options.classList.add("tab-scroller-withfocuspreview-padded-top-page"),backgroundContainer.classList.add("backgroundContainer-withfocuspreview"),backdropContainer.classList.add("backdropContainer-withfocuspreview"),"rtl"===document.dir?backdropContainer.classList.add("backdropContainer-withfocuspreview-rtl"):backdropContainer.classList.remove("backdropContainer-withfocuspreview-rtl"),appHeader.classList.add("appHeader-withfocuspreview"),this.scroller.setFocusScroll("center")):(this.scroller.classList.remove("tab-scroller-withfocuspreview"),options&&options.classList.remove("tab-scroller-withfocuspreview-padded-top-page"),backgroundContainer.classList.remove("backgroundContainer-withfocuspreview"),backdropContainer.classList.remove("backdropContainer-withfocuspreview","backdropContainer-withfocuspreview-rtl"),appHeader.classList.remove("appHeader-withfocuspreview"))):scroller&&("x"===this.scrollDirection()?null!=(options=this.scroller)&&options.getScrollSlider().classList.add("scrollSliderX-withfocusPreview"):null!=(options=this.scroller)&&options.getScrollSlider().classList.remove("scrollSliderX-withfocusPreview")),!scroller)&&this._focusPreviewElement&&this.showFocusPreview(null)},BaseTab.prototype.onPause=function(){this.paused=!0;var scroller=this.scroller;scroller&&scroller.pause&&scroller.pause(),clearSelectedInfoTimer(this),(this.enableFocusPreview()||this._focusPreviewElement)&&(this._focusPreviewElement&&this.showFocusPreview(null),this.enablePushDownFocusPreview())&&(backgroundContainer.classList.remove("backgroundContainer-withfocuspreview"),backdropContainer.classList.remove("backdropContainer-withfocuspreview","backdropContainer-withfocuspreview-rtl"),appHeader.classList.remove("appHeader-withfocuspreview"))},BaseTab.prototype.destroy=function(){this.paused=null,this.scroller=null,this.view=null,this.params=null,this.options=null,this.apiClient=null,this._focusedElement=null,this._enableBackdrops=null,this._focusPreviewElement=null,clearSelectedInfoTimer(this)};_exports.default=BaseTab}); \ No newline at end of file diff --git a/modules/tabbedview/collectionstab.js b/modules/tabbedview/collectionstab.js new file mode 100644 index 0000000..a635dd1 --- /dev/null +++ b/modules/tabbedview/collectionstab.js @@ -0,0 +1 @@ +define(["exports","./itemstab.js"],function(_exports,_itemstab){function CollectionsTab(view,params,options){_itemstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(CollectionsTab.prototype,_itemstab.default.prototype),CollectionsTab.prototype.getSettingsKey=function(){return _itemstab.default.prototype.getSettingsKey.call(this)+"-collections"},CollectionsTab.prototype.getBaseQuery=function(){var query=_itemstab.default.prototype.getBaseQuery.apply(this,arguments);return this.options&&this.options.parentId&&(query.ParentId=this.options.parentId),query},CollectionsTab.prototype.getItemTypes=function(){return["BoxSet"]},CollectionsTab.prototype.loadTemplate=function(){return this.loadItemsTemplate()};_exports.default=CollectionsTab}); \ No newline at end of file diff --git a/modules/tabbedview/folderstab.js b/modules/tabbedview/folderstab.js new file mode 100644 index 0000000..53d5b99 --- /dev/null +++ b/modules/tabbedview/folderstab.js @@ -0,0 +1 @@ +define(["exports","./itemstab.js"],function(_exports,_itemstab){function FoldersTab(view,params,options){_itemstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(FoldersTab.prototype,_itemstab.default.prototype),FoldersTab.prototype.supportsAlphaPicker=function(){return!0},FoldersTab.prototype.isRecursiveQuery=function(){return!1},FoldersTab.prototype.getContext=function(){return"folders"},FoldersTab.prototype.getSettingsKey=function(){return _itemstab.default.prototype.getSettingsKey.call(this)+"-folders"},FoldersTab.prototype.getVisibleFilters=function(){return[]},FoldersTab.prototype.loadTemplate=function(){return this.loadItemsTemplate()};_exports.default=FoldersTab}); \ No newline at end of file diff --git a/modules/tabbedview/genrestab.js b/modules/tabbedview/genrestab.js new file mode 100644 index 0000000..cf17ac8 --- /dev/null +++ b/modules/tabbedview/genrestab.js @@ -0,0 +1 @@ +define(["exports","./itemstab.js"],function(_exports,_itemstab){function GenresTab(view,params,options){_itemstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(GenresTab.prototype,_itemstab.default.prototype),GenresTab.prototype.getSettingsKey=function(){return _itemstab.default.prototype.getSettingsKey.call(this)+"-genres"},GenresTab.prototype.getPrefixesApiClientMethodName=function(){return this.options&&this.options.prefixesApiClientMethod?this.options.prefixesApiClientMethod:_itemstab.default.prototype.getPrefixesApiClientMethodName.apply(this,arguments)},GenresTab.prototype.getApiClientQueryMethodName=function(){return"getGenres"},GenresTab.prototype.getSortMenuOptions=function(){return[]},GenresTab.prototype.loadTemplate=function(){return this.loadItemsTemplate()},GenresTab.prototype.getQueryIncludeItemTypes=function(){return this.options.queryIncludeItemTypes},GenresTab.prototype.getItemTypes=function(){return["Genre"]};_exports.default=GenresTab}); \ No newline at end of file diff --git a/modules/tabbedview/itemstab.js b/modules/tabbedview/itemstab.js new file mode 100644 index 0000000..647ad1f --- /dev/null +++ b/modules/tabbedview/itemstab.js @@ -0,0 +1 @@ +define(["exports","./basetab.js","./../emby-apiclient/connectionmanager.js","./listcontroller.js"],function(_exports,_basetab,_connectionmanager,_listcontroller){function ItemsTab(view,params,options){_basetab.default.apply(this,arguments),_listcontroller.default.apply(this,arguments),this.view=view,(this.params=params).serverId&&(this.apiClient=_connectionmanager.default.getApiClient(params.serverId))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(ItemsTab.prototype,_basetab.default.prototype),Object.assign(ItemsTab.prototype,_listcontroller.default.prototype),ItemsTab.prototype.onTemplateLoaded=function(){_basetab.default.prototype.onTemplateLoaded.apply(this,arguments);var params=this.params;this.initItemsContainer(),this.addFocusBehavior(this.itemsContainer),params.parentId&&!this.isGlobalQuery()&&this.itemsContainer.setAttribute("data-parentid",params.parentId),this.initButtons()},ItemsTab.prototype.getSettingsKey=function(){return this.params.parentId+"-1"},ItemsTab.prototype.isRecursiveQuery=function(){return!0},ItemsTab.prototype.onResume=function(options){_basetab.default.prototype.onResume.apply(this,arguments);var instance=this,autoFocus=options.autoFocus;return _listcontroller.default.prototype.resume.apply(this,arguments).then(function(result){autoFocus&&instance.autoFocus()})},ItemsTab.prototype.loadItemsTemplate=function(){var promise=require(["text!modules/tabbedview/itemstab.template.html"]);return"y"===this.scrollDirection()?promise:promise.then(function(responses){return function(html){return Emby.importModule("./modules/tabbedview/viewhelper.js").then(function(viewHelper){return viewHelper.convertTemplateToHorizontal(html)})}(responses[0]).then(function(html){return responses[0]=html,responses})})},ItemsTab.prototype.getFocusContainerElement=function(){var scroller=this.scroller;if(scroller===this.view){scroller=null==scroller?void 0:scroller.querySelector(".scrollSlider");if(scroller)return scroller}return _basetab.default.prototype.getFocusContainerElement.apply(this,arguments)},ItemsTab.prototype.refresh=function(options){var instance=this,autoFocus=options.autoFocus;this.itemsContainer.refreshItems(options).then(function(result){autoFocus&&instance.autoFocus()})},ItemsTab.prototype.onPause=function(){_basetab.default.prototype.onPause.apply(this,arguments),_listcontroller.default.prototype.pause.apply(this,arguments)},ItemsTab.prototype.destroy=function(){_basetab.default.prototype.destroy.apply(this,arguments),_listcontroller.default.prototype.destroy.apply(this,arguments),this.options=null};_exports.default=ItemsTab}); \ No newline at end of file diff --git a/modules/tabbedview/itemstab.template.html b/modules/tabbedview/itemstab.template.html new file mode 100644 index 0000000..2f94979 --- /dev/null +++ b/modules/tabbedview/itemstab.template.html @@ -0,0 +1,48 @@ +
+ +
+ +
+ +
+
+
+ + + + + + + + + + + +
+ +
+
\ No newline at end of file diff --git a/modules/tabbedview/listcontroller.js b/modules/tabbedview/listcontroller.js new file mode 100644 index 0000000..7645e51 --- /dev/null +++ b/modules/tabbedview/listcontroller.js @@ -0,0 +1 @@ +define(["exports","./../dom.js","./../focusmanager.js","./../common/globalize.js","./../common/usersettings/usersettings.js","./../common/itemmanager/itemmanager.js","./../layoutmanager.js","./../cardbuilder/cardbuilder.js","./../listview/listview.js","./../loading/loading.js","./../alphapicker/alphapicker.js","./../common/playback/playbackmanager.js","./../emby-apiclient/connectionmanager.js","./../maintabsmanager.js","./../shortcuts.js"],function(_exports,_dom,_focusmanager,_globalize,_usersettings,_itemmanager,_layoutmanager,_cardbuilder,_listview,_loading,_alphapicker,_playbackmanager,_connectionmanager,_maintabsmanager,_shortcuts){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var dataGrid,supportsCssVariables=CSS.supports("color","var(--fake-var)"),supportsCalc=CSS.supports("width","min(45.2%,calc(100% - .65em))"),supportsMin=CSS.supports("width","min(10em, 5vw)"),supportsCalcMin=supportsCalc&&supportsMin;function loadMultiSelect(){return _layoutmanager.default.tv?Promise.resolve(null):Emby.importModule("./modules/multiselect/multiselect.js")}function showActionSheet(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}function getApiClient(instance){return instance.getApiClient?instance.getApiClient():instance.apiClient||((instance=instance.params.serverId)?_connectionmanager.default.getApiClient(instance):_connectionmanager.default.currentApiClient())}function trySelectValue(instance,scroller,view,value,focus){var sortValues=instance.getSortValues();!value||"#"===value&&"Ascending"===sortValues.sortOrder?instance.itemsContainer.scrollToIndex(0,{forceInstantScroll:!1},focus):instance.getItems({Limit:0}).then(function(totalResult){var sortBy,query;totalResult.TotalRecordCount<=1?instance.itemsContainer.scrollToIndex(0,{forceInstantScroll:!1},focus):"#"===value&&"Descending"===sortValues.sortOrder?instance.itemsContainer.scrollToIndex(totalResult.TotalRecordCount-1,{forceInstantScroll:!1},focus):(query={Limit:0},(sortBy=sortValues.sortBy||"").startsWith("AlbumArtist")?query.AlbumArtistStartsWithOrGreater=value:sortBy.startsWith("Artist")?query.ArtistStartsWithOrGreater=value:query.NameStartsWithOrGreater=value,instance.getItems(query).then(function(result){result="Descending"===sortValues.sortOrder?result.TotalRecordCount:Math.max(totalResult.TotalRecordCount-result.TotalRecordCount,0);instance.itemsContainer.scrollToIndex(result,{forceInstantScroll:!1},focus)}))})}function refreshAfterSettingsChange(instance){instance.resetRandomSeed(),instance.itemsContainer.refreshItems()}function showViewSettingsMenu(e){var instance=this;Emby.importModule("./modules/viewsettings/viewsettings.js").then(function(ViewSettings){var isGrid="datagrid"===instance.getViewSettings().imageType,scrollX="x"===instance.scrollDirection();(new ViewSettings).show({settingsKey:instance.getSettingsKey(),settings:instance.getViewSettings(),visibleSettings:instance.getVisibleViewSettings(),availableFields:scrollX?[]:instance.getAvailableFields(),viewOptions:instance.getAvailableViewOptions(),positionTo:e.target.closest("button"),positionY:"bottom",onChange:function(){var defaultSortBy,sorting,viewSettings=instance.getViewSettings();isGrid&&"datagrid"!==viewSettings.imageType&&(defaultSortBy=null==(sorting=instance.getDefaultSorting())?void 0:sorting.sortBy,sorting=null==sorting?void 0:sorting.sortOrder,instance.setSortValueInternal(defaultSortBy,sorting)),isGrid="datagrid"===viewSettings.imageType,refreshAfterSettingsChange(instance)}})})}function showSortMenu(e){var instance=this,options=instance.getSortMenuOptions();!function(instance,options){for(var currentValues=instance.getSortValues(),i=0,length=options.length;i"+_globalize.default.translate("NoItemsMatchingFound")+'",Promise.resolve(searchTerm)):Promise.resolve(_globalize.default.translate("NoItemsFound"))},ListController.prototype.setEmptyListState=function(){this.getEmptyListMessage().then(function(html){html='
'+html,this.itemsContainer.setOtherInnerHTML(html+="
"),destroyHeader(this),(html=this.itemsContainer.querySelector(".btnClearFilters"))&&_dom.default.addEventListener(html,"click",this.clearFilters.bind(this),{})}.bind(this))},ListController.prototype.initAlphaNumericShortcuts=function(){var instance;this.enableAlphaNumericShortcuts&&!this.alphaNumericShortcuts&&(instance=this,Emby.importModule("./modules/alphanumericshortcuts/alphanumericshortcuts.js").then(function(AlphaNumericShortcuts){instance.alphaNumericShortcuts=new AlphaNumericShortcuts({itemsContainer:instance.itemsContainer}),instance.alphaNumericShortcuts.onAlphaNumericValueEntered=function(value){trySelectValue(this,this.scroller,this.view,value,!0)}.bind(instance)}))},ListController.prototype.supportsSorting=function(){return 0'}function loadSection(instance,elem,section){var bannerClass,viewScrollX="x"===instance.scrollDirection(),title=_textencoding.default.htmlEncode(section.Name),viewType=section.ViewType||"cards",sectionScrollX=(viewScrollX&&"buttons"===viewType&&(section.ViewType=viewType="cards",section.ListOptions.fields=[],section.ListOptions.lines=null,section.ListOptions.centerText=!0,section.ListOptions.sideFooter=!1,section.ListOptions.smallSideFooter=!1,section.CardSizeOffset=-2),!viewScrollX&&"Vertical"!==section.ScrollDirection),listOptions=("onnow"===section.SectionType&&!function(instance,elem){var html="",instance=instance.getApiClient(),html=(html=(html=(html=(html=(html=(html=html+'
'+'
')+('

'+_globalize.default.translate("LiveTV")+"

")+"
")+getHorizontalScrollerStartTag(!1)+'"+"
")}(instance,elem),section.ListOptions||{}),sideFooter="cards"===viewType&&listOptions.sideFooter&&!listOptions.smallSideFooter||"list"===viewType&§ionScrollX,smallSideFooter="cards"===viewType&&listOptions.sideFooter&&listOptions.smallSideFooter||"buttons"===viewType,headerButtons=(!(sideFooter||smallSideFooter||listOptions.cardLayout)||viewScrollX||elem.classList.add("verticalSection-extrabottompadding"),!_layoutmanager.default.tv&§ion.HeaderButtons||[]),sectionTitleContainerClass="sectionTitleContainer",isPlainContent="text"===viewType||"content"===viewType,focusableTypeAttribute=(sectionTitleContainerClass+="list"===viewType&§ionScrollX?" sectionTitleContainer-wrappedlistview":" sectionTitleContainer-cards",viewScrollX||(isPlainContent?elem.classList.add("padded-left","padded-left-page","padded-right"):sectionTitleContainerClass+=" padded-left padded-left-page padded-right"),""),sectionHref=section.Href,html=(sectionHref&&!viewScrollX&&instance.enableFocusPreview&&instance.enableFocusPreview()&&(sectionHref=null),!(title&§ionHref||headerButtons.length)||viewScrollX||(sectionTitleContainerClass+=" focusable",focusableTypeAttribute=' data-focusabletype="nearest"'),""),sectionTitleClass="sectionTitle sectionTitle-cards";if(viewScrollX&&(sectionTitleClass+=" sectionTitle-cards-horizontal"),"text"===viewType){switch(null==(_section$TextInfo=section.TextInfo)?void 0:_section$TextInfo.Level){case"Error":bannerClass="errorBanner";break;case"Warning":bannerClass="warningBanner";break;default:bannerClass="infoBanner"}html+='
'}var _section$TextInfo=title||headerButtons.length;_section$TextInfo&&(html+='
"),title&&(sectionHref&&(html=(html+='')+'

'+title+"

",titleRendered=!0),titleRendered||(html+='

'+title+"

"));for(var i=0,length=headerButtons.length;i'+button.Icon+""+_textencoding.default.htmlEncode(button.Name||"")+"":html+='":button.Href?html+=''+button.Icon+"":html+='"}_section$TextInfo&&(html+="
"),section.Subtitle&&(html+='

'+_textencoding.default.htmlEncode(section.Subtitle)+"

");var titleRendered,sectionTitleContainerClass=!isPlainContent,contentButtons=("content"!==viewType&&("text"===viewType?(html+='
',html=title?(html+='
')+_textencoding.default.htmlEncode((null==(focusableTypeAttribute=section.TextInfo)?void 0:focusableTypeAttribute.Text)||"")+"
":(html+='

')+_textencoding.default.htmlEncode((null==(sectionHref=section.TextInfo)?void 0:sectionHref.Text)||"")+"

",html+="
"):(titleRendered=section.Monitor||[],sectionTitleClass=section.MonitorIds||[],_section$TextInfo=titleRendered.length?' data-monitor="'+titleRendered.join(",")+'"':"",isPlainContent=sectionTitleClass.length?' data-monitorids="'+sectionTitleClass.join(",")+'"':"",title=section.RefreshInterval?' data-refreshinterval="'+section.RefreshInterval+'"':"",focusableTypeAttribute=null!=section.ImmediateUpdate?' data-immediateupdate="'+section.ImmediateUpdate+'"':"",titleRendered=null!=(sectionHref=section.QueryOptions)&§ionHref.ParentId?' data-parentid="'+section.QueryOptions.ParentId+'"':"",sectionTitleClass="itemsContainer",viewScrollX||(sectionTitleClass+=" focuscontainer-x"),viewScrollX&&"spotlight"===section.SectionType&&null!=(sectionHref=section.SpotlightButtons)&§ionHref.length&&(sectionTitleClass+=" spotlightItemsContainer"),sectionHref=!listOptions.autoWidth&&!viewScrollX,listOptions.autoWidth||(smallSideFooter?sectionTitleClass+=" itemsContainer-sideFooters itemsContainer-smallSideFooters":sideFooter&&(sectionTitleClass+=" itemsContainer-sideFooters")),sectionScrollX?(!_layoutmanager.default.tv&§ion.FinePointerWrap&&(sectionTitleClass+=" itemsContainer-finepointerwrap",sectionHref=!1),html+=getHorizontalScrollerStartTag()+'
')),"text"===viewType&&(html+="
"),viewScrollX&&null!=(sectionScrollX=section.SpotlightButtons)&§ionScrollX.length&&(html+='
'),section.ContentButtons||[]);if(contentButtons.length){var hasContentButtons=!0,focusableTypeAttribute="contentButtons";section.CenterContentButtons&&(focusableTypeAttribute+=" justify-content-center"),html+="';for(var _i=0,_length=contentButtons.length;_i<_length;_i++){var _button=contentButtons[_i];_button.Href?html+='"}html+=""}return elem.innerHTML=html,hasContentButtons&&elem.querySelector(".contentButtons").addEventListener("click",instance.onContentButtonClicked.bind({instance:instance,section:section})),viewScrollX&&null!=(sectionHref=section.SpotlightButtons)&§ionHref.length&&((_section$TextInfo=elem.querySelector(".spotlightButtonsItemsContainer")).fetchData=fetchSpotlightButtonItems.bind({instance:instance,section:section}),_section$TextInfo.getListOptions=fetchSpotlightButtonListOptions.bind({instance:instance,section:section}),(_section$TextInfo.parentContainer=_section$TextInfo).addEventListener("action-null",instance.onSpotlightButtonsItemsContainerAction.bind({instance:instance,section:section}))),sectionTitleContainerClass?((isPlainContent=elem.querySelector(".itemsContainer")).fetchData=section.fetchData,isPlainContent.getListOptions=section.getListOptions,isPlainContent.onRefreshing=instance.onSectionRefreshing.bind({instance:instance,section:section,elem:elem}),isPlainContent.afterRefresh=instance.afterSectionRefreshed.bind({instance:instance,section:section,elem:elem}),isPlainContent.parentContainer=elem,sideFooter||smallSideFooter?isPlainContent.removeAttribute("data-cardsizeoffset"):section.CardSizeOffset&&isPlainContent.setAttribute("data-cardsizeoffset",section.CardSizeOffset.toString()),instance.addFocusBehavior&&instance.addFocusBehavior(isPlainContent),"custom"===listOptions.action&&isPlainContent.addEventListener("action-null",instance.onItemsContainerAction.bind({instance:instance,section:section})),isPlainContent.waitForCustomElementUpgrade()):(elem.classList.remove("hide"),Promise.resolve())}function fetchSpotlightButtonItems(){var section=this.section;return Promise.resolve(section.SpotlightButtons)}function fetchSpotlightButtonListOptions(){var section=this.section;return{renderer:_cardbuilder.default,options:Object.assign({shape:"fourThree",overlayText:!0,multiSelect:!1,fields:["Name"],action:"custom",scalable:!0,cardClass:"spotlightButtonCard-horizontal",cardContentClass:"spotlightButtonCardContent-horizontal",context:section.CollectionType,horizontal:!0,cardBoxClass:"cardBox-horizontalgrid"},{}),virtualScrollLayout:null}}function fetchSections(instance,options){return instance.fetchSections(options).catch(function(errorResponse){return console.log("Error fetching sections: "+errorResponse),Emby.importModule("./modules/common/responsehelper.js").then(function(responseHelper){return responseHelper.getErrorInfo(errorResponse,{enableDefaultTitle:!1}).then(function(errorInfo){return[{Id:"error",Name:errorInfo.title,ScrollDirection:"Vertical",ViewType:"text",TextInfo:{Text:errorInfo.html,Level:"Error"},ContentButtons:[{Name:_globalize.default.translate("Retry"),Icon:"",OnClick:instance.refreshSections.bind(instance)}]}]})})})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,SectionsController.prototype.getSectionsContainer=function(){return this.view.querySelector(".sections")||this.view},SectionsController.prototype.fetchSections=function(options){return Promise.resolve([])},SectionsController.prototype.onItemsContainerAction=function(e){var e=e.target,itemsContainer=e.closest(".itemsContainer");itemsContainer&&(e=e.closest(itemsContainer.getItemSelector()))&&this.instance.onItemCustomAction({section:this.section,item:itemsContainer.getItemFromElement(e),itemElement:e})},SectionsController.prototype.onItemCustomAction=function(options){},SectionsController.prototype.onSpotlightButtonsItemsContainerAction=function(e){var e=e.target,itemsContainer=e.closest(".itemsContainer");itemsContainer&&(e=e.closest(itemsContainer.getItemSelector()))&&this.instance.onSpotlightButtonCustomAction({section:this.section,item:itemsContainer.getItemFromElement(e),itemElement:e})},SectionsController.prototype.onSpotlightButtonCustomAction=function(options){},SectionsController.prototype.onContentButtonClicked=function(e){var button=e.target.closest(".contentButton"),section=this.section;button&&(button=button.getAttribute("data-buttonindex"))&&(button=parseInt(button),section=section.ContentButtons[button].OnClick)&§ion(e)},SectionsController.prototype.onSectionRefreshing=function(result){var instance=this.instance,section=this.section,elem=this.elem;section.PremiumFeature&&(result.Items||result).length&&_registrationservices.default.validateFeature(section.PremiumFeature,{viewOnly:!0,showDialog:!1}).then(function(){var _elem$querySelector;null!=(_elem$querySelector=elem.querySelector(".sectionPremiereContainer"))&&_elem$querySelector.remove(),elem.querySelector(".itemsContainer").classList.remove("hide")},function(){var html,itemsContainer=elem.querySelector(".itemsContainer");itemsContainer.classList.add("hide"),elem.querySelector(".sectionPremiereContainer")||(html=(html=(html="")+'

'+section.PremiumMessage+'

"+"
"),function(instance,elem,featureCode){(elem=elem.querySelector(".btnUnlock"))&&elem.addEventListener("click",function(e){_registrationservices.default.validateFeature(featureCode,{viewOnly:!0}).then(function(){instance.onResume({refresh:!0,autoFocus:!0})})})}(instance,elem,section.PremiumFeature))})},SectionsController.prototype.afterSectionRefreshed=function(result){var section=this.section,elem=this.elem;"onnow"===section.SectionType&§ion.ShowLiveTVButtons&&(section=elem.parentNode.querySelector(".liveTVButtonsSection"))&&(elem.classList.contains("hide")?section.classList.add("hide"):section.classList.remove("hide"))},SectionsController.prototype.fetchSectionItems=function(query){var apiClient,queryOptions,sectionType,fields,listOptions,viewScrollX,instance=this.instance,section=this.section;return section.Items?Promise.resolve(section.Items):(listOptions=section.ListOptions,viewScrollX="x"===instance.scrollDirection(),apiClient=instance.getApiClient(),queryOptions=section.QueryOptions,sectionType=section.SectionType,fields=instance.getRequestedItemFields()+",PrimaryImageAspectRatio",listOptions.fields.includes("ProductionYear")&&(fields+=",ProductionYear","Series"===queryOptions.IncludeItemTypes)&&(fields+=",Status,EndDate"),listOptions=Object.assign({SortBy:"Episode"===queryOptions.IncludeItemTypes?"SeriesSortName,ParentIndexNumber,IndexNumber,SortName":"SortName",SortOrder:"Ascending",Filters:queryOptions.Filters,Fields:fields,CollectionTypes:queryOptions.CollectionTypes,ImageTypeLimit:1,EnableImageTypes:instance.getRequestedImageTypes()},queryOptions||{},query||{}),viewScrollX&&!1!==section.LimitItems&&(listOptions.Limit=Math.min(listOptions.Limit||9,9)),"TvChannel"===queryOptions.IncludeItemTypes&&(listOptions.SortBy="ChannelNumber,SortName",listOptions.Fields+=",CurrentProgram"),viewScrollX=apiClient.getCurrentUserId(),"latestmedia"===sectionType?apiClient.getLatestItems({Limit:listOptions.Limit||24,Fields:fields,ImageTypeLimit:1,EnableImageTypes:instance.getRequestedImageTypes(),GroupItems:!0,UserId:viewScrollX,ParentId:null==queryOptions?void 0:queryOptions.ParentId}):"resume"===sectionType?apiClient.getResumableItems(viewScrollX,Object.assign({Limit:listOptions.Limit,IncludeItemTypes:queryOptions.IncludeItemTypes,Fields:fields,ImageTypeLimit:1,EnableImageTypes:instance.getRequestedImageTypes(),MediaTypes:"Video",ParentId:queryOptions.ParentId},query||{})):"resumeaudio"===sectionType?apiClient.getResumableItems(viewScrollX,Object.assign({Limit:listOptions.Limit,IncludeItemTypes:queryOptions.IncludeItemTypes,Fields:fields,ImageTypeLimit:1,EnableImageTypes:instance.getRequestedImageTypes(),MediaTypes:"Audio",ParentId:queryOptions.ParentId},query||{})):"recordings"===sectionType?apiClient.getLiveTvRecordings(Object.assign({Fields:fields,ImageTypeLimit:1,EnableImageTypes:instance.getRequestedImageTypes(),UserId:viewScrollX},queryOptions||{},query||{})):"artists"===sectionType?apiClient.getArtists(viewScrollX,listOptions):"people"===sectionType?apiClient.getPeople(viewScrollX,listOptions):"onnow"===sectionType?(listOptions.Fields+=",ProgramPrimaryImageAspectRatio",listOptions.IsAiring=!0,listOptions.SortBy="ChannelNumber,SortName",listOptions.EnableUserData=!1,listOptions.UserId=viewScrollX,_usersettings.default.addLiveTvChannelSortingToQuery(listOptions,_globalize.default),apiClient.getLiveTvChannels(listOptions)):"livetvtags"===sectionType?(listOptions.Fields+=",ChannelImageIfNoImage",listOptions.Recursive=!0,listOptions.SortBy="SortName",listOptions.UserId=viewScrollX,apiClient.getLiveTvChannelTags(listOptions)):apiClient.getItems(viewScrollX,listOptions))},SectionsController.prototype.getSectionListOptions=function(items){var instance=this.instance,section=this.section,listOptions=section.ListOptions,instance="x"===instance.scrollDirection(),sectionScrollX=!instance&&"Vertical"!==section.ScrollDirection;return"list"===section.ViewType&§ionScrollX?{renderer:_listview.default,options:{action:"playallfromhere",verticalWrap:!0,mediaInfo:!1,enableSideMediaInfo:!1,enableUserDataButtons:!1,fields:["Name","ParentName"]},virtualScrollLayout:sectionScrollX?"horizontal-grid":null,commandOptions:section.CommandOptions,indexOnStartItemId:section.IndexOnStartItemId}:{renderer:_cardbuilder.default,options:Object.assign({preferThumb:listOptions.preferThumb,shape:"autooverflow",sideFooter:"sidefooters"===section.ViewType,centerText:listOptions.centerText,fields:listOptions.fields,scalable:!0,action:listOptions.action,channelNumberFirst:!0,focusTransformTitleAdjust:!0,programIndicators:listOptions.programIndicators,context:section.CollectionType,horizontalGrid:instance||null},listOptions||{}),virtualScrollLayout:sectionScrollX?"horizontal-grid":null,commandOptions:section.CommandOptions,indexOnStartItemId:section.IndexOnStartItemId}},SectionsController.prototype.refreshSections=function(){return this.sectionsRendered=!1,this.onResume({refresh:!0,autoFocus:!0})},SectionsController.prototype.getBottomHtml=function(){return"x"===this.scrollDirection()?"":'
'},SectionsController.prototype.loadSections=function(options){var instance=this;return instance.needsSectionsRefresh=!1,_loading.default.show(),fetchSections(instance,options).then(function(sections){for(var elem=instance.sectionsContainer,viewScrollX="x"===instance.scrollDirection(),sectionBaseClass=(viewScrollX?(elem.classList.add("flex","flex-direction-row","horizontalSections"),elem.classList.remove("flex-direction-column"),instance.enableFocusPreview()&&elem.classList.add("scrollSliderX-withfocusPreview"),elem.parentNode.classList.add("padded-left","padded-right","padded-left-page")):elem.classList.add("verticalSections"),viewScrollX?"horizontalSection":"verticalSection"),sectionClass=viewScrollX?"horizontalSection focuscontainer-y navout-up":"verticalSection verticalSection-cards",html="",i=0,length=sections.length;i';html+=instance.getBottomHtml(),elem.innerHTML=html;for(var sectionElements=elem.querySelectorAll("."+sectionBaseClass),sectionPromises=[],_i2=0,_length2=sections.length;_i2<_length2;_i2++){var sectionElem=sectionElements[_i2],section=sections[_i2];section.fetchData||(section.fetchData=instance.fetchSectionItems.bind({instance:instance,section:section})),section.getListOptions||(section.getListOptions=instance.getSectionListOptions.bind({instance:instance,section:section})),sectionPromises.push(loadSection(instance,sectionElem,section))}return Promise.all(sectionPromises).then(function(){instance.sectionsRendered=!0})})},SectionsController.prototype.onResume=function(options){var promise,instance=this;return instance.needsSectionsRefresh&&((options=options||{}).refreshSections=!0),null!=options&&options.refreshSections&&(instance.sectionsRendered=null),instance.sectionsRendered||((options=options||{}).refresh=!0,promise=instance.loadSections(options)),(promise=promise||Promise.resolve()).then(function(){for(var elems=instance.sectionsContainer.querySelectorAll(".itemsContainer"),promises=[],i=0,length=elems.length;i + +
+
+ diff --git a/modules/tabbedview/seriestab.js b/modules/tabbedview/seriestab.js new file mode 100644 index 0000000..b356d58 --- /dev/null +++ b/modules/tabbedview/seriestab.js @@ -0,0 +1 @@ +define(["exports","./itemstab.js"],function(_exports,_itemstab){function SeriesTab(view,params,options){_itemstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(SeriesTab.prototype,_itemstab.default.prototype),SeriesTab.prototype.getSettingsKey=function(){return _itemstab.default.prototype.getSettingsKey.call(this)+"-series"},SeriesTab.prototype.getItemTypes=function(){return["Series"]},SeriesTab.prototype.loadTemplate=function(){return this.loadItemsTemplate()};_exports.default=SeriesTab}); \ No newline at end of file diff --git a/modules/tabbedview/tabbedview.js b/modules/tabbedview/tabbedview.js new file mode 100644 index 0000000..ddf8710 --- /dev/null +++ b/modules/tabbedview/tabbedview.js @@ -0,0 +1 @@ +define(["exports","./../backdrop/backdrop.js","./../common/globalize.js","./../layoutmanager.js","./../maintabsmanager.js","./../appheader/appheader.js","./../common/usersettings/usersettings.js","./../emby-apiclient/connectionmanager.js","./../viewmanager/baseview.js","./../emby-elements/emby-tabs/emby-tabs.js","./../approuter.js","./../common/querystring.js","./../common/appsettings.js","./../loading/loading.js","../focusmanager.js","./../common/textencoding.js"],function(_exports,_backdrop,_globalize,_layoutmanager,_maintabsmanager,_appheader,_usersettings,_connectionmanager,_baseview,_embyTabs,_approuter,_querystring,_appsettings,_loading,_focusmanager,_textencoding){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var deviceMemory,platform,cores,enableTabAnimation=!((cores=navigator.hardwareConcurrency||4)<4||(2400<=(screen.width||screen.availWidth||0)||1400<=(screen.height||screen.availHeight||0))&&cores<6||(deviceMemory=navigator.deviceMemory||2)<2||(platform=(navigator.platform||"").toLowerCase(),"android"===globalThis.appMode&&(cores<4||deviceMemory<2||platform.includes("armv7"))));function onDataFetchError(instance,controller,response,signal){_loading.default.hide(),Emby.importModule("./modules/common/responsehelper.js").then(function(responseHelper){return responseHelper.getErrorInfo(response,{enableDefaultTitle:!1}).then(function(errorInfo){var errorOwner=controller||instance,errorElement=errorOwner._errorElement,html=(errorElement||((errorElement=document.createElement("div")).classList.add("padded-left","padded-left-page","padded-right","padded-top"),errorOwner===instance&&errorElement.classList.add("padded-top-page"),html="",html=(html+='

")+"
"+"
",(html=(null==(html=errorOwner.scroller)?void 0:html.getScrollSlider())||errorOwner.view).insertBefore(errorElement,html.firstChild),(errorOwner._errorElement=errorElement).querySelector(".btnRetryData").addEventListener("click",function(){var currentTabController=this.currentTabController,resumeOptions=(_loading.default.show(),{refresh:!0,autoFocus:!0});currentTabController?resumeController(this,currentTabController,resumeOptions,!0):(this._errorElement&&this._errorElement.classList.add("hide"),this.onBeginResume(resumeOptions),this.onResume(resumeOptions))}.bind(instance))),errorInfo.title||errorInfo.html),errorOwner=errorInfo.title?errorInfo.html:null,errorInfo=errorElement.querySelector(".errorTitle"),html=(errorInfo.innerHTML=_textencoding.default.htmlEncode(html||""),html?errorInfo.classList.remove("hide"):errorInfo.classList.add("hide"),errorElement.querySelector(".errorMessage"));return html.innerHTML=errorOwner||"",errorOwner?html.classList.remove("hide"):html.classList.add("hide"),null!=signal&&signal.throwIfAborted(),errorElement.classList.remove("hide"),_focusmanager.default.focus(errorElement.querySelector(".btnRetryData")),Promise.reject(response)})})}function resumeController(instance,controller,options,showError){return controller._errorElement&&!controller._errorElement.classList.contains("hide")&&(controller._errorElement.classList.add("hide"),(options=options||{}).refresh=!0),(controller.onResume(options)||Promise.resolve()).catch(function(errorResponse){var _options$signal;return null!=(_options$signal=options.signal)&&_options$signal.throwIfAborted(),showError?onDataFetchError(instance,controller,errorResponse,options.signal):Promise.reject(errorResponse)})}function loadTab(instance,index,previousIndex,previousTabController){instance.getTabController(index).then(function(controller){var autoFocus=null==previousIndex;!autoFocus&&_layoutmanager.default.tv&&previousTabController&&previousTabController.view&&!_appheader.default.hasFocus()&&(autoFocus=!0),resumeController(instance,controller,{autoFocus:autoFocus,refresh:!controller.refreshed},!0),controller.refreshed=!0,null!=previousIndex&&_layoutmanager.default.tv&&enableTabAnimation&&controller.view&&controller.view.animate&&(indexoption{--theme-text-color-alpha:1;--theme-text-color-lightness:0%;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.emby-select:focus-visible{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important}.emby-textarea-label:focus-within>.emby-textarea-labeltext,.selectLabel:focus-within>.selectLabelText,.inputLabelFocused{color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.sliderLabel:focus-within>.sliderLabelText{color:var(--theme-accent-text-color)}.emby-collapse-expandIcon,.accentText{color:var(--theme-accent-text-color)}.button-link,.color-accent{color:var(--theme-accent-text-color)}.button-link-color-inherit{color:inherit}.paperList,.visualCardBox{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.listItems-border{border:var(--line-size) solid var(--line-background)}.collapseContent{border:var(--line-size) solid var(--line-background)}.secondaryText,.fieldDescription,.cardText-secondary,.legendDescription{--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.actionsheetDivider{background:var(--line-background)}.selectionCommandsPanel{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 15%));--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.upNextDialog-countdownText{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.navMenuOption-selected .listItem-content{color:#fff}.navMenuOption-selected .listItem-content::before{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)}.listItem-content-bg-background{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}@media (pointer:fine){.listItem-hoverable:hover .listItem-content-bg{background-color:transparent}.listItem-hoverable:hover .listItem-content-bg::before{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.2)}}.navMenuOption-selected .listItem-content-bg{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)!important}.navMenuOption-selected .listItem-content-bg::before{background-color:transparent!important}.listItem-border::after{background:var(--line-background)}.listItem:focus-visible .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.listItem-tv:focus .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-expandout:focus .listItem-content::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-tv:focus .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.listItem:focus-visible .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.dragClone .listItem-content{background-color:transparent!important}.dragClone .listItem-content::before{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),1)!important}.progressring-spiner{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.mediaInfoText{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.starIcon{color:#cb272a}.mediaInfoTimerIcon{color:#cb272a}.emby-input,.emby-textarea{color:inherit;background:hsla(var(--input-background-hue),var(--input-background-saturation),var(--input-background-lightness),var(--button-background-alpha));border:var(--line-size) solid var(--line-background)}.emby-input:focus-visible,.emby-textarea:focus-visible{box-shadow:0 0 0 .2rem hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.6);border-color:transparent}.emby-checkbox+.checkboxLabel::before{border-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.6)}.chkCardSelect+.checkboxLabel::before{border-color:transparent;background:rgba(255,255,255,.4)}.chkItemSelect-selecthint+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%))}.emby-checkbox:checked+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-checkbox-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-checkbox:checked+.checkboxLabel+.emby-checkbox-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.toggleSwitch{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) - 11.7%))}.emby-toggle:checked~.toggleSwitch{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio-inner-circle{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio:focus-visible+.radioButtonLabel{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:var(--theme-accent-text-color)}.emby-radio-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-radio:checked~.emby-radio-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.itemProgressBar{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.2)}.itemProgressBarForeground{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.itemProgressBarForeground-recording{background-color:#cb272a}.countIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.playedIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-tab-button-active{background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) - 62%),.5);--theme-text-color-lightness:100%;--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-tab-button-active.videoosd-tab-button{background:0 0}.emby-tab-button-active.videoosd-tab-button::before{background:#666}.emby-button:focus-visible{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}@media not all and (min-width:50em){.detailButton-autotext:focus-visible{--theme-text-color-lightness:inherit;--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}}.button-link:focus-visible{background:0 0}.button-link:focus-visible::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.firstChannelCell-withscroll{background:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))!important}.channelCellInner{background-color:#aebec3}.programCellInner{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.programCellInner-sports{background:rgba(10,79,95,.7);color:#fff}.programCellInner-movie{background:rgba(86,45,121,.7);color:#fff}.programCellInner-kids{background:rgba(64,125,154,.7);color:#fff}.programCellInner-news{background:rgba(100,125,76,.7);color:#fff}.guide-currentTimeIndicatorDot{border-inline-end-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.channelCell:focus-visible>.channelCellInner,.programCell:focus-visible>.programCellInner{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.guide-programTextIcon{color:#1e1e1e;background:#555}.channelCell:focus-visible .guideChannelText{color:#fff}.infoBanner{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.errorBanner{background:#cc3232;color:rgba(255,255,255,.9)}.warningBanner{background:rgba(255,69,0,.1);color:#ff4500}.ratingbutton-icon-withrating{color:#c33!important}.downloadbutton-icon-on{color:#4285f4}.downloadbutton-icon-complete{color:#4285f4}.playstatebutton-icon-played{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.toggleButtonIcon-active{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5);color:#fff}.card:focus .cardBox-sideFooter-f{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))!important}.card:focus-visible .cardBox-sideFooter{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))!important}.card:focus .cardContent-bxsborder::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.card:focus-visible .cardContent-bxsborder-fv::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.cardContent-button{background-color:transparent}.cardContent-background,.defaultCardBackground{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.card-focustransform:focus .cardContent-background{box-shadow:0 .278em .975em rgba(0,0,0,.5)}.cardImageContainer-sideFooter{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.04)}.listItemOverlayButtonIcon,.dataGridItemOverlayButton-imagehover:hover{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-scroller::-webkit-scrollbar-track-piece{background-color:transparent}.emby-scroller::-webkit-scrollbar-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5)}.emby-slider-background{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.3)}.emby-slider{color:inherit}.emby-slider-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.emby-slider-background-upper{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.35)}.emby-slider-background-upper-accent{background:#cb272a}.emby-slider-background-lower{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--slider-lower-opacity))}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.emby-slider-background-backdropfilter{-webkit-backdrop-filter:blur(4em) saturate(1.8);backdrop-filter:blur(4em) saturate(1.8)}}.recordingIcon-active{color:#c33!important}.textActionButton.dragging{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.dragging-over.full-drop-target .listItem-content{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;color:#fff!important}.dragging-over-top::before,.dragging-over-bottom::after,.dragging-over-left::before,.dragging-over-right::after{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.checkboxLabel-lockedfield-embeddedintofield{border-inline-start-color:var(--line-background)!important;border-top-width:var(--line-size)!important;border-bottom-width:var(--line-size)!important}.checkboxLabel-lockedfield{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.chkLockedField:checked+span{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.chkLockedField:focus-visible+span{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.tabs-viewmenubar-backgroundcontainer{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.tabs-viewmenubar:focus-within .emby-tab-button-active:not(:focus){background:0 0;color:inherit}.dockedtabs{border-top:var(--line-size) solid var(--line-background)}.dockedtabs-tab-button{background:0 0!important}.dockedtabs-tab-button.emby-tab-button:focus{color:inherit}.dockedtabs-tab-button.emby-tab-button-active{color:var(--theme-accent-text-color)!important}.searchFieldsBottomBorder{border-bottom:var(--line-size) solid var(--line-background)}.activeSession-bottomsection:nth-child(odd){background:hsla(var(--card-background-hue),var(--card-background-saturation),calc(var(--card-background-lightness) - 5%),.5)}.dataGridHeader-content-inner{background:#aebec3}.dataGridItem:nth-child(2n){background:rgba(0,0,0,.1)}@media (pointer:fine){.dataGridItem-hoverable:hover,.dataGridItem-hoverable:hover .chkItemSelectContainer{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.2)}}.dataGridItem-focusscale:focus{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.dataGridItem-button:focus-visible{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.errorColor{color:#ea3841}.warningColor{color:#ff8c00}.listItem-syncStatusIcon{background:#c5c5c7;color:hsl(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness))}.settingsDescriptionContent-logo{fill:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.3);border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.08)}@supports (height:calc(3.125em + 2 * max(3em,4em))){@media all and (orientation:landscape){.itemBackgroundContainer-transparent.withBackdrop{background:0 0!important}}}.detailTrackSelect{border-color:transparent}.lyricsScroller{--theme-secondary-text-color-alpha:.3} \ No newline at end of file diff --git a/modules/themes/appletv/theme.json b/modules/themes/appletv/theme.json new file mode 100644 index 0000000..4e2b066 --- /dev/null +++ b/modules/themes/appletv/theme.json @@ -0,0 +1,8 @@ +{ + "themeColor": "#ADBEC2", + "androidStatusBarForegroundColor": "dark", + "androidNavigationBarForegroundColor": "dark", + "systemTheme": "light", + "titleBarBackgroundColor": "#d7e4eb", + "titleBarTextColor": "#222222" +} \ No newline at end of file diff --git a/modules/themes/appletv/theme_nontv.css b/modules/themes/appletv/theme_nontv.css new file mode 100644 index 0000000..8d3fdb2 --- /dev/null +++ b/modules/themes/appletv/theme_nontv.css @@ -0,0 +1 @@ +@media (pointer:fine){:root{--dialog-border-width:var(--line-size)}}@media all and (pointer:fine){.raised.button-hoverable:hover,.fab.button-hoverable:hover{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) - 10%),var(--button-background-alpha))}.button-hoverable.button-hoveraccent:hover{background:var(--theme-accent-text-color)}}@media not all and (pointer:fine){.raised.button-hoverable:active,.fab.button-hoverable:active{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) - 10%),var(--button-background-alpha))}} \ No newline at end of file diff --git a/modules/themes/appletv/theme_tv.css b/modules/themes/appletv/theme_tv.css new file mode 100644 index 0000000..13252a2 --- /dev/null +++ b/modules/themes/appletv/theme_tv.css @@ -0,0 +1 @@ +:root{--header-background:transparent;--header-blur-background:transparent;--dialog-border-width:var(--line-size)}.paper-icon-button-light:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-select:focus{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-select:focus~.emby-select-selectedNameContainer,.emby-select:focus~.selectArrowContainer{--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-input:focus,.emby-textarea:focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);border-color:transparent}.emby-toggle-label.emby-toggle-label-focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.emby-button:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.button-link.emby-button:focus{background:0 0;box-shadow:none}.button-link.emby-button:focus::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.channelCell:focus>.channelCellInner,.programCell:focus>.programCellInner{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.channelCell:focus .guideChannelText{color:#fff}.chkLockedField.emby-checkbox:focus{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))} \ No newline at end of file diff --git a/modules/themes/black/theme.css b/modules/themes/black/theme.css new file mode 100644 index 0000000..63257e2 --- /dev/null +++ b/modules/themes/black/theme.css @@ -0,0 +1 @@ +:root{--background-hue:0;--background-saturation:0%;--background-lightness:0%;--theme-primary-color-hue:116;--theme-primary-color-saturation:41.7%;--theme-primary-color-lightness:50.2%;--theme-text-color-hue:0;--theme-text-color-saturation:0%;--theme-text-color-lightness:100%;--theme-text-color-alpha:1;--theme-secondary-text-color-alpha:.56;--theme-accent-text-color-lightbg:green;--theme-accent-text-color-darkbg:#6ccf65;--theme-accent-text-color:var(--theme-accent-text-color-darkbg);--theme-accent-text-color-darkbg-alt:hsl(209, 100%, 50.2%);--theme-accent-text-color-alt:var(--theme-accent-text-color-darkbg-alt);--button-background-hue:240;--button-background-saturation:5.1%;--button-background-lightness:16.6%;--button-background-alpha:.7;--button-background-blur-lightness:var(--button-background-lightness);--button-background-blur-alpha:var(--button-background-alpha);--button-blur-backdrop-filter:none;--card-background-hue:240;--card-background-saturation:5.1%;--card-background-lightness:16.6%;--card-background-alpha:.7;--input-background-hue:240;--input-background-saturation:5.1%;--input-background-lightness:16.6%;--header-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 7%));--header-blur-background:hsla(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 15.5%), .7);--footer-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 7%));--line-background:hsla(var(--theme-text-color-hue), var(--theme-text-color-saturation), var(--theme-text-color-lightness), .195);--line-size:.08em;--docked-drawer-background:hsla(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 54%), .2);--dialog-border-width:0;--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:100%;--focus-blur-background-lightness:100%;--focus-text-color-lightness:0%;--slider-lower-opacity:.7;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));scrollbar-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.45) transparent}@media (-webkit-min-device-pixel-ratio:2){:root{--line-size:.04em}}@media (-webkit-min-device-pixel-ratio:3){:root{--line-size:.02em}}.mdl-spinner__layer-1{border-color:var(--theme-accent-text-color-alt)}.dialog{--background-hue:240;--background-saturation:3.4%;--background-lightness:11.4%;background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness));--header-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 10%));--footer-background:var(--header-background);--button-background-hue:var(--background-hue);--button-background-saturation:var(--background-saturation);--button-background-lightness:calc(var(--background-lightness) + 15%);--button-background-blur-lightness:var(--button-background-lightness);--button-background-blur-alpha:var(--button-background-alpha);--card-background-hue:var(--background-hue);--card-background-saturation:var(--background-saturation);--card-background-lightness:calc(var(--background-lightness) + 15%);--input-background-hue:var(--background-hue);--input-background-saturation:var(--background-saturation);--input-background-lightness:calc(var(--background-lightness) + 15%);border:var(--dialog-border-width) solid var(--line-background);box-shadow:inset 0 0 0 .07em rgba(0,0,0,.2),0 .56em 2.8em rgba(0,0,0,.55)}.mainDrawer{background:hsl(240,3.4%,17.4%)}.drawer-docked{background:var(--docked-drawer-background);-webkit-border-end:var(--line-size) solid var(--line-background);border-inline-end:var(--line-size) solid var(--line-background)}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.dialog-blur,.drawer-open-backdropfilter:not(.drawer-docked){--background-hue:0;--background-saturation:0%;--background-lightness:22%;background-color:hsla(var(--background-hue),var(--background-saturation),var(--background-lightness),.7);-webkit-backdrop-filter:blur(4em) saturate(2.1);backdrop-filter:blur(4em) saturate(2.1)}}.emby-collapsible-button-collapsed::after{background:var(--line-background)}.skinHeader-withBackground.headroom-scrolling{background:var(--header-background)}.appfooter{background:var(--footer-background)}.formDialogFooter:not(.formDialogFooter-clear){background:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.skinHeader-withBackground.skinHeader-withbackdropfilter.headroom-scrolling:not(.semiTransparent){background:var(--header-blur-background);-webkit-backdrop-filter:blur(4em) saturate(2.1);backdrop-filter:blur(4em) saturate(2.1)}.appfooter-withbackdropfilter{--background-hue:0;--background-saturation:0%;--background-lightness:15.5%;background-color:hsla(var(--background-hue),var(--background-saturation),var(--background-lightness),.7);-webkit-backdrop-filter:blur(4em) saturate(2.1);backdrop-filter:blur(4em) saturate(2.1)}}.headerNowPlaying{background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 5%),.7)}.skinHeader.semiTransparent{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background-color:transparent;background:0 0;box-shadow:none!important;border-bottom:0;--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:100%;--focus-text-color-lightness:0%}.skinHeader.semiTransparent::before{position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;transition:opacity .3s ease-out;content:" ";opacity:0;background-color:rgba(0,0,0,.3);background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,0));z-index:-1}.semiTransparent.headroom-scrolling::before{opacity:1}.pageTitleWithDefaultLogo{background-image:url(../logowhite.png)}html,.backgroundContainer{background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}.backgroundContainer.withBackdrop{background-color:rgba(0,0,0,.8)}.itemBackgroundContainer.withBackdrop{background-color:rgba(0,0,0,.82)}@supports (height:calc(3.125em + 2 * max(3em,4em))){.backgroundContainer-withfocuspreview{background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))!important}}@media not all and (min-width:50em){.itemBackgroundContainer-preventbackdrop.withBackdrop{background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}}.paper-icon-button-light:active{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}@media all and (pointer:fine){.paper-icon-button-light:hover{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}}.paper-icon-button-light:focus-visible{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.raised,.fab{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha));color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.paper-icon-button-light-blur{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),.4);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.emby-select,.emby-multilineselect{color:inherit;background:hsla(var(--input-background-hue),var(--input-background-saturation),var(--input-background-lightness),var(--button-background-alpha));border:var(--line-size) solid transparent}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.raised-backdropfilter,.fab-backdropfilter,.emby-select-backdropfilter.detailTrackSelect{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-blur-lightness),var(--button-background-blur-alpha));-webkit-backdrop-filter:var(--button-blur-backdrop-filter);backdrop-filter:var(--button-blur-backdrop-filter)}.paper-icon-button-light-blur-bf{-webkit-backdrop-filter:blur(4em) saturate(1.8);backdrop-filter:blur(4em) saturate(1.8)}.toast-large{--theme-text-color-lightness:100%;--theme-text-color-alpha:.85;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}}.raised-outline{background:0 0;border:.08em solid var(--line-background);-webkit-backdrop-filter:none;backdrop-filter:none}.filter-active{background:#03a9f4;color:#fff}.button-submit{--button-background-hue:var(--theme-primary-color-hue);--button-background-saturation:var(--theme-primary-color-saturation);--button-background-lightness:var(--theme-primary-color-lightness);--button-background-alpha:1;background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),var(--button-background-alpha));color:#fff}@media not all and (min-width:50em){.detailButton-primary{background:#fff;color:#1a1a1a;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}}.emby-select>option{--theme-text-color-alpha:1;--theme-text-color-lightness:100%;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));background:hsl(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness))}.emby-select:focus-visible{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important}.emby-textarea-label:focus-within>.emby-textarea-labeltext,.selectLabel:focus-within>.selectLabelText,.inputLabelFocused{color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.sliderLabel:focus-within>.sliderLabelText{color:var(--theme-accent-text-color)}.emby-collapse-expandIcon,.accentText{color:var(--theme-accent-text-color)}.button-link,.color-accent{color:var(--theme-accent-text-color)}.button-link-color-inherit{color:inherit}.paperList,.visualCardBox{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.listItems-border{border:var(--line-size) solid var(--line-background)}.collapseContent{border:var(--line-size) solid var(--line-background)}.secondaryText,.fieldDescription,.cardText-secondary,.legendDescription{--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.actionsheetDivider{background:var(--line-background)}.selectionCommandsPanel{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 15%));--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.upNextDialog-countdownText{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.navMenuOption-selected .listItem-content{color:#fff}.navMenuOption-selected .listItem-content::before{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)}.listItem-content-bg-background{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}@media (pointer:fine){.listItem-hoverable:hover .listItem-content-bg{background-color:transparent}.listItem-hoverable:hover .listItem-content-bg::before{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.2)}}.navMenuOption-selected .listItem-content-bg{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)!important}.navMenuOption-selected .listItem-content-bg::before{background-color:transparent!important}.listItem-border::after{background:var(--line-background)}.listItem:focus-visible .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.listItem-tv:focus .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7);box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-expandout:focus .listItem-content{background:0 0;box-shadow:none}.listItem-expandout:focus .listItem-content::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-tv:focus .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.listItem:focus-visible .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.dragClone .listItem-content{background-color:transparent!important}.dragClone .listItem-content::before{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),1)!important}.progressring-spiner{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.mediaInfoText{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.starIcon{color:#cb272a}.mediaInfoTimerIcon{color:#cb272a}.emby-input,.emby-textarea{color:inherit;background:hsla(var(--input-background-hue),var(--input-background-saturation),var(--input-background-lightness),var(--button-background-alpha));border:var(--line-size) solid transparent}.emby-input:focus-visible,.emby-textarea:focus-visible{box-shadow:0 0 0 .2rem hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.6);border-color:transparent}.emby-checkbox+.checkboxLabel::before{border-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.6)}.chkCardSelect+.checkboxLabel::before{border-color:transparent;background:rgba(255,255,255,.4)}.chkItemSelect-selecthint+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%))}.emby-checkbox:checked+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-checkbox-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-checkbox:checked+.checkboxLabel+.emby-checkbox-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.toggleSwitch{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 11.7%))}.emby-toggle:checked~.toggleSwitch{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio-inner-circle{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio:focus-visible+.radioButtonLabel{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:var(--theme-accent-text-color)}.emby-radio-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-radio:checked~.emby-radio-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.itemProgressBar{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.3)}.itemProgressBarForeground{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.itemProgressBarForeground-recording{background-color:#cb272a}.countIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.playedIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-tab-button-active{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 50%),.5);--theme-text-color-lightness:100%;--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-tab-button-active.videoosd-tab-button{background:0 0}.emby-tab-button-active.videoosd-tab-button::before{background:#666}.emby-button:focus-visible{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}@media not all and (min-width:50em){.detailButton-autotext:focus-visible{--theme-text-color-lightness:inherit;--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}}.button-link:focus-visible{background:0 0}.button-link:focus-visible::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.firstChannelCell-withscroll{background:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))!important}.channelCellInner{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) - 5%),1)}.programCellInner{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 16%),.5)}.programCellInner-sports{background:rgba(61,130,146,.5)}.programCellInner-movie{background:rgba(137,96,172,.5)}.programCellInner-kids{background:rgba(115,176,205,.5)}.programCellInner-news{background:rgba(151,176,127,.5)}.guide-currentTimeIndicatorDot{border-inline-end-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.channelCell:focus-visible>.channelCellInner,.programCell:focus-visible>.programCellInner{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.guide-programTextIcon{color:#1e1e1e;background:hsl(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 23.5%))}.infoBanner{background:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.errorBanner{background:#cc3232;color:rgba(255,255,255,.9)}.warningBanner{background:rgba(255,69,0,.1);color:#ff4500}.ratingbutton-icon-withrating{color:#c33}.downloadbutton-icon-on{color:#4285f4}.downloadbutton-icon-complete{color:#4285f4}.playstatebutton-icon-played{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.toggleButtonIcon-active{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5);color:#000}.card:focus .cardBox-sideFooter-f{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.card:focus-visible .cardBox-sideFooter{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.card:focus .cardContent-bxsborder::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.card:focus-visible .cardContent-bxsborder-fv::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.cardContent-button{background-color:transparent}.cardContent-background,.defaultCardBackground{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.card-focustransform:focus .cardContent-background{box-shadow:0 .278em .975em rgba(0,0,0,.5)}.cardImageContainer-sideFooter{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.04)}.listItemOverlayButtonIcon,.dataGridItemOverlayButton-imagehover:hover{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-scroller::-webkit-scrollbar-track-piece{background-color:transparent}.emby-scroller::-webkit-scrollbar-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5)}.emby-slider-background{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.3)}.emby-slider{color:inherit}.emby-slider-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.emby-slider-background-upper{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.35)}.emby-slider-background-upper-accent{background:#cb272a}.emby-slider-background-lower{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--slider-lower-opacity))}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.emby-slider-background-backdropfilter{-webkit-backdrop-filter:blur(4em) saturate(1.8);backdrop-filter:blur(4em) saturate(1.8)}}.recordingIcon-active{color:#c33!important}.textActionButton.dragging{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.dragging-over.full-drop-target .listItem-content{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;color:#fff!important}.dragging-over-top::before,.dragging-over-bottom::after,.dragging-over-left::before,.dragging-over-right::after{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.checkboxLabel-lockedfield-embeddedintofield{border-inline-start-color:var(--line-background)!important;border-top-width:var(--line-size)!important;border-bottom-width:var(--line-size)!important}.checkboxLabel-lockedfield{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.chkLockedField:checked+span{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.chkLockedField:focus-visible+span{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.tabs-viewmenubar-backgroundcontainer{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.tabs-viewmenubar:focus-within .emby-tab-button-active:not(:focus){background:0 0}.dockedtabs{border-top:var(--line-size) solid var(--line-background)}.dockedtabs-tab-button{background:0 0!important}.dockedtabs-tab-button.emby-tab-button:focus{color:inherit}.dockedtabs-tab-button.emby-tab-button-active{color:var(--theme-accent-text-color)!important}.searchFieldsBottomBorder{border-bottom:var(--line-size) solid var(--line-background)}.activeSession-bottomsection:nth-child(odd){background:hsla(var(--card-background-hue),var(--card-background-saturation),calc(var(--card-background-lightness) - 10%),.5)}.dataGridHeader-content-inner{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 2%))}.dataGridItem:nth-child(2n){background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 2%))}@media (pointer:fine){.dataGridItem-hoverable:hover,.dataGridItem-hoverable:hover .chkItemSelectContainer{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}}.dataGridItem-focusscale:focus{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.dataGridItem-button:focus-visible{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.errorColor{color:#ea3841}.warningColor{color:orange}.listItem-syncStatusIcon{background:#464648;color:hsl(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness))}.settingsDescriptionContent-logo{fill:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.3);border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.08)}@supports (height:calc(3.125em + 2 * max(3em,4em))){@media all and (orientation:landscape){.itemBackgroundContainer-transparent.withBackdrop{background:0 0!important}}}.detailTrackSelect{border-color:transparent}.lyricsScroller{--theme-secondary-text-color-alpha:.3} \ No newline at end of file diff --git a/modules/themes/black/theme.json b/modules/themes/black/theme.json new file mode 100644 index 0000000..076e552 --- /dev/null +++ b/modules/themes/black/theme.json @@ -0,0 +1,9 @@ +{ + "themeColor": "#000", + "androidStatusBarForegroundColor": "light", + "androidNavigationBarForegroundColor": "light", + "preferredLogoImageTypes": [ "LogoLightColor", "LogoLight", "Logo" ], + "systemTheme": "dark", + "titleBarBackgroundColor": "#1c1c1c", + "titleBarTextColor": "#dddddd" +} \ No newline at end of file diff --git a/modules/themes/black/theme_nontv.css b/modules/themes/black/theme_nontv.css new file mode 100644 index 0000000..f206453 --- /dev/null +++ b/modules/themes/black/theme_nontv.css @@ -0,0 +1 @@ +@media (pointer:fine){:root{--theme-text-color-alpha:.87;--dialog-border-width:var(--line-size);--line-background:hsla(var(--theme-text-color-hue), var(--theme-text-color-saturation), var(--theme-text-color-lightness), .14)}}@media all and (pointer:fine){.raised.button-hoverable:hover,.fab.button-hoverable:hover{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 10%),var(--button-background-alpha))}.button-hoverable.button-hoveraccent:hover{background:var(--theme-accent-text-color)}}@media not all and (pointer:fine){.raised.button-hoverable:active,.fab.button-hoverable:active{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 10%),var(--button-background-alpha))}}.cardText-first{--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))} \ No newline at end of file diff --git a/modules/themes/black/theme_tv.css b/modules/themes/black/theme_tv.css new file mode 100644 index 0000000..004cc4a --- /dev/null +++ b/modules/themes/black/theme_tv.css @@ -0,0 +1 @@ +:root{--theme-text-color-alpha:.87;--header-background:transparent;--header-blur-background:transparent;--dialog-border-width:var(--line-size)}.paper-icon-button-light:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-select:focus{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-select:focus~.emby-select-selectedNameContainer,.emby-select:focus~.selectArrowContainer{--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.cardText-first{--theme-text-color-alpha:.87;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-input:focus,.emby-textarea:focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);border-color:transparent}.emby-toggle-label.emby-toggle-label-focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.emby-button:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.button-link.emby-button:focus{background:0 0;box-shadow:none}.button-link.emby-button:focus::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.epgRow:focus-within .epgCellInner{--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 60%),.5)}.channelCell:focus>.channelCellInner,.programCell:focus>.programCellInner{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.chkLockedField.emby-checkbox:focus{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))} \ No newline at end of file diff --git a/modules/themes/common/darkcontentcontainer.css b/modules/themes/common/darkcontentcontainer.css new file mode 100644 index 0000000..237ef0a --- /dev/null +++ b/modules/themes/common/darkcontentcontainer.css @@ -0,0 +1 @@ +.darkContentContainer{--background-hue:285;--background-saturation:10%;--background-lightness:7.84%;--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:100%;--focus-blur-background-lightness:100%;--focus-text-color-lightness:0%;--theme-text-color-hue:0;--theme-text-color-saturation:0%;--theme-text-color-lightness:100%;--theme-text-color-alpha:1;--theme-accent-text-color:var(--theme-accent-text-color-darkbg);--theme-accent-text-color-alt:var(--theme-accent-text-color-darkbg-alt);--line-background:hsla(var(--theme-text-color-hue), var(--theme-text-color-saturation), var(--theme-text-color-lightness), .14);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));--button-background-hue:285;--button-background-saturation:4.2%;--button-background-lightness:40%;--button-background-alpha:.6;--button-background-blur-lightness:calc(var(--button-background-lightness) + 37%);--button-background-blur-alpha:.3;--button-blur-backdrop-filter:blur(4em) saturate(1.8);--card-background-hue:0;--card-background-saturation:0%;--card-background-lightness:17.25%;--card-background-alpha:.7;--input-background-hue:285;--input-background-saturation:4.2%;--input-background-lightness:40%;--docked-drawer-background:hsla(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 18%), .2)}.graphicContentContainer{--button-background-hue:0;--button-background-saturation:0%;--button-background-lightness:15%;--button-background-alpha:.6;--input-background-hue:0;--input-background-saturation:0%;--input-background-lightness:15%} \ No newline at end of file diff --git a/modules/themes/common/darkcontentcontainer_item.css b/modules/themes/common/darkcontentcontainer_item.css new file mode 100644 index 0000000..9a7f54b --- /dev/null +++ b/modules/themes/common/darkcontentcontainer_item.css @@ -0,0 +1 @@ +@media all and (min-width:50em){.darkContentContainer-item{--background-hue:285;--background-saturation:10%;--background-lightness:7.84%;--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:100%;--focus-blur-background-lightness:100%;--focus-text-color-lightness:0%;--theme-text-color-hue:0;--theme-text-color-saturation:0%;--theme-text-color-lightness:100%;--theme-text-color-alpha:1;--theme-accent-text-color:var(--theme-accent-text-color-darkbg);--theme-accent-text-color-alt:var(--theme-accent-text-color-darkbg-alt);--line-background:hsla(var(--theme-text-color-hue), var(--theme-text-color-saturation), var(--theme-text-color-lightness), .14);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));--button-background-hue:285;--button-background-saturation:4.2%;--button-background-lightness:40%;--button-background-alpha:.7;--button-background-blur-lightness:calc(var(--button-background-lightness) + 37%);--button-background-blur-alpha:.3;--button-blur-backdrop-filter:blur(4em) saturate(1.8);--card-background-hue:0;--card-background-saturation:0%;--card-background-lightness:17.25%;--card-background-alpha:.7;--input-background-hue:285;--input-background-saturation:4.2%;--input-background-lightness:40%;--docked-drawer-background:hsla(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 18%), .2)}.details-additionalContent-withbackdrop{--theme-text-color-alpha:.85}} \ No newline at end of file diff --git a/modules/themes/common/darkcontentcontainer_nontv.css b/modules/themes/common/darkcontentcontainer_nontv.css new file mode 100644 index 0000000..c76df49 --- /dev/null +++ b/modules/themes/common/darkcontentcontainer_nontv.css @@ -0,0 +1 @@ +@media all and (pointer:fine){.darkContentContainer{--theme-text-color-alpha:.9;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}} \ No newline at end of file diff --git a/modules/themes/common/darkcontentcontainer_tv.css b/modules/themes/common/darkcontentcontainer_tv.css new file mode 100644 index 0000000..c2c8a9f --- /dev/null +++ b/modules/themes/common/darkcontentcontainer_tv.css @@ -0,0 +1 @@ +.darkContentContainer{--theme-text-color-alpha:.9;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))} \ No newline at end of file diff --git a/modules/themes/dark/theme.css b/modules/themes/dark/theme.css new file mode 100644 index 0000000..0344b70 --- /dev/null +++ b/modules/themes/dark/theme.css @@ -0,0 +1 @@ +:root{--background-hue:0;--background-saturation:0%;--background-lightness:7.96%;--theme-primary-color-hue:116;--theme-primary-color-saturation:41.7%;--theme-primary-color-lightness:50.2%;--theme-text-color-hue:0;--theme-text-color-saturation:0%;--theme-text-color-lightness:100%;--theme-text-color-alpha:1;--theme-secondary-text-color-alpha:.6;--theme-accent-text-color-lightbg:green;--theme-accent-text-color-darkbg:#6ccf65;--theme-accent-text-color:var(--theme-accent-text-color-darkbg);--theme-accent-text-color-darkbg-alt:hsl(209, 100%, 50.2%);--theme-accent-text-color-alt:var(--theme-accent-text-color-darkbg-alt);--button-background-hue:var(--background-hue);--button-background-saturation:var(--background-saturation);--button-background-lightness:calc(var(--background-lightness) + 12%);--button-background-alpha:.7;--button-background-blur-lightness:var(--button-background-lightness);--button-background-blur-alpha:var(--button-background-alpha);--button-blur-backdrop-filter:none;--card-background-hue:var(--background-hue);--card-background-saturation:var(--background-saturation);--card-background-lightness:calc(var(--background-lightness) + 12%);--card-background-alpha:.7;--input-background-hue:var(--background-hue);--input-background-saturation:var(--background-saturation);--input-background-lightness:calc(var(--background-lightness) + 12%);--header-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 5%));--header-blur-background:rgba(40, 40, 40, .7);--footer-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 5%));--line-background:hsla(var(--theme-text-color-hue), var(--theme-text-color-saturation), var(--theme-text-color-lightness), .14);--line-size:.08em;--docked-drawer-background:hsla(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 19%), .2);--dialog-border-width:0;--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:100%;--focus-blur-background-lightness:100%;--focus-text-color-lightness:0%;--slider-lower-opacity:.7;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));scrollbar-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.45) transparent}@media (-webkit-min-device-pixel-ratio:2){:root{--line-size:.04em}}@media (-webkit-min-device-pixel-ratio:3){:root{--line-size:.02em}}.mdl-spinner__layer-1{border-color:var(--theme-accent-text-color-alt)}.dialog{--background-hue:240;--background-saturation:3.4%;--background-lightness:16.4%;background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness));--header-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 5%));--footer-background:var(--header-background);--button-background-hue:var(--background-hue);--button-background-saturation:var(--background-saturation);--button-background-lightness:calc(var(--background-lightness) + 10%);--button-background-blur-lightness:var(--button-background-lightness);--button-background-blur-alpha:var(--button-background-alpha);--card-background-hue:var(--background-hue);--card-background-saturation:var(--background-saturation);--card-background-lightness:calc(var(--background-lightness) + 10%);--input-background-hue:var(--background-hue);--input-background-saturation:var(--background-saturation);--input-background-lightness:calc(var(--background-lightness) + 10%);border:var(--dialog-border-width) solid var(--line-background);box-shadow:inset 0 0 0 .07em rgba(0,0,0,.2),0 .56em 2.8em rgba(0,0,0,.55)}.mainDrawer{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 10%))}.drawer-docked{background:var(--docked-drawer-background);-webkit-border-end:var(--line-size) solid #000;border-inline-end:var(--line-size) solid #000}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.dialog-blur,.drawer-open-backdropfilter:not(.drawer-docked){--background-hue:0;--background-saturation:0%;--background-lightness:22%;background-color:hsla(var(--background-hue),var(--background-saturation),var(--background-lightness),.7);-webkit-backdrop-filter:blur(4em) saturate(2.1);backdrop-filter:blur(4em) saturate(2.1)}}.emby-collapsible-button-collapsed::after{background:var(--line-background)}.skinHeader-withBackground.headroom-scrolling{background:var(--header-background)}.appfooter{background:var(--footer-background)}.formDialogFooter:not(.formDialogFooter-clear){background:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.skinHeader-withBackground.skinHeader-withbackdropfilter.headroom-scrolling:not(.semiTransparent){background:var(--header-blur-background);-webkit-backdrop-filter:blur(4em) saturate(2.1);backdrop-filter:blur(4em) saturate(2.1)}.appfooter-withbackdropfilter{--background-hue:0;--background-saturation:0%;--background-lightness:15.5%;background-color:hsla(var(--background-hue),var(--background-saturation),var(--background-lightness),.7);-webkit-backdrop-filter:blur(4em) saturate(2.1);backdrop-filter:blur(4em) saturate(2.1)}}.headerNowPlaying{background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 5%),.7)}.skinHeader.semiTransparent{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background-color:transparent;background:0 0;box-shadow:none!important;border-bottom:0;--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:100%;--focus-text-color-lightness:0%}.skinHeader.semiTransparent::before{position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;transition:opacity .3s ease-out;content:" ";opacity:0;background-color:rgba(0,0,0,.3);background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,0));z-index:-1}.semiTransparent.headroom-scrolling::before{opacity:1}.pageTitleWithDefaultLogo{background-image:url(../logowhite.png)}html,.backgroundContainer{background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}.backgroundContainer.withBackdrop{background-color:rgba(0,0,0,.8)}.itemBackgroundContainer.withBackdrop{background-color:rgba(0,0,0,.82)}@supports (height:calc(3.125em + 2 * max(3em,4em))){.backgroundContainer-withfocuspreview{background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))!important}}@media not all and (min-width:50em){.itemBackgroundContainer-preventbackdrop.withBackdrop{background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}}.paper-icon-button-light:active{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}@media all and (pointer:fine){.paper-icon-button-light:hover{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}}.paper-icon-button-light:focus-visible{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.raised,.fab{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha));color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.paper-icon-button-light-blur{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),.4);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.emby-select,.emby-multilineselect{color:inherit;background:hsla(var(--input-background-hue),var(--input-background-saturation),var(--input-background-lightness),var(--button-background-alpha));border:var(--line-size) solid transparent}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.raised-backdropfilter,.fab-backdropfilter,.emby-select-backdropfilter.detailTrackSelect{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-blur-lightness),var(--button-background-blur-alpha));-webkit-backdrop-filter:var(--button-blur-backdrop-filter);backdrop-filter:var(--button-blur-backdrop-filter)}.paper-icon-button-light-blur-bf{-webkit-backdrop-filter:blur(4em) saturate(1.8);backdrop-filter:blur(4em) saturate(1.8)}.toast-large{--theme-text-color-lightness:100%;--theme-text-color-alpha:.85;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}}.raised-outline{background:0 0;border:.08em solid var(--line-background);-webkit-backdrop-filter:none;backdrop-filter:none}.filter-active{background:#03a9f4;color:#fff}.button-submit{--button-background-hue:var(--theme-primary-color-hue);--button-background-saturation:var(--theme-primary-color-saturation);--button-background-lightness:var(--theme-primary-color-lightness);--button-background-alpha:1;background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),var(--button-background-alpha));color:#fff}@media not all and (min-width:50em){.detailButton-primary{background:#fff;color:#1a1a1a;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}}.emby-select>option{--theme-text-color-alpha:1;--theme-text-color-lightness:100%;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));background:hsl(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness))}.emby-select:focus-visible{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important}.emby-textarea-label:focus-within>.emby-textarea-labeltext,.selectLabel:focus-within>.selectLabelText,.inputLabelFocused{color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.sliderLabel:focus-within>.sliderLabelText{color:var(--theme-accent-text-color)}.emby-collapse-expandIcon,.accentText{color:var(--theme-accent-text-color)}.button-link,.color-accent{color:var(--theme-accent-text-color)}.button-link-color-inherit{color:inherit}.paperList,.visualCardBox{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.listItems-border{border:var(--line-size) solid var(--line-background)}.collapseContent{border:var(--line-size) solid var(--line-background)}.secondaryText,.fieldDescription,.cardText-secondary,.legendDescription{--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.actionsheetDivider{background:var(--line-background)}.selectionCommandsPanel{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 15%));--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.upNextDialog-countdownText{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.navMenuOption-selected .listItem-content{color:#fff}.navMenuOption-selected .listItem-content::before{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)}.listItem-content-bg-background{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}@media (pointer:fine){.listItem-hoverable:hover .listItem-content-bg{background-color:transparent}.listItem-hoverable:hover .listItem-content-bg::before{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.2)}}.navMenuOption-selected .listItem-content-bg{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)!important}.navMenuOption-selected .listItem-content-bg::before{background-color:transparent!important}.listItem-border::after{background:var(--line-background)}.listItem:focus-visible .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.listItem-tv:focus .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-expandout:focus .listItem-content{background:0 0;box-shadow:none}.listItem-expandout:focus .listItem-content::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-tv:focus .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.listItem:focus-visible .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.dragClone .listItem-content{background-color:transparent!important}.dragClone .listItem-content::before{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),1)!important}.progressring-spiner{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.mediaInfoText{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.starIcon{color:#cb272a}.mediaInfoTimerIcon{color:#cb272a}.emby-input,.emby-textarea{color:inherit;background:hsla(var(--input-background-hue),var(--input-background-saturation),var(--input-background-lightness),var(--button-background-alpha));border:var(--line-size) solid transparent}.emby-input:focus-visible,.emby-textarea:focus-visible{box-shadow:0 0 0 .2rem hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.6);border-color:transparent}.emby-checkbox+.checkboxLabel::before{border-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.6)}.chkCardSelect+.checkboxLabel::before{border-color:transparent;background:rgba(255,255,255,.4)}.chkItemSelect-selecthint+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%))}.emby-checkbox:checked+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-checkbox-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-checkbox:checked+.checkboxLabel+.emby-checkbox-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.toggleSwitch{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 11.7%))}.emby-toggle:checked~.toggleSwitch{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio-inner-circle{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio:focus-visible+.radioButtonLabel{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:var(--theme-accent-text-color)}.emby-radio-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-radio:checked~.emby-radio-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.itemProgressBar{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.3)}.itemProgressBarForeground{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.itemProgressBarForeground-recording{background-color:#cb272a}.countIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.playedIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-tab-button-active{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 50%),.5);--theme-text-color-lightness:100%;--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-tab-button-active.videoosd-tab-button{background:0 0}.emby-tab-button-active.videoosd-tab-button::before{background:#666}.emby-button:focus-visible{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}@media not all and (min-width:50em){.detailButton-autotext:focus-visible{--theme-text-color-lightness:inherit;--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}}.button-link:focus-visible{background:0 0}.button-link:focus-visible::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.firstChannelCell-withscroll{background:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))!important}.epgCellInner{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.channelCellInner{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) - 8%),1)}.programCellInner-sports{background:rgba(61,130,146,.5)}.programCellInner-movie{background:rgba(137,96,172,.5)}.programCellInner-kids{background:rgba(115,176,205,.5)}.programCellInner-news{background:rgba(151,176,127,.5)}.guide-currentTimeIndicatorDot{border-inline-end-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.channelCell:focus-visible>.channelCellInner,.programCell:focus-visible>.programCellInner{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.guide-programTextIcon{color:#1e1e1e;background:hsl(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 23.5%))}.infoBanner{background:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.errorBanner{background:#cc3232;color:rgba(255,255,255,.9)}.warningBanner{background:rgba(255,69,0,.1);color:#ff4500}.ratingbutton-icon-withrating{color:#c33}.downloadbutton-icon-on{color:#4285f4}.downloadbutton-icon-complete{color:#4285f4}.playstatebutton-icon-played{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.toggleButtonIcon-active{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5);color:#000}.card:focus .cardBox-sideFooter-f{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.card:focus-visible .cardBox-sideFooter{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.card:focus .cardContent-bxsborder::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.card:focus-visible .cardContent-bxsborder-fv::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.cardContent-button{background-color:transparent}.cardContent-background,.defaultCardBackground{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.card-focustransform:focus .cardContent-background{box-shadow:0 .278em .975em rgba(0,0,0,.5)}.cardImageContainer-sideFooter{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.04)}.listItemOverlayButtonIcon,.dataGridItemOverlayButton-imagehover:hover{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-scroller::-webkit-scrollbar-track-piece{background-color:transparent}.emby-scroller::-webkit-scrollbar-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5)}.emby-slider-background{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.3)}.emby-slider{color:inherit}.emby-slider-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.emby-slider-background-upper{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.35)}.emby-slider-background-upper-accent{background:#cb272a}.emby-slider-background-lower{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--slider-lower-opacity))}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.emby-slider-background-backdropfilter{-webkit-backdrop-filter:blur(4em) saturate(1.8);backdrop-filter:blur(4em) saturate(1.8)}}.recordingIcon-active{color:#c33!important}.textActionButton.dragging{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.dragging-over.full-drop-target .listItem-content{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;color:#fff!important}.dragging-over-top::before,.dragging-over-bottom::after,.dragging-over-left::before,.dragging-over-right::after{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.checkboxLabel-lockedfield-embeddedintofield{border-inline-start-color:var(--line-background)!important;border-top-width:var(--line-size)!important;border-bottom-width:var(--line-size)!important}.checkboxLabel-lockedfield{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.chkLockedField:checked+span{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.chkLockedField:focus-visible+span{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.tabs-viewmenubar-backgroundcontainer{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.tabs-viewmenubar:focus-within .emby-tab-button-active:not(:focus){background:0 0}.dockedtabs{border-top:var(--line-size) solid var(--line-background)}.dockedtabs-tab-button{background:0 0!important}.dockedtabs-tab-button.emby-tab-button:focus{color:inherit}.dockedtabs-tab-button.emby-tab-button-active{color:var(--theme-accent-text-color)!important}.searchFieldsBottomBorder{border-bottom:var(--line-size) solid var(--line-background)}.activeSession-bottomsection:nth-child(odd){background:hsla(var(--card-background-hue),var(--card-background-saturation),calc(var(--card-background-lightness) - 10%),.5)}.dataGridHeader-content-inner{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 2%))}.dataGridItem:nth-child(2n){background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 2%))}@media (pointer:fine){.dataGridItem-hoverable:hover,.dataGridItem-hoverable:hover .chkItemSelectContainer{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}}.dataGridItem-focusscale:focus{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.dataGridItem-button:focus-visible{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.errorColor{color:#ea3841}.warningColor{color:orange}.listItem-syncStatusIcon{background:#464648;color:hsl(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness))}.settingsDescriptionContent-logo{fill:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.3);border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.08)}@supports (height:calc(3.125em + 2 * max(3em,4em))){@media all and (orientation:landscape){.itemBackgroundContainer-transparent.withBackdrop{background:0 0!important}}}.detailTrackSelect{border-color:transparent}.lyricsScroller{--theme-secondary-text-color-alpha:.3} \ No newline at end of file diff --git a/modules/themes/dark/theme.json b/modules/themes/dark/theme.json new file mode 100644 index 0000000..49dc19a --- /dev/null +++ b/modules/themes/dark/theme.json @@ -0,0 +1,9 @@ +{ + "themeColor": "#141414", + "androidStatusBarForegroundColor": "light", + "androidNavigationBarForegroundColor": "light", + "preferredLogoImageTypes": [ "LogoLightColor", "LogoLight", "Logo" ], + "systemTheme": "dark", + "titleBarBackgroundColor": "#282828", + "titleBarTextColor": "#dddddd" +} \ No newline at end of file diff --git a/modules/themes/dark/theme_nontv.css b/modules/themes/dark/theme_nontv.css new file mode 100644 index 0000000..2433864 --- /dev/null +++ b/modules/themes/dark/theme_nontv.css @@ -0,0 +1 @@ +@media (pointer:fine){:root{--background-hue:0;--background-saturation:0%;--background-lightness:11.76%;--theme-text-color-alpha:.87;--header-blur-background:rgba(40, 40, 40, .7);--button-background-hue:var(--background-hue);--button-background-saturation:var(--background-saturation);--button-background-lightness:calc(var(--background-lightness) + 12.5%);--card-background-hue:var(--background-hue);--card-background-saturation:var(--background-saturation);--card-background-lightness:calc(var(--background-lightness) + 12.5%);--input-background-hue:var(--background-hue);--input-background-saturation:var(--background-saturation);--input-background-lightness:calc(var(--background-lightness) + 11%);--dialog-border-width:var(--line-size)}}@media all and (pointer:fine){.raised.button-hoverable:hover,.fab.button-hoverable:hover{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 10%),var(--button-background-alpha))}.button-hoverable.button-hoveraccent:hover{background:var(--theme-accent-text-color)}}@media not all and (pointer:fine){.raised.button-hoverable:active,.fab.button-hoverable:active{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 10%),var(--button-background-alpha))}}.cardText-first{--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))} \ No newline at end of file diff --git a/modules/themes/dark/theme_tv.css b/modules/themes/dark/theme_tv.css new file mode 100644 index 0000000..9de5668 --- /dev/null +++ b/modules/themes/dark/theme_tv.css @@ -0,0 +1 @@ +:root{--background-hue:0;--background-saturation:0%;--background-lightness:10.98%;--theme-text-color-alpha:.87;--header-background:transparent;--header-blur-background:transparent;--button-background-hue:var(--background-hue);--button-background-saturation:var(--background-saturation);--button-background-lightness:calc(var(--background-lightness) + 10%);--card-background-hue:var(--background-hue);--card-background-saturation:var(--background-saturation);--card-background-lightness:calc(var(--background-lightness) + 10%);--input-background-hue:var(--background-hue);--input-background-saturation:var(--background-saturation);--input-background-lightness:calc(var(--background-lightness) + 10%);--dialog-border-width:var(--line-size)}.paper-icon-button-light:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-select:focus{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-select:focus~.emby-select-selectedNameContainer,.emby-select:focus~.selectArrowContainer{--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-input:focus,.emby-textarea:focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);border-color:transparent}.emby-toggle-label.emby-toggle-label-focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.emby-button:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.button-link.emby-button:focus{background:0 0;box-shadow:none}.button-link.emby-button:focus::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.epgRow:focus-within .epgCellInner{--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 60%),.5)}.channelCell:focus>.channelCellInner,.programCell:focus>.programCellInner{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.chkLockedField.emby-checkbox:focus{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.cardText-first{--theme-text-color-alpha:.87;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))} \ No newline at end of file diff --git a/modules/themes/dark/theme_tv_nocssvars.css b/modules/themes/dark/theme_tv_nocssvars.css new file mode 100644 index 0000000..66afdd4 --- /dev/null +++ b/modules/themes/dark/theme_tv_nocssvars.css @@ -0,0 +1 @@ +:root{--background-hue:0;--background-saturation:0%;--background-lightness:10.98%;--theme-primary-color-hue:116;--theme-primary-color-saturation:41.7%;--theme-primary-color-lightness:50.2%;--theme-text-color-hue:0;--theme-text-color-saturation:0%;--theme-text-color-lightness:100%;--theme-text-color-alpha:.87;--theme-secondary-text-color-alpha:.6;--theme-accent-text-color-lightbg:green;--theme-accent-text-color-darkbg:#6ccf65;--theme-accent-text-color:var(--theme-accent-text-color-darkbg);--theme-accent-text-color-darkbg-alt:hsl(209, 100%, 50.2%);--theme-accent-text-color-alt:var(--theme-accent-text-color-darkbg-alt);--button-background-hue:var(--background-hue);--button-background-saturation:var(--background-saturation);--button-background-lightness:calc(var(--background-lightness) + 10%);--button-background-alpha:.7;--button-background-blur-lightness:var(--button-background-lightness);--button-background-blur-alpha:var(--button-background-alpha);--button-blur-backdrop-filter:none;--card-background-hue:var(--background-hue);--card-background-saturation:var(--background-saturation);--card-background-lightness:calc(var(--background-lightness) + 10%);--card-background-alpha:.7;--input-background-hue:var(--background-hue);--input-background-saturation:var(--background-saturation);--input-background-lightness:calc(var(--background-lightness) + 10%);--header-background:transparent;--header-blur-background:transparent;--footer-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 5%));--line-background:hsla(var(--theme-text-color-hue), var(--theme-text-color-saturation), var(--theme-text-color-lightness), .14);--line-size:.08em;--docked-drawer-background:hsla(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 19%), .2);--dialog-border-width:var(--line-size);--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:100%;--focus-blur-background-lightness:100%;--focus-text-color-lightness:0%;--slider-lower-opacity:.7;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));scrollbar-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.4) transparent}@media (-webkit-min-device-pixel-ratio:2){:root{--line-size:.04em}}@media (-webkit-min-device-pixel-ratio:3){:root{--line-size:.02em}}.mdl-spinner__layer-1{border-color:var(--theme-accent-text-color-alt)}.dialog{--background-hue:240;--background-saturation:3.4%;--background-lightness:16.4%;background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness));--header-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 5%));--footer-background:var(--header-background);--button-background-hue:var(--background-hue);--button-background-saturation:var(--background-saturation);--button-background-lightness:calc(var(--background-lightness) + 10%);--button-background-blur-lightness:var(--button-background-lightness);--button-background-blur-alpha:var(--button-background-alpha);--card-background-hue:var(--background-hue);--card-background-saturation:var(--background-saturation);--card-background-lightness:calc(var(--background-lightness) + 10%);--input-background-hue:var(--background-hue);--input-background-saturation:var(--background-saturation);--input-background-lightness:calc(var(--background-lightness) + 10%);border:var(--dialog-border-width) solid var(--line-background);box-shadow:inset 0 0 0 .07em rgba(0,0,0,.2),0 .56em 2.8em rgba(0,0,0,.55)}.mainDrawer{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 10%))}.drawer-docked{background:var(--docked-drawer-background);-webkit-border-end:var(--line-size) solid #000;border-inline-end:var(--line-size) solid #000}.emby-collapsible-button-collapsed::after{background:var(--line-background)}.skinHeader-withBackground.headroom-scrolling{background:var(--header-background)}.appfooter{background:var(--footer-background)}.formDialogFooter:not(.formDialogFooter-clear){background:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}.headerNowPlaying{background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 5%),.7)}.skinHeader.semiTransparent{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background-color:transparent;background:0 0;box-shadow:none!important;border-bottom:0;--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:100%;--focus-text-color-lightness:0%}.skinHeader.semiTransparent::before{position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;transition:opacity .3s ease-out;content:" ";opacity:0;background-color:rgba(0,0,0,.3);background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,0));z-index:-1}.semiTransparent.headroom-scrolling::before{opacity:1}.pageTitleWithDefaultLogo{background-image:url(../logowhite.png)}html,.backgroundContainer{background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}.backgroundContainer.withBackdrop{background-color:rgba(0,0,0,.8)}@media not all and (min-width:50em){.itemBackgroundContainer-preventbackdrop.withBackdrop{background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}}.paper-icon-button-light:active{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}@media all and (pointer:fine){.paper-icon-button-light:hover{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}}.paper-icon-button-light:focus-visible{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.raised,.fab{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha));color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.paper-icon-button-light-blur{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),.4);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.emby-select,.emby-multilineselect{color:inherit;background:hsla(var(--input-background-hue),var(--input-background-saturation),var(--input-background-lightness),var(--button-background-alpha));border:var(--line-size) solid transparent}.raised-outline{background:0 0;border:.08em solid var(--line-background);-webkit-backdrop-filter:none;backdrop-filter:none}.filter-active{background:#03a9f4;color:#fff}.button-submit{--button-background-hue:var(--theme-primary-color-hue);--button-background-saturation:var(--theme-primary-color-saturation);--button-background-lightness:var(--theme-primary-color-lightness);--button-background-alpha:1;color:#fff}@media not all and (min-width:50em){.detailButton-primary{background:#fff;color:#1a1a1a;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}}.emby-select>option{--theme-text-color-alpha:1;--theme-text-color-lightness:100%;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),100%,1);background:hsl(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness))}.emby-select:focus-visible{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important}.emby-textarea-label:focus-within>.emby-textarea-labeltext,.selectLabel:focus-within>.selectLabelText,.inputLabelFocused{color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.sliderLabel:focus-within>.sliderLabelText{color:var(--theme-accent-text-color)}.emby-collapse-expandIcon,.accentText{color:var(--theme-accent-text-color)}.button-link,.color-accent{color:var(--theme-accent-text-color)}.button-link-color-inherit{color:inherit}.paperList,.visualCardBox{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.listItems-border{border:var(--line-size) solid var(--line-background)}.collapseContent{border:var(--line-size) solid var(--line-background)}.secondaryText,.fieldDescription,.cardText-secondary,.legendDescription{--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5)}.actionsheetDivider{background:var(--line-background)}.selectionCommandsPanel{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 15%));--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.upNextDialog-countdownText{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.navMenuOption-selected .listItem-content{color:#fff}.navMenuOption-selected .listItem-content::before{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)}.listItem-content-bg-background{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}@media (pointer:fine){.listItem-hoverable:hover .listItem-content-bg{background-color:transparent}.listItem-hoverable:hover .listItem-content-bg::before{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.2)}}.navMenuOption-selected .listItem-content-bg{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)!important}.navMenuOption-selected .listItem-content-bg::before{background-color:transparent!important}.listItem-border::after{background:var(--line-background)}.listItem:focus-visible .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness),1)}.listItem-tv:focus .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness),1);box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-expandout:focus .listItem-content{background:0 0;box-shadow:none}.listItem-expandout:focus .listItem-content::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-tv:focus .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.listItem:focus-visible .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.dragClone .listItem-content{background-color:transparent!important}.dragClone .listItem-content::before{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),1)!important}.progressring-spiner{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.mediaInfoText{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.starIcon{color:#cb272a}.mediaInfoTimerIcon{color:#cb272a}.emby-input,.emby-textarea{color:inherit;background:hsla(var(--input-background-hue),var(--input-background-saturation),var(--input-background-lightness),var(--button-background-alpha));border:var(--line-size) solid transparent}.emby-input:focus-visible,.emby-textarea:focus-visible{box-shadow:0 0 0 .2rem hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.6);border-color:transparent}.emby-checkbox+.checkboxLabel::before{border-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.6)}.chkCardSelect+.checkboxLabel::before{border-color:transparent;background:rgba(255,255,255,.4)}.chkItemSelect-selecthint+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%))}.emby-checkbox:checked+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-checkbox-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-checkbox:checked+.checkboxLabel+.emby-checkbox-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.toggleSwitch{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 11.7%))}.emby-toggle:checked~.toggleSwitch{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio-inner-circle{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio:focus-visible+.radioButtonLabel{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:var(--theme-accent-text-color)}.emby-radio-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-radio:checked~.emby-radio-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.itemProgressBar{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.3)}.itemProgressBarForeground{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.itemProgressBarForeground-recording{background-color:#cb272a}.countIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.playedIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-tab-button-active{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 50%),.5);--theme-text-color-lightness:100%;--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),100%,1)}.emby-tab-button-active.videoosd-tab-button{background:0 0}.emby-tab-button-active.videoosd-tab-button::before{background:#666}.emby-button:focus-visible{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness),1)}@media not all and (min-width:50em){.detailButton-autotext:focus-visible{--theme-text-color-lightness:inherit;--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}}.button-link:focus-visible{background:0 0}.button-link:focus-visible::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.firstChannelCell-withscroll{background:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))!important}.epgCellInner{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.channelCellInner{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) - 8%),1)}.programCellInner-sports{background:rgba(61,130,146,.5)}.programCellInner-movie{background:rgba(137,96,172,.5)}.programCellInner-kids{background:rgba(115,176,205,.5)}.programCellInner-news{background:rgba(151,176,127,.5)}.guide-currentTimeIndicatorDot{border-inline-end-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.channelCell:focus-visible>.channelCellInner,.programCell:focus-visible>.programCellInner{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness),1)}.guide-programTextIcon{color:#1e1e1e;background:hsl(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 23.5%))}.infoBanner{background:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.errorBanner{background:#cc3232;color:rgba(255,255,255,.9)}.warningBanner{background:rgba(255,69,0,.1);color:#ff4500}.ratingbutton-icon-withrating{color:#c33}.downloadbutton-icon-on{color:#4285f4}.downloadbutton-icon-complete{color:#4285f4}.playstatebutton-icon-played{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.toggleButtonIcon-active{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5);color:#000}.card:focus .cardBox-sideFooter-f{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness),var(--theme-text-color-alpha))}.card:focus-visible .cardBox-sideFooter{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness),var(--theme-text-color-alpha))}.card:focus .cardContent-bxsborder::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.card:focus-visible .cardContent-bxsborder-fv::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.cardContent-button{background-color:transparent}.cardContent-background,.defaultCardBackground{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.card-focustransform:focus .cardContent-background{box-shadow:0 .278em .975em rgba(0,0,0,.5)}.cardImageContainer-sideFooter{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.04)}.listItemOverlayButtonIcon,.dataGridItemOverlayButton-imagehover:hover{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-scroller::-webkit-scrollbar-track-piece{background-color:transparent}.emby-scroller::-webkit-scrollbar-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5)}.emby-slider-background{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.3)}.emby-slider{color:inherit}.emby-slider-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.emby-slider-background-upper{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.35)}.emby-slider-background-upper-accent{background:#cb272a}.emby-slider-background-lower{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--slider-lower-opacity))}.recordingIcon-active{color:#c33!important}.textActionButton.dragging{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.dragging-over.full-drop-target .listItem-content{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;color:#fff!important}.dragging-over-top::before,.dragging-over-bottom::after,.dragging-over-left::before,.dragging-over-right::after{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.checkboxLabel-lockedfield-embeddedintofield{border-inline-start-color:var(--line-background)!important;border-top-width:var(--line-size)!important;border-bottom-width:var(--line-size)!important}.checkboxLabel-lockedfield{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.chkLockedField:checked+span{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.chkLockedField:focus-visible+span{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.tabs-viewmenubar-backgroundcontainer{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.tabs-viewmenubar:focus-within .emby-tab-button-active:not(:focus){background:0 0}.dockedtabs{border-top:var(--line-size) solid var(--line-background)}.dockedtabs-tab-button{background:0 0!important}.dockedtabs-tab-button.emby-tab-button:focus{color:inherit}.dockedtabs-tab-button.emby-tab-button-active{color:var(--theme-accent-text-color)!important}.searchFieldsBottomBorder{border-bottom:var(--line-size) solid var(--line-background)}.activeSession-bottomsection:nth-child(odd){background:hsla(var(--card-background-hue),var(--card-background-saturation),calc(var(--card-background-lightness) - 10%),.5)}.dataGridHeader-content-inner{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 2%))}.dataGridItem:nth-child(2n){background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 2%))}@media (pointer:fine){.dataGridItem-hoverable:hover,.dataGridItem-hoverable:hover .chkItemSelectContainer{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}}.dataGridItem-focusscale:focus{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness),1)}.dataGridItem-button:focus-visible{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness),1)}.errorColor{color:#ea3841}.warningColor{color:orange}.listItem-syncStatusIcon{background:#464648;color:hsl(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness))}.settingsDescriptionContent-logo{fill:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.3);border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.08)}@media all and (min-width:50em){.itemBackgroundContainer.withBackdrop{background:rgba(0,0,0,.82)}}.detailTrackSelect{border-color:transparent}.lyricsScroller{--theme-secondary-text-color-alpha:.3}.paper-icon-button-light:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness),var(--theme-text-color-alpha))}.emby-select:focus{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness),1)}.emby-select:focus~.emby-select-selectedNameContainer,.emby-select:focus~.selectArrowContainer{--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness),1)}.emby-input:focus,.emby-textarea:focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);border-color:transparent}.emby-toggle-label.emby-toggle-label-focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.emby-button:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness),1);box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.button-link.emby-button:focus{background:0 0;box-shadow:none}.button-link.emby-button:focus::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.epgRow:focus-within .epgCellInner{--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1);background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 60%),.5)}.channelCell:focus>.channelCellInner,.programCell:focus>.programCellInner,.channelCell:focus .secondaryText{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness),1)}.chkLockedField.emby-checkbox:focus{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.cardText-first{--theme-text-color-alpha:.87;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.87)}.sideFooterCard:focus .cardText,.listItem:focus .secondaryText{color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,1)} \ No newline at end of file diff --git a/modules/themes/darkgradient/blueradiance.jpg b/modules/themes/darkgradient/blueradiance.jpg new file mode 100644 index 0000000..0cbe85c Binary files /dev/null and b/modules/themes/darkgradient/blueradiance.jpg differ diff --git a/modules/themes/darkgradient/theme.css b/modules/themes/darkgradient/theme.css new file mode 100644 index 0000000..4fb931a --- /dev/null +++ b/modules/themes/darkgradient/theme.css @@ -0,0 +1 @@ +:root{--background-hue:0;--background-saturation:0%;--background-lightness:15.69%;--background-position:center center;--background-alpha:1;--theme-primary-color-hue:116;--theme-primary-color-saturation:41.7%;--theme-primary-color-lightness:50.2%;--theme-text-color-hue:0;--theme-text-color-saturation:0%;--theme-text-color-lightness:100%;--theme-text-color-alpha:.87;--theme-secondary-text-color-alpha:.6;--theme-accent-text-color-lightbg:green;--theme-accent-text-color-darkbg:#6ccf65;--theme-accent-text-color:var(--theme-accent-text-color-darkbg);--theme-accent-text-color-darkbg-alt:hsl(209, 100%, 50.2%);--theme-accent-text-color-alt:var(--theme-accent-text-color-darkbg-alt);--button-background-hue:0;--button-background-saturation:0%;--button-background-lightness:100%;--button-background-alpha:.2;--button-background-blur-lightness:var(--button-background-lightness);--button-background-blur-alpha:var(--button-background-alpha);--button-blur-backdrop-filter:none;--card-background-hue:var(--button-background-hue);--card-background-saturation:var(--button-background-saturation);--card-background-lightness:100%;--card-background-alpha:.16;--input-background-hue:0;--input-background-saturation:0%;--input-background-lightness:100%;--header-background:hsl(var(--background-hue), var(--background-saturation), var(--background-lightness));--header-blur-background:rgba(40, 40, 40, .7);--footer-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 7%));--line-background:hsla(var(--theme-text-color-hue), var(--theme-text-color-saturation), var(--theme-text-color-lightness), .15);--line-size:.08em;--docked-drawer-background:rgba(0, 0, 0, .2);--dialog-border-width:0;--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:100%;--focus-blur-background-lightness:100%;--focus-text-color-lightness:0%;--slider-lower-opacity:.7;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));scrollbar-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.45) transparent;background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}@media (-webkit-min-device-pixel-ratio:2){:root{--line-size:.04em}}@media (-webkit-min-device-pixel-ratio:3){:root{--line-size:.02em}}.theme-brickred:root{--background-gradient:linear-gradient(to right, rgb(142, 14, 0), rgb(31, 28, 24))}.theme-brickred.rtl:root{--background-gradient:linear-gradient(to left, rgb(142, 14, 0), rgb(31, 28, 24))}.theme-superman:root{--background-gradient:linear-gradient(to right, rgba(120, 2, 6, var(--background-alpha)), rgba(6, 17, 97, var(--background-alpha)))}.theme-superman.rtl:root{--background-gradient:linear-gradient(to left, rgba(120, 2, 6, var(--background-alpha)), rgba(6, 17, 97, var(--background-alpha)))}.theme-caracara:root{--background-gradient:linear-gradient(to top, rgba(211, 131, 18, var(--background-alpha)), rgba(168, 50, 121, var(--background-alpha)))}.theme-slateblue:root{--background-gradient:linear-gradient(to right, rgb(82, 82, 82), rgb(61, 114, 180))}.theme-slateblue.rtl:root{--background-gradient:linear-gradient(to left, rgb(82, 82, 82), rgb(61, 114, 180))}.theme-purplebliss:root{--background-gradient:linear-gradient(to right, rgb(54, 0, 51), rgb(11, 135, 147))}.theme-purplebliss.rtl:root{--background-gradient:linear-gradient(to left, rgb(54, 0, 51), rgb(11, 135, 147))}.theme-purpleflow:root{--background-gradient:linear-gradient(to right, rgb(123, 67, 151), rgb(220, 36, 48))}.theme-purpleflow.rtl:root{--background-gradient:linear-gradient(to left, rgb(123, 67, 151), rgb(220, 36, 48))}.theme-kashmir:root{--background-gradient:linear-gradient(to right, #614385, #516395)}.theme-constance:root{--background-gradient:linear-gradient(to right, #09203F, #537895)}.theme-blueradiance:root{--background-gradient:url(blueradiance.jpg);--background-position:center top}.theme-wmc:root{--background-gradient:linear-gradient(to bottom, rgba(7, 25, 66, var(--background-alpha)) 0%, 7.04057%, rgba(4, 27, 75, var(--background-alpha)) 14.0811%, 21.3604%, rgba(5, 32, 79, var(--background-alpha)) 28.6396%, 29.9523%, rgba(5, 33, 82, var(--background-alpha)) 31.2649%, 32.1002%, rgba(5, 35, 83, var(--background-alpha)) 32.9356%, 33.7709%, rgba(6, 36, 86, var(--background-alpha)) 34.6062%, 36.9928%, rgba(6, 43, 94, var(--background-alpha)) 39.3795%, 43.1981%, rgba(8, 54, 110, var(--background-alpha)) 47.0167%, 52.9833%, rgba(8, 70, 134, var(--background-alpha)) 58.9499%, 62.7685%, rgba(8, 86, 151, var(--background-alpha)) 66.5871%, 67.7804%, rgba(8, 88, 155, var(--background-alpha)) 68.9737%, 75.0597%, rgba(14, 90, 156, var(--background-alpha)) 81.1456%, 84.4869%, rgba(12, 78, 147, var(--background-alpha)) 87.8282%, 90.3341%, rgba(12, 69, 138, var(--background-alpha)) 92.8401%, 96.42%, rgba(9, 53, 123, var(--background-alpha)) 100%)}.mdl-spinner__layer-1{border-color:var(--theme-accent-text-color-alt)}.dialog{--background-hue:240;--background-saturation:3.4%;--background-lightness:16.4%;--theme-background:hsl(var(--background-hue), var(--background-saturation), var(--background-lightness));background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness));--header-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 5%));--footer-background:var(--header-background);--button-background-hue:var(--background-hue);--button-background-saturation:var(--background-saturation);--button-background-lightness:calc(var(--background-lightness) + 10%);--button-background-alpha:.7;--button-background-blur-lightness:var(--button-background-lightness);--button-background-blur-alpha:var(--button-background-alpha);--input-background-hue:var(--background-hue);--input-background-saturation:var(--background-saturation);--input-background-lightness:calc(var(--background-lightness) + 10%);--card-background-hue:var(--background-hue);--card-background-saturation:var(--background-saturation);--card-background-lightness:calc(var(--background-lightness) + 10%);--card-background-alpha:.7;border:var(--dialog-border-width) solid var(--line-background);box-shadow:inset 0 0 0 .07em rgba(0,0,0,.2),0 .56em 2.8em rgba(0,0,0,.55)}.mainDrawer{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) - 5%))}.drawer-docked{background:var(--docked-drawer-background);-webkit-border-end:var(--line-size) solid var(--line-background);border-inline-end:var(--line-size) solid var(--line-background)}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.dialog-blur,.drawer-open-backdropfilter:not(.drawer-docked){--background-hue:0;--background-saturation:0%;--background-lightness:22%;background-color:hsla(var(--background-hue),var(--background-saturation),var(--background-lightness),.7);-webkit-backdrop-filter:blur(4em) saturate(2.1);backdrop-filter:blur(4em) saturate(2.1)}}.emby-collapsible-button-collapsed::after{background:var(--line-background)}.skinHeader-withBackground.headroom-scrolling{background:var(--header-background)}.appfooter{background:var(--footer-background)}.formDialogFooter:not(.formDialogFooter-clear){background:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.skinHeader-withBackground.skinHeader-withbackdropfilter.headroom-scrolling:not(.semiTransparent){background:var(--header-blur-background);-webkit-backdrop-filter:blur(4em) saturate(2.1);backdrop-filter:blur(4em) saturate(2.1)}.appfooter-withbackdropfilter{--background-hue:0;--background-saturation:0%;--background-lightness:15.5%;background:hsla(var(--background-hue),var(--background-saturation),var(--background-lightness),.7);-webkit-backdrop-filter:blur(4em) saturate(2.1);backdrop-filter:blur(4em) saturate(2.1)}}.headerNowPlaying{background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 5%),.7)}.skinHeader.semiTransparent{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background-color:transparent;background:0 0;box-shadow:none!important;border-bottom:0;--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:100%;--focus-text-color-lightness:0%}.skinHeader.semiTransparent::before{position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;transition:opacity .3s ease-out;content:" ";opacity:0;background-color:rgba(0,0,0,.3);background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,0));z-index:-1}.semiTransparent.headroom-scrolling::before{opacity:1}.pageTitleWithDefaultLogo{background-image:url(../logowhite.png)}.backgroundContainer{background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness));background-image:var(--background-gradient);background-position:var(--background-position);background-repeat:no-repeat;background-size:cover;opacity:var(--background-alpha)}.theme-blueradiance .backgroundContainer{background-image:url(blueradiance.jpg)}.backgroundContainer.withBackdrop{--background-alpha:.9;background:var(--background-gradient);background-position:var(--background-position);background-repeat:no-repeat;background-size:cover}.theme-blueradiance .backgroundContainer.withBackdrop{background:url(blueradiance.jpg);background-position:var(--background-position);background-repeat:no-repeat;background-size:cover}.itemBackgroundContainer.withBackdrop{--background-alpha:.85}@supports (height:calc(3.125em + 2 * max(3em,4em))){.backgroundContainer-withfocuspreview{background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))!important;background-image:var(--background-gradient)!important;background-position:var(--background-position)!important;background-repeat:no-repeat!important;background-size:cover!important;--background-alpha:1!important}.theme-blueradiance .backgroundContainer-withfocuspreview{background-image:url(blueradiance.jpg)!important}}@media not all and (min-width:50em){.itemBackgroundContainer-preventbackdrop.withBackdrop{--background-alpha:1;background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}}.paper-icon-button-light:active{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}@media all and (pointer:fine){.paper-icon-button-light:hover{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}}.paper-icon-button-light:focus-visible{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.raised,.fab{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha));color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.paper-icon-button-light-blur{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),.4);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.emby-select,.emby-multilineselect{color:inherit;background:hsla(var(--input-background-hue),var(--input-background-saturation),var(--input-background-lightness),var(--button-background-alpha));border:var(--line-size) solid transparent}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.raised-backdropfilter,.fab-backdropfilter,.emby-select-backdropfilter.detailTrackSelect{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-blur-lightness),var(--button-background-blur-alpha));-webkit-backdrop-filter:var(--button-blur-backdrop-filter);backdrop-filter:var(--button-blur-backdrop-filter)}.paper-icon-button-light-blur-bf{-webkit-backdrop-filter:blur(4em) saturate(1.8);backdrop-filter:blur(4em) saturate(1.8)}.toast-large{--theme-text-color-lightness:100%;--theme-text-color-alpha:.85;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}}.raised-outline{background:0 0;border:.08em solid var(--line-background);-webkit-backdrop-filter:none;backdrop-filter:none}.filter-active{background:#03a9f4;color:#fff}.button-submit{--button-background-hue:var(--theme-primary-color-hue);--button-background-saturation:var(--theme-primary-color-saturation);--button-background-lightness:var(--theme-primary-color-lightness);--button-background-alpha:1;background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),var(--button-background-alpha));color:#fff}@media not all and (min-width:50em){.detailButton-primary{background:#fff;color:#1a1a1a;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}}.emby-select>option{--theme-text-color-alpha:1;--theme-text-color-lightness:100%;color:#000;background:#fff}.emby-select:focus-visible{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important}.emby-textarea-label:focus-within>.emby-textarea-labeltext,.selectLabel:focus-within>.selectLabelText,.inputLabelFocused{color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.sliderLabel:focus-within>.sliderLabelText{color:var(--theme-accent-text-color)}.emby-collapse-expandIcon,.accentText{color:var(--theme-accent-text-color)}.button-link,.color-accent{color:var(--theme-accent-text-color)}.button-link-color-inherit{color:inherit}.paperList,.visualCardBox{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.listItems-border{border:var(--line-size) solid var(--line-background)}.collapseContent{border:var(--line-size) solid var(--line-background)}.secondaryText,.fieldDescription,.cardText-secondary,.legendDescription{--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.actionsheetDivider{background:var(--line-background)}.selectionCommandsPanel{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 15%));--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.upNextDialog-countdownText{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.navMenuOption-selected .listItem-content{color:#fff}.navMenuOption-selected .listItem-content::before{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)}.listItem-content-bg-background{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}@media (pointer:fine){.listItem-hoverable:hover .listItem-content-bg{background-color:transparent}.listItem-hoverable:hover .listItem-content-bg::before{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.2)}}.navMenuOption-selected .listItem-content-bg{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)!important}.navMenuOption-selected .listItem-content-bg::before{background-color:transparent!important}.listItem-border::after{background:var(--line-background)}.listItem:focus-visible .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.listItem-tv:focus .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-expandout:focus .listItem-content{background:0 0;box-shadow:none}.listItem-expandout:focus .listItem-content::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-tv:focus .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.listItem:focus-visible .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.dragClone .listItem-content{background-color:transparent!important}.dragClone .listItem-content::before{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),1)!important}.progressring-spiner{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.mediaInfoText{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.starIcon{color:#cb272a}.mediaInfoTimerIcon{color:#cb272a}.emby-input,.emby-textarea{color:inherit;background:hsla(var(--input-background-hue),var(--input-background-saturation),var(--input-background-lightness),var(--button-background-alpha));border:var(--line-size) solid transparent}.emby-input:focus-visible,.emby-textarea:focus-visible{box-shadow:0 0 0 .2rem hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.6);border-color:transparent}.emby-checkbox+.checkboxLabel::before{border-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.6)}.chkCardSelect+.checkboxLabel::before{border-color:transparent;background:rgba(255,255,255,.4)}.chkItemSelect-selecthint+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%))}.emby-checkbox:checked+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-checkbox-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-checkbox:checked+.checkboxLabel+.emby-checkbox-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.toggleSwitch{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 11.7%))}.emby-toggle:checked~.toggleSwitch{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio-inner-circle{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio:focus-visible+.radioButtonLabel{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:var(--theme-accent-text-color)}.emby-radio-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-radio:checked~.emby-radio-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.itemProgressBar{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.3)}.itemProgressBarForeground{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.itemProgressBarForeground-recording{background-color:#cb272a}.countIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.playedIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-tab-button-active{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 50%),.5);--theme-text-color-lightness:100%;--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-tab-button-active.videoosd-tab-button{background:0 0}.emby-tab-button-active.videoosd-tab-button::before{background:#666}.emby-button:focus-visible{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}@media not all and (min-width:50em){.detailButton-autotext:focus-visible{--theme-text-color-lightness:inherit;--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}}.button-link:focus-visible{background:0 0}.button-link:focus-visible::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.firstChannelCell-withscroll{background:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))!important}.channelCellInner{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) - 30%),var(--button-background-alpha))}.programCellInner{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.programCellInner-sports{background:rgba(10,79,95,.7);color:#fff}.programCellInner-movie{background:rgba(86,45,121,.7);color:#fff}.programCellInner-kids{background:rgba(64,125,154,.7);color:#fff}.programCellInner-news{background:rgba(100,125,76,.7);color:#fff}.guide-currentTimeIndicatorDot{border-inline-end-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.channelCell:focus-visible>.channelCellInner,.programCell:focus-visible>.programCellInner{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.guide-programTextIcon{color:#1e1e1e;background:#555}.infoBanner{background:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.errorBanner{background:#cc3232;color:rgba(255,255,255,.9)}.warningBanner{background:rgba(255,69,0,.1);color:#ff4500}.ratingbutton-icon-withrating{color:#c33!important}.downloadbutton-icon-on{color:#4285f4}.downloadbutton-icon-complete{color:#4285f4}.playstatebutton-icon-played{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.toggleButtonIcon-active{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5);color:#000}.card:focus .cardBox-sideFooter-f{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.card:focus-visible .cardBox-sideFooter{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.card:focus .cardContent-bxsborder::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.card:focus-visible .cardContent-bxsborder-fv::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.cardContent-button{background-color:transparent}.cardContent-background,.defaultCardBackground{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.card-focustransform:focus .cardContent-background{box-shadow:0 .278em .975em rgba(0,0,0,.7)}.cardImageContainer-sideFooter{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.04)}.listItemOverlayButtonIcon,.dataGridItemOverlayButton-imagehover:hover{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-scroller::-webkit-scrollbar-track-piece{background-color:transparent}.emby-scroller::-webkit-scrollbar-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5)}.emby-slider-background{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.3)}.emby-slider{color:inherit}.emby-slider-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.emby-slider-background-upper{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.35)}.emby-slider-background-upper-accent{background:#cb272a}.emby-slider-background-lower{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--slider-lower-opacity))}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.emby-slider-background-backdropfilter{-webkit-backdrop-filter:blur(4em) saturate(1.8);backdrop-filter:blur(4em) saturate(1.8)}}.recordingIcon-active{color:#c33!important}.textActionButton.dragging{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.dragging-over.full-drop-target .listItem-content{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;color:#fff!important}.dragging-over-top::before,.dragging-over-bottom::after,.dragging-over-left::before,.dragging-over-right::after{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.checkboxLabel-lockedfield-embeddedintofield{border-inline-start-color:var(--line-background)!important;border-top-width:var(--line-size)!important;border-bottom-width:var(--line-size)!important}.checkboxLabel-lockedfield{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.chkLockedField:checked+span{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.chkLockedField:focus-visible+span{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.tabs-viewmenubar-backgroundcontainer{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.tabs-viewmenubar:focus-within .emby-tab-button-active:not(:focus){background:0 0}.dockedtabs{border-top:var(--line-size) solid var(--line-background)}.dockedtabs-tab-button{background:0 0!important}.dockedtabs-tab-button.emby-tab-button:focus{color:inherit}.dockedtabs-tab-button.emby-tab-button-active{color:var(--theme-accent-text-color)!important}.searchFieldsBottomBorder{border-bottom:var(--line-size) solid var(--line-background)}.activeSession-bottomsection:nth-child(odd){background:hsla(var(--card-background-hue),var(--card-background-saturation),calc(var(--card-background-lightness) + 3%),.2)}.dataGridHeader-content-inner{background:rgba(0,0,0,.5)}.dataGridItem:nth-child(2n){background:rgba(0,0,0,.2)}@media (pointer:fine){.dataGridItem-hoverable:hover,.dataGridItem-hoverable:hover .chkItemSelectContainer{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.2)}}.dataGridItem-focusscale:focus{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.dataGridItem-button:focus-visible{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.errorColor{color:#ea3841}.warningColor{color:orange}.listItem-syncStatusIcon{background:#464648;color:hsl(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness))}.settingsDescriptionContent-logo{fill:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.3);border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.08)}@supports (height:calc(3.125em + 2 * max(3em,4em))){@media all and (orientation:landscape){.itemBackgroundContainer-transparent.withBackdrop{background:0 0!important;opacity:1!important}}}.detailTrackSelect{border-color:transparent}.lyricsScroller{--theme-secondary-text-color-alpha:.3} \ No newline at end of file diff --git a/modules/themes/darkgradient/theme.json b/modules/themes/darkgradient/theme.json new file mode 100644 index 0000000..a262cd6 --- /dev/null +++ b/modules/themes/darkgradient/theme.json @@ -0,0 +1,9 @@ +{ + "themeColor": "#141414", + "androidStatusBarForegroundColor": "light", + "androidNavigationBarForegroundColor": "light", + "preferredLogoImageTypes": [ "LogoLightColor", "LogoLight", "Logo" ], + "systemTheme": "dark", + "titleBarBackgroundColor": "#001935", + "titleBarTextColor": "#dddddd" +} \ No newline at end of file diff --git a/modules/themes/darkgradient/theme_nontv.css b/modules/themes/darkgradient/theme_nontv.css new file mode 100644 index 0000000..e8b8d0f --- /dev/null +++ b/modules/themes/darkgradient/theme_nontv.css @@ -0,0 +1 @@ +@media (pointer:fine){:root{--dialog-border-width:var(--line-size)}}@media all and (pointer:fine){.raised.button-hoverable:hover,.fab.button-hoverable:hover{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 10%),var(--button-background-alpha))}.button-hoverable.button-hoveraccent:hover{background:var(--theme-accent-text-color)}}@media not all and (pointer:fine){.raised.button-hoverable:active,.fab.button-hoverable:active{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 10%),var(--button-background-alpha))}} \ No newline at end of file diff --git a/modules/themes/darkgradient/theme_tv.css b/modules/themes/darkgradient/theme_tv.css new file mode 100644 index 0000000..8ef8be1 --- /dev/null +++ b/modules/themes/darkgradient/theme_tv.css @@ -0,0 +1 @@ +:root{--header-background:transparent;--header-blur-background:transparent;--dialog-border-width:var(--line-size)}.paper-icon-button-light:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-select:focus{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-select:focus~.emby-select-selectedNameContainer,.emby-select:focus~.selectArrowContainer{--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-input:focus,.emby-textarea:focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);border-color:transparent}.emby-toggle-label.emby-toggle-label-focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.emby-button:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.button-link.emby-button:focus{background:0 0;box-shadow:none}.button-link.emby-button:focus::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.epgRow:focus-within .epgCellInner{--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 60%),.5)}.channelCell:focus>.channelCellInner,.programCell:focus>.programCellInner{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.chkLockedField.emby-checkbox:focus{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))} \ No newline at end of file diff --git a/modules/themes/darkgradient/theme_tv_nocssvars.css b/modules/themes/darkgradient/theme_tv_nocssvars.css new file mode 100644 index 0000000..28e6d08 --- /dev/null +++ b/modules/themes/darkgradient/theme_tv_nocssvars.css @@ -0,0 +1 @@ +:root{--background-hue:0;--background-saturation:0%;--background-lightness:15.69%;--background-position:center center;--background-alpha:1;--theme-primary-color-hue:116;--theme-primary-color-saturation:41.7%;--theme-primary-color-lightness:50.2%;--theme-text-color-hue:0;--theme-text-color-saturation:0%;--theme-text-color-lightness:100%;--theme-text-color-alpha:.87;--theme-secondary-text-color-alpha:.6;--theme-accent-text-color-lightbg:green;--theme-accent-text-color-darkbg:#6ccf65;--theme-accent-text-color:var(--theme-accent-text-color-darkbg);--theme-accent-text-color-darkbg-alt:hsl(209, 100%, 50.2%);--theme-accent-text-color-alt:var(--theme-accent-text-color-darkbg-alt);--button-background-hue:0;--button-background-saturation:0%;--button-background-lightness:100%;--button-background-alpha:.2;--button-background-blur-lightness:var(--button-background-lightness);--button-background-blur-alpha:var(--button-background-alpha);--button-blur-backdrop-filter:none;--card-background-hue:var(--button-background-hue);--card-background-saturation:var(--button-background-saturation);--card-background-lightness:100%;--card-background-alpha:.16;--input-background-hue:0;--input-background-saturation:0%;--input-background-lightness:100%;--header-background:transparent;--header-blur-background:transparent;--footer-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 7%));--line-background:hsla(var(--theme-text-color-hue), var(--theme-text-color-saturation), var(--theme-text-color-lightness), .15);--line-size:.08em;--docked-drawer-background:rgba(0, 0, 0, .2);--dialog-border-width:var(--line-size);--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:100%;--focus-blur-background-lightness:100%;--focus-text-color-lightness:0%;--slider-lower-opacity:.7;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));scrollbar-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.4) transparent;background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}@media (-webkit-min-device-pixel-ratio:2){:root{--line-size:.04em}}@media (-webkit-min-device-pixel-ratio:3){:root{--line-size:.02em}}.theme-brickred:root{--background-gradient:linear-gradient(to right, rgb(142, 14, 0), rgb(31, 28, 24))}.theme-brickred.rtl:root{--background-gradient:linear-gradient(to left, rgb(142, 14, 0), rgb(31, 28, 24))}.theme-superman:root{--background-gradient:linear-gradient(to right, rgba(120, 2, 6, var(--background-alpha)), rgba(6, 17, 97, var(--background-alpha)))}.theme-superman.rtl:root{--background-gradient:linear-gradient(to left, rgba(120, 2, 6, var(--background-alpha)), rgba(6, 17, 97, var(--background-alpha)))}.theme-caracara:root{--background-gradient:linear-gradient(to top, rgba(211, 131, 18, var(--background-alpha)), rgba(168, 50, 121, var(--background-alpha)))}.theme-slateblue:root{--background-gradient:linear-gradient(to right, rgb(82, 82, 82), rgb(61, 114, 180))}.theme-slateblue.rtl:root{--background-gradient:linear-gradient(to left, rgb(82, 82, 82), rgb(61, 114, 180))}.theme-purplebliss:root{--background-gradient:linear-gradient(to right, rgb(54, 0, 51), rgb(11, 135, 147))}.theme-purplebliss.rtl:root{--background-gradient:linear-gradient(to left, rgb(54, 0, 51), rgb(11, 135, 147))}.theme-purpleflow:root{--background-gradient:linear-gradient(to right, rgb(123, 67, 151), rgb(220, 36, 48))}.theme-purpleflow.rtl:root{--background-gradient:linear-gradient(to left, rgb(123, 67, 151), rgb(220, 36, 48))}.theme-kashmir:root{--background-gradient:linear-gradient(to right, #614385, #516395)}.theme-constance:root{--background-gradient:linear-gradient(to right, #09203F, #537895)}.theme-blueradiance:root{--background-gradient:url(blueradiance.jpg);--background-position:center top}.theme-wmc:root{--background-gradient:linear-gradient(to bottom, rgba(7, 25, 66, var(--background-alpha)) 0%, 7.04057%, rgba(4, 27, 75, var(--background-alpha)) 14.0811%, 21.3604%, rgba(5, 32, 79, var(--background-alpha)) 28.6396%, 29.9523%, rgba(5, 33, 82, var(--background-alpha)) 31.2649%, 32.1002%, rgba(5, 35, 83, var(--background-alpha)) 32.9356%, 33.7709%, rgba(6, 36, 86, var(--background-alpha)) 34.6062%, 36.9928%, rgba(6, 43, 94, var(--background-alpha)) 39.3795%, 43.1981%, rgba(8, 54, 110, var(--background-alpha)) 47.0167%, 52.9833%, rgba(8, 70, 134, var(--background-alpha)) 58.9499%, 62.7685%, rgba(8, 86, 151, var(--background-alpha)) 66.5871%, 67.7804%, rgba(8, 88, 155, var(--background-alpha)) 68.9737%, 75.0597%, rgba(14, 90, 156, var(--background-alpha)) 81.1456%, 84.4869%, rgba(12, 78, 147, var(--background-alpha)) 87.8282%, 90.3341%, rgba(12, 69, 138, var(--background-alpha)) 92.8401%, 96.42%, rgba(9, 53, 123, var(--background-alpha)) 100%)}.mdl-spinner__layer-1{border-color:var(--theme-accent-text-color-alt)}.dialog{--background-hue:240;--background-saturation:3.4%;--background-lightness:16.4%;--theme-background:hsl(var(--background-hue), var(--background-saturation), var(--background-lightness));background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness));--header-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) + 5%));--footer-background:var(--header-background);--button-background-hue:var(--background-hue);--button-background-saturation:var(--background-saturation);--button-background-lightness:calc(var(--background-lightness) + 10%);--button-background-alpha:.7;--button-background-blur-lightness:var(--button-background-lightness);--button-background-blur-alpha:var(--button-background-alpha);--input-background-hue:var(--background-hue);--input-background-saturation:var(--background-saturation);--input-background-lightness:calc(var(--background-lightness) + 10%);--card-background-hue:var(--background-hue);--card-background-saturation:var(--background-saturation);--card-background-lightness:calc(var(--background-lightness) + 10%);--card-background-alpha:.7;border:var(--dialog-border-width) solid var(--line-background);box-shadow:inset 0 0 0 .07em rgba(0,0,0,.2),0 .56em 2.8em rgba(0,0,0,.55)}.mainDrawer{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) - 5%))}.drawer-docked{background:var(--docked-drawer-background);-webkit-border-end:var(--line-size) solid var(--line-background);border-inline-end:var(--line-size) solid var(--line-background)}.emby-collapsible-button-collapsed::after{background:var(--line-background)}.skinHeader-withBackground.headroom-scrolling{background:var(--header-background)}.appfooter{background:var(--footer-background)}.formDialogFooter:not(.formDialogFooter-clear){background:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}.headerNowPlaying{background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 5%),.7)}.skinHeader.semiTransparent{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background-color:transparent;background:0 0;box-shadow:none!important;border-bottom:0;--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:100%;--focus-text-color-lightness:0%}.skinHeader.semiTransparent::before{position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;transition:opacity .3s ease-out;content:" ";opacity:0;background-color:rgba(0,0,0,.3);background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,0));z-index:-1}.semiTransparent.headroom-scrolling::before{opacity:1}.pageTitleWithDefaultLogo{background-image:url(../logowhite.png)}.backgroundContainer{background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness));background-image:var(--background-gradient);background-position:var(--background-position);background-repeat:no-repeat;background-size:cover;opacity:var(--background-alpha)}.theme-blueradiance .backgroundContainer{background-image:url(blueradiance.jpg)}.backgroundContainer.withBackdrop{--background-alpha:.9;background:var(--background-gradient);background-position:var(--background-position);background-repeat:no-repeat;background-size:cover}.theme-blueradiance .backgroundContainer.withBackdrop{background:url(blueradiance.jpg);background-position:var(--background-position);background-repeat:no-repeat;background-size:cover}.itemBackgroundContainer.withBackdrop{--background-alpha:.85}@media not all and (min-width:50em){.itemBackgroundContainer-preventbackdrop.withBackdrop{--background-alpha:1;background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}}.paper-icon-button-light:active{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}@media all and (pointer:fine){.paper-icon-button-light:hover{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}}.paper-icon-button-light:focus-visible{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,var(--theme-text-color-alpha))}.raised,.fab{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha));color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.paper-icon-button-light-blur{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),.4);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.emby-select,.emby-multilineselect{color:inherit;background:hsla(var(--input-background-hue),var(--input-background-saturation),var(--input-background-lightness),var(--button-background-alpha));border:var(--line-size) solid transparent}.raised-outline{background:0 0;border:.08em solid var(--line-background);-webkit-backdrop-filter:none;backdrop-filter:none}.filter-active{background:#03a9f4;color:#fff}.button-submit{--button-background-hue:var(--theme-primary-color-hue);--button-background-saturation:var(--theme-primary-color-saturation);--button-background-lightness:var(--theme-primary-color-lightness);--button-background-alpha:1;color:#fff}@media not all and (min-width:50em){.detailButton-primary{background:#fff;color:#1a1a1a;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}}.emby-select>option{--theme-text-color-alpha:1;--theme-text-color-lightness:100%;color:#000;background:#fff}.emby-select:focus-visible{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important}.emby-textarea-label:focus-within>.emby-textarea-labeltext,.selectLabel:focus-within>.selectLabelText,.inputLabelFocused{color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.sliderLabel:focus-within>.sliderLabelText{color:var(--theme-accent-text-color)}.emby-collapse-expandIcon,.accentText{color:var(--theme-accent-text-color)}.button-link,.color-accent{color:var(--theme-accent-text-color)}.button-link-color-inherit{color:inherit}.paperList,.visualCardBox{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.listItems-border{border:var(--line-size) solid var(--line-background)}.collapseContent{border:var(--line-size) solid var(--line-background)}.secondaryText,.fieldDescription,.cardText-secondary,.legendDescription{--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5)}.actionsheetDivider{background:var(--line-background)}.selectionCommandsPanel{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 15%));--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.upNextDialog-countdownText{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.navMenuOption-selected .listItem-content{color:#fff}.navMenuOption-selected .listItem-content::before{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)}.listItem-content-bg-background{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}@media (pointer:fine){.listItem-hoverable:hover .listItem-content-bg{background-color:transparent}.listItem-hoverable:hover .listItem-content-bg::before{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.2)}}.navMenuOption-selected .listItem-content-bg{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)!important}.navMenuOption-selected .listItem-content-bg::before{background-color:transparent!important}.listItem-border::after{background:var(--line-background)}.listItem:focus-visible .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,1)}.listItem-tv:focus .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,1);box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-expandout:focus .listItem-content{background:0 0;box-shadow:none}.listItem-expandout:focus .listItem-content::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-tv:focus .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.listItem:focus-visible .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.dragClone .listItem-content{background-color:transparent!important}.dragClone .listItem-content::before{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),1)!important}.progressring-spiner{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.mediaInfoText{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.starIcon{color:#cb272a}.mediaInfoTimerIcon{color:#cb272a}.emby-input,.emby-textarea{color:inherit;background:hsla(var(--input-background-hue),var(--input-background-saturation),var(--input-background-lightness),var(--button-background-alpha));border:var(--line-size) solid transparent}.emby-input:focus-visible,.emby-textarea:focus-visible{box-shadow:0 0 0 .2rem hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.6);border-color:transparent}.emby-checkbox+.checkboxLabel::before{border-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.6)}.chkCardSelect+.checkboxLabel::before{border-color:transparent;background:rgba(255,255,255,.4)}.chkItemSelect-selecthint+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%))}.emby-checkbox:checked+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-checkbox-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-checkbox:checked+.checkboxLabel+.emby-checkbox-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.toggleSwitch{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 11.7%))}.emby-toggle:checked~.toggleSwitch{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio-inner-circle{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio:focus-visible+.radioButtonLabel{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:var(--theme-accent-text-color)}.emby-radio-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-radio:checked~.emby-radio-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.itemProgressBar{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.3)}.itemProgressBarForeground{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.itemProgressBarForeground-recording{background-color:#cb272a}.countIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.playedIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-tab-button-active{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 50%),.5);--theme-text-color-lightness:100%;--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),100%,1)}.emby-tab-button-active.videoosd-tab-button{background:0 0}.emby-tab-button-active.videoosd-tab-button::before{background:#666}.emby-button:focus-visible{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,1)}@media not all and (min-width:50em){.detailButton-autotext:focus-visible{--theme-text-color-lightness:inherit;--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,1)}}.button-link:focus-visible{background:0 0}.button-link:focus-visible::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.firstChannelCell-withscroll{background:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))!important}.channelCellInner{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) - 30%),var(--button-background-alpha))}.programCellInner{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.programCellInner-sports{background:rgba(10,79,95,.7);color:#fff}.programCellInner-movie{background:rgba(86,45,121,.7);color:#fff}.programCellInner-kids{background:rgba(64,125,154,.7);color:#fff}.programCellInner-news{background:rgba(100,125,76,.7);color:#fff}.guide-currentTimeIndicatorDot{border-inline-end-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.channelCell:focus-visible>.channelCellInner,.programCell:focus-visible>.programCellInner{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,1)}.guide-programTextIcon{color:#1e1e1e;background:#555}.infoBanner{background:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.errorBanner{background:#cc3232;color:rgba(255,255,255,.9)}.warningBanner{background:rgba(255,69,0,.1);color:#ff4500}.ratingbutton-icon-withrating{color:#c33!important}.downloadbutton-icon-on{color:#4285f4}.downloadbutton-icon-complete{color:#4285f4}.playstatebutton-icon-played{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.toggleButtonIcon-active{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5);color:#000}.card:focus .cardBox-sideFooter-f{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,var(--theme-text-color-alpha))}.card:focus-visible .cardBox-sideFooter{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,var(--theme-text-color-alpha))}.card:focus .cardContent-bxsborder::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.card:focus-visible .cardContent-bxsborder-fv::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.cardContent-button{background-color:transparent}.cardContent-background,.defaultCardBackground{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.card-focustransform:focus .cardContent-background{box-shadow:0 .278em .975em rgba(0,0,0,.7)}.cardImageContainer-sideFooter{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.04)}.listItemOverlayButtonIcon,.dataGridItemOverlayButton-imagehover:hover{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-scroller::-webkit-scrollbar-track-piece{background-color:transparent}.emby-scroller::-webkit-scrollbar-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5)}.emby-slider-background{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.3)}.emby-slider{color:inherit}.emby-slider-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.emby-slider-background-upper{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.35)}.emby-slider-background-upper-accent{background:#cb272a}.emby-slider-background-lower{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--slider-lower-opacity))}.recordingIcon-active{color:#c33!important}.textActionButton.dragging{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.dragging-over.full-drop-target .listItem-content{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;color:#fff!important}.dragging-over-top::before,.dragging-over-bottom::after,.dragging-over-left::before,.dragging-over-right::after{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.checkboxLabel-lockedfield-embeddedintofield{border-inline-start-color:var(--line-background)!important;border-top-width:var(--line-size)!important;border-bottom-width:var(--line-size)!important}.checkboxLabel-lockedfield{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.chkLockedField:checked+span{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.chkLockedField:focus-visible+span{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.tabs-viewmenubar-backgroundcontainer{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.tabs-viewmenubar:focus-within .emby-tab-button-active:not(:focus){background:0 0}.dockedtabs{border-top:var(--line-size) solid var(--line-background)}.dockedtabs-tab-button{background:0 0!important}.dockedtabs-tab-button.emby-tab-button:focus{color:inherit}.dockedtabs-tab-button.emby-tab-button-active{color:var(--theme-accent-text-color)!important}.searchFieldsBottomBorder{border-bottom:var(--line-size) solid var(--line-background)}.activeSession-bottomsection:nth-child(odd){background:hsla(var(--card-background-hue),var(--card-background-saturation),calc(var(--card-background-lightness) + 3%),.2)}.dataGridHeader-content-inner{background:rgba(0,0,0,.5)}.dataGridItem:nth-child(2n){background:rgba(0,0,0,.2)}@media (pointer:fine){.dataGridItem-hoverable:hover,.dataGridItem-hoverable:hover .chkItemSelectContainer{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.2)}}.dataGridItem-focusscale:focus{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,1)}.dataGridItem-button:focus-visible{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,1)}.errorColor{color:#ea3841}.warningColor{color:orange}.listItem-syncStatusIcon{background:#464648;color:hsl(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness))}.settingsDescriptionContent-logo{fill:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.3);border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.08)}@media all and (min-width:50em){.itemBackgroundContainer.withBackdrop{background:rgba(0,0,0,.82)!important;opacity:1!important}}.detailTrackSelect{border-color:transparent}.lyricsScroller{--theme-secondary-text-color-alpha:.3}.paper-icon-button-light:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,var(--theme-text-color-alpha))}.emby-select:focus{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,1)}.emby-select:focus~.emby-select-selectedNameContainer,.emby-select:focus~.selectArrowContainer{--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,1)}.emby-input:focus,.emby-textarea:focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);border-color:transparent}.emby-toggle-label.emby-toggle-label-focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.emby-button:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,1);box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.button-link.emby-button:focus{background:0 0;box-shadow:none}.button-link.emby-button:focus::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.epgRow:focus-within .epgCellInner{--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1);background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) + 60%),.5)}.channelCell:focus>.channelCellInner,.programCell:focus>.programCellInner,.channelCell:focus .secondaryText{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,1)}.chkLockedField.emby-checkbox:focus{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.sideFooterCard:focus .cardText,.listItem:focus .secondaryText{color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),0%,1)} \ No newline at end of file diff --git a/modules/themes/light/theme.css b/modules/themes/light/theme.css new file mode 100644 index 0000000..363a3d6 --- /dev/null +++ b/modules/themes/light/theme.css @@ -0,0 +1 @@ +:root{--background-hue:0;--background-saturation:0%;--background-lightness:100%;--theme-primary-color-hue:116;--theme-primary-color-saturation:41.7%;--theme-primary-color-lightness:50.2%;--theme-text-color-hue:0;--theme-text-color-saturation:0%;--theme-text-color-lightness:0%;--theme-text-color-alpha:1;--theme-secondary-text-color-alpha:.56;--theme-accent-text-color-lightbg:green;--theme-accent-text-color-darkbg:#6ccf65;--theme-accent-text-color:var(--theme-accent-text-color-lightbg);--theme-accent-text-color-lightbg-alt:hsl(209, 100%, 50.2%);--theme-accent-text-color-alt:var(--theme-accent-text-color-lightbg-alt);--button-background-hue:240;--button-background-saturation:23.81%;--button-background-lightness:93.88%;--button-background-alpha:.7;--button-background-blur-lightness:var(--button-background-lightness);--button-background-blur-alpha:var(--button-background-alpha);--button-blur-backdrop-filter:none;--card-background-hue:240;--card-background-saturation:14.29%;--card-background-lightness:96.25%;--card-background-alpha:.7;--input-background-hue:0;--input-background-saturation:0%;--input-background-lightness:100%;--header-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) - 3%));--header-blur-background:hsla(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) - 4.2%), .72);--footer-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) - 3%));--line-background:hsla(var(--theme-text-color-hue), var(--theme-text-color-saturation), var(--theme-text-color-lightness), .15);--line-size:.08em;--docked-drawer-background:hsla(0, 0%, 56%, .2);--dialog-border-width:0;--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:13.33%;--focus-blur-background-lightness:13.33%;--focus-text-color-lightness:100%;--slider-lower-opacity:.7;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));scrollbar-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.45) transparent}@media (-webkit-min-device-pixel-ratio:2){:root{--line-size:.04em}}@media (-webkit-min-device-pixel-ratio:3){:root{--line-size:.02em}}.mdl-spinner__layer-1{border-color:var(--theme-accent-text-color-alt)}.dialog{--header-background:hsl(var(--background-hue), var(--background-saturation), calc(var(--background-lightness) - 10%));--footer-background:var(--header-background);background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness));border:var(--dialog-border-width) solid var(--line-background);box-shadow:inset 0 0 0 .07em rgba(255,255,255,.2),0 .56em 2.8em rgba(0,0,0,.25)}.mainDrawer{background:#f2f2f7}.drawer-docked{background:var(--docked-drawer-background);-webkit-border-end:var(--line-size) solid var(--line-background);border-inline-end:var(--line-size) solid var(--line-background)}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.dialog-blur,.drawer-open-backdropfilter:not(.drawer-docked){background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) - 4.2%),.72);-webkit-backdrop-filter:blur(4em) saturate(2.1);backdrop-filter:blur(4em) saturate(2.1)}}.emby-collapsible-button-collapsed::after{background:var(--line-background)}.skinHeader-withBackground.headroom-scrolling{background:var(--header-background)}.appfooter{background:var(--footer-background)}.formDialogFooter:not(.formDialogFooter-clear){background:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.skinHeader-withBackground.skinHeader-withbackdropfilter.headroom-scrolling:not(.semiTransparent){background:var(--header-blur-background);-webkit-backdrop-filter:blur(4em) saturate(2.1);backdrop-filter:blur(4em) saturate(2.1)}.appfooter-withbackdropfilter{background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) - 4.2%),.72);-webkit-backdrop-filter:blur(4em) saturate(2.1);backdrop-filter:blur(4em) saturate(2.1)}}.headerNowPlaying{background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) - 5%),.7)}.skinHeader.semiTransparent{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background-color:transparent;background:0 0;box-shadow:none!important;border-bottom:0;--focus-background-hue:0;--focus-background-saturation:0%;--focus-background-lightness:100%;--focus-text-color-lightness:0%}.skinHeader.semiTransparent::before{position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;transition:opacity .3s ease-out;content:" ";opacity:0;background-color:rgba(0,0,0,.3);background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,0));z-index:-1}.semiTransparent.headroom-scrolling::before{opacity:1}.pageTitleWithDefaultLogo{background-image:url(../logodark.png)}html,.backgroundContainer{background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}.backgroundContainer.withBackdrop{background-color:rgba(255,255,255,.8)}.itemBackgroundContainer.withBackdrop{background-color:rgba(0,0,0,.82)}@media not all and (min-width:50em){.itemBackgroundContainer-preventbackdrop.withBackdrop{background-color:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))}}.paper-icon-button-light:active{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}@media all and (pointer:fine){.paper-icon-button-light:hover{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}}.paper-icon-button-light:focus-visible{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.raised,.fab{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha));color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.paper-icon-button-light-blur{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),.4);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.emby-select,.emby-multilineselect{color:inherit;background:hsla(var(--input-background-hue),var(--input-background-saturation),var(--input-background-lightness),var(--button-background-alpha));border:var(--line-size) solid var(--line-background)}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.raised-backdropfilter,.fab-backdropfilter,.emby-select-backdropfilter.detailTrackSelect,.paper-icon-button-light-blur-bf{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-blur-lightness),var(--button-background-blur-alpha));-webkit-backdrop-filter:var(--button-blur-backdrop-filter);backdrop-filter:var(--button-blur-backdrop-filter)}.paper-icon-button-light-blur-bf{-webkit-backdrop-filter:blur(4em) saturate(1.8);backdrop-filter:blur(4em) saturate(1.8)}}.raised-outline{background:0 0;border:.08em solid var(--line-background);-webkit-backdrop-filter:none;backdrop-filter:none}.filter-active{background:#03a9f4;color:#fff}.button-submit{--button-background-hue:var(--theme-primary-color-hue);--button-background-saturation:var(--theme-primary-color-saturation);--button-background-lightness:var(--theme-primary-color-lightness);--button-background-alpha:1;background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),var(--button-background-alpha));color:#fff}@media not all and (min-width:50em){.detailButton-primary{background:#2c2c2c;color:#fff;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}}.emby-select>option{--theme-text-color-alpha:1;--theme-text-color-lightness:0%;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));background:hsl(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness))}.emby-select:focus-visible{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important}.emby-textarea-label:focus-within>.emby-textarea-labeltext,.selectLabel:focus-within>.selectLabelText,.inputLabelFocused{color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.sliderLabel:focus-within>.sliderLabelText{color:var(--theme-accent-text-color)}.emby-collapse-expandIcon,.accentText{color:var(--theme-accent-text-color)}.button-link,.color-accent{color:var(--theme-accent-text-color)}.button-link-color-inherit{color:inherit}.paperList,.visualCardBox{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.listItems-border{border:var(--line-size) solid var(--line-background)}.collapseContent{border:var(--line-size) solid var(--line-background)}.secondaryText,.fieldDescription,.cardText-secondary,.legendDescription{--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.cardText-first{--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.actionsheetDivider{background:var(--line-background)}.selectionCommandsPanel{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) - 15%));--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.upNextDialog-countdownText{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.navMenuOption-selected .listItem-content{color:#fff}.navMenuOption-selected .listItem-content::before{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)}.listItem-content-bg-background{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}@media (pointer:fine){.listItem-hoverable:hover .listItem-content-bg{background-color:transparent}.listItem-hoverable:hover .listItem-content-bg::before{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.2)}}.navMenuOption-selected .listItem-content-bg{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),1)!important}.navMenuOption-selected .listItem-content-bg::before{background-color:transparent!important}.listItem-border::after{background:var(--line-background)}.listItem:focus-visible .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.listItem-tv:focus .listItem-content-bg{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-expandout:focus .listItem-content{background:0 0;box-shadow:none}.listItem-expandout:focus .listItem-content::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),1)!important;box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.listItem-tv:focus .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.listItem:focus-visible .listItem-content-fb::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.7)}.dragClone .listItem-content{background-color:transparent!important}.dragClone .listItem-content::before{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),1)!important}.progressring-spiner{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.mediaInfoText{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.starIcon{color:#cb272a}.mediaInfoTimerIcon{color:#cb272a}.emby-input,.emby-textarea{color:inherit;background:hsla(var(--input-background-hue),var(--input-background-saturation),var(--input-background-lightness),var(--button-background-alpha));border:var(--line-size) solid var(--line-background)}.emby-input:focus-visible,.emby-textarea:focus-visible{box-shadow:0 0 0 .2rem hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.6);border-color:transparent}.emby-checkbox+.checkboxLabel::before{border-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.6)}.chkCardSelect+.checkboxLabel::before{border-color:transparent;background:rgba(255,255,255,.4)}.chkItemSelect-selecthint+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),calc(var(--theme-primary-color-lightness) - 5%))}.emby-checkbox:checked+.checkboxLabel::before{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness));background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-checkbox-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-checkbox:checked+.checkboxLabel+.emby-checkbox-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.toggleSwitch{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) - 11.7%))}.emby-toggle:checked~.toggleSwitch{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio-inner-circle{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-radio:focus-visible+.radioButtonLabel{background-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:var(--theme-accent-text-color)}.emby-radio-focusoutline{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.2)}.emby-radio:checked~.emby-radio-focusoutline{background:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2)}.itemProgressBar{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.2)}.itemProgressBarForeground{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.itemProgressBarForeground-recording{background-color:#cb272a}.countIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.playedIndicator{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-tab-button-active{background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) - 82%),.5);--theme-text-color-lightness:100%;--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-tab-button-active.videoosd-tab-button{background:0 0}.emby-tab-button-active.videoosd-tab-button::before{background:#666}.emby-button:focus-visible{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}@media not all and (min-width:50em){.detailButton-autotext:focus-visible{--theme-text-color-lightness:inherit;--theme-text-color-alpha:var(--theme-secondary-text-color-alpha);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}}.button-link:focus-visible{background:0 0}.button-link:focus-visible::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.firstChannelCell-withscroll{background:hsl(var(--background-hue),var(--background-saturation),var(--background-lightness))!important}.epgCellInner{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.channelCellInner{background-color:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) - 3%),1)}.programCellInner-sports{background:rgba(61,130,146,.5)}.programCellInner-movie{background:rgba(137,96,172,.5)}.programCellInner-kids{background:rgba(115,176,205,.5)}.programCellInner-news{background:rgba(151,176,127,.5)}.guide-currentTimeIndicatorDot{border-inline-end-color:hsla(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness),.2);color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.channelCell:focus-visible>.channelCellInner,.programCell:focus-visible>.programCellInner{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.guide-programTextIcon{color:#1e1e1e;background:hsl(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) - 23.5%))}.infoBanner{background:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.errorBanner{background:#cc3232;color:rgba(255,255,255,.9)}.warningBanner{background:rgba(255,69,0,.1);color:#ff4500}.ratingbutton-icon-withrating{color:#c33}.downloadbutton-icon-on{color:#4285f4}.downloadbutton-icon-complete{color:#4285f4}.playstatebutton-icon-played{color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.toggleButtonIcon-active{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5);color:#fff}.card:focus .cardBox-sideFooter-f{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))!important}.card:focus-visible .cardBox-sideFooter{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))!important}.card:focus .cardContent-bxsborder::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.card:focus-visible .cardContent-bxsborder-fv::before{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.8)!important}.cardContent-button{background-color:transparent}.cardContent-background,.defaultCardBackground{background-color:hsla(var(--card-background-hue),var(--card-background-saturation),var(--card-background-lightness),var(--card-background-alpha))}.card-focustransform:focus .cardContent-background{box-shadow:0 .278em .975em rgba(0,0,0,.5)}.cardImageContainer-sideFooter{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.04)}.listItemOverlayButtonIcon,.dataGridItemOverlayButton-imagehover:hover{background-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.emby-scroller::-webkit-scrollbar-track-piece{background-color:transparent}.emby-scroller::-webkit-scrollbar-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.5)}.emby-slider-background{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.3)}.emby-slider{color:inherit}.emby-slider-thumb{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),1)}.emby-slider-background-upper{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.35)}.emby-slider-background-upper-accent{background:#cb272a}.emby-slider-background-lower{background:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--slider-lower-opacity))}@supports (backdrop-filter:blur(1em)) or (-webkit-backdrop-filter:blur(1em)){.emby-slider-background-backdropfilter{-webkit-backdrop-filter:blur(4em) saturate(1.8);backdrop-filter:blur(4em) saturate(1.8)}}.recordingIcon-active{color:#c33!important}.textActionButton.dragging{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.dragging-over.full-drop-target .listItem-content{background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;color:#fff!important}.dragging-over-top::before,.dragging-over-bottom::after,.dragging-over-left::before,.dragging-over-right::after{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness))}.checkboxLabel-lockedfield-embeddedintofield{border-inline-start-color:var(--line-background)!important;border-top-width:var(--line-size)!important;border-bottom-width:var(--line-size)!important}.checkboxLabel-lockedfield{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))!important}.chkLockedField:checked+span{border-color:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important;background:hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))!important}.chkLockedField:focus-visible+span{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))}.tabs-viewmenubar-backgroundcontainer{background:hsla(var(--button-background-hue),var(--button-background-saturation),var(--button-background-lightness),var(--button-background-alpha))}.tabs-viewmenubar:focus-within .emby-tab-button-active:not(:focus){background:0 0;color:inherit}.dockedtabs{border-top:var(--line-size) solid var(--line-background)}.dockedtabs-tab-button{background:0 0!important}.dockedtabs-tab-button.emby-tab-button:focus{color:inherit}.dockedtabs-tab-button.emby-tab-button-active{color:var(--theme-accent-text-color)!important}.searchFieldsBottomBorder{border-bottom:var(--line-size) solid var(--line-background)}.activeSession-bottomsection:nth-child(odd){background:hsla(var(--card-background-hue),var(--card-background-saturation),calc(var(--card-background-lightness) - 5%),.5)}.dataGridHeader-content-inner{background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) - 2%))}.dataGridItem:nth-child(2n){background:hsl(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) - 2%))}@media (pointer:fine){.dataGridItem-hoverable:hover,.dataGridItem-hoverable:hover .chkItemSelectContainer{background-color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),.1)}}.dataGridItem-focusscale:focus{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.dataGridItem-button:focus-visible{background:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.errorColor{color:#ea3841}.warningColor{color:#ff8c00}.listItem-syncStatusIcon{background:#c5c5c7;color:hsl(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--focus-text-color-lightness))}.settingsDescriptionContent-logo{fill:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.3);border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.08)}@supports (height:calc(3.125em + 2 * max(3em,4em))){@media all and (orientation:landscape){.itemBackgroundContainer-transparent.withBackdrop{background:0 0!important}}}.detailTrackSelect{border-color:transparent}.lyricsScroller{--theme-secondary-text-color-alpha:.3} \ No newline at end of file diff --git a/modules/themes/light/theme.json b/modules/themes/light/theme.json new file mode 100644 index 0000000..8fdc335 --- /dev/null +++ b/modules/themes/light/theme.json @@ -0,0 +1,8 @@ +{ + "themeColor": "#ffffff", + "androidStatusBarForegroundColor": "dark", + "androidNavigationBarForegroundColor": "dark", + "systemTheme": "light", + "titleBarBackgroundColor": "#e9e9e9", + "titleBarTextColor": "#222222" +} \ No newline at end of file diff --git a/modules/themes/light/theme_nontv.css b/modules/themes/light/theme_nontv.css new file mode 100644 index 0000000..5885e14 --- /dev/null +++ b/modules/themes/light/theme_nontv.css @@ -0,0 +1 @@ +@media (pointer:fine){:root{--theme-text-color-alpha:.87;--dialog-border-width:var(--line-size)}}@media all and (pointer:fine){.raised.button-hoverable:hover,.fab.button-hoverable:hover{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) - 10%),var(--button-background-alpha))}.button-hoverable.button-hoveraccent:hover{background:var(--theme-accent-text-color)}}@media not all and (pointer:fine){.raised.button-hoverable:active,.fab.button-hoverable:active{background:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) - 10%),var(--button-background-alpha))}} \ No newline at end of file diff --git a/modules/themes/light/theme_tv.css b/modules/themes/light/theme_tv.css new file mode 100644 index 0000000..319b380 --- /dev/null +++ b/modules/themes/light/theme_tv.css @@ -0,0 +1 @@ +:root{--theme-text-color-alpha:.87;--header-background:transparent;--header-blur-background:transparent;--dialog-border-width:var(--line-size)}.paper-icon-button-light:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-select:focus{border-color:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)!important;--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-select:focus~.emby-select-selectedNameContainer,.emby-select:focus~.selectArrowContainer{--theme-text-color-lightness:var(--focus-text-color-lightness)!important;--theme-text-color-alpha:1!important;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.cardText-first{--theme-text-color-alpha:.87;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.emby-input:focus,.emby-textarea:focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);border-color:transparent}.emby-toggle-label.emby-toggle-label-focus{box-shadow:0 0 0 .2rem hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.emby-button:focus{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9);--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.button-link.emby-button:focus{background:0 0;box-shadow:none}.button-link.emby-button:focus::before{background:hsla(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness),.9)}.epgRow:focus-within .epgCellInner{--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha));background:hsla(var(--background-hue),var(--background-saturation),calc(var(--background-lightness) - 60%),.5)}.channelCell:focus>.channelCellInner,.programCell:focus>.programCellInner{background-color:hsl(var(--focus-background-hue),var(--focus-background-saturation),var(--focus-background-lightness));--theme-text-color-lightness:var(--focus-text-color-lightness);--theme-text-color-alpha:1;color:hsla(var(--theme-text-color-hue),var(--theme-text-color-saturation),var(--theme-text-color-lightness),var(--theme-text-color-alpha))}.chkLockedField.emby-checkbox:focus{box-shadow:0 0 0 .12em hsl(var(--theme-primary-color-hue),var(--theme-primary-color-saturation),var(--theme-primary-color-lightness))} \ No newline at end of file diff --git a/modules/themes/logodark.png b/modules/themes/logodark.png new file mode 100644 index 0000000..a6c51ff Binary files /dev/null and b/modules/themes/logodark.png differ diff --git a/modules/themes/logowhite.png b/modules/themes/logowhite.png new file mode 100644 index 0000000..7e55e04 Binary files /dev/null and b/modules/themes/logowhite.png differ diff --git a/modules/themes/themecontroller.js b/modules/themes/themecontroller.js new file mode 100644 index 0000000..f032afe --- /dev/null +++ b/modules/themes/themecontroller.js @@ -0,0 +1 @@ +define(["exports","./../approuter.js","./../emby-apiclient/events.js","./../layoutmanager.js","./../common/usersettings/usersettings.js"],function(_exports,_approuter,_events,_layoutmanager,_usersettings){function ThemeController(){}function onInitRouteRequest(e,routeRequest){"/home"===routeRequest.path&&(_layoutmanager.default.tv&&"horizontal"===_usersettings.default.tvHome()?(routeRequest.controller="home_horiz/home.js",routeRequest.contentPath="/home_horiz/home.html",routeRequest.adjustHeaderForEmbeddedScroll=!1):(routeRequest.controller="home/home.js",routeRequest.contentPath="/home/home.html",routeRequest.adjustHeaderForEmbeddedScroll=!0))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,ThemeController.prototype.load=function(){return _events.default.on(_approuter.default,"initrouterequest",onInitRouteRequest),Promise.resolve()},ThemeController.prototype.hasSettings=function(){return!1},ThemeController.prototype.showSettings=function(){return Promise.resolve()},ThemeController.prototype.destroy=function(){_events.default.off(_approuter.default,"initrouterequest",onInitRouteRequest)};_exports.default=ThemeController}); \ No newline at end of file diff --git a/modules/toast/toast.css b/modules/toast/toast.css new file mode 100644 index 0000000..d52b817 --- /dev/null +++ b/modules/toast/toast.css @@ -0,0 +1 @@ +.toast-group{position:fixed;z-index:9999999;left:0;right:0;bottom:0;inset-inline-start:0;inset-inline-end:0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;gap:1vh;pointer-events:none;-webkit-flex-direction:column;flex-direction:column;padding-bottom:8vh;padding-bottom:calc(8vh + env(safe-area-inset-bottom,0));font-size:110%}.toast-group-top{-webkit-flex-direction:column-reverse;flex-direction:column-reverse;bottom:initial;-webkit-align-items:flex-end;align-items:flex-end;top:0;padding-bottom:0;padding-top:2em;padding-top:calc(2em + env(safe-area-inset-top,0));-webkit-padding-end:2em;padding-inline-end:2em;-webkit-padding-end:calc(2em + env(safe-area-inset-right,0));padding-inline-end:calc(2em + env(safe-area-inset-right,0))}.toast{font-size:inherit;font-family:inherit;font-weight:inherit;max-inline-size:min(25ch,90vw);padding:1.5ch 2ch;border-radius:.6em;will-change:transform,opacity;-webkit-animation:toast-fade-in .3s ease,toast-slide-in .3s ease,toast-fade-out .3s ease 3s;animation:toast-fade-in .3s ease,toast-slide-in .3s ease,toast-fade-out .3s ease 3s;display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-align-items:center;align-items:center}.toast-top{-webkit-animation:toast-fade-in .3s ease,toast-slide-in-top .3s ease,toast-fade-out .3s ease 3s;animation:toast-fade-in .3s ease,toast-slide-in-top .3s ease,toast-fade-out .3s ease 3s}.toast-center{-webkit-animation:toast-scale-up .3s ease-out,toast-scale-down .3s ease-out 3s;animation:toast-scale-up .3s ease-out,toast-scale-down .3s ease-out 3s;position:fixed;top:50%;inset-inline-start:50%;width:16em;height:17em;-webkit-margin-start:-8em;margin-inline-start:-8em;margin-top:-8.5em;-webkit-justify-content:center;justify-content:center;overflow:hidden;-webkit-flex-direction:column;flex-direction:column;padding-top:0;padding-bottom:0;z-index:9999999}.toast-primarytext{margin:0}.toast-secondaryText{font-size:92%;margin-top:.25em}.toast-icon{font-size:160%;margin:0;-webkit-margin-end:.5em;margin-inline-end:.5em}.toast-icon-center{font-size:800%;-webkit-flex-shrink:0;flex-shrink:0;width:1em;height:1em;margin:0}@-webkit-keyframes toast-scale-up{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@keyframes toast-scale-up{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@-webkit-keyframes toast-scale-down{to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@keyframes toast-scale-down{to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@-webkit-keyframes toast-fade-in{0%{opacity:0}}@keyframes toast-fade-in{0%{opacity:0}}@-webkit-keyframes toast-fade-out{to{opacity:0}}@keyframes toast-fade-out{to{opacity:0}}@-webkit-keyframes toast-slide-in{0%{-webkit-transform:translateY(5vh);transform:translateY(5vh)}}@keyframes toast-slide-in{0%{-webkit-transform:translateY(5vh);transform:translateY(5vh)}}@-webkit-keyframes toast-slide-in-top{0%{-webkit-transform:translateY(-5vh);transform:translateY(-5vh)}}@keyframes toast-slide-in-top{0%{-webkit-transform:translateY(-5vh);transform:translateY(-5vh)}}@supports (scale:1){.toast{will-change:translate,opacity}.toast-center{will-change:scale,opacity}@-webkit-keyframes toast-scale-up{0%{scale:.8;opacity:0}}@keyframes toast-scale-up{0%{scale:.8;opacity:0}}@-webkit-keyframes toast-scale-down{to{scale:.8;opacity:0}}@keyframes toast-scale-down{to{scale:.8;opacity:0}}@-webkit-keyframes toast-slide-in{0%{translate:0 5vh}}@keyframes toast-slide-in{0%{translate:0 5vh}}@-webkit-keyframes toast-slide-in-top{0%{translate:0 -5vh}}@keyframes toast-slide-in-top{0%{translate:0 -5vh}}} \ No newline at end of file diff --git a/modules/toast/toast.js b/modules/toast/toast.js new file mode 100644 index 0000000..fabfdcc --- /dev/null +++ b/modules/toast/toast.js @@ -0,0 +1 @@ +define(["exports","./../layoutmanager.js","./../dom.js","./../dialoghelper/dialoghelper.js"],function(_exports,_layoutmanager,_dom,_dialoghelper){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/toast/toast.css"]);var fillFromTop=_layoutmanager.default.tv,sectionElement=function(){var section=document.createElement("section");section.classList.add("toast-group"),fillFromTop&§ion.classList.add("toast-group-top");return document.body.appendChild(section),section}();var nativeAnimationSupported=document.documentElement.animate;function appendToastElement(element,position){nativeAnimationSupported&§ionElement.children.length&&window.matchMedia("(prefers-reduced-motion: no-preference)").matches?function(element,position){var t;"center"===position?sectionElement.appendChild(element):(t=sectionElement.offsetHeight,sectionElement.appendChild(element),element=sectionElement.offsetHeight-t,"top"===position&&(element*=-1),t=sectionElement.animate([{transform:"translateY("+element+"px)"},{transform:"translateY(0)"}],{duration:150,easing:"ease-out"}),(position=document.timeline)&&(t.startTime=position.currentTime))}(element,position):sectionElement.appendChild(element)}function getAnimationPromise(elem){return elem.getAnimations?Promise.allSettled(elem.getAnimations().map(function(o){return o.finished})):(delay=3300,new Promise(function(resolve,reject){setTimeout(resolve,delay)}));var delay}_exports.default=function(options){return"string"==typeof options&&(options={text:options}),require(["css!modules/toast/toast.css"]).then(function(){var position=fillFromTop?"top":null,toast=function(options,position){var iconClass,toast=document.createElement("output"),html="";return options.icon&&(iconClass="toast-icon flex-shrink-zero","center"===position&&(iconClass+=" toast-icon-center"),options.iconStrikeThrough&&(iconClass+=" icon_circle_strike"),html=(html+='')+options.icon+""),html+='
',html="center"===position?(html+='

')+options.text+"

":(html+='
')+options.text+"
",options.secondaryText&&(html=(html+='
')+options.secondaryText+"
"),html+="
",toast.classList.add("toast"),toast.classList.add("dialog"),_dom.default.allowBackdropFilter()&&toast.classList.add("dialog-blur"),position&&toast.classList.add("toast-"+position),"center"===position&&toast.classList.add("toast-large"),toast.setAttribute("role","status"),toast.innerHTML=html,toast}(options,position);return appendToastElement(toast,position),getAnimationPromise(toast).then(function(){sectionElement.removeChild(toast)})})}}); \ No newline at end of file diff --git a/modules/transparencymanagement.js b/modules/transparencymanagement.js new file mode 100644 index 0000000..0a78b52 --- /dev/null +++ b/modules/transparencymanagement.js @@ -0,0 +1 @@ +define(["./emby-apiclient/events.js","./common/playback/playbackmanager.js","./approuter.js"],function(_events,_playbackmanager,_approuter){var currentPlayer;function onPlaybackStart(e,state){onStateChanged.call(this,e,state)}function onStateChanged(event,state){var _state$NowPlayingItem;this.isLocalPlayer&&"Video"===(null==(_state$NowPlayingItem=state.NowPlayingItem)?void 0:_state$NowPlayingItem.MediaType)?state.IsBackgroundPlayback&&_approuter.default.setTransparency("backdrop"):_approuter.default.setTransparency("none")}function onPlaybackStopped(e,state){_approuter.default.setTransparency("none")}function bindToPlayer(player){player!==currentPlayer&&(function(){var player=currentPlayer;player&&(_events.default.off(player,"playbackstart",onPlaybackStart),_events.default.off(player,"statechange",onPlaybackStart),_events.default.off(player,"playbackstop",onPlaybackStopped),currentPlayer=null)}(),currentPlayer=player)&&(function(player){var state=_playbackmanager.default.getPlayerState(player);onStateChanged.call(player,{type:"init"},state)}(player),_events.default.on(player,"playbackstart",onPlaybackStart),_events.default.on(player,"statechange",onPlaybackStart),_events.default.on(player,"playbackstop",onPlaybackStopped))}_events.default.on(_playbackmanager.default,"playerchange",function(e,player){bindToPlayer(player)}),bindToPlayer(_playbackmanager.default.getCurrentPlayer())}); \ No newline at end of file diff --git a/modules/viewmanager/basesettingscontainer.js b/modules/viewmanager/basesettingscontainer.js new file mode 100644 index 0000000..4b8f5b9 --- /dev/null +++ b/modules/viewmanager/basesettingscontainer.js @@ -0,0 +1 @@ +define(["exports","./../layoutmanager.js","./../common/appsettings.js","./../common/servicelocator.js","./../common/usersettings/usersettings.js","./../common/usersettings/usersettingsbuilder.js","./../common/datetime.js","./../common/globalize.js","./../common/responsehelper.js","./../emby-apiclient/connectionmanager.js","./../loading/loading.js"],function(_exports,_layoutmanager,_appsettings,_servicelocator,_usersettings,_usersettingsbuilder,_datetime,_globalize,_responsehelper,_connectionmanager,_loading){function BaseSettingsContainer(view){this.view=view,this.view.addEventListener("change",function(e){var _e$detail,elem,instance;!1!==(null==(_e$detail=e.detail)?void 0:_e$detail.isUserChange)&&(elem=e.target.closest(".autoSetting.autoSave"))&&(instance=this,"true"===elem.getAttribute("data-changedelay")?setTimeout(function(){instance.saveAutoSetting(elem,{},!0).catch(_responsehelper.default.handleErrorResponse)},300):instance.saveAutoSetting(elem,{},!0).catch(_responsehelper.default.handleErrorResponse),showHideFieldsFeatureChecksOnContainer(instance,instance.view,!1,!0))}.bind(this))}function getListId(elem){return elem.getAttribute("data-id")}function getSettingMemberInfo(elem,isGet){var method,field=elem.getAttribute("data-settingfield");return field?{type:"field",member:field}:(method=(method=isGet?elem.getAttribute("data-getsettingmethod"):method)||elem.getAttribute("data-settingmethod"))?{type:"method",member:method}:(field=elem.getAttribute("data-usersettingsfield"))?{type:"usersettingsfield",member:field}:null}function getValueToSave(elem){var value,joinDelimiter;return"checkbox"===elem.type?value=elem.checked:elem.classList.contains("checkboxList")||elem.classList.contains("toggleList")?value=Array.prototype.map.call(elem.querySelectorAll('input[type="checkbox"]:checked'),getListId):"SELECT"===elem.tagName&&elem.hasAttribute("multiple")?(value=elem.getValues(),(joinDelimiter=elem.getAttribute("data-joindelimiter"))&&(value=value.join(joinDelimiter))):value=elem.value,value}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,BaseSettingsContainer.prototype.settingsOnResume=function(options){null!=options&&options.refresh&&this.loadSettings(options)},BaseSettingsContainer.prototype.loadSettings=function(options){var instance=this;return this.loadSettingsInternal().then(function(){options.autoFocus&&instance.autoFocus({skipIfNotEnabled:!0})})},BaseSettingsContainer.prototype.getSettingValueFromOwner=function(owner,memberInfo){switch(memberInfo.member){case"getEnableLogoAsTitle":return owner.getEnableLogoAsTitle(_globalize.default.getCurrentLocale());case"showDetailPoster":return owner.showDetailPoster(_layoutmanager.default.tv)}switch(memberInfo.type){case"field":return owner[memberInfo.member];case"usersettingsfield":return this.getNamedSettingsOwner("usersettings").get(memberInfo.member);case"method":return owner[memberInfo.member]();default:throw new Error("unknown member type: "+memberInfo.type)}},BaseSettingsContainer.prototype.setFieldValue=function(elem,value,triggerChange){var joinDelimiter;"checkbox"===elem.type?elem.checked=!0===value:elem.classList.contains("checkboxList")||elem.classList.contains("toggleList")?function(elem,value){Array.isArray(value)||(value=value.split(function(elem){return elem.getAttribute("data-delimiter")||","}(elem)));for(var checkboxes=elem.querySelectorAll('input[type="checkbox"]'),i=0,length=checkboxes.length;i--\x3e","<\/script>")),(hasScript=document.createElement("div")).innerHTML=html,hasScript.querySelector('.view,div[data-role="page"]')}(viewHtml,_options$params);options.view=isPluginpage}function getViewHideEventInfo(previousViewInfo,newViewInfo){previousViewInfo=Object.assign({},previousViewInfo);return previousViewInfo.newViewInfo=newViewInfo,{detail:previousViewInfo,bubbles:!0,cancelable:!1}}function dispatchViewBeforeHide(instance,view,eventInfo,dispatchLegacyPageEvent){var _view$controller;null!=(_view$controller=view.controller)&&_view$controller.onPause({event:eventInfo,newViewInfo:null==(_view$controller=eventInfo.detail)?void 0:_view$controller.newViewInfo}),instance.onBeforeHide&&instance.onBeforeHide(eventInfo),dispatchViewEvent(view,eventInfo,"viewbeforehide",dispatchLegacyPageEvent)}function onBeforeChange(instance,previousViewInfo,newViewInfo,isRestored,isBack){previousViewInfo&&dispatchViewBeforeHide(instance,previousViewInfo.view,getViewHideEventInfo(previousViewInfo,newViewInfo),!0);instance=newViewInfo.view,isRestored=getViewEventDetail(newViewInfo,isRestored,isBack,previousViewInfo),isBack=isRestored.detail.navMenuId;isBack||"search"===(null==(previousViewInfo=isRestored.detail.params)?void 0:previousViewInfo.type)&&(isBack="search"),isBack=isBack||(isBack=window.location.href.toString()).substring(isBack.indexOf("#!")+2),isRestored.detail.navMenuId=isBack,newViewInfo.controllerFactory&&!instance.controller&&(instance.controller=new newViewInfo.controllerFactory(instance,isRestored.detail.params)),newViewInfo.controller&&instance.controller&&(previousViewInfo=function(urlOrPath){try{var pathname=new URL(urlOrPath).pathname;if(pathname)return pathname}catch(e){}return urlOrPath}(newViewInfo.controller),instance.controller.name=previousViewInfo.replaceAll(".js","").replaceAll(".","").replaceAll("/","-"),instance.classList.add("view-"+instance.controller.name)),dispatchViewEvent(instance,isRestored,"viewbeforeshow",!0)}function onViewChange(previousViewInfo,newViewInfo,isRestore,isBack){previousViewInfo&&dispatchViewEvent(previousViewInfo.view,getViewHideEventInfo(previousViewInfo,newViewInfo),"viewhide",!0),isRestore&&removeViewInfoFromCurrentViews(newViewInfo),CurrentViewStack.push(newViewInfo);var _newView$controller,newView=newViewInfo.view;return((null==(_newView$controller=newView.controller)?void 0:_newView$controller.transitionPromise)||Promise.resolve()).then(function(){return function(viewInfo,isRestore,isBack,previousViewInfo){(function(){var splash;!splashRemoved&&(splashRemoved=!0,splash=document.querySelector(".app-splash-container")||document.querySelector(".app-splash"))&&splash.remove()})();var _viewInfo$params,newView=viewInfo.view,eventDetail=getViewEventDetail(viewInfo,isRestore,isBack,previousViewInfo);"true"!==(null==previousViewInfo?void 0:previousViewInfo.params.asDialog)||"true"===(null==(_viewInfo$params=viewInfo.params)?void 0:_viewInfo$params.asDialog)&&!isBack||removeAndDestroy(previousViewInfo);viewInfo.abortController.signal.aborted?console.log("aborting onNewViewDisplayed due to leaving view"):(isRestore?(_viewInfo$params=viewInfo.activeElement)&&document.body.contains(_viewInfo$params)&&_focusmanager.default.isCurrentlyFocusable(_viewInfo$params)?_focusmanager.default.focus(_viewInfo$params):autoFocusView(newView,{skipIfNotEnabled:!0}):!1!==viewInfo.autoFocus&&autoFocusView(newView,{skipIfNotEnabled:!0}),(isBack=function(e){return{refresh:!e.detail.isRestored,previousViewInfo:e.detail.previousViewInfo,signal:null==(e=e.detail.abortController)?void 0:e.signal}}(eventDetail)).autoFocus=!eventDetail.detail.isRestored,null!=(previousViewInfo=newView.controller)&&previousViewInfo.onResume(isBack),newView.dispatchEvent(new CustomEvent("viewshow",eventDetail)),newView.classList.contains("needsPageEvents")&&newView.dispatchEvent(new CustomEvent("pageshow",eventDetail)))}(newViewInfo,isRestore,isBack,previousViewInfo),newView})}function autoFocusView(view,options){var controller=view.controller;return controller&&controller.autoFocus?controller.autoFocus(options):_focusmanager.default.autoFocus(view,options)}function dispatchViewEvent(view,eventInfo,eventName,dispatchLegacyPageEvent){view.dispatchEvent(new CustomEvent(eventName,eventInfo));if(dispatchLegacyPageEvent&&view.classList.contains("needsPageEvents"))try{view.dispatchEvent(new CustomEvent(eventName.replace("view","page"),eventInfo))}catch(err){console.log("error dispatching page event: "+err)}}function getViewEventDetail(viewInfo,isRestore,isBack,previousViewInfo){var view=viewInfo.view;return viewInfo.isRestored=isRestore,viewInfo.isBack=isBack,viewInfo.previousViewInfo=previousViewInfo,null==viewInfo.title&&(viewInfo.title=view.getAttribute("data-title")||null),viewInfo.helpUrl||(viewInfo.helpUrl=view.getAttribute("data-helpurl")||null),{detail:viewInfo,bubbles:!0,cancelable:!1}}function removeAndDestroy(viewInfoToRemove,newViewToReplaceWith){removeViewInfoFromCurrentViews(viewInfoToRemove);var viewInfo,_viewInfo$abortContro,viewToRemove=viewInfoToRemove.view;((viewInfo=viewInfoToRemove).activeElement=null)!=(_viewInfo$abortContro=viewInfo.abortController)&&_viewInfo$abortContro.abort(),_viewInfo$abortContro=viewInfo.view,null!=(viewInfo=_viewInfo$abortContro.controller)&&viewInfo.destroy&&viewInfo.destroy(),_viewInfo$abortContro.controller=null,"true"!==viewInfoToRemove.params.asDialog&&(newViewToReplaceWith?mainAnimatedPages.replaceChild(newViewToReplaceWith,viewToRemove):viewToRemove.remove())}function ViewManager(){}_events.default.on(_layoutmanager.default,"modechange",disableRestoreOnCurrentViews),_events.default.on(_usersettings.default,"change",function(e,name){switch(name){case"tvhome":case"enableHomescreenFocusPreviews":disableRestoreOnCurrentViews()}}),_events.default.on(_appsettings.default,"change",function(e,name){switch(name){case"name":case"datetimelocale":case"language":disableRestoreOnCurrentViews()}}),ViewManager.prototype.loadView=function(options,signal){var instance=this,previousViewInfo=this.currentViewInfo(),isPluginpage=(previousViewInfo&&(previousViewInfo.activeElement=document.activeElement),options.isPluginPage),view=(normalizeNewView(options,isPluginpage),options.view),dependencies=view.getAttribute("data-require"),dependencyPromises=[];return(dependencies=dependencies?dependencies.split(","):[]).length&&dependencyPromises.push(require(dependencies)),isPluginpage&&(dependencyPromises.push(Emby.importModule("./legacy/dashboard.js")),dependencyPromises.push(require(["css!legacy/dashboard.css"]))),Promise.all(dependencyPromises).then(function(){var viewClassList=view.classList;return viewClassList.add("page"),isPluginpage&&(viewClassList.add("needsPageEvents"),function(view){var scrollSlider,content,scroller=view.querySelector('[is="emby-scroller"]');scroller||view.closest('[is="emby-scroller"]')||((content=view.querySelector(':scope > [data-role="content"], :scope > .content-primary'))&&(scroller=view,scrollSlider=content),scroller&&scrollSlider||(scrollSlider=null==(scroller=view.querySelector('[data-role="content"]'))?void 0:scroller.querySelector(":scope > .content-primary")),scroller&&scrollSlider?(scroller.classList.add("scrollFrameY"),scroller.setAttribute("data-horizontal","false"),scroller.setAttribute("data-forcescrollbar","true"),scroller.setAttribute("data-bindheader","true"),scroller.setAttribute("is","emby-scroller"),scroller.is="emby-scroller",scrollSlider.classList.add("scrollSlider","padded-top-page","padded-bottom-page","padded-left","padded-right","padded-left-page"),_embyScroller.default.upgradeElement(scroller)):null!=(content=view.querySelector(".content-primary"))&&content.classList.add("padded-top-page","padded-bottom-page","padded-left","padded-right","padded-left-page"))}(view)),viewClassList.add.apply(viewClassList,ViewClasses),mainAnimatedPages=mainAnimatedPages||document.querySelector(".mainAnimatedPages"),"true"!==(null==(viewClassList=options.params)?void 0:viewClassList.asDialog)&&((viewClassList=function(ignoreViewInfo){for(var candidates=[],views=CurrentViewStack,i=0,length=views.length;i')+'

'+_globalize.default.translate("Settings")+"

";return dlg.innerHTML=_globalize.default.translateDocument(dialogOptions=dialogOptions+""+responses,"sharedcomponents"),function(context,options){context.querySelector("form").addEventListener("submit",onSubmit);for(var visibleSettings=options.visibleSettings||[],fieldsSection=context.querySelector(".showFieldsSection"),availableFields=options.availableFields||[],html="",i=0,length=availableFields.length;i')+'')+(""+column.name+"")+"";fieldsSection.querySelector(".showFieldsList").innerHTML=html;for(var settingElements=context.querySelectorAll(".viewSetting"),_i=0,_length=settingElements.length;_i<_length;_i++)visibleSettings.includes(settingElements[_i].getAttribute("data-settingname"))?settingElements[_i].classList.remove("hide"):settingElements[_i].classList.add("hide");for(var selectImageType=context.querySelector(".selectImageType"),viewOptionsToRemove=[],_i2=0,_length2=selectImageType.options.length;_i2<_length2;_i2++)options.viewOptions.includes(selectImageType.options[_i2].value)||viewOptionsToRemove.push(selectImageType.options[_i2]);for(var _i3=0,_length3=viewOptionsToRemove.length;_i3<_length3;_i3++)viewOptionsToRemove[_i3].remove()}(dlg,options),setFieldValues(dlg,options.settings),dlg.querySelector(".selectImageType").addEventListener("change",function(e){var visibleSettings=options.visibleSettings||[];if(supportsCalc&&supportsMin&&supportsCssVariables&&"datagrid"!==this.value&&"list"!==this.value&&visibleSettings.includes("imageSize")?dlg.querySelector(".fldCardSize").classList.remove("hide"):dlg.querySelector(".fldCardSize").classList.add("hide"),!function(context,availableFields,currentViewType){for(var anyVisible,fields=context.querySelectorAll(".viewField"),availableFieldIds=availableFields.map(mapFieldToId),i=0,length=fields.length;i +
+
+
+ + ${Settings} + +
+
+ +
+ +
+ +
${ImageSizeHelp}
+
+ +
+ +
+ +
+ +
${GroupItemsIntoCollectionsHelp}
+
+ +
+ +
${GroupItemsIntoTagsHelp}
+
+
+
+ +
+ ${HeaderShowFields} +
+
+
+
+
+ \ No newline at end of file diff --git a/modules/webvtt/vtt.css b/modules/webvtt/vtt.css new file mode 100644 index 0000000..e4233a2 --- /dev/null +++ b/modules/webvtt/vtt.css @@ -0,0 +1 @@ +:root{--subtitles-window-top:0px;--subtitles-window-bottom:0px;--osd-height:0px}.videoSubtitles{position:absolute;bottom:10%;text-align:center;left:0;right:0;top:2%;inset-inline-start:0;inset-inline-end:0;color:#fff;margin:0 1.5%;transition:bottom 240ms ease-out;font-size:1.4em;box-sizing:border-box;line-height:1.3}@supports (color:var(--fake-var)){.videoSubtitles{top:var(--subtitles-window-top);bottom:var(--subtitles-window-bottom)}@supports (height:calc(3.125em + 2 * max(3em,4em))){.videoSubtitles-autoposition{bottom:max(var(--subtitles-window-bottom),var(--osd-height))}}} \ No newline at end of file diff --git a/modules/webvtt/vtt.js b/modules/webvtt/vtt.js new file mode 100644 index 0000000..2747b24 --- /dev/null +++ b/modules/webvtt/vtt.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/webvtt/vtt.css","css!!tv|modules/webvtt/vtt_nontv.css","css!tv|modules/webvtt/vtt_tv.css"]);function ParsingError(errorData,message){this.name="ParsingError",this.code=errorData.code,this.message=message||errorData.message}function parseTimeStamp(input){function computeSeconds(h,m,s,f){return 3600*(0|h)+60*(0|m)+(0|s)+(0|f)/1e3}input=input.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return input?input[3]?computeSeconds(input[1],input[2],input[3].replace(":",""),input[4]):59","‎":"‎","‏":"‏"," ":" "},TAG_NAME={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},TAG_ANNOTATION={v:"title",lang:"lang"},NEEDS_PARENT={rt:"ruby"};function parseContent(window,input){function unescape1(e){return ESCAPE[e]}for(var t,node,ts,type,annotation,tagName,rootDiv=window.document.createElement("div"),current=rootDiv,tagStack=[];null!==(t=function(){var m;return input?(m=(m=input.match(/^([^<]*)(<[^>]*>?)?/))[1]||m[2],input=input.substr(m.length),m):null}());)"<"===t[0]?"/"===t[1]?tagStack.length&&tagStack[tagStack.length-1]===t.substr(2).replace(">","")&&(tagStack.pop(),current=current.parentNode):(node=void 0,(ts=parseTimeStamp(t.substr(1,t.length-2)))?(node=window.document.createProcessingInstruction("timestamp",ts),current.appendChild(node)):(ts=t.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/))&&(type=ts[1],annotation=ts[3],tagName=void 0,node=(tagName=TAG_NAME[type])?(tagName=window.document.createElement(tagName),(type=TAG_ANNOTATION[type])&&annotation&&(tagName[type]=annotation.trim()),tagName):null)&&function(current,element){return!NEEDS_PARENT[element.localName]||NEEDS_PARENT[element.localName]===current.localName}(current,node)&&(ts[2]&&(node.className=ts[2].substr(1).replace("."," ")),tagStack.push(ts[1]),current.appendChild(node),current=node)):current.appendChild(window.document.createTextNode(function(s){for(var sMatch;sMatch=s.match(/&(amp|quot|lt|gt|lrm|rlm|nbsp);/);)s=s.replace(sMatch[0],unescape1);return s}(t)));return rootDiv}var strongRTLRanges=[[1470,1470],[1472,1472],[1475,1475],[1478,1478],[1488,1514],[1520,1524],[1544,1544],[1547,1547],[1549,1549],[1563,1563],[1566,1610],[1645,1647],[1649,1749],[1765,1766],[1774,1775],[1786,1805],[1807,1808],[1810,1839],[1869,1957],[1969,1969],[1984,2026],[2036,2037],[2042,2042],[2048,2069],[2074,2074],[2084,2084],[2088,2088],[2096,2110],[2112,2136],[2142,2142],[2208,2208],[2210,2220],[8207,8207],[64285,64285],[64287,64296],[64298,64310],[64312,64316],[64318,64318],[64320,64321],[64323,64324],[64326,64449],[64467,64829],[64848,64911],[64914,64967],[65008,65020],[65136,65140],[65142,65276],[67584,67589],[67592,67592],[67594,67637],[67639,67640],[67644,67644],[67647,67669],[67671,67679],[67840,67867],[67872,67897],[67903,67903],[67968,68023],[68030,68031],[68096,68096],[68112,68115],[68117,68119],[68121,68147],[68160,68167],[68176,68184],[68192,68223],[68352,68405],[68416,68437],[68440,68466],[68472,68479],[68608,68680],[126464,126467],[126469,126495],[126497,126498],[126500,126500],[126503,126503],[126505,126514],[126516,126519],[126521,126521],[126523,126523],[126530,126530],[126535,126535],[126537,126537],[126539,126539],[126541,126543],[126545,126546],[126548,126548],[126551,126551],[126553,126553],[126555,126555],[126557,126557],[126559,126559],[126561,126562],[126564,126564],[126567,126570],[126572,126578],[126580,126583],[126585,126588],[126590,126590],[126592,126601],[126603,126619],[126625,126627],[126629,126633],[126635,126651],[1114109,1114109]];function pushNodes(nodeStack,node){for(var i=node.childNodes.length-1;0<=i;i--)nodeStack.push(node.childNodes[i])}function determineBidi(cueDiv,options){var nodeStack=[],text="";if(cueDiv&&cueDiv.childNodes&&!options.forceLTR)for(pushNodes(nodeStack,cueDiv);text=function nextTextNode(nodeStack,options){if(!nodeStack||!nodeStack.length)return null;var node=nodeStack.pop(),text=node.textContent||node.innerText;{var m;if(text)return!options.forceLTR&&text.match(/(^| )[\?\!\.\,]/m)?(options.forceLTR=!0,null):(m=text.match(/^.*(\n|\r)/))?m[nodeStack.length=0]:text}return"ruby"===node.tagName?nextTextNode(nodeStack,options):node.childNodes?(pushNodes(nodeStack,node),nextTextNode(nodeStack,options)):void 0}(nodeStack,options);)for(var i=0;i=currentRange[0]&&charCode<=currentRange[1])return 1}}(text.charCodeAt(i)))return"rtl";return"ltr"}function StyleBox(){}StyleBox.prototype.applyStyles=function(styles,div){div=div||this.div,Object.assign(div.style,styles)},StyleBox.prototype.formatStyle=function(val,unit){return 0===val?0:val+unit};var supportsFlowRelativeTextAlign=CSS.supports("text-align","start");function CueStyleBox(window,cue,options){StyleBox.call(this),this.cue=cue,options=options||{},this.cueDiv=parseContent(window,cue.text);var styles=Object.assign({position:"relative",left:0,right:0,top:0,bottom:0,display:"inline-block",padding:".08em .5em",borderRadius:".25em"},options.textStyle),textPos=(styles.writingMode=cue.vertical?"lr"===cue.vertical?"vertical-lr":"vertical-rl":"horizontal-tb",this.applyStyles(styles,this.cueDiv),this.div=window.document.createElement("div"),(styles={textAlign:"middle"===(window=cue.align||"center")?"center":"start"!==window||supportsFlowRelativeTextAlign?"end"!==window||supportsFlowRelativeTextAlign?window:"right":"left",whiteSpace:"pre-line",position:"absolute"}).direction=determineBidi(this.cueDiv,options),styles.writingMode=cue.vertical?"lr"===cue.vertical?"vertical-lr":"vertical-rl":"horizontal-tb",styles.unicodeBidi="plaintext",this.applyStyles(styles),this.div.appendChild(this.cueDiv),0),cueSize=cue.size||100;switch(cue.positionAlign){case"start":textPos=cue.position;break;case"center":textPos=cue.position-cueSize/2;break;case"end":textPos=cue.position-cueSize}cue.vertical?this.applyStyles({top:this.formatStyle(textPos,"%"),height:this.formatStyle(cueSize,"%")}):this.applyStyles({left:this.formatStyle(textPos,"%"),width:this.formatStyle(cueSize,"%")})}function BoxPosition(obj){var height,width,top,rects;obj.div&&(height=obj.div.offsetHeight,width=obj.div.offsetWidth,top=obj.div.offsetTop,(rects=(rects=obj.div.childNodes)&&rects[0])&&rects.getClientRects&&(rects=rects.getClientRects()),obj=obj.div.getBoundingClientRect(),rects=rects?Math.max(rects[0]&&rects[0].height||0,obj.height/rects.length):0),this.left=obj.left,this.right=obj.right,this.top=obj.top||top,this.height=obj.height||height,this.bottom=obj.bottom||top+(obj.height||height),this.width=obj.width||width,this.lineHeight=void 0!==rects?rects:obj.lineHeight}function moveBoxToLinePosition(window,styleBox,containerBox,boxPositions){var relativeToEnd,size,boxPosition=new BoxPosition(styleBox),cue=styleBox.cue,linePos=function(cue){return"number"==typeof cue.line&&(!1!==cue.snapToLines||0<=cue.line&&cue.line<=100)?cue.line:-1}(cue),axis=[];if(!1!==cue.snapToLines){switch(cue.vertical||""){case"":axis=["+y","-y"],size="height",relativeToEnd=linePos<0;break;case"rl":axis=["+x","-x"],size="width";break;case"lr":axis=["-x","+x"],size="width"}var step=boxPosition.lineHeight,position=step*Math.round(linePos),maxPosition=containerBox[size]+step,initialAxis=axis[0];Math.abs(position)>maxPosition&&(position=position<0?-1:1,position*=Math.ceil(maxPosition/step)*step),linePos<0&&(position+=cue.vertical?containerBox.width:Math.floor(+containerBox.height),axis=axis.reverse()),boxPosition.move(initialAxis,position)}else{var calculatedPercentage=boxPosition.lineHeight/containerBox.height*100;switch(cue.lineAlign){case"center":linePos-=calculatedPercentage/2;break;case"end":relativeToEnd=!0,linePos-=calculatedPercentage,linePos=Math.max(linePos,100)}switch(cue.vertical||""){case"":styleBox.applyStyles({top:styleBox.formatStyle(linePos,"%")});break;case"rl":styleBox.applyStyles({left:styleBox.formatStyle(linePos,"%")});break;case"lr":styleBox.applyStyles({right:styleBox.formatStyle(linePos,"%")})}axis=["+y","-x","+x","-y"],boxPosition=new BoxPosition(styleBox)}maxPosition=function(b,axis){for(var bestPosition,specifiedPosition=new BoxPosition(b),percentage=1,i=0;ib2.left&&this.topb2.top},BoxPosition.prototype.overlapsAny=function(boxes){for(var i=0;i=container.top&&this.bottom<=container.bottom&&this.left>=container.left&&this.right<=container.right},BoxPosition.prototype.overlapsOppositeAxis=function(container,axis){switch(axis){case"+x":return this.leftcontainer.right;case"+y":return this.topcontainer.bottom}},BoxPosition.prototype.intersectPercentage=function(b2){return Math.max(0,Math.min(this.right,b2.right)-Math.max(this.left,b2.left))*Math.max(0,Math.min(this.bottom,b2.bottom)-Math.max(this.top,b2.top))/(this.height*this.width)},BoxPosition.getSimpleBoxPosition=function(obj){var height=obj.div?obj.div.offsetHeight:obj.tagName?obj.offsetHeight:0,width=obj.div?obj.div.offsetWidth:obj.tagName?obj.offsetWidth:0,top=obj.div?obj.div.offsetTop:obj.tagName?obj.offsetTop:0;return{left:(obj=obj.div?obj.div.getBoundingClientRect():obj.tagName?obj.getBoundingClientRect():obj).left,right:obj.right,top:obj.top||top,height:obj.height||height,bottom:obj.bottom||top+(obj.height||height),width:obj.width||width}},WebVTT.StringDecoder=function(){return{decode:function(data){if(!data)return"";if("string"!=typeof data)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(data))}}},WebVTT.convertCueToDOMTree=function(window,cuetext){return window&&cuetext?parseContent(window,cuetext):null},WebVTT.processCues=function(window,cues,overlay,options,hasBeenReset){if(!window||!cues||!overlay)return null;for(;overlay.firstChild;)overlay.removeChild(overlay.firstChild);if(function(cues){if(hasBeenReset)return 1;for(var i=0;i',document.body.insertBefore(dlg,document.body.firstChild),instance.videoDialog=dlg),dlg.querySelector("#player")}(this);return setCurrentSrc(this,0,options,signal)},YoutubePlayer.prototype.isPlaying=function(){return null!=this.currentYoutubePlayer},YoutubePlayer.prototype.stop=function(destroyPlayer){return stopInternal(this,destroyPlayer,!0),Promise.resolve()},YoutubePlayer.prototype.destroy=function(){var dlg=this.videoDialog;dlg&&(this.videoDialog=null,dlg.parentNode.removeChild(dlg))},YoutubePlayer.prototype.canPlayMediaType=function(mediaType){switch(mediaType){case"Audio":case"Video":return!0;default:return!1}},YoutubePlayer.prototype.canPlayItem=function(item){return!1},YoutubePlayer.prototype.canPlayUrl=function(url){return url.toLowerCase().includes("youtube.com")},YoutubePlayer.prototype.getDeviceProfile=function(){return Promise.resolve({})},YoutubePlayer.prototype.setSubtitleStreamIndex=function(index){},YoutubePlayer.prototype.canSetAudioStreamIndex=function(){return!1},YoutubePlayer.prototype.setAudioStreamIndex=function(index){},YoutubePlayer.prototype.currentTime=function(val){var currentYoutubePlayer=this.currentYoutubePlayer;if(currentYoutubePlayer&¤tYoutubePlayer.getCurrentTime){if(null==val)return 1e3*currentYoutubePlayer.getCurrentTime();currentYoutubePlayer.seekTo(val/1e3,!0)}},YoutubePlayer.prototype.duration=function(val){var currentYoutubePlayer=this.currentYoutubePlayer;return currentYoutubePlayer&¤tYoutubePlayer.getDuration?1e3*currentYoutubePlayer.getDuration():null},YoutubePlayer.prototype.pause=function(){var instance,currentYoutubePlayer=this.currentYoutubePlayer;currentYoutubePlayer&¤tYoutubePlayer.pauseVideo&&(currentYoutubePlayer.pauseVideo(),instance=this,setTimeout(function(){_events.default.trigger(instance,"pause")},200))},YoutubePlayer.prototype.unpause=function(){var instance,currentYoutubePlayer=this.currentYoutubePlayer;currentYoutubePlayer&¤tYoutubePlayer.playVideo&&(currentYoutubePlayer.playVideo(),instance=this,setTimeout(function(){_events.default.trigger(instance,"unpause")},200))},YoutubePlayer.prototype.paused=function(){var currentYoutubePlayer=this.currentYoutubePlayer;return!(!currentYoutubePlayer||!currentYoutubePlayer.getPlayerState)&&2===currentYoutubePlayer.getPlayerState()},YoutubePlayer.prototype.volume=function(val){return null!=val?this.setVolume(val):this.getVolume()},YoutubePlayer.prototype.setVolume=function(val){var currentYoutubePlayer=this.currentYoutubePlayer;currentYoutubePlayer&&null!=val&¤tYoutubePlayer.setVolume(val)},YoutubePlayer.prototype.getVolume=function(){var currentYoutubePlayer=this.currentYoutubePlayer;if(currentYoutubePlayer&¤tYoutubePlayer.getVolume)return currentYoutubePlayer.getVolume()},YoutubePlayer.prototype.setMute=function(mute){var currentYoutubePlayer=this.currentYoutubePlayer;mute?currentYoutubePlayer&¤tYoutubePlayer.mute&&(currentYoutubePlayer.mute(),triggerVolumeChangeOnDelay(this)):currentYoutubePlayer&¤tYoutubePlayer.unMute&&(currentYoutubePlayer.unMute(),triggerVolumeChangeOnDelay(this))},YoutubePlayer.prototype.isMuted=function(){var currentYoutubePlayer=this.currentYoutubePlayer;if(currentYoutubePlayer&¤tYoutubePlayer.isMuted)return currentYoutubePlayer.isMuted()};_exports.default=YoutubePlayer}); \ No newline at end of file diff --git a/modules/youtubeplayer/style.css b/modules/youtubeplayer/style.css new file mode 100644 index 0000000..06d7a85 --- /dev/null +++ b/modules/youtubeplayer/style.css @@ -0,0 +1 @@ +.youtubePlayerContainer{position:fixed!important;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.transparentDocument .youtubePlayerContainer{background:#000!important}.youtubePlayerContainer video{margin:0!important;padding:0!important;width:100%;height:100%} \ No newline at end of file diff --git a/music/albums.js b/music/albums.js new file mode 100644 index 0000000..5958292 --- /dev/null +++ b/music/albums.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/itemstab.js"],function(_exports,_itemstab){function AlbumsTab(view,params,options){_itemstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(AlbumsTab.prototype,_itemstab.default.prototype),AlbumsTab.prototype.getContext=function(){return"music"},AlbumsTab.prototype.getSettingsKey=function(){return _itemstab.default.prototype.getSettingsKey.call(this)+"-albums"},AlbumsTab.prototype.getItemTypes=function(){return["MusicAlbum"]},AlbumsTab.prototype.loadTemplate=function(){return this.loadItemsTemplate()};_exports.default=AlbumsTab}); \ No newline at end of file diff --git a/music/music.html b/music/music.html new file mode 100644 index 0000000..4713a12 --- /dev/null +++ b/music/music.html @@ -0,0 +1,40 @@ +
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
\ No newline at end of file diff --git a/music/music.js b/music/music.js new file mode 100644 index 0000000..7c0e708 --- /dev/null +++ b/music/music.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/tabbedview.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js"],function(_exports,_tabbedview,_globalize,_embyItemscontainer,_embyButton,_embyScroller){function MusicView(view,params){_tabbedview.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(MusicView.prototype,_tabbedview.default.prototype),MusicView.prototype.getTabs=function(){var subviews=this.item.Subviews||["albums","albumartists","artists","playlists","songs","genres","folders"],collectionType=this.item.CollectionType;return[{name:_globalize.default.translate("Suggestions"),id:"suggestions"},{name:"audiobooks"===collectionType?_globalize.default.translate("HeaderAudioBooks"):_globalize.default.translate("Albums"),id:"albums",enabled:subviews.includes("albums")},{name:_globalize.default.translate("HeaderAlbumArtists"),id:"albumartists",enabled:"audiobooks"!==collectionType},{name:"audiobooks"===collectionType?_globalize.default.translate("Authors"):_globalize.default.translate("Artists"),id:"artists",enabled:subviews.includes("artists")},{name:_globalize.default.translate("Composers"),id:"composers",enabled:"audiobooks"!==collectionType},{name:_globalize.default.translate("Playlists"),id:"playlists",enabled:subviews.includes("playlists")},{name:_globalize.default.translate("Genres"),id:"genres",enabled:subviews.includes("genres")},{name:_globalize.default.translate("Songs"),id:"songs",enabled:"audiobooks"!==collectionType},{name:_globalize.default.translate("Tags"),id:"tags",enabled:subviews.includes("tags")},{name:_globalize.default.translate("Folders"),id:"folders"}]},MusicView.prototype.loadTabController=function(id){switch(id){case"suggestions":return Emby.importModule("./music/suggestions.js");case"albums":return Emby.importModule("./music/albums.js");case"albumartists":case"artists":case"composers":return Emby.importModule("./modules/tabbedview/artiststab.js");case"playlists":return Emby.importModule("./modules/tabbedview/playliststab.js");case"genres":return Emby.importModule("./modules/tabbedview/genrestab.js");case"songs":return Emby.importModule("./music/songs.js");case"tags":return Emby.importModule("./modules/tabbedview/tagstab.js");case"folders":return Emby.importModule("./modules/tabbedview/folderstab.js");default:throw new Error("tab not found: "+id)}},MusicView.prototype.getAutoBackdropItemTypes=function(){return["MusicAlbum"]},MusicView.prototype.supportsHorizontalTabScroll=function(){return!0},MusicView.prototype.getTabControllerOptions=function(id){var options=_tabbedview.default.prototype.getTabControllerOptions.apply(this,arguments);return"genres"===id&&(options.queryIncludeItemTypes=["MusicAlbum"]),options};_exports.default=MusicView}); \ No newline at end of file diff --git a/music/songs.js b/music/songs.js new file mode 100644 index 0000000..b180360 --- /dev/null +++ b/music/songs.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/itemstab.js"],function(_exports,_itemstab){function SongsTab(view,params,options){_itemstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(SongsTab.prototype,_itemstab.default.prototype),SongsTab.prototype.getContext=function(){return"music"},SongsTab.prototype.getSettingsKey=function(){return _itemstab.default.prototype.getSettingsKey.call(this)+"-songs"},SongsTab.prototype.getItemTypes=function(){return["Audio"]},SongsTab.prototype.loadTemplate=function(){return this.loadItemsTemplate()};_exports.default=SongsTab}); \ No newline at end of file diff --git a/music/suggestions.js b/music/suggestions.js new file mode 100644 index 0000000..ad64823 --- /dev/null +++ b/music/suggestions.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/basetab.js","./../modules/common/globalize.js","./../modules/layoutmanager.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/tabbedview/sectionscontroller.js","./../modules/approuter.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/itemmanager/itemmanager.js"],function(_exports,_basetab,_globalize,_layoutmanager,_embyItemscontainer,_embyScroller,_embyButton,_sectionscontroller,_approuter,_connectionmanager,_itemmanager){function MusicSuggestionsTab(view,params,options){_basetab.default.apply(this,arguments),_sectionscontroller.default.apply(this,arguments),this.view=view,this.params=params}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(MusicSuggestionsTab.prototype,_basetab.default.prototype),Object.assign(MusicSuggestionsTab.prototype,_sectionscontroller.default.prototype),MusicSuggestionsTab.prototype.onItemCustomAction=function(options){var _item$Id,item=options.item;return null!=(_item$Id=item.Id)&&_item$Id.startsWith("music_")&&(_item$Id="/music?serverId="+_connectionmanager.default.getApiClient(item).serverId()+"&parentId="+item.ParentId,1<(item=item.Id.split("_")).length&&(_item$Id+="&tab="+item[1]),_approuter.default.show(_item$Id)),_sectionscontroller.default.prototype.onItemCustomAction.apply(this,arguments)},MusicSuggestionsTab.prototype.fetchSections=function(){var sections=[],collectionType=this.options.item.CollectionType,viewScrollX="x"===this.scrollDirection(),enableFocusPreview=this.enableFocusPreview(),params=(_layoutmanager.default.tv,this.params),parentId=params.parentId,serverId=this.serverId();viewScrollX&&this.options.addCategories&§ions.push({Id:"Categories",Name:" ",CollectionType:"music",Monitor:[],ListOptions:{shape:"square",multiSelect:!1,contextMenu:!1,overlayText:!0,fields:["Name"],action:"custom"},QueryOptions:{EnableUserData:!1},CommandOptions:{},Items:function(instance){var apiClient=instance.getApiClient(),parentId=instance.params.parentId,items=[],instance=null==(instance=instance.options)||null==(instance=instance.item)?void 0:instance.CollectionType;return items.push({Name:"audiobooks"===instance?_globalize.default.translate("HeaderAudioBooks"):_globalize.default.translate("Albums"),Id:"music_albums",ServerId:apiClient.serverId(),ParentId:parentId,Icon:_itemmanager.default.getDefaultIcon({Type:"MusicAlbum"}),Type:"AppCategory",IsFolder:!0}),items.push("audiobooks"===instance?{Name:_globalize.default.translate("Authors"),Id:"music_artists",ServerId:apiClient.serverId(),ParentId:parentId,Icon:_itemmanager.default.getDefaultIcon({Type:"MusicArtist"}),Type:"AppCategory",IsFolder:!0}:{Name:_globalize.default.translate("Artists"),Id:"music_albumartists",ServerId:apiClient.serverId(),ParentId:parentId,Icon:_itemmanager.default.getDefaultIcon({Type:"MusicArtist"}),Type:"AppCategory",IsFolder:!0}),items.push({Name:_globalize.default.translate("Genres"),Id:"music_genres",ServerId:apiClient.serverId(),ParentId:parentId,Icon:_itemmanager.default.getDefaultIcon({Type:"MusicGenre"}),Type:"AppCategory",IsFolder:!0}),Promise.resolve({Items:items,TotalRecordCount:items.length})}(this)});return"audiobooks"===collectionType&§ions.push({Id:"Resume",Name:_globalize.default.translate("HeaderContinueListening"),CollectionType:collectionType,Monitor:["audioplayback","markplayed"],SectionType:"resumeaudio",ListOptions:{preferThumb:"auto",shape:"auto",fields:enableFocusPreview?[]:["Name","Album","ParentName"],showDetailsMenu:!0,context:"home",cardLayout:!1,albumFirst:!0,focusTransformTitleAdjust:!0,animateProgressBar:!0},QueryOptions:{ParentId:parentId,Recursive:!0},CommandOptions:{removeFromResume:!0}}),sections.push({Id:"Latest",Name:"audiobooks"===collectionType?_globalize.default.translate("HeaderLatestAudioBooks"):_globalize.default.translate("HeaderLatestMusic"),CollectionType:collectionType,Monitor:["audioplayback","markplayed"],SectionType:"latestmedia",ListOptions:{shape:"autooverflow",fields:enableFocusPreview?[]:["Name","ParentName"],cardLayout:!0,vibrant:!0},QueryOptions:{ParentId:parentId,Recursive:!0}}),sections.push({Id:"RecentlyPlayed",Name:_globalize.default.translate("HeaderRecentlyPlayed"),CollectionType:collectionType,Monitor:["audioplayback","markplayed"],ImmediateUpdate:!1,ListOptions:{fields:enableFocusPreview?[]:["Name","ParentName"],action:"playallfromhere",sideFooter:!viewScrollX,centerText:!1,shape:"autooverflow"},ViewType:null,QueryOptions:{SortBy:"DatePlayed",SortOrder:"Descending",IncludeItemTypes:"Audio",Recursive:!0,Filters:"IsPlayed",ParentId:parentId},IndexOnStartItemId:!0}),sections.push({Id:"FrequentlyPlayed",Name:_globalize.default.translate("HeaderFrequentlyPlayed"),CollectionType:collectionType,Monitor:["audioplayback","markplayed"],ImmediateUpdate:!1,ListOptions:{fields:enableFocusPreview?[]:["Name","ParentName"],action:"playallfromhere",sideFooter:!viewScrollX,centerText:!1,shape:"autooverflow"},ViewType:null,QueryOptions:{SortBy:"PlayCount",SortOrder:"Descending",IncludeItemTypes:"Audio",Recursive:!0,Filters:"IsPlayed",ParentId:parentId},IndexOnStartItemId:!0}),sections.push({Id:"MusicArtist",Name:"audiobooks"===collectionType?_globalize.default.translate("HeaderFavoriteAuthors"):_globalize.default.translate("HeaderFavoriteArtists"),CollectionType:collectionType,SectionType:"artists",Monitor:["markfavorite"],ListOptions:{shape:"autooverflow",fields:enableFocusPreview?[]:["Name"],round:!0},QueryOptions:{SortBy:"SortName",SortOrder:"Ascending",Recursive:!0,Filters:"IsFavorite",ParentId:parentId},CardSizeOffset:viewScrollX?null:-1,Href:"list/list.html?type=MusicArtist&IsFavorite=true&serverId="+serverId+"&parentId="+params.parentId}),sections.push({Id:"MusicAlbum",Name:"audiobooks"===collectionType?_globalize.default.translate("HeaderFavoriteAudioBooks"):_globalize.default.translate("HeaderFavoriteAlbums"),CollectionType:collectionType,Monitor:["markfavorite"],ListOptions:{shape:"autooverflow",fields:enableFocusPreview?[]:["Name","ParentName"]},QueryOptions:{SortBy:"SortName",SortOrder:"Ascending",IncludeItemTypes:"MusicAlbum",Recursive:!0,Filters:"IsFavorite",ParentId:parentId},Href:"list/list.html?type=MusicAlbum&IsFavorite=true&serverId="+serverId+"&parentId="+params.parentId}),sections.push({Id:"Audio",Name:"audiobooks"===collectionType?_globalize.default.translate("HeaderFavoriteEpisodes"):_globalize.default.translate("HeaderFavoriteSongs"),CollectionType:collectionType,Monitor:["markfavorite"],ImmediateUpdate:!1,ListOptions:{fields:enableFocusPreview?[]:["Name","ParentName"],action:"playallfromhere",sideFooter:!viewScrollX,centerText:!1,shape:"autooverflow"},ViewType:null,QueryOptions:{SortBy:"SortName",IncludeItemTypes:"Audio",Recursive:!0,Filters:"IsFavorite",ParentId:parentId},Href:"list/list.html?type=Audio&IsFavorite=true&serverId="+serverId+"&parentId="+params.parentId}),Promise.resolve(sections)},MusicSuggestionsTab.prototype.onResume=function(options){return _basetab.default.prototype.onResume.apply(this,arguments),_sectionscontroller.default.prototype.onResume.apply(this,arguments)},MusicSuggestionsTab.prototype.onPause=function(){_basetab.default.prototype.onPause.apply(this,arguments),_sectionscontroller.default.prototype.onPause.apply(this,arguments)},MusicSuggestionsTab.prototype.destroy=function(){_basetab.default.prototype.destroy.apply(this,arguments),_sectionscontroller.default.prototype.destroy.apply(this,arguments)};_exports.default=MusicSuggestionsTab}); \ No newline at end of file diff --git a/network/network.html b/network/network.html new file mode 100644 index 0000000..650190c --- /dev/null +++ b/network/network.html @@ -0,0 +1,125 @@ +
+
+
+ +
+
+ +
+ +
${LanNetworksHelpText}
+
+
+ +
${LabelBindToLocalNetworkAddressHelp}
+
+
+ +
${LabelLocalHttpServerPortNumberHelp}
+
+
+ +
${LabelHttpsPortHelp}
+
+ +
+ +
${AllowRemoteAccessHelp}
+
+
+ +
${AllowedRemoteAddressesHelp}
+
+
+ +
+
+ +
${LabelPublicHttpPortHelp}
+
+
+ +
${LabelPublicHttpsPortHelp}
+
+ +
+ +
${LabelExternalDDNSHelp}
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
${LabelCustomCertificatePathHelp}
+
+ +
+ +
${LabelCertificatePasswordHelp}
+
+ +
+ +
+ +
+ +
${LabelEnableAutomaticPortMapHelp}
+
+ +
+ +
${SimultaneousStreamLimitHelp}
+
+
+ +
+ +
${LabelRemoteClientBitrateLimitHelp}
+
+ +
+ +
${NetworkRequestProtocolHelp}
+
+
+
+
+ +
+
+
+
\ No newline at end of file diff --git a/network/network.js b/network/network.js new file mode 100644 index 0000000..272d6fc --- /dev/null +++ b/network/network.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/basesettingsview.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js","./../modules/common/responsehelper.js"],function(_exports,_basesettingsview,_loading,_globalize,_embyInput,_embyButton,_embyToggle,_embySelect,_embyPremierecontainer,_responsehelper){function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function onSubmit(e){var form=this,localAddress=form.querySelector(".txtLocalAddress").value,enableUpnp=form.querySelector(".chkEnableUpnp").checked;!function(localAddress,enableUpnp,callback){localAddress||!enableUpnp?showAlert({text:_globalize.default.translate("SettingsWarning")}).then(callback):callback()}(localAddress,enableUpnp,function(){var validationResult=function(form){return form.querySelector(".txtPublicPort").value!==form.querySelector(".txtPublicHttpsPort").value?form.querySelector(".txtPortNumber").value!==form.querySelector(".txtHttpsPort").value?null:"The http and https ports must be different.":"The public http and https ports must be different."}(form);validationResult?showAlert(validationResult):function(form){var certPath=form.querySelector(".txtCertificatePath").value||null,form=form.querySelector(".selectHttpsMode").value;return"enabled"!==form&&"required"!==form||certPath?Promise.resolve():new Promise(function(resolve,reject){showAlert({text:_globalize.default.translate("HttpsRequiresCert")}).then(reject,reject)})}(form).then(function(){_loading.default.show(),ApiClient.getServerConfiguration().then(function(config){config.LocalNetworkSubnets=form.querySelector(".txtLanNetworks").value.split(",").map(function(s){return s.trim()}).filter(function(s){return 0",i=1;i<=50;i++)html+='";view.querySelector(".selectStreamLimit").innerHTML=html}(view),view.querySelector(".streamLimitPremiereInfo").innerHTML=_globalize.default.translate("FeatureRequiresEmbyPremiere",'',"");var instance=this;view.querySelector(".chkRemoteAccess").addEventListener("change",function(){this.checked?(view.querySelector(".fldExternalAddressFilter").classList.remove("hide"),view.querySelector(".fldExternalAddressFilterMode").classList.remove("hide"),view.querySelector(".fldPublicPort").classList.remove("hide"),view.querySelector(".fldPublicHttpsPort").classList.remove("hide"),view.querySelector(".fldDdns").classList.remove("hide"),view.querySelector(".fldCertificatePath").classList.remove("hide"),view.querySelector(".fldCertPassword").classList.remove("hide"),view.querySelector(".fldHttpsMode").classList.remove("hide"),view.querySelector(".fldRemoteBitrate").classList.remove("hide"),instance.portMapperSupported?view.querySelector(".fldEnableUpnp").classList.remove("hide"):view.querySelector(".fldEnableUpnp").classList.add("hide")):(view.querySelector(".fldExternalAddressFilter").classList.add("hide"),view.querySelector(".fldExternalAddressFilterMode").classList.add("hide"),view.querySelector(".fldPublicPort").classList.add("hide"),view.querySelector(".fldPublicHttpsPort").classList.add("hide"),view.querySelector(".fldDdns").classList.add("hide"),view.querySelector(".fldCertificatePath").classList.add("hide"),view.querySelector(".fldCertPassword").classList.add("hide"),view.querySelector(".fldHttpsMode").classList.add("hide"),view.querySelector(".fldEnableUpnp").classList.add("hide"),view.querySelector(".fldRemoteBitrate").classList.add("hide"))}),view.querySelector(".btnSelectCertPath").addEventListener("click",function(){Emby.importModule("./modules/directorybrowser/directorybrowser.js").then(function(directoryBrowser){var picker=new directoryBrowser;picker.show({includeFiles:!0,includeDirectories:!0,callback:function(path){path&&(view.querySelector(".txtCertificatePath").value=path),picker.close()},header:_globalize.default.translate("HeaderSelectCertificatePath")})})}),view.querySelector(".dashboardHostingForm").addEventListener("submit",onSubmit),view.querySelector(".txtCertificatePath").addEventListener("change",onCertPathChange),function(view){ApiClient.getSystemInfo().then(function(systemInfo){!1!==systemInfo.SupportsLocalPortConfiguration?(view.querySelector(".fldlocalHttpPort").classList.remove("hide"),view.querySelector(".fldlocalHttpsPort").classList.remove("hide")):(view.querySelector(".fldlocalHttpPort").classList.add("hide"),view.querySelector(".fldlocalHttpsPort").classList.add("hide"))})}(view)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_basesettingsview.default.prototype),View.prototype.loadSettingsInternal=function(){_loading.default.show();var instance,view=this.view;return((instance=this).portMapperDetermined?Promise.resolve():ApiClient.getInstalledPlugins().then(function(plugins){instance.portMapperDetermined=!0,plugins.filter(isPortMapperPlugin).length||(instance.portMapperSupported=!1)})).then(function(){return ApiClient.getServerConfiguration().then(function(config){loadPage(view,config)})})};_exports.default=View}); \ No newline at end of file diff --git a/plugins/addplugin.html b/plugins/addplugin.html new file mode 100644 index 0000000..6d791f2 --- /dev/null +++ b/plugins/addplugin.html @@ -0,0 +1,88 @@ +
+
+
+ +
+
+

+
+ +

+

+ +

+ +
+ +
+

${HeaderInstall}

+ +
+

+
+ +
+ +

+ +

${ServerRestartNeededAfterPluginInstall}
+

+

+
+ +
+
+
+

+

+
+ +

${MessagePluginRequiresSubscription}

+ +

${LinkLearnMoreAboutSubscription}

+ +
+
+ +

${MessagePremiumPluginRequiresMembership}

+ +

${LinkLearnMoreAboutSubscription}

+
+
+

+

+ + + + + + + + + + +
+
+
+
+
+ +
+

${HeaderDeveloperInfo}

+ + +

${HeaderRevisionHistory}

+
+
+
+
+
\ No newline at end of file diff --git a/plugins/addpluginpage.css b/plugins/addpluginpage.css new file mode 100644 index 0000000..5c9f358 --- /dev/null +++ b/plugins/addpluginpage.css @@ -0,0 +1 @@ +.pluginPreviewImg{box-shadow:0 .0725em .29em 0 rgba(0,0,0,.37)} \ No newline at end of file diff --git a/plugins/addpluginpage.js b/plugins/addpluginpage.js new file mode 100644 index 0000000..71f71ed --- /dev/null +++ b/plugins/addpluginpage.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/common/servicelocator.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/listview/listview.js","./../modules/dom.js","./../modules/common/textencoding.js"],function(_exports,_baseview,_loading,_globalize,_embyButton,_embySelect,_embyScroller,_embyItemscontainer,_servicelocator,_connectionmanager,_listview,_dom,_textencoding){function renderPackage(pkg,installedPlugins,pluginSecurityInfo,view){var installedPlugins=installedPlugins.filter(function(ip){return(ip.Id||"").toLowerCase()===(pkg.guid||"").toLowerCase()})[0],owner=(!function(packageInfo,view,installedPlugin){for(var html="",i=0,length=packageInfo.versions.length;i'+version.versionStr+" ("+version.classification+")"}var selectmenu=view.querySelector(".selectVersion");selectmenu.innerHTML=html,installedPlugin||((installedPlugin=view.querySelector(".pCurrentVersion")).classList.add("hide"),installedPlugin.innerHTML=""),(view=(view=packageInfo.versions.filter(function(current){return"Release"===current.classification})[0])||packageInfo.versions.filter(function(current){return"Beta"===current.classification})[0])&&(installedPlugin=view.versionStr+"|"+view.classification,selectmenu.value=installedPlugin)}(pkg,view,installedPlugins),view.querySelector(".pluginName").innerHTML=_textencoding.default.htmlEncode(pkg.name||""),"Server"===pkg.targetSystem&&(view.querySelector(".btnInstallDiv").classList.remove("hide"),view.querySelector(".nonServerMsg").classList.add("hide"),view.querySelector(".pSelectVersion").classList.remove("hide")),pkg.shortDescription?(view.querySelector(".tagline").classList.remove("hide"),view.querySelector(".tagline").innerHTML=_textencoding.default.htmlEncode(pkg.shortDescription||"")):view.querySelector(".tagline").classList.add("hide"),view.querySelector(".overview").innerHTML=_dom.default.stripScripts(pkg.overview||""),pkg.owner);"luke"!==owner&&"ebr"!==owner||(owner="Emby"),view.querySelector(".developer").innerHTML=_textencoding.default.htmlEncode(owner||""),function(view,pkg,pluginSecurityInfo){var regStatus,nowTime,expDateTime;_servicelocator.appHost.supports("externalpremium")&&(pkg.isPremium?(view.querySelector(".premiumPackage").classList.remove("hide"),regStatus="",pkg.isRegistered?regStatus=(regStatus+="

")+_globalize.default.translate("MessageFeatureIncludedWithSupporter"):(expDateTime=new Date(pkg.expDate).getTime())<=(nowTime=Date.now())?regStatus=(regStatus+="

")+_globalize.default.translate("MessageTrialExpired"):expDateTime>new Date(1970,1,1).getTime()&&(regStatus=(regStatus+="

")+_globalize.default.translate("MessageTrialWillExpireIn").replace("{0}",Math.round(expDateTime-nowTime)/864e5)),regStatus+="

",view.querySelector(".regStatus").innerHTML=regStatus,pluginSecurityInfo.IsMBSupporter?(view.querySelector(".premiumDescription").classList.add("hide"),view.querySelector(".supporterDescription").classList.add("hide"),0"+_globalize.default.translate("ValuePriceUSD").replace("{0}",pkg.price.toFixed(2))+"",view.querySelector(".ppButton").classList.add("hide"),expDateTime="https://mb3admin.com/admin/service/user/getPayPalEmail?id="+pkg.owner,fetch(expDateTime).then(function(response){return response.json()}).then(function(dev){dev.payPalEmail&&(view.querySelector(".payPalEmail").value=dev.payPalEmail,view.querySelector(".ppButton").classList.remove("hide"))})):view.querySelector(".premiumHasPrice").classList.add("hide")):(pkg.price?(view.querySelector(".premiumDescription").classList.remove("hide"),view.querySelector(".supporterDescription").classList.add("hide")):(view.querySelector(".premiumDescription").classList.add("hide"),view.querySelector(".supporterDescription").classList.remove("hide")),view.querySelector(".ppButton").classList.add("hide"))):view.querySelector(".premiumPackage").classList.add("hide"))}(view,pkg,pluginSecurityInfo),pkg.richDescUrl?(view.querySelector(".pViewWebsite").classList.remove("hide"),view.querySelector(".pViewWebsite a").setAttribute("href",pkg.richDescUrl)):view.querySelector(".pViewWebsite").classList.add("hide"),pkg.previewImage||pkg.thumbImage?(owner=pkg.previewImage||pkg.thumbImage,view.querySelector(".pPreviewImage").classList.remove("hide"),view.querySelector(".pPreviewImage").innerHTML=""):(view.querySelector(".pPreviewImage").classList.add("hide"),view.querySelector(".pPreviewImage").innerHTML=""),installedPlugins?(pluginSecurityInfo=_globalize.default.translate("LabelVersionInstalled").replace("{0}",""+installedPlugins.Version+""),view.querySelector(".pCurrentVersion").classList.remove("hide"),view.querySelector(".pCurrentVersion").innerHTML=pluginSecurityInfo):(view.querySelector(".pCurrentVersion").classList.add("hide"),view.querySelector(".pCurrentVersion").innerHTML=""),_loading.default.hide()}function performInstallation(view,apiClient,packageName,guid,updateClass,version){function alertCallback(){_loading.default.show(),view.querySelector(".btnInstall").disabled=!0,apiClient.installPlugin(packageName,guid,updateClass,version).then(function(){var options;_loading.default.hide(),options=_globalize.default.translate("PluginInstalledMessage"),Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})})}var options,developer=view.querySelector(".developer").innerHTML.toLowerCase();"luke"!==developer&&"ebr"!==developer&&"softworkz"!==developer&&"emby"!==developer?(_loading.default.hide(),developer=(developer=_globalize.default.translate("MessagePluginInstallDisclaimer")+"

")+_globalize.default.translate("PleaseConfirmPluginInstallation"),options=developer,_globalize.default.translate("HeaderConfirmPluginInstallation"),Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)}).then(alertCallback)):alertCallback()}function View(view,params){_baseview.default.apply(this,arguments);var instance=this,revisionHistoryItemsContainer=(view.querySelector(".addPluginForm").addEventListener("submit",function(e){_loading.default.show();var view=instance.view,name=params.name,guid=params.guid,apiClient=instance.getApiClient();return apiClient.getInstalledPlugins().then(function(plugins){var vals=view.querySelector(".selectVersion").value.split("|"),version=vals[0];performInstallation(view,apiClient,name,guid,vals[1],version)}),e.preventDefault(),e.stopPropagation(),!1}),view.querySelector(".revisionHistory"));revisionHistoryItemsContainer.fetchData=function(query){var serverId=this.serverId(),_this$pkg=(null==(_this$pkg=this.pkg)?void 0:_this$pkg.versions)||[],totalRecordCount=_this$pkg.length;return null!=query&&query.StartIndex&&(_this$pkg=_this$pkg.slice(query.StartIndex)),null!=(null==query?void 0:query.Limit)&&(_this$pkg.length=Math.min(_this$pkg.length,query.Limit)),Promise.resolve({TotalRecordCount:totalRecordCount,Items:_this$pkg.map(function(version){return{Type:"GenericListItem",ServerId:serverId,Name:version.versionStr,ShortOverview:version.description,Icon:"published_with_changes",DateCreated:version.timestamp}})})}.bind(this),revisionHistoryItemsContainer.getListOptions=function(items){return{renderer:_listview.default,options:{fields:["Name","DateCreated","ShortOverview"],enableDefaultIcon:!0,action:"none",draggable:!1,multiSelect:!1,contextMenu:!1,mediaInfo:!1,largeHeading:!0,roundImage:!0,playQueueIndicator:!1},virtualScrollLayout:"vertical-list"}}.bind(this),this.revisionHistoryItemsContainer=revisionHistoryItemsContainer}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!plugins/addpluginpage.css"]),Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments);var view=this.view,params=(_loading.default.show(),this.params),name=params.name,params=params.guid,apiClient=this.getApiClient(),name=apiClient.getPackageInfo(name,params),params=apiClient.getInstalledPlugins(),instance=(_connectionmanager.default.getRegistrationInfo("themes",apiClient,{viewOnly:!0}),this);Promise.all([name,params]).then(function(responses){instance.pkg=responses[0],_connectionmanager.default.getRegistrationInfo("themes",apiClient,{viewOnly:!0}).then(function(){instance.revisionHistoryItemsContainer.resume(options),renderPackage(responses[0],responses[1],{IsMBSupporter:!0},view)},function(){renderPackage(responses[0],responses[1],{},view)})})},View.prototype.onPause=function(){_baseview.default.prototype.onPause.apply(this,arguments),this.revisionHistoryItemsContainer.pause()},View.prototype.destroy=function(){_baseview.default.prototype.destroy.apply(this,arguments),this.revisionHistoryItemsContainer=null,this.pkg=null};_exports.default=View}); \ No newline at end of file diff --git a/plugins/catalogtab.html b/plugins/catalogtab.html new file mode 100644 index 0000000..39c2a63 --- /dev/null +++ b/plugins/catalogtab.html @@ -0,0 +1,4 @@ +
+
+
+
\ No newline at end of file diff --git a/plugins/catalogtab.js b/plugins/catalogtab.js new file mode 100644 index 0000000..e555a53 --- /dev/null +++ b/plugins/catalogtab.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/basetab.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/cardbuilder/cardbuilder.js"],function(_exports,_basetab,_loading,_globalize,_embyInput,_embyButton,_embyScroller,_embyItemscontainer,_cardbuilder){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var _availablePlugins,query={TargetSystems:"Server",IsAdult:!1,PackageType:"UserInstalled"};function getAvailablePlugins(instance){var apiClient,promise2;return _availablePlugins?Promise.resolve(_availablePlugins):(instance=(apiClient=instance.getApiClient()).getAvailablePlugins(query),promise2=apiClient.getInstalledPlugins(),Promise.all([instance,promise2]).then(function(responses){var availablePlugins=responses[0],responses=responses[1];return function(availablePlugins,installedPlugins){for(var i=0,length=installedPlugins.length;i'+category.Name+"")+'
'+('
')+"
"+"
"+""}function getCategoryItems(query){var itemsContainer=this.itemsContainer,instance=this.instance,category=itemsContainer.getAttribute("data-category");return getAvailablePlugins(instance).then(function(plugins){var plugins="top"===category?function(plugins){return(plugins=plugins.slice(0).sort(function(a,b){return a.installs>b.installs?-1:b.installs>a.installs||(a=a.name,(b=b.name)plugin2.Name?1:-1}function InstalledPluginsTab(view,params){this.supportsViewSettings=!1,this.enableTotalRecordCountDisplay=!1,this.enableAlphaNumericShortcuts=!1,_itemstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(InstalledPluginsTab.prototype,_itemstab.default.prototype),InstalledPluginsTab.prototype.onTemplateLoaded=function(){_itemstab.default.prototype.onTemplateLoaded.apply(this,arguments),this.itemsContainer.setAttribute("data-monitor","Plugins")},InstalledPluginsTab.prototype.onResume=function(options){_itemstab.default.prototype.onResume.apply(this,arguments)},InstalledPluginsTab.prototype.loadTemplate=function(){return this.loadItemsTemplate()},InstalledPluginsTab.prototype.getItems=function(query){var apiClient=this.getApiClient();return apiClient.getInstalledPlugins().then(function(plugins){return apiClient.getConfigurationPages({EnableInUserMenu:!1}).then(function(configPages){for(var serverId=apiClient.serverId(),i=0,length=plugins.length;i + +
+
+ +
+
+ + \ No newline at end of file diff --git a/plugins/plugins.js b/plugins/plugins.js new file mode 100644 index 0000000..d9f17dc --- /dev/null +++ b/plugins/plugins.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/globalize.js","./../modules/tabbedview/tabbedview.js"],function(_exports,_globalize,_tabbedview){function PluginsTabbedView(view,params){_tabbedview.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(PluginsTabbedView.prototype,_tabbedview.default.prototype),PluginsTabbedView.prototype.getTabs=function(){return[{name:_globalize.default.translate("TabMyPlugins"),id:"installedplugins"},{name:_globalize.default.translate("Catalog"),id:"catalog"}]},PluginsTabbedView.prototype.loadTabController=function(id){return Emby.importModule("./plugins/"+id+"tab.js")},PluginsTabbedView.prototype.destroy=function(){_tabbedview.default.prototype.destroy.apply(this,arguments)};_exports.default=PluginsTabbedView}); \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..77470cb --- /dev/null +++ b/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/scheduledtasks/scheduledtask.js b/scheduledtasks/scheduledtask.js new file mode 100644 index 0000000..e5b0a55 --- /dev/null +++ b/scheduledtasks/scheduledtask.js @@ -0,0 +1 @@ +define(["exports","./../list/list.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-button/paper-icon-button-light.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/common/textencoding.js","./../modules/layoutmanager.js","./scheduledtasktriggereditor.js","./scheduledtasktriggercontroller.js"],function(_exports,_list,_globalize,_embyInput,_embyButton,_paperIconButtonLight,_embySelect,_embyScroller,_textencoding,_layoutmanager,_scheduledtasktriggereditor,_scheduledtasktriggercontroller){function ScheduledTaskPage(view,params){this.enableAlphaNumericShortcuts=!1,this.enableTotalRecordCountDisplay=!1,this.hasOtherViewButtons=!0,this.supportsViewSettings=!1,_list.default.apply(this,arguments),function(instance,view){view.querySelector(".itemsViewSettingsContainer").classList.add("itemsViewSettingsContainer-align-start","readOnlyContent"),view.querySelector(".listTotalRecordCount").insertAdjacentHTML("afterend",'

"),instance.itemsContainer.classList.add("readOnlyContent")}(this,view),view.querySelector(".btnAddTrigger").addEventListener("click",function(e){_scheduledtasktriggereditor.default.show({trigger:{ScheduledTaskId:this.params.id},apiClient:this.getApiClient()})}.bind(this)),this.itemsContainer.setAttribute("data-monitor","ScheduledTaskTriggers")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles"]),Object.assign(ScheduledTaskPage.prototype,_list.default.prototype),ScheduledTaskPage.prototype.supportsAlphaPicker=function(){return!1},ScheduledTaskPage.prototype.getItemTypes=function(){return["ScheduledTaskTrigger"]},ScheduledTaskPage.prototype.onItemRefreshed=function(item){_list.default.prototype.onItemRefreshed.apply(this,arguments),this.view.querySelector(".taskName").innerHTML=_textencoding.default.htmlEncode(item.Name||""),this.view.querySelector(".taskDescription").innerHTML=_textencoding.default.htmlEncode(item.Description||"")},ScheduledTaskPage.prototype.getEmptyListMessage=function(){return Promise.resolve("")},ScheduledTaskPage.prototype.setTitle=function(){},ScheduledTaskPage.prototype.fetchItem=function(){return this.getApiClient().getScheduledTask(this.params.id)},ScheduledTaskPage.prototype.getItems=function(query){return this.getApiClient().getScheduledTask(this.params.id).then(function(item){var item=item.Triggers||[],totalRecordCount=item.length;return Promise.resolve({Items:item,TotalRecordCount:totalRecordCount})})},ScheduledTaskPage.prototype.getNameSortOption=function(itemType){return null},ScheduledTaskPage.prototype.getSettingsKey=function(){return"scheduledtask"},ScheduledTaskPage.prototype.getBaseListRendererOptions=function(){var options=_list.default.prototype.getBaseListRendererOptions.apply(this,arguments);return options.draggable=!1,options.draggableXActions=!0,options.multiSelect=!1,options.action=_layoutmanager.default.tv?"menu":"none",options},ScheduledTaskPage.prototype.getCardOptions=function(items,settings){var options=_list.default.prototype.getCardOptions.apply(this,arguments);return options.fields.push("Name"),options.fields.push("TaskTriggerTimeLimit"),options},ScheduledTaskPage.prototype.getListViewOptions=function(items,settings){var options=_list.default.prototype.getListViewOptions.apply(this,arguments);return options.enableDefaultIcon=!0,options.defaultBackground=!1,options.deleteButton=!0,options.moreButton=!1,options.buttonCommands=["delete"],options.fields.push("Name"),options.fields.push("TaskTriggerDescription"),options.fields.push("TaskTriggerDescription2"),options.fields.push("TaskTriggerTimeLimit"),options},ScheduledTaskPage.prototype.getViewSettingDefaults=function(){var viewSettings=_list.default.prototype.getViewSettingDefaults.apply(this,arguments);return viewSettings.imageType="list",viewSettings};_exports.default=ScheduledTaskPage}); \ No newline at end of file diff --git a/scheduledtasks/scheduledtaskcontroller.js b/scheduledtasks/scheduledtaskcontroller.js new file mode 100644 index 0000000..bfdcd98 --- /dev/null +++ b/scheduledtasks/scheduledtaskcontroller.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/itemmanager/itemmanager.js","./../modules/common/itemmanager/baseitemcontroller.js","./../modules/common/globalize.js","./../modules/humanedate/humanedate.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js"],function(_exports,_itemmanager,_baseitemcontroller,_globalize,_humanedate,_connectionmanager,_approuter){function ScheduledTaskController(){_baseitemcontroller.default.apply(this,arguments)}function humane_elapsed(ticks){var ticks=ticks/1e4/1e3,numdays=Math.floor(ticks%31536e3/86400),numhours=Math.floor(ticks%31536e3%86400/3600),numminutes=Math.floor(ticks%31536e3%86400%3600/60),ticks=Math.round(ticks%31536e3%86400%3600%60),elapsedStr=(elapsedStr=(elapsedStr=(elapsedStr="")+(1===numdays?numdays+" day ":"")+(1("+_globalize.default.translate("Failed")+")":"Cancelled"===task.LastExecutionResult.Status?html+=" ("+_globalize.default.translate("Cancelled")+")":"Aborted"===task.LastExecutionResult.Status&&(html+=" "+_globalize.default.translate("LabelAbortedByServerShutdown")+"")):"Running"===task.State?html=(html=(html+='
')+'
')+''+secondDateStr+"%
":html+=""+_globalize.default.translate("LabelStopping")+"",html}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(ScheduledTaskController.prototype,_baseitemcontroller.default.prototype),ScheduledTaskController.prototype.getTypeNames=function(){return["ScheduledTask"]},ScheduledTaskController.prototype.getDisplayName=function(item,options){return item.Name},ScheduledTaskController.prototype.isSingleItemFetchRequired=function(typeName){return!1},ScheduledTaskController.prototype.getDefaultIcon=function(item){return"calendar_month"},ScheduledTaskController.prototype.canDelete=function(item,user){return!1},ScheduledTaskController.prototype.enableLibraryItemDeleteConfirmation=function(){return!1},ScheduledTaskController.prototype.canRefreshMetadata=function(item,user){return!1},ScheduledTaskController.prototype.getNameSortOption=function(itemType){return null},ScheduledTaskController.prototype.canAddToPlaylist=function(item){return!1},ScheduledTaskController.prototype.canAddToCollection=function(item,user){return!1},ScheduledTaskController.prototype.canConvert=function(item,user){return!1},ScheduledTaskController.prototype.canEdit=function(items,user){return!0},ScheduledTaskController.prototype.getEditCommand=function(items){return{name:_globalize.default.translate("Settings"),id:"edit",icon:"settings"}},ScheduledTaskController.prototype.editItems=function(items,options){items=items[0];return _approuter.default.showItem(items)},ScheduledTaskController.prototype.canRate=function(item){return!1},ScheduledTaskController.prototype.canMarkPlayed=function(item){return!1},ScheduledTaskController.prototype.canEditImages=function(item,user){return!1},ScheduledTaskController.prototype.canEditSubtitles=function(item,user){return!1},ScheduledTaskController.prototype.isDeletePrimaryCommand=function(itemType){return!1},ScheduledTaskController.prototype.getDeleteMessages=function(){return{}},ScheduledTaskController.prototype.deleteItemsInternal=function(options){return Promise.reject()},ScheduledTaskController.prototype.getCommands=function(options){var commands=_baseitemcontroller.default.prototype.getCommands.apply(this,arguments),items=options.items;return 1===items.length&&("Idle"===(items=items[0]).State?commands.push({name:_globalize.default.translate("Start"),id:"scheduledtask_start",icon:""}):"Running"===items.State&&commands.push({name:_globalize.default.translate("Stop"),id:"scheduledtask_stop",icon:""})),commands},ScheduledTaskController.prototype.executeCommand=function(command,items,options){var item=items[0];switch(command){case"scheduledtask_start":return _connectionmanager.default.getApiClient(item).startScheduledTask(item.Id);case"scheduledtask_stop":return _connectionmanager.default.getApiClient(item).stopScheduledTask(item.Id);default:return _baseitemcontroller.default.prototype.executeCommand.apply(this,arguments)}},ScheduledTaskController.prototype.resolveField=function(item,field){return"ScheduledTaskRunInfo"!==field?_baseitemcontroller.default.prototype.resolveField.apply(this,arguments):getTaskProgressHtml(item)},ScheduledTaskController.prototype.getDurationDisplay=humane_elapsed;var instance=new ScheduledTaskController;_itemmanager.default.registerItemController(instance),_exports.default=instance}); \ No newline at end of file diff --git a/scheduledtasks/scheduledtasks.html b/scheduledtasks/scheduledtasks.html new file mode 100644 index 0000000..6711d3a --- /dev/null +++ b/scheduledtasks/scheduledtasks.html @@ -0,0 +1,9 @@ +
+
+ +
+ + +
+
+
\ No newline at end of file diff --git a/scheduledtasks/scheduledtasks.js b/scheduledtasks/scheduledtasks.js new file mode 100644 index 0000000..8723bb1 --- /dev/null +++ b/scheduledtasks/scheduledtasks.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/common/textencoding.js","./../modules/loading/loading.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-progressbar/emby-progressbar.js","./../modules/listview/listview.js","./../modules/common/methodtimer.js","./../modules/common/input/api.js","./../modules/emby-apiclient/events.js","./../modules/layoutmanager.js","./scheduledtaskcontroller.js"],function(_exports,_baseview,_textencoding,_loading,_connectionmanager,_embyButton,_embyProgressbar,_listview,_methodtimer,_api,_events,_layoutmanager,_scheduledtaskcontroller){function ensureTaskCategory(instance,task,refreshItemsContainer){var index,html="";if(instance.itemsContainers[task.Category])return refreshItemsContainer&&-1!==(index=(_itemsContainer=instance.itemsContainers[task.Category]).indexOfItemId(task.Id))&&_itemsContainer.onItemUpdated(index,task),Promise.resolve();var _itemsContainer=document.createElement("div");_itemsContainer.className="verticalSection verticalSection-extrabottompadding",html=(html='

')+_textencoding.default.htmlEncode(task.Category),_itemsContainer.innerHTML=html=(html=html+"

"+"
")+'
'+"
";instance.view.querySelector(".divScheduledTasks").appendChild(_itemsContainer);var itemsContainer=_itemsContainer.querySelector(".itemsContainer");if(itemsContainer.fetchData=function(){var instance=this.instance,category=this.category,instance=instance.tasks.filter(function(task){return task.Category===category});return Promise.resolve(instance)}.bind({instance:instance,category:task.Category}),itemsContainer.getListOptions=function(items){return{renderer:_listview.default,options:{moreButton:!1,roundImage:!0,action:_layoutmanager.default.tv?"menu":null,multiSelect:!1,image:!!_layoutmanager.default.tv,largeHeading:!0,buttonCommands:["scheduledtask_start","scheduledtask_stop"],fields:["Name","ScheduledTaskRunInfo","Description"],draggable:!1,draggableXActions:!1,playQueueIndicator:!1}}}.bind({instance:instance,category:task.Category}),instance.itemsContainers[task.Category]=itemsContainer,refreshItemsContainer)return itemsContainer.waitForCustomElementUpgrade().then(function(){return itemsContainer.refreshItems()});Promise.resolve()}function compareTasks(a,b){return(a=a.Category+" "+a.Name)===(b=b.Category+" "+b.Name)?0:a'+o.name+""}).join("")}function onOpened(){_focusmanager.default.autoFocus(this,{skipIfNotEnabled:!0})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles","formDialogStyle","material-icons"]),ScheduledTaskTriggerEditor.prototype.show=function(options){this.options=options;var instance=this;return require(["text!./scheduledtasks/scheduledtasktriggereditor.template.html"]).then(function(responses){var responses=responses[0],dialogOptions=(instance.hasChanges=!1,{removeOnClose:!(instance.newStreamIndex=null),scrollY:!1,autoFocus:!1}),dialogOptions=(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="medium-tall",_dialoghelper.default.createDialog(dialogOptions)),form=((instance.context=dialogOptions).classList.add("formDialog"),dialogOptions.innerHTML=_globalize.default.translateDocument(responses,"sharedcomponents"),!function(context){for(var options=context.querySelectorAll(".selectInterval option"),i=0,length=options.length;i + +

+ ${ButtonAddScheduledTaskTrigger} +

+ + +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+ +
+
+
+
\ No newline at end of file diff --git a/search/search.html b/search/search.html new file mode 100644 index 0000000..574c737 --- /dev/null +++ b/search/search.html @@ -0,0 +1,30 @@ +
+
+
+
+ +
+
+
+

${Suggestions}

+
+
+
+
+
+

${HeaderTopResults}

+
+
+
+
+ +
+ +
+ +

+ ${NoItemsMatchingFound} +

+
+
+
\ No newline at end of file diff --git a/search/search.js b/search/search.js new file mode 100644 index 0000000..8286d9e --- /dev/null +++ b/search/search.js @@ -0,0 +1 @@ +define(["exports","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/viewmanager/baseview.js","./../modules/focusmanager.js","./../modules/emby-apiclient/connectionmanager.js","./searchfields.js","./../modules/emby-apiclient/events.js","./../modules/common/globalize.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/layoutmanager.js","./../modules/cardbuilder/cardbuilder.js","./../modules/common/itemmanager/itemmanager.js"],function(_exports,_embyScroller,_embyButton,_baseview,_focusmanager,_connectionmanager,_searchfields,_events,_globalize,_loading,_embyItemscontainer,_layoutmanager,_cardbuilder,_itemmanager){function getCardOptionsForType(type,items){var options;return"BoxSet"===type||"Playlist"===type||"Game"===type||"Book"===type||"PhotoAlbum"===type||"MusicArtist"===type||"Person"===type?{shape:"autooverflow",fields:["Name"],focusTransformTitleAdjust:!0}:"Movie"===type||"Trailer"===type||"Series"===type?{shape:"autooverflow",fields:["Name","ProductionYear"],focusTransformTitleAdjust:!0}:"Photo"===type?{shape:"autooverflow",fields:["Name"],focusTransformTitleAdjust:!0}:"Audio"===type?{shape:"autooverflow",preferArtistTitle:!0,fields:["ParentName","Name"],action:"play",sideFooter:!0,focusTransformTitleAdjust:!0}:"TvChannel"===type?{shape:"autooverflow",fields:["Name","CurrentProgramParentName","CurrentProgramTime"],defaultBackground:!0,focusTransformTitleAdjust:!0}:"Program"===type?(function(options,type,items){"Program"===type&&items.length&&items[0].AsSeries&&(options.progress=!1,options.showAirDateTime=!1,options.fields=options.fields.filter(isNotName).filter(isNotParentName).filter(isNotAirTime),options.fields.push("ParentNameOrName"))}(options={shape:"autooverflow",fields:["ParentName","Name","AirTime"],showAirDateTime:!0,focusTransformTitleAdjust:!0},type,items),options):"Tag"===type?{shape:"autooverflow",fields:["Name"],defaultBackground:!0,multiSelect:!1,focusTransformTitleAdjust:!0}:{shape:"autooverflow",fields:["ParentName","Name"],focusTransformTitleAdjust:!0}}function isNotName(n){return"Name"!==n}function isNotParentName(n){return"ParentName"!==n}function isNotAirTime(n){return"AirTime"!==n}function renderSearchTypes(instance,apiClient,context,value,types,signal){for(var searchCategories=context.querySelector(".searchCategories"),promises=(searchCategories.innerHTML="",[]),i=0,length=types.length;i'+_itemmanager.default.getPluralItemTypeName(type)+""),itemsContainerClass="itemsContainer scrollSlider focusable focuscontainer-x";"Audio"===type&&(itemsContainerClass+=" itemsContainer-sideFooters"),innerHTML=(innerHTML+='
')+('
')+"
",elem.innerHTML=innerHTML,searchCategories.appendChild(elem),promises.push(function(instance,apiClient,query,context,section,signal){return query.Limit=16,query.ParentId=instance.params.parentId,function(instance,apiClient,query,signal){query.Recursive=!0,query.EnableTotalRecordCount=!1,query.ImageTypeLimit=1,query.Fields=getSearchFields(instance,query.IncludeItemTypes),"Program"===query.IncludeItemTypes&&(query.GroupProgramsBySeries=!0);"Program"===query.IncludeItemTypes&&(query.HasAired=!1);return apiClient.getItems(apiClient.getCurrentUserId(),query,signal)}(instance,apiClient,query,signal).then(function(result){var items=result.Items||result.SearchHints,items=getCardOptionsForType(query.IncludeItemTypes,items);return populateResults(result,context,section,items)})}(instance,apiClient,{searchTerm:value,IncludeItemTypes:type},context,elem,signal))}return Promise.all(promises)}function getSearchFields(instance,type){instance=instance.getRequestedItemFields()+",PrimaryImageAspectRatio,ProductionYear";return type&&"Series"!==type||(instance+=",Status,EndDate"),instance}function populateResults(result,context,section,cardOptions){result=result.Items||result.SearchHints,context=(section="string"==typeof section?context.querySelector(section):section).querySelector(".itemsContainer");return _cardbuilder.default.buildCards(result,Object.assign({itemsContainer:context,parentContainer:section,shape:"autooverflow",scalable:!0,focusTransformTitleAdjust:!0,horizontal:!0},cardOptions||{})),section.querySelector(".emby-scroller").scrollToBeginning({behavior:"instant"}),result}function SearchView(view,params){_baseview.default.apply(this,arguments),this.searchFields=new _searchfields.default({serverId:params.serverId||_connectionmanager.default.currentApiClient().serverId(),element:view.querySelector(".searchFields")}),this.search(""),_events.default.on(this.searchFields,"search",function(e,value){null!=(_instance$currentSear=this.currentSearchAbortController)&&_instance$currentSear.abort();var _instance$currentSear=new AbortController;this.currentSearchAbortController=_instance$currentSear,this.search(value,_instance$currentSear.signal)}.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(SearchView.prototype,_baseview.default.prototype),SearchView.prototype.onPause=function(){var _this$currentSearchAb;_baseview.default.prototype.onPause.apply(this,arguments),this.searchFields&&this.searchFields.pause(),null!=(_this$currentSearchAb=this.currentSearchAbortController)&&_this$currentSearchAb.abort(),this.currentSearchAbortController=null},SearchView.prototype.onInputCommand=function(e){"search"===e.detail.command?(_focusmanager.default.focus(this.view.querySelector(".searchfields-txtSearch")),e.preventDefault()):_baseview.default.prototype.onInputCommand.apply(this,arguments)},SearchView.prototype.search=function(value,signal){_loading.default.show();var apiClient=this.getApiClient(),elem=this.view.querySelector(".searchResults"),searchInfo=(elem.querySelector(".noResults").classList.add("hide"),{instance:this,searchTerm:value});return function(instance,apiClient,context,value,signal){(value||_layoutmanager.default.tv)&&context.querySelector(".searchSuggestions").classList.add("hide");var query={SearchTerm:value,Recursive:!0,EnableTotalRecordCount:!1,ImageTypeLimit:1,Limit:16,ParentId:instance.params.parentId,Fields:getSearchFields(instance),GroupProgramsBySeries:!0};return apiClient.getSearchResults(query,signal).then(function(result){var subPromises=[];return subPromises.push(populateResults(result,context,context.querySelector(".globalResults"),{shape:"autooverflow",fields:["ParentName","Name","Type","CurrentProgramParentName","AirTime"],showAirDateTime:!0,lines:4})),subPromises.push(renderSearchTypes(instance,apiClient,context,value,result.ItemTypes,signal)),Promise.all(subPromises)})}(this,apiClient,elem,value,signal).then(function(itemsResponses){_loading.default.hide();var hasResults,i,length,instance=this.instance;if(itemsResponses[0].length&&(hasResults=!0),(itemsResponses=itemsResponses[1]).length)for(i=0,length=itemsResponses.length;i';return itemHtml+i.Name+""}).join(""),searchSuggestions=context.querySelector(".searchSuggestions");searchSuggestions.querySelector(".searchSuggestionsList").innerHTML=html,result.Items.length?searchSuggestions.classList.remove("hide"):searchSuggestions.classList.add("hide")})}(this,context,_connectionmanager.default.getApiClient(this.options.serverId)))}function triggerSearch(instance,value,immediate){instance.searchTimeout&&clearTimeout(instance.searchTimeout),instance.nextSearchValue=value;value=immediate?0:700;instance.searchTimeout=setTimeout(onSearchTimeout.bind(instance),value)}function initAlphaPicker(alphaPickerElement,instance){instance.alphaPicker=new _alphapicker.default({element:alphaPickerElement,mode:"keyboard"}),alphaPickerElement.addEventListener("alphavalueclicked",function(e){var val,e=e.detail.value,txtSearch=this.options.element.querySelector(".searchfields-txtSearch");"backspace"===e?(val=txtSearch.value,txtSearch.value=val.length?val.substring(0,val.length-1):""):(-1===txtSearch.maxLength||txtSearch.value.length + +
+ search + + +
+ +
+
+

${Suggestions}

+
+
+
+
+ +
\ No newline at end of file diff --git a/search/searchfields_tv.css b/search/searchfields_tv.css new file mode 100644 index 0000000..f0dada6 --- /dev/null +++ b/search/searchfields_tv.css @@ -0,0 +1 @@ +.searchfields-txtSearch{border-color:transparent!important;background:0 0!important;padding:0!important;box-shadow:none!important;font-size:240%;height:auto} \ No newline at end of file diff --git a/server/database/database.html b/server/database/database.html new file mode 100644 index 0000000..d341e49 --- /dev/null +++ b/server/database/database.html @@ -0,0 +1,44 @@ +
+
+
+ +
+ +
+ warning +
+ ${AdvancedOptionsWarning} +
+ +
+ +
${LabelDatabaseCacheSizeHelp}
+
+ +
+ +
${LabelOptimizeDatabaseOnShutdownHelp}
+
+ +
+ +
${LabelDatabaseAnalysisLimitHelp}
+
+ +
+ +
${LabelVacuumDbHelp}
+
+ + +
+
+
\ No newline at end of file diff --git a/server/database/database.js b/server/database/database.js new file mode 100644 index 0000000..610f2c3 --- /dev/null +++ b/server/database/database.js @@ -0,0 +1 @@ +define(["exports","./../../modules/viewmanager/basesettingsview.js","./../../modules/loading/loading.js","./../../modules/emby-elements/emby-input/emby-input.js","./../../modules/emby-elements/emby-toggle/emby-toggle.js"],function(_exports,_basesettingsview,_loading,_embyInput,_embyToggle){function DatabaseView(view,params){_basesettingsview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",function(e){return _loading.default.show(),this.saveAutoSettings(),e.preventDefault(),e.stopPropagation(),!1}.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(DatabaseView.prototype,_basesettingsview.default.prototype),DatabaseView.prototype.loadSettingsInternal=function(){return this.loadAutoSettings()};_exports.default=DatabaseView}); \ No newline at end of file diff --git a/server/sync/activitytab.js b/server/sync/activitytab.js new file mode 100644 index 0000000..1421803 --- /dev/null +++ b/server/sync/activitytab.js @@ -0,0 +1 @@ +define(["exports","./../../modules/tabbedview/itemstab.js","./../../modules/emby-elements/emby-button/emby-button.js","./../../modules/emby-elements/emby-scroller/emby-scroller.js","./../../modules/layoutmanager.js","./syncjobcontroller.js","./syncjobitemcontroller.js"],function(_exports,_itemstab,_embyButton,_embyScroller,_layoutmanager,_syncjobcontroller,_syncjobitemcontroller){function ActivityTab(view,params){this.supportsViewSettings=!1,this.enableAlphaNumericShortcuts=!1,_itemstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(ActivityTab.prototype,_itemstab.default.prototype),ActivityTab.prototype.onTemplateLoaded=function(){_itemstab.default.prototype.onTemplateLoaded.apply(this,arguments),this.itemsContainer.setAttribute("data-monitor","SyncJobs")},ActivityTab.prototype.onResume=function(options){_itemstab.default.prototype.onResume.apply(this,arguments)},ActivityTab.prototype.loadTemplate=function(){return this.loadItemsTemplate()},ActivityTab.prototype.getItems=function(query){var options={},apiClient=this.getApiClient();return this.options.userId&&(options.UserId=this.options.userId),"download"===this.options.mode&&this.options.localDownload?options.TargetId=apiClient.deviceId():"convert"===this.options.mode?options.IncludeProviders="ConvertSyncProvider":options.ExcludeProviders="ConvertSyncProvider",options.mode=this.options.mode,apiClient.getSyncJobs(options)},ActivityTab.prototype.getSettingsKey=function(){return"syncjobs"},ActivityTab.prototype.getViewSettingDefaults=function(){var viewSettings=_itemstab.default.prototype.getViewSettingDefaults.apply(this,arguments);return viewSettings.imageType="list",viewSettings},ActivityTab.prototype.setTitle=function(){},ActivityTab.prototype.getBaseListRendererOptions=function(){var options=_itemstab.default.prototype.getBaseListRendererOptions.apply(this,arguments);return options.draggable=!1,_layoutmanager.default.tv?options.action="menu":options.action="edit",options},ActivityTab.prototype.getListViewOptions=function(items,settings){var options=_itemstab.default.prototype.getListViewOptions.apply(this,arguments);return this.options.userId&&(options.UserId=this.options.userId),"download"===this.options.mode&&this.options.userId||(options.fields=["TargetName","Name"]),options.fields.push("SyncJobItemCount"),options.fields.push("SyncJobProgress"),options},ActivityTab.prototype.getItemTypes=function(){return["SyncJob"]};_exports.default=ActivityTab}); \ No newline at end of file diff --git a/server/sync/settingstab.html b/server/sync/settingstab.html new file mode 100644 index 0000000..e710015 --- /dev/null +++ b/server/sync/settingstab.html @@ -0,0 +1,29 @@ +
+
+
+ +
+
+
+ +
+ +
+
${LabelSyncTempPathHelp}
+
+
+ +
${OptionEnableFullSpeedConversionHelp}
+
+
+
+ +
+
+
+
\ No newline at end of file diff --git a/server/sync/settingstab.js b/server/sync/settingstab.js new file mode 100644 index 0000000..d549bfe --- /dev/null +++ b/server/sync/settingstab.js @@ -0,0 +1 @@ +define(["exports","./../../modules/tabbedview/basetab.js","./../../modules/loading/loading.js","./../../modules/emby-elements/emby-input/emby-input.js","./../../modules/emby-elements/emby-button/emby-button.js","./../../modules/emby-elements/emby-toggle/emby-toggle.js","./../../modules/emby-elements/emby-select/emby-select.js","./../../modules/emby-elements/emby-scroller/emby-scroller.js","./../../modules/emby-elements/emby-button/paper-icon-button-light.js","./../../modules/common/responsehelper.js"],function(_exports,_basetab,_loading,_embyInput,_embyButton,_embyToggle,_embySelect,_embyScroller,_paperIconButtonLight,_responsehelper){function View(view,params){_basetab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_basetab.default.prototype),View.prototype.loadTemplate=function(){return require(["text!server/sync/settingstab.html"])},View.prototype.onTemplateLoaded=function(){_basetab.default.prototype.onTemplateLoaded.apply(this,arguments);var view=this.view;view.querySelector(".btnSelectSyncTempPath").addEventListener("click",function(){Emby.importModule("./modules/directorybrowser/directorybrowser.js").then(function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&(view.querySelector(".txtSyncTempPath").value=path),picker.close()},validateWriteable:!0})})}),view.querySelector("form").addEventListener("submit",function(e){_loading.default.show();var form=e.target.closest("form"),apiClient=this.getApiClient();return apiClient.getNamedConfiguration("sync").then(function(config){config.TemporaryPath=form.querySelector(".txtSyncTempPath").value,config.EnableFullSpeedTranscoding=form.querySelector(".chkEnableFullSpeedConversion").checked,apiClient.updateNamedConfiguration("sync",config).then(_responsehelper.default.handleConfigurationSavedResponse)}),e.preventDefault(),e.stopPropagation(),!1}.bind(this))},View.prototype.onResume=function(options){_basetab.default.prototype.onResume.apply(this,arguments),_loading.default.show();var page=this.view;this.getApiClient().getNamedConfiguration("sync").then(function(config){!function(page,config){page.querySelector(".txtSyncTempPath").value=config.TemporaryPath||"",page.querySelector(".chkEnableFullSpeedConversion").checked=config.EnableFullSpeedTranscoding,_loading.default.hide()}(page,config)})};_exports.default=View}); \ No newline at end of file diff --git a/server/sync/sync.html b/server/sync/sync.html new file mode 100644 index 0000000..bb98769 --- /dev/null +++ b/server/sync/sync.html @@ -0,0 +1,9 @@ +
+ +
+
+ +
+
+ +
\ No newline at end of file diff --git a/server/sync/sync.js b/server/sync/sync.js new file mode 100644 index 0000000..f9f4193 --- /dev/null +++ b/server/sync/sync.js @@ -0,0 +1 @@ +define(["exports","./../../modules/common/globalize.js","./../../modules/tabbedview/tabbedview.js"],function(_exports,_globalize,_tabbedview){function SyncView(view,params){_tabbedview.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(SyncView.prototype,_tabbedview.default.prototype),SyncView.prototype.getTabs=function(){return[{name:"convert"===this.params.mode?_globalize.default.translate("Conversions"):_globalize.default.translate("Downloads"),id:"activity"},{name:_globalize.default.translate("Settings"),id:"settings"}]},SyncView.prototype.loadTabController=function(id){return Emby.importModule("./server/sync/"+id+"tab.js")},SyncView.prototype.getTabControllerOptions=function(id){var options=_tabbedview.default.prototype.getTabControllerOptions.apply(this,arguments);return options.mode=this.params.mode,options};_exports.default=SyncView}); \ No newline at end of file diff --git a/server/sync/syncjobcontroller.js b/server/sync/syncjobcontroller.js new file mode 100644 index 0000000..2f6d684 --- /dev/null +++ b/server/sync/syncjobcontroller.js @@ -0,0 +1 @@ +define(["exports","./../../modules/common/itemmanager/itemmanager.js","./../../modules/common/itemmanager/baseitemcontroller.js","./../../modules/emby-apiclient/connectionmanager.js","./../../modules/common/globalize.js"],function(_exports,_itemmanager,_baseitemcontroller,_connectionmanager,_globalize){function SyncJobController(){_baseitemcontroller.default.apply(this,arguments)}function getDeleteMessages(item){var title,text,confirmText=_globalize.default.translate("Remove");return"Convert"===item.SyncJobType?item.SyncNewContent||"Completed"!==item.Status?(title=_globalize.default.translate("CancelConversion"),text="ConfirmCancelConversion",confirmText=_globalize.default.translate("CancelConversion")):(title=_globalize.default.translate("RemoveFromHistory"),text="ConfirmRemoveFromHistory"):(title=_globalize.default.translate("RemoveDownload"),text="ConfirmRemoveDownload"),{single:{text:text,title:title,confirmText:confirmText},plural:{text:text,title:title,confirmText:confirmText}}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(SyncJobController.prototype,_baseitemcontroller.default.prototype),SyncJobController.prototype.getTypeNames=function(){return["SyncJob"]},SyncJobController.prototype.getDisplayName=function(item,options){return item.Name},SyncJobController.prototype.isSingleItemFetchRequired=function(typeName){return!1},SyncJobController.prototype.getDefaultIcon=function(item){return""},SyncJobController.prototype.canDelete=function(item,user){return!0},SyncJobController.prototype.enableLibraryItemDeleteConfirmation=function(){return!1},SyncJobController.prototype.canRate=function(item){return!1},SyncJobController.prototype.canMarkPlayed=function(item){return!1},SyncJobController.prototype.canAddToPlaylist=function(item){return!1},SyncJobController.prototype.canAddToCollection=function(item,user){return!1},SyncJobController.prototype.canConvert=function(item,user){return!1},SyncJobController.prototype.canEdit=function(items,user){return 1===items.length},SyncJobController.prototype.canEditImages=function(item,user){return!1},SyncJobController.prototype.canEditSubtitles=function(item,user){return!1},SyncJobController.prototype.isDeletePrimaryCommand=function(itemType){return!0},SyncJobController.prototype.getDeleteCommand=function(items){var item=items[0],itemType=item.Type,item=getDeleteMessages(item);return{name:(1 +
+
+ +

${TheseSettingsApplyAppDevice}

+ +
+ ${Display} +
+ +
+ +
+
${LabelDisplayLanguageHelp}
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
${TVDisplayModeHelp}
+
+
+ +
+ +
+ +
+ +
${ImageSizeHelp}
+
+ + +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
${EnableThemeSongsHelp}
+
+ +
+ +
+ +
+ +
${EnableThemeVideosHelp}
+
+ +
+ +
+ +
+ +
${EnableBackdropsHelp}
+
+ +
+ +
${EnableRemoteControlTVModeHelp}
+
+ +
+ +
+
+
+
+
+ \ No newline at end of file diff --git a/settings/appgeneral.js b/settings/appgeneral.js new file mode 100644 index 0000000..a1ff34d --- /dev/null +++ b/settings/appgeneral.js @@ -0,0 +1 @@ +define(["exports","./../modules/emby-apiclient/connectionmanager.js","./../modules/viewmanager/basesettingsview.js","./../modules/common/globalize.js","./../modules/common/servicelocator.js","./../modules/common/pluginmanager.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-slider/emby-slider.js","./../modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js"],function(_exports,_connectionmanager,_basesettingsview,_globalize,_servicelocator,_pluginmanager,_embyScroller,_embySelect,_embyButton,_embyInput,_embyToggle,_embySlider,_embyPremierecontainer){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var appMode=globalThis.appMode;function normalizeCardSize(cardSize){switch(cardSize){case"normal":case"default":return"";default:return cardSize}}function fillStartupBehavior(context){var apiClient=_connectionmanager.default.currentApiClient();return function(apiClient){return!apiClient||!_servicelocator.appHost.supports("multiserver")||_connectionmanager.default.isLoggedIntoConnect()?Promise.resolve([]):_connectionmanager.default.getSignedInUsers(apiClient)}(apiClient).then(function(signedInUsers){var selectStartupBehavior=context.querySelector(".selectStartupBehavior"),html="";if(html+='",apiClient&&!_connectionmanager.default.isLoggedIntoConnect())for(var i=0,length=signedInUsers.length;i'+_globalize.default.translate("SignInAsValue",user.Name)+""}html+='",selectStartupBehavior.innerHTML=html})}function fillLanguages(select){for(var options=select.options,displayNames=new Intl.DisplayNames(_globalize.default.getCurrentLocales(),{type:"language",fallback:"none",languageDisplay:"standard"}),i=0,length=options.length;i'+o.name+""}).join(""),function(context){var context=context.querySelector(".selectScreensaver"),options=_pluginmanager.default.ofType("screensaver").map(function(plugin){return{name:plugin.name,value:plugin.id}});options.unshift({name:_globalize.default.translate("None"),value:"none"}),context.innerHTML=options.map(function(o){return'"}).join("")}(view),function(context){var context=context.querySelector(".selectSoundEffects"),options=_pluginmanager.default.ofType("soundeffects").map(function(plugin){return{name:plugin.name,value:plugin.id}});options.unshift({name:_globalize.default.translate("None"),value:"none"}),context.innerHTML=options.map(function(o){return'"}).join("")}(view),fillLanguages(view.querySelector(".selectLanguage")),fillLanguages(view.querySelector(".selectDateTimeLocale")),select=view.querySelector(".displayModePremiere"),key="PlaybackTvModeRequiresEmbyPremiere",_servicelocator.appHost.supports("externallinks")&&_servicelocator.appHost.supports("externalpremium")?select.innerHTML=_globalize.default.translate(key,'',""):select.innerHTML=_globalize.default.translate(key,"",""),options.element.querySelector(".chkTVDisplayMode").addEventListener("change",function(e){var selectCardSize=(e=e.target.closest(".settingsContainer")).querySelector(".selectCardSize"),selectCardSize=(this.setFieldValue(selectCardSize,normalizeCardSize("normal"),!0),e.querySelector(".selectFontSize"));this.setFieldValue(selectCardSize,"",!0)}.bind(this)),options.element.querySelector("form").addEventListener("submit",function(e){return e.preventDefault(),!1}.bind(options))}function revertToNoneIfNeeded(elem,value){return value&&elem.querySelector('option[value="'+value+'"]')?value:"none"}Object.assign(View.prototype,_basesettingsview.default.prototype),View.prototype.loadSettingsInternal=function(){var instance=this;return fillStartupBehavior(instance.settingsOptions.element).then(function(){return instance.loadAutoSettings().then(function(){if("embyclient"===appMode)return instance.settingsOptions.element.querySelector(".fldSoundEffects").classList.remove("hide"),Promise.resolve()})})},View.prototype.getSettingValueFromOwner=function(owner,memberInfo){switch(memberInfo.member){case"soundEffects":return revertToNoneIfNeeded(this.view.querySelector(".selectSoundEffects"),_basesettingsview.default.prototype.getSettingValueFromOwner.apply(this,arguments));case"screensaver":return revertToNoneIfNeeded(this.view.querySelector(".selectScreensaver"),_basesettingsview.default.prototype.getSettingValueFromOwner.apply(this,arguments));case"cardSize":return normalizeCardSize(_basesettingsview.default.prototype.getSettingValueFromOwner.apply(this,arguments));default:return _basesettingsview.default.prototype.getSettingValueFromOwner.apply(this,arguments)}},View.prototype.destroy=function(){_basesettingsview.default.prototype.destroy.apply(this,arguments),this.settingsOptions=null};_exports.default=View}); \ No newline at end of file diff --git a/settings/appplayback.html b/settings/appplayback.html new file mode 100644 index 0000000..3dc94b9 --- /dev/null +++ b/settings/appplayback.html @@ -0,0 +1,184 @@ +
+
+
+ +

${TheseSettingsApplyAppDevice}

+ +
+ + ${Video} + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
${BackgroundVideoPlaybackHelp}
+
+ +
+ +
${PreferDirectStreamLiveTVHelp}
+
+
+
+ +
+ + ${Audio} + +
+ +
+ +
+
+ +
+ +
+ +
${ConvertUnsupportedAudioHelp}
+
+ +
+
+ +
+ + ${Advanced} + +
+
+ +
${CinemaModeConfigurationHelp}
+
+
+ +
${EnableResolutionSwitchingHelp}
+
+
+ +
${EnableDisplayRefreshRateSwitchingHelp}
+
+ +
+ +
+
${EnableExternalVideoPlayersHelp}
+
+
+ +
+ +
+ +
+ +
${HideMediaTransportButtonsHelp}
+
+ +
+ +
+ +
+ +
${VideoPlayerLongPressActionHelp}
+
+
+
+ +
+ + ${HeaderForceConversionForFormats} + +

+ ${ForceConversionForFormatsHelp} +

+
+ +
+ + + + +
+
+ + +
+
+ + +
+
+
+
+
+
\ No newline at end of file diff --git a/settings/appplayback.js b/settings/appplayback.js new file mode 100644 index 0000000..0162479 --- /dev/null +++ b/settings/appplayback.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/basesettingsview.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/servicelocator.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/layoutmanager.js","./../modules/common/appsettings.js","./../modules/common/qualityoptions.js","./../modules/browser.js","./../modules/common/qualitydetection.js"],function(_exports,_basesettingsview,_connectionmanager,_servicelocator,_embyScroller,_embySelect,_embyButton,_embyInput,_embyToggle,_layoutmanager,_appsettings,_qualityoptions,_browser,_qualitydetection){function setMaxBitrateIntoField(select,networkType,mediatype){var options="Audio"===mediatype?_qualityoptions.default.getAudioQualityOptions({currentMaxBitrate:_appsettings.default.maxStreamingBitrate(networkType,mediatype),isAutomaticBitrateEnabled:_appsettings.default.enableAutomaticBitrateDetection(networkType,mediatype),enableAuto:!0}):_qualityoptions.default.getVideoQualityOptions({currentMaxBitrate:_appsettings.default.maxStreamingBitrate(networkType,mediatype),isAutomaticBitrateEnabled:_appsettings.default.enableAutomaticBitrateDetection(networkType,mediatype),enableAuto:!0});select.innerHTML=options.map(function(i){return'"}).join(""),_appsettings.default.enableAutomaticBitrateDetection(networkType,mediatype)?select.value="":select.value=_appsettings.default.maxStreamingBitrate(networkType,mediatype)}function setMaxBitrateFromField(select,networkType,mediatype){select.value?(_appsettings.default.maxStreamingBitrate(networkType,mediatype,select.value),_appsettings.default.enableAutomaticBitrateDetection(networkType,mediatype,!1)):_appsettings.default.enableAutomaticBitrateDetection(networkType,mediatype,!0)}function supportsCellularQuality(){return _qualitydetection.default.supportsConnectionTypeDetection()}function showHideAudioSection(context){context=context.querySelector(".audioSection");context.querySelector(".fieldset-field:not(.hide)")?context.classList.remove("hide"):context.classList.add("hide")}function loadData(options){options=options.element;return function(context){var _screen$orientation;_layoutmanager.default.tv||_browser.default.tv||null==(_screen$orientation=screen.orientation)||!_screen$orientation.lock?context.querySelector(".fldOrientationLock").classList.add("hide"):context.querySelector(".fldOrientationLock").classList.remove("hide"),supportsCellularQuality()?(context.querySelector(".fldVideoCellularQuality").classList.remove("hide"),context.querySelector(".musicCellularQualitySection").classList.remove("hide")):(context.querySelector(".fldVideoCellularQuality").classList.add("hide"),context.querySelector(".musicCellularQualitySection").classList.add("hide")),_servicelocator.appHost.supports("multiserver")?(context.querySelector(".fldVideoInNetworkQuality").classList.remove("hide"),context.querySelector(".fldVideoInternetQuality").classList.remove("hide"),supportsCellularQuality()?context.querySelector(".fldVideoCellularQuality").classList.remove("hide"):context.querySelector(".fldVideoCellularQuality").classList.add("hide"),context.querySelector(".fldAudioInternetQuality").classList.remove("hide"),supportsCellularQuality()?context.querySelector(".musicCellularQualitySection").classList.remove("hide"):context.querySelector(".musicCellularQualitySection").classList.add("hide"),showHideAudioSection(context)):_connectionmanager.default.currentApiClient().getEndpointInfo().then(function(endpointInfo){endpointInfo.IsInNetwork?(context.querySelector(".fldVideoInNetworkQuality").classList.remove("hide"),context.querySelector(".fldVideoInternetQuality").classList.add("hide"),context.querySelector(".fldVideoCellularQuality").classList.add("hide"),context.querySelector(".fldAudioInternetQuality").classList.add("hide"),context.querySelector(".musicCellularQualitySection").classList.add("hide")):(context.querySelector(".fldVideoInNetworkQuality").classList.add("hide"),context.querySelector(".fldVideoInternetQuality").classList.remove("hide"),supportsCellularQuality()?context.querySelector(".fldVideoCellularQuality").classList.remove("hide"):context.querySelector(".fldVideoCellularQuality").classList.add("hide"),context.querySelector(".fldAudioInternetQuality").classList.remove("hide"),supportsCellularQuality()?context.querySelector(".musicCellularQualitySection").classList.remove("hide"):context.querySelector(".musicCellularQualitySection").classList.add("hide")),showHideAudioSection(context)})}(options),function(select){var options=_qualityoptions.default.getVideoQualityOptions({currentMaxBitrate:_appsettings.default.maxChromecastBitrate(),isAutomaticBitrateEnabled:!_appsettings.default.maxChromecastBitrate(),enableAuto:!0});select.innerHTML=options.map(function(i){return'"}).join("")}(options.querySelector(".selectChromecastVideoQuality")),Promise.resolve()}function View(view,params){_basesettingsview.default.apply(this,arguments);var options={element:view.querySelector(".settingsContainer")};(this.settingsOptions=options).element.querySelector("form").addEventListener("submit",function(e){return e.preventDefault(),!1}.bind(options))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_basesettingsview.default.prototype),View.prototype.loadSettingsInternal=function(){var instance=this;return loadData(instance.settingsOptions).then(function(){return instance.loadAutoSettings()})},View.prototype.loadAutoSetting=function(elem){if(elem.classList.contains("selectVideoInNetworkQuality"))setMaxBitrateIntoField(elem,"lan","Video");else if(elem.classList.contains("selectVideoInternetQuality"))setMaxBitrateIntoField(elem,"wan","Video");else if(elem.classList.contains("selectVideoCellularQuality"))setMaxBitrateIntoField(elem,"cellular","Video");else if(elem.classList.contains("selectMusicInternetQuality"))setMaxBitrateIntoField(elem,"wan","Audio");else{if(!elem.classList.contains("selectMusicCellularQuality"))return _basesettingsview.default.prototype.loadAutoSetting.apply(this,arguments);setMaxBitrateIntoField(elem,"cellular","Audio")}},View.prototype.getSettingValueFromOwner=function(owner,memberInfo){return"enableVideoUnderUI"!==memberInfo.member?_basesettingsview.default.prototype.getSettingValueFromOwner.apply(this,arguments):_basesettingsview.default.prototype.getSettingValueFromOwner.apply(this,arguments)?"play":"stop"},View.prototype.saveAutoSettingIntoOwner=function(elem,owner,memberInfo,value){return"enableVideoUnderUI"===memberInfo.member?_basesettingsview.default.prototype.saveAutoSettingIntoOwner.call(this,elem,owner,memberInfo,value="play"===value):"selectVideoInNetworkQuality"===memberInfo.member?(setMaxBitrateFromField(elem,"lan","Video"),Promise.resolve()):"selectVideoInternetQuality"===memberInfo.member?(setMaxBitrateFromField(elem,"wan","Video"),Promise.resolve()):"selectVideoCellularQuality"===memberInfo.member?(setMaxBitrateFromField(elem,"cellular","Video"),Promise.resolve()):"selectMusicInternetQuality"===memberInfo.member?(setMaxBitrateFromField(elem,"wan","Audio"),Promise.resolve()):"selectMusicCellularQuality"===memberInfo.member?(setMaxBitrateFromField(elem,"cellular","Audio"),Promise.resolve()):_basesettingsview.default.prototype.saveAutoSettingIntoOwner.apply(this,arguments)},View.prototype.destroy=function(){_basesettingsview.default.prototype.destroy.apply(this,arguments),this.settingsOptions=null};_exports.default=View}); \ No newline at end of file diff --git a/settings/cameraupload.html b/settings/cameraupload.html new file mode 100644 index 0000000..27054ee --- /dev/null +++ b/settings/cameraupload.html @@ -0,0 +1,39 @@ +
+
+
+ +
+
+
+ +
+
+
+
+ +
+

${UploadToFollowingServers}

+ +
+ +
+
+ + + +
+

${HeaderFoldersToUpload}

+ +
+ +
+
+ +

${CameraUploadMustBeGranted}

+ +
+
+
\ No newline at end of file diff --git a/settings/cameraupload.js b/settings/cameraupload.js new file mode 100644 index 0000000..e5b8fab --- /dev/null +++ b/settings/cameraupload.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/basesettingsview.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-button/paper-icon-button-light.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js","./../modules/emby-apiclient/events.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/servicelocator.js","./../modules/common/textencoding.js"],function(_exports,_basesettingsview,_globalize,_embyScroller,_embySelect,_embyButton,_paperIconButtonLight,_embyInput,_embyToggle,_embyPremierecontainer,_events,_connectionmanager,_servicelocator,_textencoding){function loadForm(page){return page.querySelector(".uploadServerList").innerHTML=_connectionmanager.default.getSavedServers().map(function(s){return'"}).join(""),_servicelocator.cameraUpload.getAvailableFolders().then(function(allFolders){!function(page,folders){page.querySelector(".uploadFolderList").innerHTML=folders.map(function(s){return'"}).join("")}(page,allFolders)})}function View(view,params){_basesettingsview.default.apply(this,arguments),this.progressContainer=view.querySelector(".progressContainer"),this.itemProgressBarForeground=view.querySelector(".itemProgressBarForeground"),this.progressDescription=view.querySelector(".progressDescription"),view.querySelector(".premiereInfo").innerHTML=_globalize.default.translate("FeatureRequiresEmbyPremiere",'',""),view.querySelector(".uploadServerList").addEventListener("change",function(e){var page;return(page=view).querySelector(".chkUploadServer:checked")?page.querySelector(".fldUploadFolders").classList.remove("hide"):page.querySelector(".fldUploadFolders").classList.add("hide"),e.preventDefault(),!1}),view.querySelector("form").addEventListener("submit",function(e){return e.preventDefault(),!1}),this.boundOnUploadProgress=function(e,progressInfo){var numItems=progressInfo.numItems||0,numItemsComplete=progressInfo.numItemsComplete||0,progressInfo=progressInfo.totalPercentComplete||0;this.itemProgressBarForeground.style.width=progressInfo+"%",this.progressDescription.innerHTML=_globalize.default.translate("UploadingNumItems",numItemsComplete+1,numItems),numItems&&progressInfo<100?this.progressContainer.classList.remove("hide"):this.progressContainer.classList.add("hide")}.bind(this)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_basesettingsview.default.prototype),View.prototype.onResume=function(options){_basesettingsview.default.prototype.onResume.apply(this,arguments),_events.default.on(_servicelocator.cameraUpload,"progress",this.boundOnUploadProgress),_servicelocator.cameraUpload.setProgressUpdatesEnabled(!0),_servicelocator.cameraUpload.start()},View.prototype.loadSettingsInternal=function(){var instance=this;return loadForm(this.view).then(function(){instance.loadAutoSettings()})},View.prototype.onPause=function(){_basesettingsview.default.prototype.onPause.apply(this,arguments),this.boundOnUploadProgress&&_events.default.off(_servicelocator.cameraUpload,"progress",this.boundOnUploadProgress),_servicelocator.cameraUpload.setProgressUpdatesEnabled(!1),_servicelocator.cameraUpload.start()},View.prototype.destroy=function(){_basesettingsview.default.prototype.destroy.apply(this,arguments),this.boundOnUploadProgress&&(_events.default.off(_servicelocator.cameraUpload,"progress",this.boundOnUploadProgress),this.boundOnUploadProgress=null),this.progressContainer=null,this.itemProgressBarForeground=null,this.progressDescription=null};_exports.default=View}); \ No newline at end of file diff --git a/settings/display.html b/settings/display.html new file mode 100644 index 0000000..5f25809 --- /dev/null +++ b/settings/display.html @@ -0,0 +1,154 @@ +
+
+
+ +
+ ${Settings} +
+
+ + +
+
+ +
+ + +
+
+ +
+ +
${ThemeAccentColorDescription}
+
+
+ +
+ +
+ +
+ +
+ +
+ +
${AutoOpenSingleItemsFoldersHelp}
+
+ +
+ +
${HideEpisodeSpoilerInfoHelp}
+
+
+
+ +
+ ${HidePlayedMediaFrom} +
+ + + + + +
+
+ + +
+ ${DetailScreenOptions} + +
+
+ +
${EnableLogoImagesAsTitleHelp}
+
+ +
+ +
${ShowPosterOnDetailsHelp}
+
+ +
+ +
${GenreDisplayLimitHelp}
+
+
+ +
${GenreDisplayLimitForListsHelp}
+
+
+ +
+
+
+ +
+
+
\ No newline at end of file diff --git a/settings/display.js b/settings/display.js new file mode 100644 index 0000000..464e0c4 --- /dev/null +++ b/settings/display.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/basesettingsview.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-slider/emby-slider.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js","./../modules/skinmanager.js","./../modules/common/servicelocator.js","./../modules/emby-apiclient/events.js"],function(_exports,_basesettingsview,_globalize,_embyInput,_embyButton,_embySelect,_embyScroller,_embySlider,_embyToggle,_embyPremierecontainer,_skinmanager,_servicelocator,_events){function fillThemes(select,isSettings){for(var mainThemeValue,themes=_skinmanager.default.getThemes(),defaultFound=!1,i=0,length=themes.length;i'+t.name+""}).join("")}function showHideThemeSettingsButton(btnThemeSettings){var controller=_skinmanager.default.getCurrentThemeController();null!=controller&&controller.hasSettings&&controller.hasSettings()?btnThemeSettings.classList.remove("hide"):btnThemeSettings.classList.add("hide")}function showThemeSettings(){var controller=_skinmanager.default.getCurrentThemeController();null!=controller&&controller.hasSettings&&controller.hasSettings()&&controller.showSettings()}function View(view,params){_basesettingsview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",function(e){return e.preventDefault(),!1}.bind(this));for(var elem,key,featurePremiereInfo=view.querySelectorAll(".featurePremiereInfo"),i=0,length=featurePremiereInfo.length;i',""):elem.innerHTML=_globalize.default.translate(key,"","");var selectTheme=view.querySelector(".selectTheme"),selectSettingsTheme=view.querySelector(".selectSettingsTheme"),btnThemeSettings=view.querySelector(".btnThemeSettings");btnThemeSettings.addEventListener("click",showThemeSettings),fillThemes(selectTheme),fillThemes(selectSettingsTheme,!0),showHideThemeSettingsButton(btnThemeSettings),this.boundonThemeLoaded=function(){showHideThemeSettingsButton(this.view.querySelector(".btnThemeSettings"))}.bind(this),_events.default.on(_skinmanager.default,"themeloaded",this.boundonThemeLoaded)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_basesettingsview.default.prototype),View.prototype.loadSettingsInternal=function(){return this.loadAutoSettings()},View.prototype.getUserConfigurationUserId=function(){return this.params.userId||this.getApiClient().getCurrentUserId()},View.prototype.destroy=function(){_basesettingsview.default.prototype.destroy.apply(this,arguments),this.boundonThemeLoaded&&(_events.default.off(_skinmanager.default,"themeloaded",this.boundonThemeLoaded),this.boundonThemeLoaded=null)};_exports.default=View}); \ No newline at end of file diff --git a/settings/download/download.html b/settings/download/download.html new file mode 100644 index 0000000..bb98769 --- /dev/null +++ b/settings/download/download.html @@ -0,0 +1,9 @@ +
+ +
+
+ +
+
+ +
\ No newline at end of file diff --git a/settings/download/download.js b/settings/download/download.js new file mode 100644 index 0000000..1d2e4c5 --- /dev/null +++ b/settings/download/download.js @@ -0,0 +1 @@ +define(["exports","./../../modules/common/globalize.js","./../../modules/tabbedview/tabbedview.js"],function(_exports,_globalize,_tabbedview){function SyncView(view,params){_tabbedview.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(SyncView.prototype,_tabbedview.default.prototype),SyncView.prototype.getTabs=function(){return[{name:_globalize.default.translate("Settings"),id:"settings"},{name:_globalize.default.translate("HeaderManageDownloads"),id:"managedownloads"}]},SyncView.prototype.loadTabController=function(id){return"managedownloads"!==id?Emby.importModule("./settings/download/"+id+"tab.js"):Emby.importModule("./server/sync/activitytab.js")},SyncView.prototype.getTabControllerOptions=function(id){var options=_tabbedview.default.prototype.getTabControllerOptions.apply(this,arguments);return options.mode="download",options.localDownload=!0,options.userId=this.getApiClient().getCurrentUserId(),options};_exports.default=SyncView}); \ No newline at end of file diff --git a/settings/download/settingstab.html b/settings/download/settingstab.html new file mode 100644 index 0000000..3621981 --- /dev/null +++ b/settings/download/settingstab.html @@ -0,0 +1,47 @@ +
+
+
+ +
+
+
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+ +
${MusicDownloadQualityHelp}
+
+ + +
+
+
\ No newline at end of file diff --git a/settings/download/settingstab.js b/settings/download/settingstab.js new file mode 100644 index 0000000..75a50a2 --- /dev/null +++ b/settings/download/settingstab.js @@ -0,0 +1 @@ +define(["exports","./../../modules/tabbedview/basesettingstab.js","./../../modules/common/globalize.js","./../../modules/emby-elements/emby-scroller/emby-scroller.js","./../../modules/emby-elements/emby-select/emby-select.js","./../../modules/emby-elements/emby-button/emby-button.js","./../../modules/emby-elements/emby-button/paper-icon-button-light.js","./../../modules/emby-elements/emby-input/emby-input.js","./../../modules/common/appsettings.js","./../../modules/emby-apiclient/events.js","./../../modules/common/servicelocator.js","./../../modules/common/textencoding.js"],function(_exports,_basesettingstab,_globalize,_embyScroller,_embySelect,_embyButton,_paperIconButtonLight,_embyInput,_appsettings,_events,_servicelocator,_textencoding){function filliOSLocation(view){var html='",syncPathValue="%externalstorage%",syncPathName="",syncPath=_appsettings.default.syncPath(),syncPathValue=(syncPath&&syncPath.length?(syncPathName=" ("+(syncPathValue=syncPath).split("/").pop()+")",view.querySelector(".btnSelectPickerSyncPath").classList.remove("hide")):view.querySelector(".btnSelectPickerSyncPath").classList.add("hide"),html+='",view.querySelector(".selectSyncLocation"));syncPathValue.innerHTML=html,syncPathValue.value=syncPath||""}function onAndroidSyncLocationChange(e){e=e.target.closest("form").querySelector(".selectSyncLocation").value;_appsettings.default.syncPath(e),AndroidAppSettings.setSyncPath(e),MainActivity.authorizeStorage()}function oniOSSyncLocationChange(e){var e=e.target.closest("form"),path=e.querySelector(".selectSyncLocation").value,path=("%externalstorage%"===path?selectDownloadPathiOS.call(this):_appsettings.default.syncPath(path),_appsettings.default.syncPath());path&&path.length?e.querySelector(".btnSelectPickerSyncPath").classList.remove("hide"):e.querySelector(".btnSelectPickerSyncPath").classList.add("hide")}function loadForm(view){view.querySelector(".txtSyncPath").value=_appsettings.default.syncPath()||"",window.AndroidAppSettings?function(view){for(var html='",dirs=AndroidAppHost.getWritableExternalStorageDirs(),size=dirs.size(),i=0;i'+_globalize.default.translate("SystemStorage",_textencoding.default.htmlEncode(name))+""}(view=view.querySelector(".selectSyncLocation")).innerHTML=html,view.value=_appsettings.default.syncPath()||""}(view):window.webkit.messageHandlers&&filliOSLocation(view)}function selectDownloadPathiOS(){var selectContainer=this.closest(".selectContainer");window.webkit.messageHandlers.selectSyncLocation.postMessage({}).then(function(result){result?(_appsettings.default.syncPath(result.Path||""),console.log("Picked folder: "+result),filliOSLocation(selectContainer)):_appsettings.default.syncPath("")},function(){console.log("Operation cancelled."),filliOSLocation(selectContainer)})}function View(view,params){_basesettingstab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_basesettingstab.default.prototype),View.prototype.onTemplateLoaded=function(){_basesettingstab.default.prototype.onTemplateLoaded.apply(this,arguments);var view=this.view;this.progressContainer=view.querySelector(".progressContainer"),this.itemProgressBarForeground=view.querySelector(".itemProgressBarForeground"),this.progressDescription=view.querySelector(".progressDescription"),window.AndroidAppSettings?(view.querySelector(".fldSyncLocation").classList.remove("hide"),view.querySelector(".selectSyncLocation").addEventListener("change",onAndroidSyncLocationChange)):window.webkit.messageHandlers?(view.querySelector(".fldSyncLocation").classList.remove("hide"),view.querySelector(".selectSyncLocation").addEventListener("change",oniOSSyncLocationChange),view.querySelector(".btnSelectPickerSyncPath").addEventListener("click",selectDownloadPathiOS)):view.querySelector(".fldSyncLocation").classList.add("hide"),view.querySelector(".fldCustomSyncPath").classList.add("hide"),view.querySelector("form").addEventListener("submit",function(e){return e.preventDefault(),!1}),this.boundOnDownloadProgress=function(e,progressInfo){var numItems=progressInfo.numItems||0,numItemsComplete=progressInfo.numItemsComplete||0,progressInfo=progressInfo.totalPercentComplete||0;this.itemProgressBarForeground.style.width=progressInfo+"%",this.progressDescription.innerHTML=_globalize.default.translate("DownloadNumItems",numItemsComplete+1,numItems),numItems&&progressInfo<100?this.progressContainer.classList.remove("hide"):this.progressContainer.classList.add("hide")}.bind(this)},View.prototype.loadTemplate=function(){return require(["text!settings/download/settingstab.html"])},View.prototype.onResume=function(options){_basesettingstab.default.prototype.onResume.apply(this,arguments),_events.default.on(_servicelocator.localSync,"progress",this.boundOnDownloadProgress),_servicelocator.localSync.setProgressUpdatesEnabled(!0)},View.prototype.loadSettingsInternal=function(){_servicelocator.localSync.sync();return loadForm(this.view),this.loadAutoSettings()},View.prototype.onPause=function(){this.boundOnDownloadProgress&&_events.default.off(_servicelocator.localSync,"progress",this.boundOnDownloadProgress),_servicelocator.localSync.setProgressUpdatesEnabled(!1),_basesettingstab.default.prototype.onPause.apply(this,arguments)},View.prototype.destroy=function(){_basesettingstab.default.prototype.destroy.apply(this,arguments),this.boundOnDownloadProgress&&(_events.default.off(_servicelocator.localSync,"progress",this.boundOnDownloadProgress),this.boundOnDownloadProgress=null),this.progressContainer=null,this.itemProgressBarForeground=null,this.progressDescription=null};_exports.default=View}); \ No newline at end of file diff --git a/settings/homescreen.html b/settings/homescreen.html new file mode 100644 index 0000000..662ba8b --- /dev/null +++ b/settings/homescreen.html @@ -0,0 +1,157 @@ +
+
+
+ +
+ + ${Settings} + +
+
+ +
Changes take effect after signing out or restarting the app.
+
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+ +
${EnableHomeScreenFocusPreviewHelp}
+
+
+
+ +
+ + + ${HeaderLibraryOrder} + +
+ +
+ +
+ +
+ +
+
+
+
\ No newline at end of file diff --git a/settings/homescreen.js b/settings/homescreen.js new file mode 100644 index 0000000..ff1778c --- /dev/null +++ b/settings/homescreen.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/basesettingsview.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/layoutmanager.js","./../modules/listview/listview.js","./../modules/common/itemmanager/itemmanager.js","./../modules/common/itemmanager/genericitemcontroller.js"],function(_exports,_basesettingsview,_loading,_globalize,_embyInput,_embyButton,_embyToggle,_embySelect,_embyScroller,_embyItemscontainer,_layoutmanager,_listview,_itemmanager,_genericitemcontroller){function getLandingScreenOptionsHtml(type){return function(type){var list=[];return"movies"===type?(list.push({name:_globalize.default.translate("Movies"),value:"movies",isDefault:!0}),list.push({name:_globalize.default.translate("Suggestions"),value:"suggestions"}),list.push({name:_globalize.default.translate("Favorites"),value:"favorites"}),list.push({name:_globalize.default.translate("Genres"),value:"genres"}),list.push({name:_globalize.default.translate("Collections"),value:"collections"}),list.push({name:_globalize.default.translate("Tags"),value:"tags"}),list.push({name:_globalize.default.translate("Folders"),value:"folders"})):"musicvideos"===type?(list.push({name:_globalize.default.translate("Videos"),value:"videos",isDefault:!0}),list.push({name:_globalize.default.translate("Artists"),value:"artists"}),list.push({name:_globalize.default.translate("Genres"),value:"genres"}),list.push({name:_globalize.default.translate("Tags"),value:"tags"}),list.push({name:_globalize.default.translate("Folders"),value:"folders"})):"tvshows"===type?(list.push({name:_globalize.default.translate("Shows"),value:"shows",isDefault:!0}),list.push({name:_globalize.default.translate("Suggestions"),value:"suggestions"}),list.push({name:_globalize.default.translate("Favorites"),value:"favorites"}),list.push({name:_globalize.default.translate("Collections"),value:"collections"}),list.push({name:_globalize.default.translate("Genres"),value:"genres"}),list.push({name:_globalize.default.translate("Tags"),value:"tags"}),list.push({name:_globalize.default.translate("Networks"),value:"studios"}),list.push({name:_globalize.default.translate("Folders"),value:"folders"})):"music"===type?(list.push({name:_globalize.default.translate("Suggestions"),value:"suggestions",isDefault:!0}),list.push({name:_globalize.default.translate("Albums"),value:"albums"}),list.push({name:_globalize.default.translate("HeaderAlbumArtists"),value:"albumartists"}),list.push({name:_globalize.default.translate("Artists"),value:"artists"}),list.push({name:_globalize.default.translate("Composers"),value:"composers"}),list.push({name:_globalize.default.translate("Playlists"),value:"playlists"}),list.push({name:_globalize.default.translate("Genres"),value:"genres"}),list.push({name:_globalize.default.translate("Tags"),value:"tags"}),list.push({name:_globalize.default.translate("Songs"),value:"songs"}),list.push({name:_globalize.default.translate("Folders"),value:"folders"})):"audiobooks"===type?(list.push({name:_globalize.default.translate("Suggestions"),value:"suggestions",isDefault:!0}),list.push({name:_globalize.default.translate("HeaderAudioBooks"),value:"albums"}),list.push({name:_globalize.default.translate("Authors"),value:"artists"}),list.push({name:_globalize.default.translate("Playlists"),value:"playlists"}),list.push({name:_globalize.default.translate("Genres"),value:"genres"}),list.push({name:_globalize.default.translate("Tags"),value:"tags"}),list.push({name:_globalize.default.translate("Folders"),value:"folders"})):"livetv"===type?(list.push({name:_globalize.default.translate("Suggestions"),value:"suggestions",isDefault:!0}),list.push({name:_globalize.default.translate("Guide"),value:"guide"}),list.push({name:_globalize.default.translate("Channels"),value:"channels"}),list.push({name:_globalize.default.translate("Tags"),value:"tags"})):"homevideos"===type?(list.push({name:_globalize.default.translate("Videos"),value:"videos"}),list.push({name:_globalize.default.translate("Photos"),value:"photos"}),list.push({name:_globalize.default.translate("Tags"),value:"tags"}),list.push({name:_globalize.default.translate("Folders"),value:"folders"})):"books"===type?(list.push({name:_globalize.default.translate("Books"),value:"books"}),list.push({name:_globalize.default.translate("Folders"),value:"folders"})):type||(list.push({name:_globalize.default.translate("Shows"),value:"shows"}),list.push({name:_globalize.default.translate("Movies"),value:"movies"}),list.push({name:_globalize.default.translate("Collections"),value:"collections"}),list.push({name:_globalize.default.translate("Genres"),value:"genres"}),list.push({name:_globalize.default.translate("Tags"),value:"tags"}),list.push({name:_globalize.default.translate("Folders"),value:"folders"})),list}(type).map(function(o){return'"}).join("")}function renderPerLibrarySettings(context,apiClient,user,userViews){for(var context=context.querySelector(".perLibrarySettings"),html="",i=0,length=userViews.length;i")+""+_globalize.default.translate("DisplayInMyMedia")+""),html=(html=["playlists","livetv","boxsets","channels"].includes(item.CollectionType||"")?html:(html=html+'")&&'
'+html+"
","movies"!==item.CollectionType&&"tvshows"!==item.CollectionType&&"musicvideos"!==item.CollectionType&&"music"!==item.CollectionType&&"audiobooks"!==item.CollectionType&&"books"!==item.CollectionType&&"livetv"!==item.CollectionType&&"homevideos"!==item.CollectionType&&(item.CollectionType||"Channel"===item.Type)||(folderId="landing-"+(user="livetv"===item.CollectionType?item.CollectionType:folderId),html=(html=(html+='
')+'
"),html&&(user="",html=(user=(user=(user+="
")+""+item.Name)+""+'
')+html,user+="
",html+="
"),html}(userViews[i],user);context.innerHTML=html}function getCheckboxItems(selector,context,isChecked){for(var inputs=context.querySelectorAll(selector),list=[],i=0,length=inputs.length;i +
+
+ +
+ + + +
    +
  • alt-left: navigate back
  • +
  • alt-b: navigate back
  • +
  • alt-right: navigate forward
  • +
  • page-up: scroll up in list
  • +
  • page-down: scroll down in list
  • +
  • end: scroll to end of list
  • +
  • home: return to app home screen
  • +
  • control-t: Navigate to Live TV
  • +
  • control-g: Navigate to Live TV Guide
  • +
  • control-r: Record - works when highlighting a program or on program detail screen
  • +
  • control-o: Navigate to Recorded TV
  • +
  • control-d: show menu or info for selected content (if available)
  • +
+
+ +
+ + + +
    +
  • spacebar: toggle play/pause
  • +
  • control-shift-a: cycle through audio tracks
  • +
  • control-u: cycle through subtitle tracks
  • +
  • control-p: toggle play/pause
  • +
  • control-shift-p: play selected media
  • +
  • control-shift-s: stop
  • +
  • control-shift-f: skip forward
  • +
  • control-f: next chapter or track
  • +
  • control-shift-b: skip backward
  • +
  • control-b: previous chapter or track
  • +
  • left: rewind, if on-screen display is not showing
  • +
  • right: fast-forward, if on-screen display is not showing
  • +
  • Shift+Left arrow: rewind
  • +
  • Shift+Right arrow: fast-forward
  • +
  • F8: toggle mute
  • +
  • M: toggle mute
  • +
  • F9: volume down
  • +
  • F10: volume up
  • +
  • F: toggle full-screen
  • +
  • PageUp: Next chapter in video
  • +
  • PageDown: Previous chapter in video
  • +
  • Channel up: +, Next channel (or next track if not playing live tv)
  • +
  • Channel down: -, Previous channel (or previous track if not playing live tv)
  • +
+
+ +
+ + + +

${FollowingSpecialKeys}

+
    +
  • search/find: launch app search function
  • +
  • ${Favorites}
  • +
  • ${Home}
  • +
  • menu/info: show menu or info for selected content (if available)
  • +
  • ${Back}
  • +
  • toggle mute
  • +
  • volume up
  • +
  • volume down
  • +
  • channel up
  • +
  • channel down
  • +
  • next track
  • +
  • previous track
  • +
  • ${Pause}
  • +
  • ${Play}
  • +
  • ${FastForward}
  • +
  • ${Rewind}
  • +
  • ${Record}
  • +
  • ${Stop}
  • +
+
+
+
+ \ No newline at end of file diff --git a/settings/keyboard.js b/settings/keyboard.js new file mode 100644 index 0000000..169831b --- /dev/null +++ b/settings/keyboard.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/basesettingsview.js","./../modules/emby-elements/emby-button/emby-button.js"],function(_exports,_basesettingsview,_embyButton){function View(view,params){_basesettingsview.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_basesettingsview.default.prototype);_exports.default=View}); \ No newline at end of file diff --git a/settings/notificationeditor.js b/settings/notificationeditor.js new file mode 100644 index 0000000..6cff7ac --- /dev/null +++ b/settings/notificationeditor.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-checkbox/emby-checkbox.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../modules/layoutmanager.js","./../modules/loading/loading.js","./../modules/dialoghelper/dialoghelper.js","./../modules/common/pluginmanager.js","./../modules/common/responsehelper.js"],function(_exports,_globalize,_embyInput,_embyButton,_embyCheckbox,_embySelect,_embyScroller,_embyDialogclosebutton,_layoutmanager,_loading,_dialoghelper,_pluginmanager,_responsehelper){function onSubmit(e){return _loading.default.show(),this.options.apiClient.saveUserNotification(getEntry(this)).then(function(){_loading.default.hide(),this.submitted=!0,_dialoghelper.default.close(this.dlg)}.bind(this)),e.preventDefault(),!1}function onTestSuccess(){var options;_loading.default.hide(),options=_globalize.default.translate("NotificationSent"),Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}function onTestFail(response){_loading.default.hide(),_responsehelper.default.handleErrorResponse(response)}function getEntry(instance){var entry=Object.assign({},instance.options.entry),dlg=instance.dlg;return instance.options.entryFormEditor.setObjectValues(dlg,entry),entry.GroupItems=dlg.querySelector(".chkGroupItems").checked,entry.UserIds=dlg.querySelector(".selectUser").getValues(),entry.LibraryIds=dlg.querySelector(".selectLibrary").getValues(),entry.DeviceIds=dlg.querySelector(".selectDevices").getValues(),entry.EventIds=Array.prototype.map.call(dlg.querySelectorAll(".chkSubEvent:checked"),function(c){return c.getAttribute("data-id")}),entry}function onEventChange(e){var e=e.target,view=this.dlg;if(e.classList.contains("chkEvent"))for(var page=view,eventId=e.getAttribute("data-id"),checked=e.checked,elems=page.querySelectorAll('.chkSubEvent[data-categoryid="'+eventId+'"]'),i=0,length=elems.length;i')+'
'+"";for(var _i=0,_length=events.length;_i<_length;_i++)var _currentEvent=events[_i],_eventId=_currentEvent.Id,html=(html=(html=(html+='";return"library"===categoryId&&(html+='\n
\n \n
\n "),html=html+"
"+""}(i,options.entry)}).join("");var onEventChangeHandler=onEventChange.bind(instance),selectEventList=dlg.querySelector(".eventList");selectEventList.addEventListener("change",onEventChangeHandler),dlg.querySelector(".btnSubmit").innerHTML=isNew?_globalize.default.translate("AddNotification"):_globalize.default.translate("Save"),fillData(instance,options.entry,dlg,options.apiClient),onEventChangeHandler({target:selectEventList}),dlg.querySelector("form").addEventListener("submit",onSubmit.bind(instance)),dlg.querySelector(".btnSendTest").addEventListener("click",function(){var apiClient=this.options.apiClient;_loading.default.show(),apiClient.sendTestUserNotification(getEntry(this)).then(onTestSuccess,onTestFail)}.bind(instance)),options.apiClient.isMinServerVersion("4.8.0.45")&&dlg.querySelector(".fldDevices").classList.remove("hide"),options.apiClient.isMinServerVersion("4.8.4")&&dlg.querySelector(".fldGroupItems").classList.remove("hide"),options.apiClient.getUser(options.userId).then(function(user){user.Policy.IsAdministrator?dlg.querySelector(".fldSelectUser").classList.remove("hide"):dlg.querySelector(".fldSelectUser").classList.add("hide")})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,EntryEditor.prototype.show=function(options){var dialogOptions={removeOnClose:!0,scrollY:!1},dlg=(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="small",_dialoghelper.default.createDialog(dialogOptions)),instance=(dlg.classList.add("formDialog"),this.options=options,this.dlg=dlg,this);return require(["text!settings/notificationeditor.template.html"]).then(function(responses){var isNew=null==options.entry.Id,responses=responses[0];return dlg.innerHTML=_globalize.default.translateDocument(responses),dlg.querySelector(".formDialogHeaderTitle").innerHTML=isNew?_globalize.default.translate("AddNotification"):_globalize.default.translate("EditNotification"),(options.entry.PluginId?_pluginmanager.default.loadServerPluginTranslations(options.apiClient,options.entry.PluginId):Promise.resolve()).then(function(){return options.entryFormEditor.loadTemplate(dlg.querySelector(".entryFormElements")).then(function(){return initDialogContent(instance,dlg,options,isNew),_dialoghelper.default.open(dlg).then(function(){var _this$options;return null!=(_this$options=this.options)&&null!=(_this$options=_this$options.entryFormEditor)&&_this$options.destroy&&this.options.entryFormEditor.destroy(),this.options=null,this.dlg=null,this.submitted?Promise.resolve():Promise.reject()}.bind(instance))})})})};_exports.default=EntryEditor}); \ No newline at end of file diff --git a/settings/notificationeditor.template.html b/settings/notificationeditor.template.html new file mode 100644 index 0000000..b0a1b79 --- /dev/null +++ b/settings/notificationeditor.template.html @@ -0,0 +1,43 @@ +
+ +

+
+ +
+
+
+ +
+ +
+ + + +
+

${Events}

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+
diff --git a/settings/notifications.js b/settings/notifications.js new file mode 100644 index 0000000..c9a1dbf --- /dev/null +++ b/settings/notifications.js @@ -0,0 +1 @@ +define(["exports","./../list/list.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-button/paper-icon-button-light.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/approuter.js","./../modules/layoutmanager.js","./../modules/common/servicelocator.js","./notificationeditor.js","./../modules/common/pluginmanager.js","./usernotificationcontroller.js"],function(_exports,_list,_globalize,_embyButton,_paperIconButtonLight,_embyScroller,_approuter,_layoutmanager,_servicelocator,_notificationeditor,_pluginmanager,_usernotificationcontroller){function getEventTypes(instance){return instance.getApiClient().getNotificationTypes({userId:instance.getUserId()})}function mapService(service){return service.Icon||(service.Icon="notifications"),service}function addEntryWithService(instance,service){getEventTypes(instance).then(function(allEventTypes){!function(instance,service){var apiClient=instance.getApiClient();return apiClient.getJSON(apiClient.getUrl("Notifications/Services/Defaults",{UserId:instance.getUserId(),NotifierKey:service.Id}))}(instance,service).then(function(entry){var url,apiClient=instance.getApiClient();require([(url=entry.SetupModuleUrl,_pluginmanager.default.getConfigurationResourceUrl(url))],function(EntryFormEditor){EntryFormEditor=EntryFormEditor.setFormValues?EntryFormEditor:new EntryFormEditor({apiClient:apiClient});(new _notificationeditor.default).show({entry:entry,apiClient:apiClient,eventTypes:allEventTypes,entryFormEditor:EntryFormEditor,userId:instance.getUserId()})})})})}function showNewItemDialog(e){var instance=this,apiClient=instance.getApiClient();return apiClient.getJSON(apiClient.getUrl("Notifications/Services",{UserId:instance.getUserId()})).then(function(services){return apiClient.getCurrentUser().then(function(currentUser){var options,currentUser=currentUser.Policy.IsAdministrator&&_servicelocator.appHost.supports("serversetup")?_globalize.default.translate("ForAdditionalNotificationOptions",'',""):_globalize.default.translate("ForAdditionalNotificationOptions","","");return options={positionTo:e.target.closest("button"),positionY:"bottom",items:services.map(mapService),title:_globalize.default.translate("AddNotification"),bottomText:currentUser,hasItemIcon:!0},Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)}).then(function(id){id=function(services,id){return services.filter(function(i){return i.Id===id})[0]}(services,id);addEntryWithService(instance,id)})})})}function UserNotificationsView(view,params){this.enableAlphaNumericShortcuts=!1,this.enableTotalRecordCountDisplay=!1,this.hasOtherViewButtons=!0,this.supportsViewSettings=!1,_list.default.apply(this,arguments),function(instance,view){view.querySelector(".itemsViewSettingsContainer").classList.add("itemsViewSettingsContainer-align-start","readOnlyContent"),view.querySelector(".listTotalRecordCount").insertAdjacentHTML("afterend",'

'+_globalize.default.translate("NotificationsDescription")+'

"),instance.itemsContainer.classList.add("readOnlyContent")}(this,view),view.querySelector(".btnAddItem").addEventListener("click",showNewItemDialog.bind(this)),this.itemsContainer.setAttribute("data-monitor","UserNotifications")}function normalizeItems(instance,items,allEventTypes){for(var i=0,length=items.length;i +
+
+ +
+ + ${Audio} + +
+
+ +
+ +
+ +
${RememberSelectedAudioTracksHelp}
+ +
+ +
+
+
+
+ +
+ + ${Advanced} + +
+
+ +
+
+ +
${ShowUpNextPreviewHelp}
+
+ +
+ +
+ +
+ +
+ +
+ +
${ResumeRewindSecondsHelp}
+
+ +
+ +
${IntroSkipModeHelp}
+
+ +
+ +
${PreventPlaybackContinuing}
+
+ +
+ +
${DisplayRatingInformationOnVideoPlaybackStartHelp}
+
+ +
+ +
${VideoScreenUpActionHelp}
+
+
+
+
+
+ \ No newline at end of file diff --git a/settings/playback.js b/settings/playback.js new file mode 100644 index 0000000..14ed4d8 --- /dev/null +++ b/settings/playback.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/basesettingsview.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-toggle/emby-toggle.js"],function(_exports,_basesettingsview,_loading,_globalize,_embyScroller,_embySelect,_embyButton,_embyInput,_embyToggle){function fillSkipLengths(select){var formatter=new Intl.DurationFormat(_globalize.default.getCurrentLocales(),{style:"long"});select.innerHTML=[5,10,15,20,25,30].map(function(option){return{name:formatter.format({seconds:option}),value:1e3*option}}).map(function(o){return'"}).join("")}function onTrackSelectionsCleared(){_loading.default.hide()}function onClearSavedTrackSelectionsClick(e){var options,instance=this,mode=e.target.closest("button").getAttribute("data-mode");return options={title:_globalize.default.translate("HeaderClearTrackSelections"),text:_globalize.default.translate("QuestionClearSavedTracks"),confirmText:_globalize.default.translate("HeaderClearTrackSelections"),primary:"cancel"},Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)}).then(function(){return _loading.default.show(),instance.getApiClient().clearUserTrackSelections(instance.getUserConfigurationUserId(),mode).then(onTrackSelectionsCleared,onTrackSelectionsCleared)})}function View(view,params){var select,formatter;_basesettingsview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",function(e){return e.preventDefault(),!1}.bind(this)),view.querySelector(".btnClearTrackSelections").addEventListener("click",onClearSavedTrackSelectionsClick.bind(this)),select=view.querySelector(".selectResumeRewind"),formatter=new Intl.DurationFormat(_globalize.default.getCurrentLocales(),{style:"long"}),select.innerHTML=[0,5,10,15,20].map(function(option){return{name:formatter.format({seconds:option}),value:option}}).map(function(o){return'"}).join(""),fillSkipLengths(view.querySelector(".selectSkipForwardLength")),fillSkipLengths(view.querySelector(".selectSkipBackLength")),view.querySelector(".selectAudioLanguage").getItems=function(query){var instance=this;return instance.getApiClient().getCultures().then(function(cultures){var selectedValues=instance.view.querySelector(".selectAudioLanguage").values;Array.isArray(selectedValues)||(selectedValues=null!=selectedValues&&selectedValues.split?selectedValues.split(","):[]);(items=cultures.map(function(c){return{Name:c.DisplayName,Id:c.TwoLetterISOLanguageName,Type:"GenericListItem",CanReorder:-1!==selectedValues.indexOf(c.TwoLetterISOLanguageName)&&1query.Limit&&(items.length=Math.min(items.length,query.Limit)),{TotalRecordCount:cultures,Items:items}})}.bind(this)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_basesettingsview.default.prototype),View.prototype.loadSettingsInternal=function(){return this.loadAutoSettings()},View.prototype.getUserConfigurationUserId=function(){return this.params.userId||this.getApiClient().getCurrentUserId()};_exports.default=View}); \ No newline at end of file diff --git a/settings/profile.css b/settings/profile.css new file mode 100644 index 0000000..6c0034a --- /dev/null +++ b/settings/profile.css @@ -0,0 +1 @@ +.imageDropZone{border:.2em dashed currentcolor;border-radius:.6em;text-align:center;position:relative;height:12em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center} \ No newline at end of file diff --git a/settings/profile.html b/settings/profile.html new file mode 100644 index 0000000..6cd9c8b --- /dev/null +++ b/settings/profile.html @@ -0,0 +1,125 @@ +
+
+ +
+ +
+ +
+

+ + +
+
+ +
+ +
+

${HeaderUploadNewImage}

+ + +
+ +
+ +
+ + + + +
+
+ +
+ +
+ +
+ +
+ +
+ + ${Password} + +
+
+ +
+
+ +
+
+ +
+
+ +
+ + +
+
+
+ +
+ +
+ + ${TitleProfilePin} + + +
+

+ ${ProfilePinDescription} +

+
+ +
+
+
+
+ +
+
+
+ +
+ +
+ + ${HeaderLocalNetworkAccess} + + +
+
+ +
${LocalNetworkPasswordModeHelp}
+
+
+ +
+
+ +
+
+ +
+
+ +
+
\ No newline at end of file diff --git a/settings/profile.js b/settings/profile.js new file mode 100644 index 0000000..189d8ca --- /dev/null +++ b/settings/profile.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-file-input/emby-file-input.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/servicelocator.js","./../modules/appheader/appheader.js","./userpasswordcontroller.js","./../modules/common/textencoding.js"],function(_exports,_baseview,_loading,_globalize,_embyInput,_embyButton,_embySelect,_embyScroller,_embyFileInput,_connectionmanager,_servicelocator,_appheader,_userpasswordcontroller,_textencoding){var currentFile;function reloadUser(page,apiClient,userId){_loading.default.show(),apiClient.getUser(userId).then(function(user){page.querySelector(".username").innerHTML=_textencoding.default.htmlEncode(user.Name);var imageUrl,uploadUserImage=page.querySelector(".uploadUserImage"),uploadUserImage=(uploadUserImage.value="",uploadUserImage.dispatchEvent(new CustomEvent("change",{bubbles:!0})),_appheader.default.setTitle(user.Name),page.querySelector(".fldImage"));user.PrimaryImageTag?(imageUrl=apiClient.getUserImageUrl(user.Id,{height:200,tag:user.PrimaryImageTag,type:"Primary"}),uploadUserImage.innerHTML=''):uploadUserImage.innerHTML='person',uploadUserImage.classList.remove("hide");apiClient.getCurrentUser().then(function(loggedInUser){_servicelocator.appHost.supports("fileinput")&&(loggedInUser.Policy.IsAdministrator||user.Policy.EnableUserPreferenceAccess)?(page.querySelector(".newImageForm").classList.remove("hide"),user.PrimaryImageTag?page.querySelector(".btnDeleteImage").classList.remove("hide"):page.querySelector(".btnDeleteImage").classList.add("hide")):(page.querySelector(".newImageForm").classList.add("hide"),page.querySelector(".btnDeleteImage").classList.add("hide"))}),_loading.default.hide()})}function displayFileError(text){var options;options=_globalize.default.translate(text),Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function onFileReaderError(evt){switch(_loading.default.hide(),evt.target.error.code){case evt.target.error.NOT_FOUND_ERR:displayFileError("FileNotFound");break;case evt.target.error.NOT_READABLE_ERR:displayFileError("FileReadError");break;case evt.target.error.ABORT_ERR:break;default:displayFileError("FileReadError")}}function onFileReaderAbort(evt){_loading.default.hide(),displayFileError("FileReadCancelled")}function setFiles(page,files){var file=(files=function(files){for(var list=[],i=0,length=files.length;i'].join("");page.querySelector(".userImageOutput").innerHTML=e,page.querySelector(".fldUpload").classList.remove("hide")},files.readAsDataURL(file)):(page.querySelector(".userImageOutput").innerHTML="",page.querySelector(".fldUpload").classList.add("hide"),currentFile=null)}function onImageDragOver(e){return e.preventDefault(),!(e.originalEvent.dataTransfer.dropEffect="Copy")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!settings/profile.css"]);var supportedImageTypes=["image/png","image/jpg","image/jpeg","image/webp","image/gif"];function validateImage(file){return!!supportedImageTypes.includes(file.type)}function View(view,params){_baseview.default.apply(this,arguments);var apiClient=_connectionmanager.default.getApiClient(params.serverId),userId=params.userId;reloadUser(view,apiClient,userId),view.querySelector(".userImageDropZone").addEventListener("dragOver",onImageDragOver),view.querySelector(".uploadUserImage").setAttribute("accept",supportedImageTypes.join(",")),view.querySelector(".btnDeleteImage").addEventListener("click",function(){var options;options={title:_globalize.default.translate("HeaderDeleteImage"),text:_globalize.default.translate("ConfirmDeleteImage"),confirmText:_globalize.default.translate("Delete"),primary:"cancel"},Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)}).then(function(){_loading.default.show(),apiClient.deleteUserImage(userId,"primary").then(function(){_loading.default.hide(),reloadUser(view,apiClient,userId)})})}),view.querySelector(".btnBrowse").addEventListener("click",function(){view.querySelector(".uploadUserImage").click()}),view.querySelector(".newImageForm").addEventListener("submit",function(e){e.preventDefault();e=currentFile;return e&&validateImage(e)&&(_loading.default.show(),apiClient.uploadUserImage(userId,"Primary",e).then(function(){_loading.default.hide(),reloadUser(view,apiClient,userId)})),!1}),view.querySelector(".uploadUserImage").addEventListener("change",function(e){setFiles(view,e.target.files)}),this.userPasswordController=new _userpasswordcontroller.default(view,params,apiClient)}Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments),this.userPasswordController&&this.userPasswordController.resume(options)},View.prototype.onPause=function(){_baseview.default.prototype.onPause.apply(this,arguments),this.userPasswordController&&this.userPasswordController.pause()},View.prototype.destroy=function(){_baseview.default.prototype.destroy.apply(this,arguments),this.userPasswordController.destroy(),this.userPasswordController=null};_exports.default=View}); \ No newline at end of file diff --git a/settings/settings.css b/settings/settings.css new file mode 100644 index 0000000..caa697a --- /dev/null +++ b/settings/settings.css @@ -0,0 +1 @@ +.settingsDescriptionContainer{width:52%;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center}.settingsDescriptionContent{padding-top:1em}.settingsDescriptionContent-logo{width:20em;height:20em;background-size:contain;border-width:.7em;border-style:solid;border-radius:100em;padding:1em} \ No newline at end of file diff --git a/settings/settings.html b/settings/settings.html new file mode 100644 index 0000000..849356a --- /dev/null +++ b/settings/settings.html @@ -0,0 +1,14 @@ +
+ +
+
+ +
+ +
+ +
+
+
+
+
\ No newline at end of file diff --git a/settings/settings.js b/settings/settings.js new file mode 100644 index 0000000..e9b56e6 --- /dev/null +++ b/settings/settings.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/loading/loading.js","./../modules/common/servicelocator.js","./../modules/focusmanager.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/navdrawer/navdrawercontent.js","./../modules/layoutmanager.js"],function(_exports,_baseview,_connectionmanager,_loading,_servicelocator,_focusmanager,_embyButton,_embyScroller,_navdrawercontent,_layoutmanager){function renderSettings(instance,params){var apiClient=params.serverId?_connectionmanager.default.getApiClient(params.serverId):_connectionmanager.default.currentApiClient();apiClient.getUser(params.userId||apiClient.getCurrentUserId()).then(function(user){return apiClient.getCurrentUser().then(function(loggedInUser){return function(instance,apiClient,user,loggedInUser){var mobileBorders=!_layoutmanager.default.tv,options={apiClient:apiClient,user:user,loggedInUser:loggedInUser,userImage:!0,selectServer:!0,signOut:!0,itemClass:"navMenuOption-settings"+(mobileBorders?" navMenuOption-settings-hidelastborder":""),itemsContainerClass:mobileBorders?" navDrawerItemsContainer-shaded defaultCardBackground":null,home:!1,search:!1,collapsible:!1,header:!1,border:!1,highlight:mobileBorders,allowBorderXOffset:!0,asideIcon:!0,contextMenu:!1,listItemBodyClass:"settingsMenuListItemBody"+(_layoutmanager.default.tv?"":" settingsMenuListItemBody-extrapadding"),itemBackground:_layoutmanager.default.tv,headerClass:"navMenuHeader-settings"};return _navdrawercontent.default.getSettingsDrawerHtml(options).then(function(html){var routesElem=instance.view.querySelector(".dynamicRoutes");return mobileBorders&&routesElem.classList.add("padded-left","padded-right"),routesElem.innerHTML=html,_navdrawercontent.default.initItemsContainers(routesElem,options).then(function(){var serverElem,autoFocusElem=routesElem;"server"===instance.params.start&&(serverElem=routesElem.querySelector('div[data-section="server"]'))&&(autoFocusElem=serverElem),setTimeout(function(){_focusmanager.default.autoFocus(autoFocusElem,{skipIfNotEnabled:!0})},100)})})}(instance,apiClient,user,loggedInUser)})})}function View(view,params){_baseview.default.apply(this,arguments);var appInfoText=_servicelocator.appHost.appName()+" "+_servicelocator.appHost.appVersion();_layoutmanager.default.tv&&(!function(view){view.insertAdjacentHTML("afterbegin",'
')}(view),view.querySelector(".settingsDescriptionContent-description").innerHTML=appInfoText)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!settings/settings.css"]),Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments),_loading.default.hide(),options.refresh&&renderSettings(this,this.params)};_exports.default=View}); \ No newline at end of file diff --git a/settings/subspreview.webp b/settings/subspreview.webp new file mode 100644 index 0000000..12cfcdf Binary files /dev/null and b/settings/subspreview.webp differ diff --git a/settings/subtitleappearanceeditor.js b/settings/subtitleappearanceeditor.js new file mode 100644 index 0000000..147a4cd --- /dev/null +++ b/settings/subtitleappearanceeditor.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/globalize.js","./../modules/common/subtitleappearancehelper.js","./../modules/emby-apiclient/events.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-toggle/emby-toggle.js"],function(_exports,_globalize,_subtitleappearancehelper,_events,_embySelect,_embyButton,_embyInput,_embyToggle){function numberToPercentString(value){try{return new Intl.NumberFormat(_globalize.default.getCurrentLocales(),{style:"percent"}).format(value/100)}catch(err){return console.log("Error in NumberFormat: "+err),value+"%"}}function onUserSettingsChange(e,name){var appearanceSettings;"localplayersubtitleappearance3"===name&&(name={window:(name=this.view).querySelector(".subtitleappearance-preview-window"),text:name.querySelector(".subtitleappearance-preview-text")},appearanceSettings=this.options.settingsContainer.getNamedSettingsOwner("usersettings").getSubtitleAppearanceSettings(),_subtitleappearancehelper.default.applyStyles(name,appearanceSettings))}function SubtitleAppearanceEditor(options){this.options=options}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!settings/subtitles.css"]),SubtitleAppearanceEditor.prototype.embed=function(context,position){var instance=this;return require(["text!./settings/subtitleappearanceeditor.template.html"]).then(function(responses){context.insertAdjacentHTML(position,_globalize.default.translateDocument(responses[0])),context=context.parentNode.querySelector(".fieldsetSubtitleAppearance");var options,responses=(instance.view=context).querySelector(".selectVerticalPosition");responses=responses,(options=[{name:numberToPercentString(90),value:90},{name:numberToPercentString(80),value:80},{name:numberToPercentString(70),value:70},{name:numberToPercentString(60),value:60},{name:numberToPercentString(50),value:50},{name:numberToPercentString(40),value:40},{name:numberToPercentString(30),value:30},{name:numberToPercentString(20),value:20},{name:numberToPercentString(10),value:10},{name:_globalize.default.translate("Bottom"),value:0}]).reverse(),responses.innerHTML=options.map(function(o){return'"}).join(""),context.addEventListener("change",function(e){onUserSettingsChange.call(this,{},"localplayersubtitleappearance3");var form=e.target.closest(".fieldsetSubtitleAppearance");(e=e.target.closest(".selectBackgroundColor"))&&("transparent"===e.value?form.querySelector(".fldBackgroundOpacity").classList.add("hide"):form.querySelector(".fldBackgroundOpacity").classList.remove("hide"))}.bind(instance)),!1!==instance.options.preview&&context.querySelector(".previewContainer").classList.remove("hide"),!1!==instance.options.title&&context.querySelector(".appearanceTitle").classList.remove("hide")})},SubtitleAppearanceEditor.prototype.bindEvents=function(){this.boundOnUserSettingsChange||(this.boundOnUserSettingsChange=onUserSettingsChange.bind(this),_events.default.on(this.options.settingsContainer.getNamedSettingsOwner("usersettings"),"change",this.boundOnUserSettingsChange))},SubtitleAppearanceEditor.prototype.destroy=function(){var boundOnUserSettingsChange=this.boundOnUserSettingsChange;boundOnUserSettingsChange&&(_events.default.off(this.options.settingsContainer.getNamedSettingsOwner("usersettings"),"change",boundOnUserSettingsChange),this.boundOnUserSettingsChange=null),this.options=null,this.view=null};_exports.default=SubtitleAppearanceEditor}); \ No newline at end of file diff --git a/settings/subtitleappearanceeditor.template.html b/settings/subtitleappearanceeditor.template.html new file mode 100644 index 0000000..0185389 --- /dev/null +++ b/settings/subtitleappearanceeditor.template.html @@ -0,0 +1,142 @@ +
+ + ${HeaderSubtitleAppearance} + +
+ +
+
+
+
+ ${TheseSettingsAffectSubtitlesOnThisDevice} +
+
+
+
${SubtitleAppearanceSettingsDisclaimer}
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ +
+ ${HeaderSubtitlePosition} + +
+ +
+ +
${VerticalPositionFromBottomScreen}
+
+
+ +
${TopEdgePositionHelp}
+
+
+
\ No newline at end of file diff --git a/settings/subtitles.css b/settings/subtitles.css new file mode 100644 index 0000000..a14e397 --- /dev/null +++ b/settings/subtitles.css @@ -0,0 +1 @@ +.subtitleappearance-preview{background:#6a96bd url(subspreview.webp) no-repeat center center;background-size:cover} \ No newline at end of file diff --git a/settings/subtitles.html b/settings/subtitles.html new file mode 100644 index 0000000..00e6df2 --- /dev/null +++ b/settings/subtitles.html @@ -0,0 +1,38 @@ +
+
+ +
+ +
+ + ${Subtitles} + +
+ +
+ +
+
+ +
+
+
+ +
${RememberSelectedSubtitleTracksHelp}
+ +
+ +
+
+
+
+
+
+
\ No newline at end of file diff --git a/settings/subtitles.js b/settings/subtitles.js new file mode 100644 index 0000000..49a792d --- /dev/null +++ b/settings/subtitles.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/basesettingsview.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./subtitleappearanceeditor.js"],function(_exports,_basesettingsview,_loading,_globalize,_embyScroller,_embySelect,_embyButton,_embyInput,_embyToggle,_subtitleappearanceeditor){function onTrackSelectionsCleared(){_loading.default.hide()}function onClearSavedTrackSelectionsClick(e){var options,instance=this,mode=e.target.closest("button").getAttribute("data-mode");return options={title:_globalize.default.translate("HeaderClearTrackSelections"),text:_globalize.default.translate("QuestionClearSavedTracks"),confirmText:_globalize.default.translate("HeaderClearTrackSelections"),primary:"cancel"},Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)}).then(function(){_loading.default.show();var userId=instance.getUserConfigurationUserId();return instance.getApiClient().clearUserTrackSelections(userId,mode).then(onTrackSelectionsCleared,onTrackSelectionsCleared)})}function View(view,params){_basesettingsview.default.apply(this,arguments),function(view,apiClient){var html="",html=(html=(html+='")+('"))+('");apiClient.isMinServerVersion("4.8.0.67")&&(html+='"),html=(html+='")+'",view.querySelector(".selectSubtitlePlaybackMode").innerHTML=html}(view,this.getApiClient()),view.querySelector("form").addEventListener("submit",function(e){return e.preventDefault(),!1}.bind(this)),view.querySelector(".btnClearTrackSelections").addEventListener("click",onClearSavedTrackSelectionsClick.bind(this)),view.querySelector(".selectSubtitleLanguage").getItems=function(query){var instance=this;return this.getApiClient().getCultures().then(function(cultures){var selectedValues=instance.view.querySelector(".selectSubtitleLanguage").values;Array.isArray(selectedValues)||(selectedValues=null!=selectedValues&&selectedValues.split?selectedValues.split(","):[]);(items=cultures.map(function(c){return{Name:c.DisplayName,Id:c.TwoLetterISOLanguageName,Type:"GenericListItem",CanReorder:-1!==selectedValues.indexOf(c.TwoLetterISOLanguageName)&&1query.Limit&&(items.length=Math.min(items.length,query.Limit)),{TotalRecordCount:cultures,Items:items}})}.bind(this)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_basesettingsview.default.prototype),View.prototype.loadSettingsInternal=function(){var instance=this;return function(instance){var context=instance.view,subtitleAppearanceEditor=new _subtitleappearanceeditor.default({settingsContainer:instance});return(instance.subtitleAppearanceEditor=subtitleAppearanceEditor).embed(context.querySelector(".fieldsetSubtitles"),"afterend").then(function(){_loading.default.hide()})}(instance).then(function(){return instance.loadAutoSettings().then(function(){instance.subtitleAppearanceEditor.bindEvents()})})},View.prototype.getUserConfigurationUserId=function(){return this.params.userId||this.getApiClient().getCurrentUserId()},View.prototype.destroy=function(){_basesettingsview.default.prototype.destroy.apply(this,arguments);var subtitleAppearanceEditor=this.subtitleAppearanceEditor;subtitleAppearanceEditor&&(subtitleAppearanceEditor.destroy(),this.subtitleAppearanceEditor=null)};_exports.default=View}); \ No newline at end of file diff --git a/settings/usernotificationcontroller.js b/settings/usernotificationcontroller.js new file mode 100644 index 0000000..2024ae0 --- /dev/null +++ b/settings/usernotificationcontroller.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/itemmanager/itemmanager.js","./../modules/common/itemmanager/genericitemcontroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/globalize.js","./notificationeditor.js","./../modules/common/pluginmanager.js"],function(_exports,_itemmanager,_genericitemcontroller,_connectionmanager,_globalize,_notificationeditor,_pluginmanager){function UserNotificationController(){_genericitemcontroller.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(UserNotificationController.prototype,_genericitemcontroller.default.prototype),UserNotificationController.prototype.getTypeNames=function(){return["UserNotification"]},UserNotificationController.prototype.getDisplayName=function(item,options){return item.FriendlyName||item.ServiceName},UserNotificationController.prototype.getDefaultIcon=function(item){return""},UserNotificationController.prototype.canDelete=function(item,user){return!0},UserNotificationController.prototype.canEdit=function(items,user){return 1===items.length},UserNotificationController.prototype.isDeletePrimaryCommand=function(itemType){return!0},UserNotificationController.prototype.getDeleteMessages=function(){return{single:{text:"DeleteNotificationConfirmation",title:_globalize.default.translate("DeleteNotification"),confirmText:_globalize.default.translate("Delete")},plural:{text:"DeleteNotificationConfirmation",title:_globalize.default.translate("DeleteNotification"),confirmText:_globalize.default.translate("Delete")}}},UserNotificationController.prototype.deleteItemsInternal=function(options){var item=options.items[0];return _connectionmanager.default.getApiClient(item).deleteUserNotifications(options.items)},UserNotificationController.prototype.editItems=function(items,options){var item=items[0],apiClient=_connectionmanager.default.getApiClient(item);return apiClient.getNotificationTypes({userId:item.UserId}).then(function(allEventTypes){return require([(url=item.SetupModuleUrl,_pluginmanager.default.getConfigurationResourceUrl(url))]).then(function(responses){responses=responses[0],responses=responses.setFormValues?responses:new responses({apiClient:apiClient});return(new _notificationeditor.default).show({entry:item,apiClient:apiClient,eventTypes:allEventTypes,entryFormEditor:responses,userId:item.UserId})});var url})};var instance=new UserNotificationController;_itemmanager.default.registerItemController(instance),_exports.default=instance}); \ No newline at end of file diff --git a/settings/userpasswordcontroller.js b/settings/userpasswordcontroller.js new file mode 100644 index 0000000..1ff7251 --- /dev/null +++ b/settings/userpasswordcontroller.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/globalize.js","./../modules/loading/loading.js","./../modules/focusmanager.js","./../modules/common/responsehelper.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-button/paper-icon-button-light.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js"],function(_exports,_globalize,_loading,_focusmanager,_responsehelper,_embyButton,_paperIconButtonLight,_embySelect,_embyScroller,_embyItemscontainer){function showAlert(options){Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function loadUser(page,params,apiClient,autoFocus){params=params.userId;apiClient.getUser(params,!1).then(function(user){apiClient.getCurrentUser().then(function(loggedInUser){var btnResetPassword=page.querySelector(".btnResetPassword"),showLocalAccessSection=!1;user.HasConfiguredPassword?(user.Policy.IsAdministrator||apiClient.isMinServerVersion("4.8.0.38")?btnResetPassword&&btnResetPassword.classList.add("hide"):btnResetPassword&&btnResetPassword.classList.remove("hide"),apiClient.isMinServerVersion("4.8.0.38")?page.querySelector(".fldCurrentPassword").classList.add("hide"):page.querySelector(".fldCurrentPassword").classList.remove("hide"),showLocalAccessSection=!apiClient.isMinServerVersion("4.8.0.40")):(btnResetPassword&&btnResetPassword.classList.add("hide"),page.querySelector(".fldCurrentPassword").classList.add("hide")),user.Policy.IsAdministrator&&apiClient.isMinServerVersion("4.8.0.38")?(page.querySelector(".txtNewPassword").setAttribute("required","required"),page.querySelector(".txtNewPasswordConfirm").setAttribute("required","required")):(page.querySelector(".txtNewPassword").removeAttribute("required"),page.querySelector(".txtNewPasswordConfirm").removeAttribute("required")),loggedInUser.Policy.IsAdministrator||user.Policy.EnableUserPreferenceAccess?(page.querySelector(".passwordSection").classList.remove("hide"),user.HasConfiguredPassword&&apiClient.isMinServerVersion("4.8.0.48")?page.querySelector(".profilePinForm").classList.remove("hide"):page.querySelector(".profilePinForm").classList.add("hide")):(page.querySelector(".passwordSection").classList.add("hide"),page.querySelector(".profilePinForm").classList.add("hide")),showLocalAccessSection&&(loggedInUser.Policy.IsAdministrator||user.Policy.EnableUserPreferenceAccess)?page.querySelector(".localAccessSection").classList.remove("hide"):page.querySelector(".localAccessSection").classList.add("hide"),page.querySelector(".txtInNetworkPassword").value="",page.querySelector(".txtProfilePin").value=user.Configuration.ProfilePin||"",user.Configuration.EnableLocalPassword?user.HasConfiguredEasyPassword?page.querySelector(".selectInNetworkPasswordMode").value="pin":page.querySelector(".selectInNetworkPasswordMode").value="nopassword":page.querySelector(".selectInNetworkPasswordMode").value="password",onInNetworkPasswordModeChange.call(page.querySelector(".selectInNetworkPasswordMode")),autoFocus&&_focusmanager.default.autoFocus(page,{skipIfNotEnabled:!0})})}),page.querySelector(".txtCurrentPassword").value="",page.querySelector(".txtNewPassword").value="",page.querySelector(".txtNewPasswordConfirm").value=""}function onInNetworkPasswordModeChange(e){var form=this.closest("FORM"),txtEasyPassword=form.querySelector(".txtInNetworkPassword");"pin"===this.value?(form.querySelector(".fldInNetworkPassword").classList.remove("hide"),txtEasyPassword.setAttribute("required","required")):(form.querySelector(".fldInNetworkPassword").classList.add("hide"),txtEasyPassword.removeAttribute("required"))}function savePassword(instance){var view=instance.view,params=instance.params,apiClient=instance.apiClient,userId=params.userId;apiClient.getUser(userId,!1).then(function(user){var currentPassword="",user=(user.HasConfiguredPassword&&(currentPassword=view.querySelector(".txtCurrentPassword").value),view.querySelector(".txtNewPassword").value);apiClient.updateUserPassword(userId,currentPassword,user).then(function(){var options;_loading.default.hide(),options=_globalize.default.translate("PasswordSaved"),Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)}),loadUser(view,params,apiClient)},function(){_loading.default.hide(),showAlert({title:_globalize.default.translate("HeaderSignInError"),text:_globalize.default.translate("MessageInvalidUser")})})})}function onProfilePinFormSubmit(e){return _loading.default.show(),function(instance){var view=instance.view,params=instance.params,apiClient=instance.apiClient,userId=params.userId;apiClient.getUser(userId,!1).then(function(user){var pin=view.querySelector(".txtProfilePin").value;apiClient.updateProfilePin(userId,pin).then(function(response){_loading.default.hide(),_responsehelper.default.handleConfigurationSavedResponse(response),loadUser(view,params,apiClient)},function(err){_loading.default.hide(),_responsehelper.default.handleErrorResponse(err)})})}(this),e.preventDefault(),!1}function onLocalAccessSaved(instance){var view=instance.view,params=instance.params,instance=instance.apiClient;_loading.default.hide(),_responsehelper.default.handleConfigurationSavedResponse(),loadUser(view,params,instance)}function resetPassword(){var options,view=this.view,params=this.params,apiClient=this.apiClient;options=_globalize.default.translate("PasswordResetConfirmation"),_globalize.default.translate("HeaderResetPassword"),Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)}).then(function(){var userId=params.userId;_loading.default.show(),apiClient.resetUserPassword(userId).then(function(){_loading.default.hide(),showAlert({text:_globalize.default.translate("PasswordResetComplete"),title:_globalize.default.translate("HeaderPasswordReset")}),loadUser(view,params,apiClient)})})}function UserPasswordController(view,params,apiClient){this.view=view,this.params=params,this.apiClient=apiClient,view.querySelector(".updatePasswordForm").addEventListener("submit",function(e){var form=e.target.closest("form");return form.querySelector(".txtNewPassword").value!==form.querySelector(".txtNewPasswordConfirm").value?showAlert(_globalize.default.translate("ErrorMessagePasswordNotMatchConfirm")):(_loading.default.show(),savePassword(this)),e.preventDefault(),!1}.bind(this)),view.querySelector(".localAccessForm").addEventListener("submit",function(e){var instance=this,view=instance.view,params=instance.params,apiClient=instance.apiClient,userId=(_loading.default.show(),params.userId),mode=view.querySelector(".selectInNetworkPasswordMode").value;return apiClient.getUser(userId,!1).then(function(user){user.Configuration.EnableLocalPassword="password"!==mode,apiClient.updateUserConfiguration(user.Id,user.Configuration).then(function(){var easyPw;"password"===mode?onLocalAccessSaved(instance):(easyPw="nopassword"===mode?"":view.querySelector(".txtInNetworkPassword").value,apiClient.updateEasyPassword(userId,easyPw).then(function(){onLocalAccessSaved(instance)}))})}),e.preventDefault(),!1}.bind(this)),view.querySelector(".selectInNetworkPasswordMode").addEventListener("change",onInNetworkPasswordModeChange),view.querySelector(".profilePinForm").addEventListener("submit",onProfilePinFormSubmit.bind(this));for(var apiClient=view.querySelector(".btnResetPassword"),btns=(apiClient&&apiClient.addEventListener("click",resetPassword.bind(this)),view.querySelectorAll(".userEditTabButton")),i=0,length=btns.length;i +
+ +
+ +

${HeaderSignInWithConnect}

+ +

${ConnectLoginHelp1}

+ +
+

+

+

+ + +
+ +
+ +
+ +
+ +
${LabelEnterConnectUserNameHelp}
+
+
+ +
+ + + + ${HeaderForgotPassword} + + +
+
+ + + +
+ +
+

${HeaderNewUsers}

+ + ${HeaderSignUp} + +
+
+
+
+
+ diff --git a/startup/connectlogin.js b/startup/connectlogin.js new file mode 100644 index 0000000..75c92c1 --- /dev/null +++ b/startup/connectlogin.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/focusmanager.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js","./../modules/common/appsettings.js","./../modules/common/servicelocator.js","./../modules/layoutmanager.js"],function(_exports,_baseview,_loading,_globalize,_embyInput,_embyButton,_focusmanager,_connectionmanager,_approuter,_appsettings,_servicelocator,_layoutmanager){function stopPolling(instance){instance.currentInterval&&(clearInterval(instance.currentInterval),instance.currentInterval=null)}function showPinErrorMessage(instance,key){instance=instance.view.querySelector(".pinMessage");instance.classList.remove("hide"),instance.innerHTML=_globalize.default.translate(""+key)}function pollPinStatus(){var instance=this;instance.currentPinInfo&&_connectionmanager.default.getPinStatus(instance.currentPinInfo).then(function(pinStatus){pinStatus.IsConfirmed?(stopPolling(instance),function(instance){_loading.default.show(),_appsettings.default.autoLogin("lastuser"),_connectionmanager.default.exchangePin(instance.currentPinInfo).then(function(){_connectionmanager.default.connect().then(function(result){_loading.default.hide(),"ConnectSignIn"===result.State?_approuter.default.showItem({Type:"AddServer"}):_approuter.default.showSelectServer()})})}(instance)):pinStatus.IsExpired&&(stopPolling(instance),showPinErrorMessage(instance,"PinExpiredMessage"))})}function createPin(instance){instance.currentPinInfo=null,_loading.default.show();var view=instance.view;view.querySelector(".pinMessage").classList.add("hide"),view.querySelector(".pinCodeValue").innerHTML=" ",stopPolling(instance),_connectionmanager.default.createPin(instance).then(function(result){instance.currentPinInfo=result,view.querySelector(".pinCodeValue").innerHTML=result.Pin,function(instance){instance.currentInterval=setInterval(pollPinStatus.bind(instance),3e3)}(instance),_loading.default.hide()},function(){instance.currentPinInfo=null,_loading.default.hide(),showPinErrorMessage(instance,"CreatePinErrorMessage")})}function ConnectLoginView(view,params){_baseview.default.apply(this,arguments);var self=this;this.enablePinLogin=_layoutmanager.default.tv&&(_servicelocator.appHost.supports("externallinks")||_servicelocator.appHost.supports("externallinkdisplay")),view.querySelector(".btnSkipConnect").addEventListener("click",function(e){_loading.default.show(),_connectionmanager.default.connect({}).then(function(result){_loading.default.hide(),"ConnectSignIn"===result.State?_approuter.default.showItem({Type:"AddServer"}):_approuter.default.handleConnectionResult(result)})}),view.querySelector(".btnSignup").addEventListener("click",function(e){_servicelocator.appHost.supports("connectsignup")&&(_approuter.default.show("/startup/connectsignup.html"),e.preventDefault(),e.stopPropagation())}),view.querySelector(".btnNewPin").addEventListener("click",function(){createPin(self)}),view.querySelector(".manualLoginForm").addEventListener("submit",function(e){return _loading.default.show(),_connectionmanager.default.loginToConnect(view.querySelector(".txtUser").value,view.querySelector(".txtPassword").value).then(function(){_loading.default.hide(),_approuter.default.showSelectServer()},function(){var options;_loading.default.hide(),options={text:_globalize.default.translate("MessageInvalidUser"),title:_globalize.default.translate("HeaderSignInError")},Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)}),view.querySelector(".txtUser").value=""}),e.preventDefault(),e.stopPropagation(),!1}),function(instance,view){_servicelocator.appHost.supports("externallinks")?(view.querySelector(".terms").innerHTML=_globalize.default.translate("EmbyLoginTerms",'',""),view.querySelector(".pinCodeHeader").innerHTML=_globalize.default.translate("ConnectPinCodeHeader",'https://emby.media/pin')):_servicelocator.appHost.supports("externallinkdisplay")?(view.querySelector(".terms").innerHTML=_globalize.default.translate("EmbyLoginTerms","",""),view.querySelector(".pinCodeHeader").innerHTML=_globalize.default.translate("ConnectPinCodeHeader","https://emby.media/pin")):(view.querySelector(".terms").innerHTML=_globalize.default.translate("EmbyLoginTerms","",""),view.querySelector(".pinCodeHeader").innerHTML=_globalize.default.translate("ConnectPinCodeHeader","")),instance.enablePinLogin?(view.querySelector(".pinLogin").classList.remove("hide"),view.querySelector(".newUsers").classList.add("hide"),view.querySelector(".manualLoginForm").classList.add("hide"),createPin(instance)):(view.querySelector(".pinLogin").classList.add("hide"),view.querySelector(".newUsers").classList.remove("hide"),view.querySelector(".manualLoginForm").classList.remove("hide"))}(this,this.view)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(ConnectLoginView.prototype,_baseview.default.prototype),ConnectLoginView.prototype.onPause=function(){_baseview.default.prototype.onPause.apply(this,arguments),stopPolling(this)},ConnectLoginView.prototype.onResume=function(options){var view;_baseview.default.prototype.onResume.apply(this,arguments),options.refresh&&(view=this.view,this.enablePinLogin?_focusmanager.default.focus(view.querySelector(".btnNewPin")):this.autoFocus())},ConnectLoginView.prototype.destroy=function(){_baseview.default.prototype.destroy.apply(this,arguments),stopPolling(this),this.currentPinInfo=null};_exports.default=ConnectLoginView}); \ No newline at end of file diff --git a/startup/connectsignup.html b/startup/connectsignup.html new file mode 100644 index 0000000..df1c3c0 --- /dev/null +++ b/startup/connectsignup.html @@ -0,0 +1,32 @@ +
+
+ +
+ +

${HeaderSignUp}

+ +
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+ + + +
+
+
diff --git a/startup/connectsignup.js b/startup/connectsignup.js new file mode 100644 index 0000000..16be9e2 --- /dev/null +++ b/startup/connectsignup.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/common/globalize.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js"],function(_exports,_baseview,_loading,_embyInput,_embyButton,_embySelect,_embyScroller,_globalize,_connectionmanager,_approuter){function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function View(view,params){var greWidgetId;_baseview.default.apply(this,arguments),view.querySelector(".btnCancelSignup").addEventListener("click",function(){_approuter.default.back()}),view.querySelector("form").addEventListener("submit",function(e){_loading.default.show();var greResponse=greWidgetId?grecaptcha.getResponse(greWidgetId):null;return function(view,greResponse){view={email:view.querySelector(".txtSignupEmail",view).value,username:view.querySelector(".txtSignupUsername",view).value,password:view.querySelector(".txtSignupPassword",view).value,passwordConfirm:view.querySelector(".txtSignupPasswordConfirm",view).value},greResponse&&(view.grecaptcha=greResponse),_connectionmanager.default.signupForConnect(view).then(function(response){_loading.default.hide();function onAlertDismissed(){_approuter.default.showConnectLogin()}showAlert({text:response.Validated?_globalize.default.translate("MessageThankYouForConnectSignUpNoValidation"):_globalize.default.translate("MessageThankYouForConnectSignUp")}).then(onAlertDismissed,onAlertDismissed)},function(result){_loading.default.hide(),"passwordmatch"===result.errorCode?showAlert({text:_globalize.default.translate("ErrorMessagePasswordNotMatchConfirm")}):"USERNAME_IN_USE"===result.errorCode?showAlert({text:_globalize.default.translate("ErrorMessageUsernameInUse")}):"EMAIL_IN_USE"===result.errorCode?showAlert({text:_globalize.default.translate("ErrorMessageEmailInUse")}):showAlert({text:_globalize.default.translate("DefaultErrorMessage")})})}(view,greResponse),e.preventDefault(),e.stopPropagation(),!1}),0===window.location.href.toLowerCase().indexOf("https://")&&require(["https://www.google.com/recaptcha/api.js?render=explicit"],function(){setTimeout(function(){var recaptchaContainer=view.querySelector(".recaptchaContainer");greWidgetId=grecaptcha.render(recaptchaContainer,{sitekey:"6Le2LAgTAAAAAK06Wvttt_yUnbISTy6q3Azqp9po",theme:"dark"})},100)})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(View.prototype,_baseview.default.prototype);_exports.default=View}); \ No newline at end of file diff --git a/startup/forgotpassword.html b/startup/forgotpassword.html new file mode 100644 index 0000000..8f40815 --- /dev/null +++ b/startup/forgotpassword.html @@ -0,0 +1,23 @@ +
+
+
+ +

${HeaderForgotPassword}

+ +
+ +
${ForgotPasswordUsernameHelp}
+
+ +
+ + + +
+
+
+
diff --git a/startup/forgotpassword.js b/startup/forgotpassword.js new file mode 100644 index 0000000..33cf766 --- /dev/null +++ b/startup/forgotpassword.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js","./../modules/common/servicelocator.js","./../modules/loading/loading.js"],function(_exports,_baseview,_globalize,_embyInput,_embyButton,_embyScroller,_connectionmanager,_approuter,_servicelocator,_loading){function onBackClick(){_approuter.default.back()}function showAlert(options){Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function processForgotPasswordResult(result){var msg;_loading.default.hide(),"ContactAdmin"===result.Action?showAlert({text:_globalize.default.translate("ContactAdminToResetPassword"),title:_globalize.default.translate("HeaderForgotPassword")}):"InNetworkRequired"===result.Action?showAlert({text:_globalize.default.translate("ForgotPasswordInNetworkRequired"),title:_globalize.default.translate("HeaderForgotPassword")}):"PinCode"===result.Action&&(msg=_globalize.default.translate("ForgotPasswordFileCreated"),msg=(msg+="

")+result.PinFile+"

",showAlert({html:msg=_servicelocator.appHost.supports("targetblank")&&_servicelocator.appHost.supports("externallinks")?(msg+='

')+_globalize.default.translate("Help")+"

":msg,title:_globalize.default.translate("HeaderForgotPassword"),centerText:!1}))}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector(".btnCancel").addEventListener("click",onBackClick),view.querySelector("form").addEventListener("submit",function(e){var apiClient=_connectionmanager.default.getApiClient(params.serverId);return _loading.default.show(),apiClient.ajax({type:"POST",url:apiClient.getUrl("Users/ForgotPassword"),dataType:"json",data:{EnteredUsername:view.querySelector(".txtName").value}}).then(processForgotPasswordResult),e.preventDefault(),!1})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_baseview.default.prototype);_exports.default=View}); \ No newline at end of file diff --git a/startup/forgotpasswordpin.html b/startup/forgotpasswordpin.html new file mode 100644 index 0000000..7333f52 --- /dev/null +++ b/startup/forgotpasswordpin.html @@ -0,0 +1,22 @@ +
+
+
+ +

${HeaderPasswordReset}

+ +
+ +
+ +
+ + + +
+
+
+
diff --git a/startup/forgotpasswordpin.js b/startup/forgotpasswordpin.js new file mode 100644 index 0000000..92c63fb --- /dev/null +++ b/startup/forgotpasswordpin.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js"],function(_exports,_baseview,_globalize,_embyInput,_embyButton,_embySelect,_embyScroller,_connectionmanager,_approuter){function onBackClick(){_approuter.default.back()}function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function onPasswordReset(){_approuter.default.beginConnectionWizard()}function processForgotPasswordResult(result){result.UsersReset.length?result.Success?showAlert({html:_globalize.default.translate("PasswordResetForUsers")+"
"+"
"+result.UsersReset.join("
"),title:_globalize.default.translate("HeaderPasswordReset")}).then(onPasswordReset):showAlert({text:_globalize.default.translate("InvalidForgotPasswordPin"),title:_globalize.default.translate("HeaderPasswordReset")}):showAlert({text:_globalize.default.translate("ForgotPasswordNoUserFound"),title:_globalize.default.translate("HeaderPasswordReset")})}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector(".btnCancel").addEventListener("click",onBackClick),view.querySelector("form").addEventListener("submit",function(e){var apiClient=_connectionmanager.default.currentApiClient();return apiClient.ajax({type:"POST",url:apiClient.getUrl("Users/ForgotPassword/Pin"),dataType:"json",data:{Pin:view.querySelector(".txtPin").value}}).then(processForgotPasswordResult),e.preventDefault(),!1})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_baseview.default.prototype);_exports.default=View}); \ No newline at end of file diff --git a/startup/login.js b/startup/login.js new file mode 100644 index 0000000..2b03462 --- /dev/null +++ b/startup/login.js @@ -0,0 +1 @@ +define(["exports","./../list/list.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js","./../modules/common/servicelocator.js","./../modules/common/appsettings.js","./../modules/common/textencoding.js"],function(_exports,_list,_globalize,_embyInput,_embyButton,_embyScroller,_connectionmanager,_approuter,_servicelocator,_appsettings,_textencoding){function setItemProperies(server){}function addItems(items,serverId){items.push({Name:_globalize.default.translate("HeaderManualLogin"),Type:"ManualLogin",ServerId:serverId}),items.push({Name:_globalize.default.translate("HeaderForgotPassword"),Type:"ForgotPassword",ServerId:serverId}),_servicelocator.appHost.supports("multiserver")&&items.push({Name:_globalize.default.translate("HeaderChangeServer"),Type:"SelectServer"})}function showUserSignIn(apiClient,user){user.HasPassword?_approuter.default.showServerLogin({apiClient:apiClient,username:user.Name,loginType:"manual"}):_approuter.default.authenticateUser({serverId:user.ServerId,username:user.Name})}function LoginPage(view,params){this.enableAlphaNumericShortcuts=!1,this.enableTotalRecordCountDisplay=!1,this.supportsViewSettings=!1,_list.default.call(this,view,params),view.querySelector(".itemsContainer").addEventListener("action-null",function(e){var apiClient,item=e.detail.item;if("User"===item.Type)return apiClient=_connectionmanager.default.getApiClient(item),_connectionmanager.default.isLoggedIn(item.ServerId,item.Id)&&("none"!==_appsettings.default.autoLogin()||_appsettings.default.enableProfilePin(item.Id))?_approuter.default.changeToUser({apiClient:apiClient,userId:item.Id}).catch(function(err){"aborterror"!==((null==err?void 0:err.name)||"").toLowerCase()&&showUserSignIn(apiClient,item)}):void showUserSignIn(apiClient,item);_approuter.default.showItem(item)}.bind(this)),function(instance){var view=instance.view,instance=instance.getApiClient().serverName()||"",instance=(instance=_servicelocator.appHost.supports("maskembynameonlogin")?instance.replace(/(emby)/gi,"Media Server").replace(/(Media Server Media Server)/gi,"Media Server").replace(/(Media Server MediaServer)/gi,"MediaServer"):instance)?_globalize.default.translate("SignIntoServerName",_textencoding.default.htmlEncode(instance)):_globalize.default.translate("HeaderPleaseSignIn");view.querySelector(".scrollSlider").insertAdjacentHTML("afterbegin",'

'+instance+"

")}(this),function(view,apiClient){_servicelocator.appHost.supports("multiserver")||apiClient.getJSON(apiClient.getUrl("Branding/Configuration")).then(function(options){var elem;options.LoginDisclaimer&&((elem=document.createElement("div")).classList.add("disclaimer"),elem.textContent=options.LoginDisclaimer||"",elem.style.textAlign="center",elem.classList.add("padded-bottom","padded-bottom-page","padded-top"),(options=view.querySelector(".scrollSlider")).insertAdjacentHTML("afterbegin",'

'+_globalize.default.translate("HeaderPleaseSignIn")+"

"),options.appendChild(elem),view.querySelector(".itemsContainer").classList.remove("padded-bottom-page"))})}(view,_connectionmanager.default.getApiClient(params.serverId))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(LoginPage.prototype,_list.default.prototype),LoginPage.prototype.getSortMenuOptions=function(){return[]},LoginPage.prototype.getItemTypes=function(){return["User"]},LoginPage.prototype.getItems=function(query){var serverId=this.params.serverId,apiClient=_connectionmanager.default.getApiClient(serverId),specialItems=[],numSpecialItems=(addItems(specialItems,serverId),specialItems.length);return apiClient.getPublicUsersQueryResult(query).then(function(result){return result.Items.forEach(setItemProperies),result.Items.length +
+
+ +

+ +
+ +
+
+ +
${RememberLoginDescription}
+
+ + +

+ + + + +

+ +

+ +
+
+ diff --git a/startup/manuallogin.js b/startup/manuallogin.js new file mode 100644 index 0000000..f1b93dc --- /dev/null +++ b/startup/manuallogin.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js","./../modules/focusmanager.js","./../modules/common/servicelocator.js","./../modules/common/textencoding.js","../modules/common/globalize.js"],function(_exports,_baseview,_loading,_embyInput,_embyButton,_embyToggle,_embyScroller,_connectionmanager,_approuter,_focusmanager,_servicelocator,_textencoding,_globalize){function setTitle(instance){var view=instance.view,instance=instance.getApiClient().serverName()||"";_servicelocator.appHost.supports("maskembynameonlogin")&&(instance=instance.replace(/(emby)/gi,"Media Server").replace(/(Media Server Media Server)/gi,"Media Server").replace(/(Media Server MediaServer)/gi,"MediaServer")),view.querySelector(".viewTitle").innerHTML=instance?_globalize.default.translate("SignIntoServerName",_textencoding.default.htmlEncode(instance)):_globalize.default.translate("HeaderPleaseSignIn")}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector(".buttonCancel").addEventListener("click",function(e){_approuter.default.back()}),view.querySelector(".btnForgotPassword").addEventListener("click",function(e){_approuter.default.showItem({Type:"ForgotPassword",ServerId:params.serverId})}),view.querySelector(".btnSelectServer").addEventListener("click",function(e){_approuter.default.showSelectServer()}),view.querySelector("form").addEventListener("submit",function(e){var username=this.querySelector(".txtUserName").value,password=this.querySelector(".txtPassword").value,serverId=(_loading.default.show(),params.serverId);return _approuter.default.authenticateUser({username:username,password:password,serverId:serverId}),e.preventDefault(),!1}),_servicelocator.appHost.supports("multiserver")&&view.querySelector(".btnSelectServer").classList.remove("hide"),function(view,apiClient){_servicelocator.appHost.supports("multiserver")||apiClient.getJSON(apiClient.getUrl("Branding/Configuration")).then(function(options){var elem=view.querySelector(".disclaimer");options.LoginDisclaimer&&elem.classList.remove("hide"),elem.textContent=options.LoginDisclaimer||""})}(view,_connectionmanager.default.getApiClient(params.serverId)),setTitle(this)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments),setTitle(this);var view=this.view,params=this.params,txtUserName=(_loading.default.hide(),view.querySelector(".txtUserName")),view=(txtUserName.value=params.user||"",view.querySelector(".txtPassword"));view.value="",params.user?_focusmanager.default.focus(view):_focusmanager.default.focus(txtUserName)};_exports.default=View}); \ No newline at end of file diff --git a/startup/manualserver.html b/startup/manualserver.html new file mode 100644 index 0000000..da8d150 --- /dev/null +++ b/startup/manualserver.html @@ -0,0 +1,24 @@ +
+
+
+

${HeaderConnectToServer}

+ +
+ +
${LabelHostHelp}
+
+ +
+ +
+ + + + +
+
+
diff --git a/startup/manualserver.js b/startup/manualserver.js new file mode 100644 index 0000000..99cce12 --- /dev/null +++ b/startup/manualserver.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js"],function(_exports,_baseview,_loading,_embyInput,_embyButton,_embyScroller,_connectionmanager,_approuter){function trimEnd(string,charToRemove){for(;string.charAt(string.length-1)===charToRemove;)string=string.substring(0,string.length-1);return string}function onPortChange(e){var currentPort=(this.value||"").trim();"443"!==currentPort&&"8920"!==currentPort||((currentPort=this.closest("form").querySelector(".txtServerHost")).value=currentPort.value.replace(new RegExp("http:","gi"),"https:"))}function onHostChange(e){var currentHost=(this.value||"").trim().toLowerCase(),txtServerPort=this.closest("form").querySelector(".txtServerPort"),currentPort=txtServerPort.value.trim();currentHost.startsWith("http:")&&["8920","443"].includes(currentPort)?txtServerPort.value="8096":currentHost.startsWith("https:")&&["8096"].includes(currentPort)&&(txtServerPort.value="8920")}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",function(e){e.preventDefault();e=function(address,port){if(port){address=trimEnd(address,"/");try{var url=new URL(address);if(url.port)return address;url.port=port;var urlString=url.toString();if("string"==typeof urlString&&urlString&&!urlString.toLowerCase().includes("object url"))return trimEnd(urlString,"/")}catch(err){console.log("error parsing url: "+err)}address+=":"+port}return address}(this.querySelector(".txtServerHost").value,this.querySelector(".txtServerPort").value);return _loading.default.show(),_connectionmanager.default.connectToAddress(e,{}).then(function(result){_loading.default.hide(),_approuter.default.handleConnectionResult(result)}),!1}),view.querySelector(".txtServerPort").addEventListener("change",onPortChange),view.querySelector(".txtServerHost").addEventListener("change",onHostChange),view.querySelector(".buttonCancel").addEventListener("click",function(e){_approuter.default.back()})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments);var view=this.view;view.querySelector(".txtServerHost").value="",view.querySelector(".txtServerPort").value="8096"};_exports.default=View}); \ No newline at end of file diff --git a/startup/selectserver.js b/startup/selectserver.js new file mode 100644 index 0000000..6fddc60 --- /dev/null +++ b/startup/selectserver.js @@ -0,0 +1 @@ +define(["exports","./../list/list.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/servicelocator.js","./../modules/layoutmanager.js"],function(_exports,_list,_globalize,_embyInput,_embyButton,_embyScroller,_connectionmanager,_servicelocator,_layoutmanager){function SelectServerPage(view,params){this.enableAlphaNumericShortcuts=!1,this.enableTotalRecordCountDisplay=!1,this.supportsViewSettings=!1,_list.default.call(this,view,params),this.itemsContainer.setAttribute("data-monitor","Servers"),this.itemsContainer.classList.add("itemsContainer-defaultCardSize")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(SelectServerPage.prototype,_list.default.prototype),SelectServerPage.prototype.getSortMenuOptions=function(){return[]},SelectServerPage.prototype.getItemTypes=function(){return["Server"]},SelectServerPage.prototype.getItems=function(query){return _connectionmanager.default.getAvailableServers().then(function(items){!function(items){items.push({Name:_globalize.default.translate("HeaderAddServer"),Type:"AddServer"}),_connectionmanager.default.isLoggedIntoConnect()||items.push({Name:_globalize.default.translate("HeaderSignInWithConnect"),Type:"EmbyConnect"}),_servicelocator.appHost.supports("sync")&&items.push({Name:_globalize.default.translate("Downloads"),Type:"Downloads"})}(items=items.slice(0));var totalRecordCount=items.length;return query&&(query.StartIndex&&(items=items.slice(query.StartIndex)),null!=query.Limit)&&query.Limit +
+
+ +

${HeaderWelcomeToEmby}

+ +

${EmbyIntroMessage}

+

+
+ +
+
+ diff --git a/startup/welcome.js b/startup/welcome.js new file mode 100644 index 0000000..eec4861 --- /dev/null +++ b/startup/welcome.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/servicelocator.js","./../modules/approuter.js"],function(_exports,_baseview,_loading,_globalize,_embyButton,_embyScroller,_connectionmanager,_servicelocator,_approuter){function onSubmit(e){if(e.preventDefault(),e.stopPropagation(),!_servicelocator.appHost.supports("displaymode")||"ontouchstart"in document)return _loading.default.show(),_connectionmanager.default.connect().then(function(result){_loading.default.hide(),_approuter.default.handleConnectionResult(result)}),!1;_approuter.default.show("/startup/welcome_settings.html")}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",onSubmit);var downloadMessage=view.querySelector(".embyIntroDownloadMessage");_servicelocator.appHost.supports("externallinks")&&_servicelocator.appHost.supports("targetblank")&&_servicelocator.appHost.supports("externalappinfo")?downloadMessage.innerHTML=_globalize.default.translate("ServerDownloadMessage",'https://emby.media'):_servicelocator.appHost.supports("externallinkdisplay")?downloadMessage.innerHTML=_globalize.default.translate("ServerDownloadMessage","https://emby.media"):downloadMessage.innerHTML=_globalize.default.translate("ServerDownloadMessageWithoutLink")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments),_loading.default.hide()};_exports.default=View}); \ No newline at end of file diff --git a/startup/welcome_settings.html b/startup/welcome_settings.html new file mode 100644 index 0000000..e6a3d02 --- /dev/null +++ b/startup/welcome_settings.html @@ -0,0 +1,28 @@ +
+
+
+ +

${LetsGetSetup}

+ +
+ ${Display} +
+ +
+ +
${TVDisplayModeHelp}
+
+
+
+
+ + +
+
+
diff --git a/startup/welcome_settings.js b/startup/welcome_settings.js new file mode 100644 index 0000000..bfe17f3 --- /dev/null +++ b/startup/welcome_settings.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/basesettingsview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js","./../modules/common/globalize.js","./../modules/common/servicelocator.js"],function(_exports,_basesettingsview,_loading,_embyButton,_embySelect,_embyToggle,_embyScroller,_connectionmanager,_approuter,_globalize,_servicelocator){function onSubmit(e){return _loading.default.show(),_connectionmanager.default.connect().then(function(result){_loading.default.hide(),_approuter.default.handleConnectionResult(result)}),e.preventDefault(),e.stopPropagation(),!1}function View(view,params){var elem,key;_basesettingsview.default.apply(this,arguments),elem=view.querySelector(".displayModePremiere"),key="PlaybackTvModeRequiresEmbyPremiere",_servicelocator.appHost.supports("externallinks")&&_servicelocator.appHost.supports("externalpremium")?elem.innerHTML=_globalize.default.translate(key,'',""):elem.innerHTML=_globalize.default.translate(key,"",""),view.querySelector("form").addEventListener("submit",onSubmit)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(View.prototype,_basesettingsview.default.prototype),View.prototype.loadSettingsInternal=function(){return this.loadAutoSettings()};_exports.default=View}); \ No newline at end of file diff --git a/strings/ar.json b/strings/ar.json new file mode 100644 index 0000000..8f401f4 --- /dev/null +++ b/strings/ar.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "تم الانتهاء!", + "ThisWizardWillGuideYou": "سيساعد مساعد الاعداد في إرشادك خلال عملية الإعداد. ", + "HeaderCreateYourFirstUser": "أسمك الأول", + "ButtonQuickStartGuide": "دليل بدء الاستخدام السريع", + "MoreUsersCanBeAddedLater": "يمكن اضافة مستخدمين اخرين لاحقا من لوحة الإعدادات", + "UserProfilesIntro": "يتضمن Emby دعمًا مدمجًا لملفات تعريف المستخدمين ، مما يتيح لكل مستخدم الحصول على إعدادات العرض ، و حالة التشغيل ، والرقابة الأبوية الخاصه به.", + "WizardCompleted": "هذا كل ما نحتاجه منك الآن. لقد بدأ أمبي بجمع المعلومات التي يحتاجها عن مكتبة الوسائط الخاصة بك. تفحص بعض تطبيقاتنا ثم اضغط إنهاء لعرض لوحة عدادات الخادم.", + "MessagePleaseAcceptTermsOfService": "الرجاء قبول شروط وأحكام سياسة الخدمة والخصوصية قبل المتابعة.", + "OptionIAcceptTermsOfService": "أوافق على شروط وأحكام الخدمة", + "SeeOurHwaGuide": "راجع {0} دليل إعداد تسريع الأجهزة {1}.", + "HeaderEmbyServerReleaseNotes": "ملاحظات اصدار خادم امبي", + "AllowSubtitleDownloading": "السماح بتحميل الترجمات", + "AllowSubtitleManagement": "السماح بحذف ملفات الترجمة الموجودة", + "NewUserNameHelp": "هذه هي الطريقة التي سيظهر بها المستخدم على الخادم الخاص بك.", + "ChapterMarkers": "علامات الفصل", + "LabelThumbnailImagesInterval": "مدة بقاء الصور المصغرة", + "ThumbnailImagesIntervalHelp": "ستؤدي الصور المصغرة الأكثر تكرارًا إلى تجربة أفضل ، ولكنها ستتطلب مساحة أكبر على القرص ووقتًا لإنشاء الصور.", + "LabelAuthProvider": "مزود المصادقة", + "AuthProviderHelp": "يستخدم المسؤولون دائمًا موفر Emby الافتراضي لضمان عدم حظر دخولك مطلقًا.", + "HeaderNewUser": "مستخدم جديد", + "ChangeServerDisplayName": "تغيير اسم الخادم", + "ShowAdvancedSettings": "عرض الاعدادات المتقدمة", + "ChangingMetadataImageSettingsNewContent": "إن التغيير على إعدادات تحميل البيانات الوصفية أو المفننات ستطبق على المحتوى الجديد الذي يضاف إلى المكتبة. لتطبيق هذه التغييرات على العناوين الموجودة، يجب أن تقوم بتحديث بياناتها الوصفية يدوياً.", + "AllowRemoteAccess": "السماح بالاتصالات عن بعد إلى خادم إمبي هذا.", + "AllowRemoteAccessHelp": "إذا لم يتم تحديده ، فسيتم حظر جميع الاتصالات عن بُعد.", + "Alerts": "التنبيهات", + "LabelTrackTitleDisplay": "عرض عنوان المسار المضمّن", + "GenerateUserFriendlyTrackTitles": "توليد عناوين سهلة الاستخدام باستخدام معلومات المسار", + "PreferOriginalTrackTitles": "تفضل العناوين المدمجة", + "TrackTitleDisplayHelp": "اختر عنوان عرض المسارات الصوتية والعناوين المدمجة. لا يُفضل تفضيل المضمن إلا إذا كنت تقوم يدويًا بتنسيق معلومات المسار المضمنة يدويًا.", + "EnableTranscodingThrottle": "تمكين محدد السرعة", + "EnableTranscodingThrottleHelp": "يضبط إيمبي سرعة معلجه الفيديو بناءً على الحد من استخدام وحدة المعالجة المركزية CPU.", + "HeaderTypeMetadataDownloaders": "{0} تنزيل البيانات الوصفية", + "HeaderTypeImageFetchers": "{0} جالبات الصور", + "HeaderImageOptions": "خيارات الصورة", + "OptionBeta": "بيتا", + "RegisterWithPayPal": "التسجيل عبر PayPal", + "LabelSyncTempPath": "مسار الملفات المؤقتة", + "LabelSyncTempPathHelp": "حدد مجلد عمل مخصوص للتحويل. الوسائط المنشأة نتيجة تحويل صيغتها خلال عملية التحويل ستحفظ هنا.", + "LabelCustomCertificatePath": "مسار شهادة ssl مخصص", + "LabelCustomCertificatePathHelp": "مسار ملف PKCS # 12 يحتوي على شهادة ومفتاح خاص لتمكين دعم TLS على مجال مخصص.", + "HeaderSetupLibrary": "إعداد مكتبات الوسائط", + "LabelTimeLimitHours": "الوقت المحدد (بالساعة)", + "HeaderPreferredMetadataLanguage": "اللغة المفضلة لواصفات البيانات:", + "LabelSaveLocalMetadata": "حفظ المفننات فى مجلدات الوسائط", + "LabelSaveLocalMetadataHelp": "سيؤدي حفظ العمل الفني في مجلدات الوسائط إلى وضع الصور مع ملفات الوسائط حيث يمكن الوصول إليها بسهولة من خارج Emby. في حالة التعطيل، سيتم حفظ الصور في مجلد البيانات التعريفية الخاص بالخادم.", + "TabAccess": "الدخول", + "HeaderDeviceAccess": "الدخول على جهاز", + "OptionEnableAccessFromAllDevices": "تفعيل الدخول على كافة الأجهزة", + "OptionEnableAccessToAllChannels": "تفعيل الدخول على كافة القنوات", + "OptionEnableAccessToAllLibraries": "تمكين الدخول على كافة المكتبات", + "DeviceAccessHelp": "ترشيح الوصول لأجهزة المستخدم ستمنع المستخدمين من استعمال الأجهزة الجديدة إلى أن يتم اعتمادهم من هنا.", + "LabelDisplayMissingEpisodesWithinSeasons": "أظهر الحلقات المفقودة في مجلدات المواسم", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "ينبغي تفعيل هذه الخاصية لمكتبات التلفزة في إعدادات خادم أمبي", + "ImportMissingEpisodesHelp": "عند التمكين، المعلومات الناقصة للحلقات ستورّد إلى قاعدة بيانات أمبي وستعرض داخل المواسم والمسلسلات. قد تتسبب هذه بأوقات أطول بكثير عند تمشيط المكنبات.", + "MessageEnablingOptionLongerScans": "قد يؤدي تمكين هذا الخيار إلى إبطاء البحث في المكتبات بشكل ملحوظ.", + "LabelMaxParentalRating": "الحد الاقصى لتصنيف الرقابة الابوية المسموح بها", + "MaxParentalRatingHelp": "المحتويات ذات التصنيف الأبوي الأعلى ستخفى عن هذا المستخدم.", + "LibraryAccessHelp": "اختر مجلد وسائط لمشاركته مع هذا المستخدم. المدراء سيكونون قادرين على تغيير إعدادات المجلدات باستخدام مدير واصفات البيانات.", + "ChannelAccessHelp": "إختر قناة لمشاركتها مع هذا المستخدم. المدراء سيكونون قادرين على تغيير إعدادات القنوات باستخدام مدير واصفات البيانات.", + "ImageUploadAspectRatioHelp": "النسبة الباعية الموصى بها هي نسبة 1 إلى 1. صيغة الملف هي jpg أو png.", + "AlreadyPaidHelp1": "إن كنت قد دفعت فيما مضى لتثبيت إصدار قديم من برنامج \"Media Browser\" لأجهزة الأندرويد، فلا حاجة لأن تدفع مجدداً لتفعيل هذا التطبيق. إضغط على \"موافق\" لإرسال رسالة إلكترونية لنا في {0} وسنقوم بتفعيله من أجلك.", + "AlreadyPaidHelp2": "هل لديك أمبي التميّز؟ إذاً ألغِ هذه الرسالة، وقم بتفعيل اشتراك أمبي التميّز على لوح عدادات خادم أمبي من خلال المساعدة-->أمبي التميز، وستفك قفلية الاشتراك تلقائياً.", + "TabMyPlugins": "ملحقاتي", + "TabCatalog": "الكتالوج", + "HeaderAutomaticUpdates": "التحديثات الآلية", + "Standard": "اساسي", + "TabSupporterKey": "مفتاح أمبي التميّز", + "OptionHideUserLocal": "أخفي هذا المستخدم من شاشة الدخول على الشبكة المحلية", + "OptionHideUserRemote": "أخفي هذا المستخدم من شاشة الدخول حين الدخول من بُعد", + "OptionHideUserFromLoginHelp": "هذه مفيدة لحسابات المدراء المتخفّين أو الخصوصيين. على المستخدم في هذه الحالة أن يدخل بياناته يدوياً عبر إدخال اسم المستخدم وكلمة السر.", + "HideFromUnusedDevices": "إخفاء هذا المستخدم من شاشات تسجيل الدخول على الأجهزة التي لم يسجل الدخول إليها مطلقًا", + "OptionDisableUser": "تعطيل هذا المستخدم", + "OptionDisableUserHelp": "عند التعطيل، فلن يسمح الخادم لهذا المستخدم بالاتصال. وسيتم قطع الاتصالات الموجودة بشكل فوري.", + "OptionAllowUserToManageServer": "إسمح لهذا المستخدم بالتحكم بالخادم", + "HeaderFeatureAccess": "صلاحية الخاصية", + "OptionAllowMediaPlayback": "السماح بتشغيل الوسائط", + "AllLibraries": "كل المكتبات", + "HeaderAllowMediaDeletionFrom": "السماح بحذف الوسائط من قبل", + "LiveTVRecordingManagement": "إدارة التسجيل التلفزيوني المباشر", + "OptionAllowRemoteControlOthers": "السماح بالتحكم في المستخدمين الآخرين عن بعد", + "OptionAllowRemoteSharedDevices": "السماح بالتحكم في الأجهزة المشاركة عن بعد", + "OptionAllowRemoteSharedDevicesHelp": "أجهزة Dlna ستعتبر مشاركة إلى أن يبدأ مستخدم ما بالتحكم بها.", + "OptionAllowLinkSharing": "السماح بالمشاركة في قنوات التواصل الاجتماعي", + "OptionAllowLinkSharingHelp": "فقط الصفحات التي تحتويى على معلومات الوسائط سيسمح لها بالمشاركة. أما ملفات الوسائط فإنها لن تشارك مع قنوات التواصل. المشاركات محددة زمنياً وستنتهي بعد {0} يوم/أيام.", + "OptionRelease": "الاصدار الرسمي", + "LabelAllowServerAutoRestartPlugin": "السماح للخادم بإعادة التشغيل تلقائيًا لتطبيق تحديثات البرنامج المساعد", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "الخادم سيعيد التشغيل في فترات الركود فقط، حين لا يكون هناك أي مستخدمين متصلين.", + "LabelRunServerAtStartup": "تشغيل الخادم عند بدء الحاسوب", + "LabelRunServerAtStartupHelp": "هذا سيشغل خادم أمبي ويضيفه إلى مربع الأيقونات مع بدء تشغيل الويندوز. إذا كنت قد ضبطت إعدادات أمبي من خلال خدمات الويندوز فيجب أن تترك هذه الخانة فاضية وتقوم بضبط خدمة الويندوز لتبدأ التشغيل مع تشغيل الويندوز.", + "ButtonSelectDirectory": "إختر الدليلة", + "LabelCachePath": "مسار ذاكرة الكاشة", + "DefaultMetadataLangaugeDescription": "هذه هي إعداداتك الافتراضية ويمكنك أن تخصصها لكل مكتبة على حدة.", + "LabelCachePathHelp": "حدد موقع مخصص لملفات كاشة الخادم، مثل الصور وغيرها. أترك هذه الخانة فارغة لاستعمال القيمة التلقائية.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "بيانات البرنامج", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "مسار واصفات البيانات", + "LabelMetadataPathHelp": "حدد موقع مخصوص لإنزال الأعمال الفنية وواصفات البيانات.", + "LabelTranscodingTempPath": "المسار المؤقت للتشفير البيني", + "LabelTranscodingTempPathHelp": "هذا المجلد يحتوي على ملفات قيد الاستعمال من قبل المشفر البيني. حدد مساراً مخصوصاً او اتركه فارغاً لاستعمال القيمة الافتراضية في مجلد بيانات الخادم.", + "GenerateVideoPreviewThumbnailsHelp": "توفر الصور المصغرة لمعاينة الفيديو تحديثات مباشرة أثناء البحث في التطبيقات المدعومة. قد يستغرق إنشاء الصورة المصغرة وقتًا طويلاً ، ويتسبب في استخدام CPU عالي ، ويستهلك مساحة إضافية على القرص.", + "AsAScheduledTask": "كمهمة مجدولة", + "AsAScheduledTaskAndMediaAdded": "كمهمة مجدولة وعند إضافة الوسائط", + "ButtonRefreshGuideData": "إعادة تنشيط بيانات الدليل", + "LabelNumberOfGuideDays": "عدد أيام بيانات الدليل للإنزال", + "LabelNumberOfGuideDaysHelp": "يوفر تنزيل المزيد من الأيام لبيانات الدليل القدرة على تحديد موعد أكثر مسبقًا وعرض المزيد من القوائم ، ولكن سيستغرق التنزيل أيضًا وقتًا أطول. سيختار Auto بناءً على عدد القنوات. يرجى ملاحظة أنه بغض النظر عن عدد الأيام التي تختارها ، يجب أن تكون البيانات موجودة في بيانات دليل المصدر حتى يتم تنزيلها. يوفر بعض مزودي البيانات الإرشادية 24 ساعة فقط. تدعم بيانات دليل Emby ما يصل إلى 14 يومًا.", + "HeaderFetchImages": "إطهار الصور", + "LabelMaxBackdropsPerItem": "أكبر عدد للخلفيات لكل عنصر", + "LabelMaxScreenshotsPerItem": "أكبر عدد للصور الملتقطة لكل عنصر", + "LabelMinBackdropDownloadWidth": "أقل جودة للخلفية المنزلة", + "LabelMinScreenshotDownloadWidth": "أقل جودة للصور الملتقطة المنزلة", + "ButtonAddScheduledTaskTrigger": "إضافة زناد", + "ButtonAdd": "إضافة", + "LabelTriggerType": "نوع الزناد", + "OptionOnInterval": "بناء على فترة", + "OptionAfterSystemEvent": "بعد حدث معين في النظام", + "LabelDay": "اليوم ", + "LabelTime": "الوقت", + "LabelEvent": "الحدث", + "OptionWakeFromSleep": "استيقظ من السبات", + "Every": "Every", + "LabelEnableRealtimeMonitor": "تفعيل خاصية المراقبة في الوقت الحقيقي", + "LabelEnableRealtimeMonitorHelp": "التغييرات على الملفات ستعالج مباشرة على نظام الملفات المدعومة.", + "Community": "المجتمع", + "HeaderEmbyNews": "أخبار إمبي", + "LabelFriendlyServerName": "اسم الخادم الميسر", + "LabelFriendlyServerNameHelp": "هذا الاسم يسيتخدم للتعرف على الخادم. إن ترك خالٍ، فإن اسم الحاسوب سوف يستخدم.", + "LabelPreferredDisplayLanguage": "لغة الواجهة المفضلة", + "LabelPreferredDisplayLanguageHelp": "إن ترجمة أمبي هو مشروع جاري التنفيذ.", + "LabelReadHowYouCanContribute": "تعرّف على كيفية المساهمة فيه.", + "LabelCustomCss": "تنيسق CSS مخصوص", + "LabelCustomCssHelp": "طبق تنسيق css مخصوصة لواجهة الويب.", + "LabelLocalHttpServerPortNumber": "رقم منفذ http المحلي", + "LabelLocalHttpServerPortNumberHelp": "رقم منفذ http المتوجب على الخادم أن يرتبط من خلاله.", + "LabelPublicHttpPort": "رقم منفذ http العالمي", + "LabelPublicHttpPortHelp": "رقم المنفذ العالمي الذي يجب أن يوافق منفذ http المحلي.", + "LabelPublicHttpsPort": "رقم منفذ https العالمي", + "LabelPublicHttpsPortHelp": "رقم المنفذ العالمي الذي يجب أن يوافق منفذ https المحلي.", + "RequireHttps": "يحتاج إلى بروتوكول https للاتصال من خارج الشبكة", + "RequireHttpsHelp": "إذا تم التفعيل، فسيتم إعادة توجيه الاتصالات القادمة عبر بروتوكل http إلى بروتوكول https", + "LabelHttpsPort": "رقم منفذ https المحتلي", + "LabelHttpsPortHelp": "رقم منفذ tcp المتوجب على بروتوكول https أن يرتبط من خلاله في خادم أمبي.", + "LabelEnableAutomaticPortMap": "فعل الخاصية الآلية في التوفيق بين المنافذ", + "LabelEnableAutomaticPortMapHelp": "حاول التوفيق بين المنفذ العالمي والمنفذ المحلي آلياً باستخدام آلية UPnP. هذه الخاصية قد لا تعمل مع بعض أنواع الراوترات.", + "LabelExternalDDNS": "النطاق الخارجي", + "LabelExternalDDNSHelp": "إذا كان عندك DNS ديناميكي أو نطاق مسمى، فأدخله هنا من غير تحديد بروتوكول أو منفذ. ستقوم تطبيقات أمبي باستخدامه حين تتصل عن بعد. هذه الخانة مطلوبة عندما يتم استخدام شهادة ssl مخصصة. مثال: mydomain.com.\n", + "LabelMinResumePercentage": "النسبة الدنيا للمتابعة", + "LabelMaxResumePercentage": "النسبة العليا للمتابعة", + "LabelMinResumeDuration": "الفترة الدنيا للمتابعة (بالثواني)", + "LabelMinResumePercentageHelp": "العناوين ستعتبر غير مشغلة إذا أوقفت قبل هذا الوقت", + "LabelMaxResumePercentageHelp": "العنواين ستعتبر مشغلة حتى النهاية إذا أوقفت بعد هذا الوقت", + "LabelMinResumeDurationHelp": "العناوين الأقصر من هذا الوقت لن يتاح لها خاصية الاستئناف", + "HeaderStatus": "الوضعية", + "Subscriptions": "الاشتراكات", + "LabelEndingEpisodeNumber": "رقم الحلقة الأخيرة", + "LabelEndingEpisodeNumberHelp": "مطلوبة فقط لملفات ذات حلقات متعددة", + "HeaderSupportTheTeam": "قم بدعم فريق أمبي", + "HeaderSupportTheTeamHelp": "قم بالمساعدة لتأكيد استمرارية عملية تطوير هذا المشروع بشراء أمبي التميّز. جزء من جميع الإيرادات ستخصص لأدوات مجانية أخرى يعتمد هذا المنتج عليها.", + "DonationNextStep": "عند الانتهاء، الرجاء العودة وإدخال مفتاح أمبي التميّز، الذي سيصلك إلى بريدك الإلكتروني.", + "HeaderRunningTasks": "المهام المشغّلة", + "ButtonUpdateNow": "التحديث الآن", + "PleaseUpdateManually": "يرجى إيقاف تشغيل خادم أمبي وتثبيت الإصدار الأخير منه.", + "ServerUpToDate": "خادم أمبي محدث إلى الإصدار الأخير", + "MessagePleaseRestartServerToFinishUpdating": "الرجاء إعادة تشغيل الخادم لإنهاء تطبيق التحديثات.", + "LabelDownMixAudioScale": "تعزيز الصوت عند تقليل توزيع قنوات الصوت", + "LabelDownMixAudioScaleHelp": "تعزيز الصوت عند تقليل توزيع قنوات الصوت. حدد القيمة بـ 1 للمحافظة على القيمة الأصلية للصوت.", + "HeaderForgotKey": "نسيت المفتاح", + "LabelSupporterEmailAddress": "البريد الإلكتروني الذي استخدمته لشراء المفتاح", + "ButtonRetrieveKey": "استدعاء المفتاح", + "LabelSupporterKey": "مفتاح أمبي التميّز (ألصقه من بريدك الإلكتروني)", + "LabelSupporterKeyHelp": "أدخل مفتاح أمبي التميّز الخاص بك لتبدأ بالتمتع بالمزايا الإضافية.", + "MessageInvalidKey": "إن مفتاح أمبي التميّز غير صحيح.", + "ErrorMessageInvalidKey": "لكي تتمكن من الاشتراك في محتوى التميّز، عليك أن تفعل اشتراك أمبي التميز أولاً", + "LabelSkipIfGraphicalSubsPresent": "قم بالتخطي إذا كان الفيديو يحتوي بالفعل على ترجمات مضمنة تتوافق مع لغة التنزيل", + "LabelSkipIfGraphicalSubsPresentHelp": "الإبقاء على النسخ النصية للترجمة سيؤدي إلى رفع كفاءة التوصيل وسيقلل من احتمالية تفعيل التشفير البيني للفيديو.", + "HeaderDownloadLanguages": "تنزيل اللغات", + "LabelSkipIfAudioTrackPresent": "تخطّىإن كان المقطع الصوتي الافتراضي يتوافق مع اللغة المنزلة", + "LabelSkipIfAudioTrackPresentHelp": "لا تختر هذه لكي تؤكد وجود ترجمة لجميع الفيديوهات، بغض النظر عن لغة الصوت.", + "SendMessage": "إرسال رسالة", + "HeaderSendMessage": "أرسل رسالة", + "ButtonSend": "إرسال", + "LabelMessageText": "نص الرسالة", + "LabelMessageTitle": "عنوان الرسالة", + "ButtonEditOtherUserPreferences": "اضبط إعدادات حساب المستخدم هذا، وصورته وتفضيلاته الشخصية.", + "LabelLoginDisclaimer": "إخلاء مسؤولية تسجيل الدخول", + "LabelLoginDisclaimerHelp": "هذه ستعرض أسفل شاشة تسجيل الدخول.", + "HeaderTranscodingTemporaryFiles": "الملفات المؤقتة للتشفير البيني", + "HeaderApiKeys": "مفاتيح api", + "HeaderApiKeysHelp": "التطبيقات الخارجية تحتاج أن تمتلك مفتاح api لكي تتصل بخادم أمبي. هذه المفاتيح تُصدر عن طريق تسجيل الدخول بحساب أمبي، أو عن طريق منح التطبيق مفتاحاً أصدر يدوياً.", + "HeaderApiKey": "مفتاح api", + "HeaderResumeSettings": "استئناف الضبط", + "HeaderFetcherSettings": "إعدادات الجلب", + "HeaderActivity": "الأنشطة", + "ButtonPurchase": "شراء", + "HeaderInstall": "تثبيت", + "LabelSelectVersionToInstall": "إختر الإصدار للتثبيت", + "LinkLearnMoreAboutSubscription": "إعرف المزيد عن أمبي التميّز", + "MessagePluginRequiresSubscription": "هذا الملحق يتطلب اشتراك أمبي التميّز ساري المفعول بعد 14 يوم من الفترة التجريبية المجانية.", + "MessagePremiumPluginRequiresMembership": "هذا الملحق يتطلق اشتراك أمبي التميّز ساري المفعول لتتمكن من شراءه بعد 14 يوم من الفترة التجريبية المجانية.", + "HeaderDeveloperInfo": "معلومات المطور", + "HeaderRevisionHistory": "تاريخ المراجعات", + "ButtonViewWebsite": "أنظر الموقع الإلكتروني", + "OptionSaveMetadataAsHidden": "حفظ واصفات البيانات والصور كملفات مخفية", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "إعرف المزيد عن أمبي كونكت", + "LabelDateAddedBehavior": "كيف يتصرف المحتوى الجديد نحو \"تاريخ الإضافة\" الخاص به", + "OptionDateAddedImportTime": "استخدم تاريخ التمشيط في المكتبة", + "OptionDateAddedFileTime": "استخدم تاريخ إنشاء الملف", + "LabelDateAddedBehaviorHelp": "إذا استعرضت قيمة واصفات البيانا فإنها سوف تستخدم قبل أن تستخدم أي من هذه الخيارات.", + "HeaderLibrarySettings": "إعدادات المكتبة", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "يمكن لتطبيقات Emby تحميل الصور الملتقطة من أجهزتك المحمولة تلقائيًا إلى خادم Emby.", + "LabelCameraUploadPath": "مسار حفظ رفع مقاطع الكاميرا", + "LabelCameraUploadPathHelp": "حدد مسار تحميل مخصص. سيؤدي هذا إلى إلغاء أي إعدادات افتراضية تم تعيينها في قسم تحميل الكاميرا. إذا تركت فارغة ، سيتم استخدام مجلد افتراضي. إذا كنت تستخدم مسارًا مخصصًا ، فستحتاج أيضًا إلى إضافته كمكتبة في إعداد مكتبة Emby.", + "DefaultCameraUploadPathHelp": "حدد مسار تحميل مخصص. إذا تركت فارغة ، سيتم استخدام مجلد افتراضي. إذا كنت تستخدم مسارًا مخصصًا ، فستحتاج أيضًا إلى إضافته كمكتبة في إعداد مكتبة Emby.", + "LabelCreateCameraUploadSubfolder": "أنشئ مجلداً فرعياً لكل جهاز", + "LabelCreateCameraUploadSubfolderHelp": "بالإمكان تخصيص مجلد لكل جهاز عن طريق الضغط عليه من صفحة الأجهزة.", + "LabelCustomDeviceDisplayNameHelp": "أذكر اسم عرض مخصوص أو أتركه فارغاً لاستخدام", + "TabParentalControl": "التحكم الأبوي", + "HeaderAccessSchedule": "جدول الدخولات", + "HeaderAccessScheduleHelp": "إنشئ جدول دخولات لكي تتمكن من تحديد ساعات للدخول.", + "HeaderLibraryAccess": "صلاحيات المكتبة", + "HeaderChannelAccess": "صلاحيات القنوات", + "LabelForgotPasswordUsernameHelp": "أدخل اسم المستخدم الخاص بك، إن كنت تتذكرها", + "TitlePasswordReset": "إعادة تهيئة كلمة السر", + "HeaderBlockItemsWithNoRating": "حظر العناصر التي لا تحتوي على معلومات تصنيف أو لم يتم التعرف عليها", + "LabelBlockContentWithTags": "تقييد العناصر باستخدام الوسوم", + "LabelTagRestrictionMode": "وضع تقييد الوسوم", + "BlockItemsWithTheseTags": "حظر العناصر بهذه الوسوم", + "AllowItemsWithTheseTags": "السماح فقط للعناصر ذات هذه العلامات", + "OptionAllowContentDownloading": "اسمح بإنزال الوسائط", + "LabelNewUserNameHelp": "اسم المستخدم يحتوي على الحروف (a-z)، والأرقام (0-9)، وعلامات الترميز (-_'.)", + "HeaderThisUserIsCurrentlyDisabled": "هذا المستخدم موقوف حالياً. لتفعيل هذا المستخدم, الرجاء النظر اسف الصفحة للاختيار.", + "OptionAllowSyncTranscoding": "السماح بتحميل الوسائط التي تحتاج إلى التشفير \"التحويل\"", + "AllowMediaConversion": "السماح بتحويل الوسائط", + "AllowMediaConversionHelp": "منح أو رفض الوصول إلى ميزة تحويل الوسائط.", + "OptionAllowAudioPlaybackTranscoding": "السماح بتحويل ترميز الصوت، إذا لزم الأمر، أثناء تشغيل الوسائط", + "OptionAllowVideoPlaybackTranscoding": "السماح بتحويل ترميز الفيديو، إذا لزم الأمر، أثناء تشغيل الوسائط", + "OptionAllowVideoPlaybackRemuxing": "السماح بتغيير تنسيقات الحاوية، إذا لزم الأمر، أثناء تشغيل الوسائط", + "OptionAllowMediaPlaybackTranscodingHelp": "سيؤدي تقييد الوصول إلى التحويل إلى تعطيل اختيار الجودة وقد يتسبب في فشل التشغيل في تطبيقات Emby بسبب تنسيقات الوسائط غير المدعومة أو عدم كفاية عرض النطاق الترددي للشبكة.", + "LabelRemoteClientBitrateLimit": "حدد معدل البت للتشغيل التدفقي عبر الإنترنت (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "حد اختياري لمعدل البث لكل تدفق لكل أجهزة خارج الشبكة. يعد هذا مفيدًا لمنع الأجهزة من طلب معدل البت أعلى مما يمكن أن يتعامل معه اتصال الإنترنت. قد يؤدي هذا إلى زيادة تحميل وحدة المعالجة المركزية على الخادم الخاص بك من أجل تحويل مقاطع الفيديو على الطاير إلى معدل بت أقل.", + "LabelUserRemoteClientBitrateLimitHelp": "سيؤدي هذا إلى تجاوز القيمة العامة الافتراضية المعينة في إعدادات الخادم المتقدمة.", + "OptionEnableFullSpeedConversion": "تمكين التحويل بالسرعة الكاملة", + "OptionEnableFullSpeedConversionHelp": "إفتراضياً، التحويل تتم بسرعات منخفضة لتقليل الموارد المستهلكة.", + "OptionEnableAutomaticServerUpdates": "تمكين التحديثات الآلية في الخادم", + "HeaderTVSources": "مصادر تلفزيونية", + "HeaderAddTvSource": "أضف مصدر التلفزيون", + "LabelTunerIpAddress": "عنوان آي بي المولف", + "HeaderGuideProviders": "دليل مصادر البيانات", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "الرمز البريدي", + "LabelLineup": "اصطفاف", + "LabelImportOnlyFavoriteChannels": "أحصر العرض على القنوات المعلّمة كمفضلات", + "ImportFavoriteChannelsHelp": "عند التفعيل، فقط القنوات التي علّمت في المفضلة على هذا المولف ستورد إلى النظام.", + "HeaderDefaultRecordingSettings": "إعدادات التسجيل الافتراضية", + "LabelDisplayName": "الاسم المعروض:", + "OptionDownloadImagesInAdvance": "أنزل الصور مسبقاً", + "OptionDownloadImagesInAdvanceHelp": "بشكل افتراضي ، يتم تنزيل معظم الصور فقط عند طلب تطبيق Emby. قم بتمكين هذا الخيار لتنزيل جميع الصور مقدمًا ، حيث يتم استيراد الوسائط الجديدة. قد يتسبب هذا في عمليات مسح أطول للمكتبة.", + "MessageThankYouForSupporting": "شكراً لدعمك مشروع أمبي.", + "FileReadCancelled": "تم الغاء قراءة الملف.", + "FileNotFound": "الملف غير موجود.", + "FileReadError": "حدث خطأ بقراءة الملف.", + "NoPluginConfigurationMessage": "هذا الملحق ليس له إعدادات تضبط.", + "HeaderNewApiKey": "مفتاح api جديد", + "HeaderNewApiKeyHelp": "إمنح التطبيق الصلاحية للوصول إلى خادم أمبي", + "MessageKeyEmailedTo": "تم إرسال المفتاح إلى البريد الإلكتروني {0}.", + "HeaderConfirmation": "تأكيد", + "MessageKeyUpdated": "شكراً لك. لقد تم تحديث مفتاح أمبي التميّز.", + "MessageKeyRemoved": "شكراً لك. لقد تمت إزالة مفتاح أمبي التميّز.", + "TextEnjoyBonusFeatures": "استمتع بالمزايا الإضافية", + "MessageErrorLoadingSupporterInfo": "كان هناك خطأ في تحميل معلومات أمبي التميّز. الرجاء المحاولة لاحقاً.", + "ValueTimeLimitSingleHour": "الحد الزمني: ساعة واحدة", + "ValueTimeLimitMultiHour": "الحد الزمني: {0} ساعة/ساعات", + "General": "عام", + "HeaderScreenSavers": "حافظات الشاشة", + "Reporting": "التقارير", + "LabelStopping": "قيد الإيقاف", + "HeaderSelectCertificatePath": "إختر مسار الشهادة", + "HeaderSupporterBenefit": "يوفر اشتراك Emby Premiere النشط مزايا إضافية مثل الوصول إلى Emby DVR والوسائط غير المتصلة بالإنترنت والمكونات الإضافية المتميزة والمزيد. {0} اعرف المزيد {1}.", + "LabelAbortedByServerShutdown": "(تم إهماله بسبب عملية إغلاق الخادم)", + "LabelScheduledTaskLastRan": "آخر تشغيل {0}، وقد استغرق {1}.", + "HeaderDeleteTaskTrigger": "حذف زناد المهمة", + "MessageDeleteTaskTrigger": "هل أنت متأكد أنك تريد حذف زناد المهمة؟", + "MessageNoPluginsDueToAppStore": "لإدارة الملحقات، الرجاء استخدام تطبيق أمبي للويب.", + "LabelVersionInstalled": "{0} مثبتة", + "HeaderSelectServerCachePath": "إختر مسار كاشة الخادم", + "HeaderSelectTranscodingPath": "إختر المسار المؤقت للتشفير البيني", + "HeaderSelectMetadataPath": "إختر مسار واصفات البيانات", + "HeaderSelectServerCachePathHelp": "تصفح أو أدخل المسار الذي ترغب أن يُستخدم كاشة لملفات الخادم. يجب أن يكون هذا المجلد قابل للكتابة فيه.", + "HeaderSelectTranscodingPathHelp": "تصفح أو أدخل المسار الذي ترغب أن يُستخدم للملفات المؤقتة للتشفير البيني. يجب أن يكون هذا المجلد قابل للكتابة فيه.", + "HeaderSelectMetadataPathHelp": "تصفح أو أدخل المسار الذي ترغب أن يُستخدم لحفظ واصفات البيانات. يجب أن يكون هذا المجلد قابل للكتابة فيه.", + "MessageConfirmRestart": "هل أنت متأكد أنك تريد أن تعيد تشغيل خادم أمبي؟", + "MessageConfirmShutdown": "هل أنت متأكد أنك تريد أن تنهي تشغيل خادم أمبي؟", + "LabelLocalAccessUrl": "الاتصالات داخل المنزل (الشبكة المحلية): {0}", + "LabelRemoteAccessUrl": "الاتصالات عن بعد (خارج الشبكة): {0}", + "LabelRunningOnPort": "متصل عبر منفذ httpـ {0}", + "LabelRunningOnPorts": "متصل عبر منفذ httpـ {0}، ومنفذ httpsـ {1}.", + "LabelCurrentPath": "المسار الحالي", + "HeaderSelectMediaPath": "إختر مسار الوسيطة", + "HeaderSelectPath": "إختر المسار", + "MessageDirectoryPickerInstruction": "يمكن إدخال مسارات الشبكة يدوياً في حال أن زر الشبكة يخفق في اكتشاف أجهزتك. على سبيل المثال، {0} أو {1}.", + "MessageDirectoryPickerBSDInstruction": "من أجل BSD، يمكنك أن تضبط إعدادات التخزين دخال حساب FreeNAS Jail الخاص بك لكي يتمكن أمبي أن يتصل به.", + "MessageDirectoryPickerLinuxInstruction": "من أجل أنظمة التشغيل التالية: Linux أو Arch Linux أو CentOS أو Debian أو Fedora أو OpenSuse أو Ubuntu، فيجب أن تمنح مستخدم أمبي النظامي صلاحية القراءة ليتمكن من الوصول إلى أماكن التخزين.", + "MetadataManager": "مدير واصفات البيانات", + "OptionBlockLiveTvChannels": "قنوات التلفاز المباشر", + "OptionBlockChannelContent": "محتوى قنوات الإنترنت", + "ButtonRevoke": "أرفض", + "MessageConfirmRevokeApiKey": "هل أنت متأكد من أنك تريد أن ترفض المفتاح (api) هذا؟ سيتم قطع اتصال التطبيق عن خادم أمبي مباشرة.", + "HeaderConfirmRevokeApiKey": "أرفض مفتاح api", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "الرجاء قبول شروط وأحكام الخدمة قبل المتابعة.", + "HeaderChangeFolderType": "غيّر نوع المحتوى", + "HeaderChangeFolderTypeHelp": "لتغيير نوع المحتوى، الرجاء إزالة المكتبة وبناءها مرة أخرى بنوع جديد.", + "HeaderAlert": "تنبيه", + "MessagePleaseRestart": "الرجاء إعادة التشغيل لإنهاء عمليات التحديث.", + "OptionHomeVideos": "الفيديوهات والصور المنزلية", + "OptionBooks": "الكتب", + "HeaderMetadataReaders": "قارءات واصفات البيانات", + "LabelMetadataReadersHelp": "رتب مصادر واصفات البيانات التي تفضلها حسب أولوية التفضيل. أول ملف يعثر عليه سيحمّل.", + "HeaderSubtitleDownloaders": "منزّلات الترجمة", + "SubtitleDownloadersHelp": "تمكين وترتيب مصادر تحميل الترجمات بترتيب الأولوية. يمكن اضافة اكثر من مصادر تحميل الترجمات باستخدام كاتلوج امبى.", + "LabelMetadataDownloaders": "منزّلات واصفات البيانات", + "LabelMetadataDownloadersHelp": "مكّن ورتّب منزّلات واصفات البيانات التي تفضلها حسب أولوية التفضيل. المنزّلات الأقل أولوية ستستخدم لتحل محل المعلومات التي لا يمكن العثور عليها.", + "HeaderMetadataSavers": "حافظات البيانات الوصفية", + "LabelMetadataSaversHelp": "إختر صيغ الملفات التي ترغب في حفظ واصفات البيانات إليها.", + "LabelImageFetchers": "جالبات الصور:", + "LabelImageFetchersHelp": "مكّن ورتّب جالبات الصور التي تفضلها حسب أولوية التفضيل. ", + "PersonTypePerson": "الشخص", + "HeaderRemoveMediaLocation": "إحذف مكان الوسائط", + "MessageConfirmRemoveMediaLocation": "هل أنت متأكد أنك تريد حذف هذا المكان؟", + "LabelNewName": "الاسم الجديد:", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "إعادة التسمية", + "HeaderPluginInstallation": "تثبيت الملحفات", + "MessageTrialExpired": "الفترة التجريبية لهذه الخاصية انتهت", + "MessageTrialWillExpireIn": "الفترة التجريبية لهذه الخاصية ستنتهي بعد {0} يوم/أيام", + "ValuePriceUSD": "السعر: {0} (دولار أمريكي)", + "MessageFeatureIncludedWithSupporter": "أنت مسجل في هذه الخاصية، وستتمكن من متابعة استخدامه لو قمت بالاشتراك في أمبي التميّز.", + "HeaderSelectExternalPlayer": "إختر مشغل خارجي", + "HeaderExternalPlayerPlayback": "تشغيل من مشغل خارجي", + "HeaderThankYou": "شكراً لك", + "HeaderSelectUploadPath": "إختر مسار الرفع", + "ErrorMessageStartHourGreaterThanEnd": "وقت النهاية يجب أن يكون أكبر من وقت البداية.", + "MessagePluginConfigurationRequiresLocalAccess": "لضبط", + "MovieLibraryHelp": "راجع {0} دليل تسمية أفلام Emby {1}.", + "TvLibraryHelp": "راجع {0} دليل تسمية Emby TV {1}.", + "BookLibraryHelp": "الكتب المدرسية مدعومة. راجع {0} دليل تسمية Emby Book {1}.", + "MessageGamePluginRequired": "هذا يتطلب تثبيت ملحق متصفح الألعاب GameBrowser .", + "HeaderUnlockApp": "فك قفلية التطبيق", + "MessagePaymentServicesUnavailable": "خدمات الدفع غير متوفرة حالياً. الرجاء المحاولة فيما بعد.", + "NoNewDevicesFound": "لم يتم العثور على أجهزة جديدة. لإضافة موالف جديد ، أغلق مربع الحوار هذا وأدخل معلومات الجهاز يدويًا.", + "MessageConfirmDeleteTunerDevice": "هل أنت متأكد أنك تريد حذف هذا المولف؟", + "MessageConfirmDeleteGuideProvider": "هل أنت متأكد أنك ترغب في حذف مزود الدليل هذا؟", + "HeaderDeleteProvider": "حذف المزود", + "ErrorAddingTunerDevice": "كان هناك خطأ في إضافة جهاز المولف. الرجاء التأكد من صلاحية الوصول إليه ثم عاود المحاولة.", + "ErrorSavingTvProvider": "كان هناك خطأ في حفظ مزود التلفزة. الرجاء التأكد من صلاحية الوصول إليه ثم عاود المحاولة.", + "ErrorGettingTvLineups": "كان هناك خطأ في إنزال اصطفافات التلفزة. الرجاء التأكد من أن بياناتك صحيحة ثم عاود المحاولة.", + "MessageCreateAccountAt": "أنشئ حساب في {0}", + "ErrorPleaseSelectLineup": "الرجاء اختيار اصطفاف ثم المحاولة مرة أخرى. إن لم تتوفر أية اصطفافات، فالرجاء التأكد من اسم المستخدم وكلمة المرور الخاصة بك، وتأكد من صحة رمزك البريدي.", + "ErrorValidatingSupporterInfo": "كان هناك خطأ في إثبات معلومات أمبي التميز الخاصة بك. الرجاء المحاولة لاحقاً.", + "LabelLocalSyncStatusValue": "الوضعية: {0}", + "HeaderTopPlugins": "أعلى الملحقات", + "ForAdditionalLiveTvOptions": "تصفح Emby {0} كتالوج المكونات الإضافية {1} لتثبيت مزودي خدمة Live TV إضافية.", + "AddUser": "اضافة مستخدم", + "HeaderEmailAddress": "عنوان البريد الإلكتروني", + "NumLocationsValue": "{0} مجلد(ات)", + "PleaseAddAtLeastOneFolder": "الرجاء إضافة مجلد واحد على الأقل لهذه المكتبة بالضغط على زر \"إضافة\"", + "ErrorAddingMediaPathToVirtualFolder": "كان هناك خطأ في إضافة مسار الوسائط. الرجاء التأكد من صحة المسار وأن خادم أمبي لديه صلاحية الوصول إلى الموقع.", + "ErrorAddingEmbyConnectAccount3": "إن حساب أمبي مربوط مسبقاً بحساب محلي، ولا يمكن ربط حساب أمبي بحساب محلي غير مرة واحدة فقط.", + "HeaderConfirmPluginInstallation": "أكد عملية تثبيت الملحق", + "PleaseConfirmPluginInstallation": "الرجاء الضغط على زر موافق لتأكيد قرائتك لما ورد أعلاه وأنك ترغب في الاستمرار في تثبيت الملحق.", + "MessagePluginInstallDisclaimer": "إن الملحقات التي بناها أعضاء مجتمع أمبي لهي طريقة رائعة لتحسين متعة استخدام أمبي وذلك بإضافة المزايا والخدمات الجديدة. قبل تثبيت الملحقات، نرجو أخذ العلم بالآثار التي قد تلحقها بخادم أمبي الخاص بك، مثل أوقات أطولة لتمشيط مكتبتك، والعمليات الخلفية الإضافية وتقليل استقرار نظامك.", + "HardwareAccelerationWarning": "تمكين التسريع بعتاد الحاسوب قد يتسبب في عدم استقرار بعض أنواع الأنظمة. تأكد من أن نظام التشغيل الخاص بك محدث إلى آخر نسخة وأن سواقات الفيديو محدثة أيضاً. إذا واجهت أية صعوبات في تسغيل الفيديو بعد تمكين هذه الخاصية، فعليك إرجاع الإعداد إلى وضعية آلي.", + "ValueExample": "مثال: {0}", + "LabelFileOrUrl": "الملف أو الرابط:", + "OptionEnableForAllTuners": "تمكين كل أجهزة المولفات", + "HeaderTuners": "المولفات", + "DrmChannelsNotImported": "القنوات المجهزة بإدارة الحقوق الرقمية DRM لن تورّد.", + "LabelAllowHWTranscoding": "السماح بالتشفير البيني بعتاد الحاسب", + "AllowHWTranscodingHelp": "عند التفعيل، سيُسمح للمولف بعمل تدفقات مشفرة بينياً على الطائر. هذا قد يساعد في خفض التشفير البيني المطلوب من الخادم.", + "MetadataSettingChangeHelp": "تغيير واصفات البيانات سيكون له تأثير على المحتوى الجديد الذي سيضاف لاحقاً. لإعادة تنشيط المحتوى الموجود، إفتح شاشة التفاصيل ثم اضغط على زر إعادة التنشيط، أو قم بعمل إعادة تنشيط جماعية من خلال مدير واصفات البيانات.", + "RecordingPathChangeMessage": "إن تغيير مجلد التسجيل لم يهجّر التسجيلات الموجودة من الموقع القديم إلى الموقع الجديد. سيتعين عليك أن تنقلهم بنفسك لو شئت.", + "LabelLocalIpAddress": "عنوان IP المحلي:", + "LabelBindToLocalNetworkAddressHelp": "اختياري. تجاوز عنوان الابى المحلي الذي سيقدمه خادم امبى لتطبيقات امبى. في حالة تركه فارغًا ، سيكتشف الخادم تلقائيًا عنوان الابى المحلي.", + "SettingsWarning": "إن تغيير هذه الإعدادات سيتسبب في عدم استقرار النظام أو فشل في الاتصالات. إن صرت تلاحظ أية مشاكل، فننصح أن ترجع الإعدادات إلى القيم الافتراضية.", + "OptionSaveMetadataAsHiddenHelp": "إن تغيير هذه سيطبق على واصفات البيانات الجديدة من الآن. أما واصفات البيانات الموجودة مسبقاً، فهي ستحدث من قبل الخادم في المرة القادمة التي يتم حفظها.", + "EnablePhotos": "تفعيل الصور", + "EnablePhotosHelp": "سيتم اكتشاف الصور وعرضها مع ملفات الوسائط الأخرى", + "ImportPlaylists": "إستيراد ملفات قائمة التشغيل", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "حفظ الصور المصغرة في مجلدات الوسائط", + "LabelGenerateVideoPreviewThumbnails": "إنشاء صور مصغرة لمعاينة الفيديو:", + "LabelEnableDebugLogging": "تمكين تسيجل الأخطاء في السجل الكشفي", + "OptionEnableExternalContentInSuggestions": "تمكين المحتوى الخارجي في المقترحات", + "OptionEnableExternalContentInSuggestionsHelp": "السماح للعروض الإعلانية من الإنترنت وبرامج بث التلفزة الحي لتضمّن في المحتوى المقترح.", + "LabelOptionalNetworkPath": "(خياري) مجلدة مشاركة الشبكة:", + "LabelOptionalNetworkPathHelp": "إن كان هذا المجلد مشاركاً على شبكتك فإن تزويد مسار الشبكة سيسمح لتطبيقات أمبي على الأجهزة الأخرى بالوصول إلى ملفات الوسائط مباشرة.", + "SynologyUpdateInstructions": "الرجاء تسجيل الدخول إلى DSM ثم توجه لـ مركز الحزم للتحديث.", + "HeaderRecordingPostProcessing": "تطبيق ما-بعد-المعالجة للتسجيل", + "LabelPostProcessorArguments": "معطيات سطر الأوامر لتطبيق ما بعد المعالجة", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "تطبيق ما-بعد-المعالجة", + "DvrPostProcessorPathArgument": "{path}: المسار الكامل لملف التسجيل الجديد", + "OptionAutomaticallyGroupSeries": "إدمج الحلقات الموزعة بين عدة مجلدات إلى مجلد واحد تلقائياً.", + "OptionAutomaticallyGroupSeriesHelp": "في حال التفعيل فإن الحلقات الموزعة بين عدة مجلدات ستدمج تلقائياً في مجلد مسلسل واحد.", + "WhenDidYouPurchaseApp": "متى اشتريت هذا التطبيق في الأصل؟", + "PreferEmbeddedTitlesOverFileNames": "تفضل العناوين المضمنة على أسماء الملفات", + "PreferEmbeddedTitlesOverFileNamesHelp": "يحدد هذا عنوان العرض الافتراضي عند عدم توفر بيانات تعريف إنترنت أو بيانات تعريف محلية.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "إعداد موالف التلفزيون المباشر", + "HeaderTVSourceSetup": "إعداد مصدر التلفزيون", + "HeaderDetectMyDevices": "إستكشف أجهزتي", + "MessagePleaseWait": "ارجوك انتظر. وهذا قد يستغرق دقيقة واحدة.", + "DetectingDevices": "كشف الأجهزة", + "LabelAutomaticallyRefreshInternetMetadataEvery": "بعد الاستيراد الأولي ، قم تلقائيًا بتحديث البيانات الوصفية من الإنترنت:", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "كل {0} يوم", + "LabelCertificatePassword": "كلمة مرور الشهادة:", + "LabelCertificatePasswordHelp": "إذا كانت شهادتك تتطلب كلمة مرور ، فيرجى إدخالها هنا.", + "HeaderNewLibrary": "مكتبة جديدة", + "HttpsRequiresCert": "لتمكين الاتصالات الآمنة ، ستحتاج إلى توفير شهادة SSL موثوقة ، مثل Lets Encrypt. يرجى إما تقديم شهادة أو تعطيل الاتصالات الآمنة.", + "ServerRestartNeededAfterPluginInstall": "سيحتاج خادم Emby إلى إعادة التشغيل بعد تثبيت المكوّن الإضافي.", + "PluginInstalledMessage": "تم تثبيت البرنامج المساعد بنجاح. سيحتاج خادم Emby إلى إعادة التشغيل حتى تصبح التغييرات سارية المفعول.", + "MessagePremiereStatusGood": "لديك خطة {0} Emby Premiere واستخدام جهازك في حدودك.", + "MessagePremiereStatusClose": "لديك خطة {0} Emby Premiere ، ولكن استخدام جهازك قريب من الحد.", + "MessagePremiereExtendedPlans": "ضع في اعتبارك {0} خطة الجهاز الموسعة {1}", + "MessagePremiereStatusOver": "لديك خطة {0} Emby Premiere ، ولكنك تجاوزت حد جهازك!", + "ListItemPremiereSub": "اشتراك {0} الذي تم شراؤه عبر {2} ينتهي {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "يمكنك إدارة هذا الاشتراك مباشرة مع {0}", + "LabelAlreadyCanceled": "تم إلغاء هذا الاشتراك. سيظل المفتاح صالحًا حتى انتهاء صلاحيته.", + "HeaderCancelSub": "إلغاء Emby تميّز", + "MessageConfirmSubCancel": "لا ، من فضلك لا تذهب ... سوف تفوتك جميع الميزات الرائعة لـ Emby التميّز!", + "ButtonCancelSub": "أعلم ، قم بإلغائها على أي حال", + "ButtonDontCancelSub": "الحفاظ على Emby التميّز", + "MessageSubCancelReqSent": "تم إرسال بريد إلكتروني إلى صاحب المفتاح. يرجى اتباع التعليمات الواردة في هذا البريد الإلكتروني لإكمال إلغاء هذا الاشتراك. نأمل أن نراك قريبا!", + "MessageSubCancelError": "حدث خطأ أثناء محاولة الإلغاء. يرجى إرسال بريد إلكتروني إلى {0} وسنساعدك في التربيع.", + "LabelAlreadyCancelled": "تم إلغاء هذا الاشتراك. لن يتم تحصيل رسوم منك مرة أخرى ولكن الميزات ستعمل حتى التاريخ أعلاه.", + "AllowOnTheFlySubtitleExtraction": "السماح باستخراج الترجمة على الفور", + "AllowOnTheFlySubtitleExtractionHelp": "يمكن استخراج الترجمات المضمنة من مقاطع الفيديو وتسليمها إلى تطبيقات Emby في نص عادي للمساعدة في منع تحويل الفيديو. في بعض الأنظمة ، قد يستغرق ذلك وقتًا طويلاً ويتسبب في توقف تشغيل الفيديو أثناء عملية الاستخراج. قم بتعطيل هذا لنسخ الترجمات المضمنة مع تحويل الفيديو عندما لا يدعمها جهاز العميل أصلاً.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "يجب تمكين تسجيل التصحيح فقط حسب الحاجة لأغراض استكشاف الأخطاء وإصلاحها. قد يمنع الوصول المتزايد لنظام الملفات جهاز الخادم من القدرة على النوم في بعض البيئات.", + "LabelSimultaneousConnectionLimit": "حد الدفق المتزامن:", + "SimultaneousConnectionLimitHelp": "الحد الأقصى لعدد التدفقات المتزامنة المسموح بها. أدخل 0 بلا حدود.", + "LaunchWebAppOnStartup": "قم بتشغيل تطبيق الويب Emby في مستعرض الويب الخاص بي عندما يبدأ خادم Emby", + "LaunchWebAppOnStartupHelp": "سيؤدي هذا إلى فتح تطبيق الويب في متصفح الويب الافتراضي الخاص بك عندما يبدأ خادم Emby في البداية. لن يحدث هذا عند استخدام وظيفة إعادة تشغيل الخادم.", + "LabelReferrerHeader": "مرجعية http header:", + "LabelUserAgentHeader": "عنوان http لوكيل المستخدم:", + "SupplyCustomValueIfNeeded": "قم بتوفير قيمة رأس http مخصصة ، إذا لزم الأمر.", + "HeaderConfigureRemoteAccess": "إعداد الوصول عن بعد", + "LearnHowToCreateSynologyShares": "تعرف على كيفية مشاركة المجلدات في Synology.", + "LabelAllowedRemoteAddresses": "تصفية عنوان IP البعيد:", + "LabelAllowedRemoteAddressesMode": "وضع تصفية عنوان IP البعيد:", + "Whitelist": "القائمة البيضاء", + "Blacklist": "القائمة السوداء", + "AllowedRemoteAddressesHelp": "قائمة مفصولة بفواصل لعناوين IP أو إدخالات IP / netmask للشبكات التي سيتم السماح لها بالاتصال عن بُعد. إذا تركت فارغة ، سيتم السماح لجميع العناوين البعيدة.", + "LabelLanNetworks": "شبكات محلية:", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "وضع الاتصال الآمن:", + "PreferredNotRequired": "مفضل ولكن غير مطلوب", + "RequiredForAllRemoteConnections": "مطلوب لجميع الاتصالات البعيدة", + "HandledByProxy": "تمت معالجتها بواسطة الوكيل العكسي", + "SaveSubtitlesIntoMediaFolders": "حفظ الترجمة في مجلدات الوسائط", + "SaveSubtitlesIntoMediaFoldersHelp": "سيسمح تخزين الترجمة بجوار ملفات الفيديو بإدارتها بسهولة أكبر.", + "AutomaticSubtitleDownloadInstructions": "لإدارة تنزيل الترجمة تلقائيًا ، انقر فوق مكتبة في إعداد مكتبة Emby ، وقم بتحرير إعدادات تنزيل الترجمة لهذه المكتبة.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "تمكين تسريع الأجهزة عند توفرها:", + "HeaderPreferredHardwareDecoders": "أجهزة فك التشفير المفضلة", + "HeaderPreferredHardwareEncoders": "أجهزة الترميز المفضلة", + "AllowChangingImageAndPassword": "السماح لهذا المستخدم بتغيير كلمة المرور وصورة ملفه الشخصي", + "LabelSimultaneousStreamLimit": "الحد الأقصى لدفق الفيديو المتزامن:", + "SimultaneousStreamLimitHelp": "حدد عدد جلسات تشغيل الفيديو المتزامنة.", + "LabelMusicFolderStructure": "بنية مجلد الموسيقى:", + "LabelMusicFolderStructureHelp": "يوفر هذا تلميحًا لماسح المكتبة حول الطريقة التي يتم بها تنظيم مجلداتك. إذا لم تكن متأكدًا ، أو إذا كانت مجلداتك لا تتطابق تمامًا مع أحد الخيارات ، فالرجاء تحديد الخيار الافتراضي \"أخرى\".", + "OtherOrUnstructured": "أخرى أو غير منظمة", + "PerfectArtistAlbumTrack": "منظم تمامًا في مجلدات الفنان / الألبوم ، مع وجود مسارات مباشرة في مجلدات الألبوم.", + "PerfectAlbumTrack": "منظم بشكل مثالي في مجلدات الألبوم ، مع وجود مسارات مباشرة في مجلدات الألبوم.", + "LabelMinCollectionSize": "الحد الأدنى لحجم التحصيل التلقائي:", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "أنشئ مجموعات تلقائيًا عندما يكون لديك على الأقل العدد المحدد من العناوين في مكتبتك. لن يؤثر تغيير هذه القيمة على المجموعات الحالية.", + "LabelImportCollections": "استيراد معلومات المجموعة من أدوات تنزيل البيانات الوصفية", + "LabelImportCollectionsHelp": "عند التمكين ، سيؤدي هذا إلى استيراد معلومات المجموعة من أدوات تنزيل البيانات الوصفية الممكّنة. قد يتسبب هذا في إنشاء مجموعات غير مرغوب فيها تلقائيًا. سيؤدي التعطيل إلى منع إنشاء المجموعات المستقبلية تلقائيًا ، ولكنه لن يؤدي إلى حذف المجموعات الحالية.", + "LabelAllowAdultMetadata": "السماح بالبيانات الوصفية للبالغين", + "LabelAllowAdultMetadataHelp": "السماح بمطابقة عناوين البالغين عند البحث عن البيانات الوصفية على الإنترنت.", + "HeaderVideoPreviewThumbnails": "فيديو معاينة الصور المصغرة", + "LabelEnableHDRToneMapping": "تمكين تعيين طبقة HDR:", + "EnableHDRToneMappingHelp": "سيضمن تعيين طبقة التحويل الصحيح للألوان عند تحويل محتوى HDR ، والذي سيظهر بطريقة أخرى باهتة للغاية وغير مشبعة. قد تكون هناك حاجة إلى مكونات إضافية لبرنامج التشغيل لدعم تسريع الأجهزة مع تمكين هذه الميزة. يرجى الاطلاع على دليل إعداد تسريع الأجهزة للحصول على التفاصيل.", + "WithHardwareAcceleratedTranscoding": "نعم ، فقط مع تسريع الأجهزة", + "TranscodingStillInitializing": "لا تزال خدمات تحويل ترميز Emby Server مشغولة في البدء. سيتم تحديث هذه الشاشة تلقائيًا عندما تكون خدمات تحويل الترميز جاهزة.", + "WithEitherHardwareOrSoftwareTranscoding": "نعم ، مع تحويل ترميز الأجهزة أو البرامج", + "ToneMappingInHardwareDescription": "سيتم إجراء تعيين الطبقة باستخدام تسريع الأجهزة عندما يتم تمكينه ودعمه بواسطة الجهاز ، ويتم تخطيه في جميع الحالات الأخرى.", + "ToneMappingInSoftwareDescription": "سيتم إجراء تعيين الطبقة في البرنامج بواسطة وحدة المعالجة المركزية. هذا أبطأ بكثير من تعيين النغمات المسرّع للأجهزة وسيتطلب جهاز خادم قويًا جدًا.", + "ToneMappingInBothDescription": "سيتم إجراء تعيين الطبقة باستخدام تسريع الأجهزة عندما يتم تمكينه ودعمه بواسطة الجهاز ، وسيعود إلى البرنامج في جميع الحالات الأخرى. يعد تعيين الطبقة في البرنامج أبطأ بكثير من تعيين النغمات المسرَّعة للأجهزة ويتطلب جهاز خادم قويًا للغاية.", + "AutoMapped": "تعيينها تلقائيًا", + "ManuallyMapped": "تم تعيينه يدويًا", + "NotMappedToGuideData": "لم يتم تعيينه لتوجيه البيانات", + "MappedToValue": "تعيين لـ {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "قاعدة البيانات", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "ZoomIn": "Zoom in", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/bg.json b/strings/bg.json new file mode 100644 index 0000000..3dd6169 --- /dev/null +++ b/strings/bg.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Готови сте!", + "ThisWizardWillGuideYou": "Помощникът ще ви напътства през процеса на конфигурация. За да започнете, моля изберете предпочитания от вас език.", + "HeaderCreateYourFirstUser": "Създайте Вашия първи потребител", + "ButtonQuickStartGuide": "Ръководство за бързо започване", + "MoreUsersCanBeAddedLater": "Повече потребители могат да бъдат добавени по-късно от сървърните настройки.", + "UserProfilesIntro": "Емби включва вградена поддръжка на потребителски профили, които позволяват на всеки потребител да има свои настройки на картината, място на пускане и родителски настройки.", + "WizardCompleted": "Това е всичко от което се нуждаем за момента. Емби започна да събира данни за медийната ви библиотека. Разгледайте някои от нашите приложения, после натиснете Готово, за да видите таблото на сървъра.", + "MessagePleaseAcceptTermsOfService": "Моля, преди да продължите, приемете условията за ползване и декларацията за поверителност.", + "OptionIAcceptTermsOfService": "Приемам условията за ползване", + "SeeOurHwaGuide": "Вижте нашето {0} ръководство за настройка на хардуерно ускорение {1}.", + "HeaderEmbyServerReleaseNotes": "Бележки за версията на ЕМБИ сървър", + "AllowSubtitleDownloading": "Разрешение за изтегляне на субтитри", + "AllowSubtitleManagement": "Разрешение за изтриване на файлове със субтитри", + "NewUserNameHelp": "По този начин потребителят ще се появи на вашия сървър.", + "ChapterMarkers": "Маркер за епизод", + "LabelThumbnailImagesInterval": "Интервал на миниатюри:", + "ThumbnailImagesIntervalHelp": "По-честите миниатюри ще доведат до по-добро преживяване, но ще изискват повече дисково пространство и време за създаване на изображенията.", + "LabelAuthProvider": "Източник на удостоверяване:", + "AuthProviderHelp": "Администраторите винаги използват доставчика на Emby по подразбиране, за да гарантират, че никога няма да бъдете заключени.", + "HeaderNewUser": "Нов потребител", + "ChangeServerDisplayName": "Промяна на показваното име на сървъра", + "ShowAdvancedSettings": "Разширени настройки", + "ChangingMetadataImageSettingsNewContent": "Промените в настройките за изтегляне на метаданни или картини ще важат само за ново съдържание, добавено към библиотеката ви. За да приложите промените към съществуващите заглавия, ще трябва ръчно да опресните метаданните им.", + "AllowRemoteAccess": "Позволи отдалечена връзка към този Емби сървър.", + "AllowRemoteAccessHelp": "Ако не е маркирано, ще се блокират всички отдалечени връзки.", + "Alerts": "Известия", + "LabelTrackTitleDisplay": "Показване на заглавието на вградения запис:", + "GenerateUserFriendlyTrackTitles": "Генерирайте удобни за потребителя заглавия, използвайки информация за песни", + "PreferOriginalTrackTitles": "Предпочитани вградени заглавия", + "TrackTitleDisplayHelp": "Изберете показваното заглавие на вградени аудиозаписи и субтитри. Предпочитането на вградени не се препоръчва, освен ако не съхранявате ръчно информация за вградените записи.", + "EnableTranscodingThrottle": "Enable throttling", + "EnableTranscodingThrottleHelp": "Emby ще регулира динамично скоростта на транскодиране, за да намали използването на процесора.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} Image Fetchers", + "HeaderImageOptions": "Опции за изображения", + "OptionBeta": "Бета", + "RegisterWithPayPal": "Регистрирай с PayPal", + "LabelSyncTempPath": "Временен файлов път:", + "LabelSyncTempPathHelp": "Определете работна папка за конвертираните файлове при синхронизация.", + "LabelCustomCertificatePath": "Път към потребителския сертификат:", + "LabelCustomCertificatePathHelp": "Път до файл с шифровъчен стандарт №12, съдържащ сертификат и частен ключ за поддръжка на протокол TLS на собствен домейн.", + "HeaderSetupLibrary": "Настройте своите медийни библиотеки", + "LabelTimeLimitHours": "Времево ограничение (часове):", + "HeaderPreferredMetadataLanguage": "Предпочитан език на метаданните", + "LabelSaveLocalMetadata": "Запазване на картините в папката на медията", + "LabelSaveLocalMetadataHelp": "Запазването на картините направо в медийните папки ще ги сложи на място, където лесно могат да бъдат редактирани.", + "TabAccess": "Достъп", + "HeaderDeviceAccess": "Достъп на устройствата", + "OptionEnableAccessFromAllDevices": "Позволяване на достъпа от всички устройства", + "OptionEnableAccessToAllChannels": "Позволяване на достъпа до всички канали", + "OptionEnableAccessToAllLibraries": "Позволяване на достъпа до всички библиотеки", + "DeviceAccessHelp": "Филтрирането на достъпа до потребителски устройства ще попречи на използването на нови устройства, докато не бъдат одобрени тук.", + "LabelDisplayMissingEpisodesWithinSeasons": "Показване на липсващите епизоди в сезоните", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Това също трябва да е активирано за библиотеки от сериали в настройката на сървъра.", + "ImportMissingEpisodesHelp": "Ако е активирано, информация за липсващи епизоди ще бъде добавена в базата данни на Emby и ще бъде показвана заедно със сезони и серии. Това може да доведе до значително по-дълго сканиране на библиотеката.", + "MessageEnablingOptionLongerScans": "Активирането на тази опция може да доведе до значително по-дълго сканиране на библиотеката.", + "LabelMaxParentalRating": "Максимално допустима родителска оценка:", + "MaxParentalRatingHelp": "Съдържанието с по-висока оценка ще бъде скрито от потребителя.", + "LibraryAccessHelp": "Изберете медийните папки, които да споделите с потребителя. Администраторите ще могат да редактират всички папки, използвайки управлението на метаданни.", + "ChannelAccessHelp": "Изберете каналите, които да споделите с потребителя. Администраторите ще могат да редактират всички канали, използвайки управлението на метаданни.", + "ImageUploadAspectRatioHelp": "1:1 препоръчана пропорция. Само JPG/PNG", + "AlreadyPaidHelp1": "Ако вече сте платили за инсталиране на по-стара версия на Media Browser за Android, не е нужно да плащате отново, за да активирате това приложение. Кликнете върху OK, за да ни изпратите имейл на адрес {0} и ние ще го активираме за вас.", + "AlreadyPaidHelp2": "Имате Emby Premiere? Просто отменете този диалогов прозорец, настройте Emby Premiere във вашето табло за управление на Emby Server под Help -> Emby Premiere и той ще бъде отключен автоматично.", + "TabMyPlugins": "Моите приставки", + "TabCatalog": "Каталог", + "HeaderAutomaticUpdates": "Автоматични обновления", + "Standard": "Стандартно", + "TabSupporterKey": "Ключ за премиерното издание", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Полезно за частни или скрити администраторски профили. Потребителят ще трябва да влезе ръчно чрез въвеждане на потребителско име и парола.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Дезактивирайте този потребител", + "OptionDisableUserHelp": "Ако е дезактивиран, сървърът няма да позволи каквито и да било връзки от този потребител. Съществуващите връзки ще бъдат внезапно прекратени.", + "OptionAllowUserToManageServer": "Разрешаване на този потребител да управлява сървъра", + "HeaderFeatureAccess": "Достъп до функции", + "OptionAllowMediaPlayback": "Разрешаване на пускане на медия", + "AllLibraries": "Всички библиотеки", + "HeaderAllowMediaDeletionFrom": "Allow Media Deletion From", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Разрешаване на отдалечен контрол на други потребители", + "OptionAllowRemoteSharedDevices": "Разрешаване на отдалечен контрол на споделени устройства", + "OptionAllowRemoteSharedDevicesHelp": "DLNA устройства се считат за споделени докато някой потребител не започне да ги контролира.", + "OptionAllowLinkSharing": "Разрешаване на споделяне в социалните медии", + "OptionAllowLinkSharingHelp": "Only web pages containing media information are shared. Media files are never shared publicly. Shares are time-limited and will expire after {0} days.", + "OptionRelease": "Официално издание", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "Сървърът ще се рестартира само през свободното си време, когато няма активни потребители.", + "LabelRunServerAtStartup": "Пускане на сървъра при стартиране", + "LabelRunServerAtStartupHelp": "Това ще покаже иконката в областта за уведомяване при пускане на Уиндоус. Ако сте задали услуга, тогава махнете отметката на елемента и настройте услугата да се стартира при пускане.", + "ButtonSelectDirectory": "Изберете папка", + "LabelCachePath": "Път към кеша:", + "DefaultMetadataLangaugeDescription": "These are your defaults and can be customized on a per-library basis.", + "LabelCachePathHelp": "Определете място за сървърните кеш файлове, като изображения. Оставете празно, за да използвате мястото по подразбиране.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Път към метаданните:", + "LabelMetadataPathHelp": "Задайте място по избор за свалени картини и метаданни.", + "LabelTranscodingTempPath": "Временен път на прекодиране:", + "LabelTranscodingTempPathHelp": "Тази папка съдържа работни файлове използвани от транскодера. Задайте място по избор или оставете празно за мястото по подразбиране.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Обновяване на данните в справочника", + "LabelNumberOfGuideDays": "Брой дни за които да се свали програма:", + "LabelNumberOfGuideDaysHelp": "Изтеглянето на програма заповече дни дава възможност да планирате по-нататъшните записи предварително, но и отнема повече време, за да се изтегли. Автомат ще избере въз основа на броя на каналите.", + "HeaderFetchImages": "Свали изображения:", + "LabelMaxBackdropsPerItem": "Максимален брой фонове на медия:", + "LabelMaxScreenshotsPerItem": "Максимален брой снимки на екрана на медия:", + "LabelMinBackdropDownloadWidth": "Минимална широчина на сваления фон:", + "LabelMinScreenshotDownloadWidth": "Минимална широчина на свалената снимка на екрана:", + "ButtonAddScheduledTaskTrigger": "Добавяне на спусък", + "ButtonAdd": "Добавяне", + "LabelTriggerType": "Тип на спусъка:", + "OptionOnInterval": "През интервал", + "OptionAfterSystemEvent": "След системно събитие", + "LabelDay": "Ден:", + "LabelTime": "Време:", + "LabelEvent": "Събитие:", + "OptionWakeFromSleep": "Събуждане от сън", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Активиране на наблюдение в реално време", + "LabelEnableRealtimeMonitorHelp": "Промените ще бъдат обработени веднага, на поддържани файлови системи.", + "Community": "Общност", + "HeaderEmbyNews": "Новини", + "LabelFriendlyServerName": "Име на сървъра:", + "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.", + "LabelPreferredDisplayLanguage": "Предпочитан език на показване:", + "LabelPreferredDisplayLanguageHelp": "Превеждането на Емби е текущ проект.", + "LabelReadHowYouCanContribute": "Научете как можете да допринесете", + "LabelCustomCss": "CSS по избор:", + "LabelCustomCssHelp": "Използвайте собствен CSS към уеб интерфейса.", + "LabelLocalHttpServerPortNumber": "Локален HTTP порт:", + "LabelLocalHttpServerPortNumberHelp": "TCP портът на който HTTP сървърът на Emby трябва да се закачи.", + "LabelPublicHttpPort": "Публичен HTTP порт:", + "LabelPublicHttpPortHelp": "Публичният порт, който да бъде съпоставен с локалния HTTP порт.", + "LabelPublicHttpsPort": "Публичен HTTPS порт:", + "LabelPublicHttpsPortHelp": "Публичният порт, който да бъде съпоставен с локалния HTTPS порт.", + "RequireHttps": "Require https for external connections", + "RequireHttpsHelp": "If enabled, connections over http will be redirected to https.", + "LabelHttpsPort": "Локален HTTPS порт:", + "LabelHttpsPortHelp": "TCP портът на който HTTPS сървърът на Emby трябва да се закачи.", + "LabelEnableAutomaticPortMap": "Автоматично съответстване на портовете", + "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", + "LabelExternalDDNS": "External domain", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Мин процент за продължение:", + "LabelMaxResumePercentage": "Макс процент за продължение:", + "LabelMinResumeDuration": "Мин време за продължение (секунди):", + "LabelMinResumePercentageHelp": "Заглавията се считат за непускани ако бъдат спрени преди това време.", + "LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time", + "LabelMinResumeDurationHelp": "Titles shorter than this will not be resumable", + "HeaderStatus": "Състояние:", + "Subscriptions": "Subscriptions", + "LabelEndingEpisodeNumber": "Ending episode number", + "LabelEndingEpisodeNumberHelp": "Only required for multi-episode files", + "HeaderSupportTheTeam": "Подкрепете екипа на Емби", + "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by purchasing Emby Premiere. A portion of all income will be contributed to other free tools we depend on.", + "DonationNextStep": "Once complete, please return and enter your Emby Premiere key, which you will receive by email.", + "HeaderRunningTasks": "Изпълняващи се задачи", + "ButtonUpdateNow": "Обнови сега", + "PleaseUpdateManually": "Моля, загасете сървъра и инсталирайте последната версия.", + "ServerUpToDate": "Сървърът е на последната налична версия.", + "MessagePleaseRestartServerToFinishUpdating": "Моля рестартирайте сървъра, за да завърши обновяването.", + "LabelDownMixAudioScale": "Усилване на аудиото след downmixing:", + "LabelDownMixAudioScaleHelp": "Усилва звука след downmixing. Въведете 1, за да се запази оригиналното ниво на звука.", + "HeaderForgotKey": "Забравен ключ", + "LabelSupporterEmailAddress": "Електронната поща, използвана за закупуване на ключа.", + "ButtonRetrieveKey": "Изтегли ключ", + "LabelSupporterKey": "Ключ за премиерно издание (поставете от писмото):", + "LabelSupporterKeyHelp": "Въведете вашия Emby Premiere ключ, за да ползвате допълнителните ползи.", + "MessageInvalidKey": "Ключът за премиерното издание липсва или е невалиден.", + "ErrorMessageInvalidKey": "За да може да бъде регистрирано каквото и да е премиум съдържание, трябва да имате активен Emby абонамент.", + "LabelSkipIfGraphicalSubsPresent": "Да се пропусне, ако файлът съдържа вградени субтитри", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Да се пропусне, ако звуковата пътечка по подразбиране съвпада с езика", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Изпращане на съобщение", + "HeaderSendMessage": "Изпращане на съобщение", + "ButtonSend": "Изпращане", + "LabelMessageText": "Message text", + "LabelMessageTitle": "Message title", + "ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "ППИ ключове", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "ППИ ключ", + "HeaderResumeSettings": "Настройки за продължаване", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Дейност", + "ButtonPurchase": "Purchase", + "HeaderInstall": "Инсталиране", + "LabelSelectVersionToInstall": "Изберете версия за инсталиране:", + "LinkLearnMoreAboutSubscription": "Научете повече за премиерното издание", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Сведения за разработчика", + "HeaderRevisionHistory": "Списък с промени", + "ButtonViewWebsite": "View website", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Научете повече за Емби Конект", + "LabelDateAddedBehavior": "Date added behavior for new content", + "OptionDateAddedImportTime": "Use date scanned into the library", + "OptionDateAddedFileTime": "Use file creation date", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Настройки на библиотеката", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Път на качване от фотоапарат", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Създаване на подпапка за всяко устройство", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Родителски контрол", + "HeaderAccessSchedule": "Access Schedule", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Достъп до библиотеката", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Въведете потребителското си име, ако го помните.", + "TitlePasswordReset": "Password Reset", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Allow media downloading", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Allow media conversion", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Ограничение на интернетното излъчване (мбит/сек):", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Разрешаване на автоматичните обновления", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Доставчици на справочници", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Zip Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Показвано име:", + "OptionDownloadImagesInAdvance": "Предварително изтегляне на изображения", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Благодаря, че подкрепихте Emby.", + "FileReadCancelled": "The file read has been canceled.", + "FileNotFound": "File not found.", + "FileReadError": "An error occurred while reading the file.", + "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "HeaderNewApiKey": "Нов ППИ ключ", + "HeaderNewApiKeyHelp": "Разрешете на приложение да комуникира с Emby сървърът.", + "MessageKeyEmailedTo": "Ключът е изпратен на {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "TextEnjoyBonusFeatures": "Насладете се на допълнителни функции", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "To manage plugins, please use the Emby web app.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Наистина ли искате да пуснете сървъра наново?", + "MessageConfirmShutdown": "Наистина ли искате да спрете Emby сървърът?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Върви на порт {0} (http).", + "LabelRunningOnPorts": "Върви на порт {0} (http) и порт {1} (https).", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Изберете път", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Управление на метаданните", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Промяна на типа съдържание", + "HeaderChangeFolderTypeHelp": "За да промените вида на съдържанието, моля, премахнете и създайте наново библиотеката с правилния тип.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Домашни клипове и снимки", + "OptionBooks": "Книги", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "Ново име:", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Преименуване", + "HeaderPluginInstallation": "Plugin Installation", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Цена: {0} (долари САЩ)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Thank You", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Отключване на приложението", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Състояние: {0}", + "HeaderTopPlugins": "Популярни приставки", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Add User", + "HeaderEmailAddress": "Електронна поща", + "NumLocationsValue": "{0} папки", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Пример: {0}", + "LabelFileOrUrl": "File or url", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Включване на журналите за грешки", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPath": "Споделена мрежова папка (незадължително):", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Да се предпочитат вградените заглавия пред имената на файлове", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Намиране на моите устройства", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "На всеки {0} дни", + "LabelCertificatePassword": "Парола на сертификата:", + "LabelCertificatePasswordHelp": "Ако сертификатът ви изисква парола, моля, въведете я тук.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "След инсталирането на приставка, сървърът ще трябва да бъде пуснат наново.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Отписване от премиерното издание", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Пускане на интерфейса в мрежовия четец при стартиране на сървъра", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN networks", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Активиране на HDR картографиране на тонове:", + "EnableHDRToneMappingHelp": "Картографирането на тонове ще осигури правилно преобразуване на цветовете при прекодиране на HDR съдържание, което иначе ще изглежда силно затъмнено и ненаситено. Допълнителни компоненти на драйвера може да са необходими за поддържане на хардуерно ускорение с активирана тази функция. Моля, вижте нашето ръководство за настройка на хардуерно ускорение за подробности.", + "WithHardwareAcceleratedTranscoding": "Да, само с хардуерно ускорение", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Да, с хардуерно или софтуерно прекодиране", + "ToneMappingInHardwareDescription": "Съпоставянето на тонове ще се извършва с хардуерно ускорение, когато е активирано и поддържано от хардуера и пропускано във всички останали случаи.", + "ToneMappingInSoftwareDescription": "Картографирането на тонове ще се извършва в софтуер от процесора. Това е много по-бавно от хардуерно ускореното картографиране на тонове и ще изисква много мощна сървърна машина.", + "ToneMappingInBothDescription": "Картографирането на тонове ще се извършва с хардуерно ускорение, когато е активирано и поддържано от хардуера, и ще се върне към софтуера във всички останали случаи. Картографирането на тонове в софтуера е много по-бавно от хардуерно ускореното картографиране на тонове и ще изисква много мощна сървърна машина.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/ca.json b/strings/ca.json new file mode 100644 index 0000000..889d92c --- /dev/null +++ b/strings/ca.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Ja està!", + "ThisWizardWillGuideYou": "Aquest assistent et guiarà pel procés de configuració de l'Emby Server.", + "HeaderCreateYourFirstUser": "Crear el Teu Primer Usuari", + "ButtonQuickStartGuide": "Guia d'inici ràpid", + "MoreUsersCanBeAddedLater": "Podràs afegir més usuaris després des del tauler de control.", + "UserProfilesIntro": "Emby inclou suport integrat per a perfils d'usuari, habilitant a cada usuari tenir les seves pròpies preferències de visualització, estats de reproducció i controls parentals.", + "WizardCompleted": "Això és tot el que necessitem per ara. Emby ha començat a escanejar la teva biblioteca multimèdia. Mira't alguna de les nostres apps, i llavors fes clic a Finalitzar per veure el Tauler de Control del Servidor.", + "MessagePleaseAcceptTermsOfService": "Si et plau, accepta els termes d'ús i la política de privacitat abans de continuar.", + "OptionIAcceptTermsOfService": "Accepto els termes d'ús", + "SeeOurHwaGuide": "Vegeu la nostra guia de configuració d'acceleració de maquinari {0}{1}.", + "HeaderEmbyServerReleaseNotes": "Notes de llançament del servidor Emby", + "AllowSubtitleDownloading": "Permet la descàrrega de subtítols", + "AllowSubtitleManagement": "Permet la supressió de fitxers de subtítol existents", + "NewUserNameHelp": "Així és com l'usuari apareixerà al vostre servidor.", + "ChapterMarkers": "Marcadors d'episodis", + "LabelThumbnailImagesInterval": "Interval de les imatges en miniatura", + "ThumbnailImagesIntervalHelp": "Les miniatures més freqüents donaran lloc a una millor experiència, però requeriran més espai i temps en disc per a crear les imatges.", + "LabelAuthProvider": "Proveïdor d'autenticació", + "AuthProviderHelp": "Els administradors sempre utilitzen el proveïdor Emby per defecte per assegurar-se que mai esteu bloquejat.", + "HeaderNewUser": "Nou Usuari", + "ChangeServerDisplayName": "Canvia el nom que es mostra del servidor", + "ShowAdvancedSettings": "Mostra opcions avançades", + "ChangingMetadataImageSettingsNewContent": "Els canvis a les metadades o a la configuració de baixada només s'aplicaran al nou contingut afegit a la biblioteca. Per a aplicar els canvis als títols existents, haureu d'actualitzar les seves metadades manualment.", + "AllowRemoteAccess": "Permetre connexions remotes a aquest servidor d'Emby", + "AllowRemoteAccessHelp": "Si no està marcada, es bloquejaran totes les connexions remotes.", + "Alerts": "Alertes", + "LabelTrackTitleDisplay": "Mostra el títol de la pista incrustada", + "GenerateUserFriendlyTrackTitles": "Genera títols amigables amb l'usuari utilitzant la informació de la pista", + "PreferOriginalTrackTitles": "Preferir títols incrustats", + "TrackTitleDisplayHelp": "Trieu el títol de visualització de les pistes d'àudio i subtítols incrustats. No es recomana incrustar a menys que estigueu seleccionant manualment la informació de la pista incrustada.", + "EnableTranscodingThrottle": "Enable throttling", + "EnableTranscodingThrottleHelp": "Emby ajustarà dinàmicament la velocitat de transcodificació per tal de reduir la utilització de la CPU.", + "HeaderTypeMetadataDownloaders": "{0} baixadors de metadades", + "HeaderTypeImageFetchers": "{0} recuperadors d'imatges", + "HeaderImageOptions": "Opcions d'imatge", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registra amb PayPal", + "LabelSyncTempPath": "Directori de fitxers temporals", + "LabelSyncTempPathHelp": "Especifica un directori de treball personalitzat. Els multimèdia convertits durant el procés de sincronització es desaran aquí.", + "LabelCustomCertificatePath": "Camí personalitzat del certificat ssl", + "LabelCustomCertificatePathHelp": "Camí a un fitxer PKCS #12 que conté un certificat i una clau privada per a habilitar el suport TLS en un domini personalitzat.", + "HeaderSetupLibrary": "Configura biblioteques multimèdia", + "LabelTimeLimitHours": "Temps límit (en hores)", + "HeaderPreferredMetadataLanguage": "Idioma de Metadades Preferit", + "LabelSaveLocalMetadata": "Desa l'artwork als directoris dels multimèdia", + "LabelSaveLocalMetadataHelp": "Desant l'artwork als directoris dels mitjans posarà les imatges al costat dels fitxers de mitjans, on poden ser accedits fàcilment des de fora d'emby. Si ho desactives, les imatges es desaran a la carpeta de metadades del servidor.", + "TabAccess": "Accés", + "HeaderDeviceAccess": "Accés de Dispositiu", + "OptionEnableAccessFromAllDevices": "Habilita l'accés des de tots els dispositius", + "OptionEnableAccessToAllChannels": "Habilita l'accés a tots els canals", + "OptionEnableAccessToAllLibraries": "Habilita l'accés a totes les biblioteques", + "DeviceAccessHelp": "Filtrar l'accés de dispositius previndrà que es connectin nous dispositius fins que no hagin estat aprovats aquí.", + "LabelDisplayMissingEpisodesWithinSeasons": "Mostra els episodis que manquen dins les temporades", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Aquest també ha d'estar activat per a les biblioteques de TV a la configuració d'Emby Server.", + "ImportMissingEpisodesHelp": "Si està habilitat, la informació sobre els episodis que falten s'importarà a la base de dades d'Emby i es mostrarà dins de les temporades i sèries. Això pot causar escaneigs de biblioteques significativament més llargs.", + "MessageEnablingOptionLongerScans": "Habilitar aquesta opció pot resultar en escanejos de la llibreria significativament més lents.", + "LabelMaxParentalRating": "Valoració màxima permesa de control parental", + "MaxParentalRatingHelp": "El contingut amb una valoració superior no serà mostrat a l'usuari.", + "LibraryAccessHelp": "Selecciona els directoris dels multimèdia a compartir amb aquest usuari. Els administradors podran editar tots els directoris emprant el gestor de metadades.", + "ChannelAccessHelp": "Selecciona els canals a compartir amb aquest usuari. Els administradors podran editar tots els canals emprant el gestor de metadades.", + "ImageUploadAspectRatioHelp": "1:1 Relació d'Aspecte Recomanada. Només JPG/PNG.", + "AlreadyPaidHelp1": "Si ja heu pagat per instal·lar una versió antiga del navegador multimèdia per a Android, no cal que torneu a pagar per activar aquesta aplicació. Feu clic a OK per enviar-nos un correu electrònic a {0} i l'activarem.", + "AlreadyPaidHelp2": "Tens Emby Premiere? Només has de cancel·lar aquest diàleg, accedeix a Emby Premiere al teu tauler del servidor Emby a Ajuda -> Emby Premiere, i es desbloquejarà automàticament.", + "TabMyPlugins": "Els meus complements", + "TabCatalog": "Catàleg", + "HeaderAutomaticUpdates": "Actualitzacions Automàtiques", + "Standard": "Estàndard", + "TabSupporterKey": "Clau d'Emby Premiere", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Pràctic per a comptes d'administrador ocults o privats. L'usuari necessitarà accedir manualment introduint el seu nom d'usuari i contrasenya.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Desactiva aquest usuari", + "OptionDisableUserHelp": "Si es desactiva el servidor no permetrà cap connexió des d'aquest usuari. Les connexions existents seran interrompudes abruptament.", + "OptionAllowUserToManageServer": "Permet aquest usuari gestionar el servidor", + "HeaderFeatureAccess": "Accés a Funcions", + "OptionAllowMediaPlayback": "Permetre reproducció multimèdia", + "AllLibraries": "Totes les biblioteques", + "HeaderAllowMediaDeletionFrom": "Permetre supressió de mitjans de", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Permetre el control remot d'altres usuaris", + "OptionAllowRemoteSharedDevices": "Permetre el control remot de dispositius compartits", + "OptionAllowRemoteSharedDevicesHelp": "Els dispositius dlna es consideren compartits fins que un usuari comença a controlar-los.", + "OptionAllowLinkSharing": "Permetre compartir els mitjans a les xarxes socials", + "OptionAllowLinkSharingHelp": "Només les pàgines web contenint informació multimèdia seran compartides. En cap cas es comparteixen fitxers públicament. Les comparticions estan limitades per temps i expiraran després de {0} dies.", + "OptionRelease": "Versió Oficial", + "LabelAllowServerAutoRestartPlugin": "Permet al servidor reiniciar-se automàticament per aplicar actualitzacions de components", + "LabelAllowServerAutoRestartServerOrPlugin": "Permet al servidor reiniciar-se automàticament per aplicar actualitzacions del servidor o de components", + "LabelAllowServerAutoRestartHelp": "El servidor només es reiniciarà durant períodes d'inactivitat, quan no tingui usuaris actius.", + "LabelRunServerAtStartup": "Engega el servidor en iniciar el sistema", + "LabelRunServerAtStartupHelp": "This will start the Emby tray icon on Windows startup. If you've set up a Windows service then leave this unchecked and configure the service to run at startup.", + "ButtonSelectDirectory": "Selecciona Directori", + "LabelCachePath": "Dir. de memòria cau", + "DefaultMetadataLangaugeDescription": "These are your defaults and can be customized on a per-library basis.", + "LabelCachePathHelp": "Especifica una ubicació personalitzada per als fitxers de memòria cau del servidor. Deixa-ho en blanc per emprar el valor per defecte del servidor.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Directori de metadades", + "LabelMetadataPathHelp": "Especifica un directori personalitzat per a l'artwork i les metadades descarregats, o deixa-ho en blanc per revertir-ho al seu estat original. Si ho canvies, hauràs de migrar manualment els continguts des de l'antiga ubicació a la nova. Si mai canvies els continguts de la carpeta de metadades hauràs de córrer la {0}tasca programada per escanejar el directori de metadades{1}.", + "LabelTranscodingTempPath": "Directori temporal de transcodificació", + "LabelTranscodingTempPathHelp": "Aquest directori conté fitxers emprats pel transcodificador. Especifica un directori personalitzat o deixa-ho en blanc per emprar el per defecte dins el directori de dades del servidor.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Refresca les Dades de la Guia", + "LabelNumberOfGuideDays": "Nombre de dies de dades de la guia per a descarregar", + "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels. Please note that regardless of how many days you choose, the data must exist in the source guide data in order for it to be downloaded. Some guide data sources only provide 24 hours. Emby Guide Data supports up to 14 days.", + "HeaderFetchImages": "Obtingues Imatges", + "LabelMaxBackdropsPerItem": "Nombre màxim d'imatges de fons per ítem", + "LabelMaxScreenshotsPerItem": "Nombre màxim de captures de pantalla per ítem", + "LabelMinBackdropDownloadWidth": "Amplada mínima de descàrrega de la imatge de fons", + "LabelMinScreenshotDownloadWidth": "Amplada mínima de descàrrega de la captura de pantalla", + "ButtonAddScheduledTaskTrigger": "Afegir Disparador", + "ButtonAdd": "Afegeix", + "LabelTriggerType": "Tipus de Disparador", + "OptionOnInterval": "En un interval", + "OptionAfterSystemEvent": "Després d'un esdeveniment del sistema", + "LabelDay": "Dia", + "LabelTime": "Hora", + "LabelEvent": "Esdeveniment", + "OptionWakeFromSleep": "Despertar", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Habilitar el monitoratge a temps real", + "LabelEnableRealtimeMonitorHelp": "Els canvis als fitxers es processaran immediatament als sistemes que ho suportin.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Nom amistós del servidor", + "LabelFriendlyServerNameHelp": "El nom servirà per identificar aquest servidor. Si es deixa en blanc s'emprarà el nom de l'ordinador.", + "LabelPreferredDisplayLanguage": "Idioma de visualització preferit", + "LabelPreferredDisplayLanguageHelp": "La traducció d'Emby és un projecte en curs.", + "LabelReadHowYouCanContribute": "Aprèn com pots contribuir.", + "LabelCustomCss": "CSS propi", + "LabelCustomCssHelp": "Aplica el teu propi css a la interfície web.", + "LabelLocalHttpServerPortNumber": "Port local http", + "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Emby's http server should bind to.", + "LabelPublicHttpPort": "Número públic del port http", + "LabelPublicHttpPortHelp": "The public port number that should be mapped to the local http port.", + "LabelPublicHttpsPort": "Número públic del port https", + "LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local https port.", + "RequireHttps": "Require https for external connections", + "RequireHttpsHelp": "If enabled, connections over http will be redirected to https.", + "LabelHttpsPort": "Port local https", + "LabelHttpsPortHelp": "The tcp port number that Emby's https server should bind to.", + "LabelEnableAutomaticPortMap": "Habilita l'auto-mapatge de ports", + "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", + "LabelExternalDDNS": "Domini extern", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Percentatge mínim per reprendre", + "LabelMaxResumePercentage": "Percentatge màxim per reprendre", + "LabelMinResumeDuration": "Durada mínima per reprendre (segons)", + "LabelMinResumePercentageHelp": "Es considerarà que no s'ha reproduït si s'atura abans d'aquest temps", + "LabelMaxResumePercentageHelp": "Es considerarà que s'ha reproduït del tot si s'atura després d'aquest temps", + "LabelMinResumeDurationHelp": "Els títols més curts que això no seran continuables", + "HeaderStatus": "Estat", + "Subscriptions": "Subscriptions", + "LabelEndingEpisodeNumber": "Nombre d'episodi final", + "LabelEndingEpisodeNumberHelp": "Només cal per als fitxers multi-episodi", + "HeaderSupportTheTeam": "Dóna suport a l'equip d'Emby", + "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by purchasing Emby Premiere. A portion of all income will be contributed to other free tools we depend on.", + "DonationNextStep": "Once complete, please return and enter your Emby Premiere key, which you will receive by email.", + "HeaderRunningTasks": "Tasques Corrent", + "ButtonUpdateNow": "Actualitza Ara", + "PleaseUpdateManually": "Si et plau, apaga Emby Server i actualitza manualment.", + "ServerUpToDate": "L'Emby està actualitzat", + "MessagePleaseRestartServerToFinishUpdating": "Si et plau, reinicia el servidor per finalitzar les actualitzacions.", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", + "HeaderForgotKey": "Clau Perduda", + "LabelSupporterEmailAddress": "L'adreça electrònica emprada per a comprar la clau.", + "ButtonRetrieveKey": "Recupera Clau", + "LabelSupporterKey": "Clau d'Emby Premiere (enganxa des de l'email)", + "LabelSupporterKeyHelp": "Enter your Emby Premiere key to start enjoying additional benefits.", + "MessageInvalidKey": "La clau d'Emby Premiere no hi és o és invàlida.", + "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also have an active Emby Premiere subscription.", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Envia missatge", + "HeaderSendMessage": "Enviar Missatge", + "ButtonSend": "Envia", + "LabelMessageText": "Text del missatge", + "LabelMessageTitle": "Títol del missatge", + "ButtonEditOtherUserPreferences": "Edita el perfil, la imatge i les preferències d'aquest usuari.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "Es mostrarà al peu de la pàgina d'inici de sessió.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Claus Api", + "HeaderApiKeysHelp": "Les aplicacions externes requereixen una Api key pere tal de poder-se comunicar amb el Servidor d'Emby. Les claus són emeses iniciant sessió amb un compte d'Emby, o concedint manualment una clau a l'aplicació.", + "HeaderApiKey": "Clau Api", + "HeaderResumeSettings": "Configuració de Continuar", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Activitat", + "ButtonPurchase": "Purchase", + "HeaderInstall": "Instal·lació", + "LabelSelectVersionToInstall": "Selecciona versió a instal·lar", + "LinkLearnMoreAboutSubscription": "Descobreix més sobre Emby Premiere", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Informació de Desenvolupador", + "HeaderRevisionHistory": "Revision History", + "ButtonViewWebsite": "Veure website", + "OptionSaveMetadataAsHidden": "Desa les metadades i les imatges com a fitxers ocults", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect", + "LabelDateAddedBehavior": "Comportament per a les dates d'addició dels nous continguts", + "OptionDateAddedImportTime": "Empra la data d'escaneig", + "OptionDateAddedFileTime": "Empra la data de creació", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Preferències de la Biblioteca", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Les apps d'emby poden carregar automàticament fotos capturades amb els teus dispositius mòbils cap a l'Emby Server.", + "LabelCameraUploadPath": "Carpeta de càrregues de càmera", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Control Parental", + "HeaderAccessSchedule": "Horari d'Accés", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Accés a la Biblioteca", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "TitlePasswordReset": "Reiniciar Contrasenya", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Permetre descàrrega de mitjans", + "LabelNewUserNameHelp": "Els noms d'usuari poden contenir lletres (a-z), nombres (0-9), guions (-), guions baixos (_), apòstrofs (') i punts (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Allow media conversion", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderTVSources": "Fonts de TV", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Proveïdors de Guies de TV", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Zip Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Preferències d'Enregistrament per Defecte", + "LabelDisplayName": "Nom a mostrar", + "OptionDownloadImagesInAdvance": "Download images in advance", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Gràcies per donar suport a Emby.", + "FileReadCancelled": "La lectura de l'arxiu ha estat cancel·lada.", + "FileNotFound": "Arxiu no trobat.", + "FileReadError": "S'ha produït un error en llegir el fitxer.", + "NoPluginConfigurationMessage": "Aquest complement no té opcions de configuració.", + "HeaderNewApiKey": "Nova Clau Api", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Gràcies. La teva clau Emby Premiere ha estat actualitzada.", + "MessageKeyRemoved": "Gràcies. La teva clau Emby Premiere ha estat eliminada.", + "TextEnjoyBonusFeatures": "Gaudeix de característiques addicionals", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "To manage plugins, please use the Emby web app.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Estàs segur que vols reiniciar el Servidor d'Emby?", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "LabelLocalAccessUrl": "Accés local (LAN): {0}", + "LabelRemoteAccessUrl": "Accés remot (WAN): {0}", + "LabelRunningOnPort": "Corrent al port http {0}", + "LabelRunningOnPorts": "Corrent al port http {0} i al port https {1}", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Select Path", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Gestor de Metadades", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Canviar Tipus de Contingut", + "HeaderChangeFolderTypeHelp": "Per canviar el tipus, si et plau, esborra i reconstrueix la llibreria amb el nou tipus.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Si et plau, reinicia per finalitzar l'actualització.", + "OptionHomeVideos": "Vídeos domèstics i fotos", + "OptionBooks": "Llibres", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "Nou nom", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Reanomena", + "HeaderPluginInstallation": "Plugin Installation", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Price: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Gràcies", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Desbloqueja App", + "MessagePaymentServicesUnavailable": "Els serveis de pagament no estan disponibles actualment. Siusplau, intenta-ho més tard.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Complements Principals", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Afegir Usuari", + "HeaderEmailAddress": "Correu Electrònic", + "NumLocationsValue": "{0} directoris", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Example: {0}", + "LabelFileOrUrl": "File or url", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Habilita registre de depuració", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Permet incloure tràilers d'internet i programes de TV en directe amb el continguts suggerits.", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "Xarxes LAN", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Habilita l'acceleració per hardware quan estigui disponible", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Base de dades", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "LabelFolderScanningMode": "Folder scanning mode", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "Legacy": "Legacy" +} diff --git a/strings/cs.json b/strings/cs.json new file mode 100644 index 0000000..75a1b35 --- /dev/null +++ b/strings/cs.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Hotovo!", + "ThisWizardWillGuideYou": "Tento průvodce vám pomůže projít procesem nastavení. Pro začátek vyberte upřednostňovaný jazyk.", + "HeaderCreateYourFirstUser": "Vytvořte svého prvního uživatele", + "ButtonQuickStartGuide": "Průvodce rychlým nastavením", + "MoreUsersCanBeAddedLater": "Další uživatele můžete přidat později v nastavení Serveru Emby.", + "UserProfilesIntro": "Emby obsahuje vestavěnou podporu uživatelských profilů, umožňující každému uživateli mít své vlastní nastavení zobrazení, stav přehrání a rodičovské kontroly.", + "WizardCompleted": "To je vše, co nyní potřebujeme. Emby začalo shromažďovat informace o vaší knihovně médií. Podívejte se na některé z našich aplikací, a potom klepněte na tlačítko Dokončit pro zobrazení Nástěnky serveru.", + "MessagePleaseAcceptTermsOfService": "Než budete pokračovat, přijměte prosím podmínky služby a zásady ochrany osobních údajů.", + "OptionIAcceptTermsOfService": "Souhlasím s podmínkami služby", + "SeeOurHwaGuide": "Prohlídněte si {0}průvodce nastavením hardwarového zrychlení{1}.", + "HeaderEmbyServerReleaseNotes": "Poznámky k nové verzi Serveru Emby", + "AllowSubtitleDownloading": "Povolit stahování titulků", + "AllowSubtitleManagement": "Povolit odstranění existujících souborů titulků", + "NewUserNameHelp": "Takto se uživatel objeví na serveru.", + "ChapterMarkers": "Značky kapitol", + "LabelThumbnailImagesInterval": "Interval obrázků náhledů:", + "ThumbnailImagesIntervalHelp": "Častější náhledy vylepší váš zážitek, ale vytvoření obrázků bude vyžadovat více místa na disku a času.", + "LabelAuthProvider": "Poskytovatel ověření:", + "AuthProviderHelp": "Administrátoři vždy používají výchozího poskytovatele Emby, abyste nebyli nikdy zablokováni.", + "HeaderNewUser": "Nový uživatel", + "ChangeServerDisplayName": "Změnit zobrazovaný název serveru", + "ShowAdvancedSettings": "Zobrazit rozšířená nastavení", + "ChangingMetadataImageSettingsNewContent": "Změny nastavení stahování metadat nebo obrázků se použijí pouze na nový obsah přidaný do vaší knihovny. Pro použití změn na existující položky, je nutné obnovit jejich metadata ručně.", + "AllowRemoteAccess": "Povolit vzdálená připojení k tomuto Serveru Emby.", + "AllowRemoteAccessHelp": "Pokud není zaškrtnuto, všechna vzdálená připojení budou blokována.", + "Alerts": "Upozornění", + "LabelTrackTitleDisplay": "Vložený název skladby:", + "GenerateUserFriendlyTrackTitles": "Vytvořit uživatelsky přívětivé názvy použitím informací o stopě", + "PreferOriginalTrackTitles": "Upřednostňovat vložené názvy", + "TrackTitleDisplayHelp": "Zvolte zobrazený název vložených stop audia a titulků. Upřednostnění vložených není doporučeno, pokud ručně neošetříte vložené informace o stopě.", + "EnableTranscodingThrottle": "Povolit omezování", + "EnableTranscodingThrottleHelp": "Emby dynamicky upraví rychlost překódování, aby se snížilo využití procesoru.", + "HeaderTypeMetadataDownloaders": "{0} Stahovače metadat", + "HeaderTypeImageFetchers": "{0} stahovačů obrázků", + "HeaderImageOptions": "Možnosti obrázků", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Zaregistrujte se pomocí PayPal", + "LabelSyncTempPath": "Cesta pro dočasné soubory:", + "LabelSyncTempPathHelp": "Zadejte vlastní pracovní složku. Budou zde uložena převedená média vytvořená během procesu převodu.", + "LabelCustomCertificatePath": "Vlastní cesta k certifikátu ssl:", + "LabelCustomCertificatePathHelp": "Cesta k souboru PKCS #12 obsahujícímu certifikát a soukromý klíč pro povolení podpory TLS na vlastní doméně.", + "HeaderSetupLibrary": "Nastavení knihoven médií", + "LabelTimeLimitHours": "Časový limit (v hodinách):", + "HeaderPreferredMetadataLanguage": "Upřednostňovaný jazyk metadat:", + "LabelSaveLocalMetadata": "Uložit obrázky do složek s médii", + "LabelSaveLocalMetadataHelp": "Ukládání obrázků do složek s médii zajistí jejich umístění v oblasti, kde možné je jednoduše udržovat a upravovat.", + "TabAccess": "Přístup", + "HeaderDeviceAccess": "Přístup k zařízení", + "OptionEnableAccessFromAllDevices": "Povolit přístup ze všech zařízení", + "OptionEnableAccessToAllChannels": "Povolit přístup ke všem kanálům", + "OptionEnableAccessToAllLibraries": "Povolit přístup ke všem knihovnám", + "DeviceAccessHelp": "Filtrování přístupu zařízení uživatelů jim zabrání v užívání nových zařízení, dokud zde nebudou schválena.", + "LabelDisplayMissingEpisodesWithinSeasons": "Zobrazit chybějící epizody v sezónách", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Toto musí být také povoleno pro knihovny TV v nastavení Serveru Emby.", + "ImportMissingEpisodesHelp": "Pokud je povoleno, budou informace o chybějících epizodách importovány do databáze Emby a zobrazeny v sezónách a seriálech. To může způsobit podstatně delší skenování knihovny.", + "MessageEnablingOptionLongerScans": "Povolení této možnosti může způsobit podstatně delší skenování knihovny.", + "LabelMaxParentalRating": "Maximální povolené rodičovské hodnocení:", + "MaxParentalRatingHelp": "Obsah s vyšším hodnocením bude tomuto uživateli skryt.", + "LibraryAccessHelp": "Vyberte složky médií, které chcete sdílet s tímto uživatelem. Administrátoři budou moci upravovat všechny složky pomocí správce metadat.", + "ChannelAccessHelp": "Vyberte kanály, které chcete sdílet s tímto uživatelem. Administrátoři budou moci upravovat všechny kanály pomocí správce metadat.", + "ImageUploadAspectRatioHelp": "Doporučen poměr 1:1. Pouze JPG/PNG.", + "AlreadyPaidHelp1": "Pokud jste již zaplatili za instalaci starší verze Media Browser pro Android, nemusíte platit znovu, abyste aktivovali tuto aplikaci. Kliknutím na tlačítko OK nám pošlete e-mail na {0} a my vám ji aktivujeme.", + "AlreadyPaidHelp2": "Vlastníte Emby Premiere? Stornujte toto dialogové okno, nastavte Emby Premiere na Nástěnce Serveru Emby pod Nápověda -> Emby Premiere a funkce bude automaticky odblokována.", + "TabMyPlugins": "Mé zásuvné moduly", + "TabCatalog": "Katalog", + "HeaderAutomaticUpdates": "Automatické aktualizace", + "Standard": "Standardní", + "TabSupporterKey": "Klíč Emby Premiere", + "OptionHideUserLocal": "Skrýt tohoto uživatele na přihlašovacích obrazovkách v místní síti", + "OptionHideUserRemote": "Skrýt tohoto uživatele na přihlašovacích obrazovkách při vzdáleném připojení", + "OptionHideUserFromLoginHelp": "Užitečné pro soukromé nebo skryté administrátorské účty. Uživatel se bude muset přihlásit ručně zadáním uživatelského jména a hesla.", + "HideFromUnusedDevices": "Skrýt tohoto uživatele z přihlašovacích obrazovek na zařízeních, ke kterým se nikdy nepřihlásil", + "OptionDisableUser": "Zakázat tohoto uživatele", + "OptionDisableUserHelp": "Pokud je zakázáno, server neumožní tomuto uživateli žádné připojení. Existující připojení bude okamžitě ukončeno.", + "OptionAllowUserToManageServer": "Povolit tomuto uživateli správu serveru", + "HeaderFeatureAccess": "Přístup k funkcím", + "OptionAllowMediaPlayback": "Povolit přehrávání médií", + "AllLibraries": "Všechny knihovny", + "HeaderAllowMediaDeletionFrom": "Povolit odstraňování médií z", + "LiveTVRecordingManagement": "Správa nahrávek z Live TV", + "OptionAllowRemoteControlOthers": "Povolit vzdálené ovládání ostatních uživatelů", + "OptionAllowRemoteSharedDevices": "Povolit vzdálené ovládání sdílených zařízení", + "OptionAllowRemoteSharedDevicesHelp": "DLNA zařízení jsou považována za sdílená, dokud je uživatel nezačne omezovat.", + "OptionAllowLinkSharing": "Povolit sdílení sociálních médií", + "OptionAllowLinkSharingHelp": "Sdíleny jsou pouze webové stránky obsahující informace o médiích. Soubory médií nejsou nikdy veřejně sdíleny. Sdílené položky jsou časově omezené a vyprší za {0} dní.", + "OptionRelease": "Oficiální vydání", + "LabelAllowServerAutoRestartPlugin": "Povolit automatický restart serveru pro použití aktualizací pluginů", + "LabelAllowServerAutoRestartServerOrPlugin": "Povolit automatický restart serveru pro použití aktualizací pluginů nebo serveru", + "LabelAllowServerAutoRestartHelp": "Server se restartuje pouze během nečinnosti, kdy nejsou aktivní žádní uživatelé.", + "LabelRunServerAtStartup": "Spustit server při startu", + "LabelRunServerAtStartupHelp": "Tím dojde k spuštění ikony Emby na hlavním panelu při spuštění Windows. Pokud jste nastavili službu Windows, ponechte toto nezaškrtnuté a nakonfigurujte službu tak, aby se spouštěla ​​při spuštění.", + "ButtonSelectDirectory": "Vybrat adresář", + "LabelCachePath": "Cesta k mezipaměti:", + "DefaultMetadataLangaugeDescription": "Toto jsou vaše výchozí nastavení, která mohou být upravena pro jednotlivé knihovny.", + "LabelCachePathHelp": "Zadejte vlastní umístění pro soubory mezipaměti serveru, jako jsou obrázky. Ponechte prázdné pro použití výchozího nastavení serveru.", + "LabelDefaultRecordingFolder": "Výchozí složka pro nahrávání", + "LabelMovieRecordingFolder": "Složka pro nahrávání filmů", + "LabelSeriesRecordingFolder": "Složka pro nahrávání seriálů", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Údaje o programu.", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Cesta pro metadata:", + "LabelMetadataPathHelp": "Zadejte umístění pro stažené obrázky a metadata anebo nechte prázdné pro návrat k výchozímu nastavení. V případě, že provedete změnu, bude nutné ručně přenést obsah ze starého umístění do nového. Kdykoliv ručně změníte obsah složky metadat, je potřeba spustit {0}naplánovanou úlohu prohledání metadat{1}.", + "LabelTranscodingTempPath": "Dočasná cesta pro překódování:", + "LabelTranscodingTempPathHelp": "Tato složka obsahuje pracovní soubory použití při překódování. Zadejte vlastní cestu nebo ponechte prázdné pro použití výchozí datové složky serveru.", + "GenerateVideoPreviewThumbnailsHelp": "Miniatury náhledů videa se plynule zobrazují při rychloposunu v podporovaných aplikacích. Vytváření miniatur si může vyžádat delší čas z důvodu vysokého vyřízení CPU a zabere další místo na disku.", + "AsAScheduledTask": "jako naplánovaná úloha", + "AsAScheduledTaskAndMediaAdded": "jako naplánovaná úloha a při vložení média", + "ButtonRefreshGuideData": "Obnovit data průvodce", + "LabelNumberOfGuideDays": "Počet dnů pro stažení dat průvodce:", + "LabelNumberOfGuideDaysHelp": "Stažení dat průvodce na více dní Vám sice umožní plánovat do budoucna, ale stažení bude trvat delší dobu. Zvolíte-li \"Auto\", bude výběr zvolen na základě počtu kanálů. Vezměte, prosím, na vědomí, že bez ohledu na to, kolik dní vyberete, musí data ve zdroji existovat, aby bylo možné je stáhnout. Některé zdroje dat jsou poskytovány jen na následujících 24 hodin. Emby průvodce dat podporuje až 14 dní.", + "HeaderFetchImages": "Načíst obrázky:", + "LabelMaxBackdropsPerItem": "Maximální počet obrázků pro pozadí na položku:", + "LabelMaxScreenshotsPerItem": "Maximální počet snímků obrazovky:", + "LabelMinBackdropDownloadWidth": "Maximální šířka pro stažení pozadí:", + "LabelMinScreenshotDownloadWidth": "Minimální šířka pro stažení snímku obrazovky:", + "ButtonAddScheduledTaskTrigger": "Přidat spouštěč", + "ButtonAdd": "Přidat", + "LabelTriggerType": "Typ spouštěče:", + "OptionOnInterval": "V intervalu", + "OptionAfterSystemEvent": "Po systémové události", + "LabelDay": "Den:", + "LabelTime": "Čas:", + "LabelEvent": "Událost:", + "OptionWakeFromSleep": "Probuzení ze spánku", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Povolit sledování v reálném čase", + "LabelEnableRealtimeMonitorHelp": "Změny souborů budou v podporovaných souborových systémech zpracovány okamžitě.", + "Community": "Komunita", + "HeaderEmbyNews": "Novinky v Emby", + "LabelFriendlyServerName": "Popisný název serveru:", + "LabelFriendlyServerNameHelp": "Tento název bude použit jako identifikace tohoto serveru. Pokud je ponechán prázdný, bude použit název počítače.", + "LabelPreferredDisplayLanguage": "Upřednostňovaný jazyk zobrazení:", + "LabelPreferredDisplayLanguageHelp": "Překlad Emby je probíhající projekt.", + "LabelReadHowYouCanContribute": "Zjistěte, jak můžete přispět.", + "LabelCustomCss": "Vlastní css:", + "LabelCustomCssHelp": "Aplikovat vaše vlastní úpravy css do webového rozhraní.", + "LabelLocalHttpServerPortNumber": "Číslo místního portu http:", + "LabelLocalHttpServerPortNumberHelp": "Číslo portu tcp, se kterým by měl být svázán http server Emby.", + "LabelPublicHttpPort": "Číslo veřejného portu http:", + "LabelPublicHttpPortHelp": "Číslo veřejného portu, který by měl být namapován na místní port http.", + "LabelPublicHttpsPort": "Číslo veřejného portu https:", + "LabelPublicHttpsPortHelp": "Číslo veřejného portu, který by měl být namapován na místní port https.", + "RequireHttps": "Vyžadovat https pro externí připojení", + "RequireHttpsHelp": "Pokud je zapnuto, připojení přes http budou přesměrována na https.", + "LabelHttpsPort": "Číslo místního portu https:", + "LabelHttpsPortHelp": "Číslo portu tcp, se kterým by měl být svázán https server Emby.", + "LabelEnableAutomaticPortMap": "Povolit automatické mapování portů", + "LabelEnableAutomaticPortMapHelp": "Pokusit se automaticky namapovat veřejný port na místní port prostřednictvím UPnP. Nemusí fungovat s některými modely routeru.", + "LabelExternalDDNS": "Externí doména:", + "LabelExternalDDNSHelp": "Pokud máte dynamické DNS nebo doménový název, zadejte ho zde, bez protokolu nebo portu. Aplikace Emby ho použijí při vzdáleném připojení. Toto pole je vyžadováno při použití vlastního certifikátu ssl. Příklad: mojedomena.cz.", + "LabelMinResumePercentage": "Minimum procent pro pokračování:", + "LabelMaxResumePercentage": "Maximum procent pro pokračování:", + "LabelMinResumeDuration": "Minimální trvání pokračování (sekundy):", + "LabelMinResumePercentageHelp": "Tituly jsou považovány za nepřehrané, pokud jsou zastaveny před tímto časem", + "LabelMaxResumePercentageHelp": "Tituly jsou považovány za plně přehrané, pokud budou zastaveny po tomto čase", + "LabelMinResumeDurationHelp": "Tituly kratší než tento čas nebudou obnovitelné.", + "HeaderStatus": "Stav", + "Subscriptions": "Předplatné", + "LabelEndingEpisodeNumber": "Číslo poslední epizody:", + "LabelEndingEpisodeNumberHelp": "Vyžadované pouze pro soubory s více epizodami", + "HeaderSupportTheTeam": "Podpořte tým Emby", + "HeaderSupportTheTeamHelp": "Pomozte zajistit pokračování vývoje tohoto projektu zakoupením Emby Premiere. Část veškerých příjmů přispěje na další bezplatné nástroje, na kterých jsme závislí.", + "DonationNextStep": "Po dokončení se vraťte a zadejte klíč Emby Premiere, který obdržíte e-mailem.", + "HeaderRunningTasks": "Spuštěné úlohy", + "ButtonUpdateNow": "Aktualizovat nyní", + "PleaseUpdateManually": "Ukončete server Emby a nainstalujte nejnovější verzi.", + "ServerUpToDate": "Server Emby je aktuální", + "MessagePleaseRestartServerToFinishUpdating": "Restartujte server pro dokončení aplikace aktualizací.", + "LabelDownMixAudioScale": "Zesílení audia při downmixu:", + "LabelDownMixAudioScaleHelp": "Zesílit audio při dowwmixu. Nastavte na 1 pro zachování původní hodnoty hlasitosti.", + "HeaderForgotKey": "Zapoměl jsem klíč", + "LabelSupporterEmailAddress": "E-mailová adresa, která byla použita při zakoupení klíče.", + "ButtonRetrieveKey": "Získat klíč", + "LabelSupporterKey": "Klíč Emby Premiere (vložte z e-mailu):", + "LabelSupporterKeyHelp": "Zadejte klíč Emby Premiere, abyste mohli začít využívat další výhody.", + "MessageInvalidKey": "Klíč Emby Premiere klíč chybí nebo je neplatný.", + "ErrorMessageInvalidKey": "Aby byl jakýkoliv prémiový obsah registrován, musíte mít také aktivní předplatné Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Přeskočit, jestliže video obsahuje vložené titulky", + "LabelSkipIfGraphicalSubsPresentHelp": "Udržením textových verzí titulků bude mít za následek efektivnější dodávku a sníží tím pravděpodobnost překódování videa.", + "HeaderDownloadLanguages": "Stáhnout jazyky", + "LabelSkipIfAudioTrackPresent": "Přeskočit, pokud výchozí zvuková stopa odpovídá jazyku stahování", + "LabelSkipIfAudioTrackPresentHelp": "Zrušte zaškrtnutí pro zobrazení titulků u všech videí, bez ohledu na jazyk zvuku.", + "SendMessage": "Poslat zprávu", + "HeaderSendMessage": "Poslat zprávu", + "ButtonSend": "Odeslat", + "LabelMessageText": "Text zprávy:", + "LabelMessageTitle": "Nadpis zprávy:", + "ButtonEditOtherUserPreferences": "Editace uživatelského profilu, avataru a osobních preferencí.", + "LabelLoginDisclaimer": "Zřeknutí se následujících práv při přihlášení:", + "LabelLoginDisclaimerHelp": "Toto se zobrazí ve spodní části přihlašovací stránky.", + "HeaderTranscodingTemporaryFiles": "Dočasné soubory překódování", + "HeaderApiKeys": "Klíče Api", + "HeaderApiKeysHelp": "Externí aplikace musí mít API klíč, aby mohla komunikovat s Emby Server. Klíče jsou vydávány přihlášením pomocí účtu Emby, nebo manuální žádostí o klíč.", + "HeaderApiKey": "Klíč Api", + "HeaderResumeSettings": "Obnovit nastavení", + "HeaderFetcherSettings": "Nastavení stahovače metadat", + "HeaderActivity": "Aktivity", + "ButtonPurchase": "Zakoupeno", + "HeaderInstall": "Instalovat", + "LabelSelectVersionToInstall": "Vyber verzi k instalaci:", + "LinkLearnMoreAboutSubscription": "Zjistěte více o Emby Premiere", + "MessagePluginRequiresSubscription": "Tento zásuvný modul bude po 14 denní zkušební verze zdarma vyžadovat aktivní předplatné Emby Premiere.", + "MessagePremiumPluginRequiresMembership": "Tento zásuvný modul bude vyžadovat aktivní předplatné Emby Premiere po 14 denní zkušební verzi zdarma.", + "HeaderDeveloperInfo": "Informace pro vývojáře", + "HeaderRevisionHistory": "Historie verzí", + "ButtonViewWebsite": "Přejít na webové stránky", + "OptionSaveMetadataAsHidden": "Ukládat metadata a obrázky jako skryté soubory", + "LabelConnectEmail": "(Volitelné) e-mailová adresa Emby Connect", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Zjistěte více o Emby Connect", + "LabelDateAddedBehavior": "Nový obsah řadit dle data:", + "OptionDateAddedImportTime": "Dle data přidání do knihovny", + "OptionDateAddedFileTime": "Dle data vytvoření souboru", + "LabelDateAddedBehaviorHelp": "Pokud je hodnota metadat přítomna, bude vždy použita před některou z těchto možností.", + "HeaderLibrarySettings": "Nastavení knihovny", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Aplikace Emby může automaticky nahrát fotografie pořízené na vašem mobilním telefonu na Emby server.", + "LabelCameraUploadPath": "Složka pro upload z fotoaparátu:", + "LabelCameraUploadPathHelp": "Vyberte vlastní cestu k nahrávání. Tím se přepíšou všechna výchozí nastavení nastavená v části nahrávání fotografií. Pokud zůstane prázdná, použije se výchozí složka. Pokud používáte vlastní umístění, bude třeba jej také přidat jako knihovnu v nastavení knihovny Emby.", + "DefaultCameraUploadPathHelp": "Vyberte vlastní cestu k nahrávání. Pokud zůstane prázdná, použije se výchozí složka. Pokud používáte vlastní umístění, bude třeba jej také přidat jako knihovnu v nastavení knihovny Emby.", + "LabelCreateCameraUploadSubfolder": "Vytvořte podsložku pro každé zařízení", + "LabelCreateCameraUploadSubfolderHelp": "Konkrétní složky mohou být přiřazeny k zařízení, klikněte na ni ze stránky \"Zařízení\".", + "LabelCustomDeviceDisplayNameHelp": "Nahradit vlastním názvem zobrazení nebo ponechte prázdné, aby název byl určen zařízením.", + "TabParentalControl": "Rodičovská kontrola", + "HeaderAccessSchedule": "Přístup k naplánované úloze", + "HeaderAccessScheduleHelp": "Vytvořte plán přístupu pro limitování přístupu jen určitém čase.", + "HeaderLibraryAccess": "Přístup ke knihovně", + "HeaderChannelAccess": "Přístup ke kanálu", + "LabelForgotPasswordUsernameHelp": "Zadej své uživatelské jméno, jestliže se má pamatovat.", + "TitlePasswordReset": "Obnova hesla", + "HeaderBlockItemsWithNoRating": "Blokování položek s žádným nebo nerozpoznaným hodnocením:", + "LabelBlockContentWithTags": "Omezovat položky s tagy", + "LabelTagRestrictionMode": "Nastavení omezení pomocí tagů:", + "BlockItemsWithTheseTags": "Blokovat položky s tímto tagem", + "AllowItemsWithTheseTags": "Povolit položky pouze s tímto tagem", + "OptionAllowContentDownloading": "Povolit stahování médií", + "LabelNewUserNameHelp": "Uživatelská jména mohou obsahovat písmena (az), číslice (0-9), pomlčky (-), podtržítka (_), apostrofy (') a tečky (.)", + "HeaderThisUserIsCurrentlyDisabled": "Tento uživatel je aktuálně zablokován. Pro jeho povolení se prosím podívejte na volby na konci stránky.", + "OptionAllowSyncTranscoding": "Povolit stahování médií, které vyžadují překódování", + "AllowMediaConversion": "Povolit překódování médií", + "AllowMediaConversionHelp": "Povolte nebo zakažte přístup k funkci překódování médií.", + "OptionAllowAudioPlaybackTranscoding": "Povolit přehrávání audia, které vyžaduje překódování.", + "OptionAllowVideoPlaybackTranscoding": "Povolit přehrávání videa, které vyžaduje překódování.", + "OptionAllowVideoPlaybackRemuxing": "Umožní přehrávání videa, která vyžaduje konverzi bez opětovného překódování", + "OptionAllowMediaPlaybackTranscodingHelp": "Omezení přístupu k překódování vypne výběr kvality a může způsobit problémy při přehrávání v aplikacích Emby z důvodu nepodporovaného formátu média nebo nedostatečné konektivity.", + "LabelRemoteClientBitrateLimit": "Datový tok streamování do Internetu (Mbps):", + "LabelRemoteClientBitrateLimitHelp": "Volitelný limit bitové rychlosti pro každý server mimo síť. To je užitečné, abyste zabránili zařízení požadovat vyšší datový tok, než vaše připojení k internetu zvládne. To může vést ke zvýšení zatížení CPU na vašem serveru, aby bylo možné rychle překódovat videa na nižší bitovou rychlost.", + "LabelUserRemoteClientBitrateLimitHelp": "Toto přepíše výchozí globální hodnotu nastavenou v pokročilých nastavení serveru.", + "OptionEnableFullSpeedConversion": "Povolit plnou rychlost konverze", + "OptionEnableFullSpeedConversionHelp": "Ve výchozím nastavení jsou konverze prováděny při nízké rychlosti, aby se minimalizovala spotřeba zdrojů.", + "OptionEnableAutomaticServerUpdates": "Povolit automatickou aktualizaci serveru", + "HeaderTVSources": "Zdroje TV", + "HeaderAddTvSource": "Přidat zdroj TV vysílání", + "LabelTunerIpAddress": "IP adresa tuneru:", + "HeaderGuideProviders": "Zdroj dat průvodce", + "HeaderAddGuideSource": "Přidat zdroj průvodce", + "LabelZipCode": "PSČ", + "LabelLineup": "Hlavní linie:", + "LabelImportOnlyFavoriteChannels": "Zamezit označení kanálů jako oblíbené", + "ImportFavoriteChannelsHelp": "Pokud je povoleno, jen kanály označené jako oblíbené budou importována na zařízení tuneru.", + "HeaderDefaultRecordingSettings": "Standardní nastavení záznamu", + "LabelDisplayName": "Zobrazované jméno:", + "OptionDownloadImagesInAdvance": "Stáhnout obrázky pokročilejším způsobem", + "OptionDownloadImagesInAdvanceHelp": "Ve výchozím nastavení jsou sekundární obrázky staženy, jen při požádání aplikace Emby. Povolením této možnosti se stáhnou všechny obrázky v předstihu, jakmile jsou nová média načtena do knihovny.", + "MessageThankYouForSupporting": "Emby vám tímto děkuje za vaší podporu.", + "FileReadCancelled": "Čtení souboru bylo zrušeno.", + "FileNotFound": "Soubor nebyl nalezen.", + "FileReadError": "Nastala chyba při načítání souboru.", + "NoPluginConfigurationMessage": "Tento zásuvný modul nemá žádné nastavení.", + "HeaderNewApiKey": "Nový klíč API", + "HeaderNewApiKeyHelp": "Udělit povolení aplikací pro komunikaci s Emby Server.", + "MessageKeyEmailedTo": "Klíč odeslán na {0}", + "HeaderConfirmation": "Potvrzení", + "MessageKeyUpdated": "Děkuji. Váš klíč Emby Premiere byl aktualizován.", + "MessageKeyRemoved": "Děkuji. Váš klíč Emby Premiere byl odstraněn.", + "TextEnjoyBonusFeatures": "Užijte si bonusy", + "MessageErrorLoadingSupporterInfo": "Došlo k chybě při načítání informací o Emby Premiere. Prosím zkuste to znovu později.", + "ValueTimeLimitSingleHour": "Časový limit: 1 hodina", + "ValueTimeLimitMultiHour": "Časový limit: {0} hodin", + "General": "Obecné", + "HeaderScreenSavers": "Spořiče obrazovky", + "Reporting": "Hlášení", + "LabelStopping": "Zastavování", + "HeaderSelectCertificatePath": "Vyber cestu k certifikátu", + "HeaderSupporterBenefit": "Aktivní předplatné služby Emby Premiere poskytuje další výhody, jako je například přístup k digitálním videorekordérům Emby, offline médiím, prémiovým pluginům a dalším. {0}Přečtěte si více{1}.", + "LabelAbortedByServerShutdown": "(Přerušeno při vypnutí serveru)", + "LabelScheduledTaskLastRan": "Poslední spuštění {0}, zabralo {1}.", + "HeaderDeleteTaskTrigger": "Zrušit spuštění úlohy", + "MessageDeleteTaskTrigger": "Opravdu si přejete odebrat spouštění úlohy?", + "MessageNoPluginsDueToAppStore": "Pro správu zásuvných modulů použijte webovou aplikaci Emby.", + "LabelVersionInstalled": "{0} instalováno", + "HeaderSelectServerCachePath": "Vyber složku pro vyrovnávací paměť serveru", + "HeaderSelectTranscodingPath": "Zvolte dočasnou složku pro překódovávání médií", + "HeaderSelectMetadataPath": "Vyberte cestu k metadatům", + "HeaderSelectServerCachePathHelp": "Vyberte nebo zadejte složku vyrovnávací paměti souborů. Složka musí být zapisovatelná.", + "HeaderSelectTranscodingPathHelp": "Vyberte nebo zadejte složku pro dočasné soubory překódování. Složka musí být zapisovatelná.", + "HeaderSelectMetadataPathHelp": "Výběr nebo zadání cesty, kde chcete uložit metadata. Složka musí být zapisovatelná.", + "MessageConfirmRestart": "Jste si jist, že chcete restartovat Emby server?", + "MessageConfirmShutdown": "Jste si jist, že chcete vypnout Emby server?", + "LabelLocalAccessUrl": "Lokální (LAN) přístup: {0}", + "LabelRemoteAccessUrl": "Vzdálený (WAN) přístup: {0}", + "LabelRunningOnPort": "Spuštěno na http portu {0}.", + "LabelRunningOnPorts": "Spuštěno na http portu {0} a https portu {1}.", + "LabelCurrentPath": "Aktuální cesta:", + "HeaderSelectMediaPath": "Výběr cesty k médiu", + "HeaderSelectPath": "Vybrat složku", + "MessageDirectoryPickerInstruction": "Síťové cesty lze zadat ručně v případě, že tlačítko 'Síť' nedokáže automaticky lokalizovat vaše zařízení. Například, {0} nebo {1}.", + "MessageDirectoryPickerBSDInstruction": "Pro BSD, budete možná muset nakonfigurovat úložiště přímo ve Vašem FreeNAS Jail aby k nim Emby povolil přístup.", + "MessageDirectoryPickerLinuxInstruction": "Pro Linux na Arch Linux, CentOS, Debian, Fedora, openSUSE nebo Ubuntu, je nutné přiřadit oprávnění uživatelům k úložištím systému Emby alespoň pro čtení.", + "MetadataManager": "Manažer metadat", + "OptionBlockLiveTvChannels": "Kanály Live TV", + "OptionBlockChannelContent": "Obsah internetového kanálu", + "ButtonRevoke": "Odvolat", + "MessageConfirmRevokeApiKey": "Jste si jisti, že chcete odvolat tento klíč API? Připojení k aplikaci k Emby Server bude násilně ukončeno.", + "HeaderConfirmRevokeApiKey": "Odvolat klíč Api", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Než budete pokračovat, přijměte prosím smluvní podmínky.", + "HeaderChangeFolderType": "Změna typu obsahu", + "HeaderChangeFolderTypeHelp": "Chcete-li změnit typ, vyjměte a znovu prohledejte knihovny s nově přiřazeným typem.", + "HeaderAlert": "Upozornění", + "MessagePleaseRestart": "Pro dokončení aktualizací, prosím, restartujte.", + "OptionHomeVideos": "Domácí videa a fotky", + "OptionBooks": "Knihy", + "HeaderMetadataReaders": "Čtečky metadat", + "LabelMetadataReadersHelp": "Seřaďte své preferované lokální zdroje metadat dle priority. První nalezená data budou načtena.", + "HeaderSubtitleDownloaders": "Stahovače titulků", + "SubtitleDownloadersHelp": "Dle priority povolí a zařadí Vaše upřednostňované stahovače titulků. Pomocí Emby plugin katalogu můžete nainstalovat více poskytovatelů titulků.", + "LabelMetadataDownloaders": "Stahovače metadat:", + "LabelMetadataDownloadersHelp": "Povolí řazení vašich preferovaných stahovačů metadat podle priority. Stahovač s nižší prioritou bude použit pouze k doplnění chybějících informací.", + "HeaderMetadataSavers": "Střadatelé metadat", + "LabelMetadataSaversHelp": "Vyberte formáty souborů pro uložení metadat.", + "LabelImageFetchers": "Stahovač obrázků:", + "LabelImageFetchersHelp": "Povolí řazení stahovačů obrázků dle priority.", + "PersonTypePerson": "Osoba", + "HeaderRemoveMediaLocation": "Odebrat umístění media", + "MessageConfirmRemoveMediaLocation": "Jste si jist, že chcete odstranit toto umístění?", + "LabelNewName": "Nový název:", + "HeaderRemoveLibrary": "Odebrat knihovnu", + "MessageAreYouSureYouWishToRemoveLibrary": "Opravdu si přejete odebrat \"{0}\" knihovnu z Vašeho serveru Emby? Na Vaše soubory médií to nebude mít vliv.", + "ButtonRename": "Přejmenovat", + "HeaderPluginInstallation": "Instalace zásuvných modulů", + "MessageTrialExpired": "Zkušební období pro tuto funkci již vypršelo", + "MessageTrialWillExpireIn": "Zkušební doba této funkce vyprší za {0} dní", + "ValuePriceUSD": "Náklady: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Jste registrováni pro tuto funkci, a budete ji moci nadále používat s aktivním předplatným Emby Premiere.", + "HeaderSelectExternalPlayer": "Vybrat externí přehrávač", + "HeaderExternalPlayerPlayback": "Přehrát v externím přehrávači", + "HeaderThankYou": "Děkuji", + "HeaderSelectUploadPath": "Výběr složky pro upload", + "ErrorMessageStartHourGreaterThanEnd": "Čas ukončení musí být větší než čas startu.", + "MessagePluginConfigurationRequiresLocalAccess": "Pro konfiguraci zásuvného modulu se přihlaste přímo na lokální server", + "MovieLibraryHelp": "Prohlédněte si {0}průvodce pojmenováním videí Emby{1}.", + "TvLibraryHelp": "Prohlédněte si {0}průvodce pojmenováním TV epizod Emby{1}.", + "BookLibraryHelp": "Textové knihy jsou podporovány. Prohlédněte si {0}průvodce pojmenováním TV epizod Emby{1}.", + "MessageGamePluginRequired": "Vyžaduje instalaci zásuvného modulu GameBrowser", + "HeaderUnlockApp": "Odemknout aplikaci", + "MessagePaymentServicesUnavailable": "Platební služby nejsou v současné době k dispozici. Prosím zkuste to později znovu.", + "NoNewDevicesFound": "Nebylo nalezeno žádné nové zařízení. Chcete-li přidat nový tuner, zavřete toto dialogové okno a zadejte informace o zařízení ručně.", + "MessageConfirmDeleteTunerDevice": "Jste si jisti, že chcete smazat tento přístroj?", + "MessageConfirmDeleteGuideProvider": "Jste si jisti, že chcete smazat tohoto poskytovatele programového průvodce?", + "HeaderDeleteProvider": "Odebrat poskytovatele", + "ErrorAddingTunerDevice": "Došlo k chybě při přidání zařízení tuneru. Prosím, ujistěte se, že je přístupný a zkuste to znovu.", + "ErrorSavingTvProvider": "Při ukládání poskytovatele TV došlo k chybě. Prosím, ujistěte se, že je přístupný a zkuste to znovu.", + "ErrorGettingTvLineups": "Došlo k chybě při stahování tv lineups. Ujistěte se prosím, že zadané informace jsou správné, a zkuste to znovu.", + "MessageCreateAccountAt": "Vytvořit účet v {0}", + "ErrorPleaseSelectLineup": "Vyberte seskupení a zkuste to znovu. Pokud nejsou k dispozici žádné seskupení, pak prosím zkontrolujte, zda vaše uživatelské jméno, heslo a poštovní směrovací číslo je správné.s", + "ErrorValidatingSupporterInfo": "Došlo k chybě při ověřování informací o vašem předplatném Emby Premiere. Prosím zkuste to později.", + "LabelLocalSyncStatusValue": "Stav: {0}", + "HeaderTopPlugins": "Nejlépe hodnocené zásuvné moduly", + "ForAdditionalLiveTvOptions": "Prohledejte Emby {0}plugin katalog{1} pro nainstalování dodatečných poskytovatelů Živé TV.", + "AddUser": "Přidat uživatele", + "HeaderEmailAddress": "E-mailová adresa", + "NumLocationsValue": "{0} složky", + "PleaseAddAtLeastOneFolder": "Přidejte prosím nejméně jednu složku do této knihovny pomocí tlačítka Přidat.", + "ErrorAddingMediaPathToVirtualFolder": "Nastala chyba při přidávání cesty k médiím. Zkontrolujte zda zadaná složka je validní a Emby Server má k této složce přístup.", + "ErrorAddingEmbyConnectAccount3": "Účet Emby je již propojen s existujícím místním uživatelem. Účet Emby může být spojen pouze s jedním lokálním uživatelem současně.", + "HeaderConfirmPluginInstallation": "Potvrzení instalace zásuvného modulu", + "PleaseConfirmPluginInstallation": "Pro potvrzení, že jste si přečetli text výše a chcete pokračovat v instalaci zásuvných modulů, klikněte na tlačítko OK.", + "MessagePluginInstallDisclaimer": "Zasuvné moduly vytvořené členy Emby komunity jsou skvělý způsob, jak zvýšit svůj Emby prožitek pomocí doplňkových funkcí :-) Před instalací, se prosím seznamte se všemi dopady, které mohou mít na Emby Server, jako je například delší prohledávání knihovny, další zpracování na pozadí, a snížení stability systému.", + "HardwareAccelerationWarning": "Zapnutí hardwarové akcelerace může způsobit nestabilitu v některých prostředích. Ujistěte se, že vaše ovladače operačního systému a videa jsou plně aktuální. Máte-li potíže s přehráváním videa po zapnutí, budete muset změnit nastavení zpět na Auto.", + "ValueExample": "Příklad: {0}", + "LabelFileOrUrl": "Soubor nebo URL:", + "OptionEnableForAllTuners": "Povolit pro všechna zařízení tunerů", + "HeaderTuners": "Tunery", + "DrmChannelsNotImported": "Kanál s DRM nebude importován", + "LabelAllowHWTranscoding": "Povolit hardwarové překódování", + "AllowHWTranscodingHelp": "Pokud nastavíte, povolíte tuneru překódování v reálném čase. Může snížit zátěž překódovávání požadované Emby Serverem.", + "MetadataSettingChangeHelp": "Změna nastavení metadat bude mít vliv na nový obsah, který bude přidáván. Chcete-li aktualizovat stávající obsah, otevřte obrazovku s detailem a klepněte na tlačítko Aktualizovat, nebo proveďte hromadnou aktualizaci pomocí správce metadat.", + "RecordingPathChangeMessage": "Změna záznamové složky automaticky nepřesune stávající záznamy ze starého umístění do nového. Budete muset přesunout ručně, pokud je to žádoucí.", + "LabelLocalIpAddress": "Místní IP adresa:", + "LabelBindToLocalNetworkAddressHelp": "Volitelné. Přepsat lokální IP adresu, kterou se Emby server prokazuje aplikacím Emby. Pokud je nevyplněné, server automaticky zjistí lokální IP adresu.", + "SettingsWarning": "Změna těchto hodnot může způsobit nestabilitu nebo selhání připojení. Pokud narazíte na nějaké problémy, doporučujeme jej změnit zpět na výchozí hodnotu.", + "OptionSaveMetadataAsHiddenHelp": "Změna bude platit pro nově uložená metadata do budoucna. Existující soubory metadat budou aktualizovány příště, jakmile budou uloženy Emby Serverem.", + "EnablePhotos": "Povolit fotky", + "EnablePhotosHelp": "Fotografie budou detekovány a zobrazeny spolu s dalšími multimediálními soubory.", + "ImportPlaylists": "Import playlistů", + "ImportPlaylistsHelp": "Nalezené playlisty ve Vašich složkách s médii mohou být importovány do serveru Emby.", + "SaveThumbnailImagesIntoMediaFolders": "Uložit náhledy miniatur do složky s médii", + "LabelGenerateVideoPreviewThumbnails": "Vytvořit miniatury jako náhledy videa", + "LabelEnableDebugLogging": "Povolit záznam pro ladění", + "OptionEnableExternalContentInSuggestions": "Aktivovat externí obsah v návrzích", + "OptionEnableExternalContentInSuggestionsHelp": "Povolit internetové upoutávky a živé televizní programy, které mají být zahrnuty do navrženého obsahu.", + "LabelOptionalNetworkPath": "(Nepovinné) Sdílená síťová složka:", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Prosím přihlašte se k DSM a aktualizujte Centrum Balíčků.", + "HeaderRecordingPostProcessing": "Následné zpracování nahrávek", + "LabelPostProcessorArguments": "Argumenty příkazové řádky pro následné zpracování", + "PostProcessorArgumentsHelp": "Aby bylo možné předávat informace do post-procesoru, jsou v příkazovém řádku podporovány následující proměnné:", + "LabelPostProcessor": "Aplikace pro následné zpracování:", + "DvrPostProcessorPathArgument": "{path}: Celá cesta k novému souboru s nahrávkoui", + "OptionAutomaticallyGroupSeries": "Automatické sloučení k seriálu, které jsou ve více složkách", + "OptionAutomaticallyGroupSeriesHelp": "Pokud je povoleno, budou díly seriálu uložené ve více adresářích v této knihovně, automaticky sloučeny k jednomu seriálu.", + "WhenDidYouPurchaseApp": "Kdy jste tuto aplikaci původně zakoupili?", + "PreferEmbeddedTitlesOverFileNames": "Upřednostňovat vložené názvy nad názvy souborů", + "PreferEmbeddedTitlesOverFileNamesHelp": "Toto určuje výchozí zobrazený název, pokud nejsou k dispozici žádná internetová metadata ani lokální metadata.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Nastavení tuneru Live TV.", + "HeaderTVSourceSetup": "Nastavení zdrojů TV", + "HeaderDetectMyDevices": "Najít má zařízení", + "MessagePleaseWait": "Prosím, čekejte. Může to chvíli trvat.", + "DetectingDevices": "Hledání zařízení", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Po počátečním importu automaticky aktualizovat metadata z internetu:", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Každý {0} den", + "LabelCertificatePassword": "Heslo certifikátu:", + "LabelCertificatePasswordHelp": "Pokud váš certifikát vyžaduje heslo, zadejte jej zde.", + "HeaderNewLibrary": "Nová knihovna", + "HttpsRequiresCert": "Chcete-li povolit zabezpečená připojení, budete muset dodat důvěryhodný certifikát SSL, jako například Lets Encrypt. Vložte prosím buď certifikát, nebo vypněte zabezpečené připojení.", + "ServerRestartNeededAfterPluginInstall": "Po instalaci pluginu bude třeba restartovat server Emby.", + "PluginInstalledMessage": "Plugin byl úspěšně nainstalován. Emby server se bude muset restartovat, aby se změny projevily.", + "MessagePremiereStatusGood": "Používáte {0} předplatné Emby Premiere a používání vašeho zařízení jsou v rámci vašeho limitu.", + "MessagePremiereStatusClose": "Používáte {0} předplatné Emby Premiere a používání zařízení se blíží limitu.", + "MessagePremiereExtendedPlans": "Zvažte {0}rozšíření předplatného pro zařízení{1}", + "MessagePremiereStatusOver": "Používáte {0} předplatné Emby Premiere, ale překročili jste limit zařízení!", + "ListItemPremiereSub": "{0} předplatné zakoupené přes {2} vyprší {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "Toto předplatné můžete spravovat přímo přes {0}", + "LabelAlreadyCanceled": "Toto předplatné bylo zrušeno. Klíč bude platný, dokud neexpiruje.", + "HeaderCancelSub": "Zrušit Emby Premiere", + "MessageConfirmSubCancel": "Ne, neodcházejte prosím... Přijdete o všechny skvělé funkce Emby Premiere.", + "ButtonCancelSub": "Já vím, chci to zrušit", + "ButtonDontCancelSub": "Zachovat Emby Premiere", + "MessageSubCancelReqSent": "E-mail byl odeslán majiteli klíče. Podle pokynů v tomto e-mailu dokončete zrušení tohoto předplatného. Doufáme, že vás brzy uvidíme!", + "MessageSubCancelError": "Něco se stalo špatně, operace nedokončena. Zašlete prosím e-mail na {0} a my se vám pokusíme pomoci.", + "LabelAlreadyCancelled": "Toto předplatné bylo zrušeno. Nebude vám účtováno znovu, ale funkce budou fungovat až do výše uvedeného data.", + "AllowOnTheFlySubtitleExtraction": "Všechny titulky extrahovat za běhu", + "AllowOnTheFlySubtitleExtractionHelp": "Vložené titulky lze z videí extrahovat a odesílat do aplikací Emby v prostém textu, aby se zabránilo překódování videa. Na některých systémech to může trvat dlouhou dobu a během procesu extrakce způsobit zastavení přehrávání videa. Zakažte to, aby byly titulky vloženy do obrazu při překódování videa, pokud nejsou klientským zařízením nativně podporovány.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Záznamy ladění by měly být zapnuty pouze pro účely odstraňování problémů. Zvýšený přístupk souborovému systému může v některých prostředích zabránit serveru v přechodu do režimu spánku.", + "LabelSimultaneousConnectionLimit": "Limit současných streamů:", + "SimultaneousConnectionLimitHelp": "Maximální povolených počet současně běžících streamů. Pokud to nechcete omezit, zadejte 0.", + "LaunchWebAppOnStartup": "Spustit webovou aplikaci Emby při startu Emby serveru", + "LaunchWebAppOnStartupHelp": "Když se spustí Emby Server, otevře se webová aplikace ve výchozím webovém prohlížeči. Nedojde k tomu při použití funkce restartování serveru.", + "LabelReferrerHeader": "Referenční HTTP hlavička:", + "LabelUserAgentHeader": "HTTP hlavička user agenta:", + "SupplyCustomValueIfNeeded": "V případě potřeby přidejte vlastní http hlavičku user-agenta.", + "HeaderConfigureRemoteAccess": "Nastavit vzdálený přístup", + "LearnHowToCreateSynologyShares": "Zjistěte, jak sdílet složky ve službě Synology.", + "LabelAllowedRemoteAddresses": "Filtr vzdálené IP adresy:", + "LabelAllowedRemoteAddressesMode": "Režim filtru vzdálené IP adresy:", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Seznam IP adres nebo síťových masek oddělených čárkami pro sítě, které se budou moci vzdáleně připojovat. Pokud zůstane pole prázdné, budou povoleny všechny vzdálené adresy.", + "LabelLanNetworks": "Sítě LAN:", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Zabezpečený režim připojení:", + "PreferredNotRequired": "Preferován, ale není vyžadován", + "RequiredForAllRemoteConnections": "Vyžadován pro všechna vzdálená připojení", + "HandledByProxy": "Zpracováno přes reverzní proxy", + "SaveSubtitlesIntoMediaFolders": "Uložit titulky do složky s médii", + "SaveSubtitlesIntoMediaFoldersHelp": "Uložení titulků vedle video souborů umožní snadnější správu.", + "AutomaticSubtitleDownloadInstructions": "Chcete-li spravovat automatické stahování titulků, klikněte na patřičnou knihovnu v nastavení knihovny Emby a této knihovně upravte nastavení stahování titulků.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Povolit hardwarovou akceleraci, jsou-li k dispozici:", + "HeaderPreferredHardwareDecoders": "Preferované hardwarové dekodéry", + "HeaderPreferredHardwareEncoders": "Preferované hardwarové enkodéry", + "AllowChangingImageAndPassword": "Povolit tomuto uživateli změnit heslo a profilový obrázek", + "LabelSimultaneousStreamLimit": "Maximum souběžných video streamů:", + "SimultaneousStreamLimitHelp": "Omezí počet souběžných relací přehrávání videa.", + "LabelMusicFolderStructure": "Struktura složky s hudbou:", + "LabelMusicFolderStructureHelp": "Zajistí informace o uspořádání složek pro scanner knihovny. Nejste-li si jisti nebo nevíte přesně jaké z uvedených možností odpovídá Vaše struktura složek, vyberte, prosím, výchozí volbu nebo \"jiné\".", + "OtherOrUnstructured": "Jiné nebo bez struktury", + "PerfectArtistAlbumTrack": "Přesně uspořádané do složek interpret\\album, kde jsou jednotlivé skladby umístěny ve složce s albem.", + "PerfectAlbumTrack": "Přesně uspořádané do složek s alby, kde jsou jednotlivé skladby umístěny ve složce s albem.", + "LabelMinCollectionSize": "Minimální velikost automatické kolekce:", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automaticky vytvářet kolekce pokud máte vybraný počet titulů ve Vaší knihovně. Změna této hodnoty nebude mít vliv na již existující kolekce.", + "LabelImportCollections": "Importovat informace o kolekci ze stahovačů metadat", + "LabelImportCollectionsHelp": "Povolením této možnosti se nahrají informace o kolekci z povolených stahovačů metadat. Toto může způsobit nežádoucí automatické vytváření kolekcí. Zakázáním se zabrání jejich automatickému vytváření, ale nesmažou se již existující kolekce.", + "LabelAllowAdultMetadata": "Povolit metadata obsahu pro dospělé", + "LabelAllowAdultMetadataHelp": "Při vyhledávání internetových metadat dovolí přirazení k obsahu pro dospělé.", + "HeaderVideoPreviewThumbnails": "Náhledy miniatur videí.", + "LabelEnableHDRToneMapping": "Povolit mapování barevných odstínů HDR:", + "EnableHDRToneMappingHelp": "Mapování barevných odstínů zajistí správnou konverzi barev při překódování HDR obsahu, který by se jinak jevil jako velmi ztlumený a nenasycený. Povolením této funkce mohou být pro podporu hardwarové akcelerace zapotřebí další součásti ovladače. Podrobnosti najdete v našem průvodci nastavením hardwarové akcelerace.", + "WithHardwareAcceleratedTranscoding": "Ano, pouze s hardwarovou akcelerací", + "TranscodingStillInitializing": "Služby serveru Emby pro transkódování se stále spouští. Tato obrazovka se automaticky obnoví, až budou transkódovací služby připraveny.", + "WithEitherHardwareOrSoftwareTranscoding": "Ano, buď s hardwarovým nebo softwarovým překódováním", + "ToneMappingInHardwareDescription": "Mapování barevných odstínů bude provedeno pomocí hardwarové akcelerace pokud je povolena a podporována hardwarem. Ve všech ostatních případech bude vynecháno.", + "ToneMappingInSoftwareDescription": "Mapování barevných odstínů bude provedeno softwarově využitím CPU. Toto je mnohem pomalejší než hardwarově akcelerované mapování tónů a bude vyžadovat velmi výkonný server.", + "ToneMappingInBothDescription": "Mapování barevných odstínů bude provedeno pomocí hardwarové akcelerace pokud je povolena a podporována hardwarem. Ve všech ostatních případech bude záložní variantou softwarové provedení. Mapování barevných odstínů softwarově je mnohem pomalejší než hardwarově akcelerované a bude vyžadovat velmi výkonný server.", + "AutoMapped": "Automaticky namapováno", + "ManuallyMapped": "Ručně namapováno", + "NotMappedToGuideData": "Nenamapováno na data průvodce", + "MappedToValue": "Namapováno na {0}", + "LabelAutomaticallyWakeServerForRecordings": "Probudit server ke spuštění nahrávání automaticky.", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Probouzení bude naplánováno pomocí operačního systému serveru. Zákaz této možnosti zabrání plánování probouzení do budoucna, neodstraní však žádnou z dříve naplánovaných událostí.", + "Database": "Databáze", + "LabelOptimizeDatabaseOnShutdown": "Pokusit se optimalizovat databázi při vypínání serveru.", + "LabelOptimizeDatabaseOnShutdownHelp": "Optimalizace databáze se obvykle neprovádí. Někdy však, pokud se zdá, že to bude pro plánovač dotazů užitečné, je provedena analýza. To může způsobit delší dobu vypínání serveru Emby.", + "LabelDatabaseCacheSize": "Velikost mezipaměti (cache) databáze (MB)", + "LabelDatabaseCacheSizeHelp": "Nastavuje pro každý databázový soubor velikost dat, které bude databáze uchovávat v paměti najednou. Aby se změna projevila, je vyžadován restart serveru.", + "LabelDatabaseAnalysisLimit": "Omezení řádků analýzy", + "LabelDatabaseAnalysisLimitHelp": "Toto je při optimalizaci databáze přibližný počet řádků prozkoumaný v každém indexu příkazem ANALYZE. Vyšší hodnota zvýší účinnost optimalizace, ale může mít za následek pomalejší vypínání Serveru.", + "LabelVacuumDb": "Provést VACUUM databáze při příštím spuštění serveru Emby.", + "LabelVacuumDbHelp": "Příkaz VACUUM provede znovusestavení a zabalení souboru databáze, aby zabral co nejméně mista na disku. V některých případech to může zlepšit výkon serveru Emby. Vezměte prosím na vědomí, že v průběhu této operace nebude server Emby použitelný a nebude možné sledovat průběh příkazu. Vyvarujte se, prosím, násilného ukončení procesu serveru Emby během této doby, protože to může mít za následek poškození databáze. Je to jednorázová operace a při příštím spuštění serveru se tato možnost vrátí zpět na nezaškrtnutou.", + "AdvancedOptionsWarning": "Toto jsou rozšířené možnosti a pokud nemáte důvod je změnit, měly by zůstat na výchozích hodnotách.", + "HeaderRecentlyActiveDevices": "Naposledy aktivní zařízení", + "YesUntilServerRestart": "Ano, do příštího restartování serveru.", + "YesUntilLogRotate": "Ano, do příští rotace souboru s protokolem", + "LabelSubtitleDownloadMaxAge": "Přestat se pokoušet automaticky stáhnout titulky pro videa starší než:", + "SubtitleDownloadMaxAgeHelp": "Toto je založeno na hodnotě data přidání v metadatech.", + "NoAgeLimit": "Bez omezení věku", + "AnonymizeLogContents": "Anonymizovat obsah protokolu.", + "Markers": "Značky", + "LabelGenerateIntroVideoMarkers": "Vytvoření úvodních video značek:", + "GenerateIntroVideoMarkersHelp": "V aplikacích Emby rozpozná úvodní intra a zobrazí tlačítko \"Přeskočit úvod\". Toto rozpoznávání může dlouho trvat a způsobit vysoké využití procesoru nebo disku.", + "LabelCopyFromUser": "Kopírovat nastavení od uživatele", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Možnosti kopírování", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Softwarové enkodéry", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LabelFolderScanningMode": "Folder scanning mode", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "Legacy": "Legacy" +} diff --git a/strings/da.json b/strings/da.json new file mode 100644 index 0000000..43d7596 --- /dev/null +++ b/strings/da.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Du er færdig!", + "ThisWizardWillGuideYou": "Denne guide vil hjælpe dig igennem opsætningen. For at begynde, vælg venligst dit fortrukne sprog.", + "HeaderCreateYourFirstUser": "Opret din første bruger", + "ButtonQuickStartGuide": "Hurtig-start guide", + "MoreUsersCanBeAddedLater": "Flere brugere kan tilføjes senere i betjeningspanelet.", + "UserProfilesIntro": "Emby har indbygget understøttelse af brugerprofiler. Dette giver hver bruger sine egne indstillinger for visning, afspilningsstatus og forældrekontrol.", + "WizardCompleted": "Det er alt vi behøver for nu. Emby er begyndt at indsamle information omkring dit mediebibliotek. Tjek nogle af vores apps og klik derefter på Færdig for at se Server betjeningspanelet.", + "MessagePleaseAcceptTermsOfService": "Accepter venligst tjenestevilkårene og privatlivspolitikken før du fortsætter.", + "OptionIAcceptTermsOfService": "Jeg accepterer tjenestevilkårene", + "SeeOurHwaGuide": "See our {0}hardware acceleration setup guide{1}.", + "HeaderEmbyServerReleaseNotes": "Emby Server Release Notes", + "AllowSubtitleDownloading": "Tillad download af undertekster", + "AllowSubtitleManagement": "Tillad sletning af eksisterende undertekstfiler", + "NewUserNameHelp": "Sådan her vil brugeren fremstå på din server.", + "ChapterMarkers": "Kapitelmarkører", + "LabelThumbnailImagesInterval": "Thumbnail images interval", + "ThumbnailImagesIntervalHelp": "More frequent thumbnails will result in a better experience, but will require more disk space and time to create the images.", + "LabelAuthProvider": "tredje-parts godkendelse: ", + "AuthProviderHelp": "Administratorer bruger altid standard Emby godkendelse, for at sikre du ikke bliver logget ud.", + "HeaderNewUser": "New User", + "ChangeServerDisplayName": "Change Server Display Name", + "ShowAdvancedSettings": "Vis avanceret indstillinger", + "ChangingMetadataImageSettingsNewContent": "Changes to metadata or artwork downloading settings will only apply to new content added to your library. To apply the changes to existing titles, you'll need to refresh their metadata manually.", + "AllowRemoteAccess": "Tillad fjernforbindelser til denne Emby server.", + "AllowRemoteAccessHelp": "If unchecked, all remote connections will be blocked.", + "Alerts": "Alarmer", + "LabelTrackTitleDisplay": "Embedded track title display", + "GenerateUserFriendlyTrackTitles": "Generate user friendly titles using track information", + "PreferOriginalTrackTitles": "Prefer embedded titles", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "EnableTranscodingThrottle": "Enable throttling", + "EnableTranscodingThrottleHelp": "Emby will dynamically adjust transcoding speed based in order to reduce CPU utilization.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} Image Fetchers", + "HeaderImageOptions": "Billedets indstillinger", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registrer med PayPal", + "LabelSyncTempPath": "Sti for midlertidige filer:", + "LabelSyncTempPathHelp": "Specificer en brugerdefineret synkroniserings arbejds-mappe. Konverterede filer vil under synkroniseringsprocessen blive gemt her.", + "LabelCustomCertificatePath": "Sti til brugerdefinerede SSL-certifikat:", + "LabelCustomCertificatePathHelp": "Path to a PKCS #12 file containing a certificate and private key to enable TLS support on a custom domain.", + "HeaderSetupLibrary": "Opsæt dine mediebiblioteker", + "LabelTimeLimitHours": "Tidsgrænse (timer):", + "HeaderPreferredMetadataLanguage": "Foretrukket sprog for metadata", + "LabelSaveLocalMetadata": "Gem illustrationer i mediemapper", + "LabelSaveLocalMetadataHelp": "Lagring af illustrationer i mediemapper vil placere dem et sted hvor de nemt kan redigeres.", + "TabAccess": "Adgang", + "HeaderDeviceAccess": "Enhedsadgang", + "OptionEnableAccessFromAllDevices": "Tillad adgang fra alle enheder", + "OptionEnableAccessToAllChannels": "Tillad adgang til alle kanaler", + "OptionEnableAccessToAllLibraries": "Tillad adgang til alle biblioteker", + "DeviceAccessHelp": "Dette gælder kun for enheder, der kan identificeres unikt, og vil ikke forhindre adgang fra en browser. Ved at filtrere brugeres adgang fra enheder, kan du forhindre dem i at bruge nye enheder før de er blevet godkendt her.", + "LabelDisplayMissingEpisodesWithinSeasons": "Vis manglende episoder i sæsoner", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Dette skal også aktiveres for TV-biblioteker i Emby Serversetup.", + "ImportMissingEpisodesHelp": "hvis aktiveret, vil information omkring manglende episoder bliver importeret ind i din Emby-database og blive vist i sæsoner og serier. Dette medfører muligvis længere biblioteksscanninger.", + "MessageEnablingOptionLongerScans": "Aktivering af denne indstilling kan medføre betydeligt længere biblioteksscanninger.", + "LabelMaxParentalRating": "Højst tilladte aldersgrænse:", + "MaxParentalRatingHelp": "Indhold med en højere grænse, skjules for denne bruger.", + "LibraryAccessHelp": "Vælg hvilke mediemapper der skal deles med denne bruger. Administratorer vil kunne redigere alle mapper ved hjælp af metadata administratoren.", + "ChannelAccessHelp": "Vælg hvilke kanaler der skal deles med denne bruger. Administratorer vil kunne redigere alle kanaler ved hjælp af metadata administratoren.", + "ImageUploadAspectRatioHelp": "1:1 højde/breddeforhold anbefalet. Kun JPG/PNG.", + "AlreadyPaidHelp1": "Hvis du allerede har betalt for at installere en ældre version af Media Browser til Android, behøver du ikke at betale igen, for at aktivere denne app. Klik OK for at sende os en email {0} så sørger vi for at aktivere for dig.", + "AlreadyPaidHelp2": "Har du Emby Premiere? Afbryd blot denne dialog, opsæt Emby Premiere i dit Emby Server kontrolpanel under Hjælp -> Emby Premiere og herefter oplåses det automatisk.", + "TabMyPlugins": "Mine plugins", + "TabCatalog": "Katalog", + "HeaderAutomaticUpdates": "Automatiske opdateringer", + "Standard": "Standard", + "TabSupporterKey": "Emby Premiere Nøgle", + "OptionHideUserLocal": "Vis ikke denne bruger på loginskærme på det lokale netværk", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Nyttigt for private kontoer eller skjulte administratorkontoer. Brugeren skal logge ind ved at skive sit brugernavn og adgangskode.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Deaktiver denne bruger", + "OptionDisableUserHelp": "Hvis deaktiveret vil serveren ikke tillade forbindelser fra denne bruger. Eksisterende forbindelser vil blive afbrudt øjeblikkeligt.", + "OptionAllowUserToManageServer": "Tillad denne bruger at administrere serveren", + "HeaderFeatureAccess": "Adgang til funktioner", + "OptionAllowMediaPlayback": "Tillad afspilning ad medier", + "AllLibraries": "Alle biblioteker", + "HeaderAllowMediaDeletionFrom": "Tillad at slette media fra ", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Tillad fjernstyring af andre brugere", + "OptionAllowRemoteSharedDevices": "Tillad fjernstyring af delte enheder", + "OptionAllowRemoteSharedDevicesHelp": "DLNA-enheder er delte indtil en bruger begynder at bruge den.", + "OptionAllowLinkSharing": "Tillad deling på sociale medier", + "OptionAllowLinkSharingHelp": "Kun websider der indeholder medieinformationer deles. Mediefiler deles aldrig offentligt. Delinger er tidsbegrænset og udløber efter {0} dage.", + "OptionRelease": "Officiel udgivelse", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "Serveren vil kun genstarte i inaktive perioder, når ingen brugere er aktive", + "LabelRunServerAtStartup": "Start serveren ved opstart", + "LabelRunServerAtStartupHelp": "This will start the Emby tray icon on Windows startup. If you've set up a Windows service then leave this unchecked and configure the service to run at startup.", + "ButtonSelectDirectory": "Vælg mappe", + "LabelCachePath": "Cachesti:", + "DefaultMetadataLangaugeDescription": "Dette er din standard, og kan blive ændret for hver bibliotek.", + "LabelCachePathHelp": "Angiv en brugerdefineret lokation for server cachefiler, så som billeder. Efterlad blankt for at benytte serverens standard.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Metadatasti:", + "LabelMetadataPathHelp": "Angiv en brugerdefineret lokation til downloadet grafik og metadata.", + "LabelTranscodingTempPath": "Midlertidig sti til transkodning:", + "LabelTranscodingTempPathHelp": "Denne mappe indeholder transkoderens arbejdsfiler. Definer en alternativ sti eller lad den stå tom for at bruge standardmappen i serverens datamappe.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Opdater Guide data", + "LabelNumberOfGuideDays": "Antal dage af programguide data der skal hentes:", + "LabelNumberOfGuideDaysHelp": "Hentning af flere dages programguide data giver mulighed for at planlægge længere ud i fremtiden, og se flere programoversigter, men det vil også tage længere tid at hente. Auto vil vælge baseret på antallet af kanaler.", + "HeaderFetchImages": "Hent billeder:", + "LabelMaxBackdropsPerItem": "Maksimum antal af bagtæpper per element:", + "LabelMaxScreenshotsPerItem": "Maksimum antal af skærmbilleder per element:", + "LabelMinBackdropDownloadWidth": "Minimum bagtæppe bredde:", + "LabelMinScreenshotDownloadWidth": "Minimum skærmbillede bredde:", + "ButtonAddScheduledTaskTrigger": "Tilføj udløser", + "ButtonAdd": "Tilføj", + "LabelTriggerType": "Udløsertype", + "OptionOnInterval": "Interval", + "OptionAfterSystemEvent": "Efter en systemhændelse", + "LabelDay": "Dag:", + "LabelTime": "Tid:", + "LabelEvent": "Hændelse:", + "OptionWakeFromSleep": "Vågner fra dvale", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Aktiver realtidsovervågning", + "LabelEnableRealtimeMonitorHelp": "Ændringer på filer, vil blive behandlet øjeblikkeligt på understøttede filsystemer.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Nemt servernavn", + "LabelFriendlyServerNameHelp": "Dette navn bruges til at identificere serveren. Hvis det ikke udfyldes, bruges computerens navn.", + "LabelPreferredDisplayLanguage": "Foretrukket sprog til visning:", + "LabelPreferredDisplayLanguageHelp": "Oversættelse af Emby er et løbende projekt.", + "LabelReadHowYouCanContribute": "Lær hvordan du kan bidrage.", + "LabelCustomCss": "Brugerdefineret css", + "LabelCustomCssHelp": "Anvend din egen css til webinterfacet.", + "LabelLocalHttpServerPortNumber": "Lokalt http portnummer:", + "LabelLocalHttpServerPortNumberHelp": "Det portnummer Embys http-server bruger.", + "LabelPublicHttpPort": "Offentligt http portnummer:", + "LabelPublicHttpPortHelp": "Det offentlige portnummer som bliver knyttet til det lokale http portnummer.", + "LabelPublicHttpsPort": "Offentligt https portnummer:", + "LabelPublicHttpsPortHelp": "Det offentlige portnummer som bliver knyttet til det lokale https portnummer.", + "RequireHttps": "Kræver https for fjernforbindelse", + "RequireHttpsHelp": "Hvis aktiveret, forbindelser over http bliver dirigeret videre til https.", + "LabelHttpsPort": "Lokalt https portnummer", + "LabelHttpsPortHelp": "Det portnummer Embys https-server bruger.", + "LabelEnableAutomaticPortMap": "Aktiver automatisk port mapping", + "LabelEnableAutomaticPortMapHelp": "Forsøg at mappe den offentlige port til den lokale port med uPnP. Dette virker ikke med alle routere.", + "LabelExternalDDNS": "Eksternt domæne:", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Min. fortsæt procentdel:", + "LabelMaxResumePercentage": "Maks. fortsæt procentdel:", + "LabelMinResumeDuration": "Min. fortsæt tidsrum (sekunder):", + "LabelMinResumePercentageHelp": "Medier anses om ikke afspillet, hvis de stoppes inden denne tid.", + "LabelMaxResumePercentageHelp": "Medier anses som fuldt afspillet, hvis de stoppes efter denne tid.", + "LabelMinResumeDurationHelp": "Medier med kortere afspilningstid en denne kan ikke fortsættes.", + "HeaderStatus": "Status", + "Subscriptions": "abonnementer", + "LabelEndingEpisodeNumber": "Nummer på sidste episode", + "LabelEndingEpisodeNumberHelp": "Kun nødvendig for filer med flere episoder.", + "HeaderSupportTheTeam": "Støt Emby-holdet", + "HeaderSupportTheTeamHelp": "Hjælp med at sikre den fortsatte udvikling af dette projekt ved at købe Emby Premiere. En del af alle indtægter bidrages til andre gratis værktøjer, som vi afhænger af.", + "DonationNextStep": "Efter udførsel bedes du vende tilbage til denne side for at indtaste din Emby Premiere nøgle, som du modtager på email.", + "HeaderRunningTasks": "Kørende opgaver", + "ButtonUpdateNow": "Opdater nu", + "PleaseUpdateManually": "Venligst sluk Emby server, og installer nyeste version.", + "ServerUpToDate": "Emby serveren er opdateret", + "MessagePleaseRestartServerToFinishUpdating": "Genstart venligt serveret for at afslutte opdateringen.", + "LabelDownMixAudioScale": "Forøg lydstyrke ved nedmiksning:", + "LabelDownMixAudioScaleHelp": "Forøg lydstyrken når der nedmikses. Sæt værdien til 1 for at beholde den originale lydstyrke.", + "HeaderForgotKey": "Glemt nøgle", + "LabelSupporterEmailAddress": "Den e-mailadresse , du brugte da du købte nøglen.", + "ButtonRetrieveKey": "Hent nøgle", + "LabelSupporterKey": "Emby Premiere nøgle (indsæt fra email):", + "LabelSupporterKeyHelp": "Indtast din Emby Premiere nøgle for at nyde godt af yderligere fordele.", + "MessageInvalidKey": "Emby Premiere nøgle mangler eller er ugyldig.", + "ErrorMessageInvalidKey": "For at registrere præmium-indhold, skal du også have et aktivt Emby Premiere abonnement.", + "LabelSkipIfGraphicalSubsPresent": "Spring over, hvis videoen allerede indeholder indlejrede undertekster", + "LabelSkipIfGraphicalSubsPresentHelp": "Ved at bruger tekstbaserede undertekster kan du få en mere effektive levering og nedsætte sandsynligheden for transkodning.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Undlad hvis standardlydsporet er det samme sprog", + "LabelSkipIfAudioTrackPresentHelp": "Angiv ikke dette for at sikre at alle videoer har undertekster, uanset hvilket sprog lydsporet anvender.", + "SendMessage": "Send besked", + "HeaderSendMessage": "Send besked", + "ButtonSend": "Send", + "LabelMessageText": "Beskedtekst:", + "LabelMessageTitle": "Titel på besked", + "ButtonEditOtherUserPreferences": "Rediger denne brugers profil, billede og personlige indstillinger.", + "LabelLoginDisclaimer": "Login ansvarsfraskrivelse:", + "LabelLoginDisclaimerHelp": "Dette bliver vist i bunden af loginsiden.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Api nøgler", + "HeaderApiKeysHelp": "Eksterne applikationer skal have en Api nøgle for at kunne kommunikere med Emby. Nøgler udstedes ved at logge ind med en Emby konto, eller ved manuelt at tildele applikationen en nøgle.", + "HeaderApiKey": "Api nøgle", + "HeaderResumeSettings": "Indstillinger for fortsæt", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Aktivitet", + "ButtonPurchase": "Køb", + "HeaderInstall": "Installer", + "LabelSelectVersionToInstall": "Vælg hvilken version der skal installeres:", + "LinkLearnMoreAboutSubscription": "Lær om Emby Premiere", + "MessagePluginRequiresSubscription": "Dette plugin påkræver et aktivt Emby Premiere abonnement efter den gratis 14 dages prøveperiode.", + "MessagePremiumPluginRequiresMembership": "Dette plugin påkræver et aktivt Emby Premiere abonnement for at købe efter den gratis 14 dages prøveperiode.", + "HeaderDeveloperInfo": "Information om udvikleren", + "HeaderRevisionHistory": "Revisionshistorik", + "ButtonViewWebsite": "Besøg hjemmeside", + "OptionSaveMetadataAsHidden": "Gem metadata og billeder som skjulte filer", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Lær mere om Emby Connect", + "LabelDateAddedBehavior": "Dato tilføjet opførsel for nyt indhold:", + "OptionDateAddedImportTime": "Brug datoen for indskanning", + "OptionDateAddedFileTime": "Brug filen oprettelsesdato", + "LabelDateAddedBehaviorHelp": "Hvis der findes en metadata-værdi, vil den altid blive brugt før nogle af ovenstående muligheder.", + "HeaderLibrarySettings": "Biblioteksindstillinger", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Kamera upload sti:", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Skab en undermappe for hver enhed", + "LabelCreateCameraUploadSubfolderHelp": "Bestemte mapper kan tildeles til enheden, hvis der klikkes på den på enhedssiden.", + "LabelCustomDeviceDisplayNameHelp": "Angiv en brugerdefineret navn. hvis der ikke angives et navn, bruges det navn enheden sender.", + "TabParentalControl": "Forældrekontrol", + "HeaderAccessSchedule": "Adgangsskema", + "HeaderAccessScheduleHelp": "Skab et adgangsskema for at begrænse adgangen til bestemte tidsrum.", + "HeaderLibraryAccess": "Adgang til biblioteker", + "HeaderChannelAccess": "Adgang til kanaler", + "LabelForgotPasswordUsernameHelp": "Indtast dit brugernavn, hvis du kan huske det.", + "TitlePasswordReset": "Nulstil adgangskode", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Bloker elementer med tags:", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Tillad download og synkronisering af medier", + "LabelNewUserNameHelp": "Brugernavne kan indeholde bogstaver (a-z), tal (0-9), bindestreg (-), apostrof (') og punktum (.)", + "HeaderThisUserIsCurrentlyDisabled": "Denne bruger er for øjeblikket deaktiveret.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Tillad konvertering af medier", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Tillad lydafspilning der kræver transkodning", + "OptionAllowVideoPlaybackTranscoding": "Tillad videoafspilning der kræver transkodning", + "OptionAllowVideoPlaybackRemuxing": "Tillad videoafspilning som kræver konvertering uden omkodning", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Begrænsning på bitrate ved internet streaming (Mbps):", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Aktiver konvertering med fuld hastighed", + "OptionEnableFullSpeedConversionHelp": "Som standard udføres synkronseringskonverteringer ved lav hastighed for at minimere ressourceforbrug.", + "OptionEnableAutomaticServerUpdates": "Aktiver automatiske serveropdateringer", + "HeaderTVSources": "TV kilder", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "IP-adresse for Tuner:", + "HeaderGuideProviders": "TV Guide Udbydere", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Postnummer:", + "LabelLineup": "Opstilling:", + "LabelImportOnlyFavoriteChannels": "Begræns til kanaler der er markeret som favoritter", + "ImportFavoriteChannelsHelp": "Hvis aktiveret, importeres der udelukkende kanaler der er markeret som favoritter på tuner-enheden.", + "HeaderDefaultRecordingSettings": "Originale Optageindstillinger", + "LabelDisplayName": "Visningsnavn:", + "OptionDownloadImagesInAdvance": "Download billeder på forhånd", + "OptionDownloadImagesInAdvanceHelp": "Som standard downloades billeder kun når de anmodes af en Emby app. Aktiver denne indstilling for at downloade alle billeder på forhånd, i mens nyt medie importeres. Dette resulterer muligvis i længere scanninger af bibliotek.", + "MessageThankYouForSupporting": "Tak for at du støtter Emby.", + "FileReadCancelled": "Læsning af filen er annulleret.", + "FileNotFound": "Filen blev ikke fundet.", + "FileReadError": "Der opstod en fejl i forsøget på at læse filen.", + "NoPluginConfigurationMessage": "Dette plugin har ingen indstillinger at konfigurere.", + "HeaderNewApiKey": "Ny Api nøgle", + "HeaderNewApiKeyHelp": "Giv applikationen tilladelse til at kommunikere med Emby.", + "MessageKeyEmailedTo": "Nøgle sendt med e-mail til {0}.", + "HeaderConfirmation": "Bekræftelse", + "MessageKeyUpdated": "Tak. Din Emby Premiere nøgle er opdateret.", + "MessageKeyRemoved": "Tak. Din Emby Premiere nøgle er fjernet.", + "TextEnjoyBonusFeatures": "Få bonus funktioner", + "MessageErrorLoadingSupporterInfo": "Der opstod en fejl under download af Emby Premiere informationer. Prøv venligst igen senere.", + "ValueTimeLimitSingleHour": "Tidsbegrænsning: 1 time", + "ValueTimeLimitMultiHour": "Tidsbegrænsning: {0} timer", + "General": "General", + "HeaderScreenSavers": "Pauseskærme", + "Reporting": "Rapportering", + "LabelStopping": "Standser", + "HeaderSelectCertificatePath": "Vælg certifikatsti", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Annulleret grundet server nedlukning)", + "LabelScheduledTaskLastRan": "Sidst kørt {0}, og tog {1}.", + "HeaderDeleteTaskTrigger": "Slet Task Trigger", + "MessageDeleteTaskTrigger": "Er du sikker på du ønsker at slette denne task trigger?", + "MessageNoPluginsDueToAppStore": "For at administrere plugins, skal du venligst benytte Emby web-app.", + "LabelVersionInstalled": "{0} installeret", + "HeaderSelectServerCachePath": "Vælg \"Server Cache Path\"", + "HeaderSelectTranscodingPath": "Vælg \"Transcoding Temporary Path\"", + "HeaderSelectMetadataPath": "Vælg Metadata Path", + "HeaderSelectServerCachePathHelp": "Vælg eller indtast stien som skal benyttes til serverens cache filer. Mappen må ikke være skrivebeskyttet.", + "HeaderSelectTranscodingPathHelp": "Vælg eller indtast stien som skal benyttes til midlertidige transkodningsfiler. Mappen må ikke være skrivebeskyttet.", + "HeaderSelectMetadataPathHelp": "Vælg eller indtast stien for hvor du ønsker at gemme din metadata. Mappen må ikke være skrivebeskyttet.", + "MessageConfirmRestart": "Er du sikker på du ønsker at genstarte Emby?", + "MessageConfirmShutdown": "Er du sikker på du ønsker at lukke Emby?", + "LabelLocalAccessUrl": "Lokal adgang (LAN): {0}", + "LabelRemoteAccessUrl": "Fjernadgang (WAN): {0}", + "LabelRunningOnPort": "Kører på http port {0}.", + "LabelRunningOnPorts": "Kører på http port {0}, og https port {1}.", + "LabelCurrentPath": "Nuværende sti:", + "HeaderSelectMediaPath": "Vælg mediesti", + "HeaderSelectPath": "Vælg sti", + "MessageDirectoryPickerInstruction": "Netværksstier kan indtastes manuelt i tilfælde af at netværksknappen ikke kan lokalisere dine enheder. Foreksempel, {0} eller {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD skal du muligvis konfigurere lager i dit FreeNAS Jail, før Emby kan tilgå det.", + "MessageDirectoryPickerLinuxInstruction": "For Linux på Arch Linux, CentOS, Debian, Fedora, OpenSuse eller Ubuntu skal du give Emby-systembrugeren minimum læseadgang til dine lagerlokationer.", + "MetadataManager": "Metadata-Manager", + "OptionBlockLiveTvChannels": "Live TV-kanaler", + "OptionBlockChannelContent": "Internet kanalindhold", + "ButtonRevoke": "Invalider", + "MessageConfirmRevokeApiKey": "Er du sikker på du ønsker at invalidere denne api nøgle? Applikationens forbindelse til Emby vil blive afbrudt øjeblikkeligt.", + "HeaderConfirmRevokeApiKey": "Invalider Api nøgle", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Accepter venligst tjenestevilkårene før du fortsætter.", + "HeaderChangeFolderType": "Ændre indholdstype", + "HeaderChangeFolderTypeHelp": "For at ændre type, skal du venligst fjerne og genopbygge biblioteket med den nye type.", + "HeaderAlert": "Advarsel", + "MessagePleaseRestart": "Genstart venligst for at afslutte opdateringen.", + "OptionHomeVideos": "Hjemmevideoer og billeder", + "OptionBooks": "Bøger", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Ranger dine fortrukne lokale metadatakilder i prioriteret rækkefølge. Den først fundne fil vil blive aflæst.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloadere:", + "LabelMetadataDownloadersHelp": "Aktiver og ranger dine fortrukne metadata downloadere i en prioriteret rækkefølge. Lavt rangerende downloadere bliver kun benyttet til at udfylde manglende information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Vælg de filformater du ønsker din metadata gemmes som.", + "LabelImageFetchers": "Billede-henter:", + "LabelImageFetchersHelp": "Aktiver og ranger dine fortrukne billede-hentere i en prioriteret rækkefølge.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Fjern medielokalisation", + "MessageConfirmRemoveMediaLocation": "Er du sikker på du ønsker at fjerne denne lokalisation?", + "LabelNewName": "Nyt navn:", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Omdøb", + "HeaderPluginInstallation": "Plugin installation", + "MessageTrialExpired": "Prøveperioden for denne funktion er udløbet", + "MessageTrialWillExpireIn": "Prøveperioden for denne funktion udløber om {0} dag(e)", + "ValuePriceUSD": "Pris: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Du er registreret til dette feature, og kan fortsat benytte det med et aktiv Emby Premiere abonnement.", + "HeaderSelectExternalPlayer": "Vælg ekstern afspiller", + "HeaderExternalPlayerPlayback": "Ekstern afspiller afspilning", + "HeaderThankYou": "Tak", + "HeaderSelectUploadPath": "Vælg upload sti", + "ErrorMessageStartHourGreaterThanEnd": "Slut tid skal være større end start tid.", + "MessagePluginConfigurationRequiresLocalAccess": "For at konfigurerer dette plugin log da venligst direkte ind på din lokale server.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Bøger er understøttet. gennemgå {0}Emby naming guide for bøger{1} for info.", + "MessageGamePluginRequired": "Kræver installation af GameBrowser tilføjelsen", + "HeaderUnlockApp": "Oplås app", + "MessagePaymentServicesUnavailable": "Betalingsservicen er ikke tilgængelig på nuværende tidspunkt. Prøv igen senere.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Er du sikker på at du vil slette denne enhed?", + "MessageConfirmDeleteGuideProvider": "Er du sikker på at du vil slette denne guide-udbyder?", + "HeaderDeleteProvider": "Slet Udbyder", + "ErrorAddingTunerDevice": "Der opstod en fejl under tilføjelse af tuner-enhed. Kontroller venligst at den er tilgængelig og prøv igen.", + "ErrorSavingTvProvider": "Der opstod en fejl i forsøget på at gemme udbyder. Kontroller venligst at den er tilgængelig og prøv igen.", + "ErrorGettingTvLineups": "Der opstod en fejl under download af tv-opstillinger. Kontroller venligst at dine informationer er korrekte og prøv igen.", + "MessageCreateAccountAt": "Opret en konto hos {0}", + "ErrorPleaseSelectLineup": "Vælg venligst en opstilling og prøv igen. Hvis ingen opstillinger er tilgængelige, så kontroller venligst at dit brugernavn, adgangskode og postnummer er korrekt.", + "ErrorValidatingSupporterInfo": "Der opstod en fejl under godkendelse af Emby Premiere informationer. Prøv venligst igen senere.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Tilføj bruger", + "HeaderEmailAddress": "E-mail-adresse", + "NumLocationsValue": "{0} mapper", + "PleaseAddAtLeastOneFolder": "Tilføj venligst som minimum en enkelt mappe til dette bibliotek ved at klikke på Tilføj-knappen.", + "ErrorAddingMediaPathToVirtualFolder": "Der opstod en fejl under tilføjelse af mediesti. Kontroller venligst at stien er gyldig og at Emby Server-processen har adgang til denne lokation.", + "ErrorAddingEmbyConnectAccount3": "Emby-kontoen er allerede forbundet til en eksisterende lokal bruger. En Emby-konto kan kun forbindes til én lokal bruger af gangen.", + "HeaderConfirmPluginInstallation": "Bekræft Installation af Plugin", + "PleaseConfirmPluginInstallation": "Klik venligst OK for at bekræfte at du har læst ovenstående og ønsker at fortsætte med installationen af plugin.", + "MessagePluginInstallDisclaimer": "Plugins fremstillet af medlemmer fra Emby-fællesskabet er en alle tiders måde at forbedre din oplevelse af Emby med yderligere features og fordele. Før installation, bedes du venligst være opmærksom på de effekter de kan have på din Emby Server; så som lange scantider på biblioteker, yderligere baggrundsbehandling og forringet systemstabilitet.", + "HardwareAccelerationWarning": "Aktivering af hardwareacceleration kan forårsage ustabilitet i nogle miljøer. Kontroller at dit operativsystem og videodriver er ajourført. Hvis du har problemer med at afspille video efter aktivering af dette, bliver du nød til at skifte tilbage til Auto.", + "ValueExample": "Eksempel: {0}", + "LabelFileOrUrl": "Fil eller url:", + "OptionEnableForAllTuners": "Aktiver for alle tuner-enheder", + "HeaderTuners": "Tunere", + "DrmChannelsNotImported": "Kanaler med DRM importeres ikke.", + "LabelAllowHWTranscoding": "Tillad hardware-omkodning", + "AllowHWTranscodingHelp": "Hvis aktiveret, omkoder tuneren streams on-the-fly. Dette kan hjælpe med at reducere omkodning der kræves af Emby Server.", + "MetadataSettingChangeHelp": "Ændring af indstillinger for metadata har effekt på indholdet der indlæses fremadrettet. For at genopfriske eksisterende indhold skal du åbne detajle-skærmen og klikke på opdater knappen, eller uføre en masseopdatering via metadata-manageren.", + "RecordingPathChangeMessage": "Ændring af optagelsesmappe migrerer ikke eksisterende optagelser fra den gamle lokation til den nye. Du bliver nød til at flytte dem manuelt, hvis det ønskes.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Valgfri. Overskriv den lokale IP-adresse som http-serveren bindes til. Hvis efterladt blank, bindes serveren til alle tilgængelige adresser. Ændring af denne værdi kræver en genstart af Emby Serveren.", + "SettingsWarning": "Ændring af disse værdier kan resultere i instabilitet eller forbindelsesfejl. Hvis du oplever fejl, anbefaler vi at du skifter til standardværdier.", + "OptionSaveMetadataAsHiddenHelp": "Ændring af dette vil blive anvendt på nyt metadata gemt fremadrettet. Allerede eksisterende metadata-filer opdateres næste gang de gemmes af Emby Server.", + "EnablePhotos": "Aktiver fotos", + "EnablePhotosHelp": "Fotos bliver opdaget og vist sammen med andre mediefiler.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Aktiver fejlfindingslogning", + "OptionEnableExternalContentInSuggestions": "Aktiver eksternt indhold i anbefalinger", + "OptionEnableExternalContentInSuggestionsHelp": "Tillad at internet-trailers og live-tv-programmer bliver inkluderet i det anbefalede indhold.", + "LabelOptionalNetworkPath": "(Valgfri) Delt netværksmappe:", + "LabelOptionalNetworkPathHelp": "Hvis denne mappe er delt på netværket kan du, ved at dele stien til netværksdrevet, tillade Emby apps på andre enheder at tilgå mediefiler direkte.", + "SynologyUpdateInstructions": "Log venligst ind på DSM og gå til Pakkecenter for at opdatere.", + "HeaderRecordingPostProcessing": "Efterbehandling af Optagelse", + "LabelPostProcessorArguments": "Kommandolinjeargumenter til efterbehandler:", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Efterbehandlingsapplikation:", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Flet automatisk serier der er spredt over adskillige mapper", + "OptionAutomaticallyGroupSeriesHelp": "Hvis aktiveret, vil serier der er spredt over adskillige mapper i dette bibliotek blive samlet i én enkelt serie.", + "WhenDidYouPurchaseApp": "Hvor købte du oprindeligt denne app?", + "PreferEmbeddedTitlesOverFileNames": "Foretræk indlejrede titler over filnavne", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner-setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Find Mine Enheder", + "MessagePleaseWait": "Vent venligst. Dette kan tage et minut.", + "DetectingDevices": "Finder enheder", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Genopfrisk automatisk metadata fra internettet:", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Hver {0} dage", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "Hvis dit certifikat kræver et kodeord, indtast det venligst her.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby serveren skal genstartes efter et plugin er installeret.", + "PluginInstalledMessage": "Plugin er succesfuldt genstartet. Emby serveren skal genstartes for ændringerne træder i kraft.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} abonnement købt via {2} udløber {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Annuller Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "Jeg ved det, annuller det alligevel", + "ButtonDontCancelSub": "Behold Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Samtidige streams:", + "SimultaneousConnectionLimitHelp": "Det maksimale antal tilladte steams på samme tid. Indtast 0 for ubegrænset.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Konfigurer fjernforbindelse", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN netværk:", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Fortrukken, men ikke krævet", + "RequiredForAllRemoteConnections": "Krævet for alle fjernforbindelser", + "HandledByProxy": "Håndteret af reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Aktiver hardware acceleration når muligt:", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Tillad denne bruger at skifte adgangskode og profilbillede", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/de.json b/strings/de.json new file mode 100644 index 0000000..da6f92d --- /dev/null +++ b/strings/de.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Du bist fertig!", + "ThisWizardWillGuideYou": "Dieser Assistent wird dich durch den Emby Server-Einrichtungsprozess führen. Um zu beginnen, wähle bitte deine bevorzugte Sprache.", + "HeaderCreateYourFirstUser": "Lege deinen ersten Benutzer an", + "ButtonQuickStartGuide": "Schnellstartanleitung", + "MoreUsersCanBeAddedLater": "Weitere Benutzer können später in den Emby Server-Einstellungen hinzugefügt werden.", + "UserProfilesIntro": "Emby bietet von Haus aus die Unterstützung von Benutzerprofilen, die ihre eigenen Anzeigeeinstellungen, Altersfreigaben und Spielstände von Medien kontrollieren können.", + "WizardCompleted": "Das ist alles, was wir bis hierher brauchen. Emby hat mit dem Scannen Deiner Medienbibliothek begonnen. Sieh dir einige unserer Apps an und klicke dann auf Fertig stellen, um das Server-Dashboard anzuzeigen.", + "MessagePleaseAcceptTermsOfService": "Bitte akzeptiere die Nutzungsbedingungen und Datenschutzbestimmungen bevor du fortfährst.", + "OptionIAcceptTermsOfService": "Ich akzeptiere die Nutzungsbedingungen", + "SeeOurHwaGuide": "Schau in unseren {0}Einrichtungshinweisen zur Hardwarebeschleunigung{1} nach.", + "HeaderEmbyServerReleaseNotes": "Emby Server-Versionshinweise", + "AllowSubtitleDownloading": "Download von Untertiteln zulassen", + "AllowSubtitleManagement": "Löschen vorhandener Untertitel zulassen", + "NewUserNameHelp": "So wird der Benutzer auf deinem Server erscheinen.", + "ChapterMarkers": "Kapitelmarker", + "LabelThumbnailImagesInterval": "Intervall für Miniaturbilder", + "ThumbnailImagesIntervalHelp": "Mehr Miniaturansichten führen zu einem besseren Erlebnis, erfordern aber mehr Speicherplatz und Zeit für die Erstellung der Bilder.", + "LabelAuthProvider": "Authentifizierungsprovider", + "AuthProviderHelp": "Administratoren verwenden immer den Standard-Emby-Provider, um sicherzustellen, dass sie sich niemals aussperren.", + "HeaderNewUser": "Neuer Benutzer", + "ChangeServerDisplayName": "Angezeigten Server-Namen ändern", + "ShowAdvancedSettings": "Erweiterte Einstellungen anzeigen", + "ChangingMetadataImageSettingsNewContent": "Veränderungen an den Einstellungen der Metadaten oder des Bildmaterials werden nur bei neuen Inhalten in der Bibliothek übernommen. Um die Veränderungen auch bei vorhandenen Inhalten zu übernehmen, müssen die Metadaten manuell aktualisiert werden.", + "AllowRemoteAccess": "Remote-Verbindungen zu diesem Emby Server zulassen.", + "AllowRemoteAccessHelp": "Wenn deaktiviert, werden alle Remote-Verbindungen blockiert.", + "Alerts": "Meldungen", + "LabelTrackTitleDisplay": "Anzeige eingebetteter Spurtitel", + "GenerateUserFriendlyTrackTitles": "Anwenderfreundliche Titel mittels Titelinformationen erzeugen", + "PreferOriginalTrackTitles": "Eingebettete Titel bevorzugen", + "TrackTitleDisplayHelp": "Auswahl des Anzeigetitels der eingebetteten Audio- und Untertitelspuren. Es wird nicht empfohlen, eingebettete Titel zu bevorzugen, es sei denn, Du bearbeitest eingebettete Titelinformationen manuell.", + "EnableTranscodingThrottle": "Drosselung aktivieren", + "EnableTranscodingThrottleHelp": "Emby wird die Transkodier-Geschwindigkeit dynamisch anpassen, um die Prozessor-Auslastung zu reduzieren.", + "HeaderTypeMetadataDownloaders": "{0} Metadaten-Dienste", + "HeaderTypeImageFetchers": "{0}-Bildbeschaffer", + "HeaderImageOptions": "Bildeinstellungen", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Mit PayPal registrieren", + "LabelSyncTempPath": "Verzeichnis für temporäre Dateien", + "LabelSyncTempPathHelp": "Lege ein eigenes Arbeitsverzeichnis fest. Konvertierte Medien werden während des Konvertierungsprozesses dort gespeichert.", + "LabelCustomCertificatePath": "Eigener SSL-Zertifikatspfad", + "LabelCustomCertificatePathHelp": "Pfad zu einer PKCS #12 -Datei, die ein Zertifikat und einen privaten Schlüssel enthält, mit der sich TLS-Unterstützung für eine eigene Domain aktivieren lässt.", + "HeaderSetupLibrary": "Medienbibliotheken einrichten", + "LabelTimeLimitHours": "Zeitlimit (Stunden)", + "HeaderPreferredMetadataLanguage": "Bevorzugte Metadatensprache", + "LabelSaveLocalMetadata": "Bildmaterial in Medienordnern speichern", + "LabelSaveLocalMetadataHelp": "Bei der Speicherung von Artwork in den Medienverzeichnissen werden dort Bilddateien (Cover, Logoart etc.) neben der Mediendatei abgelegt, so dass sie auch ausserhalb von Emby erreicht werden können und nutzbar sind. Wenn deaktiviert, werden diese Bilddateien im Server-Metadata Verzeichnis gespeichert.", + "TabAccess": "Zugriff", + "HeaderDeviceAccess": "Gerätezugriff", + "OptionEnableAccessFromAllDevices": "Zugriff von allen Geräten erlauben", + "OptionEnableAccessToAllChannels": "Zugriff auf alle Kanäle erlauben", + "OptionEnableAccessToAllLibraries": "Zugriff auf alle Bibliotheken erlauben", + "DeviceAccessHelp": "Durch das Filtern des Gerätezugriffs der Benutzer wird verhindert, dass sie neue Geräte verwenden, bis sie hier genehmigt wurden.", + "LabelDisplayMissingEpisodesWithinSeasons": "Fehlende Episoden innerhalb von Staffeln anzeigen", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Dies muss auch für Serienbibliotheken in den Emby-Server-Einstellungen aktiviert werden.", + "ImportMissingEpisodesHelp": "Wenn aktiviert, werden Informationen über fehlende Episoden in deine Emby-Datenbank importiert und innerhalb der Staffeln und Serien angezeigt. Dies kann zu deutlich längeren Bibliothek-Scans führen.", + "MessageEnablingOptionLongerScans": "Die Aktivierung dieser Option kann erheblich längere Bibliotheks-Scans verursachen.", + "LabelMaxParentalRating": "Höchste erlaubte Altersfreigabe", + "MaxParentalRatingHelp": "Inhalt mit einer höheren Altersfreigabe wird dem Benutzer nicht angezeigt.", + "LibraryAccessHelp": "Wähle die Medienordner aus, die du mit diesem Benutzer teilen möchtest. Administratoren können alle Ordner mit dem Metadaten-Manager bearbeiten.", + "ChannelAccessHelp": "Wähle die Kanäle aus, die du mit diesem Benutzer teilen möchtest. Administratoren können alle Kanäle mit dem Metadaten-Manager bearbeiten.", + "ImageUploadAspectRatioHelp": "1:1-Seitenverhältnis empfohlen. Nur JPG/PNG.", + "AlreadyPaidHelp1": "Wenn du bereits für die Installation einer älteren Version von Media Browser für Android gezahlt hast, ist es nicht nötig für eine Freischaltung erneut zu zahlen. Betätige 'OK', um uns eine E-Mail an {0} zu senden. Wir schalten die App dann für dich frei.", + "AlreadyPaidHelp2": "Du hast Emby Premiere bereits erworben? Dann beende diesen Dialog und richte Emby Premiere in den Emby-Server-Einstellungen unter 'Hilfe -> Emby Premiere' ein. Die Freischaltung erfolgt anschließend automatisch.", + "TabMyPlugins": "Meine Plugins", + "TabCatalog": "Katalog", + "HeaderAutomaticUpdates": "Automatische Updates", + "Standard": "Standard", + "TabSupporterKey": "Emby-Premiere-Schlüssel", + "OptionHideUserLocal": "Diesen Benutzer auf Anmeldebildschirmen im lokalen Netzwerk verbergen", + "OptionHideUserRemote": "Diesen Benutzer auf Anmeldebildschirmen bei Remoteverbindungen verbergen", + "OptionHideUserFromLoginHelp": "Hilfreich für private oder versteckte Administrator-Konten. Der Benutzer muss sich manuell mit der Eingabe des Benutzernamens und Passworts anmelden.", + "HideFromUnusedDevices": "Diesen Benutzer auf Anmeldebildschirmen verbergen, sofern er sich auf diesen Geräten noch nie angemeldet hat", + "OptionDisableUser": "Diesen Benutzer sperren", + "OptionDisableUserHelp": "Wenn deaktiviert, lässt der Server keine Verbindungen von diesem Benutzer zu. Bestehende Verbindungen werden sofort beendet.", + "OptionAllowUserToManageServer": "Diesem Benutzer gestatten, den Server zu verwalten", + "HeaderFeatureAccess": "Zugriff auf Funktionen", + "OptionAllowMediaPlayback": "Medienwiedergabe zulassen", + "AllLibraries": "Alle Bibliotheken", + "HeaderAllowMediaDeletionFrom": "Medienlöschung zulassen von", + "LiveTVRecordingManagement": "Verwaltung von Live-TV-Aufnahmen", + "OptionAllowRemoteControlOthers": "Fernsteuerung anderer Benutzer zulassen", + "OptionAllowRemoteSharedDevices": "Fernsteuerung geteilter Geräte zulassen", + "OptionAllowRemoteSharedDevicesHelp": "DLNA-Geräte werden gemeinsam genutzt, bis ein Benutzer die Steuerung übernimmt.", + "OptionAllowLinkSharing": "Teilen in sozialen Netzwerken zulassen", + "OptionAllowLinkSharingHelp": "Es werden nur Webseiten mit Medieninformationen geteilt. Medien hingegen werden niemals öffentlich geteilt. Die geteilten Inhalte sind nur zeitlich begrenzt zugänglich und werden nach {0} Tagen ungültig.", + "OptionRelease": "Offizielle Veröffentlichung", + "LabelAllowServerAutoRestartPlugin": "Automatischen Neustart des Servers zur Anwendung von Plugin-Updates zulassen", + "LabelAllowServerAutoRestartServerOrPlugin": "Automatischen Neustart des Servers zulassen, um Server- oder Plugin-Updates anzuwenden", + "LabelAllowServerAutoRestartHelp": "Der Server startet nur in benutzerfreien Leerlaufzeiten neu.", + "LabelRunServerAtStartup": "Server beim Hochfahren starten", + "LabelRunServerAtStartupHelp": "Dies wird das Emby Tray Icon während der Windows-Anmeldung starten und in der Taskleiste anzeigen. Wenn du einen Windows-Dienst eingerichtet hast, dann lasse diese Einstellung deaktiviert und konfiguriere den Dienst so, dass er sich beim Systemstart aktiviert.", + "ButtonSelectDirectory": "Verzeichnis wählen", + "LabelCachePath": "Cache-Pfad", + "DefaultMetadataLangaugeDescription": "Das sind deine Standardwerte, die sich bibliotheksspezifisch verändern lassen.", + "LabelCachePathHelp": "Lege ein eigenes Verzeichnis für den Server-Cache fest, bspw. um dort Bilder zwischenzuspeichern. Lasse dieses Feld leer, um die Standardeinstellung zu verwenden.", + "LabelDefaultRecordingFolder": "Standard-Aufnahmeordner", + "LabelMovieRecordingFolder": "Ordner für Filmaufnahmen", + "LabelSeriesRecordingFolder": "Aufnahmeordner für Serien", + "SeriesRecordingFolderHelp": "(Optional). Wähle eine Bibliothek aus, in der Serien-Aufnahmen gespeichert werden sollen. Es muss sich dabei um eine Bibliothek handeln, die du in der Emby-Bibliothekseinrichtung erstellt hast, wobei der Inhaltstyp auf TV-Sendungen oder gemischte Inhalte eingestellt ist.", + "HeaderProgramData": "Programmdaten", + "RecordingFolderHelp": "Wähle eine Bibliothek aus, in der Aufnahmen gespeichert werden sollen. Es muss sich dabei um eine Bibliothek handeln, die du in der Emby-Bibliothekseinrichtung erstellt hast, wobei der Inhaltstyp auf gemischte Inhalte eingestellt sein muss.", + "MovieRecordingFolderHelp": "(Optional). Wählen eine Bibliothek aus, in der Filmaufnahmen gespeichert werden sollen. Es muss sich um eine Bibliothek handeln, die Du in der Emby-Bibliothekseinrichtung erstellt hast, wobei der Inhaltstyp auf Filme oder gemischte Inhalte eingestellt ist.", + "LabelMetadataPath": "Metadaten-Pfad", + "LabelMetadataPathHelp": "Gib im folgenden den Speicherort für heruntergeladene Grafiken und Metadaten an oder leere dieses Feld, um zur Standardeinstellung zurückzukehren. Wenn Du dies änderst, musst Du den Inhalt manuell vom alten Speicherort zum neuen Speicherort migrieren. Wenn Du den Inhalt des Metadatenordners manuell änderst, musst Du die geplante Aufgabe {0}Scan des Metadatenordners{1} ausführen.", + "LabelTranscodingTempPath": "Temporärer Pfad für die Transkodierung", + "LabelTranscodingTempPathHelp": "Dieses Verzeichnis enthält vom Transcoder genutzte Arbeitsdateien. Wähle einen eigenen Pfad oder lasse das Feld frei, um den Standardspeicherort im Server-Datenverzeichnis zu verwenden.", + "GenerateVideoPreviewThumbnailsHelp": "Video-Vorschaubilder zeigen eine Vorschau während der Suche in unterstützten Anwendungen. Die Erstellung der Vorschaubilder kann lange Zeit dauern, eine hohe CPU-Auslastung verursachen und zusätzlichen Speicherplatz verbrauchen.", + "AsAScheduledTask": "als geplante Aufgabe", + "AsAScheduledTaskAndMediaAdded": "als geplante Aufgabe und wenn Medien hinzugefügt werden", + "ButtonRefreshGuideData": "TV-Programmführer-Daten aktualisieren", + "LabelNumberOfGuideDays": "TV-Programmführer-Daten für die angegeben Anzahl an Tagen herunterladen", + "LabelNumberOfGuideDaysHelp": "Das Laden zusätzlicher Programmdaten bietet einen besseren Überblick und die Möglichkeit weiter in die Zukunft zu planen, dauert aber länger. 'Auto' wählt einen Wert auf Grundlage der Kanalanzahl. Bitte beachte: Unabhängig von der gewählten Tageszahl müssen die Angaben auch in den Quelldaten der Anbieter vorhanden sein, um sich laden zu lassen. Einige Programmdatenquellen bieten lediglich Daten für die nächsten 24 Stunden. Emby Guide Data unterstützt bis zu 14 Tage an Programmführerdaten.", + "HeaderFetchImages": "Bilder abrufen", + "LabelMaxBackdropsPerItem": "Maximale Anzahl an Hintergründen pro Element", + "LabelMaxScreenshotsPerItem": "Maximale Anzahl an Screenshots pro Element", + "LabelMinBackdropDownloadWidth": "Minimale Breite für herunterzuladende Hintergründe", + "LabelMinScreenshotDownloadWidth": "Minimale Breite für herunterzuladende Screenshots", + "ButtonAddScheduledTaskTrigger": "Auslöser hinzufügen", + "ButtonAdd": "Hinzufügen", + "LabelTriggerType": "Auslöser-Typ", + "OptionOnInterval": "Nach einem Intervall", + "OptionAfterSystemEvent": "Nach einem Systemereignis", + "LabelDay": "Tag", + "LabelTime": "Zeit", + "LabelEvent": "Ereignis", + "OptionWakeFromSleep": "Aufwachen aus Standbymodus", + "Every": "Jeder", + "LabelEnableRealtimeMonitor": "Echtzeitüberwachung zulassen", + "LabelEnableRealtimeMonitorHelp": "Änderungen an Dateien werden, auf unterstützten Dateisystemen, sofort übernommen.", + "Community": "Community", + "HeaderEmbyNews": "Emby-Neuigkeiten", + "LabelFriendlyServerName": "Benutzerfreundlicher Servername", + "LabelFriendlyServerNameHelp": "Dieser Name dient dazu, diesen Server zu identifizieren. Falls leergelassen, wird der Computername benutzt.", + "LabelPreferredDisplayLanguage": "Bevorzugte Anzeigesprache", + "LabelPreferredDisplayLanguageHelp": "Die Übersetzung von Emby ist ein laufendes Projekt.", + "LabelReadHowYouCanContribute": "Erfahre, wie du beitragen kannst.", + "LabelCustomCss": "Benutzerdefiniertes CSS", + "LabelCustomCssHelp": "Wende deine eigene, benutzerdefinierte CSS für das Webinterface an.", + "LabelLocalHttpServerPortNumber": "Lokale HTTP Portnummer", + "LabelLocalHttpServerPortNumberHelp": "Die TCP Portnummer, auf die der Emby-HTTP-Server hört.", + "LabelPublicHttpPort": "Öffentliche HTTP Portnummer", + "LabelPublicHttpPortHelp": "Die öffentliche Portnummer sollte einem lokalen HTTP Port zugewiesen werden.", + "LabelPublicHttpsPort": "Öffentliche HTTPS Portnummer", + "LabelPublicHttpsPortHelp": "Die öffentliche Portnummer sollte einem lokalen HTTPS Port zugewiesen werden.", + "RequireHttps": "Erzwinge HTTPS für externe Verbindungen", + "RequireHttpsHelp": "Wenn aktiviert, werden HTTP-Verbindungen zu HTTPS weitergeleitet.", + "LabelHttpsPort": "Lokale HTTPS Portnummer", + "LabelHttpsPortHelp": "Die TCP Portnummer an die Embys HTTPS Verbindungen gebunden werden sollen.", + "LabelEnableAutomaticPortMap": "Automatisches Portmapping aktivieren", + "LabelEnableAutomaticPortMapHelp": "Versuche automatisch den öffentlichen Port dem lokalen Port mit Hilfe von UPnP zuzuordnen. Dies funktioniert mit einigen Router Modellen möglicherweise nicht.", + "LabelExternalDDNS": "Externe Domain", + "LabelExternalDDNSHelp": "Wenn Du einen dynamischen DNS oder Domänennamen nutzt, so sind diese hier ohne Protokoll oder Port einzugeben. Emby-Apps werden diese Angaben für Verbindungen von außerhalb des lokalen Netzes verwenden. Das Feld ist auszufüllen, wenn ein eigenes SSL-Zertifikat genutzt wird. Beispiel: meinedomain.de.", + "LabelMinResumePercentage": "Minimaler Prozentwert für Fortsetzung", + "LabelMaxResumePercentage": "Maximaler Prozentwert für Fortsetzung", + "LabelMinResumeDuration": "Minimale Dauer für Fortsetzung (Sekunden)", + "LabelMinResumePercentageHelp": "Titel werden als nicht abgespielt angenommen, wenn sie vor dieser Zeit gestoppt werden", + "LabelMaxResumePercentageHelp": "Titel werden als komplett abgespielt angenommen, wenn sie nach dieser Zeit gestoppt werden", + "LabelMinResumeDurationHelp": "Titel, die kürzer als dieser Wert sind, werden nicht fortsetzbar sein", + "HeaderStatus": "Status", + "Subscriptions": "Abonnements", + "LabelEndingEpisodeNumber": "Letzte Episodennummer", + "LabelEndingEpisodeNumberHelp": "Nur erforderlich für Dateien mit mehreren Episoden", + "HeaderSupportTheTeam": "Unterstütze das Emby-Team", + "HeaderSupportTheTeamHelp": "Helfe durch den Kauf von Emby Premiere, die fortlaufende Entwicklung dieses Projekts sicherzustellen. Ein Teil der Einnahmen geht an andere kostenfreie Programme, auf die wir angewiesen sind.", + "DonationNextStep": "Nach Fertigstellung kehre bitte hierher zurück und gib den Emby-Premiere-Schlüssel ein, den du per E-Mail erhalten wirst.", + "HeaderRunningTasks": "Laufende Aufgaben", + "ButtonUpdateNow": "Jetzt aktualisieren", + "PleaseUpdateManually": "Bitte Emby Server herunterfahren und die neueste Version installieren.", + "ServerUpToDate": "Emby Server ist auf dem aktuellsten Stand", + "MessagePleaseRestartServerToFinishUpdating": "Bitte den Server neustarten, um die Aktualisierungen abzuschließen.", + "LabelDownMixAudioScale": "Audio-Verstärkung bei Downmixing", + "LabelDownMixAudioScaleHelp": "Audio-Lautstärke beim Downmixing erhöhen. Setze auf 1, um den ursprünglichen Lautstärkewert zu erhalten.", + "HeaderForgotKey": "Schlüssel vergessen", + "LabelSupporterEmailAddress": "Die E-Mail-Adresse, die zum Kauf des Schlüssels benutzt wurde.", + "ButtonRetrieveKey": "Schlüssel abrufen", + "LabelSupporterKey": "Emby-Premiere-Schlüssel (aus E-Mail einfügen)", + "LabelSupporterKeyHelp": "Gib deinen Emby-Premiere-Schlüssel ein um zusätzliche Vorteile zu genießen.", + "MessageInvalidKey": "Emby-Premiere-Schlüssel fehlt oder ist ungültig.", + "ErrorMessageInvalidKey": "Um einen Premium-Inhalt freizuschalten, wird ein aktives Emby-Premiere-Abo benötigt.", + "LabelSkipIfGraphicalSubsPresent": "Überspringen, falls das Video bereits eingebettete Untertitel enthält, die der Download-Sprache entsprechen", + "LabelSkipIfGraphicalSubsPresentHelp": "Das Vorhalten von textbasierten Untertiteln führt zu einer effizienteren Anzeige und verringert die Wahrscheinlichkeit einer Videotranskodierung.", + "HeaderDownloadLanguages": "Herunterzuladende Sprachen", + "LabelSkipIfAudioTrackPresent": "Überspringen, falls die Standard-Tonspur bereits der herunterzuladenden Sprache entspricht", + "LabelSkipIfAudioTrackPresentHelp": "Deaktivieren, um sicherzustellen, dass alle Videos Untertitel haben, unabhängig von der Audiosprache.", + "SendMessage": "Sende Nachricht", + "HeaderSendMessage": "Sende Nachricht", + "ButtonSend": "Senden", + "LabelMessageText": "Nachrichtentext", + "LabelMessageTitle": "Nachrichtentitel", + "ButtonEditOtherUserPreferences": "Bearbeite dieses Benutzerprofil, das Benutzerbild und die persönlichen Einstellungen.", + "LabelLoginDisclaimer": "Anmelde-Haftungsausschluss", + "LabelLoginDisclaimerHelp": "Dies wird am unteren Rand des Anmeldebildschirms angezeigt.", + "HeaderTranscodingTemporaryFiles": "Temporäre Transkodierdateien", + "HeaderApiKeys": "API-Schlüssel", + "HeaderApiKeysHelp": "Externe Anwendungen benötigen einen API-Schlüssel, um mit dem Emby Server zu kommunizieren. API-Schlüssel werden bei der Anmeldung mit einem Emby-Zugang vergeben oder durch eine manuelle Schlüsselfreigabe für die Anwendung erzeugt.", + "HeaderApiKey": "API-Schlüssel", + "HeaderResumeSettings": "Wiederaufnahme-Einstellungen", + "HeaderFetcherSettings": "Abrufeinstellungen", + "HeaderActivity": "Aktivitäten", + "ButtonPurchase": "Kaufen", + "HeaderInstall": "Installieren", + "LabelSelectVersionToInstall": "Wähle die Version für die Installation", + "LinkLearnMoreAboutSubscription": "Mehr über Emby Premiere erfahren", + "MessagePluginRequiresSubscription": "Nach einem Testzeitraum von 14 Tagen benötigt dieses Plugin ein Emby-Premiere-Abonnement.", + "MessagePremiumPluginRequiresMembership": "Nach einem Testzeitraum von 14 Tagen benötigt dieses Plugin ein aktives Emby-Premiere-Abonnement.", + "HeaderDeveloperInfo": "Entwicklerinformationen", + "HeaderRevisionHistory": "Versionsverlauf", + "ButtonViewWebsite": "Besuche die Website", + "OptionSaveMetadataAsHidden": "Speichere Metadaten und Bilder als versteckte Dateien", + "LabelConnectEmail": "Emby Connect-E-Mail-Adresse", + "LabelConnectEmailHelp": "Optional kannst du diesen lokalen Benutzer mit einem bestehenden Emby-Connect Konto verknüpfen, um ihm einen einfachen Anmeldezugang von jeder Emby-App aus zu ermöglichen, ohne die IP-Adresse des Servers kennen zu müssen.", + "ButtonLearnMoreAboutEmbyConnect": "Mehr über Emby Connect erfahren", + "LabelDateAddedBehavior": "Verhalten für Hinzufügedatum bei neuen Inhalten", + "OptionDateAddedImportTime": "Datum des Einlesens in die Bibliothek verwenden", + "OptionDateAddedFileTime": "Benutze das Erstellungsdatum der Datei", + "LabelDateAddedBehaviorHelp": "Wenn in den Metadaten bereits entsprechende Werte vorhanden sind, werden dieser immer gegenüber anderen Optionen bevorzugt.", + "HeaderLibrarySettings": "Bibliothekseinstellungen", + "HeaderAutomaticSubtitleDownloads": "Automatisches Herunterladen von Untertiteln", + "HeaderCameraUploadHelp": "Emby-Apps können Fotos von dem Gerät, auf dem sie aufgenommen wurden, automatisch auf den Emby Server hochladen.", + "LabelCameraUploadPath": "Kamera-Upload-Pfad", + "LabelCameraUploadPathHelp": "Wähle einen eigenen Upload-Pfad aus. Diese Einstellung überschreibt die in den Kamera-Upload-Einstellungen festgelegte Standardeinstellung. Falls leergelassen, wird ein Standardverzeichnis verwendet. Bei Nutzung eines eigenen Verzeichnisses muss dieses in den Bibliothekseinstellungen als Bibliothek hinzugefügt werden.", + "DefaultCameraUploadPathHelp": "Wähle ein benutzerdefiniertes Upload-Verzeichnis aus. Falls leergelassen, wird ein Standardverzeichnis verwendet. Bei Nutzung eines eigenes Verzeichnisses muss dieses ebenso in den Bibliothekseinstellungen als Bibliothek hinzugefügt werden.", + "LabelCreateCameraUploadSubfolder": "Erstelle ein Unterverzeichnis für jedes Gerät", + "LabelCreateCameraUploadSubfolderHelp": "Bestimmte Verzeichnisse lassen sich einem Gerät zuordnen, indem auf der Geräteseite darauf geklickt wird.", + "LabelCustomDeviceDisplayNameHelp": "Lege einen individuellen Anzeigenamen fest oder lasse das Feld leer, um den vom Gerät übermittelten Namen zu nutzen.", + "TabParentalControl": "Kindersicherung", + "HeaderAccessSchedule": "Zugriffsplan", + "HeaderAccessScheduleHelp": "Einen Zugangszeitplan anlegen, um den Zugang auf bestimmte Zeiten zu begrenzen.", + "HeaderLibraryAccess": "Bibliothekszugriff", + "HeaderChannelAccess": "Zugriff auf Kanäle", + "LabelForgotPasswordUsernameHelp": "Bitte gib deinen Benutzernamen ein, falls du dich daran erinnerst.", + "TitlePasswordReset": "Passwort zurücksetzen", + "HeaderBlockItemsWithNoRating": "Blockiere Inhalte mit keiner oder nicht erkannter Altersfreigabe", + "LabelBlockContentWithTags": "Beschränke den Zugriff auf Inhalte mit Tags", + "LabelTagRestrictionMode": "Stichworte-Beschränkungsmodus", + "BlockItemsWithTheseTags": "Blockiere Inhalte mit diesen Stichworten", + "AllowItemsWithTheseTags": "Erlaube nur Inhalte mit diesen Stichworten", + "OptionAllowContentDownloading": "Erlaube Medien-Download", + "LabelNewUserNameHelp": "Benutzernamen können Zeichen (a-z), Zahlen (0-9), Striche (-), Unterstriche (_), Apostrophe (') und Punkte (.) enthalten", + "HeaderThisUserIsCurrentlyDisabled": "Dieser Benutzer ist momentan deaktiviert. Um den Benutzer zu aktivieren, verwende die Option unten auf der Seite.", + "OptionAllowSyncTranscoding": "Herunterladen von Dateien erlauben, die Transkodierung erfordern", + "AllowMediaConversion": "Erlaube Medienkonvertierung", + "AllowMediaConversionHelp": "Zugriff auf die Medienkonvertierungsfunktion erlauben oder verweigern.", + "OptionAllowAudioPlaybackTranscoding": "Transkodierung von Audio in ein kompatibles Format während der Medienwiedergabe zulassen, falls erforderlich", + "OptionAllowVideoPlaybackTranscoding": "Transkodierung von Video in ein kompatibles Format während der Medienwiedergabe zulassen, falls erforderlich", + "OptionAllowVideoPlaybackRemuxing": "Container-Formatwechsel während Medienwiedergabe erlauben, falls erforderlich", + "OptionAllowMediaPlaybackTranscodingHelp": "Einschränken des Zugangs zum Transkodieren bewirkt eine Deaktivierung der Qualitätsauswahl. Dies kann in Emby-Apps zu Abspielfehlern wegen nicht unterstützter Medienformate oder unzureichender Netzwerkbandbreite führen.", + "LabelRemoteClientBitrateLimit": "Limit für die Internet-Streaming-Datenrate (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Optionales Bitratenlimit pro Stream für alle Geräte außerhalb des Netzwerkes. Diese Einstellung limitiert die Streaming-Qualität, auch wenn der Nutzer eine höhere Qualität im Player ausgewählt hat. Dies ist nützlich, um zu verhindern, dass Geräte eine höhere Datenrate verwenden, als die Internetverbindung es zulässt. Die Einstellung kann zu erhöhter CPU-Last auf deinem Server führen, falls Videos in Echtzeit in eine niedrigere Bitrate zu transkodieren sind.", + "LabelUserRemoteClientBitrateLimitHelp": "Diese Einstellung überschreibt die globale Standardeinstellung, die in den erweiterten Einstellungen des Servers festgelegt wurde.", + "OptionEnableFullSpeedConversion": "Konvertierung mit voller Geschwindigkeit aktivieren", + "OptionEnableFullSpeedConversionHelp": "Standardmäßig werden Konvertierungen mit geringer Geschwindigkeit durchgeführt, um Ressourcen zu sparen.", + "OptionEnableAutomaticServerUpdates": "Aktiviere automatische Server-Aktualisierungen", + "HeaderTVSources": "TV-Quellen", + "HeaderAddTvSource": "TV-Quelle hinzufügen", + "LabelTunerIpAddress": "Tuner-IP-Adresse", + "HeaderGuideProviders": "Programmführer-Datenquellen", + "HeaderAddGuideSource": "Programmführer-Datenquelle hinzufügen", + "LabelZipCode": "PLZ", + "LabelLineup": "Aufstellung", + "LabelImportOnlyFavoriteChannels": "Beschränke auf favorisierte Kanäle", + "ImportFavoriteChannelsHelp": "Wenn aktiviert, werden nur auf dem Tuner favorisierte Kanäle importiert.", + "HeaderDefaultRecordingSettings": "Standard-Aufnahmeeinstellungen", + "LabelDisplayName": "Anzeigename", + "OptionDownloadImagesInAdvance": "Bilder vorab herunterladen", + "OptionDownloadImagesInAdvanceHelp": "Grundsätzlich werden die meisten Bilder erst dann heruntergeladen, wenn eine Emby-App sie anfragt. Aktiviere diese Option, um alle Bilder im Voraus herunterzuladen, sobald neue Medien importiert werden. Dies kann zu erheblich längeren Bibliothek-Scans führen.", + "MessageThankYouForSupporting": "Vielen Dank für die Unterstützung von Emby.", + "FileReadCancelled": "Lesen der Datei wurde abgebrochen.", + "FileNotFound": "Datei nicht gefunden.", + "FileReadError": "Beim Lesen der Datei ist ein Fehler aufgetreten.", + "NoPluginConfigurationMessage": "Dieses Plugin hat keine konfigurierbaren Einstellungen.", + "HeaderNewApiKey": "Neuer API-Schlüssel", + "HeaderNewApiKeyHelp": "Geben Sie einer Applikation die Erlaubnis mit dem Emby Server zu kommunizieren.", + "MessageKeyEmailedTo": "E-Mail mit Zugangsschlüssel an: {0}.", + "HeaderConfirmation": "Bestätigung", + "MessageKeyUpdated": "Vielen Dank. Dein Emby-Premiere-Schlüssel wurde aktualisiert.", + "MessageKeyRemoved": "Vielen Dank. Dein Emby-Premiere-Schlüssel wurde entfernt.", + "TextEnjoyBonusFeatures": "Genieße Bonus-Funktionen", + "MessageErrorLoadingSupporterInfo": "Es gab einen Fehler beim Verarbeiten der Emby-Premiere-Daten. Bitte versuche es später erneut.", + "ValueTimeLimitSingleHour": "Zeitlimit: 1 Stunde", + "ValueTimeLimitMultiHour": "Zeitlimit: {0} Stunden", + "General": "Allgemein", + "HeaderScreenSavers": "Bildschirmschoner", + "Reporting": "Berichte", + "LabelStopping": "Stoppe", + "HeaderSelectCertificatePath": "Zertifikatsordner auswählen", + "HeaderSupporterBenefit": "Eine aktives Emby-Premiere-Abonnement bringt zusätzliche Vorteile, wie etwa Zugriff auf Emby DVR, Offline-Medien, Premium-Plugins usw. {0}Mehr erfahren{1}.", + "LabelAbortedByServerShutdown": "(Durch herunterfahrenden Server abgebrochen)", + "LabelScheduledTaskLastRan": "Zuletzt ausgeführt vor: {0}. Benötigte Zeit: {1}.", + "HeaderDeleteTaskTrigger": "Aufgabenauslöser entfernen", + "MessageDeleteTaskTrigger": "Bist du dir sicher, dass du diesen Aufgabenauslöser entfernen möchtest?", + "MessageNoPluginsDueToAppStore": "Um Plugins zu verwalten, verwende bitte die Emby-Web-App.", + "LabelVersionInstalled": "{0} installiert", + "HeaderSelectServerCachePath": "Server-Cache-Pfad wählen", + "HeaderSelectTranscodingPath": "Temporären Transcodierungspfad wählen", + "HeaderSelectMetadataPath": "Metadaten-Pfad wählen", + "HeaderSelectServerCachePathHelp": "Pfad zum Speichern von Server-Cache-Dateien auswählen oder eingeben. In das Verzeichnis muss geschrieben werden können.", + "HeaderSelectTranscodingPathHelp": "Pfad zum Speichern von temporären Transkodierdateien auswählen oder eingeben. In das Verzeichnis muss geschrieben werden können.", + "HeaderSelectMetadataPathHelp": "Pfad zum Speichern von Metadaten auswählen oder eingeben. In das Verzeichnis muss geschrieben werden können.", + "MessageConfirmRestart": "Emby Server wirklich neustarten?", + "MessageConfirmShutdown": "Emby Server wirklich beenden?", + "LabelLocalAccessUrl": "Heimnetzwerk-Zugriff (LAN): {0}", + "LabelRemoteAccessUrl": "Fernzugriff (WAN): {0}", + "LabelRunningOnPort": "Erreichbar auf HTTP-Port: {0}", + "LabelRunningOnPorts": "Erreichbar auf HTTP-Port {0} und HTTPS-Port {1}", + "LabelCurrentPath": "Aktueller Pfad", + "HeaderSelectMediaPath": "Medienpfad wählen", + "HeaderSelectPath": "Pfad wählen", + "MessageDirectoryPickerInstruction": "Falls die Netzwerksuche deine Endgeräte nicht automatisch findet, kannst du deren Netzwerkpfade auch manuell eintragen. Zum Beispiel {0} oder {1}.", + "MessageDirectoryPickerBSDInstruction": "Für BSD müssen Sie auf Ihrem FreeNAS Jail ggf. Speicherplatz freigeben, damit Emby darauf zugreifen kann.", + "MessageDirectoryPickerLinuxInstruction": "Für Linux auf Arch Linux, CentOS, Debian, Fedora, OpenSuse oder Ubuntu muss Emby mindestens lesenden Zugriff auf die Speicherorte der Medien besitzen.", + "MetadataManager": "Metadaten-Manager", + "OptionBlockLiveTvChannels": "Live-TV-Sender", + "OptionBlockChannelContent": "Internet-Stream-Inhalte", + "ButtonRevoke": "Widerrufen", + "MessageConfirmRevokeApiKey": "Diesen API-Schlüssel wirklich widerrufen? Die Verbindung der Anwendung zum Emby Server wird sofort unterbrochen.", + "HeaderConfirmRevokeApiKey": "API-Schlüssel widerrufen", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Bitte akzeptiere die Nutzungsbedingungen vor dem Fortfahren.", + "HeaderChangeFolderType": "Inhaltstyp ändern", + "HeaderChangeFolderTypeHelp": "Um den Typ zu ändern, bitte die Bibliothek entfernen und mit dem neuen Medientyp wieder anlegen.", + "HeaderAlert": "Alarm", + "MessagePleaseRestart": "Bitte neustarten, um die Aktualisierung abzuschließen.", + "OptionHomeVideos": "Heimvideos und Fotos", + "OptionBooks": "Bücher", + "HeaderMetadataReaders": "Metadatenleser", + "LabelMetadataReadersHelp": "Aktiviere und ordne deine bevorzugten lokalen Metadatenquellen nach Priorität.", + "HeaderSubtitleDownloaders": "Untertitel-Downloader", + "SubtitleDownloadersHelp": "Aktiviere und priorisiere deine bevorzugten Untertitel-Downloader über die Sortierreihenfolge. Weitere Untertitel-Anbieter lassen sich über den Emby-Plugin-Katalog installieren.", + "LabelMetadataDownloaders": "Metadaten-Downloader", + "LabelMetadataDownloadersHelp": "Aktiviere und priorisiere deine bevorzugten Metadaten-Downloader über die Sortierreihenfolge. Downloader mit niedriger Priorität werden nur genutzt, um fehlende Informationen zu ergänzen.", + "HeaderMetadataSavers": "Metadaten-Speicher", + "LabelMetadataSaversHelp": "Dateiformat für die Speicherung der Metadaten wählen.", + "LabelImageFetchers": "Bildabrufdienste", + "LabelImageFetchersHelp": "Aktiviere und priorisiere deine bevorzugten Bildbeschaffer über die Sortierreihenfolge.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Medienquelle entfernen", + "MessageConfirmRemoveMediaLocation": "Möchtest du diese Medienquelle wirklich entfernen?", + "LabelNewName": "Neuer Name", + "HeaderRemoveLibrary": "Bibliothek entfernen", + "MessageAreYouSureYouWishToRemoveLibrary": "Bist du sicher, dass du die {0} Bibliothek von deinem Emby Server entfernen möchtest? Deine Mediendateien sind davon nicht betroffen.", + "ButtonRename": "Umbenennen", + "HeaderPluginInstallation": "Plugin-Installation", + "MessageTrialExpired": "Der Testzeitraum für diese Funktion ist abgelaufen", + "MessageTrialWillExpireIn": "Der Testzeitraum für diese Funktion läuft in {0} Tag(en) ab", + "ValuePriceUSD": "Preis: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Du bist für diese Funktion registriert und kannst sie mit einem aktiven Emby-Premiere-Abo weiterhin benutzen.", + "HeaderSelectExternalPlayer": "Wähle externe Wiedergabe-App", + "HeaderExternalPlayerPlayback": "Wiedergabe mit externem Player", + "HeaderThankYou": "Danke", + "HeaderSelectUploadPath": "Upload-Pfad wählen", + "ErrorMessageStartHourGreaterThanEnd": "Die Endzeit muss größer als die Startzeit sein.", + "MessagePluginConfigurationRequiresLocalAccess": "Melde dich bitte direkt an deinem lokalen Server an, um dieses Plugin zu konfigurieren.", + "MovieLibraryHelp": "Lies den {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Lies den {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Hörbücher werden unterstützt, siehe den {0}Emby Book Naming Guide{1}.", + "MessageGamePluginRequired": "Erfordert die Installation des GameBrowser-Plugins", + "HeaderUnlockApp": "App freischalten", + "MessagePaymentServicesUnavailable": "Die Zahlungsdienste stehen leider gerade nicht zur Verfügung. Bitte versuche es später erneut.", + "NoNewDevicesFound": "Keine neuen Geräte gefunden. Um einen neuen Tuner hinzuzufügen, schließe diesen Dialog und gebe die Geräteinformationen manuell ein.", + "MessageConfirmDeleteTunerDevice": "Möchtest du dieses Gerät wirklich löschen?", + "MessageConfirmDeleteGuideProvider": "Diese Programmführer-Datenquelle wirklich löschen?", + "HeaderDeleteProvider": "Guide-Dtenanbieter löschen", + "ErrorAddingTunerDevice": "Beim Hinzufügen des Tuners ist ein Fehler aufgetreten. Bitte stelle sicher, dass dieser erreichbar ist und versuche es dann erneut.", + "ErrorSavingTvProvider": "Es trat ein Fehler beim Speichern des Anbieters für die Daten des TV-Programmführers auf. Bitte stelle sicher, dass er erreichbar ist und versuche es erneut.", + "ErrorGettingTvLineups": "Beim Herunterladen des TV-Programms ist ein Fehler aufgetreten. Bitte stelle sicher, dass die Angaben korrekt sind und versuche es erneut.", + "MessageCreateAccountAt": "Erstelle ein Konto bei {0}", + "ErrorPleaseSelectLineup": "Bitte wähle ein TV-Programm und versuche es erneut. Wenn keine Programme verfügbar sind, prüfe bitte, ob Benutzername, Passwort und Postleitzahl korrekt sind.", + "ErrorValidatingSupporterInfo": "Es gab einen Fehler beim Prüfen deiner Emby-Premiere-Daten. Bitte versuche es später erneut.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top-Plugins", + "ForAdditionalLiveTvOptions": "Durchsuche den Emby-{0}Plugin-Katalog{1}, um weitere Live-TV-Quellen zu installieren.", + "AddUser": "Benutzer hinzufügen", + "HeaderEmailAddress": "E-Mail-Adresse", + "NumLocationsValue": "{0} Verzeichnisse", + "PleaseAddAtLeastOneFolder": "Bitte füge dieser Bibliothek durch Klicken der \"Hinzufügen\"-Schaltfläche mindestens ein Verzeichnis hinzu.", + "ErrorAddingMediaPathToVirtualFolder": "Es trat ein Fehler beim Hinzufügen eines Medienverzeichnisses auf. Bitte stelle sicher, dass der Pfad gültig ist und der Emby-Server-Prozess die notwendigen Zugriffsrechte besitzt.", + "ErrorAddingEmbyConnectAccount3": "Das Emby-Konto ist bereits mit einem vorhandenen lokalen Nutzer verknüpft. Ein Emby-Konto lässt sich nur mit einem lokalen Nutzer gleichzeitig verbinden.", + "HeaderConfirmPluginInstallation": "Bestätige Plugin-Installation", + "PleaseConfirmPluginInstallation": "Bitte bestätige mit OK, dass du den obenstehenden Text gelesen hast und die Installation des Plugins fortführen möchtest.", + "MessagePluginInstallDisclaimer": "Plugins aus der Emby-Community sind eine tolle Möglichkeit, Emby mit weiteren Funktionen und Vorteilen aufzuwerten. Bitte sei dir vor der Installation aber bewusst, dass dies Folgen für den Emby Server haben kann, etwa längere Bibliothek-Scans, zusätzliche Hintergrundverarbeitungen und verringerte Systemstabilität.", + "HardwareAccelerationWarning": "Das Aktivieren der Hardware-Beschleunigung kann auf einigen Systemen zu Instabilität führen. Stelle sicher, dass dein Betriebssystem sowie die Grafikkarten-Treiber auf dem neuesten Stand sind. Sollten Probleme mit der Wiedergabe von Videos auftreten, ist diese Einstellung auf \"Auto\" zurückzusetzen.", + "ValueExample": "Beispiel: {0}", + "LabelFileOrUrl": "Datei oder URL", + "OptionEnableForAllTuners": "Für alle Tuner aktivieren", + "HeaderTuners": "Tuner", + "DrmChannelsNotImported": "Verschlüsselte Kanäle werden nicht importiert.", + "LabelAllowHWTranscoding": "Hardware-Transkodierung erlauben", + "AllowHWTranscodingHelp": "Wenn aktiviert, kann der Tuner Streams in Echtzeit transkodieren. Dies kann dazu beitragen, die vom Emby Server erforderliche Transkodierung zu reduzieren.", + "MetadataSettingChangeHelp": "Verändern von Metadaten-Einstellungen hat nur Einfluss auf neu hinzugefügte Inhalte. Für eine Aktualisierung bereits vorhandener Inhalte, die Detailansicht öffnen und die 'Aktualisieren'-Schaltfläche anklicken. Mehrfachaktualisierungen lassen sich im Metadaten-Manager vornehmen.", + "RecordingPathChangeMessage": "Bei einer Änderung des Aufnahmeverzeichnisses werden bereits vorhandene Aufnahmen nicht automatisch in das neue Verzeichnis verschoben. Sofern gewünscht, ist dies selbst vorzunehmen.", + "LabelLocalIpAddress": "Lokale IP-Adresse", + "LabelBindToLocalNetworkAddressHelp": "Optional. Überschreibt die lokale IP-Adresse, die der Server Emby-Apps zeigt. Wenn leer, wird der Server die lokale Netzwerkadresse ermitteln.", + "SettingsWarning": "Das Verändern dieser Werte kann Instabilität oder Verbindungsprobleme hervorrufen. Falls Probleme auftreten, empfehlen wir, diese Einstellungen auf die Standardwerte zurückzustellen.", + "OptionSaveMetadataAsHiddenHelp": "Diese Einstellung wirkt sich auf neu gespeicherte Metadaten aus. Bereits vorhandene Metadaten werden aktualisiert, sobald sie der Emby Server wieder sichert.", + "EnablePhotos": "Fotos aktivieren", + "EnablePhotosHelp": "Fotos werden erkannt und neben anderen Mediendateien angezeigt.", + "ImportPlaylists": "Wiedergabelisten importieren", + "ImportPlaylistsHelp": "In Medienordnern entdeckte Wiedergabelisten lassen sich in Emby Server importieren.", + "SaveThumbnailImagesIntoMediaFolders": "Speichere Videovorschau-Miniaturansichten in Medienverzeichnissen", + "LabelGenerateVideoPreviewThumbnails": "Erzeuge Videovorschau-Miniaturansichten", + "LabelEnableDebugLogging": "Aktiviere Debug-Protokollierung", + "OptionEnableExternalContentInSuggestions": "Externe Inhalte in Empfehlungen aktivieren", + "OptionEnableExternalContentInSuggestionsHelp": "Internet-Trailer und Live-TV-Sendungen in Empfehlungen zulassen.", + "LabelOptionalNetworkPath": "(Optional) Freigegebener Netzwerkordner", + "LabelOptionalNetworkPathHelp": "Wenn dieser Ordner in deinem Netzwerk geteilt wird, kann die Weitergabe des Netzwerkpfades Emby Apps auf anderen Geräten direkten Zugang zu den Mediendateien ermöglichen.", + "SynologyUpdateInstructions": "Bitte logge dich in DSM ein und gehe in das Paketzentrum um ein Update durchzuführen.", + "HeaderRecordingPostProcessing": "Aufnahme-Nachbearbeitung", + "LabelPostProcessorArguments": "Kommandozeilen-Argumente für Nachbearbeitung", + "PostProcessorArgumentsHelp": "Die folgenden Variablen werden in der Befehlszeile unterstützt, um die Übergabe von Daten an deine Nachbearbeitungsanwendung zu ermöglichen", + "LabelPostProcessor": "Anwendung für die Nachbearbeitung", + "DvrPostProcessorPathArgument": "{path}: Der vollständige Pfad zur Aufnahmedatei", + "OptionAutomaticallyGroupSeries": "Automatisches Zusammenführen von Serien, die über mehrere Verzeichnisse verteilt sind", + "OptionAutomaticallyGroupSeriesHelp": "Wenn aktiviert, werden Serien, die innerhalb dieser Bibliothek über mehrere Verzeichnisse verteilt sind, automatisch zu einer einzigen Serie zusammengeführt.", + "WhenDidYouPurchaseApp": "Wann hast du die App ursprünglich erworben?", + "PreferEmbeddedTitlesOverFileNames": "Eingebettete Titel gegenüber Dateinamen bevorzugen", + "PreferEmbeddedTitlesOverFileNamesHelp": "Dies bestimmt den als Standard angezeigten Titel, wenn keine lokalen oder Internet-Metadaten verfügbar sind.", + "FriendlyNameForReferenceHelp": "Ein Anzeigename, der als Orientierungshilfe dient.", + "HeaderLiveTvTunerSetup": "TV-Tuner einrichten", + "HeaderTVSourceSetup": "TV-Quellen einrichten", + "HeaderDetectMyDevices": "Geräte erkennen", + "MessagePleaseWait": "Bitte warten. Dies kann eine Minute dauern.", + "DetectingDevices": "Suche Geräte", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Nach dem ersten Import die Metadaten automatisch aus dem Internet aktualisieren", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatische Aktualisierung der Metadaten für Episoden mit Platzhaltertiteln wie TBA", + "EveryNDays": "Alle {0} Tage", + "LabelCertificatePassword": "Zertifikatspasswort", + "LabelCertificatePasswordHelp": "Wenn Dein Zertifikat ein Passwort benötigt, gib es hier ein.", + "HeaderNewLibrary": "Neue Bibliothek", + "HttpsRequiresCert": "Um sichere Verbindungen zu aktivieren, benötigst du ein vertrauenswürdiges SSL-Zertifikat, wie etwa von Let's Encrypt. Stelle bitte ein Zertifikat bereit oder deaktiviere sichere Verbindungen.", + "ServerRestartNeededAfterPluginInstall": "Der Emby-Server muss nach der Installation eines Plugins neu gestartet werden.", + "PluginInstalledMessage": "Das Plugin wurde erfolgreich installiert. Der Emby-Server muss neu gestartet werden, um die Änderungen zu übernehmen.", + "MessagePremiereStatusGood": "Du hast ein {0} Emby-Premiere-Abo und deine Gerätenutzung befindet sich innerhalb deines Limits.", + "MessagePremiereStatusClose": "Du hast ein {0} Emby-Premiere-Abo, aber deine Gerätenutzung nähert sich dem Limit.", + "MessagePremiereExtendedPlans": "Ziehe ein {0}erweitertes Geräte-Abo in Erwägung{1}", + "MessagePremiereStatusOver": "Du hast ein {0} Emby-Premiere-Abo, aber deine Gerätenutzung ist über dem Limit!", + "ListItemPremiereSub": "{0} Abonnement, bestellt via {2}, läuft ab {1}", + "LabelClickToManage": "Klicken Sie, um dieses Abonnement zu verwalten", + "LabelCancelInfo": "Du kannst dieses Abonnement direkt mit {0} verwalten", + "LabelAlreadyCanceled": "Dieses Abonnement wurde gekündigt. Der Schlüssel bleibt bis zum Ablaufdatum gültig.", + "HeaderCancelSub": "Emby Premiere kündigen", + "MessageConfirmSubCancel": "NEIN, bitte gehe nicht... Du wirst all die großartigen Features von Emby Premiere vermissen!", + "ButtonCancelSub": "Ich weiß, trotzdem kündigen", + "ButtonDontCancelSub": "Emby Premiere behalten", + "MessageSubCancelReqSent": "Eine E-Mail wurde an den Schlüsselbesitzer gesendet. Bitte folge den Anweisungen in dieser E-Mail, um die Kündigung des Abonnements zu vervollständigen. Wir hoffen dich bald wieder begrüßen zu dürfen!", + "MessageSubCancelError": "Bei der Kündigung ist etwas schief gelaufen. Bitte sende eine E-Mail an {0} und wir werden das Problem aus der Welt schaffen.", + "LabelAlreadyCancelled": "Das Abonnement wurde gekündigt. Du wirst keine Zahlungen mehr leisten aber die Features werden bis zum obigen Datum funktionieren.", + "AllowOnTheFlySubtitleExtraction": "Untertitelextraktion in Echtzeit zulassen", + "AllowOnTheFlySubtitleExtractionHelp": "Um Transkodieren zu vermeiden, lassen sich eingebettete Untertitel aus Videos extrahieren und als einfacher Text an Emby senden. Auf manchen Systemen dauert dies sehr lange und die Videowiedergabe könnte während der Extraktion stocken. Deaktivieren der Option brennt eingebettete Untertitel während des Videotranskodierens ein, sofern sie nicht nativ vom Abspielgerät unterstützt werden.", + "AllowOnTheFlyFontExtraction": "Untertitelextraktion in Echtzeit zulassen", + "AllowOnTheFlyFontExtractionHelp": "Eingebettete Schriftarten können aus Videos extrahiert und an Emby-Anwendungen übergeben werden, um Videos mit benutzerdefinierten Schriftarten zu unterstützen. Auf manchen Systemen kann dies sehr lange dauern und dazu führen, dass die Videowiedergabe während des Extraktionsvorgangs stoppt.", + "EnableDebugLoggingHelp": "Debug-Protokollierung sollte nur zur Fehlersuche aktiviert werden. Die erhöhte Zahl von Zugriffen auf das Dateisystem deines Systems kann es unter Umständen daran hindern, in den Standby-Modus zu gehen.", + "LabelSimultaneousConnectionLimit": "Limit gleichzeitiger Streams", + "SimultaneousConnectionLimitHelp": "Die maximale Anzahl der gleichzeitig erlaubten Streams. '0' für kein Limit.", + "LaunchWebAppOnStartup": "Starte die Emby-Web-App im Browser, sobald Emby Server startet", + "LaunchWebAppOnStartupHelp": "Diese Funktion öffnet die Emby-Web-App im Standard-Browser, wenn der Emby Server gestartet wird. Tritt nicht auf, wenn der Server nur neu gestartet wird.", + "LabelReferrerHeader": "Referer HTTP header", + "LabelUserAgentHeader": "User agent http Header", + "SupplyCustomValueIfNeeded": "Stelle einen benutzerdefinierten http-Header Wert zur Verfügung, falls nötig.", + "HeaderConfigureRemoteAccess": "Remote-Zugriff konfigurieren", + "LearnHowToCreateSynologyShares": "Erfahre, wie man Verzeichnisse mit Synology teilt.", + "LabelAllowedRemoteAddresses": "Remote IP-Adressen Filter", + "LabelAllowedRemoteAddressesMode": "Remote IP-Adressen Filtermodus", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Kommaseparierte Liste mit IP-Adressen oder IP/Netzmaske-Einträgen für Netzwerke, für die Remote-Verbindungen erlaubt sind. Wenn leer, sind alle Adressen zulässig.", + "LabelLanNetworks": "Lokale Netzwerke", + "LanNetworksHelpText": "Durch Komma getrennte Liste von IP-Adressen oder IP/Netzmasken-Einträgen für Netzwerke, die bei der Durchsetzung von Bandbreiten- und Fernzugriffsbeschränkungen als im lokalen Netzwerk befindlich betrachtet werden. Wenn diese Option gesetzt ist, werden alle anderen IP-Adressen als im externen Netz befindlich betrachtet. Bleibt sie leer, werden nur das Subnetz des Servers und die üblichen privaten IP-Subnetze (192.168.0.0/24, 172.16.0.0/12 usw.) als zum lokalen Netz gehörig betrachtet.", + "LabelSecureConnectionsMode": "Sicherer Verbindungsmodus", + "PreferredNotRequired": "Bevorzugt, aber nicht benötigt", + "RequiredForAllRemoteConnections": "Für alle Remote-Verbindungen benötigt", + "HandledByProxy": "Verwaltet vom Reverse Proxy", + "SaveSubtitlesIntoMediaFolders": "Heruntergeladene Untertitel in Medienordnern speichern", + "SaveSubtitlesIntoMediaFoldersHelp": "Das Speichern der Untertitel bei den Video-Dateien vereinfacht ihre Verwaltung deutlich.", + "AutomaticSubtitleDownloadInstructions": "Um den automatischen Untertitel-Download zu verwalten, klicke auf eine Bibliothek in den Emby-Bibliothekseinstellungen und bearbeite dort die Untertitel-Download-Einstellungen.", + "ProviderNeedsSetupWithUrl": "{0} erfordert zusätzliche Einstellungen auf dem {1} Einstellungsbildschirm{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Hardware-Beschleunigung aktivieren, falls verfügbar", + "HeaderPreferredHardwareDecoders": "Bevorzugte Hardware-Dekodierer", + "HeaderPreferredHardwareEncoders": "Bevorzugte Hardware-Kodierer", + "AllowChangingImageAndPassword": "Benutzer gestatten, sein Passwort und Profilbild zu ändern", + "LabelSimultaneousStreamLimit": "Max. gleichzeitige Videostreams", + "SimultaneousStreamLimitHelp": "Anzahl gleichzeitiger Videowiedergabesitzungen begrenzen.", + "LabelMusicFolderStructure": "Struktur der Musikordner", + "LabelMusicFolderStructureHelp": "Dies gibt dem Bibliotheks-Scanner einen Hinweis, wie deine Ordner aufgebaut sind. Wenn du unsicher bist oder wenn deine Ordner nicht exakt einer der Optionen entsprechen, wähle bitte die Standardoption \"Sonstiges\".", + "OtherOrUnstructured": "Sonstiges oder unstrukturiert", + "PerfectArtistAlbumTrack": "Perfekt sortiert in 'Künstler\\Alben'-Ordner, mit Titeln direkt in den Albenordnern.", + "PerfectAlbumTrack": "Perfekt sortiert in Alben-Ordner, mit Titeln direkt in den Albenordnern.", + "LabelMinCollectionSize": "Mindestgröße für Kollektionen", + "PerfectAuthorAudioBookTrack": "Perfekt organisiert in Autor\\Buch-Ordnern, mit Titeln direkt in den Buchordnern.", + "PerfectAudioBookTrack": "Perfekt organisiert in Buchordnern, mit Tracks direkt in den Buchordnern.", + "MinCollectionSizeHelp": "Erstellt automatisch Kollektionen, wenn du mindestens die von dir angegebene Anzahl an Titeln in der Bibliothek hast. Die Veränderung der Anzahl hat keine Auswirkungen auf bestehende Kollektionen.", + "LabelImportCollections": "Kollektionsinformationen von Metadaten-Downloadern importieren", + "LabelImportCollectionsHelp": "Wenn aktiviert, werden Kollektionsinformationen von deinen aktivierten Metadaten-Downloadern importiert. Dies kann dazu führen, dass unerwünschte Kollektionen automatisch erstellt werden. Deaktivierung verhindert, dass zukünftige Kollektionen automatisch erstellt werden, löscht aber nicht die bestehenden.", + "LabelAllowAdultMetadata": "Metadaten für Erwachsene zulassen", + "LabelAllowAdultMetadataHelp": "Bei der Suche nach Internet-Metadaten den Abgleich mit nicht-jugendfreien Titeln gestatten.", + "HeaderVideoPreviewThumbnails": "Videovorschau-Miniaturansichten", + "LabelEnableHDRToneMapping": "HDR-Tonwertzuordnung aktivieren", + "EnableHDRToneMappingHelp": "Die Tonwertzuordnung sorgt für eine korrekte Farbkonvertierung bei der Transkodierung von HDR-Bildmaterial für nicht-HDR Geräte, da das Material sonst zu dunkel und entsättigt wirkt. Es sind möglicherweise zusätzliche Treiberkomponenten erforderlich, um dieses Feature mit Hardware-Beschleunigung zu nutzen. Details bitte im \"Hardware Acceleration Setup Guide\" nachlesen.", + "WithHardwareAcceleratedTranscoding": "Ja, nur mit Hardware-Beschleunigung", + "TranscodingStillInitializing": "Die Transkodier-Dienste des Emby Servers sind noch im Startvorgang. Dieser Bildschirm aktualisiert sich automatisch, wenn die Dienste bereit sind.", + "WithEitherHardwareOrSoftwareTranscoding": "Ja, entweder mit Hardware- oder Software-Transkodierung", + "ToneMappingInHardwareDescription": "Die Tonwertzuordnung nutzt Hardware-Beschleunigung, sofern aktiviert und von der Hardware unterstützt. In allen anderen Fällen wird es übersprungen.", + "ToneMappingInSoftwareDescription": "Die Tonwertzuordnung wird von der CPU per Software durchgeführt. Dies ist wesentlich langsamer als hardwarebeschleunigte Tonwertzuordnung und erfordert einen sehr leistungsfähigen Server.", + "ToneMappingInBothDescription": "Die Tonwertzuordnung nutzt Hardware-Beschleunigung, sofern aktiviert und von der Hardware unterstützt. In allen anderen Fällen wird es von der CPU per Software durchgeführt. Dies ist wesentlich langsamer als hardwarebeschleunigte Tonwertzuordnung und erfordert einen sehr leistungsfähigen Server.", + "AutoMapped": "Automatisch zugeordnet", + "ManuallyMapped": "Manuell zugeordnet", + "NotMappedToGuideData": "Nicht zugeordnete Guide-Daten", + "MappedToValue": "Zugeordnet zu {0}", + "LabelAutomaticallyWakeServerForRecordings": "Weckt das Server-Gerät automatisch, um Aufnahmen anzufertigen", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Weckaktionen werden im Server-Betriebsystem eingetaktet. Ausschalten dieser Option verhindert das Eintakten künftiger Weckaktionen, entfernt aber nicht bereits eingerichtete Aktionen.", + "Database": "Datenbank", + "LabelOptimizeDatabaseOnShutdown": "Datenbank-Optimierung beim Herunterfahren des Servers", + "LabelOptimizeDatabaseOnShutdownHelp": "Der SQLite-Optimierungsvorgang hat in der Regel keine Auswirkungen, startet aber gelegentlich eine Analyse, wenn dies für den Abfrageplaner nützlich zu sein scheint. Kann dazu führen, dass Emby Server länger zum Herunterfahren braucht.", + "LabelDatabaseCacheSize": "Datenbank-Puffergröße (Cache in MB)", + "LabelDatabaseCacheSizeHelp": "Setzt je Datenbank-Datei die Datenmenge, die die SQLite-Datenbank auf einmal im Arbeitsspeicher hält. Ein größerer Wert sorgt möglicherweise für eine Verbesserung der Leistung des Emby-Servers. Erfordert einen Server-Neustart.", + "LabelDatabaseAnalysisLimit": "Analyse-Zeilengrenze", + "LabelDatabaseAnalysisLimitHelp": "Wenn SQLite die Datenbank optimiert, ist dies die ungefähre Spaltenzahl, die das ANALYZE-Kommando in jedem Index prüft. Ein größerer Wert erhöht die Effektivität der Datenbank-Optimierung, kann aber dazu führen, dass das Herunterfahren des Emby-Server länger dauert.", + "LabelVacuumDb": "Vakuumisieren der Datenbank beim nächsten Emby-Server Start", + "LabelVacuumDbHelp": "Beim Vakuumieren wird die Datenbankdatei neu aufgebaut und auf ein Minimum an Speicherplatz komprimiert. In einigen Fällen kann dies die Leistung von Emby Server verbessern. Bitte beachte, dass dein Emby Server während des Vakuumierens nicht benutzbar ist und es auch keine Möglichkeit gibt, den Fortschritt des Vakuumierens zu überwachen. Bitte vermeide das erzwungene Schließen des Emby Server Prozesses während dieser Zeit, da dies zu einer Beschädigung der Datenbank führen kann. Dies ist ein einmaliger Vorgang und diese Option wird beim nächsten Start des Servers wieder deaktiviert sein.", + "AdvancedOptionsWarning": "Hierbei handelt es sich um fortgeschrittene Optionen, die generell auf den Standardwerten belassen werden sollten, außer, es gibt einen speziellen Anlass diese zu ändern.", + "HeaderRecentlyActiveDevices": "Zuletzt aktive Geräte", + "YesUntilServerRestart": "Ja, bis zum nächsten Server-Neustart", + "YesUntilLogRotate": "Ja, bis zum nächsten Protokollwechsel", + "LabelSubtitleDownloadMaxAge": "Beende den Versuch des automatischen Untertitel-Bezugs für Videos älter als", + "SubtitleDownloadMaxAgeHelp": "Dies basiert auf dem \"Hinzugefügt am\"-Wert der Metadaten.", + "NoAgeLimit": "Ohne Altersbeschränkung", + "AnonymizeLogContents": "Protokollinhalte anonymisieren", + "Markers": "Markierungen", + "LabelGenerateIntroVideoMarkers": "Intro-Videomarkierungen generieren", + "GenerateIntroVideoMarkersHelp": "Erkennt Serien-Vorspänne und zeigt den 'Intro überspringen'-Knopf in Emby-Apps. Die Vorspannerkennung kann lange dauern und zu hoher Prozessor- oder Festplattenauslastung führen.", + "LabelCopyFromUser": "Benutzereinstellungen kopieren von", + "CopyFromUserHelp": "Optional. Erstellung von neuen Benutzern durch Kopieren von Informationen eines bestehenden Benutzers beschleunigen.", + "UserPolicy": "Benutzerrichtlinien (Zugang zu Bibliotheken, Funktionen, Kindersicherung, usw.)", + "UserConfiguration": "Benutzerkonfiguration (bevorzugte Audio- und Untertitelsprachen, Bibliotheksreihenfolge usw.)", + "UserDataAndDescription": "Benutzerdaten (Favoriten, Beobachtungs- und Hörstatus usw.)", + "HeaderCopyOptions": "Kopieroptionen", + "LabelMultiRestrictionMode": "Mehrfachbeschränkungsmodus", + "MultiRestrictionModeAll": "Inhalte zulassen, die sowohl der Bewertung als auch den Tag-Einschränkungen entsprechen", + "MultiRestrictionModeAny": "Inhalte zulassen, die entweder der Bewertung oder den Tag-Einschränkungen entsprechen", + "AllowMappingByChannelNumber": "Zuordnung von TV-Programmführer Daten durch Kanalnummern ermöglichen", + "AllowMappingByChannelNumberHelp": "Diese Funktion kann als Ausweichlösung verwendet werden, um Tuner-Kanäle mit TV-Programmführer Daten abzugleichen, wenn anhand des Kanalnamens keine Übereinstimmung gefunden werden kann. Dies kann zu einem ungenauen Abgleich führen, wenn die Kanalnummern vom Tuner nicht korrekt sind.", + "LabelPreferredSourceForChannelLogos": "Senderlogos aus dem TV-Programmführer gegenüber dem Tuner bevorzugen, wenn sie in beiden verfügbar sind", + "LabelPreferredSourceForChannelNumbers": "Kanalnummern aus dem TV-Programmführer gegenüber dem Tuner bevorzugen, wenn sie in beiden verfügbar sind", + "HeaderSoftwareEncoders": "Software encoder", + "LabelProxyHeaderMode": "Proxy-Header lesen, um Client IP-Adressen zu ermitteln", + "ProxyHeadersRemoteOnly": "Nur wenn sie entfernte Netzwerkadressen enthalten", + "ProxyHeaderModeHelp": "Legt fest, ob Anforderungsheader wie {0} und {1} verwendet werden sollen, um die IP-Adresse der verbundenen Geräte zu ermitteln. Diese Option sollte nur aktiviert werden, wenn Sie einen Reverse-Proxy verwenden.", + "AllowCameraUpload": "Kamera-Upload erlauben", + "AllowCameraUploadHelp": "Wenn erlaubt und in den mobilen Emby-Apps aktiviert, können Nutzer automatisch Fotos und Videos, die sie mit ihrer Kamera aufgenommen haben, auf diesen Emby-Server hochladen", + "CameraUploadMustBeGranted": "Ausserdem muss Ihnen Ihr Server-Administrator Zugriff auf den Kamera-Upload gewähren.", + "EnableReadingAndWritingPeopleMetadata": "Ermöglicht das Lesen und Schreiben von Personen-Metadaten-Dateien", + "EnableReadingAndWritingPeopleMetadataHelp": "Erfordert die Installation des Nfo-Metadaten-Plugins. Dies ermöglicht das Speichern Ihrer Personen-Editierungen in Nfo-Metadaten-Dateien, führt aber zu längeren Bibliotheks-Scans.", + "LabelIgnoreSampleFiles": "Dateien, die das Wort sample im Dateinamen enthalten, werden ignoriert, wenn ihre Größe kleiner ist als (MB)", + "PreferredChannelImageSource": "Bevorzugte Bildquelle für den Kanal", + "PreferredChannelImageSourceHelp": "Wähle ein bevorzugtes Kanalbild aus, wenn sowohl für den Tuner als auch für den Programmführer Bilder verfügbar sind.", + "CacheImagesInServerData": "Eine Kopie der Bilder im Metadaten-Ordner des Servers zwischenspeichern", + "CacheImagesInServerDataHelp": "Wenn deine Medien und Bilder auf einem anderen Rechner gespeichert sind, kannst du eine Kopie der Bilder im Metadatenordner des Servers zwischenspeichern, um den Netzwerkzugriff zu reduzieren und die Leistung zu verbessern. Dies führt aber zur langsameren Bibliotheks-Scans und der Server-Metadaten-Ordner wird deutlich mehr Speicherplatz benötigen.", + "AllowSharingPersonalContent": "Erlauben Sie die Freigabe persönlicher Inhalte wie Wiedergabelisten für andere Benutzer auf diesem Server", + "AllowSharingPersonalContentHelp": "Wenn diese Option aktiviert ist, kann dieser Benutzer seine Wiedergabelisten mit anderen Benutzern teilen. Der Zugriff auf Elemente der Wiedergabeliste wird weiterhin durch die vergebenen Zugriffsrechte auf die Bibliothek und die Kindersicherung eingeschränkt.", + "LiveBufferSizeHours": "Puffergröße für Live-Stream (Stunden)", + "LiveBufferSizeHoursHelp": "Ein längerer Puffer bietet eine bessere Möglichkeit, während eines Live-Streams vorwärts und rückwärts zu suchen, verbraucht aber auch mehr Speicherplatz.", + "LabelTranscodingMaxResolution": "Max. Transkodierungsauflösung", + "TranscodingMaxResolutionHelp": "Setze eine Obergrenze, die für alle Video-Transkodierungen gilt, unabhängig von der Qualitätseinstellung im Emby-Player. Dies hilft, die von den Server-Transkodierungsprozessen verbrauchten Ressourcen zu reduzieren.", + "EnableHevcEncodingExp": "Aktiviere HEVC Video-Encoding (experimentell)", + "EnableHevcEncodingHelp": "Aktiviere Transkodierung in HEVC, sofern dieser Codec vom Endgerät unterstützt wird.", + "LabelEnableMultiPartItems": "Aktiviere Multi-Part Videoelemente", + "EnableMultiPartItemsHelp": "Automatisches Erkennen und Gruppieren von Dateien, die als Teil 1, Teil 2 usw. benannt sind. Zusätzliche Teile werden auf dem Hauptdetailbildschirm für das Videoelement angezeigt.", + "MultiVersionItemsDetectionHelp": "Automatisches Erkennen und Gruppieren verschiedener Versionen desselben Videoelements. Eine Versionsauswahl wird auf dem Hauptdetailbildschirm für das Videoelement angeboten. Die Gruppierung auf der Basis von Dateien erfordert eine entsprechende Benennung und Organisation deiner Dateien.", + "MultiVersionMoviesDetectionHelp": "Bei der Gruppierung nach Metadaten werden Filme gruppiert, die dieselben externen Kennungen haben (MovieDb, Imdb usw.).", + "EnableMultiPartItemsTVHelp": "Nicht unterstützt für Episoden von Serien.", + "HeaderAutomaticGrouping": "Automatisches Gruppieren", + "LabelMultiVersionItemsDetection": "Erkennung von Videoelementen in mehreren Versionen", + "MultiVersionItemsDetectionBoth": "Erkennung von Mehrfachversionen anhand von Dateien und Metadaten", + "MultiVersionItemsDetectionFiles": "Erkennung von Mehrfachversionen anhand von Dateien", + "MultiVersionItemsDetectionMetadata": "Erkennung von Mehrfachversionen anhand von Metadaten", + "LabelNetworkRequestProtocol": "Protokoll für Netzwerkanfragen", + "NetworkRequestProtocolHelp": "Wählen Sie das Protokoll, das für ausgehende Netzwerkanfragen an Metadatenanbieter und andere Dienste verwendet werden soll. In einigen Fällen, in denen externe Dienste nicht über IPv6 erreicht werden können, musst du diese Einstellung auf IPv4 beschränken.", + "GenerateChaptersForVideos": "Erzeugen von Kapiteln für Videos, die keine eingebetteten Kapitelinformationen enthalten", + "GeneratedChapterInterval": "Zeitintervall für zu generierende Kapitel", + "StartOfSection": "Kapitelstart", + "PreviousSection": "Vorheriges Kapitel", + "ZoomIn": "Herein Zoomen", + "PageNarrow": "Schmal", + "PageMaximized": "Maximiert", + "ZoomOut": "Heraus Zoomen", + "PageBook": "Doppelseite", + "LabelPageSize": "Seitengröße", + "PositionInBook": "Position im Buch", + "TableOfContents": "Übersicht", + "PageSingle": "Einzelne Seite", + "ZoomNone": "Default Zoom", + "LayoutPage": "Einzelseite", + "NextSection": "Nächstes Kapitel", + "ZoomAutoFit": "Passe Seite an", + "LayoutDouble": "Doppelseite", + "LayoutVertical": "Vertikales Scrollen", + "Margins": "Ränder", + "PreviousPage": "Vorherige Seite", + "CurrentPage": "Aktuelle Seite", + "TotalPages": "Seiten Gesamt", + "NextPage": "Nächste Seite", + "RightToLeft": "Rechts-nach-Links Reihenfolge", + "LetsGetSetup": "Starten wir mit der Einrichtung", + "HeaderIgnoreFiles": "Ignoriere Dateien", + "EnablePlexIgnoreAlias": "Aktiviere Unterstützung für .plexignore Dateien als Alias für .embyignore", + "HeaderMaintenanceMode": "Wartungsmodus", + "OptionEnableMaintenanceMode": "Server in den Wartungsmodus versetzen", + "EnableMaintenanceModeHelp": "Benutzer werden nur die Wartungsmodus-Meldung sehen.", + "MaintenanceModeMessage": "Wartungsmodus-Meldung", + "MaintenanceModeMessageHelp": "Wenn leer gelassen, wird eine allgemeine Meldung in der Anzeigesprache des Benutzers angezeigt, dass der Server gewartet wird.", + "ServerInMaintenanceMode": "Der Emby Server befindet sich derzeit im Wartungsmodus. Benutzer können nur eine Wartungsmodus-Meldung sehen, bis Sie den Server aus dem Wartungsmodus nehmen.", + "ExcludeFromGlobalSearch": "Von globaler Suche ausschliessen", + "MergeTopFoldersInFolderView": "Inhalt der obersten Ordnerebene bei Verwendung der Ordneransicht zusammenführen", + "MergeTopFoldersInFolderViewHelp": "Wenn diese Option aktiviert ist, werden die Inhalte der Ordner der obersten Ebene zusammengeführt und in der Ordneransicht als ein kombinierter Ordner angezeigt. Wenn diese Option deaktiviert ist, werden die Ordner der obersten Ebene in der Ordneransicht als erste Ebene angezeigt.", + "OptionAllowTranscodingToReduceQuality": "Transcodierung zulassen, um die Qualität während der Medienwiedergabe basierend auf den Qualitätseinstellungen der App zu reduzieren", + "LabelAutoRemoteQuality": "Automatische Remote-Streaming-Qualität (Mbps)", + "AutoRemoteQualityHelp": "Eine optionale Streaming-Qualität für diesen Benutzer, wenn er den Player auf automatische Qualität eingestellt hat. Dadurch wird die automatische Qualitätserkennung für diesen Benutzer auf allen Geräten außer Kraft gesetzt.", + "LegacyFolderScanningModeHelp": "Das ältere Scanverfahren versucht Ordner, die nur ein einziges Video enthalten, in einer Ebene zusammenzufassen. Dies funktioniert möglicherweise nicht gut in Verbindung mit anderen Emby-Funktionen wie Extras, Videos in mehreren Versionen oder dem Ignorieren von Dateien.", + "FolderScanningModeHelp": "Das Ändern dieser Option führt zu einer vollständigen erneuten Überprüfung der Bibliothek und kann zum Verlust oder zur Änderung vorhandener Metadaten führen.", + "LabelFolderScanningMode": "Ordner-Scanmodus", + "Legacy": "Veraltet" +} diff --git a/strings/el.json b/strings/el.json new file mode 100644 index 0000000..5a0eccb --- /dev/null +++ b/strings/el.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Είστε Έτοιμοι!", + "ThisWizardWillGuideYou": "Αυτός ο οδηγός θα σας καθοδηγήσει στη διαδικασία εγκατάστασης. Για να ξεκινήσετε, παρακαλούμε επιλέξτε τη γλώσσα που προτιμάτε.", + "HeaderCreateYourFirstUser": "Δημιουργήστε τον Πρώτο σας Χρήστη", + "ButtonQuickStartGuide": "Οδηγός Γρήγορης Εκκίνησης", + "MoreUsersCanBeAddedLater": "Περισσότεροι χρήστες μπορούν να προστεθούν αργότερα από τις ρυθμίσεις του διακομιστή Emby.", + "UserProfilesIntro": "Το Emby περιλαμβάνει ενσωματωμένη υποστήριξη για προφίλ χρηστών, επιτρέποντας σε κάθε χρήστη να έχει τις δικές του ρυθμίσεις εμφάνισης, την κατάσταση αναπαραγωγής και το γονικό έλεγχο.", + "WizardCompleted": "Αυτά χρειαζόμαστε για τώρα. Ο Emby έχει αρχίσει να συλλέγει πληροφορίες σχετικά με τη βιβλιοθήκη πολυμέσων σας. Ελέγξτε μερικές από τις εφαρμογές μας, και στη συνέχεια κάντε κλικ στο Τέλος για να δείτε τον Πίνακα ελέγχου Διακομιστή.", + "MessagePleaseAcceptTermsOfService": "Παρακαλώ αποδεχτείτε τους όρους της υπηρεσίας και την πολιτική απορρήτου πριν συνεχίσετε.", + "OptionIAcceptTermsOfService": "Αποδέχομαι τους όρους της υπηρεσίας", + "SeeOurHwaGuide": "Δείτε τον {0}οδηγό παραμετροποίησης επιτάχυνσης υλικού{1}.", + "HeaderEmbyServerReleaseNotes": "Σημειώσεις Έκδοσης Διακομιστή Emby", + "AllowSubtitleDownloading": "Να επιτρέπεται η λήψη υπότιτλων", + "AllowSubtitleManagement": "Να επιτρέπεται η διαγραφή υφιστάμενων αρχείων υπότιτλων", + "NewUserNameHelp": "Έτσι θα εμφανίζεται ο χρήστης στον διακομιστή σας.", + "ChapterMarkers": "Δείκτες κεφαλαίων", + "LabelThumbnailImagesInterval": "Διάστημα μικρογραφιών", + "ThumbnailImagesIntervalHelp": "Οι πιο συχνές μικρογραφίες θα οδηγήσουν σε καλύτερη εμπειρία, αλλά θα απαιτήσουν περισσότερο χώρο στο δίσκο και χρόνο για τη δημιουργία των εικόνων.", + "LabelAuthProvider": "Πάροχος ελέγχου ταυτότητας", + "AuthProviderHelp": "Οι διαχειριστές χρησιμοποιούν πάντα τον προεπιλεγμένο πάροχο Emby για να διασφαλίσουν ότι δεν θα κλειδωθείτε ποτέ.", + "HeaderNewUser": "Νέος Χρήστης", + "ChangeServerDisplayName": "Αλλαγή Εμφανιζόμενου Ονόματος Διακομιστή", + "ShowAdvancedSettings": "Εμφάνιση σύνθετων ρυθμίσεων", + "ChangingMetadataImageSettingsNewContent": "Οι αλλαγές στις ρυθμίσεις λήψης μεταδεδομένων ή εικόνων θα ισχύουν μόνο για νέο περιεχόμενο που προστίθεται στη βιβλιοθήκη σας. Για να εφαρμόσετε τις αλλαγές σε υπάρχοντες τίτλους, θα χρειαστεί να ανανεώσετε τα μεταδεδομένα τους με μη αυτόματο τρόπο.", + "AllowRemoteAccess": "Να επιτρέπονται οι απομακρυσμένες συνδέσεις σε αυτόν το διακομιστή Emby.", + "AllowRemoteAccessHelp": "Εάν δεν είναι επιλεγμένο, όλες οι απομακρυσμένες συνδέσεις θα αποκλειστούν.", + "Alerts": "Ειδοποιήσεις", + "LabelTrackTitleDisplay": "Προβολή ενσωματωμένου τίτλου κομματιού", + "GenerateUserFriendlyTrackTitles": "Δημιουργία τίτλων φιλικών προς τον χρήστη με τη χρήση των πληροφοριών του κομματιού", + "PreferOriginalTrackTitles": "Προτίμηση ενσωματωμένων τίτλων", + "TrackTitleDisplayHelp": "Επιλέξτε τον τίτλο εμφάνισης των ενσωματωμένων κομματιών ήχου και υπότιτλων. Το να προτιμήσετε τους ενσωματωμένους δεν προτείνεται εκτός και αν χειροκίνητα συντηρείτε τις ενσωματωμένες πληροφοριές του κομματιού.", + "EnableTranscodingThrottle": "Ενεργοποιήστε τον περιορισμό", + "EnableTranscodingThrottleHelp": "Το Emby θα προσαρμόσει δυναμικά την ταχύτητα της διακωδικοποίησης (transcoding) για να μειώσει τη χρήση της CPU.", + "HeaderTypeMetadataDownloaders": "{0} Λήπτες Μεταδεδομένων", + "HeaderTypeImageFetchers": "{0} Λήπτες εικόνων", + "HeaderImageOptions": "Επιλογές Εικόνας", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Εγγραφείτε με Paypal", + "LabelSyncTempPath": "Προσωρινή διαδρομή αρχείου", + "LabelSyncTempPathHelp": "Καθορίστε ένα προσαρμοσμένο φάκελο εργασίας. Τα μετατρεπόμενα πολυμέσα που δημιουργήθηκαν κατά τη διαδικασία της μετατροπής θα αποθηκεύονται εδώ.", + "LabelCustomCertificatePath": "Προσαρμοσμένη διαδρομή πιστοποιητικού ssl", + "LabelCustomCertificatePathHelp": "Διαδρομή σε αρχείο PKCS # 12 που περιέχει πιστοποιητικό και ιδιωτικό κλειδί για την ενεργοποίηση της υποστήριξης TLS σε έναν προσαρμοσμένο τομέα.", + "HeaderSetupLibrary": "Ρύθμιση Βιβλιοθηκών Πολυμέσων", + "LabelTimeLimitHours": "Χρονικό όριο (ώρες)", + "HeaderPreferredMetadataLanguage": "Προτιμώμενη Γλώσσα Μεταδεδομένων", + "LabelSaveLocalMetadata": "Αποθήκευση εικόνων στους φακέλους πολυμέσων", + "LabelSaveLocalMetadataHelp": "Η αποθήκευση εικόνων στους φακέλους πολυμέσων θα τοποθετήσει τις εικόνες δίπλα σε αρχεία πολυμέσων όπου θα είναι εύκολα προσβάσιμη εκτός του Emby. Εάν είναι απενεργοποιημένο, οι εικόνες θα αποθηκευτούν στο φάκελο μεταδεδομένων του διακομιστή.", + "TabAccess": "Πρόσβαση", + "HeaderDeviceAccess": "Πρόσβαση Συσκευής", + "OptionEnableAccessFromAllDevices": "Ενεργοποίηση πρόσβασης από όλες τις συσκευές", + "OptionEnableAccessToAllChannels": "Ενεργοποίηση πρόσβασης σε όλα τα κανάλια", + "OptionEnableAccessToAllLibraries": "Ενεργοποίηση πρόσβασης σε όλες τις βιβλιοθήκες", + "DeviceAccessHelp": "Το φιλτράρισμα της πρόσβασης στη συσκευή χρήστη θα τις αποτρέψει από τη χρήση νέων συσκευών μέχρι να εγκριθούν εδώ.", + "LabelDisplayMissingEpisodesWithinSeasons": "Εμφάνιση επεισοδίων που λείπουν μέσα στους κύκλους", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Αυτό πρέπει επίσης να είναι ενεργοποιημένο για τις βιβλιοθήκες τηλεόρασης στην εγκατάσταση του διακομιστή Emby.", + "ImportMissingEpisodesHelp": "Εάν είναι ενεργοποιημένο, οι πληροφορίες σχετικά με τα επεισόδια που λείπουν θα εισαχθούν στη βάση δεδομένων σας Emby και θα εμφανίζονται μέσα στους κύκλους και στις σειρές. Αυτό μπορεί να προκαλέσει σημαντικά μεγαλύτερες σαρώσεις βιβλιοθήκης.", + "MessageEnablingOptionLongerScans": "Η ενεργοποίηση αυτής της επιλογής ενδέχεται να έχει ως αποτέλεσμα σημαντικά μεγαλύτερες σαρώσεις βιβλιοθήκης.", + "LabelMaxParentalRating": "Μέγιστος επιτρεπόμενος γονικός χαρακτηρισμός", + "MaxParentalRatingHelp": "Το περιεχόμενο με υψηλότερο χαρακτηρισμό θα αποκρύπτεται από αυτόν το χρήστη.", + "LibraryAccessHelp": "Επιλέξτε τους φακέλους πολυμέσων που θέλετε να μοιραστείτε με αυτόν το χρήστη. Οι διαχειριστές θα μπορούν να επεξεργάζονται όλους τους φακέλους χρησιμοποιώντας τον διαχειριστή μεταδεδομένων.", + "ChannelAccessHelp": "Επιλέξτε τα κανάλια που θέλετε να μοιραστείτε με αυτόν το χρήστη. Οι διαχειριστές θα μπορούν να επεξεργάζονται όλα τα κανάλια χρησιμοποιώντας τον διαχειριστή μεταδεδομένων.", + "ImageUploadAspectRatioHelp": "1:1 Συνιστώμενη αναλογία διαστάσεων. Μόνο JPG/PNG.", + "AlreadyPaidHelp1": "Εάν έχετε ήδη πληρώσει για να εγκαταστήσετε μια παλαιότερη έκδοση του Media Browser για Android, δεν χρειάζεται να πληρώσετε ξανά για να ενεργοποιήσετε αυτήν την εφαρμογή. Κάντε κλικ στο OK για να μας στείλετε ένα email στο {0} και θα το ενεργοποιήσουμε για εσάς.", + "AlreadyPaidHelp2": "Έχετε Emby Premiere; Απλά ακυρώστε αυτό το παράθυρο διαλόγου, ρυθμίστε το Emby Premiere στον Πίνακα Ελέγχου του διακομιστή Emby στο Βοήθεια -> Emby Premiere, και θα ξεκλειδωθεί αυτόματα.", + "TabMyPlugins": "Τα πρόσθετα μου", + "TabCatalog": "Κατάλογος", + "HeaderAutomaticUpdates": "Αυτόματες Ενημερώσεις", + "Standard": "Πρότυπο", + "TabSupporterKey": "Κλειδί Emby Premiere", + "OptionHideUserLocal": "Απόκρυψη αυτού του χρήστη από τις οθόνες σύνδεσης στο τοπικό δίκτυο", + "OptionHideUserRemote": "Απόκρυψη αυτού του χρήστη από τις οθόνες σύνδεσης όταν συνδέεται απομακρυσμένα", + "OptionHideUserFromLoginHelp": "Χρήσιμο για ιδιωτικούς ή κρυφούς λογαριασμούς διαχειριστή. Ο χρήστης θα πρέπει να συνδεθεί χειροκίνητα εισάγοντας το όνομα χρήστη και τον κωδικό πρόσβασής του.", + "HideFromUnusedDevices": "Απόκρυψη αυτού του χρήστη από οθόνες σύνδεσης σε συσκευές στις οποίες δεν έχει ποτέ συνδεθεί", + "OptionDisableUser": "Απενεργοποίηση αυτού του χρήστη", + "OptionDisableUserHelp": "Αν είναι ανενεργό, ο διακομιστής δεν θα επιτρέψει καμία σύνδεση από αυτόν το χρήστη. Οι υπάρχουσες συνδέσεις θα τερματιστούν απότομα.", + "OptionAllowUserToManageServer": "Να επιτρέπεται σε αυτόν το χρήστη η διαχείριση του διακομιστή", + "HeaderFeatureAccess": "Δυνατότητα Πρόσβασης", + "OptionAllowMediaPlayback": "Να επιτρέπεται η αναπαραγωγή πολυμέσων", + "AllLibraries": "Όλες οι βιβλιοθήκες", + "HeaderAllowMediaDeletionFrom": "Να επιτρέπεται η διαγραφή πολυμέσων από", + "LiveTVRecordingManagement": "Διαχείριση Εγγραφών Ζωντανής TV", + "OptionAllowRemoteControlOthers": "Να επιτρέπεται ο απομακρυσμένος έλεγχος άλλων χρηστών", + "OptionAllowRemoteSharedDevices": "Να επιτρέπεται ο απομακρυσμένος έλεγχος των κοινόχρηστων συσκευών", + "OptionAllowRemoteSharedDevicesHelp": "Οι συσκευές DLNA θεωρούνται κοινόχρηστες μέχρι να αρχίσει ο χρήστης τον έλεγχο.", + "OptionAllowLinkSharing": "Να επιτρέπεται η κοινή χρήση μέσων κοινωνικής δικτύωσης", + "OptionAllowLinkSharingHelp": "Μόνο οι ιστοσελίδες που περιέχουν πληροφορίες πολυμέσων είναι κοινόχρηστες. Τα αρχεία πολυμέσων δεν μοιράζονται ποτέ δημοσίως. Τα κοινόχρηστα στοιχεία είναι χρονικά περιορισμένα και λήγουν μετά από {0} ημέρες.", + "OptionRelease": "Επίσημη Έκδοση", + "LabelAllowServerAutoRestartPlugin": "Να επιτρέπεται η αυτόματη επανεκκίνηση του διακομιστή για την εφαρμογή ενημερώσεων πρόσθετων", + "LabelAllowServerAutoRestartServerOrPlugin": "Να επιτρέπεται η αυτόματη επανεκκίνηση του διακομιστή για την εφαρμογή ενημερώσεων διακομιστή ή πρόσθετων", + "LabelAllowServerAutoRestartHelp": "Ο διακομιστής θα επανεκκινήσει μόνο σε περιόδους αδράνειας, όταν δεν είναι ενεργοί οι χρήστες.", + "LabelRunServerAtStartup": "Εκτέλεση διακομιστή κατά την εκκίνηση", + "LabelRunServerAtStartupHelp": "Αυτό θα ξεκινήσει το εικονίδιο του δίσκου Emby κατά την εκκίνηση των Windows. Εάν έχετε ρυθμίσει μια υπηρεσία των Windows, αφήστε το μη επιλεγμένο και ρυθμίστε τις παραμέτρους της υπηρεσίας που θα εκτελεστεί κατά την εκκίνηση.", + "ButtonSelectDirectory": "Επιλογή Φακέλου", + "LabelCachePath": "Διαδρομή μνήμης cache", + "DefaultMetadataLangaugeDescription": "Αυτές είναι οι προεπιλογές σας και μπορούν να προσαρμοστούν ανά βιβλιοθήκη.", + "LabelCachePathHelp": "Καθορίστε μια προσαρμοσμένη θέση για αρχεία cache διακομιστή, όπως εικόνες. Αφήστε το κενό για να χρησιμοποιήσετε την προεπιλογή του διακομιστή.", + "LabelDefaultRecordingFolder": "Προεπιλεγμένος φάκελος εγγραφής", + "LabelMovieRecordingFolder": "Φάκελος εγγραφής ταινιών", + "LabelSeriesRecordingFolder": "Φάκελος εγγραφής σειρών", + "SeriesRecordingFolderHelp": "(Προαιρετικό). Επιλέξτε μία βιβλιοθήκη για να αποθηκεύσετε τις εγγραφές τηλεοπτικών εκπομπών. Πρέπει να είναι βιβλιοθήκη που έχετε δημιουργήσει στη ενότητα \"Βιβλιοθήκη\" του Emby με τον τύπο περιεχομένου ορισμένο σε Τηλεοπτικές σειρές ή Μεικτό περιεχόμενο.", + "HeaderProgramData": "Δεδομένα Προγράμματος", + "RecordingFolderHelp": "Επιλέξτε την προεπιλεγμένη βιβλιοθήκη για να αποθηκεύονται εκεί οι εγγραφές. Πρέπει να είναι βιβλιοθήκη που έχετε δημιουργήσει στη ενότητα \"Βιβλιοθήκη\" του Emby με τον τύπο περιεχομένου ορισμένο σε Μεικτό περιεχόμενο.", + "MovieRecordingFolderHelp": "(Προαιρετικό). Επιλέξτε μία βιβλιοθήκη για να αποθηκεύσετε τις εγγραφές ταινιών. Πρέπει να είναι βιβλιοθήκη που έχετε δημιουργήσει στη ενότητα \"Βιβλιοθήκη\" του Emby με τον τύπο περιεχομένου ορισμένο σε Ταινίες ή Μεικτό περιεχόμενο.", + "LabelMetadataPath": "Διαδρομή μεταδεδομένων", + "LabelMetadataPathHelp": "Καθορίστε μια τοποθεσία για τα ληφθέντα γραφικά και τα μεταδεδομένα, ή αφήστε κενό για επαναφορά στην προεπιλεγμένη τοποθεσία. Εάν αλλάξετε αυτό, θα πρέπει να μεταφέρετε χειροκίνητα το περιεχόμενο από την παλιά τοποθεσία στη νέα τοποθεσία. Εάν ποτέ αλλάξετε χειροκίνητα το περιεχόμενο του φακέλου μεταδεδομένων, θα χρειαστεί να εκτελέσετε τη {0}προγραμματισμένη εργασία σάρωσης του φακέλου μεταδεδομένων{1}.", + "LabelTranscodingTempPath": "Προσωρινή διαδρομή διακωδικοποίησης (transcoding)", + "LabelTranscodingTempPathHelp": "Αυτός ο φάκελος περιέχει αρχεία εργασίας που χρησιμοποιούνται από τον διακωδικοποιητή. Καθορίστε μια προσαρμοσμένη διαδρομή ή αφήστε κενό για να χρησιμοποιήσετε την προεπιλογή στο φάκελο δεδομένων του διακομιστή.", + "GenerateVideoPreviewThumbnailsHelp": "Οι μικρογραφίες προεπισκόπησης βίντεο παρέχουν ενημερώσεις σε πραγματικό χρόνο κατά τη διάρκεια της αναζήτησης σε υποστηριζόμενες εφαρμογές. Η δημιουργία μικρογραφιών μπορεί να διαρκέσει πολλή ώρα, να προκαλέσει υψηλή χρήση του επεξεργαστή και να καταναλώσει πρόσθετο χώρο στο δίσκο.", + "AsAScheduledTask": "ως προγραμματισμένη εργασία", + "AsAScheduledTaskAndMediaAdded": "ως προγραμματισμένη εργασία και όταν προστίθενται πολυμέσα", + "ButtonRefreshGuideData": "Ανανέωση Δεδομένων Οδηγού", + "LabelNumberOfGuideDays": "Αριθμός ημερών των δεδομένων οδηγού για λήψη", + "LabelNumberOfGuideDaysHelp": "Η λήψη περισσότερων ημερών από τα δεδομένα οδηγού παρέχει τη δυνατότητα να προγραμματίσετε περαιτέρω εκ των προτέρων και να δείτε περισσότερες καταχωρήσεις, αλλά θα χρειαστεί περισσότερος χρόνος για να το κατεβάσετε. Το αυτόματο θα επιλέξει με βάση τον αριθμό των καναλιών.", + "HeaderFetchImages": "Λήψη Eικόνων", + "LabelMaxBackdropsPerItem": "Μέγιστος αριθμός σκηνικών ανά στοιχείο", + "LabelMaxScreenshotsPerItem": "Μέγιστος αριθμός στιγμιότυπων οθόνης ανά στοιχείο:", + "LabelMinBackdropDownloadWidth": "Ελάχιστο πλάτος λήψης φόντου", + "LabelMinScreenshotDownloadWidth": "Ελάχιστο πλάτος λήψης οθόνης", + "ButtonAddScheduledTaskTrigger": "Προσθήκη Διακόπτη", + "ButtonAdd": "Προσθήκη", + "LabelTriggerType": "Τύπος Διακόπτη", + "OptionOnInterval": "Σε ένα διάστημα", + "OptionAfterSystemEvent": "Μετά από ένα συμβάν συστήματος", + "LabelDay": "Ημέρα", + "LabelTime": "Ώρα", + "LabelEvent": "Γεγονός", + "OptionWakeFromSleep": "Επανεργοποιήση", + "Every": "Κάθε", + "LabelEnableRealtimeMonitor": "Ενεργοποίηση παρακολούθησης σε πραγματικό χρόνο", + "LabelEnableRealtimeMonitorHelp": "Οι αλλαγές στα αρχεία θα υποβληθούν σε επεξεργασία αμέσως, σε υποστηριζόμενα αρχεία συστήματος.", + "Community": "Κοινότητα", + "HeaderEmbyNews": "Νέα Emby", + "LabelFriendlyServerName": "Όνομα διακομιστή", + "LabelFriendlyServerNameHelp": "Αυτό το όνομα θα χρησιμοποιηθεί για την αναγνώριση αυτού του διακομιστή. Αν παραμείνει κενό, θα χρησιμοποιηθεί το όνομα του υπολογιστή.", + "LabelPreferredDisplayLanguage": "Προτιμώμενη γλώσσα εμφάνισης", + "LabelPreferredDisplayLanguageHelp": "Η μετάφραση του Emby είναι ένα συνεχιζόμενο έργο.", + "LabelReadHowYouCanContribute": "Μάθετε πώς μπορείτε να συμβάλλετε.", + "LabelCustomCss": "Προσαρμοσμένο css", + "LabelCustomCssHelp": "Εφαρμόστε το δικό σας προσαρμοσμένο css στην διεπαφή ιστού.", + "LabelLocalHttpServerPortNumber": "Τοπικός αριθμός πόρτας http:", + "LabelLocalHttpServerPortNumberHelp": "Ο αριθμός θύρας tcp που πρέπει να συνδέσει ο διακομιστής http του Emby.", + "LabelPublicHttpPort": "Δημόσιος αριθμός θύρας http", + "LabelPublicHttpPortHelp": "Ο αριθμός δημόσιας θύρας που πρέπει να αντιστοιχιστεί στην τοπική θύρα http.", + "LabelPublicHttpsPort": "Αριθμός δημόσιας https πόρτας", + "LabelPublicHttpsPortHelp": "Ο αριθμός δημόσιας θύρας που πρέπει να αντιστοιχιστεί στην τοπική θύρα https.", + "RequireHttps": "Να απαιτείται https για εξωτερικές συνδέσεις", + "RequireHttpsHelp": "Αν είναι ενεργοποιημένη, οι συνδέσεις μέσω του http θα μεταφερθούν στο https.", + "LabelHttpsPort": "Τοπικός αριθμός πόρτας https", + "LabelHttpsPortHelp": "Ο αριθμός πόρτας tcp που πρέπει να συνδεθεί ο διακομιστής https του Emby.", + "LabelEnableAutomaticPortMap": "Ενεργοποίηση αυτόματης αντιστοίχισης θυρών", + "LabelEnableAutomaticPortMapHelp": "To UPnP επιτρέπει την αυτόματη ρύθμιση του δρομολογητή για εύκολη απομακρυσμένη πρόσβαση. Αυτή η ρύθμιση μπορεί να μην δουλέψει με κάποια μοντέλα δρομολογητών", + "LabelExternalDDNS": "Εξωτερικό domain", + "LabelExternalDDNSHelp": "Εάν έχετε ένα δυναμικό DNS, πληκτρολογήστε το εδώ. Οι εφαρμογές Emby θα το χρησιμοποιούν όταν συνδέονται εξ αποστάσεως. Αυτό το πεδίο απαιτείται όταν χρησιμοποιείται με ένα προσαρμοσμένο πιστοποιητικό SSL. Παράδειγμα: mydomain.com.", + "LabelMinResumePercentage": "Ελάχιστο ποσοστό συνέχισης", + "LabelMaxResumePercentage": "Μέγιστο ποσοστό συνέχισης", + "LabelMinResumeDuration": "Ελάχιστη διάρκεια συνέχισης (δευτερόλεπτα)", + "LabelMinResumePercentageHelp": "Οι τίτλοι θεωρούνται ότι δεν έχουν αναπαραχθεί εάν σταματήσουν πριν από αυτό το διάστημα", + "LabelMaxResumePercentageHelp": "Οι τίτλοι θεωρούνται ότι έχουν πλήρως αναπαραχθεί εάν σταματήσουν μετά από αυτό το διάστημα", + "LabelMinResumeDurationHelp": "Οι τίτλοι μικρότεροι από αυτό δεν θα επαναληφθούν", + "HeaderStatus": "Κατάσταση", + "Subscriptions": "Συνδρομές", + "LabelEndingEpisodeNumber": "Αριθμός τελευταίου επεισοδίου", + "LabelEndingEpisodeNumberHelp": "Απαιτείται μόνο για αρχεία πολλαπλών επεισοδίων", + "HeaderSupportTheTeam": "Υποστηρίξτε την Ομάδα Emby", + "HeaderSupportTheTeamHelp": "Βοηθήστε στη διασφάλιση της συνεχούς ανάπτυξης αυτού του έργου με την αγορά του Emby Premiere. Ένα μέρος του συνόλου των εσόδων θα συμβάλλει σε άλλα δωρεάν εργαλεία από τα οποία εξαρτάμε.", + "DonationNextStep": "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση e-mail για να στείλετε σας Emby Premiere Κλειδί", + "HeaderRunningTasks": "Προγραμματισμένες Εργασίες", + "ButtonUpdateNow": "Ενημέρωση Τώρα", + "PleaseUpdateManually": "Απενεργοποιήστε το Emby Server και εγκαταστήστε την τελευταία έκδοση.", + "ServerUpToDate": "Ο διακομιστής Emby είναι ενημερωμένος", + "MessagePleaseRestartServerToFinishUpdating": "Κάντε επανεκκίνηση του διακομιστή για να ολοκληρωθεί η εφαρμογή ενημερώσεων.", + "LabelDownMixAudioScale": "Ενίσχυση ήχου όταν πραγματοποιείται downmixing", + "LabelDownMixAudioScaleHelp": "Ενίσχυση ήχου όταν πραγματοποιείται downmixing. Επιλέξτε 1 για την διατήρηση της αρχικής τιμής έντασης.", + "HeaderForgotKey": "Ξεχάσατε τον κωδικό", + "LabelSupporterEmailAddress": "Η διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποιήθηκε για την αγορά του κλειδιού.", + "ButtonRetrieveKey": "Ανάκτηση Κλειδιού", + "LabelSupporterKey": "Κλειδί Emby Premiere (επικόλληση από email)", + "LabelSupporterKeyHelp": "Εισαγάγετε το κλειδί Emby Premiere για να αρχίσετε να απολαμβάνετε επιπλέον προνόμια.", + "MessageInvalidKey": "Το κλειδί Emby Premiere λείπει ή δεν είναι έγκυρο.", + "ErrorMessageInvalidKey": "Για να καταχωρηθεί οποιοδήποτε premium περιεχόμενο, πρέπει να έχετε επίσης μια ενεργή συνδρομή Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Παράλειψη εάν το βίντεο περιέχει ήδη ενσωματωμένους υπότιτλους", + "LabelSkipIfGraphicalSubsPresentHelp": "Κρατώντας εκδόσεις κειμένου των υπότιτλων θα οδηγήσει σε πιο αποτελεσματική παράδοση και θα μειώσει την πιθανότητα της διακωδικοποίησης (transcoding) βίντεο.", + "HeaderDownloadLanguages": "Λήψη Γλωσσών", + "LabelSkipIfAudioTrackPresent": "Παράλειψη εάν το προεπιλεγμένο ηχητικό κομμάτι ταιριάζει με τη γλώσσα λήψης", + "LabelSkipIfAudioTrackPresentHelp": "Καταργήστε αυτήν την επιλογή για να εξασφαλίσετε ότι όλα τα βίντεο έχουν υπότιτλους, ανεξάρτητα από τη γλώσσα ήχου.", + "SendMessage": "Αποστολή Μηνύματος", + "HeaderSendMessage": "Αποστολή Μηνύματος", + "ButtonSend": "Αποστολή", + "LabelMessageText": "Κείμενο Μηνύματος:", + "LabelMessageTitle": "Τίτλος Μηνύματος:", + "ButtonEditOtherUserPreferences": "Επεξεργαστείτε το προφίλ, την εικόνα και τις προσωπικές προτιμήσεις αυτού του χρήστη.", + "LabelLoginDisclaimer": "Αποποίηση ευθυνών:", + "LabelLoginDisclaimerHelp": "Αυτό θα εμφανιστεί στο κάτω μέρος της σελίδας σύνδεσης.", + "HeaderTranscodingTemporaryFiles": "Προσωρινά Αρχεία Διακωδικοποίησης (Τranscoding)", + "HeaderApiKeys": "Κλειδιά Api", + "HeaderApiKeysHelp": "Οι εξωτερικές εφαρμογές πρέπει να διαθέτουν ένα κλειδί Api προκειμένου να επικοινωνούν με τον Emby Server. Τα κλειδιά εκδίδονται με σύνδεση με λογαριασμό Emby ή με χειροκίνητη χορήγηση της εφαρμογής κλειδιού.", + "HeaderApiKey": "Κλειδί Api", + "HeaderResumeSettings": "Ρυθμίσεις επαναφοράς", + "HeaderFetcherSettings": "Ρυθμίσεις λήπτη", + "HeaderActivity": "Δραστηριότητα", + "ButtonPurchase": "Αγορά", + "HeaderInstall": "Εγκατάσταση", + "LabelSelectVersionToInstall": "Επιλέξτε έκδοση για εγκατάσταση:", + "LinkLearnMoreAboutSubscription": "Μάθετε για το Emby Premiere", + "MessagePluginRequiresSubscription": "Γι' αυτό το πρόσθετο θα απαιτείται μια ενεργή συνδρομή Emby Premiere μετά από την ελεύθερη δοκιμή 14 ημερών.", + "MessagePremiumPluginRequiresMembership": "Αυτό το πρόσθετο θα χρειαστεί μια ενεργή συνδρομή Emby Premiere για να το αγοράσετε μετά από την δωρεάν δοκιμή 14 ημερών.", + "HeaderDeveloperInfo": "Πληροφορίες Προγραμματιστή", + "HeaderRevisionHistory": "Ιστορικό αναθεωρήσεων", + "ButtonViewWebsite": "Εμφάνιση ιστοσελίδας", + "OptionSaveMetadataAsHidden": "Αποθηκεύστε τα μεταδεδομένα και τις εικόνες ως κρυφά αρχεία", + "LabelConnectEmail": "(Προαιρετικό) Διεύθυνση ηλεκτρονικού ταχυδρομείου Emby Connect", + "LabelConnectEmailHelp": "Προαιρετική σύνδεση αυτού του τοπικού χρήστη με έναν λογαριασμό Emby Connect για να ενεργοποιηθεί πρόσβαση με εύκολη σύνδεση από οποιαδήποτε εφαρμογή Emby χωρίς να χρειάζεται να γνωρίζει τη διεύθυνση IP του διακομιστή.", + "ButtonLearnMoreAboutEmbyConnect": "Μάθετε περισσότερα σχετικά με το Emby Connect", + "LabelDateAddedBehavior": "Συμπεριφορά ημερομηνίας προσθήκης για νέο περιεχόμενο:", + "OptionDateAddedImportTime": "Χρήση της ημερομηνίας σάρωσης στη βιβλιοθήκη", + "OptionDateAddedFileTime": "Χρήση της ημερομηνίας δημιουργίας αρχείου", + "LabelDateAddedBehaviorHelp": "Εάν υπάρχει μια τιμή μεταδεδομένων, θα χρησιμοποιείται πάντα πριν από οποιαδήποτε από αυτές τις επιλογές.", + "HeaderLibrarySettings": "Ρυθμίσεις Βιβλιοθήκης", + "HeaderAutomaticSubtitleDownloads": "Αυτόματες Λήψεις Υπότιτλων", + "HeaderCameraUploadHelp": "Οι εφαρμογές Emby μπορούν αυτόματα να κάνουν upload τις φωτογραφίες που λαμβάνονται από τις κινητές συσκευές σας στον διακομιστή Emby.", + "LabelCameraUploadPath": "Διαδρομή upload Κάμερας:", + "LabelCameraUploadPathHelp": "Επιλέξτε μια προσαρμοσμένη διαδρομή αποστολής. Αυτό θα αντικαταστήσει τις προεπιλεγμένες ρυθμίσεις που έχουν οριστεί στην ενότητα Αποστολή Κάμερας. Εάν μείνει κενό, θα χρησιμοποιηθεί ένας προεπιλεγμένος φάκελος. Εάν χρησιμοποιείτε μια προσαρμοσμένη διαδρομή, θα πρέπει επίσης να προστεθεί ως βιβλιοθήκη στη ρύθμιση βιβλιοθήκης Emby.", + "DefaultCameraUploadPathHelp": "Επιλέξτε μια προσαρμοσμένη διαδρομή αποστολής. Εάν μείνει κενό, θα χρησιμοποιηθεί ένας προεπιλεγμένος φάκελος. Εάν χρησιμοποιείτε μια προσαρμοσμένη διαδρομή, θα πρέπει επίσης να προστεθεί ως βιβλιοθήκη στη ρύθμιση βιβλιοθήκης Emby.", + "LabelCreateCameraUploadSubfolder": "Δημιουργία υποφακέλου για κάθε συσκευή", + "LabelCreateCameraUploadSubfolderHelp": "Συγκεκριμένοι φάκελοι μπορούν να αντιστοιχιστούν σε μια συσκευή παντώντας επάνω της στη σελίδα Συσκευές.", + "LabelCustomDeviceDisplayNameHelp": "Προσθέστε ένα προσαρμοσμένο όνομα εμφάνισης ή αφήστε κενό για χρήση του ονόματος που αναφέρεται από τη συσκευή.", + "TabParentalControl": "Γονικός έλεγχος", + "HeaderAccessSchedule": "Χρονοδιάγραμμα πρόσβασης", + "HeaderAccessScheduleHelp": "Δημιουργήστε ένα χρονοδιάγραμμα πρόσβασης για να περιορίσετε την πρόσβαση σε συγκεκριμένες ώρες.", + "HeaderLibraryAccess": "Πρόσβαση στη βιβλιοθήκη", + "HeaderChannelAccess": "Πρόσβαση καναλιού", + "LabelForgotPasswordUsernameHelp": "Εισαγωγή όνομα χρήστη,αν το θυμάστε.", + "TitlePasswordReset": "Επαναφορά του κωδικού πρόσβασης", + "HeaderBlockItemsWithNoRating": "Αποκλεισμός στοιχείων χωρίς ή μη αναγνωρισμένων πληροφοριών αξιολόγησης:", + "LabelBlockContentWithTags": "Αποκλεισμός Στοιχείων Με Ετικέτες:", + "LabelTagRestrictionMode": "Λειτουργία περιορισμού ετικέτας:", + "BlockItemsWithTheseTags": "Αποκλεισμός αντικειμένων με αυτές τις ετικέτες:", + "AllowItemsWithTheseTags": "Να επιτρέπονται μόνο αντικείμενα με αυτές τις ετικέτες", + "OptionAllowContentDownloading": "Επιτρέπετε η λήψη πολυμέσων", + "LabelNewUserNameHelp": "Τα ονόματα χρηστών μπορούν να περιέχουν γράμματα (α-ζ), αριθμούς (0-9), παύλες (-), υποσημειώσεις (_), αποστάξεις (') και περιόδους", + "HeaderThisUserIsCurrentlyDisabled": "Αυτός ο χρήστης είναι αυτή τη στιγμή απενεργοποιημένος. Για να ενργοποιήσετε αυτό το χρήστη, παρακαλώ δείτε την επιλογή στο κάτω μέρος αυτής της σελίδας.", + "OptionAllowSyncTranscoding": "Επιτρέψτε τη λήψη πολυμέσου που χρειάζεται διακωδικοποίηση (transcoding)", + "AllowMediaConversion": "Δυνατότητα μετατροπής πολυμέσων", + "AllowMediaConversionHelp": "Εκχώρηση ή άρνηση πρόσβασης στη δυνατότητα μετατροπής πολυμέσων.", + "OptionAllowAudioPlaybackTranscoding": "Επιτρέψτε την διακωδικοποίηση (transcoding) μουσικής, εάν είναι απαραίτητο, κατά την αναπαραγωγή πολυμέσων", + "OptionAllowVideoPlaybackTranscoding": "Επιτρέψτε τη διακωδικοποίηση βίντεο, εάν είναι απαραίτητο, κατά την αναπαραγωγή πολυμέσων", + "OptionAllowVideoPlaybackRemuxing": "Επιτρέψε την αλλαγή της περιλαμβανόμενης μορφής (container formats), εάν απαιτείται, κατά τη διάρκεια της αναπαραγωγής πολυμέσων", + "OptionAllowMediaPlaybackTranscodingHelp": "Ο περιορισμός της πρόσβασης στη διακωδικοποίηση (transcoding) \n θα απενεργοποιήσει την επιλογή ποιότητας και μπορεί να προκαλέσει αποτυχίες αναπαραγωγής στις εφαρμογές Emby λόγω μη υποστηριζόμενων μορφών πολυμέσων ή ανεπαρκούς εύρους ζώνης δικτύου.", + "LabelRemoteClientBitrateLimit": "Όριο ταχύτητας ροής στο Διαδίκτυο (Mbps):", + "LabelRemoteClientBitrateLimitHelp": "Ένα προαιρετικό όριο bitrate ανά δευτερόλεπτο για όλες τις συσκευές δικτύου. Αυτό είναι χρήσιμο για να αποτρέψετε τις συσκευές να ζητούν υψηλότερο bitrate από ό, τι μπορεί να χειριστεί η σύνδεσή σας στο διαδίκτυο. Αυτό μπορεί να έχει ως αποτέλεσμα αυξημένο φορτίο CPU στο διακομιστή σας, προκειμένου να μετατρέψετε τα βίντεο σε κίνηση σε χαμηλότερο bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "Αυτό θα αντικαταστήσει την προκαθορισμένη καθολική τιμή που έχει οριστεί στις ρυθμίσεις αναπαραγωγής του διακομιστή.", + "OptionEnableFullSpeedConversion": "Ενεργοποίηση πλήρης ταχύτητα στη μετατροπή", + "OptionEnableFullSpeedConversionHelp": "Από προεπιλογή, η μετατροπή συγχρονισμού εκτελείται με χαμηλή ταχύτητα για να ελαχιστοποιηθεί η κατανάλωση πόρων.", + "OptionEnableAutomaticServerUpdates": "Ενεργοποίηση αυτόματων ενημερώσεων διακομιστή", + "HeaderTVSources": "Πηγές TV", + "HeaderAddTvSource": "Προσθήκη Πηγής TV", + "LabelTunerIpAddress": "Διεύθυνση IP του δέκτη:", + "HeaderGuideProviders": "Πάροχοι Δεδομένων Οδηγού TV", + "HeaderAddGuideSource": "Προσθήκη Πηγής Δεδομένων Οδηγού", + "LabelZipCode": "Ταχυδ/κός κώδικας:", + "LabelLineup": "Σειρά:", + "LabelImportOnlyFavoriteChannels": "Περιορισμός σε κανάλια που έχουν επισημανθεί ως αγαπημένα", + "ImportFavoriteChannelsHelp": "Αν ενεργοποιηθεί, μόνο τα κανάλια που είναι σημειωμένα στο δέκτη ως αγαπημένα θα εισαχθούν.", + "HeaderDefaultRecordingSettings": "Προεπιλεγμένες ρυθμίσεις εγγραφής", + "LabelDisplayName": "Εμφάνιση ονόματος:", + "OptionDownloadImagesInAdvance": "Κατεβάστε εικόνες εκ των προτέρων", + "OptionDownloadImagesInAdvanceHelp": "Από προεπιλογή, οι περισσότερες εικόνες μεταφορτώνονται μόνο όταν ζητούνται από μια εφαρμογή Emby. Ενεργοποιήστε αυτήν την επιλογή για να κάνετε λήψη όλων των εικόνων εκ των προτέρων, καθώς εισάγονται νέα μέσα. Αυτό μπορεί να προκαλέσει σημαντικά μεγαλύτερες σαρώσεις βιβλιοθήκης.", + "MessageThankYouForSupporting": "Ευχαριστούμε για την υποστήριξη σας", + "FileReadCancelled": "Η ανάγνωση αρχείου ακυρώθηκε.", + "FileNotFound": "Το αρχείο δεν βρέθηκε", + "FileReadError": "Παρουσιάστηκε σφάλμα κατά την ανάγνωση του αρχείου", + "NoPluginConfigurationMessage": "Αυτό το plugin δεν απαιτεί ρυθμίσεις.", + "HeaderNewApiKey": "Νέο κλειδί Api", + "HeaderNewApiKeyHelp": "Δώστε άδεια στην εφαρμογή για επικοινωνία με τον Emby Server.", + "MessageKeyEmailedTo": "Το κλειδί στάλθηκε στο {0}.", + "HeaderConfirmation": "Επιβεβαίωση", + "MessageKeyUpdated": "Ευχαριστούμε.Το κλειδί σας ενημερώθηκε.", + "MessageKeyRemoved": "Ευχαριστούμε.Το κλειδί σας διαγράφηκε.", + "TextEnjoyBonusFeatures": "Απολαύστε μπόνους χαρακτηριστικά", + "MessageErrorLoadingSupporterInfo": "Παρουσιάστηκε σφάλμα κατά τη φόρτωση των πληροφοριών Emby Premiere. Παρακαλώ δοκιμάστε ξανά αργότερα.", + "ValueTimeLimitSingleHour": "Όριο χρόνου: 1 ώρα", + "ValueTimeLimitMultiHour": "Όριο χρόνου: {0} ώρες", + "General": "Γενικά", + "HeaderScreenSavers": "Προφυλάξεις οθόνης", + "Reporting": "Αναφορές", + "LabelStopping": "Σταματάει", + "HeaderSelectCertificatePath": "Επιλογή διαδρομής πιστοποιητικού", + "HeaderSupporterBenefit": "Μια ενεργή συνδρομή Emby Premiere παρέχει πρόσθετα πλεονεκτήματα όπως πρόσβαση στο Emby DVR, πολυμέσα εκτός σύνδεσης, premium πρόσθετα και άλλα. {0}Μάθετε περισσότερα{1}.", + "LabelAbortedByServerShutdown": "(Ματαιώθηκε λόγω τερματισμού του διακομιστή)", + "LabelScheduledTaskLastRan": "Τελευταία εκτέλεση {0}, διάρκεια {1}.", + "HeaderDeleteTaskTrigger": "Διαγραφή Εκκινητή Εργασίας", + "MessageDeleteTaskTrigger": "Σίγουρα θέλετε να διαγράψετε αυτό τον εκκινητή εργασίας;", + "MessageNoPluginsDueToAppStore": "Για να διαχειριστείτε τα πρόσθετα, παρακαλούμε χρησιμοποιήστε την εφαρμογή Emby Web.", + "LabelVersionInstalled": "{0} εγκαταστήθηκε", + "HeaderSelectServerCachePath": "Επιλογή διαδρομής cache διακομιστή", + "HeaderSelectTranscodingPath": "Επιλογή Προσωρινής Διαδρομής Διακωδικοποίησης (Transcoding)", + "HeaderSelectMetadataPath": "Επιλογή διαδρομής μεταδεδομένων", + "HeaderSelectServerCachePathHelp": "Αναζητήστε ή εισαγάγετε τη διαδρομή που θα χρησιμοποιηθεί για τα αρχεία cache του διακομιστή. Ο φάκελος πρέπει να είναι εγγράψιμος.", + "HeaderSelectTranscodingPathHelp": "Αναζητήστε ή εισαγάγετε τη διαδρομή που θα χρησιμοποιηθεί για τα προσωρινά αρχεία διακωδικοποίησης (transcoding). Ο φάκελος πρέπει να είναι εγγράψιμος.", + "HeaderSelectMetadataPathHelp": "Αναζητήστε ή εισαγάγετε τη διαδρομή που θα χρησιμοποιηθεί για την αποθήκευση των μεταδεδομένων. Ο φάκελος πρέπει να είναι εγγράψιμος.", + "MessageConfirmRestart": "Είστε βέβαιοι ότι θέλετε να κάνετε επανεκκίνηση του διακομιστή Emby;", + "MessageConfirmShutdown": "Είστε βέβαιοι ότι θέλετε να κάνετε τερματισμό λειτουργίας του διακομιστή Emby;", + "LabelLocalAccessUrl": "Πρόσβαση μέσα από το σπίτι (LAN): {0}", + "LabelRemoteAccessUrl": "Απομακρυσμένη πρόσβαση (WAN): {0}", + "LabelRunningOnPort": "Εκτελείται στη θύρα http {0}.", + "LabelRunningOnPorts": "Εκτελείται στη θύρα http {0} και στη θύρα https {1}.", + "LabelCurrentPath": "Τρέχουσα διαδρομή:", + "HeaderSelectMediaPath": "Επιλογή Διαδρομής Πολυμέσων", + "HeaderSelectPath": "Επιλογή Διαδρομής", + "MessageDirectoryPickerInstruction": "Οι διαδρομές δικτύου μπορούν να εισαχθούν χειροκίνητα σε περίπτωση που το κουμπί Δίκτυο αποτύχει να εντοπίσει τις συσκευές σας. Για παράδειγμα, {0} ή {1}.", + "MessageDirectoryPickerBSDInstruction": "Για το BSD, ίσως να χρειαστεί να ρυθμίσετε το χώρο αποθήκευσης μέσα από το jail του Freenas για να επιτραπεί πρόσβαση από το Emby.", + "MessageDirectoryPickerLinuxInstruction": "Για το Linux σε Arch Linux, CentOS, Debian, Fedora, OpenSuse, ή Ubuntu, πρέπει να δώσετε στον συστεμικό χρήστη του Emby τουλάχιστον δικαιώματα ανάγνωσης στις τοποθεσίες αποθήκευσης.", + "MetadataManager": "Ανανέωση μεταδεδομένων ", + "OptionBlockLiveTvChannels": "ΚΑΝΑΛΙΑ ΖΩΝΤΑΝΗΣ ΤΗΛΕΟΡΑΣΗΣ", + "OptionBlockChannelContent": "Προτιμώμενη ποιότητα καναλιού διαδικτύου:", + "ButtonRevoke": "Ανακαλώ", + "MessageConfirmRevokeApiKey": "Είστε βέβαιοι ότι θέλετε να ανακαλέσετε αυτό το κλειδί api; Η σύνδεση της εφαρμογής με το Emby Server θα τερματιστεί απότομα.", + "HeaderConfirmRevokeApiKey": "Ανακαλέστε το κλειδί Api", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Παρακαλώ αποδεχτείτε τους Όρους Χρήσης και Προστασίας Δεδομένων πριν προχωρήσετε.", + "HeaderChangeFolderType": "Αλλαγή τύπου περιεχομένου", + "HeaderChangeFolderTypeHelp": "Για να αλλάξετε τον τύπο, καταργήστε και δημιουργήστε ξανά τη βιβλιοθήκη με το νέο τύπο.", + "HeaderAlert": "Ειδοποίηση", + "MessagePleaseRestart": "Παρακαλώ κάντε επανεκκίνηση για να ολοκληρώσετε την ενημέρωση.", + "OptionHomeVideos": "Προσωπικά βίντεο & φωτογραφίες", + "OptionBooks": "Βιβλία", + "HeaderMetadataReaders": "Αναγνώστες Μεταδεδομένων", + "LabelMetadataReadersHelp": "Ταξινομήστε με σειρά προτεραιότητας τις τοπικές πηγές μεταδεδομένων. Το πρώτο αρχείο που θα βρεθεί θα διαβαστεί.", + "HeaderSubtitleDownloaders": "Προγράμματα Λήψης Υπότιτλων", + "SubtitleDownloadersHelp": "Ενεργοποιήστε και ταξινομήστε με σειρά προτεραιότητας τις προτιμώμενες πηγές λήψης υπότιτλων. Περισσότεροι πάροχοι υπότιτλων μπορούν να εγκατασταθούν με τη χρήση του καταλόγου πρόσθετων Emby.", + "LabelMetadataDownloaders": "Εργαλεία λήψης μεταδεδομένων:", + "LabelMetadataDownloadersHelp": "Ενεργοποιήστε και ταξινομήστε με σειρά προτεραιότητας τις προτιμώμενες πηγές λήψης μεταδεδομένων. Οι πηγές με χαμηλότερη προτεραιότητα θα χρησιμοποιούνται μόνο για να συμπληρώνουν ελλειπείς πληροφορίες.", + "HeaderMetadataSavers": "Αποθηκευτές Μεταδεδομένων", + "LabelMetadataSaversHelp": "Επιλέξτε τη μορφή αρχείων στην οποία θα αποθηκεύετε τα μεταδεδομένα.", + "LabelImageFetchers": "Λήπτες εικόνων:", + "LabelImageFetchersHelp": "Ενεργοποιήστε και βάλτε σε σειρά προτεραιότητας τους προτιμώμενους λήπτες εικόνων.", + "PersonTypePerson": "Άτομο", + "HeaderRemoveMediaLocation": "Κατάργηση θέσης πολυμέσων", + "MessageConfirmRemoveMediaLocation": "Είστε βέβαιοι ότι θέλετε να καταργήσετε αυτήν τη θέση;", + "LabelNewName": "Νέο όνομα:", + "HeaderRemoveLibrary": "Αφαίρεση Βιβλιοθήκης", + "MessageAreYouSureYouWishToRemoveLibrary": "Θέλετε σίγουρα να αφαιρέσετε την βιβλιοθήκη \"{0}\" από το διακομιστή σας Emby; Τα αρχεία πολυμέσων σας δεν θα επηρεαστούν.", + "ButtonRename": "Μετονομασία", + "HeaderPluginInstallation": "Εγκατάσταση προσθέτου", + "MessageTrialExpired": "Η δοκιμαστική περίοδος για αυτήν τη λειτουργία έχει λήξει", + "MessageTrialWillExpireIn": "Η δοκιμαστική περίοδος για αυτήν τη λειτουργία θα λήξει στις {0} ημέρες", + "ValuePriceUSD": "Τιμή: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Είστε εγγεγραμμένοι για αυτήν τη δυνατότητα και θα μπορείτε να συνεχίσετε να τη χρησιμοποιείτε με μια ενεργή συνδρομή Emby Premiere.", + "HeaderSelectExternalPlayer": "Επιλογή εξωτερικού Player", + "HeaderExternalPlayerPlayback": "Εξωτερικός player αναπαραγωγή", + "HeaderThankYou": "Ευχαριστούμε", + "HeaderSelectUploadPath": "Επιλογή Διαδρομής Μεταφόρτωσης", + "ErrorMessageStartHourGreaterThanEnd": "Η ώρα λήξης πρέπει να είναι μεγαλύτερη από την ώρα έναρξης.", + "MessagePluginConfigurationRequiresLocalAccess": "Για να ρυθμίσετε αυτό το πρόσθετο παρακαλώ συνδεθείτε στον τοπικό διακομιστή σας άμεσα.", + "MovieLibraryHelp": "Δείτε τον {0}Οδηγό ονομασίας ταινιών Emby{1}.", + "TvLibraryHelp": "Δείτε τον {0}Οδηγό ονομασίας TV Emby{1}.", + "BookLibraryHelp": "Τα εγχειρίδια υποστηρίζονται. Δείτε τον {0}Οδηγό ονομασίας βιβλίων Emby{1}.", + "MessageGamePluginRequired": "Απαιτεί την εγκατάσταση της προσθήκης GameBrowser", + "HeaderUnlockApp": "Ξεκλείδωμα εφαρμογής", + "MessagePaymentServicesUnavailable": "Οι υπηρεσίες πληρωμών δεν είναι διαθέσιμες αυτήν τη στιγμή. Παρακαλώ δοκιμάστε ξανά αργότερα.", + "NoNewDevicesFound": "Δεν βρέθηκαν νέες συσκευές. Για να προσθέσετε ένα νέο δέκτη, κλείστε αυτό το παράθυρο διαλόγου και εισάγετε τις πληροφορίες της συσκευής χειροκίνητα.", + "MessageConfirmDeleteTunerDevice": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν τη συσκευή;", + "MessageConfirmDeleteGuideProvider": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον πάροχο δεδομένων;", + "HeaderDeleteProvider": "Διαγραφή Παρόχου", + "ErrorAddingTunerDevice": "Παρουσιάστηκε ένα σφάλμα κατά την προσθήκη του δέκτη. Βεβαιωθείτε ότι είναι προσβάσιμος και προσπαθήστε ξανά.", + "ErrorSavingTvProvider": "Παρουσιάστηκε ένα σφάλμα κατά την αποθήκευση του παρόχου TV. Βεβαιωθείτε ότι είναι προσβάσιμος και προσπαθήστε ξανά.", + "ErrorGettingTvLineups": "Παρουσιάστηκε ένα σφάλμα κατά τη λήψη του προγράμματος TV. Παρακαλώ βεβαιωθείτε ότι οι πληροφορίες σας είναι σωστές και δοκιμάστε ξανά.", + "MessageCreateAccountAt": "Δημιουργία ενός λογαριασμού στο {0}", + "ErrorPleaseSelectLineup": "Παρακαλώ επιλέξτε ένα πρόγραμμα και δοκιμάστε ξανά. Αν δεν υπάρχουν διαθέσιμα προγράμματα, παρακαλώ βεβαιωθείτε ότι το όνομα χρήστη, ο κωδικός και ο ταχυδρομικός κώδικας είναι σωστά.", + "ErrorValidatingSupporterInfo": "Παρουσιάστηκε σφάλμα κατά την επικύρωση των πληροφοριών σας για το Emby Premiere. Παρακαλώ δοκιμάστε ξανά αργότερα.", + "LabelLocalSyncStatusValue": "Κατάσταση: {0}", + "HeaderTopPlugins": "Κορυφαία Πρόσθετα", + "ForAdditionalLiveTvOptions": "Περιηγηθείτε στον {0}κατάλογο πρόσθετων{1} του Emby για να εγκαταστήσετε πρόσθετους παρόχους ζωντανής TV.", + "AddUser": "Προσθήκη χρήστη", + "HeaderEmailAddress": "Διεύθυνση ηλεκτρονικού ταχυδρομείου", + "NumLocationsValue": "{0} φάκελοι", + "PleaseAddAtLeastOneFolder": "Παρακαλώ προσθέστε τουλάχιστον ένα φάκελο σε αυτή τη βιβλιοθήκη πατώντας το κουμπί Προσθήκη.", + "ErrorAddingMediaPathToVirtualFolder": "Παρουσιάστηκε σφάλμα κατά την προσθήκη της διαδρομής πολυμέσων. Βεβαιωθείτε ότι η διαδρομή είναι έγκυρη και ότι η διαδικασία του διακομιστή Emby έχει πρόσβαση σε αυτήν τη θέση.", + "ErrorAddingEmbyConnectAccount3": "Ο λογαριασμός Emby είναι ήδη συνδεδεμένος με έναν υπάρχοντα τοπικό χρήστη. Ένας λογαριασμός Emby μπορεί να συνδεθεί μόνο με έναν τοπικό χρήστη κάθε φορά.", + "HeaderConfirmPluginInstallation": "Επιβεβαιώστε την εγκατάσταση της προσθήκης", + "PleaseConfirmPluginInstallation": "Παρακαλώ κάντε κλικ στο OK για να επιβεβαιώσετε ότι έχετε διαβάσει τα ανωτέρω και επιθυμείτε να προχωρήσετε με την εγκατάσταση του πρόσθετου.", + "MessagePluginInstallDisclaimer": "Τα πρόσθετα που δημιουργούνται από τα μέλη της κοινότητας Emby είναι ένας τέλειος τρόπος να βελτιώσετε την εμπειρία σας με το Emby με πρόσθετες λειτουργίες και πλεονεκτήματα. Πριν την εγκατάσταση, παρακαλούμε να έχετε υπόψη σας τις επιπτώσεις που μπορεί να έχουν στο διαμοκιστή σας Emby, όπως μεγαλύτερους χρόνους σάρωσης της βιβλιοθήκης σας, πρόσθετες απαιτήσεις για επεξεργασία στο παρασκήνιο και μειωμένη σταθερότητα του συστήματος.", + "HardwareAccelerationWarning": "Η ενεργοποίηση της επιτάχυνσης υλικού ενδέχεται να προκαλέσει αστάθεια σε ορισμένα περιβάλλοντα. Βεβαιωθείτε ότι το λειτουργικό σας σύστημα και τα προγράμματα οδήγησης βίντεο είναι πλήρως ενημερωμένα. Αν δυσκολεύεστε να αναπαραγάγετε βίντεο μετά την ενεργοποίηση αυτής της ρύθμισης, θα πρέπει να αλλάξετε τη ρύθμιση ξανά σε αυτόματη.", + "ValueExample": "Παράδειγμα: {0}", + "LabelFileOrUrl": "Αρχείο ή url:", + "OptionEnableForAllTuners": "Ενεργοποίηση για όλους τους δέκτες", + "HeaderTuners": "Δέκτες", + "DrmChannelsNotImported": "Κανάλια με DRM δεν θα εισαχθούν.", + "LabelAllowHWTranscoding": "Δυνατότητα διακωδικοποίησης με επιτάχυνση υλικού", + "AllowHWTranscodingHelp": "Αν ενεργοποιηθεί, επιτρέπει στο δέκτη να κάνει διακωδικοποίηση ροών (transcode streams) σε πραγματικό χρόνο. Αυτό μπορεί να βοηθήσει μειώνοντας τη διακωδικοποίηση (transcoding) που απαιτείται από το διακομιστή Emby.", + "MetadataSettingChangeHelp": "Η αλλαγή των ρυθμίσεων μεταδεδομένων θα επηρεάσει το νέο περιεχόμενο που θα προστίθεται από εδώ και στο εξής. Για να ανανεώσετε το υπάρχον περιεχόμενο, ανοίξτε την οθόνη λεπτομερειών και κάντε κλικ στο κουμπί ανανέωση ή εκτελέστε μαζικές ανανεώσεις χρησιμοποιώντας τον διαχειριστή μεταδεδομένων.", + "RecordingPathChangeMessage": "Αλλάζοντας το φάκελο εγγραφών δεν θα μεταφερθούν οι υπάρχουσες εγγραφές από την παλιά τοποθεσία στην καινούρια. Αν θέλετε να μεταφερθούν θα πρέπει να το κάνετε χειροκίνητα.", + "LabelLocalIpAddress": "Τοπική διεύθυνση IP:", + "LabelBindToLocalNetworkAddressHelp": "Προαιρετικό. Αγνόηση της τοπικής διεύθυνσης IP που ο διακομιστής Emby θα εμφανίζει στις εφαρμογές. Αν μείνει κενό, ο διακομιστής θα βρίσκει αυτόματα την τοπική διεύθυνση IP.", + "SettingsWarning": "Η αλλαγή αυτών των τιμών ίσως προκαλέσει αστάθεια ή προβλήματα σύνδεσης. Αν αντιμετωπίσετε προβλήματα, συνιστούμε να τις αλλάξετε ξανά στις προεπιλογές.", + "OptionSaveMetadataAsHiddenHelp": "Οι αλλαγές θα εφαρμοστούν στα νέα μεταδεδομένα από εδώ και στο εξής. Τα υπάρχοντα μεταδεδομένα θα ενημερωθούν την επόμενη φορά που θα αποθηκευτούν από το διακομιστή Emby.", + "EnablePhotos": "Ενεργοποίηση φωτογραφιών", + "EnablePhotosHelp": "Οι φωτογραφίες θα ανιχνευθούν και θα εμφανιστούν μαζί με άλλα αρχεία πολυμέσων.", + "ImportPlaylists": "Εισαγωγή αρχείων λιστών αναπαραγωγής", + "ImportPlaylistsHelp": "Οι λίστες αναπαραγωγής στους καταλόγους πολυμέσων σας μπορούν να εισαχθούν στο Διακομιστή Emby.", + "SaveThumbnailImagesIntoMediaFolders": "Αποθήκευση μικρογραφιών στους φακέλους πολυμέσων", + "LabelGenerateVideoPreviewThumbnails": "Δημιουργία μικρογραφιών προεπισκόπησης βίντεο:", + "LabelEnableDebugLogging": "Ενεργοποίηση καταγραφής σφαλμάτων", + "OptionEnableExternalContentInSuggestions": "Ενεργοποίηση εξωτερικού περιεχομένου στα προτεινόμενα", + "OptionEnableExternalContentInSuggestionsHelp": "Να επιτρέπεται η συμπερίληψη internet trailers και προγράμματα live tv στο προτεινόμενο περιεχόμενο.", + "LabelOptionalNetworkPath": "(Προαιρετικό) Κοινόχρηστος φάκελος δικτύου:", + "LabelOptionalNetworkPathHelp": "Αν αυτός ο φάκελος είναι κοινόχρηστος στο δίκτυο σας, παρέχοντας την κοινόχρηστη διαδρομή δικτύου μπορεί να επιτρέψει στις εφαρμογές Emby σε άλλες συσκευές να έχουν πρόσβαση απευθείας στα αρχεία πολυμέσων.", + "SynologyUpdateInstructions": "Παρακαλώ συνδεθείτε στο DSM και πηγαίνετε στο Package Center για ενημέρωση.", + "HeaderRecordingPostProcessing": "Επεξεργασία Εγγραφής", + "LabelPostProcessorArguments": "Ορίσματα γραμμής εντολών για επεξεργασία", + "PostProcessorArgumentsHelp": "Οι ακόλουθες μεταβλητές υποστηρίζονται στη γραμμή εντολών για να επιτραπεί η μεταφορά δεδομένων στον post-processor:", + "LabelPostProcessor": "Εφαρμογή για επεξεργασία:", + "DvrPostProcessorPathArgument": "{path}: Η πλήρης διαδρομή για το νέο αρχείο εγγραφής", + "OptionAutomaticallyGroupSeries": "Αυτόματη ενοποίηση σειρών διασκορπισμένων σε πολλούς φακέλους", + "OptionAutomaticallyGroupSeriesHelp": "Αν ενεργοποιηθεί, οι σειρές που είναι διασκορπισμένες σε πολλούς φακέλους μέσα σε αυτή τη βιβλιοθήκη, θα ενοποιηθούν αυτόματα σε μια σειρά.", + "WhenDidYouPurchaseApp": "Πότε αγοράσατε αρχικά αυτή την εφαρμογή;", + "PreferEmbeddedTitlesOverFileNames": "Προτίμηση ενσωματωμάτων τίτλων αντί για τα ονόματα των αρχείων", + "PreferEmbeddedTitlesOverFileNamesHelp": "Αυτό καθορίζει τον προεπιλεγμένο τίτλο εμφάνισης όταν δεν υπάρχουν διαθέσιμα τοπικά ή διαδικτυακά μεταδεδομένα.", + "FriendlyNameForReferenceHelp": "Ένα φιλικό όνομα που θα χρησιμοποιηθεί για την εμφάνιση, για δική σας χρήση.", + "HeaderLiveTvTunerSetup": "Εγκατάσταση Δέκτη Ζωντανής TV", + "HeaderTVSourceSetup": "Εγκατάσταση Πηγής TV", + "HeaderDetectMyDevices": "Εντοπισμός των συσκευών μου", + "MessagePleaseWait": "Παρακαλώ περιμένετε. Αυτό μπορεί να πάρει ένα λεπτό.", + "DetectingDevices": "Ανίχνευση συσκευών", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Αυτόματη ανανέωση μεταδεδομένων από το internet:", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Αυτόματη ανανέωση μεταδεδομένων για επεισόδια με προσωρινό τίτλο, όπως TBA", + "EveryNDays": "Κάθε {0} μέρες", + "LabelCertificatePassword": "Κωδικός πρόσβασης πιστοποιητικού:", + "LabelCertificatePasswordHelp": "Εάν το πιστοποιητικό σας απαιτεί κωδικό πρόσβασης, πληκτρολογήστε τον εδώ.", + "HeaderNewLibrary": "Νέα Βιβλιοθήκη", + "HttpsRequiresCert": "Για ενεργοποίηση ασφαλών συνδέσεων θα χρειαστεί να εισάγετε ένα έμπιστο πιστοποιητικό SSL, όπως το Lets Encrypt. Παρακαλώ εισάγετε ένα πιστοποιητικό ή απενεργοποιήστε τις ασφαλείς συνδέσεις.", + "ServerRestartNeededAfterPluginInstall": "Θα πρέπει να γίνει επανεκκίνηση του διακομιστή Emby μετά την εγκατάσταση ενός plugin.", + "PluginInstalledMessage": "Η προσθήκη έχει εγκατασταθεί με επιτυχία. Θα πρέπει να γίνει επανεκκίνηση του διακομιστή Emby για να εφαρμοστούν οι αλλαγές.", + "MessagePremiereStatusGood": "Έχετε μια συνδρομή {0} Emby Premiere και η χρήση από τις συσκευές σας είναι αρκετά κάτω από το όριο.", + "MessagePremiereStatusClose": "Έχετε μια συνδρομή {0} Emby Premiere, αλλά η χρήση από τις συσκευές σας είναι κοντά στο όριο.", + "MessagePremiereExtendedPlans": "Σκεφτείτε για μια {0}εκτεταμένη συνδρομή συσκευών{1}", + "MessagePremiereStatusOver": "Έχετε μια συνδρομή {0} Emby Premiere, αλλά έχετε ξεπεράσει το όριο συσκευών!", + "ListItemPremiereSub": "Η συνδρομή {0} που αγοράστηκε μέσω {2} λήγει στις {1}", + "LabelClickToManage": "Πατήστε για διαχείριση αυτής της συνδρομής", + "LabelCancelInfo": "Μπορείτε να διαχειριστείτε απευθείας αυτή τη συνδρομή με {0}", + "LabelAlreadyCanceled": "Αυτή η συνδρομή ακυρώθηκε. Το κλειδί θα παραμείνει σε ισχύ μέχρι τη λήξη.", + "HeaderCancelSub": "Ακύρωση του Emby Premiere", + "MessageConfirmSubCancel": "Όχι, παρακαλώ μην φεύγετε... Θα σας λείψουν όλα τα μεγάλα χαρακτηριστικά του Emby Premiere!", + "ButtonCancelSub": "Το γνωρίζω, ακύρωσέ το έτσι κι αλλιώς", + "ButtonDontCancelSub": "Κρατήστε το Emby Premiere", + "MessageSubCancelReqSent": "Ένα μήνυμα ηλεκτρονικού ταχυδρομείου έχει σταλεί στον κάτοχο του κλειδιού. Παρακαλούμε ακολουθήστε τις οδηγίες σε αυτό το email για να ολοκληρώσετε την ακύρωση αυτής της συνδρομής. Ελπίζουμε να σας δούμε πίσω σύντομα!", + "MessageSubCancelError": "Κάτι πήγε στραβά κατά την προσπάθεια ακύρωσης. Παρακαλούμε στείλτε ένα email στο {0} και θα το τακτοποιήσουμε άμεσα.", + "LabelAlreadyCancelled": "Αυτή η συνδρομή ακυρώθηκε. Δεν θα σας ξαναχρεώσουμε αλλά οι επιπλέον λειτουργίες θα συνεχίσουν να είναι διαθέσιμες μέχρι την παραπάνω ημερομηνία.", + "AllowOnTheFlySubtitleExtraction": "Να επιτρέπεται η εξαγωγή υπότιτλων σε πραγματικό χρόνο", + "AllowOnTheFlySubtitleExtractionHelp": "Οι ενσωματωμένοι υπότιτλοι μπορούν να εξαχθούν από τα βίντεο και να εμφανίζονται στις εφαρμογές Emby σαν απλό κείμενο για προσπάθεια αποφυγής διακωδικοποίησης (transcoding) του βίντεο. Σε κάποια συστήματα αυτό μπορεί να απαιτήσει αρκετό χρόνο και ίσως δημιουργήσει καθυστερήσεις στην αναπαραγωγή κατά τη διαδικασία της εξαγωγής. Απενεργοποιήστε το αυτό για αποτύπωση των ενσωματωμένων υπότιτλων κατά τη διακωδικοποίηση (transcoding) του βίντεο όταν δεν υποστηρίζονται από τη συσκευή αναπαραγωγής.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Η λειτουργία αποσφαλμάτωσης θα πρέπει να ενεργοποιείται μόνο για λόγους αντιμετώπισης προβλημάτων. Η πολύ αυξημένη πρόσβαση στο σύστημα αρχείων μπορεί να αποτρέψει το διακομιστή από τα να αναστείλει τη λειτουργία του σε κάποιες περιπτώσεις.", + "LabelSimultaneousConnectionLimit": "Όριο ταυτόχρονου stream:", + "SimultaneousConnectionLimitHelp": "Ο μέγιστος αριθμός ταυτόχρονων επιτρεπόμενων stream. Εισάγετε 0 για χωρίς όριο.", + "LaunchWebAppOnStartup": "Εκκίνηση του Emby Web App στο πρόγραμμα περιήγησης Web όταν ξεκινά ο διακομιστής Emby", + "LaunchWebAppOnStartupHelp": "Αυτό θα ανοίξει την εφαρμογή Web στο προεπιλεγμένο πρόγραμμα περιήγησης Web όταν ξεκινήσει αρχικά ο διακομιστής Emby. Αυτό δεν θα συμβεί όταν χρησιμοποιείτε τη λειτουργία επανεκκίνησης του διακομιστή.", + "LabelReferrerHeader": "Κεφαλίδα http referrer:", + "LabelUserAgentHeader": "http Κεφαλίδα User agent", + "SupplyCustomValueIfNeeded": "Εισάγετε μια προσαρμοσμένη τιμή http header, αν είναι απαραίτητο.", + "HeaderConfigureRemoteAccess": "Ρύθμιση απομακρυσμένης πρόσβασης", + "LearnHowToCreateSynologyShares": "Μάθετε πώς μπορείτε να κάνετε κοινή χρήση φακέλων στο Synology.", + "LabelAllowedRemoteAddresses": "Φίλτρο απομακρυσμένης διέυθυνσης IP:", + "LabelAllowedRemoteAddressesMode": "Λειτουργία φίλτρου απομακρυσμένης διέυθυνσης IP:", + "Whitelist": "Λίστα επιτρεπόμενων", + "Blacklist": "Μαύρη Λίστα", + "AllowedRemoteAddressesHelp": "Λίστα διευθύνσεων IP διαχωρισμένες με κόμμα ή καταχωρίσεις IP/Μάσκα υποδικτύου που θα επιτρέπονται να κάνουν απομακρυσμένα σύνδεση. Αν μείνει κενό, θα επιτρέπονται όλες οι απομακρυσμένες διευθύνσεις.", + "LabelLanNetworks": "Δίκτυα LAN:", + "LanNetworksHelpText": "Λίστα με διευθύνσεις IP ή IP/υποδίκτυα, διαχωρισμένα με κόμμα που θα θεωρούνται μέλη του τοπικού δικτύου κατά την εφαρμογή περιορισμών σε εύρος ζώνης και απομακρυσμένη πρόσβαση. Αν οριστεί, όλες οι άλλες διευθύνσεις IP θα θεωρείται ότι βρίσκονται σε εξωτερικό δίκτυο. Αν αφεθεί κενό, μόνο το υποδίκτυο του διακομιστή και τα κοινώς αποδεκτά ως private υποδίκτυα IP (192.168.0.0/24, 172.16.0.0/12, etc.) θα θεωρούνται ότι είναι μέλη του τοπικού δικτύου.", + "LabelSecureConnectionsMode": "Λειτουργία ασφαλούς σύνδεσης:", + "PreferredNotRequired": "Προτιμώμενο, αλλά δεν απαιτείται", + "RequiredForAllRemoteConnections": "Απαιτείται για όλες τις απομακρυσμένες συνδέσεις", + "HandledByProxy": "Αναλαμβάνεται από reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Αποθήκευση υπότιτλων στους φακέλους των πολυμέσων", + "SaveSubtitlesIntoMediaFoldersHelp": "Η αποθήκευση των υπότιτλων μαζί με τα αρχεία βίντεο θα επιτρέψει να είναι πιο εύκολα διαχειρίσιμα.", + "AutomaticSubtitleDownloadInstructions": "Για να διαχειριστείτε την αυτόματη λήψη υπότιτλων, πατήστε σε μια βιβλιοθήκη στην εγκατάσταση βιβλιοθηκων του Emby και επεξεργαστείτε τις ρυθμίσεις λήψης υπότιτλων για αυτή τη βιβλιοθήκη.", + "ProviderNeedsSetupWithUrl": "{0} απαιτεί πρόσθετη ρύθμιση στην {1} οθόνη ρυθμίσεων{2} στον διακομιστή Emby.", + "LabelEnableHardwareAcceleration": "Ενεργοποίηση επιτάχυνσης υλικού όταν είναι διαθέσιμη:", + "HeaderPreferredHardwareDecoders": "Προτιμώμενοι Αποκωδικοποιητές Υλικού", + "HeaderPreferredHardwareEncoders": "Προτιμώμενοι Κωδικοποιητές Υλικού", + "AllowChangingImageAndPassword": "Να επιτρέπεται αυτός ο χρήστης να αλλάζει τον κωδικό του και την εικόνα προφίλ του", + "LabelSimultaneousStreamLimit": "Μέγιστος αριθμός ταυτόχρονων stream βίντεο:", + "SimultaneousStreamLimitHelp": "Περιορίστε τον αριθμό των ταυτόχρονων συνόδων αναπαραγωγής βίντεο.", + "LabelMusicFolderStructure": "Δομή φακέλων μουσικής", + "LabelMusicFolderStructureHelp": "Επιλέξτε τη δομή που ταιριάζει με τον τρόπο που είναι οργανωμένοι οι φάκελοί σας. Εαν δεν είσαστε σίγουροι, ή αν οι φάκελοί σας δεν ταιριάζουν ακριβώς με κάποια από τις διαθέσιμες επιλογές, παρακαλώ επιλέξτε την προεπιλογή ή την επιλογή Άλλο.", + "OtherOrUnstructured": "Άλλο ή χωρίς δομή", + "PerfectArtistAlbumTrack": "Τέλεια οργανωμένοι σε φακέλους καλλιτέχνης\\άλμπουμ, με τα κομμάτια μέσα στους φακέλους άλμπουμ.", + "PerfectAlbumTrack": "Τέλεια οργανωμένοι σε φακέλους άλμπουμ, με τα κομμάτια μέσα στους φακέλους άλμπουμ.", + "LabelMinCollectionSize": "Ελάχιστο μέγεθος αυτόματης συλλογής:", + "PerfectAuthorAudioBookTrack": "Τέλεια οργανωμένα σε φακέλους συγγραφέα\\βιβλίο, με τα κομμάτια (tracks) απευθείας στους φακέλους των βιβλίων.", + "PerfectAudioBookTrack": "Τέλεια οργανωμένα σε φακέλους βιβλίων, με τα κομμάτια (tracks) απευθείας στους φακέλους των βιβλίων.", + "MinCollectionSizeHelp": "Αυτόματη δημιουργία συλλογών όταν έχετε τουλάχιστον τον επιλεγμένο αριθμό τίτλων στη βιβλιοθήκη σας. Η αλλαγή αυτής της τιμής δεν θα επηρεάσει τις υπάρχουσες συλλογές.", + "LabelImportCollections": "Εισαγωγή πληροφοριών συλλογής", + "LabelImportCollectionsHelp": "Άν είναι ενεργό, αυτό θα εισάγει πηροφορίες των συλλογών από τους ενεργοποιημένους κατεβαστές μεταδεδομένων (για την ώρα υποστηρίζεται μόνο από το TheMovieDb). Αυτό μπορεί να έχει ως αποτέλεσμα να δημιουργηθούν αυτόματα συλλογές που δεν θέλετε. Η απενεργοποίησή του θα έχει ως αποτέλεσμα να μην δημιουργούνται μελλοντικά αυτόματα συλλογές, αλλά δεν θα διαγράψει τις υπάρχουσες.", + "LabelAllowAdultMetadata": "Επιτρέπονται μεταδεδομένα για ενήλικους", + "LabelAllowAdultMetadataHelp": "Να επιτρέπεται η ταυτοποίηση τίτλων για ενήλικους κατά την αναζήτηση για μεταδεδομένα στο διαδίκτυο.", + "HeaderVideoPreviewThumbnails": "Μικρογραφίες Προεπισκόπησης Βίντεο", + "LabelEnableHDRToneMapping": "Ενεργοποίηση HDR tone mapping:", + "EnableHDRToneMappingHelp": "Η Αντιστοίχιση Τόνου (Τone Μapping) θα εξασφαλίσει τη σωστή μετατροπή χρωμάτων όταν γίνεται διακωδικοποίηση (transcoding) περιεχομένου HDR, το οποίο αλλιώς θα εμφανίζεται αμυδρά και χωρίς κορεσμό χρωμάτων. Μπορεί να χρειάζονται πρόσθετα στοιχεία από το πρόγραμμα οδήγησης της συσκευής για την υποστήριξη επιτάχυνσης υλικού με αυτό το χαρακτηριστικό ενεργοποιημένο. Παρακαλώ δείτε τον οδηγό μας για επιτάχυνση υλικού για λεπτομέρειες.", + "WithHardwareAcceleratedTranscoding": "Ναι, μόνο με επιτάχυνση υλικού", + "TranscodingStillInitializing": "Οι υπηρεσίες διακωδικοποίησης (transcoding) του διακομιστή Emby είναι ακόμη απασχολημένες καθώς εκκινούν. Αυτή η οθόνη θα ανανεωθεί αυτόματα όταν οι υπηρεσίες διακωδικοποίησης (transcoding) θα είναι έτοιμες.", + "WithEitherHardwareOrSoftwareTranscoding": "Ναι, είτε με διακωδικοποίηση (transcoding) υλικού, είτε λογισμικού.", + "ToneMappingInHardwareDescription": "H Αντιστοίχιση Τόνου (Τone Μapping) θα γίνεται με επιτάχυνση υλικού όταν είναι ενεργοποιημένο και υποστηριζόμενο από το υλικό και θα παραλείπεται σε όλες τις άλλες περιπτώσεις.", + "ToneMappingInSoftwareDescription": "Το tone mapping θα γίνεται στο λογισμικό από τον επεξεργαστή. Αυτό είναι πολύ πιο αργό από το tone mapping που επιταχύνεται μέσω υλικού και απαιτεί πολύ δυνατό μηχάνημα για διακομιστή.", + "ToneMappingInBothDescription": "H Αντιστοίχιση Τόνου (Τone Μapping) θα γίνεται με επιτάχυνση υλικού όταν είναι ενεργοποιημένο και υποστηριζόμενο από το υλικό και θα γίνεται εφεδρικά η χρήση του λογισμικού σε όλες τις άλλες περιπτώσεις. H Αντιστοίχιση Τόνου (Τone Μapping) μέσω λογισμικού είναι πολύ πιο αργή από την Αντιστοίχιση Τόνου (Τone Μapping) που επιταχύνεται μέσω υλικού και απαιτεί πολύ δυνατό μηχάνημα για διακομιστή.", + "AutoMapped": "Αντιστοιχήθηκαν αυτόματα", + "ManuallyMapped": "Αντιστοιχήθηκαν χειροκίνητα", + "NotMappedToGuideData": "Μη αντιστοιχημένα με δεδομένα προγράμματος", + "MappedToValue": "Αντοιστοιχήθηκαν στο {0}", + "LabelAutomaticallyWakeServerForRecordings": "Αυτόματη αφύπνηση του διακομιστή για να εκτελέσει εγγραφές", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Τα γεγονότα αφύπνισης θα προγραμματιστούν με το λειτουργικό σύστημα του διακομιστή. Η απενεργοποίηση αυτής της επιλογής θα αποτρέψει γεγονότα αφύπνησης από το να προγραμματίζονται στο μέλλον, αλλά δεν θα αφαιρέσει προηγούμενα προγραμματισμένα γεγονότα.", + "Database": "Βάση Δεδομένων", + "LabelOptimizeDatabaseOnShutdown": "Απόπειρα βελτιστοποίησης της βάσης δεδομένων κατά την απενεργοποίηση του διακομιστή", + "LabelOptimizeDatabaseOnShutdownHelp": "Η διαδικασία βελτιστοποίησης της βάσης δεδομένων συνήθως δεν εκτελείται, αλλά περιστασιακά θα εκτλέσει μια ανάλυση αν φαίνεται πως αυτό θα φανεί χρήσιμο στον σχεδιαστή ερωτημάτων. Αυτό μπορεί να έχει σαν αποτέλεσμα καθυστέρηση του διακομιστή Emby κατά τη διαδικασία της απενεργοποίησης.", + "LabelDatabaseCacheSize": "Μέγεθος cache βάσης δεδομένων (MB)", + "LabelDatabaseCacheSizeHelp": "Ορίζει τον όγκο δεδομένων που θα κρατά η βάση δεδομένων μονομιάς, ανά αρχείο βάσης. Μεγαλύτερη τιμή μπορεί να βοηθήσει στην βελτίωση της απόδοσης του διακομιστή Emby. Απαιτεί επανεκκίνηση του διακομιστή για να εφαρμοστεί.", + "LabelDatabaseAnalysisLimit": "Όριο γραμμών για ανάλυση", + "LabelDatabaseAnalysisLimitHelp": "Όταν η βάση δεδομένων βελτιστοποιείται, αυτό είναι περίπου ο αριθμός των γραμμών που εξετάζονται σε κάθε index από την εντολή ANALYZE. Μεγαλύτερη τιμή θα αυξήσειτην αποτελεσματικότητα της βελτιστοποίησης της βάσης, αλλά μπορεί να έχει σαν αποτέλεσμα καθυστέρηση του διακομιστή Emby κατά τη διαδικασία της απενεργοποίησης.", + "LabelVacuumDb": "Vacuum της βάσης δεδομένων κατά την επόμενη εκκίνηση του διακομιστή Emby.", + "LabelVacuumDbHelp": "Η εντολή vacuum ξαναχτίζει το αρχείο της βάσης δεδομένων, ξανασυσκευάζοντάς ώστε να πιάνει ελάχιστο χώρο στο δίσκο. Σε μερικές περιπτώσεις αυτό μπορεί να βελτιώσει την απόδοση του διακομιστή Emby. Παρακαλώ σημειώστε ότι ο διακομιστής Emby δεν θα μπορεί να χρησιμοποιηθεί κατά τη διάρκεια της διαδικασίας vacuum, ούτε θα υπάρχει κάποιος τρόπος για παρακολούθηση της εξέλιξης της διαδικασίας. Παρακαλώ αποφύγετε την εξαναγκασμένη διακοπή της διεργασίας του διακομιστή Emby κατά τη διάρκεια αυτής της διαδικασίας, γιατί μπορεί να έχει σαν αποτέλεσμα την καταστροφή της βάσης δεδομένων. Αυτό είναι μια εφάπαξ λειτουργία και αυτή η επιλογή θα γυρίσει σε αποεπιλεγμένη στην επόμενη εκκίνηση του διακομιστή.", + "AdvancedOptionsWarning": "Αυτές είναι επιλογές για προχωρημένους και σε γενικές γραμμές θα πρέπει να αφήνονται με τις προεπιλεγμένες τιμές, εκτός αν έχετε λόγο να τις αλλάξετε.", + "HeaderRecentlyActiveDevices": "Πρόσφατα Ενεργές Συσκευές", + "YesUntilServerRestart": "Ναι, μέχρι την επόμενη επανεκκίνηση του διακομιστή", + "YesUntilLogRotate": "Ναι, μέχρι την επόμενη εναλλαγή του αρχείου καταγραφής", + "LabelSubtitleDownloadMaxAge": "Σταμάτημα προσπάθειας για αυτόματη λήψη υπότιτλων για αρχεία βίντεο παλιότερα από:", + "SubtitleDownloadMaxAgeHelp": "Αυτό βασίζεται στην τιμή μεταδεδομένων για την ημερομηνία που προστέθηκαν.", + "NoAgeLimit": "Χωρίς όριο ηλικίας", + "AnonymizeLogContents": "Ανωνυμοποίηση περιεχομένων αρχείου καταγραφής", + "Markers": "Επικεφαλίδες", + "LabelGenerateIntroVideoMarkers": "Δημιουργία επικεφαλίδων βίντεο εισαγωγής:", + "GenerateIntroVideoMarkersHelp": "Ανιχνεύει τα βίντεο εισαγωγής των σειρών και δείχνει το κουμπί 'Παράκαψη Εισαγωγής' στις εφαρμογές Emby. Η ανίχνευση βίντεο εισαγωγής μπορεί να χρειαστεί αρκετό χρόνο και να προκαλέσει υψηλή χρήση επεξεργαστή ή δίσκου.", + "LabelCopyFromUser": "Αντιγραφή ρυθμίσεων από το χρήστη:", + "CopyFromUserHelp": "Προαιρετικό. Επιταχύνετε τη δημιουργία ενός νέου χρήστη αντιγράφοντας πληροφορίες από έναν τρέχων χρήστη.", + "UserPolicy": "Πολιτική Χρηστών (πρόσβαση σε βιβλιοθήκη και χαρακτηριστικά, γονικός έλεγχος, κλπ)", + "UserConfiguration": "Ρυθμίσεις Χρηστών (προτιμώμενη γλώσσα ήχου και υπότιτλων, σειρά ταξινόμησης βιβλιοθήκης, κλπ)", + "UserDataAndDescription": "Δεδομένα Χρήστη (αγαπημένα, κατάσταση αυτών που έχει δει/ακούσει κλπ)", + "HeaderCopyOptions": "Αντιγραφή Επιλογών", + "LabelMultiRestrictionMode": "Λειτουργία πολλαπλών περιορισμών:", + "MultiRestrictionModeAll": "Να επιτρέπεται περιεχόμενο που ταιριάζει με τους περιορισμούς αξιολόγησης αλλά και ετικέτας.", + "MultiRestrictionModeAny": "Να επιτρέπεται περιεχόμενο που ταιριάζει με τους περιορισμούς είτε αξιολόγησης, είτε ετικέτας.", + "AllowMappingByChannelNumber": "Να επιτρέπεται αντιστοίχιση με δεδομένα οδηγού καναλιών χρησιμοποιώντας αριθμούς καναλιών.", + "AllowMappingByChannelNumberHelp": "Αυτό μπορεί να χρησιμοποιηθεί σαν μετάπτωση για να ταιριάζουν τα κανάλια του δέκτη με τα δεδομένα οδηγού καναλιών, όταν δεν μπορεί να βρεθεί αντιστοιχία βασισμένη στο όνομα καναλιού. Αυτό μπορεί να οδηγήσει σε μη ακριβή αποτελέσματα, αν τα νούμερα των καναλιών από τον δέκτη δεν είναι σωστά.", + "LabelPreferredSourceForChannelLogos": "Προτίμηση των λογότυπων των καναλιών αντί των δεδομένων του οδηγού καναλιών από τον δέκτη, όταν είναι διαθέσιμα και από τα δύο", + "LabelPreferredSourceForChannelNumbers": "Προτίμηση των αριθμών των καναλιών αντί των δεδομένων του οδηγού καναλιών από τον δέκτη, όταν είναι διαθέσιμα και από τα δύο", + "HeaderSoftwareEncoders": "Κωδικοποιητές Λογισμικού", + "LabelProxyHeaderMode": "Ανάγνωση των κεφαλίδων του proxy για την ανίχνευση των διευθύνσεων IP των πελατών.", + "ProxyHeadersRemoteOnly": "Μόνο όταν περιέχουν διευθύνσεις απομακρυσμένων δικτύων", + "ProxyHeaderModeHelp": "Καθορίζει αν θα πρέπει να χρησιμοποιούνται κεφαλίδες αναζήτησης όπως {0} και {1} για να βρεθεί η διεύθυνση IP των συνκευών που συνδέονται.", + "AllowCameraUpload": "Να επιτρέπεται μεταφόρτωση κάμερας", + "AllowCameraUploadHelp": "Αν επιτρέπεται και είναι ενεργό στις mobile εφαρμογές Emby, οι χρήστες μπορούν να ανεβάζουν αυτόματα σε αυτόν το διακομιστή Emby φωτογραφίες και βίντεο που τράβηξαν με την κάμερά τους", + "CameraUploadMustBeGranted": "Πρέπει επίσης να σας δωθεί πρόσβαση για μεταφόρτωση κάμερας από τον διαχειριστή του διακομιστή σας.", + "EnableReadingAndWritingPeopleMetadata": "Ενεργοποίηση ανάγνωσης και εγγραφής αρχείων μεταδεδομένων ατόμων", + "EnableReadingAndWritingPeopleMetadataHelp": "Απαιτεί να είναι εγκατεστημένο το πρόσθετο Nfo Metadata. Αυτό θα επιτρέψει την αποθήκευση των επεξεργασιών από άτομα σε αρχεία μεταδεδομένων nfo, αλλά θα έχει σαν αποτέλεσμα μεγαλύτερη διάρκεια σάρωσης βιβλιοθήκης.", + "LabelIgnoreSampleFiles": "Αγνόησε τα αρχεία που περιέχουν τη λέξη \"sample\" στο όνομά τους αν το μέγεθός τους είναι μικρότερο από (MB)", + "PreferredChannelImageSource": "Προτιμώμενη πηγή εικόνας (λογότυπο) καναλιού", + "PreferredChannelImageSourceHelp": "Επιλέξτε μια προτιμώμενη εικόνα (λογότυπο) καναλιού όταν και ο δέκτης και τα δεδομένα του οδηγού έχουν διαθέσιμες εικόνες.", + "CacheImagesInServerData": "Διατήρηση ενός αντιγράφου εικόνων στο φάκελο μεταδεδομένων του διακομιστή", + "CacheImagesInServerDataHelp": "Αν τα (πολυ)μέσα σας και οι εικόνες αποθηκεύονται σε άλλο μηχάνημα, διατηρώντας ΄ένα αντίγραφο των εικόνων στο φάκελο μεταδεδομένων του διακομιστή θα μειώσει την ανάγκη δικτυακής πρόσβασης και μπορεί να βελτιώσει την απόδοση. Το μείον αυτής της τοπικής αποθήκευσης είναι ότι οι σαρώσεις βιβλιοθήκης θα είναι πιο αργές και ο φάκελος μεταδεδομένων του διακομιστή θα καταναλώνει σημαντικά περισσότερο χώρο", + "AllowSharingPersonalContent": "Να επιτρέπεται ο διαμοιρασμός προσωπικού περιεχομένου, όπως λίστες αναπαραγωγής, με άλλους χρήστες αυτού του διακομιστή.", + "AllowSharingPersonalContentHelp": "Αν επιτραπεί, αυτός ο χρήστης θα μπορεί να μοιράζεται τη λίστα αναπαραγωγής του με άλλους χρήστες. Τα αντικείμενα της λίστας αναπαραγωγής θα παραμείνουν με περιορισμένη πρόσβαση, με βάση τα δικαιώματα πρόσβασης βιβλιοθήκης και γονικού ελέγχου.", + "LiveBufferSizeHours": "Όριο μεγέθους του buffer για τη ζωντανή ροή (ώρες)", + "LiveBufferSizeHoursHelp": "Το μεγαλύτερο buffer θα παρέχει καλύτερη δυνατότητα για αναζήτηση προς τα εμπρός και προς τα πίσω κατά τη διαρκεια μιας ζωντανής ροής, αλλ΄α θα καταναλώνει περισσότερο χώρο στο σκληρό δίσκο.", + "LabelTranscodingMaxResolution": "Μέγιστη ανάλυση transcoding", + "TranscodingMaxResolutionHelp": "Ορίστε ένα ανώτερο όριο που θα εφαρμόζεται στο transcoding για βίντεο, ανεξάρτητα από τη ρύθμιση ποιότητας στον Emby player. Αυτό θα βοηθήσει να μειωθο΄υν οι πόροι που απαιτούνται για διεργασίες transcoding στο διακομιστή.", + "EnableHevcEncodingExp": "Ενεργοποίηση κωδικοποίησης βίντεο HEVC (πειραματικό)", + "EnableHevcEncodingHelp": "Ενεργοποίηση transcoding με χρήση του codec HEVC, αν υποστηρίζεται από τον πελάτη. ", + "LabelEnableMultiPartItems": "Ενεργοποίηση αντικειμένων με πολλά μέρη", + "EnableMultiPartItemsHelp": "Αυτόματος εντοπισμός και ομαδοποίηση αρχείων με ονομασία part 1, part 2, κλπ. Τα επιπλέον μέρη θα εμφανίζονται στην κεντρική οθόνη πληροφοριών του αντικειμένου.", + "MultiVersionItemsDetectionHelp": "Αυτόματος εντοπισμός και ομαδοποίηση διαφορετικών εκδόσεων του ίδιου αντικειμένου. Μια επιλογή έκδοσης θα προσφέρεται στην κεντρική οθόνη πληροφοριών για το αντικείμενο. Η ομαδοποίηση βασισμένη σε αρχεία απαιτεί σωστή ονομασία και οργάνωση των αρχείων.", + "MultiVersionMoviesDetectionHelp": "Ομαδοποίηση βασιμένα στα μεταδεδομένα θα ομαδοποιεί ταινίες που έχουν τα ίδια εξωτερικά Id (MovieDb, Imdb, κλπ).", + "EnableMultiPartItemsTVHelp": "Δεν υποστηρίζεται για επεισόδια σειρών τηλέορασης.", + "HeaderAutomaticGrouping": "Αυτόματη Ομαδοποίηση", + "LabelMultiVersionItemsDetection": "Εντοπισμός αντικειμένων με πολλές εκδόσεις", + "MultiVersionItemsDetectionBoth": "Εντοπισμός αντικειμένων με πολλές εκδόσεις βασισμένος και στα αρχεία και στα μεταδεδομένα", + "MultiVersionItemsDetectionFiles": "Εντοπισμός αντικειμένων με πολλές εκδόσεις βασισμένος στα αρχεία", + "MultiVersionItemsDetectionMetadata": "Εντοπισμός αντικειμένων με πολλές εκδόσεις βασισμένος στα μεταδεδομένα", + "LabelNetworkRequestProtocol": "Πρωτόκολλο αιτήματος δικτύου", + "NetworkRequestProtocolHelp": "Επιλέξτε το πρωτόκολλο που θα χρησιμοποιείται για εξερχόμενα αιτήματα δικτύου σε παρόχους μεταδεδομένων και άλλες υπηρεσίες. Σε κάποιες περιπτώσεις, δεν είναι δυνατή η πρόσβαση σε εξωτερικές υπηρεσίες μέσω IPv6, μπορεί να χρειαστεί να το ορίσετε αυτό σε μόνο IPv4.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/en-GB.json b/strings/en-GB.json new file mode 100644 index 0000000..db9dea4 --- /dev/null +++ b/strings/en-GB.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "You're Done!", + "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process of setting up Emby Server.", + "HeaderCreateYourFirstUser": "Create Your First User", + "ButtonQuickStartGuide": "Quick Start Guide", + "MoreUsersCanBeAddedLater": "More users can be added later within Emby Server settings.", + "UserProfilesIntro": "Emby includes built-in support for user profiles, enabling each user to have their own display settings, playstate and parental controls.", + "WizardCompleted": "That's all we need for now. Emby has begun scanning your media library. Check out some of our apps, and then click Finish to view the Server Dashboard.", + "MessagePleaseAcceptTermsOfService": "Please accept the terms of use and privacy policy before continuing.", + "OptionIAcceptTermsOfService": "I accept the terms of use", + "SeeOurHwaGuide": "See our {0}hardware acceleration setup guide{1}.", + "HeaderEmbyServerReleaseNotes": "Emby Server Release Notes", + "AllowSubtitleDownloading": "Allow subtitle downloading", + "AllowSubtitleManagement": "Allow deletion of existing subtitle files", + "NewUserNameHelp": "This is how the user will appear on your server.", + "ChapterMarkers": "Chapter markers", + "LabelThumbnailImagesInterval": "Thumbnail images interval", + "ThumbnailImagesIntervalHelp": "More frequent thumbnails will result in a better experience, but will require more disk space and time to create the images.", + "LabelAuthProvider": "Authentication provider", + "AuthProviderHelp": "Administrators always use the default Emby provider to ensure you're never locked out.", + "HeaderNewUser": "New User", + "ChangeServerDisplayName": "Change Server Display Name", + "ShowAdvancedSettings": "Show advanced settings", + "ChangingMetadataImageSettingsNewContent": "Changes to metadata or artwork downloading settings will only apply to new content added to your library. To apply the changes to existing titles, you'll need to refresh their metadata manually.", + "AllowRemoteAccess": "Allow remote connections to this Emby Server.", + "AllowRemoteAccessHelp": "If unticked, all remote connections will be blocked.", + "Alerts": "Alerts", + "LabelTrackTitleDisplay": "Embedded track title display", + "GenerateUserFriendlyTrackTitles": "Generate user friendly titles using track information", + "PreferOriginalTrackTitles": "Prefer embedded titles", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "EnableTranscodingThrottle": "Enable throttling", + "EnableTranscodingThrottleHelp": "Emby will dynamically adjust transcoding speed based in order to reduce CPU utilisation.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} Image Fetchers", + "HeaderImageOptions": "Image Options", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Register with PayPal", + "LabelSyncTempPath": "Temporary file path", + "LabelSyncTempPathHelp": "Specify a custom working folder. Converted media created during the conversion process will be stored here.", + "LabelCustomCertificatePath": "Custom SSL certificate path", + "LabelCustomCertificatePathHelp": "Path to a PKCS #12 file containing a certificate and private key to enable TLS support on a custom domain.", + "HeaderSetupLibrary": "Setup Media Libraries", + "LabelTimeLimitHours": "Time limit (hours)", + "HeaderPreferredMetadataLanguage": "Preferred Metadata Language", + "LabelSaveLocalMetadata": "Save artwork into media folders", + "LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put images next to media files where they can be easily accessed from outside of Emby. If disabled, images will be saved into the server's metadata folder.", + "TabAccess": "Access", + "HeaderDeviceAccess": "Device Access", + "OptionEnableAccessFromAllDevices": "Enable access from all devices", + "OptionEnableAccessToAllChannels": "Enable access to all channels", + "OptionEnableAccessToAllLibraries": "Enable access to all libraries", + "DeviceAccessHelp": "Filtering user device access will prevent them from using new devices until they've been approved here.", + "LabelDisplayMissingEpisodesWithinSeasons": "Display missing episodes within series", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Emby database and displayed within seasons and series. This may cause significantly longer library scans.", + "MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.", + "LabelMaxParentalRating": "Maximum allowed parental rating", + "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.", + "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.", + "ChannelAccessHelp": "Select the channels to share with this user. Administrators will be able to edit all channels using the metadata manager.", + "ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG/PNG only.", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Click OK to send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, setup Emby Premiere in your Emby Server Dashboard under Help -> Emby Premiere, and it will be unlocked automatically.", + "TabMyPlugins": "My Plugins", + "TabCatalog": "Catalogue", + "HeaderAutomaticUpdates": "Automatic Updates", + "Standard": "Standard", + "TabSupporterKey": "Emby Premiere Key", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Useful for private or hidden administrator accounts. The user will need to sign in manually by entering their username and password.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Disable this user", + "OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.", + "OptionAllowUserToManageServer": "Allow this user to manage the server", + "HeaderFeatureAccess": "Feature Access", + "OptionAllowMediaPlayback": "Allow media playback", + "AllLibraries": "All libraries", + "HeaderAllowMediaDeletionFrom": "Allow Media Deletion From", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Allow remote control of other users", + "OptionAllowRemoteSharedDevices": "Allow remote control of shared devices", + "OptionAllowRemoteSharedDevicesHelp": "DLNA devices are considered shared until a user begins controlling it.", + "OptionAllowLinkSharing": "Allow social media sharing", + "OptionAllowLinkSharingHelp": "Only web pages containing media information are shared. Media files are never shared publicly. Shares are time-limited and will expire after {0} days.", + "OptionRelease": "Official Release", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plug-in updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plug-in updates", + "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods, when no users are active.", + "LabelRunServerAtStartup": "Run server at startup", + "LabelRunServerAtStartupHelp": "This will start the Emby notification icon on Windows startup. If you've set up a Windows service then leave this unticked and configure the service to run at startup.", + "ButtonSelectDirectory": "Select Directory", + "LabelCachePath": "Cache path", + "DefaultMetadataLangaugeDescription": "These are your defaults and can be customised on a per-library basis.", + "LabelCachePathHelp": "Specify a custom location for server cache files, such as images. Leave blank to use the server default.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library to save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or Mixed content.", + "HeaderProgramData": "Programme Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional) Select a library to save movie recordings into. This must be a library you've created in Emby library setup with the content type set to Movies or Mixed content.", + "LabelMetadataPath": "Metadata path", + "LabelMetadataPathHelp": "Specify the location below where the 'metadata' folder will be created for downloaded artwork and metadata, or clear this to revert to default. If changing this, you'll need to manually migrate the contents from the old location to the new location. If you ever manually change the contents of the metadata folder, you'll need to run the {0}scan metadata folder scheduled task{1}.", + "LabelTranscodingTempPath": "Transcoding temporary path", + "LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Refresh Guide Data", + "LabelNumberOfGuideDays": "Number of days of guide data to download", + "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels. Please note that regardless of how many days you choose, the data must exist in the source guide data in order for it to be downloaded. Some guide data sources only provide 24 hours. Emby Guide Data supports up to 14 days.", + "HeaderFetchImages": "Fetch Images", + "LabelMaxBackdropsPerItem": "Maximum number of backdrops per item", + "LabelMaxScreenshotsPerItem": "Maximum number of screenshots per item", + "LabelMinBackdropDownloadWidth": "Minimum backdrop download width", + "LabelMinScreenshotDownloadWidth": "Minimum screenshot download width", + "ButtonAddScheduledTaskTrigger": "Add Trigger", + "ButtonAdd": "Add", + "LabelTriggerType": "Trigger Type", + "OptionOnInterval": "On an interval", + "OptionAfterSystemEvent": "After a system event", + "LabelDay": "Day", + "LabelTime": "Time", + "LabelEvent": "Event", + "OptionWakeFromSleep": "Wake from sleep", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Enable real time monitoring", + "LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately, on supported file systems.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Friendly server name", + "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.", + "LabelPreferredDisplayLanguage": "Preferred display language", + "LabelPreferredDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LabelReadHowYouCanContribute": "Learn how you can contribute.", + "LabelCustomCss": "Custom CSS", + "LabelCustomCssHelp": "Apply your own custom css to the web interface.", + "LabelLocalHttpServerPortNumber": "Local HTTP port number", + "LabelLocalHttpServerPortNumberHelp": "The TCP port number that Emby's HTTP server should bind to.", + "LabelPublicHttpPort": "Public HTTP port number", + "LabelPublicHttpPortHelp": "The public port number that should be mapped to the local HTTP port.", + "LabelPublicHttpsPort": "Public HTTPS port number", + "LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local HTTPS port.", + "RequireHttps": "Require HTTPS for external connections", + "RequireHttpsHelp": "If enabled, connections over HTTP will be redirected to HTTPS.", + "LabelHttpsPort": "Local HTTPS port number", + "LabelHttpsPortHelp": "The TCP port number that Emby's HTTPS server should bind to.", + "LabelEnableAutomaticPortMap": "Enable automatic port mapping", + "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", + "LabelExternalDDNS": "External domain", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without the protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom SSL certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Min resume percentage", + "LabelMaxResumePercentage": "Max resume percentage", + "LabelMinResumeDuration": "Min resume duration (seconds)", + "LabelMinResumePercentageHelp": "Titles are assumed unplayed if stopped before this time", + "LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time", + "LabelMinResumeDurationHelp": "Titles shorter than this will not be resumable", + "HeaderStatus": "Status", + "Subscriptions": "Subscriptions", + "LabelEndingEpisodeNumber": "Ending episode number", + "LabelEndingEpisodeNumberHelp": "Only required for multi-episode files", + "HeaderSupportTheTeam": "Support the Emby Team", + "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by purchasing Emby Premiere. A portion of all income will be contributed to other free tools we depend on.", + "DonationNextStep": "Once complete, please return and enter your Emby Premiere key, which you will receive by email.", + "HeaderRunningTasks": "Running Tasks", + "ButtonUpdateNow": "Update Now", + "PleaseUpdateManually": "Please shutdown Emby Server and install the latest version.", + "ServerUpToDate": "Emby Server is up to date", + "MessagePleaseRestartServerToFinishUpdating": "Please restart the server to finish applying updates.", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", + "HeaderForgotKey": "Forgot Key", + "LabelSupporterEmailAddress": "The email address that was used to purchase the key.", + "ButtonRetrieveKey": "Retrieve Key", + "LabelSupporterKey": "Emby Premiere key (paste from e-mail)", + "LabelSupporterKeyHelp": "Enter your Emby Premiere key to start enjoying additional benefits.", + "MessageInvalidKey": "Emby Premiere key is missing or invalid.", + "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also have an active Emby Premiere subscription.", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Untick this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Send message", + "HeaderSendMessage": "Send Message", + "ButtonSend": "Send", + "LabelMessageText": "Message text", + "LabelMessageTitle": "Message title", + "ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "API Keys", + "HeaderApiKeysHelp": "External applications are required to have an API key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "API Key", + "HeaderResumeSettings": "Resume Settings", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Activity", + "ButtonPurchase": "Purchase", + "HeaderInstall": "Install", + "LabelSelectVersionToInstall": "Select version to install", + "LinkLearnMoreAboutSubscription": "Learn about Emby Premiere", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Developer Info", + "HeaderRevisionHistory": "Revision History", + "ButtonViewWebsite": "View website", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "LabelConnectEmail": "(Optional) Emby Connect e-mail address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server's IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect", + "LabelDateAddedBehavior": "Date added behaviour for new content", + "OptionDateAddedImportTime": "Use date scanned into the library", + "OptionDateAddedFileTime": "Use file creation date", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Library Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Camera upload path", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path, it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path, it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Parental Control", + "HeaderAccessSchedule": "Access Schedule", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Library Access", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "TitlePasswordReset": "Password Reset", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognised rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Allow media downloading", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and full stops (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Allow media conversion", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding to a compatible format, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding to a compatible format, if necessary, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your Internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimise resource consumption.", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Post Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favourite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favourite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Display name", + "OptionDownloadImagesInAdvance": "Download images in advance", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the Internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Thank you for supporting Emby.", + "FileReadCancelled": "The file read has been cancelled.", + "FileNotFound": "File not found.", + "FileReadError": "An error occurred while reading the file.", + "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "HeaderNewApiKey": "New API Key", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "TextEnjoyBonusFeatures": "Enjoy Bonus Features", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "To manage plugins, please use the Emby web app.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Are you sure you wish to restart Emby Server?", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Running on HTTP port {0}", + "LabelRunningOnPorts": "Running on HTTP port {0}, and HTTPS port {1}", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Select Path", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Metadata Manager", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this API key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke API Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Change Content Type", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Home videos & photos", + "OptionBooks": "Books", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. Additional subtitle providers can be installed from the Emby plug-in catalogue.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "New name", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Rename", + "HeaderPluginInstallation": "Plugin Installation", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Price: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Thank You", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Unlock App", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialogue and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading TV lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalogue{1} to install additional Live TV providers.", + "AddUser": "Add User", + "HeaderEmailAddress": "E-Mail Address", + "NumLocationsValue": "{0} folders", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Example: {0}", + "LabelFileOrUrl": "File or URL", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Enable debug logging", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live TV programmes to be included within suggested content.", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Centre to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over file names", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no Internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the Internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Let's Encrypt. Please either supply a certificate or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plug-in.", + "PluginInstalledMessage": "The plug-in has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been cancelled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An e-mail has been sent to the owner of the key. Please follow the instructions in that e-mail to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an e-mail to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems, this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems, this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referrer HTTP header", + "LabelUserAgentHeader": "User agent HTTP header", + "SupplyCustomValueIfNeeded": "Supply a custom HTTP header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN networks", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on the local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup then edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organised. If you're unsure, or if your folders don't exactly match one of the options, please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organised into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organised into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organised into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organised into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct colour conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimise the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimise operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimised, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimisation, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unticked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymise log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favourites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices. This should only be enabled if you are using a reverse proxy.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plug-in to be installed. This will allow saving your people edits to .nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the file name if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as Part 1, Part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organising your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external IDs (MovieDb, IMDb, etc.).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximised", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table of Contents", + "PageSingle": "Single page", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "TotalPages": "Total pages", + "NextPage": "Next page", + "RightToLeft": "Right-to-left order", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top-level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top-level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top-level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files." +} diff --git a/strings/en-US.json b/strings/en-US.json new file mode 100644 index 0000000..dfd1e8d --- /dev/null +++ b/strings/en-US.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "You're Done!", + "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process of setting up Emby Server.", + "HeaderCreateYourFirstUser": "Create Your First User", + "ButtonQuickStartGuide": "Quick Start Guide", + "MoreUsersCanBeAddedLater": "More users can be added later within Emby Server settings.", + "UserProfilesIntro": "Emby includes built-in support for user profiles, enabling each user to have their own display settings, playstate and parental controls.", + "WizardCompleted": "That's all we need for now. Emby has begun scanning your media library. Check out some of our apps, and then click Finish to view the Server Dashboard.", + "MessagePleaseAcceptTermsOfService": "Please accept the terms of use and privacy policy before continuing.", + "OptionIAcceptTermsOfService": "I accept the terms of use", + "SeeOurHwaGuide": "See our {0}hardware acceleration setup guide{1}.", + "HeaderEmbyServerReleaseNotes": "Emby Server Release Notes", + "AllowSubtitleDownloading": "Allow subtitle downloading", + "AllowSubtitleManagement": "Allow deletion of existing subtitle files", + "NewUserNameHelp": "This is how the user will appear on your server.", + "ChapterMarkers": "Chapter markers", + "LabelThumbnailImagesInterval": "Thumbnail images interval", + "ThumbnailImagesIntervalHelp": "More frequent thumbnails will result in a better experience, but will require more disk space and time to create the images.", + "LabelAuthProvider": "Authentication provider", + "AuthProviderHelp": "Administrators always use the default Emby provider to ensure you're never locked out.", + "HeaderNewUser": "New User", + "ChangeServerDisplayName": "Change Server Display Name", + "ShowAdvancedSettings": "Show advanced settings", + "ChangingMetadataImageSettingsNewContent": "Changes to metadata or artwork downloading settings will only apply to new content added to your library. To apply the changes to existing titles, you'll need to refresh their metadata manually.", + "AllowRemoteAccess": "Allow remote connections to this Emby Server.", + "AllowRemoteAccessHelp": "If unchecked, all remote connections will be blocked.", + "Alerts": "Alerts", + "LabelTrackTitleDisplay": "Embedded track title display", + "GenerateUserFriendlyTrackTitles": "Generate user friendly titles using track information", + "PreferOriginalTrackTitles": "Prefer embedded titles", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "EnableTranscodingThrottle": "Enable throttling", + "EnableTranscodingThrottleHelp": "Emby will dynamically adjust transcoding speed based in order to reduce CPU utilization.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} Image Fetchers", + "HeaderImageOptions": "Image Options", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Register with PayPal", + "LabelSyncTempPath": "Temporary file path", + "LabelSyncTempPathHelp": "Specify a custom working folder. Converted media created during the conversion process will be stored here.", + "LabelCustomCertificatePath": "Custom ssl certificate path", + "LabelCustomCertificatePathHelp": "Path to a PKCS #12 file containing a certificate and private key to enable TLS support on a custom domain.", + "HeaderSetupLibrary": "Setup Media Libraries", + "LabelTimeLimitHours": "Time limit (hours)", + "HeaderPreferredMetadataLanguage": "Preferred Metadata Language", + "LabelSaveLocalMetadata": "Save artwork into media folders", + "LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put images next to media files where they can be easily accessed from outside of Emby. If disabled, images will be saved into the server's metadata folder.", + "TabAccess": "Access", + "HeaderDeviceAccess": "Device Access", + "OptionEnableAccessFromAllDevices": "Enable access from all devices", + "OptionEnableAccessToAllChannels": "Enable access to all channels", + "OptionEnableAccessToAllLibraries": "Enable access to all libraries", + "DeviceAccessHelp": "Filtering user device access will prevent them from using new devices until they've been approved here.", + "LabelDisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Emby database and displayed within seasons and series. This may cause significantly longer library scans.", + "MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.", + "LabelMaxParentalRating": "Maximum allowed parental rating", + "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.", + "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.", + "ChannelAccessHelp": "Select the channels to share with this user. Administrators will be able to edit all channels using the metadata manager.", + "ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG/PNG only.", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Click OK to send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, setup Emby Premiere in your Emby Server Dashboard under Help -> Emby Premiere, and it will be unlocked automatically.", + "TabMyPlugins": "My Plugins", + "TabCatalog": "Catalog", + "HeaderAutomaticUpdates": "Automatic Updates", + "Standard": "Standard", + "TabSupporterKey": "Emby Premiere Key", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Useful for private or hidden administrator accounts. The user will need to sign in manually by entering their username and password.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Disable this user", + "OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.", + "OptionAllowUserToManageServer": "Allow this user to manage the server", + "HeaderFeatureAccess": "Feature Access", + "OptionAllowMediaPlayback": "Allow media playback", + "AllLibraries": "All libraries", + "HeaderAllowMediaDeletionFrom": "Allow Media Deletion From", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Allow remote control of other users", + "OptionAllowRemoteSharedDevices": "Allow remote control of shared devices", + "OptionAllowRemoteSharedDevicesHelp": "Dlna devices are considered shared until a user begins controlling it.", + "OptionAllowLinkSharing": "Allow social media sharing", + "OptionAllowLinkSharingHelp": "Only web pages containing media information are shared. Media files are never shared publicly. Shares are time-limited and will expire after {0} days.", + "OptionRelease": "Official Release", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods, when no users are active.", + "LabelRunServerAtStartup": "Run server at startup", + "LabelRunServerAtStartupHelp": "This will start the Emby tray icon on Windows startup. If you've set up a Windows service then leave this unchecked and configure the service to run at startup.", + "ButtonSelectDirectory": "Select Directory", + "LabelCachePath": "Cache path", + "DefaultMetadataLangaugeDescription": "These are your defaults and can be customized on a per-library basis.", + "LabelCachePathHelp": "Specify a custom location for server cache files, such as images. Leave blank to use the server default.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Metadata path", + "LabelMetadataPathHelp": "Specify the location below which the 'metadata' folder will be created for downloaded artwork and metadata, or blank this out to revert to default. If changing this, you'll need to manually migrate the contents from the old location to the new location. If you ever manually change the contents of the metadata folder, you'll need to run the {0}scan metadata folder scheduled task{1}.", + "LabelTranscodingTempPath": "Transcoding temporary path", + "LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Refresh Guide Data", + "LabelNumberOfGuideDays": "Number of days of guide data to download", + "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels. Please note that regardless of how many days you choose, the data must exist in the source guide data in order for it to be downloaded. Some guide data sources only provide 24 hours. Emby Guide Data supports up to 14 days.", + "HeaderFetchImages": "Fetch Images", + "LabelMaxBackdropsPerItem": "Maximum number of backdrops per item", + "LabelMaxScreenshotsPerItem": "Maximum number of screenshots per item", + "LabelMinBackdropDownloadWidth": "Minimum backdrop download width", + "LabelMinScreenshotDownloadWidth": "Minimum screenshot download width", + "ButtonAddScheduledTaskTrigger": "Add Trigger", + "ButtonAdd": "Add", + "LabelTriggerType": "Trigger Type", + "OptionOnInterval": "On an interval", + "OptionAfterSystemEvent": "After a system event", + "LabelDay": "Day", + "LabelTime": "Time", + "LabelEvent": "Event", + "OptionWakeFromSleep": "Wake from sleep", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Enable real time monitoring", + "LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately, on supported file systems.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Friendly server name", + "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.", + "LabelPreferredDisplayLanguage": "Preferred display language", + "LabelPreferredDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LabelReadHowYouCanContribute": "Learn how you can contribute.", + "LabelCustomCss": "Custom css", + "LabelCustomCssHelp": "Apply your own custom css to the web interface.", + "LabelLocalHttpServerPortNumber": "Local http port number", + "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Emby's http server should bind to.", + "LabelPublicHttpPort": "Public http port number", + "LabelPublicHttpPortHelp": "The public port number that should be mapped to the local http port.", + "LabelPublicHttpsPort": "Public https port number", + "LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local https port.", + "RequireHttps": "Require https for external connections", + "RequireHttpsHelp": "If enabled, connections over http will be redirected to https.", + "LabelHttpsPort": "Local https port number", + "LabelHttpsPortHelp": "The tcp port number that Emby's https server should bind to.", + "LabelEnableAutomaticPortMap": "Enable automatic port mapping", + "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", + "LabelExternalDDNS": "External domain", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Min resume percentage", + "LabelMaxResumePercentage": "Max resume percentage", + "LabelMinResumeDuration": "Min resume duration (seconds)", + "LabelMinResumePercentageHelp": "Titles are assumed unplayed if stopped before this time", + "LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time", + "LabelMinResumeDurationHelp": "Titles shorter than this will not be resumable", + "HeaderStatus": "Status", + "Subscriptions": "Subscriptions", + "LabelEndingEpisodeNumber": "Ending episode number", + "LabelEndingEpisodeNumberHelp": "Only required for multi-episode files", + "HeaderSupportTheTeam": "Support the Emby Team", + "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by purchasing Emby Premiere. A portion of all income will be contributed to other free tools we depend on.", + "DonationNextStep": "Once complete, please return and enter your Emby Premiere key, which you will receive by email.", + "HeaderRunningTasks": "Running Tasks", + "ButtonUpdateNow": "Update Now", + "PleaseUpdateManually": "Please shutdown Emby Server and install the latest version.", + "ServerUpToDate": "Emby Server is up to date", + "MessagePleaseRestartServerToFinishUpdating": "Please restart the server to finish applying updates.", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", + "HeaderForgotKey": "Forgot Key", + "LabelSupporterEmailAddress": "The email address that was used to purchase the key.", + "ButtonRetrieveKey": "Retrieve Key", + "LabelSupporterKey": "Emby Premiere key (paste from email)", + "LabelSupporterKeyHelp": "Enter your Emby Premiere key to start enjoying additional benefits.", + "MessageInvalidKey": "Emby Premiere key is missing or invalid.", + "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also have an active Emby Premiere subscription.", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Send message", + "HeaderSendMessage": "Send Message", + "ButtonSend": "Send", + "LabelMessageText": "Message text", + "LabelMessageTitle": "Message title", + "ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Api Keys", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "Api Key", + "HeaderResumeSettings": "Resume Settings", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Activity", + "ButtonPurchase": "Purchase", + "HeaderInstall": "Install", + "LabelSelectVersionToInstall": "Select version to install", + "LinkLearnMoreAboutSubscription": "Learn about Emby Premiere", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Developer Info", + "HeaderRevisionHistory": "Revision History", + "ButtonViewWebsite": "View website", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect", + "LabelDateAddedBehavior": "Date added behavior for new content", + "OptionDateAddedImportTime": "Use date scanned into the library", + "OptionDateAddedFileTime": "Use file creation date", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Library Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Camera upload path", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Parental Control", + "HeaderAccessSchedule": "Access Schedule", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Library Access", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "TitlePasswordReset": "Password Reset", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Allow media downloading", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Allow media conversion", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding to a compatible format, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding to a compatible format, if necessary, during media playback", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported audio, video, subtitles or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Remote streaming bitrate limit (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit remote streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Zip Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Display name", + "OptionDownloadImagesInAdvance": "Download images in advance", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Thank you for supporting Emby.", + "FileReadCancelled": "The file read has been canceled.", + "FileNotFound": "File not found.", + "FileReadError": "An error occurred while reading the file.", + "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "HeaderNewApiKey": "New Api Key", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "TextEnjoyBonusFeatures": "Enjoy Bonus Features", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "To manage plugins, please use the Emby web app.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Are you sure you wish to restart Emby Server?", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Running on http port {0}", + "LabelRunningOnPorts": "Running on http port {0}, and https port {1}", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Select Path", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Metadata Manager", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Change Content Type", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Home videos & photos", + "OptionBooks": "Books", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "New name", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Rename", + "HeaderPluginInstallation": "Plugin Installation", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Price: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Thank You", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Unlock App", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Add User", + "HeaderEmailAddress": "E-Mail Address", + "NumLocationsValue": "{0} folders", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Example: {0}", + "LabelFileOrUrl": "File or url", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Enable debug logging", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN networks", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices. This should only be enabled if you are using a reverse proxy.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "LabelPageSize": "Page Size", + "PageNarrow": "Narrow", + "PageSingle": "Single page", + "PageBook": "Double page", + "PageMaximized": "Maximized", + "StartOfSection": "Start of chapter", + "PreviousSection": "Previous chapter", + "NextSection": "Next chapter", + "PositionInBook": "Position in the book", + "TableOfContents": "Table Of Contents", + "ZoomOut": "Zoom out", + "ZoomIn": "Zoom in", + "ZoomNone": "Default zoom", + "ZoomAutoFit": "Fit page", + "LayoutPage": "Single page", + "LayoutDouble": "Double page", + "LayoutVertical": "Vertical scroll", + "Margins": "Margins", + "PreviousPage": "Previous page", + "CurrentPage": "Current page", + "TotalPages": "Total pages", + "NextPage": "Next page", + "RightToLeft": "Right-to-left order", + "LetsGetSetup": "Let's Get Set Up", + "ExcludeFromGlobalSearch": "Exclude from global search", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This primarily impacts the display in folder view. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files." +} diff --git a/strings/es-AR.json b/strings/es-AR.json new file mode 100644 index 0000000..bb656b9 --- /dev/null +++ b/strings/es-AR.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Ha terminado!", + "ThisWizardWillGuideYou": "Este asistente le ayudará durante el proceso de configuración. Para comenzar, seleccione su idioma preferido.", + "HeaderCreateYourFirstUser": "Crea tu primer usuario", + "ButtonQuickStartGuide": "Guía de inicio rápido", + "MoreUsersCanBeAddedLater": "Puedes agregar mas usuarios en el panel mas adelante.", + "UserProfilesIntro": "Emby incluye soporte integrado para los perfiles de usuario, lo que permite a cada usuario tener su propia configuración de pantalla, estado de reproducción y controles parentales.", + "WizardCompleted": "Eso es todo lo que necesitamos por ahora. Emby ha comenzado a recolectar información sobre su biblioteca de medios. Dale un vistazo a algunas de nuestras aplicaciones y, a continuación, hacé clic en Finalizar para ver el Panel de control del servidor.", + "MessagePleaseAcceptTermsOfService": "Por favor acepte los términos del servicio y la política de privacidad antes de continuar.", + "OptionIAcceptTermsOfService": "Acepto los términos del servicio.", + "SeeOurHwaGuide": "Mira nuestra guía de configuración de {0} aceleración de hardware{1}.", + "HeaderEmbyServerReleaseNotes": "Notas de la versión del servidor Emby", + "AllowSubtitleDownloading": "Permitir la descarga de subtítulos.", + "AllowSubtitleManagement": "Permitir el borrado de los archivos de subtítulos existentes.", + "NewUserNameHelp": "Así es como el usuario va a aparecer en tu servidor.", + "ChapterMarkers": "Marcadores de capítulo", + "LabelThumbnailImagesInterval": "Intervalo de imágenes en miniatura:", + "ThumbnailImagesIntervalHelp": "Las miniaturas más frecuentes darán como resultado una mejor experiencia, pero requerirán más espacio en el disco y tiempo para crear las imágenes.", + "LabelAuthProvider": "Proveedor de autenticación:", + "AuthProviderHelp": "Los administradores siempre usan el proveedor Emby predeterminado para asegurarse de que nunca esté bloqueado.", + "HeaderNewUser": "Nuevo usuario", + "ChangeServerDisplayName": "Cambiar el nombre del servidor", + "ShowAdvancedSettings": "Mostrar configuraciones avanzadas", + "ChangingMetadataImageSettingsNewContent": "Los cambios en la configuración de descarga de información o ilustraciones solo se aplicarán al nuevo contenido agregado a su biblioteca. Para aplicar los cambios a los títulos existentes, deberá actualizar su información manualmente.", + "AllowRemoteAccess": "Permitir conexiones remotas a este servidor Emby", + "AllowRemoteAccessHelp": "Si no se selecciona, se bloquearán todas las conexiones remotas.", + "Alerts": "Alertas", + "LabelTrackTitleDisplay": "Visualización de título de pista incrustada:", + "GenerateUserFriendlyTrackTitles": "Genera títulos fáciles de usar usando información de seguimiento", + "PreferOriginalTrackTitles": "Preferir títulos incrustados", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "EnableTranscodingThrottle": "Habilitar estrangulamiento", + "EnableTranscodingThrottleHelp": "Emby ajustará dinámicamente la velocidad de transcodificación para reducir la utilización de la CPU.", + "HeaderTypeMetadataDownloaders": "{0} Descargadores de información", + "HeaderTypeImageFetchers": "{0} Capturadores de imagenes", + "HeaderImageOptions": "Opciones de imagen", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registrarse con PayPal", + "LabelSyncTempPath": "Ruta de archivos temporales:", + "LabelSyncTempPathHelp": "Especifica un directorio de trabajo personalizado. Los archivos creados durante la conversión serán guardados aquí.", + "LabelCustomCertificatePath": "Ruta del certificado SSL:", + "LabelCustomCertificatePathHelp": "Ruta al PKCS #12 que contiene el certificado y llave privada para habilitar el soporte TLS en los dominios personalizados.", + "HeaderSetupLibrary": "Configurar bibliotecas de medios", + "LabelTimeLimitHours": "Límite de tiempo (horas):", + "HeaderPreferredMetadataLanguage": "Idioma preferido de información", + "LabelSaveLocalMetadata": "Save artwork into media folders", + "LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put images next to media files where they can be easily accessed from outside of Emby. If disabled, images will be saved into the server's metadata folder.", + "TabAccess": "Acceso", + "HeaderDeviceAccess": "Device Access", + "OptionEnableAccessFromAllDevices": "Enable access from all devices", + "OptionEnableAccessToAllChannels": "Enable access to all channels", + "OptionEnableAccessToAllLibraries": "Enable access to all libraries", + "DeviceAccessHelp": "Filtering user device access will prevent them from using new devices until they've been approved here.", + "LabelDisplayMissingEpisodesWithinSeasons": "Mostar capítulos no disponibles en temporadas", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Emby database and displayed within seasons and series. This may cause significantly longer library scans.", + "MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.", + "LabelMaxParentalRating": "Maximum allowed parental rating", + "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.", + "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.", + "ChannelAccessHelp": "Select the channels to share with this user. Administrators will be able to edit all channels using the metadata manager.", + "ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG/PNG only.", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Click OK to send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, setup Emby Premiere in your Emby Server Dashboard under Help -> Emby Premiere, and it will be unlocked automatically.", + "TabMyPlugins": "Mis complementos", + "TabCatalog": "Catalog", + "HeaderAutomaticUpdates": "Automatic Updates", + "Standard": "Standard", + "TabSupporterKey": "Emby Premiere Key", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Useful for private or hidden administrator accounts. The user will need to sign in manually by entering their username and password.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Disable this user", + "OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.", + "OptionAllowUserToManageServer": "Allow this user to manage the server", + "HeaderFeatureAccess": "Feature Access", + "OptionAllowMediaPlayback": "Allow media playback", + "AllLibraries": "All libraries", + "HeaderAllowMediaDeletionFrom": "Allow Media Deletion From", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Allow remote control of other users", + "OptionAllowRemoteSharedDevices": "Allow remote control of shared devices", + "OptionAllowRemoteSharedDevicesHelp": "Dlna devices are considered shared until a user begins controlling it.", + "OptionAllowLinkSharing": "Allow social media sharing", + "OptionAllowLinkSharingHelp": "Only web pages containing media information are shared. Media files are never shared publicly. Shares are time-limited and will expire after {0} days.", + "OptionRelease": "Official Release", + "LabelAllowServerAutoRestartPlugin": "Permitir que el servidor se reinicie automáticamente para actualizar los complementos", + "LabelAllowServerAutoRestartServerOrPlugin": "Permitir que el servidor se reinicie automáticamente para actualizar el servidor o los complementos", + "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods, when no users are active.", + "LabelRunServerAtStartup": "Run server at startup", + "LabelRunServerAtStartupHelp": "This will start the Emby tray icon on Windows startup. If you've set up a Windows service then leave this unchecked and configure the service to run at startup.", + "ButtonSelectDirectory": "Select Directory", + "LabelCachePath": "Cache path", + "DefaultMetadataLangaugeDescription": "These are your defaults and can be customized on a per-library basis.", + "LabelCachePathHelp": "Specify a custom location for server cache files, such as images. Leave blank to use the server default.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Metadata path", + "LabelMetadataPathHelp": "Specify a location for downloaded artwork and metadata, or blank this out to revert to default. If changing this, you'll need to manually migrate the contents from the old location to the new location. If you ever manually change the contents of the metadata folder, you'll need to run the {0}scan metadata folder scheduled task{1}.", + "LabelTranscodingTempPath": "Transcoding temporary path", + "LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Refresh Guide Data", + "LabelNumberOfGuideDays": "Number of days of guide data to download", + "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels. Please note that regardless of how many days you choose, the data must exist in the source guide data in order for it to be downloaded. Some guide data sources only provide 24 hours. Emby Guide Data supports up to 14 days.", + "HeaderFetchImages": "Fetch Images", + "LabelMaxBackdropsPerItem": "Maximum number of backdrops per item", + "LabelMaxScreenshotsPerItem": "Maximum number of screenshots per item", + "LabelMinBackdropDownloadWidth": "Minimum backdrop download width", + "LabelMinScreenshotDownloadWidth": "Minimum screenshot download width", + "ButtonAddScheduledTaskTrigger": "Add Trigger", + "ButtonAdd": "Add", + "LabelTriggerType": "Trigger Type", + "OptionOnInterval": "On an interval", + "OptionAfterSystemEvent": "After a system event", + "LabelDay": "Day", + "LabelTime": "Time", + "LabelEvent": "Event", + "OptionWakeFromSleep": "Wake from sleep", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Enable real time monitoring", + "LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately, on supported file systems.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Friendly server name", + "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.", + "LabelPreferredDisplayLanguage": "Preferred display language", + "LabelPreferredDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LabelReadHowYouCanContribute": "Learn how you can contribute.", + "LabelCustomCss": "Custom css", + "LabelCustomCssHelp": "Apply your own custom css to the web interface.", + "LabelLocalHttpServerPortNumber": "Local http port number", + "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Emby's http server should bind to.", + "LabelPublicHttpPort": "Public http port number", + "LabelPublicHttpPortHelp": "The public port number that should be mapped to the local http port.", + "LabelPublicHttpsPort": "Public https port number", + "LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local https port.", + "RequireHttps": "Require https for external connections", + "RequireHttpsHelp": "If enabled, connections over http will be redirected to https.", + "LabelHttpsPort": "Local https port number", + "LabelHttpsPortHelp": "The tcp port number that Emby's https server should bind to.", + "LabelEnableAutomaticPortMap": "Enable automatic port mapping", + "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", + "LabelExternalDDNS": "External domain", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Min resume percentage", + "LabelMaxResumePercentage": "Max resume percentage", + "LabelMinResumeDuration": "Min resume duration (seconds)", + "LabelMinResumePercentageHelp": "Titles are assumed unplayed if stopped before this time", + "LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time", + "LabelMinResumeDurationHelp": "Titles shorter than this will not be resumable", + "HeaderStatus": "Status", + "Subscriptions": "Subscriptions", + "LabelEndingEpisodeNumber": "Ending episode number", + "LabelEndingEpisodeNumberHelp": "Only required for multi-episode files", + "HeaderSupportTheTeam": "Support the Emby Team", + "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by purchasing Emby Premiere. A portion of all income will be contributed to other free tools we depend on.", + "DonationNextStep": "Once complete, please return and enter your Emby Premiere key, which you will receive by email.", + "HeaderRunningTasks": "Running Tasks", + "ButtonUpdateNow": "Update Now", + "PleaseUpdateManually": "Please shutdown Emby Server and install the latest version.", + "ServerUpToDate": "Emby Server is up to date", + "MessagePleaseRestartServerToFinishUpdating": "Please restart the server to finish applying updates.", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", + "HeaderForgotKey": "Forgot Key", + "LabelSupporterEmailAddress": "The email address that was used to purchase the key.", + "ButtonRetrieveKey": "Retrieve Key", + "LabelSupporterKey": "Emby Premiere key (paste from email)", + "LabelSupporterKeyHelp": "Enter your Emby Premiere key to start enjoying additional benefits.", + "MessageInvalidKey": "Emby Premiere key is missing or invalid.", + "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also have an active Emby Premiere subscription.", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Send message", + "HeaderSendMessage": "Send Message", + "ButtonSend": "Send", + "LabelMessageText": "Message text", + "LabelMessageTitle": "Message title", + "ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Api Keys", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "Api Key", + "HeaderResumeSettings": "Resume Settings", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Activity", + "ButtonPurchase": "Purchase", + "HeaderInstall": "Install", + "LabelSelectVersionToInstall": "Select version to install", + "LinkLearnMoreAboutSubscription": "Learn about Emby Premiere", + "MessagePluginRequiresSubscription": "Este complemento requerirá una suscripción de Emby Premiere luego de los 14 días de prueba gratuita.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Developer Info", + "HeaderRevisionHistory": "Revision History", + "ButtonViewWebsite": "View website", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect", + "LabelDateAddedBehavior": "Date added behavior for new content", + "OptionDateAddedImportTime": "Use date scanned into the library", + "OptionDateAddedFileTime": "Use file creation date", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Library Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Camera upload path", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Parental Control", + "HeaderAccessSchedule": "Access Schedule", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Library Access", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "TitlePasswordReset": "Password Reset", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Allow media downloading", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Allow media conversion", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Zip Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Display name", + "OptionDownloadImagesInAdvance": "Download images in advance", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Thank you for supporting Emby.", + "FileReadCancelled": "The file read has been canceled.", + "FileNotFound": "File not found.", + "FileReadError": "An error occurred while reading the file.", + "NoPluginConfigurationMessage": "Este complemento no tiene ajustes para configurar.", + "HeaderNewApiKey": "New Api Key", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "TextEnjoyBonusFeatures": "Disfrute los extras", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "Para gestionar complementos, utilize la aplicacion web de Emby.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Are you sure you wish to restart Emby Server?", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Running on http port {0}", + "LabelRunningOnPorts": "Running on http port {0}, and https port {1}", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Select Path", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Metadata Manager", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Change Content Type", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Home videos & photos", + "OptionBooks": "Books", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "New name", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Rename", + "HeaderPluginInstallation": "Instalación de complemento", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Price: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Thank You", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Unlock App", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Add User", + "HeaderEmailAddress": "E-Mail Address", + "NumLocationsValue": "{0} folders", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Example: {0}", + "LabelFileOrUrl": "File or url", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Enable debug logging", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Refrescar información automáticamente para episodios con títulos temporales como TBA:", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN networks", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files." +} diff --git a/strings/es-MX.json b/strings/es-MX.json new file mode 100644 index 0000000..5d03441 --- /dev/null +++ b/strings/es-MX.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "¡Ha terminado!", + "ThisWizardWillGuideYou": "Este asistente le ayudara guiándolo a través del proceso de configuración de su Servidor Emby.", + "HeaderCreateYourFirstUser": "Crea Tu Primer Usuario", + "ButtonQuickStartGuide": "Guía de Inicio Rápido", + "MoreUsersCanBeAddedLater": "Se pueden agregar más usuarios posteriormente en las configuraciones del Servidor Emby.", + "UserProfilesIntro": "Emby incluye soporte integrado para perfiles de usuario, habilitando a cada usuario para tener sus propias configuraciones de visualización, reproducción y controles parentales.", + "WizardCompleted": "Eso es todo lo que necesitamos por ahora, Emby ha comenzado a escanear su biblioteca de medios. Revise algunas de nuestras aplicaciones, y haga clic en Finalizar para ver el Panel de Control", + "MessagePleaseAcceptTermsOfService": "Por favor acepte los términos del uso y la política de privacidad antes de continuar.", + "OptionIAcceptTermsOfService": "Acepto los términos del uso.", + "SeeOurHwaGuide": "Vea nuestra {0}Guía de configuración de aceleración por hardware{1}.", + "HeaderEmbyServerReleaseNotes": "Notas de Actualización del Servidor Emby", + "AllowSubtitleDownloading": "Permitir la descarga de subtitulos", + "AllowSubtitleManagement": "Permitir la eliminación de archivos de subtitulo existentes", + "NewUserNameHelp": "Así es como los usuarios se verán en su servidor.", + "ChapterMarkers": "Marcadores de capítulos", + "LabelThumbnailImagesInterval": "Intervalo de imágenes en miniatura", + "ThumbnailImagesIntervalHelp": "Una mayor frecuencia en las imagenes en miniatura resulatara en una mejor experiencia, pero requerira mas espacio en disco y tiempo para crear las imagenes.", + "LabelAuthProvider": "Proveedor de Autenticación", + "AuthProviderHelp": "Los administradores deben siempre utilizar el proveedor Emby por defecto para garantizar que nunca serán bloqueados.", + "HeaderNewUser": "Nuevo Usuario", + "ChangeServerDisplayName": "Cambiar el Nombre del Servidor Emby", + "ShowAdvancedSettings": "Mostrar configuraciones avanzadas", + "ChangingMetadataImageSettingsNewContent": "Cambios en las configuraciones de descarga de metadatos o arte solo se aplicaran a contenido nuevo agregado a su biblioteca. Para aplicar los cambios a los títulos existentes, necesita actualizar los metadatos manualmente.", + "AllowRemoteAccess": "Permitir conexiones remotas a este Servidor Emby", + "AllowRemoteAccessHelp": "Si se deshabilita, todas las conexiones remotas serán bloqueadas.", + "Alerts": "Alertas", + "LabelTrackTitleDisplay": "Mostrar titulo embebido en las pistas", + "GenerateUserFriendlyTrackTitles": "Generar títulos de pistas amigables usando la información de las pistas", + "PreferOriginalTrackTitles": "Preferir títulos embebidos", + "TrackTitleDisplayHelp": "Elige entre mostrar el titulo embebido en las pistas de audio y subtitulo. Preferir títulos embebidos no es recomendado a menos que usted cure manualmente la información embebida en las pistas.", + "EnableTranscodingThrottle": "Habilitar contención", + "EnableTranscodingThrottleHelp": "Emby ajustara automáticamente la velocidad de la transcodificacion para reducir la utilización del CPU.", + "HeaderTypeMetadataDownloaders": "{0} Recolectores de Metadatos:", + "HeaderTypeImageFetchers": "{0} Recolectores de Imágenes", + "HeaderImageOptions": "Opciones de Imagen", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registrar con PayPal", + "LabelSyncTempPath": "Ruta de archivos temporales", + "LabelSyncTempPathHelp": "Especifique una carpeta de trabajo personalizada. Los medios convertidos creados durante el proceso de conversión serán almacenados aquí.", + "LabelCustomCertificatePath": "Ruta personalizada del certificado ssl", + "LabelCustomCertificatePathHelp": "Trayectoria a un archivo PKCS #12 que contiene el certificado y la llave privada para habilitar soporte a TLS en un dominio personalizado.", + "HeaderSetupLibrary": "Configurar Bibliotecas de Medios", + "LabelTimeLimitHours": "Límite de Tiempo (horas)", + "HeaderPreferredMetadataLanguage": "Idioma Preferido para Metadatos", + "LabelSaveLocalMetadata": "Guardar ilustraciones en las carpetas de medios", + "LabelSaveLocalMetadataHelp": "Guardar ilustraciones directamente en las carpetas de medios los colocará en un lugar donde pueden ser accedidas fácilmente desde fuera de Emby. Si se deshabilita las imágenes serán guardadas en la carpeta de metadatos en el servidor.", + "TabAccess": "Acceso", + "HeaderDeviceAccess": "Acceso a Dispositivos", + "OptionEnableAccessFromAllDevices": "Habilitar acceso desde todos los dispositivos", + "OptionEnableAccessToAllChannels": "Habilitar acceso a todos los canales", + "OptionEnableAccessToAllLibraries": "Habilitar el acceso a todas las bibliotecas", + "DeviceAccessHelp": "Filtrando en acceso de los dispositivos de usuarios evitara que usen nuevos dispositivos hasta que sean aprobados aquí.", + "LabelDisplayMissingEpisodesWithinSeasons": "Mostar episodios no disponibles en las temporadas", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Esta opción también debe de estar habilitada en la configuración del Servidor Emby para bibliotecas de TV.", + "ImportMissingEpisodesHelp": "Si se habilita, se importara a su base de datos de Emby información sobre episodios faltantes y se mostrara dentro de las temporadas y series. Esto podría ocasionar escaneos de biblioteca significativamente mas largos.", + "MessageEnablingOptionLongerScans": "Habilitar esta opción podría resultar en escaneos de bibliotecas significativamente mas largos.", + "LabelMaxParentalRating": "Máxima clasificación parental permitida", + "MaxParentalRatingHelp": "El contenido con clasificación parental superior se ocultará para este usuario.", + "LibraryAccessHelp": "Seleccione las carpetas de medios para compartir con este usuario. Los administradores podrán editar todas las carpetas usando el administrador de metadatos.", + "ChannelAccessHelp": "Seleccione los canales a compartir con este usuario. Los administradores podrán editar todos los canales empleando el administrador de metadatos.", + "ImageUploadAspectRatioHelp": "Se Recomienda una Proporción de Aspecto 1:1. Solo JPG/PNG.", + "AlreadyPaidHelp1": "Si ya ha pagado para instalar una versión antigua de Media Browser para Android, no necesita pagar de nuevo para activar esta app. De clic en OK para enviarnos un correo electrónico a {0} y nosotros la activaremos por usted.", + "AlreadyPaidHelp2": "¿Ya cuenta con Emby Premiere? Solo cancele este cuadro de dialogo, configure Emby Premiere en su Servidor Emby bajo Ayuda-> Emby Premiere, y se desbloqueara automáticamente.", + "TabMyPlugins": "Mis Complementos", + "TabCatalog": "Catálogo", + "HeaderAutomaticUpdates": "Actualizaciones Automáticas", + "Standard": "Estándar", + "TabSupporterKey": "Clave de Emby Premier", + "OptionHideUserLocal": "Ocultar este usuario de la pantalla de inicio de sesión en su red local", + "OptionHideUserRemote": "Ocultar este usuario de la pantalla de inicio de sesión para conexiones remotas", + "OptionHideUserFromLoginHelp": "Útil para cuentas privadas o de administrador ocultas. El usuario tendrá que iniciar sesión manualmente introduciendo su nombre de usuario y contraseña.", + "HideFromUnusedDevices": "Ocultar este usuario de las pantallas de inicio de sesión en dispositivos en los que nunca hay iniciado sesión", + "OptionDisableUser": "Desactivar este usuario", + "OptionDisableUserHelp": "Si está desactivado, el servidor no aceptará conexiones de este usuario. Las conexiones existentes serán finalizadas abruptamente.", + "OptionAllowUserToManageServer": "Permitir a este usuario administrar el servidor", + "HeaderFeatureAccess": "Permisos de acceso", + "OptionAllowMediaPlayback": "Permitir reproducción de medios", + "AllLibraries": "Todas las bibliotecas", + "HeaderAllowMediaDeletionFrom": "Permitir Eliminacion de Medios De", + "LiveTVRecordingManagement": "Administración de Grabaciones de TV en Vivo", + "OptionAllowRemoteControlOthers": "Permitir control remoto de otros usuarios", + "OptionAllowRemoteSharedDevices": "Permitir control remoto de dispositivos compartidos", + "OptionAllowRemoteSharedDevicesHelp": "Los dispositivos dnla son considerados como compartidos hasta que algún usuario comienza a controlarlo.", + "OptionAllowLinkSharing": "Permitir compartir medios en redes sociales.", + "OptionAllowLinkSharingHelp": "Solo son compartidas paginas web que contengan información sobre los medios. Los archivos de medios nunca son compartidos públicamente. Son compartidos por un tiempo limitado y expiraran después de {0} días.", + "OptionRelease": "Versión Oficial", + "LabelAllowServerAutoRestartPlugin": "Permitir al servidor reiniciar automáticamente para aplicar actualizaciones de complementos", + "LabelAllowServerAutoRestartServerOrPlugin": "Permitir al servidor reiniciar automáticamente para aplicar actualizaciones de servidor o de complementos", + "LabelAllowServerAutoRestartHelp": "El servidor reiniciará únicamente durante periodos ociosos, cuando no haya usuarios activos.", + "LabelRunServerAtStartup": "Ejecutar el servidor al iniciar", + "LabelRunServerAtStartupHelp": "Esto iniciará el icono de Emby en el área de notificación cuando windows arranque. Si ha configurado un Servicio de Windows entonces deje esta casilla desmarcada y configure el servicio para ejecutarse al iniciar.", + "ButtonSelectDirectory": "Seleccionar Carpeta", + "LabelCachePath": "Ruta para el caché", + "DefaultMetadataLangaugeDescription": "Estas son sus configuraciones por defecto y puedes ser personalizadas independientemente en cada biblioteca.", + "LabelCachePathHelp": "Especifique una ubicación personalizada para los archivos de caché del servidor, tales como imágenes. Dejar en blanco para utilizar la configuración por defecto.", + "LabelDefaultRecordingFolder": "Carpeta por defecto para grabaciones", + "LabelMovieRecordingFolder": "Carpeta para grabaciones de películas", + "LabelSeriesRecordingFolder": "Carpeta para grabaciones de series", + "SeriesRecordingFolderHelp": "(Opcional). Elija la biblioteca por defecto en la cual guardar las grabaciones de series de TV. Esta debe ser una biblioteca que haya creado en las configuraciones de biblioteca de Emby configurada con el tipo de contenido \"Programas de TV\" o \"Contenido Mixto\".", + "HeaderProgramData": "Datos de Programa", + "RecordingFolderHelp": "Elija la biblioteca por defecto en la cual guardar las grabaciones. Debe ser una biblioteca que haya creado en las configuraciones de biblioteca de Emby con el tipo de contenido configurado a \"Mixto\".", + "MovieRecordingFolderHelp": "(Opcional). Elija la biblioteca por defecto en la cual guardar las grabaciones de películas. Esta debe ser una biblioteca que haya creado en las configuraciones de librería de Emby configurada con el tipo de contenido \"Programas de TV\" o \"Contenido Mixto\".", + "LabelMetadataPath": "Ruta para metadatos", + "LabelMetadataPathHelp": "Especifique una ubicación para el arte y los metadatos, o deje este espacio en blanco para regresar a los valores predeterminados. Si cambia esto necesitara migrar manualmente los contenidos de la anterior ubicación a la nueva. Si ha cambiado el contenido de la carpeta de metadatos necesitara ejecutar la {0}tarea programada para escanear carpeta de metadatos {1}.", + "LabelTranscodingTempPath": "Ruta para transcodificación temporal", + "LabelTranscodingTempPathHelp": "Esta carpeta contiene archivos de trabajo usados por el transcodificador. Especifique una ruta personalizada, o déjela vacía para utilizar su valor por omisión en la carpeta de datos del servidor.", + "GenerateVideoPreviewThumbnailsHelp": "Los vídeos en las miniaturas de vista previa dan actualizaciones en vivo mientras navega en las apps que lo soportan. La generación de las miniaturas pudiera tomar un tiempo mas largo, causar alto consumo de CPU, y ocupar mas espacio en disco.", + "AsAScheduledTask": "como una tarea programada", + "AsAScheduledTaskAndMediaAdded": "como una tarea programada y cuando los medios son agregados", + "ButtonRefreshGuideData": "Actualizar Datos de la Guía", + "LabelNumberOfGuideDays": "Número de días de datos de la programación a descargar", + "LabelNumberOfGuideDaysHelp": "Descargar información de mas días del proveedor de información de la guía permite agendar con mas antelación y ver mas listados, pero también aumentara el tiempo de la descarga. Automático elegirá basado en el numero de canales. Por favor considere que sin importar cuantos días elija, la información debe existir en la fuente de información de la guía para que pueda ser descargada. Algunas proveedores de información de las guías solo proveen 24 horas. Emby soporta un máximo de 14 días.", + "HeaderFetchImages": "Buscar imágenes", + "LabelMaxBackdropsPerItem": "Número máximo de imágenes de fondo por ítem", + "LabelMaxScreenshotsPerItem": "Número máximo de capturas de pantalla por ítem", + "LabelMinBackdropDownloadWidth": "Anchura mínima de descarga de imágenes de fondo", + "LabelMinScreenshotDownloadWidth": "Anchura mínima de descarga de capturas de pantalla", + "ButtonAddScheduledTaskTrigger": "Agregar Disparador", + "ButtonAdd": "Agregar", + "LabelTriggerType": "Tipo de Evento", + "OptionOnInterval": "En un intervalo", + "OptionAfterSystemEvent": "Después de un evento del sistema", + "LabelDay": "Día", + "LabelTime": "Hora", + "LabelEvent": "Evento", + "OptionWakeFromSleep": "Al Despertar", + "Every": "Cada", + "LabelEnableRealtimeMonitor": "Activar monitoreo en tiempo real", + "LabelEnableRealtimeMonitorHelp": "Los cambios en los archivos serán procesados inmediatamente, en los sistemas de archivo que lo soporten.", + "Community": "Comunidad", + "HeaderEmbyNews": "Novedades Emby", + "LabelFriendlyServerName": "Nombre amigable del servidor", + "LabelFriendlyServerNameHelp": "Este nombre será usado para identificar este servidor. Si se deja en blanco, se usará el nombre de la computadora.", + "LabelPreferredDisplayLanguage": "Idioma de pantalla preferido", + "LabelPreferredDisplayLanguageHelp": "La traducción de Emby es un proyecto en curso.", + "LabelReadHowYouCanContribute": "Infórmese de cómo puede contribuir.", + "LabelCustomCss": "css personalizado", + "LabelCustomCssHelp": "Aplicar tu propia css personalizada a la interfaz web.", + "LabelLocalHttpServerPortNumber": "Número de puerto http local", + "LabelLocalHttpServerPortNumberHelp": "El numero de puerto tcp con el que se deberá vincular el servidor http de Emby.", + "LabelPublicHttpPort": "Número de puerto http publico", + "LabelPublicHttpPortHelp": "El numero de puerto que debe ser mapeado a el puerto http local.", + "LabelPublicHttpsPort": "Número de puerto https publico", + "LabelPublicHttpsPortHelp": "El número de puerto público que deberá ser mapeado al puerto local de https.", + "RequireHttps": "Requerir https para conexiones externas", + "RequireHttpsHelp": "Si lo habilita, las conexiones sobre http serán redirigidas a https.", + "LabelHttpsPort": "Número de puerto https local", + "LabelHttpsPortHelp": "El numero de puerto tcp con el que se deberá vincular el servidor https de Emby.", + "LabelEnableAutomaticPortMap": "Habilitar mapeo automático de puertos", + "LabelEnableAutomaticPortMapHelp": "Intentar mapear automáticamente el puerto público con el puerto local via UPnP. Esto podría no funcionar con algunos modelos de ruteadores.", + "LabelExternalDDNS": "Dominio externo", + "LabelExternalDDNSHelp": "Si tiene un DNS dinámico o nombre de dominio introdúzcalo aquí, sin protocolo o puerto. Las aplicaciones Emby lo usaran cuando se conecten remotamente. Este campo es obligatorio cuando se usa un certificado ssl personalizado. Ejemplo: midominio.com.", + "LabelMinResumePercentage": "Porcentaje mínimo para continuar", + "LabelMaxResumePercentage": "Porcentaje máximo para continuar", + "LabelMinResumeDuration": "Duración mínima para continuar (segundos)", + "LabelMinResumePercentageHelp": "Se asumirá que los títulos no han sido reproducidos si se detienen antes de este momento", + "LabelMaxResumePercentageHelp": "Se asumirá que los títulos han sido reproducidos por completo si se detienen después de este momento", + "LabelMinResumeDurationHelp": "Los titulos con duración menor a esto no podrán ser continuados", + "HeaderStatus": "Estado", + "Subscriptions": "Suscripciones", + "LabelEndingEpisodeNumber": "Número episodio final", + "LabelEndingEpisodeNumberHelp": "Sólo requerido para archivos multi-episodio", + "HeaderSupportTheTeam": "Apoye al equipo de Emby", + "HeaderSupportTheTeamHelp": "Ayude a asegurar el desarrollo continuo de este proyecto adquiriendo Emby Premier. Una parte de todos los ingresos serán destinados a contribuciones a otras herramientas libres de las cuales dependemos.", + "DonationNextStep": "Una vez completado, por favor regerese e introduzca su clave de Emby Premier, la cual recibirá por correo electrónico.", + "HeaderRunningTasks": "Tareas en Ejecución", + "ButtonUpdateNow": "Actualizar Ahora", + "PleaseUpdateManually": "Por favor apague el Servidor Emby e instale la versión mas reciente.", + "ServerUpToDate": "El Servidor Emby esta actualizado", + "MessagePleaseRestartServerToFinishUpdating": "Por favor reinicie el servidor para completar la aplicación de las actualizaciones.", + "LabelDownMixAudioScale": "Fortalecimiento de audio durante el downmix", + "LabelDownMixAudioScaleHelp": "Fortalezca el audio cuando se hace down mix. Coloque 1 para preservar el valor del volumen original.", + "HeaderForgotKey": "No recuerdo mi clave", + "LabelSupporterEmailAddress": "La dirección de correo electrónico que fue utilizada para comprar la clave.", + "ButtonRetrieveKey": "Recuperar Clave", + "LabelSupporterKey": "Clave de Emby premier (péguela desde el correo electrónico)", + "LabelSupporterKeyHelp": "Introduzca su clave de Emby Premier para comenzar a disfrutar beneficios adicionales.", + "MessageInvalidKey": "La clave de Emby Premier no se encuentra o es inválida.", + "ErrorMessageInvalidKey": "Para que cualquier contenido premium sea registrado, también debe contar con una suscripción de Emby Premier.", + "LabelSkipIfGraphicalSubsPresent": "Omitir si el video ya contiene subtítulos embebidos que coincidan con el idioma de descarga", + "LabelSkipIfGraphicalSubsPresentHelp": "Manteniendo las versiones de texto de los subtitulos resultara una entrega mas eficiente de los mismos y disminuirá las posibilidades de que un video sea transcodificado.", + "HeaderDownloadLanguages": "Idioma para Descargar", + "LabelSkipIfAudioTrackPresent": "Omitir si la pista de audio por defecto coincide con el lenguaje de descarga", + "LabelSkipIfAudioTrackPresentHelp": "Desactive esto para asegurar que todos los videos tengan subtítulos, independientemente del lenguaje del audio.", + "SendMessage": "Enviar mensaje", + "HeaderSendMessage": "Enviar Mensaje", + "ButtonSend": "Enviar", + "LabelMessageText": "Texto del Mensaje", + "LabelMessageTitle": "Título del Mensaje", + "ButtonEditOtherUserPreferences": "Editar el perfíl de este usuario. imágen y preferencias personales.", + "LabelLoginDisclaimer": "Aviso legal", + "LabelLoginDisclaimerHelp": "Esto se mostrara al final de la pagina de inicio de sesión.", + "HeaderTranscodingTemporaryFiles": "Archivos Temporales de Transcodificación", + "HeaderApiKeys": "Llaves de API", + "HeaderApiKeysHelp": "Son necesarias aplicaciones externas para obtener una clave Api para comunicarse con el Servidor Emby. Las clave son emitidas accediendo con una cuenta Emby, u obteniendo manualmente la clave de la aplicación.", + "HeaderApiKey": "Llave de API", + "HeaderResumeSettings": "Configuración para Continuar", + "HeaderFetcherSettings": "Configuración de Recolectores", + "HeaderActivity": "Actividad", + "ButtonPurchase": "Comprar", + "HeaderInstall": "Instalar", + "LabelSelectVersionToInstall": "Seleccionar versión a instalar", + "LinkLearnMoreAboutSubscription": "Aprenda sobre Emby Premier", + "MessagePluginRequiresSubscription": "Este complemento requiere de una suscripción de Emby Premier activa después del periodo de prueba gratuita de 14 días.", + "MessagePremiumPluginRequiresMembership": "Este complemento requiere de una suscripción de Emby Premier activa para poder comprarlo después del periodo de prueba gratuita de 14 días.", + "HeaderDeveloperInfo": "Info del desarrollador", + "HeaderRevisionHistory": "Historial de Versiones", + "ButtonViewWebsite": "Ver sitio web", + "OptionSaveMetadataAsHidden": "Guardar metadatos e imágenes como archivos ocultos", + "LabelConnectEmail": "(Opcional) Dirección de correo de Emby Connect", + "LabelConnectEmailHelp": "Opcionalmente vincula esta cuenta local a una cuenta existente de Emby Connect para habilitar un acceso sencillo desde cualquier App Emby sin necesitad de conocer la dirección IP del servidor.", + "ButtonLearnMoreAboutEmbyConnect": "Conocer mas acerca de Emby Connect", + "LabelDateAddedBehavior": "Comportamiento de fecha de adición para nuevo contenido", + "OptionDateAddedImportTime": "Emplear la fecha de escaneo en la biblioteca", + "OptionDateAddedFileTime": "Emplear fecha de creación del archivo", + "LabelDateAddedBehaviorHelp": "Si se encuentra un valor en los metadados siempre será empleado antes que cualquiera de estas opciones.", + "HeaderLibrarySettings": "Configuraciones de Biblioteca", + "HeaderAutomaticSubtitleDownloads": "Descarga Automática de Subtítulos", + "HeaderCameraUploadHelp": "Las aplicaciones de Emby pueden subir automáticamente fotografías tomadas desde sus dispositivos móviles al Servidor Emby.", + "LabelCameraUploadPath": "Ruta para subir desde la cámara", + "LabelCameraUploadPathHelp": "Seleccione una ruta personalizada de subida. Esto tendrá prioridad sobre cualquier configuración predeterminada en la sección de \"Cargar desde Camara\". Si se deja en blanco, se utilizara una carpeta predeterminada. Si se usa una ruta personalizada necesita ser agregada también como una biblioteca en la configuración de bibliotecas de Emby.", + "DefaultCameraUploadPathHelp": "Seleccione una ruta personalizada de subida. Si se deja en blanco, se utilizara una carpeta predeterminada. Si se usa una ruta personalizada necesita ser agregada también como una biblioteca en la configuración de bibliotecas de Emby.", + "LabelCreateCameraUploadSubfolder": "Crear una subcarpeta para cada dispositivo", + "LabelCreateCameraUploadSubfolderHelp": "Se pueden especificar carpetas específicas para un dispositivo haciendo clic en él desde la página de Dispositivos.", + "LabelCustomDeviceDisplayNameHelp": "Proporcione un nombre personalizado para mostrar o déjelo vacío para usar el nombre reportado por el dispositivo.", + "TabParentalControl": "Control Parental", + "HeaderAccessSchedule": "Acceder Programación", + "HeaderAccessScheduleHelp": "Crear programación de acceso para limitar el acceso a ciertos horarios.", + "HeaderLibraryAccess": "Acceso a la Biblioteca", + "HeaderChannelAccess": "Acceso a los Canales", + "LabelForgotPasswordUsernameHelp": "Introduce tu nombre de usuario, si lo recuerdas.", + "TitlePasswordReset": "Restablecer Contraseña", + "HeaderBlockItemsWithNoRating": "Bloquear ítems sin clasificación o con información de clasificación desconocida", + "LabelBlockContentWithTags": "Restringir Items Con Etiquetas:", + "LabelTagRestrictionMode": "Modo de restricción por etiquetas", + "BlockItemsWithTheseTags": "Bloquear ítems con estas etiquetas", + "AllowItemsWithTheseTags": "Permitir solo ítems con estas etiquetas", + "OptionAllowContentDownloading": "Permitir descarga de medios", + "LabelNewUserNameHelp": "Los nombres de usuario pueden contener letras (a-z), números (0-9), guiones (-), guiones bajos (_) y puntos (.)", + "HeaderThisUserIsCurrentlyDisabled": "Este usuario se encuentra actualmente deshabilitado. Para habilitar este usuario, por favor vea la opción al fondo de esta pagina.", + "OptionAllowSyncTranscoding": "Permitir descarga de medios que requieran transcodificación", + "AllowMediaConversion": "Permitir conversión de medios", + "AllowMediaConversionHelp": "Permitir o denegar acceso a la función de convertir medios.", + "OptionAllowAudioPlaybackTranscoding": "Permitir transcodificar audio, si es necesario durate la reproducción de medios.", + "OptionAllowVideoPlaybackTranscoding": "Permitir transcodificar video, si es necesario durante la reproducción de medios.", + "OptionAllowVideoPlaybackRemuxing": "Permitir cambiar el formato contenedor, si es necesario durante la reproducción de medios", + "OptionAllowMediaPlaybackTranscodingHelp": "Restringir el acceso a transcodificacion dehabilitara la selección de calidad de vídeo y podría causar fallas en la reproducción en las aplicaciones Emby debido a medios no soportados o ancho de banda insuficiente.", + "LabelRemoteClientBitrateLimit": "Limite de tasa de bits para transmisión por Internet (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Un límite opcional en la tasa de bits para cada transmisión para todos los dispositivos fuera de la red local. Limitara la calidad de tranmision por internet aun si el usuario selecciona una calidad mas alta en el reproductor. Esto es útil para evitar que los dispositivos soliciten una tasa de bits mayor a la que su conexión de internet puede soportar. Esto puede resultar en un incremento en la carga del CPU de su servidor para poder transmitir videos al vuelo a una tasa de bits mas baja.", + "LabelUserRemoteClientBitrateLimitHelp": "Esto tendrá prioridad sobre el valor por defecto global configurado en configuraciones avanzadas de servidor.", + "OptionEnableFullSpeedConversion": "Habilitar conversión a máxima velocidad", + "OptionEnableFullSpeedConversionHelp": "Por defecto, las conversiones serán realizadas a baja velocidad para minimizar el consumo de recursos.", + "OptionEnableAutomaticServerUpdates": "Habilitar actualizaciones automáticas del servidor", + "HeaderTVSources": "Fuentes de TV", + "HeaderAddTvSource": "Agregar Fuente de TV", + "LabelTunerIpAddress": "Dirección IP del Sintonizador", + "HeaderGuideProviders": "Fuentes de información para Guías", + "HeaderAddGuideSource": "Agregar Fuente de Datos para la Guía", + "LabelZipCode": "Código Postal", + "LabelLineup": "Programación", + "LabelImportOnlyFavoriteChannels": "Restringir a canales marcados como favoritos", + "ImportFavoriteChannelsHelp": "Si se habilita, solo los canales marcados como favoritos en el dispositivo sintonizador serán importados.", + "HeaderDefaultRecordingSettings": "Configuración Predeterminada de Grabaciones", + "LabelDisplayName": "Nombre a mostrar", + "OptionDownloadImagesInAdvance": "Descargar las imágenes desde el inicio.", + "OptionDownloadImagesInAdvanceHelp": "Por defecto, la mayoría de las imágenes son descargadas solo cuando son mostradas en alguna aplicación Emby. Habilite esta opción para descargar todas las imágenes desde por adelantado, conforme se vayan agregando mas medios. Esto podría causar escaneos de bibliotecas mas largos.", + "MessageThankYouForSupporting": "Gracias por apoyar Emby.", + "FileReadCancelled": "La lectura del archivo ha sido cancelada.", + "FileNotFound": "Archivo no encontrado.", + "FileReadError": "Ha ocurrido un error al leer el archivo.", + "NoPluginConfigurationMessage": "El complemento no tiene configuraciones disponibles.", + "HeaderNewApiKey": "Nueva llave de API", + "HeaderNewApiKeyHelp": "Conceder acceso a una aplicación para comunicarse con el Servidor Emby.", + "MessageKeyEmailedTo": "Clave enviada por correo a {0}.", + "HeaderConfirmation": "Confirmación", + "MessageKeyUpdated": "Gracias. Su clave de Emby Premier se ha actualizado.", + "MessageKeyRemoved": "Gracias. Su clave de Emby Premier ha sido removida.", + "TextEnjoyBonusFeatures": "Disfruta de Características Premium", + "MessageErrorLoadingSupporterInfo": "Ha ocurrido un error al cargar la información de Emby Premier. Por favor inténtelo de nuevo más tarde.", + "ValueTimeLimitSingleHour": "Límite de tiempo: 1 hora", + "ValueTimeLimitMultiHour": "Límite de tiempo: {0} horas", + "General": "General", + "HeaderScreenSavers": "Protector de Pantalla", + "Reporting": "Reportes", + "LabelStopping": "Deteniendo", + "HeaderSelectCertificatePath": "Seleccione la Ruta del Certificado", + "HeaderSupporterBenefit": "Una suscripción Emby Premiere activa provee beneficios adicionales como acceso a Emby DVR, medios sin conexion, complementos premium, y mas. {0}Conocer mas{1}.", + "LabelAbortedByServerShutdown": "(Abortada por apagado del servidor)", + "LabelScheduledTaskLastRan": "Ejecutado hace {0}, tomando {1}.", + "HeaderDeleteTaskTrigger": "Borrar Disparador de Tarea", + "MessageDeleteTaskTrigger": "¿Está seguro de querer eliminar este disparador de tarea?", + "MessageNoPluginsDueToAppStore": "Para administrar los complementos, utilice por favor la web app de Emby.", + "LabelVersionInstalled": "{0} instalado", + "HeaderSelectServerCachePath": "Seleccionar ruta para Caché del Servidor", + "HeaderSelectTranscodingPath": "Seleccionar Ruta para Transcodificación Temporal", + "HeaderSelectMetadataPath": "Seleccionar Ruta para Metadatos", + "HeaderSelectServerCachePathHelp": "Explore o introduzca la ruta a utilizar para los archivos del caché del servidor. La carpeta debe tener permisos de escritura.", + "HeaderSelectTranscodingPathHelp": "Explore o introduzca la ruta a utilizar para los archivos temporales de transcodificación. La carpeta debe tener permisos de escritura.", + "HeaderSelectMetadataPathHelp": "Explore o introduzca la ruta donde desea almacenar los metadatos. La carpeta debe tener permisos de escritura.", + "MessageConfirmRestart": "¿Esta seguro de que desea reiniciar el Servidor Emby?", + "MessageConfirmShutdown": "¿Esta seguro de querer detener el Servidor Emby?", + "LabelLocalAccessUrl": "Acceso en Casa (LAN): {0}", + "LabelRemoteAccessUrl": "Acceso remoto (WAN): {0}", + "LabelRunningOnPort": "Ejecutándose en el puerto http {0}", + "LabelRunningOnPorts": "Ejecutándose en el puerto http {0} , y el puerto https {1}", + "LabelCurrentPath": "Ruta actual", + "HeaderSelectMediaPath": "Seleccionar ruta a medios", + "HeaderSelectPath": "Seleccionar Ruta", + "MessageDirectoryPickerInstruction": "Las rutas de red pueden ser introducidas manualmente en caso de que el botón de Red no pueda localizar sus dispositivos. Por ejemplo, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "Para BSD, quizás necesite configurar el almacenamiento dentro de su \"FreeNAS Jail\" de manera que permita a Emby accesarlo.", + "MessageDirectoryPickerLinuxInstruction": "Para Linux en Arch Linux, CentOS, Debian, Dedora, OpenSuse, o Ubuntu, debe dar al usuario de sistema Emby al menos permisos de lectura a las rutas de almacenamiento.", + "MetadataManager": "Administrador de Metadatos", + "OptionBlockLiveTvChannels": "Canales de TV en Vivo", + "OptionBlockChannelContent": "Contenido de Canales de Internet", + "ButtonRevoke": "Revocar", + "MessageConfirmRevokeApiKey": "¿Esta seguro de querer revocar esta clave api? La conexión de la aplicación con el Servidor Emby sera terminada abruptamente.", + "HeaderConfirmRevokeApiKey": "Revocar llave de API", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Por favor acepte los términos del servicio antes de continuar.", + "HeaderChangeFolderType": "Cambiar Tipo de Contenido", + "HeaderChangeFolderTypeHelp": "Para cambiar el tipo, por favor elimine y reconstruya la biblioteca con el nuevo tipo.", + "HeaderAlert": "Alerta", + "MessagePleaseRestart": "Por favor reinicie para finalizar la actualización.", + "OptionHomeVideos": "Videos caseros y fotografías", + "OptionBooks": "Libros", + "HeaderMetadataReaders": "Lectores de Metadatos", + "LabelMetadataReadersHelp": "Habilite y ordene sus fuentes de metadatos locales por prioridad.", + "HeaderSubtitleDownloaders": "Recolectores de Subtítulos", + "SubtitleDownloadersHelp": "Habilite y priorice sus recolectores de subtitulos en orden de preferencia. Mas proveedores de subtitulos pueden ser instalados usando el catalogo de complementos de Emby.", + "LabelMetadataDownloaders": "Recolectores de metadatos", + "LabelMetadataDownloadersHelp": "Habilite y priorice sus recolectores de metadatos preferidos. Los recolectores de metadatos de menor prioridad solo serán utilizados para llenar información faltante.", + "HeaderMetadataSavers": "Grabadores de Metadatos", + "LabelMetadataSaversHelp": "Seleccione los formatos de archivo con los que se guardaran sus metadatos.", + "LabelImageFetchers": "Recolectores de imágenes", + "LabelImageFetchersHelp": "Habilite y priorice sus recolectores de imágenes preferidos.", + "PersonTypePerson": "Persona", + "HeaderRemoveMediaLocation": "Eliminar Ubicación de Medios", + "MessageConfirmRemoveMediaLocation": "¿Está seguro de querer eliminar esta ubicación?", + "LabelNewName": "Nuevo nombre", + "HeaderRemoveLibrary": "Eliminar Biblioteca", + "MessageAreYouSureYouWishToRemoveLibrary": "¿Esta seguro de que desea la biblioteca {0} de su Servidor Emby? Los archivos de medios no se verán afectados.", + "ButtonRename": "Renombrar", + "HeaderPluginInstallation": "Instalación de complemento", + "MessageTrialExpired": "El periodo de prueba de esta característica ya ha expirado.", + "MessageTrialWillExpireIn": "El periodo de prueba de esta característica expirará en {0} día(s).", + "ValuePriceUSD": "Precio: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Se encuentra registrado para esta característica, y podrá continuar usándola con una suscripción activa de Emby Premier.", + "HeaderSelectExternalPlayer": "Seleccionar Reproductor Externo", + "HeaderExternalPlayerPlayback": "Reproducción con Reproductor Externo", + "HeaderThankYou": "Gracias", + "HeaderSelectUploadPath": "Seleccionar ruta de subida", + "ErrorMessageStartHourGreaterThanEnd": "El horario de fin debe ser mayor al de comienzo.", + "MessagePluginConfigurationRequiresLocalAccess": "Para configurar este complemento por favor inicie sesión en su servidor local directamente.", + "MovieLibraryHelp": "Vea la {0}Guía para nombrar películas en Emby{1}", + "TvLibraryHelp": "Vea la {0}Guía para nombrar series de TV en Emby{1}", + "BookLibraryHelp": "Los libros de texto están soportados. Revise la {0} Guía para nomenclatura de libros de Emby {1}.", + "MessageGamePluginRequired": "Requiere instalación del complemento de GameBrowser", + "HeaderUnlockApp": "Desbloquear App", + "MessagePaymentServicesUnavailable": "Los servicios de pago no se encuentran disponibles actualmente. Por favor intente de nuevo mas tarde.", + "NoNewDevicesFound": "No se encontraron nuevos dispositivos. Para agregar un sintonizador nuevo, cierre este cuadro de dialogo e introduzca a la información del dispositivo manualmente.", + "MessageConfirmDeleteTunerDevice": "¿Está seguro de querer eliminar este dispositivo?", + "MessageConfirmDeleteGuideProvider": "¿Está seguro de querer eliminar este proveedor de guía?", + "HeaderDeleteProvider": "Eliminar Proveedor", + "ErrorAddingTunerDevice": "Hubo un error al agregar el dispositivo sintonizador. Por favor asegúrese de que este disponible e intente de nuevo.", + "ErrorSavingTvProvider": "Hubo un error al salvar el proveedor de TV. Por favor asegúrese de que este disponible e intente de nuevo.", + "ErrorGettingTvLineups": "Hubo un error al descargar la programación de TV. Por favor asegúrese que su información este correctas e intente de nuevo.", + "MessageCreateAccountAt": "Crear una cuenta en {0}", + "ErrorPleaseSelectLineup": "Por favor seleccione una programación e intente de nuevo. Si no hay disponible ninguna, entonces por favor verifique que su nombre de usuario, contraseña, y código postal sean correctos.", + "ErrorValidatingSupporterInfo": "Ha ocurrido un error al validar su información de Emby Premier. Por favor inténtelo de nuevo más tarde.", + "LabelLocalSyncStatusValue": "Estado: {0}", + "HeaderTopPlugins": "Complementos Destacados", + "ForAdditionalLiveTvOptions": "Explore el {0}catalogo de complementos{1} de Emby para instalar proveedores de TV en vivo adicionales.", + "AddUser": "Agregar usuario", + "HeaderEmailAddress": "Dirección de Correo", + "NumLocationsValue": "{0} carpetas", + "PleaseAddAtLeastOneFolder": "Por favor agregue al menos una carpeta a esta biblioteca dando clic al botón de Agregar.", + "ErrorAddingMediaPathToVirtualFolder": "Hubo un error agregando la ruta de medios. Por favor asegúrese de que la ruta es valida y que el proceso del Servidor Emby tenga acceso a ese destino.", + "ErrorAddingEmbyConnectAccount3": "La cuenta Emby ya se encuentra vinculada a un usuario local. Una cuenta Emby solo puede estar vinculada a un usuario local a la vez.", + "HeaderConfirmPluginInstallation": "Confirmar Instalación de Complemento", + "PleaseConfirmPluginInstallation": "Por favor haga clic en OK para confirmar que ha leido lo que se encuentra arriba y que desea proceder con la instalación del complemento.", + "MessagePluginInstallDisclaimer": "Los complementos desarrollados por miembros de la comunidad Emby son una gran forma de mejorar su experiencia con Emby con características y beneficios adicionales. Antes de instalar, conozca el impacto que pueden ocasionar en su Servidor Emby, tales como exploración de la biblioteca que puede tomar más tiempo, procesamiento en segundo plano adicional y estabilidad del sistema reducida.", + "HardwareAccelerationWarning": "Habilitar la aceleración por hardware podría causar inestabilidad en algunos entornos, Asegúrese de que su sistema operativo y controladores de video están actualizados. Si tiene dificultades reproduciendo vides después de habilitar esto, necesita cambiar las configuraciones de nuevo a Auto,", + "ValueExample": "Ejemplo: {0}", + "LabelFileOrUrl": "Archivo o url", + "OptionEnableForAllTuners": "Habilitar para todos los dispositivos sintonizadores", + "HeaderTuners": "Sintonizador", + "DrmChannelsNotImported": "Los canales con DRM no serán importados.", + "LabelAllowHWTranscoding": "Permitir transcodificacion de hardware", + "AllowHWTranscodingHelp": "Si se habilita, permite a la sintonizadora transcodificar transmisiones al vuelo. Esto podría ayudar a reducir la transcodificacion requerida por el Servidor Emby.", + "MetadataSettingChangeHelp": "Cambiar los ajustes de metadata afectará al contenido nuevo añadido a partir de ahora. Para actualizar el contenido existente, abra la pantalla de detalles y haga clic en actualizar, o realice actualizaciones masivas usando el administrador de metadata.", + "RecordingPathChangeMessage": "Cambiar su carpeta de grabaciones no moverá sus grabaciones existentes del la antigua locación a la nueva. Necesita moverlas manualmente si lo desea.", + "LabelLocalIpAddress": "Dirección IP local", + "LabelBindToLocalNetworkAddressHelp": "Opcional. Sobre escribir la dirección IP local que el Servidor Emby presentara a las Apps Emby. Si se deja en blanco, el servidor detectara la dirección IP local.", + "SettingsWarning": "Cambiar estos valores podría causar inestabilidad o fallas de conexión, si experimenta cualquier problema, recomendamos volver a los valores por defecto.", + "OptionSaveMetadataAsHiddenHelp": "Cambiar esto aplicará a nuevos metadatos alamacenados en lo sucesivo. Los archivos de metadatos existentes serán actualizados la próxima vez que sean guardados por el Servidor Emby", + "EnablePhotos": "Habilitar fotografías", + "EnablePhotosHelp": "Las fotografías serán detectadas y mostradas junto con otros archivos de medios.", + "ImportPlaylists": "Importar listas de reproduccion", + "ImportPlaylistsHelp": "Listas de reproducción encontradas en sus carpetas de medios pueden ser importadas al Servidor Emby", + "SaveThumbnailImagesIntoMediaFolders": "Guardar las miniaturas de las vistas previas para videos en las carpetas de medios", + "LabelGenerateVideoPreviewThumbnails": "Generar vídeos para las miniaturas de vista previa", + "LabelEnableDebugLogging": "Habilitar bitácoras de depuración", + "OptionEnableExternalContentInSuggestions": "Habilitar contenido externo en las sugerencias", + "OptionEnableExternalContentInSuggestionsHelp": "Permitir que los trailers de Internet y programas de tv en vivo sean incluidos dentro del contenido sugerido.", + "LabelOptionalNetworkPath": "(Opcional) Carpeta de red compartida", + "LabelOptionalNetworkPathHelp": "Si esta carpeta es compartida en su red, proveer la ruta del recurso compartido de red puede permitir a las aplicaciones Emby en otros dispositivos acceder a los archivos de medios directamente.", + "SynologyUpdateInstructions": "Por favor inicie sesión en DSM y vaya al Centro de Paquetes para actualizar.", + "HeaderRecordingPostProcessing": "Post Procesado de las Grabaciones", + "LabelPostProcessorArguments": "Argumentos de linea de comando para el post-procesador", + "PostProcessorArgumentsHelp": "Las siguientes variables son soportadas en la linea de comandos para permitir pasar datos al post-procesador", + "LabelPostProcessor": "Aplicación de Post Procesado", + "DvrPostProcessorPathArgument": "{path}: Es el directorio completo para el nuevo archivo de grabación.", + "OptionAutomaticallyGroupSeries": "Fusionar automáticamente series esparcidas a través de múltiples carpetas.", + "OptionAutomaticallyGroupSeriesHelp": "Si se habilita, las series que se reparten a través de múltiples carpetas dentro de esta biblioteca serán fusionadas en una sola serie.", + "WhenDidYouPurchaseApp": "¿Cuando compro originalmente esta app?", + "PreferEmbeddedTitlesOverFileNames": "Prefererir titulos embebidos por encima de los nombres de archivo", + "PreferEmbeddedTitlesOverFileNamesHelp": "Esto determina el titulo mostrado por defecto cuando no hay disponibles metadatos en internet o localmente.", + "FriendlyNameForReferenceHelp": "Un nombre amistoso para mostrar, para su propia identificación.", + "HeaderLiveTvTunerSetup": "Configuración del sintonizador de TV", + "HeaderTVSourceSetup": "Configuración de Fuentes de TV", + "HeaderDetectMyDevices": "Detectar Dispositivos", + "MessagePleaseWait": "Espere por favor. Esto podría tomar un minuto.", + "DetectingDevices": "Detectando dispositivos", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Después de la primera importación, actualizar metadatos automáticamente desde internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Actualizar automáticamente metadatos para episodios con títulos temporales como \"TBA\"(Por Anunciar)", + "EveryNDays": "Cada {0} días", + "LabelCertificatePassword": "Contraseña del certificado", + "LabelCertificatePasswordHelp": "Si su certificado requiere de una contraseña, por favor introdúzcala aquí.", + "HeaderNewLibrary": "Nueva Biblioteca", + "HttpsRequiresCert": "Para habilitar las conexiones seguras, es necesario proporcionar un certificado SSL de confianza, como el de \"Lets Encrypt\". Por favor proporcione un certificado, o desactive las conexiones seguras.", + "ServerRestartNeededAfterPluginInstall": "El Servidor Emby necesitará reiniciarse después de instalar un complemento.", + "PluginInstalledMessage": "El complemento ha sido instalado exitosamente. El Servidor Emby necesitará reiniciarse para que los cambios surtan efecto.", + "MessagePremiereStatusGood": "Tiene {0} un plan Emby Premiere y el uso de sus dispositivos este dentro del limite.", + "MessagePremiereStatusClose": "Tiene {0} un plan Emby Premiere y el uso de sus dispositivos este cerca del limite.", + "MessagePremiereExtendedPlans": "Considera un {0} plan de dispositivos extendido {1}", + "MessagePremiereStatusOver": "Tiene un {0} plan de Emby Premiere, pero ha excedido su limite de dispositivos", + "ListItemPremiereSub": "{0} suscripción comprada vía {2} expira en {1}", + "LabelClickToManage": "Clic para administrar esta suscripción", + "LabelCancelInfo": "Puede administrar esta suscripción directamente con {0}", + "LabelAlreadyCanceled": "Esta suscripción ha sido cancelada. La clave permanecerá valida hasta que expire.", + "HeaderCancelSub": "Cancelar Emby Premiere", + "MessageConfirmSubCancel": "NO, Por favor no te vayas... Extrañaras todas las grandes funciones de Emby Premiere", + "ButtonCancelSub": "Lo se, deseo cancelarlo de cualquier modo", + "ButtonDontCancelSub": "Conservar Emby Premiere", + "MessageSubCancelReqSent": "Se ha enviado un correo electrónico al propietario de la clave. Por favor siga las instrucciones de dicho correo electrónico para completar la cancelación de esta suscripción. ¡Esperamos verte de nuevo pronto!.", + "MessageSubCancelError": "Algo salió mal al tratar de cancelar. Por favor envié un correo electrónico a {0} y nos encargaremos de ello.", + "LabelAlreadyCancelled": "Esta suscripción ha sido cancelada. No se volverá a hacer el cobro pero las funciones funcionaran hasta la fecha de arriba.", + "AllowOnTheFlySubtitleExtraction": "Permitir la extracción de subtitulos al vuelo", + "AllowOnTheFlySubtitleExtractionHelp": "Los subtitulos embebidos puedes ser extraídos de los videos y enviados a las aplicaciones Emby en texto plano esto para prevenir la transcodificacion del video. En algunos sistemas esto puede tomar un tiempo mas largo y causar problemas de reproducción durante el proceso de extracción. Deshabilite esto para tener subtitulos embebidos \"quemados\" en la transcodificacion de video cuando no son soportados nativamente por el dispositivo cliente.", + "AllowOnTheFlyFontExtraction": "Permitir la extracción de la fuente de los subtítulos al vuelo", + "AllowOnTheFlyFontExtractionHelp": "Las fuentes embebidas pueden ser extraídas de los videos y enviadas a las app de Emby para dar soporte a videos que tengan fuentes personalizadas. En algunos sistemas esto puede tomar tiempo y causar que la reproducción del video se detenga durante el proceso de extracción.", + "EnableDebugLoggingHelp": "El registro de depuración debería ser habilitado solamente para propósitos de solución de problemas. El incremento en el archivo de sistema podría prevenir que el servidor entre en modo suspendido bajo algunos entornos.", + "LabelSimultaneousConnectionLimit": "Limite de transmisiones simultaneas", + "SimultaneousConnectionLimitHelp": "El numero máximo de transmisiones simultaneas permitidas. Ingrese 0 para ilimitados.", + "LaunchWebAppOnStartup": "Iniciar la aplicación web de Emby en mi navegador web cuando se inicie el Servidor Emby", + "LaunchWebAppOnStartupHelp": "Esto abrirá tu navegador web predeterminado cuando el Servidor Emby se inicie. Esto no ocurrirá cuando se use la opción de reiniciar servidor.", + "LabelReferrerHeader": "Referir el encabezado http", + "LabelUserAgentHeader": "Encabezado http del agente de usuario", + "SupplyCustomValueIfNeeded": "Suministre un valor personalizado para el encabezado http, si es necesario.", + "HeaderConfigureRemoteAccess": "Configurar Acceso Remoto", + "LearnHowToCreateSynologyShares": "Aprenda como compartir carpetas en Synology.", + "LabelAllowedRemoteAddresses": "Filtrar IP remota", + "LabelAllowedRemoteAddressesMode": "Modo de filtrado de IP remota", + "Whitelist": "Permitidos", + "Blacklist": "Bloqueados", + "AllowedRemoteAddressesHelp": "Lista separada por comas de direcciones IP/mascaras de subred para las redes a las que se les permitirá o denegara conectarse remotamente. Si se deja en blanco, todas las IP remotas serán permitidas.", + "LabelLanNetworks": "Redes LAN", + "LanNetworksHelpText": "Lista separada por comas de Direcciones IP o \"IP/Mascara de subred\" para redes que serán consideradas como red local al aplicar restricciones de ancho de banda y acceso remoto. Si se configura, todas las demás Direcciones IP serán consideradas como una red externa. Si se deja en blanco, solo la subred del servidor y las IP de subredes comunes para uso privado (192.168.0.0/24, 172.16.0.0/12, etc.) serán consideradas como en la red local", + "LabelSecureConnectionsMode": "Modo de conexión segura", + "PreferredNotRequired": "Preferido, más no es requerido.", + "RequiredForAllRemoteConnections": "Requerido para todas las conexiones remotas", + "HandledByProxy": "Manejado por un proxy inverso", + "SaveSubtitlesIntoMediaFolders": "Guardar subtítulos descargados en las carpetas de medios", + "SaveSubtitlesIntoMediaFoldersHelp": "Almacenar subtitulos junto al archivo de video permitirá administrarlos con mas facilidad.", + "AutomaticSubtitleDownloadInstructions": "Para administrar la descarga automática de subtitulos, de clic en una biblioteca en la configuración de bibliotecas, y edite la configuración de descarga de subtitulo para esa biblioteca.", + "ProviderNeedsSetupWithUrl": "{0} Necesita configuración adicional en las {1} configuraciones de pantalla {2} en el servidor Emby.", + "LabelEnableHardwareAcceleration": "Habilitar aceleración por hardware si se encuentra disponble", + "HeaderPreferredHardwareDecoders": "Decodificadores de Hardware Preferidos", + "HeaderPreferredHardwareEncoders": "Codificadores de Hardware Preferidos", + "AllowChangingImageAndPassword": "Permitir a este usuario cambiar su contraseña e imagen de perfil", + "LabelSimultaneousStreamLimit": "Numero máximo de transmisiones de vídeo simultaneas", + "SimultaneousStreamLimitHelp": "Limitar el numero máximo de reproducciones de vídeo concurrentes.", + "LabelMusicFolderStructure": "Estructura de la carpeta de música", + "LabelMusicFolderStructureHelp": "Esto le da una pista al escáner de la biblioteca acerca de la manera en sus carpetas están organizadas. Si no esta seguro o si sus carpetas no coinciden exactamente con alguna de las opciones, por favor elija la opción por defecto de \"Otros\".", + "OtherOrUnstructured": "Otro o sin estructura", + "PerfectArtistAlbumTrack": "Perfectamente organizada en carpetas de artista/álbum, con las pistas directamente en las carpetas de álbum.", + "PerfectAlbumTrack": "Perfectamente organizada en carpetas de álbum, con las pistas directamente en las carpetas de álbum.", + "LabelMinCollectionSize": "Tamaño mínimo para colecciones automáticas", + "PerfectAuthorAudioBookTrack": "Perfectamente organizada en carpetas de autor/libro con las pistas directamente en las carpetas de libro.", + "PerfectAudioBookTrack": "Perfectamente organizada en carpetas de libros, con las pistas directamente en las carpetas de libro.", + "MinCollectionSizeHelp": "Crea automáticamente colecciones cuando ha seleccionado al menos esta cantidad de títulos en su biblioteca. Cambiar este valor no afectara las colecciones ya existentes.", + "LabelImportCollections": "Importar información de la colección desde recolectores de metadatos", + "LabelImportCollectionsHelp": "Cuando se habilita, importara la información de la colección desde los los recolectores de metadatos que tenga habilitados. Podría causar que se creen automáticamente colecciones no deseadas. Deshabilitarlo evitara que se creen colecciones automáticas pero no eliminara las existentes.", + "LabelAllowAdultMetadata": "Permitir metadatos para adultos", + "LabelAllowAdultMetadataHelp": "Permitir mostrar resultados de adultos en las búsquedas de metadatos en internet.", + "HeaderVideoPreviewThumbnails": "Miniaturas de Vista Previa en Videos", + "LabelEnableHDRToneMapping": "Habilitar mapeo de tonos HDR", + "EnableHDRToneMappingHelp": "El mapeo de tonos se asegura una correcta conversión de colores al transcodificar contenido HDR, lo cual de otro modo hace parecer los colores apagados y desaturados. Podrían necesitarse componentes de driver adicionales para soportar aceleración de hardware con esta función habilitada. Por favor vea nuestra guía de aceleración por hardware para mas detalles.", + "WithHardwareAcceleratedTranscoding": "Si, únicamente con aceleración por hardware", + "TranscodingStillInitializing": "Los servicios de transcodificacion del Servidor Emby continúan ocupados iniciándose. Esta pantalla se actualizara automáticamente cuando los servicios de transcodificacion estén listos.", + "WithEitherHardwareOrSoftwareTranscoding": "Si, con transcodificacion ya sea por hardware o por software", + "ToneMappingInHardwareDescription": "El mapeo de tonos será efectuado con aceleración por hardware cuando esta se encuentre habilitada y sea soportado por el hardware, y será saltado en todos los demás casos.", + "ToneMappingInSoftwareDescription": "El mapeo de tonos será efectuado por software en el CPU. Este es mucho mas lento que el mapeo de tonos con aceleración de hardware y requerirá un servidor muy potente.", + "ToneMappingInBothDescription": "El mapeo de tonos será efectuado con aceleración por hardware cuando esta se encuentre habilitada y sea soportado por el hardware, y se cambiara a software en todos los demás casos. El mapeo de tonos por software es mucho mas lento que el mapeo de tonos con aceleración por hardware y requerirá un servidor muy potente.", + "AutoMapped": "Mapeado automáticamente", + "ManuallyMapped": "Mapeado manualmente", + "NotMappedToGuideData": "No mapeado a proveedor de guía", + "MappedToValue": "Mapeado a {0}", + "LabelAutomaticallyWakeServerForRecordings": "Despertar la PC del servidor para realizar grabaciones.", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Los eventos para despertar el servidor serán programados en el sistema operativo del servidor. Deshabilitar esta opción prevendrá que se programen futuros eventos para despertar el servidor pero no eliminara algún evento programado con anterioridad.", + "Database": "Base de Datos", + "LabelOptimizeDatabaseOnShutdown": "Intentar optimizar la base de datos cuando se apague el servidor", + "LabelOptimizeDatabaseOnShutdownHelp": "La operación de optimización de la base de datos es usualmente una operación \"no-op\" pero ocasionalmente ejecutara un análisis si parece que lo hará será útil para el planeador de consultas. Esto podría causar tiempos de apagado en mas largos.", + "LabelDatabaseCacheSize": "Tamaño de cache de Base de Datos (MB)", + "LabelDatabaseCacheSizeHelp": "Configura la cantidad de datos que la base de datos que la base de datos mantendrá en memoria a la vez, por cada base de datos. Un valor mas grande podría mejorar el rendimiento del Servidor Emby. Necesita de un reinicio del servidor para tomar efecto.", + "LabelDatabaseAnalysisLimit": "Limite de análisis de filas", + "LabelDatabaseAnalysisLimitHelp": "Cuando la base de datos es optimizada, este es el numero aproximado de filas examinadas en cada índice por el comando \"ANALYZE\". Un valor mas grande incrementara la efectividad de la optimización a la base de datos, pero podría causar que el Servidor Emby tarde mas en apagarse.", + "LabelVacuumDb": "Ejecutar \"Vacuum\" en la base de datos en el siguiente inicio del Servidor Emby", + "LabelVacuumDbHelp": "\"Vacuum\" reconstruye el archivo de base de datos, re empaquetándolo para ocupar una cantidad mínima de espacio en el disco. En algunos casos esto puede mejorar el rendimiento del Servidor Emby. Por favor note que su Servidor Emby no será usable durante la operación \"vacuum\", tampoco habrá manera de saber el progreso de la operación. Por favor evite forzar la finalización del proceso del Servidor Emby durante ese tiempo ya que podría causar que se corrompa la base de datos. Esta operación se ejecuta una sola vez y se des-seleccionara después de que se haya completado.", + "AdvancedOptionsWarning": "Estas son opciones avanzadas y deberían generalmente ser dejadas en su opciones predeterminadas, a menos que tenga razones especificas para cambiarlas.", + "HeaderRecentlyActiveDevices": "Dispositivos Activos Recientemente", + "YesUntilServerRestart": "Si, hasta la próximo reinicio de servidor", + "YesUntilLogRotate": "Si, hasta la próxima rotación de bitácora", + "LabelSubtitleDownloadMaxAge": "Dejar de intentar descarga de subtítulos para videos mas antiguos que", + "SubtitleDownloadMaxAgeHelp": "Esto se basa en la fecha agregada en los metadatos.", + "NoAgeLimit": "Sin limite de edad", + "AnonymizeLogContents": "Anonimizar contenido de las Bitácoras", + "Markers": "Marcadores", + "LabelGenerateIntroVideoMarkers": "Generar marcadores de intro del vídeo", + "GenerateIntroVideoMarkersHelp": "Detecta intros de los programas de tv y muestra un botón de \"Saltar Intro\" en las apps de Emby. La detección de intros puede tomar un tiempo largo y causar alto uso de CPU y Disco.", + "LabelCopyFromUser": "Copiar configuraciones del usuario", + "CopyFromUserHelp": "Opcional. Acelerar la creación de usuarios copiando la información de un usuario existente.", + "UserPolicy": "Política de Usuario (acceso a bibliotecas y otras características, control parental, etc.)", + "UserConfiguration": "Configuración de Usuario (Preferencias de audio, subtítulos y orden de bibliotecas)", + "UserDataAndDescription": "Datos de Usuario (favoritos, estados de vistos y escuchados, etc.)", + "HeaderCopyOptions": "Opciones de Copiado", + "LabelMultiRestrictionMode": "Modo de restricción múltiple", + "MultiRestrictionModeAll": "Permitir contenido que cumpla con restricciones de etiquetas y clasificación simultáneamente", + "MultiRestrictionModeAny": "Permitir contenido que cumpla con las restricciones de clasificación o de etiqueta", + "AllowMappingByChannelNumber": "Permitir mapeo a una guía de programación usando los números de canal", + "AllowMappingByChannelNumberHelp": "Esto puede usarse como un respaldo para vincular canales con datos de guía de programación siempre que se encuentre una coincidencia basándose en el nombre del canal. Esto podría llevar a coincidencias erróneas si los números de los canales del sintonizador no son correctos.", + "LabelPreferredSourceForChannelLogos": "Preferir los logos de canal de la guía de programación sobre los del sintonizador si están ambos disponibles.", + "LabelPreferredSourceForChannelNumbers": "Preferir los números de canal de la guía de programación sobre los del sintonizador si ambos están disponibles", + "HeaderSoftwareEncoders": "Codificadores por Software", + "LabelProxyHeaderMode": "Leer los encabezados del proxy para determinar la dirección IP de los clientes", + "ProxyHeadersRemoteOnly": "Solo cuando contienen direcciones de red remotas", + "ProxyHeaderModeHelp": "Determina si los encabezados solicitados tales como {0} y {1} deberían ser usados para determinar las direcciones IP de los dispositivos conectados.", + "AllowCameraUpload": "Permitir subir desde la cámara", + "AllowCameraUploadHelp": "Si esta permitido, y se encuentra habilitado en la app móvil de Emby, los usuarios pueden subir a este Servidor Emby automáticamente fotos y videos tomados desde su cámara", + "CameraUploadMustBeGranted": "Tambien debe tener permitido \"subir desde la cámara\" por su administrador de servidor.", + "EnableReadingAndWritingPeopleMetadata": "Habilitar leer y escribir archivos de metadatos de personas.", + "EnableReadingAndWritingPeopleMetadataHelp": "Necesita tener instalado el complemento \"Nfo Metadata\". Esto permite guardar sus ediciones de archivos nfo con metadatos de personas a costa de tiempos de escaneo de biblioteca mas largos.", + "LabelIgnoreSampleFiles": "Ignorar archivos que contengan la palabra muestra en el nombre de archivo si su tamaño es menor que (MB)", + "PreferredChannelImageSource": "Fuente preferida para imágenes de los canales", + "PreferredChannelImageSourceHelp": "Elija una imagen de canal preferida para cuando la guía y el sintonizador cuenten ambos con imágenes disponibles.", + "CacheImagesInServerData": "Mantener una copia en cache de las imágenes in la carpeta de metadatos del servidor", + "CacheImagesInServerDataHelp": "Si tus medios e imágenes están almacenados en otra computadora, al conservar una copia en cache de las imágenes en la carpeta de metadatos del servidor reducirá los accesos por red y podría mejorar el rendimiento. El costo de hacerlo es que el escaneo de las bibliotecas será mas lento y la carpeta de metadatos del servidor consumirá significativamente mas espacio.", + "AllowSharingPersonalContent": "Permitir compartir contenido personal como listas de reproducción con otros usuarios en este servidor", + "AllowSharingPersonalContentHelp": "Si se habilita, este usuario podrá compartir sus listas de reproducción con otros usuarios. Los ítems de la lista de reproducción seguirán restringidos basado en los permisos de acceso a las bibliotecas y controles parentales.", + "LiveBufferSizeHours": "Tamaño del buffer para transmisiones en vivo (horas)", + "LiveBufferSizeHoursHelp": "Un buffer mas grande dará mas capacidades para saltar hacia atrás y hacia adelante durante una transmisión en vivo, pero consumirá mas espacio en disco.", + "LabelTranscodingMaxResolution": "Resolución maxima al transcodificar", + "TranscodingMaxResolutionHelp": "Configure un limite máximo para aplicar a todas las transcodificaciones de video, independiente de la configuración de calidad en el reproductor Emby. Esto ayudara a reducir los recursos consumidos por el servidor al transcodificar.", + "EnableHevcEncodingExp": "Habilitar codificación de video HEVC (experimental)", + "EnableHevcEncodingHelp": "Habilita la transcodificación usando el codec HEVC si es soportado por el cliente.", + "LabelEnableMultiPartItems": "Habilitar ítems multi-parte", + "EnableMultiPartItemsHelp": "Detecta y agrupa automáticamente archivos que tienen en su nombre parte 1, parte 2, etc. Todas las partes adicionales se mostraran en la pantalla de detalles como un solo elemento.", + "MultiVersionItemsDetectionHelp": "Detecta y agrupa automáticamente diferentes versiones del mismo ítem. Un selector de version se mostrara en la pantalla principal de detalles para ese ítem. Agrupar basándose en archivos requiere que sus archivos estén organizados y nombrados apropiadamente.", + "MultiVersionMoviesDetectionHelp": "Agrupar basándose en metadatos agrupara las películas que tengan los mismos Id externos (MovieDb, Imdb, etc.).", + "EnableMultiPartItemsTVHelp": "No soportado para episodios de series de TV.", + "HeaderAutomaticGrouping": "Agrupado Automático", + "LabelMultiVersionItemsDetection": "Detección de Multi-version de ítems", + "MultiVersionItemsDetectionBoth": "Detectar multi-version de ítems basándose en ambos archivos y metadatos", + "MultiVersionItemsDetectionFiles": "Detectar multi-version de ítems basándose en archivos", + "MultiVersionItemsDetectionMetadata": "Detectar multi-version de items basándose en los metadatos", + "LabelNetworkRequestProtocol": "Protocolo de peticiones de red", + "NetworkRequestProtocolHelp": "Elige el protocolo a utilizar para las solicitudes de red salientes hacia proveedores de metadatos y otros servicios. En algunos casos, cuando no se puedan alcanzar servicios externos mediante IPv6, es posible que debas configurar esto solo en IPv4.", + "GenerateChaptersForVideos": "Generar capítulos para videos que no contengan información sobre capítulos embebidos", + "GeneratedChapterInterval": "Intervalo para los capítulos generados", + "StartOfSection": "Start of chapter", + "PreviousSection": "Previous chapter", + "PageNarrow": "Narrow", + "PageMaximized": "Maximized", + "PageBook": "Double page", + "LabelPageSize": "Page Size", + "PageSingle": "Single page", + "NextSection": "Next chapter", + "PositionInBook": "Position in the book", + "TableOfContents": "Table Of Contents", + "ZoomOut": "Zoom out", + "ZoomIn": "Zoom in", + "ZoomNone": "Default zoom", + "ZoomAutoFit": "Fit page", + "LayoutPage": "Single page", + "LayoutDouble": "Double page", + "LayoutVertical": "Vertical scroll", + "Margins": "Margins", + "PreviousPage": "Previous page", + "CurrentPage": "Current page", + "TotalPages": "Total pages", + "NextPage": "Next page", + "RightToLeft": "Right-to-left order", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LabelFolderScanningMode": "Folder scanning mode", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "Legacy": "Legacy" +} diff --git a/strings/es-US.json b/strings/es-US.json new file mode 100644 index 0000000..f599dfe --- /dev/null +++ b/strings/es-US.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "¡Ha terminado!", + "ThisWizardWillGuideYou": "Este asistente le guiará a través del proceso de instalación. Para comenzar, por favor seleccione su lenguaje preferido.", + "HeaderCreateYourFirstUser": "Create Your First User", + "ButtonQuickStartGuide": "Guía de Inicio Rápido", + "MoreUsersCanBeAddedLater": "Se pueden agregar más usuarios posteriormente en el Panel de Control.", + "UserProfilesIntro": "Emby incluye soporte integrado para perfiles de usuario, habilitando a cada usuario para tener sus propias configuraciones de visualización, reproducción y controles parentales.", + "WizardCompleted": "Eso es todo lo que necesitamos por ahora, Emby ha comenzado a recolectar información sobre su biblioteca de medios. Revise algunas de nuestras aplicaciones, y haga clic en Finalizar para ver el Panel de Control", + "MessagePleaseAcceptTermsOfService": "Por favor acepte los términos del servicio y la política de privacidad antes de continuar.", + "OptionIAcceptTermsOfService": "Acepto los términos del servicio.", + "SeeOurHwaGuide": "See our {0}hardware acceleration setup guide{1}.", + "HeaderEmbyServerReleaseNotes": "Emby Server Release Notes", + "AllowSubtitleDownloading": "Permitir descarga de subtítulos", + "AllowSubtitleManagement": "Permitir eliminación de archivos de subtítulos existentes", + "NewUserNameHelp": "This is how the user will appear on your server.", + "ChapterMarkers": "Chapter markers", + "LabelThumbnailImagesInterval": "Thumbnail images interval", + "ThumbnailImagesIntervalHelp": "More frequent thumbnails will result in a better experience, but will require more disk space and time to create the images.", + "LabelAuthProvider": "Proveedor de Autenticación:", + "AuthProviderHelp": "Los administradores deben siempre utilizar el proveedor Emby por defecto para garantizar que nunca serán bloqueados.", + "HeaderNewUser": "New User", + "ChangeServerDisplayName": "Change Server Display Name", + "ShowAdvancedSettings": "Mostrar configuraciones avanzadas", + "ChangingMetadataImageSettingsNewContent": "Cambios en las configuraciones de descarga de metadatos o arte solo se aplicaran a contenido nuevo agregado a su biblioteca. Para aplicar los cambios a los títulos existentes, necesita actualizar los metadatos manualmente.", + "AllowRemoteAccess": "Permitir conexiones remotas a este Servidor Emby", + "AllowRemoteAccessHelp": "Si se deshabilita, todas las conexiones remotas serán bloqueadas.", + "Alerts": "Alertas", + "LabelTrackTitleDisplay": "Embedded track title display", + "GenerateUserFriendlyTrackTitles": "Generate user friendly titles using track information", + "PreferOriginalTrackTitles": "Prefer embedded titles", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "EnableTranscodingThrottle": "Habilitar contención", + "EnableTranscodingThrottleHelp": "Emby ajustará automáticamente la velocidad de la transcodificación para reducir la utilización del CPU.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} Recolectores de Imágenes", + "HeaderImageOptions": "Opciones de Imagen", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registrarse con PayPal", + "LabelSyncTempPath": "Ruta de archivo temporal:", + "LabelSyncTempPathHelp": "Especifique una carpeta de trabajo de sincronización personalizada. Los medios convertidos que se crearon durante el proceso de sincronización se almacenarán aquí.", + "LabelCustomCertificatePath": "Ruta del certificado ssl personalizado:", + "LabelCustomCertificatePathHelp": "Ruta a un archivo PKCS # 12 que contiene un certificado y una clave privada para habilitar el soporte de TLS en un dominio personalizado.", + "HeaderSetupLibrary": "Configurar sus librerías de medios", + "LabelTimeLimitHours": "Time limit (hours)", + "HeaderPreferredMetadataLanguage": "Preferred Metadata Language", + "LabelSaveLocalMetadata": "Save artwork into media folders", + "LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put images next to media files where they can be easily accessed from outside of Emby. If disabled, images will be saved into the server's metadata folder.", + "TabAccess": "Access", + "HeaderDeviceAccess": "Device Access", + "OptionEnableAccessFromAllDevices": "Enable access from all devices", + "OptionEnableAccessToAllChannels": "Enable access to all channels", + "OptionEnableAccessToAllLibraries": "Enable access to all libraries", + "DeviceAccessHelp": "Filtering user device access will prevent them from using new devices until they've been approved here.", + "LabelDisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Emby database and displayed within seasons and series. This may cause significantly longer library scans.", + "MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.", + "LabelMaxParentalRating": "Maximum allowed parental rating", + "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.", + "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.", + "ChannelAccessHelp": "Select the channels to share with this user. Administrators will be able to edit all channels using the metadata manager.", + "ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG/PNG only.", + "AlreadyPaidHelp1": "Si ya pagó para instalar una versión anterior de Media Browser para Android, no necesita pagar nuevamente para activar esta aplicación. Haga clic en OK para enviarnos un correo electrónico a {0} y lo activaremos por usted.", + "AlreadyPaidHelp2": "Tienes Emby Premiere? Simplemente cancele este cuadro de diálogo, configure Emby Premiere en su Tablero del servidor de Emby en Ayuda -> Emby Premiere, y se desbloqueará automáticamente.", + "TabMyPlugins": "My Plugins", + "TabCatalog": "Catalog", + "HeaderAutomaticUpdates": "Automatic Updates", + "Standard": "Standard", + "TabSupporterKey": "Emby Premiere Key", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Useful for private or hidden administrator accounts. The user will need to sign in manually by entering their username and password.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Disable this user", + "OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.", + "OptionAllowUserToManageServer": "Allow this user to manage the server", + "HeaderFeatureAccess": "Feature Access", + "OptionAllowMediaPlayback": "Allow media playback", + "AllLibraries": "All libraries", + "HeaderAllowMediaDeletionFrom": "Allow Media Deletion From", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Allow remote control of other users", + "OptionAllowRemoteSharedDevices": "Allow remote control of shared devices", + "OptionAllowRemoteSharedDevicesHelp": "Dlna devices are considered shared until a user begins controlling it.", + "OptionAllowLinkSharing": "Allow social media sharing", + "OptionAllowLinkSharingHelp": "Only web pages containing media information are shared. Media files are never shared publicly. Shares are time-limited and will expire after {0} days.", + "OptionRelease": "Official Release", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods, when no users are active.", + "LabelRunServerAtStartup": "Run server at startup", + "LabelRunServerAtStartupHelp": "This will start the Emby tray icon on Windows startup. If you've set up a Windows service then leave this unchecked and configure the service to run at startup.", + "ButtonSelectDirectory": "Select Directory", + "LabelCachePath": "Cache path", + "DefaultMetadataLangaugeDescription": "These are your defaults and can be customized on a per-library basis.", + "LabelCachePathHelp": "Specify a custom location for server cache files, such as images. Leave blank to use the server default.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Metadata path", + "LabelMetadataPathHelp": "Specify a location for downloaded artwork and metadata, or blank this out to revert to default. If changing this, you'll need to manually migrate the contents from the old location to the new location. If you ever manually change the contents of the metadata folder, you'll need to run the {0}scan metadata folder scheduled task{1}.", + "LabelTranscodingTempPath": "Transcoding temporary path", + "LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Refresh Guide Data", + "LabelNumberOfGuideDays": "Number of days of guide data to download", + "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels. Please note that regardless of how many days you choose, the data must exist in the source guide data in order for it to be downloaded. Some guide data sources only provide 24 hours. Emby Guide Data supports up to 14 days.", + "HeaderFetchImages": "Fetch Images", + "LabelMaxBackdropsPerItem": "Maximum number of backdrops per item", + "LabelMaxScreenshotsPerItem": "Maximum number of screenshots per item", + "LabelMinBackdropDownloadWidth": "Minimum backdrop download width", + "LabelMinScreenshotDownloadWidth": "Minimum screenshot download width", + "ButtonAddScheduledTaskTrigger": "Add Trigger", + "ButtonAdd": "Add", + "LabelTriggerType": "Trigger Type", + "OptionOnInterval": "On an interval", + "OptionAfterSystemEvent": "After a system event", + "LabelDay": "Day", + "LabelTime": "Time", + "LabelEvent": "Event", + "OptionWakeFromSleep": "Wake from sleep", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Enable real time monitoring", + "LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately, on supported file systems.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Friendly server name", + "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.", + "LabelPreferredDisplayLanguage": "Preferred display language", + "LabelPreferredDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LabelReadHowYouCanContribute": "Learn how you can contribute.", + "LabelCustomCss": "Custom css", + "LabelCustomCssHelp": "Apply your own custom css to the web interface.", + "LabelLocalHttpServerPortNumber": "Local http port number", + "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Emby's http server should bind to.", + "LabelPublicHttpPort": "Public http port number", + "LabelPublicHttpPortHelp": "The public port number that should be mapped to the local http port.", + "LabelPublicHttpsPort": "Public https port number", + "LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local https port.", + "RequireHttps": "Require https for external connections", + "RequireHttpsHelp": "If enabled, connections over http will be redirected to https.", + "LabelHttpsPort": "Local https port number", + "LabelHttpsPortHelp": "The tcp port number that Emby's https server should bind to.", + "LabelEnableAutomaticPortMap": "Enable automatic port mapping", + "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", + "LabelExternalDDNS": "External domain", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Min resume percentage", + "LabelMaxResumePercentage": "Max resume percentage", + "LabelMinResumeDuration": "Min resume duration (seconds)", + "LabelMinResumePercentageHelp": "Titles are assumed unplayed if stopped before this time", + "LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time", + "LabelMinResumeDurationHelp": "Titles shorter than this will not be resumable", + "HeaderStatus": "Status", + "Subscriptions": "Subscriptions", + "LabelEndingEpisodeNumber": "Ending episode number", + "LabelEndingEpisodeNumberHelp": "Only required for multi-episode files", + "HeaderSupportTheTeam": "Support the Emby Team", + "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by purchasing Emby Premiere. A portion of all income will be contributed to other free tools we depend on.", + "DonationNextStep": "Once complete, please return and enter your Emby Premiere key, which you will receive by email.", + "HeaderRunningTasks": "Running Tasks", + "ButtonUpdateNow": "Update Now", + "PleaseUpdateManually": "Please shutdown Emby Server and install the latest version.", + "ServerUpToDate": "Emby Server is up to date", + "MessagePleaseRestartServerToFinishUpdating": "Please restart the server to finish applying updates.", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", + "HeaderForgotKey": "Forgot Key", + "LabelSupporterEmailAddress": "The email address that was used to purchase the key.", + "ButtonRetrieveKey": "Retrieve Key", + "LabelSupporterKey": "Emby Premiere key (paste from email)", + "LabelSupporterKeyHelp": "Enter your Emby Premiere key to start enjoying additional benefits.", + "MessageInvalidKey": "Emby Premiere key is missing or invalid.", + "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also have an active Emby Premiere subscription.", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Send message", + "HeaderSendMessage": "Send Message", + "ButtonSend": "Send", + "LabelMessageText": "Message text", + "LabelMessageTitle": "Message title", + "ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Api Keys", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "Api Key", + "HeaderResumeSettings": "Resume Settings", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Activity", + "ButtonPurchase": "Purchase", + "HeaderInstall": "Install", + "LabelSelectVersionToInstall": "Select version to install", + "LinkLearnMoreAboutSubscription": "Learn about Emby Premiere", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Developer Info", + "HeaderRevisionHistory": "Revision History", + "ButtonViewWebsite": "View website", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect", + "LabelDateAddedBehavior": "Date added behavior for new content", + "OptionDateAddedImportTime": "Use date scanned into the library", + "OptionDateAddedFileTime": "Use file creation date", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Library Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Camera upload path", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Parental Control", + "HeaderAccessSchedule": "Access Schedule", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Library Access", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "TitlePasswordReset": "Password Reset", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Allow media downloading", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Allow media conversion", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Zip Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Display name", + "OptionDownloadImagesInAdvance": "Download images in advance", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Thank you for supporting Emby.", + "FileReadCancelled": "The file read has been canceled.", + "FileNotFound": "File not found.", + "FileReadError": "An error occurred while reading the file.", + "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "HeaderNewApiKey": "New Api Key", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "TextEnjoyBonusFeatures": "Enjoy Bonus Features", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "To manage plugins, please use the Emby web app.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Are you sure you wish to restart Emby Server?", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Running on http port {0}", + "LabelRunningOnPorts": "Running on http port {0}, and https port {1}", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Select Path", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Metadata Manager", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Change Content Type", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Home videos & photos", + "OptionBooks": "Books", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "New name", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Rename", + "HeaderPluginInstallation": "Plugin Installation", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Price: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Thank You", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Unlock App", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Add User", + "HeaderEmailAddress": "E-Mail Address", + "NumLocationsValue": "{0} folders", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Example: {0}", + "LabelFileOrUrl": "File or url", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Enable debug logging", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN networks", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Permitir a este usuario cambiar su contraseña e imagen del perfil", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "Legacy": "Legacy", + "LabelFolderScanningMode": "Folder scanning mode" +} diff --git a/strings/es.json b/strings/es.json new file mode 100644 index 0000000..65245e8 --- /dev/null +++ b/strings/es.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Ha Terminado!", + "ThisWizardWillGuideYou": "Este asistente lo guiará a través del proceso de configuración de Emby Server. Para comenzar, seleccione su idioma preferido.", + "HeaderCreateYourFirstUser": "Crea tu primer usuario", + "ButtonQuickStartGuide": "Guía de inicio rápido", + "MoreUsersCanBeAddedLater": "Se pueden añadir más usuarios más adelante dentro de la configuración del servidor Emby Server.", + "UserProfilesIntro": "Emby incluye soporte integrado para perfiles de usuario, lo que permite a cada usuario tener su propia configuración de pantalla, estado de reproducción y controles parentales.", + "WizardCompleted": "Eso es todo lo que necesitamos por ahora. Emby ha comenzado a recopilar información sobre su biblioteca multimedia. Consulte algunas de nuestras aplicaciones y luego haga clic en Finalizar para ver el Panel del servidor.", + "MessagePleaseAcceptTermsOfService": "Acepte las condiciones de uso y la política de privacidad antes de continuar.", + "OptionIAcceptTermsOfService": "Acepto las condiciones de uso", + "SeeOurHwaGuide": "Consulte nuestra {0}guía de configuración de aceleración por hardware{1}.", + "HeaderEmbyServerReleaseNotes": "Notas de la versión de Emby Server", + "AllowSubtitleDownloading": "Permitir la descarga de subtítulos", + "AllowSubtitleManagement": "Permitir la eliminación de archivos de subtítulos existentes", + "NewUserNameHelp": "Así es como aparecerá el usuario en su servidor.", + "ChapterMarkers": "Marcadores de capítulo", + "LabelThumbnailImagesInterval": "Intervalo de imágenes en miniatura", + "ThumbnailImagesIntervalHelp": "Las miniaturas más frecuentes resultarán en una mejor experiencia, pero requerirán más espacio en disco y tiempo para crear las imágenes.", + "LabelAuthProvider": "Proveedor de autenticación", + "AuthProviderHelp": "Los administradores siempre usan el proveedor Emby predeterminado para asegurarse de que nunca se bloquee.", + "HeaderNewUser": "Nuevo usuario", + "ChangeServerDisplayName": "Cambiar el nombre para mostrar del servidor", + "ShowAdvancedSettings": "Mostrar configuración avanzada", + "ChangingMetadataImageSettingsNewContent": "Los cambios en la configuración de descarga de metadatos o ilustraciones solo se aplicarán al contenido nuevo agregado a su biblioteca. Para aplicar los cambios a los títulos existentes, deberá actualizar sus metadatos manualmente.", + "AllowRemoteAccess": "Permitir conexiones remotas al servidor Emby Server.", + "AllowRemoteAccessHelp": "Si no se marca, se bloquearán todas las conexiones remotas.", + "Alerts": "Alertas", + "LabelTrackTitleDisplay": "Visualización del título de la pista Integrada", + "GenerateUserFriendlyTrackTitles": "Genere títulos fáciles de usar utilizando la información de la pista", + "PreferOriginalTrackTitles": "Preferir títulos Integrados", + "TrackTitleDisplayHelp": "Elija el título de visualización de las pistas de audio y subtítulos integrados. No se recomienda preferir integrado a menos que esté seleccionando manualmente la información de la pista integrada.", + "EnableTranscodingThrottle": "Activar aceleración", + "EnableTranscodingThrottleHelp": "Emby ajustará dinámicamente la velocidad de transcodificación para reducir el uso de la CPU.", + "HeaderTypeMetadataDownloaders": "Descargadores de metadatos de {0}", + "HeaderTypeImageFetchers": "Buscadores de imágenes de {0}", + "HeaderImageOptions": "Opciones de imagen", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Regístrese con PayPal", + "LabelSyncTempPath": "Ruta del archivo temporal", + "LabelSyncTempPathHelp": "Especifique una carpeta de trabajo personalizada. Los medios convertidos creados durante el proceso de conversión se almacenarán aquí.", + "LabelCustomCertificatePath": "Ruta del certificado SSL personalizado", + "LabelCustomCertificatePathHelp": "Ruta a un archivo PKCS #12 que contiene un certificado y una clave privada para habilitar la compatibilidad con TLS en un dominio personalizado.", + "HeaderSetupLibrary": "Configurar bibliotecas multimedia", + "LabelTimeLimitHours": "Límite de tiempo (horas)", + "HeaderPreferredMetadataLanguage": "Idioma de metadatos preferido", + "LabelSaveLocalMetadata": "Guardar las ilustraciones en las carpetas de medios", + "LabelSaveLocalMetadataHelp": "Al guardar las ilustraciones en carpetas multimedia, las imágenes se colocarán junto a los archivos multimedia, donde se podrá acceder a ellas fácilmente desde fuera de Emby. Si esta opción está desactivada, las imágenes se guardarán en la carpeta de metadatos del servidor.", + "TabAccess": "Acceso", + "HeaderDeviceAccess": "Acceso al dispositivo", + "OptionEnableAccessFromAllDevices": "Habilitar el acceso desde todos los dispositivos", + "OptionEnableAccessToAllChannels": "Habilitar el acceso a todos los canales", + "OptionEnableAccessToAllLibraries": "Habilitar el acceso a todas las bibliotecas", + "DeviceAccessHelp": "El filtrado del acceso a los dispositivos de los usuarios evitará que utilicen nuevos dispositivos hasta que hayan sido aprobados aquí.", + "LabelDisplayMissingEpisodesWithinSeasons": "Mostar episodios no disponibles en temporadas", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Esto también debe estar habilitado para las bibliotecas de TV en la configuración del servidor Emby Server.", + "ImportMissingEpisodesHelp": "Si está habilitado, la información sobre episodios faltantes se importará a su base de datos de Emby y se mostrará dentro de las temporadas y series. Esto puede provocar exploraciones de bibliotecas significativamente más largas.", + "MessageEnablingOptionLongerScans": "Habilitar esta opción puede resultar en escaneos de bibliotecas significativamente más largos.", + "LabelMaxParentalRating": "Valor máximo de clasificación parental:", + "MaxParentalRatingHelp": "El contenido con una clasificación parental más alta se ocultará a este usuario.", + "LibraryAccessHelp": "Seleccione las carpetas de medios para compartir con este usuario. Los administradores podrán editar todas las carpetas usando el administrador de metadatos.", + "ChannelAccessHelp": "Seleccione los canales para compartir con este usuario. Los administradores podrán editar todos los canales utilizando el administrador de metadatos.", + "ImageUploadAspectRatioHelp": "Relación de aspecto recomendada: 1:1. Solo JPG/PNG.", + "AlreadyPaidHelp1": "Si ya pagó para instalar una versión anterior de Media Browser para Android, no necesita pagar nuevamente para activar esta aplicación. Haga clic en OK para enviarnos un correo electrónico a {0} y lo activaremos.", + "AlreadyPaidHelp2": "¿Tienes Emby Premiere? Simplemente cancele este cuadro de diálogo, configure Emby Premiere en el Panel de control de su Emby Server en Ayuda > Emby Premiere, y se desbloqueará automáticamente.", + "TabMyPlugins": "Mis Complementos", + "TabCatalog": "Catálogo", + "HeaderAutomaticUpdates": "Actualizaciones automáticas", + "Standard": "Estándar", + "TabSupporterKey": "Clave de Emby Premiere", + "OptionHideUserLocal": "Ocultar este usuario de las pantallas de inicio de sesión en la red local", + "OptionHideUserRemote": "Ocultar a este usuario de las pantallas de inicio de sesión cuando se conecta de forma remota", + "OptionHideUserFromLoginHelp": "Útil para cuentas de administrador privadas u ocultas. El usuario deberá iniciar sesión manualmente ingresando su nombre de usuario y contraseña.", + "HideFromUnusedDevices": "Ocultar a este usuario de las pantallas de inicio de sesión en dispositivos en los que nunca ha iniciado sesión", + "OptionDisableUser": "Inhabilitar este usuario", + "OptionDisableUserHelp": "Si está deshabilitado, el servidor no permitirá ninguna conexión de este usuario. Las conexiones existentes terminarán abruptamente.", + "OptionAllowUserToManageServer": "Permitir a este usuario administrar el servidor", + "HeaderFeatureAccess": "Acceso a funciones", + "OptionAllowMediaPlayback": "Permitir reproducción multimedia", + "AllLibraries": "Todas las bibliotecas", + "HeaderAllowMediaDeletionFrom": "Permitir eliminación de archivos multimedia desde", + "LiveTVRecordingManagement": "Gestión de grabación de TV en directo", + "OptionAllowRemoteControlOthers": "Permitir el control remoto de otros usuarios", + "OptionAllowRemoteSharedDevices": "Permitir el control remoto de dispositivos compartidos", + "OptionAllowRemoteSharedDevicesHelp": "Los dispositivos DLNA se consideran compartidos hasta que un usuario comienza a controlarlos.", + "OptionAllowLinkSharing": "Permitir compartir en redes sociales", + "OptionAllowLinkSharingHelp": "Solo se comparten las páginas web que contienen información multimedia. Los archivos multimedia nunca se comparten públicamente. Las acciones tienen un límite de tiempo y caducarán después de {0} días.", + "OptionRelease": "Lanzamiento oficial", + "LabelAllowServerAutoRestartPlugin": "Permitir que el servidor reinicie automáticamente para aplicar actualizaciones de complementos", + "LabelAllowServerAutoRestartServerOrPlugin": "Permitir que el servidor reinicie automáticamente para aplicar actualizaciones del servidor o complementos", + "LabelAllowServerAutoRestartHelp": "El servidor solo se reiniciará durante los períodos inactivos, cuando no haya usuarios activos.", + "LabelRunServerAtStartup": "Ejecutar el servidor al inicio", + "LabelRunServerAtStartupHelp": "Esto iniciará el icono de la bandeja de Emby al iniciar Windows. Si ha configurado un servicio de Windows, deje esto sin marcar y configure el servicio para que se ejecute al inicio.", + "ButtonSelectDirectory": "Seleccionar directorio", + "LabelCachePath": "Ruta de la caché:", + "DefaultMetadataLangaugeDescription": "Estos son sus valores predeterminados y se pueden personalizar por biblioteca.", + "LabelCachePathHelp": "Especifique una ubicación personalizada para los archivos de caché del servidor, como imágenes. Déjelo en blanco para usar los valores del servidor predeterminados.", + "LabelDefaultRecordingFolder": "Carpeta de grabación por defecto", + "LabelMovieRecordingFolder": "Carpeta de grabación de Películas", + "LabelSeriesRecordingFolder": "Carpeta de grabación de Series", + "SeriesRecordingFolderHelp": "(Opcional). Selecciona una biblioteca para guardar las grabaciones de series. Debe ser una biblioteca creada en la configuración de Emby con el tipo de contenido configurado como programas de TV o contenido mixto.", + "HeaderProgramData": "Datos del programa", + "RecordingFolderHelp": "Seleccione la carpeta de la biblioteca por defecto para guardar las grabaciones. Si no se especifica, se creará una biblioteca dentro de la carpeta de datos del servidor.", + "MovieRecordingFolderHelp": "(Opcional). Seleccione una biblioteca para guardar las grabaciones de películas. Debe ser una biblioteca creada en la configuración de Emby con el tipo de contenido establecido en películas o contenido mixto.", + "LabelMetadataPath": "Ruta de metadatos", + "LabelMetadataPathHelp": "Especifique una ubicación para las ilustraciones y los metadatos descargados, o borre esto para volver al valor predeterminado. Si cambia esto, deberá migrar manualmente el contenido de la ubicación anterior a la nueva ubicación. Si alguna vez cambia manualmente el contenido de la carpeta de metadatos, deberá ejecutar la {0}tarea programada de exploración de la carpeta de metadatos{1}.", + "LabelTranscodingTempPath": "Ruta de transcodificación temporal", + "LabelTranscodingTempPathHelp": "Esta carpeta contiene archivos de trabajo utilizados por el transcodificador. Especifique una ruta personalizada o déjela en blanco para usar la predeterminada dentro de la carpeta de datos del servidor.", + "GenerateVideoPreviewThumbnailsHelp": "Las miniaturas de vista previa de vídeo brindan actualizaciones en directo mientras se buscan en aplicaciones compatibles. La generación de miniaturas puede llevar mucho tiempo, provocar un uso elevado de la CPU y consumir espacio adicional en el disco.", + "AsAScheduledTask": "como una tarea programada", + "AsAScheduledTaskAndMediaAdded": "como una tarea programada y cuando se agregan medios", + "ButtonRefreshGuideData": "Actualizar datos de la guía", + "LabelNumberOfGuideDays": "Número de días de datos de la guía para descargar", + "LabelNumberOfGuideDaysHelp": "La descarga de datos de guía para más días brinda la posibilidad de programar con mayor anticipación y ver más listados, pero también llevará más tiempo descargarlo. Automático, elegirá según el número de canales. Tenga en cuenta que, independientemente de cuántos días elija, los datos deben existir en los datos de la guía de origen para poder descargarlos. Algunas fuentes de datos de la guía solo proporcionan 24 horas. Emby Guide Data admite hasta 14 días.", + "HeaderFetchImages": "Obtener imágenes", + "LabelMaxBackdropsPerItem": "Número máximo de imágenes de fondo por elemento", + "LabelMaxScreenshotsPerItem": "Número máximo de capturas de pantalla por elemento", + "LabelMinBackdropDownloadWidth": "Ancho mínimo de imágenes de fondo descargadas", + "LabelMinScreenshotDownloadWidth": "Ancho mínimo de capturas de pantalla descargadas", + "ButtonAddScheduledTaskTrigger": "Agregar disparador", + "ButtonAdd": "Añadir", + "LabelTriggerType": "Tipo de disparador", + "OptionOnInterval": "En intervalos", + "OptionAfterSystemEvent": "Después de un evento de sistema", + "LabelDay": "Día", + "LabelTime": "Hora", + "LabelEvent": "Evento", + "OptionWakeFromSleep": "Despertar", + "Every": "Cada", + "LabelEnableRealtimeMonitor": "Activar monitoreo en tiempo real", + "LabelEnableRealtimeMonitorHelp": "Los cambios en los archivos se procesarán inmediatamente, en los sistemas de archivos compatibles.", + "Community": "Comunidad", + "HeaderEmbyNews": "Noticias de Emby", + "LabelFriendlyServerName": "Nombre descriptivo del servidor", + "LabelFriendlyServerNameHelp": "Este nombre se podrá utilizar para identificar este servidor. Si se deja en blanco se utilizará el nombre de la computadora.", + "LabelPreferredDisplayLanguage": "Mostrar idioma preferido", + "LabelPreferredDisplayLanguageHelp": "Traducir Emby es un proyecto en curso.", + "LabelReadHowYouCanContribute": "Aprenda cómo puede contribuir.", + "LabelCustomCss": "Personalizar CSS", + "LabelCustomCssHelp": "Aplique su propio CSS personalizado a la interfaz web.", + "LabelLocalHttpServerPortNumber": "Número de puerto HTTP local", + "LabelLocalHttpServerPortNumberHelp": "Número de puerto TCP al que debe vincularse el servidor HTTP de Emby.", + "LabelPublicHttpPort": "Número de puerto HTTP público", + "LabelPublicHttpPortHelp": "El número de puerto público que debe asignarse al puerto HTTP local.", + "LabelPublicHttpsPort": "Número de puerto HTTPS público", + "LabelPublicHttpsPortHelp": "Número de puerto público que debe asignarse al puerto HTTPS local.", + "RequireHttps": "Requerir HTTPS para conexiones externas", + "RequireHttpsHelp": "Si está habilitado, las conexiones a través de HTTP se redireccionarán a HTTPS.", + "LabelHttpsPort": "Número de puerto HTTPS local", + "LabelHttpsPortHelp": "Número de puerto TCP al que debe vincularse el servidor HTTPS de Emby.", + "LabelEnableAutomaticPortMap": "Activar asignación automática de puertos", + "LabelEnableAutomaticPortMapHelp": "Intenta asignar automáticamente el puerto público al puerto local a través de UPnP. Es posible que esto no funcione con algunos modelos de enrutadores.", + "LabelExternalDDNS": "Dominio externo", + "LabelExternalDDNSHelp": "Si tiene un nombre de dominio o DNS dinámico, ingréselo aquí, sin protocolo ni puerto. Las aplicaciones de Emby lo usarán cuando se conecten de forma remota. Este campo es obligatorio cuando se usa con un certificado SSL personalizado. Ejemplo: midominio.com.", + "LabelMinResumePercentage": "Porcentaje mínimo para reanudación", + "LabelMaxResumePercentage": "Porcentaje máximo para reanudación", + "LabelMinResumeDuration": "Duración mínima de reanudación (segundos)", + "LabelMinResumePercentageHelp": "Se asume que los títulos no se reproducen si se detienen antes de este tiempo", + "LabelMaxResumePercentageHelp": "Se asume que los títulos están completamente reproducidos si se detienen después de este tiempo", + "LabelMinResumeDurationHelp": "Los títulos más cortos que esto no se podrán reanudar", + "HeaderStatus": "Estado", + "Subscriptions": "Suscripciones", + "LabelEndingEpisodeNumber": "Número de episodio final", + "LabelEndingEpisodeNumberHelp": "Solo se requiere para archivos de varios episodios", + "HeaderSupportTheTeam": "Apoye al equipo de Emby", + "HeaderSupportTheTeamHelp": "Ayude a garantizar el desarrollo continuo de este proyecto comprando Emby Premiere. Una parte de todos los ingresos se contribuirá a otras herramientas gratuitas de las que dependemos.", + "DonationNextStep": "Una vez completado, regrese e ingrese su clave Emby Premiere, que recibirá por correo electrónico.", + "HeaderRunningTasks": "Tareas en ejecución", + "ButtonUpdateNow": "Actualizar ahora", + "PleaseUpdateManually": "Por favor, apague Emby Server e instale la última versión.", + "ServerUpToDate": "Emby Server está actualizado", + "MessagePleaseRestartServerToFinishUpdating": "Reinicie el servidor para terminar de aplicar las actualizaciones.", + "LabelDownMixAudioScale": "Aumento de audio al mezclar", + "LabelDownMixAudioScaleHelp": "Usa el potenciador de audio al hacer downmixing. Ajústelo a 1 para conservar el valor de volumen original.", + "HeaderForgotKey": "Olvidé la clave", + "LabelSupporterEmailAddress": "La dirección de correo electrónico que se utilizó para comprar la clave.", + "ButtonRetrieveKey": "Recuperar clave", + "LabelSupporterKey": "Clave Emby Premiere (pegar del correo electrónico)", + "LabelSupporterKeyHelp": "Ingrese su clave Emby Premiere para comenzar a disfrutar de beneficios adicionales.", + "MessageInvalidKey": "Falta la clave Emby Premiere o no es válida.", + "ErrorMessageInvalidKey": "Para que se registre cualquier contenido premium, también debe tener una suscripción activa a Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Omitir si el vídeo ya contiene subtítulos integrados que coinciden con el idioma de descarga", + "LabelSkipIfGraphicalSubsPresentHelp": "Mantener las versiones de texto de los subtítulos resultará en una entrega más eficiente y disminuirá la probabilidad de transcodificación de vídeo.", + "HeaderDownloadLanguages": "Descarga de idiomas", + "LabelSkipIfAudioTrackPresent": "Omitir si la pista de audio predeterminada coincide con el idioma de descarga", + "LabelSkipIfAudioTrackPresentHelp": "Desmarque esta opción para asegurarse de que todos los vídeos tengan subtítulos, independientemente del idioma del audio.", + "SendMessage": "Enviar mensaje", + "HeaderSendMessage": "Enviar mensaje", + "ButtonSend": "Enviar", + "LabelMessageText": "Mensaje de texto", + "LabelMessageTitle": "Titulo del mensaje", + "ButtonEditOtherUserPreferences": "Edite el perfil, la imagen y las preferencias personales de este usuario.", + "LabelLoginDisclaimer": "Aviso legal de Inicio de sesión", + "LabelLoginDisclaimerHelp": "Esto se mostrará en la parte inferior de la página de inicio de sesión.", + "HeaderTranscodingTemporaryFiles": "Transcodificación de archivos temporales", + "HeaderApiKeys": "Claves API", + "HeaderApiKeysHelp": "Se requiere que las aplicaciones externas tengan una clave API para comunicarse con Emby Server. Las claves se emiten al iniciar sesión con una cuenta de Emby o al otorgar manualmente una clave a la aplicación.", + "HeaderApiKey": "Clave Api", + "HeaderResumeSettings": "Ajustes de reanudación", + "HeaderFetcherSettings": "Configuración del buscador", + "HeaderActivity": "Actividad", + "ButtonPurchase": "Comprar", + "HeaderInstall": "Instalar", + "LabelSelectVersionToInstall": "Seleccionar la versión a instalar", + "LinkLearnMoreAboutSubscription": "Más información sobre Emby Premiere", + "MessagePluginRequiresSubscription": "Este complemento requerirá una suscripción activa a Emby Premiere después de la prueba gratuita de 14 días.", + "MessagePremiumPluginRequiresMembership": "Este complemento requerirá una suscripción activa a Emby Premiere para poder comprarlo después de la prueba gratuita de 14 días.", + "HeaderDeveloperInfo": "Información del desarrollador", + "HeaderRevisionHistory": "Historial de revisiones", + "ButtonViewWebsite": "Ver sitio web", + "OptionSaveMetadataAsHidden": "Guardar metadatos e imágenes como archivos ocultos", + "LabelConnectEmail": "(Opcional) Dirección de correo electrónico de Emby Connect", + "LabelConnectEmailHelp": "Opcionalmente, vincule a este usuario local a una cuenta de Emby Connect existente para permitir un fácil acceso de inicio de sesión desde cualquier aplicación de Emby sin tener que conocer la dirección IP del servidor.", + "ButtonLearnMoreAboutEmbyConnect": "Más información sobre Emby Connect", + "LabelDateAddedBehavior": "Comportamiento de fecha añadida para contenido nuevo", + "OptionDateAddedImportTime": "Usar fecha escaneada de la biblioteca", + "OptionDateAddedFileTime": "Usar fecha de creación del archivo", + "LabelDateAddedBehaviorHelp": "Si hay un valor de metadatos, siempre se utilizará antes de cualquiera de estas opciones.", + "HeaderLibrarySettings": "Ajustes de la biblioteca", + "HeaderAutomaticSubtitleDownloads": "Descargas automáticas de subtítulos", + "HeaderCameraUploadHelp": "Las aplicaciones de Emby pueden cargar automáticamente fotos tomadas desde sus dispositivos móviles en Emby Server.", + "LabelCameraUploadPath": "Ruta de subida desde Cámara", + "LabelCameraUploadPathHelp": "Seleccione una ruta de carga personalizada. Esto anulará cualquier configuración predeterminada establecida en la sección Subir desde Cámara. Si se deja en blanco, se usará una carpeta predeterminada. Si usa una ruta personalizada, también deberá añadirse como una biblioteca en la configuración de la biblioteca Emby.", + "DefaultCameraUploadPathHelp": "Seleccione una ruta de carga personalizada. Si se deja en blanco, se utilizará una carpeta predeterminada. Si usa una ruta personalizada, también deberá agregarse como una biblioteca en la configuración de la biblioteca Emby.", + "LabelCreateCameraUploadSubfolder": "Crear subcarpetas para cada dispositivo", + "LabelCreateCameraUploadSubfolderHelp": "Se pueden asignar carpetas específicas a un dispositivo haciendo clic en él desde la página Dispositivos.", + "LabelCustomDeviceDisplayNameHelp": "Proporcione un nombre para mostrar personalizado o déjelo en blanco para usar el nombre informado por el dispositivo.", + "TabParentalControl": "Control parental", + "HeaderAccessSchedule": "Horario de acceso", + "HeaderAccessScheduleHelp": "Crea un horario de acceso para limitar el acceso a determinadas horas.", + "HeaderLibraryAccess": "Acceso a la biblioteca", + "HeaderChannelAccess": "Acceso a los canales", + "LabelForgotPasswordUsernameHelp": "Ingrese su nombre de usuario, si lo recuerda.", + "TitlePasswordReset": "Reestablecer contraseña", + "HeaderBlockItemsWithNoRating": "Bloquear elementos con información de calificación no reconocida o sin información", + "LabelBlockContentWithTags": "Restringir elementos con etiquetas", + "LabelTagRestrictionMode": "Modo de restricción de etiquetas", + "BlockItemsWithTheseTags": "Bloquear elementos con estas etiquetas", + "AllowItemsWithTheseTags": "Permitir solo elementos con estas etiquetas", + "OptionAllowContentDownloading": "Permitir la descarga de medios", + "LabelNewUserNameHelp": "Los nombres de usuario pueden contener letras (a-z), números (0-9), guiones (-), guiones bajos (_), apóstrofos (') y puntos (.)", + "HeaderThisUserIsCurrentlyDisabled": "Este usuario está actualmente deshabilitado. Para habilitar este usuario, consulte la opción en la parte inferior de esta página.", + "OptionAllowSyncTranscoding": "Permitir la descarga de medios que requieran transcodificación", + "AllowMediaConversion": "Permitir conversión de archivos multimedia", + "AllowMediaConversionHelp": "Otorgue o niegue el acceso a la función de conversión de medios.", + "OptionAllowAudioPlaybackTranscoding": "Permitir la transcodificación de audio a un formato compatible, si es necesario, durante la reproducción de medios", + "OptionAllowVideoPlaybackTranscoding": "Permitir la transcodificación de vídeo a un formato compatible, si es necesario, durante la reproducción de medios", + "OptionAllowVideoPlaybackRemuxing": "Permitir el cambio de formatos de contenedor, si es necesario, durante la reproducción multimedia", + "OptionAllowMediaPlaybackTranscodingHelp": "Restringir el acceso a la transcodificación deshabilitará la selección de calidad y puede causar errores en la reproducción en las aplicaciones Emby debido a formatos multimedia no compatibles o ancho de banda de red insuficiente.", + "LabelRemoteClientBitrateLimit": "Límite de velocidad de bits de transmisión remota (Mbps):", + "LabelRemoteClientBitrateLimitHelp": "Un límite de velocidad de bits por transmisión opcional para todos los dispositivos fuera de la red. Esto limitará la calidad de la transmisión remota incluso si el usuario tiene seleccionada una calidad más alta en el reproductor. Esto es útil para evitar que los dispositivos soliciten una velocidad de bits más alta de la que puede soportar su conexión a Internet. Esto puede resultar en una mayor carga de CPU en su servidor para poder transcodificar vídeos sobre la marcha a una velocidad de bits más baja.", + "LabelUserRemoteClientBitrateLimitHelp": "Esto anulará el valor global predeterminado establecido en la configuración avanzada del servidor.", + "OptionEnableFullSpeedConversion": "Activar conversión a máxima velocidad", + "OptionEnableFullSpeedConversionHelp": "De forma predeterminada, las conversiones se realizan a baja velocidad para minimizar el consumo de recursos.", + "OptionEnableAutomaticServerUpdates": "Activar actualizaciones automáticas del servidor", + "HeaderTVSources": "Entradas de TV", + "HeaderAddTvSource": "Añadir fuente de TV", + "LabelTunerIpAddress": "Dirección IP del sintonizador:", + "HeaderGuideProviders": "Proveedores de datos de la guía", + "HeaderAddGuideSource": "Añadir fuente de datos de la guía", + "LabelZipCode": "Código postal:", + "LabelLineup": "Reparto:", + "LabelImportOnlyFavoriteChannels": "Restringir a los canales marcados como favoritos", + "ImportFavoriteChannelsHelp": "Si está habilitado, solo se importarán los canales que están marcados como favoritos en el dispositivo sintonizador.", + "HeaderDefaultRecordingSettings": "Configuración de grabación predeterminada", + "LabelDisplayName": "Mostrar nombre:", + "OptionDownloadImagesInAdvance": "Descargar imágenes con antelación", + "OptionDownloadImagesInAdvanceHelp": "De forma predeterminada, la mayoría de las imágenes solo se descargan cuando lo solicita una aplicación Emby. Habilite esta opción para descargar todas las imágenes por adelantado, ya que se importan nuevos medios. Esto puede provocar exploraciones de bibliotecas significativamente más largas.", + "MessageThankYouForSupporting": "Gracias por apoyar a Emby.", + "FileReadCancelled": "La lectura del archivo se ha cancelado.", + "FileNotFound": "Archivo no encontrado.", + "FileReadError": "Se encontró un error al leer el archivo.", + "NoPluginConfigurationMessage": "Este complemento no tiene ajustes para configurar.", + "HeaderNewApiKey": "Nueva clave API", + "HeaderNewApiKeyHelp": "Conceda un permiso a la aplicación para comunicarse con Emby Server.", + "MessageKeyEmailedTo": "Clave enviada por email a {0}.", + "HeaderConfirmation": "Confirmación", + "MessageKeyUpdated": "Gracias. Se actualizó la clave de Emby Premiere.", + "MessageKeyRemoved": "Gracias. Se eliminó su clave de Emby Premiere.", + "TextEnjoyBonusFeatures": "Disfrute las funciones de bonificación", + "MessageErrorLoadingSupporterInfo": "Se produjo un error al cargar la información de Emby Premiere. Por favor, inténtelo de nuevo más tarde.", + "ValueTimeLimitSingleHour": "Límite de tiempo: 1 hora", + "ValueTimeLimitMultiHour": "Límite de tiempo: {0} horas", + "General": "General", + "HeaderScreenSavers": "Salvapantallas", + "Reporting": "Informes", + "LabelStopping": "Deteniendo", + "HeaderSelectCertificatePath": "Seleccione la ruta del certificado", + "HeaderSupporterBenefit": "Una suscripción activa a Emby Premiere brinda beneficios adicionales como acceso a Emby DVR, medios sin conexión, complementos premium y más. {0}Obtenga más información{1}.", + "LabelAbortedByServerShutdown": "(Abortado por el apagado del servidor)", + "LabelScheduledTaskLastRan": "Última ejecución {0}, tardando {1}.", + "HeaderDeleteTaskTrigger": "Eliminar Programador de Tarea", + "MessageDeleteTaskTrigger": "¿Está seguro de que desea eliminar este Programador de Tarea?", + "MessageNoPluginsDueToAppStore": "Para administrar complementos, utilice la aplicación web Emby.", + "LabelVersionInstalled": "{0} instalado", + "HeaderSelectServerCachePath": "Seleccione la ruta para la caché del servidor", + "HeaderSelectTranscodingPath": "Seleccione la ruta temporal de transcodificación", + "HeaderSelectMetadataPath": "Seleccione la ruta para metadatos", + "HeaderSelectServerCachePathHelp": "Explore o ingrese la ruta a usar para los archivos de caché del servidor. La carpeta debe tener permisos de escritura.", + "HeaderSelectTranscodingPathHelp": "Explore o ingrese la ruta a usar para transcodificar archivos temporales. La carpeta debe tener permisos de escritura.", + "HeaderSelectMetadataPathHelp": "Explore o ingrese la ruta en la que le gustaría almacenar los metadatos. La carpeta debe tener permisos de escritura.", + "MessageConfirmRestart": "¿Estás seguro de que quieres reiniciar Emby Server?", + "MessageConfirmShutdown": "¿Estás seguro de que quieres apagar el servidor Emby Server?", + "LabelLocalAccessUrl": "Acceso en el hogar (LAN): {0}", + "LabelRemoteAccessUrl": "Acceso remoto (WAN): {0}", + "LabelRunningOnPort": "Se ejecuta en el puerto HTTP {0}", + "LabelRunningOnPorts": "Se ejecuta en el puerto HTTP {0}, y puerto HTTPS {1}", + "LabelCurrentPath": "Ruta actual:", + "HeaderSelectMediaPath": "Seleccionar ruta para Medios", + "HeaderSelectPath": "Seleccionar ruta", + "MessageDirectoryPickerInstruction": "Las rutas de red se pueden introducir manualmente en caso de que el botón Red no pueda localizar sus dispositivos. Por ejemplo, {0} o {1}.", + "MessageDirectoryPickerBSDInstruction": "Para BSD, es posible que deba configurar el almacenamiento dentro del Jail de FreeNAS para permitir que Emby acceda a él.", + "MessageDirectoryPickerLinuxInstruction": "Para Linux en Arch Linux, CentOS, Debian, Fedora, OpenSuse o Ubuntu, debe otorgar al usuario del sistema Emby al menos acceso de lectura a sus ubicaciones de almacenamiento.", + "MetadataManager": "Administrador de metadatos", + "OptionBlockLiveTvChannels": "Canales de TV en directo", + "OptionBlockChannelContent": "Contenido del canal de Internet", + "ButtonRevoke": "Revocar", + "MessageConfirmRevokeApiKey": "¿Estás seguro de que deseas revocar esta clave API? La conexión de la aplicación con el servidor Emby se interrumpirá repentinamente.", + "HeaderConfirmRevokeApiKey": "Revocar clave API", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Por favor, acepte los términos de servicio antes de continuar.", + "HeaderChangeFolderType": "Cambiar el tipo de contenido", + "HeaderChangeFolderTypeHelp": "Para cambiar el tipo, elimine y reconstruya la biblioteca con el nuevo tipo.", + "HeaderAlert": "Alerta", + "MessagePleaseRestart": "Por favor, reinicie para finalizar la actualización.", + "OptionHomeVideos": "Vídeos y fotos personales", + "OptionBooks": "Libros", + "HeaderMetadataReaders": "Lectores de Metadatos", + "LabelMetadataReadersHelp": "Clasifique sus fuentes de metadatos locales preferidas en orden de prioridad. Se leerá el primer archivo encontrado.", + "HeaderSubtitleDownloaders": "Descargadores de Subtítulos", + "SubtitleDownloadersHelp": "Habilite y clasifique sus descargadores de subtítulos preferidos en orden de prioridad. Se pueden instalar más proveedores de subtítulos utilizando el catálogo de complementos de Emby.", + "LabelMetadataDownloaders": "Descargadores de metadatos:", + "LabelMetadataDownloadersHelp": "Habilite y clasifique sus descargadores de metadatos preferidos en orden de prioridad. Los descargadores de menor prioridad solo se utilizarán para completar la información faltante.", + "HeaderMetadataSavers": "Almacenadores de Metadatos", + "LabelMetadataSaversHelp": "Elija los formatos de archivo para guardar sus metadatos.", + "LabelImageFetchers": "Buscadores de imágenes:", + "LabelImageFetchersHelp": "Active y clasifique sus buscadores de imágenes preferidos en orden de prioridad.", + "PersonTypePerson": "Persona", + "HeaderRemoveMediaLocation": "Quitar ubicación multimedia", + "MessageConfirmRemoveMediaLocation": "¿Estás seguro de que quieres eliminar esta ubicación?", + "LabelNewName": "Nuevo nombre:", + "HeaderRemoveLibrary": "Eliminar Biblioteca", + "MessageAreYouSureYouWishToRemoveLibrary": "¿Está seguro de que desea eliminar la biblioteca \"{0}\" de su servidor Emby? Sus archivos multimedia no se verán afectados.", + "ButtonRename": "Renombrar", + "HeaderPluginInstallation": "Instalación del complemento", + "MessageTrialExpired": "El período de prueba de esta función ha expirado", + "MessageTrialWillExpireIn": "El período de prueba de esta función expira en {0} día(s)", + "ValuePriceUSD": "Precio: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Está registrado para esta función y podrá seguir usándola con una suscripción activa a Emby Premiere.", + "HeaderSelectExternalPlayer": "Seleccionar reproductor externo", + "HeaderExternalPlayerPlayback": "Reproducción del reproductor externo", + "HeaderThankYou": "Gracias", + "HeaderSelectUploadPath": "Seleccionar ruta de subida", + "ErrorMessageStartHourGreaterThanEnd": "La hora de finalización debe ser mayor que la hora de inicio.", + "MessagePluginConfigurationRequiresLocalAccess": "Para configurar este complemento, inicie sesión en su servidor local directamente.", + "MovieLibraryHelp": "Consulta la {0}guía de nombres de películas de Emby{1}.", + "TvLibraryHelp": "Consulta la {0}guía de nombres de Series de TV de Emby{1}.", + "BookLibraryHelp": "Se admiten libros de texto. Consulta la {0}guía de nombres de libros de Emby{1}.", + "MessageGamePluginRequired": "Requiere la instalación del complemento GameBrowser", + "HeaderUnlockApp": "Desbloquear Aplicación", + "MessagePaymentServicesUnavailable": "Los servicios de pago no están disponibles actualmente. Por favor, inténtalo más tarde.", + "NoNewDevicesFound": "No se encontraron dispositivos nuevos. Para añadir un nuevo sintonizador, cierre este cuadro de diálogo e introduzca la información del dispositivo manualmente.", + "MessageConfirmDeleteTunerDevice": "¿Estás seguro de que deseas eliminar este dispositivo?", + "MessageConfirmDeleteGuideProvider": "¿Está seguro de que desea eliminar este proveedor de guías?", + "HeaderDeleteProvider": "Eliminar proveedor", + "ErrorAddingTunerDevice": "Hubo un error al agregar el dispositivo sintonizador. Por favor, asegúrese de que sea accesible y vuelva a intentarlo.", + "ErrorSavingTvProvider": "Hubo un error al guardar el proveedor de TV. Por favor, asegúrese de que sea accesible y vuelva a intentarlo.", + "ErrorGettingTvLineups": "Hubo un error al descargar la programación de TV. Por favor, asegúrese de que su información sea correcta y vuelva a intentarlo.", + "MessageCreateAccountAt": "Crear una cuenta en {0}", + "ErrorPleaseSelectLineup": "Por favor, selecciona un catálogo de canales e inténtalo de nuevo. Si no hay un catálogo disponible, verifique que su nombre de usuario, contraseña y código postal sean correctos.", + "ErrorValidatingSupporterInfo": "Hubo un error al validar su información de Emby Premiere. Por favor, inténtelo de nuevo más tarde.", + "LabelLocalSyncStatusValue": "Estado: {0}", + "HeaderTopPlugins": "Mejores complementos", + "ForAdditionalLiveTvOptions": "Explorar el {0}catálogo de complementos{1} de Emby para instalar proveedores de TV en directo adicionales.", + "AddUser": "Agregar usuario", + "HeaderEmailAddress": "Dirección de correo", + "NumLocationsValue": "{0} carpetas", + "PleaseAddAtLeastOneFolder": "Por favor, agregue al menos una carpeta a esta biblioteca haciendo clic en el botón Agregar.", + "ErrorAddingMediaPathToVirtualFolder": "Se produjo un error al agregar la ruta del medio. Por favor, asegúrese de que la ruta sea válida y que el proceso del servidor Emby Server tenga acceso a esa ubicación.", + "ErrorAddingEmbyConnectAccount3": "La cuenta Emby ya está vinculada a un usuario local existente. Una cuenta de Emby solo se puede vincular a un usuario local a la vez.", + "HeaderConfirmPluginInstallation": "Confirmar la instalación del complemento", + "PleaseConfirmPluginInstallation": "Haga clic en OK para confirmar que ha leído lo anterior y desea continuar con la instalación del complemento.", + "MessagePluginInstallDisclaimer": "Los complementos creados por miembros de la comunidad de Emby son una excelente manera de mejorar su experiencia de Emby con características y beneficios adicionales. Antes de la instalación, tenga en cuenta los efectos que pueden tener en su servidor Emby, como exploraciones de biblioteca más largas, procesamiento en segundo plano adicional y disminución de la estabilidad del sistema.", + "HardwareAccelerationWarning": "Habilitar la aceleración por hardware puede causar inestabilidad en algunos entornos. Asegúrese de que su sistema operativo y los controladores de vídeo estén completamente actualizados. Si tiene dificultades para reproducir vídeo después de habilitar esto, deberá volver a cambiar la configuración a Automático.", + "ValueExample": "Ejemplo: {0}", + "LabelFileOrUrl": "Archivo o URL:", + "OptionEnableForAllTuners": "Activar para todos los dispositivos sintonizadores", + "HeaderTuners": "Sintonizadores", + "DrmChannelsNotImported": "Los canales con DRM no se importarán.", + "LabelAllowHWTranscoding": "Permitir transcodificación por hardware", + "AllowHWTranscodingHelp": "Si está habilitado, permite que el sintonizador transcodifique transmisiones sobre la marcha. Esto puede ayudar a reducir la transcodificación requerida por Emby Server.", + "MetadataSettingChangeHelp": "Cambiar los ajustes de metadatos afectará al contenido nuevo que se agregue en el futuro. Para actualizar el contenido existente, abra la pantalla de detalles y haga clic en el botón Actualizar, o realice actualizaciones masivas usando el administrador de metadatos.", + "RecordingPathChangeMessage": "Cambiar su carpeta de grabación no migrará las grabaciones existentes de la ubicación anterior a la nueva. Deberá moverlos manualmente si lo desea.", + "LabelLocalIpAddress": "Dirección IP local:", + "LabelBindToLocalNetworkAddressHelp": "Opcional. Anula la dirección IP local que Emby Server presentará a las aplicaciones Emby. Si se deja en blanco, el servidor detectará automáticamente la dirección IP local.", + "SettingsWarning": "Cambiar estos valores puede causar inestabilidad o fallos de conectividad. Si experimenta algún problema, le recomendamos que lo vuelva a cambiar a los valores predeterminados.", + "OptionSaveMetadataAsHiddenHelp": "Cambiar esto se aplicará a los nuevos metadatos guardados en el futuro. Los archivos de metadatos existentes se actualizarán la próxima vez que Emby Server los guarde.", + "EnablePhotos": "Habilitar fotos", + "EnablePhotosHelp": "Las fotos se detectarán y se mostrarán junto con otros archivos multimedia.", + "ImportPlaylists": "Importar archivos de Lista de reproducción", + "ImportPlaylistsHelp": "Las listas de reproducción que se encuentran en sus directorios multimedia se pueden importar a Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Guardar miniaturas de vista previa de vídeo en carpetas multimedia", + "LabelGenerateVideoPreviewThumbnails": "Generar miniaturas de vista previa de vídeo:", + "LabelEnableDebugLogging": "Habilitar registro de depuración", + "OptionEnableExternalContentInSuggestions": "Habilitar contenido externo en sugerencias", + "OptionEnableExternalContentInSuggestionsHelp": "Permite que los tráilers de Internet y los programas de TV en directo se incluyan en el contenido sugerido.", + "LabelOptionalNetworkPath": "Carpeta de red compartida (opcional) :", + "LabelOptionalNetworkPathHelp": "Si esta carpeta se comparte en su red, proporcionar la ruta compartida de red puede permitir que las aplicaciones de Emby en otros dispositivos accedan directamente a los archivos multimedia.", + "SynologyUpdateInstructions": "Inicie sesión en DSM y vaya al Centro de paquetes para actualizar.", + "HeaderRecordingPostProcessing": "Posprocesamiento de grabación", + "LabelPostProcessorArguments": "Argumentos de la línea de comandos del posprocesado:", + "PostProcessorArgumentsHelp": "Las siguientes variables son compatibles con la línea de comando para permitir pasar datos a su pos-procesador:", + "LabelPostProcessor": "Solicitud de posprocesamiento:", + "DvrPostProcessorPathArgument": "{path}: la ruta completa al nuevo archivo de grabación", + "OptionAutomaticallyGroupSeries": "Fusionar automáticamente series distribuidas en varias carpetas", + "OptionAutomaticallyGroupSeriesHelp": "Si está habilitado, las series que se distribuyen en varias carpetas dentro de esta biblioteca se fusionarán automáticamente en una sola serie.", + "WhenDidYouPurchaseApp": "¿Cuándo compraste esta aplicación originalmente?", + "PreferEmbeddedTitlesOverFileNames": "Preferir títulos integrados sobre nombres de archivo", + "PreferEmbeddedTitlesOverFileNamesHelp": "Esto determina el título de visualización predeterminado cuando no hay metadatos de Internet o metadatos locales disponibles.", + "FriendlyNameForReferenceHelp": "Un nombre descriptivo usado para mostrar, para su propia referencia.", + "HeaderLiveTvTunerSetup": "Configuración del sintonizador de TV en directo", + "HeaderTVSourceSetup": "Configuración de la Fuente de TV", + "HeaderDetectMyDevices": "Detectar mis dispositivos", + "MessagePleaseWait": "Por favor, espere. Esto puede tardar un minuto.", + "DetectingDevices": "Detectando dispositivos", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Después de la importación inicial, actualizar automáticamente los metadatos desde Internet:", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Actualizar automáticamente los metadatos de los episodios con títulos de marcador de posición como TBA:", + "EveryNDays": "Cada {0} días", + "LabelCertificatePassword": "Contraseña del certificado:", + "LabelCertificatePasswordHelp": "Si su certificado requiere una contraseña, ingresala aquí.", + "HeaderNewLibrary": "Nueva Biblioteca", + "HttpsRequiresCert": "Para habilitar conexiones seguras, deberá proporcionar un certificado SSL confiable, como Lets Encrypt. Proporcione un certificado o deshabilite las conexiones seguras.", + "ServerRestartNeededAfterPluginInstall": "Emby Server deberá reiniciarse después de instalar un complemento.", + "PluginInstalledMessage": "El complemento se ha instalado correctamente. Emby Server deberá reiniciarse para que los cambios surtan efecto.", + "MessagePremiereStatusGood": "Tienes un plan {0} Emby Premiere y el uso de tu dispositivo está dentro de tu límite.", + "MessagePremiereStatusClose": "Tienes un plan {0} Emby Premire, pero el uso de tus dispositivos está cerca del límite.", + "MessagePremiereExtendedPlans": "Considere un {0}plan de dispositivos extendido{1}", + "MessagePremiereStatusOver": "¡Tienes un plan {0} Emby Premiere, pero estás por encima del límite de dispositivos!", + "ListItemPremiereSub": "{0} la suscripción comprada a través de {2} caduca el {1}", + "LabelClickToManage": "Clic para administrar esta suscripción", + "LabelCancelInfo": "Puedes gestionar la suscripción directamente con {0}", + "LabelAlreadyCanceled": "Esta suscripción ha sido cancelada. La clave seguirá siendo válida hasta que expire.", + "HeaderCancelSub": "Cancelar Emby Premiere", + "MessageConfirmSubCancel": "NO, Por favor, no te vayas... ¡Te vas a perder todas las funciones de Emby Premiere!", + "ButtonCancelSub": "Lo sé, cancela de todos modos", + "ButtonDontCancelSub": "Mantener Emby Premiere", + "MessageSubCancelReqSent": "Se ha enviado un correo electrónico al propietario de la clave. Siga las instrucciones en ese correo electrónico para completar la cancelación de esta suscripción. ¡Esperamos volver a verte pronto!", + "MessageSubCancelError": "Algo ha ido mal al intentar cancelar. Por favor, envíe un correo electrónico a {0} y lo solucionaremos.", + "LabelAlreadyCancelled": "Esta suscripción ha sido cancelada. No se le cobrará nuevamente, pero las funciones estarán disponibles hasta la fecha de arriba.", + "AllowOnTheFlySubtitleExtraction": "Permitir la extracción de subtítulos sobre la marcha", + "AllowOnTheFlySubtitleExtractionHelp": "Los subtítulos integrados se pueden extraer de los vídeos y enviarlos a las aplicaciones Emby en texto sin formato para ayudar a prevenir la transcodificación de vídeos. En algunos sistemas, esto puede llevar mucho tiempo y hacer que la reproducción de vídeo se detenga durante el proceso de extracción. Desactive esta opción para que los subtítulos integrados se graben con la transcodificación de vídeo cuando el dispositivo cliente no los admite de forma nativa.", + "AllowOnTheFlyFontExtraction": "Permitir la extracción de fuentes de subtítulos sobre la marcha", + "AllowOnTheFlyFontExtractionHelp": "Las fuentes integradas se pueden extraer de los vídeos y enviar a las aplicaciones de Emby para que sean compatibles con vídeos que contienen fuentes personalizadas. En algunos sistemas, esto puede tardar bastante y provocar que la reproducción del vídeo se detenga durante el proceso de extracción.", + "EnableDebugLoggingHelp": "El registro de depuración solo debe habilitarse cuando sea necesario para la resolución de problemas. El mayor acceso al sistema de archivos puede impedir que la maquina servidor entre en suspensión en algunos entornos.", + "LabelSimultaneousConnectionLimit": "Límite de transmisiones simultáneas:", + "SimultaneousConnectionLimitHelp": "Número máximo de transmisiones simultáneas permitidas. Introduzca 0 para no tener límite.", + "LaunchWebAppOnStartup": "Iniciar la aplicación web Emby en mi navegador cuando Emby Server sea iniciado", + "LaunchWebAppOnStartupHelp": "Esto abrirá la aplicación web en su navegador web predeterminado cuando Emby Server se inicie. Esto no ocurrirá cuando se utilice la función de reinicio del servidor.", + "LabelReferrerHeader": "Cabecera HTTP de referencia:", + "LabelUserAgentHeader": "Cabecera HTTP del Agente de usuario:", + "SupplyCustomValueIfNeeded": "Proporcione un valor de encabezado http personalizado, si es necesario.", + "HeaderConfigureRemoteAccess": "Configurar acceso remoto", + "LearnHowToCreateSynologyShares": "Aprenda a compartir carpetas en Synology.", + "LabelAllowedRemoteAddresses": "Filtro de dirección IP remota:", + "LabelAllowedRemoteAddressesMode": "Modo de filtro de dirección IP remota:", + "Whitelist": "Lista blanca", + "Blacklist": "Lista negra", + "AllowedRemoteAddressesHelp": "Lista de direcciones IP separada por comas o entradas de IP/máscara de red para redes a las que se les permitirá conectarse de forma remota. Si se deja en blanco, se permitirán todas las direcciones remotas.", + "LabelLanNetworks": "Redes de área local (LAN):", + "LanNetworksHelpText": "Lista separada por comas de direcciones IP o entradas de IP/máscara de red para redes que se considerarán en la red local al aplicar restricciones de ancho de banda y acceso remoto. Si se configura, se considerará que todas las demás direcciones IP están en la red externa. Si se deja en blanco, solo la subred del servidor y las subredes IP privadas comunes (192.168.0.0/24, 172.16.0.0/12, etc.) se considerarán en la red local.", + "LabelSecureConnectionsMode": "Modo de conexión segura:", + "PreferredNotRequired": "Preferente, pero no necesario", + "RequiredForAllRemoteConnections": "Necesario para todas las conexiones remotas", + "HandledByProxy": "Gestionado por proxy inverso", + "SaveSubtitlesIntoMediaFolders": "Guardar los subtítulos en carpetas multimedia", + "SaveSubtitlesIntoMediaFoldersHelp": "El almacenamiento de subtítulos junto a los archivos de vídeo permitirá administrarlos más fácilmente.", + "AutomaticSubtitleDownloadInstructions": "Para gestionar la descarga automática de subtítulos, haga clic en la configuración de la biblioteca Emby y edite la configuración de descarga de subtítulos para esa biblioteca.", + "ProviderNeedsSetupWithUrl": "{0} requiere configuración adicional en la {1} pantalla de configuración{2} en Emby Server.", + "LabelEnableHardwareAcceleration": "Activar aceleración por hardware cuando esté disponible:", + "HeaderPreferredHardwareDecoders": "Decodificadores de hardware preferidos", + "HeaderPreferredHardwareEncoders": "Codificadores de hardware preferidos", + "AllowChangingImageAndPassword": "Permitir que este usuario cambie su contraseña e imagen de perfil", + "LabelSimultaneousStreamLimit": "Máximo de transmisiones de vídeo simultáneas:", + "SimultaneousStreamLimitHelp": "Limita el número de sesiones simultaneas de reproducción de vídeo.", + "LabelMusicFolderStructure": "Estructura de carpeta de música:", + "LabelMusicFolderStructureHelp": "Esto proporciona una pista para el escáner de la biblioteca sobre la forma en que están organizadas sus carpetas. Si no está seguro o si sus carpetas no coinciden exactamente con una de las opciones, seleccione la opción predeterminada Otro.", + "OtherOrUnstructured": "Otro o no estructurado", + "PerfectArtistAlbumTrack": "Perfectamente organizado en carpetas de artistas/álbumes, con pistas directamente en las carpetas de álbumes.", + "PerfectAlbumTrack": "Perfectamente organizado en carpetas de álbumes, con pistas directamente en las carpetas de álbumes.", + "LabelMinCollectionSize": "Tamaño mínimo automático de la colección:", + "PerfectAuthorAudioBookTrack": "Perfectamente organizado en carpetas de autor/libro, con pistas directamente en las carpetas del libro.", + "PerfectAudioBookTrack": "Perfectamente organizado en carpetas de libros, con pistas directamente en las carpetas de libros.", + "MinCollectionSizeHelp": "Cree colecciones automáticamente cuando tenga al menos el número seleccionado de títulos en su biblioteca. Cambiar este valor no afectará las colecciones existentes.", + "LabelImportCollections": "Importar información de la colección desde descargadores de metadatos", + "LabelImportCollectionsHelp": "Cuando está activado, esto importará la información de la colección de sus descargadores de metadatos activados. Esto puede causar que se creen automáticamente colecciones no deseadas. La desactivación evitará que se creen automáticamente colecciones futuras, pero no eliminará las existentes.", + "LabelAllowAdultMetadata": "Permitir metadatos de adultos", + "LabelAllowAdultMetadataHelp": "Permita que los títulos de adultos coincidan cuando busque metadatos de Internet.", + "HeaderVideoPreviewThumbnails": "Miniaturas de vista previa de vídeo", + "LabelEnableHDRToneMapping": "Activar mapeo de tono HDR:", + "EnableHDRToneMappingHelp": "El mapeo de tonos asegurará la conversión de color correcta al transcodificar contenido HDR, que de lo contrario aparecerá muy atenuado y desaturado. Es posible que se necesiten componentes de controlador adicionales para admitir la aceleración de hardware con esta función habilitada. Consulte nuestra guía de configuración de aceleración de hardware para obtener más detalles.", + "WithHardwareAcceleratedTranscoding": "Sí, solo con aceleración por hardware", + "TranscodingStillInitializing": "Los servicios de transcodificación de Emby Server todavía están ocupados iniciándose. Esta pantalla se actualizará automáticamente cuando los servicios de transcodificación estén disponibles.", + "WithEitherHardwareOrSoftwareTranscoding": "Sí, con transcodificación por software o hardware", + "ToneMappingInHardwareDescription": "El mapeo de tonos se realizará con aceleración por hardware cuando esté habilitado y sea compatible con el hardware, y se omitirá en todos los demás casos.", + "ToneMappingInSoftwareDescription": "La CPU realizará el mapeo de tonos en el software. Esto es mucho más lento que el mapeo de tonos acelerado por hardware y requerirá una máquina servidor muy potente.", + "ToneMappingInBothDescription": "El mapeo de tonos se realizará con aceleración por hardware cuando esté habilitado y sea compatible con el hardware, y recurrirá al software en todos los demás casos. El mapeo de tonos en el software es mucho más lento que el mapeo de tonos acelerado por hardware y requerirá una máquina servidor muy potente.", + "AutoMapped": "Mapeado automáticamente", + "ManuallyMapped": "Mapeado manualmente", + "NotMappedToGuideData": "No mapeado para datos de la guía", + "MappedToValue": "Mapeado a {0}", + "LabelAutomaticallyWakeServerForRecordings": "Activar automáticamente la máquina servidor para realizar grabaciones", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Los eventos de reactivación se programarán con el sistema operativo del servidor. Desactivar esta opción evitará que se programen futuros eventos de reactivación, pero no eliminará ningún evento programado anteriormente.", + "Database": "Base de Datos", + "LabelOptimizeDatabaseOnShutdown": "Intentar optimizar la base de datos en los cierres del servidor", + "LabelOptimizeDatabaseOnShutdownHelp": "La operación de optimización de la base de datos generalmente no es operativa, pero ocasionalmente ejecutará un análisis si parece que hacerlo será útil para el planificador de consultas. Esto puede hacer que Emby Server tarde más en apagarse.", + "LabelDatabaseCacheSize": "Tamaño de caché de la Base de datos (MB)", + "LabelDatabaseCacheSizeHelp": "Establece la cantidad de datos que la base de datos contendrá en la memoria a la vez, por archivo de base de datos. Un valor mayor puede ayudar a mejorar el rendimiento del servidor Emby. Requiere reiniciar el servidor para que surta efecto.", + "LabelDatabaseAnalysisLimit": "Límite de filas de análisis", + "LabelDatabaseAnalysisLimitHelp": "Cuando la base de datos está optimizada, este es el número aproximado de filas examinadas en cada índice por el comando ANALYZE. Un valor mayor aumentará la eficacia de la optimización de la base de datos, pero puede hacer que Emby Server tarde más en apagarse.", + "LabelVacuumDb": "Limpiar la base de datos en el próximo inicio de Emby Server", + "LabelVacuumDbHelp": "El comando de limpiar reconstruye el archivo de la base de datos y lo vuelve a empaquetar en una cantidad mínima de espacio en disco. En algunos casos, esto puede mejorar el rendimiento del servidor Emby Server. Tenga en cuenta que su servidor Emby no se podrá usar durante el tiempo de la operación de limpieza, ni habrá ninguna forma de monitorear el progreso de limpieza. Evite forzar el cierre del proceso del servidor Emby Server durante este tiempo, ya que puede dañar la base de datos. Esta es una operación única y esta opción volverá a estar desmarcada en el próximo inicio del servidor.", + "AdvancedOptionsWarning": "Estas son opciones avanzadas y, por lo general, deben dejarse en los valores predeterminados a menos que tenga una razón para cambiarlas.", + "HeaderRecentlyActiveDevices": "Dispositivos Activos Recientemente", + "YesUntilServerRestart": "Sí, hasta el próximo reinicio del servidor", + "YesUntilLogRotate": "Sí, hasta la próxima rotación del archivo de registro", + "LabelSubtitleDownloadMaxAge": "Dejar de intentar descargar subtítulos automáticamente para videos anteriores a:", + "SubtitleDownloadMaxAgeHelp": "Esto se basa en el valor de los metadatos de la fecha añadida.", + "NoAgeLimit": "Sin límite de edad", + "AnonymizeLogContents": "Anonimizar el contenido del registro", + "Markers": "Marcadores", + "LabelGenerateIntroVideoMarkers": "Generar marcadores de vídeo de introducción", + "GenerateIntroVideoMarkersHelp": "Detectar presentaciones de programas y mostrar el botón \"Omitir introducción\" en las aplicaciones de Emby. La detección de introducciones puede llevar mucho tiempo y provocar un uso elevado de la CPU o del disco.", + "LabelCopyFromUser": "Copiar la configuración del usuario:", + "CopyFromUserHelp": "Opcional. Acelere la creación de nuevos usuarios copiando información de un usuario existente.", + "UserPolicy": "Política de usuario (biblioteca y acceso a funciones, controles parentales, etc.)", + "UserConfiguration": "Configuración de usuario (idiomas de audio y subtítulos preferidos, orden de la biblioteca, etc.)", + "UserDataAndDescription": "Datos del usuario (favoritos, estados de visualización y escucha, etc.)", + "HeaderCopyOptions": "Opciones de copia", + "LabelMultiRestrictionMode": "Modo de restricción múltiple:", + "MultiRestrictionModeAll": "Permitir contenido que coincida tanto la calificación como las restricciones de etiqueta", + "MultiRestrictionModeAny": "Permitir contenido que coincida con las restricciones de calificación o etiqueta", + "AllowMappingByChannelNumber": "Permitir que el mapeo guíe los datos usando números de canal", + "AllowMappingByChannelNumberHelp": "Esto puede usarse como alternativa para que los canales del sintonizador coincidan con los datos de la guía cuando no se encuentre una coincidencia basada en el nombre del canal. Esto puede provocar una coincidencia inexacta si los números de canal del sintonizador no son correctos.", + "LabelPreferredSourceForChannelLogos": "Preferir logotipos de canales de la guía de datos sobre el sintonizador cuando ambos los tienen disponibles", + "LabelPreferredSourceForChannelNumbers": "Preferir los números de canal de la guía de datos sobre el sintonizador cuando ambos los tienen disponibles", + "HeaderSoftwareEncoders": "Codificadores de software", + "LabelProxyHeaderMode": "Lea los encabezados de proxy para determinar las direcciones IP de los clientes", + "ProxyHeadersRemoteOnly": "Solo cuando contienen direcciones de red remotas", + "ProxyHeaderModeHelp": "Determina si se deben usar encabezados de solicitud como {0} y {1} para determinar la dirección IP de los dispositivos que se conectan. Esta opción solo debe activarse si se usa un proxy inverso.", + "AllowCameraUpload": "Permitir subir desde Cámara", + "AllowCameraUploadHelp": "Si está permitido, y si está activado en las aplicaciones móviles de Emby, los usuarios pueden cargar automáticamente fotos y videos tomadas desde su cámara a este servidor Emby Server", + "CameraUploadMustBeGranted": "El administrador del servidor también debe otorgarle acceso a la carga de la cámara.", + "EnableReadingAndWritingPeopleMetadata": "Activar la lectura y escritura de archivos de metadatos personales", + "EnableReadingAndWritingPeopleMetadataHelp": "Requiere la instalación del complemento Nfo Metadata. Esto permitirá guardar las ediciones personales en archivos de metadatos nfo, pero resultará en escaneos de biblioteca más largos.", + "LabelIgnoreSampleFiles": "Ignore los archivos que contengan la palabra muestra en el nombre del archivo si su tamaño es inferior a (MB)", + "PreferredChannelImageSource": "Fuente de imagen del canal preferido", + "PreferredChannelImageSourceHelp": "Seleccione una imagen de canal preferida cuando, tanto el sintonizador como los datos de la guía tengan imágenes disponibles.", + "CacheImagesInServerData": "Mantenga una copia en caché de las imágenes en la carpeta de metadatos del servidor", + "CacheImagesInServerDataHelp": "Si sus medios e imágenes están almacenados en otra máquina, mantener una copia en caché de las imágenes en la carpeta de metadatos del servidor reducirá el acceso a la red y puede mejorar el rendimiento. El costo de crear este caché es que los análisis de la biblioteca serán más lentos y la carpeta de metadatos del servidor consumirá significativamente más espacio en disco.", + "AllowSharingPersonalContent": "Permitir compartir contenido personal, como listas de reproducción, con otros usuarios en este servidor", + "AllowSharingPersonalContentHelp": "Si se le concede, este usuario podrá compartir sus listas de reproducción con otros usuarios. Los elementos de la lista de reproducción seguirán estando restringidos según el acceso a la biblioteca del usuario y los controles parentales.", + "LiveBufferSizeHours": "Límite de tamaño del búfer de Transmisión en vivo (horas)", + "LiveBufferSizeHoursHelp": "Un búfer más grande permitirá avanzar y retroceder con mayor facilidad durante una transmisión en directo, pero ocupará más espacio en disco.", + "LabelTranscodingMaxResolution": "Resolución máxima de transcodificación", + "TranscodingMaxResolutionHelp": "Establezca un límite superior que se aplicará a todas las transcodificaciones de vídeo, independientemente de la configuración de calidad en el reproductor Emby. Esto ayudará a reducir los recursos consumidos por los procesos de transcodificación del servidor.", + "EnableHevcEncodingExp": "Activar la codificación de vídeo HEVC (experimental)", + "EnableHevcEncodingHelp": "Habilite la transcodificación usando el códec HEVC si el cliente lo admite.", + "LabelEnableMultiPartItems": "Habilitar elementos de varias partes", + "EnableMultiPartItemsHelp": "Detecta y agrupa automáticamente los archivos denominados parte 1, parte 2, etc. Las partes adicionales se mostrarán en la pantalla de detalles principal del elemento.", + "MultiVersionItemsDetectionHelp": "Detecta y agrupa automáticamente diferentes versiones del mismo elemento. Se ofrecerá una selección de versiones en la pantalla principal de detalles del elemento. Para agrupar por archivos, es necesario nombrarlos y organizarlos adecuadamente.", + "MultiVersionMoviesDetectionHelp": "La agrupación basada en metadatos agrupará las películas que tengan los mismos identificadores externos (MovieDb, Imdb, etc.).", + "EnableMultiPartItemsTVHelp": "No compatible con episodios de programas de TV.", + "HeaderAutomaticGrouping": "Agrupación automática", + "LabelMultiVersionItemsDetection": "Detección de elemento con múltiples versiones", + "MultiVersionItemsDetectionBoth": "Detectar elementos de múltiples versiones en función de los archivos y los metadatos", + "MultiVersionItemsDetectionFiles": "Detectar elementos de múltiples versiones según los archivos", + "MultiVersionItemsDetectionMetadata": "Detectar elementos de múltiples versiones según metadatos", + "LabelNetworkRequestProtocol": "Protocolo de solicitud de red", + "NetworkRequestProtocolHelp": "Seleccione el protocolo que se usará para las solicitudes de red salientes a proveedores de metadatos y otros servicios. En algunos casos, cuando no se pueda acceder a servicios externos mediante IPv6, es posible que deba configurarlo solo en IPv4.", + "GenerateChaptersForVideos": "Generar capítulos para vídeos que no contienen información de capítulos integrada", + "GeneratedChapterInterval": "Intervalo de capítulo generado", + "StartOfSection": "Inicio del capítulo", + "PreviousSection": "Capítulo anterior", + "PageNarrow": "Reducido", + "PageMaximized": "Maximizado", + "PageBook": "Doble página", + "LabelPageSize": "Tamaño de la página", + "PageSingle": "Unica página", + "NextSection": "Capítulo siguiente", + "PositionInBook": "Posición en el libro", + "TableOfContents": "Tabla de contenido", + "ZoomOut": "Alejar", + "ZoomIn": "Acercar", + "ZoomNone": "Zoom por defecto", + "ZoomAutoFit": "Ajustar página", + "LayoutPage": "Página única", + "LayoutDouble": "Página doble", + "LayoutVertical": "Desplazamiento vertical", + "Margins": "Margenes", + "PreviousPage": "Página anterior", + "CurrentPage": "Página actual", + "TotalPages": "Páginas totales", + "NextPage": "Página siguiente", + "RightToLeft": "Ordenar de derecha a izquierda", + "LetsGetSetup": "Empecemos", + "HeaderIgnoreFiles": "Ignorar archivos", + "EnablePlexIgnoreAlias": "Habilitar la compatibilidad con archivos .plexignore como alias de .embyignore", + "HeaderMaintenanceMode": "Modo de mantenimiento", + "OptionEnableMaintenanceMode": "Poner el servidor en modo de mantenimiento", + "MaintenanceModeMessageHelp": "Si se deja en blanco, se mostrará un mensaje general indicando que el servidor está en mantenimiento y se traducirá según el idioma de visualización del usuario.", + "ServerInMaintenanceMode": "El servidor Emby se encuentra actualmente en modo de mantenimiento. Los usuarios solo podrán ver un mensaje de modo de mantenimiento hasta que salga el servidor de dicho modo.", + "MaintenanceModeMessage": "Mensaje de modo de mantenimiento", + "EnableMaintenanceModeHelp": "Los usuarios solo verán el mensaje del modo de mantenimiento.", + "ExcludeFromGlobalSearch": "Excluir de la búsqueda global", + "MergeTopFoldersInFolderView": "Unir el contenido de las carpetas de nivel superior al usar la vista de carpetas", + "MergeTopFoldersInFolderViewHelp": "Si esta opción está activada, el contenido de las carpetas de nivel superior se unirá y se mostrará como una sola carpeta combinada al usar la vista de carpetas. Si está desactivada, las carpetas de nivel superior se mostrarán como el primer nivel en la vista de carpetas.", + "OptionAllowTranscodingToReduceQuality": "Permitir que la transcodificación reduzca la calidad, según la configuración de calidad de la aplicación, durante la reproducción de medios", + "LabelAutoRemoteQuality": "Calidad de transmisión remota automática (Mbps)", + "AutoRemoteQualityHelp": "Una calidad de transmisión opcional para este usuario cuando tiene el reproductor configurado en calidad automática. Esto anulará cualquier detección automática de calidad para este usuario en todos los dispositivos.", + "LabelFolderScanningMode": "Modo de escaneo de carpetas", + "Legacy": "Heredado", + "FolderScanningModeHelp": "Cambiar esta opción provocará un escaneo completo de la biblioteca y puede causar pérdida o cambios en los metadatos existentes.", + "LegacyFolderScanningModeHelp": "El escaneo antiguo intenta consolidar carpetas que contienen un solo vídeo en una sola capa. Esto afecta principalmente la visualización en la vista de carpetas. Es posible que no funcione correctamente al combinarse con otras funciones de Emby, como extras, vídeos multiversión o la opción de ignorar archivos." +} diff --git a/strings/et.json b/strings/et.json new file mode 100644 index 0000000..7f93e37 --- /dev/null +++ b/strings/et.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Tehtud!", + "ThisWizardWillGuideYou": "See abimees aitab seadistusprotsessi läbi viia. Alustuseks vali enese jaoks eelistatud keel.", + "HeaderCreateYourFirstUser": "Loo esimene kasutaja", + "ButtonQuickStartGuide": "Lühike juhend", + "MoreUsersCanBeAddedLater": "Kasutajaid saab hiljem lisada hiljem Emby serveri seadetes.", + "UserProfilesIntro": "Emby toetab kasutajaprofiile. Igal kasutal on oma avaleht, meedia esituse olek ja lapselukk.", + "WizardCompleted": "See on kõik, mida praegu vajame. Emby alustas meediakogu uurimist. Tutvu seniks mõne meie rakendusega, serveri serveri juhtpaneeli avamiseks vajuta Lõpeta.", + "MessagePleaseAcceptTermsOfService": "Enne jätkamist nõustu kasutustingimuste ja privaatsuspoliitikaga.", + "OptionIAcceptTermsOfService": "Nõustun kasutustingimustega", + "SeeOurHwaGuide": "Vaata meie {0}riistvaralise kiirenduse juhendit{1}.", + "HeaderEmbyServerReleaseNotes": "Emby serveri väljaandemärkused", + "AllowSubtitleDownloading": "Luba subtiitrite allalaadimine", + "AllowSubtitleManagement": "Luba olemasolevate subtiitrifailide kustutamine", + "NewUserNameHelp": "Nii kuvatakse kasutaja sinu serveris.", + "ChapterMarkers": "Peatükimärgid", + "LabelThumbnailImagesInterval": "Pisipiltide vahed:", + "ThumbnailImagesIntervalHelp": "Enamate pisipiltidega on kasutajakogemus parem, aga kettakulu ja aeg nende loomiseks on suurem.", + "LabelAuthProvider": "Autentimise pakkuja:", + "AuthProviderHelp": "Tagamaks lukustuse avamiste, kasutavad administraatorid kasutavad alati Emby vaikimisi pakkujat.", + "HeaderNewUser": "Uus kasutaja", + "ChangeServerDisplayName": "Muuda serveri kuvatavat nime", + "ShowAdvancedSettings": "Kuva täpsemad sätted:", + "ChangingMetadataImageSettingsNewContent": "Metaandmete või kujunduse allalaadimisseadete muudatused kehtivad ainult meediakogusse lisatud uue sisu kohta. Olemasolevate pealkirjade muudatuste rakendamiseks tuleb nende metaandmeid käsitsi värskendada.", + "AllowRemoteAccess": "Luba kaugühendused sellesse Emby serverisse.", + "AllowRemoteAccessHelp": "Kui tähistamata, keelatakse kõik kaugühendused.", + "Alerts": "Hoiatused", + "LabelTrackTitleDisplay": "Põimitud raja kuvamine:", + "GenerateUserFriendlyTrackTitles": "Loo raja infot kasutades kasutajasõbralikud pealkirjad", + "PreferOriginalTrackTitles": "Eelista põimitud radasi", + "TrackTitleDisplayHelp": "Määra põimitud heli- ja subtiitriradade kuvamine. Nende eelistamine ei ole soovitatav, kui põimitud raja infot käsitsi ei haldata.", + "EnableTranscodingThrottle": "Luba dünaamiline kiiruse muutmine", + "EnableTranscodingThrottleHelp": "Vähendamaks protsessori kasutust kohandab Emby dünaamiliselt transkodeerimise kiirust.", + "HeaderTypeMetadataDownloaders": "{0} metaandmete laadijat", + "HeaderTypeImageFetchers": "{0} pildikaabitsad", + "HeaderImageOptions": "Pildi valikud", + "OptionBeta": "Beeta", + "RegisterWithPayPal": "Registreeri PayPal abil", + "LabelSyncTempPath": "Ajutiste failide asukoht:", + "LabelSyncTempPathHelp": "Määra töökataloog, kuhu teisendamise käigus loodud meediafailid salvestatakse.", + "LabelCustomCertificatePath": "Kohandatud ssl sertifikaadi asukoht:", + "LabelCustomCertificatePathHelp": "Asukoht PKCS #12 failile, mis sisaldab sertifikaati ja privaatvõtit, et lubada TLS-i tugi kohandatud domeenis.", + "HeaderSetupLibrary": "Seadista meediakogud", + "LabelTimeLimitHours": "Ajapiirang (tundides):", + "HeaderPreferredMetadataLanguage": "Eelistatud keel metaandmetele", + "LabelSaveLocalMetadata": "Salvesta pildid meediakaustadesse", + "LabelSaveLocalMetadataHelp": "Piltide salvestamisel meediafailidega samadesse kaustadesse on need asukohas, kus neid on lihtne leida ja muuta.", + "TabAccess": "Ligipääs", + "HeaderDeviceAccess": "Seadme ligipääs", + "OptionEnableAccessFromAllDevices": "Luba ligipääs kõigist seadmeist", + "OptionEnableAccessToAllChannels": "Luba ligipääs kõigile kanalitele", + "OptionEnableAccessToAllLibraries": "Luba ligipääs kõigile meediakogudele", + "DeviceAccessHelp": "Kasutaja seadme juurdepääsu filtreerimine takistab kasutada uusi seadmeid enne, kui nad on siin heaks kiidetud.", + "LabelDisplayMissingEpisodesWithinSeasons": "Kuva hooaegades puuduvad episoodid", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "See peab olema lubatud ka TV meediakogus Emby serveri sätetes", + "ImportMissingEpisodesHelp": "Kui see lubatud, imporditakse teave puuduvate episoodide kohta Emby andmebaasi ja kuvatakse hooaegade ja seeriate kaupa. See võib põhjustada meediakogu skaneerimise märkimisväärset pikenemist.", + "MessageEnablingOptionLongerScans": "Selle lubamisel võib meediakogu skaneering kesta märkimisväärselt kauem.", + "LabelMaxParentalRating": "Lubatud vanusepiirang:", + "MaxParentalRatingHelp": "Sellele mitte vastav sisu peidetakse selle kasutaja eest.", + "LibraryAccessHelp": "Vali meediakaustad, mida selle kasutajaga jagada. Administraatorid saavad metaandmete halduri abil redigeerida kõiki kaustu.", + "ChannelAccessHelp": "Vali kanalid, mida selle kasutajaga jagada. Administraatorid saavad metaandmete halduri abil redigeerida kõiki kanaleid.", + "ImageUploadAspectRatioHelp": "1:1 kuva suhe. Soovitatav ainult JPG/PNG failidele.", + "AlreadyPaidHelp1": "Kui oled juba maksnud Androidi meediabrauseri vanema versiooni eest, ei pea selle rakenduse aktiveerimiseks uuesti maksma. Klõpsa OK, et saata meile meile e-post aadressil {0} ja me aktiveerime selle sinu jaoks.", + "AlreadyPaidHelp2": "Kas Emby Premier on olemas? Tühista see dialoog ja seadista Emby Premiere Emby serveri juhtpaneelil jaotises 'Spikker' -> Emby Premiere ja see avatakse automaatselt.", + "TabMyPlugins": "Minu pluginad", + "TabCatalog": "Kataloog", + "HeaderAutomaticUpdates": "Automaatsed uuendused", + "Standard": "Standard", + "TabSupporterKey": "Emby Premiere võti", + "OptionHideUserLocal": "Peida see kasutaja kohaliku võrgu sisselogimiskuvadest", + "OptionHideUserRemote": "Peida see kasutaja sisselogimiskuvadest kaugühenduse korral", + "OptionHideUserFromLoginHelp": "Kasulik privaatsete või varjatud administraatori kontode jaoks. Kasutaja peab käsitsi sisse logima, sisestades oma kasutajanime ja parooli.", + "HideFromUnusedDevices": "Peida see kasutaja sisselogimisekraanidelt seadmetes, kuhu ta pole kunagi sisse loginud", + "OptionDisableUser": "Keela see kasutaja", + "OptionDisableUserHelp": "Kui keelatud, ei luba server selle kasutajaga mingeid ühendusi. Olemasolevad ühendused katkestatakse järsult.", + "OptionAllowUserToManageServer": "Luba sellel kasutajal serverit hallata", + "HeaderFeatureAccess": "Lisafunktsionaalsus", + "OptionAllowMediaPlayback": "Luba meediafailide taasesitus", + "AllLibraries": "Kõik meediakogud", + "HeaderAllowMediaDeletionFrom": "Luba kustutamine meediakogust", + "LiveTVRecordingManagement": "OTSE TV Salvestuste Haldus", + "OptionAllowRemoteControlOthers": "Luba teiste kasutajate kaugjuhtimine", + "OptionAllowRemoteSharedDevices": "Luba jagatud seadmete kaugjuhtimine", + "OptionAllowRemoteSharedDevicesHelp": "Dlna seadmeid peetakse jagatuks seni, kuni kasutaja hakkab neid juhtima.", + "OptionAllowLinkSharing": "Luba jagamine sotsiaalmeedias", + "OptionAllowLinkSharingHelp": "Jagatakse ainult veebilehti, mis sisaldavad meediateavet. Meediafaile ei jagata kunagi avalikult. Jagamisedd on tähtajalised ja aeguvad {0} päeva pärast.", + "OptionRelease": "Ametlik väljalase", + "LabelAllowServerAutoRestartPlugin": "Luba automaatne serveri taaskäivitus peale lisade uuenduste paigaldust", + "LabelAllowServerAutoRestartServerOrPlugin": "Luba automaatne serveri taaskäivitus peale serveri või lisade uuenduste paigaldust", + "LabelAllowServerAutoRestartHelp": "Server taaskäivitub ainult jõudeperioodidel, kui ükski kasutaja pole aktiivne.", + "LabelRunServerAtStartup": "Käivita server alglaadimisel", + "LabelRunServerAtStartupHelp": "See käivitab Windowsi alglaadimisel Emby salveikooni. Kui Windowsi teenus seadistatud, jäta see märkimata ja määra teenus töötama käivitamisel.", + "ButtonSelectDirectory": "Vali kataloog", + "LabelCachePath": "Vahemälu asukoht:", + "DefaultMetadataLangaugeDescription": "Need on vaikeväärtused ja neid saab kohandada meediakogupõhiselt.", + "LabelCachePathHelp": "Määra serveri vahemälu failidele, näiteks piltidele, kohandatud asukoht. Serveri vaikeväärtuse kasutamiseks jäta tühjaks.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Programmi Andmed", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Metaandmete asukoht:", + "LabelMetadataPathHelp": "Määra kaust metaandmete ja piltide salvetamiseks või tühjenda see vaikeväärtuste taastamiseks. Selle muutmisel tuleb sisu käsitsi vanast asukohast uude üle viia. Kui muuta metaandmete kausta sisu käsitsi, tuleb käivitada ajastatud toiming {0}skaneeri metaandmete kausta{1}.", + "LabelTranscodingTempPath": "Transkodeerimise ajutine asukoht:", + "LabelTranscodingTempPathHelp": "Salvestuste salvestamiseks määrake vaikesukoht. Tühjaks jätmise korral kasutatakse serveri programmiandmete kausta.", + "GenerateVideoPreviewThumbnailsHelp": "Võimaldab toetatud rakendustes pisipildid video kerimisel. Pisipiltide loomine võib võtta kaua aega, põhjustada suurt protsessori kasutust ja kulutada täiendavat kettaruumi.", + "AsAScheduledTask": "ajastatud ülesandena", + "AsAScheduledTaskAndMediaAdded": "ajastatud ülesandena ja meedia lisamisel", + "ButtonRefreshGuideData": "Värskenda saatekava", + "LabelNumberOfGuideDays": "Allalaaditavate telekava andmete päevade arv:", + "LabelNumberOfGuideDaysHelp": "Rohkemate päevade telekava allalaadimine annab võimaluse pikemalt ajastada, kuid allalaadimine kestab kauem. 'Auto' valib kanalite arvu järgi. Arvesta, et olenemata valitud päevade arvust, peavad andmed allalaadimiseks olema olemas telekava allikates. Mõni telekava pakkuja pakub ainult 24 tundi. Emby toetab kuni 14 päeva.", + "HeaderFetchImages": "Hangi pilte:", + "LabelMaxBackdropsPerItem": "Maksimaalne taustapiltide arv üksuse kohta:", + "LabelMaxScreenshotsPerItem": "Maksimaalne ekraanipiltide arv üksuse kohta:", + "LabelMinBackdropDownloadWidth": "Hangitava taustapildi vähim laius:", + "LabelMinScreenshotDownloadWidth": "Hangitava ekraanipildi vähim laius:", + "ButtonAddScheduledTaskTrigger": "Lisa käivitaja", + "ButtonAdd": "Lisa", + "LabelTriggerType": "Käivitaja tüüp:", + "OptionOnInterval": "Vahemikga", + "OptionAfterSystemEvent": "Pärast süsteemisündmust", + "LabelDay": "Päev:", + "LabelTime": "Aeg:", + "LabelEvent": "Sündmus:", + "OptionWakeFromSleep": "Ärata uinakust", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Luba reaalajas jälgimine", + "LabelEnableRealtimeMonitorHelp": "Failide muudatused töödeldakse toetatud failisüsteemides koheselt.", + "Community": "Foorum", + "HeaderEmbyNews": "Emby uudised", + "LabelFriendlyServerName": "Sõbraliku serveri nimi:", + "LabelFriendlyServerNameHelp": "Seda nime kasutatakse selle serveri tuvastamiseks. Tühjaks jätmisel kasutatakse arvuti nime.", + "LabelPreferredDisplayLanguage": "Kasutajaliidese eelistatud keel:", + "LabelPreferredDisplayLanguageHelp": "Emby tõlkimine on jätkuv projekt.", + "LabelReadHowYouCanContribute": "Siit saad teada, kuidas anda oma panus.", + "LabelCustomCss": "Kohandatud css:", + "LabelCustomCssHelp": "Rakenda veebiliidesele oma kohandatud css.", + "LabelLocalHttpServerPortNumber": "Kohaliku http pordi number:", + "LabelLocalHttpServerPortNumberHelp": "TCP-pordi number, millega Emby http server seotakse.", + "LabelPublicHttpPort": "Avaliku http pordi number:", + "LabelPublicHttpPortHelp": "Avaliku pordi number, mis tuleks siduda kohaliku http pordiga.", + "LabelPublicHttpsPort": "Kohaliku https pordi number:", + "LabelPublicHttpsPortHelp": "Avaliku pordi number, mis tuleks siduda kohaliku https pordiga.", + "RequireHttps": "Nõua https väliste ühenduste jaoks", + "RequireHttpsHelp": "Kui lubatud, suunatakse http ühendused https protokollile.", + "LabelHttpsPort": "Kohaliku https pordi number:", + "LabelHttpsPortHelp": "TCP-pordi number, millega Emby https server seotakse.", + "LabelEnableAutomaticPortMap": "Luba automaatne pordisuunamine (UPnP)", + "LabelEnableAutomaticPortMapHelp": "Püüa UPnP kaudu avalik port automaatselt kohalikku sadamasse kaardistada. Mõne ruuteri mudeli puhul ei pruugi see töötada.", + "LabelExternalDDNS": "Väline domeen:", + "LabelExternalDDNSHelp": "Kui sul on dünaamiline DNS või domeeninimi, sisesta see siia ilma protokolli või pordita. Emby rakendused kasutavad seda kaugühenduse loomiseks. See väli on kohustuslik, kui seda kasutatakse kohandatud ssl-sertifikaadiga. Näide: mydomain.com.", + "LabelMinResumePercentage": "Vähim protsent jätkamiseks:", + "LabelMaxResumePercentage": "Suurim protsent jätkamiseks:", + "LabelMinResumeDuration": "Vähim kestus jätkamiseks (sek):", + "LabelMinResumePercentageHelp": "Failid loetakse esitamata, kui need peatatakse enne seda", + "LabelMaxResumePercentageHelp": "Failid loetakse esitatuks, kui need peatatakse pärast seda", + "LabelMinResumeDurationHelp": "Sellest lühemaid faile ei saa jätkata", + "HeaderStatus": "Olek", + "Subscriptions": "Tellimused", + "LabelEndingEpisodeNumber": "Lõpueoisoodi number:", + "LabelEndingEpisodeNumberHelp": "Vajalik vaid mitme episoodiga failidele", + "HeaderSupportTheTeam": "Toeta Emby arendajaid", + "HeaderSupportTheTeamHelp": "Aita tagada selle projekti jätkuv arendamine, ostes Emby Premiere. Osa sissetulekust makstakse muudesse tasuta tööriistadesse, millest me sõltume.", + "DonationNextStep": "Kui see on lõpule viidud, pöördu tagasi ja sisesta oma Emby Premiere'i võti, mille saad meili teel.", + "HeaderRunningTasks": "Jooksvad ülesanded", + "ButtonUpdateNow": "Uuenda kohe", + "PleaseUpdateManually": "Seiska Emby server ja paigalda uusim versioon.", + "ServerUpToDate": "Emby server on ajakohane", + "MessagePleaseRestartServerToFinishUpdating": "Uuenduste rakendamiseks taaskäivita server.", + "LabelDownMixAudioScale": "Heli tugevdamine taandamisel:", + "LabelDownMixAudioScaleHelp": "Tugevda stereosse taandamise käigus helitugevust. Algse helitugevuse väärtuse säilitamiseks määrs 1.", + "HeaderForgotKey": "Võtme unustamine", + "LabelSupporterEmailAddress": "E-posti aadress, mida kasutati võtme ostmiseks.", + "ButtonRetrieveKey": "Too võti", + "LabelSupporterKey": "Emby Premiere võti (kopeeri e-kirjast):", + "LabelSupporterKeyHelp": "Sisesta oma Emby Premiere võti (Emby Premiere Key) saamaks osa lisavõimalustest.", + "MessageInvalidKey": "Emby Premiere võti on puudu või vigane.", + "ErrorMessageInvalidKey": "Premium sisu registreerimiseks peab olema ka aktiivne Emby Premiere tellimus.", + "LabelSkipIfGraphicalSubsPresent": "Jäta vahele, kui video sisaldab juba põimitud subtiitreid", + "LabelSkipIfGraphicalSubsPresentHelp": "Subtiitrite tekstiversioonide säilitamine tagab nende tõhusama edastamise ja vähendab video transkodeerimise tõenäosust.", + "HeaderDownloadLanguages": "Keelte allalaadimine", + "LabelSkipIfAudioTrackPresent": "Jäta vahele, kui vaikeheli pala vastab allalaadimiskeelele", + "LabelSkipIfAudioTrackPresentHelp": "Eemalda märge, et tagada kõigil videotel subtiitrid sõltumata helikeelest.", + "SendMessage": "Saada sõnum", + "HeaderSendMessage": "Saada sõnum", + "ButtonSend": "Saada", + "LabelMessageText": "Sõnumi tekst:", + "LabelMessageTitle": "Sõnumi nimi:", + "ButtonEditOtherUserPreferences": "Muuda selle kasutaja profiili, pilti ja isiklikke eelistusi.", + "LabelLoginDisclaimer": "Sisselogimise tekst:", + "LabelLoginDisclaimerHelp": "Seda kuvatakse sisselogimislehe allosas.", + "HeaderTranscodingTemporaryFiles": "Transkodeerimise ajutised failid", + "HeaderApiKeys": "Api võtmed", + "HeaderApiKeysHelp": "Emy Serveriga suhtlemiseks peab välistes rakendustes olema Api võti. Võtmed väljastatakse Emby kontoga sisselogimisel või rakendusele võtme käsitsi määramisega.", + "HeaderApiKey": "Api võti", + "HeaderResumeSettings": "Taasta sätted", + "HeaderFetcherSettings": "Tooja seaded", + "HeaderActivity": "Tegevus", + "ButtonPurchase": "Osta", + "HeaderInstall": "Paigalda", + "LabelSelectVersionToInstall": "Vali paigaldatav versioon:", + "LinkLearnMoreAboutSubscription": "Lisateave Emby Premiere kohta", + "MessagePluginRequiresSubscription": "See plugin nõuab pärast 14 päevast tasuta prooviperioodi aktiivset Emby Premiere tellimust.", + "MessagePremiumPluginRequiresMembership": "See plugin nõuab 14 päevase tasuta prooviperioodi järel ostmiseks aktiivset Emby Premiere tellimust.", + "HeaderDeveloperInfo": "Teave arendaja kohta", + "HeaderRevisionHistory": "aranduste ajalugu", + "ButtonViewWebsite": "Vaata veebilehte", + "OptionSaveMetadataAsHidden": "Salvesta metaandmed ja pildid peidetud failidena", + "LabelConnectEmail": "(Valikuline) Emby Connect e-posti aadress:", + "LabelConnectEmailHelp": "Võimaldab selle kohaliku kasutajakonto siduda olemasoleva Emby Connect kontoga. See võimaldab lihtsustatud ligipääsu Emby Rakendustest, ilma et peaks teadma serveri IP aadressi.", + "ButtonLearnMoreAboutEmbyConnect": "Lisateave Emby Connecti kohta", + "LabelDateAddedBehavior": "Uue sisu lisamispäeva viis:", + "OptionDateAddedImportTime": "Kasuta meedikogusse skaneerimise kuupäeva", + "OptionDateAddedFileTime": "Kasuta faili loomise kuupäeva", + "LabelDateAddedBehaviorHelp": "Kui metaandmete väärtus on olemas, kasutatakse seda alati enne kumbagi neist suvanditest.", + "HeaderLibrarySettings": "Meediakogu sätted", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby rakendused võivad automaatselt mobiilseadmetest fotosid Emby serverisse üles laadida.", + "LabelCameraUploadPath": "Asukoht telefoni fotodele:", + "LabelCameraUploadPathHelp": "Vali üleslaadimiseks kohandatud asukoht. See alistab kõik jaotises 'Fotod telefonist' seatud vaikeväärtused. Kui see jätta tühjaks, kasutatakse vaikekataloogi. Kohandatud asukoha kasutamisel tuleb see Emby meediakogu sätetes lisada meediakoguna.", + "DefaultCameraUploadPathHelp": "Vali üleslaadimiseks kohandatud asukoht. Kui jätta see tühjaks, kasutatakse vaikekataloogi. Kohandatud asukoha kasutamisel tuleb see lisada meediakoguna Emby meediakogu sätetes.", + "LabelCreateCameraUploadSubfolder": "Loo iga seadme jaoks alamkaust", + "LabelCreateCameraUploadSubfolderHelp": "Seadmele saab määrata kindlad kaustad, klõpsates sellel menüüs 'Seadmed'.", + "LabelCustomDeviceDisplayNameHelp": "Anna kohandatud nimi või jäta tühjaks kasutamaks seadme poolt teavitatud nime.", + "TabParentalControl": "Vanusepiirang", + "HeaderAccessSchedule": "Juurdepääsu ajakava", + "HeaderAccessScheduleHelp": "Koosta juurdepääsu ajakava, et piirata juurdepääsu teatud tundidele.", + "HeaderLibraryAccess": "Ligipääs meediakogule", + "HeaderChannelAccess": "Ligipääs kanalile", + "LabelForgotPasswordUsernameHelp": "Sisesta oma kasutajanimi, kui mäletad seda.", + "TitlePasswordReset": "Parooli lähtestamine", + "HeaderBlockItemsWithNoRating": "Blokeeri sisu, millel puudub või on tunnustamata vanusepiirang", + "LabelBlockContentWithTags": "Blokeeri sisu sildiga", + "LabelTagRestrictionMode": "Sildi piiramise režiim:", + "BlockItemsWithTheseTags": "Blokeeri nende siltidega üksused", + "AllowItemsWithTheseTags": "Luba ainult nende siltidega üksused", + "OptionAllowContentDownloading": "Luba meediafailide allalaadimine", + "LabelNewUserNameHelp": "Kasutajanimed võivad sisaldada tähti (a-z), numbreid (0–9), kriipse (-), alakriipe (_), ülakomasi (') ja punkte (.)", + "HeaderThisUserIsCurrentlyDisabled": "See kasutaja on praegu keelatud. Selle kasutaja lubamiseks loe lehe allosas olevat valikut.", + "OptionAllowSyncTranscoding": "Luba transkodeerimist vajavate meediafailide allalaadimine.", + "AllowMediaConversion": "Luba meediafailide teisendamine", + "AllowMediaConversionHelp": "Luba või keela meediafailide teisendamine.", + "OptionAllowAudioPlaybackTranscoding": "Luba vajadusel heli transkodeerimine taasesituse ajal", + "OptionAllowVideoPlaybackTranscoding": "Luba vajadusel video transkodeerimine taasesituse ajal", + "OptionAllowVideoPlaybackRemuxing": "Luba vajadusel konteineri formaadi muutmine taasesituse ajal", + "OptionAllowMediaPlaybackTranscodingHelp": "Transkodeerimisele juurdepääsu piiramine kvaliteedivaliku ja võib toetamata meediumivormingute või ebapiisava võrgu ribalaiuse tõttu põhjustada taasesituse tõrkeid Emby rakendustes.", + "LabelRemoteClientBitrateLimit": "Interneti voogesituse bitikiiruse piir (Mbps):", + "LabelRemoteClientBitrateLimitHelp": "Valikuline voosisene bitikiiruse piirang kõigile võrguseadmetele. See on kasulik, et takistada seadmetel nõudmast suuremat bitikiirust kui internetiühendus võimaldab. Selle tulemuseks võib olla suurem protsessori koormus serveris, et transkoodida videod lennult väiksema bitikiiruse peale.", + "LabelUserRemoteClientBitrateLimitHelp": "See kaalub üle serveri lisaseadetes määratud vaikeväärtuse.", + "OptionEnableFullSpeedConversion": "Luba täiskiirusel teisendamine", + "OptionEnableFullSpeedConversionHelp": "Vaikimisi tehakse muundamised väikese kiirusega, et vähendada süsteemi koormust.", + "OptionEnableAutomaticServerUpdates": "Luba automaatsed serveriuuendused", + "HeaderTVSources": "Teleallikad", + "HeaderAddTvSource": "TV allika lisamine", + "LabelTunerIpAddress": "Tuuneri IP-aadress:", + "HeaderGuideProviders": "Telekava andmete pakkujad", + "HeaderAddGuideSource": "Telekava andmete allika lisamine", + "LabelZipCode": "Postiindeks:", + "LabelLineup": "Rivistus:", + "LabelImportOnlyFavoriteChannels": "Ainult lemmikuteks märgitud kanalitele", + "ImportFavoriteChannelsHelp": "Kui lubatud, imporditakse ainult tuuneriseadmes lemmikuks märgitud kanalid.", + "HeaderDefaultRecordingSettings": "Salvestamise vaikeseaded", + "LabelDisplayName": "Kuvatav nimi:", + "OptionDownloadImagesInAdvance": "Lae pildid ette", + "OptionDownloadImagesInAdvanceHelp": "Vaikimisi laaditakse enamik pilte alla ainult siis, kui mõni Emby rakendus seda taotleb. Luba see suvand, et kõiki pilte eelnevalt alla laadida siis, kui uus meedium imporditakse. See võib meediakogu skaneerimist tunduvalt pikendada.", + "MessageThankYouForSupporting": "Täname Emby toetamise eest.", + "FileReadCancelled": "Faili lugemine tühistati.", + "FileNotFound": "Faili ei leitud.", + "FileReadError": "Faili lugemisel toimus viga.", + "NoPluginConfigurationMessage": "Seda pluginat ei saa seadistada.", + "HeaderNewApiKey": "Uus Api võti", + "HeaderNewApiKeyHelp": "Anna rakendusele luba suhelda Emby serveriga.", + "MessageKeyEmailedTo": "Võti meiliti {0}.", + "HeaderConfirmation": "Kinnitus", + "MessageKeyUpdated": "Aitäh. Sinu Emby Premiere võti uuendati.", + "MessageKeyRemoved": "Aitäh. Sinu Emby Premiere võti on eemaldatud.", + "TextEnjoyBonusFeatures": "Nautige lisavõimalusi", + "MessageErrorLoadingSupporterInfo": "Emby Premiere teabe laadimisel ilmnes viga. Palun proovi hiljem uuesti.", + "ValueTimeLimitSingleHour": "Ajapiirang: 1 tund", + "ValueTimeLimitMultiHour": "Ajapiirang: {0} tundi", + "General": "Üldine", + "HeaderScreenSavers": "Ekraanisäästjad", + "Reporting": "Aruandlus", + "LabelStopping": "Peatamine", + "HeaderSelectCertificatePath": "Vali sertifikaadi asukoht", + "HeaderSupporterBenefit": "Aktiivne Emby Premiere tellimus pakub täiendavaid eeliseid, näiteks juurdepääs Emby DVR-ile, võrguühenduseta meediafailidela, preemium pluginatele ja muule. {0}Lisateave{1}.", + "LabelAbortedByServerShutdown": "(Katkestatud serveri seiskamise tõttu)", + "LabelScheduledTaskLastRan": "Viimati jooksis {0}, kestusega {1}.", + "HeaderDeleteTaskTrigger": "Kustuta ülesande käivitaja", + "MessageDeleteTaskTrigger": "Kas kustutada ülesande käivitaja?", + "MessageNoPluginsDueToAppStore": "Pluginate haldamiseks kasuta Emby veebirakendust.", + "LabelVersionInstalled": "{0} paigaldatud", + "HeaderSelectServerCachePath": "Vali serveri vahemälu asukoht", + "HeaderSelectTranscodingPath": "Vali transkodeerimise ajutine asukoht", + "HeaderSelectMetadataPath": "Vali metaandmete asukoht", + "HeaderSelectServerCachePathHelp": "Sirvi või sisesta rada serveri vahemälu failide jaoks. Kaust ei tohi olle kirjutuskaitstud.", + "HeaderSelectTranscodingPathHelp": "Sirvi või sisesta rada transkoodimise ajutiste failide jaoks. Kaust ei tohi olle kirjutuskaitstud.", + "HeaderSelectMetadataPathHelp": "Sirvi või sisesta rada metaandmete jaoks. Kaust ei tohi olle kirjutuskaitstud.", + "MessageConfirmRestart": "Kas taaskäivitada Emby server?", + "MessageConfirmShutdown": "Kas seisata Emby server?", + "LabelLocalAccessUrl": "Kohtvõrgu (LAN) aadress: {0}", + "LabelRemoteAccessUrl": "Kaugjuurdepääs (WAN): {0}", + "LabelRunningOnPort": "Töötab http pordil {0}", + "LabelRunningOnPorts": "Töötab http pordil {0} ja https pordil {1}", + "LabelCurrentPath": "Praegune asukoht:", + "HeaderSelectMediaPath": "Vali meediumi asukoht", + "HeaderSelectPath": "Vali asukoht", + "MessageDirectoryPickerInstruction": "Võrguteed saab sisestada käsitsi juhul, kui nupul 'Võrk' ei õnnestu seadmeid leida. Näiteks, {0} või {1}.", + "MessageDirectoryPickerBSDInstruction": "BSD kasutamisel võib olla vajalik seadistada FreeNAS Jail salvestusruum, et Emby saaks sellele ligipääsu.", + "MessageDirectoryPickerLinuxInstruction": "Arch Linuxis, CentOS, Debianis, Fedora, OpenSuse või Ubuntu jaoks tuleb Emby süsteemikasutajale anda vähemalt lugemisõigus meediakustadele.", + "MetadataManager": "Metaandmete haldur", + "OptionBlockLiveTvChannels": "OTSE TV kanalid", + "OptionBlockChannelContent": "Veebikanali sisu", + "ButtonRevoke": "Tühista", + "MessageConfirmRevokeApiKey": "Kas tühistada see API võti? Rakenduse ühendus Emby serveriga katkeb järsult.", + "HeaderConfirmRevokeApiKey": "Tühista Api võti", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Enne jätkamist nõustu teenusetingimustega.", + "HeaderChangeFolderType": "Muuda sisutüüpi", + "HeaderChangeFolderTypeHelp": "Tüübi muutmiseks eemalda ja loo uue tüübiga meediakogu uuesti.", + "HeaderAlert": "Märguanne", + "MessagePleaseRestart": "Taaskäivita uuendamise lõpetamiseks.", + "OptionHomeVideos": "Koduvideod ja fotod", + "OptionBooks": "Raamatud", + "HeaderMetadataReaders": "Metaandmete lugejad", + "LabelMetadataReadersHelp": "Paiguta eelistatud kohalikud metaandmeallikad tähtsuse järjekorda. Loetakse esimest leitud faili.", + "HeaderSubtitleDownloaders": "Subtiitrite allalaadijad", + "SubtitleDownloadersHelp": "Luba ja järjesta oma eelistatud subtiitrite allalaadijad tähtsuse järjekorras. Rohkem subtiitrite pakkujaid saab paigaldada Emby pluginate kataloogist.", + "LabelMetadataDownloaders": "Metaandmete allalaadijad:", + "LabelMetadataDownloadersHelp": "Luba ja järjesta eelistatud metaandmete allalaadijad tähtsuse järjekorras. Madalama prioriteediga allalaadijaid kasutatakse ainult puuduva teabe täitmiseks.", + "HeaderMetadataSavers": "Metaandmete salvestajad", + "LabelMetadataSaversHelp": "Vali failivormingud, kuhu oma metaandmed salvestada.", + "LabelImageFetchers": "Piltide allalaadijad:", + "LabelImageFetchersHelp": "Luba ja järjesta eelistatud piltide allalaadijad tähtsuse järjekorras.", + "PersonTypePerson": "Isik", + "HeaderRemoveMediaLocation": "Eemalda asukoht", + "MessageConfirmRemoveMediaLocation": "Kas eemaldada see asukoht?", + "LabelNewName": "Uus nimi:", + "HeaderRemoveLibrary": "Eemalda teek", + "MessageAreYouSureYouWishToRemoveLibrary": "Kas kindlasti eemaldada teek \"{0}\" sellest Emby serverist? Meediafaile endid see ei puuduta.", + "ButtonRename": "Nimeta ümber", + "HeaderPluginInstallation": "Plugina paigaldamine", + "MessageTrialExpired": "Selle funktsionaalsuse prooviperiood on lõppenud", + "MessageTrialWillExpireIn": "Selle funktsionaalsuse prooviperiood aegub {0} päeva pärast", + "ValuePriceUSD": "Hind: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Oled selle funktsiooni jaoks registreerunud ja saad seda aktiivse Emby Premiere tellimusega jätkata.", + "HeaderSelectExternalPlayer": "Vali väline pleier", + "HeaderExternalPlayerPlayback": "Välise pleieri taasesitus", + "HeaderThankYou": "Aitäh", + "HeaderSelectUploadPath": "Vali üleslaadimise asukoht", + "ErrorMessageStartHourGreaterThanEnd": "Lõpuaeg peab olema suurem kui algusaeg.", + "MessagePluginConfigurationRequiresLocalAccess": "Selle plugina seadistamiseks logi sisse otse oma kohalikku serverisse.", + "MovieLibraryHelp": "Vaata üle {0}Filmi nimetamise juhend{1}.", + "TvLibraryHelp": "Vaata üle {0}Telesaate nimetamise juhend{1}.", + "BookLibraryHelp": "Raamatud on lubatud. Vaata üle {0}Raamatu nimetamise juhend{1}.", + "MessageGamePluginRequired": "Vajab GameBrowser plugina paigaldamist", + "HeaderUnlockApp": "Ava rakenduse lukk", + "MessagePaymentServicesUnavailable": "Makseteenused pole praegu saadaval. Palun proovi hiljem uuesti.", + "NoNewDevicesFound": "Uusi seadmeid ei leitud. Uue tuuneri lisamiseks sulge see aken ja sisesta seadme teave käsitsi.", + "MessageConfirmDeleteTunerDevice": "Kas kustutada see seade?", + "MessageConfirmDeleteGuideProvider": "Kas kustutada see telekava pakkuja?", + "HeaderDeleteProvider": "Kustuta pakkuja", + "ErrorAddingTunerDevice": "Tuuneriseadme lisamisel ilmnes tõrge. Veendu, et see oleks juurdepääsetav ja proovi uuesti.", + "ErrorSavingTvProvider": "TV pakkuja salvestamisel ilmnes viga. Veendu, et see oleks juurdepääsetav ja proovi uuesti.", + "ErrorGettingTvLineups": "Kanalinimekirjade allalaadimisel ilmnes viga. Veendu, et andmed oleksid õiged ja proovi uuesti.", + "MessageCreateAccountAt": "Loo konto - {0}", + "ErrorPleaseSelectLineup": "Vali kanalinimekiri ja proovi uuesti. Kui nimekirju pole saadaval, siis kontrolli, kas kasutajanimi, parool ja sihtnumber on õiged.", + "ErrorValidatingSupporterInfo": "Emby Premiere teabe kontrollimisel ilmnes viga. Palun proovi hiljem uuesti.", + "LabelLocalSyncStatusValue": "Olek: {0}", + "HeaderTopPlugins": "Popid pluginad", + "ForAdditionalLiveTvOptions": "Täiendavate Otse-TV pakkujate paigaldamiseks sirvi Emby {0}pluginate kataloogi{1}.", + "AddUser": "Lisa kasutaja", + "HeaderEmailAddress": "E-posti aadress", + "NumLocationsValue": "{0} kausta", + "PleaseAddAtLeastOneFolder": "Lisa sellesse meediakogusse vähemalt üks kaust, klõpsates nuppu 'Lisa'.", + "ErrorAddingMediaPathToVirtualFolder": "Asukoha lisamisel ilmnes viga. Veendu, et tee oleks õige ja Emby serveril on sellele asukohale juurdepääs.", + "ErrorAddingEmbyConnectAccount3": "Emby konto on juba olemasoleva kohaliku kasutajaga lingitud. Emby kontot saab korraga siduda ainult ühe kohaliku kasutajaga.", + "HeaderConfirmPluginInstallation": "Kinnita plugina paigaldus", + "PleaseConfirmPluginInstallation": "Klõpsa nuppu OK kinnitamaks, et oled ülaltoodud teavet lugenud ja soovid plugina paigaldusega jätkata.", + "MessagePluginInstallDisclaimer": "Emby kogukonna liikmete loodud lisad (pluginad) on suurepärane viis oma Emby kogemuse täiendamiseks lisafunktsioonide ja eeliste abil. Enne paigaldamist võta arvesse mõju, mida see võib avaldada teie Emby serverile, näiteks ajamahukamat meediakogu skaneerimist, täiendav töö taustal ja vähenenud süsteemi stabiilsus.", + "HardwareAccelerationWarning": "Riistvaralise kiirenduse lubamine võib põhjustada mõnes keskkonnas ebastabiilsust. Veendu, et opsüsteem ja videoajurid oleksid täielikult ajakohased. Kui pärast selle lubamist video esitamisel esineb raskusi, tuleb see säte muuta tagasi automaatseks.", + "ValueExample": "Näide: {0}", + "LabelFileOrUrl": "Fail või URL:", + "OptionEnableForAllTuners": "Luba kõigile tuuneritele", + "HeaderTuners": "Tuunerid", + "DrmChannelsNotImported": "DRM kaitsega kanaleid ei impordita.", + "LabelAllowHWTranscoding": "Luba riistvaraline transkodeerimine", + "AllowHWTranscodingHelp": "Kui lubatud, luba tuuneril transkodeerida voogusi lennult. See võib aidata vähendada Emby serveri poolt nõutavat transkodeerimist.", + "MetadataSettingChangeHelp": "Metaandmete sätete muutmine mõjutab uut lisatavat sisu. Olemasoleva sisu värskendamiseks ava üksikasjade aken ja klõpsa värskendusnupul või tee metaandmete halduri abil hulgivärskendusi.", + "RecordingPathChangeMessage": "Salvestuskausta muutmine ei liiguta olemasolevaid salvestusi vanast asukohast uude. Soovi korral tuleb neid käsitsi teisaldada.", + "LabelLocalIpAddress": "Kohalik IP aadress:", + "LabelBindToLocalNetworkAddressHelp": "Valikuline. Alista kohalik IP aadress, mille Emby server esitleb Emby rakendustele. Kui jätta tühjaks, tuvastab server automaatselt kohaliku IP-aadressi.", + "SettingsWarning": "Nende väärtuste muutmine võib põhjustada ebastabiilsust või ühenduse tõrkeid. Kui tekib probleeme, soovitame need tagasi vaikeseadeks muuta.", + "OptionSaveMetadataAsHiddenHelp": "Selle muutmine rakendub uute salvestatud metaandmete jaoks. Olemasolevaid metaandmete faile värskendatakse järgmisel korral, kui Emby server need salvestab.", + "EnablePhotos": "Luba fotod", + "EnablePhotosHelp": "Fotod tuvastatakse ja kuvatakse koos muude meediafailidega.", + "ImportPlaylists": "Esitlusloendi failide import", + "ImportPlaylistsHelp": "Meediafailide kataloogis olevate esitusnimekirjad võib importida Emby serverisse.", + "SaveThumbnailImagesIntoMediaFolders": "Salvesta video eelvaate pisipildid meediafailide kausta", + "LabelGenerateVideoPreviewThumbnails": "Loo video pisipildid:", + "LabelEnableDebugLogging": "Luba silumislogid", + "OptionEnableExternalContentInSuggestions": "Luba soovitustel väline sisu", + "OptionEnableExternalContentInSuggestionsHelp": "Kuva interneti-treilerid ja otsesaated soovitatud sisus.", + "LabelOptionalNetworkPath": "(Valikuline) jagatud võrgukaust:", + "LabelOptionalNetworkPathHelp": "Kui seda kausta võrgus jagatakse, võimaldab võrgu ühiskasutustee lisamine teistes seadmetes asuvatel Emby rakendustel otsese ligipääsu meediumifailidele.", + "SynologyUpdateInstructions": "Uuendamiseks logi sisse Synology DSM-i ja ava 'Package Center'", + "HeaderRecordingPostProcessing": "Salvestuse järeltöötlus", + "LabelPostProcessorArguments": "Järeltöötluse käsurea argumendid:", + "PostProcessorArgumentsHelp": "Andmete edastamisel post-protsessorile on toetatud käsureal järgnevad muutujad:", + "LabelPostProcessor": "Järeltöötluse rakendus:", + "DvrPostProcessorPathArgument": "{path}: Täielik teekond uue salvestusfaili jaoks", + "OptionAutomaticallyGroupSeries": "Ühenda automaatselt erinevatesse kaustadesse jaotatud sarjad", + "OptionAutomaticallyGroupSeriesHelp": "Kui lubatud, liidetakse meediakogus mitmes kaustas hajutatud episoodid automaatselt üheks seriaaliks.", + "WhenDidYouPurchaseApp": "Millal sa selle rakenduse algselt ostsid?", + "PreferEmbeddedTitlesOverFileNames": "Eelista manustatud pealkirju failinimedele", + "PreferEmbeddedTitlesOverFileNamesHelp": "See määrab vaikimisi kuvatava pealkirja, kui interneti metaandmed või kohalikud metaandmed pole saadaval.", + "FriendlyNameForReferenceHelp": "Iseenese jaoks ekraanil kuvatav sõbralik nimi.", + "HeaderLiveTvTunerSetup": "OTSE TV tuuneri seaded", + "HeaderTVSourceSetup": "TV allika seadistamine", + "HeaderDetectMyDevices": "Tuvasta seadmed", + "MessagePleaseWait": "Palun oota. See võib võtta umbes minut.", + "DetectingDevices": "Seadmete tuvastamine", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Pärast esmast importimist värskenda metaandmeid automaatselt Internetist:", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Iga {0} päeva järel", + "LabelCertificatePassword": "Sertifikaadi parool:", + "LabelCertificatePasswordHelp": "Kui teie sertifikaat nõuab parooli, sisesta see siia.", + "HeaderNewLibrary": "Uus meediakogu", + "HttpsRequiresCert": "Turvaliste ühenduste lubamiseks tuleb esitada usaldusväärne SSL-sertifikaat, näiteks Lets Encrypt. Esita sertifikaat või keela turvalised ühendused.", + "ServerRestartNeededAfterPluginInstall": "Emby server tuleb pärast plugina paigaldamist taaskäivitada.", + "PluginInstalledMessage": "Plugin on edukalt paigaldatud. Emby server tuleb muudatuste jõustumiseks taaskäivitada.", + "MessagePremiereStatusGood": "Sul on {0} Emby Premiere tellimus ja seadmete kasutus on praegu lubatud piirides.", + "MessagePremiereStatusClose": "Sul on {0} Emby Premiere tellimus ja seadmete kasutus on ülempiiri lähedal.", + "MessagePremiereExtendedPlans": "Kaalu {0} laiendatud tellimust {1}", + "MessagePremiereStatusOver": "Sul on {0} Emby Premiere tellimus,aga seadmete kasutus ületab lubatud arvu.", + "ListItemPremiereSub": "{0} tellimus, mis on ostetud {2} kaudu, aegub {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "Saad seda tellimust hallata otse, kasutades {0}", + "LabelAlreadyCanceled": "See tellimus on tühistatud. Võti jääb kehtima kuni aegumiseni.", + "HeaderCancelSub": "Tühista Emby Premiere tellimus", + "MessageConfirmSubCancel": "EI, palun ära mine ... Jääd ilma Emby Premiere kõigist suurepärastest võimalustest!", + "ButtonCancelSub": "Ma tean, tühista ikkagi", + "ButtonDontCancelSub": "Säilita Emby Premiere tellimus", + "MessageSubCancelReqSent": "Võtme omanikule saadeti e-kiri. Tellimuse tühistamiseks järgi palun selles olevaid juhiseid. Loodetavasti näeme sind varsti taas!", + "MessageSubCancelError": "Tellimuse tühistamisel läks midagi valesti. Palun saada e-kiri aadressil {0} ja võtame probleemi lahendamiseks sinuga ühendust.", + "LabelAlreadyCancelled": "See tellimus on lõpetatud. Sinult ei võeta enam tasu, kuid funktsionaalsused töötavad kuni ülalnimetatud kuupäevani.", + "AllowOnTheFlySubtitleExtraction": "Luba subtiitrite eraldamine lennult", + "AllowOnTheFlySubtitleExtractionHelp": "Põimitud subtiitreid saab videotest ekstraheerida ja edastada Emby rakendustele lihttekstina, et vältida video transkodeerimist. Mõnes süsteemis võib see võtta kaua aega ja põhjustada video taasesituse katkestamise ekstraheerimise ajal. Keela see, kui soovid, et põimitud subtiitrid kirjutatakse transkodeerimisel sisse juhul kui klientseade ei toeta neid algupäraselt.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Silumislogid tuleks lubada ainult tõrkeotsingu eesmärgil. Suurenenud juurdepääs failisüsteemile võib takistada mõnes keskkonnas servermasinal uinakut.", + "LabelSimultaneousConnectionLimit": "Samaaegsete voogude piirang:", + "SimultaneousConnectionLimitHelp": "Maksimaalne lubatud samaaegsete voogude arv. Piiranguteta 0.", + "LaunchWebAppOnStartup": "Käivita Emby rakendus veebilehitsejas Emby serveri käivitumisel", + "LaunchWebAppOnStartupHelp": "Kui Emby server algselt käivitub, avatakse vaikeveebilehitejas veebirakendus. Seda ei juhtu serveri taaskäivitamisel.", + "LabelReferrerHeader": "Viitaja http päis:", + "LabelUserAgentHeader": "Kasutajaagendi http päis:", + "SupplyCustomValueIfNeeded": "Vajadusel lisa kohandatud http päise väärtus.", + "HeaderConfigureRemoteAccess": "Seadista kaugjuurdepääs", + "LearnHowToCreateSynologyShares": "Siit saad teada, kuidas Synology'is kaustu jagada.", + "LabelAllowedRemoteAddresses": "Kaug-IP aadressi filter:", + "LabelAllowedRemoteAddressesMode": "Kaug-IP aadressi filtri režiim:", + "Whitelist": "Valge loend", + "Blacklist": "Must loend", + "AllowedRemoteAddressesHelp": "Komadega eraldatud loend nende võrkude IP-aadressidest või IP/võrgumaski kirjetest, millel on lubatud kaugühendus. Tühjaks jätmise korral on lubatud kõik kaugaadressid.", + "LabelLanNetworks": "LAN võrgud:", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Turvalise ühenduse režiim:", + "PreferredNotRequired": "Eelistatud, kuid mitte nõutav", + "RequiredForAllRemoteConnections": "Nõutav kõigi kaugühenduste jaoks", + "HandledByProxy": "Käsitatakse pöördproksi abil", + "SaveSubtitlesIntoMediaFolders": "Salvesta allalaetud subtiitrid meediafailide kausta", + "SaveSubtitlesIntoMediaFoldersHelp": "Subtiitrite salvestamisel meediakausta saab neid lihtsamalt hallata.", + "AutomaticSubtitleDownloadInstructions": "Automaatse subtiitrite allalaadimise haldamiseks klõpsa Emby meediakogu seadistamisel meediakogul ja muuda selle kogu subtiitrite allalaadimise seadeid.", + "ProviderNeedsSetupWithUrl": "{0} vajab lisaseadistamist {1} seadistuste ekraanil{2} Emby serveril.", + "LabelEnableHardwareAcceleration": "Luba riistvaraline kiirendus, kui see on saadaval:", + "HeaderPreferredHardwareDecoders": "Eelistatud riistvara dekooderid", + "HeaderPreferredHardwareEncoders": "Eelistatud riistvara enkooderid", + "AllowChangingImageAndPassword": "Luba sellel kasutajal muuta oma parooli ja profiilipilti", + "LabelSimultaneousStreamLimit": "Maks. lubatud üheaegsed videovood:", + "SimultaneousStreamLimitHelp": "Piira samaaegsete videoesituste arvu.", + "LabelMusicFolderStructure": "Muusika kausta struktuur", + "LabelMusicFolderStructureHelp": "See annab vihje meediakogu skannerile kaustade korraldamise viisi kohta. Kui pole kindel või kui kaustad ei ühti täpselt ühegi valikuga, siis vali vaikevalik Muu.", + "OtherOrUnstructured": "Muu või korraldamata", + "PerfectArtistAlbumTrack": "Täiuslikult korraldatud esitaja/albumi kaustadesse, lood albumi kaustades.", + "PerfectAlbumTrack": "Täiuslikult korraldatud albumi kaustadesse, lood albumi kaustades.", + "LabelMinCollectionSize": "Automaatse kogumiku vähim suurus:", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Loo kogumikud automaatselt, kui kogus on vähemalt valitud arv üksusi. Selle väärtuse muutmine ei mõjuta olemasolevaid kogumikke.", + "LabelImportCollections": "Impordi kogumiku andmed metaandmete allalaadijatelt", + "LabelImportCollectionsHelp": "Kui lubatud, impordib see lubatud metaandmete allalaadijatelt kogumike teavet. See võib põhjustada soovimatute kogumike automaatse loomise. Keelamine hoiab ära kogumike automaatse loomise, kuid olemasolevaid ei kustuta.", + "LabelAllowAdultMetadata": "Luba täiskasvanute filmide metaandmed", + "LabelAllowAdultMetadataHelp": "Luba interneti metaandmete otsimisel täiskasvanute filmide vasted.", + "HeaderVideoPreviewThumbnails": "Video eelvaate pisipildid", + "LabelEnableHDRToneMapping": "Kasuta HDR värvikaardistust:", + "EnableHDRToneMappingHelp": "Värvikaardistus tagab värvide õige teisendamise HDR sisu transkodeerimisel, mis muidu paistaks väga tuhm ja küllastumata. Riistvarakiirenduse toetamiseks, kui see funktsioon on lubatud, võib vaja minna täiendavaid draivereid. Lisateavet leiab meie riistvarakiirenduse seadistusjuhendist.", + "WithHardwareAcceleratedTranscoding": "Jah, ainult riistvaralise kiirendusega", + "TranscodingStillInitializing": "Emby serveri transkoodimise teenused alles käivituvad. Ekraan värskendub, kui need on valmis.", + "WithEitherHardwareOrSoftwareTranscoding": "Jah, riistvaralise kiirendusega või tarkvaralise transkoodimisega", + "ToneMappingInHardwareDescription": "Värvikaardistus viiakse läbi riistvaralise kiirendusega, kui see on lubatud ja seadmed seda toetavad. Muudel juhtudel seda ei tehta", + "ToneMappingInSoftwareDescription": "Värvikaardistus teostatakse tarkvaraliselt protsessori poolt. See on palju aeglasem kui riistvaraliselt kiirendatud värvikaardistus ja vajab väga võimsat masinat.", + "ToneMappingInBothDescription": "Värvikaardistus viiakse läbi riistvaralise kiirendusega, kui see on lubatud ja seadmed seda toetavad. Muudel juhtudel toimub tarkvaraline värvikaardistus, mis on palju aeglasem kui riistvaraliselt kiirendatud värvikaardistus ja vajab väga võimsat masinat.", + "AutoMapped": "Automaatselt seotud", + "ManuallyMapped": "Käsitsi seotud", + "NotMappedToGuideData": "Pole telekavaga seotud", + "MappedToValue": "Seotud kanaliga {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automaatselt ärata serverarvuti salvestuste teostamiseks.", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Andmebaas", + "LabelOptimizeDatabaseOnShutdown": "Püüa serveri seiskamise käigus andmebaasi optimeerida.", + "LabelOptimizeDatabaseOnShutdownHelp": "Andmebaasi optimeerimine on üldjuhul kiire operatsioon, kuid aegajalt siiski server leiab, et päringute planeerimiseks oleks vajalik käivitada tõsisem andmete analüüs,. See tekitab Emby serveri seiskamisel lisaviivituse.", + "LabelDatabaseCacheSize": "Andmebaasi puhvermälu maht (MB)", + "LabelDatabaseCacheSizeHelp": "Seab andmete mahu, mida andmebaasi korral korraga mälus hoitakse. Suurem väärtus parandab Emby jõudlust. Muudatuse jõustumiseks on vajalik Emby serveri taaskäivitus.", + "LabelDatabaseAnalysisLimit": "Analüüsi tulpade piirang", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Tihenda andmebaas järgmisel Emby käivitusel", + "LabelVacuumDbHelp": "Tihendamine (vacuuming) ehitab uue andmebaasifaili, pakkides selle ringi, selleks et andmebaasifail oleks kettal väiksem. Mõnikord tõstab see Emby serveri jõudlust. Emby server ei ole selle operatsiooni teostamise ajal kasutatav, samuti pole mingit nähtavat edenemise tagasisidet. Oluline on vältida protsessi ajal Emby serveri jõuga peatamist, sest see võib andmebaasi rikkuda. See valik siin on ühekordne operatsioon ning järgmise käivituse ajal muudetakse valikukast automaatselt mitteaktiivseks.", + "AdvancedOptionsWarning": "Need on laiendatud valikud ja üldiselt ei peaks nende vaikimisi seatud väärtusi ilma olulise vajaduseta näppima.", + "HeaderRecentlyActiveDevices": "Hiljuti aktiivsed seadmed", + "YesUntilServerRestart": "Jah, kuni järgmise serveri taaskäivitamiseni", + "YesUntilLogRotate": "Jah, kuni järgmise logifaili pööritamiseni", + "LabelSubtitleDownloadMaxAge": "Väldi automaatsete subtiitrite allalaadimist vanematele videotele kui:", + "SubtitleDownloadMaxAgeHelp": "Seda määratakse lisamise metaandmete väärtuse järgi.", + "NoAgeLimit": "Ilma vanuse piiranguta", + "AnonymizeLogContents": "Anonümiseeri logide sisu", + "Markers": "Markerid", + "LabelGenerateIntroVideoMarkers": "Genereeri sissejuhatavate (intro) videote markerid:", + "GenerateIntroVideoMarkersHelp": "Tuvastab seriaalide sissejuhatused ja kuvab 'Intro ülehüpe\" nupu Emby rakendustes. Sissejuhatuste tuvastamine võib võtta päris pikalt aega ja tekitada kõrge ressursside (CPU ja ketta) kasutuse.", + "LabelCopyFromUser": "Kopeeri seadistused kasutajalt:", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "Kasutajareeglistik (teekide ja lisavõimaluste lubamine, vanemlik kontroll jne.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "Legacy": "Legacy", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode" +} diff --git a/strings/fa.json b/strings/fa.json new file mode 100644 index 0000000..a65b39e --- /dev/null +++ b/strings/fa.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "به پایان رسید!", + "ThisWizardWillGuideYou": "این ویزارد برای انجام تنظیمات به شما کمک می کند. برای شروع، لطفا زبان مورد نظر خود را انتخاب فرمایید", + "HeaderCreateYourFirstUser": "اولین کاربر خود را ایجاد کنید", + "ButtonQuickStartGuide": "راهنمای شروع سریع", + "MoreUsersCanBeAddedLater": "بعدا میتوانید کاربران بیشتری را در تنظیمات سرور اضافه کنید", + "UserProfilesIntro": "Emby دارای پشتیبانی داخلی از پروفایل کاربران می باشد. با فعال سازی هر کاربر، او می تواند تنظیمات ، وضعیت پخش و کنترل والدین خاص خودش را داشته باشد.", + "WizardCompleted": "همه چیزی که فعلا می خواهیم همین است.جمع آوری اطلاعات کتابخانه های شما هم اکنون توسط Emby آغاز شده است. اپلیکیشن های ما را امتحان کنید و سپس بر روی پایان کلیک کنید تا پیشخوان سرور را مشاهده نمایید.", + "MessagePleaseAcceptTermsOfService": "لطفا قبل از ادامه شرایط استفاده از خدمات و سیاست حفظ حریم خصوصی را بپذیرید.", + "OptionIAcceptTermsOfService": "من شرایط خدمات را میپذیرم", + "SeeOurHwaGuide": "See our {0}hardware acceleration setup guide{1}.", + "HeaderEmbyServerReleaseNotes": "یادداشت های سرور امبی", + "AllowSubtitleDownloading": "اجازه دانلود زیرنویس", + "AllowSubtitleManagement": "اجازه حذف فایل های زیرنویس موجود", + "NewUserNameHelp": "This is how the user will appear on your server.", + "ChapterMarkers": "نشانگرهای فصل", + "LabelThumbnailImagesInterval": "فاصله تصاویر کوچک:", + "ThumbnailImagesIntervalHelp": "تصاویر کوچک موجب تجربه بهتری می شوند، اما فضای دیسک و زمان بیشتری برای ایجاد تصاویر لازم است.", + "LabelAuthProvider": "ارایه دهنده احراز هویت:", + "AuthProviderHelp": "مدیران همیشه از ارایه دهنده ی رسمی Emby استفاده میکنند تا اطمینان یابند شما هرگز از سیستم خارج نشوید", + "HeaderNewUser": "کاربر جدید", + "ChangeServerDisplayName": "Change Server Display Name", + "ShowAdvancedSettings": "نمایش تنظیمات پیشرفته", + "ChangingMetadataImageSettingsNewContent": "تغییرات در تنظیمات دانلود فراداده یا آثار هنری تنها به محتوای جدید اضافه شده به کتابخانه شما اعمال خواهد شد. برای اعمال تغییرات به عناوین موجود، باید ابرداده خود را به صورت دستی به روز کنید.", + "AllowRemoteAccess": "اجازه دادن اتصال از راه دور به سرور Emby", + "AllowRemoteAccessHelp": "اگرانتخاب نشود، تمامی اتصال های از راه دور بلوکه می شوند.", + "Alerts": "اخطار", + "LabelTrackTitleDisplay": "نمایش عنوان جاسازی شده:", + "GenerateUserFriendlyTrackTitles": "عناوین کاربر پسند را با استفاده از اطلاعات مسیر ایجاد کنید", + "PreferOriginalTrackTitles": "ترجیحات عناوین تعبیه شده", + "TrackTitleDisplayHelp": "عنوان صفحه نمایش آهنگ های تعبیه شده صوتی و زیرنویس را انتخاب کنید. پیشنهادی تعبیه شده توصیه نمیشود مگر اینکه شما اطلاعات دستی آهنگ تعبیه شده را دستی کنید.", + "EnableTranscodingThrottle": "فعال کردن نمایه چرخان", + "EnableTranscodingThrottleHelp": "Emby به صورت پویا سرعت ترانزیستور را تنظیم می کند تا به کاهش مصرف CPU کمک کند.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} هماهنگ کننده تصویر", + "HeaderImageOptions": "گزینه های تصویر", + "OptionBeta": "آزمایشی", + "RegisterWithPayPal": "ثبت نام با پی پال", + "LabelSyncTempPath": "مسیر فایل های موقت:", + "LabelSyncTempPathHelp": "مشخص کردن یک پوشه سفارشی برای کارها. رسانه های تبدیل شده در حین انجام پروسه تبدیل در اینجا ذخیره خواهند شد.", + "LabelCustomCertificatePath": "مسیر اختصصای گواهینامه SSL:", + "LabelCustomCertificatePathHelp": "پچ به فایل PKCS #12 حاوی یک گواهینامه و کلید خصوصی است تا پشتیبانی از TLS را در یک دامنه شخصی فعال کند.", + "HeaderSetupLibrary": "کتابخانه های رسانه را تنظیم کنید", + "LabelTimeLimitHours": "محدودیت زمان (ساعت):", + "HeaderPreferredMetadataLanguage": "زبان مدنظر اطلاعات محتوی", + "LabelSaveLocalMetadata": "پوستر در پوشه مدیا ذخیره گردد", + "LabelSaveLocalMetadataHelp": "ذخیره آثار هنری در پوشه های رسانه ای ، آنها را در مکانی قرار می دهد که می توان به راحتی ذخیره و ویرایش کرد.", + "TabAccess": "دسترسی", + "HeaderDeviceAccess": "دسترسی دستگاه", + "OptionEnableAccessFromAllDevices": "فعالسازی دسترسی از همه ی دستگاه ها", + "OptionEnableAccessToAllChannels": "فعالسازی دسترسی به همه ی کانال ها", + "OptionEnableAccessToAllLibraries": "فعالسازی دسترسی به همه ی کتابخانه ها", + "DeviceAccessHelp": "فیلتر دسترسی به دستگاه کاربر تا زمانی که در اینجا تأیید نشود ، از استفاده آنها از دستگاههای جدید جلوگیری خواهد کرد.", + "LabelDisplayMissingEpisodesWithinSeasons": "نمایش قسمت های ناموجود در بین فصل ها", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "ImportMissingEpisodesHelp": "در صورت فعال بودن ، اطلاعات مربوط به قسمت های مفقود شده به پایگاه داده امبی شما وارد می شوند و در فصول و سریال ها نمایش داده می شوند. این ممکن است اسکن های کتابخانه را به میزان قابل توجهی طولانی تر کند.", + "MessageEnablingOptionLongerScans": "فعال کردن این گزینه ممکن است منجر به اسکن های کتابخانه بطور قابل توجهی طولانی شود.", + "LabelMaxParentalRating": "حداکثر درجه سنی مجاز والدین", + "MaxParentalRatingHelp": "محتواهای با درجه سنی بالاتر ، از دید این کاربر پنهان میشود.", + "LibraryAccessHelp": "انتخاب پوشه های رسانه برای اشتراک گذاری با این کاربر. مدیر سیستم میتواند با استفاده از مدیریت متاداده همه ی پوشه ها را ویرایش کند.", + "ChannelAccessHelp": "کانال ها را برای اشتراک گذاری با این کاربر انتخاب کنید. سرپرستان می توانند کلیه کانالها را با استفاده از مدیر ابرداده ویرایش کنند.", + "ImageUploadAspectRatioHelp": "قاب 1:1 پیشنهاد میشود. فقط JPG/PNG", + "AlreadyPaidHelp1": "اگر قبلاً هزینه نصب نسخه قدیمی Media Browser را برای اندروید پرداخت کرده اید ، برای فعال کردن این برنامه نیازی به پرداخت مجدد آن ندارید. تأیید را کلیک کنید تا ایمیلی با {0} برای ما ارسال کنید و ما آن را برای شما فعال خواهیم کرد.", + "AlreadyPaidHelp2": "امبی پریمیر؟ فقط این گفتگو را لغو کنید ، امبی پریمیر را در داشبورد سرور امبی تحت راهنما -> امبی پریمیر راه اندازی کنید ، و به طور خودکار باز خواهد شد.", + "TabMyPlugins": "پلاگین های من", + "TabCatalog": "کاتالوگ", + "HeaderAutomaticUpdates": "بروزرسانی های خودکار", + "Standard": "استاندارد", + "TabSupporterKey": "کلید اصلی امبی پریمیر", + "OptionHideUserLocal": "این کاربر را از صفحه های ورود به سیستم در شبکه محلی مخفی کنید", + "OptionHideUserRemote": "هنگام اتصال از راه دور ، این کاربر را از صفحه های ورود مخفی کنید", + "OptionHideUserFromLoginHelp": "برای حسابهای سرپرست خصوصی یا پنهان مفید است. کاربر باید با وارد کردن نام کاربری و رمزعبور خود ، به صورت دستی وارد سیستم شود.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "غیرفعال کردن این کاربر", + "OptionDisableUserHelp": "در صورت غیرفعال بودن ، سرور هیچگونه ارتباطی را از این کاربر مجاز نمی کند. اتصالات موجود به طور ناگهانی خاتمه می یابد.", + "OptionAllowUserToManageServer": "به این کاربر اجازه دهید سرور را مدیریت کند", + "HeaderFeatureAccess": "دسترسی به ویژگی ها", + "OptionAllowMediaPlayback": "پخش رسانه مجاز است", + "AllLibraries": "همه كتابخانه ها", + "HeaderAllowMediaDeletionFrom": "اجازه حذف رسانه از", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "کنترل از راه دور سایر کاربران را مجاز کنید", + "OptionAllowRemoteSharedDevices": "اجازه کنترل از راه دور دستگاه های مشترک", + "OptionAllowRemoteSharedDevicesHelp": "دستگاه های Dlna تا زمانی که کاربر شروع به کنترل آن نکند ، به اشتراک گذاشته می شود.", + "OptionAllowLinkSharing": "به اشتراک گذاری در شبکه های اجتماعی مجاز است", + "OptionAllowLinkSharingHelp": "فقط صفحات وب حاوی اطلاعات رسانه ای به اشتراک گذاشته می شوند. پرونده های رسانه ای هرگز به صورت عمومی به اشتراک گذاشته نمی شوند. اشتراک ها محدودیت زمانی دارند و پس از {0} روز منقضی می شوند.", + "OptionRelease": "انتشار رسمی", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "هنگامی که هیچ کاربری فعال نیست ، سرور فقط در دوره های بیکار دوباره راه اندازی می شود.", + "LabelRunServerAtStartup": "هنگام راه اندازی سرور را اجرا کنید", + "LabelRunServerAtStartupHelp": "با این کار نماد سینی Emby در هنگام راه اندازی ویندوز شروع می شود. اگر سرویس ویندوز راه اندازی کرده اید ، این مورد را علامت نزنید و سرویس را پیکربندی کنید تا هنگام راه اندازی اجرا شود.", + "ButtonSelectDirectory": "فهرست را انتخاب کنید", + "LabelCachePath": "مسیر حافظه پنهان:", + "DefaultMetadataLangaugeDescription": "این موارد پیش فرض شماست و می تواند به صورت کتابخانه ای سفارشی شود.", + "LabelCachePathHelp": "یک مکان سفارشی برای پرونده های حافظه پنهان سرور ، مانند تصاویر ، تعیین کنید. برای استفاده از پیش فرض سرور ، خالی بگذارید.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "مسیر فراداده:", + "LabelMetadataPathHelp": "برای کارهای هنری بارگیری شده و فراداده ، مکان سفارشی تعیین کنید.", + "LabelTranscodingTempPath": "رمزگذاری مسیر موقت:", + "LabelTranscodingTempPathHelp": "این پوشه شامل پرونده های کاری است که توسط رمزگذار استفاده می شود. برای استفاده از پیش فرض در پوشه داده سرور ، یک مسیر سفارشی مشخص کنید یا آن را خالی بگذارید.", + "GenerateVideoPreviewThumbnailsHelp": "ریز عکسهای پیش نمایش ویدیو در حالی که به دنبال برنامه های پشتیبانی شده هستند ، به روزرسانی های زنده را ارائه می دهند. تولید تصویر دیجیتال ممکن است مدت زمان طولانی طول بکشد ، باعث استفاده زیاد پردازنده شود و فضای دیسک اضافی را مصرف کند.", + "AsAScheduledTask": "به عنوان یک کار برنامه ریزی شده", + "AsAScheduledTaskAndMediaAdded": "به عنوان یک کار برنامه ریزی شده و وقتی رسانه اضافه می شود", + "ButtonRefreshGuideData": "تازه کردن اطلاعات راهنما", + "LabelNumberOfGuideDays": "تعداد روز اطلاعات راهنما برای بارگیری:", + "LabelNumberOfGuideDaysHelp": "بارگیری داده های راهنما به روزهای بیشتر ، امکان برنامه ریزی بیشتری برای پیش بینی و مشاهده لیست های بیشتر را فراهم می کند ، اما بارگیری آن نیز طولانی تر خواهد بود. خودکار براساس تعداد کانال انتخاب خواهد کرد. لطفاً توجه داشته باشید که فارغ از اینکه چند روز را انتخاب می کنید ، اطلاعات باید در راهنمای منبع وجود داشته باشند تا بارگیری شوند. برخی از ارائه دهندگان داده راهنما فقط 24 ساعت وقت می دهند. Emby راهنمای داده ها حداکثر تا 14 روز پشتیبانی می کند.", + "HeaderFetchImages": "واکشی تصاویر:", + "LabelMaxBackdropsPerItem": "حداکثر تعداد پس زمینه در هر مورد:", + "LabelMaxScreenshotsPerItem": "حداکثر تعداد عکس صفحه در هر مورد:", + "LabelMinBackdropDownloadWidth": "حداقل عرض بارگیری پس زمینه:", + "LabelMinScreenshotDownloadWidth": "حداقل عرض بارگیری عکس صفحه:", + "ButtonAddScheduledTaskTrigger": "گیره را اضافه کنید", + "ButtonAdd": "اضافه کردن", + "LabelTriggerType": "نوع گیره:", + "OptionOnInterval": "با فاصله", + "OptionAfterSystemEvent": "پس از یک رویداد سیستم", + "LabelDay": "Day", + "LabelTime": "Time", + "LabelEvent": "رویداد:", + "OptionWakeFromSleep": "از خواب بیدار شوید", + "Every": "Every", + "LabelEnableRealtimeMonitor": "نظارت بر زمان واقعی را فعال کنید", + "LabelEnableRealtimeMonitorHelp": "تغییرات در پرونده ها بلافاصله در سیستم فایل های پشتیبانی شده پردازش می شود.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "نام سرور دوستانه:", + "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.", + "LabelPreferredDisplayLanguage": "زبان نمایش ترجیحی:", + "LabelPreferredDisplayLanguageHelp": "ترجمه Emby یک پروژه در حال انجام است.", + "LabelReadHowYouCanContribute": "بیاموزید که چگونه می توانید مشارکت کنید.", + "LabelCustomCss": "CSS سفارشی:", + "LabelCustomCssHelp": "css سفارشی خود را روی رابط وب اعمال کنید.", + "LabelLocalHttpServerPortNumber": "شماره پورت http محلی:", + "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Emby's http server should bind to.", + "LabelPublicHttpPort": "شماره پورت http عمومی:", + "LabelPublicHttpPortHelp": "شماره پورت عمومی که باید به پورت http محلی نگاشت شود.", + "LabelPublicHttpsPort": "شماره پورت https عمومی:", + "LabelPublicHttpsPortHelp": "شماره پورت عمومی که باید به پورت https محلی نگاشت شود.", + "RequireHttps": "برای اتصالات خارجی به https نیاز دارید", + "RequireHttpsHelp": "در صورت فعال بودن ، ارتباطات از طریق http به https هدایت می شوند.", + "LabelHttpsPort": "شماره پورت https محلی:", + "LabelHttpsPortHelp": "شماره پورت tcp که سرور https Emby باید به آن متصل شود.", + "LabelEnableAutomaticPortMap": "نگاشت پورت خودکار را فعال کنید", + "LabelEnableAutomaticPortMapHelp": "سعی کنید به صورت خودکار از طریق UPnP ، پورت عمومی را به پورت محلی ترسیم کنید. این ممکن است با برخی از مدلهای روتر کار نکند.", + "LabelExternalDDNS": "دامنه خارجی:", + "LabelExternalDDNSHelp": "اگر یک DNS یا نام دامنه پویا دارید ، آن را بدون پروتکل یا پورت در اینجا وارد کنید. برنامه های Emby هنگام اتصال از راه دور از آن استفاده می کنند. این قسمت درصورت استفاده با گواهی سفارشی ssl مورد نیاز است. مثال: mydomain.com.", + "LabelMinResumePercentage": "حداقل درصد رزومه:", + "LabelMaxResumePercentage": "حداکثر درصد رزومه:", + "LabelMinResumeDuration": "حداقل مدت زمان رزومه (ثانیه):", + "LabelMinResumePercentageHelp": "فرض می شود که عناوین بدون پخش قبل از این زمان پخش نشده اند", + "LabelMaxResumePercentageHelp": "فرض می شود اگر بعد از این مدت زمان متوقف شود ، عنوان کاملاً پخش می شود", + "LabelMinResumeDurationHelp": "عناوین کوتاهتر قابل از سرگیری نیستند", + "HeaderStatus": "وضعیت", + "Subscriptions": "اشتراک ها", + "LabelEndingEpisodeNumber": "شماره قسمت پایانی:", + "LabelEndingEpisodeNumberHelp": "فقط برای پرونده های چند اپیزودی مورد نیاز است", + "HeaderSupportTheTeam": "از تیم Emby پشتیبانی کنید", + "HeaderSupportTheTeamHelp": "با خرید Emby Premiere به ادامه توسعه این پروژه کمک کنید. بخشی از کل درآمد به سایر ابزارهای رایج ما وابسته می شود.", + "DonationNextStep": "پس از تکمیل ، لطفاً کلید Emby Premiere خود را وارد کرده و از طریق ایمیل دریافت خواهید کرد.", + "HeaderRunningTasks": "وظایف در حال اجرا", + "ButtonUpdateNow": "اکنون به روز کنید", + "PleaseUpdateManually": "لطفاً Emby Server را خاموش کرده و آخرین نسخه را نصب کنید.", + "ServerUpToDate": "سرور Emby به روز است", + "MessagePleaseRestartServerToFinishUpdating": "لطفاً سرور را مجدداً راه اندازی کنید تا اعمال به روزرسانی ها به پایان برسد.", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelDownMixAudioScaleHelp": "هنگام کاهش صدا ، صدا را تقویت کنید. برای حفظ مقدار اصلی اصلی ، روی 1 تنظیم کنید.", + "HeaderForgotKey": "کلید فراموش شده", + "LabelSupporterEmailAddress": "آدرس ایمیلی که برای خرید کلید استفاده شده است.", + "ButtonRetrieveKey": "بازیابی کلید", + "LabelSupporterKey": "کلید Emby Premiere (جایگذاری از طریق ایمیل):", + "LabelSupporterKeyHelp": "برای شروع بهره مندی از مزایای اضافی ، کلید Emby Premiere خود را وارد کنید.", + "MessageInvalidKey": "کلید Emby Premiere مفقود شده یا معتبر نیست.", + "ErrorMessageInvalidKey": "برای اینکه محتوای برتر ثبت شود ، باید اشتراک فعال Emby Premiere نیز داشته باشید.", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Send message", + "HeaderSendMessage": "Send Message", + "ButtonSend": "Send", + "LabelMessageText": "Message text", + "LabelMessageTitle": "Message title", + "ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Api Keys", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "Api Key", + "HeaderResumeSettings": "Resume Settings", + "HeaderFetcherSettings": "تنظیمات ورودی", + "HeaderActivity": "Activity", + "ButtonPurchase": "Purchase", + "HeaderInstall": "Install", + "LabelSelectVersionToInstall": "Select version to install", + "LinkLearnMoreAboutSubscription": "Learn about Emby Premiere", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Developer Info", + "HeaderRevisionHistory": "Revision History", + "ButtonViewWebsite": "View website", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect", + "LabelDateAddedBehavior": "Date added behavior for new content", + "OptionDateAddedImportTime": "Use date scanned into the library", + "OptionDateAddedFileTime": "Use file creation date", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Library Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Camera upload path", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Parental Control", + "HeaderAccessSchedule": "Access Schedule", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Library Access", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "TitlePasswordReset": "Password Reset", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Allow media downloading", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "اجازه تبدیل رسانه ها", + "AllowMediaConversionHelp": "دادن یا ندادن دسترسی به ویژگی تبدیل رسانه ها", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Zip Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Display name", + "OptionDownloadImagesInAdvance": "Download images in advance", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Thank you for supporting Emby.", + "FileReadCancelled": "The file read has been canceled.", + "FileNotFound": "File not found.", + "FileReadError": "An error occurred while reading the file.", + "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "HeaderNewApiKey": "کلید جدید API", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "TextEnjoyBonusFeatures": "Enjoy Bonus Features", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "To manage plugins, please use the Emby web app.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Are you sure you wish to restart Emby Server?", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Running on http port {0}", + "LabelRunningOnPorts": "Running on http port {0}, and https port {1}", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Select Path", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Metadata Manager", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Change Content Type", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Home videos & photos", + "OptionBooks": "Books", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "New name", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Rename", + "HeaderPluginInstallation": "Plugin Installation", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Price: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Thank You", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Unlock App", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Add User", + "HeaderEmailAddress": "E-Mail Address", + "NumLocationsValue": "{0} folders", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Example: {0}", + "LabelFileOrUrl": "File or url", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "ایجاد تصاویر کوچک پیش نمایش ویدیو:", + "LabelEnableDebugLogging": "Enable debug logging", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN networks", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "حالت اتصال ایمن:", + "PreferredNotRequired": "ترجیح داده شده، اما الزامی نیست", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "حداقل اندازه مجموعه اتوماتیک:", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "وقتی حداقل تعداد عناوین انتخاب شده در کتابخانه خود را دارید ، مجموعه ها را به صورت خودکار ایجاد کنید. تغییر این مقدار بر مجموعه های موجود تأثیر نمی گذارد.", + "LabelImportCollections": "اطلاعات مجموعه را وارد کنید", + "LabelImportCollectionsHelp": "هنگامی که فعال باشد ، این اطلاعات جمع آوری را از بارگذاران متادیتای فعال شما وارد می کند (در حال حاضر فقط توسط TheMovieDb پشتیبانی می شود). این ممکن است باعث شود مجموعه های ناخواسته به طور خودکار ایجاد شوند. غیرفعال کردن از ایجاد مجموعه های آینده به طور خودکار جلوگیری می کند ، اما مجموعه های موجود را حذف نمی کند.", + "LabelAllowAdultMetadata": "دسترسی بیشتر بزرگسالان مجاز است", + "LabelAllowAdultMetadataHelp": "هنگام جستجوی فراداده اینترنتی ، عناوین بزرگسالان را تطبیق دهید.", + "HeaderVideoPreviewThumbnails": "تصاویر کوچک پیش نمایش فیلم", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "NextPage": "Next page", + "RightToLeft": "Right-to-left order", + "LetsGetSetup": "Let's Get Set Up", + "Margins": "Margins", + "PreviousPage": "Previous page", + "CurrentPage": "Current page", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files." +} diff --git a/strings/fi.json b/strings/fi.json new file mode 100644 index 0000000..06dd84a --- /dev/null +++ b/strings/fi.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Olet valmis!", + "ThisWizardWillGuideYou": "Tämä velho opastaa sinua Emby-palvelimen määrityksessä.", + "HeaderCreateYourFirstUser": "Luo ensimmäinen käyttäjä", + "ButtonQuickStartGuide": "Pikaopas", + "MoreUsersCanBeAddedLater": "Käyttäjiä voi myöhemmin lisätä palvelimen hallintapaneelista.", + "UserProfilesIntro": "Embyssä on sisäänrakennettu tuki käyttäjäprofiileille, jolloin jokaisella käyttäjällä on omat näyttöasetukset, toistotila ja lapsilukko.", + "WizardCompleted": "Siinä kaikki tällä erää tarvittavana. Emby on aloittanut mediakirjaston tarkistuksen. Tutustu muihin sovelluksiimme ja siirry lopuksi Palvelimen hallintapaneeliin painamalla Valmis.", + "MessagePleaseAcceptTermsOfService": "Hyväksy käyttöehdot ja tietosuojakäytäntö ennen kuin jatkat.", + "OptionIAcceptTermsOfService": "Hyväksyn käyttöehdot", + "SeeOurHwaGuide": "Tutustu laitteistokiihdytyksen {0}käyttöoppaaseen{1}.", + "HeaderEmbyServerReleaseNotes": "Palvelimen julkaisutiedot", + "AllowSubtitleDownloading": "Salli tekstitysten lataus", + "AllowSubtitleManagement": "Salli olemassa olevien tekstitystiedostojen poisto", + "NewUserNameHelp": "Näin käyttäjä näkyy palvelimellasi.", + "ChapterMarkers": "Kappalemerkit", + "LabelThumbnailImagesInterval": "Esikatselukuvien aikavälit", + "ThumbnailImagesIntervalHelp": "Useampien kuvien luonti tarjoaa paremman kokemuksen, mutta se vaatii enemmän levytilaa ja aikaa kuvien luontiin.", + "LabelAuthProvider": "Todennustarjoaja", + "AuthProviderHelp": "Järjestelmänvalvojat käyttävät aina Embyn oletustodennusta, jolla varmistetaan, ettet koskaan joudu lukituksi ulos.", + "HeaderNewUser": "Uusi käyttäjä", + "ChangeServerDisplayName": "Vaihda palvelimen näyttönimi", + "ShowAdvancedSettings": "Näytä lisäasetukset", + "ChangingMetadataImageSettingsNewContent": "Metatietojen tai mediakuvituksen latausasetusten muutokset koskevat vain kirjastoon lisättyä uutta sisältöä. Jos haluat soveltaa muutoksia aiemmin lisättyyn sisältöön, sinun on päivitettävä metatiedot manuaalisesti.", + "AllowRemoteAccess": "Salli etäyhteydet tähän palvelimeen.", + "AllowRemoteAccessHelp": "Jos ei valittu, kaikki etäyhteydet estetään.", + "Alerts": "Hälytykset", + "LabelTrackTitleDisplay": "Upotettujen raitojen nimien näyttö", + "GenerateUserFriendlyTrackTitles": "Luo käyttäjäystävälliset nimet kappaleiden tiedoista", + "PreferOriginalTrackTitles": "Suosi upotettuja nimiä", + "TrackTitleDisplayHelp": "Valitse ääni- ja tekstitysraitojen otsikon ensisijainen lähde. Upotettuja tietoja ei suositella, ellet hallitse niitä itse.", + "EnableTranscodingThrottle": "Käytä dynaamista nopeuden säätöä", + "EnableTranscodingThrottleHelp": "Dynaaminen nopeuden säätö muuttaa transkoodausnopeutta automaattisesti palvelimen prosessorin kuormituksen minimoimiseksi toiston aikana.", + "HeaderTypeMetadataDownloaders": "{0} metatietolähteet", + "HeaderTypeImageFetchers": "{0} kuvalähteet", + "HeaderImageOptions": "Kuva-asetukset", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Rekisteröi PayPalin kautta", + "LabelSyncTempPath": "Väliaikaistiedoston sijainti", + "LabelSyncTempPathHelp": "Määritä synkronointitöille oma kansio, jonne median muunnoksesta syntyvä tiedosto väliaikaisesti tallennetaan.", + "LabelCustomCertificatePath": "Oman SSL-varmenteen sijainti", + "LabelCustomCertificatePathHelp": "Varmenteen ja yksityisen avaimen sisältävän PKCS #12 -tiedoston sijainti, jotta TLS-tuki voidaan sallia omalle verkkotunnukselle.", + "HeaderSetupLibrary": "Määritä mediakirjastot", + "LabelTimeLimitHours": "Aikarajoitus (tunteina)", + "HeaderPreferredMetadataLanguage": "Metatietojen ensisijainen kieli", + "LabelSaveLocalMetadata": "Tallenna mediakuvitus mediakansioihin", + "LabelSaveLocalMetadataHelp": "Kuvien tallennus mediatiedostojen kansioihin helpottaa niiden käsittelyä Embyn ulkopuolella. Jos tämä ei ole käytössä, kuvat tallennetaan palvelimen metatietokansioon.", + "TabAccess": "Käyttöoikeudet", + "HeaderDeviceAccess": "Laitteiden käyttöoikeudet", + "OptionEnableAccessFromAllDevices": "Salli kaikkien laitteiden käyttö", + "OptionEnableAccessToAllChannels": "Salli kaikkien kanavien käyttö", + "OptionEnableAccessToAllLibraries": "Salli kaikkien kirjastojen käyttö", + "DeviceAccessHelp": "Käyttäjältä estetään kirjatuminen uusista sijainneista. Uusi sijainti lisätään listaan ja voidaan aktivoida käyttöön, kun käyttäjä on siihen yrittänyt ensimmäisen kerran kirjautua.", + "LabelDisplayMissingEpisodesWithinSeasons": "Näytä kausien puuttuvat jaksot", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Tämän täytyy olla valittuna myös palvelimella, televisiokirjastojen asetuksissa.", + "ImportMissingEpisodesHelp": "Jos tämä on käytössä, tietoja puuttuvista jaksoista tuodaan Embyn tietokantaan ja näytetään kausissa ja sarjoissa. Tämä saattaa aiheuttaa huomattavasti pidemmät kirjaston tarkistukset.", + "MessageEnablingOptionLongerScans": "Tämän valinnan käyttö saattaa aiheuttaa huomattavasti pidemmät kirjaston tarkistukset.", + "LabelMaxParentalRating": "Suurin sallittu ikärajaluokitus", + "MaxParentalRatingHelp": "Suuremman luokituksen sisältö piilotetaan tältä käyttäjältä.", + "LibraryAccessHelp": "Valitse mediasijainnit, jotka tahdot jakaa tälle käyttäjälle. Järjestelmänvalvojat voivat muokata kaikkia kansioita metatietojen hallinnan avulla.", + "ChannelAccessHelp": "Valitse kanavat, jotka tahdot jakaa tälle käyttäjälle. Järjestelmänvalvojat voivat muokata kaikkia kanavia metatietojen hallinnan avulla.", + "ImageUploadAspectRatioHelp": "Suositeltava kuvasuhde on 1:1. Vain JPG/PNG.", + "AlreadyPaidHelp1": "Jos olet jo ostanut entisen Media Browser -sovelluksen Android-version, sinun ei tarvitse maksaa tästä sovelluksesta uudelleen. Klikkaa \"Ok\" lähettääksesi meille sähköpostiviestin osoitteeseen {0} niin aktivoimme sovelluksen.", + "AlreadyPaidHelp2": "Onko sinulla jo Emby Premiere? Peruuta tämä valintaikkuna ja määritä Emby Premiere -avaimesi palvelimen ohjauspaneelissa, kohdasta \"Emby Premiere\". Jos olet hävittänyt koodin, voit myös pyytää sen täältä sähköpostiisi.", + "TabMyPlugins": "Laajennukseni", + "TabCatalog": "Luettelo", + "HeaderAutomaticUpdates": "Automaattiset päivitykset", + "Standard": "Vakio", + "TabSupporterKey": "Emby Premiere -avain", + "OptionHideUserLocal": "Piilota käyttäjä kirjautumisesta käytettäessä lähiverkkoa", + "OptionHideUserRemote": "Piilota käyttäjä kirjautumisesta etäyhteyttä käytettäessä", + "OptionHideUserFromLoginHelp": "Hyödyllinen yksityisille tai piilotetuille pääkäyttäjätileille. Käyttäjän on kirjauduttava sisään manuaalisesti antamalla käyttäjätunnus ja salasana.", + "HideFromUnusedDevices": "Piilota käyttäjä kirjautumisesta laitteilla, joille he eivät ole aiemmin kirjautuneet", + "OptionDisableUser": "Kytke tämä käyttäjä pois käytöstä", + "OptionDisableUserHelp": "Palvelin ei salli yhteyksiä tältä käyttäjältä. Aktiiviset yhteydet katkaistaan välittömästi.", + "OptionAllowUserToManageServer": "Salli tämän käyttäjän hallita palvelinta", + "HeaderFeatureAccess": "Ominaisuuksien käyttö", + "OptionAllowMediaPlayback": "Salli median toisto", + "AllLibraries": "Kaikki kirjastot", + "HeaderAllowMediaDeletionFrom": "Salli median poisto kirjastoista", + "LiveTVRecordingManagement": "Televisiotallenteiden hallinta", + "OptionAllowRemoteControlOthers": "Salli muiden käyttäjien etäohjaus", + "OptionAllowRemoteSharedDevices": "Salli jaettujen laitteiden etäohjaus", + "OptionAllowRemoteSharedDevicesHelp": "DLNA-laitteita pidetään jaettuina, kunnes käyttäjä aloittaa niiden käytön.", + "OptionAllowLinkSharing": "Salli jako sosiaalisessa mediassa", + "OptionAllowLinkSharingHelp": "Vain mediatietoja sisältävät verkkosivut jaetaan. Mediatiedostoja ei koskaan jaeta julkisesti. Jaot ovat määräaikaisia ja päättyvät {0} päivän kuluttua.", + "OptionRelease": "Virallinen Julkaisu", + "LabelAllowServerAutoRestartPlugin": "Salli palvelimen käynnistyä atomaattisesti uudelleen laajennuspäivitysten asentamiseksi", + "LabelAllowServerAutoRestartServerOrPlugin": "Salli palvelimen käynnistyä atomaattisesti uudelleen palvelin- ja laajennuspäivitysten asentamiseksi", + "LabelAllowServerAutoRestartHelp": "Uudelleenkäynnistys tapahtuu vain palvelimen ollessa käyttämättömänä, ilman aktiivisia käyttäjiä.", + "LabelRunServerAtStartup": "Suorita kun laite käynnistyy", + "LabelRunServerAtStartupHelp": "Tämä käynnistää palvelimen automaattisesti Windowsin käynnistyessä. Jos palvelin on määritetty Windowsin palveluksi, älä valitse tätä, vaan muuta palvelu suoritettavaksi käynnistyksen yhteydessä (Windowsin palvelunhallinnan kautta).", + "ButtonSelectDirectory": "Valitse kansio", + "LabelCachePath": "Välimuistin sijainti", + "DefaultMetadataLangaugeDescription": "Nämä ovat oletusasetukset, joita on mahdollista muokata myös kirjastokohtaisesti.", + "LabelCachePathHelp": "Määritä oma sijainti palvelimen välimuistitiedostoille, kuten kuville. Jätä tyhjäksi käyttääksesi palvelimen oletusarvoa.", + "LabelDefaultRecordingFolder": "Tallenteiden oletussijainti", + "LabelMovieRecordingFolder": "Elokuvien tallennussijainti", + "LabelSeriesRecordingFolder": "Sarjojen tallennussijainti", + "SeriesRecordingFolderHelp": "(Valinnainen) Valitse televisiotallenteiden oletusarvoinen tallennuskirjasto. Tämän on oltava Embyn kirjastomäärityksellä luotu kirjasto, jonka sisältötyypiksi on valittu sarjat tai sekalainen sisältö.", + "HeaderProgramData": "Ohjelmatiedot", + "RecordingFolderHelp": "Valitse tallenteiden oletusarvoinen tallennuskirjasto. Tämän on oltava Embyn kirjastoasetuksissa luotu kirjasto, jonka sisältötyypiksi on määritetty sekalainen sisältö.", + "MovieRecordingFolderHelp": "(Valinnainen) Valitse elokuvatallenteiden oletusarvoinen tallennuskirjasto. Tämän on oltava Embyn kirjastomäärityksellä luotu kirjasto, jonka sisältötyypiksi on valittu elokuvat tai sekalainen sisältö.", + "LabelMetadataPath": "Metatietojen sijainti", + "LabelMetadataPathHelp": "Määritä sijainti ladatuille mediakuville ja metatiedoille tai tyhjennä palauttaaksesi oletuksen. Jos muutat sijaintia, on vanha sisältö siirrettävä manuaalisesti uuteen sijaintiin. Jos muutat kansion sisältöä manuaalisesti, suorita {0}scan metadata folder scheduled task{1}.", + "LabelTranscodingTempPath": "Transkoodauksen väliaikaistiedostojen sijainti", + "LabelTranscodingTempPathHelp": "Tämä kansio sisältää transkoodauksessa syntyvät, väliaikaiset työtiedostot. Määritä mukautettu sijainti tai jätä tyhjäksi, jos haluat käyttää oletusta (palvelimen datakansio).", + "GenerateVideoPreviewThumbnailsHelp": "Tämä mahdollistaa esikatselukuvat videoita kelattaessa sovelluksissa, jotka niitä tukevat. Kuvien luonti saattaa kestää pitkään, se nostaa palvelimen suorittimen ja levyn kuormitusta ja saattaa kuluttaa useita gigatavuja enemmän tallennustilaa.", + "AsAScheduledTask": "ajoitettuna tehtävänä", + "AsAScheduledTaskAndMediaAdded": "ajoitettuna tehtävänä ja mediaa lisättäessä", + "ButtonRefreshGuideData": "Päivitä TV-opas", + "LabelNumberOfGuideDays": "Ohjelmaoppaan ladattavien päivien määrä", + "LabelNumberOfGuideDaysHelp": "Pidemmän ajanjakson lataaminen näyttää enemmän ohjelmatietoja ja mahdollistaa tallennusten aikaisemman ohjelmoinnin, mutta tietojen lataaminen myös kestää kauemmin. Automaattiasetus valitsee asetuksen kanamäärän perusteella. Huomioi myös, ettei ohjelmatietoja ole kaikista lähteistä saatavilla pitkälle tulevaisuuteen, eikä niitä tällöin ole mahdollista ladata (jotkin lähteet tarjoavat teidot vain 24 tunnille). Embyn ohjelmaopas tukee teitoja 14 päivän ajalle.", + "HeaderFetchImages": "Nouda kuvat", + "LabelMaxBackdropsPerItem": "Backdrop-kuvien enimmäismäärä/kohde", + "LabelMaxScreenshotsPerItem": "Kuvakaappausten enimmäismäärä/kohde", + "LabelMinBackdropDownloadWidth": "Ladattavien backdrop-kuvien vähimmäisleveys", + "LabelMinScreenshotDownloadWidth": "Ladattavien kuvankaappausten vähimmäisleveys", + "ButtonAddScheduledTaskTrigger": "Lisää käytäntö:", + "ButtonAdd": "Lisää", + "LabelTriggerType": "Käytännön tyyppi", + "OptionOnInterval": "Toistuvasti", + "OptionAfterSystemEvent": "Järjestelmätapahtuman jälkeen", + "LabelDay": "Päivä", + "LabelTime": "Aika", + "LabelEvent": "Tapahtuma", + "OptionWakeFromSleep": "Herää valmiustilasta", + "Every": "Joka", + "LabelEnableRealtimeMonitor": "Ota reaaliaikainen seuranta käyttöön", + "LabelEnableRealtimeMonitorHelp": "Tiedostomuutokset käsitellään tuetuissa tiedostojärjestelmissä välittömästi.", + "Community": "Yhteisö", + "HeaderEmbyNews": "Emby Uutiset", + "LabelFriendlyServerName": "Palvelimen helppolukuinen nimi", + "LabelFriendlyServerNameHelp": "Tätä nimeä käytetään palvelimen tunnistamiseen. Jätä tyhjäksi käyttääksesi tietokoneen nimeä.", + "LabelPreferredDisplayLanguage": "Käyttöliittymän Ensisijainen kieli", + "LabelPreferredDisplayLanguageHelp": "Embyn kääntäminen on jatkuva projekti.", + "LabelReadHowYouCanContribute": "Katso, miten voit osallistua.", + "LabelCustomCss": "Omat CSS-tyylit", + "LabelCustomCssHelp": "Käytä omia CSS-tyylejäsi verkkokäyttöliittymälle.", + "LabelLocalHttpServerPortNumber": "Paikallinen HTTP-portti", + "LabelLocalHttpServerPortNumberHelp": "TCP-portti, jota Embyn HTTP palvelimen tulee kuunnella.", + "LabelPublicHttpPort": "Julkinen HTTP-portti", + "LabelPublicHttpPortHelp": "Paikalliseen HTTP-porttiin liitettävä julkinen HTTP-portti.", + "LabelPublicHttpsPort": "Julkinen HTTPS-portti", + "LabelPublicHttpsPortHelp": "Paikalliseen HTTPS-porttiin liitettävä julkinen HTTPS-portti.", + "RequireHttps": "Vaadi HTTPS etäyhteyksille", + "RequireHttpsHelp": "Tämä ohjaa salaamattomat HTTP-yhteydet käyttämään salattua HTTPS-yhteyttä.", + "LabelHttpsPort": "Paikallinen HTTPS-portti", + "LabelHttpsPortHelp": "TCP-portti, jota Embyn HTTPS-palvelimen tulee kuunnella.", + "LabelEnableAutomaticPortMap": "Käytä automaattista porttiohjausta (UPnP)", + "LabelEnableAutomaticPortMapHelp": "Yritä automaattisesti yhdistää julkinen ja paikallinen portti UPnP:n avulla. Tämä ei välttämättä toimi kaikkien reitittimien kanssa.", + "LabelExternalDDNS": "Ulkoinen verkkotunnus", + "LabelExternalDDNSHelp": "Jos sinulla on dynaaminen DNS tai verkkotunnus, kirjoita se ilman protokollaa tai porttia. Emby-sovellukset käyttävät sitä ulkoiseen yhteyteen. Tämä kenttä tarvitaan oman SSL-varmenteen käyttöön. Esimerkki: esimerkkidomain.fi.", + "LabelMinResumePercentage": "Toiston jatkokohdan vähimmäisprosentti", + "LabelMaxResumePercentage": "Toiston jatkokohdan enimmäisprosentti", + "LabelMinResumeDuration": "Lyhin jatkettava kokonaiskesto (sekunteina)", + "LabelMinResumePercentageHelp": "Kohteita ei merkitä toistetuiksi, jos toisto lopetetaan ennen kuin tämä aika on kulunut", + "LabelMaxResumePercentageHelp": "Kohteet merkitään täysin toistetuiksi, kun toisto lopetetaan tämän ajan täytyttyä", + "LabelMinResumeDurationHelp": "Tätä lyhyempien kohteiden toistoa ei voida jatkaa", + "HeaderStatus": "Tila", + "Subscriptions": "Tilaukset", + "LabelEndingEpisodeNumber": "Päätösjakson numero", + "LabelEndingEpisodeNumberHelp": "Tarpeellinen vain useita jaksoja sisältäville tiedostoille", + "HeaderSupportTheTeam": "Tue Embyn tiimiä", + "HeaderSupportTheTeamHelp": "Auta varmistamaan tämän projektin jatkuva kehittäminen tilaamalla Emby Premiere. Osa tuloista käytetään vapaiden työkalujen, joista olemme riippuvaisia, tukemiseen.", + "DonationNextStep": "Kun olet valmis, palaa takaisin ja syötä Emby Premiere avaimesi. Avain lähetetään sähköpostiisi.", + "HeaderRunningTasks": "Käynnissä olevat tehtävät", + "ButtonUpdateNow": "Päivitä nyt", + "PleaseUpdateManually": "Sulje palvelin ja asenna uusin versio.", + "ServerUpToDate": "Palvelin on ajan tasalla", + "MessagePleaseRestartServerToFinishUpdating": "Käynnistä palvelin uudelleen päivityksen viimeistelyä varten", + "LabelDownMixAudioScale": "Tehosta äänenvoimakkuutta alasmiksauksen yhteydessä", + "LabelDownMixAudioScaleHelp": "Nosta äänen voimakkuutta alasmiksauksen yhteydessä. Aseta arvoksi 1, jos haluat säilyttää alkuperäisen voimakkuuden.", + "HeaderForgotKey": "Unohdin avaimen", + "LabelSupporterEmailAddress": "Avaimen ostossa käytetty sähköpostiosoite.", + "ButtonRetrieveKey": "Nouda avain", + "LabelSupporterKey": "Emby Premiere -avain (kopioi sähköpostista)", + "LabelSupporterKeyHelp": "Syötä Emby Premiere -avaimesi nauttiaksesi kaikista ominaisuuksista.", + "MessageInvalidKey": "Emby Premiere -avain puuttuu tai on virheellinen.", + "ErrorMessageInvalidKey": "Jotta premium-sisältö voidaan rekisteröidä, sinulla on oltava aktiivinen Emby Premiere -tilaus.", + "LabelSkipIfGraphicalSubsPresent": "Ohita, jos video sisältää jo latauskieltä vastaavia upotettuja tekstityksiä", + "LabelSkipIfGraphicalSubsPresentHelp": "Tekstitysten tekstiversioiden säilyttäminen johtaa tehokkaampaan toistoon ja vähentää transkoodaustarpeen todennäköisyyttä.", + "HeaderDownloadLanguages": "Ladattavat kielet", + "LabelSkipIfAudioTrackPresent": "Ohita, jos oletusääniraidan kieli vastaa ladattavaa kieltä", + "LabelSkipIfAudioTrackPresentHelp": "Poista valinta varmistaaksesi, että kaikilla videoilla on tekstitykset ääniraidan kielestä riippumatta.", + "SendMessage": "Lähetä viesti", + "HeaderSendMessage": "Lähetä viesti", + "ButtonSend": "Lähetä", + "LabelMessageText": "Viestin teksti", + "LabelMessageTitle": "Viestin otsikko", + "ButtonEditOtherUserPreferences": "Muuta tämän käyttäjän tietoja, kuvaa ja henkilökohtaisia asetuksia.", + "LabelLoginDisclaimer": "Kirjautumisen vastuuvapauslauseke", + "LabelLoginDisclaimerHelp": "Tämä näkyy kirjautumissivun alareunassa.", + "HeaderTranscodingTemporaryFiles": "Transkoodauksen väliaikaistiedostot", + "HeaderApiKeys": "API-avaimet", + "HeaderApiKeysHelp": "Ulkoisilla sovelluksilla on oltava API-avain kommunikoidakseen palvelimen kanssa. Avaimet luodaan kirjautumalla sisään Emby Connect -tilillä tai luomalla manuaalisesti avain sovellukselle.", + "HeaderApiKey": "API-avain", + "HeaderResumeSettings": "Toiston Jatkon asetukset", + "HeaderFetcherSettings": "Lataajien asetukset", + "HeaderActivity": "Tapahtumat", + "ButtonPurchase": "Osta", + "HeaderInstall": "Asenna", + "LabelSelectVersionToInstall": "Valitse asennettava versio", + "LinkLearnMoreAboutSubscription": "Lue lisää Emby Premiere -tilauksesta", + "MessagePluginRequiresSubscription": "14 päivän kokeilujakson jälkeen tämä laajennus vaatii aktiivisen Emby Premier -tilauksen.", + "MessagePremiumPluginRequiresMembership": "Ostaaksesi tämän laajennuksen 14 päivän kokeilujakson jälkeen sinulla täytyy olla aktiivinen Emby Premier -tilaus.", + "HeaderDeveloperInfo": "Kehittäjän tiedot", + "HeaderRevisionHistory": "Versiohistoria", + "ButtonViewWebsite": "Näytä verkkosivusto", + "OptionSaveMetadataAsHidden": "Tallenna metatiedot ja kuvat piilotiedostoina", + "LabelConnectEmail": "(Valinnainen) Emby Connect -tilin sähköpostiosoite", + "LabelConnectEmailHelp": "Voit myös liittää tämän paikallisen käyttäjän Emby Connect -tiliin mahdollistaaksesi helpon kirjautumisen kaikista Emby-sovelluksista ilman palvelimen IP-osoitteelle.", + "ButtonLearnMoreAboutEmbyConnect": "Lue lisää Emby Connectistä", + "LabelDateAddedBehavior": "Uuden sisällön lisäyspäivän esitystapa", + "OptionDateAddedImportTime": "Käytä kirjastoon lisäyspäivää", + "OptionDateAddedFileTime": "Käytä tiedoston luontipäivää", + "LabelDateAddedBehaviorHelp": "Jos metatietoarvo on olemassa, käytetään aina sitä näiden kummankaan vaihtoehdon sijasta.", + "HeaderLibrarySettings": "Kirjaston asetukset", + "HeaderAutomaticSubtitleDownloads": "Tekstitysten automaattilataus", + "HeaderCameraUploadHelp": "Emby-mobiilisovellukset voivat varmuuskopioida mobiililaitteellasi otetut kuvat automaattisesti Emby-palvelimelle.", + "LabelCameraUploadPath": "Kameratallennuksen kohde", + "LabelCameraUploadPathHelp": "Määritä oma tallennussijainti. Tämä korvaa Kameratallenne-osiossa määritetyt oletusasetukset. Jos jätetään tyhjäksi, käytetään oletuskansiota. Jos käytät omaa sijaintia, on se myös määritettävä kirjastoksi Embyn kirjastoasetuksissa.", + "DefaultCameraUploadPathHelp": "Määritä oma tallennussijainti. Jos jätetään tyhjäksi, käytetään oletuskansiota. Jos käytät omaa sijaintia, on se myös määritettävä kirjastoksi Embyn kirjastoasetuksissa.", + "LabelCreateCameraUploadSubfolder": "Luo jokaiselle laitteelle oma alikansio", + "LabelCreateCameraUploadSubfolderHelp": "Tietyt kansiot voidaan määrittää laitteelle klikkaamalla sitä \"Laitteet\"-sivulla.", + "LabelCustomDeviceDisplayNameHelp": "Anna mukautettu näyttönimi. Jätä tyhjäksi jos haluat käyttää laitteen ilmoittamaa nimeä.", + "TabParentalControl": "Lapsilukko", + "HeaderAccessSchedule": "Käyttöaikataulu", + "HeaderAccessScheduleHelp": "Luo aikataulu käytön rajoittamiseksi tiettyihin aikoihin.", + "HeaderLibraryAccess": "Kirjastojen käyttöoikeudet", + "HeaderChannelAccess": "Kanavien käyttöoikeudet", + "LabelForgotPasswordUsernameHelp": "Anna käyttäjätunnuksesi, jos muistat sen.", + "TitlePasswordReset": "Palauta salasana", + "HeaderBlockItemsWithNoRating": "Estä kohteet, joilla ei ole ikäluokitusta tai sitä ei tunnisteta", + "LabelBlockContentWithTags": "Estä sisältöä tunnisteilla:", + "LabelTagRestrictionMode": "Tunnisteilla rajoitettava tila", + "BlockItemsWithTheseTags": "Estä kohteet, jotka sisältävät seuraavat tunnisteet", + "AllowItemsWithTheseTags": "Salli vain kohteet, jotka sisältävät seuraavat tunnisteet", + "OptionAllowContentDownloading": "Salli mediatiedostojen lataus", + "LabelNewUserNameHelp": "Käyttäjätunnukset voivat sisältää kirjaimia (a-z), numeroita (0-9), viivoja (-), alaviivoja (_), heittomerkkejä (') ja pisteitä (.)", + "HeaderThisUserIsCurrentlyDisabled": "Tämä käyttäjä ei ole aktiivinen. Voit aktivoida käyttäjän sivun alalaidasta löytyvällä asetuksella.", + "OptionAllowSyncTranscoding": "Salli transkoodausta edellyttävän median lataus", + "AllowMediaConversion": "Salli median muunto", + "AllowMediaConversionHelp": "Salli käyttäjälle median transkoodaustoimintojen käyttö.", + "OptionAllowAudioPlaybackTranscoding": "Salli äänen transkoodaus tarvittaessa toiston aikana", + "OptionAllowVideoPlaybackTranscoding": "Salli videon transkoodaus tarvittaessa toiston aikana", + "OptionAllowVideoPlaybackRemuxing": "Salli säiliömuotojen muutos tarvittaessa toiston aikana", + "OptionAllowMediaPlaybackTranscodingHelp": "Transkoodauksen estäminen voi aiheuttaa toistovirheitä Emby-sovelluksissa, koska kaikkia mediaformaatteja ei tueta tai verkon siirtonopeus ei ole riittävä.", + "LabelRemoteClientBitrateLimit": "Internetistä suoratoistettavan sisällön bittinopeuden rajoitus (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Valinnainen toistokohtainen bittinopeusrajoitus kaikille lähiverkon ulkopuolisille laitteille. Tällä voidaan estää laitteita pyytämästä Internet-yhteyden kaistanleveyttä suurempia bittinopeuksia. Tämä voi kasvattaa palvelimen prosessorin kuormitusta kun videoita transkoodataan matalampiin bittinopeuksiin.", + "LabelUserRemoteClientBitrateLimitHelp": "Tämä ohittaa oletusarvon, joka on määritetty palvelimen lisäasetuksissa.", + "OptionEnableFullSpeedConversion": "Käytä täydellä nopeudella muuntoa", + "OptionEnableFullSpeedConversionHelp": "Oletusarvoisesti muunto suoritetaan pienellä nopeudella järjestelmän kuormituksen minimoimiseksi.", + "OptionEnableAutomaticServerUpdates": "Ota automaattiset palvelinpäivitykset käyttöön", + "HeaderTVSources": "Televisiolähteet", + "HeaderAddTvSource": "Lisää televisiolähde", + "LabelTunerIpAddress": "Virittimen IP-osoite", + "HeaderGuideProviders": "TV-oppaan tietolähteet", + "HeaderAddGuideSource": "Lisää ohjelmaoppaan tietolähde", + "LabelZipCode": "Postinumero", + "LabelLineup": "Ohjelmisto", + "LabelImportOnlyFavoriteChannels": "Rajoita suosikkikanaviin", + "ImportFavoriteChannelsHelp": "Tuodaan vain kanavat, jotka on merkitty virittimelle suosikeiksi.", + "HeaderDefaultRecordingSettings": "Tallennuksen oletusasetukset", + "LabelDisplayName": "Näyttönimi", + "OptionDownloadImagesInAdvance": "Lataa kuvat etukäteen", + "OptionDownloadImagesInAdvanceHelp": "Oletusarvoisesti useimmat kuvat ladataan Internetistä vasta Emby-sovelluksen näyttäessä ne. Tämä asetus lataa kaikki kuvat etukäteen kun uusi media tuodaan. Tämä saattaa pidentää kirjastotarkastuksia merkittävästi.", + "MessageThankYouForSupporting": "Kiitos Embyn tukemisesta.", + "FileReadCancelled": "Tiedoston luku peruttiin.", + "FileNotFound": "Tiedostoa ei löydy.", + "FileReadError": "Tapahtui virhe luettaessa tiedostoa.", + "NoPluginConfigurationMessage": "Tällä laajennuksella ei ole asetuksia määritettäväksi.", + "HeaderNewApiKey": "Uusi API-avain", + "HeaderNewApiKeyHelp": "Anna sovellukselle käyttöoikeus kommunikoida palvelimen kanssa.", + "MessageKeyEmailedTo": "Avain lähetetty osoitteeseen {0}.", + "HeaderConfirmation": "Vahvistus", + "MessageKeyUpdated": "Kiitos! Emby Premiere -avain on päivitetty.", + "MessageKeyRemoved": "Kiitos! Emby Premiere -avain on poistettu.", + "TextEnjoyBonusFeatures": "Nauti lisäominaisuuksista", + "MessageErrorLoadingSupporterInfo": "Emby Premiere -tietojen lataamisessa tapahtui virhe. Yritä myöhemmin uudelleen.", + "ValueTimeLimitSingleHour": "Aikaraja: 1 tunti", + "ValueTimeLimitMultiHour": "Aikaraja: {0} tuntia", + "General": "Yleinen", + "HeaderScreenSavers": "Näytönsäästäjät", + "Reporting": "Raportointi", + "LabelStopping": "Lopetetaan", + "HeaderSelectCertificatePath": "Valitse varmenteen sijainti:", + "HeaderSupporterBenefit": "Emby Premiere -tilaus tarjoaa lisäetuja, kuten tuen suorille televisiolähetyksille ja tallennukselle (vaatii yhteensopivan virittimen) sekä pääsyn premium-laajennuksiin. {0}Lue lisää{1}", + "LabelAbortedByServerShutdown": "(peruttu palvelimen sammutuksen vuoksi)", + "LabelScheduledTaskLastRan": "Viimeksi suoritettu {0}, kestäen {1}.", + "HeaderDeleteTaskTrigger": "Poista käytäntö", + "MessageDeleteTaskTrigger": "Haluatko varmasti poistaa tehtävältä tämän käytännön?", + "MessageNoPluginsDueToAppStore": "Voit hallita laajennuksia Embyn web-hallintapaneelin kautta.", + "LabelVersionInstalled": "{0} asennettu", + "HeaderSelectServerCachePath": "Valitse palvelimen välimuistin sijainti", + "HeaderSelectTranscodingPath": "Valitse transkoodauksen väliaikaissijainti:", + "HeaderSelectMetadataPath": "Valitse metatietojen sijainti:", + "HeaderSelectServerCachePathHelp": "Selaa tai anna palvelimen välimuistitiedostojen tallennussijainti. Kansioon on oltava kirjoitusoikeus.", + "HeaderSelectTranscodingPathHelp": "Täytä tai selaa transkoodauksen työtidostojen mukautettu sijainti. Kansioon on oltava kirjoitusoikeus.", + "HeaderSelectMetadataPathHelp": "Selaa tai anna palvelimen metatietojen tallennussijainti. Kansioon on oltava kirjoitusoikeus.", + "MessageConfirmRestart": "Haluatko varmasti käynnistää palvelimen uudelleen?", + "MessageConfirmShutdown": "Haluatko varmasti sulkea palvelimen?", + "LabelLocalAccessUrl": "Lähiverkkoyhteys (LAN): {0}", + "LabelRemoteAccessUrl": "Etäyhteys (WAN): {0}", + "LabelRunningOnPort": "Suoritetaan HTTP-portissa {0}.", + "LabelRunningOnPorts": "Suoritetaan HTTP-portissa {0} ja HTTPS-portissa {1}.", + "LabelCurrentPath": "Nykyinen sijainti", + "HeaderSelectMediaPath": "Valitse median sijainti", + "HeaderSelectPath": "Valitse sijainti", + "MessageDirectoryPickerInstruction": "Verkkosijainnit voidaan syöttää manuaalisesti, jos automaattihaku ei löydä laitteitasi. Esimerkiksi {0} tai {1}.", + "MessageDirectoryPickerBSDInstruction": "BSD:n käyttöä varten, saatat joutua määrittämään FreeNAS-tallennustilasi, jotta Emby voi käyttää sitä.", + "MessageDirectoryPickerLinuxInstruction": "Jos käytät Linuxia kuten Arch Linux, CentOS, Debian, Fedora, OpenSuse tai Ubuntu, sinun on annettava Embyn käyttäjälle vähintään lukuoikeus tallennussijainteishisi.", + "MetadataManager": "Metatietojen hallinta", + "OptionBlockLiveTvChannels": "Televisiokanavat", + "OptionBlockChannelContent": "Internetkanavan sisältö", + "ButtonRevoke": "Poista", + "MessageConfirmRevokeApiKey": "Haluatko varmasti poistaa tämän API-avaimen? Sovelluksen yhteys palvelimeen katkaistaan välittömästi.", + "HeaderConfirmRevokeApiKey": "Poista API-avain", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Sinun on hyväksyttävä käyttöehdot ennen kuin jatkat.", + "HeaderChangeFolderType": "Vaihda sisältötyyppiä", + "HeaderChangeFolderTypeHelp": "Vaihtaaksesi sisältötyyppiä, sinun on poistettava kirjasto ja luotava se uudelleen uudentyyppisenä.", + "HeaderAlert": "Hälytys", + "MessagePleaseRestart": "Käynnistä palvelin uudelleen päivityksen viimeistelyä varten", + "OptionHomeVideos": "Kotivideot & valokuvat", + "OptionBooks": "Kirjat", + "HeaderMetadataReaders": "Metatietojen lukijat", + "LabelMetadataReadersHelp": "Käytä ja painota haluamiasi paikallisia metatietolähteitä järjestyksessä.", + "HeaderSubtitleDownloaders": "Tekstityslähteet", + "SubtitleDownloadersHelp": "Aktivoi ja luokittele ensisijaiset tekstitysten latauspalvelut tärkeysjärjestykseen. Lisää tekstityslähteitä voi asentaa Embyn laajennushakemistosta.", + "LabelMetadataDownloaders": "Metatietolähteet", + "LabelMetadataDownloadersHelp": "Aktivoi ja luokittele ensisijaiset metatietojen latauspalvelut tärkeysjärjestykseen. Alemman tärkeysjärjestyksen palveluita käytetään vain puuttuvien tietojen täyttöön.", + "HeaderMetadataSavers": "Metatietojen tallentajat", + "LabelMetadataSaversHelp": "Valitse tiedostoformaatit, joihin haluat metatiedot tallentaa.", + "LabelImageFetchers": "Kuvien latauspalvelut", + "LabelImageFetchersHelp": "Aktivoi ja luokittele ensisijaiset kuvien latauspalvelut tärkeysjärjestykseen.", + "PersonTypePerson": "Henkilö", + "HeaderRemoveMediaLocation": "Poista mediasijainti", + "MessageConfirmRemoveMediaLocation": "Oletko varma, että haluat poistaa sijainnin?", + "LabelNewName": "Uusi nimi", + "HeaderRemoveLibrary": "Poista kirjasto", + "MessageAreYouSureYouWishToRemoveLibrary": "Haluatko varmasti poistaa kirjaston \"{0}\" Emby-palvelimeltasi? Tällä ei ole vaikutusta mediatiedostoihisi.", + "ButtonRename": "Nimeä uudelleen", + "HeaderPluginInstallation": "Laajennuksen asennus", + "MessageTrialExpired": "Ominaisuuden kokeilujakso on päättynyt", + "MessageTrialWillExpireIn": "Tämän ominaisuuden kokeilujakso päättyy {0} päivässä", + "ValuePriceUSD": "Hinta: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Olet rekisteröinyt tämän ominaisuuden ja voit jatkaa sen käyttöä aktiivisella Emby Premiere -tilauksella.", + "HeaderSelectExternalPlayer": "Valitse ulkoinen soitin", + "HeaderExternalPlayerPlayback": "Toisto ulkoisella soittimella", + "HeaderThankYou": "Kiitos", + "HeaderSelectUploadPath": "Valitse tallennussijainti", + "ErrorMessageStartHourGreaterThanEnd": "Päättymisajan on oltava suurempi kuin aloitusajan", + "MessagePluginConfigurationRequiresLocalAccess": "Määrittääksesi tämän laajennuksen, sinun on kirjauduttava suoraan paikalliselle palvelimelle.", + "MovieLibraryHelp": "Tutustu {0}elokuvien nimeämiskäytäntöön{1}.", + "TvLibraryHelp": "Tutustu {0}sarjojen nimeämiskäytäntöön{1}.", + "BookLibraryHelp": "Tekstikirjat ovat tuettuja. Tutustu {0}kirjojen nimeämiskäytäntöön{1}.", + "MessageGamePluginRequired": "Vaatii GameBrowser-laajennuksen asennuksen", + "HeaderUnlockApp": "Avaa lukitus", + "MessagePaymentServicesUnavailable": "Maksupalvelut eivät ole tällä hetkellä tavoitettavasissa. Yritä myöhemmin uudelleen.", + "NoNewDevicesFound": "Uusia laitteita ei löytynyt. Lisätäksesi uuden virittimen, sulje tämä ruutu ja syötä laitteen tiedot manuaalisesti.", + "MessageConfirmDeleteTunerDevice": "Oletko varma, että haluat poistaa laitteen?", + "MessageConfirmDeleteGuideProvider": "Oletko varma, että haluat poistaa opastoimittajan?", + "HeaderDeleteProvider": "Poista toimittaja", + "ErrorAddingTunerDevice": "Virittimen lisäyksessä havaittiin ongelma. Varmista, että viritin on tavoitettavissa ja yritä uudelleen.", + "ErrorSavingTvProvider": "Televisiotoimittajan tallennuksessa ilmeni virhe. Varmista, että toimittaja on tavoitettavissa ja yritä uudelleen.", + "ErrorGettingTvLineups": "Televisiokokoonpanojen latauksessa ilmeni ongelma. Varmista, että tiedot ovat oikein ja yritä uudelleen.", + "MessageCreateAccountAt": "Luo tili {0}", + "ErrorPleaseSelectLineup": "Valitse kokoonpano ja yritä uudelleen. Jos kokoonpanoja ei ole saatavilla, tarkista, että käyttäjänimesi, salsanasi ja postinumerosi ovat oikein.", + "ErrorValidatingSupporterInfo": "Emby Premiere -tilauksesi tarkistuksessa ilmeni ongelma. Yritä myöhemmin uudelleen.", + "LabelLocalSyncStatusValue": "Tila: {0}", + "HeaderTopPlugins": "Huippulaajennukset", + "ForAdditionalLiveTvOptions": "Selaa {0}laajennushakemistoa{1} lisätäksesi muita televisiotoimittajia.", + "AddUser": "Lisää käyttäjä", + "HeaderEmailAddress": "Sähköpostiosoite", + "NumLocationsValue": "{0} kansiota", + "PleaseAddAtLeastOneFolder": "Lisää kirjastoon ainakin yksi kansio klikkaamalla \"Lisää\" -painiketta.", + "ErrorAddingMediaPathToVirtualFolder": "Median polun lisäyksessä tapahtui virhe. Varmista, että polku on oikein ja että palvelimella on oikeus käyttää sijaintia.", + "ErrorAddingEmbyConnectAccount3": "Emby Connect -tili on jo liitetty olemassa olevaan paikalliseen käyttäjään. Tili voidaan liittää vain yhteen paikalliseen tiliin kerrallaan.", + "HeaderConfirmPluginInstallation": "Vahvista laajennuksen asennus", + "PleaseConfirmPluginInstallation": "Klikkaa \"Ok\" vahvistaaksesi, että olet lukenut ylläolevan ja haluat jatkaa laajennuksen asennusta.", + "MessagePluginInstallDisclaimer": "Emby-yhteisön kehittämät laajennukset ovat hieno tapa parantaa Emby-kokoemustasi lisäominaisuuksilla ja eduilla. Ennen asennusta, ota kuitenkin huomioon, että ne saattavat joskus myös mm. lisätä kirjastojen skannausaikaa, lisätä taustatoimintaa ja alentaa järjestelmän vakautta.", + "HardwareAccelerationWarning": "Laitteistokiihdytyksen käyttöönotto saattaa aiheuttaa epävakautta joissakin ympäristöissä. Varmista, että käyttöjärjestelmäsi ja videolaitteesi laiteajurit ovat ajan tasalla. Jos videoiden toistossa ilmenee ongelmia käyttöönoton jälkeen, muuta asetus takaisin automaatille.", + "ValueExample": "Esimerkki: {0}", + "LabelFileOrUrl": "Tiedosto tai URL", + "OptionEnableForAllTuners": "Aktivoi kaikille virittimille", + "HeaderTuners": "Virittimet", + "DrmChannelsNotImported": "DRM-suojattuja kanavia ei tuoda", + "LabelAllowHWTranscoding": "Käytä laitteistokiihdytystä", + "AllowHWTranscodingHelp": "Sallii virittimen muuntaa media reaaliajassa, kun mahdollista. Tämä saattaa vähentää palvelimella tapahtuvaa transkoodausta.", + "MetadataSettingChangeHelp": "Metatietojen asetusten muuttaminen vaikuttaa uuteen sisältöön. Päivittääksesi vanhan sisällön, avaa yksityiskohtainen näkymä ja klikkaa päivityspainiketta tai suorita yhteispäivitys käyttäen metatietojen hallintatyökalua.", + "RecordingPathChangeMessage": "Tallennekansion vaihto ei siirrä olemassa olevia tallenteita vanhasta sijainnista uuteen. Sinun on siirrettävä ne manuaalisesti, jos tarpeen.", + "LabelLocalIpAddress": "Paikallinen IP-osoite", + "LabelBindToLocalNetworkAddressHelp": "Syötä paikallinen IP-osoite, jonka palvelin ilmoittaa Emby-sovelluksille. Jätä kenttä tyhjäksi osoitteen automaattista tunnistusta varten (yleensä automaattitunnistus riittää).", + "SettingsWarning": "Näiden asetusten muuttaminen voi aiheuttaa epävakautta tai yhteysongelmia. Jos ongelmia ilmenee, palauta asetukset oletusarvoihin.", + "OptionSaveMetadataAsHiddenHelp": "Tämän muutos vaikuttaa uusiin metatietoihin tästä eteenpäin. Olemassa olevat metatiedot päivitetään, kun palvelin ne seuraavan kerran tallentaa.", + "EnablePhotos": "Hyväksy valokuvat", + "EnablePhotosHelp": "Valokuvat tunnistetaan ja näytetään muiden mediatiedostojen rinnalla.", + "ImportPlaylists": "Tuo toistolistatiedostoja", + "ImportPlaylistsHelp": "Mediakansioista löydetyt toistolistat voidaan tuoda palvelimen toistolistoiksi.", + "SaveThumbnailImagesIntoMediaFolders": "Tallenna videoiden esikatselukuvat mediakansioihin", + "LabelGenerateVideoPreviewThumbnails": "Luo videoille esikatselukuvat", + "LabelEnableDebugLogging": "Käytä virheenkorjauslokia", + "OptionEnableExternalContentInSuggestions": "Käytä ulkoista sisältöä ehdotuksissa", + "OptionEnableExternalContentInSuggestionsHelp": "Sisällytä trailerit internetistä ja suorat televisiolähetykset ehdotettuun sisältöön.", + "LabelOptionalNetworkPath": "(Valinnainen) Jaettu verkkokansio", + "LabelOptionalNetworkPathHelp": "Jos tämä kansio on jaettu verkossasi, verkkosijainnin syöttö mahdollistaa muiden laitteiden Emby-sovelluksille suoran yhteyden mediatiedostoihin.", + "SynologyUpdateInstructions": "Kirjaudu DMS:ään ja mene Package Centeriin (pakettikeskukseen) päivittääksesi.", + "HeaderRecordingPostProcessing": "Tallennusten jälkikäsittely", + "LabelPostProcessorArguments": "Jälkikäsittelijän komentoriviargumentit", + "PostProcessorArgumentsHelp": "Tiedonvälitys jälkikäsittelijälle tukee komentoriviarvoja", + "LabelPostProcessor": "Jälkikäsittelysovellus", + "DvrPostProcessorPathArgument": "{path}: Tallennetiedoston täydellinen polku", + "OptionAutomaticallyGroupSeries": "Yhdistä useisiin kansioihin jaetut sarjat automaattisesti.", + "OptionAutomaticallyGroupSeriesHelp": "Jos aktivoituna, yhdistetään tässä kirjastossa olevat, eri kansioihin jaetut sarjat yhtdeksi sarjaksi.", + "WhenDidYouPurchaseApp": "Milloin alunperin ostit tämän sovelluksen?", + "PreferEmbeddedTitlesOverFileNames": "Käytä ensisijaisesti tiedostonsisäisiä nimiä tiedostonimien sijaan.", + "PreferEmbeddedTitlesOverFileNamesHelp": "Tämä määrittää näytettävän oletusotsikon, kun internetistä noudettuja tai paikallisia metatietoja ei ole saatavilla.", + "FriendlyNameForReferenceHelp": "Tuttavallinen näyttönimi itsellesi viitteeksi.", + "HeaderLiveTvTunerSetup": "Televisiovirittimen määritys", + "HeaderTVSourceSetup": "Televisiolähteen määritys", + "HeaderDetectMyDevices": "Tunnista laitteet", + "MessagePleaseWait": "Odota. Tämä voi kestää muutaman minuutin.", + "DetectingDevices": "Tunnistetaan laitteita", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Päivitä metatiedot Internetistä automaattisesti alkuperäisen tuonnin jälkeen", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Päivitä TBA-merkinnän kaltaisilla väliaikaisilla tunnisteilla merkittyjen jaksojen metatiedot automaattisesti", + "EveryNDays": "Joka {0} päivä", + "LabelCertificatePassword": "Varmenteen salasana", + "LabelCertificatePasswordHelp": "Jos sertifikaattisi vaatii salasanan, syötä se tähän.", + "HeaderNewLibrary": "Uusi kirjasto", + "HttpsRequiresCert": "Käyttääksesi suojattua yhteyttä, tarvitset luotetun SSL-sertifikaatin, esim. Let's Encrypt -toimittajalta. Lisää sertifikaatti tai kytke suojatut yhteydet pois käytöstä.", + "ServerRestartNeededAfterPluginInstall": "Palvelin on käynnistettävä uudelleen laajennuksen asennuksen jälkeen.", + "PluginInstalledMessage": "Laajennus asennettiin onnistuneesti. Palvelin täytyy käynnistää uudelleen, jotta muutokset tulevat voimaan.", + "MessagePremiereStatusGood": "Sinulla on {0} Emby Premiere -tilaus ja sen sallittu laitekapasiteetti riittää tällä hetkellä hyvin.", + "MessagePremiereStatusClose": "Sinulla on {0} Emby Premiere -tilaus, mutta sen sallittu laitekapasiteetti on lähellä ylärajaa.", + "MessagePremiereExtendedPlans": "Harkitse {0}laajennettua palvelupakettia{1}", + "MessagePremiereStatusOver": "Sinulla on {0} Emby Premiere -tilaus, mutta sen sallittu laitekapasiteetti on ylitetty!", + "ListItemPremiereSub": "{0} tilaus ostettu maksutavan {2} kautta ja se erääntyy {1}", + "LabelClickToManage": "Hallitse tilausta painamalla tästä", + "LabelCancelInfo": "Voit hallita tätä tilausta suoraan maksutavan {0} kautta", + "LabelAlreadyCanceled": "Tilaus on irtisanottu. Tilausavain pysyy aktiivisena sen erääntymiseen saakka.", + "HeaderCancelSub": "Irtisano Emby Premiere -tilauksesi", + "MessageConfirmSubCancel": "EI, älä mene... Jäät paitsi kaikista Emby Premiere -tilauksen hienoista ominaisuuksista!", + "ButtonCancelSub": "Tiedän, irtisano tilaus siitä huolimatta", + "ButtonDontCancelSub": "Pidä tilaus voimassa", + "MessageSubCancelReqSent": "Koodin omistajalle on lähetetty sähköposti. Seuraa viestin ohjeita viimeistelläksesi tilauksen irtisanomisen. Toivottavasti palaat pian takaisin!", + "MessageSubCancelError": "Jokin meni pieleen tilausta irtisanottaessa. Ole sähköpostitse yhteydessä osoitteeseen {0}, niin selvitämme ongelmasi.", + "LabelAlreadyCancelled": "Tilaus on peruttu. Sinua ei enää veloiteta, mutta ominaisuudet toimivat yllämainittuun päivään saakka.", + "AllowOnTheFlySubtitleExtraction": "Salli tekstitysten purku reaaliajassa.", + "AllowOnTheFlySubtitleExtractionHelp": "Videotiedostojen sisäiset tekstitykset voidaan purkaa videoista ja toimittaa Emby-sovelluksille pelkkänä tekstinä, jolloin videon transkoodausta ei tarvita. Joissakin järjestelmissä tämä saattaa kestää pitkään ja aiheuttaa videon toiston pysähtelyä käsittelyn aikana. Kun asetusta ei käytetä, poltetaan tekstitykset muunnoksen yhteydessä pysyvästi videokuvaan, jolloin ne näkyvät kaikissa laitteissa.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Virheenkorjausloki tulisi aktivoida vain vianetsintätarpeisiin. Tästä aiheutuva suurempi tiedostojärjestelmän käyttö voi estää palvelinkoneen valmiustilan toiminnan joissakin ympäristöissä.", + "LabelSimultaneousConnectionLimit": "Samanaikaisten toistojen rajoitus", + "SimultaneousConnectionLimitHelp": "Yhdenaikaisten mediavirtojen suurin sallittu määrä. Syötä 0 rajatonta toimintaa varten.", + "LaunchWebAppOnStartup": "Kun palvelin käynnistyy, avaa Emby-verkkosovellus automaattisesti oletusselaimeen", + "LaunchWebAppOnStartupHelp": "Tämä avaa verkkosovelluksen järjestelmän oletusselaimeen kun palvelin käynnistyy ensimmäisen kerran. Tätä ei tapahdu palvelimen uudelleenkäynnistyksen yhteydessä.", + "LabelReferrerHeader": "Referer-HTTP-otsake", + "LabelUserAgentHeader": "User agent -HTTP-otsake", + "SupplyCustomValueIfNeeded": "Syötä oma HTTP-header -tieto jos tarpeellista.", + "HeaderConfigureRemoteAccess": "Määritä etäyhteys", + "LearnHowToCreateSynologyShares": "Opi, miten voit jakaa kansioita Synology-laitteessa.", + "LabelAllowedRemoteAddresses": "Ulkoisten IP-osoitteiden suodatus", + "LabelAllowedRemoteAddressesMode": "Ulkoisten IP-osoitteiden suodatustila", + "Whitelist": "Valkoinen lista", + "Blacklist": "Musta lista", + "AllowedRemoteAddressesHelp": "Pilkuin eroteltu listaus IP-osoitteista ja/tai IP/netmask-arvoista verkoille, joista etäyhteydet sallitaan. Jos jätetään tyhjäksi, yhteydet sallitaan kaikista etäosoitteista.", + "LabelLanNetworks": "Paikalliset verkot", + "LanNetworksHelpText": "Pilkuin eroteltu listaus kaistanleveys- ja etäyhteysrajoituksia määritettäessä lähiverkkoon luokiteltavista IP-osoitteista ja/tai IP/netmask-arvoista. Kun määritetty, luokitellaan kaikki muut osoitteet ulkoverkkoon. Jos ei määritetty (tyhjä), luokitellaan lähiverkkoon vain palvelimen aliverkko ja tyypilliset paikalliset IP-aliverkot (esim. 192.168.0.0/24, 172.16.0.0/12).", + "LabelSecureConnectionsMode": "Turvallinen yhteystila", + "PreferredNotRequired": "Ensisijainen, mutta ei pakollinen", + "RequiredForAllRemoteConnections": "Pakollinen kaikille etäyhteyksille", + "HandledByProxy": "Toteutettu käänteisellä välityspalvelimella", + "SaveSubtitlesIntoMediaFolders": "Tallenna ladatut tekstitykset mediatiedostojen kansioihin", + "SaveSubtitlesIntoMediaFoldersHelp": "Tekstitysten säilytys videotiedostojen vieressä mahdollistaa niiden helpomman hallinnan.", + "AutomaticSubtitleDownloadInstructions": "Hallitaksesi tekstitysten automaattista latausta, klikkaa kirjastoa Embyn kirjastoasetuksissa ja muokkaa kirjastokohtaisia tekstitysten latausasetuksia.", + "ProviderNeedsSetupWithUrl": "{0} edellyttää lisämäärityksiä Emby-palvelimen {1}asetuksista{2}.", + "LabelEnableHardwareAcceleration": "Salli laitteistokiihdytys kun mahdollista", + "HeaderPreferredHardwareDecoders": "Ensisijaiset laitteistodekooderit", + "HeaderPreferredHardwareEncoders": "Ensisijaiset laitteistoenkooderit", + "AllowChangingImageAndPassword": "Anna tämän käyttäjän vaihtaa salasanansa ja profiilikuvansa", + "LabelSimultaneousStreamLimit": "Samanaikaisten videotoistojen määrä", + "SimultaneousStreamLimitHelp": "Rajoita yhdenaikaisten videontoistosessioiden määrää.", + "LabelMusicFolderStructure": "Musiikkikansion rakenne", + "LabelMusicFolderStructureHelp": "Tämä vihjaa mediakirjaston tarkastukselle miten mediakansiosi on järjestetty. Jos olet epävarma tai kansiosi eivät täysin vastaa mitään vaihtoehtoa, valitse oletusvalinta \"Muu\".", + "OtherOrUnstructured": "Muu tai järjestelemätön", + "PerfectArtistAlbumTrack": "Täydellisesti esittäjä\\albumi-kansioihin järjesteltyinä, kappaleet albumikansioiden juuressa.", + "PerfectAlbumTrack": "Täydellisesti albumikansioihin järjesteltyinä, kappaleet albumikansioiden juuressa.", + "LabelMinCollectionSize": "Automaattisen kokoelman vähimmäiskoko", + "PerfectAuthorAudioBookTrack": "Täydellisesti kirjailija\\kirja-kansioihin järjesteltyinä, kappaleet kirjakansioiden juuressa.", + "PerfectAudioBookTrack": "Täydellisesti kirjakansioihin järjesteltyinä, kappaleet kirjakansioiden juuressa.", + "MinCollectionSizeHelp": "Luo kokoelmia automaattisesti kun kirjastossasi on vähintään valittu määrä kohteita. Arvon muutto ei vaikuta olemassa oleviin kokoelmiin.", + "LabelImportCollections": "Tuo kokoelmien tiedot metatietolähteistä", + "LabelImportCollectionsHelp": "Kun käytössä, noudetaan kokoelmien tiedot käyttämistäsi metatietolähteistä. Tämä saattaa aiheuttaa ei-toivottujen kokoelmien automaattisen luonnin. Käytöstä poisto estää uusien kokoelmien automaattisen luonnin, muttei poista aiemmin luotuja kokoelmia.", + "LabelAllowAdultMetadata": "Salli aikuisille tarkoitetut metatiedot", + "LabelAllowAdultMetadataHelp": "Salli täsmäävät, aikusiviihdenimikkeet metatietojen hakutuloksissa.", + "HeaderVideoPreviewThumbnails": "Videoiden esikatselukuvat", + "LabelEnableHDRToneMapping": "Käytä HDR-sisällön sävykartoitusta", + "EnableHDRToneMappingHelp": "Sävykartoitus varmistaa oikeanlaisen värien muunnoksen kun transkoodataan HDR-sisältöä, joka näkyisi muutoin merkittävästi himmennettynä ja haaleilla väreillä. Laiteajurit saattavat vaatia joitakin laajennuksia tukeakseen laitteistokiihdytystä tämän ominaisuuden kanssa. Tutustu laitteistokiihdytyksen käyttöönotto-oppaaseemme saadaksesi lisätietoja.", + "WithHardwareAcceleratedTranscoding": "Kyllä, vain laitteistokiihdytyksen kanssa", + "TranscodingStillInitializing": "Emby-palvelimen transkoodauspalvelut käynnistyvät vielä. Ruutu päivittyy kun palvelut ovat valmiina.", + "WithEitherHardwareOrSoftwareTranscoding": "Kyllä, laitteistokiihdytetyn ja ohjelmallisen transkoodauksen kanssa", + "ToneMappingInHardwareDescription": "Sävykatoitus suoritetaan laitteistokiihdytetysti kun se on otettu käyttöön ja laitteisto tukee sitä. Muutoin sitä ei suoriteta.", + "ToneMappingInSoftwareDescription": "Sävykatoitus suoritetaan ohjelmallisesti suorittimella. Tämä on merkittävästi laitteistokiihdytettyä sävykartoitusta hitaampaa ja vaatii erittäin tehokkaan palvelinkoneen.", + "ToneMappingInBothDescription": "Sävykatoitus suoritetaan laitteistokiihdytetysti kun se on otettu käyttöön ja laitteisto tukee sitä. Muutoin se suoritetaan ohjelmallisesti suorittimella. Ohjelmallinen sävykartoitus on merkittävästi laitteistokiihdytettyä sävykartoitusta hitaampaa ja vaatii erittäin tehokkaan palvelinkoneen.", + "AutoMapped": "Kohdistettu atomaattisesti", + "ManuallyMapped": "Kohdistettu manuaalisesti", + "NotMappedToGuideData": "Ei kohdistettu oppaan tietoihin", + "MappedToValue": "Kohdistettu kohteeseen {0}", + "LabelAutomaticallyWakeServerForRecordings": "Herätä tallentamaan palvelinkone automaattisesti.", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Herätystapahtumat ajastetaan palvelimen käyttöjärjestelmällä. Valinnan käytöstä poisto estää tulevien herätysten ajastuksen, muttei poista aiempia ajastuksia.", + "Database": "Tietokanta", + "LabelOptimizeDatabaseOnShutdown": "Pyri optimoimaan tietokanta palvelimen sulun yhteydessä", + "LabelOptimizeDatabaseOnShutdownHelp": "Tietokannan optimointi ei yleensä tee mitään, mutta ajoittain se suorittaa analyysin, jos se vaikuttaa tietokantakyselyiden suunnittelun kannalta hyödylliseltä.", + "LabelDatabaseCacheSize": "Tietokannan välimuistin koko (Mt)", + "LabelDatabaseCacheSizeHelp": "Määrittää tietomäärän, jonka tietokanta säilyttää muistissa kerrallaan tietokantatiedostoa kohden. Suurempi arvo saattaa parantaa Emby-palvelimen suorituyksykyä. Asetuksen käyttöönotto vaatii palvelimen uudelleenkäynnistyksen.", + "LabelDatabaseAnalysisLimit": "Analysoitavien rivien rajoitus", + "LabelDatabaseAnalysisLimitHelp": "Optimoitaessa tietokantaa, on tämä ANALYZE-komennon jokaisessa hakemistossa tutkittavien rivien enimmäismäärä. Suurempi arvo kasvattaa tietokannan optimoinnin tehokkuutta, mutta saattaa samalla hidastaa palvelimen sulketumista.", + "LabelVacuumDb": "Siivoa tietokanta seuraavan Emby-palvelimen käynnistyksen yhteydessä", + "LabelVacuumDbHelp": "Siivoustoiminto rakentaa tietokantatiedoston uudelleen ja pakkaa sen mahdollisimman tiiviisti. Joissain tapauksissa tämä saattaa parantaa Emby-palvelimen suorituskykyä. Huomioi, että palvelin ei ole siivoustoiminnon suorituksen aikana käytettävissä, eikä sen edistymistä ole mahdollista seurata mitenkään. Vältä palvelimen sulkemista väkisin tämän aikana, koska se voi aiheuttaa tietokannan vaurioitumisen. Toiminto on kertaluonteinen ja valinta poistuu käytöstä kun se on suoritettu.", + "AdvancedOptionsWarning": "Nämä ovat edistyneitä valintoja ja yleisesti ne tulee jättää oletusarvoihin, ellei sinulla ole erityistä syytä muuttaa niitä.", + "HeaderRecentlyActiveDevices": "Hiljattain aktiiviset laitteet", + "YesUntilServerRestart": "Kyllä, kunnes palvelin käynnistyy seuraavan kerran uudelleen", + "YesUntilLogRotate": "Kyllä, kunnes lokitiedosto kierrätetään seuraavan kerran", + "LabelSubtitleDownloadMaxAge": "Älä yritä ladata tekstityksiä automaattisesti videoille, jotka ovat vanhempia kuin", + "SubtitleDownloadMaxAgeHelp": "Perustuu metatietojen lisäyspäivän arvoon.", + "NoAgeLimit": "Ei ikärajoitusta", + "AnonymizeLogContents": "Tee lokitiedoista nimettömiä", + "Markers": "Merkinnät", + "LabelGenerateIntroVideoMarkers": "Luo videoille intromerkinnät", + "GenerateIntroVideoMarkersHelp": "Tunnistaa sarjojen introt ja näyttää Emby-sovelluksissa 'Ohita intro' -painikkeen. Introjen tunnistus voi kestää kauan ja kuormittaa suoritinta ja/tai tallennusmediaa merkittävästi.", + "LabelCopyFromUser": "Kopioi asetukset käyttäjältä", + "CopyFromUserHelp": "Valinnainen. Nopeuta käyttäjän luontia käyttämällä pohjana olemassa olevan käyttäjän tietoja.", + "UserPolicy": "Käyttäjän sisältö (kirjaston ja ominaisuuksien käyttöoikeudet, lapsilukon asetukset, yms.)", + "UserConfiguration": "Käyttäjän määritykset (ensisijaiset ääni- ja tekstitysraitojen kielet, kirjaston järjestys, yms.)", + "UserDataAndDescription": "Käyttäjän tiedot (suosikit ja katselu-/kuuntelutilat yms.)", + "HeaderCopyOptions": "Kopioi asetukset", + "LabelMultiRestrictionMode": "Useiden rajoitusten tila", + "MultiRestrictionModeAll": "Salli sisällön täsmäys sekä arvio-, että tunnisterajoituksilla", + "MultiRestrictionModeAny": "Salli sisällön täsmäys joko arvio- tai tunnisterajoituksilla", + "AllowMappingByChannelNumber": "Salli kartoitus ohjelmaoppaan tietoihin kanavanumeroiden perusteella", + "AllowMappingByChannelNumberHelp": "Tätä voidaan käyttää virittimen kanavien ja ohjelmaoppaan kanavatietojen täsmäyksen varmistukseen, kun vastinetta ei löydy kanavan nimen perusteella. Tämä voi tuottaa virheellisiä vastineita, jos virittimeltä saadut kanavanumeroinnit eivät ole oikein.", + "LabelPreferredSourceForChannelLogos": "Molempien ollessa saatavilla, painota oppaan kanavalogoja virittimen sijaan", + "LabelPreferredSourceForChannelNumbers": "Molempien ollessa saatavilla, painota oppaan kanavanumerointeja virittimen sijaan", + "HeaderSoftwareEncoders": "Ohjelmistoenkooderit", + "LabelProxyHeaderMode": "Tunnista päätteiden IP-osoitteet lukemalla välityspalvelinotsakkeet", + "ProxyHeadersRemoteOnly": "Vain kun ne sisältävät etäverkkojen osoitteita", + "ProxyHeaderModeHelp": "Määrittää käytetäänkö yhdistävien laitteiden IP-osoitteiden tunnistukseen pyyntöjen otsakkeita, kuten {0} ja {1}.", + "AllowCameraUpload": "Salli kameratallennus", + "AllowCameraUploadHelp": "Jos sallittu, Emby-mobiilisovellukset voivat varmuuskopioida mobiililaitteillasi otetut kuvat ja videot Emby-palvelimelle automaattisesti.", + "CameraUploadMustBeGranted": "Lisäksi palvelimen ylläpidon on myönnettävä sinulle kameratallennuksen käyttöoikeus.", + "EnableReadingAndWritingPeopleMetadata": "Käytä henkilöiden metatietotiedostojen lukua ja tallennusta", + "EnableReadingAndWritingPeopleMetadataHelp": "Edellyttää \"Nfo Metadata\" -laajennuksen asennusta. Tämä mahdollistaa henkilöihin tekemiesi muutosten tallennuksen metatietotiedostoihin, mutta se myös pidentää kirjastopäivityksiä.", + "LabelIgnoreSampleFiles": "Älä huomioi tiedostoja, joiden nimi sisältää sanan sample, jos niiden koko on megatavuina vähemmän kuin", + "PreferredChannelImageSource": "Ensisijainen kanavakuvan lähde", + "PreferredChannelImageSourceHelp": "Valitse ensisijaisesti käytettävä kanavakuva kun sekä virittimen että ohjelmaoppaan tiedot sisältävät kuvan.", + "CacheImagesInServerData": "Säilytä kuvien kopiot palvelimen metatietokansiossa", + "CacheImagesInServerDataHelp": "Jos media- ja kuvatiedostosi ovat eri laitteella, vähentää niiden kopioiden säilytys palvelimen metatietokansiossa verkon kuormitusta ja voi parantaa suorituskykyä. Vastaavasti tämän välimuistin luonti hidastaa kirjastotarkistuksia ja palvelimen metatietokansio kuluttaa merkittävästi enemmän levytilaa.", + "AllowSharingPersonalContent": "Salli henkilökohtaisen sisällön, kuten soittolistojen, jakaminen muille tämän palvelimen käyttäjille", + "AllowSharingPersonalContentHelp": "Jos myönnetty, käyttäjä voi jakaa soittolistojaan muille käyttäjille. Soittolistojen kohteita rajoitetaan kuitenkin edelleen käyttäjäkohtaisten kirjastooikeuksien ja sisällönvalvonnan perusteella.", + "LiveBufferSizeHours": "Suorien suoratoistolähetysten puskurin kokorajoitus (tunteina)", + "LiveBufferSizeHoursHelp": "Suurempi puskuri tehostaa eteen- ja taaksepäin siirtymistä suorissa lähetyksissä.", + "LabelTranscodingMaxResolution": "Suurin transkoodausresoluutio", + "TranscodingMaxResolutionHelp": "Rajoittaa kaikkien videotranskoodausten enimmäistarkkuutta Emby-soitinten asetuksista riippumatta. Auttaa vähentämään pavelimen transkoodauksesta johtuvaa kuormitusta.", + "EnableHevcEncodingExp": "Käytä HEVC-enkoodausta (kokeellinen)", + "EnableHevcEncodingHelp": "Mahdollista transkoodaus HEVC-koodekilla, jos päätelaite tukee sitä.", + "LabelEnableMultiPartItems": "Tunnista moniosaiset kohteet", + "EnableMultiPartItemsHelp": "Tunnista automaattisesti samaan ryhmään kuuluvat tiedostot, jotka on nimetty esim. osa 1, osa 2 yms. Lisäosat näytetään kohteen ensisijaisessa tietonäytössä.", + "MultiVersionItemsDetectionHelp": "Tunnista ja ryhmittele kohteen eri versiot. Versiovalikoima löytyy kohteiden ensisijaisista tietonäytöistä. Tiedostonimiin perustuva ryhmittely edellyttää tämän mahdolistavaa tiedostojen nimeämistä ja lajittelua.", + "MultiVersionMoviesDetectionHelp": "Metatietoihin perustuva ryhmittely tyhmittelee elokuvat, joilla on sama ulkoinen ID (TMDB, IMDb yms.)", + "EnableMultiPartItemsTVHelp": "Ei tue sarjojen jaksoja.", + "HeaderAutomaticGrouping": "Automaattinen ryhmittely", + "LabelMultiVersionItemsDetection": "Moniversioisten kohteiden tunnistus", + "MultiVersionItemsDetectionBoth": "Tunnista versiot tiedostonimien ja metatietojen perusteella", + "MultiVersionItemsDetectionFiles": "Tunnista versiot tiedostonimien perusteella", + "MultiVersionItemsDetectionMetadata": "Tunnista versiot metatietojen perusteella", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "RightToLeft": "Right-to-left order", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "Legacy": "Legacy", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode" +} diff --git a/strings/fr-CA.json b/strings/fr-CA.json new file mode 100644 index 0000000..9681965 --- /dev/null +++ b/strings/fr-CA.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Vous avez terminé!", + "ThisWizardWillGuideYou": "Cet assistant vous guidera dans le processus de configuration. Pour commencer, merci de sélectionner votre langue préférée.", + "HeaderCreateYourFirstUser": "Créez votre premier utilisateur", + "ButtonQuickStartGuide": "Guide de démarrage rapide", + "MoreUsersCanBeAddedLater": "D'autres utilisateurs pourront être ajoutés ultérieurement à partir des configurations du serveur.", + "UserProfilesIntro": "Emby supporte nativement les profils utilisateurs, les préférences d'affichage, la sauvegarde de l'état de lecture et le contrôle parental.", + "WizardCompleted": "C'est tout ce dont nous avons besoin pour l'instant. Emby a commencé à scanner votre médiathèque. Découvrez nos applications, puis cliquez sur Terminer pour afficher le Tableau de bord du serveur", + "MessagePleaseAcceptTermsOfService": "Veuillez accepter les conditions d'utilisations et la politique de confidentialité avant de continuer.", + "OptionIAcceptTermsOfService": "J'accepte les conditions d'utilisation.", + "SeeOurHwaGuide": "Voir notre {0}guide de configuration de l’accélération matérielle{1}.", + "HeaderEmbyServerReleaseNotes": "Notes de version du serveur Emby", + "AllowSubtitleDownloading": "Autoriser le téléchargement de sous-titres", + "AllowSubtitleManagement": "Autoriser la suppression des sous-titres existants", + "NewUserNameHelp": "Les utilisateurs seront affichés comme ceci sur votre serveur.", + "ChapterMarkers": "Marqueurs de chapitre", + "LabelThumbnailImagesInterval": "Intervalle des vignettes:", + "ThumbnailImagesIntervalHelp": "Des vignettes plus fréquents fourniront une meilleur expérience, mais nécessiteront plus d’espace disque et plus de temps pour créer les images.", + "LabelAuthProvider": "Fournisseur d'authentification", + "AuthProviderHelp": "Les administrateurs utilisent toujours le fournisseur Emby pour s'assurer que vous êtes toujours capable de vous connecter.", + "HeaderNewUser": "Nouvel utilisateur", + "ChangeServerDisplayName": "Changer le nom d'affichage du serveur", + "ShowAdvancedSettings": "Afficher les réglages avancés", + "ChangingMetadataImageSettingsNewContent": "Les changements apportés aux paramètres d'acquisition de métadonnées ou d'images s'appliquera seulement au nouveau contenu ajouté à votre bibliothèque. Pour appliquer les changements aux titres existants, vous devrez rafraîchir leurs métadonnées manuellement.", + "AllowRemoteAccess": "Autoriser les connexions distantes à ce serveur Emby.", + "AllowRemoteAccessHelp": "Si désélectionné, toutes les connexions distantes seront bloqués.", + "Alerts": "Alertes", + "LabelTrackTitleDisplay": "Affichage des titres de piste intégrés :", + "GenerateUserFriendlyTrackTitles": "Générer des titres conviviaux en utilisant les informations des pistes", + "PreferOriginalTrackTitles": "Préférer les titres intégrés", + "TrackTitleDisplayHelp": "Choisir le titre affiché des pistes audio et de sous-titres intégrées. Préférer les titres intégrés n’est pas recommandé sauf si vous gérez manuellement les informations des pistes intégrées.", + "EnableTranscodingThrottle": "Activer la régulation", + "EnableTranscodingThrottleHelp": "Emby ajustera dynamiquement la vitesse de transcodage afin de réduire l'utilisation du processeur.", + "HeaderTypeMetadataDownloaders": "{0} téléchargeurs de métadonnées", + "HeaderTypeImageFetchers": "{0} acquisitionneurs d'images", + "HeaderImageOptions": "Options d'image", + "OptionBeta": "Bêta", + "RegisterWithPayPal": "S'inscrire avec PayPal", + "LabelSyncTempPath": "Chemin de fichier temporaire :", + "LabelSyncTempPathHelp": "Spécifiez un dossier de travail personnalisé. Les médias créés au cours du processus de conversion seront stockés ici.", + "LabelCustomCertificatePath": "Chemin de votre certificat SSL :", + "LabelCustomCertificatePathHelp": "Chemin vers un fichier PKCS #12 contenant un certificat et une clé privée pour activer TLS sur votre nom de domaine.", + "HeaderSetupLibrary": "Configurer les médiathèques", + "LabelTimeLimitHours": "Limite de temps (heures) :", + "HeaderPreferredMetadataLanguage": "Langue préférée de métadonnées", + "LabelSaveLocalMetadata": "Enregistrer les images dans les dossiers multimédia", + "LabelSaveLocalMetadataHelp": "L'enregistrement des images dans les dossiers multimédia les placera à un endroit où elles peuvent être facilement stockées et modifiées.", + "TabAccess": "Accès", + "HeaderDeviceAccess": "Accès à l'appareil", + "OptionEnableAccessFromAllDevices": "Autoriser l'accès depuis tous les appareils", + "OptionEnableAccessToAllChannels": "Activer l'accès à toutes les chaînes", + "OptionEnableAccessToAllLibraries": "Permettre l'accès à toutes les bibliothèques", + "DeviceAccessHelp": "Le filtrage d’accès de l’utilisateur aux appareils l’empêchera d’utiliser de nouveaux appareils tant qu’ils ne sont pas approuvés ici.", + "LabelDisplayMissingEpisodesWithinSeasons": "Afficher les épisodes manquants dans les saisons", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Ceci doit également être activé pour les médiathèques TV dans la configuration du serveur Emby.", + "ImportMissingEpisodesHelp": "Les informations à propos des épisodes manquants seront importées dans votre base de donnée Emby et affichées dans les saisons et séries. Cela peut accroître significativement la durée d'actualisation de la médiathèque.", + "MessageEnablingOptionLongerScans": "Activer cette option peut accroître la durée d'actualisation de la médiathèque.", + "LabelMaxParentalRating": "Classification parentale maximale permise :", + "MaxParentalRatingHelp": "Le contenu ayant une classification parentale plus élevée ne sera pas visible par cet utilisateur.", + "LibraryAccessHelp": "Sélectionnez les dossiers multimédia à partager avec cet utilisateur. Les administrateurs pourront modifier tous les dossiers en utilisant le gestionnaire de métadonnées.", + "ChannelAccessHelp": "Sélectionnez les chaînes à partager avec cet utilisateur. Les administrateurs pourront modifier toutes les chaînes en utilisant le gestionnaire de métadonnées.", + "ImageUploadAspectRatioHelp": "Rapport d'aspect 1:1 recommandé. Seulement JPG/PNG.", + "AlreadyPaidHelp1": "Si vous avez déjà payer pour l'installation d'une ancienne version de Media Browser for Android, vous n'avez pas besoin de payer à nouveau pour activer l'application. Cliquez sur OK pour nous envoyer un courriel à {0} et nous l'activerons pour vous.", + "AlreadyPaidHelp2": "Vous avez Emby Premiere? annuler cette boîte de dialogue, la configuration d’Emby Premiere dans votre Dashboard Emby Server sous Aide -> Emby Premiere, et il se déverrouille automatiquement.", + "TabMyPlugins": "Mes extensions", + "TabCatalog": "Catalogue", + "HeaderAutomaticUpdates": "Mises à jour automatiques", + "Standard": "Standard", + "TabSupporterKey": "Clé Emby Premiere", + "OptionHideUserLocal": "Ne pas afficher cet utilisateur dans les écrans de connexion de réseaux locaux", + "OptionHideUserRemote": "Ne pas afficher cet utilisateur dans les écrans de connexion de réseaux distants", + "OptionHideUserFromLoginHelp": "Recommandé pour les comptes administrateurs privés ou cachés. L'utilisateur devra s'authentifier manuellement en saisissant son nom d'utilisateur et son mot de passe.", + "HideFromUnusedDevices": "Masquer cet utilisateur des écrans de connexion sur les appareils auxquels il ne s'est jamais connecté", + "OptionDisableUser": "Désactiver cet utilisateur", + "OptionDisableUserHelp": "Si désactivé, le serveur n'autorisera pas de connexion de cet utilisateur. Les connexions existantes seront interrompues.", + "OptionAllowUserToManageServer": "Autoriser la gestion du serveur à cet utilisateur", + "HeaderFeatureAccess": "Accès aux fonctionnalités", + "OptionAllowMediaPlayback": "Autoriser la lecture de média", + "AllLibraries": "Toutes les médiathèques", + "HeaderAllowMediaDeletionFrom": "Autoriser la suppression de médias à partir de", + "LiveTVRecordingManagement": "Gestion des enregistrements TV", + "OptionAllowRemoteControlOthers": "Autoriser le contrôle à distance des autres utilisateurs", + "OptionAllowRemoteSharedDevices": "Autoriser le contrôle à distance des appareils partagés", + "OptionAllowRemoteSharedDevicesHelp": "Les appareils DLNA sont considérés comme partagés tant qu'un utilisateur ne les contrôles pas.", + "OptionAllowLinkSharing": "Autoriser le partage de média sur les réseaux sociaux", + "OptionAllowLinkSharingHelp": "Seules les pages Web contenant des informations de médias sont partagés. Les fichiers multimédias ne sont jamais partagés publiquement. Les partages sont limités dans le temps et expirent après {0} jours.", + "OptionRelease": "Version officielle", + "LabelAllowServerAutoRestartPlugin": "Autoriser le redémarrage auto du serveur après des mises à jour de plugin", + "LabelAllowServerAutoRestartServerOrPlugin": "Autoriser le redémarrage auto du serveur à redémarrer après toutes mises à jour", + "LabelAllowServerAutoRestartHelp": "Le serveur ne redémarrera que pendant les périodes d'inactivité, quand aucun utilisateur n'est connecté.", + "LabelRunServerAtStartup": "Démarrer le serveur au démarrage", + "LabelRunServerAtStartupHelp": "Cela démarrera l'icône Emby dans la barre des tâches au démarrage de Windows. Si vous avez configuré un service Windows, laissez cette option désactivée et configurez le service pour qu'il s'exécute au démarrage.", + "ButtonSelectDirectory": "Sélectionner le répertoire", + "LabelCachePath": "Chemin du cache :", + "DefaultMetadataLangaugeDescription": "Ce sont vos réglages par défaut. Ils peuvent être personnalisés pour chaque médiathèque.", + "LabelCachePathHelp": "Spécifiez un emplacement personnalisé pour les fichiers temporaires du serveur, comme par exemple les images. Laissez vide pour utiliser la valeur par défaut.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Données Logicielles", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Chemin des métadonnées :", + "LabelMetadataPathHelp": "Spécifiez un emplacement pour les illustrations et les métadonnées téléchargées, ou effacez-le pour revenir à la valeur par défaut. Si vous modifiez cela, vous devrez migrer manuellement le contenu de l'ancien emplacement vers le nouvel emplacement. Si vous modifiez manuellement le contenu du dossier de métadonnées, vous devrez exécuter la {0}tâche planifiée d'analyse du dossier de métadonnées{1}.", + "LabelTranscodingTempPath": "Chemin du répertoire temporaire de transcodage :", + "LabelTranscodingTempPathHelp": "Ce dossier contient les fichiers temporaires utilisés par le transcodeur. Spécifiez un chemin personnalisé ou laissez vide pour utiliser le chemin par défaut dans le dossier de données du serveur.", + "GenerateVideoPreviewThumbnailsHelp": "Les vignettes d'aperçu vidéo fournissent des mises à jour en direct lors de la recherche dans les applications prises en charge. La génération des vignettes peut être longue, causer un usage intensif du CPU et consommer de l'espace disque.", + "AsAScheduledTask": "comme tâche planifiée", + "AsAScheduledTaskAndMediaAdded": "comme tâche planifiée et à l'ajout d'un media.", + "ButtonRefreshGuideData": "Actualiser les données du guide.", + "LabelNumberOfGuideDays": "Nombre de jours de données du guide à télécharger :", + "LabelNumberOfGuideDaysHelp": "Télécharger plus de journées du guide permet de programmer des enregistrements plus longtemps à l'avance et de visualiser plus de contenus, mais prendra également plus de temps. Automatique permettra une sélection automatique basée sur le nombre de chaînes. Veuillez noter qu'au-delà de votre choix, les données doivent exister dans la source du guide pour pouvoir être téléchargées. Certaines sources de guide ne proposent que les prochaines 24 heures. Emby Guide Data propose jusqu'à 14 jours.", + "HeaderFetchImages": "Télécharger les images :", + "LabelMaxBackdropsPerItem": "Nombre maximum d'images d'arrière-plan par élément :", + "LabelMaxScreenshotsPerItem": "Nombre maximum de captures d'écran par élément :", + "LabelMinBackdropDownloadWidth": "Largeur minimum d'image d'arrière-plan à télécharger :", + "LabelMinScreenshotDownloadWidth": "Largeur minimum de capture d'écran à télécharger :", + "ButtonAddScheduledTaskTrigger": "Ajouter un déclencheur", + "ButtonAdd": "Ajouter", + "LabelTriggerType": "Type de déclencheur :", + "OptionOnInterval": "Par intervalle", + "OptionAfterSystemEvent": "Après un évènement système", + "LabelDay": "Jour :", + "LabelTime": "Heure :", + "LabelEvent": "Évènement :", + "OptionWakeFromSleep": "Sortie de veille", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Activer la surveillance en temps réel", + "LabelEnableRealtimeMonitorHelp": "Les modifications des fichiers seront traitées immédiatement, sur les systèmes de fichiers qui le permettent.", + "Community": "Communauté", + "HeaderEmbyNews": "Actualités", + "LabelFriendlyServerName": "Surnom du serveur :", + "LabelFriendlyServerNameHelp": "Ce nom sera utilisé pour identifier le serveur. Sinon le nom d'ordinateur sera utilisé.", + "LabelPreferredDisplayLanguage": "Langue d'affichage préférée :", + "LabelPreferredDisplayLanguageHelp": "La traduction d'Emby est un projet en cours.", + "LabelReadHowYouCanContribute": "Voir comment vous pouvez contribuer.", + "LabelCustomCss": "CSS personnalisée :", + "LabelCustomCssHelp": "Appliquez votre propre feuille de styles CSS personnalisée à l'interface web.", + "LabelLocalHttpServerPortNumber": "Numéro de port http local :", + "LabelLocalHttpServerPortNumberHelp": "Le port TCP que le serveur http d'Emby doit utiliser.", + "LabelPublicHttpPort": "Numéro de port http public :", + "LabelPublicHttpPortHelp": "Le numéro de port public à mapper sur le port http local.", + "LabelPublicHttpsPort": "Numéro de port https public :", + "LabelPublicHttpsPortHelp": "Le numéro de port public à mapper sur le port https local.", + "RequireHttps": "Exiger HTTPS pour les connexions externes", + "RequireHttpsHelp": "Activez cette option pour que les connections en HTTP soit redirigées en HTTPS.", + "LabelHttpsPort": "Numéro de port https local :", + "LabelHttpsPortHelp": "Le port TCP que le serveur https d'Emby doit utiliser.", + "LabelEnableAutomaticPortMap": "Autoriser la connexion automatique de port", + "LabelEnableAutomaticPortMapHelp": "Essayer de connecter automatiquement le port public au port local via UPnP. Cela peut ne pas fonctionner avec certains modèles de routeurs.", + "LabelExternalDDNS": "Domaine extérieur :", + "LabelExternalDDNSHelp": "Si vous avez un DNS dynamique saisissez-le ici. Les applications Emby vont l'utiliser pour les connexions distantes. Ce champ est obligatoire lorsqu'il est utilisé avec un certificat SSL personnalisé. Exemple : mondomaine.com.", + "LabelMinResumePercentage": "Pourcentage minimum pour reprendre :", + "LabelMaxResumePercentage": "Pourcentage maximum pour reprendre :", + "LabelMinResumeDuration": "Temps de reprise minimum (secondes) :", + "LabelMinResumePercentageHelp": "Les médias seront considérés comme non lus si arrêtés avant ce temps", + "LabelMaxResumePercentageHelp": "Les médias sont considérés comme lus si arrêtés après ce temps", + "LabelMinResumeDurationHelp": "La lecture de médias plus courts que cette durée ne pourra pas être reprise.", + "HeaderStatus": "Status", + "Subscriptions": "Abonnement", + "LabelEndingEpisodeNumber": "Numéro du dernier épisode :", + "LabelEndingEpisodeNumberHelp": "Nécessaire uniquement pour les fichiers multi-épisodes", + "HeaderSupportTheTeam": "Soutenez l'équipe d'Emby", + "HeaderSupportTheTeamHelp": "Aidez à garantir la continuité du développement de ce projet en achetant Emby Premiere. Une partie du revenu sera reversée aux autres outils gratuits dont nous dépendons.", + "DonationNextStep": "Une fois terminé, revenez sur cette page et saisissez votre clé Emby Premiere, que vous aurez reçue par courriel.", + "HeaderRunningTasks": "Tâches en cours d'exécution", + "ButtonUpdateNow": "Mettre à jour", + "PleaseUpdateManually": "Merci d'éteindre le serveur et d'installer la dernière version.", + "ServerUpToDate": "Le serveur Emby est à jour", + "MessagePleaseRestartServerToFinishUpdating": "Merci de redémarrer le serveur pour appliquer les mises à jour.", + "LabelDownMixAudioScale": "Booster l'audio lors du downmix :", + "LabelDownMixAudioScaleHelp": "Augmente le volume de l'audio quand on diminue le nombre de canaux. Mettre à 1 pour préserver la valeur originale du volume.", + "HeaderForgotKey": "Clé oubliée", + "LabelSupporterEmailAddress": "L'adresse courriel avec laquelle la clé a été achetée.", + "ButtonRetrieveKey": "Obtenir la clé", + "LabelSupporterKey": "Clé Emby Première (collez depuis le courriel) :", + "LabelSupporterKeyHelp": "Entrez votre clé Emby Premiere pour commencer à profiter d'avantages supplémentaires.", + "MessageInvalidKey": "Clé Emby Premiere introuvable ou incorrecte.", + "ErrorMessageInvalidKey": "Pour pouvoir souscrire au contenu Premium, vous devez également posséder un abonnement Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Sauter si la vidéo contient déjà des sous-titres.", + "LabelSkipIfGraphicalSubsPresentHelp": "Conserver les versions textes des sous-titres permettra une diffusion plus efficace et diminuera la probabilité d'un transcodage de la vidéo.", + "HeaderDownloadLanguages": "Téléchargement des langues :", + "LabelSkipIfAudioTrackPresent": "Sauter si la piste audio correspond à la langue de téléchargement", + "LabelSkipIfAudioTrackPresentHelp": "Décocher cette option va s'assurer que toutes les vidéos ont des sous-titres, quelle que soit la langue de la piste audio.", + "SendMessage": "Envoyer un message", + "HeaderSendMessage": "Envoyer un message", + "ButtonSend": "Envoyer", + "LabelMessageText": "Texte du message :", + "LabelMessageTitle": "Titre du message :", + "ButtonEditOtherUserPreferences": "Modifier ce profil utilisateur, son avatar et ses préférences personnelles.", + "LabelLoginDisclaimer": "Avertissement de connexion", + "LabelLoginDisclaimerHelp": "Le slogan sera affiché en bas de la page de connexion.", + "HeaderTranscodingTemporaryFiles": "Fichiers temporaires de transcodage", + "HeaderApiKeys": "Clés API", + "HeaderApiKeysHelp": "Les applications externes ont besoin d'une clé d'API pour communiquer avec le serveur Emby. Les clés sont distribuées lors d'une connexion avec un compte Emby, ou bien en accordant manuellement une clé à une application.", + "HeaderApiKey": "Clé API", + "HeaderResumeSettings": "Paramètres de reprise", + "HeaderFetcherSettings": "Paramètres du récupérateur", + "HeaderActivity": "Activité", + "ButtonPurchase": "Acheter", + "HeaderInstall": "Installer", + "LabelSelectVersionToInstall": "Sélectionner la version à installer :", + "LinkLearnMoreAboutSubscription": "Apprenez-en davantage sur Emby Premiere", + "MessagePluginRequiresSubscription": "Cette extension nécessitera un abonnement Emby Premiere au-delà de la période d'essai gratuite de 14 jours.", + "MessagePremiumPluginRequiresMembership": "Cette extension nécessitera un abonnement Emby Premiere au-delà de la période d'essai gratuite de 14 jours.", + "HeaderDeveloperInfo": "Informations du développeur", + "HeaderRevisionHistory": "Historique des révisions", + "ButtonViewWebsite": "Voir le site", + "OptionSaveMetadataAsHidden": "Enregistrer les métadonnées et les images en tant que fichier cachés", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Plus d'infos sur Emby Connect", + "LabelDateAddedBehavior": "Choix de la date d'ajout pour le nouveau contenu :", + "OptionDateAddedImportTime": "Utiliser la date d'ajout dans la médiathèque", + "OptionDateAddedFileTime": "Utiliser la date de création du fichier", + "LabelDateAddedBehaviorHelp": "Si une métadonnée est présente, elle sera toujours utilisée avant ces options.", + "HeaderLibrarySettings": "Paramètres de médiathèque", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Les applications Emby peuvent automatiquement transférer les photos prises depuis vos appareils mobiles vers votre serveur Emby.", + "LabelCameraUploadPath": "Chemin de transfert depuis l'appareil photo :", + "LabelCameraUploadPathHelp": "Choisissez un dossier de transfert personnalisé. Il remplacera les paramètres par défaut de la section Transfert depuis l'appareil photo. Sinon, le dossier par défaut sera utilisé. Si vous utilisez un dossier personnalisé, vous devrez l'ajouter comme médiathèque dans la configuration de la médiathèque Emby.", + "DefaultCameraUploadPathHelp": "Choisissez un dossier personnalisé. Sinon le dossier par défaut sera utilisé. Si vous utilisez un dossier personnalisé, vous devrez l'ajouter comme médiathèque dans la configuration de la médiathèque Emby.", + "LabelCreateCameraUploadSubfolder": "Créer un sous-dossier pour chaque appareil", + "LabelCreateCameraUploadSubfolderHelp": "Des dossiers spécifiques peuvent êtres affectés aux appareils en cliquant sur le bouton correspondant dans la page Appareils.", + "LabelCustomDeviceDisplayNameHelp": "Entrez un nom d'affichage personnalisé ou laissez vide pour utiliser le nom rapporté par l'appareil.", + "TabParentalControl": "Contrôle Parental", + "HeaderAccessSchedule": "Programme d'Accès", + "HeaderAccessScheduleHelp": "Créez un programme d'accès pour limiter l'accès à certaines heures.", + "HeaderLibraryAccess": "Accès à la médiathèque", + "HeaderChannelAccess": "Accès aux chaînes", + "LabelForgotPasswordUsernameHelp": "Saisissez votre nom d'utilisateur, si vous vous en souvenez.", + "TitlePasswordReset": "Mot de passe réinitialisé", + "HeaderBlockItemsWithNoRating": "Bloquer les éléments avec des informations de classification inconnues ou n'en disposant pas :", + "LabelBlockContentWithTags": "Filtrer les éléments avec les étiquettes :", + "LabelTagRestrictionMode": "Mode de restriction d’étiquettes :", + "BlockItemsWithTheseTags": "Bloquer les éléments avec ces étiquettes", + "AllowItemsWithTheseTags": "N’autoriser que les éléments avec ces étiquettes", + "OptionAllowContentDownloading": "Autoriser le téléchargement des médias", + "LabelNewUserNameHelp": "Les noms d'utilisateur peuvent contenir des lettres (a-z), des chiffres (0-9), des tirets (-), des tirets bas (_), des apostrophes (') et des points (.).", + "HeaderThisUserIsCurrentlyDisabled": "Cet utilisateur est actuellement désactivé. Pour l’activer, consultez l’option en bas de cette page.", + "OptionAllowSyncTranscoding": "Autoriser le téléchargement des médias qui demande un transcodage", + "AllowMediaConversion": "Autoriser la conversion des médias", + "AllowMediaConversionHelp": "Autoriser ou refuser l'accès à la fonctionnalité de conversion des médias.", + "OptionAllowAudioPlaybackTranscoding": "Permettre le transcodage audio, si nécessaire, pendant la lecture", + "OptionAllowVideoPlaybackTranscoding": "Permettre le transcodage vidéo, si nécessaire, pendant la lecture", + "OptionAllowVideoPlaybackRemuxing": "Permettre le changement de formats de conteneur, si nécessaire, pendant la lecture", + "OptionAllowMediaPlaybackTranscodingHelp": "Limiter l’accès au transcodage désactivera la sélection de la qualité et peut entraîner des échecs de lecture dans les applications Emby en raison de formats de média non pris en charge ou de bande passante du réseau insuffisante.", + "LabelRemoteClientBitrateLimit": "Limite de débit de diffusion en continue par Internet (Mbps) :", + "LabelRemoteClientBitrateLimitHelp": "Une limite de débit optionnelle par diffusion pour les connexions hors du réseau local. Utile pour éviter que les appareils ne demandent un débit supérieur à ce que votre connexion internet peu fournir. Cela peut augmenter la charge du processeur de votre serveur pour transcoder les vidéos à la volée à un débit plus faible.", + "LabelUserRemoteClientBitrateLimitHelp": "Cela va écraser les valeurs globales par défaut configurés dans les paramètres avancés du serveur.", + "OptionEnableFullSpeedConversion": "Autoriser le transcodage rapide", + "OptionEnableFullSpeedConversionHelp": "Par défaut, les conversions sont réalisées lentement pour minimiser la consommation de ressources.", + "OptionEnableAutomaticServerUpdates": "Activer les mises à jour automatiques du serveur", + "HeaderTVSources": "Sources TV", + "HeaderAddTvSource": "Ajouter une source TV", + "LabelTunerIpAddress": "Adresse IP du syntoniseur :", + "HeaderGuideProviders": "Fournisseurs de données de guides", + "HeaderAddGuideSource": "Ajouter une source au guide des programmes", + "LabelZipCode": "Code postal :", + "LabelLineup": "Programmation :", + "LabelImportOnlyFavoriteChannels": "Restreindre aux chaînes ajoutées aux favoris", + "ImportFavoriteChannelsHelp": "Activez cette option pour n'importer que les chaînes ajoutées aux favoris sur le syntoniseur.", + "HeaderDefaultRecordingSettings": "Paramètres d'enregistrement par défaut", + "LabelDisplayName": "Nom d'affichage :", + "OptionDownloadImagesInAdvance": "Télécharger les images en avance", + "OptionDownloadImagesInAdvanceHelp": "Par défaut, la plupart des images sont téléchargées seulement lorsqu'une application Emby le demande. Sélectionnez cette option pour télécharger toutes les images à l'avance, lorsqu'un nouveau média est importé. Cela peut allonger significativement la durée d'actualisation de la médiathèque.", + "MessageThankYouForSupporting": "Merci de soutenir Emby.", + "FileReadCancelled": "La lecture du fichier a été annulée.", + "FileNotFound": "Fichier introuvable.", + "FileReadError": "Une erreur est survenue pendant la lecture du fichier.", + "NoPluginConfigurationMessage": "Cette extension n'a aucun paramètre à configurer.", + "HeaderNewApiKey": "Nouvelle clé API", + "HeaderNewApiKeyHelp": "Permet à une application de communiquer avec le serveur Emby.", + "MessageKeyEmailedTo": "Clé envoyée par courriel à {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Merci. Votre clé Emby Premiere a été mise à jour.", + "MessageKeyRemoved": "Merci. Votre clé Emby Premiere a été supprimée.", + "TextEnjoyBonusFeatures": "Profitez de fonctionnalités bonus", + "MessageErrorLoadingSupporterInfo": "Une erreur s'est produite lors du chargement des informations Emby Premiere. Veuillez réessayer plus tard.", + "ValueTimeLimitSingleHour": "Limite de temps : 1 heure", + "ValueTimeLimitMultiHour": "Limite de temps : {0} heures", + "General": "Général", + "HeaderScreenSavers": "Économiseurs d’écran", + "Reporting": "Rapports", + "LabelStopping": "En cours d'arrêt", + "HeaderSelectCertificatePath": "Sélectionnez le chemin du certificat", + "HeaderSupporterBenefit": "Un abonnement Emby Premiere vous offre des avantages supplémentaires tels que l'accès au DVR Emby, aux médias hors-ligne, aux extensions premium et plus encore. {0}En savoir plus{1}.", + "LabelAbortedByServerShutdown": "(Annulé par l'extinction du serveur)", + "LabelScheduledTaskLastRan": "Dernière exécution {0}, durée {1}.", + "HeaderDeleteTaskTrigger": "Supprimer le déclencheur de tâche", + "MessageDeleteTaskTrigger": "Voulez-vous vraiment supprimer ce déclencheur de tâche ?", + "MessageNoPluginsDueToAppStore": "Pour gérer vos extensions, utilisez l'application web Emby.", + "LabelVersionInstalled": "{0} installé(s)", + "HeaderSelectServerCachePath": "Sélectionner le chemin du cache de serveur", + "HeaderSelectTranscodingPath": "Sélectionner le chemin du dossier temporaire de transcodage", + "HeaderSelectMetadataPath": "Sélectionner le chemin des métadonnées", + "HeaderSelectServerCachePathHelp": "Parcourir ou saisir le chemin d'accès à utiliser pour les fichiers cache du serveur. Le dossier doit être accessible en écriture.", + "HeaderSelectTranscodingPathHelp": "Parcourir ou saisir le chemin d'accès à utiliser pour les fichiers de transcodage temporaires. Le dossier doit être accessible en écriture.", + "HeaderSelectMetadataPathHelp": "Parcourir ou saisir le chemin d'accès où vous aimeriez stocker les métadonnées. Le dossier doit être accessible en écriture.", + "MessageConfirmRestart": "Voulez-vous vraiment redémarrer le serveur Emby ?", + "MessageConfirmShutdown": "Voulez-vous vraiment éteindre le serveur Emby ?", + "LabelLocalAccessUrl": "Accès local (LAN) : {0}", + "LabelRemoteAccessUrl": "Accès à distance (WAN) : {0}", + "LabelRunningOnPort": "En cours d'exécution sur le port http {0}", + "LabelRunningOnPorts": "En cours d'exécution sur les ports http {0} et https {1}", + "LabelCurrentPath": "Chemin d'accès actuel :", + "HeaderSelectMediaPath": "Sélectionnez le chemin du média", + "HeaderSelectPath": "Sélectionnez un chemin", + "MessageDirectoryPickerInstruction": "Les chemins réseaux peuvent être saisis manuellement dans le cas où l'utilisation du bouton Réseau ne parvient pas à localiser vos appareils. Par exemple, {0} ou {1}.", + "MessageDirectoryPickerBSDInstruction": "Sur BSD, vous devrez peut-être configurer le stockage de votre jail FreeNAS pour autoriser Emby à y accéder.", + "MessageDirectoryPickerLinuxInstruction": "Pour Linux sur Arch Linux, CentOS, Debian, Fedora, OpenSuse ou Ubuntu, vous devez au moins autoriser l'accès en lecture à vos répertoires de stockage pour l'utilisateur Emby .", + "MetadataManager": "Gestionnaire de métadonnées", + "OptionBlockLiveTvChannels": "Chaînes TV en direct", + "OptionBlockChannelContent": "Chaînes Internet", + "ButtonRevoke": "Révoquer", + "MessageConfirmRevokeApiKey": "Voulez-vous vraiment révoquer cette clé API ? La connexion de l'application au serveur Emby sera brutalement interrompue.", + "HeaderConfirmRevokeApiKey": "Révoquer la clé API", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Veuillez accepter les conditions d'utilisation avant de poursuivre.", + "HeaderChangeFolderType": "Modifier le type de contenu", + "HeaderChangeFolderTypeHelp": "Pour modifier le type, veuillez supprimer et recréer la médiathèque avec le nouveau type.", + "HeaderAlert": "Alerte", + "MessagePleaseRestart": "Veuillez redémarrer pour finaliser les mises à jour.", + "OptionHomeVideos": "Vidéos et photos personnelles", + "OptionBooks": "Livres", + "HeaderMetadataReaders": "Lecteurs de métadonnées", + "LabelMetadataReadersHelp": "Classez vos sources locales de métadonnées préférées dans l'ordre de priorité. Le premier fichier trouvé sera lu.", + "HeaderSubtitleDownloaders": "Outils de téléchargement de sous-titres", + "SubtitleDownloadersHelp": "Activer et ranger vos outils de téléchargement de sous-titres favoris par ordre de priorité. D'autres sources de sous-titres peuvent être téléchargées.", + "LabelMetadataDownloaders": "Téléchargeurs de métadonnées :", + "LabelMetadataDownloadersHelp": "Activez et classez vos sources de téléchargement de métadonnées préférées dans l'ordre de priorité. Les plus basses seront utilisées uniquement pour remplir les informations manquantes.", + "HeaderMetadataSavers": "Enregistreurs de métadonnées", + "LabelMetadataSaversHelp": "Sélectionnez un format de fichier pour l'enregistrement des métadonnées.", + "LabelImageFetchers": "Récupérateurs d'image :", + "LabelImageFetchersHelp": "Activez cette option pour classer vos récupérateurs d'images par ordre de priorité.", + "PersonTypePerson": "Personne", + "HeaderRemoveMediaLocation": "Supprimer l'emplacement de média", + "MessageConfirmRemoveMediaLocation": "Voulez-vous vraiment supprimer cet emplacement ?", + "LabelNewName": "Nouveau nom :", + "HeaderRemoveLibrary": "Supprimer la bibliothèque", + "MessageAreYouSureYouWishToRemoveLibrary": "Êtes-vous sûr de vouloir supprimer la bibliothèque '{0}' de votre serveur Emby? Vos fichiers multimédias ne seront pas affectés.", + "ButtonRename": "Renommer", + "HeaderPluginInstallation": "Installation de l'extension", + "MessageTrialExpired": "La période d'essai de cette fonctionnalité a expiré", + "MessageTrialWillExpireIn": "La période d'essai de cette fonctionnalité expire dans {0} jour(s)", + "ValuePriceUSD": "Prix : {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Vous avez accès à cette fonctionnalité, vous pourrez l'utiliser tant que vous aurez un abonnement Emby Premiere.", + "HeaderSelectExternalPlayer": "Sélectionner le lecteur externe", + "HeaderExternalPlayerPlayback": "Lecture avec lecteur externe", + "HeaderThankYou": "Merci", + "HeaderSelectUploadPath": "Sélectionner le répertoire de chargement", + "ErrorMessageStartHourGreaterThanEnd": "La date de fin doit être postérieure à la date de début.", + "MessagePluginConfigurationRequiresLocalAccess": "Pour configurer cette extension, veuillez vous connecter directement à votre serveur local.", + "MovieLibraryHelp": "Consultez le {0}guide Emby pour nommer les films{1}.", + "TvLibraryHelp": "Consultez le {0}guide Emby pour nommer les émissions{1}.", + "BookLibraryHelp": "Les livres numériques sont supportés. Consultez le {0}Guide de nommage pour livre d'Emby{1}.", + "MessageGamePluginRequired": "Nécessite l'installation de l'extension GameBrowser", + "HeaderUnlockApp": "Déverrouiller l'application", + "MessagePaymentServicesUnavailable": "Les services de paiement sont actuellement indisponibles. Merci de réessayer ultérieurement.", + "NoNewDevicesFound": "Aucun nouvel appareil détecté. Pour en ajouter un, fermez cette fenêtre et saisissez les informations de l'appareil manuellement.", + "MessageConfirmDeleteTunerDevice": "Voulez-vous vraiment supprimer cet appareil ?", + "MessageConfirmDeleteGuideProvider": "Voulez-vous vraiment supprimer ce fournisseur de guide d'information ?", + "HeaderDeleteProvider": "Supprimer le fournisseur", + "ErrorAddingTunerDevice": "Une erreur est survenue lors de l'ajout du tuner. Assurez-vous qu'il est accessible et réessayez.", + "ErrorSavingTvProvider": "Une erreur est survenue lors de la sauvegarde du fournisseur TV. Assurez-vous qu'il est accessible et réessayez.", + "ErrorGettingTvLineups": "Une erreur est survenue pendant le téléchargement des programmes TV. Assurez-vous que vos informations sont correctes et réessayez.", + "MessageCreateAccountAt": "Créer un compte sur {0}", + "ErrorPleaseSelectLineup": "Veuillez sélectionner une programmation et réessayer. Si aucune programmation n'est disponible, veuillez vérifier que vos identifiant, mot de passe et code postal sont corrects.", + "ErrorValidatingSupporterInfo": "Une erreur s'est produite lors de la validation de vos informations Emby Premiere. Veuillez réessayer plus tard.", + "LabelLocalSyncStatusValue": "État : {0}", + "HeaderTopPlugins": "Meilleures extensions", + "ForAdditionalLiveTvOptions": "Explorez le {0}catalogue d’extensions{1} Emby pour installer d'autres fournisseurs de TV en direct.", + "AddUser": "Ajouter un utilisateur", + "HeaderEmailAddress": "Adresse courriel", + "NumLocationsValue": "{0} dossiers", + "PleaseAddAtLeastOneFolder": "Veuillez ajouter au moins un dossier à cette médiathèque en cliquant sur le bouton Ajouter.", + "ErrorAddingMediaPathToVirtualFolder": "Une erreur est survenue pendant l'ajout du chemin des médias. Veuillez vérifier que le chemin est valide et que le processus du serveur Emby peut y accéder.", + "ErrorAddingEmbyConnectAccount3": "Le compte Emby est déjà lié à un utilisateur local existant. Un compte Emby ne peut être lié qu'à un seul utilisateur local à la fois.", + "HeaderConfirmPluginInstallation": "Confirmer l'installation de l'extension", + "PleaseConfirmPluginInstallation": "Merci de cliquer sur OK pour confirmer que vous avez lu ce qui précède et que vous souhaitez poursuivre l'installation de l'extension.", + "MessagePluginInstallDisclaimer": "Les extensions développées par les membres de la communauté Emby sont une excellente manière d'améliorer votre expérience Emby avec de nouvelles fonctionnalités. Avant toute installation, veuillez prendre connaissance de l'impact qu'elles peuvent avoir sur le serveur Emby, comme l'augmentation de la durée d'actualisation de la médiathèque, de nouvelles tâches de fond, ou un système moins stable.", + "HardwareAccelerationWarning": "L'activation de l'accélération matérielle peut provoquer une instabilité dans certains environnements. Assurez-vous que votre système d'exploitation et vos pilotes vidéo sont complètement à jour. Si vous avez des difficultés pour lire des vidéos après l'activation, vous devrez remettre ce paramètre sur Auto.", + "ValueExample": "Exemple : {0}", + "LabelFileOrUrl": "Fichier ou URL :", + "OptionEnableForAllTuners": "Autoriser pour tous les syntoniseurs", + "HeaderTuners": "Syntoniseurs", + "DrmChannelsNotImported": "Les chaînes avec DRM ne seront pas importées.", + "LabelAllowHWTranscoding": "Autoriser le transcodage matériel", + "AllowHWTranscodingHelp": "Si l'option est activée, permet au tuner de transcoder les flux à la volée. Cela peut aider à réduire le transcodage requis par le serveur Emby.", + "MetadataSettingChangeHelp": "Les modifications des paramètres des métadonnées auront une incidence sur le nouveau contenu ajouté. Pour actualiser le contenu existant, ouvrez l'écran des détails et cliquez sur le bouton Actualiser, ou effectuez des actualisations en masse en utilisant le gestionnaire de métadonnées.", + "RecordingPathChangeMessage": "Modifier votre dossier d'enregistrement ne déplacera pas les enregistrements existants de l'ancien emplacement vers le nouveau. Vous devrez les déplacer manuellement si vous le souhaitez.", + "LabelLocalIpAddress": "Adresse IP locale", + "LabelBindToLocalNetworkAddressHelp": "(Optionnel) Remplace l'adresse IP locale utilisé par les applications Emby. Sans paramètre, le serveur détectera l’adresse IP automatiquement.", + "SettingsWarning": "La modification de ces valeurs peut provoquer des défaillances de stabilité ou de connectivité. Si vous rencontrez des problèmes, nous vous recommandons de les remettre aux valeurs par défaut.", + "OptionSaveMetadataAsHiddenHelp": "La modification s'appliquera aux nouvelles métadonnées enregistrées à l'avenir. Les fichiers de métadonnées existants seront mis à jour la prochaine fois qu'ils seront enregistrés par le serveur Emby.", + "EnablePhotos": "Activer les photos", + "EnablePhotosHelp": "Les photos seront détectées et affichées avec les autres fichiers multimédia.", + "ImportPlaylists": "Importer une liste de lecture", + "ImportPlaylistsHelp": "Les listes de lecture de vos dossiers de médias peuvent être importées dans Emby Server", + "SaveThumbnailImagesIntoMediaFolders": "Enregistrer les vignettes d'aperçu dans les dossiers des médias", + "LabelGenerateVideoPreviewThumbnails": "Générer les vignettes d'aperçu vidéo :", + "LabelEnableDebugLogging": "Activer le débogage dans le journal d’évènements", + "OptionEnableExternalContentInSuggestions": "Activer le contenu externe dans les suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Autoriser les bandes-annonces sur internet et les programmes TV en direct à être inclus dans le contenu suggéré.", + "LabelOptionalNetworkPath": "(Optionnel) Dossier réseau partagé :", + "LabelOptionalNetworkPathHelp": "Si le dossier est partagé sur votre réseau, donner accès au chemin du dossier réseau peut autoriser les applications Emby sur d'autres appareils à avoir accès à ses fichiers directement.", + "SynologyUpdateInstructions": "Merci de vous identifier au DSM et d'aller au Centre de paquets pour la mise à jour.", + "HeaderRecordingPostProcessing": "Traitement des enregistrements", + "LabelPostProcessorArguments": "Arguments en ligne de commande du post-processeur :", + "PostProcessorArgumentsHelp": "Les variables suivantes sont prises en charge en ligne de commande pour transmettre des données à votre post-processeur:", + "LabelPostProcessor": "Application post-processeur :", + "DvrPostProcessorPathArgument": "{path} : le chemin d'accès complet au nouveau fichier d'enregistrement", + "OptionAutomaticallyGroupSeries": "Fusionner automatiquement les séries qui sont réparties en plusieurs dossiers", + "OptionAutomaticallyGroupSeriesHelp": "Les séries qui sont réparties en plusieurs dossiers dans la médiathèque seront automatiquement fusionnées en une seule série.", + "WhenDidYouPurchaseApp": "Quand avez-vous acheté cette application initialement ?", + "PreferEmbeddedTitlesOverFileNames": "Préférer les titres intégrés aux médias aux noms des fichiers", + "PreferEmbeddedTitlesOverFileNamesHelp": "Cela détermine le titre affiché par défaut quand il n'y a pas de métadonnées en ligne ou locales disponibles.", + "FriendlyNameForReferenceHelp": "Un nom convivial utilisé pour l'affichage, pour votre propre référence.", + "HeaderLiveTvTunerSetup": "Configuration du Syntoniseur TV en direct", + "HeaderTVSourceSetup": "Configuration de la source TV", + "HeaderDetectMyDevices": "Détecter les appareils", + "MessagePleaseWait": "Veuillez patienter. Ceci peut prendre quelques minutes.", + "DetectingDevices": "Détection des appareils", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Après l'importation initiale, actualiser automatiquement les métadonnées depuis internet :", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Tous les {0} jours", + "LabelCertificatePassword": "Mot de passe du certificat :", + "LabelCertificatePasswordHelp": "Si votre certificat nécessite un mot de passe, veuillez le renseigner ici.", + "HeaderNewLibrary": "Nouvelle médiathèque", + "HttpsRequiresCert": "Pour activer les connexions sécurisées, vous devrez fournir un certificat SSL vérifié, comme ceux fournis par Let's Encrypt. Veuillez fournir un certificat ou désactiver les connexions sécurisées.", + "ServerRestartNeededAfterPluginInstall": "Le serveur Emby devra être redémarré après l'installation d'une extension.", + "PluginInstalledMessage": "Cette extension a été installée avec succès. Le serveur Emby doit être redémarré afin que les modifications soient prises en compte.", + "MessagePremiereStatusGood": "Vous avez un abonnement Emby Premiere {0} et l'utilisation de votre appareil est bien inférieur à la limite.", + "MessagePremiereStatusClose": "Vous avez un abonnement Emby Premiere {0} mais l'utilisation de votre appareil est proche de la limite.", + "MessagePremiereExtendedPlans": "Veuillez envisager un {0}abonnement étendu{1}", + "MessagePremiereStatusOver": "Vous avez un abonnement Emby Premiere {0} mais vous avez dépassé la limite pour votre appareil !", + "ListItemPremiereSub": "Abonnement {0} acheté via {2}, expire {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "Vous pouvez gérer cet abonnement directement avec {0}", + "LabelAlreadyCanceled": "Cet abonnement a été résilié. La clé sera toujours valide jusqu'à son expiration.", + "HeaderCancelSub": "Résilier Emby Premiere", + "MessageConfirmSubCancel": "NON, s'il vous plaît, ne partez pas... Vous ne pourrez plus profiter des super fonctionnalités d'Emby Premiere !", + "ButtonCancelSub": "Je le sais, résilier quand même", + "ButtonDontCancelSub": "Garder Emby Premiere", + "MessageSubCancelReqSent": "Un courriel a été envoyé au propriétaire de la clé. Veuillez suivre les instructions contenues dans ce courriel pour valider la résiliation de cet abonnement. Nous espérons vous revoir bientôt !", + "MessageSubCancelError": "Une erreur est survenue lors de la résiliation. Veuillez envoyer un courriel à {0} et nous nous en occuperons pour vous.", + "LabelAlreadyCancelled": "Votre abonnement a été résilié. Vous ne payerez plus rien mais vos avantages fonctionneront jusqu'à la date ci-dessus.", + "AllowOnTheFlySubtitleExtraction": "Autoriser l'extraction des sous-titres à la volée", + "AllowOnTheFlySubtitleExtractionHelp": "Les sous-titres intégrés peuvent être extraits des vidéos et distribués aux applications Emby au format texte pour éviter le transcodage. Sur certains systèmes, cela peut prendre du temps et arrêter la lecture de la vidéo pendant le processus d'extraction. Désactiver cette option pour graver les sous-titres avec un transcodage quand l'appareil ne les prend pas en charge nativement.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "La journalisation du débogage ne devrait seulement être activée au besoin à des fins de dépannage. L'augmentation de l'accès au système de fichiers peut empêcher le serveur de tomber en veille sur certains environnements.", + "LabelSimultaneousConnectionLimit": "Limite de flux simultanée:", + "SimultaneousConnectionLimitHelp": "Le nombre maximal de flux simultanés autorisés. Entrez 0 pour aucune limite.", + "LaunchWebAppOnStartup": "Lancez l'application Web Emby dans mon navigateur lorsque le serveur Emby démarre", + "LaunchWebAppOnStartupHelp": "Cela ouvrira l'application Web dans votre navigateur par défaut au démarrage initial du serveur Emby. Cela ne se produira pas lors de l'utilisation de la fonction de redémarrage du serveur.", + "LabelReferrerHeader": "En-tête HTTP referrer :", + "LabelUserAgentHeader": "En-tête HTTP user agent :", + "SupplyCustomValueIfNeeded": "Fournit une valeur personnalisée de l’en-tête HTTP, si nécessaire.", + "HeaderConfigureRemoteAccess": "Configurer l'accès distant", + "LearnHowToCreateSynologyShares": "Apprenez à partager des dossiers dans Synology.", + "LabelAllowedRemoteAddresses": "Filtre d'adresse IP distante", + "LabelAllowedRemoteAddressesMode": "Type de filtre des adresses IP distantes :", + "Whitelist": "Liste blanche", + "Blacklist": "Liste noire", + "AllowedRemoteAddressesHelp": "Liste d'adresses IP ou d'IP/masque de sous-réseau séparées par des virgules qui seront autorisées à se connecter à distance. Si la liste est vide, toutes les adresses distantes seront autorisées.", + "LabelLanNetworks": "Réseaux LAN :", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Mode de connexion sécurisée :", + "PreferredNotRequired": "Préférée, mais pas obligatoire", + "RequiredForAllRemoteConnections": "Obligatoire pour toutes les connexions externes", + "HandledByProxy": "Gérée par un proxy inverse", + "SaveSubtitlesIntoMediaFolders": "Enregistrer les sous-titres téléchargés dans les dossiers des médias", + "SaveSubtitlesIntoMediaFoldersHelp": "Conserver les sous-titres avec les fichiers vidéo permettra de les gérer plus facilement.", + "AutomaticSubtitleDownloadInstructions": "Pour gérer le téléchargement des sous-titres automatisés, cliquez sur une bibliothèque dans la configuration des bibliothèques Emby et modifiez les paramètres de téléchargement des sous-titres.", + "ProviderNeedsSetupWithUrl": "{0} nécessite une configuration supplémentaire sur le {1} écran de paramètres{2} dans Emby Server.", + "LabelEnableHardwareAcceleration": "Activer l'accélération matérielle si possible :", + "HeaderPreferredHardwareDecoders": "Décodeurs matériel préférés", + "HeaderPreferredHardwareEncoders": "Encodeurs matériel préférés", + "AllowChangingImageAndPassword": "Autoriser cet utilisateur à changer son mot de passe et son image de profil", + "LabelSimultaneousStreamLimit": "Nombre de diffusions vidéo maximum :", + "SimultaneousStreamLimitHelp": "Limite le nombre de sessions de lecture vidéo simultanées.", + "LabelMusicFolderStructure": "Structure du répertoire de musique:", + "LabelMusicFolderStructureHelp": "Cela fournit un indice au scanner de bibliothèque sur la façon dont vos dossiers sont organisés. Si vous n'êtes pas sûr ou si vos dossiers ne correspondent pas exactement à l'une des options, veuillez sélectionner l'option par défaut Autre.", + "OtherOrUnstructured": "Autre ou non structuré", + "PerfectArtistAlbumTrack": "Parfaitement organisé en dossiers artiste\\album, avec des pistes directement dans les dossiers album.", + "PerfectAlbumTrack": "Parfaitement organisé en dossiers d'albums, avec des pistes directement dans les dossiers d'albums.", + "LabelMinCollectionSize": "Taille minimale d'une collection automatique : ", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Créez automatiquement des collections lorsque vous avez au moins le nombre de titres sélectionnés dans votre bibliothèque. La modification de cette valeur n'affectera pas les collections existantes.", + "LabelImportCollections": "Importer les informations de la collection des fournisseurs de métadonnées", + "LabelImportCollectionsHelp": "Lorsqu'elle est activée, cette option importera les informations de collection à partir de vos téléchargeurs de métadonnées activés. Cela peut entraîner la création automatique de collections indésirables. La désactivation empêchera la création automatique de futures collections, mais ne supprimera pas celles existantes", + "LabelAllowAdultMetadata": "Autoriser les métadonnées pour adultes", + "LabelAllowAdultMetadataHelp": "Autoriser les titres pour adultes correspondants lors de la recherche de métadonnées Internet.", + "HeaderVideoPreviewThumbnails": "Miniatures d'aperçu vidéo", + "LabelEnableHDRToneMapping": "Activer le mappage de ton HDR :", + "EnableHDRToneMappingHelp": "Le mappage de tons garantira une conversion des couleurs correcte lors du transcodage du contenu HDR, qui autrement apparaîtra fortement atténué et désaturé. Des composants de pilote supplémentaires peuvent être nécessaires pour prendre en charge l'accélération matérielle avec cette fonctionnalité activée. Veuillez consulter notre guide de configuration de l'accélération matérielle pour plus de détails.", + "WithHardwareAcceleratedTranscoding": "Oui, uniquement avec accélération matérielle", + "TranscodingStillInitializing": "Les services de transcodage du serveur Emby sont toujours en train de démarrer. Cet écran s'actualisera automatiquement lorsque les services de transcodage seront prêts.", + "WithEitherHardwareOrSoftwareTranscoding": "Oui, avec transcodage matériel ou logiciel", + "ToneMappingInHardwareDescription": "Le mappage de tons sera effectué avec une accélération matérielle lorsqu'il est activé et pris en charge par le matériel, et ignoré dans tous les autres cas.", + "ToneMappingInSoftwareDescription": "Le mappage de tons sera effectué dans le logiciel par le CPU. Ceci est beaucoup plus lent que le mappage de tonalité accéléré par le matériel et nécessitera une machine serveur très puissante.", + "ToneMappingInBothDescription": "Le mappage de tons sera effectué avec une accélération matérielle lorsqu'il est activé et pris en charge par le matériel, et reviendra au logiciel dans tous les autres cas. Le mappage de tons dans le logiciel est beaucoup plus lent que le mappage de tons accéléré par le matériel et nécessitera une machine serveur très puissante.", + "AutoMapped": "Assignation automatique", + "ManuallyMapped": "Assignation manuelle", + "NotMappedToGuideData": "N'est pas assigné aux informations du guide", + "MappedToValue": "Assigné à {0}", + "LabelAutomaticallyWakeServerForRecordings": "Réveiller automatiquement le serveur pour enregistrer", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Les événements de réveil seront programmés avec le système d'exploitation du serveur. La désactivation de cette option empêchera les futurs événements de réveil d'être programmés mais ne supprimera pas les événements précédemment programmés.", + "Database": "Base de données", + "LabelOptimizeDatabaseOnShutdown": "Essayer d'optimiser la base de données à l'arrêt du serveur", + "LabelOptimizeDatabaseOnShutdownHelp": "L'opération d'optimisation de la base de données est généralement une opération sans impact, mais elle exécutera occasionnellement une analyse s'il semble que cela sera utile au planificateur de requêtes. Cela peut entraîner un temps d'arrêt plus long du serveur Emby.", + "LabelDatabaseCacheSize": "Taille du cache de base de données (MB)", + "LabelDatabaseCacheSizeHelp": "Définit la quantité de données que la base de données conservera en mémoire à la fois, par fichier de base de données. Une valeur plus élevée peut aider à améliorer les performances du serveur Emby. Nécessite un redémarrage du serveur pour prendre effet.", + "LabelDatabaseAnalysisLimit": "Analyse limite du nombre de lignes", + "LabelDatabaseAnalysisLimitHelp": "Lorsque la base de données est optimisée, il s'agit du nombre approximatif de lignes examinées dans chaque index par la commande ANALYZE. Une valeur plus élevée augmentera l'efficacité de l'optimisation de la base de données, mais peut entraîner un temps d'arrêt plus long du serveur Emby.", + "LabelVacuumDb": "Nettoyer la base de données au prochain redémarrage du serveur Emby", + "LabelVacuumDbHelp": "La commande de nettoyage reconstruit le fichier de base de données, en le reconditionnant dans un espace disque minimal. Dans certains cas, cela peut améliorer les performances du serveur Emby. Veuillez noter que votre serveur Emby ne sera pas utilisable pendant la durée de l'opération de nettoyage, et qu'il n'y aura aucun moyen de surveiller la progression de cette opération. Veuillez éviter de forcer la fermeture du processus Emby pendant cette période, car cela pourrait entraîner une corruption de la base de données. Il s'agit d'une opération unique et cette option redeviendra décochée au prochain démarrage du serveur.", + "AdvancedOptionsWarning": "Ce sont des options avancées qui devraient normalement rester par défaut, sauf si vous avez besoin de les changer.", + "HeaderRecentlyActiveDevices": "Appareils récemment actifs", + "YesUntilServerRestart": "Oui, jusqu'au prochain redémarrage du serveur", + "YesUntilLogRotate": "Oui, jusqu'à la prochaine rotation des fichiers de log", + "LabelSubtitleDownloadMaxAge": "Ne pas tenter de télécharger les sous-titres pour les vidéos plus anciennes que :", + "SubtitleDownloadMaxAgeHelp": "Basé sur la date ajoutée aux métadonnées", + "NoAgeLimit": "Pas de limite d'âge", + "AnonymizeLogContents": "Rendre le journal anonyme", + "Markers": "Marqueurs", + "LabelGenerateIntroVideoMarkers": "Générez des marqueurs vidéo d'introduction :", + "GenerateIntroVideoMarkersHelp": "Détecte les intros des séries et affiche le bouton 'Passer l'intro' dans les applications Emby. La détection des introductions peut prendre beaucoup de temps et entraîner une utilisation élevée du processeur ou du disque.", + "LabelCopyFromUser": "Copier les paramètres depuis l'utilisateur :", + "CopyFromUserHelp": "Optionnel. Accélère la création d'un nouvel utilisateur en copiant les informations d'un utilisateur existant.", + "UserPolicy": "Stratégie utilisateur (accès aux bibliothèques et fonctionnalités, contrôles parentaux, etc...)", + "UserConfiguration": "Configuration Utilisateur (langues audio et sous-titres préférées, ordre de bibliothèque, etc...)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Options de copie", + "LabelMultiRestrictionMode": "Mode de restriction multiple :", + "MultiRestrictionModeAll": "Autoriser le contenu correspondant à la fois aux restrictions de classement et d'étiquettes", + "MultiRestrictionModeAny": "Autoriser le contenu correspondant aux restrictions de classement ou d'étiquettes", + "AllowMappingByChannelNumber": "Autoriser la correspondance avec les données du guide en utilisant les numéros de chaîne", + "AllowMappingByChannelNumberHelp": "Cette option peut être utilisée comme solution de repli pour faire correspondre les chaînes du tuner avec les données du guide lorsqu'aucune correspondance ne peut être trouvée sur la base du nom de la chaîne. Cela peut conduire à une correspondance inexacte si les numéros de chaîne du tuner sont incorrects.", + "LabelPreferredSourceForChannelLogos": "Préférer les logos des chaînes à partir des données du guide plutôt que du tuner lorsque les deux sont disponibles", + "LabelPreferredSourceForChannelNumbers": "Préférer les numéros de chaîne des données du guide à ceux du tuner lorsque les deux sont disponibles", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LabelFolderScanningMode": "Folder scanning mode", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "Legacy": "Legacy" +} diff --git a/strings/fr.json b/strings/fr.json new file mode 100644 index 0000000..294523f --- /dev/null +++ b/strings/fr.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Vous avez terminé !", + "ThisWizardWillGuideYou": "Cet assistant vous guidera tout au long du processus de configuration d'Emby Server.", + "HeaderCreateYourFirstUser": "Créez votre premier utilisateur", + "ButtonQuickStartGuide": "Guide de démarrage rapide", + "MoreUsersCanBeAddedLater": "D’autres utilisateurs pourront être ajoutés ultérieurement à partir des paramètres du serveur Emby.", + "UserProfilesIntro": "Emby supporte nativement les profils utilisateurs, permettant à chaque utilisateur d'avoir ses propres préférences d'affichage, sauvegarde de l'état de lecture et contrôle parental.", + "WizardCompleted": "C'est tout ce dont nous avons besoin pour l'instant. Emby a commencé à scanner votre médiathèque. Découvrez nos applications, puis cliquez sur Terminer pour afficher le Tableau de bord du serveur", + "MessagePleaseAcceptTermsOfService": "Veuillez accepter les conditions d'utilisation et la politique de confidentialité avant de continuer.", + "OptionIAcceptTermsOfService": "J'accepte les conditions d'utilisation", + "SeeOurHwaGuide": "Voir notre {0}guide de configuration de l’accélération matérielle{1}.", + "HeaderEmbyServerReleaseNotes": "Notes de version du serveur Emby", + "AllowSubtitleDownloading": "Autoriser le téléchargement de sous-titres", + "AllowSubtitleManagement": "Autoriser la suppression des sous-titres existants", + "NewUserNameHelp": "L’utilisateur apparaîtra comme cela sur votre serveur.", + "ChapterMarkers": "Marqueurs de chapitre", + "LabelThumbnailImagesInterval": "Intervalle des miniatures", + "ThumbnailImagesIntervalHelp": "Des aperçus plus fréquents fourniront une meilleur expérience, mais nécessiteront plus d’espace disque et plus de temps pour créer les images.", + "LabelAuthProvider": "Fournisseur d'authentification", + "AuthProviderHelp": "Les administrateurs utilisent toujours le fournisseur Emby par défaut pour éviter de perdre l'accès au serveur.", + "HeaderNewUser": "Nouvel utilisateur", + "ChangeServerDisplayName": "Changer le nom d'affichage du serveur", + "ShowAdvancedSettings": "Configuration avancée", + "ChangingMetadataImageSettingsNewContent": "Les modifications des réglages de téléchargement des métadonnées et des visuels ne seront appliquées qu'au nouveau contenu ajouté à votre médiathèque. Pour appliquer ces changements aux titres existants, vous devrez actualiser leurs métadonnées manuellement.", + "AllowRemoteAccess": "Autoriser les connexions distantes à ce serveur Emby.", + "AllowRemoteAccessHelp": "Si l'option est désactivée, toutes les connexions distantes seront bloquées.", + "Alerts": "Alertes", + "LabelTrackTitleDisplay": "Affichage des titres de piste intégré", + "GenerateUserFriendlyTrackTitles": "Générer des titres conviviaux en utilisant les informations des pistes", + "PreferOriginalTrackTitles": "Préférer les titres intégrés", + "TrackTitleDisplayHelp": "Choisir le titre affiché des pistes audio et de sous-titres intégrées. Préférer les titres intégrés n’est pas recommandé sauf si vous gérez manuellement les informations des pistes intégrées.", + "EnableTranscodingThrottle": "Activer la régulation", + "EnableTranscodingThrottleHelp": "Emby ajustera dynamiquement la vitesse de transcodage afin de réduire l'utilisation du processeur.", + "HeaderTypeMetadataDownloaders": "{0} Téléchargeurs de métadonnées", + "HeaderTypeImageFetchers": "{0} chercheurs d'image", + "HeaderImageOptions": "Options d'image", + "OptionBeta": "Beta", + "RegisterWithPayPal": "S'enregistrer avec PayPal", + "LabelSyncTempPath": "Chemin des fichiers temporaires", + "LabelSyncTempPathHelp": "Spécifiez un dossier de travail personnalisé. Les médias créés au cours du processus de conversion seront stockés ici.", + "LabelCustomCertificatePath": "Chemin vers le certificat SSL personnalisé", + "LabelCustomCertificatePathHelp": "Chemin vers un fichier PKCS #12 contenant un certificat et une clé privée pour activer le support TLS sur un domaine utilisateur.", + "HeaderSetupLibrary": "Configurer les médiathèques", + "LabelTimeLimitHours": "Limite de temps (heures)", + "HeaderPreferredMetadataLanguage": "Langue de métadonnées préférée", + "LabelSaveLocalMetadata": "Enregistrer les images dans les dossiers multimédia", + "LabelSaveLocalMetadataHelp": "L'enregistrement des images dans les dossiers multimédia les placera à un endroit où elles peuvent être facilement stockées et modifiées. Si cette option est désactivée, les images seront enregistrées dans le dossier des métadonnées du serveur.", + "TabAccess": "Accès", + "HeaderDeviceAccess": "Accès à l'appareil", + "OptionEnableAccessFromAllDevices": "Autoriser l'accès depuis tous les appareils", + "OptionEnableAccessToAllChannels": "Activer l'accès à toutes les chaînes", + "OptionEnableAccessToAllLibraries": "Activer l'accès à toutes les librairies", + "DeviceAccessHelp": "Le filtrage d’accès de l’utilisateur aux appareils l’empêchera d’utiliser de nouveaux appareils tant qu’ils ne sont pas approuvés ici.", + "LabelDisplayMissingEpisodesWithinSeasons": "Afficher les épisodes manquants dans les saisons", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Ceci doit également être activé pour les médiathèques TV dans la configuration du serveur Emby.", + "ImportMissingEpisodesHelp": "Les informations à propos des épisodes manquants seront importées dans votre base de donnée Emby et affichées dans les saisons et séries. Cela peut accroître significativement la durée d'actualisation de la médiathèque.", + "MessageEnablingOptionLongerScans": "Activer cette option peut accroître la durée d'actualisation de la médiathèque.", + "LabelMaxParentalRating": "Classification parentale maximale autorisée", + "MaxParentalRatingHelp": "Le contenu ayant une classification parentale plus élevée ne sera pas visible par cet utilisateur.", + "LibraryAccessHelp": "Sélectionnez les dossiers multimédia à partager avec cet utilisateur. Les administrateurs pourront modifier tous les dossiers en utilisant le gestionnaire de métadonnées.", + "ChannelAccessHelp": "Sélectionnez les chaînes à partager avec cet utilisateur. Les administrateurs pourront modifier toutes les chaînes en utilisant le gestionnaire de métadonnées.", + "ImageUploadAspectRatioHelp": "Rapport d'aspect 1:1 recommandé. Seulement JPG/PNG.", + "AlreadyPaidHelp1": "Si vous avez déjà payer pour l'installation d'une ancienne version de Media Browser for Android, vous n'avez pas besoin de payer à nouveau pour activer l'application. Cliquez sur OK pour nous envoyer un courriel à {0} et nous l'activerons pour vous.", + "AlreadyPaidHelp2": "Vous avez Emby Premiere? annuler cette boîte de dialogue, la configuration d’Emby Premiere dans votre Dashboard Emby Server sous Aide -> Emby Premiere, et il se déverrouille automatiquement.", + "TabMyPlugins": "Mes extensions", + "TabCatalog": "Catalogue", + "HeaderAutomaticUpdates": "Mises à jour automatiques", + "Standard": "Standard", + "TabSupporterKey": "Clé Emby Premiere", + "OptionHideUserLocal": "Masquer cet utilisateur des écrans de connexion sur le réseau local", + "OptionHideUserRemote": "Masquer cet utilisateur des écrans de connexion pour les connexions à distance", + "OptionHideUserFromLoginHelp": "Recommandé pour les comptes administrateurs privés ou cachés. L'utilisateur devra s'authentifier manuellement en saisissant son nom d'utilisateur et son mot de passe.", + "HideFromUnusedDevices": "Masquer cet utilisateur du formulaire de connexion sur les appareils dont il ne s'est jamais connecté", + "OptionDisableUser": "Désactiver cet utilisateur", + "OptionDisableUserHelp": "Si désactivé, le serveur n'autorisera pas de connexion de cet utilisateur. Les connexions existantes seront interrompues.", + "OptionAllowUserToManageServer": "Autoriser la gestion du serveur à cet utilisateur", + "HeaderFeatureAccess": "Accès aux fonctions", + "OptionAllowMediaPlayback": "Autoriser la lecture de média", + "AllLibraries": "Toutes les médiathèques", + "HeaderAllowMediaDeletionFrom": "Autoriser la suppression de médias à partir de", + "LiveTVRecordingManagement": "Gestion des enregistrements TV", + "OptionAllowRemoteControlOthers": "Autoriser le contrôle à distance des autres utilisateurs", + "OptionAllowRemoteSharedDevices": "Autoriser le contrôle à distance des appareils partagés", + "OptionAllowRemoteSharedDevicesHelp": "Les appareils DLNA sont considérés comme partagés tant qu'un utilisateur ne commence pas à les contrôler.", + "OptionAllowLinkSharing": "Autoriser le partage de média sur les réseaux sociaux", + "OptionAllowLinkSharingHelp": "Seules les pages Web contenant des informations de médias sont partagés. Les fichiers multimédias ne sont jamais partagés publiquement. Les partages sont limités dans le temps et expirent après {0} jours.", + "OptionRelease": "Version officielle", + "LabelAllowServerAutoRestartPlugin": "Autoriser le redémarrage auto du serveur après des mises à jour de plugin", + "LabelAllowServerAutoRestartServerOrPlugin": "Autoriser le redémarrage auto du serveur à redémarrer après toutes mises à jour", + "LabelAllowServerAutoRestartHelp": "Le serveur ne redémarrera que pendant les périodes d'inactivité, quand aucun utilisateur n'est connecté.", + "LabelRunServerAtStartup": "Démarrer le serveur au démarrage", + "LabelRunServerAtStartupHelp": "Cela démarrera l'icône Emby dans la barre des tâches au démarrage de Windows. Si vous avez configuré un service Windows, laissez cette option désactivée et configurez le service pour qu'il s'exécute au démarrage.", + "ButtonSelectDirectory": "Sélectionner le répertoire", + "LabelCachePath": "Chemin du cache", + "DefaultMetadataLangaugeDescription": "Ce sont vos réglages par défaut. Ils peuvent être personnalisés pour chaque médiathèque.", + "LabelCachePathHelp": "Spécifiez un emplacement personnalisé pour les fichiers temporaires du serveur, comme par exemple les images. Laissez vide pour utiliser la valeur par défaut.", + "LabelDefaultRecordingFolder": "Répertoire d'enregistrement par défaut", + "LabelMovieRecordingFolder": "Répertoire d'enregistrement des films", + "LabelSeriesRecordingFolder": "Répertoire d'enregistrement des séries", + "SeriesRecordingFolderHelp": "(Facultatif). Sélectionnez une bibliothèque dans laquelle vous souhaitez sauvegarder les enregistrements de séries. Il doit s'agir d'une bibliothèque que vous avez créée dans la configuration de la bibliothèque Emby et dont le type de contenu est défini sur TV ou Contenu mixte.", + "HeaderProgramData": "Données Logicielles", + "RecordingFolderHelp": "Sélectionnez la bibliothèque par défaut dans laquelle vous souhaitez enregistrer les enregistrements. Il doit s'agir d'une bibliothèque que vous avez créée dans la configuration de la bibliothèque Emby et dont le type de contenu est défini sur contenu mixte.", + "MovieRecordingFolderHelp": "(Facultatif). Sélectionnez une bibliothèque dans laquelle vous souhaitez sauvegarder les enregistrements de films. Il doit s'agir d'une bibliothèque que vous avez créée dans la configuration de la bibliothèque Emby et dont le type de contenu est défini sur Films ou Contenu mixte.", + "LabelMetadataPath": "Chemin des métadonnées", + "LabelMetadataPathHelp": "Spécifiez un emplacement pour les illustrations et les métadonnées téléchargées, ou effacez-le pour revenir à la valeur par défaut. Si vous modifiez cela, vous devrez migrer manuellement le contenu de l'ancien emplacement vers le nouvel emplacement. Si vous modifiez manuellement le contenu du dossier de métadonnées, vous devrez exécuter la {0}tâche planifiée scan metadata folder{1}.", + "LabelTranscodingTempPath": "Chemin temporaire de transcodage", + "LabelTranscodingTempPathHelp": "Ce dossier contient les fichiers temporaires utilisés par le transcodeur. Spécifiez un chemin personnalisé ou laissez vide pour utiliser le chemin par défaut dans le dossier de données du serveur.", + "GenerateVideoPreviewThumbnailsHelp": "Les vignettes d'aperçu vidéo fournissent des mises à jour en direct lors de la recherche dans les applications prises en charge. La génération de miniatures peut prendre beaucoup de temps, entraîner une utilisation élevée du processeur et consommer de l'espace disque supplémentaire.", + "AsAScheduledTask": "En tant que tâche automatisée", + "AsAScheduledTaskAndMediaAdded": "En tant que tâche automatisée et quand le média est ajouté", + "ButtonRefreshGuideData": "Actualiser les données du guide.", + "LabelNumberOfGuideDays": "Nombre de jours de données du guide à télécharger", + "LabelNumberOfGuideDaysHelp": "Télécharger plus de journées du guide permet de programmer des enregistrements plus longtemps à l'avance et de visualiser plus de contenus, mais prendra également plus de temps. Automatique permettra une sélection automatique basée sur le nombre de chaînes. Veuillez noter qu'au-delà de votre choix, les données doivent exister dans la source du guide pour pouvoir être téléchargées. Certaines sources de guide ne proposent que les prochaines 24 heures. Emby Guide Data propose jusqu'à 14 jours.", + "HeaderFetchImages": "Télécharger les images", + "LabelMaxBackdropsPerItem": "Nombre maximum d'images d'arrière-plan par élément", + "LabelMaxScreenshotsPerItem": "Nombre maximum de captures d'écran par élément", + "LabelMinBackdropDownloadWidth": "Largeur minimum d'image d'arrière-plan à télécharger", + "LabelMinScreenshotDownloadWidth": "Largeur minimum de capture d'écran à télécharger", + "ButtonAddScheduledTaskTrigger": "Ajouter un déclencheur", + "ButtonAdd": "Ajouter", + "LabelTriggerType": "Type de déclencheur", + "OptionOnInterval": "Par intervalle", + "OptionAfterSystemEvent": "Après un évènement système", + "LabelDay": "Jour", + "LabelTime": "Heure", + "LabelEvent": "Évènement", + "OptionWakeFromSleep": "Sortie de veille", + "Every": "Tous les", + "LabelEnableRealtimeMonitor": "Activer la surveillance en temps réel", + "LabelEnableRealtimeMonitorHelp": "Les modifications des fichiers seront traitées immédiatement, sur les systèmes de fichiers qui le permettent.", + "Community": "Communauté", + "HeaderEmbyNews": "Actualités d'Emby", + "LabelFriendlyServerName": "Surnom du serveur", + "LabelFriendlyServerNameHelp": "Ce nom sera utilisé pour identifier le serveur. Sinon le nom d'ordinateur sera utilisé.", + "LabelPreferredDisplayLanguage": "Langue d'affichage préférée", + "LabelPreferredDisplayLanguageHelp": "La traduction d'Emby est un projet en cours.", + "LabelReadHowYouCanContribute": "Voir comment vous pouvez contribuer.", + "LabelCustomCss": "CSS personnalisée", + "LabelCustomCssHelp": "Appliquez votre propre feuille de styles CSS personnalisée à l'interface web.", + "LabelLocalHttpServerPortNumber": "Numéro de port http local", + "LabelLocalHttpServerPortNumberHelp": "Le port TCP que le serveur http d'Emby doit utiliser.", + "LabelPublicHttpPort": "Numéro de port http public", + "LabelPublicHttpPortHelp": "Le numéro de port public à mapper sur le port http local.", + "LabelPublicHttpsPort": "Numéro de port https public", + "LabelPublicHttpsPortHelp": "Le numéro de port public à mapper sur le port https local.", + "RequireHttps": "Exiger HTTPS pour les connexions externes", + "RequireHttpsHelp": "Activez cette option pour que les connections en HTTP soit redirigées en HTTPS.", + "LabelHttpsPort": "Numéro de port https local", + "LabelHttpsPortHelp": "Le port TCP que le serveur https d'Emby doit utiliser.", + "LabelEnableAutomaticPortMap": "Autoriser le mapping automatique de port", + "LabelEnableAutomaticPortMapHelp": "Essayer de mapper automatiquement le port public au port local via UPnP. Cela peut ne pas fonctionner avec certains modèles de routeurs.", + "LabelExternalDDNS": "Domaine externe", + "LabelExternalDDNSHelp": "Si vous avez un DNS dynamique ou un nom de domaine, saisissez-le ici, sans protocole ou port. Les applications Emby vont l'utiliser pour les connexions distantes. Ce champ est obligatoire lorsqu’il est utilisé avec un certificat SSL personnalisé. Exemple : mondomaine.com", + "LabelMinResumePercentage": "Pourcentage minimum de reprise", + "LabelMaxResumePercentage": "Pourcentage maximum de reprise", + "LabelMinResumeDuration": "Temps de reprise minimum (secondes)", + "LabelMinResumePercentageHelp": "Les médias seront considérés comme non lus si arrêtés avant ce temps", + "LabelMaxResumePercentageHelp": "Les médias sont considérés comme lus si arrêtés après ce temps", + "LabelMinResumeDurationHelp": "La lecture de médias plus courts que cette durée ne pourra pas être reprise.", + "HeaderStatus": "État", + "Subscriptions": "Abonnement", + "LabelEndingEpisodeNumber": "Numéro du dernier épisode", + "LabelEndingEpisodeNumberHelp": "Nécessaire uniquement pour les fichiers multi-épisodes", + "HeaderSupportTheTeam": "Soutenez l'équipe d'Emby", + "HeaderSupportTheTeamHelp": "Aidez à garantir la continuité du développement de ce projet en achetant Emby Premiere. Une partie du revenu sera reversée aux autres outils gratuits dont nous dépendons.", + "DonationNextStep": "Une fois terminé, revenez sur cette page et saisissez votre clé Emby Premiere, que vous aurez reçue par courriel.", + "HeaderRunningTasks": "Tâches en cours d'exécution", + "ButtonUpdateNow": "Mettre à jour maintenant", + "PleaseUpdateManually": "Merci d'éteindre le serveur et d'installer la dernière version.", + "ServerUpToDate": "Le serveur Emby est à jour", + "MessagePleaseRestartServerToFinishUpdating": "Merci de redémarrer le serveur pour appliquer les mises à jour.", + "LabelDownMixAudioScale": "Booster l'audio lors du downmix", + "LabelDownMixAudioScaleHelp": "Augmente le volume de l'audio quand on diminue le nombre de canaux. Mettre à 1 pour préserver la valeur originale du volume.", + "HeaderForgotKey": "Clé oubliée", + "LabelSupporterEmailAddress": "L'adresse courriel avec laquelle la clé a été achetée.", + "ButtonRetrieveKey": "Obtenir la clé", + "LabelSupporterKey": "Clé Emby Première (collez depuis le courriel)", + "LabelSupporterKeyHelp": "Saisissez votre clé Emby Premiere pour profiter d’avantages supplémentaires.", + "MessageInvalidKey": "Clé Emby Premiere introuvable ou incorrecte.", + "ErrorMessageInvalidKey": "Pour pouvoir souscrire au contenu Premium, vous devez également posséder un abonnement Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Sauter si la vidéo contient déjà des sous-titres correspondant à la langue téléchargée", + "LabelSkipIfGraphicalSubsPresentHelp": "Conserver les versions textes des sous-titres permettra une diffusion plus efficace et diminuera la probabilité d'un transcodage de la vidéo.", + "HeaderDownloadLanguages": "Télécharger des langues", + "LabelSkipIfAudioTrackPresent": "Sauter si la piste audio correspond à la langue de téléchargement", + "LabelSkipIfAudioTrackPresentHelp": "Décocher cette option va s'assurer que toutes les vidéos ont des sous-titres, quelle que soit la langue de la piste audio.", + "SendMessage": "Envoyer un message", + "HeaderSendMessage": "Envoyer un message", + "ButtonSend": "Envoyer", + "LabelMessageText": "Texte du message", + "LabelMessageTitle": "Titre du message", + "ButtonEditOtherUserPreferences": "Modifier ce profil utilisateur, son avatar et ses préférences personnelles.", + "LabelLoginDisclaimer": "Clause de la page d'accueil", + "LabelLoginDisclaimerHelp": "Le slogan sera affiché en bas de la page de connexion.", + "HeaderTranscodingTemporaryFiles": "Fichiers temporaires de transcodage", + "HeaderApiKeys": "Clés API", + "HeaderApiKeysHelp": "Les applications externes ont besoin d'une clé d'API pour communiquer avec le serveur Emby. Les clés sont distribuées lors d'une connexion avec un compte Emby, ou bien en accordant manuellement une clé à une application.", + "HeaderApiKey": "Clé API", + "HeaderResumeSettings": "Paramètres de reprise", + "HeaderFetcherSettings": "Paramètres du récupérateur", + "HeaderActivity": "Activité", + "ButtonPurchase": "Acheter", + "HeaderInstall": "Installer", + "LabelSelectVersionToInstall": "Sélectionner la version à installer", + "LinkLearnMoreAboutSubscription": "Apprenez-en davantage sur Emby Premiere", + "MessagePluginRequiresSubscription": "Cette extension nécessitera un abonnement Emby Premiere au-delà de la période d'essai gratuite de 14 jours.", + "MessagePremiumPluginRequiresMembership": "Cette extension nécessitera un abonnement Emby Premiere au-delà de la période d'essai gratuite de 14 jours.", + "HeaderDeveloperInfo": "Informations du développeur", + "HeaderRevisionHistory": "Historique des révisions", + "ButtonViewWebsite": "Voir le site", + "OptionSaveMetadataAsHidden": "Enregistrer les métadonnées et les images en tant que fichier cachés", + "LabelConnectEmail": "(Facultatif) Adresse mail Emby Connect", + "LabelConnectEmailHelp": "Il est possible de lier cet utilisateur local à un compte Emby Connect existant pour permettre un accès facile à partir de n'importe quelle application Emby sans avoir à connaître l'adresse IP du serveur.", + "ButtonLearnMoreAboutEmbyConnect": "Plus d'infos sur Emby Connect", + "LabelDateAddedBehavior": "Comportement de la date d'ajout pour les nouveaux contenus", + "OptionDateAddedImportTime": "Utiliser la date d'ajout dans la médiathèque", + "OptionDateAddedFileTime": "Utiliser la date de création du fichier", + "LabelDateAddedBehaviorHelp": "Si une métadonnée est présente, elle sera toujours utilisée avant ces options.", + "HeaderLibrarySettings": "Paramètres de médiathèque", + "HeaderAutomaticSubtitleDownloads": "Téléchargements automatiques des sous-titres", + "HeaderCameraUploadHelp": "Les applications Emby peuvent automatiquement transférer les photos prises depuis vos appareils mobiles vers votre serveur Emby.", + "LabelCameraUploadPath": "Chemin d'envoi de l'appareil photo", + "LabelCameraUploadPathHelp": "Choisissez un dossier de transfert personnalisé. Il remplacera les paramètres par défaut de la section Transfert depuis l'appareil photo. Sinon, le dossier par défaut sera utilisé. Si vous utilisez un dossier personnalisé, vous devrez l'ajouter comme médiathèque dans la configuration de la médiathèque Emby.", + "DefaultCameraUploadPathHelp": "Choisissez un dossier personnalisé. Sinon le dossier par défaut sera utilisé. Si vous utilisez un dossier personnalisé, vous devrez l'ajouter comme médiathèque dans la configuration de la médiathèque Emby.", + "LabelCreateCameraUploadSubfolder": "Créer un sous-dossier pour chaque appareil", + "LabelCreateCameraUploadSubfolderHelp": "Des dossiers spécifiques peuvent êtres affectés aux appareils en cliquant sur le bouton correspondant dans la page Appareils.", + "LabelCustomDeviceDisplayNameHelp": "Entrez un nom d'affichage personnalisé ou laissez vide pour utiliser le nom rapporté par l'appareil.", + "TabParentalControl": "Contrôle Parental", + "HeaderAccessSchedule": "Programme d'Accès", + "HeaderAccessScheduleHelp": "Créez un programme d'accès pour limiter l'accès à certaines heures.", + "HeaderLibraryAccess": "Accès à la médiathèque", + "HeaderChannelAccess": "Accès aux chaînes", + "LabelForgotPasswordUsernameHelp": "Saisissez votre nom d'utilisateur, si vous vous en souvenez.", + "TitlePasswordReset": "Mot de passe réinitialisé", + "HeaderBlockItemsWithNoRating": "Bloquer les éléments avec des informations de classification inexistantes ou inconnues", + "LabelBlockContentWithTags": "Filtrer les éléments avec les étiquettes :", + "LabelTagRestrictionMode": "Mode de restriction d’étiquettes", + "BlockItemsWithTheseTags": "Bloquer les éléments avec ces étiquettes", + "AllowItemsWithTheseTags": "N’autoriser que les éléments avec ces étiquettes", + "OptionAllowContentDownloading": "Autoriser le téléchargement des médias", + "LabelNewUserNameHelp": "Les noms d'utilisateur peuvent contenir des lettres (a-z), des chiffres (0-9), des tirets (-), des tirets bas (_), des apostrophes (') et des points (.).", + "HeaderThisUserIsCurrentlyDisabled": "Cet utilisateur est actuellement désactivé. Pour l’activer, consultez l’option en bas de cette page.", + "OptionAllowSyncTranscoding": "Autoriser le téléchargement des médias qui demande un transcodage", + "AllowMediaConversion": "Autoriser la conversion des médias", + "AllowMediaConversionHelp": "Autoriser ou refuser l'accès à la fonction de conversion des médias.", + "OptionAllowAudioPlaybackTranscoding": "Permettre le transcodage audio, si nécessaire, pendant la lecture", + "OptionAllowVideoPlaybackTranscoding": "Permettre le transcodage vidéo, si nécessaire, pendant la lecture", + "OptionAllowVideoPlaybackRemuxing": "Permettre le changement de formats de conteneur, si nécessaire, pendant la lecture", + "OptionAllowMediaPlaybackTranscodingHelp": "Limiter l’accès au transcodage désactivera la sélection de la qualité et peut entraîner des échecs de lecture dans les applications Emby en raison de formats de média non pris en charge ou de bande passante du réseau insuffisante.", + "LabelRemoteClientBitrateLimit": "Limite de débit de streaming Internet (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Une limite facultative de débit binaire par flux pour tous les appareils hors réseau local. Cette limite s'applique à la qualité de la diffusion Internet, même si l'utilisateur a sélectionné une qualité supérieure dans le lecteur. Cela permet d'empêcher les appareils de demander un débit supérieur à celui que votre connexion internet peut supporter. Cela peut entraîner une augmentation de la charge du processeur sur votre serveur afin de transcoder les vidéos à la volée à un débit inférieur.", + "LabelUserRemoteClientBitrateLimitHelp": "Cela va écraser les valeurs globales par défaut configurés dans les paramètres avancés du serveur.", + "OptionEnableFullSpeedConversion": "Autoriser le transcodage rapide", + "OptionEnableFullSpeedConversionHelp": "Par défaut, les conversions sont réalisées lentement pour minimiser la consommation de ressources.", + "OptionEnableAutomaticServerUpdates": "Activer les mises à jour automatiques du serveur", + "HeaderTVSources": "Sources TV", + "HeaderAddTvSource": "Ajouter une source TV", + "LabelTunerIpAddress": "Adresse IP du tuner", + "HeaderGuideProviders": "Fournisseurs de données de guides", + "HeaderAddGuideSource": "Ajouter une source au guide des programmes", + "LabelZipCode": "Code postal", + "LabelLineup": "Composition", + "LabelImportOnlyFavoriteChannels": "Restreindre aux chaînes ajoutées aux favoris", + "ImportFavoriteChannelsHelp": "Activez cette option pour n'importer que les chaînes ajoutées aux favoris sur le tuner.", + "HeaderDefaultRecordingSettings": "Paramètres d'enregistrement par défaut", + "LabelDisplayName": "Nom d'affichage", + "OptionDownloadImagesInAdvance": "Télécharger les images en avance", + "OptionDownloadImagesInAdvanceHelp": "Par défaut, la plupart des images ne sont pas téléchargées depuis Internet avant d'être affichées par une application Emby. Activez cette option pour télécharger toutes les images en l'avance, au fur et à mesure de l'importation de nouveaux médias. Cela peut allonger significativement la durée d'actualisation de la médiathèque.", + "MessageThankYouForSupporting": "Merci de soutenir Emby.", + "FileReadCancelled": "La lecture du fichier a été annulée.", + "FileNotFound": "Fichier introuvable.", + "FileReadError": "Une erreur est survenue pendant la lecture du fichier.", + "NoPluginConfigurationMessage": "Cette extension n'a aucun paramètre à configurer.", + "HeaderNewApiKey": "Nouvelle clé API", + "HeaderNewApiKeyHelp": "Permet à une application de communiquer avec le serveur Emby.", + "MessageKeyEmailedTo": "Clé envoyée par courriel à {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Merci. Votre clé Emby Premiere a été mise à jour.", + "MessageKeyRemoved": "Merci. Votre clé Emby Premiere a été supprimée.", + "TextEnjoyBonusFeatures": "Profitez de fonctions bonus", + "MessageErrorLoadingSupporterInfo": "Une erreur s'est produite lors du chargement des informations Emby Premiere. Veuillez réessayer plus tard.", + "ValueTimeLimitSingleHour": "Limite de temps : 1 heure", + "ValueTimeLimitMultiHour": "Limite de temps : {0} heures", + "General": "Général", + "HeaderScreenSavers": "Économiseurs d’écran", + "Reporting": "Rapports", + "LabelStopping": "En cours d'arrêt", + "HeaderSelectCertificatePath": "Sélectionnez le chemin du certificat", + "HeaderSupporterBenefit": "Un abonnement Emby Premiere vous offre des avantages supplémentaires tels que l'accès à l'enregistreur Emby, aux médias hors-ligne, aux extensions premium et plus encore. {0}En savoir plus{1}.", + "LabelAbortedByServerShutdown": "(Annulé par l'extinction du serveur)", + "LabelScheduledTaskLastRan": "Dernière exécution {0}, durée {1}.", + "HeaderDeleteTaskTrigger": "Supprimer le déclencheur de tâche", + "MessageDeleteTaskTrigger": "Voulez-vous vraiment supprimer ce déclencheur de tâche ?", + "MessageNoPluginsDueToAppStore": "Pour gérer vos extensions, utilisez l'application web Emby.", + "LabelVersionInstalled": "{0} installé(s)", + "HeaderSelectServerCachePath": "Sélectionner le chemin d'accès du cache de serveur", + "HeaderSelectTranscodingPath": "Sélectionner le chemin d'accès du dossier temporaire de transcodage", + "HeaderSelectMetadataPath": "Sélectionner le chemin d'accès des métadonnées", + "HeaderSelectServerCachePathHelp": "Parcourir ou saisir le chemin d'accès à utiliser pour les fichiers cache du serveur. Le dossier doit être accessible en écriture.", + "HeaderSelectTranscodingPathHelp": "Parcourir ou saisir le chemin d'accès à utiliser pour les fichiers de transcodage temporaires. Le dossier doit être accessible en écriture.", + "HeaderSelectMetadataPathHelp": "Parcourir ou saisir le chemin d'accès où vous aimeriez stocker les métadonnées. Le dossier doit être accessible en écriture.", + "MessageConfirmRestart": "Voulez-vous vraiment redémarrer le serveur Emby ?", + "MessageConfirmShutdown": "Voulez-vous vraiment éteindre le serveur Emby ?", + "LabelLocalAccessUrl": "Accès local (LAN) : {0}", + "LabelRemoteAccessUrl": "Accès à distance (WAN) : {0}", + "LabelRunningOnPort": "En cours d'exécution sur le port http {0}", + "LabelRunningOnPorts": "En cours d'exécution sur les ports http {0} et https {1}", + "LabelCurrentPath": "Chemin actuel", + "HeaderSelectMediaPath": "Sélectionnez le chemin du média", + "HeaderSelectPath": "Sélectionnez un chemin", + "MessageDirectoryPickerInstruction": "Les chemins réseaux peuvent être saisis manuellement dans le cas où l'utilisation du bouton Réseau ne parvient pas à localiser vos appareils. Par exemple, {0} ou {1}.", + "MessageDirectoryPickerBSDInstruction": "Sur BSD, vous devrez peut-être configurer le stockage de votre jail FreeNAS pour autoriser Emby à y accéder.", + "MessageDirectoryPickerLinuxInstruction": "Pour Linux sur Arch Linux, CentOS, Debian, Fedora, OpenSuse ou Ubuntu, vous devez au moins autoriser l'accès en lecture à vos répertoires de stockage pour l'utilisateur Emby .", + "MetadataManager": "Gestionnaire de métadonnées", + "OptionBlockLiveTvChannels": "Chaînes TV en direct", + "OptionBlockChannelContent": "Chaînes Internet", + "ButtonRevoke": "Révoquer", + "MessageConfirmRevokeApiKey": "Voulez-vous vraiment révoquer cette clé API ? La connexion de l'application au serveur Emby sera brutalement interrompue.", + "HeaderConfirmRevokeApiKey": "Révoquer la clé API", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Veuillez accepter les conditions d'utilisation avant de poursuivre.", + "HeaderChangeFolderType": "Modifier le type de contenu", + "HeaderChangeFolderTypeHelp": "Pour modifier le type, veuillez supprimer et recréer la médiathèque avec le nouveau type.", + "HeaderAlert": "Alerte", + "MessagePleaseRestart": "Veuillez redémarrer pour finaliser les mises à jour.", + "OptionHomeVideos": "Vidéos et photos personnelles", + "OptionBooks": "Livres", + "HeaderMetadataReaders": "Lecteurs de metadonnées", + "LabelMetadataReadersHelp": "Activez et classez vos sources locales de métadonnées préférées dans l'ordre de priorité.", + "HeaderSubtitleDownloaders": "Outils de téléchargement de sous-titres", + "SubtitleDownloadersHelp": "Activer et ranger vos outils de téléchargement de sous-titres favoris par ordre de priorité. Vous pouvez en installer d’autres en utilisant le catalogue d’extensions Emby.", + "LabelMetadataDownloaders": "Téléchargeurs de métadonnées", + "LabelMetadataDownloadersHelp": "Activez et classez vos sources de téléchargement de métadonnées préférées dans l'ordre de priorité. Les plus basses seront utilisées uniquement pour remplir les informations manquantes.", + "HeaderMetadataSavers": "Enregistreurs de métadonnées", + "LabelMetadataSaversHelp": "Sélectionnez un format de fichier pour l'enregistrement des métadonnées.", + "LabelImageFetchers": "Récupérateurs d'image", + "LabelImageFetchersHelp": "Activez cette option pour classer vos récupérateurs d'images par ordre de priorité.", + "PersonTypePerson": "Personne", + "HeaderRemoveMediaLocation": "Supprimer l'emplacement de média", + "MessageConfirmRemoveMediaLocation": "Voulez-vous vraiment supprimer cet emplacement ?", + "LabelNewName": "Nouveau nom", + "HeaderRemoveLibrary": "Supprimer la bibliothèque", + "MessageAreYouSureYouWishToRemoveLibrary": "Êtes-vous sûr de vouloir supprimer la bibliothèque {0} de votre serveur Emby ? Vos fichiers multimédias ne seront pas affectés.", + "ButtonRename": "Renommer", + "HeaderPluginInstallation": "Installation de l'extension", + "MessageTrialExpired": "La période d'essai de cette fonction a expiré", + "MessageTrialWillExpireIn": "La période d'essai de cette fonction expire dans {0} jour(s)", + "ValuePriceUSD": "Prix : {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Vous avez accès à cette fonction, vous pourrez l'utiliser tant que vous aurez un abonnement Emby Premiere.", + "HeaderSelectExternalPlayer": "Sélectionner le lecteur externe", + "HeaderExternalPlayerPlayback": "Lecture avec lecteur externe", + "HeaderThankYou": "Merci", + "HeaderSelectUploadPath": "Sélectionner le répertoire de transfert", + "ErrorMessageStartHourGreaterThanEnd": "La date de fin doit être postérieure à la date de début.", + "MessagePluginConfigurationRequiresLocalAccess": "Pour configurer cette extension, veuillez vous connecter directement à votre serveur local.", + "MovieLibraryHelp": "Consultez le {0}guide Emby pour nommer les films{1}.", + "TvLibraryHelp": "Consultez le {0}guide Emby pour nommer les émissions{1}.", + "BookLibraryHelp": "Les livres numériques sont supportés. Consultez le {0}Guide de nommage pour livres d’Emby{1}.", + "MessageGamePluginRequired": "Nécessite l'installation de l'extension GameBrowser", + "HeaderUnlockApp": "Déverrouiller l'application", + "MessagePaymentServicesUnavailable": "Les services de paiement sont actuellement indisponibles. Merci de réessayer ultérieurement.", + "NoNewDevicesFound": "Aucun nouvel appareil détecté. Pour en ajouter un, fermez cette fenêtre et saisissez les informations de l'appareil manuellement.", + "MessageConfirmDeleteTunerDevice": "Voulez-vous vraiment supprimer cet appareil ?", + "MessageConfirmDeleteGuideProvider": "Voulez-vous vraiment supprimer ce fournisseur de guide d'information ?", + "HeaderDeleteProvider": "Supprimer le fournisseur", + "ErrorAddingTunerDevice": "Une erreur est survenue lors de l'ajout du tuner. Assurez-vous qu'il est accessible et réessayez.", + "ErrorSavingTvProvider": "Une erreur est survenue lors de la sauvegarde du fournisseur TV. Assurez-vous qu'il est accessible et réessayez.", + "ErrorGettingTvLineups": "Une erreur est survenue pendant le téléchargement des programmes TV. Assurez-vous que vos informations sont correctes et réessayez.", + "MessageCreateAccountAt": "Créer un compte sur {0}", + "ErrorPleaseSelectLineup": "Veuillez sélectionner une programmation et réessayer. Si aucune programmation n'est disponible, veuillez vérifier que vos identifiant, mot de passe et code postal sont corrects.", + "ErrorValidatingSupporterInfo": "Une erreur s'est produite lors de la validation de vos informations Emby Premiere. Veuillez réessayer plus tard.", + "LabelLocalSyncStatusValue": "État : {0}", + "HeaderTopPlugins": "Meilleures extensions", + "ForAdditionalLiveTvOptions": "Explorez le {0}catalogue d’extensions{1} d’Emby pour installer des fournisseurs de TV en direct supplémentaires.", + "AddUser": "Ajouter un utilisateur", + "HeaderEmailAddress": "Adresse courriel", + "NumLocationsValue": "{0} dossiers", + "PleaseAddAtLeastOneFolder": "Veuillez ajouter au moins un dossier à cette médiathèque en cliquant sur le bouton Ajouter.", + "ErrorAddingMediaPathToVirtualFolder": "Une erreur est survenue pendant l'ajout du chemin des médias. Veuillez vérifier que le chemin est valide et que le processus du serveur Emby peut y accéder.", + "ErrorAddingEmbyConnectAccount3": "Le compte Emby est déjà lié à un utilisateur local existant. Un compte Emby ne peut être lié qu'à un seul utilisateur local à la fois.", + "HeaderConfirmPluginInstallation": "Confirmer l'installation de l'extension", + "PleaseConfirmPluginInstallation": "Merci de cliquer sur OK pour confirmer que vous avez lu ce qui précède et que vous souhaitez poursuivre l'installation de l'extension.", + "MessagePluginInstallDisclaimer": "Les extensions développées par les membres de la communauté Emby sont une excellente manière d'améliorer votre expérience Emby avec de nouvelles fonctions. Avant toute installation, veuillez prendre connaissance de l'impact qu'elles peuvent avoir sur le serveur Emby, comme l'augmentation de la durée d'actualisation de la médiathèque, de nouvelles tâches de fond, ou un système moins stable.", + "HardwareAccelerationWarning": "L'activation de l'accélération matérielle peut provoquer une instabilité dans certains environnements. Assurez-vous que votre système d'exploitation et vos pilotes vidéo sont complètement à jour. Si vous avez des difficultés pour lire des vidéos après l'activation, vous devrez remettre ce paramètre sur Auto.", + "ValueExample": "Exemple : {0}", + "LabelFileOrUrl": "Fichier ou URL", + "OptionEnableForAllTuners": "Autoriser pour tous les tuners", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Les chaînes avec DRM ne seront pas importées.", + "LabelAllowHWTranscoding": "Autoriser le transcodage matériel", + "AllowHWTranscodingHelp": "Si l'option est activée, permet au tuner de transcoder les flux à la volée. Cela peut aider à réduire le transcodage requis par le serveur Emby.", + "MetadataSettingChangeHelp": "Les modifications des paramètres des métadonnées auront une incidence sur le nouveau contenu ajouté. Pour actualiser le contenu existant, ouvrez l'écran des détails et cliquez sur le bouton Actualiser, ou effectuez des actualisations en masse en utilisant le gestionnaire de métadonnées.", + "RecordingPathChangeMessage": "Modifier votre dossier d'enregistrement ne déplacera pas les enregistrements existants de l'ancien emplacement vers le nouveau. Vous devrez les déplacer manuellement si vous le souhaitez.", + "LabelLocalIpAddress": "Adresse IP locale", + "LabelBindToLocalNetworkAddressHelp": "Facultatif. Remplace l’adresse IP locale que le serveur Emby va présenter aux applications Emby. Par défaut, le serveur va détecter automatiquement l’adresse IP locale.", + "SettingsWarning": "La modification de ces valeurs peut provoquer des défaillances de stabilité ou de connectivité. Si vous rencontrez des problèmes, nous vous recommandons de les remettre aux valeurs par défaut.", + "OptionSaveMetadataAsHiddenHelp": "La modification s'appliquera aux nouvelles métadonnées enregistrées à l'avenir. Les fichiers de métadonnées existants seront mis à jour la prochaine fois qu'ils seront enregistrés par le serveur Emby.", + "EnablePhotos": "Activer les photos", + "EnablePhotosHelp": "Les photos seront détectées et affichées avec les autres fichiers multimédia.", + "ImportPlaylists": "Importer une liste de lecture", + "ImportPlaylistsHelp": "Les listes de lecture de vous dossiers de médias peuvent être importées dans Emby Server", + "SaveThumbnailImagesIntoMediaFolders": "Enregistrer les miniatures de vidéos dans les dossiers des médias", + "LabelGenerateVideoPreviewThumbnails": "Générer les miniatures de vidéos", + "LabelEnableDebugLogging": "Activer le débogage dans le journal d’événements", + "OptionEnableExternalContentInSuggestions": "Activer le contenu externe dans les suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Autoriser les bandes-annonces sur internet et les programmes TV en direct à être inclus dans le contenu suggéré.", + "LabelOptionalNetworkPath": "(Facultatif) Partage réseau", + "LabelOptionalNetworkPathHelp": "Si le dossier est partagé sur votre réseau, donner accès au chemin du dossier réseau peut autoriser les applications Emby sur d'autres appareils à avoir accès à ses fichiers directement.", + "SynologyUpdateInstructions": "Merci de vous identifier au DSM et d'aller au Centre de paquets pour la mise à jour.", + "HeaderRecordingPostProcessing": "Traitement des enregistrements", + "LabelPostProcessorArguments": "Arguments de ligne de commande du post-processeur", + "PostProcessorArgumentsHelp": "Les variables suivantes sont prises en charge en ligne de commande pour transmettre des données à votre post-processeur", + "LabelPostProcessor": "Application post-processeur", + "DvrPostProcessorPathArgument": "{path} : le chemin d'accès complet au nouveau fichier d'enregistrement", + "OptionAutomaticallyGroupSeries": "Fusionner automatiquement les séries qui sont réparties en plusieurs dossiers", + "OptionAutomaticallyGroupSeriesHelp": "Les séries qui sont réparties en plusieurs dossiers dans la médiathèque seront automatiquement fusionnées en une seule série.", + "WhenDidYouPurchaseApp": "Quand avez-vous acheté cette application initialement ?", + "PreferEmbeddedTitlesOverFileNames": "Préférer les titres intégrés aux médias aux noms des fichiers", + "PreferEmbeddedTitlesOverFileNamesHelp": "Cela détermine le titre affiché par défaut quand il n'y a pas de métadonnées en ligne ou locales disponibles.", + "FriendlyNameForReferenceHelp": "Un nom convivial utilisé pour l'affichage, pour votre propre référence.", + "HeaderLiveTvTunerSetup": "Configuration du Tuner TV en direct", + "HeaderTVSourceSetup": "Configuration de source TV", + "HeaderDetectMyDevices": "Détecter les appareils", + "MessagePleaseWait": "Veuillez patienter. Ceci peut prendre quelques minutes.", + "DetectingDevices": "Détection des appareils", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Après l'import initial, actualiser automatiquement les métadonnées depuis Internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Rafraîchir automatiquement les métadonnées pour les épisodes avec des titres provisoires tels que TBA", + "EveryNDays": "Tous les {0} jours", + "LabelCertificatePassword": "Mot de passe du certificat", + "LabelCertificatePasswordHelp": "Si votre certificat nécessite un mot de passe, veuillez le renseigner ici.", + "HeaderNewLibrary": "Nouvelle médiathèque", + "HttpsRequiresCert": "Pour activer les connexions sécurisées, vous devrez fournir un certificat SSL vérifié, comme ceux fournis par Let's Encrypt. Veuillez fournir un certificat ou désactiver les connexions sécurisées.", + "ServerRestartNeededAfterPluginInstall": "Le serveur Emby devra être redémarré après l'installation d'une extension.", + "PluginInstalledMessage": "Cette extension a été installée avec succès. Le serveur Emby doit être redémarré afin que les modifications soient prises en compte.", + "MessagePremiereStatusGood": "Vous avez un abonnement Emby Premiere {0} et l'utilisation de votre appareil est bien inférieur à la limite.", + "MessagePremiereStatusClose": "Vous avez un abonnement Emby Premiere {0} mais l'utilisation de votre appareil est proche de la limite.", + "MessagePremiereExtendedPlans": "Veuillez envisager un {0}abonnement étendu{1}", + "MessagePremiereStatusOver": "Vous avez un abonnement Emby Premiere {0} mais vous avez dépassé la limite pour votre appareil !", + "ListItemPremiereSub": "Abonnement {0} acheté via {2}, expire {1}", + "LabelClickToManage": "Cliquez pour gérer cet abonnement", + "LabelCancelInfo": "Vous pouvez gérer cet abonnement directement avec {0}", + "LabelAlreadyCanceled": "Cet abonnement a été résilié. La clé sera toujours valide jusqu'à son expiration.", + "HeaderCancelSub": "Résilier Emby Premiere", + "MessageConfirmSubCancel": "NON, s'il vous plaît, ne partez pas... Vous ne pourrez plus profiter des super fonctions d'Emby Premiere !", + "ButtonCancelSub": "Je le sais, résilier quand même", + "ButtonDontCancelSub": "Garder Emby Premiere", + "MessageSubCancelReqSent": "Un courriel a été envoyé au propriétaire de la clé. Veuillez suivre les instructions contenues dans ce courriel pour valider la résiliation de cet abonnement. Nous espérons vous revoir bientôt !", + "MessageSubCancelError": "Un problème s'est produit lors de la tentative d'annulation. Veuillez envoyer un courriel à {0} et nous vous aiderons à résoudre ce problème.", + "LabelAlreadyCancelled": "Votre abonnement a été résilié. Vous ne payerez plus rien mais vos avantages fonctionneront jusqu'à la date ci-dessus.", + "AllowOnTheFlySubtitleExtraction": "Autoriser l'extraction des sous-titres à la volée", + "AllowOnTheFlySubtitleExtractionHelp": "Les sous-titres intégrés peuvent être extraits des vidéos et distribués aux applications Emby au format texte pour éviter le transcodage. Sur certains systèmes, cela peut prendre du temps et arrêter la lecture de la vidéo pendant le processus d'extraction. Désactiver cette option pour graver les sous-titres avec un transcodage quand l'appareil ne les prend pas en charge nativement.", + "AllowOnTheFlyFontExtraction": "Autoriser l'extraction des polices de sous-titres à la volée", + "AllowOnTheFlyFontExtractionHelp": "Les polices intégrées peuvent être extraites des vidéos et transmises aux applications Emby afin de prendre en charge les vidéos contenant des polices personnalisées. Sur certains systèmes, cette opération peut prendre beaucoup de temps et bloquer la lecture de la vidéo pendant le processus d'extraction.", + "EnableDebugLoggingHelp": "La journalisation du débogage ne devrait seulement être activée au besoin à des fins de dépannage. L'augmentation de l'accès au système de fichiers peut empêcher le serveur de tomber en veille sur certains environnements.", + "LabelSimultaneousConnectionLimit": "Limite de flux simultanés", + "SimultaneousConnectionLimitHelp": "Le nombre maximal de flux simultanés autorisés. Entrez 0 pour aucune limite.", + "LaunchWebAppOnStartup": "Lancez l'application Web Emby dans mon navigateur lorsque le serveur Emby démarre", + "LaunchWebAppOnStartupHelp": "Cela ouvrira l'application Web dans votre navigateur par défaut au démarrage initial du serveur Emby. Cela ne se produira pas lors de l'utilisation de la fonction de redémarrage du serveur.", + "LabelReferrerHeader": "En-tête HTTP Referer", + "LabelUserAgentHeader": "En-tête HTTP User agent", + "SupplyCustomValueIfNeeded": "Fournit une valeur personnalisée de l’en-tête HTTP, si nécessaire.", + "HeaderConfigureRemoteAccess": "Configurer l'accès distant", + "LearnHowToCreateSynologyShares": "Apprenez à partager des dossiers dans Synology.", + "LabelAllowedRemoteAddresses": "Filtre d'adresse IP distante", + "LabelAllowedRemoteAddressesMode": "Mode de filtrage d'adresse IP distante", + "Whitelist": "Liste blanche", + "Blacklist": "Liste noire", + "AllowedRemoteAddressesHelp": "Liste séparée par des virgules d'adresses IP ou d'entrées IP/masque de sous-réseau pour les réseaux qui seront autorisés ou non à se connecter à distance. Si elle est laissée vide, toutes les adresses distantes seront autorisées.", + "LabelLanNetworks": "Réseaux LAN", + "LanNetworksHelpText": "Liste séparée par des virgules d'adresses IP ou d'entrées IP/masque de sous-réseau pour les réseaux qui seront considérés comme faisant partie du réseau local lors de l'application des restrictions de bande passante et d'accès à distance. Si l'option est activée, toutes les autres adresses IP seront considérées comme faisant partie du réseau externe. Si elle est laissée vide, seuls le sous-réseau du serveur et les sous-réseaux IP privés courants (192.168.0.0/24, 172.16.0.0/12, etc.) sont considérés comme faisant partie du réseau local.", + "LabelSecureConnectionsMode": "Mode de connexion sécurisée", + "PreferredNotRequired": "Préférée, mais pas obligatoire", + "RequiredForAllRemoteConnections": "Obligatoire pour toutes les connexions externes", + "HandledByProxy": "Gérée par un proxy inverse", + "SaveSubtitlesIntoMediaFolders": "Enregistrer les sous-titres téléchargés dans les dossiers des médias", + "SaveSubtitlesIntoMediaFoldersHelp": "Conserver les sous-titres avec les fichiers vidéo permettra de les gérer plus facilement.", + "AutomaticSubtitleDownloadInstructions": "Pour gérer le téléchargement automatique des sous-titres, cliquez sur une médiathèque dans la configuration des médiathèques Emby et éditez les paramètres de téléchargement des sous-titres pour cette médiathèque.", + "ProviderNeedsSetupWithUrl": "{0} nécessite une configuration supplémentaire sur le {1} écran de paramètres{2} dans Emby Server.", + "LabelEnableHardwareAcceleration": "Activer l'accélération matérielle le cas échéant", + "HeaderPreferredHardwareDecoders": "Décodeurs matériel préférés", + "HeaderPreferredHardwareEncoders": "Encodeurs matériel préférés", + "AllowChangingImageAndPassword": "Autoriser cet utilisateur à changer son mot de passe et son image de profil", + "LabelSimultaneousStreamLimit": "Nombre maximal de flux vidéo simultanés", + "SimultaneousStreamLimitHelp": "Limite le nombre de sessions de lecture vidéo simultanées.", + "LabelMusicFolderStructure": "Structure du dossier Musique", + "LabelMusicFolderStructureHelp": "Cela fournit un indice au scanner de bibliothèque sur la façon dont vos dossiers sont organisés. Si vous n'êtes pas sûr ou si vos dossiers ne correspondent pas exactement à l'une des options, veuillez sélectionner l'option par défaut Autre.", + "OtherOrUnstructured": "Autre ou non structuré", + "PerfectArtistAlbumTrack": "Parfaitement organisé en dossiers artiste\\album avec les musiques directement dans les dossiers d'album", + "PerfectAlbumTrack": "Parfaitement organisé en dossiers album avec les pistes directement dans les dossiers d'album", + "LabelMinCollectionSize": "Taille minimum pour les collections automatiques", + "PerfectAuthorAudioBookTrack": "Parfaitement organisé en dossiers Auteur\\Livre, avec les morceaux directement dans les dossiers Livre.", + "PerfectAudioBookTrack": "Parfaitement organisé en dossiers Livre, avec les morceaux directement dans les dossiers Livre.", + "MinCollectionSizeHelp": "Créez automatiquement des collections lorsque vous avez au moins le nombre de titres sélectionné dans votre bibliothèque. La modification de cette valeur n'affectera pas les collections existantes.", + "LabelImportCollections": "Importer les informations de collection des téléchargeurs de métadonnées", + "LabelImportCollectionsHelp": "Lorsqu'il est activé, cela importera les informations de collection à partir de vos téléchargeurs de métadonnées activés. Cela peut entraîner la création automatique de collections indésirables. La désactivation empêchera la création automatique de futures collections, mais ne supprimera pas celles existantes.", + "LabelAllowAdultMetadata": "Autorise les métadonnées adultes", + "LabelAllowAdultMetadataHelp": "Autoriser la correspondance des titres pour adultes lors de la recherche de métadonnées Internet.", + "HeaderVideoPreviewThumbnails": "Miniatures de vidéos", + "LabelEnableHDRToneMapping": "Activer le mappage de tonalité HDR", + "EnableHDRToneMappingHelp": "Le mappage des tons assurera une conversion correcte des couleurs lors du transcodage du contenu HDR, qui apparaîtra autrement très estompé et désaturé. Des composants de pilote supplémentaires peuvent être nécessaires pour prendre en charge l'accélération matérielle avec cette fonction activée. Veuillez consulter notre guide de configuration de l'accélération matérielle pour plus de détails.", + "WithHardwareAcceleratedTranscoding": "Oui, uniquement avec l'accélération matérielle", + "TranscodingStillInitializing": "Les services de transcodage du serveur Emby sont toujours en train de démarrer. Cet écran s'actualisera automatiquement lorsque les services de transcodage seront prêts.", + "WithEitherHardwareOrSoftwareTranscoding": "Oui, avec transcodage matériel ou logiciel", + "ToneMappingInHardwareDescription": "Le mappage de tonalité sera effectué avec l'accélération matérielle lorsqu'il est activé et pris en charge par le matériel, et ignoré dans tous les autres cas.", + "ToneMappingInSoftwareDescription": "Le mappage de tonalité sera effectué avec l'accélération logicelle du processeur. Ceci est beaucoup plus lent que le mappage de tonalités effectuée avec l'acclération matérielle et nécessitera une machine serveur très puissante.", + "ToneMappingInBothDescription": "Le mappage de tonalité sera effectué avec l'accélération matérielle lorsqu'elle est activée et prise en charge par le matériel, et se repliera sur le logiciel dans tous les autres cas. Le mappage de tonalité dans le logiciel est beaucoup plus lent que le mappage de tonalité à accélération matérielle et nécessitera une machine serveur très puissante.", + "AutoMapped": "Mappé automatiquement", + "ManuallyMapped": "Mappé manuellement", + "NotMappedToGuideData": "Non mappé aux données du guide", + "MappedToValue": "Mappé à {0}", + "LabelAutomaticallyWakeServerForRecordings": "Réveiller automatiquement le serveur pour enregistrer", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Les événements de réveil seront programmés avec le système d'exploitation du serveur. La désactivation de cette option empêchera les futurs événements de réveil d'être programmés mais ne supprimera pas les événements précédemment programmés.", + "Database": "Base de données", + "LabelOptimizeDatabaseOnShutdown": "Essayer d'optimiser la base de données à l'arrêt du serveur", + "LabelOptimizeDatabaseOnShutdownHelp": "L'opération d'optimisation de la base de données est généralement une opération no-op, mais elle exécutera occasionnellement une analyse s'il semble que cela sera utile au planificateur de requêtes. Cela peut entraîner un temps d'arrêt plus long du serveur Emby.", + "LabelDatabaseCacheSize": "Taille du cache de base de données (MB)", + "LabelDatabaseCacheSizeHelp": "Définit la quantité de données que la base de données conservera en mémoire à la fois, par fichier de base de données. Une valeur plus élevée peut aider à améliorer les performances du serveur Emby. Nécessite un redémarrage du serveur pour prendre effet.", + "LabelDatabaseAnalysisLimit": "Limite de lignes d'analyse", + "LabelDatabaseAnalysisLimitHelp": "Lorsque la base de données est optimisée, il s'agit du nombre approximatif de lignes examinées dans chaque index par la commande ANALYZE. Une valeur plus élevée augmentera l'efficacité de l'optimisation de la base de données, mais peut entraîner un temps d'arrêt plus long du serveur Emby.", + "LabelVacuumDb": "Nettoyer la base de données au prochain redémarrage du serveur Emby", + "LabelVacuumDbHelp": "Le nettoyage reconstruit le fichier de base de données, en le reconditionnant dans un espace disque minimal. Dans certains cas, cela peut améliorer les performances du serveur Emby. Veuillez noter que votre serveur Emby ne sera pas utilisable pendant la durée de l'opération de nettoyage, et qu'il n'y aura aucun moyen de surveiller la progression de cette opération. Veuillez éviter de forcer la fermeture du processus Emby pendant cette période, car cela pourrait entraîner une corruption de la base de données. Il s'agit d'une opération unique et cette option sera décochée au prochain démarrage du serveur.", + "AdvancedOptionsWarning": "Ce sont des options avancées qui devraient normalement rester par défaut, sauf si vous avez besoin de les changer.", + "HeaderRecentlyActiveDevices": "Appareils actifs récents", + "YesUntilServerRestart": "Oui, jusqu'au redémarrage du serveur", + "YesUntilLogRotate": "Oui, jusqu'à la prochaine rotation des fichiers de log", + "LabelSubtitleDownloadMaxAge": "Ne pas tenter de télécharger les sous-titres pour les vidéos plus anciennes que", + "SubtitleDownloadMaxAgeHelp": "Basé sur la date ajoutée aux métadonnées", + "NoAgeLimit": "Pas de limite d'âge", + "AnonymizeLogContents": "Anonymiser le contenu des log", + "Markers": "Marqueurs", + "LabelGenerateIntroVideoMarkers": "Générez des marqueurs vidéo d'introduction", + "GenerateIntroVideoMarkersHelp": "Détecte les intros des séries et affiche le bouton 'Passer l'intro' dans les applications Emby. La détection des introductions peut prendre beaucoup de temps et entraîner une utilisation élevée du processeur ou du disque.", + "LabelCopyFromUser": "Copier les paramètres depuis l'utilisateur", + "CopyFromUserHelp": "Facultatif. Accélère la création d'un nouvel utilisateur en copiant les informations d'un utilisateur existant.", + "UserPolicy": "Stratégie utilisateur (accès aux bibliothèques et fonctionnalités, contrôles parentaux, etc...)", + "UserConfiguration": "Configuration Utilisateur (langues audio et sous-titres préférées, ordre de bibliothèque, etc...)", + "UserDataAndDescription": "Données de l'utilisateur (favoris, états des lectures, etc.)", + "HeaderCopyOptions": "Options de copie", + "LabelMultiRestrictionMode": "Mode de restriction multiple", + "MultiRestrictionModeAll": "Autoriser le contenu correspondant à la fois aux restrictions de classement et d'étiquettes", + "MultiRestrictionModeAny": "Autoriser le contenu correspondant aux restrictions de classement ou d'étiquettes", + "AllowMappingByChannelNumber": "Autoriser la correspondance avec les données du guide en utilisant les numéros de chaîne", + "AllowMappingByChannelNumberHelp": "Cette option peut être utilisée comme solution de repli pour faire correspondre les chaînes du tuner avec les données du guide lorsqu'aucune correspondance ne peut être trouvée sur la base du nom de la chaîne. Cela peut conduire à une correspondance inexacte si les numéros de chaîne du tuner sont incorrects.", + "LabelPreferredSourceForChannelLogos": "Préférer les logos des chaînes à partir des données du guide plutôt que du tuner lorsque les deux sont disponibles", + "LabelPreferredSourceForChannelNumbers": "Préférer les numéros de chaîne des données du guide à ceux du tuner lorsque les deux sont disponibles", + "HeaderSoftwareEncoders": "Encodeurs Logiciels", + "LabelProxyHeaderMode": "Lire les en-têtes de proxy pour déterminer les adresses IP des clients", + "ProxyHeadersRemoteOnly": "Uniquement lorsqu'ils contiennent des adresses réseau distantes", + "ProxyHeaderModeHelp": "Détermine si les en-têtes de requête tels que {0} et {1} doivent être utilisés pour déterminer l'adresse IP des appareils qui se connectent.", + "AllowCameraUpload": "Autoriser le téléversement", + "AllowCameraUploadHelp": "Si cela est autorisé, et si cela est activé dans les applications mobiles Emby, les utilisateurs peuvent automatiquement téléverser des photos et des vidéos prises à partir de leur appareil photo vers ce serveur Emby", + "CameraUploadMustBeGranted": "L'administrateur de votre serveur doit également vous accorder l'accès au téléversement de la caméra.", + "EnableReadingAndWritingPeopleMetadata": "Activer la lecture et l'écriture des fichiers de métadonnées des personnes", + "EnableReadingAndWritingPeopleMetadataHelp": "Nécessite l'installation du plugin Nfo Metadata. Ce plugin permet de sauvegarder les modifications apportées par les utilisateurs aux fichiers de métadonnées nfo, mais il rallonge la durée de l'analyse de la bibliothèque.", + "LabelIgnoreSampleFiles": "Ignorer les fichiers contenant le mot sample dans le nom de fichier si leur taille est inférieure à (MB)", + "PreferredChannelImageSource": "Source d'image de la chaîne préférée", + "PreferredChannelImageSourceHelp": "Sélectionnez une image de chaîne préférée lorsque des images sont disponibles à la fois dans le tuner et dans les données de guidage.", + "CacheImagesInServerData": "Conserver une copie en cache des images dans le dossier des métadonnées du serveur.", + "CacheImagesInServerDataHelp": "Si vos médias et vos images sont stockés sur une autre machine, le fait de conserver une copie en cache des images dans le dossier des métadonnées du serveur réduira l'accès au réseau et pourra améliorer les performances. En contrepartie de la création de ce cache, les scans de la bibliothèque seront plus lents et le dossier de métadonnées du serveur consommera beaucoup plus d'espace disque.", + "AllowSharingPersonalContent": "Permettre le partage de contenus personnels tels que des listes de lecture avec d'autres utilisateurs sur ce serveur", + "AllowSharingPersonalContentHelp": "Si l'autorisation est accordée, cet utilisateur pourra partager ses listes de lecture avec d'autres utilisateurs. Les éléments de la liste de lecture seront toujours limités en fonction de l'accès à la bibliothèque de l'utilisateur et du contrôle parental.", + "LiveBufferSizeHours": "Limite de la taille de la mémoire tampon du flux en direct (heures)", + "LiveBufferSizeHoursHelp": "Une mémoire tampon plus longue offre une meilleure capacité de recherche en avant et en arrière pendant un flux en direct, mais consomme plus d'espace disque.", + "LabelTranscodingMaxResolution": "Résolution maximale pour le transcodage", + "TranscodingMaxResolutionHelp": "Définissez une limite supérieure à appliquer à tous les transcodages vidéo, quel que soit le paramètre de qualité du lecteur Emby. Cela permettra de réduire les ressources consommées par les processus de transcodage du serveur.", + "EnableHevcEncodingExp": "Activer l'encodage vidéo HEVC (expérimental)", + "EnableHevcEncodingHelp": "Activer le transcodage en utilisant le codec HEVC s'il est pris en charge par le client.", + "LabelEnableMultiPartItems": "Activer les éléments en plusieurs parties", + "EnableMultiPartItemsHelp": "Détecter et regrouper automatiquement les fichiers nommés partie 1, partie 2, etc... Les parties supplémentaires seront affichées dans l'écran détaillé principal de l'élément.", + "MultiVersionItemsDetectionHelp": "Détecter et regrouper automatiquement ensemble les différentes versions d'un même élément. Une sélection de versions sera proposée dans l'écran détaillé principal de l'élément. Le regroupement sur la base des fichiers nécessite de nommer et d'organiser vos fichiers de manière appropriée.", + "MultiVersionMoviesDetectionHelp": "Le regroupement basé sur les métadonnées regroupera les films ayant les mêmes identifiants externes (MovieDb, Imdb, etc...).", + "EnableMultiPartItemsTVHelp": "Non supporté pour les épisodes de séries.", + "HeaderAutomaticGrouping": "Regroupement automatique", + "LabelMultiVersionItemsDetection": "Détection des éléments avec plusieurs versions", + "MultiVersionItemsDetectionBoth": "Détecter les éléments ayant plusieurs versions sur la base des fichiers et des métadonnées", + "MultiVersionItemsDetectionFiles": "Détecter les éléments ayant plusieurs versions sur la base des fichiers", + "MultiVersionItemsDetectionMetadata": "Détecter les éléments ayant plusieurs versions sur la base des métadonnées", + "LabelNetworkRequestProtocol": "Protocole de requête réseau", + "NetworkRequestProtocolHelp": "Choisissez le protocole à utiliser pour les requêtes réseau sortantes adressées aux fournisseurs de métadonnées et à d'autres services. Dans certains cas, lorsque les services externes ne sont pas accessibles via IPv6, il peut s'avérer nécessaire d'utiliser uniquement IPv4.", + "GenerateChaptersForVideos": "Générer des chapitres pour les vidéos qui ne contiennent pas d'informations de chapitre intégrées", + "GeneratedChapterInterval": "Intervalle entre les chapitres générés", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Mode Maintenance", + "OptionEnableMaintenanceMode": "Mettre le serveur en mode maintenance", + "EnableMaintenanceModeHelp": "Les utilisateurs ne verront que le message du mode de maintenance.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "Si ce champ est resté vide, un message général sera affiché déclarant que le serveur est en cours de maintenance, dans la langue d'affichage de l'utilisateur.", + "ServerInMaintenanceMode": "Le serveur Emby est actuellement en mode maintenance. Les utilisateurs ne verront qu'un message de maintenance jusqu'à ce que vous sortiez le serveur de ce mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "Legacy": "Legacy", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode" +} diff --git a/strings/he.json b/strings/he.json new file mode 100644 index 0000000..8968bb9 --- /dev/null +++ b/strings/he.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "סיימת!", + "ThisWizardWillGuideYou": "אשף הזה ינחה אותך בתהליך ההגדרה של שרת Emby.", + "HeaderCreateYourFirstUser": "צור את המשתמש הראשון שלך", + "ButtonQuickStartGuide": "מדריך התחלה מהירה", + "MoreUsersCanBeAddedLater": "ניתן להוסיף משתמשים נוספים מאוחר יותר בהגדרות שרת Emby.", + "UserProfilesIntro": "Emby כולל תמיכה מובנית לפרופיל משתמשים המאפשר לכל משתמש להגדיר את התצורה, הפעלה ובקרת הורים.", + "WizardCompleted": "זה כל מה שצריך כרגע. Emby התחיל לסרוק את ספריית המדיה שלך. התנסה בכמה מהאפליקציות שלנו, ואז לחץ על סיום כדי לצפות ב־לוח הבקרה של השרת.", + "MessagePleaseAcceptTermsOfService": "אנא קבל את תנאי השימוש ומדיניות הפרטיות לפני שתמשיך.", + "OptionIAcceptTermsOfService": "אני מקבל את תנאי השימוש", + "SeeOurHwaGuide": "ראה את {0} מדריך הגדרת האצת החומרה {1}.", + "HeaderEmbyServerReleaseNotes": "עדכוני שחרור של שרת Emby", + "AllowSubtitleDownloading": "אפשר הורדות כתוביות:", + "AllowSubtitleManagement": "אפשר מחיקת קובצי כתוביות קיימות", + "NewUserNameHelp": "כך יופיע המשתמש בשרת שלך", + "ChapterMarkers": "סימני קטעים", + "LabelThumbnailImagesInterval": "מרווח בין תמונות ממוזערות", + "ThumbnailImagesIntervalHelp": "תמונות ממוזערות תכופות יותר יגרמו לחוויה טובה יותר, אך יידרשו יותר שטח דיסק וזמן ליצירת התמונות.", + "LabelAuthProvider": "ספק אימות", + "AuthProviderHelp": "מנהלי מערכת משתמשים תמיד בספק ברירת המחדל של Emby כדי להבטיח שלעולם לא תינעל.", + "HeaderNewUser": "משתמש חדש", + "ChangeServerDisplayName": "שנה את שם התצוגה של השרת", + "ShowAdvancedSettings": "הצג הגדרות מתקדמות", + "ChangingMetadataImageSettingsNewContent": "שינויים בהגדרות מטא-נתונים או הורדת גרפיקה יחולו רק על תוכן חדש שנוסף לספרייה שלך. כדי להחיל את השינויים על כותרים קיימים, יהיה עליך לרענן את המטא-נתונים שלהם באופן ידני.", + "AllowRemoteAccess": "אפשר חיבורים מרוחקים לשרת Emby זה.", + "AllowRemoteAccessHelp": "אם לא מסומן, כל החיבורים המרוחקים ייחסמו.", + "Alerts": "התראות", + "LabelTrackTitleDisplay": "הצגת כותרת הרצועה המוטמעת", + "GenerateUserFriendlyTrackTitles": "צור כותרות ידידותיות למשתמש באמצעות מידע על רצועות", + "PreferOriginalTrackTitles": "העדף כותרות מוטבעות", + "TrackTitleDisplayHelp": "בחר את כותרת התצוגה של רצועות השמע וכתוביות מוטבעות. העדפת מוטמע אינה מומלצת אלא אם כן אתה יוצר באופן ידני מידע על רצועות מוטבעות.", + "EnableTranscodingThrottle": "אפשר הגבלה", + "EnableTranscodingThrottleHelp": "Emby תתאים באופן דינמי את מהירות המרת הקידוד על מנת לצמצם את ניצול המעבד.", + "HeaderTypeMetadataDownloaders": "{0} הורדות מטא-נתונים", + "HeaderTypeImageFetchers": "{0} שולפי תמונות", + "HeaderImageOptions": "אפשרויות תמונה", + "OptionBeta": "בטא", + "RegisterWithPayPal": "הירשם דרך PayPal", + "LabelSyncTempPath": "נתיב קובץ זמני", + "LabelSyncTempPathHelp": "ציין תיקיית עבודה מותאמת אישית. מדיה מומרת שנוצרה במהלך תהליך ההמרה תישמר כאן.", + "LabelCustomCertificatePath": "נתיב מותאם אישית לאישור SSL", + "LabelCustomCertificatePathHelp": "נתיב תיקייה לקובץ PKCS #12 המכיל אישור ומפתח פרטי כדי לאפשר תמיכה בTLS בדומיין מותאם אישית.", + "HeaderSetupLibrary": "הגדרת ספריות מדיה", + "LabelTimeLimitHours": "מגבלת זמן (בשעות)", + "HeaderPreferredMetadataLanguage": "שפת מטא-נתונים מועדפת:", + "LabelSaveLocalMetadata": "שמור תמונות רקע בתוך ספריות המדיה", + "LabelSaveLocalMetadataHelp": "שמור תמונות אמנות בתוך תיקיות המדיה ימקם את התמונות לצד קבצי המדיה, כך שניתן יהיה לגשת אליהן בקלות מחוץ ל־Emby. אם פונקציה זו מושבתת, התמונות יישמרו בתיקיית המטא־נתונים של השרת.", + "TabAccess": "גישה", + "HeaderDeviceAccess": "גישה למכשיר", + "OptionEnableAccessFromAllDevices": "אפשר גישה מכל המכשירים", + "OptionEnableAccessToAllChannels": "אפשר גישה לכל הערוצים", + "OptionEnableAccessToAllLibraries": "אפשר גישה לכל הספריות", + "DeviceAccessHelp": "סינון גישה למכשירים של משתמשים ימנע מהם להשתמש במכשירים חדשים עד שיאושרו כאן.", + "LabelDisplayMissingEpisodesWithinSeasons": "הצג פרקים חסרים בתוך העונות", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "זה חייב להיות מאופשר גם בהגדרות של ספריות טלוויזיה בשרת Emby.", + "ImportMissingEpisodesHelp": "אם מאופשר, מידע על פרקים חסרים יובא למסד הנתונים של Emby שלך ויוצג בעונות ובסדרות. הדבר עלול לגרום לסריקות ספריות ארוכות יותר באופן משמעותי.", + "MessageEnablingOptionLongerScans": "הפעלת אפשרות זו עלולה לגרום לסריקות ספריות ארוכות יותר באופן משמעותי.", + "LabelMaxParentalRating": "דירוג הורים מרבי מותר", + "MaxParentalRatingHelp": "תוכן עם דירוג גבוה יותר יוסתר מהמשתמש.", + "LibraryAccessHelp": "בחר את ספריות המדיה אשר ישותפו עם המשתמש. מנהלים יוכלו לערות את כל התיקיות באמצעות מנהל המטא-נתונים.", + "ChannelAccessHelp": "בחר את הערוצים לשיתוף עם משתמש זה. מנהלי מערכת יוכלו לערוך את כל הערוצים באמצעות מנהל המטא-נתונים.", + "ImageUploadAspectRatioHelp": "מומלץ יחס גובה של 1:1. רק JPG/PNG.", + "AlreadyPaidHelp1": "אם כבר שילמתם כדי להתקין גרסה ישנה יותר של דפדפן מדיה לאנדרואיד, אין צורך לשלם שוב כדי להפעיל את האפליקציה הזו. לחץ על אישור כדי לשלוח לנו דוא\"ל ב{0} ואנו נפעיל אותו עבורך.", + "AlreadyPaidHelp2": "יש לך Emby Premiere? אם כן פשוט בטל את דיאלוג זה, הגדר Emby Premiere במרכז השליטה שלך שרת emby תחת עזרה > Emby Premiere, והוא יהיה פעיל באופן אוטומטי.", + "TabMyPlugins": "התוספים שלי", + "TabCatalog": "קטלוג", + "HeaderAutomaticUpdates": "עידכונים אוטומטים", + "Standard": "סטנדרטי", + "TabSupporterKey": "מפתח Emby Premiere", + "OptionHideUserLocal": "הסתר משתמש זה ממסכי כניסה ברשת המקומית", + "OptionHideUserRemote": "הסתר משתמש זה ממסכי כניסה כאשר הוא מחובר מרחוק", + "OptionHideUserFromLoginHelp": "שימושי עבור חשבונות מנהל פרטית או מוסתר. המשתמש יצטרך להיכנס ידנית על ידי הזנת שם המשתמש והסיסמה שלו.", + "HideFromUnusedDevices": "הסתר משתמש זה ממסכי התחברות במכשירים שאליהם מעולם לא נכנס", + "OptionDisableUser": "חסום משתמש זה", + "OptionDisableUserHelp": "אם מבוטל, השרת שלא יאפשר חיבורים ממשתמש זה. חיבורים פעילים יבוטלו מייד.", + "OptionAllowUserToManageServer": "אפשר למשתמש זה לנהל את השרת", + "HeaderFeatureAccess": "גישה למאפיינים", + "OptionAllowMediaPlayback": "הרשה נגינת מדיה", + "AllLibraries": "כל הספרייה\n", + "HeaderAllowMediaDeletionFrom": "אפשר מחיקת מדיה מ", + "LiveTVRecordingManagement": "ניהול הקלטות טלוויזיה בשידור חי", + "OptionAllowRemoteControlOthers": "אפשר שליטה מרחוק למשתמשים מרוחקים", + "OptionAllowRemoteSharedDevices": "אפשר שליטה מרחוק במכשירים משותפים", + "OptionAllowRemoteSharedDevicesHelp": "מכשירי Dlna נחשבים כמשותפים עד שמשתמש מתחיל לשלוט בהם.", + "OptionAllowLinkSharing": "אפשר שיתוף ברשתות חברתיות", + "OptionAllowLinkSharingHelp": "רק דפי אינטרנט המכילים מידע משותף של המדיה. קבצי מדיה לעולם אינם משותפים באופן ציבורי. השיתוף מוגבל בזמן ותוקפן יפוג לאחר {0} ימים.", + "OptionRelease": "שחרור רשמי", + "LabelAllowServerAutoRestartPlugin": "אפשר לשרת להפעיל מחדש באופן אוטומטי כדי להחיל עדכוני תוספות", + "LabelAllowServerAutoRestartServerOrPlugin": "אפשר לשרת להפעיל מחדש באופן אוטומטי כדי להחיל עדכוני שרת או עדכוני תוספות", + "LabelAllowServerAutoRestartHelp": "השרת יתחיל מחדש רק כאשר אין משתמשים פעילים.", + "LabelRunServerAtStartup": "התחל שרת בהפעלת המחשב", + "LabelRunServerAtStartupHelp": "פעולה זו תפעיל את סמל Emby בשורת מצב בהפעלה של Windows. אם הגדרת שירות Windows, השאר אותו לא מסומן והגדר את השירות להפעלה בעת האתחול.", + "ButtonSelectDirectory": "בחר תיקיות", + "LabelCachePath": "נתיב מטמון", + "DefaultMetadataLangaugeDescription": "אלו הן ברירות המחדל שלך וניתן להתאים אותן על בסיס ספרייה.", + "LabelCachePathHelp": "ציין מיקום מותאם אישית עבור קבצי מטמון של שרת, כגון תמונות. השאר ריק כדי להשתמש בברירת המחדל של השרת.", + "LabelDefaultRecordingFolder": "תיקיית הקלטות ברירת מחדל", + "LabelMovieRecordingFolder": "תיקיית הקלטות סרטים", + "LabelSeriesRecordingFolder": "תיקיית הקלטות סדרות", + "SeriesRecordingFolderHelp": "(אופציונלי). בחר ספרייה לשמירת הקלטת הסדרות. יש לבחור ספרייה שהגדרת מראש בהגדרות Emby, עם סוג תוכן המוגדר כ-\"סדרות טלוויזיה\" או \"תוכן משולב\".", + "HeaderProgramData": "נתוני תוכנה", + "RecordingFolderHelp": "בחר את הספרייה המוגדרת כברירת מחדל לשמירת הקלטות. על ספרייה זו להיות ספרייה שהגדרת בהגדרות Emby, עם סוג תוכן שמוגדר כ\"תוכן מעורב\".", + "MovieRecordingFolderHelp": "(אופציונלי). בחר ספרייה לשמירת הקלטת הסרטים. יש לבחור ספרייה שהגדרת מראש בהגדרות Emby, עם סוג תוכן המוגדר כ-\"סרטים\" או \"תוכן משולב\".", + "LabelMetadataPath": "נתיב מטא־נתונים", + "LabelMetadataPathHelp": "ציין מיקום עבור artwork ומטא-נתונים שהורדת, או השאר ריק את זה כדי לחזור לברירת המחדל. אם תשנה זאת, תצטרך להעביר את התוכן באופן ידני מהמיקום הישן למיקום החדש. אם אי פעם תשנה ידנית את התוכן של תיקיית המטא-נתונים, תצטרך להפעיל את {0}המשימה המתוזמנת של תיקיית המטא-נתונים{1}.", + "LabelTranscodingTempPath": "נתיב זמני להמרה", + "LabelTranscodingTempPathHelp": "תיקיה זו מכילה קבצים פועלים המשמשים את המרת קידוד. ציין נתיב מותאם אישית, או השאר ריק כדי להשתמש בברירת המחדל בתיקיית הנתונים של השרת.", + "GenerateVideoPreviewThumbnailsHelp": "תמונות ממוזערות של תצוגה מקדימה של וידאו מספקות עדכונים חיים תוך כדי חיפוש באפליקציות נתמכות. יצירת תמונות ממוזערות עשויה להימשך זמן רב, לגרום לשימוש גבוה בCPU ולצרוך שטח דיסק נוסף.", + "AsAScheduledTask": "כמשימה מתוזמנת", + "AsAScheduledTaskAndMediaAdded": "כמשימה מתוזמנת וכאשר הוספת מדיה", + "ButtonRefreshGuideData": "רענן את מדריך השידור", + "LabelNumberOfGuideDays": "מספר הימים של נתוני המדריך להורדה", + "LabelNumberOfGuideDaysHelp": "הורדת נתוני מדריך בשווי של ימים נוספים מספקת את היכולת לתזמן זמן נוסף מראש ולצפות ברישומים נוספים, אך גם ההורדה תיקח זמן רב יותר. אוטומטי יבחר על סמך מספר הערוצים. שימו לב שלא משנה כמה ימים תבחרו, הנתונים חייבים להתקיים בנתוני מדריך המקור על מנת שיורידו אותם. חלק ממקורות הנתונים המדריכים מספקים רק 24 שעות. Emby Guide Data תומך עד 14 ימים.", + "HeaderFetchImages": "הבא תמונות", + "LabelMaxBackdropsPerItem": "מספר מרבי של רקעים לכל פריט", + "LabelMaxScreenshotsPerItem": "מספר מרבי של צילומי מסך לכל פריט", + "LabelMinBackdropDownloadWidth": "רוחב מינימלי להורדת רקע", + "LabelMinScreenshotDownloadWidth": "רוחב מינימלי להורדת צילומי מסך", + "ButtonAddScheduledTaskTrigger": "הוסף טריגר", + "ButtonAdd": "הוסף", + "LabelTriggerType": "סוג ההפעלה", + "OptionOnInterval": "כל פרק זמן", + "OptionAfterSystemEvent": "אחרי אירוע מערכת", + "LabelDay": "יום", + "LabelTime": "זמן", + "LabelEvent": "אירוע", + "OptionWakeFromSleep": "הער ממצב שינה", + "Every": "כל", + "LabelEnableRealtimeMonitor": "אפשר מעקב בזמן אמת", + "LabelEnableRealtimeMonitorHelp": "שינויים בקבצים יעובדו מיידית כאשר מערכת הקבצים תומכת בכך.", + "Community": "קהילה", + "HeaderEmbyNews": "בלוג", + "LabelFriendlyServerName": "שם שרת ידידותי", + "LabelFriendlyServerNameHelp": "השם יתן לזיהוי השרת. אם מושאר ריק, שם השרת יהיה שם המחשב.", + "LabelPreferredDisplayLanguage": "שפת תצוגה מועדפת", + "LabelPreferredDisplayLanguageHelp": "תרגום ממשק Emby הוא תהליך מתמשך.", + "LabelReadHowYouCanContribute": "למד איך תוכל לתרום", + "LabelCustomCss": "CSS מותאם אישית", + "LabelCustomCssHelp": "החל את הCSS המותאם אישית שלך על ממשק האינטרנט.", + "LabelLocalHttpServerPortNumber": "מספר פורט HTTP מקומי", + "LabelLocalHttpServerPortNumberHelp": "מספר יציאת tcp ששרת הhttp של Emby אמור להיקשר אליו.", + "LabelPublicHttpPort": "מספר פורט HTTP ציבורי", + "LabelPublicHttpPortHelp": "מספר הפורט הציבורי שיש למפות ליציאת הHTTP המקומית.", + "LabelPublicHttpsPort": "מספר פורט HTTPS ציבורי", + "LabelPublicHttpsPortHelp": "מספר הפורט הציבורי שיש למפות ליציאת HTTPS המקומית.", + "RequireHttps": "דרוש https עבור חיבורים חיצוניים", + "RequireHttpsHelp": "אם מופעל, חיבורים דרך http יופנו אל https.", + "LabelHttpsPort": "מספר פורט HTTPS מקומי", + "LabelHttpsPortHelp": "מספר יציאת tcp ששרת הhttps של Emby אמור להיקשר אליו.", + "LabelEnableAutomaticPortMap": "אפשר מיפוי פורטים אוטומטי", + "LabelEnableAutomaticPortMapHelp": "נסה למפות אוטומטית את היציאה הציבורית ליציאה המקומית באמצעות UPnP. ייתכן שזה לא יעבוד עם דגמי נתב מסוימים.", + "LabelExternalDDNS": "דומיין חיצוני", + "LabelExternalDDNSHelp": "אם יש לך DNS או שם דומיין דינמי, הזן אותו כאן, ללא פרוטוקול או יציאה. אפליקציות Emby ישתמשו בו בעת חיבור מרחוק. שדה זה נדרש בשימוש עם אישור ssl מותאם אישית. דוגמה: mydomain.com.", + "LabelMinResumePercentage": "אחוז מינימלי להמשך הפעלה", + "LabelMaxResumePercentage": "אחוז מירבי להמשך הפעלה", + "LabelMinResumeDuration": "משך מינימלי להמשך הפעלה (בשניות)", + "LabelMinResumePercentageHelp": "כותרים יוצגו כלא נוגנו אם נצרו לפני הזמן הזה", + "LabelMaxResumePercentageHelp": "קובץ מוגדר כהופעל במלואו אם נעצר אחרי הזמן הזה", + "LabelMinResumeDurationHelp": "קובץ קצר מזה לא יהיה ניתן להמשך ניגון מנקודת העצירה", + "HeaderStatus": "מצב", + "Subscriptions": "מנויים", + "LabelEndingEpisodeNumber": "מספר פרק סיום", + "LabelEndingEpisodeNumberHelp": "נדרש רק עבור קבצים מרובי פרקים", + "HeaderSupportTheTeam": "תמוך בצוות Emby", + "HeaderSupportTheTeamHelp": "עזור להבטיח את המשך הפיתוח של פרויקט זה על ידי רכישת Emby Premiere. חלק מכל ההכנסה יתרום לכלים חינמיים אחרים שאנו תלויים בהם.", + "DonationNextStep": "לאחר השלמתו, אנא חזור והזן את מפתח Emby Premiere שלך, אותו תקבל בדוא\"ל.", + "HeaderRunningTasks": "משימות פעילות", + "ButtonUpdateNow": "עדכן עכשיו", + "PleaseUpdateManually": "אנא כבה את שרת Emby והתקן את הגרסה העדכנית ביותר.", + "ServerUpToDate": "שרת Emby בגרסה העדכנית ביותר", + "MessagePleaseRestartServerToFinishUpdating": "אנא אתחל מחדש את השרת לביצוע העידכונים.", + "LabelDownMixAudioScale": "הגברת שמע בעת המרת ערוצים", + "LabelDownMixAudioScaleHelp": "הגבר שמע כאשר הוא ממוזג. הגדר ל1 לשמור על ערך הווליום המקורי", + "HeaderForgotKey": "שכחתי את המפתח", + "LabelSupporterEmailAddress": "כתובת האימייל אליה נשלח מפתח הרכישה.", + "ButtonRetrieveKey": "שחזר מפתח", + "LabelSupporterKey": "מפתח Emby Premiere (הדבק מהאימייל)", + "LabelSupporterKeyHelp": "הזן את מפתח Emby Premiere שלך כדי להתחיל ליהנות מהטבות נוספות.", + "MessageInvalidKey": "מפתח Emby Premiere חסר או לא חוקי.", + "ErrorMessageInvalidKey": "על מנת שתוכן פרימיום כלשהו יירשם, עליך להיות בעל מנוי פעיל של Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "דלג אם הווידאו כבר כולל כתוביות מוטמעות בשפת ההורדה", + "LabelSkipIfGraphicalSubsPresentHelp": "שמירה על גרסאות טקסט של כתוביות תביא למסירה יעילה יותר ותקטין את הסבירות להמרת קידוד וידאו.", + "HeaderDownloadLanguages": "הורד שפות", + "LabelSkipIfAudioTrackPresent": "דלג אם רצועת השמע המוגדרת כברירת מחדל תואמת לשפת ההורדה", + "LabelSkipIfAudioTrackPresentHelp": "בטל את הסימון כדי לוודא שבכל וידאו יש כתוביות, ללא קשר לשפת השמע.", + "SendMessage": "שלח הודעה", + "HeaderSendMessage": "שלח הודעה", + "ButtonSend": "שלח", + "LabelMessageText": "טקסט ההודעה", + "LabelMessageTitle": "כותרת ההודעה", + "ButtonEditOtherUserPreferences": "ערוך את הפרופיל, התמונה וההעדפות האישיות של משתמש זה.", + "LabelLoginDisclaimer": "הודעת התחברות", + "LabelLoginDisclaimerHelp": "זה יוצג בתחתית עמוד הכניסה.", + "HeaderTranscodingTemporaryFiles": "המרת קידוד קבצים זמניים:", + "HeaderApiKeys": "מפתחות Api", + "HeaderApiKeysHelp": "יישומים חיצוניים נדרשים להיות בעלי מפתח Api כדי לתקשר עם שרת Emby. מפתחות מונפקים על ידי התחברות עם חשבון Emby, או על ידי הענקת מפתח ידני לאפליקציה.", + "HeaderApiKey": "מפתח Api ", + "HeaderResumeSettings": "המשך הגדרות", + "HeaderFetcherSettings": "הגדרות שליפה", + "HeaderActivity": "פעילות", + "ButtonPurchase": "רכישה", + "HeaderInstall": "להתקין", + "LabelSelectVersionToInstall": "בחר גרסה להתקנה", + "LinkLearnMoreAboutSubscription": "למד על Emby Premiere", + "MessagePluginRequiresSubscription": "תוסף זה ידרוש מנוי פעיל של Emby Premiere לאחר 14 ימי הניסיון בחינם.", + "MessagePremiumPluginRequiresMembership": "תוסף זה ידרוש מנוי Emby Premiere פעיל על מנת לרכוש לאחר 14 ימי הניסיון בחינם.", + "HeaderDeveloperInfo": "מידע מפתחים", + "HeaderRevisionHistory": "היסטוריית גרסאות", + "ButtonViewWebsite": "צפה באתר", + "OptionSaveMetadataAsHidden": "שמור מטא-נתונים ותמונות כקבצים מוסתרים", + "LabelConnectEmail": "(אופציונלי) כתובת אימייל של Emby Connect", + "LabelConnectEmailHelp": "אפשר לקשר את המשתמש המקומי הזה לחשבון Emby Connect קיים כדי לאפשר גישה קלה לכניסה מכל אפליקציית Emby מבלי לדעת את כתובת ה-IP של השרת.", + "ButtonLearnMoreAboutEmbyConnect": "למידע נוסף על Emby Connect", + "LabelDateAddedBehavior": "התנהגות תאריך הוספה עבור תוכן חדש", + "OptionDateAddedImportTime": "השתמש בתאריך שנסרק לתוך הספרייה", + "OptionDateAddedFileTime": "השתמש בתאריך יצירת הקובץ", + "LabelDateAddedBehaviorHelp": "אם קיים ערך מטא-נתונים, הוא תמיד ישמש לפני אחת מהאפשרויות הללו.", + "HeaderLibrarySettings": "הגדרות ספרייה", + "HeaderAutomaticSubtitleDownloads": "הורדה אוטומטית של כתוביות", + "HeaderCameraUploadHelp": "אפליקציות Emby יכולות להעלות אוטומטית תמונות שצולמו מהמכשירים הניידים שלכם אל שרת הEmby.", + "LabelCameraUploadPath": "נתיב העלאת מצלמה", + "LabelCameraUploadPathHelp": "בחר נתיב טעינה מותאם אישית. פעולה זו תעקוף את כל הגדרות ברירת המחדל המוגדרות באזור 'העלאת מצלמה'. אם נותר ריק, ייעשה שימוש בתיקיית ברירת מחדל. אם באמצעות נתיב מותאם אישית זה יהיה גם צורך להוסיף כמו ספרייה בהגדרת הספרייה Emby.", + "DefaultCameraUploadPathHelp": "בחר נתיב העלאה מותאם אישית. אם יישאר ריק, תיעשה שימוש בתיקיית ברירת מחדל. אם אתה משתמש בנתיב מותאם אישית, יהיה צורך להוסיף אותו גם כספרייה בהגדרת ספריית Emby.", + "LabelCreateCameraUploadSubfolder": "צור תיקיית משנה עבור כל מכשיר", + "LabelCreateCameraUploadSubfolderHelp": "ניתן להקצות תיקיות ספציפיות למכשיר על ידי לחיצה עליה מדף המכשירים.", + "LabelCustomDeviceDisplayNameHelp": "ספק שם תצוגה מותאם אישית או השאר ריק כדי להשתמש בשם המדווח על ידי המכשיר.", + "TabParentalControl": "בקרת הורים", + "HeaderAccessSchedule": "לוח זמנים לגישה", + "HeaderAccessScheduleHelp": "צור לוח זמנים לגישה כדי להגביל את הגישה לשעות מסוימות.", + "HeaderLibraryAccess": "גישה לתיקיות", + "HeaderChannelAccess": "גישה לערוץ", + "LabelForgotPasswordUsernameHelp": "הזן את שם המשתמש שלך, אם אתה זוכר אותו.", + "TitlePasswordReset": "איפוס סיסמה", + "HeaderBlockItemsWithNoRating": "חסום פריטים ללא מידע דירוג או עם דירוג לא מזוהה", + "LabelBlockContentWithTags": "הגבל פריטים עם תגים", + "LabelTagRestrictionMode": "מצב הגבלת תגיות", + "BlockItemsWithTheseTags": "חסום כותרים עם תגים אלה", + "AllowItemsWithTheseTags": "אפשר רק פריטים עם תגים אלה", + "OptionAllowContentDownloading": "אפשר הורדת מדיה", + "LabelNewUserNameHelp": "שמות משתמש יכולים להכיל אותיות (a-z), מספרים (0-9), מקפים (-), קווים תחתונים (_), גרשיים (') ונקודות (.)", + "HeaderThisUserIsCurrentlyDisabled": "משתמש זה מושבת כעת. כדי להפעיל משתמש זה, אנא עיין באפשרות בתחתית עמוד זה.", + "OptionAllowSyncTranscoding": "אפשר הורדה והתקנה של מדיה הדורשת המרת קידוד", + "AllowMediaConversion": "אפשר המרת מדיה", + "AllowMediaConversionHelp": "קבל או דחה גישה לתכונת המדיה המרה.", + "OptionAllowAudioPlaybackTranscoding": "אפשר הפעלת קול הדורשת המרת קידוד", + "OptionAllowVideoPlaybackTranscoding": "אפשר הפעלת וידאו הדורשת המרת קידוד", + "OptionAllowVideoPlaybackRemuxing": "אפשר שינוי של פורמטי קובץ, במידת הצורך, במהלך הפעלת מדיה", + "OptionAllowMediaPlaybackTranscodingHelp": "הגבלת הגישה להמרת קידוד עלולה לגרום לכישלונות השמעה ביישום Emby עקב פורמטי מדיה שאינם נתמכים.", + "LabelRemoteClientBitrateLimit": "הגבלת קצב סטרימינג באינטרנט (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "הגבלת קצב ביטים לפי סטרים (אופציונלית) עבור כל המכשירים שמחוץ לרשת המקומית. הגבלה זו תגביל את איכות הסטרימינג דרך האינטרנט, גם אם המשתמש בחר איכות גבוהה יותר בנגן. הדבר שימושי כדי למנוע מהמכשירים לבקש קצב גבוה ממה שחיבור האינטרנט שלך מסוגל להתמודד איתו. ייתכן שהדבר יגרום לעומס נוסף על המעבד (CPU) בשרת שלך עקב המרה בזמן אמת לקצב נמוך יותר.", + "LabelUserRemoteClientBitrateLimitHelp": "זה יעקוף את ערך ברירת המחדל הגלובלי שהוגדר בהגדרות שרת מתקדמות.", + "OptionEnableFullSpeedConversion": "אפשר המרה במהירות מלאה", + "OptionEnableFullSpeedConversionHelp": "כברירת מחדל, המרות מבוצעות במהירות נמוכה כדי למזער את צריכת המשאבים.", + "OptionEnableAutomaticServerUpdates": "אפשר עדכוני שרת אוטומטיים", + "HeaderTVSources": "מקורות טלוויזיה", + "HeaderAddTvSource": "הוסף מקור טלוויזיה", + "LabelTunerIpAddress": "כתובת IP של המקלט", + "HeaderGuideProviders": "מדריך מקורות נתונים", + "HeaderAddGuideSource": "מדריך מקורות נתונים", + "LabelZipCode": "מיקוד", + "LabelLineup": "מערך ערוצים", + "LabelImportOnlyFavoriteChannels": "הגבל לערוצים שסומנו כאהובים", + "ImportFavoriteChannelsHelp": "אם מאופשר, רק ערוצים המסומנים כאהובים במכשיר המקלט ייובאו.", + "HeaderDefaultRecordingSettings": "הגדרות ברירת המחדל של הקלטה", + "LabelDisplayName": "שם תצוגה", + "OptionDownloadImagesInAdvance": "הורד תמונות מראש", + "OptionDownloadImagesInAdvanceHelp": "כברירת מחדל, רוב התמונות אינן מורדות מהאינטרנט עד להצגתן באפליקציית Emby. הפעל אפשרות זו כדי להוריד את כל התמונות מראש, בעת ייבוא מדיה חדשה. פעולה זו עלולה להאריך משמעותית את זמן הסריקה של הספרייה.", + "MessageThankYouForSupporting": "תודה על תמיכתך בEmby.", + "FileReadCancelled": "קריאת הקובץ בוטלה.", + "FileNotFound": "קובץ לא נמצא.", + "FileReadError": "חלה שגיאה בקריאת הקובץ.", + "NoPluginConfigurationMessage": "לתוסף זה אין הגדרות להגדיר.", + "HeaderNewApiKey": "מפתח Api חדש", + "HeaderNewApiKeyHelp": "הענק לאפליקציה הרשאה לתקשר עם שרת Emby.", + "MessageKeyEmailedTo": "מפתח נשלח בדוא\"ל אל {0}.", + "HeaderConfirmation": "אישור", + "MessageKeyUpdated": "תודה. מפתח Emby Premiere שלך עודכן.", + "MessageKeyRemoved": "תודה. מפתח Emby Premiere שלך הוסר.", + "TextEnjoyBonusFeatures": "תהנה מתכונות בונוס", + "MessageErrorLoadingSupporterInfo": "אירעה שגיאה בטעינת מידע של Emby Premiere. בבקשה נסה שוב מאוחר יותר.", + "ValueTimeLimitSingleHour": "הגבלת זמן: שעה", + "ValueTimeLimitMultiHour": "מגבלת זמן: {0} שעות", + "General": "כללי", + "HeaderScreenSavers": "שומרי מסך", + "Reporting": "דיווח", + "LabelStopping": "עצירה", + "HeaderSelectCertificatePath": "בחר נתיב אישור", + "HeaderSupporterBenefit": "מנוי פעיל של Emby Premiere מספק הטבות נוספות כגון גישה לEmby DVR, מדיה לא מקוונת, תוספי פרימיום ועוד. {0}למידע נוסף{1}.", + "LabelAbortedByServerShutdown": "(בוטל על ידי כיבוי שרת)", + "LabelScheduledTaskLastRan": "רץ לאחרונה {0}, לוקח {1}.", + "HeaderDeleteTaskTrigger": "מחק את הפעלת המשימות", + "MessageDeleteTaskTrigger": "האם אתה בטוח שברצונך למחוק את טריגר המשימה הזה?", + "MessageNoPluginsDueToAppStore": "כדי לנהל תוספים, אנא השתמש באפליקציית האינטרנט של Emby.", + "LabelVersionInstalled": "{0} הותקן", + "HeaderSelectServerCachePath": "בחר נתיב תיקיית שרת מטמון ", + "HeaderSelectTranscodingPath": "בחר נתיב זמני להמרת קידוד", + "HeaderSelectMetadataPath": "בחר נתיב מטא-נתונים \n", + "HeaderSelectServerCachePathHelp": "עיין או הזן את נתיב התיקייה לשימוש עבור קבצי מטמון של שרת. התיקיה חייבת להיות ניתנת לכתיבה.", + "HeaderSelectTranscodingPathHelp": "עיין או הזן את הנתיב לשימוש עבור המרת קידוד קבצים זמניים. התיקיה חייבת להיות ניתנת לכתיבה.", + "HeaderSelectMetadataPathHelp": "עיין בנתיב שבו תרצה לאחסן מטא-נתונים או הזן אותו. התיקיה חייבת להיות ניתנת לכתיבה.", + "MessageConfirmRestart": "האם אתה בטוח שברצונך להפעיל מחדש את שרת Emby?", + "MessageConfirmShutdown": "האם אתה בטוח שברצונך לכבות את שרת Emby?", + "LabelLocalAccessUrl": "כתובת רשת ביתית (LAN): ‎{0}", + "LabelRemoteAccessUrl": "כתובת רשת חיצונית (WAN): {0}", + "LabelRunningOnPort": "פועל על פורט HTTP ‏{0}", + "LabelRunningOnPorts": "פועל על פורט HTTP {0}, ופורט HTTPS {1}", + "LabelCurrentPath": "נתיב נוכחי", + "HeaderSelectMediaPath": "בחר נתיב מדיה", + "HeaderSelectPath": "בחר נתיב", + "MessageDirectoryPickerInstruction": "ניתן להזין נתיבי רשת באופן ידני במקרה שכפתור הרשת לא מצליח לאתר את המכשירים שלך. לדוגמה, {0} או {1}.", + "MessageDirectoryPickerBSDInstruction": "עבור BSD, ייתכן שתצטרך להגדיר אחסון בתוך הFreeNAS שלך כדי לאפשר לEmby לגשת אליו.", + "MessageDirectoryPickerLinuxInstruction": "עבור לינוקס בArch Linux, CentOS, Debian, Fedora, OpenSuse או Ubuntu, עליך להעניק למשתמש מערכת Emby לפחות גישת קריאה למיקומי האחסון שלך.", + "MetadataManager": "מנהל מטא-נתונים", + "OptionBlockLiveTvChannels": "ערוצי טלוויזיה חיים", + "OptionBlockChannelContent": "תוכן ערוץ אינטרנט", + "ButtonRevoke": "לבטל", + "MessageConfirmRevokeApiKey": "האם אתה בטוח שברצונך לבטל מפתח Api זה? החיבור של האפליקציה לשרת Emby יופסק בפתאומיות.", + "HeaderConfirmRevokeApiKey": "בטל את מפתח Api", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "אנא אשר קבלת תנאי השירות לפני שתמשיך.", + "HeaderChangeFolderType": "שנה סוג תוכן", + "HeaderChangeFolderTypeHelp": "כדי לשנות את הסוג, אנא הסר ובנה מחדש את הספרייה עם הסוג החדש.", + "HeaderAlert": "התראות", + "MessagePleaseRestart": "אנא הפעל מחדש כדי לסיים את העדכון.", + "OptionHomeVideos": "בית וידאו ותמונות", + "OptionBooks": "ספרים", + "HeaderMetadataReaders": "קורא מטא-נתונים ", + "LabelMetadataReadersHelp": "הפעל וסדר את מקורות המטא־נתונים המקומיים המועדפים לפי סדר עדיפות.", + "HeaderSubtitleDownloaders": "הורדת כתוביות", + "SubtitleDownloadersHelp": "אפשר ודרג את הורדת הכתוביות המועדפות עליך לפי סדר עדיפות. ניתן להתקין ספקי כתוביות נוספים באמצעות קטלוג התוספים של Emby.", + "LabelMetadataDownloaders": "מורידי מטא־נתונים", + "LabelMetadataDownloadersHelp": "הפעל ודרג את ההורדות המועדפות של מטא-נתונים לפי סדר העדיפות. ההורדות בעדיפות נמוכה יותר ישמשו רק למילוי מידע חסר.", + "HeaderMetadataSavers": "חוסכי מטא-נתונים ", + "LabelMetadataSaversHelp": "בחר את פורמט הקבצים שבהם יש לשמור את המטא-נתונים שלך.", + "LabelImageFetchers": "שולפי תמונות", + "LabelImageFetchersHelp": "הפעל ודרג את שולחי התמונות המועדפים עליך לפי סדר עדיפות.", + "PersonTypePerson": "איש", + "HeaderRemoveMediaLocation": "הסר מיקום מדיה", + "MessageConfirmRemoveMediaLocation": "האם אתה בטוח שברצונך להסיר את המיקום הזה?", + "LabelNewName": "שם חדש", + "HeaderRemoveLibrary": "הסר ספרייה", + "MessageAreYouSureYouWishToRemoveLibrary": "האם אתה בטוח שברצונך להסיר את ספריית ‎{0} מהשרת שלך ב־Emby? קבצי המדיה שלך לא ייפגעו.", + "ButtonRename": "שנה שם", + "HeaderPluginInstallation": "התקנת תוסף", + "MessageTrialExpired": "תקופת הניסיון של תכונה זו פג", + "MessageTrialWillExpireIn": "תקופת הניסיון של תכונה זו תסתיים בעוד {0} ימים", + "ValuePriceUSD": "מחיר: {0} (דולר)", + "MessageFeatureIncludedWithSupporter": "אתה רשום לתכונה זו, ותוכל להמשיך להשתמש בה עם מנוי פעיל של Emby Premiere.", + "HeaderSelectExternalPlayer": "בחר נגן חיצוני", + "HeaderExternalPlayerPlayback": "השמעת בנגן חיצוני", + "HeaderThankYou": "תודה", + "HeaderSelectUploadPath": "בחר נתיב העלאה", + "ErrorMessageStartHourGreaterThanEnd": "שעת הסיום חייבת להיות גדולה משעת ההתחלה.", + "MessagePluginConfigurationRequiresLocalAccess": "כדי להגדיר את התוסף הזה, היכנס ישירות לשרת המקומי שלך.", + "MovieLibraryHelp": "עיין ב{0}מדריך למתן שמות לסרטי Emby{1}.", + "TvLibraryHelp": "עיין ב{0}מדריך למתן שמות לEmby TV{1}.", + "BookLibraryHelp": "ספרי לימוד נתמכים. עיין ב{0}מדריך למתן שמות לEmby Book{1}.", + "MessageGamePluginRequired": "דורש התקנה של תוסף GameBrowser", + "HeaderUnlockApp": "בטל את נעילת האפליקציה", + "MessagePaymentServicesUnavailable": "שירותי תשלום אינם זמינים כעת. בבקשה נסה שוב מאוחר יותר.", + "NoNewDevicesFound": "לא נמצאו מכשירים חדשים. כדי להוסיף מקלט חדש, סגור את תיבת הדו שיח הזו והזן את פרטי ההתקן באופן ידני.", + "MessageConfirmDeleteTunerDevice": "האם אתה בטוח שברצונך למחוק את המכשיר הזה?", + "MessageConfirmDeleteGuideProvider": "האם אתה בטוח שברצונך למחוק את ספק המדריך הזה?", + "HeaderDeleteProvider": "מחק ספק", + "ErrorAddingTunerDevice": "אירעה שגיאה בהוספת התקן המקלט. אנא ודא שהוא נגיש ונסה שוב.", + "ErrorSavingTvProvider": "אירעה שגיאה בשמירת ספק הטלוויזיה. אנא ודא שהוא נגיש ונסה שוב.", + "ErrorGettingTvLineups": "אירעה שגיאה בהורדת מערכי טלוויזיה. אנא ודא שהמידע שלך נכון ונסה שוב.", + "MessageCreateAccountAt": "צור חשבון ב {0}", + "ErrorPleaseSelectLineup": "אנא בחר מערך ונסה שוב. אם אין מערכים זמינים, אנא בדוק ששם המשתמש, הסיסמה והמיקוד שלך נכונים.", + "ErrorValidatingSupporterInfo": "אירעה שגיאה באימות פרטי Emby Premiere שלך. בבקשה נסה שוב מאוחר יותר.", + "LabelLocalSyncStatusValue": "סטטוס: {0}", + "HeaderTopPlugins": "תוספים מובילים", + "ForAdditionalLiveTvOptions": "עיין ב{0}קטלוג התוספים{1} של Emby כדי להתקין ספקי טלוויזיה בשידור חי נוספים.", + "AddUser": "הוסף משתמש", + "HeaderEmailAddress": "כתובת אימייל", + "NumLocationsValue": "{0} תיקיות", + "PleaseAddAtLeastOneFolder": "הוסף לפחות תיקיה אחת לספרייה זו על ידי לחיצה על כפתור הוסף.", + "ErrorAddingMediaPathToVirtualFolder": "אירעה שגיאה בהוספת נתיב המדיה. אנא ודא שהנתיב חוקי ולתהליך שרת Emby יש גישה למיקום זה.", + "ErrorAddingEmbyConnectAccount3": "חשבון Emby כבר מקושר למשתמש מקומי קיים. ניתן לקשר חשבון Emby רק למשתמש מקומי אחד בכל פעם.", + "HeaderConfirmPluginInstallation": "אשר התקנת תוסף", + "PleaseConfirmPluginInstallation": "אנא לחץ על אישור כדי לאשר שקראת את האמור לעיל וברצונך להמשיך בהתקנת התוסף.", + "MessagePluginInstallDisclaimer": "תוספים שנבנו על ידי חברי הקהילה Emby הם דרך מצוינת לשפר את חוויית Emby שלך עם תכונות נוספות ויתרונות. לפני ההתקנה, שים לב להשפעות שעל שרת Emby שלך, כגון סריקות ספריות ארוכות יותר, עיבוד רקע נוסף ויציבות מערכת ירודה.", + "HardwareAccelerationWarning": "הפעלת האצת חומרה עלולה לגרום לאי יציבות בסביבות מסוימות. ודא שמערכת ההפעלה ומנהלי הווידאו שלך מעודכנים במלואה. אם אתה מתקשה לנגן וידאו לאחר הפעלת זה, יהיה עליך לשנות את ההגדרה חזרה ל אוטומטי.", + "ValueExample": "דוגמה: {0}", + "LabelFileOrUrl": "קובץ או כתובת URL", + "OptionEnableForAllTuners": "הפעל עבור כל מכשירי המקלט", + "HeaderTuners": "מקלטים", + "DrmChannelsNotImported": "ערוצים עם DRM לא ייובאו.", + "LabelAllowHWTranscoding": "אפשר המרת קידוד חומרתי", + "AllowHWTranscodingHelp": "אם מאופשר, אפשר להמיר סטרימינג למקלט בזמן אמת. הדבר עשוי לסייע בהפחתת המרת קידוד הנדרשת על ידי שרת Emby.\n", + "MetadataSettingChangeHelp": "שינוי הגדרות המטא-נתונים ישפיע על תוכן חדש שנוסף בהמשך. כדי לרענן תוכן קיים, פתח את מסך הפרטים ולחץ על לחצן הרענון, או בצע ריענון בכמות גדולה באמצעות מנהל המטא-נתונים.", + "RecordingPathChangeMessage": "שינוי תיקיית ההקלטות שלך לא יעביר הקלטות קיימות מהמיקום הישן לחדש. תצטרך להעביר אותם ידנית אם תרצה.", + "LabelLocalIpAddress": "כתובת IP מקומית", + "LabelBindToLocalNetworkAddressHelp": "אופציונאלי. תעקוף את כתובת הIP המקומית ששרת Emby יציג לאפליקציות Emby. אם נותר ריק, השרת יזהה אוטומטית את כתובת הIP המקומית.", + "SettingsWarning": "שינוי ערכים אלה עלול לגרום לחוסר יציבות או כשלים בקישוריות. אם אתה נתקל בבעיות כלשהן, אנו ממליצים לשנות אותן בחזרה לברירת המחדל.", + "OptionSaveMetadataAsHiddenHelp": "שינוי זה יחול על מטא-נתונים חדשים שנשמרו בעתיד. קובצי מטא-נתונים קיימים יעודכנו בפעם הבאה שהם יישמרו על ידי שרת Emby.", + "EnablePhotos": "אפשר תמונות", + "EnablePhotosHelp": "תמונות יתגלו ויוצגו לצד קובצי מדיה אחרים.", + "ImportPlaylists": "ייבא קבצי פלייליסט", + "ImportPlaylistsHelp": "ניתן לייבא רשימות השמעה שנמצאות בספריות המדיה שלך אל שרת Emby.", + "SaveThumbnailImagesIntoMediaFolders": "שמור תמונות ממוזערות של תצוגה מקדימה של וידאו בתיקיות מדיה", + "LabelGenerateVideoPreviewThumbnails": "צור תמונות ממוזערות מקדימות לווידאו", + "LabelEnableDebugLogging": "אפשר תיעוד פעילות לאיתור תקלות", + "OptionEnableExternalContentInSuggestions": "אפשר תוכן חיצוני בהצעות", + "OptionEnableExternalContentInSuggestionsHelp": "אפשר לכלול טריילרים באינטרנט ותוכניות טלוויזיה בשידור חי בתוכן המוצע.", + "LabelOptionalNetworkPath": "(אופציונלי) תיקיית רשת משותפת", + "LabelOptionalNetworkPathHelp": "אם תיקיה זו משותפת ברשת שלך, אספקת נתיב השיתוף ברשת יכולה לאפשר לאפליקציות Emby במכשירים אחרים לגשת ישירות לקבצי מדיה.", + "SynologyUpdateInstructions": "התחבר לDSM ועבור למרכז החבילות כדי לעדכן.", + "HeaderRecordingPostProcessing": "הקלטה לאחר עיבוד", + "LabelPostProcessorArguments": "פרמטרים לשורת הפקודה של תהליך העיבוד שלאחר מכן.", + "PostProcessorArgumentsHelp": "המשתנים הבאים נתמכים בשורת הפקודה כדי לאפשר העברת נתונים לתהליך העיבוד שלאחר מכן.", + "LabelPostProcessor": "יישום לעיבוד לאחר", + "DvrPostProcessorPathArgument": "{path}: הנתיב המלא לקובץ ההקלטה החדש", + "OptionAutomaticallyGroupSeries": "מזג באופן אוטומטי סדרות המפוזרות על פני מספר תיקיות", + "OptionAutomaticallyGroupSeriesHelp": "אם מאופשר, סדרות המפוזרות על פני מספר תיקיות בספרייה זו ימוזגו אוטומטית לסדרה אחת.", + "WhenDidYouPurchaseApp": "מתי רכשת את האפליקציה הזו במקור?", + "PreferEmbeddedTitlesOverFileNames": "העדיפו כותרות לוגו על פני שמות קבצים", + "PreferEmbeddedTitlesOverFileNamesHelp": "זה קובע את כותרת ברירת המחדל לתצוגה כאשר אין מטא-נתונים באינטרנט או מטא-נתונים מקומיים זמינים.", + "FriendlyNameForReferenceHelp": "שם ידידותי המשמש לתצוגה, לטעמך האישי.", + "HeaderLiveTvTunerSetup": "הגדרת מקלט טלוויזיה בשידור חי", + "HeaderTVSourceSetup": "הגדרת מקור טלוויזיה", + "HeaderDetectMyDevices": "זיהוי מכשירים", + "MessagePleaseWait": "המתן בבקשה. זה עשוי לקחת דקה.", + "DetectingDevices": "איתור מכשירים", + "LabelAutomaticallyRefreshInternetMetadataEvery": "לאחר הייבוא הראשוני, רענן אוטומטית את המטא־נתונים מהאינטרנט", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "רענן אוטומטית מטא נתונים עבור פרקים עם כותרות מצייני מיקום כגון TBA", + "EveryNDays": "כל {0} ימים", + "LabelCertificatePassword": "סיסמת אישור", + "LabelCertificatePasswordHelp": "אם האישור שלך דורש סיסמה, אנא הזן אותה כאן.", + "HeaderNewLibrary": "ספרייה חדשה", + "HttpsRequiresCert": "כדי לאפשר חיבורים מאובטחים, תצטרך לספק אישור SSL מהימן, כגון Lets Encrypt. אנא ספק אישור או השבת חיבורים מאובטחים.", + "ServerRestartNeededAfterPluginInstall": "יהיה צורך להפעיל מחדש את שרת Emby לאחר התקנת תוסף.", + "PluginInstalledMessage": "התוסף הותקן בהצלחה. יהיה צורך להפעיל מחדש את שרת Emby כדי שהשינויים ייכנסו לתוקף.", + "MessagePremiereStatusGood": "יש לך תוכנית של {0} Emby Premiere והשימוש במכשיר שלך נמצא בהחלט במגבלה.", + "MessagePremiereStatusClose": "יש לך תוכנית של {0} Emby Premiere, אבל השימוש במכשיר שלך קרוב למגבלה.", + "MessagePremiereExtendedPlans": "שקול {0}תוכנית מכשיר מורחבת{1}", + "MessagePremiereStatusOver": "יש לך תוכנית של {0} Emby Premiere, אבל חרגת ממגבלת המכשיר שלך!", + "ListItemPremiereSub": "מנוי {0} שנרכש באמצעות {2} יפוג {1}", + "LabelClickToManage": "לחץ כדי לנהל את המנוי הזה", + "LabelCancelInfo": "אתה יכול לנהל מנוי זה ישירות עם {0}", + "LabelAlreadyCanceled": "מנוי זה בוטל. המפתח יישאר בתוקף עד שתפוג.", + "HeaderCancelSub": "בטל את Emby Premiere", + "MessageConfirmSubCancel": "לא, בבקשה אל תלך... אתה תפספס את כל התכונות הנהדרות של Emby Premiere!", + "ButtonCancelSub": "אני יודע, בטל את זה בכל מקרה", + "ButtonDontCancelSub": "שמור על Emby Premiere", + "MessageSubCancelReqSent": "הודעת אימייל נשלחה לבעלים של המפתח. בצע את ההנחיות שבדוא\"ל זה כדי להשלים את ביטול המינוי. אנו מקווים לראות אותך בקרוב!", + "MessageSubCancelError": "משהו השתבש בעת הניסיון לבטל. אנא שלח אימייל ל־{0} ונעזור לך לסיים את התהליך.", + "LabelAlreadyCancelled": "מנוי זה בוטל. לא תחויב שוב אבל התכונות יפעלו עד התאריך שלמעלה.", + "AllowOnTheFlySubtitleExtraction": "אפשר חילוץ כתוביות תוך כדי תנועה", + "AllowOnTheFlySubtitleExtractionHelp": "ניתן לחלץ כותרות מוטבעות מסרטונים ולהעביר ליישומי Emby בטקסט רגיל כדי לסייע במניעת המרת קידוד וידאו. במערכות מסוימות זה יכול לקחת הרבה זמן ולגרום השמעת וידאו כדי לעצור במהלך תהליך החילוץ. בטל את האפשרות שכתוביות מוטבעות נצרבו עם המרת קידוד וידאו כאשר הן אינן נתמכות באופן מקורי על ידי התקן הלקוח.", + "AllowOnTheFlyFontExtraction": "אפשר חילוץ גופן כתוביות בזמן אמת", + "AllowOnTheFlyFontExtractionHelp": "ניתן לחלץ גופנים מוטמעים מתוך סרטונים ולהעבירם לאפליקציות Emby, על מנת לאפשר ניגון של סרטונים הכוללים גופנים מותאמים אישית. במערכות מסוימות, תהליך זה עשוי להימשך זמן רב ולגרום להשהיה בניגון הווידאו במהלך החילוץ.", + "EnableDebugLoggingHelp": "רישום באגים צריך להיות מופעל רק לפי הצורך לצורך פתרון בעיות. הרחבת גישה למערכת הקבצים עלולה למנוע ממכשיר השרת להיות מסוגל לישון בסביבות מסוימות.", + "LabelSimultaneousConnectionLimit": "מגבלת סטרימינג בו־זמנית", + "SimultaneousConnectionLimitHelp": "המספר המרבי של סטרימינג בו זמניים המותרים. הזן 0 ללא הגבלה.", + "LaunchWebAppOnStartup": "הפעל את אפליקציית האינטרנט של Emby בדפדפן האינטרנט שלי כאשר שרת Emby מופעל", + "LaunchWebAppOnStartupHelp": "פעולה זו תפתח את יישום האינטרנט בדפדפן האינטרנט המוגדר כברירת מחדל כאשר שרת Emby יתחיל לפעול. פעולה זו לא תתרחש בעת שימוש בפונקציית אתחול השרת.", + "LabelReferrerHeader": "כותרת מפנה (HTTP)", + "LabelUserAgentHeader": "כותרת מזהה לקוח (HTTP)", + "SupplyCustomValueIfNeeded": "ספק ערך כותרת http מותאם אישית, במידת הצורך.", + "HeaderConfigureRemoteAccess": "הגדר גישה מרחוק", + "LearnHowToCreateSynologyShares": "למד כיצד לשתף תיקיות בSynology.", + "LabelAllowedRemoteAddresses": "מסנן כתובות IP מרוחקות", + "LabelAllowedRemoteAddressesMode": "מצב סינון כתובות IP מרוחקות", + "Whitelist": "רשימה לבנה", + "Blacklist": "רשימה שחורה", + "AllowedRemoteAddressesHelp": "רשימה מופרדת בפסיקים של כתובות IP או IP/Netmask עבור רשתות שיותרו או ייחסמו מגישה מרחוק. אם תישאר ריקה — כל הכתובות המרוחקות יורשו.", + "LabelLanNetworks": "רשתות מקומיות LAN", + "LanNetworksHelpText": "רשימה מופרדת בפסיקים של כתובות IP או כתובות IP עם מסכת רשת (IP/netmask), אשר ייחשבו כחלק מהרשת המקומית בעת אכיפת מגבלות רוחב פס וגישה מרחוק.\nאם הוגדרו ערכים כאן — כל כתובת IP אחרת תיחשב כחלק מהרשת החיצונית.\nאם השדה נותר ריק, רק תת־הרשת של השרת ותת־רשתות פרטיות נפוצות (192.168.0.0/24, 172.16.0.0/12 וכדומה) ייחשבו כחלק מהרשת המקומית.", + "LabelSecureConnectionsMode": "מצב חיבור מאובטח", + "PreferredNotRequired": "מועדף, אך לא נדרש", + "RequiredForAllRemoteConnections": "נדרש עבור כל החיבורים מרחוק", + "HandledByProxy": "מטופל על ידי פרוקסי הפוך", + "SaveSubtitlesIntoMediaFolders": "שמור כתוביות שהורדו בתוך תיקיות המדיה", + "SaveSubtitlesIntoMediaFoldersHelp": "אחסון כתוביות ליד קובצי וידאו יאפשר לנהל אותם בקלות רבה יותר.\n", + "AutomaticSubtitleDownloadInstructions": "כדי לנהל הורדת כתוביות אוטומטית, לחץ על ספרייה בהגדרת ספריית Emby, וערוך את הגדרות הורדת הכתוביות עבור אותה ספרייה.", + "ProviderNeedsSetupWithUrl": "{0} דורש הגדרה נוספת ב {1} הגדרות מסך{2} בשרת Emby.", + "LabelEnableHardwareAcceleration": "אפשר האצת חומרה כאשר זמינה", + "HeaderPreferredHardwareDecoders": "מפענחי חומרה מועדפים", + "HeaderPreferredHardwareEncoders": "מקודדי חומרה מועדפים", + "AllowChangingImageAndPassword": "אפשר למשתמש זה לשנות את הסיסמה ואת תמונת הפרופיל שלו", + "LabelSimultaneousStreamLimit": "מקסימום סטרימינג של וידאו בו־זמנית", + "SimultaneousStreamLimitHelp": "הגבל את מספר הפעלות של הפעלת וידאו במקביל.", + "LabelMusicFolderStructure": "מבנה תיקיות מוזיקה", + "LabelMusicFolderStructureHelp": "זה מספק רמז לסורק הספרייה על האופן שבו התיקיות שלך מאורגנות. אם אינך בטוח, או אם התיקיות שלך אינן תואמות בדיוק לאחת האפשרויות, אנא בחר באפשרות ברירת המחדל של אחר.", + "OtherOrUnstructured": "אחר או לא מובנה", + "PerfectArtistAlbumTrack": "מאורגן בצורה מושלמת לתוך תיקיות אמן\\אלבום, עם רצועות ישירות בתיקיות האלבומים.", + "PerfectAlbumTrack": "מאורגן בצורה מושלמת בתיקיות אלבומים, עם רצועות ישירות בתיקיות האלבומים.", + "LabelMinCollectionSize": "גודל מינימלי לאוסף אוטומטי", + "PerfectAuthorAudioBookTrack": "מאורגן בצורה מושלמת לתוך תיקיות מחבר\\ספר, עם רצועות ישירות בתיקיות הספרים.", + "PerfectAudioBookTrack": "מאורגן בצורה מושלמת לתוך תיקיות ספרים, עם רצועות ישירות בתיקיות הספרים.", + "MinCollectionSizeHelp": "צור באופן אוטומטי אוספים כאשר יש לך לפחות את מספר הכותרים הנבחר בספרייה שלך. שינוי ערך זה לא ישפיע על אוספים קיימים.", + "LabelImportCollections": "ייבא מידע אוסף ממורידי מטא-נתונים ", + "LabelImportCollectionsHelp": "כאשר מאופשר, פעולה זו תייבא מידע אודות האוסף מהורדות מטא-נתונים \nהמאופשרים שלך. זה עלול לגרום לאוספים לא רצויים להיווצר אוטומטית. השבתה תמנע יצירה אוטומטית של אוספים עתידיים, אך לא תמחק את הקיימים.", + "LabelAllowAdultMetadata": "אפשר מטא-נתונים למבוגרים", + "LabelAllowAdultMetadataHelp": "אפשר התאמת כותרות למבוגרים בעת חיפוש מטא-נתונים באינטרנט.", + "HeaderVideoPreviewThumbnails": "תצוגה מקדימה של וידאו כתמונות ממוזערות", + "LabelEnableHDRToneMapping": "אפשר מיפוי גוונים (Tone Mapping) ל־HDR", + "EnableHDRToneMappingHelp": "מיפוי גוונים יבטיח המרת צבע נכונה בעת המרת קידוד תוכן HDR, שאחרת ייראה מעומעם מאוד וחסר רוויה. ייתכן שיהיה צורך ברכיבי מנהל התקן נוספים כדי לתמוך בהאצת חומרה כאשר תכונה זו מופעלת. אנא עיין במדריך להגדרת האצת החומרה שלנו לפרטים.", + "WithHardwareAcceleratedTranscoding": "כן, רק עם האצת חומרה", + "TranscodingStillInitializing": "שירותי ההמרה של שרת Emby עדיין עסוקים בהפעלה. מסך זה יתרענן אוטומטית כאשר שירותי המרת קידוד יהיו מוכנים.", + "WithEitherHardwareOrSoftwareTranscoding": "כן, עם חומרה או תוכנה להמרת קידוד", + "ToneMappingInHardwareDescription": "מיפוי גוונים יתבצע עם האצת חומרה כאשר הוא מופעל ונתמך על ידי החומרה, ודילוג בכל שאר המקרים.", + "ToneMappingInSoftwareDescription": "מיפוי הגוונים יבוצע בתוכנה על ידי המעבד. זה הרבה יותר איטי מאשר מיפוי גוונים מואץ בחומרה וידרוש מכונת שרת חזקה מאוד.", + "ToneMappingInBothDescription": "מיפוי גוונים יתבצע עם האצת חומרה כאשר הוא מופעל ונתמך על ידי החומרה, ויחזור לתוכנה בכל שאר המקרים. מיפוי גוונים בתוכנה איטי בהרבה ממיפוי גוונים מואץ בחומרה וידרוש מכונת שרת חזקה מאוד.", + "AutoMapped": "ממופה אוטומטית", + "ManuallyMapped": "ממופה ידנית", + "NotMappedToGuideData": "לא ממופה למדריך נתונים", + "MappedToValue": "מופה ל{0}", + "LabelAutomaticallyWakeServerForRecordings": "הער אוטומטית את מכונת השרת כדי לבצע הקלטות", + "LabelAutomaticallyWakeServerForRecordingsHelp": "אירועי התעוררות יתוזמנו עם מערכת ההפעלה של השרת. השבתת אפשרות זו תמנע את תזמון אירועי התעוררות עתידיים, אך לא תסיר אירועים שתוזמנו בעבר.", + "Database": "מסד נתונים", + "LabelOptimizeDatabaseOnShutdown": "נסה לייעל את מסד הנתונים בעת כיבוי שרתים", + "LabelOptimizeDatabaseOnShutdownHelp": "פעולת האופטימיזציה של מסד הנתונים היא בדרך כלל ללא הפעלה, אך היא תפעיל מדי פעם ניתוח אם נראה שכך יהיה שימושי למתכנן השאילתות. הדבר עלול לגרום לשרת Emby להימשך זמן רב יותר עד לכיבוי.", + "LabelDatabaseCacheSize": "גודל מטמון מסד נתונים (MB)", + "LabelDatabaseCacheSizeHelp": "מגדיר את כמות הנתונים שמסד הנתונים יחזיק בזיכרון בבת אחת, לכל קובץ מסד נתונים. ערך גדול יותר עשוי לעזור לשפר את הביצועים של שרת Emby. דורש הפעלה מחדש של השרת כדי להיכנס לתוקף.", + "LabelDatabaseAnalysisLimit": "מגבלת שורות ניתוח", + "LabelDatabaseAnalysisLimitHelp": "כאשר מסד הנתונים עובר אופטימיזציה, זהו המספר המשוער של שורות שנבדקות בכל אינדקס על ידי הפקודה ANALYZE. ערך גדול יותר יגדיל את האפקטיביות של אופטימיזציית מסד הנתונים, אך עלול לגרום לשרת Emby להימשך זמן רב יותר עד לכיבוי.", + "LabelVacuumDb": "שאבו את מסד הנתונים באתחול הבא של שרת Emby", + "LabelVacuumDbHelp": "ניקוי מחדש בונה את קובץ מסד הנתונים, מכווץ אותו לכמות מינימלית של שטח דיסק. במקרים מסוימים פעולה זו עשויה לשפר את ביצועי שרת Emby.\nשימו לב: השרת שלך לא יהיה זמין במהלך פעולת הניקוי, ולא תהיה אפשרות לעקוב אחרי התקדמותה.\nאנא הימנעו מסגירת תהליך השרת בכוח במהלך זמן זה, שכן הדבר עשוי להוביל לפגימה במסד הנתונים.\nזוהי פעולה חד־פעמית, והאפשרות הזו תחזור להיות לא מסומנת עם אתחול השרת הבא.", + "AdvancedOptionsWarning": "אלו הן אפשרויות מתקדמות ובדרך כלל יש להשאיר אותן בברירות המחדל, אלא אם יש לך סיבה לשנות אותן.", + "HeaderRecentlyActiveDevices": "התקנים פעילים לאחרונה", + "YesUntilServerRestart": "כן, עד להפעלה מחדש של השרת הבא", + "YesUntilLogRotate": "כן, עד הסיבוב הבא של קובץ היומן", + "LabelSubtitleDownloadMaxAge": "הפסק לנסות להוריד אוטומטית כתוביות לסרטונים ישנים מ", + "SubtitleDownloadMaxAgeHelp": "זה מבוסס על ערך המטא-נתונים של תאריך נוסף.", + "NoAgeLimit": "אין הגבלת גיל", + "AnonymizeLogContents": "הצג את תוכן היומן כאנונימי", + "Markers": "סמנים", + "LabelGenerateIntroVideoMarkers": "צור סימני וידאו לפתיח", + "GenerateIntroVideoMarkersHelp": "מזהה תוכניות פתיחה ומציג את כפתור 'דלג על פתיח' באפליקציות Emby. זיהוי פתיח עשוי להימשך זמן רב ולגרום לשימוש גבוה במעבד או בדיסק.", + "LabelCopyFromUser": "העתק הגדרות ממשתמש", + "CopyFromUserHelp": "אופציונאלי. האץ את יצירת המשתמש החדש על ידי העתקת מידע ממשתמש קיים", + "UserPolicy": "מדיניות משתמש (גישה לספרייה ולתכונות, בקרת הורים וכו')", + "UserConfiguration": "תצורת משתמש (שפות שמע וכתוביות מועדפות, סדר ספרייה וכו')", + "UserDataAndDescription": "נתוני משתמש (מועדפים, מצב צפייה והאזנה, ועוד)", + "HeaderCopyOptions": "אפשרויות העתקה", + "LabelMultiRestrictionMode": "מצב מגבלות מרובות", + "MultiRestrictionModeAll": "אפשר תוכן התואם הן למגבלות הדירוג והן לתג", + "MultiRestrictionModeAny": "אפשר תוכן התואם למגבלות הדירוג או התג", + "AllowMappingByChannelNumber": "אפשר מיפוי כדי להנחות נתונים באמצעות מספרי ערוצים", + "AllowMappingByChannelNumberHelp": "זה יכול לשמש כחלופה להתאמת ערוצי המקלט עם נתוני מדריך בכל פעם שלא ניתן למצוא התאמה על סמך שם הערוץ. הדבר עלול להוביל להתאמה לא מדויקת אם מספרי הערוצים מהמקלט אינם נכונים.", + "LabelPreferredSourceForChannelLogos": "העדיפו לוגו ערוצים מנתוני המדריך על פני המקלט כאשר לשניהם יש אותם זמינים", + "LabelPreferredSourceForChannelNumbers": "העדיפו מספרי ערוצים מנתוני המדריך על פני המקלט כאשר לשניהם יש אותם זמינים", + "HeaderSoftwareEncoders": "מקודדי תוכנה", + "LabelProxyHeaderMode": "קרא כותרות פרוקסי כדי לקבוע כתובות IP של הלקוח", + "ProxyHeadersRemoteOnly": "רק כאשר הם מכילים כתובות רשת מרוחקות", + "ProxyHeaderModeHelp": "קובע אם יש להשתמש בכותרות בקשה כגון {0} ו-{1} כדי לקבוע את כתובת ה-IP של התקנים מתחברים.", + "AllowCameraUpload": "אפשר העלאת מצלמה", + "AllowCameraUploadHelp": "אם מאופשר, ואם מופעל באפליקציות הנייד של Emby, משתמשים יכולים להעלות אוטומטית תמונות וסרטונים שצולמו מהמצלמה שלהם לשרת Emby זה", + "CameraUploadMustBeGranted": "יש להעניק לך גם גישה להעלאת מצלמה על ידי מנהל השרת שלך.", + "EnableReadingAndWritingPeopleMetadata": "אפשר קריאה וכתיבה של קבצי מטא נתונים של אנשים", + "EnableReadingAndWritingPeopleMetadataHelp": "מחייב להתקין את הפלאגין Nfo Metadata. זה יאפשר לשמור את עריכות האנשים שלך בקובצי מטא נתונים של nfo, אך יביא לסריקות ספרייה ארוכות יותר.", + "LabelIgnoreSampleFiles": "התעלם מקבצים המכילים את המילה דוגמה בשם הקובץ אם גודלם קטן מ-(MB)", + "PreferredChannelImageSource": "מקור תמונת ערוץ מועדף", + "PreferredChannelImageSourceHelp": "בחר את תמונת הערוץ המועדפת כאשר גם המקלט וגם נתוני המדריך מספקים תמונות.", + "CacheImagesInServerData": "שמור עותק שמור במטמון של התמונות בתיקיית המטא־נתונים של השרת", + "CacheImagesInServerDataHelp": "אם המדיה והתמונות שלך מאוחסנות על מחשב אחר, שמירת עותק במטמון של התמונות בתיקיית המטא־נתונים של השרת יכולה להפחית את הגישה לרשת ולשפר את הביצועים.\nעם זאת, יצירת מטמון זה עלולה להאט את סריקות הספרייה, ותיקיית המטא־נתונים של השרת תצרוך נפח דיסק גדול יותר באופן משמעותי.", + "AllowSharingPersonalContent": "אפשר שיתוף תכנים אישיים כגון רשימות השמעה עם משתמשים אחרים בשרת זה", + "AllowSharingPersonalContentHelp": "אם תינתן הרשאה, משתמש זה יוכל לשתף את רשימות ההשמעה שלו עם משתמשים אחרים. פריטי הרשימה יישארו מוגבלים בהתאם להרשאות הגישה לספריות ולהגדרות בקרת הורים.", + "LiveBufferSizeHours": "מגבלת גודל המטמון לשידור חי (בשעות)", + "LiveBufferSizeHoursHelp": "מטמון ארוך יותר יאפשר יכולת רחבה יותר לדלג קדימה ואחורה במהלך שידור חי, אך יצרוך יותר שטח אחסון בדיסק.", + "LabelTranscodingMaxResolution": "רזולוציית המקסימום להמרה", + "TranscodingMaxResolutionHelp": "הגדר גבול עליון להמרת וידאו שיחול על כל ההמרות, ללא קשר להגדרת האיכות בנגן Emby. פעולה זו תסייע להפחית את צריכת המשאבים של תהליכי ההמרה בשרת.", + "EnableHevcEncodingExp": "הפעל קידוד וידאו בפורמט HEVC (ניסיוני)", + "EnableHevcEncodingHelp": "אפשר המרת וידאו באמצעות קודק HEVC אם הוא נתמך על ידי הלקוח.", + "LabelEnableMultiPartItems": "אפשר פריטים מרובי חלקים", + "EnableMultiPartItemsHelp": "זיהוי אוטומטי וקיבוץ קבצים שנקראים כחלק 1, חלק 2, וכו'. חלקים נוספים יוצגו במסך הפרטים הראשי של הפריט.", + "MultiVersionItemsDetectionHelp": "זיהוי אוטומטי וקיבוץ גרסאות שונות של אותו פריט יחד. בחירת גרסה תוצע במסך הפרטים הראשי של הפריט. קיבוץ על פי קבצים דורש שמירה וארגון קבצים בצורה מתאימה.", + "MultiVersionMoviesDetectionHelp": "קיבוץ על פי מטא־נתונים יכלול סרטים בעלי מזהי חוץ זהים (כמו MovieDb, IMDb וכו').", + "EnableMultiPartItemsTVHelp": "לא נתמך עבור פרקים של סדרות טלוויזיה.", + "HeaderAutomaticGrouping": "קיבוץ אוטומטי", + "LabelMultiVersionItemsDetection": "זיהוי פריטים מרובי גרסאות", + "MultiVersionItemsDetectionBoth": "זיהוי פריטים מרובי גרסאות על סמך קבצים ומטא־נתונים גם יחד", + "MultiVersionItemsDetectionFiles": "זיהוי פריטים מרובי גרסאות על סמך קבצים", + "MultiVersionItemsDetectionMetadata": "זיהוי פריטים מרובי גרסאות על סמך מטא־נתונים", + "LabelNetworkRequestProtocol": "פרוטוקול לבקשות רשת", + "NetworkRequestProtocolHelp": "בחר את הפרוטוקול שישמש לבקשות רשת יוצאות לספקי מטא־נתונים ושירותים נוספים.", + "GenerateChaptersForVideos": "צור פרקים עבור קבצי וידאו שאינם כוללים מידע על פרקים מוטמעים", + "GeneratedChapterInterval": "מרווח יצירת פרקים אוטומטיים", + "StartOfSection": "Start of chapter", + "PreviousSection": "Previous chapter", + "PageNarrow": "Narrow", + "PageMaximized": "Maximized", + "PageBook": "Double page", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "NextSection": "Next chapter", + "ZoomOut": "Zoom out", + "ZoomIn": "Zoom in", + "ZoomNone": "Default zoom", + "ZoomAutoFit": "Fit page", + "LayoutPage": "Single page", + "LayoutDouble": "Double page", + "LayoutVertical": "Vertical scroll", + "Margins": "Margins", + "PreviousPage": "Previous page", + "CurrentPage": "Current page", + "TotalPages": "Total pages", + "NextPage": "Next page", + "RightToLeft": "Right-to-left order", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/hi.json b/strings/hi.json new file mode 100644 index 0000000..de08c63 --- /dev/null +++ b/strings/hi.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "आपने पूरा कर लिया है!", + "ThisWizardWillGuideYou": "यह जादूगर आपको इस ढांचाकरण प्रक्रिया से गुजरने में सहारा देगा। आरंभ करने के लिए, कृपया अपनी पसंद की भाषा चुनें।", + "HeaderCreateYourFirstUser": "अपना पहला उपयोगकर्ता बनाएँ", + "ButtonQuickStartGuide": "शीघ्र आरंभ मार्गदर्शिका", + "MoreUsersCanBeAddedLater": "अधिक उपयोगकर्ताओं को बाद में एम्बी सर्वर विन्यास के भीतर जोड़ा जा सकता है।", + "UserProfilesIntro": "एम्बी में उपयोगकर्ता के पार्श्वचित्रों के लिए अंतर्निहित समर्थन है, जिससे प्रत्येक उपयोगकर्ता को अपनी खुद की प्रदर्शन विन्यास, देखने की अवस्था और अभिभावकीय नियंत्रण मिलते हैं।", + "WizardCompleted": "अभी के लिए बस इतना ही पर्याप्त है। एम्बी ने आपके संग्रहालय के बारे में जानकारी एकत्र करना प्रारंभ कर दिया है। हमारे कुछ ऐप्स देखें, और उसके बाद समाप्त को दबाएँ, सर्वर नियंत्रण-पट्ट देखने के लिए।", + "MessagePleaseAcceptTermsOfService": "आगे बढ़ने से पहले कृपया सेवा की शर्तें और गोपनीयता नीति को स्वीकार कर लें।", + "OptionIAcceptTermsOfService": "मैं सेवा की शर्तों को स्वीकार करता हूँ", + "SeeOurHwaGuide": "हमारे {0}यंत्रोपवस्तु त्वरण ढांचाकरण के मार्गदर्शक{1} को देखें।", + "HeaderEmbyServerReleaseNotes": "एम्बी सर्वर की निस्तार टिप्पणियाँ", + "AllowSubtitleDownloading": "उपशीर्षक अधोभारण करने की अनुमति दें", + "AllowSubtitleManagement": "वर्तमान उपशीर्षक के लेख्यपत्रों को हटाने की अनुमति दें", + "NewUserNameHelp": "इस प्रकार उपयोगकर्ता आपके सर्वर पर दिखाई देगा।", + "ChapterMarkers": "अध्याय चिह्नक", + "LabelThumbnailImagesInterval": "लघु-छवियों का अंतराल:", + "ThumbnailImagesIntervalHelp": "बारंबार लघु-छवियों के कारण बेहतर अनुभव होगा, लेकिन छवियों को बनाने के लिए अधिक चक्रिका स्थान और समय की आवश्यकता होगी।", + "LabelAuthProvider": "प्रमाणीकरण प्रदाता:", + "AuthProviderHelp": "व्यवस्थापक हमेशा पूर्वनिर्धारित एम्बी प्रदाता का उपयोग करते हैं ताकि आप कभी भी अवरोधित न हो जाएँ।", + "HeaderNewUser": "नया उपयोगकर्ता", + "ChangeServerDisplayName": "सर्वर का प्रदर्शतित नाम बदलें", + "ShowAdvancedSettings": "उन्नत विन्यास दिखाएँ", + "ChangingMetadataImageSettingsNewContent": "Changes to metadata or artwork downloading settings will only apply to new content added to your library. To apply the changes to existing titles, you'll need to refresh their metadata manually.", + "AllowRemoteAccess": "Allow remote connections to this Emby Server.", + "AllowRemoteAccessHelp": "If unchecked, all remote connections will be blocked.", + "Alerts": "Alerts", + "LabelTrackTitleDisplay": "Embedded track title display", + "GenerateUserFriendlyTrackTitles": "Generate user friendly titles using track information", + "PreferOriginalTrackTitles": "Prefer embedded titles", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "EnableTranscodingThrottle": "Enable throttling", + "EnableTranscodingThrottleHelp": "Emby will dynamically adjust transcoding speed based in order to reduce CPU utilization.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} Image Fetchers", + "HeaderImageOptions": "Image Options", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Register with PayPal", + "LabelSyncTempPath": "Temporary file path", + "LabelSyncTempPathHelp": "Specify a custom working folder. Converted media created during the conversion process will be stored here.", + "LabelCustomCertificatePath": "Custom ssl certificate path", + "LabelCustomCertificatePathHelp": "Path to a PKCS #12 file containing a certificate and private key to enable TLS support on a custom domain.", + "HeaderSetupLibrary": "Setup Media Libraries", + "LabelTimeLimitHours": "Time limit (hours)", + "HeaderPreferredMetadataLanguage": "Preferred Metadata Language", + "LabelSaveLocalMetadata": "Save artwork into media folders", + "LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put images next to media files where they can be easily accessed from outside of Emby. If disabled, images will be saved into the server's metadata folder.", + "TabAccess": "Access", + "HeaderDeviceAccess": "Device Access", + "OptionEnableAccessFromAllDevices": "Enable access from all devices", + "OptionEnableAccessToAllChannels": "Enable access to all channels", + "OptionEnableAccessToAllLibraries": "Enable access to all libraries", + "DeviceAccessHelp": "Filtering user device access will prevent them from using new devices until they've been approved here.", + "LabelDisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Emby database and displayed within seasons and series. This may cause significantly longer library scans.", + "MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.", + "LabelMaxParentalRating": "Maximum allowed parental rating", + "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.", + "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.", + "ChannelAccessHelp": "Select the channels to share with this user. Administrators will be able to edit all channels using the metadata manager.", + "ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG/PNG only.", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Click OK to send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, setup Emby Premiere in your Emby Server Dashboard under Help -> Emby Premiere, and it will be unlocked automatically.", + "TabMyPlugins": "My Plugins", + "TabCatalog": "Catalog", + "HeaderAutomaticUpdates": "Automatic Updates", + "Standard": "Standard", + "TabSupporterKey": "Emby Premiere Key", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Useful for private or hidden administrator accounts. The user will need to sign in manually by entering their username and password.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Disable this user", + "OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.", + "OptionAllowUserToManageServer": "Allow this user to manage the server", + "HeaderFeatureAccess": "Feature Access", + "OptionAllowMediaPlayback": "Allow media playback", + "AllLibraries": "All libraries", + "HeaderAllowMediaDeletionFrom": "Allow Media Deletion From", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Allow remote control of other users", + "OptionAllowRemoteSharedDevices": "Allow remote control of shared devices", + "OptionAllowRemoteSharedDevicesHelp": "Dlna devices are considered shared until a user begins controlling it.", + "OptionAllowLinkSharing": "Allow social media sharing", + "OptionAllowLinkSharingHelp": "Only web pages containing media information are shared. Media files are never shared publicly. Shares are time-limited and will expire after {0} days.", + "OptionRelease": "Official Release", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods, when no users are active.", + "LabelRunServerAtStartup": "Run server at startup", + "LabelRunServerAtStartupHelp": "This will start the Emby tray icon on Windows startup. If you've set up a Windows service then leave this unchecked and configure the service to run at startup.", + "ButtonSelectDirectory": "Select Directory", + "LabelCachePath": "Cache path", + "DefaultMetadataLangaugeDescription": "These are your defaults and can be customized on a per-library basis.", + "LabelCachePathHelp": "Specify a custom location for server cache files, such as images. Leave blank to use the server default.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Metadata path", + "LabelMetadataPathHelp": "Specify a location for downloaded artwork and metadata, or blank this out to revert to default. If changing this, you'll need to manually migrate the contents from the old location to the new location. If you ever manually change the contents of the metadata folder, you'll need to run the {0}scan metadata folder scheduled task{1}.", + "LabelTranscodingTempPath": "Transcoding temporary path", + "LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Refresh Guide Data", + "LabelNumberOfGuideDays": "Number of days of guide data to download", + "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels. Please note that regardless of how many days you choose, the data must exist in the source guide data in order for it to be downloaded. Some guide data sources only provide 24 hours. Emby Guide Data supports up to 14 days.", + "HeaderFetchImages": "Fetch Images", + "LabelMaxBackdropsPerItem": "Maximum number of backdrops per item", + "LabelMaxScreenshotsPerItem": "Maximum number of screenshots per item", + "LabelMinBackdropDownloadWidth": "Minimum backdrop download width", + "LabelMinScreenshotDownloadWidth": "Minimum screenshot download width", + "ButtonAddScheduledTaskTrigger": "Add Trigger", + "ButtonAdd": "Add", + "LabelTriggerType": "Trigger Type", + "OptionOnInterval": "On an interval", + "OptionAfterSystemEvent": "After a system event", + "LabelDay": "Day", + "LabelTime": "Time", + "LabelEvent": "Event", + "OptionWakeFromSleep": "Wake from sleep", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Enable real time monitoring", + "LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately, on supported file systems.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Friendly server name", + "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.", + "LabelPreferredDisplayLanguage": "Preferred display language", + "LabelPreferredDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LabelReadHowYouCanContribute": "Learn how you can contribute.", + "LabelCustomCss": "Custom css", + "LabelCustomCssHelp": "Apply your own custom css to the web interface.", + "LabelLocalHttpServerPortNumber": "Local http port number", + "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Emby's http server should bind to.", + "LabelPublicHttpPort": "Public http port number", + "LabelPublicHttpPortHelp": "The public port number that should be mapped to the local http port.", + "LabelPublicHttpsPort": "Public https port number", + "LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local https port.", + "RequireHttps": "Require https for external connections", + "RequireHttpsHelp": "If enabled, connections over http will be redirected to https.", + "LabelHttpsPort": "Local https port number", + "LabelHttpsPortHelp": "The tcp port number that Emby's https server should bind to.", + "LabelEnableAutomaticPortMap": "Enable automatic port mapping", + "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", + "LabelExternalDDNS": "External domain", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Min resume percentage", + "LabelMaxResumePercentage": "Max resume percentage", + "LabelMinResumeDuration": "Min resume duration (seconds)", + "LabelMinResumePercentageHelp": "Titles are assumed unplayed if stopped before this time", + "LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time", + "LabelMinResumeDurationHelp": "Titles shorter than this will not be resumable", + "HeaderStatus": "Status", + "Subscriptions": "Subscriptions", + "LabelEndingEpisodeNumber": "Ending episode number", + "LabelEndingEpisodeNumberHelp": "Only required for multi-episode files", + "HeaderSupportTheTeam": "Support the Emby Team", + "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by purchasing Emby Premiere. A portion of all income will be contributed to other free tools we depend on.", + "DonationNextStep": "Once complete, please return and enter your Emby Premiere key, which you will receive by email.", + "HeaderRunningTasks": "Running Tasks", + "ButtonUpdateNow": "Update Now", + "PleaseUpdateManually": "Please shutdown Emby Server and install the latest version.", + "ServerUpToDate": "Emby Server is up to date", + "MessagePleaseRestartServerToFinishUpdating": "Please restart the server to finish applying updates.", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", + "HeaderForgotKey": "Forgot Key", + "LabelSupporterEmailAddress": "The email address that was used to purchase the key.", + "ButtonRetrieveKey": "Retrieve Key", + "LabelSupporterKey": "Emby Premiere key (paste from email)", + "LabelSupporterKeyHelp": "Enter your Emby Premiere key to start enjoying additional benefits.", + "MessageInvalidKey": "Emby Premiere key is missing or invalid.", + "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also have an active Emby Premiere subscription.", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Send message", + "HeaderSendMessage": "Send Message", + "ButtonSend": "Send", + "LabelMessageText": "Message text", + "LabelMessageTitle": "Message title", + "ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Api Keys", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "Api Key", + "HeaderResumeSettings": "Resume Settings", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Activity", + "ButtonPurchase": "Purchase", + "HeaderInstall": "Install", + "LabelSelectVersionToInstall": "Select version to install", + "LinkLearnMoreAboutSubscription": "Learn about Emby Premiere", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Developer Info", + "HeaderRevisionHistory": "Revision History", + "ButtonViewWebsite": "View website", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect", + "LabelDateAddedBehavior": "Date added behavior for new content", + "OptionDateAddedImportTime": "Use date scanned into the library", + "OptionDateAddedFileTime": "Use file creation date", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Library Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Camera upload path", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Parental Control", + "HeaderAccessSchedule": "Access Schedule", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Library Access", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "TitlePasswordReset": "Password Reset", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Allow media downloading", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Allow media conversion", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Zip Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Display name", + "OptionDownloadImagesInAdvance": "Download images in advance", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Thank you for supporting Emby.", + "FileReadCancelled": "The file read has been canceled.", + "FileNotFound": "File not found.", + "FileReadError": "An error occurred while reading the file.", + "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "HeaderNewApiKey": "New Api Key", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "TextEnjoyBonusFeatures": "Enjoy Bonus Features", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "To manage plugins, please use the Emby web app.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Are you sure you wish to restart Emby Server?", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Running on http port {0}", + "LabelRunningOnPorts": "Running on http port {0}, and https port {1}", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Select Path", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Metadata Manager", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Change Content Type", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Home videos & photos", + "OptionBooks": "Books", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "New name", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Rename", + "HeaderPluginInstallation": "Plugin Installation", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Price: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Thank You", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Unlock App", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Add User", + "HeaderEmailAddress": "E-Mail Address", + "NumLocationsValue": "{0} folders", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Example: {0}", + "LabelFileOrUrl": "File or url", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Enable debug logging", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN networks", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "Margins": "Margins", + "NextPage": "Next page", + "StartOfSection": "Start of chapter", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message।", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language।", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode।", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view।", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices।", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata।", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files।", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/hr.json b/strings/hr.json new file mode 100644 index 0000000..7aac986 --- /dev/null +++ b/strings/hr.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Gotovo!", + "ThisWizardWillGuideYou": "Ovaj pomoćnik će Vas voditi kroz proces podešavanja Emby servera.", + "HeaderCreateYourFirstUser": "Stvorite prvog korisnika", + "ButtonQuickStartGuide": "Brzi vodič", + "MoreUsersCanBeAddedLater": "Novi korisnici mogu biti dodani naknadno u postavkama Emby servera.", + "UserProfilesIntro": "Emby ima ugrađenu podršku za korisničke profile, što omogućuje svakom korisniku da ima svoje vlastite postavke prikaza, status gledanja i roditeljski nadzor.", + "WizardCompleted": "To je sve što nam treba za sada. Emby je počeo prikupljati podatke o vašoj medijskoj biblioteci. Pogledajte neke od naših aplikacija, a zatim kliknite na Završi za prikaz Kontrolne ploče.", + "MessagePleaseAcceptTermsOfService": "Molimo prihvatite uvjete korištenja i pravila o privatnosti prije nego što nastavite.", + "OptionIAcceptTermsOfService": "Prihvaćam uvjete korištenja", + "SeeOurHwaGuide": "Pogledajte naš {0}vodič za postavljanje hardverskog ubrzanja{1}.", + "HeaderEmbyServerReleaseNotes": "Detalji o verziji Emby servera", + "AllowSubtitleDownloading": "Dopusti preuzimanje titlova", + "AllowSubtitleManagement": "Dopusti brisanje postojećih datoteka titlova", + "NewUserNameHelp": "Ovako će korisnik izgledati na Vašem serveru", + "ChapterMarkers": "Oznake poglavlja", + "LabelThumbnailImagesInterval": "Interval sličica", + "ThumbnailImagesIntervalHelp": "Češće sličice će pružiti bolje iskustvo, ali će zahtijevati više prostora na disku i vremena za izradu slika.", + "LabelAuthProvider": "Pružatelj autentifikacije", + "AuthProviderHelp": "Administratori uvijek koriste zadani Emby pružatelj kako nikad ne biste izgubili pristup.", + "HeaderNewUser": "Novi korisnik", + "ChangeServerDisplayName": "Promijeni ime servera", + "ShowAdvancedSettings": "Prikaži napredne postavke", + "ChangingMetadataImageSettingsNewContent": "Changes to metadata or artwork downloading settings will only apply to new content added to your library. To apply the changes to existing titles, you'll need to refresh their metadata manually.", + "AllowRemoteAccess": "Allow remote connections to this Emby Server.", + "AllowRemoteAccessHelp": "If unchecked, all remote connections will be blocked.", + "Alerts": "Alerts", + "LabelTrackTitleDisplay": "Embedded track title display", + "GenerateUserFriendlyTrackTitles": "Generate user friendly titles using track information", + "PreferOriginalTrackTitles": "Prefer embedded titles", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "EnableTranscodingThrottle": "Enable throttling", + "EnableTranscodingThrottleHelp": "Emby will dynamically adjust transcoding speed based in order to reduce CPU utilization.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} Image Fetchers", + "HeaderImageOptions": "Image Options", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registracija sa PayPal-om", + "LabelSyncTempPath": "Privremena putanja datoteke", + "LabelSyncTempPathHelp": "Odredite prilagođeni sinkronizacijski radni direktorij. Pretvoren medij stvorene tijekom postupka sinkronizacije biti će pohranjen ovdje.", + "LabelCustomCertificatePath": "Custom ssl certificate path", + "LabelCustomCertificatePathHelp": "Path to a PKCS #12 file containing a certificate and private key to enable TLS support on a custom domain.", + "HeaderSetupLibrary": "Postavite medijske biblioteke", + "LabelTimeLimitHours": "Rok (sati)", + "HeaderPreferredMetadataLanguage": "Željeni jezik meta-podataka", + "LabelSaveLocalMetadata": "Snimi ilustracije i metadata u medijske mape", + "LabelSaveLocalMetadataHelp": "Snimljene ilustracije i metadata u medijskim mapama će biti postavljene na lokaciju gdje će se moći jednostavno mjenjati.", + "TabAccess": "Pristup", + "HeaderDeviceAccess": "Pristup uređaja", + "OptionEnableAccessFromAllDevices": "Omogući pristup svim uređajima", + "OptionEnableAccessToAllChannels": "Omogući pristup svim kanalima", + "OptionEnableAccessToAllLibraries": "Omogući pristup svim bibliotekama", + "DeviceAccessHelp": "To se odnosi samo na uređaje koji se mogu jedinstveno identificirati i neće spriječiti pristup preglednika. Filtriranje pristupa korisničkim uređajima spriječiti će ih u korištenju novih uređaja sve dok nisu ovdje odobreni.", + "LabelDisplayMissingEpisodesWithinSeasons": "Prikaži epizode koje nedostaju unutar sezone", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Emby database and displayed within seasons and series. This may cause significantly longer library scans.", + "MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.", + "LabelMaxParentalRating": "Najveća dopuštena roditeljska ocjena:", + "MaxParentalRatingHelp": "Sadržaj sa višom ocjenom će biti skriven od ovog korisnika.", + "LibraryAccessHelp": "Odaberite medijske mape za djeljenje sa ovim korisnikom. Administratori će moći mjenjati sve mape preko Metadata menadžera.", + "ChannelAccessHelp": "Odaberite kanale za dijeljenje sa ovim korisnikom. Administratori će moći mijenjati sve kanale koristeći metadata menadžer.", + "ImageUploadAspectRatioHelp": "1:1 Omjer, preporučamo. Samo JPG/PNG.", + "AlreadyPaidHelp1": "Ako ste već platili instalaciju starije verzije Media Browser-a za Android, ne morate ponovno platiti kako bi se aktivirali ove aplikacije. Kliknite U redu da nam pošaljete e-mail na {0}, a mi ćemo ga aktivirati.", + "AlreadyPaidHelp2": "Imaš Emby Premijeru? Otkažite ovaj dijalog, postavite Emby Premijeru u svojoj nadzornoj ploči Emby Server-a pod Pomoć -> Emby Premijera i biti će automatski otključana.", + "TabMyPlugins": "Moji dodaci", + "TabCatalog": "Katalog", + "HeaderAutomaticUpdates": "Automatske nadogradnje", + "Standard": "Standard", + "TabSupporterKey": "Ključ Emby Premijere", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Korisno za privatne ili skrivene administratorske račune. Korisnik će se morati prijaviti ručno unosom svojeg korisničkog imena i lozinke.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Onemogući ovog korisnika", + "OptionDisableUserHelp": "Ako je onemogućen server neće dopustiti nikakve veze od ovog korisnika. Postojeće veze će odmah biti prekinute.", + "OptionAllowUserToManageServer": "Dopusti ovom korisniku da upravlja serverom", + "HeaderFeatureAccess": "Pristup opcijama", + "OptionAllowMediaPlayback": "Dopusti reprodukciju medija", + "AllLibraries": "All libraries", + "HeaderAllowMediaDeletionFrom": "Allow Media Deletion From", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Dopusti daljinsko upravljanje drugih korisnika", + "OptionAllowRemoteSharedDevices": "Dopusti daljinsko upravljanje dijeljenih uređaja", + "OptionAllowRemoteSharedDevicesHelp": "DLNA uređaji smatraju se dijeljeni sve dok ih korisnik ne započne kontrolirati.", + "OptionAllowLinkSharing": "Dopusti dijeljenja na društvenim mrežama", + "OptionAllowLinkSharingHelp": "Samo web stranice koje sadrže informacije medija su podijeljene. Medijske datoteke nikada nisu podijeljene javno. Dijeljenja su vremenski ograničena i isteći će nakon {0} dana.", + "OptionRelease": "Službeno izdanje", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "Server će se resetirati dok je u statusu mirovanja, odnosno kada nema aktivnih korisnika.", + "LabelRunServerAtStartup": "Pokreni server pri pokretanju računala", + "LabelRunServerAtStartupHelp": "This will start the Emby tray icon on Windows startup. If you've set up a Windows service then leave this unchecked and configure the service to run at startup.", + "ButtonSelectDirectory": "Odaberi mapu", + "LabelCachePath": "Putanja predmemorije:", + "DefaultMetadataLangaugeDescription": "These are your defaults and can be customized on a per-library basis.", + "LabelCachePathHelp": "Odredite prilagođenu lokaciju za predmemorijske datoteke servera, kao što su slike. Ostavite prazno za korištenje zadanog poslužitelja.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Put meta-podataka:", + "LabelMetadataPathHelp": "Odredite prilagođenu lokaciju za preuzete ilustracije i meta-podatke.", + "LabelTranscodingTempPath": "Privremena putanja konvertiranja:", + "LabelTranscodingTempPathHelp": "Ova mapa sadrži radne datoteke koje koristi konverter. Navedite prilagođenu putanju ili ostavite prazno za korištenje zadanog unutar mape podataka poslužitelja.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Osvježi TV vodič", + "LabelNumberOfGuideDays": "Broj dana TV vodiča za preuzet:", + "LabelNumberOfGuideDaysHelp": "Preuzimanje više dana TV vodiča, omogućiti će vam zakazivanje snimanja dalje u budućnost , ali će i preuzimanje duže trajati. Automaski - odabir će se prilagoditi broju kanala.", + "HeaderFetchImages": "Dohvati slike:", + "LabelMaxBackdropsPerItem": "Maksimalni broj pozadina po stavci:", + "LabelMaxScreenshotsPerItem": "Maksimalni broj isječaka po stavci:", + "LabelMinBackdropDownloadWidth": "Minimalna širina pozadine za preuzimanje:", + "LabelMinScreenshotDownloadWidth": "Minimalna širina isječka za preuzimanje:", + "ButtonAddScheduledTaskTrigger": "Dodaj okidač", + "ButtonAdd": "Dodaj", + "LabelTriggerType": "Tip pokretača:", + "OptionOnInterval": "U intervalu", + "OptionAfterSystemEvent": "Nakon događaja u sistemu", + "LabelDay": "Dan:", + "LabelTime": "Vrijeme:", + "LabelEvent": "Događaj:", + "OptionWakeFromSleep": "Pokreni iz stanja mirovanja", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Omogući nadgledanje u realnom vremenu", + "LabelEnableRealtimeMonitorHelp": "Promjene će biti procesuirane odmah, nad podržanim datotekama sistema.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Prijateljsko ime servera:", + "LabelFriendlyServerNameHelp": "Ovo ime će se koristiti za identifikaciju servera. Ako ostavite prazno, ime računala će se koristi kao identifikator.", + "LabelPreferredDisplayLanguage": "Željeni jezik za prikaz:", + "LabelPreferredDisplayLanguageHelp": "Prevađanje Emby-a je projekt u tijeku.", + "LabelReadHowYouCanContribute": "Naučite kako možete pridonijeti.", + "LabelCustomCss": "Prilagođen css:", + "LabelCustomCssHelp": "Primijenite svoj vlastiti prilagođeni css na web sučelje.", + "LabelLocalHttpServerPortNumber": "Lokalni broj http porta:", + "LabelLocalHttpServerPortNumberHelp": "Broj TCP porta na koji se treba vezati Emby-jev HTTP poslužitelj.", + "LabelPublicHttpPort": "Javni broj http porta:", + "LabelPublicHttpPortHelp": "Broj javnog broja porta koji treba biti mapiran na lokalni http port.", + "LabelPublicHttpsPort": "Javni broj https porta:", + "LabelPublicHttpsPortHelp": "Broj javnog broja porta koji treba biti mapiran na lokalni https port.", + "RequireHttps": "Require https for external connections", + "RequireHttpsHelp": "If enabled, connections over http will be redirected to https.", + "LabelHttpsPort": "Lokalni broj https porta:", + "LabelHttpsPortHelp": "Broj TCP porta na koji se Emby https server treba vezati.", + "LabelEnableAutomaticPortMap": "Omogući automatsko mapiranje porta", + "LabelEnableAutomaticPortMapHelp": "Pokušaj automatski mapirati javni port za lokalni port preko UPnP. Možda neće raditi s nekim modelima router-a.", + "LabelExternalDDNS": "Vanjska domena:", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Minimalni postotak za nastavak:", + "LabelMaxResumePercentage": "Maksimalni postotak za nastavak:", + "LabelMinResumeDuration": "Minimalno trajanje za nastavak (sekunda):", + "LabelMinResumePercentageHelp": "Naslovi će biti označeni kao ne reproducirani ako se zaustave prije ovog vremena", + "LabelMaxResumePercentageHelp": "Naslovi će biti označeni kao pogledani ako budu zaustavljeni nakon ovog vremena", + "LabelMinResumeDurationHelp": "Naslovi kraći od ovog neće imati mogućnost nastavka", + "HeaderStatus": "Status", + "Subscriptions": "Subscriptions", + "LabelEndingEpisodeNumber": "Broj kraja epizode:", + "LabelEndingEpisodeNumberHelp": "Potrebno samo za datoteke sa više epizoda", + "HeaderSupportTheTeam": "Podržite Emby tim", + "HeaderSupportTheTeamHelp": "Osigurajte kontinuirani razvoj ovog projekta kupnjom Emby premijere. Dio svih prihoda bit će dan drugim besplatnim alatima na koje se oslanjamo.", + "DonationNextStep": "Nakon završetka, vratite se i unesite ključ Emby Premijere, koji ćete dobiti putem e-maila.", + "HeaderRunningTasks": "Zadatci koji se izvode", + "ButtonUpdateNow": "Ažuriraj sad", + "PleaseUpdateManually": "Please shutdown Emby Server and install the latest version.", + "ServerUpToDate": "Emby server je ažuran", + "MessagePleaseRestartServerToFinishUpdating": "Molimo ponovo pokrenite server kako bi se završila ažuriranja.", + "LabelDownMixAudioScale": "Pojačaj zvuk kada radiš downmix:", + "LabelDownMixAudioScaleHelp": "Pojačaj zvuk kada radiš downmix. Postavi na 1 ako želiš zadržati orginalnu jačinu zvuka.", + "HeaderForgotKey": "Zaboravili ste ključ", + "LabelSupporterEmailAddress": "E-mail adresa koja je korištena za nabavku ključa", + "ButtonRetrieveKey": "Dohvati ključ", + "LabelSupporterKey": "Emby Premijera ključ (zalijepi iz e-mail):", + "LabelSupporterKeyHelp": "Unesite svoj ključ Emby Premijere da počnete uživati u dodatnim pogodnostima koje je zajednica razvijala za Emby.", + "MessageInvalidKey": "Ključ Emby Premijere nedostaje ili je pogrešan.", + "ErrorMessageInvalidKey": "Kako bi premium sadržaj bio registriran, morate imati aktivnu pretplatu Emby Premijere.", + "LabelSkipIfGraphicalSubsPresent": "Preskoči ako video već sadrži ugrađene titlove prijevoda", + "LabelSkipIfGraphicalSubsPresentHelp": "Zadržavanjem tekstualne verzije titlova prijevoda rezultirati će učinkovitijoj isporuci i smanjiti vjerojatnost video konvertiranja.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Preskoči ako zadani audio zapis odgovara jeziku preuzimanja", + "LabelSkipIfAudioTrackPresentHelp": "Poništite ovo da bi osigurali da svi videi imaju titlove, bez obzira na audio jezik.", + "SendMessage": "Send message", + "HeaderSendMessage": "Pošalji poruku", + "ButtonSend": "Pošalji", + "LabelMessageText": "Tekst poruke:", + "LabelMessageTitle": "Naslov poruke:", + "ButtonEditOtherUserPreferences": "Uredite ovaj korisnički profil, slike i osobne postavke.", + "LabelLoginDisclaimer": "Prijava odricanja:", + "LabelLoginDisclaimerHelp": "Prikazano će biti na dnu stranice za prijavu.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "API ključevi", + "HeaderApiKeysHelp": "Vanjske aplikacije moraju imati API ključ kako bi komunicirale s Emby Serverom. Ključevi se izdaju prijavom s Emby računom ili ručnim odobravanjem zahtjeva ključa.", + "HeaderApiKey": "API ključ", + "HeaderResumeSettings": "Postavke nastavka", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Aktivnosti", + "ButtonPurchase": "Kupiti", + "HeaderInstall": "Instaliraj", + "LabelSelectVersionToInstall": "Odaberi verziju za instalaciju:", + "LinkLearnMoreAboutSubscription": "Naučite o Emby Premijeri", + "MessagePluginRequiresSubscription": "Ovaj dodatak zahtijeva aktivnu pretplatu Emby Premijere nakon 14 dana probnog razdoblja.", + "MessagePremiumPluginRequiresMembership": "Ovaj dodatak zahtijeva aktivnu pretplatu Emby Premijere za kupnju nakon 14 dana probnog razdoblja.", + "HeaderDeveloperInfo": "Razvojne informacije", + "HeaderRevisionHistory": "Povijest revizije", + "ButtonViewWebsite": "Posjeti web stranice", + "OptionSaveMetadataAsHidden": "Spremite meta-podatke i slike kao skrivene datoteke", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Naučite više o \"Emby Connect\"", + "LabelDateAddedBehavior": "Ponašanje datuma dodanog za novi sadržaj:", + "OptionDateAddedImportTime": "Koristi skenirano datumom u biblioteku", + "OptionDateAddedFileTime": "Koristi datum stvaranja datoteke", + "LabelDateAddedBehaviorHelp": "Ako je prisutna vrijednost meta-podataka uvijek će se koristiti prije bilo kojih od ovih opcija.", + "HeaderLibrarySettings": "Library Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Putanja slika kamere za preuzimanje:", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Izradi podmape za svaki uređaj", + "LabelCreateCameraUploadSubfolderHelp": "Posebne mape mogu biti dodijeljene na uređaj tako da kliknete na njega sa stranice uređaji.", + "LabelCustomDeviceDisplayNameHelp": "Navedite naziv prilagođenog prikaza ili ostaviti prazno za korištenje naziva koji je izvijestio uređaj.", + "TabParentalControl": "Roditeljska kontrola", + "HeaderAccessSchedule": "Raspored pristupa", + "HeaderAccessScheduleHelp": "Napravite raspored pristupa da bi ograničili pristup određenim satima.", + "HeaderLibraryAccess": "Pristup biblioteci", + "HeaderChannelAccess": "Pristup kanalima", + "LabelForgotPasswordUsernameHelp": "Unesite korisničko ime, ako se sjećate.", + "TitlePasswordReset": "Poništenje lozinke", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Dopusti preuzimanje medija", + "LabelNewUserNameHelp": "Korisnička imena mogu sadržavati slova (a-z), brojeve (0-9), crtice (-), donje crtice (_), apostrofe (') i točke (.)", + "HeaderThisUserIsCurrentlyDisabled": "Ovaj je korisnik trenutno onemogućen", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Allow media conversion", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Dopusti audio reprodukciju koja zahtijeva konvertiranje", + "OptionAllowVideoPlaybackTranscoding": "Dopusti video reprodukciju koja zahtijeva konvertiranje", + "OptionAllowVideoPlaybackRemuxing": "Dopusti video reprodukciju koja zahtijeva konvertiranje bez ponovnog kodiranja", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Granica brzine strujanja prijenosa preko Interneta (Mbps):", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Omogući potpunu pretvorbu brzine", + "OptionEnableFullSpeedConversionHelp": "Prema zadanim postavkama, sinkronizacija pretvorbe se obavlja pri niskim brzinama kako bi se smanjila potrošnja resursa.", + "OptionEnableAutomaticServerUpdates": "Omogući automatska ažuriranja servera", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "IP adresa TV/Radio uređaja:", + "HeaderGuideProviders": "Pružatelji vodiča", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Poštanski broj:", + "LabelLineup": "Svrastavanje:", + "LabelImportOnlyFavoriteChannels": "Ograniči na kanale označene kao omiljeni", + "ImportFavoriteChannelsHelp": "Ako je omogućeno, samo kanali koji su označeni kao omiljeni na uređaju TV/radio pretraživača će se uvesti.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Prikaz naziva:", + "OptionDownloadImagesInAdvance": "Preuzmi slike unaprijed", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Hvala vam na podršci Emby-a.", + "FileReadCancelled": "Učitavanje datoteke je prekinuto.", + "FileNotFound": "Datoteka nije pronađena.", + "FileReadError": "Prilikom učitavanja datoteke desila se greška", + "NoPluginConfigurationMessage": "Ovaj dodatak nema postavke za podesiti.", + "HeaderNewApiKey": "Novi API ključ", + "HeaderNewApiKeyHelp": "Odobri dozvolu aplikacije za komunikaciju s Emby Serverom.", + "MessageKeyEmailedTo": "Ključ je poslan na {0}.", + "HeaderConfirmation": "Potvrda", + "MessageKeyUpdated": "Hvala Vam. Vaš ključ Emby Premijere je ažuriran.", + "MessageKeyRemoved": "Hvala Vam. Vaš ključ Emby Premijere je uklonjen.", + "TextEnjoyBonusFeatures": "Uživajte u bonus značajkama", + "MessageErrorLoadingSupporterInfo": "Došlo je do pogreške prilikom učitavanja informacije Emby Premijere. Molimo pokušajte ponovo kasnije.", + "ValueTimeLimitSingleHour": "Vremensko ograničenje: 1 sat", + "ValueTimeLimitMultiHour": "Vremensko ograničenje: {0} sati", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Zaustavljanje", + "HeaderSelectCertificatePath": "Odaberi put certifikata:", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Prekinuto od strane isključivanja servera)", + "LabelScheduledTaskLastRan": "Posljednji puta pokrenuto {0}, uzimajući {1}.", + "HeaderDeleteTaskTrigger": "Brisanje okidača zadataka", + "MessageDeleteTaskTrigger": "Jeste li sigurni da želite izbrisati ovaj okidač zadatka?", + "MessageNoPluginsDueToAppStore": "Za upravljanje dodatcima, molimo koristite Emby web-aplikaciju.", + "LabelVersionInstalled": "{0} instaliran", + "HeaderSelectServerCachePath": "Odaberite putanju predmemorije servera", + "HeaderSelectTranscodingPath": "Odaberite privremenu putanju konvertiranja", + "HeaderSelectMetadataPath": "Odaberite putanju meta-podataka:", + "HeaderSelectServerCachePathHelp": "Pregledajte ili unesite putanju za korištenje predmemorijskih datoteka. U mapu se mora moći pisati.", + "HeaderSelectTranscodingPathHelp": "Pregledajte ili unesite putanju za korištenje konvertiranja privremenih datoteka. U mapu se mora moći pisati.", + "HeaderSelectMetadataPathHelp": "Pregledajte ili unesite putanju za pohranu meta-podataka. U mapu se mora moći pisati.", + "MessageConfirmRestart": "Dali ste sigurni da želite ponovo pokrenuti Emby Server?", + "MessageConfirmShutdown": "Dali ste sigurni da želite ugasiti Emby Server?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Izvodi se na http port-u {0}.", + "LabelRunningOnPorts": "Izvodi se na http port-u {0} i na https port-u {1}.", + "LabelCurrentPath": "Trenutna putanja:", + "HeaderSelectMediaPath": "Odaberi putanju medija", + "HeaderSelectPath": "Odaberi putanju", + "MessageDirectoryPickerInstruction": "Mrežne putanje mogu se unijeti ručno u slučaju da gumb Mreže ne uspije locirati vaše uređaje. Na primjer, {0} ili {1}.", + "MessageDirectoryPickerBSDInstruction": "Za BSD možda ćete morati podesiti pohranu unutar vašega FreeNAS kako bi se omogućilo Emby-u pristup.", + "MessageDirectoryPickerLinuxInstruction": "Za Linux na Arch Linux, CentOS, Debian, Fedora, OpenSuse ili Ubuntu morate dati korisniku Emby sistema barem pristup čitanja vašim lokacijama za skladištenje.", + "MetadataManager": "Upravitelj meta-podacima", + "OptionBlockLiveTvChannels": "TV kanali uživo", + "OptionBlockChannelContent": "Sadržaj Internet kanala", + "ButtonRevoke": "Opozvati", + "MessageConfirmRevokeApiKey": "Jeste li sigurni da želite poništiti ovaj API ključ? Veza aplikacije s Emby Server-om će se naglo prekinuti.", + "HeaderConfirmRevokeApiKey": "Opozovi Api ključ", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Molimo prihvatite uvjete korištenja prije nego što nastavite.", + "HeaderChangeFolderType": "Promijeni tip sadržaja", + "HeaderChangeFolderTypeHelp": "Za promjenu tipa, uklonite i ponovno izgraditi biblioteku s novim tipom.", + "HeaderAlert": "Uzbuna", + "MessagePleaseRestart": "Molimo ponovo pokrenite kako bi se završila ažuriranja.", + "OptionHomeVideos": "Kućni videi i slike", + "OptionBooks": "Knjige", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Poredajte željene lokalne izvore meta-podataka po redu prioriteta. Prva nađena datoteka biti će čitana.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Preuzimači meta-podataka:", + "LabelMetadataDownloadersHelp": "Omogućite i poredajte željene preuzimatelje meta-podataka po redu prioriteta. Manjeg prioriteta preuzimatelji koristit će se samo za ispunjavanje nedostajućih informacija.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Odaberite formate datoteka za spremanje meta-podataka.", + "LabelImageFetchers": "Dohvatači slika:", + "LabelImageFetchersHelp": "Omogućite i poredajte željene dohvatače slika po redu prioriteta.", + "PersonTypePerson": "Osoba", + "HeaderRemoveMediaLocation": "Ukloni lokacije medija", + "MessageConfirmRemoveMediaLocation": "Jeste li sigurni da želite ukloniti ovu lokaciju?", + "LabelNewName": "Novo ime:", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Preimenuj", + "HeaderPluginInstallation": "Instalacija dodataka", + "MessageTrialExpired": "Probno razdoblje za ovu značajku je isteklo", + "MessageTrialWillExpireIn": "Probno razdoblje za ovu značajku ističe za {0} dan(a)", + "ValuePriceUSD": "Cijena: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Prijavljeni ste za ovu značajku koju ćete moći nastaviti koristiti s aktivnom pretplatom Emby Premijere.", + "HeaderSelectExternalPlayer": "Odaberi vanjski pokretač", + "HeaderExternalPlayerPlayback": "Reprodukcija na vanjski pokretač", + "HeaderThankYou": "Hvala", + "HeaderSelectUploadPath": "Odaberi putanju prijenosa", + "ErrorMessageStartHourGreaterThanEnd": "Vrijeme završetka mora biti veće od početka.", + "MessagePluginConfigurationRequiresLocalAccess": "Za podešavanje ovog dodatka prijavite se izravno na lokalni server.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Zahtijeva instalaciju GameBrowser dodatka", + "HeaderUnlockApp": "Otključaj aplikaciju", + "MessagePaymentServicesUnavailable": "usluge plaćanja su trenutno nedostupne. Molimo pokušajte ponovo kasnije.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Da li ste sigurni da želite izbrisati ovaj uređaj?", + "MessageConfirmDeleteGuideProvider": "Da li ste sigurni da želite izbrisati ovog pružatelja vodiča?", + "HeaderDeleteProvider": "Izbriši pružatelja", + "ErrorAddingTunerDevice": "Došlo je do pogreške prilikom dodavanja uređaja TV/radio pretraživača. Provjerite da je dostupan i pokušajte ponovno.", + "ErrorSavingTvProvider": "Došlo je do pogreške prilikom snimanja TV pružatelja. Provjerite da je dostupan i pokušajte ponovno.", + "ErrorGettingTvLineups": "Došlo je do pogreške prilikom preuzimanja tv postave. Provjerite dali su vaše informacije točne i pokušajte ponovno.", + "MessageCreateAccountAt": "Otvori račun kod {0}", + "ErrorPleaseSelectLineup": "Odaberite postavu i pokušajte ponovno. Ako niti jedna postava nije dostupna provjerite dali su korisničko ime, lozinka i poštanski broj točni.", + "ErrorValidatingSupporterInfo": "Došlo je do pogreške prilikom provjere informacije Emby Premijere. Molimo pokušajte ponovo kasnije.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Najbolji dodaci", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Dodaj korisnika", + "HeaderEmailAddress": "E-mail adresa", + "NumLocationsValue": "{0} mape", + "PleaseAddAtLeastOneFolder": "Dodajte barem jednu mapu u ovu biblioteku klikom na gumb Dodaj.", + "ErrorAddingMediaPathToVirtualFolder": "Došlo je do pogreške prilikom dodavanja putanje medija. Provjerite dali je putanja valjana i da proces Emby Server-a ima pristup tom mjestu.", + "ErrorAddingEmbyConnectAccount3": "Emby račun već je povezan s postojećim lokalnim korisnikom. Emby račun može se povezati samo s jednim lokalnim korisnikom u isto vrijeme.", + "HeaderConfirmPluginInstallation": "Potvrdi instalaciju dodatka", + "PleaseConfirmPluginInstallation": "Molimo kliknite U redu da biste potvrdili da ste pročitali gore navedeno i želite nastaviti s instalacijom dodataka.", + "MessagePluginInstallDisclaimer": "Dodaci izgrađeni od strane članova Emby zajednice su sjajan način kako bi unaprijedili Vaše iskustvo Emby s dodatnim značajkama i prednostima. Prije instaliranja budite svjesni učinaka koje mogu imati na vaš Emby Server, kao što je duže skeniranje biblioteke, dodatna pozadinska obrada, a smanjena stabilnost sustava.", + "HardwareAccelerationWarning": "Omogućavanje hardverskog ubrzanja može uzrokovati nestabilnostima u nekim sredinama. Pobrinite se da Vaš operativni sustav i video drajveri su u potpunosti ažurni. Ako imate poteškoća s reprodukcijom videa nakon omogućavanja ovoga, morat ćete promijeniti postavku natrag na Automatski.", + "ValueExample": "Primjer: {0}", + "LabelFileOrUrl": "Datoteka ili url:", + "OptionEnableForAllTuners": "Omogući za sve TV/Radio uređaje", + "HeaderTuners": "TV uređaji", + "DrmChannelsNotImported": "Kanali s DRM se neće uvesti.", + "LabelAllowHWTranscoding": "Dopusti hardversko konvertiranje", + "AllowHWTranscodingHelp": "Ako je omogućeno, omogućite TV/radio uređaju da konvertira strujanja u letu. Ovo može pomoći smanjiti konvertiranje koje zahtijeva Emby Server.", + "MetadataSettingChangeHelp": "Promjena postavki meta-podataka utjecati će da novi sadržaji koji se dodaju idu naprijed. Za osvježavanje postojećih sadržaja otvorite zaslon pojedinosti i kliknite gumb za osvježavanje ili obavite skupno osvježavanje pomoću upravitelja meta-podataka.", + "RecordingPathChangeMessage": "Promjena mape za snimanje neće migrirati postojeće snimke iz stare lokacije na novu. Morat ćete ih pomicati ručno, ako to želite.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Neobvezno. Nadjačaj lokalnu IP adresu da se veže na http server. Ako se ostavi prazno, server će se vezati na svim dostupnim adresama. Mijenjanje ove vrijednosti zahtijeva ponovno pokretanje Emby Server-a.", + "SettingsWarning": "Mijenjanje ove vrijednosti može uzrokovati nestabilnost ili kvarove na povezivanju. Ako naiđete na bilo kakve probleme, preporučamo da ih promijenite natrag na zadane.", + "OptionSaveMetadataAsHiddenHelp": "Promjena ovoga će se primjenjivati na nove meta-podatke spremljene unaprijed. Postojeće datoteke meta-podataka će se ažurirati sljedeći puta kada ih spremi Emby Server.", + "EnablePhotos": "Omogući slike", + "EnablePhotosHelp": "Slike će biti otkrite i prikazivane zajedno s drugim medijskim datotekama.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Omogući logiranje grešaka", + "OptionEnableExternalContentInSuggestions": "Omogući vanjske sadržaje u prijedlozima", + "OptionEnableExternalContentInSuggestionsHelp": "Dopusti internet kratkim filmovima i TV programima uživo da budu uključeni u preporučenom sadržaju.", + "LabelOptionalNetworkPath": "(Nije obavezno) Zajednička mapa mreže:", + "LabelOptionalNetworkPathHelp": "Ako se ova mapa dijeli na mreži, opskrba zajedničke mrežne mreže može dopustiti Emby aplikacijama na drugim uređajima izravni pristup multimedijskim datotekama.", + "SynologyUpdateInstructions": "Molimo, prijavite se u DSM i otiđite na centar paketa za ažuriranje.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN networks", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/hu.json b/strings/hu.json new file mode 100644 index 0000000..2cac2e3 --- /dev/null +++ b/strings/hu.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Készen vagy!", + "ThisWizardWillGuideYou": "Ez a varázsló végigvezet az Emby Server beállítási folyamatán.", + "HeaderCreateYourFirstUser": "Hozd létre az első felhasználód", + "ButtonQuickStartGuide": "Gyorsbeállítás varázsló", + "MoreUsersCanBeAddedLater": "Az Emby Server beállításaiban később is hozzáadhatsz további felhasználókat.", + "UserProfilesIntro": "Az Emby beépített felhasználókezelővel rendelkezik, lehetővé téve, hogy mindenki saját megjelenítési beállítással, lejátszási állapottal és szülői felügyelet beállításokkal rendelkezzen.", + "WizardCompleted": "Egyelőre ez minden. Az Emby megkezdte az információk gyűjtését a könyvtáradról. Nézd meg néhány alkalmazásunk, és kattints a Befejezés gombra, hogy megnyisd a Vezérlőpultot.", + "MessagePleaseAcceptTermsOfService": "Kérlek fogadd el a felhasználási feltételeket és az adatvédelmi szabályzatot mielőtt folytatnád a telepítést.", + "OptionIAcceptTermsOfService": "Elfogadom a felhasználási feltételeket", + "SeeOurHwaGuide": "Nézd meg a {0}hardveres gyorsítás beállításának útmutatóját{1}.", + "HeaderEmbyServerReleaseNotes": "Emby Server kiadási megjegyzések", + "AllowSubtitleDownloading": "Felirat letöltésének engedélyezése", + "AllowSubtitleManagement": "Meglévő feliratfájlok törlésének engedélyezése", + "NewUserNameHelp": "A felhasználó így fog megjelenni a szervereden.", + "ChapterMarkers": "Fejezet jelölők", + "LabelThumbnailImagesInterval": "Miniatűr képek gyakorisága", + "ThumbnailImagesIntervalHelp": "A sűrűbben elkészített miniatűr képek jobb felhasználó élményt eredményezhetnek, de jobban igénybe veszik a tárhelyet, és több időbe telik a képek generálása.", + "LabelAuthProvider": "Hitelesítés szolgáltató", + "AuthProviderHelp": "Az adminisztrátorok mindig az Emby hitelesítőjét használják, nehogy kizárják magukat a szerverről.", + "HeaderNewUser": "Új felhasználó", + "ChangeServerDisplayName": "A szerver megjelenített nevének módosítása", + "ShowAdvancedSettings": "Haladó beállítások mutatása", + "ChangingMetadataImageSettingsNewContent": "A módosítások csak a jövőbeli képletöltési beállításokra vonatkoznak. A már meglévő adatok módosításához frissítsd a metaadatokat manuálisan.", + "AllowRemoteAccess": "Távoli kapcsolatok engedélyezése ehhez az Emby Server-hez.", + "AllowRemoteAccessHelp": "Ha nincs kijelölve, minden távoli kapcsolat blokkolva lesz.", + "Alerts": "Értesítések", + "LabelTrackTitleDisplay": "Beágyazott megjelenő számcím", + "GenerateUserFriendlyTrackTitles": "Felhasználóbarát címek generálása a sávinformáció felhasználásával", + "PreferOriginalTrackTitles": "Beágyazott címek előnyben részesítése", + "TrackTitleDisplayHelp": "Válaszd ki a hang- és feliratsávokhoz megjelenő címeket. A beágyazott cím csak akkor ajánlott, ha saját magad kezeled a sávinformációkat.", + "EnableTranscodingThrottle": "Korlátozás engedélyezése", + "EnableTranscodingThrottleHelp": "Az Emby dinamikusan fogja vezérelni az átkódolás sebességét a CPU kihasználtság csökkentése értékeben.", + "HeaderTypeMetadataDownloaders": "{0} Metaadat letöltők", + "HeaderTypeImageFetchers": "{0} kép letöltő", + "HeaderImageOptions": "Kép beállítások", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Regisztráció PayPal használatával", + "LabelSyncTempPath": "Ideiglenes fájlok útvonala", + "LabelSyncTempPathHelp": "Adj meg egy könyvtárat. Az átalakított média a konverzió során itt lesz tárolva.", + "LabelCustomCertificatePath": "Egyedi SSL hitelesítő elérési útja", + "LabelCustomCertificatePathHelp": "Egy PKCS #12 fájl elérési útvonala, ami tartalmazza a hitelesítőt és a privát kulcsot, ami lehetővé teszi a TLS támogatását egy egyedi domainen.", + "HeaderSetupLibrary": "Média könyvtárak beállítása", + "LabelTimeLimitHours": "Időlimit (óra)", + "HeaderPreferredMetadataLanguage": "Elsődleges metaadat nyelv", + "LabelSaveLocalMetadata": "A grafikák mentése a média könyvtárába", + "LabelSaveLocalMetadataHelp": "A grafika mentése a média mappákba a képeket közvetlenül a médiafájlok mellé helyezi, így azok könnyen elérhetők Emby-n kívülről is. Ha le van tiltva, a képek a szerver metaadat mappájába kerülnek.", + "TabAccess": "Hozzáférés", + "HeaderDeviceAccess": "Eszköz hozzáférések", + "OptionEnableAccessFromAllDevices": "Hozzáférés engedélyezése minden eszközről", + "OptionEnableAccessToAllChannels": "Hozzáférés engedélyezése minden csatornához", + "OptionEnableAccessToAllLibraries": "Hozzáférés engedélyezése minden könyvtárhoz", + "DeviceAccessHelp": "Az eszközök szűrése meg fogja gátolni az új eszközök automatikus hozzáférését, mielőtt azok engedélyezésre kerülnek.", + "LabelDisplayMissingEpisodesWithinSeasons": "Hiányzó évad epizódok megjelenítése", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Ezt engedélyezni kell az Emby Server beállításban lévő TV könyvtárak esetében is.", + "ImportMissingEpisodesHelp": "Ha engedélyezed, a hiányzó epizódok is importálásra kerülnek az Emby adatbázisba, és meg lesznek jelenítve az évadokban és a sorozatokban. Ez jelentősen hosszabb könyvtárolvasáshoz vezethet.", + "MessageEnablingOptionLongerScans": "A funkció jelentősen hosszabb könyvtárolvasáshoz vezethet.", + "LabelMaxParentalRating": "Maximum engedélyezett szülői besorolás", + "MaxParentalRatingHelp": "Az ennél magasabb besorolású elemek elrejtésre kerülnek a felhasználó számára.", + "LibraryAccessHelp": "Válaszd ki a felhasználóval megosztandó könyvtárakat. Az adminisztrátorok szerkeszthetik a könyvtárakat a metaadat szerkesztő segítségével.", + "ChannelAccessHelp": "Válaszd ki a felhasználóval megosztandó csatornákat. Az adminisztrátorok szerkeszthetik a csatornákat a metaadat szerkesztő segítségével.", + "ImageUploadAspectRatioHelp": "1:1 méretarány ajánlott. Csak JPG/PNG.", + "AlreadyPaidHelp1": "Ha korábban már megvásároltad és telepítetted a Médiaböngésző egy régebbi verzióját Android-ra, akkor nem kell újra megvásárolnod, hogy működjön. Kattints az OK gombra, hogy emailt küldj nekünk ({0}), és aktiváljuk számodra.", + "AlreadyPaidHelp2": "Már van Emby Premiere-ed? Zárd be ezt a párbeszéd ablakot, telepítsd az Emby Premiere-t az Emby Server vezérlőpultjában a Súgó / Emby Premiere menüpontban, és a funkciók automatikusan feloldásra kerülnek.", + "TabMyPlugins": "Telepített bővítmények", + "TabCatalog": "Katalógus", + "HeaderAutomaticUpdates": "Automatikus frissitések", + "Standard": "Alap", + "TabSupporterKey": "Emby Premiere kulcs", + "OptionHideUserLocal": "A felhasználó elrejtése a helyi hálózat bejelentkezési képernyőjéről", + "OptionHideUserRemote": "A felhasználó elrejtése a bejelentkezési képernyőről, ha távolról már be van lépve", + "OptionHideUserFromLoginHelp": "Hasznos privát vagy rejtett adminisztrátori fiókok esetén. A felhasználónak manuálisan be kell lépnie a felhasználónév és jelszó segítségével.", + "HideFromUnusedDevices": "Rejtse el ezen felhasználót azon eszközök bejelentkezési képernyőjén melyen keresztül nem jelentkezett be eleddig", + "OptionDisableUser": "Felhasználó letiltása", + "OptionDisableUserHelp": "Ha letiltod, a felhasználó nem tud csatlakozni a szerverhez. A meglévő kapcsolatok azonnal lezárásra kerülnek.", + "OptionAllowUserToManageServer": "Szerver kezelés engedélyezése a felhasználónak", + "HeaderFeatureAccess": "Funkciókhoz való hozzáférés", + "OptionAllowMediaPlayback": "Média lejátszás engedélyezése", + "AllLibraries": "Összes könyvtár", + "HeaderAllowMediaDeletionFrom": "Média törlés engedélyezése", + "LiveTVRecordingManagement": "Élő TV felvételek kezelése", + "OptionAllowRemoteControlOthers": "Egyéb felhasználók távoli irányításának engedélyezése", + "OptionAllowRemoteSharedDevices": "Megosztott eszközök távirányításának engedélyezése", + "OptionAllowRemoteSharedDevicesHelp": "A Dlna eszközök megosztottként lesznek nyilvántartva amíg a felhasználó nem kezdi vezérelni.", + "OptionAllowLinkSharing": "Közösségi médiamegosztás engedélyezése", + "OptionAllowLinkSharingHelp": "Csak a média információkat tartalmazó oldalak kerülnek megosztásra. A fájlok nem lesznek nyilvánosan megosztva. A megosztások {0} nap után lejárnak.", + "OptionRelease": "Hivatalos kiadás", + "LabelAllowServerAutoRestartPlugin": "A kiszolgáló automatikus újraindításának engedélyezése a bővítmény frissítésének alkalmazásához", + "LabelAllowServerAutoRestartServerOrPlugin": "A kiszolgáló automatikus újraindításának engedélyezése a kiszolgáló- vagy bővítményfrissítések alkalmazásához", + "LabelAllowServerAutoRestartHelp": "A szerver csak akkor indul újra ha nincs felhasználói tevékenység.", + "LabelRunServerAtStartup": "Szerver futtatása indításkor", + "LabelRunServerAtStartupHelp": "A beállítás engedélyezésével az Emby elindul a tálcán a Windows indításakor. Ha beállítottad az automatikus indulást Windows szolgáltatásként, hagyd ezt üresen, és szabályozd a Windows szolgáltatásokat az indításhoz.", + "ButtonSelectDirectory": "Könyvtár választása", + "LabelCachePath": "Gyorsítótár útvonal", + "DefaultMetadataLangaugeDescription": "Ezek az alapértelmezett beállítások, amelyek könyvtáranként felülírhatók.", + "LabelCachePathHelp": "Határozz meg egy egyedi útvonalat a képek és egyéb szerverfájlok gyorsítótárazásához. Hagyd üresen az alapértelmezett hely használatához.", + "LabelDefaultRecordingFolder": "Alapértelmezett felvétel mappa", + "LabelMovieRecordingFolder": "Filmfelvétel mappa", + "LabelSeriesRecordingFolder": "Sorozatfelvétel mappa", + "SeriesRecordingFolderHelp": "(Választható). Válasszon ki egy könyvtárat, amelybe mentheti a sorozatfelvételeket. Ennek egy olyan könyvtárnak kell lennie, amelyet az Emby könyvtár beállításaiban hozott létre és a tartalomtípus TV műsorokra vagy vegyes tartalomra van állítva.", + "HeaderProgramData": "Program adat", + "RecordingFolderHelp": "Válassza ki az alapértelmezett könyvtárat a felvételek mentéséhez. Ennek egy olyan könyvtárnak kell lennie, amelyet az Emby könyvtár beállításaiban hozott létre és a tartalomtípust vegyes tartalomra állította be.", + "MovieRecordingFolderHelp": "(Választható). Válasszon ki egy könyvtárat, amelybe mentheti a filmfelvételeket. Ennek egy olyan könyvtárnak kell lennie, amelyet az Emby könyvtár beállításaiban hozott létre és a tartalomtípust filmekre vagy vegyes tartalomra állította be.", + "LabelMetadataPath": "Metaadat útvonal", + "LabelMetadataPathHelp": "Adja meg azt a helyet, ahol a 'metaadat' mappa létrejön a letöltött műalkotások és metaadatok számára, vagy hagyja üresen az alapértelmezett visszaállításához. Ha ezt módosítja, manuálisan kell áthelyeznie a tartalmat a régi helyről az új helyre. Ha valamikor manuálisan módosítja a metaadat mappa tartalmát, futtatnia kell a {0}metaadat mappa beolvasása ütemezett feladatot{1}.", + "LabelTranscodingTempPath": "Átkódolás ideiglenes könyvtára", + "LabelTranscodingTempPathHelp": "Ez a könyvtár az átkódolások ideiglenes fájljait tartalmazza. Határozz meg egyéni könyvtárat, vagy hagyd üresen az alapértelmezett szerverkönyvtárat.", + "GenerateVideoPreviewThumbnailsHelp": "A videó előnézeti miniatűrök élő frissítéseket nyújtanak, miközben a támogatott alkalmazásokban megy a keresés. A bélyegkép generálása hosszú időt vehet igénybe, nagy CPU felhasználást okozhat és további lemezterületet igényelhet.", + "AsAScheduledTask": "ütemezett feladatként", + "AsAScheduledTaskAndMediaAdded": "ütemezett feladatként és média hozzáadásakor", + "ButtonRefreshGuideData": "Műsorújság adatainak frissítése", + "LabelNumberOfGuideDays": "A műsorújság letöltése ennyi nappal előre", + "LabelNumberOfGuideDaysHelp": "Több napnyi műsorújság adat letöltése lehetővé teszi a hosszabb távú időzítések kezelését és több műsor böngészését, de a letöltés tovább fog tartani. Az automatikus beállítás a csatornák száma alapján fogja meghatározni. Felhívjuk figyelmét, hogy függetlenül attól, hogy hány napot választ, a műsorújságnak tartalmaznia kell az adatokat a letöltéshez. Néhány szolgáltató csak 24 órás műsorújságot biztosít. Az Emby műsorújság ismertető akár 14 napig is biztosított.", + "HeaderFetchImages": "Képek letöltése", + "LabelMaxBackdropsPerItem": "Hátterek maximális száma elemenként", + "LabelMaxScreenshotsPerItem": "Képernyőképek maximális száma elemenként", + "LabelMinBackdropDownloadWidth": "Minimális háttérkép szélesség", + "LabelMinScreenshotDownloadWidth": "Minimális képernyőkép szélesség", + "ButtonAddScheduledTaskTrigger": "Indító hozzáadása", + "ButtonAdd": "Hozzáad", + "LabelTriggerType": "Indító típusa", + "OptionOnInterval": "Időközönként", + "OptionAfterSystemEvent": "Rendszeresemény után", + "LabelDay": "Nap", + "LabelTime": "Idő", + "LabelEvent": "Esemény", + "OptionWakeFromSleep": "Felébresztés alvó módból", + "Every": "Minden", + "LabelEnableRealtimeMonitor": "Valós idejű figyelés engedélyezése", + "LabelEnableRealtimeMonitorHelp": "A módosítások azonnal feldolgozásra kerülnek a támogatott fájlrendszereken.", + "Community": "Közösség", + "HeaderEmbyNews": "Emby hírek", + "LabelFriendlyServerName": "Könnyen megjegyezhető szerver név", + "LabelFriendlyServerNameHelp": "A szerver ezen a néven lesz azonosítva. Ha üresen hagyod, a számítógép neve kerül beállításra.", + "LabelPreferredDisplayLanguage": "Elsődleges megjelenítendő nyelv", + "LabelPreferredDisplayLanguageHelp": "Az Emby fordítása egy folyamatban lévő project.", + "LabelReadHowYouCanContribute": "Nézd meg, hogy járulhatsz hozzá.", + "LabelCustomCss": "Egyéni CSS", + "LabelCustomCssHelp": "Alkalmazz egyéni CSS kódot a webes felületre.", + "LabelLocalHttpServerPortNumber": "Helyi HTTP port száma", + "LabelLocalHttpServerPortNumberHelp": "Az a TCP port, amit az Emby HTTP szervere használni fog.", + "LabelPublicHttpPort": "Nyilvános HTTP port száma", + "LabelPublicHttpPortHelp": "Az a TCP port, amit az Emby nyilvános HTTP szervere használni fog.", + "LabelPublicHttpsPort": "Nyilvános HTTPS port száma", + "LabelPublicHttpsPortHelp": "Az a TCP port, amit az Emby nyilvános HTTPS szervere használni fog.", + "RequireHttps": "HTTPS megkövetelése távoli kapcsolatok esetén", + "RequireHttpsHelp": "Ha engedélyezed, a távoli HTTP kérések átirányításra kerülnek a HTTPS oldalra.", + "LabelHttpsPort": "Helyi HTTPS port száma", + "LabelHttpsPortHelp": "Az a TCP port, amit az Emby HTTPS Server használni fog.", + "LabelEnableAutomaticPortMap": "Automatikus port térképezés engedélyezése", + "LabelEnableAutomaticPortMapHelp": "A külső és belső port automatikus összekötése UPnP segítségével. Nem mindegyik routerrel működik.", + "LabelExternalDDNS": "Külső domain", + "LabelExternalDDNSHelp": "Ha van dinamikus DNS-ed vagy domain neved, itt add meg, protokoll vagy port nélkül. Az Emby alkalmazások ezt fogják használni a távoli kapcsolódáshoz. A mező megadása szükséges külső SSL hitelesítő esetén. Példa: mydomain.com.", + "LabelMinResumePercentage": "Minimum folytatási százalék", + "LabelMaxResumePercentage": "Maximum folytatási százalék", + "LabelMinResumeDuration": "Minimum folytatási időtartam (másodperc)", + "LabelMinResumePercentageHelp": "A műsorok nem számítanak lejátszottnak, ha ennél több idő marad hátra a leállításkor", + "LabelMaxResumePercentageHelp": "A műsorok teljesen lejátszottnak számítanak, ha legalább ennyi idő után kerülnek leállításra", + "LabelMinResumeDurationHelp": "Az ennél rövidebb műsorok nem lesznek folytathatóak", + "HeaderStatus": "Állapot", + "Subscriptions": "Feliratkozások", + "LabelEndingEpisodeNumber": "Befejező epizód száma", + "LabelEndingEpisodeNumberHelp": "Csak többepizódos fájlok esetén szükséges", + "HeaderSupportTheTeam": "Támogasd az Emby csapatot", + "HeaderSupportTheTeamHelp": "Segíts biztosítani az Emby folyamatos fejlesztését az Emby Premiere megvásárlásával. Minden vásárlás egy része felhasználásra kerül az ingyenes funkciók fejlesztésére is, amitől az Emby is függ.", + "DonationNextStep": "Ha elkészült, kérjük térj vissza ide és add meg az Emby Premiere kulcsod, amit emailben fogsz megkapni.", + "HeaderRunningTasks": "Futó folyamatok", + "ButtonUpdateNow": "Frissítsd most", + "PleaseUpdateManually": "Kérlek állítsd le az Emby Server-t és telepítsd a legújabb verziót.", + "ServerUpToDate": "Emby Server naprakész", + "MessagePleaseRestartServerToFinishUpdating": "Indítsd újra a szervert a frissítések befejezéséhez.", + "LabelDownMixAudioScale": "Hang jelszint megemelése többcsatornás tartalom sztereóra történő lekeverése esetén", + "LabelDownMixAudioScaleHelp": "Hang jelszint szabályozása csatornaszám lekeverése esetén. Az '1' érték megadásakor az eredeti hangerő érték kerül alkalmazásra.", + "HeaderForgotKey": "Elfelejtett kulcs", + "LabelSupporterEmailAddress": "A vásárláshoz használt email címet add meg.", + "ButtonRetrieveKey": "Kulcs visszaszerzése", + "LabelSupporterKey": "Emby Premiere kulcs (másold be az emailből)", + "LabelSupporterKeyHelp": "Írd be az Emby Premiere kulcsodat, hogy részesülj az Emby Premiere előnyeiből.", + "MessageInvalidKey": "Az Emby Premiere kulcs hiányzik vagy hibás.", + "ErrorMessageInvalidKey": "Bármely prémium tartalom regisztrálásához aktív Emby Premiere előfizetéssel kell rendelkeznie.", + "LabelSkipIfGraphicalSubsPresent": "Ugorja át, ha a videó már tartalmaz beágyazott feliratokat", + "LabelSkipIfGraphicalSubsPresentHelp": "A feliratok szöveges verziójának megtartása hatékonyabb átvitelt eredményezhet és csökkenti a videó átkódolásának valószínűségét.", + "HeaderDownloadLanguages": "Nyelvek letöltése", + "LabelSkipIfAudioTrackPresent": "Hagyja ki, ha a hangsáv egyezik a letöltés nyelvével", + "LabelSkipIfAudioTrackPresentHelp": "Vedd ki a pipát, hogy biztosítsd, hogy az összes videóhoz legyen felirat, a videó nyelvétől függetlenül.", + "SendMessage": "Üzenet küldés", + "HeaderSendMessage": "Üzenet küldése", + "ButtonSend": "Küldés", + "LabelMessageText": "Üzenet szövege", + "LabelMessageTitle": "Üzenet címe", + "ButtonEditOtherUserPreferences": "A felhasználó profiljának, képének és személyes beállításainak szerkesztése.", + "LabelLoginDisclaimer": "Bejelentkezési üzenet", + "LabelLoginDisclaimerHelp": "Ez a bejelentkezési oldal alján fog megjelenni.", + "HeaderTranscodingTemporaryFiles": "Ideiglenes fájlok átkódolása", + "HeaderApiKeys": "API kulcsok", + "HeaderApiKeysHelp": "A külső alkalmazások API kulcsok segítségével kommunikálhatnak az Emby Server-rel. A kulcsok kiosztása az Emby fiókkal való bejelentkezéssel lehetséges, vagy manuális módon is megadhatók az alkalmazásoknak.", + "HeaderApiKey": "API kulcs", + "HeaderResumeSettings": "Beállítások visszaállítása", + "HeaderFetcherSettings": "Beolvasási beállítások", + "HeaderActivity": "Tevékenységek", + "ButtonPurchase": "Vásárlás", + "HeaderInstall": "Telepítés", + "LabelSelectVersionToInstall": "Válaszd ki a verziót a telepítéshez", + "LinkLearnMoreAboutSubscription": "Tudj meg többet az Emby Premiere-ről", + "MessagePluginRequiresSubscription": "Ez a bővítmény aktív Emby Premiere előfizetést igényel a 14 napos próbaidőszak után.", + "MessagePremiumPluginRequiresMembership": "Ez a bővítmény aktív Emby Premiere előfizetést igényel a megvásárláshoz a 14 napos próbaidőszak után.", + "HeaderDeveloperInfo": "Fejlesztői információk", + "HeaderRevisionHistory": "Módosítási előzmények", + "ButtonViewWebsite": "Weboldal megtekintése", + "OptionSaveMetadataAsHidden": "Metaadatok és képek mentése rejtett fájlokba", + "LabelConnectEmail": "(Választható) Emby Connect email cím", + "LabelConnectEmailHelp": "Opcionálisan összekapcsolhatja ezt a helyi felhasználót egy meglévő Emby Connect fiókkal, hogy lehetővé tegye a könnyű bejelentkezést bármely Emby alkalmazásból anélkül, hogy ismernie kellene a szerver IP címét.", + "ButtonLearnMoreAboutEmbyConnect": "Tudj meg többet az Emby Connect-ről", + "LabelDateAddedBehavior": "Dátum hozzáadási szabály új tartalom esetén", + "OptionDateAddedImportTime": "A könyvtárakból kinyert dátumok használata", + "OptionDateAddedFileTime": "Használja az állomány létrehozási dátumát", + "LabelDateAddedBehaviorHelp": "Amennyiben az érintett metaadat érték létezik akkor az minden esetben felhasználásra kerül a következő opciók közül az egyik előtt.", + "HeaderLibrarySettings": "Könyvtárbeállítások", + "HeaderAutomaticSubtitleDownloads": "Automatikus feliratletöltések", + "HeaderCameraUploadHelp": "Az Emby alkalmazások automatikusan feltölthetik a mobileszközökkel készített képeket az Emby Server-re.", + "LabelCameraUploadPath": "Kamera feltöltési útvonal", + "LabelCameraUploadPathHelp": "Válassz egy egyéni feltöltési útvonalat. Ez felülbírálja a Kamera feltöltése részben beállított alapértelmezett beállításokat. Ha üresen hagyod, az alapértelmezett mappát fogja használni. Ha egyéni elérési utat használsz, akkor hozzá kell adni mint könyvtárat az Emby médiatár beállítási területén.", + "DefaultCameraUploadPathHelp": "Kérem válasszon feltöltési útvonalat. Amennyiben üresen hagyja, akkor az alapértelmezett könyvtár lesz használva. Amennyiben egyedi útvonal lesz használva, akkor azt szükséges egy könyvtárként hozzáadni az Emby könyvtár beállításoknál.", + "LabelCreateCameraUploadSubfolder": "Minden egyes eszköz részére alkönyvtár létrehozása", + "LabelCreateCameraUploadSubfolderHelp": "Megadott könyvtárak hozzárendelhetőek egy eszközhöz is amennyiben rákattintunk arra az Eszközök lapon.", + "LabelCustomDeviceDisplayNameHelp": "Adj meg egy egyedi nevet, vagy hagyd üresen a készülék által elküldött név használatához.", + "TabParentalControl": "Szülői felügyelet", + "HeaderAccessSchedule": "Hozzáférési ütemezés", + "HeaderAccessScheduleHelp": "Készítsen egy hozzáférési ütemezést, hogy korlátozza a hozzáférést bizonyos órákban.", + "HeaderLibraryAccess": "Könyvtár hozzáférés", + "HeaderChannelAccess": "Csatorna hozzáférés", + "LabelForgotPasswordUsernameHelp": "Add meg a felhasználóneved, ha emlékszel rá.", + "TitlePasswordReset": "Jelszó visszaállítás", + "HeaderBlockItemsWithNoRating": "Tiltsa le a tartalmakat hiányzó, vagy nem felismerhető besorolási információkkal", + "LabelBlockContentWithTags": "Az ezzel a címkével rendelkező tartalmak tiltása", + "LabelTagRestrictionMode": "Címke tiltási mód", + "BlockItemsWithTheseTags": "Elemek blokkolása ezekkel a címkékkel", + "AllowItemsWithTheseTags": "Csak ezzel a címkével rendelkező elemek engedélyezése", + "OptionAllowContentDownloading": "Médialetöltés engedélyezése", + "LabelNewUserNameHelp": "A felhasználónevek tartalmazhatnak betűket (a-z), számokat (0-9), kötőjeleket (-), aláhúzásokat (_), aposztrófokat (') és pontokat (.)", + "HeaderThisUserIsCurrentlyDisabled": "A felhasználó jelenleg le van tiltva. Az engedélyezéshez görgess a lap aljára és módosítsd a beállítást.", + "OptionAllowSyncTranscoding": "Átkódolást igénylő médialetöltés engedélyezése", + "AllowMediaConversion": "Média konvertálás engedélyezése", + "AllowMediaConversionHelp": "A médiakonvertáláshoz való hozzáférés engedélyezése vagy tiltása.", + "OptionAllowAudioPlaybackTranscoding": "Engedélyezze a hang átkódolását kompatibilis formátumra, ha szükséges, a média lejátszása során", + "OptionAllowVideoPlaybackTranscoding": "Engedélyezze a videó átkódolását kompatibilis formátumra, ha szükséges, a média lejátszása során", + "OptionAllowVideoPlaybackRemuxing": "Átkódolást nem, de konvertálást igénylő videó lejátszás engedélyezése", + "OptionAllowMediaPlaybackTranscodingHelp": "Az átkódoláshoz való hozzáférés korlátozása letiltja a minőségváltás engedélyezését és lejátszási hibákhoz vezethet az Emby alkalmazásokban a nem támogatott formátumok, vagy korlátozott sávszélesség miatt.", + "LabelRemoteClientBitrateLimit": "Távoli közvetítés bitrátájának korlátozása (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Egy opcionális adatfolyamonkénti bitráta korlátozás az összes hálózati eszköz számára. Ez korlátozza a távoli közvetítés adatfolyam minőségét még akkor is, ha a felhasználó jobb minőséget választ a lejátszóban. Ezzel megakadályozható a hálózat sávszélességének túlterhelése. Megnövekedhet a CPU felhasználás a szerveren, a videók megfelelő bitrátára való átkódolása miatt.", + "LabelUserRemoteClientBitrateLimitHelp": "Ezzel felülírod a globális beállításokat, amelyeket a haladó szerverbeállításokban módosíthatsz.", + "OptionEnableFullSpeedConversion": "Engedélyezés teljes sebességgel", + "OptionEnableFullSpeedConversionHelp": "Alapértelmezésként a konvertálás lassan történik, hogy minimalizáljuk az erőforrások felhasználását.", + "OptionEnableAutomaticServerUpdates": "Automatikus szerver frissítés engedélyezése", + "HeaderTVSources": "TV források", + "HeaderAddTvSource": "TV forrás hozzáadása", + "LabelTunerIpAddress": "Tuner IP címe", + "HeaderGuideProviders": "TV műsorújság szolgáltatók", + "HeaderAddGuideSource": "Műsorújság adatforrás hozzáadása", + "LabelZipCode": "Irányítószám", + "LabelLineup": "Felhozatal", + "LabelImportOnlyFavoriteChannels": "Csak a kedvenc csatornák", + "ImportFavoriteChannelsHelp": "Ha engedélyezed, csak a kedvencként megjelölt csatornák lesznek importálva a tunerről.", + "HeaderDefaultRecordingSettings": "Alapértelmezett rögzítési beállítások", + "LabelDisplayName": "Megjelenítendő név", + "OptionDownloadImagesInAdvance": "Képek letöltése előre", + "OptionDownloadImagesInAdvanceHelp": "Alapértelmezésként a képek csak akkor kerülnek letöltésre, ha egy Emby alkalmazás kéri. Ha engedélyezed ezt a lehetőséget, minden kép előre le lesz töltve, amikor új média kerül importálásra. Ez jelentősen hosszabb könyvtár beolvasást eredményezhet.", + "MessageThankYouForSupporting": "Köszönjük, hogy támogattad az Emby-t.", + "FileReadCancelled": "A fájl olvasása meg lett szakítva.", + "FileNotFound": "Fájl nem található.", + "FileReadError": "Hiba történt a fájl olvasása közben.", + "NoPluginConfigurationMessage": "Ez a bővítmény nem rendelkezik beállításokkal.", + "HeaderNewApiKey": "Új API kulcs", + "HeaderNewApiKeyHelp": "Adj engedélyt egy alkalmazásnak az Emby Server-rel való kommunikálásra.", + "MessageKeyEmailedTo": "A kulcs elküldve erre a címre: {0}.", + "HeaderConfirmation": "Megerősítés", + "MessageKeyUpdated": "Köszönjük! Az Emby Premiere kulcsod frissítésre került.", + "MessageKeyRemoved": "Köszönjük! Az Emby Premiere kulcsod törlésre került.", + "TextEnjoyBonusFeatures": "Élvezd a bónusz funkciókat", + "MessageErrorLoadingSupporterInfo": "Hiba történt az Emby Premiere információk betöltése közben. Kérjük, próbáld újra.", + "ValueTimeLimitSingleHour": "Időkorlát: 1 óra", + "ValueTimeLimitMultiHour": "Időkorlát: {0} óra", + "General": "Általános", + "HeaderScreenSavers": "Képernyővédők", + "Reporting": "Jelentés", + "LabelStopping": "Megállítás", + "HeaderSelectCertificatePath": "Hitelesítő útvonal kiválasztása", + "HeaderSupporterBenefit": "Az aktív Emby Premiere előfizetés további funkciókat tesz elérhetővé, mint például az Emby DVR, az offline média, prémium bővítmények és még sok más. {0}További információk{1}.", + "LabelAbortedByServerShutdown": "(Megszakította a szerver leállítása)", + "LabelScheduledTaskLastRan": "Legutóbb futtatva ekkor: {0}, ennyi ideig: {1}.", + "HeaderDeleteTaskTrigger": "Feladat indító törlése", + "MessageDeleteTaskTrigger": "Biztosan eltávolítod ezt a feladat indítót?", + "MessageNoPluginsDueToAppStore": "A bővítmények kezeléséhez kérjük, használd az Emby web alkalmazást.", + "LabelVersionInstalled": "{0} telepítve", + "HeaderSelectServerCachePath": "Szerver gyorsítótár kiválasztása", + "HeaderSelectTranscodingPath": "Átkódolás átmeneti könyvtárának kiválasztása", + "HeaderSelectMetadataPath": "Válaszd ki a metaadat útvonalat", + "HeaderSelectServerCachePathHelp": "A szerver gyorsítótár állományainak helyének betallózása vagy megadása. A könyvtárhoz írási jogosultság szükséges.", + "HeaderSelectTranscodingPathHelp": "Az ideiglenes fájlok átkódolásának helyének betallózása vagy megadása. A könyvtárhoz írási jogosultság szükséges.", + "HeaderSelectMetadataPathHelp": "A metaadatok helyének betallózása vagy megadása. A könyvtárhoz írási jogosultság szükséges.", + "MessageConfirmRestart": "Biztosan újra szeretnéd indítani az Emby Server-t?", + "MessageConfirmShutdown": "Biztosan le akarod állítani az Emby Server-t?", + "LabelLocalAccessUrl": "Helyi (LAN) hozzáférés: {0}", + "LabelRemoteAccessUrl": "Távoli (WAN) hozzáférés: {0}", + "LabelRunningOnPort": "HTTP szerver port {0}", + "LabelRunningOnPorts": "HTTP port {0}, HTTPS port {1}", + "LabelCurrentPath": "Jelenlegi útvonal", + "HeaderSelectMediaPath": "Média elérési útvonal kiválasztása", + "HeaderSelectPath": "Útvonal kiválasztása", + "MessageDirectoryPickerInstruction": "A hálózati útvonalakat kézzel szükséges rögzíteni amennyiben a 'Hálózat' gombra nem sikerült az eszközök helyének felderítése. Például: {0} vagy {1}.", + "MessageDirectoryPickerBSDInstruction": "A BSD számára esetlegesen szükséges konfigurálni meghajtót a FreeNAS Jail-en belül, hogy az Emby elérhesse azt.", + "MessageDirectoryPickerLinuxInstruction": "A Linux, mint Arch Linux, CentOS, Debian, Fedora, OpenSuse vagy Ubuntu számára egy Emby rendszer felhasználónak szükséges jogot adnia legalább olvasásra az érintett tárolóhelyhez.", + "MetadataManager": "Metaadat kezelő", + "OptionBlockLiveTvChannels": "Élő TV csatornák", + "OptionBlockChannelContent": "Internetes csatorna tartalmak", + "ButtonRevoke": "Visszavonás", + "MessageConfirmRevokeApiKey": "Biztos benne, hogy visszavonja ezen API kulcsot? Az alkalmazás csatlakozása az Emby Server-hez azonnal megszakításra kerül.", + "HeaderConfirmRevokeApiKey": "API kulcs törlése", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Kérlek fogadd el a felhasználási feltételeket a folytatáshoz.", + "HeaderChangeFolderType": "Tartalom típusának megváltoztatása", + "HeaderChangeFolderTypeHelp": "A típus megváltoztatásához távolítsd el és építsd fel újra a könyvtárat az új típussal.", + "HeaderAlert": "Értesítés", + "MessagePleaseRestart": "Indítsd újra a frissítés befejezéséhez.", + "OptionHomeVideos": "Házi videók és fényképek", + "OptionBooks": "Könyvek", + "HeaderMetadataReaders": "Metaadat olvasók", + "LabelMetadataReadersHelp": "Állítsa sorrendbe a kívánt helyi metaadat forrásokat fontosság alapján. Az első állomány kerül beolvasásra.", + "HeaderSubtitleDownloaders": "Felirat letöltők", + "SubtitleDownloadersHelp": "Engedélyezd és rangsorolt az általad preferált felirat letöltő ügynököket prioritás szerint. Továbbiak telepíthetők az Emby Bővítmény katalógusból.", + "LabelMetadataDownloaders": "Metaadat gyűjtők", + "LabelMetadataDownloadersHelp": "Engedélyezze és állítsa sorrendbe a kívánt metaadat letöltőket fontosság alapján. Az alacsonyabb prioritású letöltők csak abban az esetben kerülnek használatra amennyiben az azt megelőzőeknél hiányzik az információ.", + "HeaderMetadataSavers": "Metaadat mentések", + "LabelMetadataSaversHelp": "A metaadat letöltésének formátuma.", + "LabelImageFetchers": "Képgyűjtők", + "LabelImageFetchersHelp": "Engedélyezze és állítsa sorrendbe a kívánt képletöltőket fontosság alapján.", + "PersonTypePerson": "Személy", + "HeaderRemoveMediaLocation": "Média hely eltávolítása", + "MessageConfirmRemoveMediaLocation": "Biztosan eltávolítod ezt a helyet?", + "LabelNewName": "Új név", + "HeaderRemoveLibrary": "Könyvtár eltávolítása", + "MessageAreYouSureYouWishToRemoveLibrary": "Biztosan eltávolítja a(z) {0} könyvtárat az Emby Server-ről? A médiafájlokat ez nem érinti.", + "ButtonRename": "Átnevezés", + "HeaderPluginInstallation": "Bővítmény telepítése", + "MessageTrialExpired": "Ennek a funkciónak a próbaidőszaka lejárt", + "MessageTrialWillExpireIn": "A funkció próbaidőszaka {0} nap múlva lejár", + "ValuePriceUSD": "Ár: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Regisztráltál erre a funkcióra, ami engedélyezve lesz egy aktív Emby Premiere előfizetéssel.", + "HeaderSelectExternalPlayer": "Válassz külső lejátszót", + "HeaderExternalPlayerPlayback": "Külső lejátszós megtekintés", + "HeaderThankYou": "Köszönjük", + "HeaderSelectUploadPath": "Feltöltés útvonalának kiválasztása", + "ErrorMessageStartHourGreaterThanEnd": "A befejező időpontnak nagyobbnak kell lennie a kezdésnél.", + "MessagePluginConfigurationRequiresLocalAccess": "A bővítmény konfigurálásához kérjük, lépj be a szerverre a helyi hálózatból.", + "MovieLibraryHelp": "Olvassa el a(z) {0}Emby filmek elnevezési útmutatóját{1}.", + "TvLibraryHelp": "A {0} Emby TV nevezéktanának felülvizsgálata {1} .", + "BookLibraryHelp": "Szöveges könyvek támogatottak. A {0} Emby Könyv nevezéktanának felülvizsgálata {1} .", + "MessageGamePluginRequired": "A GameBrowser bővítmény telepítése szükséges", + "HeaderUnlockApp": "Alkalmazás feloldása", + "MessagePaymentServicesUnavailable": "A fizetési szolgáltatók jelenleg nem érhetőek el. Kérjük próbáld később.", + "NoNewDevicesFound": "Nem található új eszköz. Új tuner hozzáadásához zárd be ezt a párbeszédablakot és add meg az eszköz adatait manuálisan.", + "MessageConfirmDeleteTunerDevice": "Biztosan törölni szeretnéd ezt az eszközt?", + "MessageConfirmDeleteGuideProvider": "Biztosan eltávolítod ezt a műsorújság szolgáltatót?", + "HeaderDeleteProvider": "Szolgáltató törlése", + "ErrorAddingTunerDevice": "Hiba történt a tuner hozzáadása során. Ellenőrizd, hogy elérhető-e, majd próbáld újra.", + "ErrorSavingTvProvider": "Hiba történt a TV szolgáltató mentése során. Ellenőrizd, hogy elérhető-e, majd próbáld újra.", + "ErrorGettingTvLineups": "Hiba lépett fel a TV kínálat letöltése folyamán. Kérem győződjön meg arról, hogy az Ön információi helyesek és próbálkozzon újra.", + "MessageCreateAccountAt": "Fiók létrehozása itt: {0}", + "ErrorPleaseSelectLineup": "Kérem válasszon egy TV kínálatot újra. Amennyiben nincs elérhető kínálat, akkor kérem ellenőrizze, hogy a megadott felhasználónév, jelszó és az irányítószám helyes.", + "ErrorValidatingSupporterInfo": "Hiba történt az Emby Premiere információk ellenőrzése közben. Kérjük, próbáld újra.", + "LabelLocalSyncStatusValue": "Státusz: {0}", + "HeaderTopPlugins": "Legjobb bővítmények", + "ForAdditionalLiveTvOptions": "Nézd át az Emby {0}Bővítmények{1} katalógust további élő TV szolgáltatások telepítéséhez.", + "AddUser": "Új felhasználó", + "HeaderEmailAddress": "Email cím", + "NumLocationsValue": "{0} könyvtár", + "PleaseAddAtLeastOneFolder": "Kérem adjon meg legalább egy mappát a könyvtárhoz a 'Hozzáad' gombra kattintás segítségével.", + "ErrorAddingMediaPathToVirtualFolder": "Hiba történt a média útvonal hozzáadása folyamán. Kérem győződjön meg arról, hogy az útvonal létezik és az Emby Server-nek van hozzáférése az adott helyhez.", + "ErrorAddingEmbyConnectAccount3": "Az Emby hozzáférés már hozzá van rendelve egy létező helyi felhasználóhoz. Egy Emby hozzáférés egy időben kizárólag egy helyi felhasználóhoz lehet hozzárendelve.", + "HeaderConfirmPluginInstallation": "Bővítmény telepítés megerősítése", + "PleaseConfirmPluginInstallation": "Kérjük, kattints az OK gombra a bővítmény telepítésének megerősítéséhez.", + "MessagePluginInstallDisclaimer": "Az Emby közösség által készített bővítmények remek lehetőséget biztosítanak az Emby felhasználói élmény fokozására további funkciókat és előnyöket biztosítva. Mielőtt telepít egyet kérem vegye figyelembe az Emby Server-re gyakorolt lehetséges hatásait úgymint hosszabb könyvtár feldolgozási idő, további háttérben futó feldolgozási folyamatok és esetleges csökkenő rendszer stabilitás.", + "HardwareAccelerationWarning": "A hardveres gyorsítás funkció használata instabilitást okozhat egyes környezetekben. Kérem győződjön meg arról, hogy az operációs rendszer illetve a videó illesztőprogramok legfrissebb verzióival rendelkezik. Amennyiben ennek engedélyezését követően problémákat észlelne a videók lejátszása folyamán, akkor kérem állítsa vissza ennek értékét 'Automatikus'-ra.", + "ValueExample": "Példa: {0}", + "LabelFileOrUrl": "Fájl vagy URL", + "OptionEnableForAllTuners": "Engedélyezés minden Tuner eszköz számára", + "HeaderTuners": "Tunerek", + "DrmChannelsNotImported": "A DRM-mel védett csatornák nem lesznek importálva.", + "LabelAllowHWTranscoding": "Hardveres átkódolás engedélyezése", + "AllowHWTranscodingHelp": "Amennyiben engedélyezi, akkor a tuner menet közben átkódolja az adatfolyamot. Ez segít csökkenteni az Emby Server által igényelt átkódolások számát.", + "MetadataSettingChangeHelp": "A metaadatok kezelésével kapcsolatos beállítások új tartalom hozzáadását követően lesznek arra hatással. Meglevő tartalom metaadat frissítését tudja kezdeményezni amennyiben megnyitja az adott tartalom részleteit és a frissítés gombra kattint. Amennyiben tömeges metaadat frissítést szeretne, akkor a Metaadat kezelő menüben tudja azt kezdeményezni.", + "RecordingPathChangeMessage": "A felvételek könyvtárának módosítása nem vonja maga után a már meglevő felvételek automatikus átmozgatását az új helyre. Ez utóbbiak áthelyezését manuálisan tudja megtenni amennyiben szükségét érzi ennek.", + "LabelLocalIpAddress": "Helyi IP cím", + "LabelBindToLocalNetworkAddressHelp": "Opcionális. Felülírja a helyi hálózati címet, amit az Emby Server az alkalmazások számára közöl. Ha üresen hagyod, a szerver automatikusan észleli a helyi IP címet.", + "SettingsWarning": "A következő értékek módosítása a stabilitás csökkenését vagy kapcsolódási hibákat eredményezhetnek. Ha bármilyen hibát tapasztalsz, javasoljuk a beállítások alapértelmezésre történő visszaállítását.", + "OptionSaveMetadataAsHiddenHelp": "Ennek módosítása a jövőben mentésre kerülő metaadatokra lesznek hatással. A már meglevő metaadatok akkor kerülnek frissítésre, ha az Emby Server a következő alkalommal menti azokat.", + "EnablePhotos": "Fotók engedélyezése", + "EnablePhotosHelp": "A fotók érzékelve és mutatva lesznek az egyéb média állományok mellett.", + "ImportPlaylists": "Lejátszási listák importálása", + "ImportPlaylistsHelp": "A médiakönyvtáraiban található lejátszási listák importálhatók az Emby Server-be.", + "SaveThumbnailImagesIntoMediaFolders": "Mentse a videó előnézeti képeket a média könyvtárába", + "LabelGenerateVideoPreviewThumbnails": "Videó előnézeti miniatűrök generálása", + "LabelEnableDebugLogging": "Hibakeresési naplózás engedélyezése", + "OptionEnableExternalContentInSuggestions": "Külső tartalmak engedélyezése az ajánlások terén", + "OptionEnableExternalContentInSuggestionsHelp": "Engedélyezze az internetes előzeteseket és az élő TV programok megjelenítését az ajánlott tartalmak között.", + "LabelOptionalNetworkPath": "(Opcionális) Megosztott hálózati mappa", + "LabelOptionalNetworkPathHelp": "Amennyiben ezen mappa meg van osztva az Ön hálózatán, akkor ezen hálózati megosztási útvonallal az Emby eszközöknek lehetőségük nyílik a média állományok közvetlen elérésére.", + "SynologyUpdateInstructions": "Kérem jelentkezzen be a DSM-be és menjen a Csomagkezelési központba a frissítéshez.", + "HeaderRecordingPostProcessing": "Felvétel utófeldolgozás", + "LabelPostProcessorArguments": "Utófeldolgozás parancssori paraméterek", + "PostProcessorArgumentsHelp": "A következő változók támogatottak a parancssorban, hogy lehetővé tegyék az adatok továbbítását az utódfeldolgozáshoz", + "LabelPostProcessor": "Utófeldolgozási alkalmazás", + "DvrPostProcessorPathArgument": "{path}: Az új felvételi fájl teljes elérési útja", + "OptionAutomaticallyGroupSeries": "Automatikusan egyesítse a sorozatokat, melyek több mappában vannak szétszórva", + "OptionAutomaticallyGroupSeriesHelp": "Amennyiben engedélyezi, akkor azon sorozatok esetében, melyek több mappában szerepelnek a könyvtáron belül automatikusan egy sorozatba kerülnek egyesítésre.", + "WhenDidYouPurchaseApp": "Mikor vásároltad meg eredetileg az alkalmazást?", + "PreferEmbeddedTitlesOverFileNames": "Beágyazott címek előnyben részesítése a fájlnevekkel szemben", + "PreferEmbeddedTitlesOverFileNamesHelp": "Ez fogja meghatározni az alapértelmezett megjelenítendő címet amennyiben ne, elérhető internet metaadat vagy helyi metaadat.", + "FriendlyNameForReferenceHelp": "A megjelenítéshez használt barátságos elnevezés, saját referenciaként.", + "HeaderLiveTvTunerSetup": "Élő TV tuner beállítása", + "HeaderTVSourceSetup": "TV forrás beállítása", + "HeaderDetectMyDevices": "Érzékelje az eszközöket", + "MessagePleaseWait": "Kérjük, várj. Ez eltarthat egy percig.", + "DetectingDevices": "Eszközök észlelése", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Az kezdeti adat importálást követően a metaadatok automatikus frissítése az internetről", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatikusan frissíti a metaadatokat az olyan epizódok esetében, amelyeknek címében szerepel a megjelenésre vár kifejezés", + "EveryNDays": "Minden {0}. nap", + "LabelCertificatePassword": "Tanúsítvány jelszó", + "LabelCertificatePasswordHelp": "Amennyiben az Ön tanúsítványa jelszót igényel, akkor kérem adja meg azt itt.", + "HeaderNewLibrary": "Új könyvtár", + "HttpsRequiresCert": "A biztonságos kapcsolatok használatához szükséges egy megbízható SSL tanúsítvány megadása, pl. Lets Encrypt. Kérem adjon meg egy ilyen tanúsítványt vagy kapcsolja ki a biztonságos kapcsolatok használatát.", + "ServerRestartNeededAfterPluginInstall": "Az Emby Server-t újra kell indítani a bővítmények telepítése után.", + "PluginInstalledMessage": "A bővítmény sikeresen telepítve. Az Emby Server-t újra kell indítani a változtatások életbe lépéséhez.", + "MessagePremiereStatusGood": "Önnek {0} Emby Premiere kerete van és az eszközhasználata jócskán a határon belül van.", + "MessagePremiereStatusClose": "Önnek {0} db Emby Premiere kerete van azonban az eszközhasználata közel van a határhoz.", + "MessagePremiereExtendedPlans": "Fontoljon meg egy {0} kibővített eszköz keretet {1}", + "MessagePremiereStatusOver": "Önnek {0} db Emby Premiere kerete van azonban az eszközhasználata a határ felett van!", + "ListItemPremiereSub": "{0} előfizetés vásárolva a {2} által. lejárat {1}", + "LabelClickToManage": "Kattintson ide az előfizetés kezeléséhez", + "LabelCancelInfo": "Ön közvetlenül kezelni tudja előfizetését a {0} által", + "LabelAlreadyCanceled": "Ezen előfizetés lemondásra került. A Kulcs érvényes marad annak lejártáig.", + "HeaderCancelSub": "Emby Premiere lemondása", + "MessageConfirmSubCancel": "NE, Kérem ne menjen... Hiányozni fog Önnek az Emby Premiere által nyújtott remek szolgáltatások!", + "ButtonCancelSub": "Tudom, de mondja le az előfizetést", + "ButtonDontCancelSub": "Emby Premiere megtartása", + "MessageSubCancelReqSent": "Egy email elküldésre került a kulcs tulajdonosa részére. Kérem kövesse az utasításokat ezen emailben az előfizetése lemondásának befejezése érdekében. Reméljük hamarosan újra szolgáltatásunk elégedett felhasználóinak soraiban üdvözölhetjük!", + "MessageSubCancelError": "Hiba lépett fel a lemondás próbálásának folyamán. Kérem küldjön egy emailt a {0} címre és meg fogjuk oldani.", + "LabelAlreadyCancelled": "Ezen előfizetés lemondásra került. Önnek nincs további fizetési kötelezettsége azonban a szolgáltatások változatlan formában működni fognak a fentebb jelzett dátumig.", + "AllowOnTheFlySubtitleExtraction": "Feliratok menet közbeni kivonásának engedélyezése", + "AllowOnTheFlySubtitleExtractionHelp": "A videók átkódolásának e miatti megakadályozásának érdekében lehetőség van a videóba beágyazott feliratok kivonására és különálló egyszerű szövegként történő továbbítására az érintett kliens Emby alkalmazás részére. Néhány rendszeren ez a kivonási folyamat eltarthat egy ideig, mely alatt a videó lejátszás szünetelni fog. Amennyiben ezt nem engedélyezi, akkor a beágyazott felirat beégetésre kerül a videó átkódolási folyamat során magába a képbe amennyiben a kliens eszköz nem támogatja az adott felirat formátumot alapból (ez az Emby Server oldalán jelentős CPU erőforrást igényelhet a videó lejátszása folyamán).", + "AllowOnTheFlyFontExtraction": "Felirat betűtípusának azonnali kinyerésének engedélyezése", + "AllowOnTheFlyFontExtractionHelp": "A beágyazott betűtípusok kinyerhetők a videókból, és eljuttathatók az Emby alkalmazásokhoz, hogy támogassák az egyedi betűtípusokat tartalmazó videókat. Egyes rendszereken ez hosszabb időt vehet igénybe, és a videólejátszás megakadhat a kinyerési folyamat során.", + "EnableDebugLoggingHelp": "A hibakeresési naplózást csak akkor ajánlott használni, ha valamilyen hibát próbálsz elhárítani. A fájlrendszer megnövekedett használata miatt ez megakadályozhatja néhány környezetben a gép alvó módba lépését.", + "LabelSimultaneousConnectionLimit": "Egyidejű közvetítések száma", + "SimultaneousConnectionLimitHelp": "Maximális egyidejű közvetítés száma. Adjon meg 0 értéket a korlátlan lehetőséghez.", + "LaunchWebAppOnStartup": "Emby webes alkalmazás indítása böngészőben az Emby Server indulásakor", + "LaunchWebAppOnStartupHelp": "Ennek segítségével a webes alkalmazás az Ön alapértelmezett böngészőjében fog elindulni amikor a Emby Server elsőre indul. Ez a szerver újraindítása műveletet használva nem fog megtörténni.", + "LabelReferrerHeader": "Hivatkozó HTTP fejléc", + "LabelUserAgentHeader": "Felhasználói ügynök HTTP fejléc", + "SupplyCustomValueIfNeeded": "Egyedi HTTP fejléc érték megadása, amennyiben szükséges.", + "HeaderConfigureRemoteAccess": "Távoli elérés beállítása", + "LearnHowToCreateSynologyShares": "Tudjon meg többet arról hogyan oszthat meg mappákat Synology eszközén.", + "LabelAllowedRemoteAddresses": "Távoli IP cím szűrő", + "LabelAllowedRemoteAddressesMode": "Távoli IP cím szűrő módja", + "Whitelist": "Fehérlista", + "Blacklist": "Feketelista", + "AllowedRemoteAddressesHelp": "Azon IP címek, vagy IP/netmaszk bejegyzések vesszővel elválasztott listája, amelyek csatlakozhatnak távolról a szerverhez. Ha üresen hagyod, minden távoli hozzáférés engedélyezve lesz.", + "LabelLanNetworks": "LAN hálózatok", + "LanNetworksHelpText": "Vesszővel elválasztott IP címek vagy IP/netmaszk bejegyzések listája azokhoz a hálózatokhoz, amelyeket helyi hálózatnak tekintünk a sávszélesség és a távoli hozzáférés korlátozásainak érvényesítésekor. Ha meg van adva, minden más IP cím külső hálózatnak minősül. Ha üresen hagyja, csak a szerver alhálózata és a gyakori privát IP alhálózatok (192.168.0.0/24, 172.16.0.0/12 stb.) számítanak helyi hálózatnak.", + "LabelSecureConnectionsMode": "Biztonságos kapcsolat mód", + "PreferredNotRequired": "Preferált, de nem szükséges", + "RequiredForAllRemoteConnections": "Szükséges minden távoli kapcsolathoz", + "HandledByProxy": "Fordított proxy által kezelve", + "SaveSubtitlesIntoMediaFolders": "Feliratok mentése a média könyvtárba", + "SaveSubtitlesIntoMediaFoldersHelp": "A feliratok a videó állományok melletti tárolásával elérhetjük azok egyszerű kezelését.", + "AutomaticSubtitleDownloadInstructions": "Az automatikus felirat letöltés beállításához kattintson egy könyvtárra az Emby Könyvtár menüben és módosítsa a felirat letöltési beállításokat ezen érintett könyvtárral kapcsolatban.", + "ProviderNeedsSetupWithUrl": "{0} további beállításokat igényel az Emby Server {1} beállítások képernyőjén {2}.", + "LabelEnableHardwareAcceleration": "Hardveres gyorsítás engedélyezése ha elérhető", + "HeaderPreferredHardwareDecoders": "Preferált hardveres dekóderek", + "HeaderPreferredHardwareEncoders": "Preferált hardveres kódolók", + "AllowChangingImageAndPassword": "A felhasználó megváltoztathatja a jelszavát és a profilképét", + "LabelSimultaneousStreamLimit": "Maximális egyidejű közvetítés száma", + "SimultaneousStreamLimitHelp": "Korlátozd az egyidejű közvetítések számát.", + "LabelMusicFolderStructure": "Zene könyvtár rendszerezési eljárás", + "LabelMusicFolderStructureHelp": "Ezen funkció útmutatásul szolgál a könyvtár beolvasó számára, hogy az Ön mappái milyen logika alapján vannak szervezve. Amennyiben bizonytalan vagy a könyvtárak struktúrája nem egyezik meg pontosan egyik választási lehetőséggel sem, akkor kérem válassza az alapértelmezett egyéb lehetőséget.", + "OtherOrUnstructured": "Egyéb vagy nem rendszerezett", + "PerfectArtistAlbumTrack": "Tökéletesen szervezve az előadó/album könyvtárakba beleértve a számokat közvetlenül az album könyvtárakba.", + "PerfectAlbumTrack": "Tökéletesen szervezve az album könyvtárakba beleértve a számokat közvetlenül az album könyvtárakba.", + "LabelMinCollectionSize": "Legalább ennyi elem szükséges egy Gyűjtemény automatikus létrehozásához", + "PerfectAuthorAudioBookTrack": "Tökéletesen rendezett szerző/könyv mappákba, a fájlok közvetlenül a könyvmappákban találhatók.", + "PerfectAudioBookTrack": "Tökéletesen rendezve könyvmappákba, a fájlok közvetlenül a könyvmappákban találhatók.", + "MinCollectionSizeHelp": "Csak abban az esetben kerül létrehozásra új gyűjtemény amennyiben a megadott számnak megfelelő címek rendelkezésre állnak az Ön könyvtáraiban. Az érték megváltoztatása nincs hatással a már létező gyűjteményekre.", + "LabelImportCollections": "Gyűjtemény információ importálása", + "LabelImportCollectionsHelp": "Ezen funkció engedélyezése esetén a Gyűjtemények információ begyűjtésre kerül az Ön által engedélyezett metaadat letöltőkkel. Ez adott esetben nem kívánt Gyűjtemények automatikus létrehozását eredményezheti. Ezen funkció tiltása esetén Gyűjtemények nem kerülnek automatikusan létrehozásra a továbbiakban ugyanakkor a meglevő Gyűjtemények nem kerülnek törlésre.", + "LabelAllowAdultMetadata": "Felnőtt metaadatok engedélyezése", + "LabelAllowAdultMetadataHelp": "Felnőtt metaadatok ellenőrzésének engedélyezése az internetes metaadat keresésekor.", + "HeaderVideoPreviewThumbnails": "Videó előnézeti miniatűrök", + "LabelEnableHDRToneMapping": "HDR tónus leképezés engedélyezése", + "EnableHDRToneMappingHelp": "A tónus leképezés biztosítja a helyes színátalakítást a HDR tartalom átkódolásakor, máskülönben az igen homályos és telítetlen módon jelenne meg. Szükséges lehet további illesztőprogram összetevőkre a hardveres gyorsítás támogatásához, amennyiben ez a funkció engedélyezve van. A részletekért kérjük olvassa el a hardveres gyorsítás beállítási útmutatóját.", + "WithHardwareAcceleratedTranscoding": "Igen, kizárólag hardveres átkódolással", + "TranscodingStillInitializing": "Az Emby Server átkódolási szolgáltatás indítása folyamatban van. A képernyő automatikusan frissülni fog amint az átkódolási szolgáltatás készen áll.", + "WithEitherHardwareOrSoftwareTranscoding": "Igen, hardveres vagy szoftveres átkódolás bármelyikével", + "ToneMappingInHardwareDescription": "Amennyiben engedélyezi és támogatja a hardver, akkor a tónus leképezés hardveres gyorsítással történik és minden más esetben kihagyja.", + "ToneMappingInSoftwareDescription": "A tónus leképezés szoftveresen kerül végrehajtásra a processzor által. Ez sokkal lassabb, mint a hardveres tónus leképezés és igen nagy teljesítményű kiszolgálógépet igényel.", + "ToneMappingInBothDescription": "Amennyiben engedélyezi és támogatja a hardver, akkor a tónus leképezés hardveres gyorsítással történik és egyéb esetekben szoftveresen kerül végrehajtásra a processzor által. A szoftveresen végrehajtott tónus leképezés sokkal lassabb, mint a hardveres tónus leképezés és igen nagy teljesítményű kiszolgálógépet igényel.", + "AutoMapped": "Automatikusan rendezve", + "ManuallyMapped": "Manuálisan rendezve", + "NotMappedToGuideData": "Nem rendezett műsorújság adat", + "MappedToValue": "Rendezve a {0}-hoz", + "LabelAutomaticallyWakeServerForRecordings": "A szerver automatikus felébresztése felvételek készítésére", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Az ébresztési események a szerver operációs rendszerén lesznek ütemezve. Ennek az opciónak a letiltása megakadályozza a későbbi ébresztési események ütemezését, de nem távolítja el a korábban ütemezett eseményeket.", + "Database": "Adatbázis", + "LabelOptimizeDatabaseOnShutdown": "Próbálja meg optimalizálni az adatbázist a szerver leállításakor", + "LabelOptimizeDatabaseOnShutdownHelp": "Az adatbázis optimalizálási művelet általában egy művelet nélküli, de időnként lefuttat egy elemzést, ha úgy tűnik, hogy ez hasznos lesz a lekérdezéstervező számára. Emiatt az Emby Server leállítása tovább tarthat.", + "LabelDatabaseCacheSize": "Adatbázis gyorsítótár mérete (MB)", + "LabelDatabaseCacheSizeHelp": "Beállítja, hogy az adatbázis mennyi adatot tároljon egyszerre a memóriában, adatbázisfájlonként. A nagyobb érték javíthatja az Emby Server teljesítményét. A kiszolgáló újraindítása szükséges a módosítások érvényesítéséhez.", + "LabelDatabaseAnalysisLimit": "Elemzési sor korlátja", + "LabelDatabaseAnalysisLimitHelp": "Amennyiben az adatbázis optimalizálva van, ez az egyes indexekben az ANALYZE parancs által megvizsgált sorok hozzávetőleges száma. A nagyobb érték növeli az adatbázis optimalizálás hatékonyságát, de az Emby Server leállítása tovább tarthat.", + "LabelVacuumDb": "Tisztítsa ki az adatbázist az Emby Server következő indításakor", + "LabelVacuumDbHelp": "A tisztító (vacuum) parancs újraépíti az adatbázisfájlt, és minimális mennyiségű lemezterületre csomagolja újra. Bizonyos esetekben ez javíthatja az Emby Server teljesítményét. Kérjük, vegye figyelembe, hogy az Ön Emby Server-e nem lesz használható a tisztítási művelet működése alatt, és a tisztítás folyamatának nyomon követésére sem lesz mód. Kérjük, ez idő alatt kerülje az Emby Server kényszerített bezárását, mivel ez adatbázis károsodáshoz vezethet. Ez egy egyszeri művelet, és a következő szerverindításkor ez a lehetőség visszaállítja a bejelöletlen állapotot.", + "AdvancedOptionsWarning": "Ezek speciális beállítások és általában alapértelmezetten kell őket hagyni, hacsak nincs oka megváltoztatni őket.", + "HeaderRecentlyActiveDevices": "Jelenleg aktív eszközök", + "YesUntilServerRestart": "Igen, a következő szerver újraindításig", + "YesUntilLogRotate": "Igen, a következő naplófájl cseréjéig", + "LabelSubtitleDownloadMaxAge": "Ne próbálja meg automatikusan letölteni a feliratokat az ennél régebbi videókhoz", + "SubtitleDownloadMaxAgeHelp": "Ez a hozzáadás idejének metaadat értékén alapul.", + "NoAgeLimit": "Nincs korhatár", + "AnonymizeLogContents": "Napló tartalmának anonimizálása", + "Markers": "Jelölők", + "LabelGenerateIntroVideoMarkers": "Bevezető jelölők létrehozása", + "GenerateIntroVideoMarkersHelp": "Érzékeli a műsorbevezetőket, és megjeleníti a 'Bevezető kihagyása' gombot az Emby alkalmazásokban. A bevezető felismerés hosszú ideig tarthat, és magas CPU- vagy lemezhasználatot okozhat.", + "LabelCopyFromUser": "Beállítások másolása a felhasználótól", + "CopyFromUserHelp": "Választható. Gyorsítsa fel az új felhasználók létrehozását egy meglévő felhasználó adatainak másolásával.", + "UserPolicy": "Felhasználói szabályzat (könyvtár- és funkcióhozzáférés, szülői felügyelet stb.)", + "UserConfiguration": "Felhasználói konfiguráció (preferált hang- és feliratnyelvek, könyvtári sorrend stb.)", + "UserDataAndDescription": "Felhasználói adatok (kedvencek, megtekintési és hallgatási állapotok stb.)", + "HeaderCopyOptions": "Másolási beállítások", + "LabelMultiRestrictionMode": "Többszörös korlátozási mód", + "MultiRestrictionModeAll": "Mind a minősítési, mind a címkekorlátozásoknak megfelelő tartalom engedélyezése", + "MultiRestrictionModeAny": "A minősítési vagy címkekorlátozásoknak megfelelő tartalom engedélyezése", + "AllowMappingByChannelNumber": "Lehetővé teszi az adatok csatornaszámok segítségével történő leképezését", + "AllowMappingByChannelNumberHelp": "Ez a funkció tartalékként használható a tuner csatornák és az útmutató adatainak összevetésére, ha a csatorna neve alapján nem találunk megfelelőt. Ez pontatlan egyezéshez vezethet, ha a tuner csatornaszámok nem helyesek.", + "LabelPreferredSourceForChannelLogos": "A csatorna logók előnyben részesítése az útmutató adataiból a tunerrel szemben, ha mindkettő rendelkezésre áll", + "LabelPreferredSourceForChannelNumbers": "Az útmutató adataiból származó csatornaszámok előnyben részesítése a tunerrel szemben, ha mindkettő rendelkezik velük", + "HeaderSoftwareEncoders": "Szoftveres kódolók", + "LabelProxyHeaderMode": "Proxy fejlécek olvasása az ügyfél IP címének meghatározásához", + "ProxyHeadersRemoteOnly": "Csak akkor, ha távoli hálózati címeket tartalmaznak", + "ProxyHeaderModeHelp": "Meghatározza, hogy az olyan kérésfejléceket, mint a(z) {0} és {1}, használni kell-e a csatlakozó eszközök IP címének meghatározásához. Ezt csak akkor engedélyezze, ha fordított proxy-t használ.", + "AllowCameraUpload": "Kamera feltöltés engedélyezése", + "AllowCameraUploadHelp": "Ha engedélyezve van és az Emby mobilalkalmazásban be van kapcsolva, akkor a felhasználók automatikusan feltölthetik a kamerájukról készített fotókat és videókat erre az Emby Server-re", + "CameraUploadMustBeGranted": "A szerver adminisztrátornak hozzáférést kell biztosítania a kamera feltöltéshez is.", + "EnableReadingAndWritingPeopleMetadata": "Személyi metaadat fájlok olvasásának és írásának engedélyezése", + "EnableReadingAndWritingPeopleMetadataHelp": "Nfo Metaadat kiegészítő telepítése szükséges. Ez lehetővé teszi a felhasználók által végzett szerkesztések mentését az Nfo metaadat fájlokba, de hosszabb könyvtár beolvasást eredményez.", + "LabelIgnoreSampleFiles": "A sample szót a fájlnévben tartalmazó fájlok figyelmen kívül hagyása, ha méretük kisebb, mint (MB)", + "PreferredChannelImageSource": "Preferált csatorna képforrás", + "PreferredChannelImageSourceHelp": "Válasszon egy előnyben részesített csatornaképet, ha a tuner és az útmutató adatok is rendelkezésre állnak.", + "CacheImagesInServerData": "A képek gyorsítótárazott másolatának megőrzése a kiszolgáló metaadat mappájában", + "CacheImagesInServerDataHelp": "Ha a médiát és a képeket egy másik gépen tárolja, a képek gyorsítótárazott másolatának tárolása a kiszolgáló metaadat mappájában csökkenti a hálózati hozzáférést és javíthatja a teljesítményt. A gyorsítótár létrehozásának ára, hogy a könyvtárak beolvasása lassabb lesz és a kiszolgáló metaadatok mappája lényegesen több lemezterületet fog használni.", + "AllowSharingPersonalContent": "Személyes tartalmak, például lejátszási listák megosztásának engedélyezése más felhasználókkal ezen a szerveren", + "AllowSharingPersonalContentHelp": "Ha engedélyezi, ez a felhasználó megoszthatja lejátszási listáit más felhasználókkal. A lejátszási lista elemei továbbra is korlátozottak maradnak a felhasználói könyvtárhoz való hozzáférés és a szülői felügyelet alapján.", + "LiveBufferSizeHours": "Élő közvetítés pufferméretének korlátja (óra)", + "LiveBufferSizeHoursHelp": "A nagyobb puffer több lehetőséget biztosít az előre és visszafelé keresésre élő közvetítés közben, de több lemezterületet fogyaszt.", + "LabelTranscodingMaxResolution": "Maximális átkódolási felbontás", + "TranscodingMaxResolutionHelp": "Állítson be egy felső korlátot, amely minden videó átkódolásra érvényes, függetlenül az Emby lejátszó minőségi beállításától. Ez segít csökkenteni a szerver átkódolási folyamatainak erőforrás felhasználását.", + "EnableHevcEncodingExp": "HEVC videó kódolás engedélyezése (kísérleti)", + "EnableHevcEncodingHelp": "Engedélyezze az átkódolást HEVC kodekkel, ha azt a kliens támogatja.", + "LabelEnableMultiPartItems": "Többrészes elemek engedélyezése", + "EnableMultiPartItemsHelp": "Automatikusan felismeri és csoportosítja azokat a fájlokat, amelyek neve tartalmazza az 1. rész, 2. rész stb. megjelölést. A további részek megjelennek az elem fő részletező képernyőjén.", + "MultiVersionItemsDetectionHelp": "Automatikusan felismeri és csoportosítja ugyanannak az elemnek a különböző verzióit. A fő részletező képernyőn lehetőség lesz verzió kiválasztására. A fájlok alapján történő csoportosításhoz megfelelően kell elnevezni és rendszerezni a fájlokat.", + "MultiVersionMoviesDetectionHelp": "A metaadatok alapján történő csoportosítás azokat a filmeket fogja együtt kezelni, amelyeknek ugyanazok a külső azonosítóik vannak. (MovieDb, IMDb, stb.)", + "EnableMultiPartItemsTVHelp": "Nem támogatott TV műsor epizódok esetén.", + "HeaderAutomaticGrouping": "Automatikus csoportosítás", + "LabelMultiVersionItemsDetection": "Többverziós elem felismerése", + "MultiVersionItemsDetectionBoth": "Többverziós elemek felismerése fájlok és metaadatok alapján", + "MultiVersionItemsDetectionFiles": "Többverziós elemek felismerése fájlok alapján", + "MultiVersionItemsDetectionMetadata": "Többverziós elemek felismerése metaadatok alapján", + "LabelNetworkRequestProtocol": "Hálózati kérés protokoll", + "NetworkRequestProtocolHelp": "Válassza ki, melyik protokollt használja a kimenő hálózati kérésekhez a metaadat szolgáltatók és egyéb szolgáltatások felé. Előfordulhat, hogy ha külső szolgáltatások IPv6 használatával nem érhetők el, akkor ezt IPv4-re kell állítania.", + "GenerateChaptersForVideos": "Fejezetek létrehozása olyan videókhoz, amelyek nem tartalmaznak beágyazott fejezetinformációt", + "GeneratedChapterInterval": "Generált fejezetköz", + "StartOfSection": "A fejezet kezdete", + "NextPage": "Következő oldal", + "PreviousSection": "Előző fejezet", + "LayoutVertical": "Függőleges görgetés", + "ZoomIn": "Nagyítás", + "PageNarrow": "Keskeny", + "PreviousPage": "Előző oldal", + "PageMaximized": "Maximalizált", + "ZoomOut": "Kicsinyítés", + "PageBook": "Kétoldalas", + "RightToLeft": "Jobbról balra tartó rendezés", + "LabelPageSize": "Oldalméret", + "PositionInBook": "Pozíció a könyvben", + "CurrentPage": "Aktuális oldal", + "LayoutDouble": "Kétoldalas", + "TableOfContents": "Tartalomjegyzék", + "PageSingle": "Egy oldal", + "TotalPages": "Összes oldal", + "ZoomNone": "Alapértelmezett nagyítás", + "LayoutPage": "Egy oldal", + "NextSection": "Következő fejezet", + "ZoomAutoFit": "Oldalhoz igazítás", + "LetsGetSetup": "Kezdjük a beállítást", + "Margins": "Margók", + "HeaderIgnoreFiles": "Fájlok figyelmen kívül hagyása", + "EnablePlexIgnoreAlias": "A .plexignore fájlok támogatásának engedélyezése az .embyignore aliasaként", + "HeaderMaintenanceMode": "Karbantartási üzemmód", + "OptionEnableMaintenanceMode": "Állítsa a szervert karbantartási üzemmódba", + "EnableMaintenanceModeHelp": "A felhasználók csak a karbantartási üzemmód üzenetét fogják látni.", + "MaintenanceModeMessage": "Karbantartási üzemmód üzenet", + "MaintenanceModeMessageHelp": "Ha üresen hagyja, egy általános üzenet jelenik meg, amely arról tájékoztat, hogy a szerver karbantartás alatt áll, és a felhasználó megjelenítési nyelve alapján lesz lefordítva.", + "ServerInMaintenanceMode": "Az Emby Server jelenleg karbantartási üzemmódban fut. A felhasználók csak egy karbantartási üzenetet látnak, amíg ki nem veszed a szervert a karbantartási módból.", + "ExcludeFromGlobalSearch": "Kizárás a keresésből", + "MergeTopFoldersInFolderView": "A legfelső szintű mappák tartalmának egyesítése mappanézet használatakor", + "MergeTopFoldersInFolderViewHelp": "Ha engedélyezve van, a legfelső szintű mappák tartalma összevonásra kerül, és egyetlen egyesített mappaként jelenik meg a mappanézetben. Ha le van tiltva, a legfelső szintű mappák az első szintként jelennek meg a mappanézetben.", + "OptionAllowTranscodingToReduceQuality": "Engedélyezze az átkódolást a minőség csökkentését a lejátszás során, az alkalmazás minőségi beállításai alapján", + "AutoRemoteQualityHelp": "Opcionális adatfolyam minőség ehhez a felhasználóhoz, amikor a lejátszó automatikus minőségre van állítva. Ez felülírja az automatikus minőségérzékelést ennél a felhasználónál minden eszközön.", + "LabelAutoRemoteQuality": "Automatikus távoli adatfolyam minősége (Mbps)", + "Legacy": "Korábbi", + "FolderScanningModeHelp": "Ennek az opciónak a módosítása a könyvtár teljes újraellenőrzését eredményezi, és a meglévő metaadatok elvesztését vagy módosulását okozhatja.", + "LegacyFolderScanningModeHelp": "A régebbi beolvasás megpróbálja összevonni azokat a mappákat, amelyek csak egyetlen videót tartalmaznak, egy rétegbe. Ez elsősorban a mappanézet megjelenítését érinti. Ez nem feltétlenül működik jól, ha más Emby funkciókkal, például extrákkal, több verziójú videókkal vagy fájlok kihagyásával együtt használják.", + "LabelFolderScanningMode": "Mappa beolvasási mód" +} diff --git a/strings/id.json b/strings/id.json new file mode 100644 index 0000000..df5bcd8 --- /dev/null +++ b/strings/id.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Kamu Sudah Selesai!", + "ThisWizardWillGuideYou": "Panduan ini akan memandu kamu melakukan proses penyiapan. Untuk mulai, silakan pilih bahasa yang kamu gunakan.", + "HeaderCreateYourFirstUser": "Buat Akun Pertama Kamu", + "ButtonQuickStartGuide": "Panduan Penyiapan Singkat", + "MoreUsersCanBeAddedLater": "Pengguna lain dapat ditambahkan nanti di pengaturan Emby Server.", + "UserProfilesIntro": "Emby menyertakan dukungan bawaan untuk profil pengguna, yang memungkinkan setiap pengguna memiliki pengaturan tampilan, kondisi pemutaran, dan kontrol orang tua mereka sendiri.", + "WizardCompleted": "Itu saja yang diperlukan saat ini. Emby telah memindai pustaka media kamu. Lihat beberapa aplikasi kami, lalu klik Selesai untuk melihat Dashboard Server.", + "MessagePleaseAcceptTermsOfService": "Harap setujui ketentuan layanan dan kebijakan privasi sebelum melanjutkan.", + "OptionIAcceptTermsOfService": "Saya menyetujui ketentuan layanan", + "SeeOurHwaGuide": "Lihat {0}panduan pengaturan akselerasi perangkat keras{1} kami.", + "HeaderEmbyServerReleaseNotes": "Catatan Rilis Server Emby", + "AllowSubtitleDownloading": "Izinkan pengunduhan subtitle", + "AllowSubtitleManagement": "Izinkan penghapusan berkas subtitle yang ada", + "NewUserNameHelp": "Beginilah tampilan pengguna di server kamu.", + "ChapterMarkers": "Penanda chapter/bab", + "LabelThumbnailImagesInterval": "Interval gambar thumbnail", + "ThumbnailImagesIntervalHelp": "Thumbnail yang lebih sering akan menghasilkan pengalaman yang lebih baik, tetapi akan membutuhkan lebih banyak ruang penyimpanan dan waktu untuk membuat gambar.", + "LabelAuthProvider": "Penyedia autentikasi", + "AuthProviderHelp": "Administrator selalu menggunakan penyedia bawaan Emby untuk memastikan kamu tidak pernah terkunci.", + "HeaderNewUser": "Pengguna Baru", + "ChangeServerDisplayName": "Ubah Nama Tampilan Server", + "ShowAdvancedSettings": "Perlihatkan pengaturan lanjutan", + "ChangingMetadataImageSettingsNewContent": "Perubahan pada metadata atau pengaturan pengunduhan karya seni hanya akan berlaku untuk konten baru yang ditambahkan ke pustaka kamu. Untuk menerapkan perubahan pada judul yang telah ada, kamu perlu memuat ulang metadatanya secara manual.", + "AllowRemoteAccess": "Izinkan koneksi jarak jauh ke Emby Server ini.", + "AllowRemoteAccessHelp": "Jika tidak dicentang, seluruh koneksi jarak jauh akan diblokir.", + "Alerts": "Peringatan", + "LabelTrackTitleDisplay": "Tampilan judul lagu yang disematkan", + "GenerateUserFriendlyTrackTitles": "Hasilkan judul yang ramah pengguna menggunakan informasi trek", + "PreferOriginalTrackTitles": "Utamakan judul yang disematkan", + "TrackTitleDisplayHelp": "Pilih tampilan untuk judul trek audio dan subtitle yang disematkan. Mengutamakan judul yang disematkan tidak disarankan kecuali kamu melakukan kurasi informasi trek yang disematkan secara manual.", + "EnableTranscodingThrottle": "Aktifkan pelambatan", + "EnableTranscodingThrottleHelp": "Emby akan secara dinamis menyesuaikan kecepatan transcoding untuk mengurangi penggunaan CPU.", + "HeaderTypeMetadataDownloaders": "{0} Pengunduh Metadata", + "HeaderTypeImageFetchers": "{0} Pemeroleh Gambar", + "HeaderImageOptions": "Opsi Gambar", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Daftar dengan PayPal", + "LabelSyncTempPath": "Path file sementara:", + "LabelSyncTempPathHelp": "Tentukan folder kerja (working folder) kustom. Selama proses konversi, media yang akan dikonversi akan disimpan di sini.", + "LabelCustomCertificatePath": "Path khusus sertifikat ssl:", + "LabelCustomCertificatePathHelp": "Path untuk berkas PKCS #12 yang berisi sertifikat dan kunci pribadi untuk mengaktifkan dukungan TLS pada domain khusus.", + "HeaderSetupLibrary": "Atur Pustaka Media", + "LabelTimeLimitHours": "Batas waktu (jam):", + "HeaderPreferredMetadataLanguage": "Bahasa Metadata Utama", + "LabelSaveLocalMetadata": "Simpan karya seni ke dalam folder media", + "LabelSaveLocalMetadataHelp": "Menyimpan karya seni ke dalam folder media akan menempatkannya di tempat yang mudah disimpan dan diedit.", + "TabAccess": "Akses", + "HeaderDeviceAccess": "Akses Perangkat", + "OptionEnableAccessFromAllDevices": "Aktifkan akses dari semua perangkat", + "OptionEnableAccessToAllChannels": "Aktifkan akses ke semua saluran", + "OptionEnableAccessToAllLibraries": "Aktifkan akses ke semua pustaka", + "DeviceAccessHelp": "Menyarig akses perangkat pengguna akan mencegah mereka menggunakan perangkat baru sebelum disetujui di sini.", + "LabelDisplayMissingEpisodesWithinSeasons": "Tampilkan episode yang belum ada pada musim", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Ini juga harus diaktifkan untuk pustaka serial TV di Pengaturan Emby Server.", + "ImportMissingEpisodesHelp": "Jika diaktifkan, informasi tentang episode yang belum tersedia akan diimpor ke database Emby kamu dan akan ditampilkan dalam musim dan serial tersebut. Ini dapat menyebabkan pemindaian pustaka yang jauh lebih lama.", + "MessageEnablingOptionLongerScans": "Mengaktifkan opsi ini dapat menghasilkan pemindaian pustaka yang jauh lebih lama.", + "LabelMaxParentalRating": "Peringkat orang tua maksimum yang diizinkan", + "MaxParentalRatingHelp": "Konten dengan peringkat yang lebih tinggi akan disembunyikan dari pengguna ini.", + "LibraryAccessHelp": "Pilih folder media untuk dibagikan dengan pengguna ini. Administrator akan dapat mengedit semua folder menggunakan pengelola metadata.", + "ChannelAccessHelp": "Pilih saluran yang akan dibagikan dengan pengguna ini. Administrator akan dapat mengedit semua saluran menggunakan pengelola metadata.", + "ImageUploadAspectRatioHelp": "Rasio Aspek 1:1 Direkomendasikan. Hanya JPG/PNG.", + "AlreadyPaidHelp1": "Jika kamu sudah membayar untuk menginstal versi lama Media Browser untuk Android, kamu tidak perlu membayar lagi untuk mengaktifkan aplikasi ini. Klik OK untuk mengirim email kepada kami di {0} dan kami akan mengaktifkannya untukmu.", + "AlreadyPaidHelp2": "Punya Emby Premiere? Batalkan saja dialog ini, atur Emby Premiere di Dashboard Emby Server kamu pada Bantuan -> Emby Premiere, dan ia akan terbuka secara otomatis.", + "TabMyPlugins": "Plugin Saya", + "TabCatalog": "Katalog", + "HeaderAutomaticUpdates": "Pembaruan Otomatis", + "Standard": "Standar", + "TabSupporterKey": "Kunci Emby Premiere", + "OptionHideUserLocal": "Sembunyikan pengguna ini dari layar masuk di jaringan lokal", + "OptionHideUserRemote": "Sembunyikan pengguna ini dari layar masuk saat terhubung dari jarak jauh", + "OptionHideUserFromLoginHelp": "Berguna untuk akun administrator pribadi atau tersembunyi. Pengguna harus masuk secara manual dengan memasukkan nama pengguna dan kata sandi.", + "HideFromUnusedDevices": "Sembunyikan pengguna ini dari layar masuk di perangkat yang belum pernah mereka masuki", + "OptionDisableUser": "Nonaktifkan pengguna ini", + "OptionDisableUserHelp": "Jika dinonaktifkan, server tidak akan mengizinkan koneksi apa pun dari pengguna ini. Koneksi yang ada akan dihentikan secara tiba-tiba.", + "OptionAllowUserToManageServer": "Izinkan pengguna ini untuk mengelola server", + "HeaderFeatureAccess": "Akses Fitur", + "OptionAllowMediaPlayback": "Izinkan pemutaran media", + "AllLibraries": "Semua pustaka", + "HeaderAllowMediaDeletionFrom": "Izinkan Penghapusan Media Dari", + "LiveTVRecordingManagement": "Pengelolaan Rekaman Siaran TV", + "OptionAllowRemoteControlOthers": "Izinkan kendali jarak jauh pengguna lain", + "OptionAllowRemoteSharedDevices": "Izinkan kendali jarak jauh perangkat bersama", + "OptionAllowRemoteSharedDevicesHelp": "Perangkat DLNA dianggap dibagikan sampai pengguna mulai mengendalikannya.", + "OptionAllowLinkSharing": "Izinkan berbagi media sosial", + "OptionAllowLinkSharingHelp": "Hanya halaman web yang berisi informasi media yang dibagikan. File media tidak pernah dibagikan secara publik. Pembagian dibatasi waktu dan akan kedaluwarsa setelah {0} hari.", + "OptionRelease": "Rilis Resmi", + "LabelAllowServerAutoRestartPlugin": "Izinkan server untuk memulai ulang secara otomatis untuk menerapkan pembaruan plugin", + "LabelAllowServerAutoRestartServerOrPlugin": "Izinkan server untuk memulai ulang secara otomatis untuk menerapkan pembaruan server atau plugin", + "LabelAllowServerAutoRestartHelp": "Server hanya akan memulai ulang selama tidak digunakan, ketika tidak ada pengguna yang aktif.", + "LabelRunServerAtStartup": "Jalankan server saat startup", + "LabelRunServerAtStartupHelp": "Ini akan memulai tray ikon Emby pada startup Windows. Jika kamu telah menyiapkan layanan Windows, biarkan ini tidak dicentang dan konfigurasikan layanan untuk dijalankan saat startup.", + "ButtonSelectDirectory": "Pilih Direktori", + "LabelCachePath": "Path cache:", + "DefaultMetadataLangaugeDescription": "Ini adalah pengaturan bawaan kamu dan dapat disesuaikan per pustaka.", + "LabelCachePathHelp": "Tentukan lokasi khusus untuk file cache server, seperti gambar. Biarkan kosong untuk menggunakan pengaturan bawaan server.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Data Program", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Path metadata:", + "LabelMetadataPathHelp": "Tentukan lokasi untuk karya seni dan metadata yang diunduh, atau kosongkan ini untuk menggunakan lokasi bawaan. Jika ini diubah, kamu harus memindahkan isi dari lokasi yang lama ke lokasi baru secara manual. Jika kamu pernah mengubah konten folder metadata secara manual, kamu harus menjalankan {0}tugas terjadwal pemindaian metadata folder{1}.", + "LabelTranscodingTempPath": "Path sementara transcoding:", + "LabelTranscodingTempPathHelp": "Folder ini berisi file yang digunakan oleh transcoder. Tentukan path khusus, atau biarkan kosong untuk menggunakan folder data server bawaan.", + "GenerateVideoPreviewThumbnailsHelp": "Thumbnail pratinjau video menunjukkan gambar cuplikan video selagi men-seek video. Penghasilan thumbnail dapat memakan waktu yang cukup lama, menambah beban kerja CPU, dan membutuhkan ruang penyimpanan tambahan.", + "AsAScheduledTask": "sebagai tugas terjadwal", + "AsAScheduledTaskAndMediaAdded": "sebagai tugas terjadwal dan ketika media ditambahkan", + "ButtonRefreshGuideData": "Perbarui Data Panduan", + "LabelNumberOfGuideDays": "Jumlah hari data panduan yang diunduh:", + "LabelNumberOfGuideDaysHelp": "Mengunduh lebih banyak hari memungkinkan kamu menjadwalkan lebih awal dan melihat lebih banyak acara, namun juga memakan waktu lebih lama untuk diunduh. Otomatis akan menyesuaikan berdasarkan jumlah saluran. Harap ingat bahwa berapa pun hari yang kamu pilih, harus ada data-nya pada sumber panduannya. Beberapa sumber data panduan hanya menyediakan jadwal 24 jam. Emby Guide Data menyediakan hingga 14 hari.", + "HeaderFetchImages": "Fetch Images", + "LabelMaxBackdropsPerItem": "Jumlah maksimum gambar latar per item:", + "LabelMaxScreenshotsPerItem": "Jumlah maksimum gambar tangkapan layar per item", + "LabelMinBackdropDownloadWidth": "Lebar minimum gambar latar yang diunduh", + "LabelMinScreenshotDownloadWidth": "Lebar minimum gambar tangkapan layar yang diunduh", + "ButtonAddScheduledTaskTrigger": "Tambah Pemicu", + "ButtonAdd": "Tambah", + "LabelTriggerType": "Jenis Pemicu", + "OptionOnInterval": "Interval", + "OptionAfterSystemEvent": "After a system event", + "LabelDay": "Hari", + "LabelTime": "Waktu", + "LabelEvent": "Event", + "OptionWakeFromSleep": "Wake from sleep", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Aktifkan pengawasan folder waktu nyata", + "LabelEnableRealtimeMonitorHelp": "Perubahan pada berkas akan segera diproses, pada filesystem yang mendukung.", + "Community": "Komunitas", + "HeaderEmbyNews": "Berita Emby", + "LabelFriendlyServerName": "Nama server", + "LabelFriendlyServerNameHelp": "Nama ini digunakan untuk mengenali server. Jika dikosongkan, nama komputer akan digunakan.", + "LabelPreferredDisplayLanguage": "Bahasa tampilan utama", + "LabelPreferredDisplayLanguageHelp": "Menerjemahkan Emby adalah proyek terus-menerus.", + "LabelReadHowYouCanContribute": "Cari tahu cara kamu dapat berkontribusi.", + "LabelCustomCss": "CSS khusus", + "LabelCustomCssHelp": "Terapkan css khusus ke antarmuka web.", + "LabelLocalHttpServerPortNumber": "Port lokal http", + "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Emby's http server should bind to.", + "LabelPublicHttpPort": "Port http publik", + "LabelPublicHttpPortHelp": "The public port number that should be mapped to the local http port.", + "LabelPublicHttpsPort": "Port https publik", + "LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local https port.", + "RequireHttps": "Perlukan https untuk koneksi eksternal", + "RequireHttpsHelp": "Jika diaktifkan, koneksi http akan diarahkan ke https.", + "LabelHttpsPort": "Port https lokal", + "LabelHttpsPortHelp": "The tcp port number that Emby's https server should bind to.", + "LabelEnableAutomaticPortMap": "Enable automatic port mapping", + "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", + "LabelExternalDDNS": "Domain eksternal", + "LabelExternalDDNSHelp": "Jika kamu memiliki DNS dinamis atau nama domain, masukkan di sini tanpa protokol atau port. Aplikasi-aplikasi Emby akan menggunakannya ketika menghubungkan dari jarak jauh. Ini harus diisi apabila digunakan dengan sertifikat ssl khusus. Contoh: example.com.", + "LabelMinResumePercentage": "Persentase minimum untuk meneruskan", + "LabelMaxResumePercentage": "Persentase maksimum untuk meneruskan", + "LabelMinResumeDuration": "Durasi minimum penerusan (detik)", + "LabelMinResumePercentageHelp": "Media akan dianggap belum ditonton apabila berhenti menonton sebelum waktu ini", + "LabelMaxResumePercentageHelp": "Media akan dianggap selesai ditonton apabila berhenti menonton setelah waktu ini", + "LabelMinResumeDurationHelp": "Media yang lebih singkat dari ini tidak akan mendukung penerusan", + "HeaderStatus": "Status", + "Subscriptions": "Langganan", + "LabelEndingEpisodeNumber": "Ending episode number", + "LabelEndingEpisodeNumberHelp": "Hanya dibutuhkan untuk berkas multi episode", + "HeaderSupportTheTeam": "Dukung Tim Emby", + "HeaderSupportTheTeamHelp": "Bantu meneruskan pengembangan berkelanjutan proyek ini dengan membeli Emby Premiere. Sejumlah pemasukan kami akan kami kontribusikan ke alat-alat gratis yang kami gunakan.", + "DonationNextStep": "Setelah selesai, silakan kembali dan masukkan kunci Emby Premiere-mu yang kamu peroleh melalui email.", + "HeaderRunningTasks": "Tugas yang Sedang Berjalan", + "ButtonUpdateNow": "Perbarui Sekarang", + "PleaseUpdateManually": "Harap nonaktifkan Emby Server dan pasang versi terkini.", + "ServerUpToDate": "Emby Server sudah pada versi mutakhir", + "MessagePleaseRestartServerToFinishUpdating": "Harap mulai ulang server untuk menyelesaikan penerapan pembaruan.", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", + "HeaderForgotKey": "Lupa Kunci", + "LabelSupporterEmailAddress": "Alamat email yang digunakan untuk membeli kunci.", + "ButtonRetrieveKey": "Terima Kunci", + "LabelSupporterKey": "Kunci Emby Premiere (tempel dari email)", + "LabelSupporterKeyHelp": "Masukkan kunci Emby Premiere-mu untuk menikmati fitur tambahan.", + "MessageInvalidKey": "Kunci Emby Premiere kosong atau tidak sah.", + "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also have an active Emby Premiere subscription.", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Bahasa Pengunduhan", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Kirim pesan", + "HeaderSendMessage": "Kirim Pesan", + "ButtonSend": "Kirim", + "LabelMessageText": "Teks pesan", + "LabelMessageTitle": "Judul pesan", + "ButtonEditOtherUserPreferences": "Atur profil, gambar, dan preferensi pribadi pengguna ini.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Api Keys", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "Api Key", + "HeaderResumeSettings": "Resume Settings", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Activity", + "ButtonPurchase": "Beli", + "HeaderInstall": "Install", + "LabelSelectVersionToInstall": "Select version to install", + "LinkLearnMoreAboutSubscription": "Learn about Emby Premiere", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Developer Info", + "HeaderRevisionHistory": "Revision History", + "ButtonViewWebsite": "View website", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect", + "LabelDateAddedBehavior": "Date added behavior for new content", + "OptionDateAddedImportTime": "Use date scanned into the library", + "OptionDateAddedFileTime": "Use file creation date", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Library Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Camera upload path", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Parental Control", + "HeaderAccessSchedule": "Access Schedule", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Library Access", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "TitlePasswordReset": "Password Reset", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Allow media downloading", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Allow media conversion", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Zip Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Display name", + "OptionDownloadImagesInAdvance": "Download images in advance", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Thank you for supporting Emby.", + "FileReadCancelled": "The file read has been canceled.", + "FileNotFound": "File not found.", + "FileReadError": "An error occurred while reading the file.", + "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "HeaderNewApiKey": "Kode Api Baru", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "TextEnjoyBonusFeatures": "Enjoy Bonus Features", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "Untuk mengatur semua plugin, silahkan gunakan aplikasi web Emby.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Are you sure you wish to restart Emby Server?", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Running on http port {0}", + "LabelRunningOnPorts": "Running on http port {0}, and https port {1}", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Select Path", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Metadata Manager", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Change Content Type", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Home videos & photos", + "OptionBooks": "Books", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "New name", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Rename", + "HeaderPluginInstallation": "Plugin Installation", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Price: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Thank You", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Unlock App", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Add User", + "HeaderEmailAddress": "E-Mail Address", + "NumLocationsValue": "{0} folders", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Example: {0}", + "LabelFileOrUrl": "File or url", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Memproses pembuatan pratinjau video", + "LabelEnableDebugLogging": "Enable debug logging", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN networks", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "PreviousSection": "Previous chapter", + "PageNarrow": "Narrow", + "PageMaximized": "Maximized", + "PageBook": "Double page", + "LabelPageSize": "Page Size", + "PageSingle": "Single page", + "NextSection": "Next chapter", + "PositionInBook": "Position in the book", + "TableOfContents": "Table Of Contents", + "ZoomOut": "Zoom out", + "ZoomIn": "Zoom in", + "ZoomNone": "Default zoom", + "ZoomAutoFit": "Fit page", + "LayoutPage": "Single page", + "LayoutDouble": "Double page", + "LayoutVertical": "Vertical scroll", + "Margins": "Margins", + "PreviousPage": "Previous page", + "CurrentPage": "Current page", + "TotalPages": "Total pages", + "NextPage": "Next page", + "RightToLeft": "Right-to-left order", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "Legacy": "Legacy", + "LabelFolderScanningMode": "Folder scanning mode" +} diff --git a/strings/is.json b/strings/is.json new file mode 100644 index 0000000..7945b18 --- /dev/null +++ b/strings/is.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "You're Done!", + "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process of setting up Emby Server.", + "HeaderCreateYourFirstUser": "Create Your First User", + "ButtonQuickStartGuide": "Quick Start Guide", + "MoreUsersCanBeAddedLater": "Þú getur bætt við fleiri notendum síðar undir stjórnborðinu.", + "UserProfilesIntro": "Emby includes built-in support for user profiles, enabling each user to have their own display settings, playstate and parental controls.", + "WizardCompleted": "That's all we need for now. Emby has begun scanning your media library. Check out some of our apps, and then click Finish to view the Server Dashboard.", + "MessagePleaseAcceptTermsOfService": "Vinsamlegast samþykktu skilmálana og persónuverndar-stefnuna áður en lengra er haldið.", + "OptionIAcceptTermsOfService": "Ég samþykki skilmálana", + "SeeOurHwaGuide": "See our {0}hardware acceleration setup guide{1}.", + "HeaderEmbyServerReleaseNotes": "Emby Server Release Notes", + "AllowSubtitleDownloading": "Allow subtitle downloading", + "AllowSubtitleManagement": "Allow deletion of existing subtitle files", + "NewUserNameHelp": "This is how the user will appear on your server.", + "ChapterMarkers": "Chapter markers", + "LabelThumbnailImagesInterval": "Thumbnail images interval", + "ThumbnailImagesIntervalHelp": "More frequent thumbnails will result in a better experience, but will require more disk space and time to create the images.", + "LabelAuthProvider": "Auðkennisleið", + "AuthProviderHelp": "Stjórnendur nota alltaf innbyggða auðkennisleið til þess að koma í veg fyrir að þeir læsist úti.", + "HeaderNewUser": "New User", + "ChangeServerDisplayName": "Change Server Display Name", + "ShowAdvancedSettings": "Birta ítarlegar stillingar", + "ChangingMetadataImageSettingsNewContent": "Changes to metadata or artwork downloading settings will only apply to new content added to your library. To apply the changes to existing titles, you'll need to refresh their metadata manually.", + "AllowRemoteAccess": "Allow remote connections to this Emby Server.", + "AllowRemoteAccessHelp": "If unchecked, all remote connections will be blocked.", + "Alerts": "Alerts", + "LabelTrackTitleDisplay": "Embedded track title display", + "GenerateUserFriendlyTrackTitles": "Generate user friendly titles using track information", + "PreferOriginalTrackTitles": "Prefer embedded titles", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "EnableTranscodingThrottle": "Enable throttling", + "EnableTranscodingThrottleHelp": "Emby will dynamically adjust transcoding speed based in order to reduce CPU utilization.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} Image Fetchers", + "HeaderImageOptions": "Image Options", + "OptionBeta": "Tilrauna", + "RegisterWithPayPal": "Skráning með PayPal", + "LabelSyncTempPath": "Temporary file path", + "LabelSyncTempPathHelp": "Specify a custom working folder. Converted media created during the conversion process will be stored here.", + "LabelCustomCertificatePath": "Custom ssl certificate path", + "LabelCustomCertificatePathHelp": "Path to a PKCS #12 file containing a certificate and private key to enable TLS support on a custom domain.", + "HeaderSetupLibrary": "Setup Media Libraries", + "LabelTimeLimitHours": "Tímamörk (í klukkustundum)", + "HeaderPreferredMetadataLanguage": "Preferred Metadata Language", + "LabelSaveLocalMetadata": "Save artwork into media folders", + "LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put images next to media files where they can be easily accessed from outside of Emby. If disabled, images will be saved into the server's metadata folder.", + "TabAccess": "Aðgangur", + "HeaderDeviceAccess": "Aðgangur tækja", + "OptionEnableAccessFromAllDevices": "Virkja aðgang frá öllum tækjum", + "OptionEnableAccessToAllChannels": "Enable access to all channels", + "OptionEnableAccessToAllLibraries": "Enable access to all libraries", + "DeviceAccessHelp": "Filtering user device access will prevent them from using new devices until they've been approved here.", + "LabelDisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Emby database and displayed within seasons and series. This may cause significantly longer library scans.", + "MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.", + "LabelMaxParentalRating": "Maximum allowed parental rating", + "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.", + "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.", + "ChannelAccessHelp": "Select the channels to share with this user. Administrators will be able to edit all channels using the metadata manager.", + "ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG/PNG only.", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Click OK to send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, setup Emby Premiere in your Emby Server Dashboard under Help -> Emby Premiere, and it will be unlocked automatically.", + "TabMyPlugins": "My Plugins", + "TabCatalog": "Catalog", + "HeaderAutomaticUpdates": "Automatic Updates", + "Standard": "Standard", + "TabSupporterKey": "Emby Premiere Key", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Useful for private or hidden administrator accounts. The user will need to sign in manually by entering their username and password.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Disable this user", + "OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.", + "OptionAllowUserToManageServer": "Allow this user to manage the server", + "HeaderFeatureAccess": "Feature Access", + "OptionAllowMediaPlayback": "Allow media playback", + "AllLibraries": "All libraries", + "HeaderAllowMediaDeletionFrom": "Allow Media Deletion From", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Allow remote control of other users", + "OptionAllowRemoteSharedDevices": "Allow remote control of shared devices", + "OptionAllowRemoteSharedDevicesHelp": "Dlna devices are considered shared until a user begins controlling it.", + "OptionAllowLinkSharing": "Allow social media sharing", + "OptionAllowLinkSharingHelp": "Only web pages containing media information are shared. Media files are never shared publicly. Shares are time-limited and will expire after {0} days.", + "OptionRelease": "Official Release", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods, when no users are active.", + "LabelRunServerAtStartup": "Run server at startup", + "LabelRunServerAtStartupHelp": "This will start the Emby tray icon on Windows startup. If you've set up a Windows service then leave this unchecked and configure the service to run at startup.", + "ButtonSelectDirectory": "Select Directory", + "LabelCachePath": "Cache path", + "DefaultMetadataLangaugeDescription": "These are your defaults and can be customized on a per-library basis.", + "LabelCachePathHelp": "Specify a custom location for server cache files, such as images. Leave blank to use the server default.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Metadata path", + "LabelMetadataPathHelp": "Specify a location for downloaded artwork and metadata, or blank this out to revert to default. If changing this, you'll need to manually migrate the contents from the old location to the new location. If you ever manually change the contents of the metadata folder, you'll need to run the {0}scan metadata folder scheduled task{1}.", + "LabelTranscodingTempPath": "Transcoding temporary path", + "LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Refresh Guide Data", + "LabelNumberOfGuideDays": "Number of days of guide data to download", + "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels. Please note that regardless of how many days you choose, the data must exist in the source guide data in order for it to be downloaded. Some guide data sources only provide 24 hours. Emby Guide Data supports up to 14 days.", + "HeaderFetchImages": "Fetch Images", + "LabelMaxBackdropsPerItem": "Maximum number of backdrops per item", + "LabelMaxScreenshotsPerItem": "Maximum number of screenshots per item", + "LabelMinBackdropDownloadWidth": "Minimum backdrop download width", + "LabelMinScreenshotDownloadWidth": "Minimum screenshot download width", + "ButtonAddScheduledTaskTrigger": "Add Trigger", + "ButtonAdd": "Add", + "LabelTriggerType": "Trigger Type", + "OptionOnInterval": "On an interval", + "OptionAfterSystemEvent": "After a system event", + "LabelDay": "Day", + "LabelTime": "Time", + "LabelEvent": "Event", + "OptionWakeFromSleep": "Wake from sleep", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Enable real time monitoring", + "LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately, on supported file systems.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Friendly server name", + "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.", + "LabelPreferredDisplayLanguage": "Preferred display language", + "LabelPreferredDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LabelReadHowYouCanContribute": "Learn how you can contribute.", + "LabelCustomCss": "Custom css", + "LabelCustomCssHelp": "Apply your own custom css to the web interface.", + "LabelLocalHttpServerPortNumber": "Local http port number", + "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Emby's http server should bind to.", + "LabelPublicHttpPort": "Public http port number", + "LabelPublicHttpPortHelp": "The public port number that should be mapped to the local http port.", + "LabelPublicHttpsPort": "Public https port number", + "LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local https port.", + "RequireHttps": "Require https for external connections", + "RequireHttpsHelp": "If enabled, connections over http will be redirected to https.", + "LabelHttpsPort": "Local https port number", + "LabelHttpsPortHelp": "The tcp port number that Emby's https server should bind to.", + "LabelEnableAutomaticPortMap": "Enable automatic port mapping", + "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", + "LabelExternalDDNS": "External domain", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Min resume percentage", + "LabelMaxResumePercentage": "Max resume percentage", + "LabelMinResumeDuration": "Min resume duration (seconds)", + "LabelMinResumePercentageHelp": "Titles are assumed unplayed if stopped before this time", + "LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time", + "LabelMinResumeDurationHelp": "Titles shorter than this will not be resumable", + "HeaderStatus": "Status", + "Subscriptions": "Subscriptions", + "LabelEndingEpisodeNumber": "Ending episode number", + "LabelEndingEpisodeNumberHelp": "Only required for multi-episode files", + "HeaderSupportTheTeam": "Support the Emby Team", + "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by purchasing Emby Premiere. A portion of all income will be contributed to other free tools we depend on.", + "DonationNextStep": "Once complete, please return and enter your Emby Premiere key, which you will receive by email.", + "HeaderRunningTasks": "Running Tasks", + "ButtonUpdateNow": "Update Now", + "PleaseUpdateManually": "Please shutdown Emby Server and install the latest version.", + "ServerUpToDate": "Emby Server is up to date", + "MessagePleaseRestartServerToFinishUpdating": "Please restart the server to finish applying updates.", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", + "HeaderForgotKey": "Forgot Key", + "LabelSupporterEmailAddress": "The email address that was used to purchase the key.", + "ButtonRetrieveKey": "Retrieve Key", + "LabelSupporterKey": "Emby Premiere key (paste from email)", + "LabelSupporterKeyHelp": "Enter your Emby Premiere key to start enjoying additional benefits.", + "MessageInvalidKey": "Emby Premiere key is missing or invalid.", + "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also have an active Emby Premiere subscription.", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Send message", + "HeaderSendMessage": "Send Message", + "ButtonSend": "Send", + "LabelMessageText": "Message text", + "LabelMessageTitle": "Message title", + "ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Api Keys", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "Api Key", + "HeaderResumeSettings": "Resume Settings", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Activity", + "ButtonPurchase": "Purchase", + "HeaderInstall": "Install", + "LabelSelectVersionToInstall": "Select version to install", + "LinkLearnMoreAboutSubscription": "Learn about Emby Premiere", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Developer Info", + "HeaderRevisionHistory": "Revision History", + "ButtonViewWebsite": "View website", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect", + "LabelDateAddedBehavior": "Date added behavior for new content", + "OptionDateAddedImportTime": "Use date scanned into the library", + "OptionDateAddedFileTime": "Use file creation date", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Library Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Camera upload path", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Parental Control", + "HeaderAccessSchedule": "Access Schedule", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Library Access", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "TitlePasswordReset": "Password Reset", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Allow media downloading", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Allow media conversion", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Zip Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Display name", + "OptionDownloadImagesInAdvance": "Download images in advance", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Thank you for supporting Emby.", + "FileReadCancelled": "The file read has been canceled.", + "FileNotFound": "File not found.", + "FileReadError": "An error occurred while reading the file.", + "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "HeaderNewApiKey": "New Api Key", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "TextEnjoyBonusFeatures": "Enjoy Bonus Features", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "To manage plugins, please use the Emby web app.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Are you sure you wish to restart Emby Server?", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Running on http port {0}", + "LabelRunningOnPorts": "Running on http port {0}, and https port {1}", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Select Path", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Metadata Manager", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Change Content Type", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Home videos & photos", + "OptionBooks": "Books", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "New name", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Rename", + "HeaderPluginInstallation": "Plugin Installation", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Price: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Thank You", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Unlock App", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Add User", + "HeaderEmailAddress": "E-Mail Address", + "NumLocationsValue": "{0} folders", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Example: {0}", + "LabelFileOrUrl": "File or url", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Enable debug logging", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN networks", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/it.json b/strings/it.json new file mode 100644 index 0000000..03a7ce3 --- /dev/null +++ b/strings/it.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Finito!", + "ThisWizardWillGuideYou": "Questa procedura ti guiderà attraverso il processo di impostazione dell'Emby Server.", + "HeaderCreateYourFirstUser": "Crea il tuo primo utente", + "ButtonQuickStartGuide": "Guida Rapida", + "MoreUsersCanBeAddedLater": "Altri utenti possono essere aggiunti in seguito nelle impostazioni di Emby Server.", + "UserProfilesIntro": "Emby include il supporto integrato per i profili utente, che permette a ogni utente di avere le proprie impostazioni di visualizzazione, stato di riproduzione e controlli parentali.", + "WizardCompleted": "Per ora è tutto quello che ci serve. Emby ha iniziato la scansione della libreria multimediale. Dai un'occhiata ad alcune delle nostre applicazioni e poi clicca su Fine per visualizzare il pannello di controllo del server.", + "MessagePleaseAcceptTermsOfService": "Accetta le condizioni d'uso e l'informativa sulla privacy prima di continuare.", + "OptionIAcceptTermsOfService": "Accetto le condizioni d'uso", + "SeeOurHwaGuide": "Consulta la nostra {0}guida alla configurazione dell'accelerazione hardware{1}.", + "HeaderEmbyServerReleaseNotes": "Note di versione di Emby Server", + "AllowSubtitleDownloading": "Consenti il download dei sottotitoli", + "AllowSubtitleManagement": "Consenti l'eliminazione di sottotitoli esistenti", + "NewUserNameHelp": "L'utente apparirà sul tuo server in questo modo.", + "ChapterMarkers": "Marcatori di capitolo", + "LabelThumbnailImagesInterval": "Intervallo di miniatura delle immagini", + "ThumbnailImagesIntervalHelp": "Miniature più frequenti si tradurranno in un'esperienza migliore, ma richiederanno più spazio di archiviazione e tempo per creare le immagini.", + "LabelAuthProvider": "Fornitore di autenticazione", + "AuthProviderHelp": "Gli amministratori utilizzano sempre il fornitore predefinito di Emby per assicurarti di non rimanere bloccato.", + "HeaderNewUser": "Nuovo utente", + "ChangeServerDisplayName": "Cambia nome visualizzato del server", + "ShowAdvancedSettings": "Mostra impostazioni avanzate", + "ChangingMetadataImageSettingsNewContent": "Le modifiche ai metadati o alle impostazioni di download delle illustrazioni verranno applicate solo ai nuovi contenuti aggiunti alla libreria. Per applicare le modifiche ai titoli esistenti, devi aggiornare manualmente i metadati.", + "AllowRemoteAccess": "Consenti connessioni remote a questo Emby Server.", + "AllowRemoteAccessHelp": "Se deselezionato, tutte le connessioni remote saranno bloccate.", + "Alerts": "Avvisi", + "LabelTrackTitleDisplay": "Visualizzazione titolo del brano incorporato", + "GenerateUserFriendlyTrackTitles": "Genera titoli comprensibili utilizzando le informazioni del brano", + "PreferOriginalTrackTitles": "Dai la precedenza a titoli incorporati", + "TrackTitleDisplayHelp": "Scegli la visualizzazione del titolo dell'audio incorporato e delle tracce dei sottotitoli. Non si consiglia di preferire l'incorporato a meno che tu non stia curando manualmente le informazioni sulla traccia incorporata.", + "EnableTranscodingThrottle": "Attiva il throttling", + "EnableTranscodingThrottleHelp": "Emby regolerà dinamicamente la velocità di conversione per ridurre l'utilizzo della CPU.", + "HeaderTypeMetadataDownloaders": "{0} fornitori di metadati", + "HeaderTypeImageFetchers": "{0} Fornitori delle immagini", + "HeaderImageOptions": "Opzioni immagine", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registrati con PayPal", + "LabelSyncTempPath": "Percorso dei file temporanei", + "LabelSyncTempPathHelp": "Indica una cartella di lavoro personalizzata. I media convertiti creati durante il processo di conversione saranno memorizzati qui.", + "LabelCustomCertificatePath": "Percorso certificato ssl personalizzato", + "LabelCustomCertificatePathHelp": "Percorso del file PKCS #12 contenente il certificato e la chiave privata per abilitare il supporto TLS in un dominio personalizzato.", + "HeaderSetupLibrary": "Imposta le librerie multimediali", + "LabelTimeLimitHours": "Tempo limite (ore)", + "HeaderPreferredMetadataLanguage": "Lingua preferita per i metadati", + "LabelSaveLocalMetadata": "Salva immagini nelle cartelle multimediali", + "LabelSaveLocalMetadataHelp": "Il salvataggio delle immagini nelle cartelle dei media inserirà i file immagine adiacenti ai file multimediali, dove saranno facilmente accessibili al di fuori di Emby. Se disattivato, le immagini saranno salvate nella cartella metadati del server.", + "TabAccess": "Accesso", + "HeaderDeviceAccess": "Accesso al dispositivo", + "OptionEnableAccessFromAllDevices": "Attiva l'accesso da tutti i dispositivi", + "OptionEnableAccessToAllChannels": "Attiva l'accesso a tutti i canali", + "OptionEnableAccessToAllLibraries": "Attiva l'accesso a tutte le librerie", + "DeviceAccessHelp": "Filtrare l'accesso ai dispositivi degli utenti impedirà loro di utilizzare nuovi dispositivi fino a quando non saranno stati approvati.", + "LabelDisplayMissingEpisodesWithinSeasons": "Visualizza gli episodi mancanti nelle stagioni", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Questo deve anche essere attivato per le librerie TV nella configurazione di Emby Server.", + "ImportMissingEpisodesHelp": "Se attivato, le informazioni relative agli episodi mancanti saranno importate nel database di Emby e mostrate all'interno di serie e stagioni. Questo può causare scansioni della libreria più lente.", + "MessageEnablingOptionLongerScans": "L'attivazione di questa opzione può rallentare significativamente le scansioni della libreria.", + "LabelMaxParentalRating": "Classificazione parentale massima consentita", + "MaxParentalRatingHelp": "I contenuti con classificazione più elevata saranno nascosti a questo utente.", + "LibraryAccessHelp": "Seleziona le cartelle multimediali da condividere con questo utente. Gli amministratori saranno in grado di modificare tutte le cartelle utilizzando il gestore dei metadati.", + "ChannelAccessHelp": "Seleziona i canali da condividere con questo utente. Gli amministratori saranno in grado di modificare tutti i canali usando il gestore dei metadati.", + "ImageUploadAspectRatioHelp": "Proporzione 1:1 raccomandata. Solo JPG/PNG.", + "AlreadyPaidHelp1": "Se hai già pagato per installare una versione precedente di Media Browser per Android, non devi pagare nuovamente per attivare questa applicazione. Fai clic su OK per inviarci un messaggio di posta a {0} e provvederemo ad attivarla per te.", + "AlreadyPaidHelp2": "Hai Emby Premiere? Annulla questa finestra, configura Emby Premiere dal pannello di controllo di Emby Server in Aiuto > Emby Premiere, e sarà sbloccato automaticamente.", + "TabMyPlugins": "I miei plugin", + "TabCatalog": "Catalogo", + "HeaderAutomaticUpdates": "Aggiornamenti automatici", + "Standard": "Standard", + "TabSupporterKey": "Seriale Emby Premiere", + "OptionHideUserLocal": "Nascondi questo utente dalle schermate di accesso sulla rete locale", + "OptionHideUserRemote": "Nascondi questo utente dalle schermate di accesso quando connesso in remoto", + "OptionHideUserFromLoginHelp": "Utile per account nascosti o amministratore. L'utente dovrà accedere manualmente con le proprie credenziali.", + "HideFromUnusedDevices": "Nascondi questo utente dalle schermate di accesso sui dispositivi a cui non hanno mai effettuato l'accesso", + "OptionDisableUser": "Disattiva questo utente", + "OptionDisableUserHelp": "Se disattivato, il server non sarà disponibile per questo utente. Le connessioni esistenti verranno terminate.", + "OptionAllowUserToManageServer": "Consenti a questo utente di gestire il server", + "HeaderFeatureAccess": "Accesso alle funzionalità", + "OptionAllowMediaPlayback": "Consenti la riproduzione dei media", + "AllLibraries": "Tutte le librerie", + "HeaderAllowMediaDeletionFrom": "Attiva l'eliminazione dei media da", + "LiveTVRecordingManagement": "Gestione delle registrazioni TV", + "OptionAllowRemoteControlOthers": "Consenti il controllo remoto di altri utenti", + "OptionAllowRemoteSharedDevices": "Consenti il controllo remoto dei dispositivi condivisi", + "OptionAllowRemoteSharedDevicesHelp": "I dispositivi DLNA sono considerati condivisi fino a quando un utente non inizia a controllarli.", + "OptionAllowLinkSharing": "Consenti la condivisione dei media", + "OptionAllowLinkSharingHelp": "Solo le pagine web contenente informazioni sui media sono condivise. I file media non vengono mai condivisi pubblicamente. Le condivisioni scadono dopo {0} giorni.", + "OptionRelease": "Versione ufficiale", + "LabelAllowServerAutoRestartPlugin": "Consenti al server di riavviarsi automaticamente per applicare gli aggiornamenti dei plugin", + "LabelAllowServerAutoRestartServerOrPlugin": "Consenti al server di riavviarsi automaticamente per applicare gli aggiornamenti del server o dei plugin", + "LabelAllowServerAutoRestartHelp": "Il server si riavvierà soltanto quando nessun utente è connesso.", + "LabelRunServerAtStartup": "Esegui il server all'avvio di Windows", + "LabelRunServerAtStartupHelp": "Questo avvierà l'icona di Emby nella barra delle applicazioni all'avvio di Windows. Se hai impostato un servizio Windows, lascia questa opzione deselezionata e configura il servizio da eseguire all'avvio.", + "ButtonSelectDirectory": "Seleziona cartella", + "LabelCachePath": "Percorso cache", + "DefaultMetadataLangaugeDescription": "Queste sono le tue impostazioni predefinite e possono essere personalizzate per ogni libreria.", + "LabelCachePathHelp": "Indica un percorso personalizzato per i file della cache del server, ad esempio le immagini. Lascia vuoto per usare il server predefinito.", + "LabelDefaultRecordingFolder": "Cartella di registrazione predefinita", + "LabelMovieRecordingFolder": "Cartella di registrazione dei filmati", + "LabelSeriesRecordingFolder": "Cartella di registrazione delle serie", + "SeriesRecordingFolderHelp": "(Facoltativo). Seleziona una libreria in cui salvare le registrazioni delle serie. Deve essere una libreria creata in Emby library setup con il tipo di contenuto impostato su programmi TV o contenuto misto.", + "HeaderProgramData": "Dati del programma", + "RecordingFolderHelp": "Seleziona la libreria predefinita in cui salvare le registrazioni. Deve essere una libreria creata in nella configurazione delle librerie di Emby con il tipo di contenuto impostato a contenuto misto.", + "MovieRecordingFolderHelp": "(Facoltativo). Seleziona una libreria in cui salvare le registrazioni dei film. Deve essere una libreria creata nella configurazione delle librerie di Emby con il tipo di contenuto impostato su film o contenuto misto.", + "LabelMetadataPath": "Percorso metadati", + "LabelMetadataPathHelp": "Indica una posizione per le immagini e i metadati scaricati, oppure cancella questa opzione per tornare all'impostazione predefinita. Se si cambia questo percorso, è necessario migrare manualmente il contenuto dalla vecchia alla nuova posizione. Se si modifica manualmente il contenuto della cartella dei metadati, è necessario eseguire {0}l'attività pianificata di scansione cartella metadati{1}.", + "LabelTranscodingTempPath": "Percorso temporaneo della conversione", + "LabelTranscodingTempPathHelp": "Questa cartella contiene i file di lavoro utilizzati dal codificatore. Indica un percorso personalizzato, oppure lascia vuoto per utilizzare l'impostazione predefinita all'interno della cartella dei dati del server.", + "GenerateVideoPreviewThumbnailsHelp": "Le miniature dell'anteprima video forniscono aggiornamenti in tempo reale durante la ricerca nelle applicazioni supportate. La generazione delle miniature può richiedere molto tempo, causare un utilizzo elevato della CPU e occupare maggiore spazio nel disco.", + "AsAScheduledTask": "come attività pianificata", + "AsAScheduledTaskAndMediaAdded": "come attività pianificata e quando viene aggiunto il supporto", + "ButtonRefreshGuideData": "Aggiorna la guida", + "LabelNumberOfGuideDays": "Giorni della guida TV da scaricare", + "LabelNumberOfGuideDaysHelp": "Il download di più giorni della guida consente di pianificare con maggiore anticipo e di visualizzare un maggior numero di elenchi, ma richiede anche più tempo per il download. Auto sceglierà in base al numero dei canali. Tieni presente che i dati devono esistere nel fornitore di dati della guida per essere scaricati, indipendentemente dal numero di giorni scelti. Alcuni fornitori di dati della guida forniscono solo 24 ore. Emby Guide Data supporta fino a 14 giorni.", + "HeaderFetchImages": "Recupera le immagini", + "LabelMaxBackdropsPerItem": "Numero massimo di sfondi per elemento", + "LabelMaxScreenshotsPerItem": "Numero massimo di schermate per elemento", + "LabelMinBackdropDownloadWidth": "Larghezza minima dello sfondo da scaricare", + "LabelMinScreenshotDownloadWidth": "Larghezza minima della schermata da scaricare", + "ButtonAddScheduledTaskTrigger": "Aggiungi operazione", + "ButtonAdd": "Aggiungi", + "LabelTriggerType": "Tipo evento", + "OptionOnInterval": "Su intervallo", + "OptionAfterSystemEvent": "Dopo un evento di sistema", + "LabelDay": "Giorno", + "LabelTime": "Ora", + "LabelEvent": "Evento", + "OptionWakeFromSleep": "Riattivazione", + "Every": "Ogni", + "LabelEnableRealtimeMonitor": "Attiva il monitoraggio in tempo reale", + "LabelEnableRealtimeMonitorHelp": "Le modifiche ai file saranno applicate immediatamente, sui file system supportati.", + "Community": "Comunità", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Nome condiviso del server", + "LabelFriendlyServerNameHelp": "Questo nome è usato per identificare il server sulla rete. Se lasciato vuoto sarà usato il nome del computer.", + "LabelPreferredDisplayLanguage": "Lingua interfaccia preferita", + "LabelPreferredDisplayLanguageHelp": "La traduzione di Emby è un progetto attivo.", + "LabelReadHowYouCanContribute": "Scopri come puoi contribuire.", + "LabelCustomCss": "CSS personalizzato", + "LabelCustomCssHelp": "Applica il tuo CSS personale all'interfaccia web.", + "LabelLocalHttpServerPortNumber": "Porta HTTP locale", + "LabelLocalHttpServerPortNumberHelp": "Numero di porta TCP da associare al server HTTP di Emby.", + "LabelPublicHttpPort": "Porta HTTP pubblica", + "LabelPublicHttpPortHelp": "Numero di porta pubblica che dovrebbe essere mappato sulla porta HTTP locale.", + "LabelPublicHttpsPort": "Porta HTTPS pubblica", + "LabelPublicHttpsPortHelp": "Numero della porta pubblica che dovrebbe essere mappato sulla porta HTTPS locale.", + "RequireHttps": "Richiedi HTTPS per connessioni esterne", + "RequireHttpsHelp": "Se attivata, le connessione attraverso HTTP verranno reinderizzate tramite HTTPS.", + "LabelHttpsPort": "Porta HTTPS locale", + "LabelHttpsPortHelp": "Numero della porta TCP da associare al server HTTPS di Emby.", + "LabelEnableAutomaticPortMap": "Attiva la mappatura automatica delle porte", + "LabelEnableAutomaticPortMapHelp": "Tenta di mappare automaticamente la porta pubblica sulla porta locale tramite UPnP. Questo potrebbe non funzionare con alcuni modelli di router.", + "LabelExternalDDNS": "Dominio esterno", + "LabelExternalDDNSHelp": "Se disponi di un DNS dinamico o di un nome di dominio, inseriscilo qui, senza protocollo o porta. Le applicazioni Emby lo utilizzeranno quando si connetteranno da remoto. Questo campo è obbligatorio se utilizzato con un certificato SSL personalizzato. Esempio: miodominio.com.", + "LabelMinResumePercentage": "Percentuale minima per riprendere", + "LabelMaxResumePercentage": "Percentuale massima per riprendere", + "LabelMinResumeDuration": "Durata minima per riprendere (secondi)", + "LabelMinResumePercentageHelp": "I filmati vengono considerati non riprodotti se fermati entro questo tempo", + "LabelMaxResumePercentageHelp": "I filmati vengono considerati riprodotti se fermati dopo questo tempo", + "LabelMinResumeDurationHelp": "I filmati più corti non saranno riprendibili", + "HeaderStatus": "Stato", + "Subscriptions": "Sottoscrizioni", + "LabelEndingEpisodeNumber": "Numero ultimo episodio", + "LabelEndingEpisodeNumberHelp": "Richiesto solo se ci sono più file per episodio", + "HeaderSupportTheTeam": "Supporta gli sviluppatori di Emby", + "HeaderSupportTheTeamHelp": "Aiuta ad assicurare il continuo sviluppo del progetto acquistando Emby Premiere. Una parte del guadagno verrà donata ad altri strumenti gratuiti dai quali dipendiamo.", + "DonationNextStep": "Una volta completata, torna qui e inserisci la tua chiave Emby Premiere che riceverai tramite e-mail.", + "HeaderRunningTasks": "Operazioni in corso", + "ButtonUpdateNow": "Aggiorna adesso", + "PleaseUpdateManually": "Arresta Emby Server e installa l'ultima versione.", + "ServerUpToDate": "Emby Server è aggiornato", + "MessagePleaseRestartServerToFinishUpdating": "Riavvia il server per completare l'applicazione degli aggiornamenti.", + "LabelDownMixAudioScale": "Boost audio durante il downmix", + "LabelDownMixAudioScaleHelp": "Aumenta il volume durante il downmix. Impostalo su 1 per mantenere il volume originale.", + "HeaderForgotKey": "Chiave dimenticata", + "LabelSupporterEmailAddress": "L'indirizzo di posta che è stato utilizzato per acquistare la chiave.", + "ButtonRetrieveKey": "Recupera chiave", + "LabelSupporterKey": "Chiave Emby Premiere (incollala dalla posta elettronica)", + "LabelSupporterKeyHelp": "Inserisci la tua chiave Emby Premiere per avere subito tutti i privilegi aggiuntivi.", + "MessageInvalidKey": "La chiave Emby Premiere è mancante o non valida.", + "ErrorMessageInvalidKey": "Per far sì che qualunque contenuto premium venga registrato, devi avere anche una sottoscrizione Emby Premiere attiva.", + "LabelSkipIfGraphicalSubsPresent": "Salta se il video contiene già sottotitoli incorporati corrispondenti alla lingua scaricata", + "LabelSkipIfGraphicalSubsPresentHelp": "Mantenere le versioni testuali dei sottotitoli si tradurrà in una riproduzione più efficiente e diminuirà la probabilità che sia necessaria la conversione video.", + "HeaderDownloadLanguages": "Scarica lingue", + "LabelSkipIfAudioTrackPresent": "Ignora se la traccia audio predefinita corrisponde alla lingua di download", + "LabelSkipIfAudioTrackPresentHelp": "Deseleziona questa opzione per assicurare che tutti i video abbiano i sottotitoli, a prescindere dalla lingua audio.", + "SendMessage": "Invio messaggio", + "HeaderSendMessage": "Invia messaggio", + "ButtonSend": "Invia", + "LabelMessageText": "Testo del messaggio", + "LabelMessageTitle": "Titolo del messaggio", + "ButtonEditOtherUserPreferences": "Modifica questo utente di profilo, l'immagine e le preferenze personali.", + "LabelLoginDisclaimer": "Avviso login", + "LabelLoginDisclaimerHelp": "Questo verrà visualizzato nella parte inferiore della pagina di accesso.", + "HeaderTranscodingTemporaryFiles": "Convertendo file temporanei", + "HeaderApiKeys": "Chiavi API", + "HeaderApiKeysHelp": "Le applicazioni esterne devono avere una chiave API per comunicare con Emby Server. Le chiavi sono emesse accedendo con un account Emby, o fornendo manualmente una chiave all'applicazione.", + "HeaderApiKey": "Chiave API", + "HeaderResumeSettings": "Riprendi impostazioni", + "HeaderFetcherSettings": "Impostazioni dei fornitori", + "HeaderActivity": "Attività", + "ButtonPurchase": "Acquista", + "HeaderInstall": "Installa", + "LabelSelectVersionToInstall": "Selezionare la versione da installare", + "LinkLearnMoreAboutSubscription": "Informazioni su Emby Premiere", + "MessagePluginRequiresSubscription": "Questo plugin richiederà una sottoscrizione a Emby Premiere dopo i 14 giorni di prova gratuita.", + "MessagePremiumPluginRequiresMembership": "Questo plugin richiederà una sottoscrizione a Emby Premiere per l'acquisto dopo i 14 giorni di prova gratuita.", + "HeaderDeveloperInfo": "Info sviluppatore", + "HeaderRevisionHistory": "Cronologia delle revisioni", + "ButtonViewWebsite": "Visualizza sito web", + "OptionSaveMetadataAsHidden": "Salvare i metadati e le immagini come file nascosti", + "LabelConnectEmail": "(Facoltativo) Indirizzo e-mail di Emby Connect", + "LabelConnectEmailHelp": "Opzionalmente, collega questo utente locale a un account Emby Connect esistente per consentire un facile accesso da qualsiasi applicazione Emby senza dover conoscere l'indirizzo IP del server.", + "ButtonLearnMoreAboutEmbyConnect": "Scopri di più su Emby Connect", + "LabelDateAddedBehavior": "Data di comportamento per i nuovi contenuti", + "OptionDateAddedImportTime": "Utilizza la data scansionato in libreria", + "OptionDateAddedFileTime": "Utilizzare file di data di creazione", + "LabelDateAddedBehaviorHelp": "Se un valore di metadati è presente, sarà sempre utilizzato prima una di queste opzioni.", + "HeaderLibrarySettings": "Impostazioni della libreria", + "HeaderAutomaticSubtitleDownloads": "Download automatici dei sottotitoli", + "HeaderCameraUploadHelp": "Le applicazioni di Emby possono caricare automaticamente le foto scattate dai tuoi dispositivi mobile nell'Emby Server.", + "LabelCameraUploadPath": "Percorso di upload fotocamera", + "LabelCameraUploadPathHelp": "Seleziona un percorso di caricamento personalizzato. Questo percorso sovrascrive le impostazioni predefinite impostate nella sezione Caricamento della fotocamera. Se viene lasciato vuoto, verrà utilizzata una cartella predefinita. Se si utilizza un percorso personalizzato, sarà necessario aggiungerlo come libreria nella configurazione della libreria di Emby.", + "DefaultCameraUploadPathHelp": "Seleziona un percorso di caricamento personalizzato. Se lasciato vuoto, verrà utilizzata una cartella predefinita. Se si utilizza un percorso personalizzato, sarà necessario aggiungerlo come libreria nell'impostazione della libreria Emby.", + "LabelCreateCameraUploadSubfolder": "Creare una sottocartella per ogni dispositivo", + "LabelCreateCameraUploadSubfolderHelp": "Cartelle specifici possono essere assegnati a un dispositivo facendo clic su di esso dalla pagina Dispositivi.", + "LabelCustomDeviceDisplayNameHelp": "Fornisci un nome di visualizzazione personalizzato o lascia vuoto per utilizzare il nome riportato dal dispositivo.", + "TabParentalControl": "Controllo parentale", + "HeaderAccessSchedule": "Accesso pianificato", + "HeaderAccessScheduleHelp": "Crea un accesso pianificato per limitare l'accesso a determinate ore.", + "HeaderLibraryAccess": "Accesso libreria", + "HeaderChannelAccess": "Accesso canali", + "LabelForgotPasswordUsernameHelp": "Inserisci il tuo nome utente, se lo ricordi.", + "TitlePasswordReset": "Ripristino password", + "HeaderBlockItemsWithNoRating": "Blocca gli elementi con informazioni di valutazione assenti o non riconosciute", + "LabelBlockContentWithTags": "Limitare gli articoli con tag", + "LabelTagRestrictionMode": "Modalità di restrizione dei tag", + "BlockItemsWithTheseTags": "Blocca gli elementi con questi tag", + "AllowItemsWithTheseTags": "Consenti solo gli elementi con questi tag", + "OptionAllowContentDownloading": "Consenti download dei media", + "LabelNewUserNameHelp": "I nomi utente possono contenere lettere (a...z), numeri (0...9), trattini (-), trattino basso (_), apostrofo ('), e punteggiatura (.,)", + "HeaderThisUserIsCurrentlyDisabled": "Questo utente è attualmente disattivato. Per attivarlo, consulta l'opzione in fondo a questa pagina.", + "OptionAllowSyncTranscoding": "Attiva il download dei media che necessitano di conversione", + "AllowMediaConversion": "Consenti la conversione dei media", + "AllowMediaConversionHelp": "Concedi o nega l'accesso alla funzione di conversione dei media.", + "OptionAllowAudioPlaybackTranscoding": "Attiva la conversione dell'audio a un formato compatibile, se necessario, durante la riproduzione dei media", + "OptionAllowVideoPlaybackTranscoding": "Attiva la conversione del video a un formato compatibile, se necessario, durante la riproduzione dei media", + "OptionAllowVideoPlaybackRemuxing": "Consenti di cambiare i formati dei contenitori, se necessario, durante la riproduzione dei media", + "OptionAllowMediaPlaybackTranscodingHelp": "La limitazione dell'accesso alla conversione disattiva la selezione della qualità e può causare errori di riproduzione nelle applicazioni Emby a causa di formati multimediali non compatibili o di una larghezza di banda di rete insufficiente.", + "LabelRemoteClientBitrateLimit": "Limite di bitrate per la trasmissione da Internet (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Un limite facoltativo del bitrate della trasmissione per tutti i dispositivi di rete. Questa opzione è utile per impedire ai dispositivi di richiedere un bitrate superiore a quello in grado di gestire la connessione a Internet. Questo può provocare un aumento del carico della CPU sul server per convertire i video al volo a un bitrate inferiore.", + "LabelUserRemoteClientBitrateLimitHelp": "Questo sovrascriverà il valore globale predefinito impostato nelle impostazioni avanzate del server.", + "OptionEnableFullSpeedConversion": "Attiva la conversione a velocità piena", + "OptionEnableFullSpeedConversionHelp": "Per impostazione predefinita, le conversioni vengono eseguite a bassa velocità per minimizzare il consumo di risorse.", + "OptionEnableAutomaticServerUpdates": "Attiva aggiornamenti automatici del server", + "HeaderTVSources": "Sorgenti TV", + "HeaderAddTvSource": "Aggiungi sorgente TV", + "LabelTunerIpAddress": "Indirizzo IP sintonizzatore", + "HeaderGuideProviders": "Sorgente dati guida TV", + "HeaderAddGuideSource": "Aggiungi fonte per la guida", + "LabelZipCode": "CAP", + "LabelLineup": "Palinsesto", + "LabelImportOnlyFavoriteChannels": "Limita ai canali marcati come preferiti", + "ImportFavoriteChannelsHelp": "Se attivata, verranno importati soltanto i canali che sono contrassegnati come preferiti sul dispositivo di sintonizzazione.", + "HeaderDefaultRecordingSettings": "Impostazioni di registrazione predefinite", + "LabelDisplayName": "Nome visualizzato", + "OptionDownloadImagesInAdvance": "Scarica preventivamente le immagini", + "OptionDownloadImagesInAdvanceHelp": "Per impostazione predefinita, la maggior parte delle immagini non viene scaricata da Internet finché non viene visualizzata da un'applicazione Emby. Attiva questa opzione per scaricare tutte le immagini in anticipo, man mano che vengono importati nuovi media. Ciò può causare scansioni della libreria significativamente più lunghe.", + "MessageThankYouForSupporting": "Grazie per il tuo sostegno a Emby.", + "FileReadCancelled": "La lettura del file è stata annullata.", + "FileNotFound": "File non trovato.", + "FileReadError": "Errore durante la lettura del file.", + "NoPluginConfigurationMessage": "Questo plugin non ha impostazioni da configurare.", + "HeaderNewApiKey": "Nuova chiave API", + "HeaderNewApiKeyHelp": "Concedere un permesso per applicazione al fine di comunicare con Emby Server.", + "MessageKeyEmailedTo": "Chiave inviata all'email {0}.", + "HeaderConfirmation": "Conferma", + "MessageKeyUpdated": "Grazie. La tua chiave Emby Premiere è stata aggiornata.", + "MessageKeyRemoved": "Grazie. La tua chiave Emby Premiere è stata rimossa.", + "TextEnjoyBonusFeatures": "Goditi le caratteristiche aggiuntive", + "MessageErrorLoadingSupporterInfo": "Si è verificato un errore nel caricamento delle informazioni di Emby Premiere. Riprova più tardi.", + "ValueTimeLimitSingleHour": "Tempo limite: 1 ora", + "ValueTimeLimitMultiHour": "Tempo limite: {0} ore", + "General": "Generale", + "HeaderScreenSavers": "Salva schermo", + "Reporting": "Segnalazione", + "LabelStopping": "Sto fermando", + "HeaderSelectCertificatePath": "Seleziona il percorso del certificato", + "HeaderSupporterBenefit": "Un abbonamento attivo Emby Premiere offre ulteriori vantaggi, come l'accesso a Emby DVR, i media offline, i plugin premium e altro ancora. {0} Ulteriori informazioni {1}.", + "LabelAbortedByServerShutdown": "(Interrotto dallo spegnimento del server)", + "LabelScheduledTaskLastRan": "Ultima esecuzione {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Elimina operazione pianificata", + "MessageDeleteTaskTrigger": "Sei sicuro di voler eliminare questo evento?", + "MessageNoPluginsDueToAppStore": "Per gestire i plugin, usa l'applicazione web di Emby.", + "LabelVersionInstalled": "{0} installato", + "HeaderSelectServerCachePath": "Seleziona percorso cache del server", + "HeaderSelectTranscodingPath": "Seleziona percorso temporaneo di conversione", + "HeaderSelectMetadataPath": "Seleziona percorso dei metadati", + "HeaderSelectServerCachePathHelp": "Sfoglia o inserisci il percorso da usare per i file di cache del server. La cartella deve essere scrivibile.", + "HeaderSelectTranscodingPathHelp": "Sfoglia o inserisci il percorso da usare per i file temporanei della conversione. La cartella deve essere scrivibile.", + "HeaderSelectMetadataPathHelp": "Sfoglia o inserisci il percorso in cui vuoi archiviare i metadati. La cartella deve essere scrivibile.", + "MessageConfirmRestart": "Sei sicuro di voler riavviare Emby Server?", + "MessageConfirmShutdown": "Sei sicuro di voler spegnere Emby Server?", + "LabelLocalAccessUrl": "Accesso locale (LAN): {0}", + "LabelRemoteAccessUrl": "Accesso remoto (WAN): {0}", + "LabelRunningOnPort": "In esecuzione sulla porta HTTP {0}", + "LabelRunningOnPorts": "In esecuzione sulla porta HTTP {0} e sulla porta HTTPS {1}", + "LabelCurrentPath": "Percorso attuale", + "HeaderSelectMediaPath": "Seleziona il percorso", + "HeaderSelectPath": "Seleziona percorso", + "MessageDirectoryPickerInstruction": "I percorsi di rete possono essere inseriti manualmente nel caso in cui il pulsante Rete non riesce a individuare i vostri dispositivi. Ad esempio, {0} o {1}.", + "MessageDirectoryPickerBSDInstruction": "Per BSD, potresti dover configurare l'archiviazione interna nel tuo FreeNAS Jail per consentire a Emby di accedervi.", + "MessageDirectoryPickerLinuxInstruction": "Per Linux su Arch Linux, CentOS, Debian, Fedora, OpenSuse o Ubuntu, devi concedere all'utente Emby almeno i permessi di lettura nelle unità di archiviazione.", + "MetadataManager": "Gestisci metadati", + "OptionBlockLiveTvChannels": "Canali TV in onda", + "OptionBlockChannelContent": "Contenuto dei canali Internet", + "ButtonRevoke": "Revoca", + "MessageConfirmRevokeApiKey": "Sei sicuro di voler revocare questa chiave API? La connessione dell'applicazione all'Emby Server terminerà immediatamente.", + "HeaderConfirmRevokeApiKey": "Revoca chiave API", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Accetta i termini di servizio prima di continuare.", + "HeaderChangeFolderType": "Cambia il tipo di contenuto", + "HeaderChangeFolderTypeHelp": "Per modificare il tipo, rimuovere e ricostruire la raccolta con il nuovo tipo.", + "HeaderAlert": "Avviso", + "MessagePleaseRestart": "Riavvia per completare l'aggiornamento.", + "OptionHomeVideos": "Video e foto personali", + "OptionBooks": "Libri", + "HeaderMetadataReaders": "Lettori di metadati", + "LabelMetadataReadersHelp": "Classifica le origini di metadati locali preferite in ordine di priorità. Il primo file trovato verrà letto.", + "HeaderSubtitleDownloaders": "Fornitori di sottotitoli", + "SubtitleDownloadersHelp": "Attiva e classifica i fornitori di sottotitoli preferiti in ordine di priorità. È possibile installare altri fornitori di sottotitoli utilizzando il catalogo dei plugin di Emby.", + "LabelMetadataDownloaders": "Fornitori dei metadati", + "LabelMetadataDownloadersHelp": "Attiva e classifica i tuoi fornitori dei metadati preferiti in ordine di priorità. Fornitori di priorità inferiore saranno utilizzati solo per completare le informazioni mancanti.", + "HeaderMetadataSavers": "Salvataggio metadati", + "LabelMetadataSaversHelp": "Scegli i formati di file in cui salvare i metadati.", + "LabelImageFetchers": "Fornitori di immagini", + "LabelImageFetchersHelp": "Attiva e classifica i tuoi fornitori di immagini preferiti in ordine di priorità.", + "PersonTypePerson": "Persona", + "HeaderRemoveMediaLocation": "Rimuovi percorso media", + "MessageConfirmRemoveMediaLocation": "Sei sicuro di voler rimuovere questa posizione?", + "LabelNewName": "Nuovo nome", + "HeaderRemoveLibrary": "Rimuovi libreria", + "MessageAreYouSureYouWishToRemoveLibrary": "Sei sicuro di voler rimuovere la libreria {0} dal tuo Emby Server? I tuoi file multimediali non saranno eliminati.", + "ButtonRename": "Rinomina", + "HeaderPluginInstallation": "Installazione plugin", + "MessageTrialExpired": "Il periodo di prova per questa funzione è scaduto", + "MessageTrialWillExpireIn": "Il periodo di prova per questa funzione scadrà tra {0} giorni", + "ValuePriceUSD": "Prezzo: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Sei registrato per questa funzionalità e potrai continuare a usarla con un abbonamento Emby Premiere attivo.", + "HeaderSelectExternalPlayer": "Seleziona il lettore esterno", + "HeaderExternalPlayerPlayback": "Riproduzione con un player esterno", + "HeaderThankYou": "Grazie", + "HeaderSelectUploadPath": "Seleziona cartella upload", + "ErrorMessageStartHourGreaterThanEnd": "Ora di fine deve essere maggiore del tempo di avvio.", + "MessagePluginConfigurationRequiresLocalAccess": "Per configurare questo plugin si prega di accedere al proprio server locale direttamente.", + "MovieLibraryHelp": "Rivedi la {0}guida di denominazione dei film di Emby{1}.", + "TvLibraryHelp": "Rivedi la {0}guida di denominazione TV di Emby{1}.", + "BookLibraryHelp": "I libri di testo sono supportati. Consulta la {0}guida alla denominazione dei libri di Emby{1}.", + "MessageGamePluginRequired": "Richiede l'installazione del plugin GameBrowser", + "HeaderUnlockApp": "Sblocca app", + "MessagePaymentServicesUnavailable": "I servizi di pagamento non sono attualmente disponibili. Riprova più tardi.", + "NoNewDevicesFound": "Non sono stati trovati nuovi dispositivi. Per aggiungere un nuovo sintonizzatore, chiudi questa finestra di dialogo e inserisci manualmente le informazioni del dispositivo.", + "MessageConfirmDeleteTunerDevice": "Sei sicuro di voler eliminare questo dispositivo?", + "MessageConfirmDeleteGuideProvider": "Sei sicuro di voler eliminare questo fornitore di guida?", + "HeaderDeleteProvider": "Elimina fornitore", + "ErrorAddingTunerDevice": "Si è verificato un errore durante l'aggiunta del sintonizzatore. Assicurati che sia accessibile e riprova.", + "ErrorSavingTvProvider": "Si è verificato un errore durante il salvataggio del fornitore di TV. Assicurati che sia accessibile e riprova.", + "ErrorGettingTvLineups": "Si è verificato un errore durante il download del palinsesto TV. Assicurati che le tue informazioni siano corrette e riprova.", + "MessageCreateAccountAt": "Crea un account a {0}", + "ErrorPleaseSelectLineup": "Seleziona un palinsesto e riprova. Se nessun palinsesto è disponibile, verifica che i tuoi nome utente, password e codice postale siano corretti.", + "ErrorValidatingSupporterInfo": "Si è verificato un errore nella convalida delle tue informazioni Emby Premiere. Riprova più tardi.", + "LabelLocalSyncStatusValue": "Stato {0}", + "HeaderTopPlugins": "Migliori plugin", + "ForAdditionalLiveTvOptions": "Sfoglia il {0}catalogo dei plugin{1} di Emby per installare ulteriori fornitori di TV in diretta.", + "AddUser": "Aggiungi utente", + "HeaderEmailAddress": "Indirizzo di posta", + "NumLocationsValue": "{0} cartelle", + "PleaseAddAtLeastOneFolder": "Aggiungi almeno una cartella alla raccolta facendo clic sul pulsante Aggiungi.", + "ErrorAddingMediaPathToVirtualFolder": "Si è verificato un errore durante l'aggiunta del percorso. Controlla che sia valido e che Emby Server abbia l'accesso alla posizione indicata.", + "ErrorAddingEmbyConnectAccount3": "L'account Emby è già collegato a un utente locale esistente. Un account Emby può essere collegato solo a un utente locale alla volta.", + "HeaderConfirmPluginInstallation": "Conferma installazione plugin", + "PleaseConfirmPluginInstallation": "Fai clic su OK per confermare che hai letto quanto precede e che vuoi procedere all'installazione del plugin.", + "MessagePluginInstallDisclaimer": "I plugin creati dai membri della Emby Community sono un ottimo modo per migliorare l'esperienza di Emby con funzionalità e vantaggi aggiuntivi. Prima di installare, presta attenzione agli effetti che possono avere sul tuo Emby Server, come le scansioni più lunghe della libreria, l'elaborazione di sfondi aggiuntiva e decremento della stabilità del sistema.", + "HardwareAccelerationWarning": "L'attivazione dell'accelerazione hardware potrebbe causare instabilità in qualche sistema. Assicurati che il sistema operativo e i driver video siano aggiornati. Se hai difficoltà a riprodurre video dopo aver attivato questa operazione, dovrai cambiare l'impostazione in Auto.", + "ValueExample": "Esempio: {0}", + "LabelFileOrUrl": "File o URL", + "OptionEnableForAllTuners": "Attiva per tutti i sintonizzatori", + "HeaderTuners": "Sintonizzatori", + "DrmChannelsNotImported": "I canali con DRM non saranno importati.", + "LabelAllowHWTranscoding": "Consenti conversione hardware", + "AllowHWTranscodingHelp": "Se attivata, permette al sintonizzatore di codificare al volo le trasmissioni. Questo potrebbe contribuire a ridurre la conversione richiesta da Emby Server.", + "MetadataSettingChangeHelp": "Modifica le impostazioni dei metadati influenzerà il nuovo contenuto aggiunto in avanti. Per aggiornare i contenuti esistenti, apri la schermata dei dettagli e clicca sul pulsante di aggiornamento, oppure esegui aggiornamenti di massa utilizzando il gestore di metadati.", + "RecordingPathChangeMessage": "La modifica della cartella di registrazione non migrerà le registrazioni esistenti dalla vecchia posizione al nuovo. Sarà necessario spostarli manualmente, se lo desideri.", + "LabelLocalIpAddress": "Indirizzo IP locale", + "LabelBindToLocalNetworkAddressHelp": "(Facoltativo.) Sovrascrive l'indirizzo IP locale che Emby Server presenterà alle applicazioni Emby. Se lasciato vuoto, il server rileverà automaticamente l'indirizzo IP locale.", + "SettingsWarning": "La modifica di questi valori può causare problemi di instabilità o di connettività. Se si verificano problemi, si consiglia di modificarli all'impostazione predefinita.", + "OptionSaveMetadataAsHiddenHelp": "La modifica di questo si applicherà ai nuovi metadati che verranno salvati in avanti. I file di metadati esistenti saranno aggiornati la prossima volta che vengono salvati da Emby Server.", + "EnablePhotos": "Attiva foto", + "EnablePhotosHelp": "Le foto saranno rilevate e visualizzate accanto a altri file multimediali.", + "ImportPlaylists": "Importa file della playlist", + "ImportPlaylistsHelp": "Le playlist trovate nella tua cartella dei media possono essere importate in Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Salva l'anteprima del video nella cartella dei media", + "LabelGenerateVideoPreviewThumbnails": "Genera miniature di anteprima dei video", + "LabelEnableDebugLogging": "Attiva la registrazione degli eventi (log) di debug", + "OptionEnableExternalContentInSuggestions": "Attiva contenuto remoto nei suggerimenti", + "OptionEnableExternalContentInSuggestionsHelp": "Consenti l'inclusione di trailer Internet e programmi TV tra i contenuti suggeriti.", + "LabelOptionalNetworkPath": "(Facoltativo.) Cartella di rete condivisa", + "LabelOptionalNetworkPathHelp": "Se questa cartella è condivisa sulla rete, fornendo il percorso di condivisione di rete si può consentire alle applicazioni Emby su altri dispositivi di accedere direttamente ai file multimediali.", + "SynologyUpdateInstructions": "Accedi al DSM e vai nel Package Center per aggiornarlo.", + "HeaderRecordingPostProcessing": "Post-elaborazione registrazione", + "LabelPostProcessorArguments": "Argomenti linea di comando del post-processor", + "PostProcessorArgumentsHelp": "Le seguenti variabili sono supportate dalla linea di comando per consentire il passaggio dei dati al tuo post-processore", + "LabelPostProcessor": "Applicazione post-elaborazione", + "DvrPostProcessorPathArgument": "{path}: il percorso completo al nuovo file registrato", + "OptionAutomaticallyGroupSeries": "Unisci automaticamente le serie distribuite su più cartelle", + "OptionAutomaticallyGroupSeriesHelp": "Se attivato, le serie distribuite in più cartelle di questa libreria saranno automaticamente combinate in un'unica serie.", + "WhenDidYouPurchaseApp": "Quando hai acquistato questa app originariamente?", + "PreferEmbeddedTitlesOverFileNames": "Preferisci titoli integrati ai nomi dei file", + "PreferEmbeddedTitlesOverFileNamesHelp": "Determina il titolo predefinito usato quando non sono disponibili metadati locali o da Internet.", + "FriendlyNameForReferenceHelp": "Un nome riconoscibile da mostrare, per riferimento personale.", + "HeaderLiveTvTunerSetup": "Configura sintonizzatore TV", + "HeaderTVSourceSetup": "Configurazione fonti TV", + "HeaderDetectMyDevices": "Rileva dispositivi", + "MessagePleaseWait": "Attendi. La procedura potrebbe impiegare qualche minuto.", + "DetectingDevices": "Rilevamento dispositivi", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Dopo l'importazione iniziale, aggiorna automaticamente i metadati da Internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Aggiorna automaticamente i metadati per gli episodi con titoli segnaposto come TBA", + "EveryNDays": "Ogni {0} giorni", + "LabelCertificatePassword": "Password del certificato", + "LabelCertificatePasswordHelp": "Se il tuo certificato richiede una password, inseriscila qui.", + "HeaderNewLibrary": "Nuova libreria", + "HttpsRequiresCert": "Per attivare le connessioni sicure, è necessario fornire un certificato SSL affidabile, ad esempio Lets Encrypt. Fornisci un certificato o disattiva le connessioni sicure.", + "ServerRestartNeededAfterPluginInstall": "Emby Server dovrà essere riavviato dopo l'installazione di un plugin.", + "PluginInstalledMessage": "Il plugin è stato installato correttamente. Emby Server dovrà essere riavviato affinché le modifiche abbiano effetto.", + "MessagePremiereStatusGood": "Hai un piano {0} di Emby Premiere e l'utilizzo del tuo dispositivo è nei limiti.", + "MessagePremiereStatusClose": "Hai un piano {0} di Emby Premiere, ma l'utilizzo del tuo dispositivo è vicino al limite.", + "MessagePremiereExtendedPlans": "Considera un {0} piano esteso del dispositivo {1}", + "MessagePremiereStatusOver": "Hai un piano {0} di Emby Premiere, ma sei oltre il limite del tuo dispositivo!", + "ListItemPremiereSub": "{0} abbonamento acquistato tramite {2} scade il {1}", + "LabelClickToManage": "Fai clic per gestire questo abbonamento", + "LabelCancelInfo": "Puoi gestire questo abbonamento direttamente con {0}", + "LabelAlreadyCanceled": "Questo abbonamento è stato annullato. La chiave resterà valida fino alla sua scadenza.", + "HeaderCancelSub": "Annulla Emby Premiere", + "MessageConfirmSubCancel": "NO, per favore non andartene ... così ti perderai tutte le fantastiche caratteristiche di Emby Premiere!", + "ButtonCancelSub": "Lo so, annullalo comunque", + "ButtonDontCancelSub": "Mantieni Emby Premiere", + "MessageSubCancelReqSent": "Un'email è stata inviata al proprietario della chiave. Segui le istruzioni contenute in quella email per completare la cancellazione di questo abbonamento. Ci auguriamo di rivederti presto!", + "MessageSubCancelError": "Qualcosa è andato storto nel tentativo di annullare l'abbonamento. Invia un'email a {0} e provvederemo a sistemarla.", + "LabelAlreadyCancelled": "Questo abbonamento è stato annullato. Non ti verrà addebitato altro, ma le funzionalità saranno attive fino alla data indicata.", + "AllowOnTheFlySubtitleExtraction": "Consenti l'estrazione sottotitoli al volo", + "AllowOnTheFlySubtitleExtractionHelp": "I sottotitoli incorporati possono essere estratti dai video e consegnati ad applicazioni Emby in testo semplice per evitare la conversione dei video. In alcuni sistemi, questo può richiedere molto tempo e causare un rallentamento della riproduzione video durante il processo di estrazione. Disattiva questa opzione per avere i sottotitoli incorporati con la conversione video quando non sono compatibili con il dispositivo.", + "AllowOnTheFlyFontExtraction": "Consenti l'estrazione al volo dei caratteri dei sottotitoli", + "AllowOnTheFlyFontExtractionHelp": "I caratteri incorporati possono essere estratti dai video e inviati alle applicazioni Emby per supportare i video contenenti caratteri personalizzati. Su alcuni sistemi, questa operazione può richiedere molto tempo e causare l'interruzione della riproduzione del video durante il processo di estrazione.", + "EnableDebugLoggingHelp": "La registrazione degli eventi (log) di debug dovrebbe essere attivata soltanto in caso di risoluzione di problemi. Il costante accesso al file system può impedire al server di spegnersi in alcuni ambienti.", + "LabelSimultaneousConnectionLimit": "Limite trasmissioni simultanee", + "SimultaneousConnectionLimitHelp": "Numero massimo di trasmissioni simultanee consentite. Inserisci 0 per nessun limite.", + "LaunchWebAppOnStartup": "Lancia l'app web Emby nel mio browser web quando Emby Server si avvia", + "LaunchWebAppOnStartupHelp": "Ciò aprirà l'applicazione web nel browser predefinito all'avvio iniziale di Emby Server. Ciò non si verifica quando utilizzi la funzione di riavvio del server.", + "LabelReferrerHeader": "Intestazione referrer HTTP", + "LabelUserAgentHeader": "Intestazione user agent HTTP", + "SupplyCustomValueIfNeeded": "Fornisci un valore di intestazione HTTP personalizzato, se necessario.", + "HeaderConfigureRemoteAccess": "Configura accesso remoto", + "LearnHowToCreateSynologyShares": "Scopri come condividere cartelle in Synology.", + "LabelAllowedRemoteAddresses": "Filtro indirizzo IP remoto", + "LabelAllowedRemoteAddressesMode": "Modalità filtro indirizzo IP remoto", + "Whitelist": "Lista consentiti", + "Blacklist": "Lista di blocco", + "AllowedRemoteAddressesHelp": "Elenco separato da virgola di indirizzi IP o voci IP/maschera di rete per le reti che saranno consentite o non consentite per connettersi da remoto. Se lasciato vuoto, saranno consentiti tutti gli indirizzi remoti.", + "LabelLanNetworks": "Reti LAN", + "LanNetworksHelpText": "Elenco separato da virgole di indirizzi IP o voci IP/maschera di rete per reti che saranno considerate sulla rete locale quando si applicano restrizioni di larghezza di banda e accesso remoto. Se impostato, tutti gli altri indirizzi IP saranno considerati della rete esterna. Se lasciato vuoto, solo la sottorete del server e le sottoreti IP private comuni (192.168.0.0/24, 172.16.0.0/12, ecc.) saranno considerate sulla rete locale.", + "LabelSecureConnectionsMode": "Modalità connessione sicura", + "PreferredNotRequired": "Preferito, ma non richiesto", + "RequiredForAllRemoteConnections": "Richiesto per tutte le connessioni remote", + "HandledByProxy": "Gestito dal reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Salva i sottotitoli nelle cartelle multimediali", + "SaveSubtitlesIntoMediaFoldersHelp": "Memorizza i sottotitoli accanto ai file video consentirà di gestirli più facilmente.", + "AutomaticSubtitleDownloadInstructions": "Per gestire il download automatico dei sottotitoli, clicca su una libreria in Emby, e modifica le impostazioni dei sottotitoli per quella libreria.", + "ProviderNeedsSetupWithUrl": "{0} richiede una configurazione ulteriore nel {1} pannello di controllo{2} di Emby Server.", + "LabelEnableHardwareAcceleration": "Attiva l'accelerazione hardware quando disponibile", + "HeaderPreferredHardwareDecoders": "Decodificatori hardware preferiti", + "HeaderPreferredHardwareEncoders": "Codificatori hardware preferiti", + "AllowChangingImageAndPassword": "Consenti a questo utente di cambiare la propria password e l'immagine del profilo", + "LabelSimultaneousStreamLimit": "Numero massimo di trasmissioni video simultanee", + "SimultaneousStreamLimitHelp": "Limita il numero di sessioni di riproduzione video simultanee.", + "LabelMusicFolderStructure": "Struttura delle cartelle musicali", + "LabelMusicFolderStructureHelp": "Ciò fornisce un suggerimento allo scanner della libreria sul modo in cui sono organizzate le cartelle. Se non sei sicuro o se le tue cartelle non corrispondono esattamente a una delle opzioni, seleziona l'opzione predefinita Altro.", + "OtherOrUnstructured": "Altro o non strutturato", + "PerfectArtistAlbumTrack": "Perfettamente organizzato in cartelle artista\\album, con i brani direttamente nelle cartelle album.", + "PerfectAlbumTrack": "Perfettamente organizzato nelle cartelle degli album, con i brani direttamente nelle cartelle degli album.", + "LabelMinCollectionSize": "Dimensione minima della raccolta automatica", + "PerfectAuthorAudioBookTrack": "Perfettamente organizzati in cartelle autore/libro, con i brani direttamente nelle cartelle del libro.", + "PerfectAudioBookTrack": "Perfettamente organizzati in cartelle di libri, con i brani direttamente nelle cartelle dei libri.", + "MinCollectionSizeHelp": "Crea automaticamente raccolte quando hai almeno il numero selezionato di titoli nella tua libreria. La modifica di questo valore non influirà sulle raccolte esistenti.", + "LabelImportCollections": "Importa le informazioni sulla raccolta dai fornitori di metadati", + "LabelImportCollectionsHelp": "Se attivata, importerà le informazioni sulla raccolta dai fornitori di metadati abilitati. Ciò potrebbe causare la creazione automatica di raccolte indesiderate. La disattivazione impedirà la creazione automatica di raccolte future, ma non eliminerà quelle esistenti.", + "LabelAllowAdultMetadata": "Consenti metadati per adulti", + "LabelAllowAdultMetadataHelp": "Consenti la corrispondenza di titoli per adulti durante la ricerca di metadati Internet.", + "HeaderVideoPreviewThumbnails": "Anteprima video in miniatura", + "LabelEnableHDRToneMapping": "Attiva la mappatura dei toni HDR", + "EnableHDRToneMappingHelp": "La mappatura dei toni garantirà la corretta conversione del colore durante la conversione del contenuto HDR, che altrimenti apparirà molto attenuato e desaturato. Potrebbero essere necessari componenti driver aggiuntivi per supportare l'accelerazione hardware con questa funzione attivata. Consulta la nostra guida all'installazione dell'accelerazione hardware per informazioni.", + "WithHardwareAcceleratedTranscoding": "Sì, solo con accelerazione hardware", + "TranscodingStillInitializing": "I servizi di conversione dell'Emby Server sono ancora impegnati nell'avvio. Questa schermata si aggiornerà automaticamente quando i servizi di conversione saranno pronti.", + "WithEitherHardwareOrSoftwareTranscoding": "Sì, con conversione hardware o software", + "ToneMappingInHardwareDescription": "La mappatura dei toni verrà eseguita con l'accelerazione hardware quando è attivata e supportata dall'hardware ma verrà saltata in tutti gli altri casi.", + "ToneMappingInSoftwareDescription": "La mappatura dei toni verrà eseguita via software dalla CPU. Questo è molto più lento della mappatura dei toni con accelerazione hardware e richiederà una macchina server molto potente.", + "ToneMappingInBothDescription": "La mappatura dei toni verrà eseguita con accelerazione hardware quando è attiva e supportata dal computer, ma in tutti gli altri casi verrà eseguita la mappatura software. La mappatura software dei toni è molto più lenta della mappatura con accelerazione hardware e richiede un computer molto potente.", + "AutoMapped": "Mappatura automatica", + "ManuallyMapped": "Mappatura manuale", + "NotMappedToGuideData": "Nessuna mappatura per i dati", + "MappedToValue": "Mappatura su {0}", + "LabelAutomaticallyWakeServerForRecordings": "Riattiva automaticamente il server per eseguire le registrazioni", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Gli eventi di riattivazione verranno pianificati con il sistema operativo del server. La disattivazione di questa opzione impedirà la pianificazione di eventi di riattivazione futuri ma non rimuoverà gli eventi pianificati in precedenza.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Tentare di ottimizzare il database in caso di arresto del server", + "LabelOptimizeDatabaseOnShutdownHelp": "L'operazione di ottimizzazione del database di solito non è operativa, ma occasionalmente eseguirà un'analisi se sembra che ciò sia utile per il pianificatore di query. Ciò potrebbe far sì che Emby Server richieda più tempo per l'arresto.", + "LabelDatabaseCacheSize": "Dimensione della cache del database (MB)", + "LabelDatabaseCacheSizeHelp": "Imposta la quantità di dati che il database manterrà in memoria in una volta, per file di database. Un valore maggiore può aiutare a migliorare le prestazioni di Emby Server. Richiede un riavvio del server per avere effetto.", + "LabelDatabaseAnalysisLimit": "Limite di riga di analisi", + "LabelDatabaseAnalysisLimitHelp": "Quando il database è ottimizzato, questo è il numero approssimativo di righe esaminate in ciascun indice dal comando ANALYZE. Un valore maggiore aumenterà l'efficacia dell'ottimizzazione del database, ma potrebbe richiedere più tempo per l'arresto di Emby Server.", + "LabelVacuumDb": "Deframmenta il database al prossimo avvio di Emby Server", + "LabelVacuumDbHelp": "La deframmentazione ricostruisce il file del database, rimpacchettandolo in una quantità minima di spazio su disco. In alcuni casi, questo può migliorare le prestazioni di Emby Server. Tieni presente che il server Emby non sarà utilizzabile durante l'operazione di deframmentazione, né si potrà monitorare l'avanzamento. NON chiudere forzatamente il processo di Emby Server durante la deframmentazione poiché il database potrebbe corrompersi. Si tratta di un'operazione una tantum e questa opzione tornerà deselezionata al successivo avvio del server.", + "AdvancedOptionsWarning": "Queste sono opzioni avanzate e generalmente dovrebbero essere lasciate ai valori predefiniti, a meno che tu non abbia un motivo per cambiarle.", + "HeaderRecentlyActiveDevices": "Dispositivi attivi di recente", + "YesUntilServerRestart": "Sì, fino al prossimo riavvio del server", + "YesUntilLogRotate": "Sì, fino alla successiva rotazione del file di registro", + "LabelSubtitleDownloadMaxAge": "Smetti di provare a scaricare automaticamente i sottotitoli per i video più vecchi di", + "SubtitleDownloadMaxAgeHelp": "Questo si basa sul valore di \"data di aggiunta\" nei metadati.", + "NoAgeLimit": "Nessun limite di età", + "AnonymizeLogContents": "Rendi anonimo il registro degli eventi (log)", + "Markers": "Marcatori", + "LabelGenerateIntroVideoMarkers": "Genera marcatori video intro", + "GenerateIntroVideoMarkersHelp": "Rileva le introduzioni di spettacoli e visualizza il pulsante \"Salta introduzione\" nelle applicazione Emby. Il rilevamento dell'introduzione può richiedere molto tempo e causare un utilizzo elevato della CPU o del disco.", + "LabelCopyFromUser": "Copia le impostazioni da questo utente", + "CopyFromUserHelp": "(Facoltativo.) Accelera la creazione utente copiando le informazioni da un utente esistente.", + "UserPolicy": "Politiche utente (accesso e funzionalità della libreria, controllo parentale, ecc.)", + "UserConfiguration": "Configurazione utente (lingua audio e sottotitoli preferita, ordinamento libreria, ecc.)", + "UserDataAndDescription": "Dati utente (preferiti, stati di visione e ascolto, ecc.)", + "HeaderCopyOptions": "Opzioni di copia", + "LabelMultiRestrictionMode": "Modalità restrizioni multiple", + "MultiRestrictionModeAll": "Permetti contenuti che rispettino entrambe le restrizioni di classificazione e tag", + "MultiRestrictionModeAny": "Permetti contenuti che rispettino le restrizioni di classificazione o i tag", + "AllowMappingByChannelNumber": "Permetti di abbinare i dati della Guida usando i numeri canale", + "AllowMappingByChannelNumberHelp": "Questa opzione può essere usata come ripiego per abbinare i canali del sintonizzatore alla guida quando non è possibile trovare un nome canale da associare. Questa opzione può portare ad associazioni sbagliate se i numeri dei canali del sintonizzatore non sono corretti.", + "LabelPreferredSourceForChannelLogos": "Preferisci i loghi dei canali della guida rispetto a quelli del sintonizzatore, quando sono entrambi disponibili", + "LabelPreferredSourceForChannelNumbers": "Preferisci i numeri canale della guida rispetto a quelli del sintonizzatore, quando sono entrambi disponibili", + "HeaderSoftwareEncoders": "Codificatori software", + "LabelProxyHeaderMode": "Leggi le intestazioni proxy per determinare gli indirizzi IP dei client", + "ProxyHeadersRemoteOnly": "Solo quando contengono indirizzi di rete remoti", + "ProxyHeaderModeHelp": "Individua se le intestazioni delle richieste come {0} e {1} devono essere usate per determinare l'indirizzo IP dei dispositivi connessi.", + "AllowCameraUpload": "Attiva il caricamento da fotocamera", + "AllowCameraUploadHelp": "Se consentito e se attivato nelle applicazioni mobili Emby, gli utenti possono caricare automaticamente le foto e i video ripresi dalla loro fotocamera su questo Emby Server", + "CameraUploadMustBeGranted": "È inoltre necessario che l'amministratore del server ti conceda l'accesso al caricamento dalla fotocamera.", + "EnableReadingAndWritingPeopleMetadata": "Attiva la lettura e la scrittura dei file di metadati personali", + "EnableReadingAndWritingPeopleMetadataHelp": "Richiede l'installazione del plugin Nfo Metadata. Ciò consentirà di salvare le modifiche delle persone nei file di metadati nfo, ma comporterà scansioni di libreria più lunghe.", + "LabelIgnoreSampleFiles": "Ignora i file che contengono la parola nel nome file se la loro dimensione è inferiore a (MB)", + "PreferredChannelImageSource": "Fonte immagine del canale preferita", + "PreferredChannelImageSourceHelp": "Seleziona un'immagine del canale preferita quando sia il sintonizzatore che i dati della guida hanno immagini disponibili.", + "CacheImagesInServerData": "Conserva una copia memorizzata nella cache delle immagini nella cartella dei metadati del server", + "CacheImagesInServerDataHelp": "Se i tuoi media e le tue immagini sono archiviati in un altro computer, mantenere una copia cache delle immagini nella cartella dei metadati del server ridurrà l'accesso alla rete e potrebbe migliorare le prestazioni. Lo svantaggio della creazione di questa cache è che le scansioni della libreria saranno più lente e la cartella dei metadati del server occuperà più spazio nel disco.", + "AllowSharingPersonalContent": "Consenti la condivisione di contenuti personali in playlist con altri utenti su questo server", + "AllowSharingPersonalContentHelp": "Se concesso, questo utente potrà condividere le proprie playlist con altri utenti. Gli elementi della playlist saranno comunque limitati in base all'accesso alla libreria dell'utente e ai controlli parentali.", + "LiveBufferSizeHours": "Limite dimensione buffer della trasmissione in diretta (ore)", + "LiveBufferSizeHoursHelp": "Un buffer più lungo consentirà di effettuare ricerche più rapide in avanti e indietro durante una trasmissione in diretta, ma occuperà più spazio nel disco.", + "LabelTranscodingMaxResolution": "Risoluzione massima della conversione", + "TranscodingMaxResolutionHelp": "Imposta un limite massimo da applicare a tutte le conversioni video, indipendentemente dall'impostazione della qualità nel lettore Emby. Ciò contribuirà a ridurre le risorse consumate dai processi di conversione del server.", + "EnableHevcEncodingExp": "Attiva la codifica video HEVC (sperimentale)", + "EnableHevcEncodingHelp": "Attiva la conversione utilizzando il codificatore HEVC, se supportato dal dispositivo.", + "LabelEnableMultiPartItems": "Attiva gli elementi multi-parte", + "EnableMultiPartItemsHelp": "Rileva e raggruppa automaticamente i file denominati parte 1, parte 2, ecc. Le parti aggiuntive saranno visualizzate nella schermata principale dei dettagli dell'elemento.", + "MultiVersionItemsDetectionHelp": "Rileva e raggruppa automaticamente diverse versioni dello stesso elemento. Una selezione di versione sarà offerta nella schermata principale dei dettagli per l'elemento. Il raggruppamento basato sui file richiede di nominare e organizzare i file in modo appropriato.", + "MultiVersionMoviesDetectionHelp": "Il raggruppamento basato sui metadati raggrupperà i film che hanno gli stessi ID esterni (MovieDb, Imdb, ecc.).", + "EnableMultiPartItemsTVHelp": "Non supportato per gli episodi di programmi TV.", + "HeaderAutomaticGrouping": "Raggruppamento automatico", + "LabelMultiVersionItemsDetection": "Rilevamento di elementi multi-versione", + "MultiVersionItemsDetectionBoth": "Rileva gli elementi multi-versione in base a file e metadati", + "MultiVersionItemsDetectionFiles": "Rileva gli elementi multi-versione in base ai file", + "MultiVersionItemsDetectionMetadata": "Rileva gli elementi multi-versione in base ai metadati", + "LabelNetworkRequestProtocol": "Protocollo della richiesta di rete", + "NetworkRequestProtocolHelp": "Scegli il protocollo da utilizzare per le richieste di rete in uscita verso i fornitori di metadati e altri servizi. In alcuni casi, quando i servizi esterni non sono raggiungibili tramite IPv6, potrebbe essere necessario impostare solo IPv4.", + "GenerateChaptersForVideos": "Genera capitoli per i video che non contengono informazioni sui capitoli incorporate", + "GeneratedChapterInterval": "Intervallo di capitolo generato", + "StartOfSection": "Inizio del capitolo", + "PreviousSection": "Capitolo precedente", + "LayoutVertical": "Scorrimento verticale", + "ZoomIn": "Zoom ristretto", + "PageNarrow": "Stretto", + "PageMaximized": "Massimizzato", + "ZoomOut": "Zoom allargato", + "PageBook": "Doppia pagina", + "LabelPageSize": "Dimensione pagina", + "PositionInBook": "Posizione nel libro", + "LayoutDouble": "Doppia pagina", + "TableOfContents": "Sommario", + "PageSingle": "Pagina singola", + "ZoomNone": "Zoom predefinito", + "LayoutPage": "Singola pagina", + "NextSection": "Capitolo successivo", + "ZoomAutoFit": "Riempi pagina", + "CurrentPage": "Pagina attuale", + "TotalPages": "Pagine totali", + "NextPage": "Pagina successiva", + "RightToLeft": "Ordine da destra a sinistra", + "LetsGetSetup": "Iniziamo", + "PreviousPage": "Pagina precedente", + "Margins": "Margini", + "HeaderIgnoreFiles": "Ignora file", + "EnablePlexIgnoreAlias": "Attiva la compatiblità per file .plexignore come alias a .embyignore", + "HeaderMaintenanceMode": "Modalità di manutenzione", + "OptionEnableMaintenanceMode": "Metti il server in modalità di manutenzione", + "EnableMaintenanceModeHelp": "Gli utenti vedranno soltanto il messaggio modalità di manutenzione.", + "MaintenanceModeMessage": "Messaggio modalità di manutenzione", + "MaintenanceModeMessageHelp": "Se lasciato vuoto, un messaggio generico che dichiara che il server è in manutenzione verrà mostrato e tradotto secondo la lingua dell'interfaccia utente.", + "ServerInMaintenanceMode": "La modalità di manutenzione è attualmente in corso nell'Emby Server. Gli utenti saranno in grado soltanto di visualizzare un messaggio di manutenzione finché non rimuovi il server dalla modalità di manutenzione.", + "ExcludeFromGlobalSearch": "Escludi dalla ricerca globale", + "MergeTopFoldersInFolderView": "Unisci i contenuti delle cartelle superiori quando usi la visualizzazione cartella", + "MergeTopFoldersInFolderViewHelp": "Se attivato, il contenuto delle cartelle di livello superiore verrà unito e visualizzato come un'unica cartella combinata quando si utilizza la visualizzazione cartella. Se disattivato, le cartelle di livello superiore verranno visualizzate come primo livello nella visualizzazione cartelle.", + "OptionAllowTranscodingToReduceQuality": "Attiva la conversione per ridurre la qualità, secondo le impostazioni dell'applicazione, durante la riproduzione dei media", + "LabelAutoRemoteQuality": "Qualità trasmissione remota automatica (Mbps)", + "AutoRemoteQualityHelp": "Una qualità di trasmissione facoltativa per questo utente quando il riproduttore è impostato sulla qualità automatica. L'impostazione annullerà qualsiasi rilevamento automatico della qualità per questo utente su tutti i dispositivi.", + "LabelFolderScanningMode": "Folder scanning mode", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "Legacy": "Legacy" +} diff --git a/strings/ja.json b/strings/ja.json new file mode 100644 index 0000000..ee26d02 --- /dev/null +++ b/strings/ja.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "完了しました!", + "ThisWizardWillGuideYou": "このウィザードは初期設定プロセスのヒントになります。続けるにはご利用の言語を選択してください。", + "HeaderCreateYourFirstUser": "最初のユーザーを作成する", + "ButtonQuickStartGuide": "クイックスタートガイド", + "MoreUsersCanBeAddedLater": "他のユーザーも後でEmby Serverの設定から追加することができます。", + "UserProfilesIntro": "Embyは各ユーザーごとのプロファイル設定を保持できます。そのため、ユーザーごとにディスプレイ設定、再生設定やペアレンタルコントロールの設定を行うことができます。", + "WizardCompleted": "必要な情報は集まりました。Embyは入力された情報に従ってメディアライブラリの情報収集と構築を始めています。完了をクリックしてサーバダッシュボードをご覧ください。", + "MessagePleaseAcceptTermsOfService": "続けるにはサービス利用規約とプライバシーポリシーに同意してください。", + "OptionIAcceptTermsOfService": "サービス利用規約に同意します。", + "SeeOurHwaGuide": "{0}ハードウェアアクセラレーション設定ガイド{1}を参照してください。", + "HeaderEmbyServerReleaseNotes": "Emby サーバーリリースノート", + "AllowSubtitleDownloading": "字幕のダウンロードを許可", + "AllowSubtitleManagement": "既存の字幕ファイルの削除を許可", + "NewUserNameHelp": "これはユーザーがサーバに表示される方法です。", + "ChapterMarkers": "チャプターマーカー", + "LabelThumbnailImagesInterval": "サムネイル画像の間隔:", + "ThumbnailImagesIntervalHelp": "サムネイルの頻度が高いほどエクスペリエンスが向上しますが、より多くのディスク領域と時間を必要とします。", + "LabelAuthProvider": "認証プロバイダ:", + "AuthProviderHelp": "外部認証プロバイダの問題によってサーバからロックアウトされる事故を防ぐため、管理ユーザは必ずデフォルトの認証プロバイダを使用してください。", + "HeaderNewUser": "新しいユーザ", + "ChangeServerDisplayName": "サーバの表示名を変更する", + "ShowAdvancedSettings": "詳細設定を表示", + "ChangingMetadataImageSettingsNewContent": "メタデータ・アートワークの取得設定の変更は、新たにライブラリへ追加されたコンテンツへのみ適用されます。既存のタイトルにも変更を適用するには、メタデータを手動で更新する必要があります。", + "AllowRemoteAccess": "この Emby サーバへのリモート接続を許可する。", + "AllowRemoteAccessHelp": "チェックを外すと、すべてのリモート接続がブロックされます。", + "Alerts": "アラート", + "LabelTrackTitleDisplay": "埋め込みトラックタイトル表示:", + "GenerateUserFriendlyTrackTitles": "トラック情報からタイトルを生成する", + "PreferOriginalTrackTitles": "埋め込みタイトルを優先する", + "TrackTitleDisplayHelp": "埋め込みオーディオトラックと字幕トラックの表示タイトルを選択します。埋め込みトラック情報を手動で管理する場合を除き、埋め込みを優先することはお勧めしません。", + "EnableTranscodingThrottle": "CPUスロットリングを有効にする", + "EnableTranscodingThrottleHelp": "CPUの使用率を抑制するため、トランスコーディングの速度を動的に調整します。", + "HeaderTypeMetadataDownloaders": "{0} メタデータダウンロード", + "HeaderTypeImageFetchers": "{0}画像取り込み:", + "HeaderImageOptions": "画像オプション", + "OptionBeta": "ベータ", + "RegisterWithPayPal": "PayPalで登録", + "LabelSyncTempPath": "一時ファイルパス:", + "LabelSyncTempPathHelp": "カスタムの作業フォルダを指定します。変換されたメディアが保存されます。", + "LabelCustomCertificatePath": "SSL 証明書パス:", + "LabelCustomCertificatePathHelp": "カスタムドメイン名で TLS を利用するための、有効な証明書と秘密鍵が含まれる PKCS #12 形式のファイルパスを指定します。", + "HeaderSetupLibrary": "メディアライブラリを設定", + "LabelTimeLimitHours": "タイムリミット (時間):", + "HeaderPreferredMetadataLanguage": "優先するメタデータ言語", + "LabelSaveLocalMetadata": "アートワークをメディア自身のフォルダに保存する", + "LabelSaveLocalMetadataHelp": "アートワークフォルダにアートワークを保存すると、簡単に編集できる場所にアートワークが配置されます。", + "TabAccess": "アクセス", + "HeaderDeviceAccess": "デバイスアクセス", + "OptionEnableAccessFromAllDevices": "すべてのデバイスからのアクセスを有効にします", + "OptionEnableAccessToAllChannels": "すべてのチャンネルからのアクセスを有効にします", + "OptionEnableAccessToAllLibraries": "すべてのライブラリへの接続を有効にします", + "DeviceAccessHelp": "ユーザのデバイス アクセスをフィルタ処理すると、ここで承認されるまで新しいデバイスを使用できなくなります。", + "LabelDisplayMissingEpisodesWithinSeasons": "シーズン内に欠落しているエピソードを表示する", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Emby サーバの設定でテレビ ライブラリを有効にする必要があります。", + "ImportMissingEpisodesHelp": "有効にすると、欠落しているエピソードをEmbyが取得し、シリーズやシリーズ内に表示します。 これには長いライブラリスキャンが必要です。", + "MessageEnablingOptionLongerScans": "有効にすると、ライブラリスキャンが大幅に長くなる場合があります。", + "LabelMaxParentalRating": "許可するペアレンタルレーティング上限:", + "MaxParentalRatingHelp": "より高いレーティングのコンテンツは表示されません。", + "LibraryAccessHelp": "このユーザーと共有するメディアフォルダを選択します。 管理者はメタデータマネージャを使用してすべてのフォルダを編集できます。", + "ChannelAccessHelp": "このユーザーと共有するチャンネルを選択してください。 管理者はメタデータマネージャを使用してすべてのチャンネルを編集できます。", + "ImageUploadAspectRatioHelp": "アスペクト比 1:1 のJPG,PNGファイルのみです", + "AlreadyPaidHelp1": "Android 用 Media Browser の古いバージョンを購入済みの場合は、再度支払う必要はありません。OKをクリックして {0} でメールを送信すると有効化を行います。", + "AlreadyPaidHelp2": "Emby Premiereをお持ちですか? このダイアログをキャンセルして、Emby Server Dashboardの[ヘルプ] - > [Emby Premiere]でEmby Premiereを設定すると、自動的にロックが解除されます。", + "TabMyPlugins": "マイ プラグイン", + "TabCatalog": "カタログ", + "HeaderAutomaticUpdates": "自動アップデート", + "Standard": "標準", + "TabSupporterKey": "Emby Premiere キー", + "OptionHideUserLocal": "ローカルネットワークのログイン画面からこのユーザーを隠す", + "OptionHideUserRemote": "リモートログイン画面からこのユーザーを隠す", + "OptionHideUserFromLoginHelp": "プライベートの管理者アカウントまたは非表示の管理者アカウントに便利です。ユーザはユーザ名とパスワードを入力して手動でサインインする必要があります。", + "HideFromUnusedDevices": "サインインしたことのないデバイスのログイン画面から、このユーザーを隠す", + "OptionDisableUser": "このユーザを無効にする", + "OptionDisableUserHelp": "無効にするとサーバはこのユーザーからの接続を許可しません。既存の接続は切断します。", + "OptionAllowUserToManageServer": "このユーザーにサーバの管理を許可する", + "HeaderFeatureAccess": "機能へのアクセス", + "OptionAllowMediaPlayback": "メディアの再生を許可する", + "AllLibraries": "すべてのライブラリ", + "HeaderAllowMediaDeletionFrom": "メディアの削除を許可する", + "LiveTVRecordingManagement": "ライブTV録画の管理", + "OptionAllowRemoteControlOthers": "他のユーザのリモート制御を許可する", + "OptionAllowRemoteSharedDevices": "共有デバイスのリモート制御を許可する", + "OptionAllowRemoteSharedDevicesHelp": "DLNA デバイスはユーザが制御を開始するまで共有と見なされます。", + "OptionAllowLinkSharing": "ソーシャル メディアの共有を許可する", + "OptionAllowLinkSharingHelp": "メディア情報を含む Web ページのみが共有されます。メディア ファイルがパブリックに共有されることはありません。共有は期間限定であり、{0}日後に期限切れになります。", + "OptionRelease": "公式リリース", + "LabelAllowServerAutoRestartPlugin": "プラグインのアップデートを適用するために、サーバーを自動的に再起動することを許可する", + "LabelAllowServerAutoRestartServerOrPlugin": "サーバーやプラグインのアップデートを適用するために、サーバーを自動的に再起動することを許可する", + "LabelAllowServerAutoRestartHelp": "サーバはアクティブなユーザーがいないアイドル時にのみ再起動します。", + "LabelRunServerAtStartup": "起動時にサーバを実行する", + "LabelRunServerAtStartupHelp": "Windows 起動時に Emby トレイ アイコンが起動します。Windows サービスをセットアップした場合はこのチェック ボックスをオフのままにして、起動時に実行するようにサービスを構成します。", + "ButtonSelectDirectory": "ディレクトリを選択", + "LabelCachePath": "キャッシュのパス:", + "DefaultMetadataLangaugeDescription": "これらはデフォルトであり、ライブラリごとにカスタマイズできます。", + "LabelCachePathHelp": "イメージなどのサーバ キャッシュ ファイルのカスタムの場所を指定します。サーバの既定値を使用する場合は空白のままにします。", + "LabelDefaultRecordingFolder": "デフォルの録画先フォルダ", + "LabelMovieRecordingFolder": "映画の録画先フォルダ", + "LabelSeriesRecordingFolder": "シリーズの録画先フォルダ", + "SeriesRecordingFolderHelp": "(オプション)シリーズ録画を保存するライブラリを選択してください。Embyライブラリ設定でコンテンツタイプを「テレビ番組」または「混合コンテンツ」に設定して作成したライブラリである必要があります。", + "HeaderProgramData": "番組データ", + "RecordingFolderHelp": "録画を保存するデフォルトのライブラリを選択してください。Embyライブラリ設定でコンテンツタイプを「混合コンテンツ」に設定して作成したライブラリである必要があります。", + "MovieRecordingFolderHelp": "(任意)映画の録画を保存するライブラリを選択してください。このライブラリは、Embyのライブラリ設定で「映画」または「混在コンテンツ」として作成されたものである必要があります。", + "LabelMetadataPath": "メタデータのパス:", + "LabelMetadataPathHelp": "ダウンロードしたアートワークやメタデータを保存する「metadata」フォルダを作成する場所を下で指定してください。空欄にするとデフォルト設定に戻ります。この設定を変更する場合は、古い場所から新しい場所へ内容を手動で移行する必要があります。また、「metadata」フォルダの内容を手動で変更した場合は、{0}メタデータフォルダのスキャン{1}の定期タスクを実行してください。", + "LabelTranscodingTempPath": "トランスコーディングの一時パス:", + "LabelTranscodingTempPathHelp": "このフォルダにはトランスコーダで使用される作業ファイルが保存されます。パスを指定するか、空のままにしてサーバのデータフォルダの既定値を使用します。", + "GenerateVideoPreviewThumbnailsHelp": "‎ビデオのプレビューサムネイルは、サポートされているアプリを探し動的に更新されます。サムネイルの生成に時間がかかり、CPU 使用率が高くなり、ディスク領域が消費される場合があります。‎", + "AsAScheduledTask": "‎スケジュールされたタスクとして‎", + "AsAScheduledTaskAndMediaAdded": "‎メディアが追加されたとき‎にスケジュールされたタスクとして", + "ButtonRefreshGuideData": "ガイドデータを更新", + "LabelNumberOfGuideDays": "ダウンロードするガイドデータの日数:", + "LabelNumberOfGuideDaysHelp": "より多くの日数のガイドデータをダウンロードすると、事前にスケジュールを設定し、より多くのリストを表示できますが、ダウンロードに時間がかかります。 自動はチャンネル数に基づいて選択します。", + "HeaderFetchImages": "画像の取得:", + "LabelMaxBackdropsPerItem": "アイテムごとの背景の最大数:", + "LabelMaxScreenshotsPerItem": "アイテムごとのスクリーンショットの最大数:", + "LabelMinBackdropDownloadWidth": "ダウンロードする背景の最小幅:", + "LabelMinScreenshotDownloadWidth": "ダウンロードするスクリーンショットの最小幅:", + "ButtonAddScheduledTaskTrigger": "トリガを追加", + "ButtonAdd": "追加", + "LabelTriggerType": "トリガーの種類:", + "OptionOnInterval": "一定間隔", + "OptionAfterSystemEvent": "システムイベント後", + "LabelDay": "日:", + "LabelTime": "時間:", + "LabelEvent": "イベント:", + "OptionWakeFromSleep": "スリープからの復帰", + "Every": "全て", + "LabelEnableRealtimeMonitor": "リアルタイム監視を有効にする", + "LabelEnableRealtimeMonitorHelp": "ファイルに対する変更はサポートされているファイルシステムで即時に処理されます。", + "Community": "コミュニティ", + "HeaderEmbyNews": "Emby ニュース", + "LabelFriendlyServerName": "サーバ名", + "LabelFriendlyServerNameHelp": "この名前はサーバを識別するために使用されます。空白のままにするとコンピュータ名が使用されます。", + "LabelPreferredDisplayLanguage": "優先する表示言語:", + "LabelPreferredDisplayLanguageHelp": "Emby の翻訳は進行中のプロジェクトです。", + "LabelReadHowYouCanContribute": "貢献する方法を確認する。", + "LabelCustomCss": "カスタムCSS:", + "LabelCustomCssHelp": "独自のカスタム CSS を Web インターフェイスに適用します。", + "LabelLocalHttpServerPortNumber": "ローカル http ポート番号:", + "LabelLocalHttpServerPortNumberHelp": "Emby の http サーバーがバインドする tcp ポート番号。", + "LabelPublicHttpPort": "パブリック http ポート番号:", + "LabelPublicHttpPortHelp": "ローカル http ポートにマップする必要があるパブリック ポート番号。", + "LabelPublicHttpsPort": "パブリック https ポート番号:", + "LabelPublicHttpsPortHelp": "ローカル https ポートにマップする必要があるパブリック ポート番号。", + "RequireHttps": "外部接続にhttpsが必要", + "RequireHttpsHelp": "有効にすると、httpを介した接続はhttpsにリダイレクトされます。", + "LabelHttpsPort": "ローカルhttpsポート番号:", + "LabelHttpsPortHelp": "Emby の https サーバーがバインドする必要がある tcp ポート番号。", + "LabelEnableAutomaticPortMap": "ポートの自動マッピングを有効にする", + "LabelEnableAutomaticPortMapHelp": "UPnP 経由でパブリック ポートをローカル ポートに自動的にマップします。一部のルータでは動作しない可能性があります。", + "LabelExternalDDNS": "外部ドメイン:", + "LabelExternalDDNSHelp": "動的 DNS またはドメイン名がある場合は、プロトコルまたはポートなしで入力します。Embyアプリはリモートで接続するときに使用します。このフィールドはカスタム SSL 証明書で使用する場合に必要です。例: mydomain.com。", + "LabelMinResumePercentage": "最小のレジューム率:", + "LabelMaxResumePercentage": "最大のレジューム率:", + "LabelMinResumeDuration": "最小のレジューム期間(秒):", + "LabelMinResumePercentageHelp": "この時間より前に停止した場合、タイトルは未再生と見なされます", + "LabelMaxResumePercentageHelp": "この時間後に停止すると、タイトルは完全に再生されたと見なされます", + "LabelMinResumeDurationHelp": "これより短いタイトルは再開できません", + "HeaderStatus": "状態", + "Subscriptions": "サブスクリプション", + "LabelEndingEpisodeNumber": "エピソード終了番号:", + "LabelEndingEpisodeNumberHelp": "複数エピソードファイルにのみ必要", + "HeaderSupportTheTeam": "Emby チームをサポート", + "HeaderSupportTheTeamHelp": "Emby Premiere を購入して、このプロジェクトの継続的な開発を支援してください。 すべての収入の一部は、私たちが依存している他の無料ツールに寄付されます。", + "DonationNextStep": "完了したら、Emby Premiere キーを返送して入力してください。このキーはメールで送信されます。", + "HeaderRunningTasks": "実行中のタスク", + "ButtonUpdateNow": "アップデートする", + "PleaseUpdateManually": "Embyを終了させ最新版をインストールしてください", + "ServerUpToDate": "Emby サーバは最新です", + "MessagePleaseRestartServerToFinishUpdating": "サーバーを再起動して、更新プログラムの適用を完了してください。", + "LabelDownMixAudioScale": "ダウンミックス時のオーディオブースト", + "LabelDownMixAudioScaleHelp": "ダウンミキシング時にオーディオをブーストします。元のボリューム値を保持するには1 に設定します。", + "HeaderForgotKey": "キーを忘れました", + "LabelSupporterEmailAddress": "キーの購入に使用されたメールアドレス。", + "ButtonRetrieveKey": "キーの取得", + "LabelSupporterKey": "Emby Premiere キー(電子メールから貼り付け):", + "LabelSupporterKeyHelp": "Emby Premiere キーを入力して、追加の特典をお楽しみください。", + "MessageInvalidKey": "Emby Premiere キーが見つからないか無効です。", + "ErrorMessageInvalidKey": "プレミアムコンテンツを登録するには、有効な Emby Premiere サブスクリプションも必要です。", + "LabelSkipIfGraphicalSubsPresent": "ビデオに字幕が埋め込み済みの場合はスキップする", + "LabelSkipIfGraphicalSubsPresentHelp": "字幕のテキストバージョンを保持すると、配信の効率が向上し、ビデオトランスコーディングの可能性が低くなります。", + "HeaderDownloadLanguages": "ダウンロードされた言語:", + "LabelSkipIfAudioTrackPresent": "既定のオーディオトラックがダウンロードしようとする言語と一致する場合はスキップする", + "LabelSkipIfAudioTrackPresentHelp": "オフにすると、音声言語に関係なく、すべての動画に字幕が付きます。", + "SendMessage": "メッセージを送信", + "HeaderSendMessage": "メッセージを送信", + "ButtonSend": "送信", + "LabelMessageText": "メッセージの本文:", + "LabelMessageTitle": "メッセージのタイトル:", + "ButtonEditOtherUserPreferences": "このユーザーのプロファイル、画像、および個人設定を編集します。", + "LabelLoginDisclaimer": "ログイン免責事項:", + "LabelLoginDisclaimerHelp": "これはログインページの下部に表示されます。", + "HeaderTranscodingTemporaryFiles": "トランスコーディングの一時ファイル", + "HeaderApiKeys": "APIキー", + "HeaderApiKeysHelp": "Emby サーバと通信するには外部アプリケーションに API キーが必要です。 キーは、Emby アカウントでログインするか、アプリケーションにキーを手動で付与することにより発行されます。", + "HeaderApiKey": "API キー", + "HeaderResumeSettings": "レジューム設定", + "HeaderFetcherSettings": "フェッチャの設定", + "HeaderActivity": "アクティビティ", + "ButtonPurchase": "購入", + "HeaderInstall": "インストール", + "LabelSelectVersionToInstall": "インストールするバージョンの選択:", + "LinkLearnMoreAboutSubscription": "Emby Premiere について", + "MessagePluginRequiresSubscription": "このプラグインには、14日間の無料試用後に有効な Emby Premiere サブスクリプションが必要です。", + "MessagePremiumPluginRequiresMembership": "このプラグインは、14日間の無料試用後に購入するために、アクティブな Emby Premiere サブスクリプションが必要です。", + "HeaderDeveloperInfo": "デベロッパ情報", + "HeaderRevisionHistory": "リビジョンの履歴", + "ButtonViewWebsite": "Webサイトを表示", + "OptionSaveMetadataAsHidden": "メタデータと画像を隠しファイルとして保存する", + "LabelConnectEmail": "(オプション) Emby Connect のユーザ名またはメールアドレス:", + "LabelConnectEmailHelp": "(任意)このローカルユーザーを既存のEmby Connectアカウントにリンクすると、サーバーのIPアドレスを知らなくても、どのEmbyアプリからでも簡単にサインインできるようになります。", + "ButtonLearnMoreAboutEmbyConnect": "Emby Connect について", + "LabelDateAddedBehavior": "新しいコンテンツが追加された日付:", + "OptionDateAddedImportTime": "ライブラリにスキャンされた日付を使用する", + "OptionDateAddedFileTime": "ファイル作成日を使用する", + "LabelDateAddedBehaviorHelp": "メタデータ値が存在する場合、これらのオプションのいずれかの前に常に使用されます。", + "HeaderLibrarySettings": "ライブラリの設定", + "HeaderAutomaticSubtitleDownloads": "字幕の自動ダウンロード", + "HeaderCameraUploadHelp": "Emby アプリは、モバイルデバイスから撮影した写真を Emby サーバに自動的にアップロードできます。", + "LabelCameraUploadPath": "カメラアップロードパス:", + "LabelCameraUploadPathHelp": "カスタムアップロードパスを選択します。これにより、[カメラアップロード]セクションで設定したデフォルト設定が上書きされます。空白のままにすると既定のフォルダが使用されます。カスタム パスを使用する場合は、Emby ライブラリ設定でライブラリとして追加する必要もあります。", + "DefaultCameraUploadPathHelp": "カスタムアップロードパスを選択します。 空白のままにすると、デフォルトのフォルダーが使用されます。 カスタムパスを使用する場合は、Emby ライブラリセットアップでライブラリとして追加する必要もあります。", + "LabelCreateCameraUploadSubfolder": "デバイス毎にサブフォルダを作成する", + "LabelCreateCameraUploadSubfolderHelp": "デバイスページから特定のフォルダをクリックして、デバイスに割り当てることができます。", + "LabelCustomDeviceDisplayNameHelp": "デバイスによって報告された名前を使用するには、カスタム表示名を指定するか、空のままにします。", + "TabParentalControl": "ペアレンタルコントロール", + "HeaderAccessSchedule": "アクセス スケジュール", + "HeaderAccessScheduleHelp": "特定の時間にアクセスを制限するアクセススケジュールを作成します。", + "HeaderLibraryAccess": "ライブラリーアクセス", + "HeaderChannelAccess": "チャンネル アクセス", + "LabelForgotPasswordUsernameHelp": "覚えている場合はユーザ名を入力します。", + "TitlePasswordReset": "パスワードリセット", + "HeaderBlockItemsWithNoRating": "評価情報がないアイテムまたは認識できないアイテムをブロックする:", + "LabelBlockContentWithTags": "タグを使用してアイテムを制限する", + "LabelTagRestrictionMode": "タグ制限モード:", + "BlockItemsWithTheseTags": "これらのタグを持つアイテムをブロックする", + "AllowItemsWithTheseTags": "次のタグを持つアイテムのみを許可する", + "OptionAllowContentDownloading": "メディアのダウンロードを許可する", + "LabelNewUserNameHelp": "ユーザ名には、文字(a〜z)、数字(0〜9)、ダッシュ(-)、アンダースコア(_)、アポストロフィ( ')、およびピリオド(.)を含めることができます。", + "HeaderThisUserIsCurrentlyDisabled": "このユーザは現在無効になっています。 このユーザを有効にするには、このページの下部にあるオプションをご覧ください。", + "OptionAllowSyncTranscoding": "トランスコーディングが必要なメディアのダウンロードを許可する", + "AllowMediaConversion": "メディア変換を許可する", + "AllowMediaConversionHelp": "メディア変換機能へのアクセスを許可または拒否します。", + "OptionAllowAudioPlaybackTranscoding": "メディア再生中に必要に応じて音声を互換フォーマットにトランスコードすることを許可する", + "OptionAllowVideoPlaybackTranscoding": "メディア再生中に必要に応じて、動画を互換フォーマットにトランスコードすることを許可する", + "OptionAllowVideoPlaybackRemuxing": "再エンコードせずに変換が必要なビデオの再生を許可する", + "OptionAllowMediaPlaybackTranscodingHelp": "トランスコーディングへのアクセスを制限すると、品質の選択が無効になり、サポートされていないメディア形式またはネットワーク帯域幅が不十分なため、Emby アプリで再生エラーが発生する可能性があります。", + "LabelRemoteClientBitrateLimit": "インターネット ストリーミング ビットレート制限 (Mbps):", + "LabelRemoteClientBitrateLimitHelp": "ネットワークデバイス外のすべてに対するオプションのストリームごとのビットレートを制限します。 デバイスがインターネット接続で処理できるよりも高いビットレートを要求しないようにするのに役立ちます。 ビデオをオンザフライでより低いビットレートにトランスコードするために、サーバーのCPU負荷が増加する可能性があります。", + "LabelUserRemoteClientBitrateLimitHelp": "サーバーの詳細設定で設定された既定のグローバル値が上書きされます。", + "OptionEnableFullSpeedConversion": "最速での変換を有効にする", + "OptionEnableFullSpeedConversionHelp": "既定ではリソースの消費を最小限に抑えるため、変換は低速で実行されます。", + "OptionEnableAutomaticServerUpdates": "サーバの自動アップデートを有効にする", + "HeaderTVSources": "TV ソース", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "チューナー IP アドレス:", + "HeaderGuideProviders": "TV ガイドデータプロバイダ", + "HeaderAddGuideSource": "番組表データソースを追加", + "LabelZipCode": "郵便番号:", + "LabelLineup": "ラインナップ:", + "LabelImportOnlyFavoriteChannels": "お気に入りとしてマークされたチャンネルに制限する", + "ImportFavoriteChannelsHelp": "有効にすると、チューナーデバイスでお気に入りとしてマークされているチャンネルのみがインポートされます。", + "HeaderDefaultRecordingSettings": "既定の録画設定", + "LabelDisplayName": "表示名:", + "OptionDownloadImagesInAdvance": "事前に画像をダウンロードする", + "OptionDownloadImagesInAdvanceHelp": "デフォルトでは、ほとんどの画像は Emby アプリから要求された場合にのみダウンロードされます。 新しいメディアがインポートされるときに、すべての画像を事前にダウンロードするには、このオプションを有効にします。 これにより、ライブラリスキャンが大幅に長くなる場合があります。", + "MessageThankYouForSupporting": "Embyを支えていただきありがとうございます", + "FileReadCancelled": "ファイルの読み取りはキャンセルされました。", + "FileNotFound": "ファイルが見つかりません。", + "FileReadError": "ファイルの読み取り中にエラーが発生しました。", + "NoPluginConfigurationMessage": "このプラグインには設定がありません。", + "HeaderNewApiKey": "新しい API キー", + "HeaderNewApiKeyHelp": "Emby サーバと通信するためのアプリケーション許可を付与します。", + "MessageKeyEmailedTo": "キーは {0} にメールされました。", + "HeaderConfirmation": "確認", + "MessageKeyUpdated": "ありがとうございました。 Emby Premiereキーが更新されました。", + "MessageKeyRemoved": "ありがとうございました。 Emby Premiereキーは削除されました。", + "TextEnjoyBonusFeatures": "ボーナス機能をお楽しみください", + "MessageErrorLoadingSupporterInfo": "Emby Premiere 情報の読み込み中にエラーが発生しました。 後でもう一度やり直してください。", + "ValueTimeLimitSingleHour": "時間制限: 1時間", + "ValueTimeLimitMultiHour": "時間制限: {0} 時間", + "General": "全般", + "HeaderScreenSavers": "スクリーンセーバー", + "Reporting": "レポート", + "LabelStopping": "停止中", + "HeaderSelectCertificatePath": "証明書のパスを選択", + "HeaderSupporterBenefit": "アクティブな Emby Premiere サブスクリプションは、Emby DVR へのアクセス、オフラインメディア、プレミアムプラグインなどの追加の特典を提供します。{0}詳細{1}を参照してください。", + "LabelAbortedByServerShutdown": "(サーバーのシャットダウンによって中止されました)", + "LabelScheduledTaskLastRan": "最後の実行 {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "タスク トリガーの削除", + "MessageDeleteTaskTrigger": "このタスクトリガーを削除してもよろしいですか?", + "MessageNoPluginsDueToAppStore": "プラグインを管理するには、Emby Web アプリを使用してください。", + "LabelVersionInstalled": "{0} がインストールされました", + "HeaderSelectServerCachePath": "サーバキャッシュパスの選択", + "HeaderSelectTranscodingPath": "トランスコード一時パスの選択", + "HeaderSelectMetadataPath": "メタデータ パスの選択", + "HeaderSelectServerCachePathHelp": "サーバキャッシュファイルに使用するパスを参照または入力します。 フォルダは書き込み可能である必要があります。", + "HeaderSelectTranscodingPathHelp": "一時ファイルのトランスコードに使用するパスを参照または入力します。 フォルダは書き込み可能である必要があります。", + "HeaderSelectMetadataPathHelp": "メタデータを保存するパスを参照または入力します。 フォルダは書き込み可能である必要があります。", + "MessageConfirmRestart": "Emby サーバを再起動しますか?", + "MessageConfirmShutdown": "Emby サーバをシャットダウンしますか?", + "LabelLocalAccessUrl": "家庭内 (LAN) アクセス: {0}", + "LabelRemoteAccessUrl": "リモート (WAN) アクセス: {0}", + "LabelRunningOnPort": "http ポート {0}で実行しています。", + "LabelRunningOnPorts": "http ポート {0} 、https ポート {1} で実行しています。", + "LabelCurrentPath": "現在のパス:", + "HeaderSelectMediaPath": "メディアパスの選択", + "HeaderSelectPath": "パスの選択", + "MessageDirectoryPickerInstruction": "ネットワークボタンを押してもデバイスを見つけられなかった場合はネットワークパスを手動で入力できます。例: {0}または{1}など‎", + "MessageDirectoryPickerBSDInstruction": "BSD の場合、Emby がアクセスできるように FreeNAS Jail 内のストレージを設定する必要がある場合があります。", + "MessageDirectoryPickerLinuxInstruction": "Arch Linux、CentOS、Debian、Fedora、OpenSuse、または Ubuntu 上の Linux の場合はストレージへの読み取りアクセス権を Emby システムユーザーに付与する必要があります。", + "MetadataManager": "メタデータマネージャ", + "OptionBlockLiveTvChannels": "Live TVチャンネル", + "OptionBlockChannelContent": "インターネット チャネル コンテンツ", + "ButtonRevoke": "取り消す", + "MessageConfirmRevokeApiKey": "この API キーを取り消しますか? Emby サーバーへのアプリケーションの接続は切断されます。", + "HeaderConfirmRevokeApiKey": "API キーの取り消し", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "続行する前に利用規約に同意してください。", + "HeaderChangeFolderType": "コンテンツの種類を変更", + "HeaderChangeFolderTypeHelp": "種類を変更するには、ライブラリを削除し新しい種類で再構築してください。", + "HeaderAlert": "警告", + "MessagePleaseRestart": "更新を完了するには、再起動してください。", + "OptionHomeVideos": "ホームビデオと写真", + "OptionBooks": "書籍", + "HeaderMetadataReaders": "メタデータリーダー", + "LabelMetadataReadersHelp": "優先度の高い順に、優先ローカルメタデータソースをランク付けします。 最初に見つかったファイルが読み込まれます。", + "HeaderSubtitleDownloaders": "字幕ダウンローダー", + "SubtitleDownloadersHelp": "優先度の高い順に優先字幕ダウンローダーを有効にしてランク付けします。 Emby プラグインカタログを使用して、より多くの字幕プロバイダーをインストールできます。", + "LabelMetadataDownloaders": "メタデータダウンローダ:", + "LabelMetadataDownloadersHelp": "優先順位に従って優先メタデータダウンローダを有効にしてランク付けします。 優先度の低いダウンローダは、不足している情報を入力するためにのみ使用されます。", + "HeaderMetadataSavers": "メタデータセーバー", + "LabelMetadataSaversHelp": "メタデータを保存するファイル形式を選択します。", + "LabelImageFetchers": "画像取り込み:", + "LabelImageFetchersHelp": "優先度の高い順に優先画像フェッチャーを有効にしてランク付けします。", + "PersonTypePerson": "人物", + "HeaderRemoveMediaLocation": "メディアの場所を削除", + "MessageConfirmRemoveMediaLocation": "この場所を削除してもよろしいですか?", + "LabelNewName": "新しい名前", + "HeaderRemoveLibrary": "ライブラリを削除", + "MessageAreYouSureYouWishToRemoveLibrary": "Embyサーバーから「{0}」ライブラリを削除してもよろしいですか?メディアファイル自体には影響しません。", + "ButtonRename": "リネーム", + "HeaderPluginInstallation": "プラグインのインストール", + "MessageTrialExpired": "この機能の試用期間が終了しました", + "MessageTrialWillExpireIn": "この機能の試用期間‎‎は {0} 日で期限切れになります", + "ValuePriceUSD": "価格: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "この機能に登録されており、アクティブな Emby Premiere サブスクリプションで引き続き使用できます。", + "HeaderSelectExternalPlayer": "外部プレーヤの選択", + "HeaderExternalPlayerPlayback": "外部プレーヤ再生", + "HeaderThankYou": "ありがとうございます", + "HeaderSelectUploadPath": "アップロードパスの選択", + "ErrorMessageStartHourGreaterThanEnd": "終了時間は開始時間よりも長くする必要があります。", + "MessagePluginConfigurationRequiresLocalAccess": "このプラグインを設定するには、ローカルサーバーに直接サインインしてください。", + "MovieLibraryHelp": "{0}Emby 映画ネーミングガイド{1}を確認してください。", + "TvLibraryHelp": "{0}Emby TV ネーミングガイド{1}を確認してください。", + "BookLibraryHelp": "テキストブックがサポートされています。{0}Emby ブックのネーミングガイド{1}を確認してください。", + "MessageGamePluginRequired": "GameBrowserプラグインのインストールが必要です", + "HeaderUnlockApp": "App をアンロック", + "MessagePaymentServicesUnavailable": "現在、支払いサービスは利用できません。 後でもう一度やり直してください。", + "NoNewDevicesFound": "新しいデバイスは見つかりませんでした。 新しいチューナーを追加するには、このダイアログを閉じて、デバイス情報を手動で入力します。", + "MessageConfirmDeleteTunerDevice": "このデバイスを削除してもよろしいですか?", + "MessageConfirmDeleteGuideProvider": "このガイドプロバイダを削除してもよろしいですか?", + "HeaderDeleteProvider": "プロバイダを削除", + "ErrorAddingTunerDevice": "チューナーデバイスの追加中にエラーが発生しました。 アクセス可能であることを確認して、再試行してください。", + "ErrorSavingTvProvider": "TVプロバイダの保存中にエラーが発生しました。 アクセス可能であることを確認して、再試行してください。", + "ErrorGettingTvLineups": "テレビ番組表のダウンロード中にエラーが発生しました。 情報が正しいことを確認して、再試行してください。", + "MessageCreateAccountAt": "{0} でアカウントを作成する", + "ErrorPleaseSelectLineup": "ラインアップを選択して、もう一度お試しください。 利用可能なラインアップがない場合は、ユーザー名、パスワード、郵便番号が正しいことを確認してください。", + "ErrorValidatingSupporterInfo": "Emby Premiere 情報の検証中にエラーが発生しました。 後でもう一度やり直してください。", + "LabelLocalSyncStatusValue": "状態: {0}", + "HeaderTopPlugins": "トップ プライグイン", + "ForAdditionalLiveTvOptions": "Emby {0} プラグインカタログ{1}を参照して、追加の Live TV プロバイダをインストールします。", + "AddUser": "ユーザーを追加", + "HeaderEmailAddress": "電子メールアドレス", + "NumLocationsValue": "{0} フォルダ", + "PleaseAddAtLeastOneFolder": "追加ボタンをクリックして、このライブラリに少なくとも1つのフォルダーを追加してください。", + "ErrorAddingMediaPathToVirtualFolder": "メディアパスの追加中にエラーが発生しました。 パスが有効であり、Emby サーバプロセスがその場所にアクセスできることを確認してください。", + "ErrorAddingEmbyConnectAccount3": "Emby アカウントは既に既存のローカルユーザにリンクされています。 Emby アカウントは、一度に1人のローカルユーザにのみリンクできます。", + "HeaderConfirmPluginInstallation": "プラグインのインストール確認", + "PleaseConfirmPluginInstallation": "OKをクリックして、上記を読み、プラグインのインストールを続行することを確認してください。", + "MessagePluginInstallDisclaimer": "Emby コミュニティメンバーによって構築されたプラグインは、追加の機能と利点を使用して Emby のエクスペリエンスを向上させる優れた方法です。 インストールする前に、長いライブラリスキャン、追加のバックグラウンド処理、システムの安定性の低下など、Emby サーバに与える影響に注意してください。", + "HardwareAccelerationWarning": "ハードウェア アクセラレータを有効にすると、一部の環境で不安定になる場合があります。オペレーティング システムとビデオ ドライバが完全に最新であることを確認します。有効にした後でビデオを再生できない場合は、設定を [自動] に戻す必要があります。", + "ValueExample": "例: {0}", + "LabelFileOrUrl": "ファイルまたはURL:", + "OptionEnableForAllTuners": "すべてのチューナーデバイスに対して有効にする", + "HeaderTuners": "チューナー", + "DrmChannelsNotImported": "DRMのあるチャンネルはインポートされません。", + "LabelAllowHWTranscoding": "ハードウェアトランスコーディングを許可する", + "AllowHWTranscodingHelp": "有効にするとチューナーがストリームをオンザフライでトランスコードできるようになります。 これにより、Emby サーバに必要なトランスコーディングを減らすことができます。", + "MetadataSettingChangeHelp": "メタデータ設定を変更すると今後追加される新しいコンテンツに影響します。既存のコンテンツを更新するには、詳細画面を開いて更新ボタンをクリックするか、メタデータ マネージャを使用して一括更新を実行します。", + "RecordingPathChangeMessage": "録音フォルダを変更しても、既存の録音は古い場所から新しい場所に移行されません。 必要に応じて手動で移動する必要があります。", + "LabelLocalIpAddress": "ローカルIPアドレス:", + "LabelBindToLocalNetworkAddressHelp": "オプション。 Emby サーバが Emby アプリに提示するローカルIPアドレスをオーバーライドします。 空白のままにすると、サーバーはローカルIPアドレスを自動的に検出します。", + "SettingsWarning": "値を変更すると、不安定または接続障害が発生する可能性があります。問題が発生した場合は、デフォルトに戻すことをお勧めします。‎", + "OptionSaveMetadataAsHiddenHelp": "変更すると今後保存される新しいメタデータに適用されます。既存のメタデータ ファイルは次回 Emby サーバによって保存された時点で更新されます。", + "EnablePhotos": "写真を有効にする", + "EnablePhotosHelp": "写真は他のメディアファイルと一緒に検出され、表示されます。", + "ImportPlaylists": "プレイリストファイルをインポート", + "ImportPlaylistsHelp": "メディアディレクトリ内で見つかったプレイリストは、Embyサーバーにインポートできます。", + "SaveThumbnailImagesIntoMediaFolders": "サムネイル画像をメディアフォルダに保存する", + "LabelGenerateVideoPreviewThumbnails": "‎ビデオプレビューのサムネイルを生成する:‎", + "LabelEnableDebugLogging": "デバッグログを有効にする", + "OptionEnableExternalContentInSuggestions": "サジェストで外部コンテンツを有効にする", + "OptionEnableExternalContentInSuggestionsHelp": "インターネットトレーラとテレビの生放送番組を推奨コンテンツに含めることを許可します。", + "LabelOptionalNetworkPath": "(オプション) 共有ネットワークフォルダ:", + "LabelOptionalNetworkPathHelp": "このフォルダがネットワーク上で共有されている場合は、ネットワーク共有パスを指定すると、他のデバイス上の Emby アプリがメディア ファイルに直接アクセスできるようになります。", + "SynologyUpdateInstructions": "DSMにログインし、パッケージセンタにアクセスして更新してください。", + "HeaderRecordingPostProcessing": "録画後の処理", + "LabelPostProcessorArguments": "後処理のコマンドライン引数:", + "PostProcessorArgumentsHelp": "以下の変数をコマンドラインで使用して、ポストプロセッサーにデータを渡すことができます。", + "LabelPostProcessor": "後処理アプリケーション:", + "DvrPostProcessorPathArgument": "{path}: 新しい録画ファイルのフルパス", + "OptionAutomaticallyGroupSeries": "複数のフォルダーに分散しているシリーズを自動的にマージします", + "OptionAutomaticallyGroupSeriesHelp": "有効にすると、このライブラリ内の複数のフォルダーに分散されているシリーズが自動的に単一のシリーズにマージされます。", + "WhenDidYouPurchaseApp": "このアプリを最初に購入したのはいつですか?", + "PreferEmbeddedTitlesOverFileNames": "ファイル名よりも埋め込みタイトルを優先する", + "PreferEmbeddedTitlesOverFileNamesHelp": "インターネット メタデータまたはローカル メタデータが使用できない場合の既定の表示タイトルを決定します。", + "FriendlyNameForReferenceHelp": "自分で識別しやすいように表示に使われるわかりやすい名前。", + "HeaderLiveTvTunerSetup": "Live TV チューナーのセットアップ", + "HeaderTVSourceSetup": "TV ソースのセットアップ", + "HeaderDetectMyDevices": "デバイスを検出する", + "MessagePleaseWait": "お待ちください。 これには数分かかる場合があります。", + "DetectingDevices": "デバイスの検出", + "LabelAutomaticallyRefreshInternetMetadataEvery": "インターネットからメタデータを自動的に更新します:", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "プレースホルダー(例:「TBA」など)のタイトルを持つエピソードのメタデータを自動的に更新する", + "EveryNDays": "{0} 日ごと", + "LabelCertificatePassword": "証明書のパスワード:", + "LabelCertificatePasswordHelp": "証明書にパスワードが必要な場合は、ここに入力してください。", + "HeaderNewLibrary": "新しいライブラリ", + "HttpsRequiresCert": "安全な接続を有効にするには、Lets Encrypt などの信頼できる SSL 証明書を提供する必要があります。 証明書を提供するか、安全な接続を無効にしてください。", + "ServerRestartNeededAfterPluginInstall": "プラグインをインストールした後、Emby サーバを再起動する必要があります。", + "PluginInstalledMessage": "プラグインが正常にインストールされました。 変更を有効にするには、Embyサーバを再起動する必要があります。", + "MessagePremiereStatusGood": "Emby Premiereプランが {0} つあり、デバイスの使用量は制限内です。", + "MessagePremiereStatusClose": "Emby Premiereプランは {0} つありますが、デバイスの使用量は制限に近づいています。", + "MessagePremiereExtendedPlans": "{0}拡張デバイスプラン{1} を検討してください", + "MessagePremiereStatusOver": "Emby Premiereプランは {0} つありますが、デバイスの制限を超えています!", + "ListItemPremiereSub": "{2} で購入した {0} サブスクリプションの有効期限は {1} です", + "LabelClickToManage": "このサブスクリプションを管理するにはクリックしてください", + "LabelCancelInfo": "このサブスクリプションは {0} で直接管理できます", + "LabelAlreadyCanceled": "このサブスクリプションはキャンセルされました。 キーは有効期限まで有効です。", + "HeaderCancelSub": "Emby Premiere をキャンセル", + "MessageConfirmSubCancel": "Emby Premiereのすべての優れた機能をお見逃しなく!", + "ButtonCancelSub": "キャンセルします", + "ButtonDontCancelSub": "Emby Premiere を続けます", + "MessageSubCancelReqSent": "キーの所有者にメールが送信されました。 このサブスクリプションのキャンセルを完了するには、そのメールの指示に従ってください。 またお会いしましょう!", + "MessageSubCancelError": "キャンセル中にエラーが発生しました。 {0} にメールを送信してください。すぐに対応します。", + "LabelAlreadyCancelled": "このサブスクリプションはキャンセルされました。 再度請求されることはありませんが、上記の日付まで機能は動作します。", + "AllowOnTheFlySubtitleExtraction": "オンザフライで字幕の抽出を許可する", + "AllowOnTheFlySubtitleExtractionHelp": "埋め込まれた字幕はビデオからの抽出・ビデオトランスコーディングを防ぐためにプレーンテキストでEmbyアプリに配信することができます。一部のシステムではこの処理に時間がかかり、抽出プロセス中にビデオの再生が停止する可能性があります。クライアント デバイスでネイティブにサポートされていない場合、埋め込み字幕をビデオ トランスコーディングで書き込むには無効にします。", + "AllowOnTheFlyFontExtraction": "字幕フォントのオンザフライ抽出を許可する", + "AllowOnTheFlyFontExtractionHelp": "カスタムフォントを含む動画を正しく表示するために、埋め込みフォントを動画から抽出してEmbyアプリに配信できます。ただし、一部のシステムでは抽出に時間がかかり、その間に動画再生が一時停止する場合があります。", + "EnableDebugLoggingHelp": "デバッグ ログはトラブルシューティングの目的で必要な場合にのみ有効にする必要があります。ファイルシステムへのアクセスが増加すると一部の環境でサーバマシンがスリープ状態にならない場合があります。", + "LabelSimultaneousConnectionLimit": "同時ストリーム制限:", + "SimultaneousConnectionLimitHelp": "許可する同時ストリームの最大数。制限がない場合は 0 を入力します。", + "LaunchWebAppOnStartup": "Emby サーバーの起動時に Web ブラウザで Emby Web アプリを起動する", + "LaunchWebAppOnStartupHelp": "Emby サーバの最初の起動時に既定の Web ブラウザで Web アプリが開きます。これはサーバの再起動機能を使用する場合には発生しません。‎", + "LabelReferrerHeader": "HTTPヘッダの参照元:", + "LabelUserAgentHeader": "HTTPヘッダのユーザーエージェント:", + "SupplyCustomValueIfNeeded": "必要に応じて、カスタムHTTPヘッダー値を指定します。", + "HeaderConfigureRemoteAccess": "リモート アクセスの構成", + "LearnHowToCreateSynologyShares": "Synology でフォルダーを共有する方法について説明します。", + "LabelAllowedRemoteAddresses": "リモート IP アドレス フィルタ:", + "LabelAllowedRemoteAddressesMode": "リモートIPアドレスフィルタモード:", + "Whitelist": "ホワイトリスト", + "Blacklist": "ブラックリスト", + "AllowedRemoteAddressesHelp": "リモート接続を許可するネットワークの IP アドレスまたは IP/ネットマスク エントリのコンマ区切りリスト。空白のままにすると全てのリモートアドレスが許可されます。", + "LabelLanNetworks": "LAN ネットワーク:", + "LanNetworksHelpText": "帯域幅制限やリモートアクセス制限を適用する際に、ローカルネットワークとして扱うネットワークを指定します。カンマ区切りでIPアドレスまたはIP/ネットマスク形式で入力してください。設定した場合、それ以外のIPアドレスは外部ネットワークとして扱われます。未設定の場合は、サーバーのサブネットおよび一般的なプライベートIPサブネット(192.168.0.0/24、172.16.0.0/12など)がローカルネットワークとして認識されます。", + "LabelSecureConnectionsMode": "セキュリティで保護された接続モード:", + "PreferredNotRequired": "推奨しますが、必須ではありません", + "RequiredForAllRemoteConnections": "すべてのリモート接続に必要", + "HandledByProxy": "リバースプロキシによる処理", + "SaveSubtitlesIntoMediaFolders": "字幕をメディアフォルダに保存する", + "SaveSubtitlesIntoMediaFoldersHelp": "ビデオファイルと一緒に字幕を保存すると、字幕をより簡単に管理できます。", + "AutomaticSubtitleDownloadInstructions": "自動字幕ダウンロードを管理するには、Emby ライブラリ設定でライブラリをクリックし、そのライブラリの字幕ダウンロード設定を編集します。", + "ProviderNeedsSetupWithUrl": "{0} を使用するには、Embyサーバーの {1} 設定画面{2} で追加のセットアップが必要です。", + "LabelEnableHardwareAcceleration": "‎使用可能な場合はハードウェアアクセラレータを有効にする:", + "HeaderPreferredHardwareDecoders": "優先するハードウェア デコーダ", + "HeaderPreferredHardwareEncoders": "優先するハードウェア エンコーダ", + "AllowChangingImageAndPassword": "このユーザにパスワードとプロファイル画像の変更を許可する", + "LabelSimultaneousStreamLimit": "最大同時ビデオストリーム数:", + "SimultaneousStreamLimitHelp": "同時ビデオ再生セッションの数を制限します。", + "LabelMusicFolderStructure": "音楽フォルダの構造:‎", + "LabelMusicFolderStructureHelp": "‎整理済みフォルダの構造を選択します。不明な場合、またはフォルダがいずれかのオプションと完全に一致しない場合は、[その他] の既定のオプションを選択してください。‎", + "OtherOrUnstructured": "その他または未整理", + "PerfectArtistAlbumTrack": "トラックはアルバムフォルダに含まれ、アーティスト\\アルバムフォルダの形式で完全に整理されています。", + "PerfectAlbumTrack": "‎トラックはアルバムフォルダに含まれ、アルバムフォルダへ完全に整理されています。", + "LabelMinCollectionSize": "自動的にコレクションを作成する最小サイズ:‎", + "PerfectAuthorAudioBookTrack": "著者名/書籍名フォルダに整理され、トラックは書籍フォルダ内に直接配置されます。", + "PerfectAudioBookTrack": "書籍フォルダごとに整理され、トラックは各書籍フォルダ内に直接配置されます。", + "MinCollectionSizeHelp": "最小のタイトル数がライブラリに含まれる場合はコレクションを自動的に作成します。この値を変更しても既存のコレクションには影響しません。‎", + "LabelImportCollections": "インポートしたコレクション情報", + "LabelImportCollectionsHelp": "有効なメタデータダウンローダ (現在は TheMovieDb でのみサポートされます) からコレクション情報がインポートされ、不要なコレクションが自動的に作成される可能性があります。無効にすると将来のコレクションは自動的に作成されなくなり、既存のコレクションは削除されません。‎", + "LabelAllowAdultMetadata": "成人向けメタデータを許可する", + "LabelAllowAdultMetadataHelp": "‎インターネットからメタデータを検索する際に、成人向けタイトルのマッチングを許可します。‎", + "HeaderVideoPreviewThumbnails": "ビデオプレビューサムネイル", + "LabelEnableHDRToneMapping": "HDRトーンマッピングを有効にする", + "EnableHDRToneMappingHelp": "トーンマッピングを有効にすると、HDRコンテンツをトランスコードする際に正しい色変換が行われます。無効のままだと、映像が非常に暗く、色あせて表示されることがあります。この機能をハードウェアアクセラレーションで利用するには、追加のドライバコンポーネントが必要になる場合があります。詳細はハードウェアアクセラレーション設定ガイドをご確認ください。", + "WithHardwareAcceleratedTranscoding": "はい(ハードウェアアクセラレーション使用時のみ)", + "TranscodingStillInitializing": "Embyサーバーのトランスコードサービスはまだ起動中です。サービスの準備が整い次第、この画面は自動的に更新されます。", + "WithEitherHardwareOrSoftwareTranscoding": "はい、ハードウェアまたはソフトウェアのどちらかでトランスコーディングを行います", + "ToneMappingInHardwareDescription": "トーンマッピングは、ハードウェアアクセラレーションが有効で対応している場合に実行され、それ以外の環境ではスキップされます。", + "ToneMappingInSoftwareDescription": "トーンマッピングはCPUによるソフトウェア処理で実行されます。これはハードウェアアクセラレーションによる処理よりも大幅に遅く、非常に高性能なサーバーマシンが必要です。", + "ToneMappingInBothDescription": "トーンマッピングは、ハードウェアアクセラレーションが有効で対応している場合にハードウェアで実行され、それ以外の環境ではソフトウェア処理にフォールバックします。ソフトウェアによるトーンマッピングはハードウェア処理よりも大幅に遅く、非常に高性能なサーバーマシンが必要です。", + "AutoMapped": "自動マッピング", + "ManuallyMapped": "手動マッピング", + "NotMappedToGuideData": "番組表データにマッピングされていません", + "MappedToValue": "{0} にマッピングされています", + "LabelAutomaticallyWakeServerForRecordings": "録画のためにサーバーを自動で起動する", + "LabelAutomaticallyWakeServerForRecordingsHelp": "起動イベントはサーバーのOSでスケジュールされます。このオプションを無効にすると今後のスケジュールは行われませんが、既に予定されたイベントは削除されません。", + "Database": "データベース", + "LabelOptimizeDatabaseOnShutdown": "サーバーのシャットダウン時にデータベースの最適化を試みる", + "LabelOptimizeDatabaseOnShutdownHelp": "データベースの最適化処理は通常何も行いませんが、クエリプランナーにとって有益と判断された場合に分析を実行することがあります。このため、Embyサーバーのシャットダウンに時間がかかる場合があります。", + "LabelDatabaseCacheSize": "データベースキャッシュサイズ (MB)", + "LabelDatabaseCacheSizeHelp": "データベースファイルごとに、一度にメモリ上に保持するデータ量を設定します。値を大きくすると、Embyサーバーのパフォーマンスが向上する場合があります。変更を反映するにはサーバーの再起動が必要です。", + "LabelDatabaseAnalysisLimit": "分析行数の上限", + "LabelDatabaseAnalysisLimitHelp": "データベースの最適化時に、ANALYZEコマンドが各インデックスで調査するおおよその行数を指定します。値を大きくすると最適化の効果が高まりますが、Embyサーバーのシャットダウン時間が長くなる場合があります。", + "LabelVacuumDb": "次回のEmbyサーバー起動時にデータベースを再構築する", + "LabelVacuumDbHelp": "データベースの再構築(Vacuum)は、ファイルを最適化してディスク使用量を最小限に抑えます。場合によってはEmbyサーバーのパフォーマンスが向上することがあります。ただし、Vacuum実行中はEmbyサーバーを使用できず、進行状況を確認する方法もありません。この間にサーバープロセスを強制終了するとデータベースが破損する可能性があるため注意してください。これは一度限りの操作であり、次回のサーバー起動時にはこのオプションは自動的にオフに戻ります。", + "AdvancedOptionsWarning": "これらは上級者向けのオプションであり、特別な理由がない限りデフォルトのままにしておくことを推奨します。", + "HeaderRecentlyActiveDevices": "最近アクティブなデバイス", + "YesUntilServerRestart": "はい(次回のサーバー再起動まで)", + "YesUntilLogRotate": "はい(次のログファイルのローテーションまで)", + "LabelSubtitleDownloadMaxAge": "指定した期間より古い動画の字幕を自動ダウンロードしない", + "SubtitleDownloadMaxAgeHelp": "これは「追加日」のメタデータ値に基づきます。", + "NoAgeLimit": "年利制限なし", + "AnonymizeLogContents": "ログの内容を匿名化", + "Markers": "マーカー", + "LabelGenerateIntroVideoMarkers": "イントロ動画マーカーを生成", + "GenerateIntroVideoMarkersHelp": "Embyアプリで番組のイントロを検出し「イントロをスキップ」ボタンを表示します。イントロの検出には時間がかかり、CPUまたはディスク使用率が高くなることがあります。", + "LabelCopyFromUser": "ユーザーから設定をコピー", + "CopyFromUserHelp": "既存のユーザーの情報をコピーすることで、新規ユーザー作成を迅速化できます(オプション)。", + "UserPolicy": "ユーザーポリシー(ライブラリと機能へのアクセス、ペアレンタルコントロールなど)", + "UserConfiguration": "ユーザー設定(優先オーディオ・字幕言語、ライブラリの順序など)", + "UserDataAndDescription": "ユーザーデータ(お気に入り、視聴・聴取状況など)", + "HeaderCopyOptions": "コピーオプション", + "LabelMultiRestrictionMode": "複数制限モード", + "MultiRestrictionModeAll": "レーティングとタグの両方の制限に一致するコンテンツを許可する", + "MultiRestrictionModeAny": "レーティングまたはタグのいずれかの制限に一致するコンテンツを許可する", + "AllowMappingByChannelNumber": "チャンネル番号を使用して番組データへのマッピングを許可する", + "AllowMappingByChannelNumberHelp": "チャンネル名に基づいたマッチングが見つからない場合に、チューナーチャンネルと番組データを照合するための代替手段として使用できます。チューナーからのチャンネル番号が正しくない場合、不正確なマッチングが生じる可能性があります。", + "LabelPreferredSourceForChannelLogos": "ガイドデータとチューナーの両方にチャンネルロゴがある場合、チューナーよりもガイドデータのロゴを優先する", + "LabelPreferredSourceForChannelNumbers": "ガイドデータとチューナーの両方にチャンネル番号がある場合、チューナーよりもガイドデータのチャンネル番号を優先する", + "HeaderSoftwareEncoders": "ソフトウェアエンコーダー", + "LabelProxyHeaderMode": "クライアントのIPアドレスを特定するためにプロキシヘッダーを読み取る", + "ProxyHeadersRemoteOnly": "リモートネットワークアドレスが含まれている場合のみ", + "ProxyHeaderModeHelp": "接続デバイスのIPアドレスを特定するために、$\\text{\\textbraceleft}0\\text{\\textbraceright}$ や $\\text{\\textbraceleft}1\\text{\\textbraceright}$ などのリクエストヘッダーを使用するかどうかを決定します。これは、リバースプロキシを使用している場合にのみ有効にしてください。", + "AllowCameraUpload": "カメラアップロードを許可", + "AllowCameraUploadHelp": "許可されていて、かつEmbyモバイルアプリで有効にされている場合、ユーザーはカメラで撮影した写真や動画をこのEmby Serverに自動でアップロードできます。", + "CameraUploadMustBeGranted": "サーバー管理者にカメラアップロードのアクセス権も付与されている必要があります。", + "EnableReadingAndWritingPeopleMetadata": "人物メタデータファイルの読み取りと書き込みを有効にする", + "EnableReadingAndWritingPeopleMetadataHelp": "Nfo Metadataプラグインがインストールされている必要があります。これにより、編集した人物情報をNFOメタデータファイルに保存できますが、ライブラリのスキャン時間が長くなります。", + "LabelIgnoreSampleFiles": "ファイル名に「sample」という単語が含まれており、サイズが○○MB未満であるファイルを無視する", + "PreferredChannelImageSource": "優先するチャンネル画像のソース", + "PreferredChannelImageSourceHelp": "チューナーと番組データの両方に画像がある場合に、優先するチャンネル画像を選択", + "CacheImagesInServerData": "サーバーのメタデータフォルダーに画像のキャッシュコピーを保持する", + "CacheImagesInServerDataHelp": "メディアと画像が別のマシンに保存されている場合、サーバーのメタデータフォルダーに画像のキャッシュコピーを保持すると、ネットワークアクセスが減り、パフォーマンスが向上する可能性がありますが、このキャッシュを作成するコストとしてライブラリのスキャンが遅くなり、サーバーのメタデータフォルダーが消費するディスク容量が大幅に増えます。", + "AllowSharingPersonalContent": "このサーバーの他のユーザーと、プレイリストなどのパーソナルコンテンツの共有を許可する。", + "AllowSharingPersonalContentHelp": "これが許可された場合、このユーザーは自分のプレイリストを他のユーザーと共有できるようになりますが、プレイリストの項目は引き続きユーザーのライブラリアクセス権とペアレンタルコントロールに基づいて制限されます。", + "LiveBufferSizeHours": "ライブストリームのバッファサイズ制限(時間)", + "LiveBufferSizeHoursHelp": "バッファを長くすると、ライブストリーム中に前方や後方へのシーク機能が向上しますが、より多くのディスク容量を消費します。", + "LabelTranscodingMaxResolution": "最大トランスコード解像度", + "TranscodingMaxResolutionHelp": "Embyプレーヤーの品質設定に関係なく、すべてのビデオトランスコーディングに適用される上限を設定します。これは、サーバーのトランスコーディングプロセスによって消費されるリソースの削減に役立ちます。", + "EnableHevcEncodingExp": "HEVCビデオエンコーディングを有効にする(試験的)", + "EnableHevcEncodingHelp": "クライアントがサポートしている場合、HEVCコーデックを使用したトランスコーディングを有効にする。", + "LabelEnableMultiPartItems": "マルチパートアイテムを有効にする", + "EnableMultiPartItemsHelp": "part 1、part 2などと名付けられたファイルを自動的に検出し、グループ化します。追加のパートは、メインのアイテム詳細画面に表示されます。", + "MultiVersionItemsDetectionHelp": "同じアイテムの異なるバージョンを自動的に検出してグループ化します。アイテムのメイン詳細画面でバージョン選択が提供されます。ファイルに基づいたグループ化には、ファイルの適切な命名と整理が必要です。", + "MultiVersionMoviesDetectionHelp": "メタデータに基づいたグループ化は、外部ID(MovieDb、Imdbなど)が同じ映画をグループ化します。", + "EnableMultiPartItemsTVHelp": "テレビ番組のエピソードには対応していません。", + "HeaderAutomaticGrouping": "自動グループ化", + "LabelMultiVersionItemsDetection": "マルチバージョンアイテムの検出", + "MultiVersionItemsDetectionBoth": "ファイルとメタデータの両方に基づいてマルチバージョンアイテムを検出", + "MultiVersionItemsDetectionFiles": "ファイルに基づいてマルチバージョンアイテムを検出", + "MultiVersionItemsDetectionMetadata": "メタデータに基づいてマルチバージョンアイテムを検出", + "LabelNetworkRequestProtocol": "ネットワークリクエストプロトコル", + "NetworkRequestProtocolHelp": "メタデータプロバイダーやその他のサービスへの送信ネットワークリクエストに使用するプロトコルを選択します。外部サービスがIPv6を使用して到達できない場合、これをIPv4のみに設定する必要がある場合があります。", + "GenerateChaptersForVideos": "埋め込みチャプター情報を含まない動画に対してチャプターを生成する", + "GeneratedChapterInterval": "生成されるチャプターの間隔", + "StartOfSection": "チャプターの開始", + "Margins": "余白", + "PreviousSection": "前のチャプター", + "LayoutVertical": "縦スクロール", + "ZoomIn": "ズームイン", + "PageNarrow": "狭く", + "PreviousPage": "前のページ", + "PageMaximized": "最大化", + "ZoomOut": "ズームアウト", + "PageBook": "ダブルページ", + "LabelPageSize": "ページサイズ", + "PositionInBook": "本の中の位置", + "CurrentPage": "現在のページ", + "LayoutDouble": "ダブルページ", + "TableOfContents": "目次", + "PageSingle": "シングルページ", + "TotalPages": "総ページ数", + "ZoomNone": "既定のズーム", + "LayoutPage": "シングルページ", + "NextSection": "次のチャプター", + "ZoomAutoFit": "ページに合わせる", + "NextPage": "次のページ", + "RightToLeft": "右から左への順序", + "LetsGetSetup": "セットアップを始めましょう", + "HeaderIgnoreFiles": "無視するファイル", + "EnablePlexIgnoreAlias": "plexignore ファイルを.embyignore のエイリアスとしてサポートを有効にする。", + "HeaderMaintenanceMode": "メンテナンスモード", + "OptionEnableMaintenanceMode": "サーバーをメンテナンスモードにする", + "MaintenanceModeMessageHelp": "空白のままにすると、サーバーがメンテナンス中であることを示す一般的なメッセージが表示され、ユーザーの表示言語に基づいて翻訳されます。", + "ServerInMaintenanceMode": "Embyサーバーは現在メンテナンスモードで動作しています。ユーザーにはメンテナンスモードのメッセージのみが表示され、サーバーのメンテナンスモードを解除するまで継続します。", + "MaintenanceModeMessage": "メンテナンスモードのメッセージ", + "EnableMaintenanceModeHelp": "ユーザーにはメンテナンスモードのメッセージのみが表示されます。", + "ExcludeFromGlobalSearch": "グローバル検索から除外", + "MergeTopFoldersInFolderView": "フォルダー表示を使用するときに、トップレベルフォルダーの内容を統合する", + "MergeTopFoldersInFolderViewHelp": "有効にすると、フォルダー表示を使用する際にトップレベルフォルダーの内容が統合され、1つの結合されたフォルダーとして表示されます。無効にすると、トップレベルフォルダーがフォルダー表示の最初のレベルとして表示されます。", + "OptionAllowTranscodingToReduceQuality": "メディア再生中に、アプリの品質設定に基づいて画質を下げるためのトランスコードを許可する", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "LabelFolderScanningMode": "Folder scanning mode", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "Legacy": "Legacy" +} diff --git a/strings/kk.json b/strings/kk.json new file mode 100644 index 0000000..d205306 --- /dev/null +++ b/strings/kk.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Сіз дайынсыз!", + "ThisWizardWillGuideYou": "Бұл комекші орнату және теңшеу процесі сатыларымен өткізеді. Бастау үшін өзіңізге тіл теңшелімін таңдаңыз.", + "HeaderCreateYourFirstUser": "Create Your First User", + "ButtonQuickStartGuide": "Тез бастау нұсқаулығы", + "MoreUsersCanBeAddedLater": "Көбірек пайдаланушыларды кейін Тақта арқылы үстеуіңіз мүмкін.", + "UserProfilesIntro": "Emby ішінде әрқайсы пайдаланушыға өзінің бейнелеу параметрлері ойнату күйі және мазмұн басқаруы қосылған пайдаланушылық профайлдарының кіріктірілген қолдауы бар.", + "WizardCompleted": "Әзірше бұл бізге керегінің бәрі болып табылады. Emby тасығышханаңыз туралы мәліметтерді жинай бастады. Енді кейбір біздің қолданбаларымызбен танысыңыз, және кейін Аяқтау түймешігін басыңыз, сонда Сервер тақтасы қарауға шыға келеді.", + "MessagePleaseAcceptTermsOfService": "Жалғастырмас бұрын Қызмет көрсету шарттарын және Құпиялылық саясатын қабылдаңыз.", + "OptionIAcceptTermsOfService": "Қызмет көрсету шарттарын қабылдаймын", + "SeeOurHwaGuide": "See our {0}hardware acceleration setup guide{1}.", + "HeaderEmbyServerReleaseNotes": "Emby Server Release Notes", + "AllowSubtitleDownloading": "Субтитрлерді жүктеп алуға рұқсат ету", + "AllowSubtitleManagement": "Бар субтитр файлдарын жоюға рұқсат ету", + "NewUserNameHelp": "This is how the user will appear on your server.", + "ChapterMarkers": "Chapter markers", + "LabelThumbnailImagesInterval": "Thumbnail images interval", + "ThumbnailImagesIntervalHelp": "More frequent thumbnails will result in a better experience, but will require more disk space and time to create the images.", + "LabelAuthProvider": "Түпнұсқалық растама жеткізушісі:", + "AuthProviderHelp": "Әкімшілер әдетте ешқашан құлыпталмағанына қамтамасыз ету үшін әдепкі Emby жеткізгішін пайдаланады.", + "HeaderNewUser": "New User", + "ChangeServerDisplayName": "Change Server Display Name", + "ShowAdvancedSettings": "Кеңейтілген параметрлерді көрсету", + "ChangingMetadataImageSettingsNewContent": "Метадеректерді немесе суреттерді жүктеу параметрлерін өзгертуі тек тасығышханаға үстелген жаңа мазмұнға қолданылады. Өзгерістерді қолданыстағы атауларға қолдану үшін олардың метадеректерін қолмен жаңғырту қажет.", + "AllowRemoteAccess": "Осы Emby Server серверіне сыртқы қосылымдар үшін рұқсат ету", + "AllowRemoteAccessHelp": "Егер жалауша аласталған болса, барық сыртқы байланыстар құрсауланады.", + "Alerts": "Ескертулер", + "LabelTrackTitleDisplay": "Embedded track title display", + "GenerateUserFriendlyTrackTitles": "Generate user friendly titles using track information", + "PreferOriginalTrackTitles": "Prefer embedded titles", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "EnableTranscodingThrottle": "Реттеуді қосу", + "EnableTranscodingThrottleHelp": "ОП пайдалануын азайту үшін Emby қайта кодтау қарқынын динамикалық түрде реттейді.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} сурет іріктеушілері:", + "HeaderImageOptions": "Сурет опциялары", + "OptionBeta": "Бета нұсқа", + "RegisterWithPayPal": "PayPal арқылы тіркелу", + "LabelSyncTempPath": "Уақытша файл жолы:", + "LabelSyncTempPathHelp": "Үндестіру үшін теңшелген жұмыс қалтаны анықтаңыз. Үндестіру процесі кезінде жасалған түрлендірілген тасығышдеректер осы орында сақталады.", + "LabelCustomCertificatePath": "Теңшеулі SSL-куәлік жолы:", + "LabelCustomCertificatePathHelp": "Теңшелетін доменде TLS қолдауын қосу үшін сертификаты және жеке кілті бар PKCS #12 файлына жол.", + "HeaderSetupLibrary": "Тасығышханаларды орнату және теңшеу", + "LabelTimeLimitHours": "Уақыт шегі (сағат):", + "HeaderPreferredMetadataLanguage": "Метадеректер тілінің теңшелімі", + "LabelSaveLocalMetadata": "Суреттемелерді тасығыш қалталары ішінде сақтау", + "LabelSaveLocalMetadataHelp": "Суреттемелерді тасығыш қалталары ішінде сақталуы оларды жеңіл өңдей алатын орынға қояды.", + "TabAccess": "Қатынау", + "HeaderDeviceAccess": "Құрылғыға қатынау", + "OptionEnableAccessFromAllDevices": "Барлық құрылғылардан қатынауды қосу", + "OptionEnableAccessToAllChannels": "Барлық арналарға қатынауды қосу", + "OptionEnableAccessToAllLibraries": "Барлық тасығышханаларға қатынауды қосу", + "DeviceAccessHelp": "Бұл тек қана бірегей анықталуы мүмкін құрылғылар үшін қолданылады және шолғышпен қантынауға тыйым салмайды. Пайдаланушы құрылғысынан қатынауды сүзгілеуі жаңа құрылғыларды мұнда бекітілгенше дейін пайдалануға тыйым салады.", + "LabelDisplayMissingEpisodesWithinSeasons": "Жоқ бөлімдерді маусым ішінде бейнелеу", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Бұл сондай-ақ Emby Server орнатуындағы ТД тасығышханалары үшін қосулы болуы керек.", + "ImportMissingEpisodesHelp": "Қосылғанда, жоқ эпизодтар туралы ақпарат сіздің Emby дерекқорға әкелінеді және маусымдар мен телехикаялар аясында пайда болады. Тасығышхана сканерлеуде бұл айтарлықтай ұзақ уақыт алуы мүмкін.", + "MessageEnablingOptionLongerScans": "Осы опция қойылса, тасығышхана сканерлеулері едәуір ұзын болуы мүмкін.", + "LabelMaxParentalRating": "Ең жоғары ұйғарынды жастас санаты:", + "MaxParentalRatingHelp": "Бұл пайдаланушыдан жоғарылау жастас санаты бар мазмұн жасырылады", + "LibraryAccessHelp": "Бұл пайдаланушымен ортақтасу үшін тасығыш қалталарды бөлектеңіз. Метадерек реттеушіні пайдаланып әкімшілер барлық қалталарды өңдеуі мүмкін.", + "ChannelAccessHelp": "Бұл пайдаланушымен ортақтасу үшін арналарды бөлектеңіз. Метадерек реттеушіні пайдаланып әкімшілер барлық арналарды өңдеуі мүмкін.", + "ImageUploadAspectRatioHelp": "1:1 пішімдік арақатынасы ұсынылады. Тек қана JPG/PNG.", + "AlreadyPaidHelp1": "Егер әлдеқашан Media Browser for Android ескі нұсқасын орнату үшін төлеген болсаңыз, сізге осы қолданбаны іске қосу үшін қайтадан төлеуге қажеті жоқ. Бізге {0} мекенжайға хат жіберу үшін Жарайды деген түймешігін басыңыз, сонда сіз үшін біз оны белсендіреміз.", + "AlreadyPaidHelp2": "Emby Premiere алдыңыз ба? Жай ғана бұл тілқатысу терезесін болдырмаңыз да, Emby Server тақтасындағы Анықтама -> Emby Premiere астында Emby Premiere орнатып теңшеңіз, сонда бұның құлпы автоматты түрде ашылады.", + "TabMyPlugins": "Менің плагиндерім", + "TabCatalog": "Тізімдеме", + "HeaderAutomaticUpdates": "Автоматты жаңартулар", + "Standard": "Стандартты", + "TabSupporterKey": "Emby Premiere кілті", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Жеке немесе жасырын әкімші тіркелгілері үшін пайдалы. Пайдаланушы аты мен құпия сөзді енгізу арқылы пайдаланушыға қолмен кіру қажет болады.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Бұл пайдаланушыға тыйым салу", + "OptionDisableUserHelp": "Егер тыйым салынса, сервер бұл пайдаланушыдан ешқандай байланыстарға рұқсат етпейді. Бар қосылымдар кенет үзіледі.", + "OptionAllowUserToManageServer": "Бул пайдаланушыға серверді басқару үшін рұқсат ету", + "HeaderFeatureAccess": "Құрамдастарды қатынау", + "OptionAllowMediaPlayback": "Тасығышдеректерді ойнатуға рұқсат ету", + "AllLibraries": "Барлық тасығышханалар", + "HeaderAllowMediaDeletionFrom": "Осыдан тасығышдеректерді жоюға рұқсат ету", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Басқа пайдаланушыларды қашықтан басқару үшін рұқсат ету", + "OptionAllowRemoteSharedDevices": "Ортақ құрылғыларды қашықтан басқару үшін рұқсат ету", + "OptionAllowRemoteSharedDevicesHelp": "DLNA-құрылғылары пайдаланушы басқарғанша дейін ортақ ретінде есептелінеді.", + "OptionAllowLinkSharing": "Әлеуметтік желілерімен ортақ пайдалануға рұқсат ету", + "OptionAllowLinkSharingHelp": "Тек қана тасығыш туралы ақпаратты қамтитын ғаламтор беттер ортақтанады. Тасығыш файлдары ешқашан ортақ жарияланбайды. Ортақтасу уақытпен шектеледі және мерзімі {0} күнде аяқталады.", + "OptionRelease": "Ресми шығарылым", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "Тек қана ешқандай пайдалуншылар белсенді емес, әрекетсіз мезгілдерде сервер қайта іске қосылады.", + "LabelRunServerAtStartup": "Серверді іске қосылудан бастап орындау", + "LabelRunServerAtStartupHelp": "Бұл Windows жұмысын бастағанда жүйелік тақтадағы белгіше іске қосылады. Егер сіз Windows қызметін орнатқан болсаңыз, онда бұл жалаушаны аластаңыз және қызметтің жұмыс бастауын іске қос кезіне теңшеңіз.", + "ButtonSelectDirectory": "Қаталогты таңдау", + "LabelCachePath": "Кэшке қарай жол:", + "DefaultMetadataLangaugeDescription": "Бұлар сіздің әдепкі мағыналарыңыз және әр тасығышхана негізінде теңшеуге болады.", + "LabelCachePathHelp": "Сурет сияқты сервердің кэш файлдары үшін теңшелген жайғасымды анықтаңыз. Сервердің әдепкісін пайдалану үшін бос қалдырыңыз.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Метадеректерге қарай жол:", + "LabelMetadataPathHelp": "Жүктеп алынған суреттемелер бен метадеректер үшін теңшелген жайғасымды анықтаңыз.", + "LabelTranscodingTempPath": "Transcoding temporary қалтасының жолы:", + "LabelTranscodingTempPathHelp": "Бұл қалта құрамында қайта кодтау құралы пайдаланатын жұмыс файлдары бар. Теңшелген жолды анықтаңыз, немесе сервердің деректер қалтасы ішіндегі әдепкісін пайдалану үшін бос қалдырыңыз.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Телегид деректерін жаңғырту", + "LabelNumberOfGuideDays": "Жүктеп алу үшін Телегид деректеріндегі күн саны:", + "LabelNumberOfGuideDaysHelp": "Көбірек күнді жүктеп алу Телегид деректерінің құндылығын көтереді де алдын-ала жоспарлау үшін қабілетін және көбірек тізбелер көруді қамтамасыз етеді, бірақ бұл жүктеу уақытын да создырады. Автоматты таңдау арна санына негізделінеді.", + "HeaderFetchImages": "Суреттерді іріктеу:", + "LabelMaxBackdropsPerItem": "Тармақ бойынша артқы суреттердің ең көп саны:", + "LabelMaxScreenshotsPerItem": "Тармақ бойынша ең көп скриншот саны:", + "LabelMinBackdropDownloadWidth": "Артқы суреттің жүктеп алынатын ең аз ені:", + "LabelMinScreenshotDownloadWidth": "Жүктеп алу үшін ең аз скриншот ені:", + "ButtonAddScheduledTaskTrigger": "Триггерді үстеу", + "ButtonAdd": "Үстеу", + "LabelTriggerType": "Триггер түрі:", + "OptionOnInterval": "Аралықта", + "OptionAfterSystemEvent": "Жүйелік оқиғадан кейін", + "LabelDay": "Күн:", + "LabelTime": "Уақыт:", + "LabelEvent": "Оқиға:", + "OptionWakeFromSleep": "Ұйқыдан оятуда", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Нақты уақыттағы бақылауды қосу", + "LabelEnableRealtimeMonitorHelp": "Қолдаудағы файлдық жүйелерінде файлдар өзгерістері дереу өңделеді.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Сервердің оңай аты:", + "LabelFriendlyServerNameHelp": "Бұл атау осы серверді анықтау үшін пайдаланылады. Егер өріс бос қалдырылса, компьютер аты пайдаланылады.", + "LabelPreferredDisplayLanguage": "Бейнелеу тілінің теңшелімі:", + "LabelPreferredDisplayLanguageHelp": "Emby тәржімелеуі ағымдағы жоба болып табылады.", + "LabelReadHowYouCanContribute": "Қалай үлес қосу туралы білу.", + "LabelCustomCss": "Теңшеулі CSS:", + "LabelCustomCssHelp": "Өзіңіздің теңшеулі CSS-кодын ғаламтор-тілдесуде қолданыңыз.", + "LabelLocalHttpServerPortNumber": "Жергілікті http-порт нөмірі:", + "LabelLocalHttpServerPortNumberHelp": "Emby HTTP-сервері байластырылуға тиісті TCP-порт нөмірі.", + "LabelPublicHttpPort": "Жария http-порт нөмірі:", + "LabelPublicHttpPortHelp": "Жергілікті http-портына салыстырылуы тиіс жария порт нөмірі.", + "LabelPublicHttpsPort": "Жария https-порт нөмірі:", + "LabelPublicHttpsPortHelp": "Жергілікті https-портына салыстырылуы тиіс жария порт нөмірі.", + "RequireHttps": "Сыртқы байланыстарға HTTPS талап ету", + "RequireHttpsHelp": "Қосылғанда, HTTP бойынша байланыстары HTTPS тарапына бағытталады.", + "LabelHttpsPort": "Жергілікті https-порт нөмірі:", + "LabelHttpsPortHelp": "Emby HTTPS-сервері байластырылуға тиісті TCP-порт нөмірі.", + "LabelEnableAutomaticPortMap": "Автоматты порт салғастыруын қосу", + "LabelEnableAutomaticPortMapHelp": "Жария портты жергілікті портқа UPnP арқылы автоматты түрде салғастыру әрекеті. Бұл кейбір жол жоспарлағыш ұлгілерімен жұмыс істемейтіні мүмкін.", + "LabelExternalDDNS": "Сыртқы домен:", + "LabelExternalDDNSHelp": "Егер сізде динамикалық DNS болса, оны осында енгізіңіз. Ол Emby қолданбалары қашықтан қосылу кезінде пайдаланылады. Теңшелетін SSL-куәландырумен пайдаланған кезде бұл өріс міндетті болады. Мысалы: mydomain.com.", + "LabelMinResumePercentage": "Жалғастыру үшін ең аз пайызы:", + "LabelMaxResumePercentage": "Жалғастыру үшін ең көп пайызы:", + "LabelMinResumeDuration": "Жалғастыру үшін ең аз ұзақтығы (секунд):", + "LabelMinResumePercentageHelp": "Бұл кезден бұрын тоқтатылса туындылар ойнатылмаған деп болжалды", + "LabelMaxResumePercentageHelp": "Бұл кезден кейін тоқтатылса туындылар толық ойнатылған деп болжалды", + "LabelMinResumeDurationHelp": "Бұдан қысқа туындылар жалғастырылмайды", + "HeaderStatus": "Күй", + "Subscriptions": "Жазылымдар", + "LabelEndingEpisodeNumber": "Аяқтаушы бөлімдің нөмірі:", + "LabelEndingEpisodeNumberHelp": "Бұл тек қана бірнеше бөлімі бар файлдар үшін", + "HeaderSupportTheTeam": "Emby тобын қолдаңыз", + "HeaderSupportTheTeamHelp": "Emby Premiere сатып алу арқылы осы жоба дамуы жалғастырылуына қамтамасыз етуге көмектесіңіз. Барлық табыстардың бір бөлігін бізге байланысты басқа тегін құралдар үшін үлестіреміз.", + "DonationNextStep": "Аяқталғаннан кейін, қайта оралыңыз да Э-пошта арқылы алынатын Emby Premiere кілтіңізді енгізіңіз.", + "HeaderRunningTasks": "Орындалып жатқан тапсырмалар", + "ButtonUpdateNow": "Қазір жаңарту", + "PleaseUpdateManually": "Emby Server жұмысын аяқтаңыз да соңғы нусқасын орнатыңыз.", + "ServerUpToDate": "Emby Server үшін ең кейнгі жаңартулар орнатылған", + "MessagePleaseRestartServerToFinishUpdating": "Жаңартулардың қолдануын аяқтау үшін серверді қайта іске қосыңыз", + "LabelDownMixAudioScale": "Кемітіліп микшерленгенде дыбыс өтемі:", + "LabelDownMixAudioScaleHelp": "Дыбысты кемітіліп микшерленгенде өтемдеу. Бастапқы деңгей мәнін өзгертпеу үшін 1 санын орнатыңыз..", + "HeaderForgotKey": "Кілтті ұмытыңыз ба?", + "LabelSupporterEmailAddress": "Кілтті сатып алу үшін пайдаланылған э-пошта мекенжайы.", + "ButtonRetrieveKey": "Кілтті қайта алу", + "LabelSupporterKey": "Emby Premiere кілті (Э-поштадан кіргізу):", + "LabelSupporterKeyHelp": "Emby үшін қауымдастық жасақтаған қосымша құрамдастарды пайдалана бастау үшін Emby Premiere кілтіңізді енгізіңіз.", + "MessageInvalidKey": "Emby Premiere кілті жоқ немесе жарамсыз.", + "ErrorMessageInvalidKey": "Әрқайсы сыйақылық мазмұн үшін тіркелу мақсатында, сіз белсенді Emby Premiere жазылымына ие болуыңыз қажет.", + "LabelSkipIfGraphicalSubsPresent": "Егер бейнеде ендірілген субтитрлер болса, өткізіп жіберу", + "LabelSkipIfGraphicalSubsPresentHelp": "Субтитрлердің мәтіндік нұсқалары қалдырылса, нәтижесінде тиімді жеткізіледі және бейненің қайта кодтау ықтималдығын кемітеді.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Егер әдепкі дыбыс жолшығы жүктеп алынатын тілге сәйкес келсе өткізіп жіберу", + "LabelSkipIfAudioTrackPresentHelp": "Барлық бейнелерде, дыбыс тіліне қатыссыз, субтитрлер болғанына көз жеткізу үшін құсбелгіні алыңыз.", + "SendMessage": "Хабар жіберу", + "HeaderSendMessage": "Хабар жіберу", + "ButtonSend": "Жіберу", + "LabelMessageText": "Хабар мәтіні", + "LabelMessageTitle": "Хабар тақырыбы:", + "ButtonEditOtherUserPreferences": "Осы пайдаланушының профайлын, суретін және өзіндік теңшелімдерін өңдеу.", + "LabelLoginDisclaimer": "Кіргендегі ескерту:", + "LabelLoginDisclaimerHelp": "Бұл кіру бетінің төменінде бейнеленеді.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "API-кілттер", + "HeaderApiKeysHelp": "Сыртқы қолданбалар Emby Server бағдарламасымен қатынасу үшін API кілті қажет етеді. Кілттер Emby тіркелгісіне кіргенде, немесе кілтті қолданбаға қолмен рұқсат етілгенде беріледі.", + "HeaderApiKey": "API-кілт", + "HeaderResumeSettings": "Жалғастыру параметрлері", + "HeaderFetcherSettings": "Іріктеуші параметрлері", + "HeaderActivity": "Әрекеттер", + "ButtonPurchase": "Сатып алу", + "HeaderInstall": "Орнату", + "LabelSelectVersionToInstall": "Орнатым нұсқасын таңдау:", + "LinkLearnMoreAboutSubscription": "Emby Premiere туралы білу", + "MessagePluginRequiresSubscription": "Бұл плагин 14 күн тегін сынап көру мерзімінен кейін белсенді Emby Premiere жазылымын қажет етеді.", + "MessagePremiumPluginRequiresMembership": "Бұл плагин 14 күн тегін сынап көру мерзімінен кейін сатып алу үшін белсенді Emby Premiere жазылымын қажет етеді.", + "HeaderDeveloperInfo": "Жасақтаушылар туралы", + "HeaderRevisionHistory": "Өзгерістер тарихы", + "ButtonViewWebsite": "Сайтына", + "OptionSaveMetadataAsHidden": "Метадеректер мен суреттерді жасырын файлдар ретінде сақтау", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Emby Connect туралы көбірек білу", + "LabelDateAddedBehavior": "Жаңа мазмұн үшін қосылған күні тәртібі:", + "OptionDateAddedImportTime": "Тасығышхана ішіне сканерлеу күнін пайдалану", + "OptionDateAddedFileTime": "Файлдың жасалған күнін пайдалану", + "LabelDateAddedBehaviorHelp": "Егер метадеректерде мәні болса, бұл қайсыбір осы опцияларыдың алдында әрқашанда пайдаланылады.", + "HeaderLibrarySettings": "Тасығышхана параметрлері", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Ұтқыр құрылғыларыңызда түсірілген фотосуреттерді Emby қолданбалары автоматты түрде Emby Server ішіне жүктеуі мүмкін.", + "LabelCameraUploadPath": "Камерадан кері қотару жолы:", + "LabelCameraUploadPathHelp": "Теңшелген кері қотару жолды таңдаңыз. Бұл Камерадан жүктеу бөлімінде теңшелген кез-келген әдепкі параметрлерді қайта анықтайды. Егер анықталмаса, әдепкі қалта пайдаланылады. Егер теңшелетін жол пайдаланылса, бұны сондай-ақ Emby тасығышханасын орнату және теңшеу аймағында тасығышхана есебінде үстеу қажет.", + "DefaultCameraUploadPathHelp": "Теңшелген кері қотару жолды таңдаңыз. Егер анықталмаса, әдепкі қалта пайдаланылады. Егер теңшелетін жол пайдаланылса, бұны сондай-ақ Emby тасығышханасын орнату және теңшеу аймағында тасығышхана сияқты үстеу қажет.", + "LabelCreateCameraUploadSubfolder": "Әрқайсы құрылғы үшін ішкі қалта жасау", + "LabelCreateCameraUploadSubfolderHelp": "Құрылғылар бетінде нұқығанда құрылғыға нақты қалталар тағайындалуы мүмкін.", + "LabelCustomDeviceDisplayNameHelp": "Бейнеленетін теңшелген атын ұсыныңыз немесе құрылғы арқылы баяндалған атын пайдалану үшін бос қалдырыңыз.", + "TabParentalControl": "Мазмұнды басқару", + "HeaderAccessSchedule": "Қатынау кестесі", + "HeaderAccessScheduleHelp": "Қатынауды белгілі сағаттарға шектеу үшін қатынау кестесін жасаңыз.", + "HeaderLibraryAccess": "Тасығышханаға қатынау", + "HeaderChannelAccess": "Арнаға қатынау", + "LabelForgotPasswordUsernameHelp": "Еске салсаңыз, пайдаланушы атыңызды енгізіңіз.", + "TitlePasswordReset": "Құпия сөзді ысыру", + "HeaderBlockItemsWithNoRating": "Жастас санаты туралы ақпараты жоқ немесе ол танылмаған мазмұнды құрсаулау:", + "LabelBlockContentWithTags": "Мына тегтері бар мазмұнды құрсаулау:", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Тасығышдеректерді жүктеп алуға және үндестіруге рұқсат ету", + "LabelNewUserNameHelp": "Пайдаланушы аттарында әріптер (a-z), сандар (0-9), сызықшалар (-), астыңғы сызықтар (_), дәйекшелер (') және нүктелер (.) болуы мүмкін", + "HeaderThisUserIsCurrentlyDisabled": "Осы пайдаланушы ағымда ажыратылған", + "OptionAllowSyncTranscoding": "Қайта кодтауға талабы бар тасығышдеректерді жүктеуге және үндестіруге рұқсат ету", + "AllowMediaConversion": "Тасығышдеректерді түрлендіруге рұқсат ету", + "AllowMediaConversionHelp": "Тасығышдеректерді түрлендіру ерекшелігіне қатынау үшін жол беру немесе тиым салу.", + "OptionAllowAudioPlaybackTranscoding": "Қайта кодтауға талабы бар дыбыс ойнату үшін рұқсат ету", + "OptionAllowVideoPlaybackTranscoding": "Қайта кодтауға талабы бар бейне ойнату үшін рұқсат ету", + "OptionAllowVideoPlaybackRemuxing": "Қайта кодтаусыз түрлендіру талабы бар бейне ойнату үшін рұқсат ету", + "OptionAllowMediaPlaybackTranscodingHelp": "Қайта кодтауға рұқсатты шектелсе тасығышдеректер пішімдеріне байланысты Emby қолданбаларында ойнатудың сәтсіздіктерін тудыруы мүмкін.", + "LabelRemoteClientBitrateLimit": "Интернет тасымалдану қарқынының шегі, Мбит/с:", + "LabelRemoteClientBitrateLimitHelp": "Барлық желілік құрылғылар үшін ағын бойынша тасымалдау қарқынының қосымша шегі. Бұл интернет-қосылымыңыздың өңдеу мүмкіндігіне қарағанда құрылғының жоғарылау қарқын сауалдарына тыйым салу үшін пайдалы болып табылады. Бұл бейнелерді төменгі қарқынға қайта кодтау үшін серверіңіздегі ОП жүктемесін арттыруға әкелуі мүмкін.", + "LabelUserRemoteClientBitrateLimitHelp": "Бұл серверді ойнату параметрлерінде орнатылған әдепкі ғаламдық мәнді қайта анықтайды.", + "OptionEnableFullSpeedConversion": "Түрлендірудің толық жылдамлығын қосу", + "OptionEnableFullSpeedConversionHelp": "Ресурстар тұтынуды барынша азайту үшін үндестірулік түрлендіру әдепкіде төмен жылдамдықпен орындалады.", + "OptionEnableAutomaticServerUpdates": "Сервердің автоматты жаңартылуын қосу", + "HeaderTVSources": "ТД-көздері", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Тюнердің IP-мекенжайы:", + "HeaderGuideProviders": "Телегид деректерін жеткізушілері", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Пошта коды:", + "LabelLineup": "Тізбек:", + "LabelImportOnlyFavoriteChannels": "Таңдаулы ретінде белгіленген арналармен шектеу", + "ImportFavoriteChannelsHelp": "Қосылғанда, тюнер құрылғысындағы таңдаулы ретінде белгіленген ғана арналар шеттен әкелінетін болады.", + "HeaderDefaultRecordingSettings": "Жазбалардың әдепкі параметрлері", + "LabelDisplayName": "Бейнелену аты:", + "OptionDownloadImagesInAdvance": "Суреттерді алдын ала жүктеп алу", + "OptionDownloadImagesInAdvanceHelp": "Әдепкіде, суреттердің көбі тек қана Emby-қолданбасы сұраса жүктеледі. Жаңа тасығышдеректер импортталған кезде алдын ала барлық суреттерді жүктеп алу үшін, осы опцияны қосыңыз. Тасығышхана сканерлеуде бұл айтарлықтай ұзақ уақыт алуы мүмкін.", + "MessageThankYouForSupporting": "Emby жақтағаныңызға алғыс.", + "FileReadCancelled": "Файл оқуы болдырылмады.", + "FileNotFound": "Файл табылмады.", + "FileReadError": "Файлды оқып жатқанда қате пайда болды.", + "NoPluginConfigurationMessage": "Осы плагинде теңшелетін параметрлер жоқ.", + "HeaderNewApiKey": "Жаңа API-кілт", + "HeaderNewApiKeyHelp": "Emby Server қарай қатынасу құқықығы үшін қолданбаға рұқсат ету.", + "MessageKeyEmailedTo": "Кілт {0} үшін электронды поштамен жіберілді.", + "HeaderConfirmation": "Растау", + "MessageKeyUpdated": "Emby Premiere кілтіңіз жаңартылды.", + "MessageKeyRemoved": "Emby Premiere кілтіңіз аласталды.", + "TextEnjoyBonusFeatures": "Сыйақы құрамдастарды тамашаланыңыз", + "MessageErrorLoadingSupporterInfo": "Emby Premiere деректерін жүктеу кезінде қате орын алды. Әрекетті кейін қайталаңыз.", + "ValueTimeLimitSingleHour": "Уақыт шегі: 1 сағат", + "ValueTimeLimitMultiHour": "Уақыт шегі: {0} сағат", + "General": "Жалпы", + "HeaderScreenSavers": "Экран қорғауыштар", + "Reporting": "Есептер", + "LabelStopping": "Тоқтатылуда", + "HeaderSelectCertificatePath": "Куәлік жолын таңдау", + "HeaderSupporterBenefit": "Белсенді Emby Premiere жазылымы қосымша артықшылықтарға қол жеткізеді, мысалы, Emby DVR қатынау, дербес тасығышдеректер, сыйақылық плагиндер және онанда көбірек. {0}Көбірек білу{1}.", + "LabelAbortedByServerShutdown": "(Сервер жұмысты аяқтау себебінен тоқтатылды)", + "LabelScheduledTaskLastRan": "Кейінгі қосылғаны {0}, {1} алды.", + "HeaderDeleteTaskTrigger": "Тапсырма триггерін жою", + "MessageDeleteTaskTrigger": "Шынымен осы тапсырма триггерін жою қажет пе?", + "MessageNoPluginsDueToAppStore": "Плагиндерді басқару үшін, Emby ғаламтор-қолданбасын пайдаланыңыз.", + "LabelVersionInstalled": "{0} орнатылған", + "HeaderSelectServerCachePath": "Сервер кэшінің жолын таңдау", + "HeaderSelectTranscodingPath": "Қайта кодтаудың уақытша файлдарыеың жолын таңдау", + "HeaderSelectMetadataPath": "Метадеректер жолын таңдау", + "HeaderSelectServerCachePathHelp": "Сервердің кэш файлдарын пайдалану үшін жолды шолыңыз немесе енгізіңіз. Осы қалта жазу үшін қол жетімді болуы қажет.", + "HeaderSelectTranscodingPathHelp": "Қайта кодтаудың уақытша файлдарын пайдалану үшін жолды шолыңыз немесе енгізіңіз. Осы қалта жазу үшін қол жетімді болуы қажет.", + "HeaderSelectMetadataPathHelp": "Метадеректер сақтау үшін жолды шолыңыз немесе енгізіңіз. Осы қалта жазу үшін қол жетімді болуы қажет.", + "MessageConfirmRestart": "Шынымен Emby Server үшін қайта іске қосу қажет пе?", + "MessageConfirmShutdown": "Шынымен Emby Server жұмысын аяқтау қажет пе?", + "LabelLocalAccessUrl": "Үйдегі (LAN) қатынау: {0}", + "LabelRemoteAccessUrl": "Қашықтан (WAN) қатынау: {0}", + "LabelRunningOnPort": "{0} http-портында жұмыс істейді.", + "LabelRunningOnPorts": "{0} http-портында және {1} https-портында жұмыс істейді.", + "LabelCurrentPath": "Ағымдық жол:", + "HeaderSelectMediaPath": "Тасығыш жолын таңдау", + "HeaderSelectPath": "Жолды таңдау", + "MessageDirectoryPickerInstruction": "Желі түймешігі басылғанда құрылғыларыңыз орны табылмаса, желілік жолдар қолмен енгізілуі мүмкін. Мысалы, {0} немесе {1}.", + "MessageDirectoryPickerBSDInstruction": "BSD ортасында, Emby қол жеткізу мақсатында, сіздің FreeNAS Jail ішіндегі жинақтауышты теңшеу қажет болуы мүмкін.", + "MessageDirectoryPickerLinuxInstruction": "Arch Linux, CentOS, Debian, Fedora, OpenSuse немесе Ubuntu жүйелеріндегі Linux үшін, Emby жүйелік пайдаланушыға кем дегенде сақтау жерлеріңізге оқуға қатынас үшін рұқсат етуге тиіссіз.", + "MetadataManager": "Метадерек реттеуші", + "OptionBlockLiveTvChannels": "Эфирлік ТД арналары", + "OptionBlockChannelContent": "Интернет арна мазмұны", + "ButtonRevoke": "Бас тарту", + "MessageConfirmRevokeApiKey": "Шынымен осы API-кілтінен бас тарту қажет пе? Қолданба мен Emby Server арасындағы қосылым кенет үзіледі.", + "HeaderConfirmRevokeApiKey": "API-кілттен бас тарту", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Жалғастырмас бұрын Қызмет шарттарын қабылдаңыз.", + "HeaderChangeFolderType": "Мазмұн түрін өзгерту", + "HeaderChangeFolderTypeHelp": "Түрді өзгерту үшін, тасығышхананы аластаңыз да, жаңа түр арқылы қайта құрыңыз.", + "HeaderAlert": "Ескерту", + "MessagePleaseRestart": "Жаңартуды аяқтау үшін қайта іске қосыңыз.", + "OptionHomeVideos": "Үй бейнелері мен фотосуреттер", + "OptionBooks": "Кітаптар", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Теңшелген метадеректер қайнар көздеріне басымдылық реті бойынша дәреже беріңіз. Бірінші табылған файл оқылады.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Теңшелген субтитрлер жүктеушілерін қосыңыз және басымдылық реті бойынша дәреже беріңіз.", + "LabelMetadataDownloaders": "Метадеректер жүктеушілері:", + "LabelMetadataDownloadersHelp": "Теңшелген метадеректер жүктеушілерін қосыңыз және басымдылық реті бойынша дәреже беріңіз. Төменгі басымдылығы бар жүктеушілер тек қана жоқ ақпаратты толтыру үшін пайдаланылады.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Метадеректерді қайда сақтайтын файл пішімдерін таңдау.", + "LabelImageFetchers": "Сурет іріктеушілері:", + "LabelImageFetchersHelp": "Теңшелген сурет іріктеушілерін қосыңыз және басымдылық реті бойынша дәреже беріңіз.", + "PersonTypePerson": "Тұлға", + "HeaderRemoveMediaLocation": "Тасығышдеректер орналасуын аластау", + "MessageConfirmRemoveMediaLocation": "Шынымен осы орналасуды аластау қажет пе?", + "LabelNewName": "Жаңа аты", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Қайта атау", + "HeaderPluginInstallation": "Плагин орнатымы", + "MessageTrialExpired": "Осы құрамдастың сынап көру мерзімі аяқталды", + "MessageTrialWillExpireIn": "Осы құрамдастың сынап көру мерзімі {0} күнде аяқталады", + "ValuePriceUSD": "Бағасы: {0} USD", + "MessageFeatureIncludedWithSupporter": "Осы құрамдас үшін тіркелгенсіз, және белсенді Emby Premiere жазылымы арқылы оны пайдалануын жалғастыру мүмкінсіз.", + "HeaderSelectExternalPlayer": "Сыртқы ойнатқышты таңдау", + "HeaderExternalPlayerPlayback": "Сыртқы ойнатқышпен ойнату", + "HeaderThankYou": "Рахмет сізге", + "HeaderSelectUploadPath": "Кері қотару жолын таңдау", + "ErrorMessageStartHourGreaterThanEnd": "Аяқтау уақыты бастау уақытынан кейінрек болуы қажет етеді.", + "MessagePluginConfigurationRequiresLocalAccess": "Осы плагинді теңшеу үшін жергілікті серверіңізге тікелей кіріңіз.", + "MovieLibraryHelp": "{0}Фильмінің атын өзгерту Emby-нұсқаулығын{1} шолу.", + "TvLibraryHelp": "{0}ТД атын өзгерту туралы Emby-нұсқаулығын{1} қарап шығу.", + "BookLibraryHelp": "Дыбыстық және мәтіндік кітаптар қолдауда. {0}Кітаптар атын өзгерту Emby-нұсқаулығын{1} шолу.", + "MessageGamePluginRequired": "GameBrowser плагинін орнатуды қажет етеді", + "HeaderUnlockApp": "Қолданбаны құрсаудан босату", + "MessagePaymentServicesUnavailable": "Төлем қызметтері ағымда қол жетімді емес. Әрекетті кейін қайталаңыз.", + "NoNewDevicesFound": "Жаңа құрылғылар табылмады. Жаңа тюнерді үстеу үшін, осы тілқатысу терезесін жауып, құрылғы ақпаратын қолмен енгізіңіз.", + "MessageConfirmDeleteTunerDevice": "Шынымен бұл құрылғыны жою қажет пе?", + "MessageConfirmDeleteGuideProvider": "Шынымен осы Телегид жеткізушісін жою қажет пе?", + "HeaderDeleteProvider": "Жеткізушіні аластау", + "ErrorAddingTunerDevice": "Тюнер құрылғысын үстеу кезінде қате орын алды. Бұл қатынаулы екеніне көз жеткізіңіз де әрекетті қайталаңыз.", + "ErrorSavingTvProvider": "ТД жеткізушісін сақтау кезінде қате орын алды. Бұл қатынаулы екеніне көз жеткізіңіз де әрекетті қайталаңыз.", + "ErrorGettingTvLineups": "ТД кезектерін жүктеп алу кезінде қате орын алды. Мәліметтеріңіз дұрыс екеніне көз жеткізіңіз де әрекетті қайталаңыз.", + "MessageCreateAccountAt": "{0} жанында тіркелгі жасау", + "ErrorPleaseSelectLineup": "Тізбекті таңдаңыз және әрекетті қайталаңыз. Егер ешқандай тізбек қолжетімді болмаса, онда пайдаланушы атыңызды, құпия сөзіңізді және пошта кодын дұрыс екенін тексеріңіз.", + "ErrorValidatingSupporterInfo": "Emby Premiere деректерін тексеру кезінде қате орын алды. Әрекетті кейін қайталаңыз.", + "LabelLocalSyncStatusValue": "Күйі: {0}", + "HeaderTopPlugins": "Танымал плагиндер", + "ForAdditionalLiveTvOptions": "Қосымша эфирлік ТД жеткізушілер үшін, Қызметтер қойындысын нұқып, қолжетімді опцияларбен танысыңыз.", + "AddUser": "Пайдаланушыны үстеу", + "HeaderEmailAddress": "Э-пошта мекенжайы", + "NumLocationsValue": "{0} қалта", + "PleaseAddAtLeastOneFolder": "Қосу түймешігін басу арқылы, осы тасығышханаға кем дегенде бір қалта қосыңыз.", + "ErrorAddingMediaPathToVirtualFolder": "Тасығышдеректер жолын үстеген кезінде қате орын алды. Жол дұрыс екеніне және Emby Server процесі осы жайғасымға қатынайтына көз жеткізіңіз.", + "ErrorAddingEmbyConnectAccount3": "Emby тіркелгісі бұрыннан бар жергілікті пайдаланушыға байластырылған. Emby тіркелгісі бір уақытта тек бір жергілікті пайдаланушыға байластырылуы мүмкін.", + "HeaderConfirmPluginInstallation": "Плагин орнатымын растау", + "PleaseConfirmPluginInstallation": "Жоғарыдағыны оқып шыққаныңызды және плагин орнатуын бастауыңызды растау үшін Жарайды деген түймешігін басыңыз.", + "MessagePluginInstallDisclaimer": "Emby қауымдастығы мүшелерімен құрылған плагиндер Emby тәжірибеңізді қосымша мүмкіндіктермен және жеңілдіктермен жақсарту үшін жақсы тәсілі болып табылады. Орнатпас бұрын, олар Emby серверіңізге тасығышхананы ұзақ сканерлеу, қосымша өңдік өңдету және жүйенің тұрақтылығын төмендету сияқты әсерлер етуге мүмкін болуына хабардар болыңыз.", + "HardwareAccelerationWarning": "Аппараттық жеделдетуді қосу кейбір орталарда тұрақсыздық тудыруы мүмкін. Амалдық жүйеңіз бен бейне драйверлеріңіз толық жаңартылғанына көз жеткізіңіз. Егер осыны қосқаннан кейін бейне ойнатуда қиындық болса, параметрді қайта Авто үшін өзгертуіңіз қажет.", + "ValueExample": "Мысал: {0}", + "LabelFileOrUrl": "Файл немесе URL:", + "OptionEnableForAllTuners": "Барлық тюнер құрылғылары үшін қосу", + "HeaderTuners": "Тюнерлер", + "DrmChannelsNotImported": "DRM бар арналар шеттен әкелінбейді.", + "LabelAllowHWTranscoding": "Аппараттық қайта кодтауға рұқсат ету", + "AllowHWTranscodingHelp": "Қосылғанда, ағындарды нақты уақытта қайта кодтауға тюнерге мүмкіндік береді. Бұл Emby Server арқылы қайта кодтау талабын азайтуға көмектесуі мүмкін.", + "MetadataSettingChangeHelp": "Метадеректер параметрлерін өзгерту болашақтағы үстелген жаңа мазмұнға әсер етеді. Бар мазмұнды жаңарту үшін, толық мәліметтер экранын ашыңыз да жаңарту түймешігін басыңыз, немесе метадеректер реттеуішіні пайдаланып қорымымен жаңартуды орындаңыз.", + "RecordingPathChangeMessage": "Жазу қалтасын өзгерткенде, бар жазбалар ескі орнынан жаңасына тасымалданбайды. Талап етсеңіз, оларды қолмен жылжытуыңызға қажет болады.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Міндетті емес. HTTP-серверге байластыру үшін жергілікті IP-мекенжайын қайта анықтайды. Бос қалдырсаңыз, сервердің қолда бар барлық мекенжайларын байластыруға болады. Бұл мәнді өзгерткенде Emby Server қайта іске қосуын талап етіледі.", + "SettingsWarning": "Бұл мәндерді өзгерткенде тұрақсыздық немесе қосылым мүмкіндігінде сәтсіздік тудырылуы мүмкін. Егер сізде қандай да бір ақаулықтар болса, оларды қайтадан әдепкісіне өзгертуді ұсынамыз.", + "OptionSaveMetadataAsHiddenHelp": "Осы өзгерту болашақта сақталатын жаңа метадеректер үшін қолданылады. Бар метадерек файлдар олар Emby сервері арқылы сақталғанда келесі жолы жаңартылады.", + "EnablePhotos": "Фотосуреттерді қосу", + "EnablePhotosHelp": "Фотосуреттер басқа тасығыш файлдарымен қатар анықталады және бейнеленеді.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Күйкелтіру жазбаларын жұрналда қосу", + "OptionEnableExternalContentInSuggestions": "Ұыныстарға сыртқы мазмұнды қосу", + "OptionEnableExternalContentInSuggestionsHelp": "Интернет-трейлерлер мен эфирлік ТД көрсетімдерге ұсынған мазмұнға кіру үшін рұқсат етеді.", + "LabelOptionalNetworkPath": "(Міндетті емес) Ортақтастырылған желілік қалта:", + "LabelOptionalNetworkPathHelp": "Егер осы қалта өз желіңізде ортақтастырылса, желіде ортақтастырылған жолды қамтамасыз ету басқа құрылғылардағы Emby-бағдарламаларға тасығыш файлдарына тікелей қол жеткізуге мүмкіндік береді.", + "SynologyUpdateInstructions": "Жаңарту үшін DSM орнына кіріңіз және Package Center қарай өтіңіз.", + "HeaderRecordingPostProcessing": "Жазбаны кейінгі өңдеу", + "LabelPostProcessorArguments": "Пост-процессор пәрмен жолының аргументтері:", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Кейінгі өңдеу қолданбасы:", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Бірнеше қалталар арасында таралған телехикаяны автоматты түрде бір телехикаяға біріктіру", + "OptionAutomaticallyGroupSeriesHelp": "Қосылғанда, осы тасығышхана ішіндегі бірнеше қалталар арасында таралған телехикаясы автоматты түрде бір телехикаяға біріктірілетін болады.", + "WhenDidYouPurchaseApp": "Бастапқыда қай кезде осы қолданбаны сатып алдыңыз?", + "PreferEmbeddedTitlesOverFileNames": "Файл атаулары орнына ендірілген атауларды қалау", + "PreferEmbeddedTitlesOverFileNamesHelp": "Интернеттегі метадеректер немесе жергілікті метадеректер қол жетімді болмағанда бұл әдепкі бейнелетін атауды анықтайды.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Эфирлік ТД тюнерді орнату", + "HeaderTVSourceSetup": "ТД-көздерді орнату және теңшеу", + "HeaderDetectMyDevices": "Құрылғыларымды табу", + "MessagePleaseWait": "Күте тұрыңыз. Бұл минөт алуы мүмкін.", + "DetectingDevices": "Құрылғыларды табуда", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Метадеректерді Интернеттен автоматты түрде жаңарту:", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "{0} күн сайын", + "LabelCertificatePassword": "Куәліктің құпия сөзі:", + "LabelCertificatePasswordHelp": "Егер куәлігіңізге құпия сөз қажет болса, оны мұнда енгізіңіз.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "Сыртқы байланыстарға HTTPS қосу үшін Lets Encrypt сияқты сенімді SSL-куәлігін ұсынуңыз қажет. Куәлікті жеткіңіз немесе қауіпсіз қосылымдарды өшіріңіз", + "ServerRestartNeededAfterPluginInstall": "Плагинді орнатқаннан кейін Emby Server қайта іске қосылу қажет.", + "PluginInstalledMessage": "Плагин сәтті орнатылды. Өзгертулер күшіне енуі үшін Emby Server қайта іске қосылу қажет.", + "MessagePremiereStatusGood": "Сізде {0} Emby Premiere жоспары бар және құрылғыңыз пайдаланысы шектеуіңізге сай.", + "MessagePremiereStatusClose": "Сізде {0} Emby Premiere жоспары бар, бірақ құрылғыңыз пайдаланысы шектеуіңізге жақын.", + "MessagePremiereExtendedPlans": "{0}кеңейтілген құрылғы жоспарын{1} қарастырыңыз", + "MessagePremiereStatusOver": "Сізде {0} Emby Premiere жоспары бар, бірақ құрылғыңыз пайдаланысы шектеуіңізден асты.", + "ListItemPremiereSub": "{2} арқылы сатып алынған {0} жазылым {1} мерзімінде аяқталады", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "Бұл жазылымды тікелей {0} арқылы басқара аласыз", + "LabelAlreadyCanceled": "Бұл жазылым болдырылмады. Кілт мерзімі аяқталуына дейін жарамды болады.", + "HeaderCancelSub": "Emby Premiere болдырмау", + "MessageConfirmSubCancel": "ЖОҚ, кетпеуіңізге өтініш... Emby Premiere тиесілі барлық керемет ерекшеліктерден айрыласыз!", + "ButtonCancelSub": "Білемін, бәрібір оны болдырмау", + "ButtonDontCancelSub": "Emby Premiere қалдыру", + "MessageSubCancelReqSent": "Кілт иесіне хат жіберілді. Осы жазылымды болдырмауды аяқтау үшін хаттағы нұсқауларды орындаңыз. Сізді жақында қайтадан көруге үміттенеміз!", + "MessageSubCancelError": "Болдырмау әрекетінде бір нәрсе дұрыс болмады. {0} мекенжайына хат жіберіңіз, сонда біз мәселелеріңізді шешеміз.", + "LabelAlreadyCancelled": "Бұл жазылым болдырылмады. Сізден қайтадан ақы алынбайды, бірақ функциялар жоғарыда көрсетілген күнге дейін жұмыс істейді.", + "AllowOnTheFlySubtitleExtraction": "Нақты уақытта субтитрлерді шығаруға рұқсат ету", + "AllowOnTheFlySubtitleExtractionHelp": "Бейне қайта кодтауына тиым салуға көмектесу үшін ендірілген субтитрлер бейнеден шығарылып, Emby қолданбаларына кәдімгі мәтінге пішімінде жеткізілу мүмкін. Кейбір жүйелерде бұған ұзақ уақыт кетуі және шығару үрдісі барысында бейне ойнату тоқтатылуы мүмкін. Тұтынғыш құрылғыда оларға қолдау көрсетілмеген кезде, бейне қайта кодталу арқылы ендірілген субтитрлер жазылуы үшін оны өшіріңіз.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Ақаулықтарды жою журналын тек қажет болған жағдайда қосу керек. Файлдық жүйеге қатынау көбеюі кейбір орталарда сервер компьютеріне ұйықтауға жол бермейді.", + "LabelSimultaneousConnectionLimit": "Бір мезгілдегі ағындардың шегі:", + "SimultaneousConnectionLimitHelp": "Бір мезгілдегі ағындардың руқсат етілген ең көп саны. Шексіз үшінт 0 енгізіңіз.", + "LaunchWebAppOnStartup": "Emby Server іске қосылған кезде веб-шолғышта Emby веб-қолданбасын іске қосу", + "LaunchWebAppOnStartupHelp": "Бұл Emby Server бастапқыда іске қосылған кезде веб-қолданбаны әдепкі веб-шолғышта ашады. Бұл серверді қайта іске қосу жетесін қолданғанда пайда болмайды.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Қашықтан қатынауды теңшеу", + "LearnHowToCreateSynologyShares": "Synology қалталарымен болісуді білу.", + "LabelAllowedRemoteAddresses": "Қашықтағы IP-мекенжай сүзгісі:", + "LabelAllowedRemoteAddressesMode": "Қашықтағы IP-мекенжай сүзгісінің режімі:", + "Whitelist": "Ақ тізім", + "Blacklist": "Қара тізім", + "AllowedRemoteAddressesHelp": "Қашықтан қосылуға рұқсат етілетін желілер үшін үтірлермен бөлінген IP-мекенжайларының тізбесі немесе IP/netmask жазбалар Егер бос қалдырылса, барлық қашықтағы мекенжайларға рұқсат етіледі.", + "LabelLanNetworks": "Үйдегі желілер:", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Қауіпсіз байланысу режімі:", + "PreferredNotRequired": "Талап етіледі, бірақ қажет емес", + "RequiredForAllRemoteConnections": "Барлық қашықтағы қосылымдар үшін қажет", + "HandledByProxy": "Кері прокси арқылы өңделді", + "SaveSubtitlesIntoMediaFolders": "Субтитрлерді тасығыш қалталары ішінде сақтау", + "SaveSubtitlesIntoMediaFoldersHelp": "Субтитрлерді бейнефайлдармен бірге сақтағанда оларды жеңіл реттеуге рұқсат етеді.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Қол жетімді болғанда аппаратық жеделдетуді қосу:", + "HeaderPreferredHardwareDecoders": "Таңдаулы аппараттық кодсыздандырғыштары", + "HeaderPreferredHardwareEncoders": "Таңдаулы аппараттық кодтауыштары", + "AllowChangingImageAndPassword": "Осы пайдалунышаға өзінің құпия сөзін және профайл суретін өзгертуді рұқсат ету", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "Margins": "Margins", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/ko.json b/strings/ko.json new file mode 100644 index 0000000..d64332e --- /dev/null +++ b/strings/ko.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "완료!", + "ThisWizardWillGuideYou": "이 마법사는 Emby Server를 설정하는 설정 과정을 안내해 드립니다.", + "HeaderCreateYourFirstUser": "첫 사용자를 등록하세요", + "ButtonQuickStartGuide": "빠른 시작 가이드", + "MoreUsersCanBeAddedLater": "나중에 Emby 설정에서 사용자를 더 추가할 수 있습니다.", + "UserProfilesIntro": "Emby는 각 사용자별 화면 설정, 재생 상태, 자녀보호 사용을 지원하는 사용자 프로파일을 기본 지원합니다.", + "WizardCompleted": "지금은 이것으로 충분합니다. Emby가 미디어 라이브러리 스캔을 시작했습니다. 일부 앱을 확인한 후, 마침을 클릭하여 서버 대시보드를 확인하세요.", + "MessagePleaseAcceptTermsOfService": "계속하기 전에 이용 약관 및 개인정보 보호정책에 동의해 주세요.", + "OptionIAcceptTermsOfService": "이용약관에 동의합니다", + "SeeOurHwaGuide": "{0}하드웨어 가속 설정 도움말{1}을 확인하세요.", + "HeaderEmbyServerReleaseNotes": "Emby 서버 버전 정보", + "AllowSubtitleDownloading": "자막 다운로드 허용", + "AllowSubtitleManagement": "기존의 자막 삭제 허용", + "NewUserNameHelp": "이 사용자는 당신의 서버에서 이렇게 보여집니다.", + "ChapterMarkers": "챕터 책갈피", + "LabelThumbnailImagesInterval": "썸네일 이미지 간격", + "ThumbnailImagesIntervalHelp": "더 자주 생성되는 썸네일은 더 나은 경험을 제공하지만, 이미지를 생성하는 데 더 많은 디스크 공간과 시간이 필요합니다.", + "LabelAuthProvider": "인증 제공자", + "AuthProviderHelp": "관리자는 기본 Emby 제공자를 항상 사용하여 사용자가 절대 접근할 수 없게 되는 상황을 방지합니다.", + "HeaderNewUser": "새 사용자", + "ChangeServerDisplayName": "서버 이름 변경", + "ShowAdvancedSettings": "고급 설정 보기", + "ChangingMetadataImageSettingsNewContent": "메타데이터 또는 아트워크 다운로드 설정의 변경 사항은 라이브러리에 추가 된 새 콘텐츠에만 적용됩니다. 기존 타이틀에 변경 사항을 적용하려면 메타데이터를 수동으로 갱신하셔야 합니다.", + "AllowRemoteAccess": "이 Emby 서버의 원격 연결 허용", + "AllowRemoteAccessHelp": "선택하지 않으면 모든 원격 연결이 차단됩니다.", + "Alerts": "알림", + "LabelTrackTitleDisplay": "내장된 트랙 제목 표시", + "GenerateUserFriendlyTrackTitles": "트랙 정보에 포함되어 사용자에게 친숙한 제목을 표시합니다.", + "PreferOriginalTrackTitles": "파일에 포함된 제목 선호", + "TrackTitleDisplayHelp": "파일에 포함된 제목을 표시합니다. 본인이 직접 파일에 포함된 트랙 정보를 정리하지 않으신다면 추천하지 않습니다.", + "EnableTranscodingThrottle": "쓰로틀링 허용", + "EnableTranscodingThrottleHelp": "Emby는 CPU 사용률을 줄이기 위해 동적으로 트랜스코딩 속도를 조정합니다.", + "HeaderTypeMetadataDownloaders": "{0} 메타데이터 다운로더", + "HeaderTypeImageFetchers": "{0} 이미지 가져오기", + "HeaderImageOptions": "이미지 옵션", + "OptionBeta": "베타", + "RegisterWithPayPal": "PayPal로 등록하기", + "LabelSyncTempPath": "임시 파일 경로", + "LabelSyncTempPathHelp": "사용자 지정 작업 폴더를 지정하십시오. 변환 과정에서 생성된 변환된 미디어가 이 위치에 저장됩니다.", + "LabelCustomCertificatePath": "사용자 정의 SSL 인증서 경로", + "LabelCustomCertificatePathHelp": "사용자 정의 도메인에서 TLS 지원을 사용 가능하게 하는 인증서 및 개인용 키가 들어있는 PKCS #12 파일 경로", + "HeaderSetupLibrary": "미디어 라이브러리 설정", + "LabelTimeLimitHours": "시간 제한 (시간)", + "HeaderPreferredMetadataLanguage": "기본 메타 데이터 언어", + "LabelSaveLocalMetadata": "아트웍을 미디어 폴더에 저장", + "LabelSaveLocalMetadataHelp": "미디어 폴더에 아트워크를 저장하면 이미지가 Emby 외부에서도 쉽게 접근할 수 있도록 미디어 파일 옆에 저장됩니다. 이 옵션을 비활성화하면 이미지는 서버의 메타데이터 폴더에 저장됩니다.", + "TabAccess": "접속", + "HeaderDeviceAccess": "디바이스 접속", + "OptionEnableAccessFromAllDevices": "모든 디바이스에서 접속 허용", + "OptionEnableAccessToAllChannels": "모든 채널에 접속 허용", + "OptionEnableAccessToAllLibraries": "모든 라이브러리에 접속 허용", + "DeviceAccessHelp": "디바이스 접속을 제한하면 여기에서 승인될 때까지 새 디바이스를 사용할 수 없습니다.", + "LabelDisplayMissingEpisodesWithinSeasons": "각 시즌의 누락된 에피소드 표시", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Emby 서버 설정에서 TV 라이브러리에 대해서도 이 기능을 활성화해야 합니다.", + "ImportMissingEpisodesHelp": "이 기능을 사용하면 누락 된 에피소드에 대한 정보가 Emby 데이터베이스로 가져와 시즌 및 시리즈 내에서 표시됩니다. 이로 인해 상당히 긴 라이브러리 스캔이 발생할 수 있습니다.", + "MessageEnablingOptionLongerScans": "이 옵션을 사용하면 라이브러리 검사가 상당히 길어질 수 있습니다.", + "LabelMaxParentalRating": "최대 허용 연령 제한 :", + "MaxParentalRatingHelp": "등급이 더 높은 콘텐츠는 이 사용자에게 표시되지 않습니다.", + "LibraryAccessHelp": "이 사용자와 공유할 폴더를 선택합니다. 관리자는 메타데이터 매니저를 사용하여 모든 폴더를 수정할 수 있습니다.", + "ChannelAccessHelp": "이 사용자와 공유할 채널을 선택합니다. 관리자는 메타데이터 매니저를 사용하여 모든 채널을 수정할 수 있습니다.", + "ImageUploadAspectRatioHelp": "1:1 비율을 추천합니다. JPG/PNG만 사용.", + "AlreadyPaidHelp1": "이미 옛 버전의 안드로이드 미디어 브라우저에 결제하셨다면, 이 앱을 활성화하기 위해 또 다시 결제할 필요가 없습니다. 확인을 클릭하여 저희에게 {0}로 이메일을 보내주시면, 활성화가 되도록 조치하겠습니다.", + "AlreadyPaidHelp2": "Emby 프리미어를 가지고 계신가요? 이 표시창을 취소하려면 Help -> Emby 프리미어에서 Emby 서버 대시보드의 Emby 프리미어를 설정하면 자동으로 잠금이 해제됩니다.", + "TabMyPlugins": "내 플러그인", + "TabCatalog": "카탈로그", + "HeaderAutomaticUpdates": "자동 업데이트", + "Standard": "표준", + "TabSupporterKey": "Emby 프리미어 키", + "OptionHideUserLocal": "로컬 네트워크의 로그인 화면에서 이 사용자 숨김", + "OptionHideUserRemote": "원격제어 사용시 로그인 화면에서 이 사용자 숨김", + "OptionHideUserFromLoginHelp": "비공개 또는 숨김 관리자 계정에 유용합니다. 사용자는 수동으로 사용자명과 비밀번호를 입력하여 로그인 하여야 합니다.", + "HideFromUnusedDevices": "로그인하지 않은 디바이스의 로그인 화면에서 이 사용자 숨기기", + "OptionDisableUser": "이 사용자 사용 안 함", + "OptionDisableUserHelp": "서버가 이 사용자의 연결을 허용하지 않습니다. 현재 연결이 예고없이 종료됩니다.", + "OptionAllowUserToManageServer": "이 사용자에게 이 서버의 관리를 허용합니다", + "HeaderFeatureAccess": "기능 접근", + "OptionAllowMediaPlayback": "미디어 재생 허용", + "AllLibraries": "전체 라이브러리", + "HeaderAllowMediaDeletionFrom": "미디어 삭제 허용", + "LiveTVRecordingManagement": "TV 녹화 관리", + "OptionAllowRemoteControlOthers": "다른 사용자의 원격 제어 허용", + "OptionAllowRemoteSharedDevices": "공유된 디바이스의 원격 제어 허용", + "OptionAllowRemoteSharedDevicesHelp": "사용자가 제어를 시작할 때까지 DLNA 디바이스가 공유된 것으로 간주됩니다.", + "OptionAllowLinkSharing": "소셜 미디어 공유 허용", + "OptionAllowLinkSharingHelp": "미디어 정보가 들어 있는 웹 페이지만 공유됩니다. 미디어 파일은 공개적으로 공유되지 않습니다. 공유 시간은 제한 시간이며 {0}일 후에 만료됩니다.", + "OptionRelease": "공식 릴리즈", + "LabelAllowServerAutoRestartPlugin": "플러그인 업데이트를 적용하기 위해 자동 서버 재시작 허용", + "LabelAllowServerAutoRestartServerOrPlugin": "서버 또는 플러그인 업데이트를 적용하기 위해 자동 서버 재시작 허용", + "LabelAllowServerAutoRestartHelp": "서버는 활성화된 사용자가 없는 유휴 기간에만 다시 시작합니다.", + "LabelRunServerAtStartup": "시작할 때 서버 실행", + "LabelRunServerAtStartupHelp": "Windows 시작시 트레이 아이콘으로 Emby가 실행됩니다. Windows 서비스를 설정 한 경우 이 확인란을 선택하지 않고 시작 시 실행할 서비스를 구성합니다.", + "ButtonSelectDirectory": "디렉터리 선택", + "LabelCachePath": "캐시 경로", + "DefaultMetadataLangaugeDescription": "이는 기본값이며 라이브러리별로 사용자 정의 할 수 있습니다.", + "LabelCachePathHelp": "이미지와 같은 서버 캐시 파일을 위한 사용자 위치를 지정합니다. 서버 기본값을 사용하려면 비워둡니다.", + "LabelDefaultRecordingFolder": "기본 녹화 폴더:", + "LabelMovieRecordingFolder": "영화 녹화 폴더", + "LabelSeriesRecordingFolder": "시리즈 녹화 폴더", + "SeriesRecordingFolderHelp": "(선택 사항). 시리즈 녹화를 저장할 라이브러리를 선택합니다. 콘텐츠 유형이 TV 프로그램 또는 혼합 콘텐츠로 설정된 Emby 라이브러리 설정에서 생성한 라이브러리여야 합니다.", + "HeaderProgramData": "프로그램 데이터", + "RecordingFolderHelp": "녹화를 저장할 기본 라이브러리를 선택하세요. 이는 Emby 라이브러리 설정에서 콘텐츠 유형을 혼합 콘텐츠로 설정하여 만든 라이브러리여야 합니다.", + "MovieRecordingFolderHelp": "(선택 사항). 동영상 녹화를 저장할 라이브러리를 선택합니다. 콘텐츠 유형이 동영상 또는 혼합 콘텐츠로 설정된 Emby 라이브러리 설정에서 생성한 라이브러리여야 합니다.", + "LabelMetadataPath": "메타데이터 경로", + "LabelMetadataPathHelp": "다운로드된 아트워크 및 메타데이터의 위치를 지정하십시오. 기본값으로 되돌리려면 이 항목을 비워 두십시오. 위치를 변경할 경우, 이전 위치의 내용을 새 위치로 수동으로 이동해야 합니다. 메타데이터 폴더의 내용을 수동으로 변경한 경우, 반드시 {0}메타데이터 폴더 스캔 예약 작업{1} 을 실행해야 합니다.", + "LabelTranscodingTempPath": "트랜스코딩 임시 경로", + "LabelTranscodingTempPathHelp": "트랜스코더가 사용하는 작업 파일을 보관하는 폴더입니다. 사용자 경로를 지정하거나 서버의 데이터 폴더를 기본으로 사용하려면 비워둡니다.", + "GenerateVideoPreviewThumbnailsHelp": "비디오 미리 보기 미리 보기는 지원되는 앱을 검색하는 동안 실시간 업데이트를 제공합니다. 축소 이미지 생성은 시간이 오래 걸리고 CPU 사용량이 높으며 추가 디스크 공간을 사용할 수 있습니다.", + "AsAScheduledTask": "예약 작업대로", + "AsAScheduledTaskAndMediaAdded": "영상이 추가 되었을 때 예약 작업대로", + "ButtonRefreshGuideData": "편성표 데이터 새로 고침", + "LabelNumberOfGuideDays": "다운로드할 편성표 일 수", + "LabelNumberOfGuideDaysHelp": "더 많은 편성표를 다운로드할수록 미리 일정을 잡을 수 있고 더 많은 목록을 볼 수 있지만 다운로드하는 데 시간이 더 오래 걸립니다. 자동은 채널 수에 따라 선택됩니다. 선택한 일수와 관계없이 해당 데이터가 원본 편성표에 존재해야 다운로드가 가능합니다. 일부 편성표는 24시간만 제공합니다. Emby 편성표는 최대 14일을 지원합니다.", + "HeaderFetchImages": "이미지 가져오기", + "LabelMaxBackdropsPerItem": "항목별 최대 배경 수", + "LabelMaxScreenshotsPerItem": "항목별 최대 스크린샷 수", + "LabelMinBackdropDownloadWidth": "다운로드할 배경 이미지 최소 넓이", + "LabelMinScreenshotDownloadWidth": "다운로드할 스크린샷 최소 넓이", + "ButtonAddScheduledTaskTrigger": "트리거 추가", + "ButtonAdd": "추가", + "LabelTriggerType": "트리거 종류", + "OptionOnInterval": "기간", + "OptionAfterSystemEvent": "시스템 이벤트 후", + "LabelDay": "일", + "LabelTime": "시각", + "LabelEvent": "이벤트", + "OptionWakeFromSleep": "잠자기에서 깨우기", + "Every": "모든", + "LabelEnableRealtimeMonitor": "실시간 모니터링 사용", + "LabelEnableRealtimeMonitorHelp": "파일에 대한 변경 사항은 지원되는 파일 시스템에서 즉시 처리됩니다.", + "Community": "커뮤니티", + "HeaderEmbyNews": "Emby 소식", + "LabelFriendlyServerName": "알기쉬운 서버 이름", + "LabelFriendlyServerNameHelp": "이 이름은 서버를 구분하는데 사용합니다. 비워두면 컴퓨터 이름을 사용합니다.", + "LabelPreferredDisplayLanguage": "선호하는 화면 언어", + "LabelPreferredDisplayLanguageHelp": "Emby 번역은 진행중인 프로젝트입니다.", + "LabelReadHowYouCanContribute": "여러분이 기여할 수 있는 방법을 알려드립니다.", + "LabelCustomCss": "사용자 정의 css", + "LabelCustomCssHelp": "사용자 정의 css를 웹 인터페이스에 적용합니다.", + "LabelLocalHttpServerPortNumber": "로컬 http 포트 번호", + "LabelLocalHttpServerPortNumberHelp": "Emby http 서버의 TCP 포트 번호입니다.", + "LabelPublicHttpPort": "공용 http 포트 번호", + "LabelPublicHttpPortHelp": "로컬 http 포트에 매핑 되어야 하는 공용 포트 번호입니다.", + "LabelPublicHttpsPort": "공용 https 포트 번호", + "LabelPublicHttpsPortHelp": "로컬 https 포트에 매핑 되어야 하는 공용 포트 번호입니다.", + "RequireHttps": "외부 연결에 https 필요", + "RequireHttpsHelp": "사용 설정하면 http를 통한 연결이 https로 리디렉션됩니다.", + "LabelHttpsPort": "로컬 https 포트 번호", + "LabelHttpsPortHelp": "Emby의 https 서버가 바인딩 되어야 하는 tcp포트 번호.", + "LabelEnableAutomaticPortMap": "자동 포트 맵핑 사용", + "LabelEnableAutomaticPortMapHelp": "공용 포트를 UPnP를 통해 로컬 포트에 자동으로 매핑합니다. 일부 라우터 모델에서는 작동하지 않을 수 있습니다.", + "LabelExternalDDNS": "외부 도메인", + "LabelExternalDDNSHelp": "동적 DNS 또는 도메인 이름이 있는 경우, 프로토콜이나 포트 없이 여기에 입력하십시오. Emby 앱은 원격으로 연결할 때 이를 사용합니다. 사용자 지정 SSL 인증서와 함께 사용할 경우 이 필드는 필수입니다. 예시: mydomain.com", + "LabelMinResumePercentage": "최소 이어보기 비율", + "LabelMaxResumePercentage": "최대 이어보기 정의 비율", + "LabelMinResumeDuration": "최소 이어보기 기간 정의 (초)", + "LabelMinResumePercentageHelp": "이 시간 전에 중지되면 재생되지 않은 것으로 간주됩니다.", + "LabelMaxResumePercentageHelp": "이 시간 이후에 중단되면 완전히 재생되었다고 가정합니다.", + "LabelMinResumeDurationHelp": "이보다 짧으면 이어보기를 할 수 없습니다.", + "HeaderStatus": "상태", + "Subscriptions": "구독", + "LabelEndingEpisodeNumber": "마지막 에피소드 번호", + "LabelEndingEpisodeNumberHelp": "다중 에피소드 파일에만 필요합니다.", + "HeaderSupportTheTeam": "Emby 팀 지원", + "HeaderSupportTheTeamHelp": "Emby 프리미어를 구입하여이 프로젝트의 지속적인 개발을 지원하십시오. 모든 소득의 일부는 우리가 의존하는 다른 무료 도구에 기여할 것입니다.", + "DonationNextStep": "완료한 후 돌아와서 이메일로 받은 Emby 프리미어 키를 입력하세요.", + "HeaderRunningTasks": "실행중인 작업", + "ButtonUpdateNow": "지금 업데이트", + "PleaseUpdateManually": "Emby Server를 종료하고 최신 버전을 설치하십시오.", + "ServerUpToDate": "Emby 서버가 최신 상태입니다.", + "MessagePleaseRestartServerToFinishUpdating": "업데이트 적용을 마치려면 서버를 다시 시작하세요.", + "LabelDownMixAudioScale": "다운 믹싱할 때 오디오 증폭", + "LabelDownMixAudioScaleHelp": "다운 믹싱할 때 오디오를 증폭합니다. 원래 음량을 유지하려면 1로 설정하세요.", + "HeaderForgotKey": "키 분실", + "LabelSupporterEmailAddress": "키를 구매할 때 사용한 이메일 주소", + "ButtonRetrieveKey": "키 가져오기", + "LabelSupporterKey": "Emby Premiere 키(이메일에서 붙여넣기)", + "LabelSupporterKeyHelp": "추가 혜택을 누리려면 Emby 프리미어 키를 입력하세요.", + "MessageInvalidKey": "Emby 프리미어 키가 없거나 올바르지 않습니다.", + "ErrorMessageInvalidKey": "프리미엄 콘텐트를 등록하려면 유효한 Emby 프리미어 구독이 필요합니다.", + "LabelSkipIfGraphicalSubsPresent": "다운로드 언어와 일치하는 내장 자막이 비디오에 이미 포함되어 있는 경우 건너뜁니다", + "LabelSkipIfGraphicalSubsPresentHelp": "텍스트 버전의 자막을 유지하면 더 효율적인 전달이 가능하고 비디오 코드 변환의 가능성이 줄어 듭니다.", + "HeaderDownloadLanguages": "다운로드 언어", + "LabelSkipIfAudioTrackPresent": "오디오 트랙이 다운로드 언어와 일치하면 건너뛰기", + "LabelSkipIfAudioTrackPresentHelp": "오디오 언어에 관계없이 모든 비디오에 자막이 있는지 확인하려면 선택을 해제하십시오.", + "SendMessage": "메세지 전송", + "HeaderSendMessage": "메시지 전송", + "ButtonSend": "전송", + "LabelMessageText": "메시지 텍스트", + "LabelMessageTitle": "메시지 제목", + "ButtonEditOtherUserPreferences": "사용자 프로파일, 이미지, 개인 설정을 편집합니다.", + "LabelLoginDisclaimer": "로그인 면책 조항", + "LabelLoginDisclaimerHelp": "로그인 페이지 하단에 고지사항이 표시됩니다.", + "HeaderTranscodingTemporaryFiles": "트랜스코딩 임시 파일", + "HeaderApiKeys": "API 키", + "HeaderApiKeysHelp": "Emby 서버와 통신하려면 외부 응용 프로그램에 Api키가 있어야합니다. 키는 Emby 계정으로 로그인하거나 응용 프로그램에 키를 수동으로 부여하여 발급됩니다.", + "HeaderApiKey": "API 키", + "HeaderResumeSettings": "재설정", + "HeaderFetcherSettings": "가져오기 설정", + "HeaderActivity": "활성화", + "ButtonPurchase": "구매", + "HeaderInstall": "설치", + "LabelSelectVersionToInstall": "설치할 버전 선택", + "LinkLearnMoreAboutSubscription": "Emby 프리미어 알아보기", + "MessagePluginRequiresSubscription": "이 플러그인은 14일 무료 평가판을 사용한 후 Emby 프리미어 구독을 필요로 합니다.", + "MessagePremiumPluginRequiresMembership": "이 플러그인은 14일 무료 평가판을 사용한 후 Emby 프리미어 구입을 위한 예약 필요로 합니다.", + "HeaderDeveloperInfo": "개발자 정보", + "HeaderRevisionHistory": "리비전 이력", + "ButtonViewWebsite": "웹사이트 보기", + "OptionSaveMetadataAsHidden": "메타데이터와 이미지를 숨김 파일로 저장", + "LabelConnectEmail": "(선택사항) Emby Connect 이메일 주소", + "LabelConnectEmailHelp": "원하는 경우 이 로컬 사용자를 기존 Emby Connect 계정에 연결하면 서버 IP 주소를 알지 못해도 모든 Emby 앱에서 쉽게 로그인할 수 있습니다.", + "ButtonLearnMoreAboutEmbyConnect": "Emby Connect에 대해서 알아보기", + "LabelDateAddedBehavior": "새 콘텐츠에 대한 날짜 정의 방식", + "OptionDateAddedImportTime": "라이브러리에 추가된 날짜 사용", + "OptionDateAddedFileTime": "파일 생성 날짜 사용", + "LabelDateAddedBehaviorHelp": "메타데이터에 지정된 값이 있으면 이 옵션에 우선하여 사용합니다.", + "HeaderLibrarySettings": "라이브러리 설정", + "HeaderAutomaticSubtitleDownloads": "자동 자막 다운로드", + "HeaderCameraUploadHelp": "모바일 디바이스에서 가져온 사진을 자동으로 Emby 서버에 업로드 할 수 있습니다.", + "LabelCameraUploadPath": "카메라 업로드 경로", + "LabelCameraUploadPathHelp": "맞춤 업로드 경로를 선택하십시오. 카메라 업로드 섹션에서 설정된 기본 설정보다 우선합니다. 공백으로 두면 기본 폴더가 사용됩니다. 사용자 정의 경로를 사용하는 경우 라이브러리 설정 영역에 추가해야합니다.", + "DefaultCameraUploadPathHelp": "맞춤 업로드 경로를 선택하십시오. 공백으로 두면 기본 폴더가 사용됩니다. 사용자 정의 경로를 사용하는 경우 Emby 라이브러리 설정에서 라이브러리로 추가해야합니다.", + "LabelCreateCameraUploadSubfolder": "각 디바이스에 대한 하위 폴더 생성", + "LabelCreateCameraUploadSubfolderHelp": "디바이스 페이지에서 특정 폴더를 클릭하면 디바이스에 특정 폴더를 할당할 수 있습니다.", + "LabelCustomDeviceDisplayNameHelp": "디바이스 이름을 설정하세요. 디바이스에서 기존에 설정된 이름을 사용하려면 비워 두십시오.", + "TabParentalControl": "자녀 보호", + "HeaderAccessSchedule": "접속 일정", + "HeaderAccessScheduleHelp": "특정 시간대에 접속을 제한하기 위한 접속 일정을 만듭니다.", + "HeaderLibraryAccess": "라이브러리 접속", + "HeaderChannelAccess": "채널 접속", + "LabelForgotPasswordUsernameHelp": "기억하고 있다면, 사용자명을 입력하세요.", + "TitlePasswordReset": "비밀번호 초기화", + "HeaderBlockItemsWithNoRating": "등급 정보가 없거나 인식되지 않는 항목 차단", + "LabelBlockContentWithTags": "태그가있는 항목 차단", + "LabelTagRestrictionMode": "태그 차단 모드", + "BlockItemsWithTheseTags": "다음의 태그를 포함한 항목을 차단합니다.", + "AllowItemsWithTheseTags": "다음의 태그를 포함하는 항목만을 허용합니다.", + "OptionAllowContentDownloading": "미디어 다운로드 허용", + "LabelNewUserNameHelp": "사용자명에 알파벳 (a-z), 숫자 (0-9), 대시 (-), 밑줄 (_), apostrophes ('), 마침표 (.) 를 사용할 수 있습니다.", + "HeaderThisUserIsCurrentlyDisabled": "이 사용자는 현재 비활성화되어 있습니다. 이 사용자를 활성화하려면 이 페이지 하단의 옵션을 참조하세요.", + "OptionAllowSyncTranscoding": "트랜스코딩이 필요한 미디어 다운로드 허용", + "AllowMediaConversion": "미디어 변환 허용", + "AllowMediaConversionHelp": "미디어 변환 기능에 대한 액세스를 허용 또는 거부", + "OptionAllowAudioPlaybackTranscoding": "필요한 경우 미디어 재생 중 오디오 트랜스코딩 허용", + "OptionAllowVideoPlaybackTranscoding": "필요한 경우 미디어 재생 중 비디오 트랜스코딩을 허용합니다.", + "OptionAllowVideoPlaybackRemuxing": "미디어 재생 중 필요한 경우 컨테이너 형식 변경 허용", + "OptionAllowMediaPlaybackTranscodingHelp": "트랜스코딩 접근을 제한하면 품질 선택 기능이 비활성화되며, 지원되지 않는 미디어 형식이나 네트워크 대역폭 부족으로 인해 Emby 앱에서 재생 실패가 발생할 수 있습니다.", + "LabelRemoteClientBitrateLimit": "인터넷 스트리밍 비트레이트 제한 (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "모든 네트워크 외부 디바이스에 대한 선택적 스트림당 비트 전송률 제한. 이것은 디바이스가 인터넷 연결이 처리할 수 있는 것보다 더 높은 비트 전송률을 요청하지 않도록 하는 데 유용합니다. 비디오를 더 낮은 비트 전송률로 즉석에서 트랜스코딩하기 위해 서버의 CPU 부하가 증가할 수 있습니다.", + "LabelUserRemoteClientBitrateLimitHelp": "이 설정은 고급 서버 설정에서 지정된 기본 전역 값을 재정의합니다.", + "OptionEnableFullSpeedConversion": "최대 변환 속도 사용", + "OptionEnableFullSpeedConversionHelp": "기본적으로 변환은 리소스 소모를 최소화하기 위해 저속으로 수행됩니다.", + "OptionEnableAutomaticServerUpdates": "서버 자동 업데이트 사용", + "HeaderTVSources": "TV 소스", + "HeaderAddTvSource": "TV 소스 추가", + "LabelTunerIpAddress": "튜너 IP 주소", + "HeaderGuideProviders": "편성표 제공자", + "HeaderAddGuideSource": "편성표 추가", + "LabelZipCode": "우편 번호", + "LabelLineup": "라인업", + "LabelImportOnlyFavoriteChannels": "즐겨찾기 표시한 채널로 제한", + "ImportFavoriteChannelsHelp": "옵션을 켜면 즐겨찾기 표시한 채널만 불러옵니다.", + "HeaderDefaultRecordingSettings": "기본 녹화 설정", + "LabelDisplayName": "표시 이름", + "OptionDownloadImagesInAdvance": "미리 이미지 다운로드", + "OptionDownloadImagesInAdvanceHelp": "기본적으로 대부분의 이미지는 Emby 앱에서 요청할 경우에만 다운로드됩니다. 새 미디어를 가져올 때 모든 이미지를 미리 다운로드하려면 이 옵션을 사용하십시오. 이로 인해 상당히 긴 라이브러리 검색 시간이 발생할 수 있습니다.", + "MessageThankYouForSupporting": "Emby를 지원 해주셔서 감사합니다.", + "FileReadCancelled": "읽은 파일이 취소되었습니다.", + "FileNotFound": "파일을 찾을 수 없습니다.", + "FileReadError": "파일을 읽는 동안 오류가 발생하였습니다.", + "NoPluginConfigurationMessage": "이 플러그인에는 설정할 것이 없습니다.", + "HeaderNewApiKey": "새 API 키", + "HeaderNewApiKeyHelp": "Emby 서버와의 통신을 위해 애플리케이션 권한을 부여합니다.", + "MessageKeyEmailedTo": "키가 {0}에게 이메일로 전송되었습니다.", + "HeaderConfirmation": "확인", + "MessageKeyUpdated": "고맙습니다. 귀하의 Emby 프리미어 키가 업데이트되었습니다.", + "MessageKeyRemoved": "고맙습니다. 귀하의 Emby 프리미어 키가 삭제되었습니다.", + "TextEnjoyBonusFeatures": "보너스 기능을 즐기세요", + "MessageErrorLoadingSupporterInfo": "Emby 프리미어 정보를 가져오기에 오류가 발생하였습니다. 다시 시도해 주세요.", + "ValueTimeLimitSingleHour": "시간 제한: 1 시간", + "ValueTimeLimitMultiHour": "시간 제한: {0} 시간", + "General": "일반", + "HeaderScreenSavers": "화면 보호기", + "Reporting": "보고", + "LabelStopping": "멈춤", + "HeaderSelectCertificatePath": "인증서 경로 선택", + "HeaderSupporterBenefit": "활성 Emby 프리미어 구독은 Emby DVR, 오프라인 미디어, 프리미엄 플러그인 등에 대한 액세스와 같은 추가 혜택을 제공합니다. {0}더 알아보기{1}.", + "LabelAbortedByServerShutdown": "(서버가 종료되어 취소됨)", + "LabelScheduledTaskLastRan": "마지막으로 {0}, {1}동안 실행되었습니다.", + "HeaderDeleteTaskTrigger": "작업 트리거 삭제", + "MessageDeleteTaskTrigger": "이 작업 트리거를 삭제하겠습니까?", + "MessageNoPluginsDueToAppStore": "플러그인을 관리하려면 Emby 웹 앱을 사용하십시오.", + "LabelVersionInstalled": "{0} 설치됨", + "HeaderSelectServerCachePath": "서버 캐시 경로 선택", + "HeaderSelectTranscodingPath": "트랜스코딩 임시 경로 선택", + "HeaderSelectMetadataPath": "메타데이터 경로 선택", + "HeaderSelectServerCachePathHelp": "서버 캐시 파일에 사용할 경로를 탐색 또는 입력하세요. 쓰기 가능한 폴더여야 합니다.", + "HeaderSelectTranscodingPathHelp": "트랜스코딩 임시 파일에 사용할 경로를 탐색 또는 입력하세요. 쓰기 가능한 폴더여야 합니다.", + "HeaderSelectMetadataPathHelp": "메타데이터를 보관할 경로를 탐색 또는 입력하세요. 쓰기 가능한 폴더여야 합니다.", + "MessageConfirmRestart": "Emby 서버를 다시 시작하겠습니까?", + "MessageConfirmShutdown": "Emby 서버를 종료하겠습니까?", + "LabelLocalAccessUrl": "가정에서 (랜) 접속: {0}", + "LabelRemoteAccessUrl": "원격 (외부) 접속: {0}", + "LabelRunningOnPort": "http 포트 {0}에서 실행 중입니다", + "LabelRunningOnPorts": "http {0} 포트 및 https {1} 포트에서 실행 중입니다", + "LabelCurrentPath": "현재 경로", + "HeaderSelectMediaPath": "미디어 경로 선택", + "HeaderSelectPath": "경로 선택", + "MessageDirectoryPickerInstruction": "네트워크 버튼을 사용하여 디바이스를 찾지 못한 경우 수동으로 네트워크 경로를 입력 할 수 있습니다. 예를 들어, {0} 또는 {1}.", + "MessageDirectoryPickerBSDInstruction": "BSD의 경우 Emby가 액세스 할 수 있도록 FreeNAS Jail 내에 저장소를 구성해야 할 수도 있습니다.", + "MessageDirectoryPickerLinuxInstruction": "Arch Linux, CentOS, Debian, Fedora, OpenSuse 또는 Ubuntu와 같은 Linux의 경우 Emby 시스템 사용자에게 최소한 저장소 위치에 대한 읽기 액세스 권한을 부여해야합니다.", + "MetadataManager": "메타데이터 관리", + "OptionBlockLiveTvChannels": "TV 방송 채널", + "OptionBlockChannelContent": "인터넷 채널 콘텐트", + "ButtonRevoke": "해지", + "MessageConfirmRevokeApiKey": "이 api 키를 취소 하시겠습니까? Emby 서버에 대한 응용 프로그램의 연결이 갑자기 종료됩니다.", + "HeaderConfirmRevokeApiKey": "Api Key 해지", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "시작하기 전에 서비스 약관에 동의하세요.", + "HeaderChangeFolderType": "콘텐트 종류 변경", + "HeaderChangeFolderTypeHelp": "유형을 변경하려면 라이브러리를 제거하고 새 유형으로 다시 작성하십시오.", + "HeaderAlert": "경고", + "MessagePleaseRestart": "업데이트를 마치려면 다시 시작하세요.", + "OptionHomeVideos": "홈 비디오 및 사진", + "OptionBooks": "책", + "HeaderMetadataReaders": "불러올 메타데이터 형식", + "LabelMetadataReadersHelp": "선호하는 로컬 메타데이터 소스를 우선 순위에 따라 활성화하고 순위를 매깁니다.", + "HeaderSubtitleDownloaders": "자막 다운로더", + "SubtitleDownloadersHelp": "선호하는 자막 다운로더를 우선순위에 따라 활성화하고 순위를 매기세요. Emby 플러그인 카탈로그를 사용하여 더 많은 자막 제공자를 설치할 수 있습니다.", + "LabelMetadataDownloaders": "메타데이터 다운로더", + "LabelMetadataDownloadersHelp": "선호하는 메타데이터 다운로더를 우선 순위에 따라 정렬합니다. 낮은 우선 순위의 다운로더는 누락된 정보를 가져오는 데만 사용합니다.", + "HeaderMetadataSavers": "저장할 메타데이터 형식", + "LabelMetadataSaversHelp": "메타데이터를 저장할 형식을 선택합니다.", + "LabelImageFetchers": "이미지 가져오기 도구", + "LabelImageFetchersHelp": "선호하는 이미지 다운로더를 우선 순위에 따라 정렬합니다.", + "PersonTypePerson": "인물", + "HeaderRemoveMediaLocation": "미디어 위치 제거", + "MessageConfirmRemoveMediaLocation": "이 미디어 위치를 제거하겠습니까?", + "LabelNewName": "새 이름", + "HeaderRemoveLibrary": "라이브러리 제거", + "MessageAreYouSureYouWishToRemoveLibrary": "Emby 서버에서 {0} 라이브러리를 제거하시겠습니까? 미디어 파일에는 영향이 없습니다.", + "ButtonRename": "이름 변경", + "HeaderPluginInstallation": "플러그인 설치", + "MessageTrialExpired": "이 기능의 평가 기간이 만료되었습니다.", + "MessageTrialWillExpireIn": "이 기능의 평가 기간은 {0} 일 후에 만료됩니다.", + "ValuePriceUSD": "가격: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "이 기능에 등록되어 있고 활성화 된 Emby 프리미어 구독으로 계속 사용할 수 있습니다.", + "HeaderSelectExternalPlayer": "외부 플레이어 선택", + "HeaderExternalPlayerPlayback": "외부 플레이어 재생", + "HeaderThankYou": "감사합니다.", + "HeaderSelectUploadPath": "업로드 경로 선택", + "ErrorMessageStartHourGreaterThanEnd": "종료 시간은 시작 시간보다 커야합니다.", + "MessagePluginConfigurationRequiresLocalAccess": "이 플러그인을 구성하려면 로컬 서버에 직접 로그인하십시오.", + "MovieLibraryHelp": "{0} Emby 영화명 지정 안내서 {1} 참고하십시오.", + "TvLibraryHelp": "{0} Emby TV명 지정 안내서 {1} 참고하십시오.", + "BookLibraryHelp": "텍스트북이 지원됩니다. {0}Emby 도서 지정 안내서{1}를 참조하십시오.", + "MessageGamePluginRequired": "GameBrowser 플러그인 설치 필요", + "HeaderUnlockApp": "앱 제한 풀기", + "MessagePaymentServicesUnavailable": "현재 결제 서비스를 사용할 수 없습니다. 나중에 다시 시도하세요.", + "NoNewDevicesFound": "새로운 디바이스가 없습니다. 새 튜너를 추가하려면이 대화 상자를 닫고 수동으로 디바이스 정보를 입력하십시오.", + "MessageConfirmDeleteTunerDevice": "이 디바이스를 삭제하겠습니까?", + "MessageConfirmDeleteGuideProvider": "이 편성표 제공자를 삭제하겠습니까?", + "HeaderDeleteProvider": "제공자 삭제", + "ErrorAddingTunerDevice": "튜너 디바이스를 추가하는데 오류가 발생하였습니다. 접속 가능한지 확인하고 다시 시도하세요.", + "ErrorSavingTvProvider": "TV 제공자를 저장하는데 오류가 발생하였습니다. 접속 가능한지 확인하고 다시 시도하세요.", + "ErrorGettingTvLineups": "TV 라인업을 다운로드하는 중에 오류가 발생했습니다. 정보가 올바른지 확인하고 다시 시도하십시오.", + "MessageCreateAccountAt": "{0} 계정 만들기", + "ErrorPleaseSelectLineup": "라인업을 선택하고 다시 시도하십시오. 사용 가능한 라인업이 없는 경우 사용자 이름, 암호 및 우편번호가 올바른지 확인하십시오.", + "ErrorValidatingSupporterInfo": "Emby 프리미어 정보를 확인하는 중에 오류가 발생했습니다. 나중에 다시 시도하십시오.", + "LabelLocalSyncStatusValue": "상태: {0}", + "HeaderTopPlugins": "최고 플러그인", + "ForAdditionalLiveTvOptions": "추가 TV 공급자를 설치하려면 Emby {0}플러그인 카탈로그{1} 를 찾아보세요.", + "AddUser": "사용자 추가", + "HeaderEmailAddress": "이메일 주소", + "NumLocationsValue": "{0} 폴더", + "PleaseAddAtLeastOneFolder": "추가 버튼을 클릭하여 하나 이상의 폴더를이 라이브러리에 추가하십시오.", + "ErrorAddingMediaPathToVirtualFolder": "미디어 경로를 추가하는 중 오류가 발생했습니다. 경로가 유효하고 Emby 서버 프로세스가 해당 위치에 액세스 할 수 있는지 확인하십시오.", + "ErrorAddingEmbyConnectAccount3": "Emby 계정은 이미 기존 로컬 사용자와 연결되어 있습니다. Emby 계정은 한 번에 한 명의 로컬 사용자에게만 연결할 수 있습니다.", + "HeaderConfirmPluginInstallation": "플러그인 설치 확인", + "PleaseConfirmPluginInstallation": "확인을 클릭하여 위 내용을 읽었음을 확인하고 플러그인 설치를 계속 진행하십시오.", + "MessagePluginInstallDisclaimer": "Emby 커뮤니티 회원이 만든 플러그인은 추가 기능 및 이점으로 Emby 환경을 향상시키는 좋은 방법입니다. 설치하기 전에 긴 라이브러리 스캔, 추가 백그라운드 처리 및 시스템 안정성 감소와 같이 Emby 서버에 미치는 영향을 알고 있어야합니다.", + "HardwareAccelerationWarning": "하드웨어 가속을 사용하면 일부 환경이 불안정해질 수 있습니다. 운영 체제 및 비디오 드라이버가 최신 버전인지 확인하십시오. 이 기능을 사용하도록 설정 한 후 동영상을 재생하는 데 어려움이있는 경우 설정을 다시 자동으로 변경해야합니다.", + "ValueExample": "예: {0}", + "LabelFileOrUrl": "파일 또는 URL", + "OptionEnableForAllTuners": "모든 튜너 디바이스에 사용", + "HeaderTuners": "튜너", + "DrmChannelsNotImported": "DRM이있는 채널은 가져올 수 없습니다.", + "LabelAllowHWTranscoding": "하드웨어 트랜스코딩 허용", + "AllowHWTranscodingHelp": "활성화 된 경우 튜너가 즉시 스트림을 코드 변환할 수 있게하십시오. Emby 서버에 필요한 코드 변환을 줄일 수 있습니다.", + "MetadataSettingChangeHelp": "메타데이터 설정을 변경하면 앞으로 추가되는 새 콘텐츠에 영향을 미칩니다. 기존 컨텐츠를 새로 고치려면 세부 정보 화면을 열고 새로 고침 버튼을 클릭하거나 메타 데이터 관리자를 사용하여 대량 새로 고침을 수행하십시오.", + "RecordingPathChangeMessage": "녹화 폴더를 변경해도 이전 위치의 녹화물을 새 위치로 이전 할 수 없습니다. 원하는 경우 수동으로 이동해야합니다.", + "LabelLocalIpAddress": "로컬 IP 주소", + "LabelBindToLocalNetworkAddressHelp": "선택 사항입니다. Emby 서버가 Emby 앱에 표시할 로컬 IP 주소를 재정의합니다. 비워 두면 서버가 로컬 IP 주소를 자동으로 감지합니다.", + "SettingsWarning": "이 값을 변경하면 불안정 또는 연결 실패가 발생할 수 있습니다. 문제가 발생하면 기본값으로 다시 변경하는 것이 좋습니다.", + "OptionSaveMetadataAsHiddenHelp": "이를 변경하면 앞으로 저장되는 새 메타데이터에 적용됩니다. 기존 메타데이터 파일은 다음에 Emby 서버에 저장 될 때 업데이트됩니다.", + "EnablePhotos": "사진 사용", + "EnablePhotosHelp": "사진이 감지되어 다른 미디어 파일과 함께 표시됩니다.", + "ImportPlaylists": "재생 목록 파일 가져오기", + "ImportPlaylistsHelp": "미디어 디렉토리에 있는 재생 목록을 Emby Server로 가져올 수 있습니다.", + "SaveThumbnailImagesIntoMediaFolders": "비디오 미리보기 썸네일을 미디어 폴더에 저장", + "LabelGenerateVideoPreviewThumbnails": "비디오 미리보기 썸네일 생성", + "LabelEnableDebugLogging": "디버그 로깅 사용", + "OptionEnableExternalContentInSuggestions": "추천에서 외부 콘텐츠 사용", + "OptionEnableExternalContentInSuggestionsHelp": "인터넷 예고편 및 TV 프로그램을 추천 콘텐츠에 포함시킬 수 있습니다.", + "LabelOptionalNetworkPath": "(선택사항) 공유 네트워크 폴더", + "LabelOptionalNetworkPathHelp": "이 폴더가 네트워크에서 공유되는 경우 네트워크 공유 경로를 제공하면 다른 디바이스의 Emby 앱이 미디어 파일에 직접 액세스 할 수 있습니다.", + "SynologyUpdateInstructions": "업데이트하려면 DSM에 로그인하고 패키지 센터로 이동하십시오.", + "HeaderRecordingPostProcessing": "녹화 후 처리", + "LabelPostProcessorArguments": "포스트-프로세서 명령 행 인수:", + "PostProcessorArgumentsHelp": "포스트 프로세서에 데이터를 전달할 수 있도록 명령줄에서 다음 변수가 지원됩니다.", + "LabelPostProcessor": "사후 처리 응용 프로그램:", + "DvrPostProcessorPathArgument": "{path}: 새 녹음 파일의 전체 경로", + "OptionAutomaticallyGroupSeries": "여러 폴더에 걸쳐있는 시리즈 자동 병합", + "OptionAutomaticallyGroupSeriesHelp": "이 라이브러리를 사용하도록 설정하면이 라이브러리 내의 여러 폴더에 분산 된 시리즈가 자동으로 단일 시리즈로 병합됩니다.", + "WhenDidYouPurchaseApp": "원래 이 앱을 언제 구입하셨습니까?", + "PreferEmbeddedTitlesOverFileNames": "파일 이름보다 내장 타이틀 선호", + "PreferEmbeddedTitlesOverFileNamesHelp": "인터넷 메타데이터 또는 로컬 메타데이터를 사용할 수 없는 경우 기본 표시 제목을 결정합니다.", + "FriendlyNameForReferenceHelp": "자신의 참조를 위해 표시에 사용되는 친숙한 이름입니다.", + "HeaderLiveTvTunerSetup": "TV 방송 튜너 설정", + "HeaderTVSourceSetup": "TV 소스 설정", + "HeaderDetectMyDevices": "디바이스 감지", + "MessagePleaseWait": "기다려주십시오. 이 작업에는 1분 정도 걸릴 수 있습니다.", + "DetectingDevices": "디바이스 감지", + "LabelAutomaticallyRefreshInternetMetadataEvery": "인터넷에서 자동으로 메타데이터 새로 고침:", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "TBA와 같은 자리 표시자 제목이 있는 에피소드의 메타데이터를 자동으로 새로 고칩니다.", + "EveryNDays": "매 {0} 일마다", + "LabelCertificatePassword": "인증서 암호:", + "LabelCertificatePasswordHelp": "인증서에 암호가 필요한 경우 여기에 입력하십시오.", + "HeaderNewLibrary": "새로운 라이브러리", + "HttpsRequiresCert": "보안 연결을 사용하려면 Lets Encrypt와 같은 신뢰할 수있는 SSL 인증서를 제공해야합니다. 인증서를 제공하거나 보안 연결을 해제하십시오.", + "ServerRestartNeededAfterPluginInstall": "플러그인을 설치 한 후 Emby 서버를 다시 시작해야합니다.", + "PluginInstalledMessage": "플러그인이 성공적으로 설치되었습니다. 변경 사항을 적용하려면 Emby 서버를 다시 시작해야합니다.", + "MessagePremiereStatusGood": "당신은 {0} Emby 프리미어 요금제를 사용 중이며 디바이스 사용량이 한도 내에 있습니다.", + "MessagePremiereStatusClose": "당신은 {0} Emby 프리미어 요금제를 사용중이지만 디바이스 사용량이 한도에 근접했습니다.", + "MessagePremiereExtendedPlans": "{0}확장된 디바이스 요금제{1}로 바꿔보세요.", + "MessagePremiereStatusOver": "당신은 {0} Emby 프리미어 요금제를 사용중이지만 디바이스 사용량이 한도를 초과했습니다!", + "ListItemPremiereSub": "{2}를 통해 구매한 {0}요금제가 {1}에 만료됩니다.", + "LabelClickToManage": "이 구독을 관리하려면 클릭하세요", + "LabelCancelInfo": "{0}을 (를) 사용하여이 구독을 직접 관리 할 수 ​​있습니다.", + "LabelAlreadyCanceled": "이 구독이 취소되었습니다. 만료 될 때까지 키는 유효합니다.", + "HeaderCancelSub": "Emby 프리미어 취소", + "MessageConfirmSubCancel": "당신은 Emby 프리미어의 모든 위대한 기능을 놓치게됩니다.", + "ButtonCancelSub": "취소합니다.", + "ButtonDontCancelSub": "Emby 프리미어 유지", + "MessageSubCancelReqSent": "키 소유자에게 이메일이 전송되었습니다. 해당 이메일의 지침에 따라이 구독 취소를 완료하십시오. 곧 다시 보길 바랍니다!", + "MessageSubCancelError": "취소하는 도중 오류가 발생했습니다. {0}로 이메일을 보내주시면 도와드리겠습니다.", + "LabelAlreadyCancelled": "구독이 취소되었습니다. 다시 청구되지는 않지만 위의 날짜까지 기능이 작동합니다.", + "AllowOnTheFlySubtitleExtraction": "즉시 자막 추출 허용", + "AllowOnTheFlySubtitleExtractionHelp": "임베드 된 자막은 비디오에서 추출해 비디오 트랜스코딩을 방지하기 위해 일반 텍스트로 Emby 앱에 전달할 수 있습니다. 일부 시스템에서는 시간이 오래 걸리고 추출 프로세스 중에 비디오 재생이 중단될 수 있습니다. 클라이언트 디바이스에서 기본적으로 지원하지 않는 경우 비디오 트랜스코딩으로 내장 자막을 사용하려면 이 기능을 비활성화하십시오.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "디버그 로깅은 문제 해결을 위해 필요한 경우에만 활성화해야합니다. 파일 시스템 액세스가 증가하면 일부 환경에서 서버 시스템이 절전 상태가되지 않을 수 있습니다.", + "LabelSimultaneousConnectionLimit": "동시 스트림 한도:", + "SimultaneousConnectionLimitHelp": "허용되는 최대 동시 스트림 수입니다. 제한이 없으면 0을 입력하십시오.", + "LaunchWebAppOnStartup": "Emby 서버가 시작되면 웹 브라우저에서 Emby 웹 앱을 실행하십시오.", + "LaunchWebAppOnStartupHelp": "Emby 서버가 처음 시작될 때 기본 웹 브라우저에서 웹 응용 프로그램이 열립니다. 서버 재시작 기능을 사용할 때 발생하지 않습니다.", + "LabelReferrerHeader": "추천인 http 헤더", + "LabelUserAgentHeader": "사용자 에이전트 http 헤더", + "SupplyCustomValueIfNeeded": "필요한 경우 사용자 정의 http 헤더 값을 제공하세요.", + "HeaderConfigureRemoteAccess": "원격 액세스 구성", + "LearnHowToCreateSynologyShares": "Synology에서 폴더를 공유하는 방법에 대해 알아보십시오.", + "LabelAllowedRemoteAddresses": "원격 IP 주소 필터:", + "LabelAllowedRemoteAddressesMode": "원격 IP 주소 필터 모드:", + "Whitelist": "화이트리스트", + "Blacklist": "블랙리스트", + "AllowedRemoteAddressesHelp": "원격으로 연결할 수 있는 네트워크에 대한 IP주소 또는 IP/넷마스크 항목의 쉼표로 구분 된 목록입니다. 공백으로두면 모든 원격 주소가 허용됩니다.", + "LabelLanNetworks": "LAN 네트워크:", + "LanNetworksHelpText": "대역폭 및 원격 액세스 제한을 적용할 때 로컬 네트워크로 간주될 IP 주소 또는 IP/넷마스크 항목들의 쉼표로 구분된 목록입니다. 설정할 경우, 명시되지 않은 모든 다른 IP 주소는 외부 네트워크로 간주됩니다. 비워 두면 서버의 서브넷과 일반적인 사설 IP 서브넷(예: 192.168.0.0/24, 172.16.0.0/12 등)만 로컬 네트워크로 간주됩니다.", + "LabelSecureConnectionsMode": "보안 연결 모드:", + "PreferredNotRequired": "선호되었지만 필수는 아닙니다.", + "RequiredForAllRemoteConnections": "모든 원격 연결에 필요합니다.", + "HandledByProxy": "역방향 프록시 처리", + "SaveSubtitlesIntoMediaFolders": "자막을 미디어 폴더에 저장하십시오.", + "SaveSubtitlesIntoMediaFoldersHelp": "비디오 파일 옆에 자막을 저장하면 더 쉽게 관리 할 수 ​​있습니다.", + "AutomaticSubtitleDownloadInstructions": "자동 자막 다운로드를 관리하려면 Emby 라이브러리 설정에서 라이브러리를 클릭하고 자막 다운로드 설정을 편집하십시오.", + "ProviderNeedsSetupWithUrl": "{0}에는 Emby Server의 {1} 설정 화면{2}에서 추가 설정이 필요합니다.", + "LabelEnableHardwareAcceleration": "하드웨어 가속 사용:", + "HeaderPreferredHardwareDecoders": "선호하는 하드웨어 디코더", + "HeaderPreferredHardwareEncoders": "선호하는 소프트웨어 디코더", + "AllowChangingImageAndPassword": "이 사용자가 자신의 암호와 프로필 이미지를 변경할 수 있게 허용", + "LabelSimultaneousStreamLimit": "동시에 스트리밍 가능한 비디오 갯수:", + "SimultaneousStreamLimitHelp": "동시에 재생 가능한 숫자를 제한합니다.", + "LabelMusicFolderStructure": "음악 폴더 구조:", + "LabelMusicFolderStructureHelp": "이 정보는 라이브러리 스캐너에 폴더 구성 방법에 대한 힌트를 제공합니다. 확실하지 않거나 폴더가 옵션 중 하나와 정확하게 일치하지 않는 경우 기본 옵션인 기타를 선택하십시오.", + "OtherOrUnstructured": "기타 또는 구조화되지 않음", + "PerfectArtistAlbumTrack": "아티스트\\앨범 폴더로 완벽하게 정리되었으며, 트랙은 앨범 폴더에 바로 저장됩니다.", + "PerfectAlbumTrack": "앨범 폴더에 완벽하게 정리되어 있으며, 트랙이 앨범 폴더에 바로 들어 있습니다.", + "LabelMinCollectionSize": "최소 자동 컬렉션 크기:", + "PerfectAuthorAudioBookTrack": "저자\\책 폴더로 완벽하게 정리되었으며, 트랙은 책 폴더에 바로 저장됩니다.", + "PerfectAudioBookTrack": "책 폴더에 완벽하게 정리되어 있으며, 책 폴더에 바로 트랙이 들어 있습니다.", + "MinCollectionSizeHelp": "라이브러리에 최소한 선택한 수의 미디어가 있는 경우 컬렉션을 자동으로 생성합니다. 이 값을 변경해도 기존 생성에는 영향을 주지 않습니다.", + "LabelImportCollections": "메타데이터 다운로더에서 수집 정보 가져오기", + "LabelImportCollectionsHelp": "이 옵션을 사용하도록 설정하면 활성화된 메타데이터 다운로드기에서 수집 정보를 가져옵니다. 이로 인해 원치 않는 컬렉션이 자동으로 생성될 수 있습니다. 사용하지 않도록 설정하면 이후 컬렉션이 자동으로 생성되지 않지만 기존 컬렉션은 삭제되지 않습니다.", + "LabelAllowAdultMetadata": "성인 메타데이터 허용", + "LabelAllowAdultMetadataHelp": "인터넷에서 메타데이터를 가져올 때 성인 메타데이터를 허용합니다.", + "HeaderVideoPreviewThumbnails": "비디오 미리보기 썸네일", + "LabelEnableHDRToneMapping": "HDR 톤 매핑 사용:", + "EnableHDRToneMappingHelp": "톤 매핑은 HDR 콘텐츠를 트랜스코딩 할 때 정확한 색상 변환을 보장하며, 사용하지 않으면 HDR 콘텐츠가 매우 흐리게 표현됩니다. 이 기능을 사용하도록 설정한 상태에서 하드웨어 가속을 지원하려면 드라이버 구성 요소가 추가로 필요할 수 있습니다. 자세한 내용은 하드웨어 가속 설정 가이드를 참조하십시오.", + "WithHardwareAcceleratedTranscoding": "하드웨어 가속을 통해서만 허용", + "TranscodingStillInitializing": "Emby Server 트랜스코딩 서비스를 시작하는 중입니다. 트랜스코딩 서비스가 준비되면 이 화면이 자동으로 새로 고쳐집니다.", + "WithEitherHardwareOrSoftwareTranscoding": "하드웨어나 소프트웨어 트랜스코딩 모두 허용", + "ToneMappingInHardwareDescription": "톤 매핑은 하드웨어가 지원하는 하드웨어 가속이 켜져 있을때 사용되고 다른 모든 경우에는 건너뜁니다.", + "ToneMappingInSoftwareDescription": "톤 매핑은 CPU가 소프트웨어 단에서 수행합니다. 이는 하드웨어 가속 톤 매핑보다 훨씬 느리고 성능이 매우 좋은 서버 시스템이 필요합니다.", + "ToneMappingInBothDescription": "톤 매핑은 하드웨어가 지원하는 하드웨어 가속이 켜져 있을때 사용될 뿐 만 아니라 소프트웨어 단에서도 사용됩니다. 소프트웨어 단에서 사용될 경우 하드웨어 가속 톤 매핑보다 훨씬 느리고 성능이 매우 좋은 서버 시스템이 필요합니다.", + "AutoMapped": "자동으로 매핑됨", + "ManuallyMapped": "수동으로 매핑됨", + "NotMappedToGuideData": "편성표에 매핑되지 않음", + "MappedToValue": "{0}에 매핑됨", + "LabelAutomaticallyWakeServerForRecordings": "녹화를 수행하기 위해 서버 시스템을 자동으로 깨웁니다.", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake 이벤트는 서버 운영 체제로 예약됩니다. 이 옵션을 비활성화하면 향후 Wake 이벤트가 예약되지 않지만 이전에 예약된 이벤트는 제거되지 않습니다.", + "Database": "데이터베이스", + "LabelOptimizeDatabaseOnShutdown": "서버 종료 시 데이터베이스 최적화 시도", + "LabelOptimizeDatabaseOnShutdownHelp": "데이터베이스 최적화 작업은 일반적으로 무작동이지만 쿼리 플래너에 유용할 것 같으면 때때로 분석을 실행합니다. 이로 인해 Emby Server를 종료하는 데 시간이 더 오래 걸릴 수 있습니다.", + "LabelDatabaseCacheSize": "데이터베이스 캐시 사이즈 (MB)", + "LabelDatabaseCacheSizeHelp": "데이터베이스 파일당 데이터베이스가 한 번에 메모리에 보유할 데이터 양을 설정합니다. 더 큰 값은 Emby 서버 성능을 향상시키는 데 도움이 될 수 있습니다. 적용하려면 서버를 다시 시작해야 합니다.", + "LabelDatabaseAnalysisLimit": "분석 행 제한", + "LabelDatabaseAnalysisLimitHelp": "데이터베이스가 최적화될 때 ANALYZE 명령에 의해 각 인덱스에서 검사되는 대략적인 행 개수입니다. 더 큰 값은 데이터베이스 최적화의 효율성을 증가시키지만 Emby 서버가 종료하는 데 더 오래 걸릴 수 있습니다.", + "LabelVacuumDb": "다음 Emby 서버를 시작할 때 데이터베이스를 압축 정리합니다.", + "LabelVacuumDbHelp": "압축 정리 명령은 데이터베이스 파일을 재구축하여 최소한의 디스크 공간으로 다시 압축합니다. 경우에 따라 Emby 서버 성능이 향상될 수 있습니다. 작업 중에는 Emby 서버를 사용할 수 없으며 진행 상황을 모니터링할 방법도 없습니다. 이 시간 동안 Emby Server 프로세스를 강제로 닫지 마십시오. 데이터베이스가 손상될 수 있습니다. 이것은 일회성 작업이며 이 옵션은 다음에 서버를 시작할 때 선택되지 않은 상태로 되돌아갑니다.", + "AdvancedOptionsWarning": "이는 고급 옵션이며 변경할 이유가 없는 한 일반적으로 기본값으로 두어야 합니다.", + "HeaderRecentlyActiveDevices": "최근에 활성화된 디바이스", + "YesUntilServerRestart": "예, 다음에 서버가 다시 시작될 때까지", + "YesUntilLogRotate": "예, 다음 로그 파일 회전까지", + "LabelSubtitleDownloadMaxAge": "이전 버전의 비디오에 대한 자막을 자동으로 다운로드하려고 시도하지 마세요", + "SubtitleDownloadMaxAgeHelp": "메타데이터 값이 추가된 날짜를 기반으로 합니다.", + "NoAgeLimit": "연령 제한 없음", + "AnonymizeLogContents": "로그 내용 익명화", + "Markers": "마커", + "LabelGenerateIntroVideoMarkers": "인트로 비디오 마커 생성", + "GenerateIntroVideoMarkersHelp": "인트로를 감지하고 Emby에서 '인트로 건너뛰기' 버튼을 표시합니다. 인트로 감지에 시간이 오래 걸리고 CPU 또는 디스크 사용량이 높아질 수 있습니다.", + "LabelCopyFromUser": "사용자의 설정 복사", + "CopyFromUserHelp": "선택 항목. 기존 사용자의 정보를 복사하여 새 사용자 생성 속도를 높입니다.", + "UserPolicy": "사용자 정책(라이브러리 및 기능 액세스, 자녀 보호 등)", + "UserConfiguration": "사용자 구성(선호하는 오디오 및 자막 언어, 라이브러리 순서 등)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "복사 옵션", + "LabelMultiRestrictionMode": "다중 제한 모드:", + "MultiRestrictionModeAll": "등급 및 태그 제한과 일치하는 콘텐츠 허용", + "MultiRestrictionModeAny": "등급 또는 태그 제한과 일치하는 콘텐츠 허용", + "AllowMappingByChannelNumber": "채널 번호를 사용하여 편성표 매핑 허용", + "AllowMappingByChannelNumberHelp": "이것은 채널 이름을 기준으로 일치 항목을 찾을 수 없을 때마다 편성표와 튜너 채널을 일치시키기 위한 폴백으로 사용할 수 있습니다. 튜너의 채널 번호가 올바르지 않으면 매칭이 부정확해질 수 있습니다.", + "LabelPreferredSourceForChannelLogos": "둘 다 사용 가능한 경우 튜너보다 편성표의 채널 로고를 선호합니다.", + "LabelPreferredSourceForChannelNumbers": "둘 다 사용 가능한 경우 튜너보다 편성표의 채널 번호를 선호합니다.", + "HeaderSoftwareEncoders": "소프트웨어 인코더", + "LabelProxyHeaderMode": "프록시 헤더를 읽어 클라이언트 IP 주소를 확인합니다.", + "ProxyHeadersRemoteOnly": "원격 네트워크 주소가 포함되어 있는 경우에만", + "ProxyHeaderModeHelp": "{0} 및 {1}과 같은 요청 헤더를 사용하여 연결 장치의 IP 주소를 확인해야 하는지 여부를 결정합니다.", + "AllowCameraUpload": "카메라 업로드 허용", + "AllowCameraUploadHelp": "허용하고 Emby 모바일 앱에서 활성화된 경우 사용자는 카메라에서 촬영한 사진과 비디오를 이 Emby 서버에 자동으로 업로드할 수 있습니다.", + "CameraUploadMustBeGranted": "또한 서버 관리자로부터 카메라 업로드에 대한 액세스 권한을 부여받아야 합니다.", + "EnableReadingAndWritingPeopleMetadata": "개인 메타데이터 파일의 읽기 및 쓰기를 활성화합니다.", + "EnableReadingAndWritingPeopleMetadataHelp": "Nfo 메타데이터 플러그인을 설치해야 합니다. 이렇게 하면 nfo 메타데이터 파일에 사람 편집 내용을 저장할 수 있지만 라이브러리 스캔 시간이 길어집니다.", + "LabelIgnoreSampleFiles": "크기가 (MB) 보다 작으면 파일 이름에 샘플이라는 단어가 포함된 파일을 무시합니다.", + "PreferredChannelImageSource": "선호 채널 이미지 소스", + "PreferredChannelImageSourceHelp": "튜너와 가이드 데이터에 모두 이미지가 있는 경우, 선호하는 채널 이미지를 선택하세요.", + "CacheImagesInServerData": "서버의 메타데이터 폴더에 캐시된 이미지 사본을 보관", + "CacheImagesInServerDataHelp": "미디어와 이미지가 다른 컴퓨터에 저장되어 있는 경우 서버 메타데이터 폴더에 이미지의 캐시된 복사본을 보관하면 네트워크 액세스가 줄어들고 성능이 향상될 수 있습니다. 이 캐시를 만들 때의 단점은 라이브러리 검색 속도가 느려지고 서버 메타데이터 폴더가 훨씬 더 많은 디스크 공간을 소비한다는 것입니다.", + "AllowSharingPersonalContent": "이 서버의 다른 사용자와 재생 목록 등의 개인 콘텐츠 공유를 허용합니다.", + "AllowSharingPersonalContentHelp": "허용할 시 이 사용자는 자신의 재생목록을 다른 사용자와 공유할 수 있습니다. 항목은 사용자 라이브러리 액세스 및 자녀 보호 기능에 따라 계속 제한됩니다.", + "LiveBufferSizeHours": "라이브 스트림 버퍼 크기 제한(시간)", + "LiveBufferSizeHoursHelp": "버퍼가 길수록 라이브 스트리밍 중에 앞뒤로 검색할 수 있는 기능이 더 뛰어나지만, 디스크 공간을 더 많이 차지합니다.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "RightToLeft": "Right-to-left order", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/lt.json b/strings/lt.json new file mode 100644 index 0000000..98d4cdd --- /dev/null +++ b/strings/lt.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Baigta!", + "ThisWizardWillGuideYou": "Šis pagalbininkas padės jums paruošti Emby. Pradžiai pasirinkite pageidaujamą kalbą.", + "HeaderCreateYourFirstUser": "Sukurkite pirmą vartotoją", + "ButtonQuickStartGuide": "Greitos pradžios gidas", + "MoreUsersCanBeAddedLater": "Vėliau galėsite pridėti daugiau vartotojų Emby serverio nustatymuose.", + "UserProfilesIntro": "Emby palaiko vartotojų profilius, leidžiančius kiekvienam vartotojui nustatyti savo rodymo nustatymus, žiūrėjimo statistiką ir tėvų kontrolę.", + "WizardCompleted": "Tai viskas, ko mums dabar reikia. Emby pradėjo rinkti informaciją apie Jūsų biblioteką. Išbandyk kitas mūsų programas, tada spausk Baigti ir galėsi pažiūrėti Pagrindinį serverio nustatymų langą.", + "MessagePleaseAcceptTermsOfService": "Prieš tęsiant prašome peržiūrėti naudojimo sąlygas ir privatumo politiką.", + "OptionIAcceptTermsOfService": "Sutinku su naudojimo sąlygomis", + "SeeOurHwaGuide": "See our {0}hardware acceleration setup guide{1}.", + "HeaderEmbyServerReleaseNotes": "Emby serverio atnaujinimo pastabos", + "AllowSubtitleDownloading": "Leisti subtitrų atsiuntimą", + "AllowSubtitleManagement": "Leisti ištrinti esamus subtitrų failus", + "NewUserNameHelp": "Taip bus atvaizduojamas vartotojas jūsų serveryje.", + "ChapterMarkers": "Skyriaus žymekliai", + "LabelThumbnailImagesInterval": "Thumbnail images interval", + "ThumbnailImagesIntervalHelp": "More frequent thumbnails will result in a better experience, but will require more disk space and time to create the images.", + "LabelAuthProvider": "Autentikacijos tiekėjas:", + "AuthProviderHelp": "Administrators always use the default Emby provider to ensure you're never locked out.", + "HeaderNewUser": "Naujas vartotojas", + "ChangeServerDisplayName": "Pakeisti serverio pavadinima", + "ShowAdvancedSettings": "Rodyti sudėtingesnius nustatymus", + "ChangingMetadataImageSettingsNewContent": "Changes to metadata or artwork downloading settings will only apply to new content added to your library. To apply the changes to existing titles, you'll need to refresh their metadata manually.", + "AllowRemoteAccess": "Leisti nuotolinį prisijungimą prie šio Emby serverio.", + "AllowRemoteAccessHelp": "If unchecked, all remote connections will be blocked.", + "Alerts": "Pranešimai", + "LabelTrackTitleDisplay": "Embedded track title display", + "GenerateUserFriendlyTrackTitles": "Generate user friendly titles using track information", + "PreferOriginalTrackTitles": "Prefer embedded titles", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "EnableTranscodingThrottle": "Enable throttling", + "EnableTranscodingThrottleHelp": "Emby will dynamically adjust transcoding speed based in order to reduce CPU utilization.", + "HeaderTypeMetadataDownloaders": "{0} Metaduomenų atsiuntėjai", + "HeaderTypeImageFetchers": "{0} Image Fetchers", + "HeaderImageOptions": "Nuotraukų nustatymai", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registruotis su PayPal", + "LabelSyncTempPath": "Laikinų failų kelias:", + "LabelSyncTempPathHelp": "Nurodykite sinchronizavimo darbinį aplanką. Jame bus laikoma konvertuojama medija, sukurta sinchronizavimo proceso metu.", + "LabelCustomCertificatePath": "Custom ssl certificate path", + "LabelCustomCertificatePathHelp": "Path to a PKCS #12 file containing a certificate and private key to enable TLS support on a custom domain.", + "HeaderSetupLibrary": "Tvarkyti medijos biblioteką", + "LabelTimeLimitHours": "Laiko limitas (val.):", + "HeaderPreferredMetadataLanguage": "Pageidaujama metaduomenų kalba", + "LabelSaveLocalMetadata": "Išsaugoti iliustracijas ir metaduomenis į medijos aplankus.", + "LabelSaveLocalMetadataHelp": "Saugoti iliustracijas ir metaduomenis tiesiai į medijos aplankus, ir taip juos bus lengviau redaguoti.", + "TabAccess": "Prieiga", + "HeaderDeviceAccess": "Įrenginio prieiga", + "OptionEnableAccessFromAllDevices": "Leisti prieigą iš visų įrenginių", + "OptionEnableAccessToAllChannels": "Leisti prieigą prie visų kanalų", + "OptionEnableAccessToAllLibraries": "Leisti prieigą prie visų bibliotekos", + "DeviceAccessHelp": "Tai taikoma tik įrenginiams, kurie gali būti identifikuojami, ir neuždraus prieigos per naršyklę. Vartotojo įrenginio prieigos filtravimas neleis jiems naudotis naujais įrenginiais kol jie nepatvirtinti čia.", + "LabelDisplayMissingEpisodesWithinSeasons": "Rodyti sezonuose trūkstamas serijas", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Emby database and displayed within seasons and series. This may cause significantly longer library scans.", + "MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.", + "LabelMaxParentalRating": "Didžiausias leistinas tėvų reitingas:", + "MaxParentalRatingHelp": "Aukštesnio reitingo turinys bus slepiamas nuo šio vartotojo.", + "LibraryAccessHelp": "Pasirinkite medijos aplankus, kuriuos norite dalintis su šiuo vartotoju. Administratoriai galės redaguoti visus aplankus per metaduomenų valdymą.", + "ChannelAccessHelp": "Pasirinkite kanalus, kuriuos norite dalintis su šiuo vartotoju. Administratoriai galės redaguoti visus kanalus per metaduomenų valdymą.", + "ImageUploadAspectRatioHelp": "Rekomenduojamas 1:1 santykis. Tik JPG/PNG.", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Click OK to send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, setup Emby Premiere in your Emby Server Dashboard under Help -> Emby Premiere, and it will be unlocked automatically.", + "TabMyPlugins": "Mano priedai", + "TabCatalog": "Katalogas", + "HeaderAutomaticUpdates": "Automatiniai atnaujinimai", + "Standard": "Standartinis", + "TabSupporterKey": "Emby Premiere Raktas", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Naudinga privačioms ar slaptoms administratorių paskyroms. Vartotojui reikės rankiniu būdu įvesti vartotoją vardą ir slaptažodį.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Išjungti šį vartotoją", + "OptionDisableUserHelp": "Išjungus serveris neleis prisijungti šiam vartotojui. Esamas ryšys bus nutrauktas.", + "OptionAllowUserToManageServer": "Leisti šiam vartotojui valdyti serverį", + "HeaderFeatureAccess": "Prieiga prie funkcijų", + "OptionAllowMediaPlayback": "Leisti medijos atkūrimą", + "AllLibraries": "Visos bibliotekos", + "HeaderAllowMediaDeletionFrom": "Allow Media Deletion From", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Leisti nuotoliniu būdu kontroliuoti kitus vartotojus", + "OptionAllowRemoteSharedDevices": "Leisti nuotoliniu būdu valdyti bendrus įrenginius", + "OptionAllowRemoteSharedDevicesHelp": "Dlna įrenginiai yra laikomi bendrais kol vartotojas nepradeda jų kontroliuoti.", + "OptionAllowLinkSharing": "Leisti dalintis socialinėse aplinkose", + "OptionAllowLinkSharingHelp": "Dalinamasi tik tinklapiais su medijos informacija. Medijos failai niekada neviešinami. Pasidalinimai yra ribojami laike ir pasens po {0} dienų.", + "OptionRelease": "Oficialus išleidimas", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "Serveris persikraus tik nieko neveikimo metu, kai nebus aktyvus nei vienas vartotojas.", + "LabelRunServerAtStartup": "Paleisti serverį paleidžiant kompiuterį", + "LabelRunServerAtStartupHelp": "This will start the Emby tray icon on Windows startup. If you've set up a Windows service then leave this unchecked and configure the service to run at startup.", + "ButtonSelectDirectory": "Rinktis direktoriją", + "LabelCachePath": "Kelias į atmintinę:", + "DefaultMetadataLangaugeDescription": "These are your defaults and can be customized on a per-library basis.", + "LabelCachePathHelp": "Nurodykite vietą serverio atmintinei failams, pvz. paveikslams. Palikite tuščią kad būtų naudojama įprasta vieta.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Metaduomenų kelias:", + "LabelMetadataPathHelp": "Nurodykite savo vietą atsisiųstiems paveikslams ir metaduomenims.", + "LabelTranscodingTempPath": "Transkodavimo laikinas kelias:", + "LabelTranscodingTempPathHelp": "Šiame aplanke bus darbiniai transkoderio failai. Nurodykite savo vietą, arba palikite tuščią, kad būtų naudojamas serverio duomenų aplankas.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Atnaujinti gido duomenis", + "LabelNumberOfGuideDays": "Kiek dienų gido duomenų atsisiųsti:", + "LabelNumberOfGuideDaysHelp": "Atsiuntus daugiau gido duomenų dienų bus galima toliau numatyti tvarkaraštį, tačiau tai užtruks ilgiau. Auto parinks dienų skaičių pagal kanalų kiekį.", + "HeaderFetchImages": "Gauti nuotraukas:", + "LabelMaxBackdropsPerItem": "Maksimalus fonų kiekis elementui:", + "LabelMaxScreenshotsPerItem": "Maksimalus ekrano nuotraukų kiekis elementui:", + "LabelMinBackdropDownloadWidth": "Minimalus fono atsiuntimo plotis:", + "LabelMinScreenshotDownloadWidth": "Minimalus ekrano nuotraukos siuntimo plotis:", + "ButtonAddScheduledTaskTrigger": "Pridėti jungiklį", + "ButtonAdd": "Pridėti", + "LabelTriggerType": "Jungiklio tipas:", + "OptionOnInterval": "Pasikartojantis", + "OptionAfterSystemEvent": "Po sisteminio įvykio", + "LabelDay": "Diena:", + "LabelTime": "Laikas:", + "LabelEvent": "Įvykis:", + "OptionWakeFromSleep": "Žadinti iš miego", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Įjungti stebėjimą realiu laiku", + "LabelEnableRealtimeMonitorHelp": "Pokyčiai bus apdoroti iš karto (palaikomose failų sistemose).", + "Community": "Bendruomenė", + "HeaderEmbyNews": "Emby Naujienos", + "LabelFriendlyServerName": "Draugiškas serverio pavadinimas:", + "LabelFriendlyServerNameHelp": "Šis pavadinimas bus naudojamas serverio identifikavimui. Palikus tuščią bus naudojamas kompiuterio pavadinimas.", + "LabelPreferredDisplayLanguage": "Pageidaujama rodymo kalba:", + "LabelPreferredDisplayLanguageHelp": "Emby vertimas yra besitęsiantis projektas.", + "LabelReadHowYouCanContribute": "Sužinokite, kaip galite prisidėti.", + "LabelCustomCss": "Kitoks CSS:", + "LabelCustomCssHelp": "Pritaikykite tinklapio išvaizdai savo CSS.", + "LabelLocalHttpServerPortNumber": "Vietinis HTTP porto numeris:", + "LabelLocalHttpServerPortNumberHelp": "TCP porto numeris, kurį turėtų naudoti Emby HTTP serveris.", + "LabelPublicHttpPort": "Viešas HTTP porto numeris:", + "LabelPublicHttpPortHelp": "Viešas porto numeris, kurį reiktų susieti su vietiniu HTTP portu.", + "LabelPublicHttpsPort": "Viešas HTTPS porto numeris:", + "LabelPublicHttpsPortHelp": "Viešas porto numeris, kurį reiktų susieti su vietiniu HTTPS portu.", + "RequireHttps": "Require https for external connections", + "RequireHttpsHelp": "If enabled, connections over http will be redirected to https.", + "LabelHttpsPort": "Vietinis HTTPS porto numeris:", + "LabelHttpsPortHelp": "TCP porto numeris, kurį turėtų naudoti Emby HTTPS serveris.", + "LabelEnableAutomaticPortMap": "Įjungti automatinį portų išdėstymą", + "LabelEnableAutomaticPortMapHelp": "Pabandyti automatiškai susieti viešus portus su vietiniais portais per UPnP. Tai gali neveikti su kai kuriais maršrutizatoriais.", + "LabelExternalDDNS": "Išorinis domenas:", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Mažiausias pratęsimo procentas:", + "LabelMaxResumePercentage": "Didžiausias pratęsimo procentas:", + "LabelMinResumeDuration": "Mažiausia pratęsimo trukmė (sek.):", + "LabelMinResumePercentageHelp": "Failai laikomi nežiūrėtais jei sustabdoma iki šio laiko", + "LabelMaxResumePercentageHelp": "Gailai laikomi peržiūrėti, jei sustabdoma vėliau šio laiko", + "LabelMinResumeDurationHelp": "Trumpesnių failų pratęsti nebus įmanoma", + "HeaderStatus": "Būklė", + "Subscriptions": "Subscriptions", + "LabelEndingEpisodeNumber": "Paskutinės serijos numeris:", + "LabelEndingEpisodeNumberHelp": "Reikalinga tik kelių serijų failams", + "HeaderSupportTheTeam": "Paremkite Emby Komandą", + "HeaderSupportTheTeamHelp": "Padėkite užtikrinti tolesnį šio projekto tobulinimą nupirkdami Emby Premiere. Dalis visų pajamų bus panaudota kitiems nemokamiems įrankiams, nuo kurių priklausome.", + "DonationNextStep": "Pabaigus grįžkite ir įveskite savo Emby Premiere raktą, kurį gausite paštu.", + "HeaderRunningTasks": "Veikiančios užduotys", + "ButtonUpdateNow": "Update Now", + "PleaseUpdateManually": "Please shutdown Emby Server and install the latest version.", + "ServerUpToDate": "Emby Server is up to date", + "MessagePleaseRestartServerToFinishUpdating": "Please restart the server to finish applying updates.", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", + "HeaderForgotKey": "Pamiršau raktą", + "LabelSupporterEmailAddress": "The email address that was used to purchase the key.", + "ButtonRetrieveKey": "Retrieve Key", + "LabelSupporterKey": "Emby Premiere key (paste from email)", + "LabelSupporterKeyHelp": "Enter your Emby Premiere key to start enjoying additional benefits.", + "MessageInvalidKey": "Emby Premiere key is missing or invalid.", + "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also have an active Emby Premiere subscription.", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Send message", + "HeaderSendMessage": "Send Message", + "ButtonSend": "Send", + "LabelMessageText": "Message text", + "LabelMessageTitle": "Message title", + "ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Api Keys", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "Api Key", + "HeaderResumeSettings": "Resume Settings", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Activity", + "ButtonPurchase": "Purchase", + "HeaderInstall": "Install", + "LabelSelectVersionToInstall": "Select version to install", + "LinkLearnMoreAboutSubscription": "Learn about Emby Premiere", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Developer Info", + "HeaderRevisionHistory": "Revision History", + "ButtonViewWebsite": "View website", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect", + "LabelDateAddedBehavior": "Date added behavior for new content", + "OptionDateAddedImportTime": "Use date scanned into the library", + "OptionDateAddedFileTime": "Use file creation date", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Library Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Camera upload path", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Parental Control", + "HeaderAccessSchedule": "Access Schedule", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Library Access", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "TitlePasswordReset": "Password Reset", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Allow media downloading", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Allow media conversion", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Zip Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Display name", + "OptionDownloadImagesInAdvance": "Download images in advance", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Thank you for supporting Emby.", + "FileReadCancelled": "The file read has been canceled.", + "FileNotFound": "File not found.", + "FileReadError": "An error occurred while reading the file.", + "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "HeaderNewApiKey": "New Api Key", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "TextEnjoyBonusFeatures": "Enjoy Bonus Features", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "To manage plugins, please use the Emby web app.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Are you sure you wish to restart Emby Server?", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Running on http port {0}", + "LabelRunningOnPorts": "Running on http port {0}, and https port {1}", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Select Path", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Metadata Manager", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Change Content Type", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Home videos & photos", + "OptionBooks": "Books", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "New name", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Rename", + "HeaderPluginInstallation": "Plugin Installation", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Kaina: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Thank You", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Unlock App", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Add User", + "HeaderEmailAddress": "E-Mail Address", + "NumLocationsValue": "{0} folders", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Example: {0}", + "LabelFileOrUrl": "File or url", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Lokalus IP adresas", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Enable debug logging", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Įsijunkite į DSM ir eikite į Paketų centrą atnaujinimui.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN networks", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files." +} diff --git a/strings/lv.json b/strings/lv.json new file mode 100644 index 0000000..bfbbbb4 --- /dev/null +++ b/strings/lv.json @@ -0,0 +1,622 @@ +{ + "HeaderProgramData": "Program Data", + "ButtonPurchase": "Purchase", + "LabelFileOrUrl": "File or url", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PreviousPage": "Previous page", + "ZoomOut": "Zoom out", + "RightToLeft": "Right-to-left order", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LabelCameraUploadPath": "Camera upload path", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelPostProcessor": "Post-processing application", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "HeaderUnlockApp": "Unlock App", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "LabelDay": "Day", + "HeaderTVSourceSetup": "TV Source Setup", + "OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.", + "Markers": "Markers", + "HeaderAllowMediaDeletionFrom": "Allow Media Deletion From", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "DeviceAccessHelp": "Filtering user device access will prevent them from using new devices until they've been approved here.", + "EveryNDays": "Every {0} days", + "Standard": "Standard", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels. Please note that regardless of how many days you choose, the data must exist in the source guide data in order for it to be downloaded. Some guide data sources only provide 24 hours. Emby Guide Data supports up to 14 days.", + "HeaderEmbyNews": "Emby News", + "HeaderCopyOptions": "Copy Options", + "LabelDisplayName": "Display name", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "LabelTagRestrictionMode": "Tag restriction mode", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding, if necessary, during media playback", + "LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "HeaderDownloadLanguages": "Download Languages", + "OptionBlockChannelContent": "Internet Channel Content", + "StartOfSection": "Start of chapter", + "AllowRemoteAccessHelp": "If unchecked, all remote connections will be blocked.", + "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)", + "HeaderCancelSub": "Cancel Emby Premiere", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "YesUntilServerRestart": "Yes, until the next server restart", + "Subscriptions": "Subscriptions", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "PreferredNotRequired": "Preferred, but not required", + "OptionAllowRemoteControlOthers": "Allow remote control of other users", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "OptionAllowUserToManageServer": "Allow this user to manage the server", + "LabelDateAddedBehavior": "Date added behavior for new content", + "MessageThankYouForSupporting": "Thank you for supporting Emby.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "LabelSupporterKeyHelp": "Enter your Emby Premiere key to start enjoying additional benefits.", + "LabelEndingEpisodeNumber": "Ending episode number", + "LabelSeriesRecordingFolder": "Series recording folder", + "LinkLearnMoreAboutSubscription": "Learn about Emby Premiere", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "HeaderRemoveLibrary": "Remove Library", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "HeaderNewUser": "New User", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "WizardCompleted": "That's all we need for now. Emby has begun scanning your media library. Check out some of our apps, and then click Finish to view the Server Dashboard.", + "LabelSaveLocalMetadata": "Save artwork into media folders", + "OptionBooks": "Books", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "ChannelAccessHelp": "Select the channels to share with this user. Administrators will be able to edit all channels using the metadata manager.", + "ShowAdvancedSettings": "Show advanced settings", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "ButtonRename": "Rename", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "LabelCertificatePassword": "Certificate password", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "PreferOriginalTrackTitles": "Prefer embedded titles", + "LiveTVRecordingManagement": "Live TV Recording Management", + "FileNotFound": "File not found.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "AllLibraries": "All libraries", + "LabelDefaultRecordingFolder": "Default recording folder", + "OptionEnableAccessToAllLibraries": "Enable access to all libraries", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "LabelTimeLimitHours": "Time limit (hours)", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "EnableTranscodingThrottle": "Enable throttling", + "LabelYoureDone": "You're Done!", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "LabelTriggerType": "Trigger Type", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderSelectMediaPath": "Select Media Path", + "MessagePleaseRestart": "Please restart to finish updating.", + "HeaderConfirmation": "Confirmation", + "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelLanNetworks": "LAN networks", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "Community": "Community", + "LabelExternalDDNS": "External domain", + "OptionAllowLinkSharingHelp": "Only web pages containing media information are shared. Media files are never shared publicly. Shares are time-limited and will expire after {0} days.", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "LabelCustomCss": "Custom css", + "Database": "Database", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "NotMappedToGuideData": "Not mapped to guide data", + "PageNarrow": "Narrow", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, setup Emby Premiere in your Emby Server Dashboard under Help -> Emby Premiere, and it will be unlocked automatically.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "LabelPublicHttpPortHelp": "The public port number that should be mapped to the local http port.", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderNewApiKey": "New Api Key", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "HeaderRevisionHistory": "Revision History", + "HeaderExternalPlayerPlayback": "External Player Playback", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "LabelSyncTempPath": "Temporary file path", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AutoMapped": "Automatically mapped", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "NewUserNameHelp": "This is how the user will appear on your server.", + "HeaderApiKeys": "Api Keys", + "HeaderResumeSettings": "Resume Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderTVSources": "TV Sources", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "HeaderRemoveMediaLocation": "Remove Media Location", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "PreferredChannelImageSource": "Preferred channel image source", + "OptionAllowMediaPlayback": "Allow media playback", + "Whitelist": "Whitelist", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "HeaderAlert": "Alert", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "LabelSupporterEmailAddress": "The email address that was used to purchase the key.", + "PageMaximized": "Maximized", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "ButtonQuickStartGuide": "Quick Start Guide", + "HeaderThankYou": "Thank You", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "OptionIAcceptTermsOfService": "I accept the terms of use", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "ThumbnailImagesIntervalHelp": "More frequent thumbnails will result in a better experience, but will require more disk space and time to create the images.", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ButtonRetrieveKey": "Retrieve Key", + "AsAScheduledTask": "as a scheduled task", + "MoreUsersCanBeAddedLater": "More users can be added later within Emby Server settings.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "HeaderPreferredMetadataLanguage": "Preferred Metadata Language", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "RequireHttps": "Require https for external connections", + "LabelNewName": "New name", + "MessageNoPluginsDueToAppStore": "To manage plugins, please use the Emby web app.", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "ImportPlaylists": "Import playlist files", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "LabelReadHowYouCanContribute": "Learn how you can contribute.", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelEnableMultiPartItems": "Enable multi-part items", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "LabelSyncTempPathHelp": "Specify a custom working folder. Converted media created during the conversion process will be stored here.", + "Reporting": "Reporting", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "LabelAuthProvider": "Authentication provider", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "LabelMinResumePercentage": "Min resume percentage", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderEmbyServerReleaseNotes": "Emby Server Release Notes", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelTime": "Time", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "LabelMessageText": "Message text", + "HeaderSetupLibrary": "Setup Media Libraries", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "OptionAllowRemoteSharedDevices": "Allow remote control of shared devices", + "PageBook": "Double page", + "OptionEnableAccessToAllChannels": "Enable access to all channels", + "EnablePhotos": "Enable photos", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "HandledByProxy": "Handled by reverse proxy", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSecureConnectionsMode": "Secure connection mode", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "HeaderAccessSchedule": "Access Schedule", + "LabelMinResumeDuration": "Min resume duration (seconds)", + "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", + "ManuallyMapped": "Manually mapped", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "Every": "Every", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "HeaderFetcherSettings": "Fetcher Settings", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelPageSize": "Page Size", + "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods, when no users are active.", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "ButtonUpdateNow": "Update Now", + "MessageConfirmRestart": "Are you sure you wish to restart Emby Server?", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "LabelDisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelLocalIpAddress": "Local IP address", + "MessageCreateAccountAt": "Create an account at {0}", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "LabelMinResumeDurationHelp": "Titles shorter than this will not be resumable", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "OptionEnableAccessFromAllDevices": "Enable access from all devices", + "HeaderLibraryAccess": "Library Access", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMusicFolderStructure": "Music folder structure", + "OptionAfterSystemEvent": "After a system event", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "TabSupporterKey": "Emby Premiere Key", + "LabelEvent": "Event", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "AnonymizeLogContents": "Anonymize log contents", + "OptionDownloadImagesInAdvance": "Download images in advance", + "HeaderDetectMyDevices": "Detect Devices", + "AllowRemoteAccess": "Allow remote connections to this Emby Server.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "ValuePriceUSD": "Price: {0} (USD)", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "HeaderDeleteProvider": "Delete Provider", + "TitlePasswordReset": "Password Reset", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put images next to media files where they can be easily accessed from outside of Emby. If disabled, images will be saved into the server's metadata folder.", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "HeaderFetchImages": "Fetch Images", + "HeaderDeviceAccess": "Device Access", + "TabCatalog": "Catalog", + "GenerateUserFriendlyTrackTitles": "Generate user friendly titles using track information", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "LabelPreferredDisplayLanguage": "Preferred display language", + "LabelMaxScreenshotsPerItem": "Maximum number of screenshots per item", + "UserProfilesIntro": "Emby includes built-in support for user profiles, enabling each user to have their own display settings, playstate and parental controls.", + "LabelHttpsPortHelp": "The tcp port number that Emby's https server should bind to.", + "TabParentalControl": "Parental Control", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "LabelReferrerHeader": "Referer http header", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "BlockItemsWithTheseTags": "Block items with these tags", + "MetadataManager": "Metadata Manager", + "ServerUpToDate": "Emby Server is up to date", + "ButtonDontCancelSub": "Keep Emby Premiere", + "LabelAllowAdultMetadata": "Allow adult metadata", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "Alerts": "Alerts", + "HeaderAutomaticUpdates": "Automatic Updates", + "General": "General", + "DonationNextStep": "Once complete, please return and enter your Emby Premiere key, which you will receive by email.", + "LabelUserAgentHeader": "User agent http header", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "MessagePleaseRestartServerToFinishUpdating": "Please restart the server to finish applying updates.", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "LabelPublicHttpsPort": "Public https port number", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "ButtonViewWebsite": "View website", + "ButtonSend": "Send", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately, on supported file systems.", + "HeaderTuners": "Tuners", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "LabelThumbnailImagesInterval": "Thumbnail images interval", + "MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.", + "MessageTrialExpired": "The trial period for this feature has expired", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelMaxParentalRating": "Maximum allowed parental rating", + "OptionDateAddedImportTime": "Use date scanned into the library", + "ChangingMetadataImageSettingsNewContent": "Changes to metadata or artwork downloading settings will only apply to new content added to your library. To apply the changes to existing titles, you'll need to refresh their metadata manually.", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "HeaderRunningTasks": "Running Tasks", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "HeaderAddTvSource": "Add TV Source", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "HeaderChannelAccess": "Channel Access", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "HeaderLibrarySettings": "Library Settings", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelClickToManage": "Click to manage this subscription", + "HeaderSelectMetadataPath": "Select Metadata Path", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "ChapterMarkers": "Chapter markers", + "HeaderSupportTheTeam": "Support the Emby Team", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "LabelEnableRealtimeMonitor": "Enable real time monitoring", + "LabelSelectVersionToInstall": "Select version to install", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSupporterKey": "Emby Premiere key (paste from email)", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "FileReadError": "An error occurred while reading the file.", + "LabelEnableAutomaticPortMap": "Enable automatic port mapping", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "TextEnjoyBonusFeatures": "Enjoy Bonus Features", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps)", + "ButtonAdd": "Add", + "OtherOrUnstructured": "Other or unstructured", + "HeaderEmailAddress": "E-Mail Address", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelPublicHttpPort": "Public http port number", + "ButtonRefreshGuideData": "Refresh Guide Data", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "LabelCustomCssHelp": "Apply your own custom css to the web interface.", + "EnableTranscodingThrottleHelp": "Emby will dynamically adjust transcoding speed based in order to reduce CPU utilization.", + "HeaderNewLibrary": "New Library", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.", + "OptionAllowContentDownloading": "Allow media downloading", + "DetectingDevices": "Detecting devices", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "OptionBlockLiveTvChannels": "Live TV Channels", + "LabelMinScreenshotDownloadWidth": "Minimum screenshot download width", + "LabelStopping": "Stopping", + "LabelMinCollectionSize": "Minimum automatic collection size", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderInstall": "Install", + "Blacklist": "Blacklist", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding, if necessary, during media playback", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.", + "LabelLoginDisclaimer": "Login disclaimer", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "LabelMessageTitle": "Message title", + "HeaderTypeImageFetchers": "{0} Image Fetchers", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "PleaseUpdateManually": "Please shutdown Emby Server and install the latest version.", + "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Emby's http server should bind to.", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "HeaderScreenSavers": "Screen Savers", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "LabelRunningOnPorts": "Running on http port {0}, and https port {1}", + "LabelMetadataPath": "Metadata path", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "ButtonAddScheduledTaskTrigger": "Add Trigger", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "NumLocationsValue": "{0} folders", + "LabelMinResumePercentageHelp": "Titles are assumed unplayed if stopped before this time", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "PageSingle": "Single page", + "HeaderApiKey": "Api Key", + "ValueExample": "Example: {0}", + "LabelImageFetchers": "Image fetchers", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderForgotKey": "Forgot Key", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "FileReadCancelled": "The file read has been canceled.", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "OptionHideUserFromLoginHelp": "Useful for private or hidden administrator accounts. The user will need to sign in manually by entering their username and password.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "LabelNetworkRequestProtocol": "Network request protocol", + "AllowSubtitleDownloading": "Allow subtitle downloading", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "AuthProviderHelp": "Administrators always use the default Emby provider to ensure you're never locked out.", + "HeaderAddGuideSource": "Add Guide Data Source", + "OptionAllowLinkSharing": "Allow social media sharing", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "RequireHttpsHelp": "If enabled, connections over http will be redirected to https.", + "LabelMetadataPathHelp": "Specify a location for downloaded artwork and metadata, or blank this out to revert to default. If changing this, you'll need to manually migrate the contents from the old location to the new location. If you ever manually change the contents of the metadata folder, you'll need to run the {0}scan metadata folder scheduled task{1}.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported audio, video, subtitles or insufficient network bandwidth.", + "LabelCopyFromUser": "Copy settings from user", + "OptionDisableUser": "Disable this user", + "ButtonCancelSub": "I know, cancel it anyway", + "LabelEndingEpisodeNumberHelp": "Only required for multi-episode files", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process of setting up Emby Server.", + "LabelCachePath": "Cache path", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelFriendlyServerName": "Friendly server name", + "HeaderImageOptions": "Image Options", + "DefaultMetadataLangaugeDescription": "These are your defaults and can be customized on a per-library basis.", + "LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local https port.", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "HeaderTopPlugins": "Top Plugins", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "LabelCustomCertificatePathHelp": "Path to a PKCS #12 file containing a certificate and private key to enable TLS support on a custom domain.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "LabelNumberOfGuideDays": "Number of days of guide data to download", + "TabMyPlugins": "My Plugins", + "NoAgeLimit": "No age limit", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "OptionWakeFromSleep": "Wake from sleep", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "HeaderChangeFolderType": "Change Content Type", + "HeaderStatus": "Status", + "HeaderPluginInstallation": "Plugin Installation", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePleaseAcceptTermsOfService": "Please accept the terms of use and privacy policy before continuing.", + "HeaderCreateYourFirstUser": "Create Your First User", + "ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG/PNG only.", + "OptionRelease": "Official Release", + "OptionAllowRemoteSharedDevicesHelp": "Dlna devices are considered shared until a user begins controlling it.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LabelZipCode": "Zip Code", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "LabelTunerIpAddress": "Tuner IP Address", + "LabelRunServerAtStartupHelp": "This will start the Emby tray icon on Windows startup. If you've set up a Windows service then leave this unchecked and configure the service to run at startup.", + "LabelMaxResumePercentage": "Max resume percentage", + "OptionOnInterval": "On an interval", + "RegisterWithPayPal": "Register with PayPal", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "MessagePleaseWait": "Please wait. This may take a minute.", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "AllowCameraUpload": "Allow camera upload", + "LabelCachePathHelp": "Specify a custom location for server cache files, such as images. Leave blank to use the server default.", + "LabelPreferredDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "OptionBeta": "Beta", + "HeaderActivity": "Activity", + "OptionHomeVideos": "Home videos & photos", + "HeaderSendMessage": "Send Message", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "LabelMinBackdropDownloadWidth": "Minimum backdrop download width", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "LabelRunServerAtStartup": "Run server at startup", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "AllowMediaConversion": "Allow media conversion", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelLocalHttpServerPortNumber": "Local http port number", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Click OK to send us an email at {0} and we'll get it activated for you.", + "LabelRunningOnPort": "Running on http port {0}", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "HeaderDeveloperInfo": "Developer Info", + "LabelMaxBackdropsPerItem": "Maximum number of backdrops per item", + "LabelVersionInstalled": "{0} installed", + "OptionDateAddedFileTime": "Use file creation date", + "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also have an active Emby Premiere subscription.", + "HeaderSelectUploadPath": "Select Upload Path", + "HeaderSelectExternalPlayer": "Select External Player", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "HeaderSelectPath": "Select Path", + "LabelCurrentPath": "Current path", + "SeeOurHwaGuide": "See our {0}hardware acceleration setup guide{1}.", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelEnableDebugLogging": "Enable debug logging", + "LabelTranscodingTempPath": "Transcoding temporary path", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelTrackTitleDisplay": "Embedded track title display", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by purchasing Emby Premiere. A portion of all income will be contributed to other free tools we depend on.", + "PersonTypePerson": "Person", + "LabelCustomCertificatePath": "Custom ssl certificate path", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "ChangeServerDisplayName": "Change Server Display Name", + "MappedToValue": "Mapped to {0}", + "ButtonRevoke": "Revoke", + "HeaderMetadataReaders": "Metadata Readers", + "LabelHttpsPort": "Local https port number", + "GeneratedChapterInterval": "Generated chapter interval", + "AddUser": "Add User", + "HeaderSelectCertificatePath": "Select Certificate Path", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelLineup": "Lineup", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "HeaderFeatureAccess": "Feature Access", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.", + "ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Emby database and displayed within seasons and series. This may cause significantly longer library scans.", + "TabAccess": "Access", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "MessageInvalidKey": "Emby Premiere key is missing or invalid.", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "SendMessage": "Send message", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowSubtitleManagement": "Allow deletion of existing subtitle files", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "ButtonSelectDirectory": "Select Directory", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/mk.json b/strings/mk.json new file mode 100644 index 0000000..14528c5 --- /dev/null +++ b/strings/mk.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Завршено!", + "ThisWizardWillGuideYou": "Овој волшебник ќе ве води низ процесот за подесување на серверот Emby.", + "HeaderCreateYourFirstUser": "Креирајте го првиот корисник", + "ButtonQuickStartGuide": "Почетно брзо упатство", + "MoreUsersCanBeAddedLater": "Повеќе корисници може да се додадат подоцна во подесувањата на Emby серверот.", + "UserProfilesIntro": "Emby вклучува вградена поддршка за кориснички профили, овозможувајќи секој корисник да има свои подесувања за екранот, прегледаност и родителска контрола.", + "WizardCompleted": "Тоа е се што ни е потребно засега. Emby започна со скенирање на вашата медиумска библиотека. Погледнете ги некои од нашите апликации, и потоа притиснете Заврши за да ја видите Контролната табла на серверот.", + "MessagePleaseAcceptTermsOfService": "Пред да продолжите, ве молиме прифатете ги условите за користење и политиката за приватност.", + "OptionIAcceptTermsOfService": "Ги прифаќам условите за користење", + "SeeOurHwaGuide": "Видете го {0}нашиот водич за подесување на хардверско забрзување{1}.", + "HeaderEmbyServerReleaseNotes": "Белешки за издавање на серверот Emby", + "AllowSubtitleDownloading": "Овозможи преземање преводи", + "AllowSubtitleManagement": "Овозможи бришење на постојни преводи", + "NewUserNameHelp": "Вака ќе се прикажува корисникот на вашиот сервер.", + "ChapterMarkers": "Ознаки на поглавја", + "LabelThumbnailImagesInterval": "Интервал на креирање сликички:", + "ThumbnailImagesIntervalHelp": "Почестото креирање сликички ќе резултира со подобро доживување, но ќе бараат повеќе простор и време на дискот за да се создадат сликите.", + "LabelAuthProvider": "Обезбедувач на автентикација:", + "AuthProviderHelp": "Администраторите секогаш го користат стандардниот обезбедувач на Emby за да се осигураат дека никогаш нема да сте заклучени.", + "HeaderNewUser": "Нов корисник", + "ChangeServerDisplayName": "Променете го приказното име на серверот", + "ShowAdvancedSettings": "Прикажи напредни подесувања", + "ChangingMetadataImageSettingsNewContent": "Промените на поставките за преземање метаподатоци или уметнички дела ќе важат само за новите содржини додадени во вашата библиотека. За да ги примените промените на постоечките наслови, ќе треба рачно да ги обновите нивните метаподатоци.", + "AllowRemoteAccess": "Дозволете далечински врски со овој сервер Emby.", + "AllowRemoteAccessHelp": "Ако не се штиклира, сите далечински врски ќе бидат блокирани.", + "Alerts": "Известувања", + "LabelTrackTitleDisplay": "Вграден приказ на насловот на песната", + "GenerateUserFriendlyTrackTitles": "Создавајте наслови погодни за корисникот користејќи информации за песната", + "PreferOriginalTrackTitles": "Претпочитајте вградени наслови", + "TrackTitleDisplayHelp": "Изберете го насловот за прикажување на вградените траки за звук и преводи. Не се препорачува да се претпочитаат вградени, освен ако рачно не ги курирате информациите за вградените траки.", + "EnableTranscodingThrottle": "Овозможи намалување брзина", + "EnableTranscodingThrottleHelp": "Emby динамички ќе ја приспособи брзината на транскодирање врз основа на со цел да го намали користењето на процесорот.", + "HeaderTypeMetadataDownloaders": "{0} Преземачи на метаподатоци", + "HeaderTypeImageFetchers": "{0} Внесувачи на слики", + "HeaderImageOptions": "Опции за слика", + "OptionBeta": "Бета", + "RegisterWithPayPal": "Регистрирај се со PayPal", + "LabelSyncTempPath": "Привремена патека на датотеката", + "LabelSyncTempPathHelp": "Наведете прилагодена работна папка. Конвертираните медиуми создадени за време на процесот на конверзија ќе се складираат овде.", + "LabelCustomCertificatePath": "Прилагодена патека за сертификат за ssl", + "LabelCustomCertificatePathHelp": "Патека до датотеката PKCS #12 која содржи сертификат и приватен клуч за да се овозможи поддршка за TLS на приспособен домен.", + "HeaderSetupLibrary": "Поставете медиумски библиотеки", + "LabelTimeLimitHours": "Временско ограничување (часови)", + "HeaderPreferredMetadataLanguage": "Префериран јазик на метаподатоци", + "LabelSaveLocalMetadata": "Зачувајте омоти во медиумски папки", + "LabelSaveLocalMetadataHelp": "Зачувувањето на насловните слики во медиумските папки ќе ги стави сликите до содржините до кои што ќе може лесно да се пристапи надвор од Emby. Ако е оневозможено, сликите ќе бидат зачувани во папката за метаподатоци на серверот.", + "TabAccess": "Пристап", + "HeaderDeviceAccess": "Пристап до уред", + "OptionEnableAccessFromAllDevices": "Овозможи пристап од сите уреди", + "OptionEnableAccessToAllChannels": "Овозможи пристап до сите канали", + "OptionEnableAccessToAllLibraries": "Овозможи пристап до сите библиотеки", + "DeviceAccessHelp": "Филтрирањето на пристапот од кориснички уреди ќе ги спречи да користат нови уреди додека не бидат одобрени овде.", + "LabelDisplayMissingEpisodesWithinSeasons": "Прикажете ги епизодите што недостасуваат во сезоните", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Ова мора да биде овозможено и за ТВ библиотеките во поставувањето на Emby серверот.", + "ImportMissingEpisodesHelp": "Доколку е овозможено, информациите за исчезнатите епизоди ќе се увезат во вашата база на податоци на Emby и ќе се прикажуваат во сезоните и сериите. Ова може да предизвика значително подолго скенирање на библиотеката.", + "MessageEnablingOptionLongerScans": "Овозможувањето на оваа опција може да резултира со значително подолго скенирање на библиотеката.", + "LabelMaxParentalRating": "Максимална дозволена родителска оцена", + "MaxParentalRatingHelp": "Содржините со повисока оцена ќе бидат скриени од овој корисник.", + "LibraryAccessHelp": "Изберете ги медиумските папки за споделување со овој корисник. Администраторите ќе можат да ги уредуваат сите папки користејќи го менаџерот со метаподатоци.", + "ChannelAccessHelp": "Изберете ги каналите за споделување со овој корисник. Администраторите ќе можат да ги уредуваат сите канали користејќи го управувачот со метаподатоци.", + "ImageUploadAspectRatioHelp": "Препорачан сооднос 1:1. Само JPG/PNG.", + "AlreadyPaidHelp1": "Ако веќе сте платиле за да инсталирате постара верзија на Media Browser за Android, не треба повторно да плаќате за да ја активирате оваа апликација. Кликнете ОК за да ни испратите е-пошта на {0} и ние ќе ви ја активираме.", + "AlreadyPaidHelp2": "Веќе имате Emby Premiere? Само откажете го овој дијалог, поставете го Emby Premiere во контролната табла на вашиот сервер Emby под Помош -> Emby Premiere и тој автоматски ќе се отклучи.", + "TabMyPlugins": "Мои приклучоци", + "TabCatalog": "Каталог", + "HeaderAutomaticUpdates": "Автоматски ажурирања", + "Standard": "Стандард", + "TabSupporterKey": "Emby Premiere Клуч", + "OptionHideUserLocal": "Сокријте го овој корисник од екраните за најавување на локалната мрежа", + "OptionHideUserRemote": "Сокриј го овој корисник од екраните за најавување кога е поврзан од далечина", + "OptionHideUserFromLoginHelp": "Корисно за приватни или скриени администраторски сметки. Корисникот ќе треба да се најави рачно со внесување на неговото корисничко име и лозинка.", + "HideFromUnusedDevices": "Сокријте го овој корисник од екраните за најавување на уредите на кои никогаш не се најавиле", + "OptionDisableUser": "Оневозможете го овој корисник", + "OptionDisableUserHelp": "Ако е оневозможен, серверот нема да дозволи никакви врски од овој корисник. Постојните врски ќе бидат нагло прекинати.", + "OptionAllowUserToManageServer": "Дозволете овој корисник да управува со серверот", + "HeaderFeatureAccess": "Пристап до функција", + "OptionAllowMediaPlayback": "Дозволете пуштање на содржини", + "AllLibraries": "Сите библиотеки", + "HeaderAllowMediaDeletionFrom": "Дозволете бришење на содржини од", + "LiveTVRecordingManagement": "Управување со снимање ТВ во живо", + "OptionAllowRemoteControlOthers": "Дозволете далечинска контрола на други корисници", + "OptionAllowRemoteSharedDevices": "Дозволете далечинско управување со споделени уреди", + "OptionAllowRemoteSharedDevicesHelp": "Dlna уредите се сметаат за споделени додека корисникот не почне да ги контролира.", + "OptionAllowLinkSharing": "Дозволете споделување на социјалните мрежи", + "OptionAllowLinkSharingHelp": "Се споделуваат само веб-страници што содржат медиумски информации. Медиумските датотеки никогаш не се споделуваат јавно. Споделените содржини се временски ограничени и ќе истечат по {0} дена.", + "OptionRelease": "Официјално издание", + "LabelAllowServerAutoRestartPlugin": "Дозволете серверот автоматски да се рестартира за да примените ажурирања на приклучокот", + "LabelAllowServerAutoRestartServerOrPlugin": "Дозволете серверот автоматски да се рестартира за да се применат ажурирања на серверот или приклучокот", + "LabelAllowServerAutoRestartHelp": "Серверот ќе се рестартира само за време на периоди на мирување, кога нема активни корисници.", + "LabelRunServerAtStartup": "Стартувај сервер при вклучување", + "LabelRunServerAtStartupHelp": "Ова ќе ја стартува иконата Emby во лентата на задачи при стартување на Windows. Ако сте конфигурирале услуга на Windows, тогаш оставете го ова нештиклирано и конфигурирајте ја услугата да работи при стартување.", + "ButtonSelectDirectory": "Изберете Директориум", + "LabelCachePath": "Патека за кеш", + "DefaultMetadataLangaugeDescription": "Ова се ваши стандардни поставки и може да се приспособат на основа по библиотека.", + "LabelCachePathHelp": "Наведете прилагодена локација за датотеките на кешот на серверот, како што се сликите. Оставете празно за да го користите стандардниот сервер.", + "LabelDefaultRecordingFolder": "Зададена папка за снимање", + "LabelMovieRecordingFolder": "Папка за снимање на филм", + "LabelSeriesRecordingFolder": "Папка за снимање на серија", + "SeriesRecordingFolderHelp": "(Изборно). Изберете библиотека за да зачувување на сериски снимки. Ова мора да биде библиотека што сте ја создале во поставувањето на библиотеката Emby со типот на содржина поставен на ТВ-емисии или мешани содржини.", + "HeaderProgramData": "Програмски податоци", + "RecordingFolderHelp": "Изберете ја стандардната библиотека во која ќе ги зачувате снимките. Ова мора да биде библиотека што сте ја создале во поставките за библиотеки во Emby со типот на содржина поставен на мешана содржина.", + "MovieRecordingFolderHelp": "(Изборно). Изберете библиотека за зачувување снимки од филмови. Ова мора да е библиотека што сте ја создале во поставувањето на библиотеката Emby со типот на содржина поставен на филмови или мешани содржини.", + "LabelMetadataPath": "Патека за метаподатоци", + "LabelMetadataPathHelp": "Наведете локација за преземените насловни слики и метаподатоци или испразнете ја за да се вратите на стандардно. Ако го промените ова, ќе треба рачно да ја префрлите содржината од старата локација на новата локација. Ако некогаш рачно ја промените содржината на папката со метаподатоци, ќе треба да ја извршите {0}закажаната задача за скенирање на папката метаподатоци{1}.", + "LabelTranscodingTempPath": "Транскодирање на привремена патека", + "LabelTranscodingTempPathHelp": "Оваа папка содржи работни датотеки што ги користи транскодерот. Наведете приспособена патека или оставете празно за да го користите стандардниот во папката со податоци на серверот.", + "GenerateVideoPreviewThumbnailsHelp": "Сликичките за преглед на видео обезбедуваат ажурирања во живо додека барате во поддржаните апликации. Генерирањето сликички може да потрае долго, да предизвика голема употреба на процесорот и да троши дополнителен простор на дискот.", + "AsAScheduledTask": "како закажана задача", + "AsAScheduledTaskAndMediaAdded": "како закажана задача и кога се додава содржина", + "ButtonRefreshGuideData": "Обнови податоци на водич", + "LabelNumberOfGuideDays": "Број на денови на податоци за водич за преземање", + "LabelNumberOfGuideDaysHelp": "Преземањето повеќедневни податоци за водич обезбедува можност за понатамошно планирање однапред и прегледување на повеќе содржини, но исто така ќе биде потребно подолго време за преземање. Автоматски ќе избере врз основа на бројот на канали. Имајте предвид дека без оглед на тоа колку денови ќе изберете, податоците мора да постојат во податоците за изворниот водич за да може да се преземат. Некои извори на податоци за водичот обезбедуваат само 24 часа. Emby Guide Data поддржува до 14 дена.", + "HeaderFetchImages": "Преземи слики", + "LabelMaxBackdropsPerItem": "Максимален број на заднини по ставка", + "LabelMaxScreenshotsPerItem": "Максимален број на снимки од екранот по ставка", + "LabelMinBackdropDownloadWidth": "Минимална ширина на преземана заднина", + "LabelMinScreenshotDownloadWidth": "Минимална ширина на преземена снимка од екранот", + "ButtonAddScheduledTaskTrigger": "Додај активирач", + "ButtonAdd": "Додај", + "LabelTriggerType": "Тип на активирач", + "OptionOnInterval": "Најизменично", + "OptionAfterSystemEvent": "По системски настан", + "LabelDay": "Ден", + "LabelTime": "Време", + "LabelEvent": "Настан", + "OptionWakeFromSleep": "Разбуди се од спиење", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Овозможи следење во реално време", + "LabelEnableRealtimeMonitorHelp": "Промените на датотеките ќе се обработат веднаш, на поддржаните датотечни системи.", + "Community": "Заедница", + "HeaderEmbyNews": "Emby вести", + "LabelFriendlyServerName": "Име на пријателски сервер:", + "LabelFriendlyServerNameHelp": "Ова име ќе се користи за овој сервер. Ако се остави полето празно, ќе се користи името на компјутерот.", + "LabelPreferredDisplayLanguage": "Претпочитан јазик на прикажување:", + "LabelPreferredDisplayLanguageHelp": "Преведувањето на Emby е тековен проект.", + "LabelReadHowYouCanContribute": "Дознајте како можете да придонесете.", + "LabelCustomCss": "Прилагоден css", + "LabelCustomCssHelp": "Применете го вашиот сопствен css на веб-интерфејсот.", + "LabelLocalHttpServerPortNumber": "Број на локална http порта", + "LabelLocalHttpServerPortNumberHelp": "Бројот на портата tcp за кој треба да се поврзе http серверот на Emby.", + "LabelPublicHttpPort": "Јавен http број на порта", + "LabelPublicHttpPortHelp": "Бројот на јавната порта што треба да се мапира на локалната http порта.", + "LabelPublicHttpsPort": "Број на јавна порта https", + "LabelPublicHttpsPortHelp": "Бројот на јавната порта што треба да се мапира на локалната порта https.", + "RequireHttps": "Потребен е https за надворешни врски", + "RequireHttpsHelp": "Ако е овозможено, врските преку http ќе се пренасочат на https.", + "LabelHttpsPort": "Локален број на порта https", + "LabelHttpsPortHelp": "Бројот на портата tcp со кој треба да се поврзе серверот https на Emby.", + "LabelEnableAutomaticPortMap": "Овозможете автоматско мапирање на порти", + "LabelEnableAutomaticPortMapHelp": "Обидете се автоматски да ја мапирате јавната порта на локалната порта преку UPnP. Ова може да не работи со некои модели на рутери.", + "LabelExternalDDNS": "Надворешен домен", + "LabelExternalDDNSHelp": "Ако имате динамичен DNS или име на домен, внесете го овде, без протокол или порта. Апликациите Emby ќе го користат кога се поврзуваат од далечина. Ова поле е потребно кога се користи со сопствен сертификат за ssl. Пример: mydomain.com.", + "LabelMinResumePercentage": "Минимален процент за продолжување", + "LabelMaxResumePercentage": "Максимален процент за продолжување", + "LabelMinResumeDuration": "Минимално траење за продолжување (секунди)", + "LabelMinResumePercentageHelp": "Се претпоставува дека насловите се негледани доколку се прекинат пред ова време", + "LabelMaxResumePercentageHelp": "Се претпоставува дека насловите се целосно гледани ако се прекинат по ова време", + "LabelMinResumeDurationHelp": "Насловите пократки од ова нема да се продолжат", + "HeaderStatus": "Статус", + "Subscriptions": "Претплати", + "LabelEndingEpisodeNumber": "Завршна епизода бр", + "LabelEndingEpisodeNumberHelp": "Потребно е само за датотеки со повеќе епизоди", + "HeaderSupportTheTeam": "Поддржете го тимот на Emby", + "HeaderSupportTheTeamHelp": "Помогнете да се обезбеди континуиран развој на овој проект со купување на Emby Premiere. Еден дел од целиот приход ќе биде искористен за други бесплатни алатки од кои зависиме.", + "DonationNextStep": "Откако ќе завршите, вратете се и внесете го вашиот Emby Premiere клуч, кој ќе го добиете по е-пошта.", + "HeaderRunningTasks": "Тековни задачи", + "ButtonUpdateNow": "Ажурирај сега", + "PleaseUpdateManually": "Исклучете го серверот Emby и инсталирајте ја најновата верзија.", + "ServerUpToDate": "Серверот Emby е ажуриран", + "MessagePleaseRestartServerToFinishUpdating": "Рестартирајте го серверот за да завршите со примена на ажурирањата.", + "LabelDownMixAudioScale": "Зголемување на звукот при намалување на квалитет", + "LabelDownMixAudioScaleHelp": "Засилете го звукот при намалување на квалитетот. Поставете на 1 за да ја зачувате оригиналната вредност на јачината на звукот.", + "HeaderForgotKey": "Заборавен клуч", + "LabelSupporterEmailAddress": "Адресата на е-пошта што се користеше за купување на клучот.", + "ButtonRetrieveKey": "Враќање клуч", + "LabelSupporterKey": "Клуч за Emby Premiere (залепете од е-пошта)", + "LabelSupporterKeyHelp": "Внесете го вашиот Emby Premiere клуч за да започнете да уживате во дополнителни поволности.", + "MessageInvalidKey": "Клучот за Emby Premiere недостасува или е неважечки.", + "ErrorMessageInvalidKey": "За да може да се регистрира било која премиум содржина, мора да имате и активна претплата на Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Прескокни ако видеото веќе содржи вградени преводи со зададениот превод за симнување", + "LabelSkipIfGraphicalSubsPresentHelp": "Задржувањето на текстуалните верзии на преводи ќе резултира со поефикасна испорака и ќе ја намали веројатноста за транскодирање на видеото.", + "HeaderDownloadLanguages": "Преземи јазици", + "LabelSkipIfAudioTrackPresent": "Прескокни ако стандардниот звук се совпаѓа со јазикот за преземање", + "LabelSkipIfAudioTrackPresentHelp": "Отштиклирајте го ова за да се осигурате дека сите видеа имаат преводи, без оглед на јазикот на звукот.", + "SendMessage": "Испрати порака", + "HeaderSendMessage": "Испрати порака", + "ButtonSend": "Прати", + "LabelMessageText": "Содржина на порака", + "LabelMessageTitle": "Наслов на порака", + "ButtonEditOtherUserPreferences": "Уредете го профилот, сликата и личните преференци на овој корисник.", + "LabelLoginDisclaimer": "Одрекување за најава", + "LabelLoginDisclaimerHelp": "Ова ќе биде прикажано на дното на страницата за најавување.", + "HeaderTranscodingTemporaryFiles": "Транскодирање на привремени датотеки", + "HeaderApiKeys": "Api клучеви", + "HeaderApiKeysHelp": "Надворешните апликации треба да имаат клуч Api за да можат да комуницираат со Emby Server. Клучевите се издаваат со најавување со сметка на Emby или со рачно доделување клуч на апликацијата.", + "HeaderApiKey": "Api клуч", + "HeaderResumeSettings": "Поставки за продолжување", + "HeaderFetcherSettings": "Поставки за преземање", + "HeaderActivity": "Активност", + "ButtonPurchase": "Купено", + "HeaderInstall": "Инсталирај", + "LabelSelectVersionToInstall": "Изберете верзија за инсталирање", + "LinkLearnMoreAboutSubscription": "Дознајте за Emby Premiere", + "MessagePluginRequiresSubscription": "Овој приклучок ќе бара активна претплата на Emby Premiere по 14-дневниот бесплатен пробен период.", + "MessagePremiumPluginRequiresMembership": "Овој приклучок ќе бара активна претплата на Emby Premiere за да се купи по 14-дневниот бесплатен пробен период.", + "HeaderDeveloperInfo": "Информации за програмерите", + "HeaderRevisionHistory": "Историја на ревизии", + "ButtonViewWebsite": "Преглед на веб страна", + "OptionSaveMetadataAsHidden": "Зачувај метаподатоци и слики како скриени датотеки", + "LabelConnectEmail": "(Изборно) Е-пошта за Emby Connect", + "LabelConnectEmailHelp": "Изборно, поврзете го овој локален корисник со постоечка сметка на Emby Connect за да овозможите лесен пристап за најавување од која било апликација на Emby без да ја знаете IP адресата на серверот.", + "ButtonLearnMoreAboutEmbyConnect": "Дознајте повеќе за Emby Connect", + "LabelDateAddedBehavior": "Однесување за датум на додавање за нова содржина", + "OptionDateAddedImportTime": "Користи го датумот скениран во библиотеката", + "OptionDateAddedFileTime": "Користи го датумот на создавање датотека", + "LabelDateAddedBehaviorHelp": "Ако е присутна вредност на метаподатоци, таа секогаш ќе се користи пред која било од овие опции.", + "HeaderLibrarySettings": "Поставки за библиотека", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Апликациите Emby можат автоматски да качуваат фотографии направени од вашите мобилни уреди на серверот Emby.", + "LabelCameraUploadPath": "Патека за прикачување од камерата", + "LabelCameraUploadPathHelp": "Изберете сопствена патека за прикачување. Ова ќе ги отфрли сите стандардни поставки поставени во делот за поставките за прикачувања од камера. Ако се остави празно, ќе се користи стандардна папка. Ако користите приспособена патека, ќе треба да се додаде и како библиотека во поставувањето на библиотеката Emby.", + "DefaultCameraUploadPathHelp": "Изберете сопствена патека за прикачување. Ако се остави празно, ќе се користи стандардна папка. Ако користите приспособена патека, ќе треба да се додаде и како библиотека во поставувањето на библиотеката Emby.", + "LabelCreateCameraUploadSubfolder": "Направете потпапка за секој уред", + "LabelCreateCameraUploadSubfolderHelp": "Специфични папки може да се доделат на уред со кликнување на него од страницата Уреди.", + "LabelCustomDeviceDisplayNameHelp": "Наведете приспособено име за прикажување или оставете празно за да го користите името што го пријавил уредот.", + "TabParentalControl": "Родителска контрола", + "HeaderAccessSchedule": "Распоред за пристап", + "HeaderAccessScheduleHelp": "Создадете распоред за пристап за да го ограничите пристапот до одредени часови.", + "HeaderLibraryAccess": "Пристап до библиотека", + "HeaderChannelAccess": "Пристап до канал", + "LabelForgotPasswordUsernameHelp": "Внесете го вашето корисничко име, ако се сеќавате на него.", + "TitlePasswordReset": "Ресетирање на лозинка", + "HeaderBlockItemsWithNoRating": "Блокирајте ставки без или непрепознатливи информации за оценување", + "LabelBlockContentWithTags": "Ограничете ги ставките со ознаки", + "LabelTagRestrictionMode": "Режим на ограничување на ознаки", + "BlockItemsWithTheseTags": "Блокирајте ставки со овие ознаки", + "AllowItemsWithTheseTags": "Дозволете само ставки со овие ознаки", + "OptionAllowContentDownloading": "Дозволете преземање содржини", + "LabelNewUserNameHelp": "Корисничките имиња може да содржат букви (a-z), броеви (0-9), цртички (-), долни црти (_), апострофи (') и точки (.)", + "HeaderThisUserIsCurrentlyDisabled": "Овој корисник во моментов е оневозможен. За да го овозможите овој корисник, погледнете ја опцијата на дното на оваа страница.", + "OptionAllowSyncTranscoding": "Дозволете преземање содржини што бараат транскодирање", + "AllowMediaConversion": "Дозволете конверзија на содржини", + "AllowMediaConversionHelp": "Дозволете или забранете пристап до функцијата за конвертирање на содржини.", + "OptionAllowAudioPlaybackTranscoding": "Дозволете транскодирање на звук, доколку е потребно, за време на емитување на содржини", + "OptionAllowVideoPlaybackTranscoding": "Дозволете видео транскодирање, доколку е потребно, за време на емитување на содржини", + "OptionAllowVideoPlaybackRemuxing": "Дозволете менување на форматите на контејнерот, доколку е потребно, за време на емитување на содржини", + "OptionAllowMediaPlaybackTranscodingHelp": "Ограничувањето на пристапот до транскодирањето ќе го оневозможи изборот на квалитет и може да предизвика неуспех во емитувањето во апликациите Emby поради неподдржани формати на содржини или недоволна мрежна пропусност.", + "LabelRemoteClientBitrateLimit": "Ограничување на брзината на пренос на интернет стриминг (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Изборно ограничување на бит-стапка по пренос за сите уреди надвор од мрежата. Ова е корисно за да се спречат уредите да бараат повисока бит-стапка отколку што може да издржи вашата интернет-врска. Ова може да резултира со зголемено оптоварување на процесорот на вашиот сервер со цел да се транскодираат видеата во реално време на помала бит-стапка.", + "LabelUserRemoteClientBitrateLimitHelp": "Ова ќе ја отфрли стандардната глобална вредност поставена во напредните поставки на серверот.", + "OptionEnableFullSpeedConversion": "Овозможи конверзија со целосна брзина", + "OptionEnableFullSpeedConversionHelp": "Стандардно, конверзиите се вршат со мала брзина за да се намали потрошувачката на ресурси.", + "OptionEnableAutomaticServerUpdates": "Овозможи автоматски ажурирања на сервер", + "HeaderTVSources": "Извори за ТВ", + "HeaderAddTvSource": "Додајте ТВ извор", + "LabelTunerIpAddress": "IP адреса на тјунер", + "HeaderGuideProviders": "Извори за податоци на Водич", + "HeaderAddGuideSource": "Додајте извор за податоци на Водич", + "LabelZipCode": "Поштенски број", + "LabelLineup": "Програма:", + "LabelImportOnlyFavoriteChannels": "Ограничете се на каналите означени како омилени", + "ImportFavoriteChannelsHelp": "Ако е овозможено, ќе се увезат само каналите што се означени како омилени на уредот за приемник.", + "HeaderDefaultRecordingSettings": "Стандардни поставки за снимање", + "LabelDisplayName": "Име за приказ:", + "OptionDownloadImagesInAdvance": "Преземете слики однапред", + "OptionDownloadImagesInAdvanceHelp": "Стандардно, повеќето слики не се преземаат од интернет додека не бидат прикажани во апликација на Emby. Овозможете ја оваа опција за да ги преземете сите слики однапред, како што се увезуваат нови содржини. Ова може да предизвика значително подолго скенирање на библиотеката.", + "MessageThankYouForSupporting": "Ви благодариме за поддршката на Emby.", + "FileReadCancelled": "Вчитувањето на датотеката е откажано.", + "FileNotFound": "Датотеката не е пронајдена.", + "FileReadError": "Настана грешка со вчитувањето на датотеката.", + "NoPluginConfigurationMessage": "Овој приклучок нема поставки за конфигурација.", + "HeaderNewApiKey": "Нов API клуч", + "HeaderNewApiKeyHelp": "Дајте дозвола на апликација за комуникација со Emby Server.", + "MessageKeyEmailedTo": "Клучот е пратен на {0}.", + "HeaderConfirmation": "Потврда", + "MessageKeyUpdated": "Ви благодариме. Вашиот Emby Premiere клуч е ажуриран.", + "MessageKeyRemoved": "Ви благодариме. Вашиот Emby Premiere клуч е отстранет.", + "TextEnjoyBonusFeatures": "Emby гратис функции", + "MessageErrorLoadingSupporterInfo": "Настана грешка при вчитување на информациите за Emby Premiere. Обидете се повторно подоцна.", + "ValueTimeLimitSingleHour": "Ограничено време: 1 час", + "ValueTimeLimitMultiHour": "Ограничено време: {0} часа", + "General": "Општо", + "HeaderScreenSavers": "Заштитници на екранот", + "Reporting": "Пријвување", + "LabelStopping": "Прекинување", + "HeaderSelectCertificatePath": "Избери патека за сертификати", + "HeaderSupporterBenefit": "Активната претплата на Emby Premiere обезбедува дополнителни придобивки како што се пристап до Emby DVR, офлајн содржини, премиум приклучоци и многу повеќе. {0}Дознајте повеќе{1}.", + "LabelAbortedByServerShutdown": "(Откажано поради исклучување на серверот)", + "LabelScheduledTaskLastRan": "Последен пат вчитано {0}, со траење {1}.", + "HeaderDeleteTaskTrigger": "Избриши активирач на задача", + "MessageDeleteTaskTrigger": "Дали сте сигурни дека сакате да го избришете овој активирач на задача?", + "MessageNoPluginsDueToAppStore": "За да управувате со приклучоците, користете ја веб-апликацијата Emby.", + "LabelVersionInstalled": "{0} инсталирано", + "HeaderSelectServerCachePath": "Изберете патека за кешот на серверот", + "HeaderSelectTranscodingPath": "Изберете привремена патека за транскодирање", + "HeaderSelectMetadataPath": "Изберете патека за метаподатоци", + "HeaderSelectServerCachePathHelp": "Прелистајте или внесете ја патеката што ќе ја користите за датотеките на кешот на серверот. Мора да имате пристап за впишување во папката.", + "HeaderSelectTranscodingPathHelp": "Прелистајте или внесете ја патеката што ќе ја користите за привремени датотеки на транскодирање. Мора да имате пристап за впишување во папката.", + "HeaderSelectMetadataPathHelp": "Прелистајте или внесете ја патеката во која сакате да складирате метаподатоци. Мора да имате пристап за впишување во папката.", + "MessageConfirmRestart": "Дали сте сигурни дека сакате да го рестартирате серверот Emby?", + "MessageConfirmShutdown": "Дали сте сигурни дека сакате да го исклучите серверот Emby?", + "LabelLocalAccessUrl": "Домашен (LAN) пристап: {0}", + "LabelRemoteAccessUrl": "Надворешен (WAN) пристап: {0}", + "LabelRunningOnPort": "Работи на http порта {0}", + "LabelRunningOnPorts": "Работи на http порта {0}, и https порта {1}", + "LabelCurrentPath": "Моментална патека:", + "HeaderSelectMediaPath": "Избери патека за содржина", + "HeaderSelectPath": "Избери патека", + "MessageDirectoryPickerInstruction": "Мрежните патеки може да се внесат рачно во случај копчето Мрежа не успее да ги лоцира вашите уреди. На пример, {0} или {1}.", + "MessageDirectoryPickerBSDInstruction": "За BSD, можеби ќе треба да го конфигурирате складирањето во вашиот FreeNAS Jail за да му дозволите на Emby да пристапи до него.", + "MessageDirectoryPickerLinuxInstruction": "За Linux на Arch Linux, CentOS, Debian, Fedora, OpenSuse или Ubuntu, мора да му дозволите на корисникот на системот Emby барем пристап за читање до вашите локации за складирање.", + "MetadataManager": "Менаџер со метаподатоци", + "OptionBlockLiveTvChannels": "ТВ канали во живо", + "OptionBlockChannelContent": "Содржина на интернет канал", + "ButtonRevoke": "Отповикај", + "MessageConfirmRevokeApiKey": "Дали сте сигурни дека сакате да го отповикате овој клуч за API? Врската на апликацијата со серверот Emby нагло ќе биде прекината.", + "HeaderConfirmRevokeApiKey": "Отповикај API клуч", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Ве молиме прифатете ги условите за користење пред да продолжите.", + "HeaderChangeFolderType": "Промени тип на содржина", + "HeaderChangeFolderTypeHelp": "За да го промените типот, отстранете ја и повторно изградете ја библиотеката со новиот тип.", + "HeaderAlert": "Предупредување", + "MessagePleaseRestart": "Рестартирајте за да завршите со ажурирањето.", + "OptionHomeVideos": "Домашни видео снимки и слики", + "OptionBooks": "Книги", + "HeaderMetadataReaders": "Читачи на метаподатоци", + "LabelMetadataReadersHelp": "Вклучете и рангирајте ги претпочитаните локални извори на метаподатоци по приоритет.", + "HeaderSubtitleDownloaders": "Преземачи на титлови", + "SubtitleDownloadersHelp": "Овозможете и рангирајте ги претпочитаните преземачи на титлови според приоритет. Може да се инсталираат повеќе даватели на титлови со помош на каталогот со приклучоци Emby.", + "LabelMetadataDownloaders": "Преземачи на метаподатоци:", + "LabelMetadataDownloadersHelp": "Овозможете и рангирајте ги претпочитаните преземачи на метаподатоци по приоритет. Преземачите со помал приоритет ќе се користат само за пополнување на информациите што недостасуваат.", + "HeaderMetadataSavers": "Штедачи на метаподатоци", + "LabelMetadataSaversHelp": "Изберете ги форматите на датотеки во кои ќе ги зачувате вашите метаподатоци.", + "LabelImageFetchers": "Преземачи на слики:", + "LabelImageFetchersHelp": "Овозможете и рангирајте ги претпочитаните преземачи на слики по приоритет.", + "PersonTypePerson": "Личност", + "HeaderRemoveMediaLocation": "Отстрани локација за содржини", + "MessageConfirmRemoveMediaLocation": "Дали сте сигурни дека сакате да ја отстраните оваа локација?", + "LabelNewName": "Ново име:", + "HeaderRemoveLibrary": "Острани библиотека", + "MessageAreYouSureYouWishToRemoveLibrary": "Дали сте сигурни дека сакате да ја отстраните библиотеката „{0}“ од вашиот Emby сервер? Вашите медиумски датотеки нема да бидат засегнати.", + "ButtonRename": "Преименувај", + "HeaderPluginInstallation": "Инсталација на приклучок", + "MessageTrialExpired": "Пробниот период за оваа функција истече", + "MessageTrialWillExpireIn": "Пробниот период за оваа функција ќе истече за {0} ден(ови)", + "ValuePriceUSD": "Цена: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Вие сте регистрирани за оваа функција, и ќе можете да продолжите да ја користите со активна претплата на Emby Premiere.", + "HeaderSelectExternalPlayer": "Избери надворешен плеер", + "HeaderExternalPlayerPlayback": "Пуштање на надворешен плеер", + "HeaderThankYou": "Ви благодариме", + "HeaderSelectUploadPath": "Избери патека за прикачување", + "ErrorMessageStartHourGreaterThanEnd": "Времето на завршување мора да биде поголемо од времето на започнување.", + "MessagePluginConfigurationRequiresLocalAccess": "Да го конфигурирате овој приклучок ве молиме логирајте се во вашиот локален сервер директно.", + "MovieLibraryHelp": "Прегледајте го {0}водичот за именување филмови во Emmy{1}.", + "TvLibraryHelp": "Прегледајте го {0}водичот за именување на Emby TV{1}.", + "BookLibraryHelp": "Поддржани се учебници. Прегледајте го {0}Водичот за именување на Emby Book{1}.", + "MessageGamePluginRequired": "Потребна е инсталација на приклучокот GameBrowser", + "HeaderUnlockApp": "Отклучи апликација", + "MessagePaymentServicesUnavailable": "Услугите за плаќање во моментов се недостапни. Обидете се повторно подоцна.", + "NoNewDevicesFound": "Не се пронајдени нови уреди. За да додадете нов приемник, затворете го овој прозорец и внесете ги информациите за уредот рачно.", + "MessageConfirmDeleteTunerDevice": "Дали сте сигурни дека сакате да го избришете овој уред?", + "MessageConfirmDeleteGuideProvider": "Дали сте сигурни дека сакате да го избришете овој провајдерна водич?", + "HeaderDeleteProvider": "Избриши провајдер", + "ErrorAddingTunerDevice": "Настана грешка при додавањето на уредот за приемник. Проверете дали е достапен и обидете се повторно.", + "ErrorSavingTvProvider": "Настана грешка при зачувувањето на ТВ-провајдерот. Проверете дали е достапен и обидете се повторно.", + "ErrorGettingTvLineups": "Настана грешка при преземањето на телевизиската програма. Проверете дали вашите информации се точни и обидете се повторно.", + "MessageCreateAccountAt": "Создајте сметка на {0}", + "ErrorPleaseSelectLineup": "Изберете програма и обидете се повторно. Ако не се достапни програми, тогаш ве молиме проверете дали вашето корисничко име, лозинка и поштенски код се точни.", + "ErrorValidatingSupporterInfo": "Настана грешка при потврдувањето на информациите за Emby Premiere. Обидете се повторно подоцна.", + "LabelLocalSyncStatusValue": "Статус: {0}", + "HeaderTopPlugins": "Врвни приклучоци", + "ForAdditionalLiveTvOptions": "Прелистајте го {0}каталогот на приклучоци{1} на Emby за да инсталирате дополнителни провајдери на ТВ во живо.", + "AddUser": "Додади корисник", + "HeaderEmailAddress": "Е-пошта", + "NumLocationsValue": "{0} папки", + "PleaseAddAtLeastOneFolder": "Додадете барем една папка во оваа библиотека со кликнување на копчето Додај.", + "ErrorAddingMediaPathToVirtualFolder": "Настана грешка при додавањето на патеката за медиум. Проверете дали патеката е валидна и дека процесот на Emby Server има пристап до таа локација.", + "ErrorAddingEmbyConnectAccount3": "Сметката на Emby е веќе поврзана со постоечки локален корисник. Сметката на Emby може да се поврзе само со еден локален корисник во исто време.", + "HeaderConfirmPluginInstallation": "Потврди инсталација на приклучок", + "PleaseConfirmPluginInstallation": "Ве молиме кликнете OK за да потврдите дека сте го прочитале погоре и сакате да продолжите со инсталацијата на приклучокот.", + "MessagePluginInstallDisclaimer": "Приклучоците создадени од членовите на заедницата на Emby се одличен начин да го подобрите вашето искуство со Emby со дополнителни функции и придобивки. Пред да го инсталирате, ве молиме внимавајте на ефектите што може да ги имаат на вашиот сервер Emby, како што се подолги скенирања на библиотеката, дополнителна обработка во заднина и намалена стабилност на системот.", + "HardwareAccelerationWarning": "Овозможувањето хардверско забрзување може да предизвика нестабилност во некои средини. Проверете дали вашиот оперативен систем и драјверите за видео се целосно ажурирани. Ако имате потешкотии со пуштање на видео откако ќе го овозможите ова, ќе треба да ја промените поставката назад на Автоматски.", + "ValueExample": "Пример: {0}", + "LabelFileOrUrl": "Датотека или адреса", + "OptionEnableForAllTuners": "Овозможи за сите приемници", + "HeaderTuners": "Приемник", + "DrmChannelsNotImported": "Каналите со DRM нема да се увезуваат.", + "LabelAllowHWTranscoding": "Дозволи хардверско транскодирање", + "AllowHWTranscodingHelp": "Ако е овозможено, дозволете му на приемникот да ги транскодира стримовите во лет. Ова може да помогне да се намали транскодирањето што го бара Emby Server.", + "MetadataSettingChangeHelp": "Промената на поставките за метаподатоци ќе влијае на новата содржина што ќе се додава понатаму. За да ја освежите постоечката содржина, отворете го екранот со детали и кликнете на копчето за освежување или изведете масовно освежување користејќи го управувачот со метаподатоци.", + "RecordingPathChangeMessage": "Промената на вашата папка за снимање нема да ги мигрира постоечките снимки од старата локација на новата. Ако сакате, ќе треба да ги преместите рачно.", + "LabelLocalIpAddress": "Локална IP адреса", + "LabelBindToLocalNetworkAddressHelp": "Изборно. Отфрлете ја локалната IP адреса што Emby Server ќе ја претстави на апликациите Emby. Ако се остави празно, серверот автоматски ќе ја открие локалната IP адреса.", + "SettingsWarning": "Промената на овие вредности може да предизвика нестабилност или проблеми со поврзувањето. Ако наидете на какви било проблеми, препорачуваме да ги вратите на стандардно.", + "OptionSaveMetadataAsHiddenHelp": "Промената на ова ќе важи за новите метаподатоци зачувани понатаму. Постојните датотеки со метаподатоци ќе се ажурираат следниот пат кога ќе се зачуваат од Emby Server.", + "EnablePhotos": "Овозможи фотографии", + "EnablePhotosHelp": "Фотографиите ќе бидат откриени и прикажани заедно со други медиумски датотеки.", + "ImportPlaylists": "Увезете датотеки со плејлисти", + "ImportPlaylistsHelp": "Плејлистите пронајдени во вашите медиумски папки може да се увезат во Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Зачувајте сликички за преглед на видео во медиумски папки", + "LabelGenerateVideoPreviewThumbnails": "Генерирај сликички за преглед на видео", + "LabelEnableDebugLogging": "Овозможи логирање за програмери", + "OptionEnableExternalContentInSuggestions": "Овозможи надворешна содржина во препораки", + "OptionEnableExternalContentInSuggestionsHelp": "Дозволи трејлери од интернет и тв програми во живо да бидат вклучени во препорачани содржини.", + "LabelOptionalNetworkPath": "(Изборно) Споделена мрежна папка", + "LabelOptionalNetworkPathHelp": "Ако оваа папка е споделена на вашата мрежа, снабдувањето со патеката за споделување на мрежата може да им дозволи на апликациите Emby на други уреди директно да пристапуваат до медиумските датотеки.", + "SynologyUpdateInstructions": "Ве молиме најавете се на DSM и одете во Центарот за пакети за ажурирање.", + "HeaderRecordingPostProcessing": "Пост-обработка на снимање", + "LabelPostProcessorArguments": "Аргументи на командната линија за пост-обработка", + "PostProcessorArgumentsHelp": "Следниве променливи се поддржани во командната линија за да овозможат пренесување податоци до вашата пост-обработка", + "LabelPostProcessor": "Апликација за пост-обработка", + "DvrPostProcessorPathArgument": "{path}: Целосната патека до новата датотека за снимање", + "OptionAutomaticallyGroupSeries": "Автоматски спои серии што се протегаат низ повеќе папки", + "OptionAutomaticallyGroupSeriesHelp": "Ако е овозможено, сериите што се протегаат низ повеќе папки во оваа библиотека автоматски ќе се спојат во една серија.", + "WhenDidYouPurchaseApp": "Кога првично ја купивте оваа апликација?", + "PreferEmbeddedTitlesOverFileNames": "Претпочитај вградени наслови наместо имиња на датотеки", + "PreferEmbeddedTitlesOverFileNamesHelp": "Ова го одредува стандардниот наслов на прикажување кога нема достапни интернет метаподатоци или локални метаподатоци.", + "FriendlyNameForReferenceHelp": "Стандардно име што се користи за прикажување, за ваша сопствена референца.", + "HeaderLiveTvTunerSetup": "Поставување ТВ приемник во живо", + "HeaderTVSourceSetup": "Поставување извор на ТВ", + "HeaderDetectMyDevices": "Откриј уреди", + "MessagePleaseWait": "Ве молиме почекајте. Ова може да потрае една минута.", + "DetectingDevices": "Откривање на уреди", + "LabelAutomaticallyRefreshInternetMetadataEvery": "По првичниот увоз, автоматски освежи ги метаподатоците од интернет", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Автоматски обнови ги метаподатоците за епизоди со наслови на заштитни места, како TBA", + "EveryNDays": "Секои {0} дена", + "LabelCertificatePassword": "Лозинка за сертификат", + "LabelCertificatePasswordHelp": "Ако вашиот сертификат бара лозинка, ве молиме внесете ја овде.", + "HeaderNewLibrary": "Нова библиотека", + "HttpsRequiresCert": "За да овозможите безбедни врски, ќе треба да обезбедите доверлив SSL сертификат, како што е Lets Encrypt. Ве молиме или доставете сертификат или оневозможете безбедни врски.", + "ServerRestartNeededAfterPluginInstall": "Серверот Emby ќе треба да се рестартира по инсталирањето на приклучокот.", + "PluginInstalledMessage": "Приклучокот е успешно инсталиран. Серверот Emby ќе треба да се рестартира за да стапат на сила промените.", + "MessagePremiereStatusGood": "Имате претплата за {0} Emby Premiere и користењето на вашиот уред е во рамките на вашето ограничување.", + "MessagePremiereStatusClose": "Имате план за {0} Emby Premiere, но користењето на вашиот уред е блиску до ограничувањето.", + "MessagePremiereExtendedPlans": "Размислете за {0}проширен план за уред{1}", + "MessagePremiereStatusOver": "Имате план за Emby Premiere на {0}, но го надминавте ограничувањето за уреди!", + "ListItemPremiereSub": "Претплатата за {0} купена преку {2} истекува на {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "Може да управувате со оваа претплата директно со {0}", + "LabelAlreadyCanceled": "Оваа претплата е откажана. Клучот ќе остане валиден до истекот.", + "HeaderCancelSub": "Откажи Emby Premiere", + "MessageConfirmSubCancel": "НЕ, ве молиме немојте да си одите... Ќе ги пропуштите сите одлични карактеристики на Emby Premiere!", + "ButtonCancelSub": "Знам, откажи во секој случај", + "ButtonDontCancelSub": "Задржи Emby Premiere", + "MessageSubCancelReqSent": "Испратена е е-пошта до сопственикот на клучот. Следете ги упатствата во таа е-пошта за да го завршите откажувањето на оваа претплата. Се надеваме дека ќе се видиме наскоро!", + "MessageSubCancelError": "Нешто тргна наопаку при обидот да се откаже. Ве молиме испратете е-пошта до {0} и ќе средиме.", + "LabelAlreadyCancelled": "Оваа претплата е откажана. Нема да ви се наплаќа повторно, но функциите ќе работат до горенаведениот датум.", + "AllowOnTheFlySubtitleExtraction": "Дозволи извлекување на превод во лет", + "AllowOnTheFlySubtitleExtractionHelp": "Вградените преводи може да се извлечат од видеата и да се доставуваат до апликациите Emby во обичен текст со цел да се спречи транскодирањето на видеото. На некои системи ова може да потрае долго и да предизвика застој на репродукцијата на видео за време на процесот на извлекување. Оневозможете го ова за да има вградени преводи со видео транскодирање кога тие не се природно поддржани од клиентскиот уред.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Евиденцијата за отстранување грешки треба да биде овозможена само по потреба за целите на решавање проблеми. Зголемениот пристап до датотечниот систем може да го спречи серверот да може да спие во некои средини.", + "LabelSimultaneousConnectionLimit": "Ограничување за истовремен стрим", + "SimultaneousConnectionLimitHelp": "Максималниот број на дозволени истовремени стримови. Внесете 0 за неограничено.", + "LaunchWebAppOnStartup": "Стартувајте ја веб-апликацијата Emby во мојот веб-прелистувач кога ќе започне Emby Server", + "LaunchWebAppOnStartupHelp": "Ова ќе ја отвори веб-апликацијата во вашиот стандарден веб-прелистувач кога првично ќе започне Emby Server. Ова нема да се случи кога ја користите функцијата за рестартирање на серверот.", + "LabelReferrerHeader": "Заглавие http на упатување", + "LabelUserAgentHeader": "Заглавие http на кориснички агент", + "SupplyCustomValueIfNeeded": "Наведете прилагодена вредност на заглавието http, доколку е потребно.", + "HeaderConfigureRemoteAccess": "Конфигурација на далечински пристап", + "LearnHowToCreateSynologyShares": "Научете како да споделувате папки во Synology.", + "LabelAllowedRemoteAddresses": "Филтер за надворешни IP адреси", + "LabelAllowedRemoteAddressesMode": "Режим на филтер за надворешни IP адреси", + "Whitelist": "Бела листа", + "Blacklist": "Црна листа", + "AllowedRemoteAddressesHelp": "Список на IP адреси одвоени со запирки или записи со IP/netmask за мрежи на кои ќе им биде дозволено да се поврзуваат далечински. Ако се остави празно, сите надворешни адреси ќе бидат дозволени.", + "LabelLanNetworks": "LAN мрежи", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Безбеден режим на поврзување", + "PreferredNotRequired": "Претпочитано, но не е морално", + "RequiredForAllRemoteConnections": "Морално за сите надворешни врски", + "HandledByProxy": "Средено со обратен прокси", + "SaveSubtitlesIntoMediaFolders": "Зачувај ги преземените преводи во медиумските папки", + "SaveSubtitlesIntoMediaFoldersHelp": "Складирањето преводи до видео датотеките ќе овозможи полесно управување со нив.", + "AutomaticSubtitleDownloadInstructions": "За да управувате со автоматското преземање преводи, кликнете на библиотека во поставувањето на библиотеката Emby и уредете ги поставките за преземање преводи за таа библиотека.", + "ProviderNeedsSetupWithUrl": "{0} бара дополнително поставување на {1} екранот за поставки{2} во Emby Server.", + "LabelEnableHardwareAcceleration": "Овозможи хардверско забрзување кога е достапно", + "HeaderPreferredHardwareDecoders": "Претпочитани хардверски декодери", + "HeaderPreferredHardwareEncoders": "Претпочитани хардверски енкодери", + "AllowChangingImageAndPassword": "Дозволете му на овој корисник да ја промени лозинката и сликата на профилот", + "LabelSimultaneousStreamLimit": "Максимални симултани видео стримови", + "SimultaneousStreamLimitHelp": "Ограничете го бројот на истовремени сесии за гледање на видео.", + "LabelMusicFolderStructure": "Структура на музички папки", + "LabelMusicFolderStructureHelp": "Ова дава навестување за скенерот на библиотеката за начинот на кој се организирани вашите папки. Ако не сте сигурни или ако вашите папки не се совпаѓаат точно со една од опциите, тогаш ве молиме изберете ја стандардната опција Друго.", + "OtherOrUnstructured": "Други или неструктурирани", + "PerfectArtistAlbumTrack": "Совршено организирани во папки за изведувачи/албум, со песни директно во папките на албумите.", + "PerfectAlbumTrack": "Совршено организирани во папки со албуми, со песни директно во папките со албуми.", + "LabelMinCollectionSize": "Минимална големина на автоматска колекција", + "PerfectAuthorAudioBookTrack": "Совршено организирани во папки за автори/книги, со траки директно во папките со книги.", + "PerfectAudioBookTrack": "Совршено организирани во папки со книги, со траки директно во папките со книги.", + "MinCollectionSizeHelp": "Автоматски создавај колекции кога го има барем избраниот број на наслови во вашата библиотека. Промената на оваа вредност нема да влијае на постоечките колекции.", + "LabelImportCollections": "Увези информации за собирање од преземачи на метаподатоци", + "LabelImportCollectionsHelp": "Кога е овозможено, ова ќе увезе информации за колекции од вашите овозможени преземачи на метаподатоци. Ова може да предизвика автоматски да се креираат несакани колекции. Оневозможувањето ќе спречи идните колекции да се креираат автоматски, но нема да ги избрише постоечките.", + "LabelAllowAdultMetadata": "Дозволи метаподатоци за возрасни", + "LabelAllowAdultMetadataHelp": "Дозволи совпаѓање на наслови за возрасни при пребарувањето метаподатоци на интернет.", + "HeaderVideoPreviewThumbnails": "Сликички за преглед на видео", + "LabelEnableHDRToneMapping": "Овозможи мапирање на HDR тон", + "EnableHDRToneMappingHelp": "Мапирањето на тонови ќе обезбеди правилна конверзија на бои при транскодирање на HDR содржина, која инаку ќе изгледа многу затемнета и дезаситена. Можеби ќе бидат потребни дополнителни компоненти на двигателот за поддршка на хардверско забрзување со оваа функција овозможена. Ве молиме погледнете го нашиот водич за поставување хардверско забрзување за повеќе детали.", + "WithHardwareAcceleratedTranscoding": "Да, само со хардверско забрзување", + "TranscodingStillInitializing": "Услугите за транскодирање на Emby Server сè уште се зафатени со стартување. Овој екран автоматски ќе се освежи кога услугите за транскодирање се подготвени.", + "WithEitherHardwareOrSoftwareTranscoding": "Да, со хардверско или софтверско транскодирање", + "ToneMappingInHardwareDescription": "Мапирањето на тонот ќе се изврши со хардверско забрзување кога е овозможено и поддржано од хардверот и ќе биде прескокнато во сите други случаи.", + "ToneMappingInSoftwareDescription": "Мапирањето на тонови ќе се врши во софтвер од страна на процесорот. Ова е многу побавно од хардверското забрзано мапирање на тонови и захтева многу моќен сервер.", + "ToneMappingInBothDescription": "Мапирањето на тонот ќе се изврши со хардверско забрзување кога е овозможено и поддржано од хардверот, а во сите други случаи ќе користи софтверско. Мапирањето на тонови софтверски е многу побавно од мапирањето на хардверски забрзани тонови и захтева многу моќен сервер.", + "AutoMapped": "Автоматски мапирано", + "ManuallyMapped": "Мануелно мапирано", + "NotMappedToGuideData": "Не е мапирано за да ги води податоците", + "MappedToValue": "Мапирано на {0}", + "LabelAutomaticallyWakeServerForRecordings": "Автоматски разбуди го серверот за да изврши снимање", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Настаните за будење ќе бидат закажани со оперативниот систем на серверот. Оневозможувањето на оваа опција ќе спречи да се закажуваат идни настани, но нема да се отстранат сите претходно закажани настани.", + "Database": "База на податоци", + "LabelOptimizeDatabaseOnShutdown": "Обиди се да ја оптимизираш базата на податоци при исклучување на серверот", + "LabelOptimizeDatabaseOnShutdownHelp": "Операцијата за оптимизирање на базата на податоци обично не е оптимизирана, но повремено ќе изврши анализа ако се чини дека тоа ќе биде корисно за планирачот на прашања. Ова може да предизвика да му треба повеќе време на Emby серверот да се исклучи.", + "LabelDatabaseCacheSize": "Големина на кешот на базата на податоци (MB)", + "LabelDatabaseCacheSizeHelp": "Го поставува количеството податоци што базата на податоци ќе ги чува во меморијата одеднаш, по датотека со база на податоци. Поголема вредност може да помогне да се подобрат перформансите на Emby Server. Потребно е рестартирање на серверот за да стапи на сила.", + "LabelDatabaseAnalysisLimit": "Ограничување на редот за анализа", + "LabelDatabaseAnalysisLimitHelp": "Кога базата на податоци е оптимизирана, ова е приближниот број на редови испитани во секој индекс со командата ANALYZE. Поголема вредност ќе ја зголеми ефикасноста на оптимизацијата на базата на податоци, но може да предизвика исклучувањето на Emby Server да трае подолго.", + "LabelVacuumDb": "Вшмукај ја базата на податоци при следното стартување на серверот Emby", + "LabelVacuumDbHelp": "Вшмукувањето ја обновува датотеката со базата на податоци, препакувајќи ја на минимален простор на дискот. Во некои случаи ова може да ги подобри перформансите на Emby Server. Ве молиме имајте предвид дека вашиот Emby сервер нема да може да се користи за време на операцијата со вшмукување, ниту ќе има каков било начин да се следи напредокот. Избегнувајте присилно затворање на процесот на Emby Server во овој период бидејќи тоа може да доведе до оштетување на базата на податоци. Ова е еднократна операција и оваа опција ќе се врати на отштиклирана при следното стартување на серверот.", + "AdvancedOptionsWarning": "Овие се напредни опции и генерално треба да се остават на стандардни, освен ако немате причина да ги промените.", + "HeaderRecentlyActiveDevices": "Неодамна активни уреди", + "YesUntilServerRestart": "Да, до следниот рестарт на серверот", + "YesUntilLogRotate": "Да, до следното ротирање на датотеката за евиденција", + "LabelSubtitleDownloadMaxAge": "Престани да се обидуваш автоматски да преземаш преводи за видеа постари од", + "SubtitleDownloadMaxAgeHelp": "Ова се заснова на вредноста на датумот кога се додадени метаподатоците.", + "NoAgeLimit": "Без старосно ограничување", + "AnonymizeLogContents": "Анонимизирај ја содржината на дневникот", + "Markers": "Маркери", + "LabelGenerateIntroVideoMarkers": "Создади воведни видео маркери", + "GenerateIntroVideoMarkersHelp": "Открива воведи и го прикажува копчето „Прескокни вовед“ во апликациите Emby. Воведното откривање може да потрае долго и да предизвика висока употреба на процесорот или дискот.", + "LabelCopyFromUser": "Копирајте ги поставките од корисникот", + "CopyFromUserHelp": "Изборно. Забрзај го креирањето на нови корисници со копирање на информации од постоечки корисник.", + "UserPolicy": "Корисничка политика (пристап до библиотека и функции, родителски контроли итн.)", + "UserConfiguration": "Корисничка конфигурација (претпочитани јазици за аудио и преводи, редослед на библиотека, итн.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Опции за копирање", + "LabelMultiRestrictionMode": "Режим на повеќекратно ограничување", + "MultiRestrictionModeAll": "Дозволи содржина што одговара и на ограничувањата за рејтинг и за ознаки", + "MultiRestrictionModeAny": "Дозволи содржина што одговара на ограничувањата за рејтинг или ознаки", + "AllowMappingByChannelNumber": "Дозволи мапирањето на податоци за водичот користејќи броеви на канали", + "AllowMappingByChannelNumberHelp": "Ова може да се користи како резервна копија за усогласување на каналите на тјунер со податоците за водич секогаш кога не може да се најде совпаѓање врз основа на името на каналот. Ова може да доведе до неточно совпаѓање ако броевите на каналите од тјунерот не се точни.", + "LabelPreferredSourceForChannelLogos": "Претпочитај логоа на канали од податоците за водичот наместо тјунерот кога и двата ги имаат достапни", + "LabelPreferredSourceForChannelNumbers": "Претпочитај ги броевите на каналите од податоците за водичот пред тјунерот кога и двата ги имаат достапни", + "HeaderSoftwareEncoders": "Софтверски енкодери", + "LabelProxyHeaderMode": "Читај заглавија на прокси за одредување на IP адреса на клиентот", + "ProxyHeadersRemoteOnly": "Само кога содржат надворешни мрежни адреси", + "ProxyHeaderModeHelp": "Определува дали заглавјата на барањата како што се {0} и {1} треба да се користат за одредување на IP адресата на уредите што се поврзуваат.", + "AllowCameraUpload": "Дозволи прикачување од камера", + "AllowCameraUploadHelp": "Доколку е дозволено и ако е овозможено во мобилните апликации на Emby, корисниците можат автоматски да поставуваат фотографии и видеа направени од нивната камера на овој сервер Emby", + "CameraUploadMustBeGranted": "Исто така, администраторот на серверот мора да ви даде пристап до прикачувањето од камерата.", + "EnableReadingAndWritingPeopleMetadata": "Овозможи читање и пишување на датотеки со метаподатоци за личности", + "EnableReadingAndWritingPeopleMetadataHelp": "Потребно е да се инсталира приклучокот Nfo Metadata. Ова ќе овозможи зачувување на уредувањата на вашите луѓе во датотеките со метаподатоци nfo, но ќе резултира со подолго скенирање на библиотеката.", + "LabelIgnoreSampleFiles": "Игнорирај ги датотеките што го содржат примерокот на зборот во името на датотеката ако нивната големина е помала од (MB)", + "PreferredChannelImageSource": "Претпочитан извор на слика на каналот", + "PreferredChannelImageSourceHelp": "Избери претпочитана слика на каналот кога и тјунерот и податоците за водичот имаат достапни слики.", + "CacheImagesInServerData": "Чувај кеширана копија од слики во папката со метаподатоци на серверот", + "CacheImagesInServerDataHelp": "Ако вашите содржини и слики се зачувани на друга машина, чувањето кеширана копија од сликите во папката со метаподатоци на серверот ќе го намали пристапот до мрежата и може да ги подобри перформансите. Трошоците за создавање на овој кеш се дека скенирањето на библиотеката ќе биде побавно и папката со метаподатоци на серверот ќе троши значително повеќе простор на дискот.", + "AllowSharingPersonalContent": "Дозволи споделување лична содржина како што се плејлисти со други корисници на овој сервер", + "AllowSharingPersonalContentHelp": "Доколку биде одобрено, овој корисник ќе може да ги споделува своите плејлисти со други корисници. Ставките на плејлистата сепак ќе бидат ограничени врз основа на пристапот до библиотеката на корисниците и родителските контроли.", + "LiveBufferSizeHours": "Ограничување на големината на баферот за пренос во живо (часови)", + "LiveBufferSizeHoursHelp": "Подолгиот бафер ќе обезбеди поголема можност за премотување нанапред и наназад за време на преносот во живо, но ќе троши повеќе простор на дискот.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "PreviousSection": "Previous chapter", + "PageNarrow": "Narrow", + "PageMaximized": "Maximized", + "PageBook": "Double page", + "LabelPageSize": "Page Size", + "PageSingle": "Single page", + "NextSection": "Next chapter", + "PositionInBook": "Position in the book", + "TableOfContents": "Table Of Contents", + "ZoomOut": "Zoom out", + "ZoomIn": "Zoom in", + "ZoomNone": "Default zoom", + "ZoomAutoFit": "Fit page", + "LayoutPage": "Single page", + "LayoutDouble": "Double page", + "LayoutVertical": "Vertical scroll", + "Margins": "Margins", + "PreviousPage": "Previous page", + "CurrentPage": "Current page", + "TotalPages": "Total pages", + "NextPage": "Next page", + "RightToLeft": "Right-to-left order", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LabelFolderScanningMode": "Folder scanning mode", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "Legacy": "Legacy" +} diff --git a/strings/ms.json b/strings/ms.json new file mode 100644 index 0000000..87bd15c --- /dev/null +++ b/strings/ms.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Kamu Selesai!", + "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process of setting up Emby Server.", + "HeaderCreateYourFirstUser": "Create Your First User", + "ButtonQuickStartGuide": "Panduan Mula Cepat", + "MoreUsersCanBeAddedLater": "More users can be added later within Emby Server settings.", + "UserProfilesIntro": "Emby includes built-in support for user profiles, enabling each user to have their own display settings, playstate and parental controls.", + "WizardCompleted": "That's all we need for now. Emby has begun scanning your media library. Check out some of our apps, and then click Finish to view the Server Dashboard.", + "MessagePleaseAcceptTermsOfService": "Please accept the terms of use and privacy policy before continuing.", + "OptionIAcceptTermsOfService": "Saya terima semua terma servis", + "SeeOurHwaGuide": "See our {0}hardware acceleration setup guide{1}.", + "HeaderEmbyServerReleaseNotes": "Emby Server Release Notes", + "AllowSubtitleDownloading": "Allow subtitle downloading", + "AllowSubtitleManagement": "Allow deletion of existing subtitle files", + "NewUserNameHelp": "This is how the user will appear on your server.", + "ChapterMarkers": "Chapter markers", + "LabelThumbnailImagesInterval": "Thumbnail images interval", + "ThumbnailImagesIntervalHelp": "More frequent thumbnails will result in a better experience, but will require more disk space and time to create the images.", + "LabelAuthProvider": "Authentication provider", + "AuthProviderHelp": "Administrators always use the default Emby provider to ensure you're never locked out.", + "HeaderNewUser": "Pengguna Baru", + "ChangeServerDisplayName": "Tukar Paparan Nama Pelayan", + "ShowAdvancedSettings": "Show advanced settings", + "ChangingMetadataImageSettingsNewContent": "Changes to metadata or artwork downloading settings will only apply to new content added to your library. To apply the changes to existing titles, you'll need to refresh their metadata manually.", + "AllowRemoteAccess": "Benarkan sambungan rangkaian luar kepada Pelayan Emby", + "AllowRemoteAccessHelp": "Jika tidak ditanda, semua sambungan rangkaian luar akan dihalang", + "Alerts": "Makluman", + "LabelTrackTitleDisplay": "Embedded track title display", + "GenerateUserFriendlyTrackTitles": "Generate user friendly titles using track information", + "PreferOriginalTrackTitles": "Prefer embedded titles", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "EnableTranscodingThrottle": "Enable throttling", + "EnableTranscodingThrottleHelp": "Emby will dynamically adjust transcoding speed based in order to reduce CPU utilization.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} Image Fetchers", + "HeaderImageOptions": "Pilihan Gambar", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Daftar dengan Paypal", + "LabelSyncTempPath": "Temporary file path", + "LabelSyncTempPathHelp": "Specify a custom working folder. Converted media created during the conversion process will be stored here.", + "LabelCustomCertificatePath": "Custom ssl certificate path", + "LabelCustomCertificatePathHelp": "Path to a PKCS #12 file containing a certificate and private key to enable TLS support on a custom domain.", + "HeaderSetupLibrary": "Setup Media Libraries", + "LabelTimeLimitHours": "Time limit (hours)", + "HeaderPreferredMetadataLanguage": "Preferred Metadata Language", + "LabelSaveLocalMetadata": "Save artwork into media folders", + "LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put images next to media files where they can be easily accessed from outside of Emby. If disabled, images will be saved into the server's metadata folder.", + "TabAccess": "Akses", + "HeaderDeviceAccess": "Device Access", + "OptionEnableAccessFromAllDevices": "Enable access from all devices", + "OptionEnableAccessToAllChannels": "Enable access to all channels", + "OptionEnableAccessToAllLibraries": "Enable access to all libraries", + "DeviceAccessHelp": "Filtering user device access will prevent them from using new devices until they've been approved here.", + "LabelDisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Emby database and displayed within seasons and series. This may cause significantly longer library scans.", + "MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.", + "LabelMaxParentalRating": "Maximum allowed parental rating", + "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.", + "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.", + "ChannelAccessHelp": "Select the channels to share with this user. Administrators will be able to edit all channels using the metadata manager.", + "ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG/PNG only.", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Click OK to send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, setup Emby Premiere in your Emby Server Dashboard under Help -> Emby Premiere, and it will be unlocked automatically.", + "TabMyPlugins": "My Plugins", + "TabCatalog": "Katalog", + "HeaderAutomaticUpdates": "Kemaskini Automatik", + "Standard": "Standard", + "TabSupporterKey": "Emby Premiere Key", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Useful for private or hidden administrator accounts. The user will need to sign in manually by entering their username and password.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Disable this user", + "OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.", + "OptionAllowUserToManageServer": "Allow this user to manage the server", + "HeaderFeatureAccess": "Feature Access", + "OptionAllowMediaPlayback": "Allow media playback", + "AllLibraries": "All libraries", + "HeaderAllowMediaDeletionFrom": "Allow Media Deletion From", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Allow remote control of other users", + "OptionAllowRemoteSharedDevices": "Allow remote control of shared devices", + "OptionAllowRemoteSharedDevicesHelp": "Dlna devices are considered shared until a user begins controlling it.", + "OptionAllowLinkSharing": "Allow social media sharing", + "OptionAllowLinkSharingHelp": "Only web pages containing media information are shared. Media files are never shared publicly. Shares are time-limited and will expire after {0} days.", + "OptionRelease": "Official Release", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods, when no users are active.", + "LabelRunServerAtStartup": "Run server at startup", + "LabelRunServerAtStartupHelp": "This will start the Emby tray icon on Windows startup. If you've set up a Windows service then leave this unchecked and configure the service to run at startup.", + "ButtonSelectDirectory": "Select Directory", + "LabelCachePath": "Cache path", + "DefaultMetadataLangaugeDescription": "These are your defaults and can be customized on a per-library basis.", + "LabelCachePathHelp": "Specify a custom location for server cache files, such as images. Leave blank to use the server default.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Metadata path", + "LabelMetadataPathHelp": "Specify a location for downloaded artwork and metadata, or blank this out to revert to default. If changing this, you'll need to manually migrate the contents from the old location to the new location. If you ever manually change the contents of the metadata folder, you'll need to run the {0}scan metadata folder scheduled task{1}.", + "LabelTranscodingTempPath": "Transcoding temporary path", + "LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Refresh Guide Data", + "LabelNumberOfGuideDays": "Number of days of guide data to download", + "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels. Please note that regardless of how many days you choose, the data must exist in the source guide data in order for it to be downloaded. Some guide data sources only provide 24 hours. Emby Guide Data supports up to 14 days.", + "HeaderFetchImages": "Fetch Images", + "LabelMaxBackdropsPerItem": "Maximum number of backdrops per item", + "LabelMaxScreenshotsPerItem": "Maximum number of screenshots per item", + "LabelMinBackdropDownloadWidth": "Minimum backdrop download width", + "LabelMinScreenshotDownloadWidth": "Minimum screenshot download width", + "ButtonAddScheduledTaskTrigger": "Add Trigger", + "ButtonAdd": "Tambah", + "LabelTriggerType": "Trigger Type", + "OptionOnInterval": "On an interval", + "OptionAfterSystemEvent": "After a system event", + "LabelDay": "Day", + "LabelTime": "Time", + "LabelEvent": "Event", + "OptionWakeFromSleep": "Wake from sleep", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Enable real time monitoring", + "LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately, on supported file systems.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Friendly server name", + "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.", + "LabelPreferredDisplayLanguage": "Preferred display language", + "LabelPreferredDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LabelReadHowYouCanContribute": "Learn how you can contribute.", + "LabelCustomCss": "Custom css", + "LabelCustomCssHelp": "Apply your own custom css to the web interface.", + "LabelLocalHttpServerPortNumber": "Local http port number", + "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Emby's http server should bind to.", + "LabelPublicHttpPort": "Public http port number", + "LabelPublicHttpPortHelp": "The public port number that should be mapped to the local http port.", + "LabelPublicHttpsPort": "Public https port number", + "LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local https port.", + "RequireHttps": "Require https for external connections", + "RequireHttpsHelp": "If enabled, connections over http will be redirected to https.", + "LabelHttpsPort": "Local https port number", + "LabelHttpsPortHelp": "The tcp port number that Emby's https server should bind to.", + "LabelEnableAutomaticPortMap": "Enable automatic port mapping", + "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", + "LabelExternalDDNS": "External domain", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Min resume percentage", + "LabelMaxResumePercentage": "Max resume percentage", + "LabelMinResumeDuration": "Min resume duration (seconds)", + "LabelMinResumePercentageHelp": "Titles are assumed unplayed if stopped before this time", + "LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time", + "LabelMinResumeDurationHelp": "Titles shorter than this will not be resumable", + "HeaderStatus": "Status", + "Subscriptions": "Subscriptions", + "LabelEndingEpisodeNumber": "Ending episode number", + "LabelEndingEpisodeNumberHelp": "Only required for multi-episode files", + "HeaderSupportTheTeam": "Support the Emby Team", + "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by purchasing Emby Premiere. A portion of all income will be contributed to other free tools we depend on.", + "DonationNextStep": "Once complete, please return and enter your Emby Premiere key, which you will receive by email.", + "HeaderRunningTasks": "Running Tasks", + "ButtonUpdateNow": "Update Now", + "PleaseUpdateManually": "Please shutdown Emby Server and install the latest version.", + "ServerUpToDate": "Emby Server is up to date", + "MessagePleaseRestartServerToFinishUpdating": "Please restart the server to finish applying updates.", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", + "HeaderForgotKey": "Forgot Key", + "LabelSupporterEmailAddress": "The email address that was used to purchase the key.", + "ButtonRetrieveKey": "Retrieve Key", + "LabelSupporterKey": "Emby Premiere key (paste from email)", + "LabelSupporterKeyHelp": "Enter your Emby Premiere key to start enjoying additional benefits.", + "MessageInvalidKey": "Emby Premiere key is missing or invalid.", + "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also have an active Emby Premiere subscription.", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Send message", + "HeaderSendMessage": "Send Message", + "ButtonSend": "Send", + "LabelMessageText": "Message text", + "LabelMessageTitle": "Message title", + "ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Api Keys", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "Api Key", + "HeaderResumeSettings": "Resume Settings", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Activity", + "ButtonPurchase": "Purchase", + "HeaderInstall": "Install", + "LabelSelectVersionToInstall": "Select version to install", + "LinkLearnMoreAboutSubscription": "Learn about Emby Premiere", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Developer Info", + "HeaderRevisionHistory": "Revision History", + "ButtonViewWebsite": "View website", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect", + "LabelDateAddedBehavior": "Date added behavior for new content", + "OptionDateAddedImportTime": "Use date scanned into the library", + "OptionDateAddedFileTime": "Use file creation date", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Library Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Camera upload path", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Parental Control", + "HeaderAccessSchedule": "Access Schedule", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Library Access", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "TitlePasswordReset": "Password Reset", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Allow media downloading", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Allow media conversion", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Zip Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Display name", + "OptionDownloadImagesInAdvance": "Download images in advance", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Thank you for supporting Emby.", + "FileReadCancelled": "The file read has been canceled.", + "FileNotFound": "File not found.", + "FileReadError": "An error occurred while reading the file.", + "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "HeaderNewApiKey": "New Api Key", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "TextEnjoyBonusFeatures": "Enjoy Bonus Features", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "To manage plugins, please use the Emby web app.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Are you sure you wish to restart Emby Server?", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Running on http port {0}", + "LabelRunningOnPorts": "Running on http port {0}, and https port {1}", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Select Path", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Metadata Manager", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Change Content Type", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Home videos & photos", + "OptionBooks": "Books", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "New name", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Rename", + "HeaderPluginInstallation": "Plugin Installation", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Price: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Thank You", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Unlock App", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Tambah Pengguna", + "HeaderEmailAddress": "E-Mail Address", + "NumLocationsValue": "{0} folders", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Example: {0}", + "LabelFileOrUrl": "File or url", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Enable debug logging", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "Rangkaian LAN", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Pangkalan Data", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "Tiada Had Umur", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Penanda", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Salin Pilihan", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/nb.json b/strings/nb.json new file mode 100644 index 0000000..72363c8 --- /dev/null +++ b/strings/nb.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Ferdig!", + "ThisWizardWillGuideYou": "Denne veiviseren vil hjelpe deg gjennom installasjonsprosessen for å sette opp Emby Server.", + "HeaderCreateYourFirstUser": "Opprett din første bruker", + "ButtonQuickStartGuide": "Hurtigstartveiledning", + "MoreUsersCanBeAddedLater": "Flere brukere kan legges til senere i Emby Server-innstillingene.", + "UserProfilesIntro": "Emby har innebygd støtte for brukerprofiler, slik at hver bruker har sine egne skjerminnstillinger, avspillingstatus og foreldrekontroll.", + "WizardCompleted": "Det er alt vi trenger for nå. Emby har begynt å skanne mediebiblioteket ditt. Ta en titt på noen av appene våre, og klikk deretter på fullfør for å vise kontrollpanelet for serveren.", + "MessagePleaseAcceptTermsOfService": "Vennligst godta vilkårene for bruk og personvernreglene før du fortsetter.", + "OptionIAcceptTermsOfService": "Jeg godtar vilkårene for bruk", + "SeeOurHwaGuide": "Se vår {0}oppstartsguide for fastvareakselerasjon{1}.", + "HeaderEmbyServerReleaseNotes": "Emby Server utgivelsesnotater", + "AllowSubtitleDownloading": "Tillat nedlasting av undertekst", + "AllowSubtitleManagement": "Tillat sletting av eksisterende undertekst filer", + "NewUserNameHelp": "Slik vil brukeren vises på serveren din.", + "ChapterMarkers": "Kapittelmarkører", + "LabelThumbnailImagesInterval": "Intervall for miniatyrbilder", + "ThumbnailImagesIntervalHelp": "Hyppigere miniatyrbilder vil resultere i en bedre opplevelse, men krever mer diskplass og tid for å lage bildene.", + "LabelAuthProvider": "Leverandør av autentisering", + "AuthProviderHelp": "Administratorer bruker alltid standard Emby-leverandøren for å sikre at du aldri er stengt ute.", + "HeaderNewUser": "Ny bruker", + "ChangeServerDisplayName": "Endre serverens visningsnavn", + "ShowAdvancedSettings": "Vis avanserte innstillinger", + "ChangingMetadataImageSettingsNewContent": "Endringer av nedlastingsinnstillinger for metadata og albumbilder vil kun påvirke nye elementer i biblioteket. For å endre metadata for allerede eksisterende elementer, må dette gjøres manuelt for hver enkelt.", + "AllowRemoteAccess": "Tillat ekstern tilkobling til denne Emby-serveren.", + "AllowRemoteAccessHelp": "Hvis deaktivert, vil alle eksterne tilkoblinger bli blokkert.", + "Alerts": "Varsler", + "LabelTrackTitleDisplay": "Innebygd sportittelvisning", + "GenerateUserFriendlyTrackTitles": "Generer brukervennlige titler ved hjelp av sporinformasjon", + "PreferOriginalTrackTitles": "Foretrekk innebygde titler", + "TrackTitleDisplayHelp": "Velg visningstittelen til innebygget lyd og undertekstspor. Å foretrekke innebygget er ikke å anbefale med mindre du manuelt behandler innebygget sporinformasjon.", + "EnableTranscodingThrottle": "Aktiver struping", + "EnableTranscodingThrottleHelp": "Emby vil dynamisk justere transkoding-hastighetsbasert for å redusere CPU utnyttelsen.", + "HeaderTypeMetadataDownloaders": "{0} metadatanedlastere", + "HeaderTypeImageFetchers": "{0} bildekilder", + "HeaderImageOptions": "Bildealternativer\n", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registrer med PayPal", + "LabelSyncTempPath": "Sti for midlertidig fil", + "LabelSyncTempPathHelp": "Angi en midlertidig mappe for pågående oppgaver. Media som skal konverteres lagres her midlertidig mens konverteringen pågår.", + "LabelCustomCertificatePath": "Tilpasset ssl-sertifikatbane", + "LabelCustomCertificatePathHelp": "Sti til en PKCS #12 fil inneholdende ett sertifikat og privat nøkkel for å aktivere TLS støtte på egen domene.", + "HeaderSetupLibrary": "Sett opp dine mediebibliotek", + "LabelTimeLimitHours": "Tidsbegrensning (timer)", + "HeaderPreferredMetadataLanguage": "Foretrukket språk for metadata", + "LabelSaveLocalMetadata": "Lagre omslagskunst i mediemapper", + "LabelSaveLocalMetadataHelp": "Lagring av omslagskunst i mediemapper vil sette bilder ved siden av mediefiler der de lett kan nås fra utenfor Emby. Hvis deaktivert, lagres bilder i serverens metadatamappe.", + "TabAccess": "Tilgang", + "HeaderDeviceAccess": "Enhetstilgang", + "OptionEnableAccessFromAllDevices": "Gi tilgang fra alle enheter", + "OptionEnableAccessToAllChannels": "Gi tilgang til alle kanaler", + "OptionEnableAccessToAllLibraries": "Gi tilgang til alle bibliotek", + "DeviceAccessHelp": "Ved å angi filter for brukerens enhetstilgang hindrer du dem fra å få tilgang fra nye enheter frem til enheten godkjennes her.", + "LabelDisplayMissingEpisodesWithinSeasons": "Vis episoder som mangler fra sesongen", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Denne må også være aktivert for TV biblioteker i Emby Server oppsett.", + "ImportMissingEpisodesHelp": "Hvis aktivert, vil informasjon om manglende episoder importeres inn i databasen og Emby vises i årstider og serier. Dette kan føre til at det vil ta betydelig lenger å scanne bibliotekene.", + "MessageEnablingOptionLongerScans": "Aktivering av dette alternativet kan føre til betydelig lengre biblioteksscanning.", + "LabelMaxParentalRating": "Maks tillatt aldersgrense", + "MaxParentalRatingHelp": "Innhold med høyere aldersgrense vil bli skjult for brukeren", + "LibraryAccessHelp": "Velg mediemappe som skal deles med denne brukren. Administrator vil ha mulighet til å endre alle mapper via metadatabehandling.", + "ChannelAccessHelp": "Velg kanaler som skal deles med denne brukeren. Administratorer har mulighet til å endre på alle kanaler via metadatabehandling.", + "ImageUploadAspectRatioHelp": "1:1 sideforhold anbefales. Kun JPG/PNG.", + "AlreadyPaidHelp1": "Hvis du allerede har betalt for å installere en eldre versjon av Media Browser for Android, trenger du ikke å betale på nytt for å aktivere dette programmet. Klikk OK for å sende oss en e-post på {0}, og vi vil få det aktivert for deg.", + "AlreadyPaidHelp2": "Har du Emby Premiere? Da kan du avbryte denne dialogen. Logg inn på web-klienten under Hjelp -> Emby Premiere og tast inn din Premiere nøkkel for å låse opp disse funksjonene.", + "TabMyPlugins": "Mine programtillegg", + "TabCatalog": "Katalog", + "HeaderAutomaticUpdates": "Automatiske oppdateringer", + "Standard": "Standard", + "TabSupporterKey": "Emby Premiere lisensnøkkel", + "OptionHideUserLocal": "Skjul denne brukeren fra innloggingsskjermen på det lokale nettverket", + "OptionHideUserRemote": "Skjul denne brukeren fra innloggingsskjermen ved ekstern tilkobling", + "OptionHideUserFromLoginHelp": "Praktisk for private eller skjulte administratorer. Brukeren vil måtte logge inn manuelt ved å skrive inn brukernavn og passord.", + "HideFromUnusedDevices": "Skjul denne brukeren fra innloggingsskjermene på enheter de aldri har logget inn på", + "OptionDisableUser": "Deaktiver denne brukeren", + "OptionDisableUserHelp": "Hvis avslått vil ikke serveren godta noen tilkoblinger fra denne brukeren. Eksisterende tilkoblinger vil avsluttes umiddelbart.", + "OptionAllowUserToManageServer": "TIllatt denne brukeren å administrere serveren", + "HeaderFeatureAccess": "Funksjonstilgang", + "OptionAllowMediaPlayback": "Tillate avspilling av media", + "AllLibraries": "Alle biblioteker", + "HeaderAllowMediaDeletionFrom": "Tillat sletting av media fra", + "LiveTVRecordingManagement": "Administrasjon av direkte TV-opptak", + "OptionAllowRemoteControlOthers": "Tillat fjernstyring av andre brukere", + "OptionAllowRemoteSharedDevices": "Tillate fjernstyring av delte enheter", + "OptionAllowRemoteSharedDevicesHelp": "DLNA-enheter betraktes som delte inntil en bruker begynner å styre dem.", + "OptionAllowLinkSharing": "Tillat deling på sosiale media", + "OptionAllowLinkSharingHelp": "Bare websider som inneholder medieinformasjon blir delt . Mediefiler blir aldri delt offentlig. Delt innhold er tidsbegrenset og utløper etter {0} dager.", + "OptionRelease": "Offisiell utgivelse", + "LabelAllowServerAutoRestartPlugin": "Tillat at serveren omstartes automatisk for å gjennomføre oppdateringer av programtillegg.", + "LabelAllowServerAutoRestartServerOrPlugin": "Tillat at serveren omstartes automatisk for å gjennomføre oppdateringer av server eller programtillegg.", + "LabelAllowServerAutoRestartHelp": "Serveren vil kun startes på nytt i inaktive perioder, når ingen brukere er aktive.", + "LabelRunServerAtStartup": "Kjør server ved oppstart", + "LabelRunServerAtStartupHelp": "Dette vil starte Emby-ikonet ved oppstart av Windows. Hvis du har konfigurert en Windows-tjeneste, lar du dette være umerket og konfigurerer tjenesten til å kjøre ved oppstart.", + "ButtonSelectDirectory": "Velg mappe", + "LabelCachePath": "Buffer sti", + "DefaultMetadataLangaugeDescription": "Dette er standardverdiene dine, og kan tilpasses per bibliotek.", + "LabelCachePathHelp": "Angi en egendefinert plassering for server cache-filer, for eksempel bilder. La stå tomt for å bruke serveren standard.", + "LabelDefaultRecordingFolder": "Standard opptaksmappe", + "LabelMovieRecordingFolder": "Mappe for filmopptak", + "LabelSeriesRecordingFolder": "Mappe for serieopptak", + "SeriesRecordingFolderHelp": "(Valgfritt). Velg et bibliotek som du vil lagre serieopptak i. Dette må være et bibliotek du har opprettet i Emby-bibliotekoppsettet med innholdstypen satt til TV-programmer eller blandet innhold.", + "HeaderProgramData": "Programdata", + "RecordingFolderHelp": "Velg standardbiblioteket du vil lagre opptak i. Dette må være et bibliotek du har opprettet i Emby-bibliotekoppsettet med innholdstypen satt til blandet innhold.", + "MovieRecordingFolderHelp": "(Valgfritt). Velg et bibliotek du vil lagre filmopptak i. Dette må være et bibliotek du har opprettet i Emby-bibliotekoppsettet med innholdstypen satt til filmer eller blandet innhold.", + "LabelMetadataPath": "Metadatasti", + "LabelMetadataPathHelp": "Spesifiser en tilpasset plassering for nedlastet grafikk og metadata, eller blank dette for å tilbakestille til standardinnstillingene. Hvis dette forandres, vil du trenge å manuelt flytte innholdet fra den gamle plasseringen til den nye. Hvis du noensinne manuelt endrer innholdet i metadatamappen, trenger du å kjøre {0}skann metadatamappe planlagt oppgave{1}.", + "LabelTranscodingTempPath": "Sti for midlertidig transkoding", + "LabelTranscodingTempPathHelp": "Denne mappen inneholder fungerende filer som blir brukt av transkoderen. Spesifiser en tilpasset sti eller la det stå tomt for å benytte serverens standard sti.", + "GenerateVideoPreviewThumbnailsHelp": "Miniatyrbilder av forhåndsvisning av video gir direkte oppdateringer mens du søker i støttede apper. Miniatyrgenerering kan ta lang tid, forårsake høy CPU-bruk og bruke ekstra diskplass.", + "AsAScheduledTask": "som en planlagt oppgave", + "AsAScheduledTaskAndMediaAdded": "som en planlagt oppgave og når media blir lagt til", + "ButtonRefreshGuideData": "Oppdater Guide Data", + "LabelNumberOfGuideDays": "Antall dager av TV Guide-data som skal lastes ned", + "LabelNumberOfGuideDaysHelp": "Nedlasting av flere dager med TV Guide-data gir muligheten til å planlegge ytterligere på forhånd og se flere oppføringer, men det vil også ta lengre tid å laste ned. Auto vil velge basert på antall kanaler. Vær oppmerksom på at uansett hvor mange dager du velger, må dataene finnes i kildeguidedataene for at de skal lastes ned. Noen TV Guide-datakilder gir bare 24 timer. Emby Guide Data støtter opptil 14 dager.", + "HeaderFetchImages": "Hent bilder", + "LabelMaxBackdropsPerItem": "Maksimalt antall bakgrunner per element", + "LabelMaxScreenshotsPerItem": "Maksimalt antall skjermbilder per element", + "LabelMinBackdropDownloadWidth": "Minimum bredde for nedlastet bakgrunn", + "LabelMinScreenshotDownloadWidth": "Minimum bredde for nedlastet skjermbilde", + "ButtonAddScheduledTaskTrigger": "Legg til utløser", + "ButtonAdd": "Legg til", + "LabelTriggerType": "Utløsertype:", + "OptionOnInterval": "På intervall", + "OptionAfterSystemEvent": "Etter systemhendelse", + "LabelDay": "Dag", + "LabelTime": "Tid", + "LabelEvent": "Hendelse", + "OptionWakeFromSleep": "Våkne fra dvale", + "Every": "Hver", + "LabelEnableRealtimeMonitor": "Aktiver overvåking i sanntid", + "LabelEnableRealtimeMonitorHelp": "Filendringer vil prosesseres umiddelbart, på støttede filsystemer.", + "Community": "Samfunn", + "HeaderEmbyNews": "Emby Nyheter", + "LabelFriendlyServerName": "Vennlig servernavn", + "LabelFriendlyServerNameHelp": "Dette navnet vil bli brukt for å identifisere denne serveren. Hvis feltet er tomt, vil maskinens navn bli brukt.", + "LabelPreferredDisplayLanguage": "Foretrukket visningsspråk", + "LabelPreferredDisplayLanguageHelp": "Oversettelse av Emby er et pågående prosjekt.", + "LabelReadHowYouCanContribute": "Lær hvordan du kan bidra", + "LabelCustomCss": "Egendefinert CSS", + "LabelCustomCssHelp": "Bruk din egen CSS på web-grensesnittet.", + "LabelLocalHttpServerPortNumber": "Lokal http-portnummer", + "LabelLocalHttpServerPortNumberHelp": "TCP-portnummeret som Emby sin http server skal koble seg til.", + "LabelPublicHttpPort": "Offentlig http-portnummer", + "LabelPublicHttpPortHelp": "Det offentlige portnummeret som skal tilordnes den lokale http-porten.", + "LabelPublicHttpsPort": "Offentlig https-portnummer", + "LabelPublicHttpsPortHelp": "Det offentlige portnummeret som skal tilordnes den lokale https-porten.", + "RequireHttps": "Krev https for eksterne tilkoblinger", + "RequireHttpsHelp": "Hvis aktivert, vil http-tilkoblinger videresendes til https.", + "LabelHttpsPort": "Lokal https-portnummer", + "LabelHttpsPortHelp": "TCP-portnummeret som Emby sin https server skal koble seg til.", + "LabelEnableAutomaticPortMap": "Aktiver automatisk porttilordning", + "LabelEnableAutomaticPortMapHelp": "Forsøk å tilordne den offentlige porten til den lokale porten automatisk via UPnP. Dette fungerer kanskje ikke med enkelte rutermodeller.", + "LabelExternalDDNS": "Eksternt domene", + "LabelExternalDDNSHelp": "Hvis du har en dynamisk DNS eller domenenavn angir du dette her. Emby-appene bruker dette ved ekstern tilkobling. Ikke ta med portnummer og protokoll.\nDette feltet er påkrevd hvis du har et eget SSL-sertifikat.\nEksempel: mittdomene.com", + "LabelMinResumePercentage": "Minimum fortsettelsesprosent", + "LabelMaxResumePercentage": "Maksimum fortsettelsesprosent", + "LabelMinResumeDuration": "Minimum fortsettelsesvarighet (sekunder)", + "LabelMinResumePercentageHelp": "Titler blir antatt som ikke avspilt hvis de stopper før denne tiden", + "LabelMaxResumePercentageHelp": "Titler blir antatt som fullstendig avspilt hvis de stopper etter denne tiden", + "LabelMinResumeDurationHelp": "Titler kortere enn dette kan ikke fortsettes.", + "HeaderStatus": "Status", + "Subscriptions": "Abonnementer", + "LabelEndingEpisodeNumber": "Episodenummer for sesongfinale", + "LabelEndingEpisodeNumberHelp": "Bare nødvendig for filer med flere episoder", + "HeaderSupportTheTeam": "Støtt Emby teamet!", + "HeaderSupportTheTeamHelp": "Bidra til å sikre fortsatt utvikling av dette prosjektet ved å kjøpe Emby Premiere. En del av alle inntektene vil bli også bidratt til andre gratisverktøy vi er avhengige av.", + "DonationNextStep": "Når du er ferdig, kan du gå tilbake og skriv inn Emby Premiere nøkkel, som du vil motta per e-post.", + "HeaderRunningTasks": "Kjørende oppgaver", + "ButtonUpdateNow": "Oppdater nå", + "PleaseUpdateManually": "Vennligst avslutt Emby Server og installer den nyeste versjonen.", + "ServerUpToDate": "Emby Server er oppdatert til nyeste versjon", + "MessagePleaseRestartServerToFinishUpdating": "Vennligst start serveren på nytt for å fullføre installasjon av oppdateringer.", + "LabelDownMixAudioScale": "Lydforsterkning ved nedmiksing", + "LabelDownMixAudioScaleHelp": "Forsterk lyd ved nedmiksing. Angi verdien 1 for ikke å justere volum.", + "HeaderForgotKey": "Glemt nøkkel", + "LabelSupporterEmailAddress": "Epostadressen som ble brukt for å kjøpe nøkkelen.", + "ButtonRetrieveKey": "Hent nøkkel", + "LabelSupporterKey": "Emby Premiere-nøkkel (lim inn fra e-post)", + "LabelSupporterKeyHelp": "Angi din Emby Premiere nøkkel, slik at du kan få tilgang til flere fordeler.", + "MessageInvalidKey": "Emby Premiere nøkkel mangler eller er ugyldig", + "ErrorMessageInvalidKey": "For at eventuelt premiuminnhold registreres, må du også ha et aktivt Emby Premiere abonnement.", + "LabelSkipIfGraphicalSubsPresent": "Hopp over hvis videoen allerede inneholder innebygde undertekster som samsvarer med nedlastingsspråket", + "LabelSkipIfGraphicalSubsPresentHelp": "Å beholde tekstversjoner av undertekster vil resultere i mer effektiv levering og redusere sannsynligheten for transkoding av video.", + "HeaderDownloadLanguages": "Last ned språk", + "LabelSkipIfAudioTrackPresent": "Hopp over hvis lydsporet allerede er på angitt språk", + "LabelSkipIfAudioTrackPresentHelp": "Fjern merkingen for å sikre at alle videoene har undertekster, uavhengig av lydspråk.", + "SendMessage": "Send melding", + "HeaderSendMessage": "Send Melding", + "ButtonSend": "Send", + "LabelMessageText": "Meldingstekst", + "LabelMessageTitle": "Meldingstittel", + "ButtonEditOtherUserPreferences": "Endre denne brukeren sin profilbilde og personlige innstillinger.", + "LabelLoginDisclaimer": "Ansvarsfraskrivelse for pålogging", + "LabelLoginDisclaimerHelp": "Dette vil vises nederst på påloggingssiden.", + "HeaderTranscodingTemporaryFiles": "Omkoding av midlertidige filer", + "HeaderApiKeys": "Api-nøkler", + "HeaderApiKeysHelp": "Eksterne programmer er pålagt å ha en API-nøkkel for å kunne kommunisere med Emby Server. Nøklene er utstedt ved å logge på med en Embykonto, eller ved å manuelt gi programmet en nøkkel.", + "HeaderApiKey": "API-nøkkel", + "HeaderResumeSettings": "Fortsett Innstillinger", + "HeaderFetcherSettings": "Innstillinger for henting", + "HeaderActivity": "Aktivitet", + "ButtonPurchase": "Kjøp", + "HeaderInstall": "Installer", + "LabelSelectVersionToInstall": "Velg versjon du vil installere", + "LinkLearnMoreAboutSubscription": "Lær om Emby Premiere", + "MessagePluginRequiresSubscription": "Dette programtillegget vil kreve et aktivt Emby Premiere abonnement etter den 14 dagers gratis prøveperioden.", + "MessagePremiumPluginRequiresMembership": "Dette tillegget vil kreve et aktivt Emby Premiere abonnement for å kunne kjøpes også etter den 14 dagers prøveperiode.", + "HeaderDeveloperInfo": "Utviklerinformasjon", + "HeaderRevisionHistory": "Revisjonshistorikk", + "ButtonViewWebsite": "Vis nettsted", + "OptionSaveMetadataAsHidden": "Lagre metadata og bilder som skjulte filer", + "LabelConnectEmail": "(Valgfritt) Emby Connect e-postadresse", + "LabelConnectEmailHelp": "Du kan eventuelt koble denne lokale brukeren til en eksisterende Emby Connect-konto for å muliggjøre enkel påloggingstilgang fra en hvilken som helst Emby-app uten å måtte kjenne serverens IP-adresse.", + "ButtonLearnMoreAboutEmbyConnect": "Lær mer om Emby Connect", + "LabelDateAddedBehavior": "Dato lagt til atferd for nytt innhold", + "OptionDateAddedImportTime": "Bruk dato skannet inn til biblioteket", + "OptionDateAddedFileTime": "Bruk filopprettelsesdato", + "LabelDateAddedBehaviorHelp": "Hvis metadata verdier er tilgjengelig vil de alltid bli brukt fremfor noen av disse valgene.", + "HeaderLibrarySettings": "Innstillinger for bibliotek", + "HeaderAutomaticSubtitleDownloads": "Automatisk nedlasting av undertekster", + "HeaderCameraUploadHelp": "Emby-apper kan automatisk laste opp bilder tatt fra dine mobile enheter til Emby Server.", + "LabelCameraUploadPath": "Sti for kameraopplasting", + "LabelCameraUploadPathHelp": "Velg en egendefinert opplastingssti. Dette vil overstyre eventuelle standardinnstillinger som er angitt i delen kameraopplasting. Hvis den er tom, brukes en standardmappe. Hvis du bruker en egendefinert sti, må den også legges til som et bibliotek i Emby-bibliotekoppsett.", + "DefaultCameraUploadPathHelp": "Velg en egendefinert opplastingssti. Hvis den er tom, brukes en standardmappe. Hvis du bruker en egendefinert sti, må den også legges til som et bibliotek i Emby-bibliotekoppsett.", + "LabelCreateCameraUploadSubfolder": "Lag en undermappe for hver enhet", + "LabelCreateCameraUploadSubfolderHelp": "Spesifikke mapper kan tildeles en enhet ved å klikke på den fra Enhets-siden.", + "LabelCustomDeviceDisplayNameHelp": "Oppgi et egendefinert visningsnavn eller la det være tomt for å bruke navnet som enheten rapporterer.", + "TabParentalControl": "Foreldrekontroll", + "HeaderAccessSchedule": "Tilgangsplan", + "HeaderAccessScheduleHelp": "Lag en tilgangsplan for å begrense tilgangen til visse tider.", + "HeaderLibraryAccess": "Tilgang til bibliotek", + "HeaderChannelAccess": "Tilgang til kanal", + "LabelForgotPasswordUsernameHelp": "Skriv inn ditt brukernavn, hvis du husker det.", + "TitlePasswordReset": "Tilbakestill passord", + "HeaderBlockItemsWithNoRating": "Blokker elementer med ingen eller ukjent vurderingsinformasjon", + "LabelBlockContentWithTags": "Begrens elementer med tagger", + "LabelTagRestrictionMode": "Modus for taggbegrensning", + "BlockItemsWithTheseTags": "Blokker elementer med disse taggene", + "AllowItemsWithTheseTags": "Tillat kun elementer med disse taggene", + "OptionAllowContentDownloading": "Tillat medienedlasting", + "LabelNewUserNameHelp": "Brukernavn kan inneholde bokstaver (a-z), tall (0-9), bindestreker (-), understrekingstegn (_), apostrofer (') og punktum (.)", + "HeaderThisUserIsCurrentlyDisabled": "Denne brukeren er deaktivert. For å aktivere denne brukeren, vennligst se alternativet nederst på denne siden.", + "OptionAllowSyncTranscoding": "Tillat medienedlasting som krever omkoding", + "AllowMediaConversion": "Tillat konvertering av media", + "AllowMediaConversionHelp": "Tillatt eller forby tilgang til å konvertere media", + "OptionAllowAudioPlaybackTranscoding": "Tillat lydavspilling som krever transkoding. Hvis nødvendig, under medieavsplling", + "OptionAllowVideoPlaybackTranscoding": "Tillat filmavspilling som krever transkoding, hvis nødvendig, under medieavspilling", + "OptionAllowVideoPlaybackRemuxing": "Tillat endring av konteinerformater, hvis nødvendig, under medieavspilling", + "OptionAllowMediaPlaybackTranscodingHelp": "Begrense tilgang til transkoding vil deaktivere kvalitetsvalg og kan forårsake avspillingsfeil i Emby programmer grunnet ustøttede mediaformater eller utilstrekkelig nettverksbåndbredde.", + "LabelRemoteClientBitrateLimit": "Bithastighetsgrense for Internett-strømming (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "En valgfri bithastighetsgrense per strøm for alle enheter utenfor nettverket. Dette er nyttig for å forhindre at enheter ber om en høyere bithastighet enn internettforbindelsen din kan håndtere. Dette kan resultere i økt CPU-belastning på serveren din for å omkode videoer på farten til en lavere bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "Dette vil overstyre standardverdien i avanserte serverinnstillinger.", + "OptionEnableFullSpeedConversion": "Aktiver full hastighetskonvertering", + "OptionEnableFullSpeedConversionHelp": "Som standard blir konverteringer utført ved en lav hastighet for å minimere ressursforbruk.", + "OptionEnableAutomaticServerUpdates": "Aktiver automatiske serveroppdateringer", + "HeaderTVSources": "TV-kilder", + "HeaderAddTvSource": "Legg til TV-kilde", + "LabelTunerIpAddress": "Mottaker IP-adresse", + "HeaderGuideProviders": "TV Guide-leverandører", + "HeaderAddGuideSource": "Legg til TV Guide-kilde", + "LabelZipCode": "Postkode", + "LabelLineup": "Oppstilling", + "LabelImportOnlyFavoriteChannels": "Begrens til kanaler som er merket som favoritt", + "ImportFavoriteChannelsHelp": "Hvis aktivert, blir kun kanaler som er mekret som favoritt på mottakerenheten bli importert.", + "HeaderDefaultRecordingSettings": "Standard opptaksinnstillinger", + "LabelDisplayName": "Visningsnavn", + "OptionDownloadImagesInAdvance": "Last ned bilder på forhånd", + "OptionDownloadImagesInAdvanceHelp": "Som standard lastes de fleste bilder ikke ned fra internett før de vises av en Emby-app. Aktiver dette alternativet for å laste ned alle bildene på forhånd, etter hvert som nye medier importeres. Dette kan føre til betydelig lengre bibliotekskanninger.", + "MessageThankYouForSupporting": "Takk for at du støtter Emby.", + "FileReadCancelled": "Lesing av filen kansellert.", + "FileNotFound": "Fil ikke funnet", + "FileReadError": "Feil oppstod i det filen ble lest", + "NoPluginConfigurationMessage": "Dette programtillegget har ingen alternativer å konfigurere.", + "HeaderNewApiKey": "Ny Api-nøkkel", + "HeaderNewApiKeyHelp": "Gi applikasjonen tillatelse til å kommunisere med Embyserveren.", + "MessageKeyEmailedTo": "Nøkkel sendt til {0}", + "HeaderConfirmation": "Bekreftelse", + "MessageKeyUpdated": "Takk. Din Emby Premiere nøkkel har blitt oppdatert.", + "MessageKeyRemoved": "Takk. Din Emby Premiere nøkkel har blitt fjernet.", + "TextEnjoyBonusFeatures": "Nyt bonusfunksjonene", + "MessageErrorLoadingSupporterInfo": "Det skjedde en feil under lasting av Emby Premiere informasjon. Vennligst prøv igjen senere.", + "ValueTimeLimitSingleHour": "Tidsgrense: 1 time", + "ValueTimeLimitMultiHour": "Tidsgrense: {0} timer", + "General": "Generelt", + "HeaderScreenSavers": "Skjermsparere", + "Reporting": "Rapportering", + "LabelStopping": "Stopper", + "HeaderSelectCertificatePath": "Velg sti for sertifikat:", + "HeaderSupporterBenefit": "Et aktivt Emby Premiere abonnement tilbyr ekstra fordeler som tilgang til Emby DVR, offline media, premium programtillegg og mer. {0} Lær mer {1}.", + "LabelAbortedByServerShutdown": "(Avbrutt av serveravslutning)", + "LabelScheduledTaskLastRan": "Sist kjørt {0}, tok {1}.", + "HeaderDeleteTaskTrigger": "Slett oppgaveutløser", + "MessageDeleteTaskTrigger": "Er du sikker på at du vil slette denne oppgaveutløseren?", + "MessageNoPluginsDueToAppStore": "For å administrere programtillegg, vennligst bruk Emby webapp.", + "LabelVersionInstalled": "{0} installert", + "HeaderSelectServerCachePath": "Velg serverbuffersti", + "HeaderSelectTranscodingPath": "Velg sti for midlertidig transkoding", + "HeaderSelectMetadataPath": "Velg sti for metadata", + "HeaderSelectServerCachePathHelp": "Bla etter eller skriv stien som skal brukes for serverbufferfiler. Mappen må være skrivbar.", + "HeaderSelectTranscodingPathHelp": "Bla etter eller skriv stien som skal brukes for transkoding av midlertidige filer. Mappen må være skrivbar.", + "HeaderSelectMetadataPathHelp": "Bla eller skriv stien som skal brukes for metadata. Mappen må være skrivbar.", + "MessageConfirmRestart": "Er du sikker på at du vil starte Emby Server på nytt?", + "MessageConfirmShutdown": "Er du sikker på at du vil avslutte Emby Server?", + "LabelLocalAccessUrl": "Hjemmenettverk (LAN) tilgang: {0}", + "LabelRemoteAccessUrl": "Fjerntilgang (WAN) : {0}", + "LabelRunningOnPort": "Kjører på http-port {0}", + "LabelRunningOnPorts": "Kjører på http-port {0} og https-port {1}", + "LabelCurrentPath": "Nåværende sti", + "HeaderSelectMediaPath": "Velg mediasti", + "HeaderSelectPath": "Velg sti", + "MessageDirectoryPickerInstruction": "Nettverksbaner kan angis manuelt i tilfelle nettverksknappen ikke finner enhetene dine. For eksempel {0} eller {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD må du kanskje konfigurere lagring i FreeNAS Jail for å la Emby få tilgang til det.", + "MessageDirectoryPickerLinuxInstruction": "For Linux på Arch Linux, CentOS, Debian, Fedora, OpenSuse eller Ubuntu, må du gi Emby-systembrukeren minst lesetilgang til lagringsstedene dine.", + "MetadataManager": "Metadatabehandler", + "OptionBlockLiveTvChannels": "Direkte TV-kanaler", + "OptionBlockChannelContent": "Innhold fra Internettkanal", + "ButtonRevoke": "Tilbakekall", + "MessageConfirmRevokeApiKey": "Er du sikker på at du vil oppheve denne API-nøkkelen? Applikasjonens tilkobling til serveren vil bli brått avsluttet.", + "HeaderConfirmRevokeApiKey": "Tilbakekall API-nøkkel", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Vennligst aksepter tjenestevilkårene før du fortsetter.", + "HeaderChangeFolderType": "Endre innholdstype", + "HeaderChangeFolderTypeHelp": "For å endre typen, må du fjerne og gjenoppbygge biblioteket med den nye typen.", + "HeaderAlert": "Varsling", + "MessagePleaseRestart": "Vennligst utfør en omstart for å fullføre oppdatering.", + "OptionHomeVideos": "Hjemmevideoer og bilder", + "OptionBooks": "Bøker", + "HeaderMetadataReaders": "Metadatalesere", + "LabelMetadataReadersHelp": "Aktiver og ranger dine foretrukne lokale metadatakilder i prioritert rekkefølge.", + "HeaderSubtitleDownloaders": "Undertekstnedlastere", + "SubtitleDownloadersHelp": "Aktiver og ranger dine foretrukne undertekstnedlastere i stigende prioritet. Flere underteksttilbydere kan installeres via Emby programtilleggkatalogen.", + "LabelMetadataDownloaders": "Metadatanedlastere", + "LabelMetadataDownloadersHelp": "Aktiver og ranger dine foretrukne metadatanedlastere i prioritert rekkefølge. Nedlastere med lavere prioritet vil bare bli brukt til å fylle ut manglende informasjon.", + "HeaderMetadataSavers": "Behandlere av metadata", + "LabelMetadataSaversHelp": "Velg filformatene dine metadata skal lagres til.", + "LabelImageFetchers": "Bildekilder", + "LabelImageFetchersHelp": "Aktiver og ranger dine foretrukne bildekilder i prioritert rekkefølge.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Fjern medieplassering", + "MessageConfirmRemoveMediaLocation": "Er du sikker på at du vil slette denne plasseringen?", + "LabelNewName": "Nytt navn", + "HeaderRemoveLibrary": "Fjern bibliotek", + "MessageAreYouSureYouWishToRemoveLibrary": "Er du sikker på at du ønsker å fjerne {0}-biblioteket fra Emby Server? Mediefilene dine påvirkes ikke.", + "ButtonRename": "Gi nytt navn", + "HeaderPluginInstallation": "Installasjon av programtillegg", + "MessageTrialExpired": "Prøveperioden for denne funksjonen er utløpt", + "MessageTrialWillExpireIn": "Prøveperioden for denne funksjonen utløper om {0} dag (er)", + "ValuePriceUSD": "Pris: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Du er registrert for denne funksjonen, og vil være i stand til å fortsette å bruke den med et aktivt Emby Premiere abonnement.", + "HeaderSelectExternalPlayer": "Velg ekstern avspiller", + "HeaderExternalPlayerPlayback": "Ekstern avspilling", + "HeaderThankYou": "Takk", + "HeaderSelectUploadPath": "Velg opplastingssti", + "ErrorMessageStartHourGreaterThanEnd": "Sluttid må være senere enn starttid.", + "MessagePluginConfigurationRequiresLocalAccess": "Logg inn på din lokale server direkte for å konfigurere dette programtillegget.", + "MovieLibraryHelp": "Les {0}Emby-filmnavnguiden{1}.", + "TvLibraryHelp": "Se gjennom {0}Emby TV-navneguide{1}.", + "BookLibraryHelp": "Lydbøker er støttet. Gå gjennom {0} Emby-lydboknavngivningsguide {1}.", + "MessageGamePluginRequired": "Forutsetter at programtillegget GameBrowser er installert", + "HeaderUnlockApp": "Lås opp appen", + "MessagePaymentServicesUnavailable": "Betalingstjenester er fortiden utilgjengelig. Vennligst prøv igjen på et senere tidspunkt.", + "NoNewDevicesFound": "Ingen nye enheter funnet. For å legge til en ny mottaker, lukk denne dialogboksen og skriv inn enhetens informasjon manuelt.", + "MessageConfirmDeleteTunerDevice": "Er du sikker på at du vil slette denne enheten?", + "MessageConfirmDeleteGuideProvider": "Er du sikker på at du vil slette denne TV Guide-leverandøren?", + "HeaderDeleteProvider": "Slett leverandør", + "ErrorAddingTunerDevice": "Det oppstod en feil under tilføying av mottakerenheten. Sørg for at den er tilgjengelig, og prøv på nytt.", + "ErrorSavingTvProvider": "Det oppstod en feil under lagring av TV-leverandøren. Sørg for at den er tilgjengelig, og prøv på nytt.", + "ErrorGettingTvLineups": "Det oppstod en feil under nedlasting av TV-oppsett. Kontroller at informasjonen din er korrekt og prøv igjen.", + "MessageCreateAccountAt": "Opprett en konto på {0}", + "ErrorPleaseSelectLineup": "Velg et oppsett og prøv igjen. Hvis ingen oppsett er tilgjengelige, vennligst sjekk at brukernavn, passord og postnummer er riktig.", + "ErrorValidatingSupporterInfo": "Det oppstod en feil under validering av din Emby Premiere informasjon. Vennligst prøv igjen senere.", + "LabelLocalSyncStatusValue": "Status {0}", + "HeaderTopPlugins": "Topp programtillegg", + "ForAdditionalLiveTvOptions": "Bla gjennom Emby {0} katalogen{1} over programtillegg for å installere valgfrie direkte TV-tilbydere.", + "AddUser": "Legg til bruker", + "HeaderEmailAddress": "E-postadresse", + "NumLocationsValue": "{0} mapper", + "PleaseAddAtLeastOneFolder": "Vennligst legg til minst en mappe ved å trykke på Legg til knappen.", + "ErrorAddingMediaPathToVirtualFolder": "Det oppstod en feil å legge mediebanen . Sørg for at banen er gyldig og Emby Server prosessen har tilgang til stedet.", + "ErrorAddingEmbyConnectAccount3": "Emby-kontoen er allerede koblet til en eksisterende lokal bruker. En Emby-konto kan bare kobles til en lokal bruker om gangen.", + "HeaderConfirmPluginInstallation": "Bekreft Installasjon av programtillegg", + "PleaseConfirmPluginInstallation": "Klikk på OK for å bekrefte at du har lest ovenfor og ønsker å fortsette med installasjonen.", + "MessagePluginInstallDisclaimer": "Programtillegg bygget av Emby-fellesskapsmedlemmer er en fin måte å forbedre Emby-opplevelsen din med tilleggsfunksjoner og fordeler. Før du installerer, må du være oppmerksom på effektene de kan ha på Emby Server, for eksempel lengre biblioteksskanninger, ekstra bakgrunnsbehandling og redusert systemstabilitet.", + "HardwareAccelerationWarning": "Aktivering av maskinvareakselerasjon kan føre til ustabilitet i enkelte miljøer. Sørg for at operativsystemet og skjermdriverne dine er fullt oppdatert. Hvis du har problemer med å spille videoer etter å ha aktivert dette, må du endre innstillingen tilbake til Auto.", + "ValueExample": "Eksempel: {0}", + "LabelFileOrUrl": "Fil eller URL", + "OptionEnableForAllTuners": "Aktiver for alle mottakerenheter", + "HeaderTuners": "Mottakere", + "DrmChannelsNotImported": "Kanaler med DRM vill ikke bli importert.", + "LabelAllowHWTranscoding": "Tillat maskinvaretranskoding", + "AllowHWTranscodingHelp": "Hvis aktivert, vil mottakeren konvertere strømmer fortløpende. Dette kan bidra til å redusere transkoding som kreves av Emby Server.", + "MetadataSettingChangeHelp": "Endring av metadatainnstillinger vil påvirke nytt innhold som legges til fremover. Hvis du vil oppdatere eksisterende innhold, åpner du detaljskjermen og klikker oppdater-knappen, eller utfører masseoppdateringer ved hjelp av metadatabehandleren.", + "RecordingPathChangeMessage": "Endre opptaksmappe vil ikke migrere eksisterende opptak fra den gamle plasseringen til den nye. Du må flytte dem manuelt hvis ønskelig.", + "LabelLocalIpAddress": "Lokal IP-adresse", + "LabelBindToLocalNetworkAddressHelp": "Valgfritt. Overstyr den lokale IP-adressen som Emby vil presentere til Emby appene. Hvis blank, serveren vil automatisk oppdage den lokale IP-adressen.", + "SettingsWarning": "Endring av disse verdiene kan føre til ustabilitet eller tilkoblingsfeil. Hvis du opplever problemer, anbefaler vi endre dem tilbake til standard verdiene.", + "OptionSaveMetadataAsHiddenHelp": "Endring av denne vil gjelde for nye metadata lagret i tiden fremover. Eksisterende metadatafiler blir oppdatert neste gang de blir lagret av Emby Server.", + "EnablePhotos": "Aktiver bilder", + "EnablePhotosHelp": "Bilder vil bli oppdaget og vises sammen med andre mediefiler .", + "ImportPlaylists": "Importer spillelistefiler", + "ImportPlaylistsHelp": "Spillelister oppdaget i dine media mapper kan bli importert til Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Lagre miniatyrbilder av forhåndsvisning av video i mediemapper", + "LabelGenerateVideoPreviewThumbnails": "Generer miniatyrbilder av forhåndsvisning av video", + "LabelEnableDebugLogging": "Aktiver logging av feilsøking", + "OptionEnableExternalContentInSuggestions": "Aktiver eksternt innhold i forslag", + "OptionEnableExternalContentInSuggestionsHelp": "Tillat at Internett-trailere og direkte TV-programmer inkluderes i foreslått innhold.", + "LabelOptionalNetworkPath": "(Valgfritt) delt nettverksmappe", + "LabelOptionalNetworkPathHelp": "Hvis denne mappen deles på nettverket ditt, kan levering av nettverksdelingsbanen tillate Emby-apper på andre enheter å få tilgang til mediefiler direkte.", + "SynologyUpdateInstructions": "Logg inn på DSM og gå til Package Center for å oppdatere.", + "HeaderRecordingPostProcessing": "Etterbehandling av opptak", + "LabelPostProcessorArguments": "Kommandolinjeargumenter etterbehandling", + "PostProcessorArgumentsHelp": "Følgende variabler støttes i kommandolinjen for å tillate overføring av data til etterbehandleren", + "LabelPostProcessor": "Etterbehandlingsapplikasjon", + "DvrPostProcessorPathArgument": "{path}: Komplett sti til den nye opptaksfilen", + "OptionAutomaticallyGroupSeries": "Fusjoner automatisk serier som er spredt ut over flere mapper", + "OptionAutomaticallyGroupSeriesHelp": "Hvis aktivert, vil serier som er spredt over flere mapper innenfor dette biblioteket bli automatisk slått sammen til en enkelt serie.", + "WhenDidYouPurchaseApp": "Når kjøpte du denne applikasjonen?", + "PreferEmbeddedTitlesOverFileNames": "Foretrekk innebygde titler over filnavn", + "PreferEmbeddedTitlesOverFileNamesHelp": "Dette bestemmer standard visningstittel når ingen metadata eller lokale metadata er tilgjengelige.", + "FriendlyNameForReferenceHelp": "Ett vennlig navn brukt for visning, for din egen referanse.", + "HeaderLiveTvTunerSetup": "Oppsett av direkte TV-mottaker", + "HeaderTVSourceSetup": "Oppsett av TV-kilde", + "HeaderDetectMyDevices": "Oppdag enheter", + "MessagePleaseWait": "Vennligst vent. Dette kan ta et minutt.", + "DetectingDevices": "Oppdager enheter", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Etter den første importen oppdateres metadataene automatisk fra Internett.", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Oppdater metadata automatisk for episoder med plassholdertitler som TBA", + "EveryNDays": "Hver {0} dag", + "LabelCertificatePassword": "Passord for sertifikat", + "LabelCertificatePasswordHelp": "Hvis sertifikatet ditt krever et passord, vennligst skriv det inn her.", + "HeaderNewLibrary": "Nytt bibliotek", + "HttpsRequiresCert": "For å aktivere sikre tilkoblinger, trenger du å forsyne et betrodd SSL sertifikat, slik som Lets Encrypt. Vennligst enten oppgi et sertifikat, eller deaktiver sikre tilkoblinger.", + "ServerRestartNeededAfterPluginInstall": "Emby server trenger en omstart etter installasjon av et programtillegg.", + "PluginInstalledMessage": "Programtillegget er installert. Emby Server må startes på nytt for at endringer skal tre i kraft.", + "MessagePremiereStatusGood": "Du har en {0} Emby Premiere plan og antall enheter i bruk er vel innenfor grensen din.", + "MessagePremiereStatusClose": "Du har en {0} Emby Premiere plan, men antall enheter i bruk nærmer seg grensen.", + "MessagePremiereExtendedPlans": "Vurder en {0}utvidet enhetsplan{1}", + "MessagePremiereStatusOver": "Du har en {0} Emby Premiere plan, men du er over grensen på antall enheter!", + "ListItemPremiereSub": "{0} abonnement kjøpt via {2} utløper {1}", + "LabelClickToManage": "Klikk for å administrere dette abonnementet", + "LabelCancelInfo": "Du kan behandle dette abonnementet direkte med {0}", + "LabelAlreadyCanceled": "Abonnementet er kansellert. Nøkkel forblir gyldig inntil utløpsdato.", + "HeaderCancelSub": "Avbryt Emby Premiere", + "MessageConfirmSubCancel": "NEI, vennligst ikke gå...Du vil gå glipp av alle de flotte funksjonene inkludert med Emby Premiere!", + "ButtonCancelSub": "Jeg vet, avbryt det allikevel", + "ButtonDontCancelSub": "Behold Emby Premiere", + "MessageSubCancelReqSent": "En e-post har blitt sendt til eieren av nøkkelen. Vennligst følg instruksjonene i e-posten for å ferdigstille oppsigelsen av dette abonnementet. Vi håper å se deg tilbake snart!", + "MessageSubCancelError": "Noe gikk galt under prosessen med å avbryte. Vennligst send en e-post til {0} og vi vil få det oppklart.", + "LabelAlreadyCancelled": "Abonnementet har blitt sagt opp. Du vil ikke bli belastet igjen og funksjonene vil fungere inntil datoen ovenfor.", + "AllowOnTheFlySubtitleExtraction": "Tillat fortløpende utpakking av undertekst", + "AllowOnTheFlySubtitleExtractionHelp": "Innebygde undertekster kan trekkes ut fra videoer og leveres til Emby-apper i ren tekst for å forhindre transkoding av video. På noen systemer kan dette ta lang tid og føre til at videoavspilling stopper under utpakkingsprosessen. Deaktiver dette for å få innebygde undertekster brent inn med videotranskoding når de ikke støttes av klientenheten.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Feilsøklogging bør kun være aktivert når det er nødvendig med feilsøking. Den økte filsystemtilgangen kan forhindre servermaskinen fra å være i stand til å gå i dvale i noen miljøer.", + "LabelSimultaneousConnectionLimit": "Samtidig strømmegrense", + "SimultaneousConnectionLimitHelp": "Maks antall samtidige strømminger tillatt. Skriv 0 for ubegrenset antall.", + "LaunchWebAppOnStartup": "Start Emby web-appen i min nettleser når Emby Server startes", + "LaunchWebAppOnStartupHelp": "Dette vil åpne web-appen i din standard nettleser når Emby Server starter for første gang. Dette vil ikke inntreffe når man bruker funksjonen start server på nytt.", + "LabelReferrerHeader": "Refererer http header", + "LabelUserAgentHeader": "Bruker agent http header", + "SupplyCustomValueIfNeeded": "Tilfør en tilpasset http header verdi, hvis nødvendig.", + "HeaderConfigureRemoteAccess": "Konfigurer fjerntilgang", + "LearnHowToCreateSynologyShares": "Lær hvordan du deler mapper i Synology.", + "LabelAllowedRemoteAddresses": "Ekstern IP-adresse filter", + "LabelAllowedRemoteAddressesMode": "Ekstern IP-adresse filtermodus", + "Whitelist": "Hvitelistet", + "Blacklist": "Svartelistet", + "AllowedRemoteAddressesHelp": "Kommadelt liste over IP-adresser eller IP/nettmaskeoppføringer for nettverk som vil bli tillatt eller ikke tillatt å koble til eksternt. Hvis det står tomt, vil alle eksterne adresser bli tillatt.", + "LabelLanNetworks": "LAN-nettverk", + "LanNetworksHelpText": "Kommadelt liste over IP-adresser eller IP/nettmaskeoppføringer for nettverk som vil bli vurdert på lokalt nettverk ved håndheving av båndbredde og fjerntilgangsbegrensninger. Hvis den er angitt, vil alle andre IP-adresser bli ansett for å være på det eksterne nettverket. Hvis det står tomt, anses bare tjenerens delnett og vanlige private IP-delnett (192.168.0.0/24, 172.16.0.0/12 osv.) å være på det lokale nettverket.", + "LabelSecureConnectionsMode": "Sikker forbindelsemodus", + "PreferredNotRequired": "Foretrukket, men ikke påkrevd", + "RequiredForAllRemoteConnections": "Påkrevd for alle eksterne forbindelser", + "HandledByProxy": "Håndtert av omvendt proxy", + "SaveSubtitlesIntoMediaFolders": "Lagre nedlastede undertekster i medie-mappene", + "SaveSubtitlesIntoMediaFoldersHelp": "Lagre undertekster sammen med videofilene vil gjøre dem enklere å håndtere.", + "AutomaticSubtitleDownloadInstructions": "For å administrere automatisk nedlasting av undertekster, klikk på et bibliotek i Emby biblioteksoppsett og rediger preferansene for nedlasting av undertekster for det biblioteket.", + "ProviderNeedsSetupWithUrl": "{0} krever ytterligere oppsett på {1} innstillingsskjermen {2} i Emby Server.", + "LabelEnableHardwareAcceleration": "Aktiver maskinvareakselerasjon når tilgjengelig", + "HeaderPreferredHardwareDecoders": "Foretrukne fastvaredekodere", + "HeaderPreferredHardwareEncoders": "Foretrukne fastvareenkodere", + "AllowChangingImageAndPassword": "Tillat denne brukeren å endre passordet og profilbildet sitt", + "LabelSimultaneousStreamLimit": "Maks samtidige videostrømmer", + "SimultaneousStreamLimitHelp": "Begrens antall samtidige videoavspillingsøkter.", + "LabelMusicFolderStructure": "Musikkmappestruktur", + "LabelMusicFolderStructureHelp": "Dette gir hint til biblioteksskanneren om hvordan mappene dine er organisert. Hvis du er usikker, eller om dine mapper ikke akkurat samsvarer med et av valgene, vennligst velg Annet som standard valg.", + "OtherOrUnstructured": "Annet eller ustrukturert", + "PerfectArtistAlbumTrack": "Perfekt organisert inn i artist\\album mapper, med spor direkte i album-mappene.", + "PerfectAlbumTrack": "Perfekt organisert inn i album mapper, med spor direkte i album-mappene.", + "LabelMinCollectionSize": "Minimum automatisk samlingsstørrelse", + "PerfectAuthorAudioBookTrack": "Perfekt organisert i forfatter\\bok-mapper, med spor direkte i bokmappene.", + "PerfectAudioBookTrack": "Perfekt organisert i bokmapper, med spor direkte i bokmappene.", + "MinCollectionSizeHelp": "Automatisk opprett samlinger når du minst har valgt antall av titlene i biblioteket. Forandre denne verdien vil ikke påvirke eksisterende samlinger.", + "LabelImportCollections": "Importer informasjon om samling fra nedlastere av metadata", + "LabelImportCollectionsHelp": "Når aktivert vil dette importere informasjon om samlinger fra dine aktiverte metadatanedlastere. Dette kan forårsake at uønskede samlinger blir opprettet. Deaktivering vil forhindre framtidige samlinger fra å bli automatisk opprettet, men ikke slette eksisterende.", + "LabelAllowAdultMetadata": "Tillat metadata for voksne", + "LabelAllowAdultMetadataHelp": "Tillat samsvarende voksentitler under søk etter internett metadata.", + "HeaderVideoPreviewThumbnails": "Miniatyrbilder av forhåndsvisning av video", + "LabelEnableHDRToneMapping": "Aktiver HDR-tonetilordning", + "EnableHDRToneMappingHelp": "Tonetilordning vil sørge for korrekt farge konvertering under transkoding av HDR innhold, som ellers vil oppleves som dimmet og umettet. Ytterligere driverkomponenter kan behøves for å støtte fastvareakselerasjon med denne funksjonen aktivert. Vennligst se våres fastvareakselerasjonoppstartsguide for detaljer.", + "WithHardwareAcceleratedTranscoding": "Ja, kun med fastvareakselerajon", + "TranscodingStillInitializing": "Emby Server transkoding-tjenester er fremdeles under oppstart. Skjermen blir automatisk oppfrisket når transkoding-tjenestene er klare.", + "WithEitherHardwareOrSoftwareTranscoding": "Ja, med enten fastvare- eller programvare-transkoding", + "ToneMappingInHardwareDescription": "Tonetilordning vil bli utført med fastvareakselerasjon når det er støttet av maskinvaren og transkoding blir gjort med fastvareakselerasjon, og hoppet over i alle andre tilfeller.", + "ToneMappingInSoftwareDescription": "Tonetilordning vil bli utført i programvare-modus av prosessoren. Dette er mye tregere enn fastvareakselerert tonetilordning og krever en veldig kraftig servermaskin.", + "ToneMappingInBothDescription": "Tonetilordning vil bli utført med fastvareakselerasjon når det er støttet av maskinvaren, og vil falle tilbake til programvarebasert i alle andre tilfeller. Tonetilordning i programvare-modus er mye tregere enn fastvareakselerert tonetilordning og vil trenge en veldig kraftfull servermaskin.", + "AutoMapped": "Automatisk tilordnet", + "ManuallyMapped": "Manuelt tilordnet", + "NotMappedToGuideData": "Ikke tilordnet til TV Guide-data", + "MappedToValue": "Tilordnet til {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatisk vekk opp servermaskinen for å utføre opptak", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Oppvekkinghendelser vil bli planlagt med serveroperativsystemet. Deaktivere dette valget vil forhindre fremtidige vekkehendelser fra å bli planlagt, men vil ikke fjerne tidligere planlagte oppgaver.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Forsøk å optimalisere databasen ved servernedstenginger", + "LabelOptimizeDatabaseOnShutdownHelp": "Databaseoptimaliseringsoperasjonen er vanligvis en ingen-operasjon, men vil noen ganger kjøre an analyse hvis det føles riktig, så dette vil være nyttig for oppgaveplanleggeren. Dette kan forårsake en lengre nedstenging av Emby Serveren.", + "LabelDatabaseCacheSize": "Databasebufferstørrelse (MB)", + "LabelDatabaseCacheSizeHelp": "Setter mengden av data som databasen straks vil beholde i minnet, per databasefil. En større verdi kan forbedre Emby Server ytelsen. Kreves at serveren startes på nytt.", + "LabelDatabaseAnalysisLimit": "Analyse-rad-grense", + "LabelDatabaseAnalysisLimitHelp": "Når databasen er optimalisert, er dette det omtrentlige antallet av rader utforsket i hvert indeks av ANALYSE kommandoen. En større verdi vil øke effektiviteten av databaseoptimaliseringen, men kan sørge for at Emby Server bruker lengre tid på stenge ned.", + "LabelVacuumDb": "Vakuumering av databasen ved neste Emby Server oppstart", + "LabelVacuumDbHelp": "Vakuumering gjenoppbygger databasefilen, ompakker den inn i et minimalt forbruk av diskplass. I enkelte tilfeller kan dette forbedre ytelsen til Emby Server. Vennligst legg merke til at din Emby Server ikke vil være i drift under vakuum-operasjonen, det vil heller ikke være noen måter på å overvåke vakuumering-fremdriften. Vennligst unngå tvungen nedstengning av Emby prosessen under dette forløpet da det kan føre til korrupsjon av databasen. Dette er en engangsoperasjon og dette alternativet vil tilbakestilles til ikke valgt ved neste oppstart av serveren.", + "AdvancedOptionsWarning": "Disser er avanserte alternativer og bør generelt forbli på standardverdier med mindre du har en grunn til å forandre dem.", + "HeaderRecentlyActiveDevices": "Nylig aktive enheter", + "YesUntilServerRestart": "Ja, inntil neste server omstart", + "YesUntilLogRotate": "Ja, inntil neste loggfil-rotering", + "LabelSubtitleDownloadMaxAge": "Slutt å prøve å laste ned undertekster for videoer som er eldre enn automatisk", + "SubtitleDownloadMaxAgeHelp": "Dette er basert på datoen lagt til metadataverdien.", + "NoAgeLimit": "Ingen aldersgrense", + "AnonymizeLogContents": "Anonymiser logginnhold", + "Markers": "Markører", + "LabelGenerateIntroVideoMarkers": "Generere introvideomarkører", + "GenerateIntroVideoMarkersHelp": "Oppdager vis introer og viser 'Hopp over intro' knapp i Emby-apper. Introoppdagelse kan ta lang tid og forårsake høyt CPU eller diskforbruk.", + "LabelCopyFromUser": "Kopier innstillinger fra bruker", + "CopyFromUserHelp": "Valgfritt. Får opp farten til oppretting av brukere ved å kopiere informasjon fra en eksisterende bruker.", + "UserPolicy": "Retningslinjer for brukere (bibliotek og funksjonstilgang, foreldrekontroll, osv.)", + "UserConfiguration": "Brukerkonfigurasjon (foretrukket lyd og undertekstspråk, biblioteksrekkefølge, osv.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Kopieringsalternativer", + "LabelMultiRestrictionMode": "Modus for flere begrensninger", + "MultiRestrictionModeAll": "Tillatt innhold som samsvarer både med vurdering- og taggrestriksjoner", + "MultiRestrictionModeAny": "Tillat innhold som enten samsvarer med vurdering- eller taggrestriksjoner", + "AllowMappingByChannelNumber": "Tillat tilordning til TV Guide-data ved å bruke kanalnumre", + "AllowMappingByChannelNumberHelp": "Dette kan bli brukt som reserve til å matche mottakerkanaler med TV Guide-data når et treff ikke blir funnet basert på kanalnavnet. Dette kan føre til unøyaktig matching hvis kanalnumre fra mottakeren ikke er korrekt.", + "LabelPreferredSourceForChannelLogos": "Foretrekk kanallogoer fra TV Guide-data over mottakeren når begge har de tilgjengelig", + "LabelPreferredSourceForChannelNumbers": "Foretrekk kanalnumre fra TV Guide-data over mottakeren når begge har de tilgjengelig", + "HeaderSoftwareEncoders": "Kodere av programvare", + "LabelProxyHeaderMode": "Les proxy-hoder for å fastslå klientens IP-adresser", + "ProxyHeadersRemoteOnly": "Kun når de inneholder eksterne nettverksadresser", + "ProxyHeaderModeHelp": "Bestemmer om forespørsel for meldingshoder slik som {0} og {1} skal bli brukt for å bestemme IP-adressen til tilkoblede enheter.", + "AllowCameraUpload": "Tillat kameraopplasting", + "AllowCameraUploadHelp": "Hvis tillat, og dersom aktivert i Emby mobile apper, kan brukere automatisk laste opp bilder og videoer tatt med deres kamera til denne Emby Serveren.", + "CameraUploadMustBeGranted": "Du må også ha fått aktivert tilgang til kameraopplasting av din server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Aktiver lesing og skriving av metadatafiler for person", + "EnableReadingAndWritingPeopleMetadataHelp": "Krever at Nfo Metadata-tillegget installeres. Dette vil tillate lagring av ditt folks redigering i nfo-metadatafiler, men vil resultere i lengre bibliotekskanninger.", + "LabelIgnoreSampleFiles": "Ignorer filer som inneholder ordet sample i filnavnet hvis størrelsen er mindre enn (MB)", + "PreferredChannelImageSource": "Foretrukket bildekilde for kanal", + "PreferredChannelImageSourceHelp": "Velg et foretrukket kanalbilde når både mottaker og TV Guide-data har bilder tilgjengelig.", + "CacheImagesInServerData": "Oppbevar en hurtigbufret kopi av bilder i serverens metadatamappe", + "CacheImagesInServerDataHelp": "Hvis mediene og bildene er lagret på en annen maskin, vil det å beholde en bufret kopi av bilder i servermetadatamappen redusere nettverkstilgangen og forbedre ytelsen. Kostnaden ved å opprette denne hurtigbufferen er at bibliotekskanninger vil være tregere og servermetadatamappen vil forbruke betydelig mer diskplass.", + "AllowSharingPersonalContent": "Tillat deling av personlig innhold, for eksempel spillelister, med andre brukere på denne serveren.", + "AllowSharingPersonalContentHelp": "Hvis det blir gitt, vil denne brukeren kunne dele spillelistene sine med andre brukere. Spillelisteelementer vil fortsatt være begrenset basert på brukerbibliotektilgang og foreldrekontroll.", + "LiveBufferSizeHours": "Størrelsesgrense for buffer i direktestrøm (timer)", + "LiveBufferSizeHoursHelp": "En lengre buffer vil gi større mulighet til å søke fremover og bakover under en direktesending, men vil forbruke mer diskplass.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LabelFolderScanningMode": "Folder scanning mode", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "Legacy": "Legacy" +} diff --git a/strings/nl.json b/strings/nl.json new file mode 100644 index 0000000..83c6aa6 --- /dev/null +++ b/strings/nl.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Gereed!", + "ThisWizardWillGuideYou": "Deze wizard helpt u door het setup-proces. Om te beginnen selecteert u eerst de gewenste taal.", + "HeaderCreateYourFirstUser": "Maak je eerste gebruiker aan", + "ButtonQuickStartGuide": "Snelstart gids", + "MoreUsersCanBeAddedLater": "Meer gebruikers kunnen later via het dashboard worden toegevoegd.", + "UserProfilesIntro": "Emby heeft ingebouwde ondersteuning voor gebruikersprofielen die het mogelijk maakt om elke gebruiker eigen scherminstellingen, afspeelinstellingen en ouderlijk toezicht te geven.", + "WizardCompleted": "Dat is alles wat we nu nodig hebben. Emby is begonnen met het verzamelen van informatie over uw media bibliotheek. Probeer sommige van onze apps en klik dan Finish om het Server Dashboard te bekijken.", + "MessagePleaseAcceptTermsOfService": "Accepteer de gebruiksvoorwaarden en het privacybeleid voordat u doorgaat.", + "OptionIAcceptTermsOfService": "Ik accepteer de voorwaarden", + "SeeOurHwaGuide": "Bekijk onze {0}handleiding voor het opzetten van de hardware acceleratie{1}.", + "HeaderEmbyServerReleaseNotes": "Emby Server release informatie", + "AllowSubtitleDownloading": "Het downloaden van ondertitels toestaan", + "AllowSubtitleManagement": "Verwijderen van bestaande ondertitels toestaan", + "NewUserNameHelp": "Dit is hoe de gebruiker eruit ziet op je server", + "ChapterMarkers": "Hoofdstuk markeringen", + "LabelThumbnailImagesInterval": "Thumbnail afbeeldingen interval:", + "ThumbnailImagesIntervalHelp": "Veelvuldige thumbnails zorgen voor een betere ervaring, maar vereisen meer opslagruimte en tijd om de afbeeldingen te genereren.", + "LabelAuthProvider": "Authenticatieprovider:", + "AuthProviderHelp": "Administrators maken altijd gebruik van de standaard Emby provider om uitsluiten te voorkomen.", + "HeaderNewUser": "Nieuwe gebruiker", + "ChangeServerDisplayName": "Weergavenaam van de server wijzigen", + "ShowAdvancedSettings": "Geavanceerde instellingen weergeven", + "ChangingMetadataImageSettingsNewContent": "Aanpassingen aan de metadata en artwork download instellingen zullen alleen van toepassing zijn op nieuwe toegevoegde content. Om de aanpassingen toe te passen op bestaande content, moet de metadata ervan handmatig vernieuwd worden.", + "AllowRemoteAccess": "Externe verbindingen met deze Emby Server toestaan.", + "AllowRemoteAccessHelp": "Indien niet aangevinkt worden alle externe verbindingen geblokkeerd.", + "Alerts": "Meldingen", + "LabelTrackTitleDisplay": "Ingesloten video-track titel weergaven:", + "GenerateUserFriendlyTrackTitles": "Genereer gebruikers vriendelijke titels uit video-track informatie", + "PreferOriginalTrackTitles": "Prefereer ingesloten titels", + "TrackTitleDisplayHelp": "Kies de weergavetitel van ingesloten audio- en ondertiteltracks. Het wordt niet aanbevolen om de voorkeur te geven aan ingebedde trackinformatie, tenzij u de ingebedde trackinformatie handmatig beheert.", + "EnableTranscodingThrottle": "Throtteling inschakelen", + "EnableTranscodingThrottleHelp": "Emby zal automatisch de transcodeersnelheid aanpassen om CPU-gebruik te verminderen.", + "HeaderTypeMetadataDownloaders": "{0} metadata downloaders", + "HeaderTypeImageFetchers": "{0} Afbeelding downloaders", + "HeaderImageOptions": "Afbeeldingsopties", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registreer met PayPal", + "LabelSyncTempPath": "Pad voor tijdelijke bestanden:", + "LabelSyncTempPathHelp": "Geef een aangepaste werkmap op. Geconverteerde media die tijdens het conversieproces zijn gemaakt, worden hier opgeslagen.", + "LabelCustomCertificatePath": "Aangepast SSL-certificaatpad:", + "LabelCustomCertificatePathHelp": "Pad naar een PKCS #12 bestand met een certificaat en privé-sleutel om TLS ondersteuning op een aangepast domein in te schakelen.", + "HeaderSetupLibrary": "Stel uw mediabibliotheken in", + "LabelTimeLimitHours": "Tijdslimiet (uren):", + "HeaderPreferredMetadataLanguage": "Gewenste metadata taal", + "LabelSaveLocalMetadata": "Afbeeldingen opslaan in de mediamappen", + "LabelSaveLocalMetadataHelp": "Door afbeeldingen op te slaan in de mediamappen kunnen ze makkelijker worden aangepast.", + "TabAccess": "Toegang", + "HeaderDeviceAccess": "Apparaat Toegang", + "OptionEnableAccessFromAllDevices": "Toegang vanaf alle apparaten toestaan", + "OptionEnableAccessToAllChannels": "Toegang tot alle kanalen inschakelen", + "OptionEnableAccessToAllLibraries": "Toegang tot alle bibliotheken inschakelen", + "DeviceAccessHelp": "Door de apparaattoegang van gebruikers te filteren, kunnen ze geen nieuwe apparaten gebruiken totdat ze hier zijn goedgekeurd.", + "LabelDisplayMissingEpisodesWithinSeasons": "Toon ontbrekende afleveringen binnen een seizoen", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Dit moet ook worden ingeschakeld voor TV bibliotheken in Emby Server setup.", + "ImportMissingEpisodesHelp": "Indien ingeschakeld, wordt informatie over ontbrekende afleveringen in uw Emby de database geïmporteerd en weergegeven in de seizoenen en series. Dit kan aanzienlijk langere bibliotheekscans veroorzaken.", + "MessageEnablingOptionLongerScans": "Inschakelen van deze optie kan leiden tot langere doorlooptijd van bibliotheek scans.", + "LabelMaxParentalRating": "Maximaal toegestane kijkwijzer-classificatie", + "MaxParentalRatingHelp": "Media met een hogere beoordeling worden voor deze gebruiker verborgen.", + "LibraryAccessHelp": "Selecteer de mediamappen om met deze gebruiker te delen. Beheerders kunnen alle mappen bewerken via de metadata manager.", + "ChannelAccessHelp": "Selecteer de kanalen om te delen met deze gebruiker. Beheerders kunnen alle kanalen bewerken met de metadata manager.", + "ImageUploadAspectRatioHelp": "1:1 Beeldverhouding geadviseerd. Alleen JPG/PNG.", + "AlreadyPaidHelp1": "Als u een oudere versie van Media Browser voor Android aangeschaft heeft, hoeft u niet opnieuw te betalen om deze app te activeren. Klik op OK om ons u via {0} een e-mail te sturen en dan zullen wij deze voor u activeren.", + "AlreadyPaidHelp2": "Heeft u Emby Première? Annuleer gewoon dit dialoogvenster en stel Emby Premieere in uw Emby Server Dashboard in onder Help -> Emby Premiere en het wordt automatisch ontgrendeld.", + "TabMyPlugins": "Mijn plug-ins", + "TabCatalog": "Catalogus", + "HeaderAutomaticUpdates": "Automatische updates", + "Standard": "Standaard", + "TabSupporterKey": "Emby Première-sleutel", + "OptionHideUserLocal": "Verberg deze gebruiker op de aanmeldschermen op het lokale netwerk", + "OptionHideUserRemote": "Verberg deze gebruiker op de aanmeldschermen voor externe verbindingen", + "OptionHideUserFromLoginHelp": "Handig voor pivé of verborgen beheer accounts. De gebruiker zal handmatig m.b.v. gebruikersnaam en wachtwoord aan moeten melden.", + "HideFromUnusedDevices": "Verberg deze gebruiker op de aanmeldschermen op toestellen waar deze nog nooit is aangemeld", + "OptionDisableUser": "Dit account uitschakelen", + "OptionDisableUserHelp": "Indien uitgeschakeld zal de server geen verbindingen van deze gebruiker toestaan. Bestaande verbindingen zullen abrupt worden beëindigd.", + "OptionAllowUserToManageServer": "Deze gebruiker kan de server beheren", + "HeaderFeatureAccess": "Functie toegang", + "OptionAllowMediaPlayback": "Media afspelen toestaan", + "AllLibraries": "Alle bibliotheken", + "HeaderAllowMediaDeletionFrom": "Wissen van media toestaan van", + "LiveTVRecordingManagement": "Live TV-opnames beheren", + "OptionAllowRemoteControlOthers": "Op afstand besturen van andere gebruikers toestaan", + "OptionAllowRemoteSharedDevices": "Op afstand besturen van gedeelde apparaten toestaan", + "OptionAllowRemoteSharedDevicesHelp": "DLNA-apparaten worden als gedeeld beschouwd totdat een gebruiker deze begint te gebruiken.", + "OptionAllowLinkSharing": "Delen op social media toestaan", + "OptionAllowLinkSharingHelp": "Alleen webpagina's met media-informatie worden gedeeld. Media-bestanden worden nooit publiekelijk gedeeld. Gedeelde items zijn beperkt in tijd en verlopen na {0} dagen.", + "OptionRelease": "Officiële Release", + "LabelAllowServerAutoRestartPlugin": "Toestaan dat de server automatisch opnieuw opstart om plug-in-updates toe te passen", + "LabelAllowServerAutoRestartServerOrPlugin": "Toestaan dat de server automatisch opnieuw opstart om server- of plug-inupdates toe te passen", + "LabelAllowServerAutoRestartHelp": "De server zal alleen opnieuw opstarten tijdens inactieve perioden, wanneer er geen gebruikers actief zijn.", + "LabelRunServerAtStartup": "Start server bij het aanmelden", + "LabelRunServerAtStartupHelp": "Dit zal het Emby systeemvakicoon starten bij het opstarten van Windows. Als je een Windows service hebt opgezet, laat dit dan uitgevinkt en configureer de service om te starten bij het opstarten.", + "ButtonSelectDirectory": "Selecteer map", + "LabelCachePath": "Cache pad", + "DefaultMetadataLangaugeDescription": "Dit zijn uw standaardinstellingen en kunnen per bibliotheek worden aangepast.", + "LabelCachePathHelp": "Geef een aangepaste lokatie voor cache bestanden zoals afbeeldingen. Laat leeg om de standaard lokatie te gebruiken.", + "LabelDefaultRecordingFolder": "Standaard opnamemap", + "LabelMovieRecordingFolder": "Filmopnamemap", + "LabelSeriesRecordingFolder": "Serieopnamepad", + "SeriesRecordingFolderHelp": "(Optioneel). Selecteer een bibliotheek waarin u serie-opnamen kunt opslaan. Dit moet een bibliotheek zijn die je hebt gemaakt in de Emby-bibliotheekinstellingen, waarbij het inhoudstype is ingesteld op tv-programma's of gemengde inhoud.", + "HeaderProgramData": "Programmagegevens", + "RecordingFolderHelp": "Kies de standaard bibliotheekmap om opnames in op te slaan. Indien leeg zal een bibliotheek gemaakt worden in de data map van de server.", + "MovieRecordingFolderHelp": "(Optioneel). Selecteer een bibliotheek waarin u filmopnamen kunt opslaan. Dit moet een bibliotheek zijn die je hebt gemaakt in de Emby-bibliotheekinstellingen, waarbij het inhoudstype is ingesteld op films of gemengde inhoud.", + "LabelMetadataPath": "Metagegevenspad", + "LabelMetadataPathHelp": "Geef de locatie op voor gedownloade illustraties en metagegevens, of maak deze leeg om terug te keren naar de standaardinstelling. Als u dit wijzigt, moet u de inhoud handmatig van de oude locatie naar de nieuwe locatie overzetten. Als u ooit handmatig de inhoud van de metagegevensmap wijzigt, moet u de {0}geplande taak voor het scannen van de metagegevensmap{1} uitvoeren.", + "LabelTranscodingTempPath": "Tijdelijk transcodeer pad:", + "LabelTranscodingTempPathHelp": "Deze map bevat werkbestanden die worden gebruikt door de transcoder. Geef een eigen locatie op of laat het leeg om de standaardlocatie te gebruiken.", + "GenerateVideoPreviewThumbnailsHelp": "Videovoorbeeldminiaturen bieden live updates tijdens het zoeken in ondersteunde apps. Het genereren van deze miniaturen kan lang duren, een hoog CPU-gebruik veroorzaken en extra schijfruimte in beslag nemen.", + "AsAScheduledTask": "als een geplande taak", + "AsAScheduledTaskAndMediaAdded": "als een geplande taak en als media is toegevoegd", + "ButtonRefreshGuideData": "Gidsgegevens vernieuwen", + "LabelNumberOfGuideDays": "Aantal dagen dat gidsgegevens gedownload worden", + "LabelNumberOfGuideDaysHelp": "Het downloaden van meer dagen aan gidsgegevens biedt de mogelijkheid om verder van tevoren te plannen en meer aanbiedingen te bekijken, maar het duurt ook langer om te downloaden. Auto kiest op basis van het aantal kanalen. Houd er rekening mee dat, ongeacht het aantal dagen dat u kiest, deze gegevens ook brongids moeten staan om te kunnen worden gedownload. Sommige gidsgegevensbronnen bieden slechts 24 uur. Emby Gidsgegevens ondersteunt tot 14 dagen.", + "HeaderFetchImages": "Afbeeldingen ophalen", + "LabelMaxBackdropsPerItem": "Maximum aantal achtergronden per item", + "LabelMaxScreenshotsPerItem": "Maximum aantal schermafbeeldingen per item", + "LabelMinBackdropDownloadWidth": "Minimale downloadbreedte voor achtergronden", + "LabelMinScreenshotDownloadWidth": "Minimale downloadbreedte voor schermafbeeldingen", + "ButtonAddScheduledTaskTrigger": "Trigger Toevoegen", + "ButtonAdd": "Toevoegen", + "LabelTriggerType": "Trigger-type", + "OptionOnInterval": "Op een interval", + "OptionAfterSystemEvent": "Na een systeemgebeurtenis", + "LabelDay": "Dag", + "LabelTime": "Tijd", + "LabelEvent": "Gebeurtenis", + "OptionWakeFromSleep": "Uit slaapstand halen", + "Every": "Elke", + "LabelEnableRealtimeMonitor": "Realtime monitoring inschakelen", + "LabelEnableRealtimeMonitorHelp": "Wijzigingen aan bestanden worden op ondersteunde bestandssystemen direct verwerkt.", + "Community": "Gemeenschap", + "HeaderEmbyNews": "Emby Nieuws", + "LabelFriendlyServerName": "Aangepaste servernaam", + "LabelFriendlyServerNameHelp": "Deze naam wordt gebruikt om deze server te identificeren. Indien leeg gelaten, zal de naam van de computer worden gebruikt.", + "LabelPreferredDisplayLanguage": "Gewenste schermtaal", + "LabelPreferredDisplayLanguageHelp": "Het vertalen van Emby is een doorlopend project.", + "LabelReadHowYouCanContribute": "Ontdek hoe u kunt bijdragen.", + "LabelCustomCss": "Aangepaste CSS", + "LabelCustomCssHelp": "Uw eigen, aangepaste CSS op de webinterface toepassen.", + "LabelLocalHttpServerPortNumber": "Lokaal http-poortnummer", + "LabelLocalHttpServerPortNumberHelp": "Het TCP-poortnummer waarop de http-server van Emby moet verbinden.", + "LabelPublicHttpPort": "Openbaar http-poortnummer", + "LabelPublicHttpPortHelp": "Het openbare poortnummer dat moet worden toegewezen aan de lokale http-poort.", + "LabelPublicHttpsPort": "Openbaar https-poortnummer", + "LabelPublicHttpsPortHelp": "Het openbare poortnummer dat moet worden toegewezen aan de lokale https-poort.", + "RequireHttps": "Https vereisen voor externe verbindingen", + "RequireHttpsHelp": "Indien ingeschakeld, zal verbindingen via http wordt doorgestuurd naar https.", + "LabelHttpsPort": "Lokaal https-poortnummer", + "LabelHttpsPortHelp": "Het TCP-poortnummer waarop de https-server van Emby moet verbinden.", + "LabelEnableAutomaticPortMap": "Automatische poorttoewijzing inschakelen", + "LabelEnableAutomaticPortMapHelp": "Probeer de openbare poort via UPnP automatisch aan de lokale poort toe te wijzen. Dit werkt mogelijk niet bij sommige routermodellen.", + "LabelExternalDDNS": "Extern domein", + "LabelExternalDDNSHelp": "Als u een dynamische DNS of domeinnaam hebt, voert u deze hier in, zónder protocol of poort. Emby-apps gebruiken het wanneer ze op afstand verbinding maken. Dit veld is vereist bij gebruik van een aangepast SSL-certificaat. Voorbeeld: mijndomein.nl.", + "LabelMinResumePercentage": "Min. percentage om te hervatten", + "LabelMaxResumePercentage": "Max. percentage om te hervatten", + "LabelMinResumeDuration": "Minimale duur (seconden):", + "LabelMinResumePercentageHelp": "Titels worden als niet afgespeeld beschouwd indien gestopt voor deze tijd", + "LabelMaxResumePercentageHelp": "Titels worden ingesteld als volledig afgespeeld indien gestopt na deze tijd", + "LabelMinResumeDurationHelp": "Titels korter dan dit zullen niet hervatbaar zijn", + "HeaderStatus": "Status", + "Subscriptions": "Abonnementen", + "LabelEndingEpisodeNumber": "Laaste afleveringsnummer", + "LabelEndingEpisodeNumberHelp": "Alleen vereist voor bestanden met meerdere afleveringen", + "HeaderSupportTheTeam": "Ondersteun het Emby Team", + "HeaderSupportTheTeamHelp": "Help de verdere ontwikkeling van dit project te waarborgen door Emby Première aan te schaffen. Een deel van alle inkomsten zal worden bijgedragen aan andere gratis tools waarvan we afhankelijk zijn.", + "DonationNextStep": "Eenmaal voltooid, keert u terug en voert u uw Emby Premiere-sleutel in, die u per e-mail heeft ontvangen.", + "HeaderRunningTasks": "Actieve taken", + "ButtonUpdateNow": "Nu bijwerken", + "PleaseUpdateManually": "Sluit a.u.b. de Emby Server af en installeer de nieuwste versie.", + "ServerUpToDate": "Emby Server is up-to-date", + "MessagePleaseRestartServerToFinishUpdating": "Herstart de server om de updates af te ronden en te activeren.", + "LabelDownMixAudioScale": "Geluidsversterking verbeteren als er gemixt wordt:", + "LabelDownMixAudioScaleHelp": "Geluid versterken als er gemixt wordt. Zet op 1 om oorspronkelijke volume te behouden.", + "HeaderForgotKey": "Sleutel vergeten", + "LabelSupporterEmailAddress": "Het e-mailadres dat is gebruikt om de sleutel te kopen.", + "ButtonRetrieveKey": "Sleutel Ophalen", + "LabelSupporterKey": "Emby Première-sleutel (plakken vanuit e-mail):", + "LabelSupporterKeyHelp": "Voer uw Emby Première sleutel in om te kunnen genieten van extra voordelen.", + "MessageInvalidKey": "Emby Premiere-sleutel ontbreekt of is ongeldig.", + "ErrorMessageInvalidKey": "Voordat premium inhoud kan worden geregistreerd, moet u ook een actief Emby Premiere abonnement hebben.", + "LabelSkipIfGraphicalSubsPresent": "Overslaan als de video al ingesloten ondertiteling heeft", + "LabelSkipIfGraphicalSubsPresentHelp": "Tekstversies van ondertiteling opslaan zal video's efficiënter overbrengen en de kans op transcodering van video's verkleinen.", + "HeaderDownloadLanguages": "Download talen", + "LabelSkipIfAudioTrackPresent": "Overslaan als het standaard geluidsspoor overeenkomt met de taal van de download", + "LabelSkipIfAudioTrackPresentHelp": "Vink dit uit om ervoor te zorgen dat alle video's ondertiteling krijgen, ongeacht de audiotaal.", + "SendMessage": "Bericht versturen", + "HeaderSendMessage": "Stuur bericht", + "ButtonSend": "Stuur", + "LabelMessageText": "Bericht tekst:", + "LabelMessageTitle": "Titel van het bericht:", + "ButtonEditOtherUserPreferences": "Wijzig het profiel, afbeelding en persoonlijke voorkeuren van deze gebruiker.", + "LabelLoginDisclaimer": "Disclaimer voor inloggen", + "LabelLoginDisclaimerHelp": "Dit wordt onderaan de loginpagina weergegeven.", + "HeaderTranscodingTemporaryFiles": "Tijdelijke transcodeer bestanden", + "HeaderApiKeys": "API-sleutels", + "HeaderApiKeysHelp": "Externe applicaties hebben een API-sleutel nodig om met Emby Server te kunnen communiceren. Sleutels worden uitgegeven door in te loggen met een Emby-account of door de applicatie handmatig een sleutel te verlenen.", + "HeaderApiKey": "API-sleutel", + "HeaderResumeSettings": "Instellingen voor Hervatten", + "HeaderFetcherSettings": "Ophaalinstellingen", + "HeaderActivity": "Activiteit", + "ButtonPurchase": "Aankoop", + "HeaderInstall": "Installeren", + "LabelSelectVersionToInstall": "Selecteer de versie om te installeren", + "LinkLearnMoreAboutSubscription": "Meer informatie over Emby Première", + "MessagePluginRequiresSubscription": "Na de gratis proefperiode van 14 dagen is voor deze plug-in een actief Emby Première-abonnement vereist.", + "MessagePremiumPluginRequiresMembership": "Deze plug-in vereist een actief Emby Première- abonnement om deze, na de 14 dagen gratis proefperiode, aan te schaffen.", + "HeaderDeveloperInfo": "Ontwikkelaarsinformatie", + "HeaderRevisionHistory": "Versiegeschiedenis", + "ButtonViewWebsite": "Bekijk website", + "OptionSaveMetadataAsHidden": "Metagegevens en afbeeldingen als verborgen bestanden opslaan", + "LabelConnectEmail": "(Optioneel) Emby Connect e-mailadres", + "LabelConnectEmailHelp": "Koppel deze lokale gebruiker optioneel aan een bestaand Emby Connect-account om eenvoudig in te loggen vanuit elke Emby-app zonder dat u het IP-adres van de server hoeft te weten.", + "ButtonLearnMoreAboutEmbyConnect": "Meer informatie over Emby Connect", + "LabelDateAddedBehavior": "Weergave van de toevoegingsdatum van nieuwe content", + "OptionDateAddedImportTime": "De gescande datum in de bibliotheek gebruiken", + "OptionDateAddedFileTime": "Gebruik de aanmaakdatum van het bestand", + "LabelDateAddedBehaviorHelp": "Als metadatagegevens aanwezig zijn, hebben deze altijd voorrang op deze opties.", + "HeaderLibrarySettings": "Bibliotheek Instellingen", + "HeaderAutomaticSubtitleDownloads": "Automatisch ondertiteling downloaden", + "HeaderCameraUploadHelp": "Emby-apps kunnen automatisch foto's van uw mobiele apparaten uploaden naar Emby Server.", + "LabelCameraUploadPath": "Camera-uploadpad", + "LabelCameraUploadPathHelp": "Selecteer een aangepast uploadpad. Dit overschrijft alle standaardinstellingen die zijn ingesteld in het Camera Upload-gedeelte. Indien leeg gelaten, wordt er een standaardmap gebruikt. Als u een aangepast pad gebruikt, moet dit ook als bibliotheek worden toegevoegd in de Emby bibliotheekinstellingen.", + "DefaultCameraUploadPathHelp": "Selecteer een aangepast uploadpad. Indien leeg gelaten, wordt er een standaardmap gebruikt. Als er een aangepast pad gebruikt wordt, moet dit ook als bibliotheek in de Emby bibliotheekinstellingen worden toegevoegd .", + "LabelCreateCameraUploadSubfolder": "Maak een submap voor elk apparaat", + "LabelCreateCameraUploadSubfolderHelp": "Specifieke mappen kunnen aan een apparaat toegekend worden door er op te klikken in de apparaten pagina.", + "LabelCustomDeviceDisplayNameHelp": "Geef een eigen weergavenaam op of laat deze leeg om de naam te gebruiken die het apparaat opgeeft.", + "TabParentalControl": "Ouderlijk toezicht", + "HeaderAccessSchedule": "Toegangsschema", + "HeaderAccessScheduleHelp": "Maak een toegangsschema om de toegang tot bepaalde tijden te beperken.", + "HeaderLibraryAccess": "Bibliotheek toegang", + "HeaderChannelAccess": "Kanaal toegang", + "LabelForgotPasswordUsernameHelp": "Vul uw gebruikersnaam in, als u deze weet.", + "TitlePasswordReset": "Wachtwoord resetten", + "HeaderBlockItemsWithNoRating": "Blokkeer items zonder of niet-herkende beoordelingsinformatie", + "LabelBlockContentWithTags": "Beperk items met labels", + "LabelTagRestrictionMode": "Label restrictie modus:", + "BlockItemsWithTheseTags": "Blokkeer items met volgende labels:", + "AllowItemsWithTheseTags": "Sta enkel items met volgende labels toe:", + "OptionAllowContentDownloading": "Media downloaden toestaan", + "LabelNewUserNameHelp": "Gebruikersnamen kunnen letters (a-z), cijfers (0-9), streepjes, underscores (_), apostrofs (') en punten (.) bevatten\n", + "HeaderThisUserIsCurrentlyDisabled": "Deze gebruiker is momenteel uitgeschakeld. Ga naar de optie onderaan deze pagina om deze gebruiker in te schakelen.", + "OptionAllowSyncTranscoding": "Het downloaden van media, waarvoor transcodering vereist is, toestaan", + "AllowMediaConversion": "Mediaconversie toestaan", + "AllowMediaConversionHelp": "Toegang verlenen of weigeren tot de mediaconversie functie.", + "OptionAllowAudioPlaybackTranscoding": "Audio-transcodering toestaan, indien nodig, tijdens het afspelen van media", + "OptionAllowVideoPlaybackTranscoding": "Video-transcodering toestaan, indien nodig, tijdens het afspelen van media", + "OptionAllowVideoPlaybackRemuxing": "Wijziging van containerformaten toestaan, indien nodig, tijdens het afspelen van media", + "OptionAllowMediaPlaybackTranscodingHelp": "Het beperken van de toegang tot transcodering zal de kwaliteitsselectie uitschakelen en kan afspeelfouten in Emby-apps veroorzaken als gevolg van niet-ondersteunde media-indelingen of onvoldoende netwerkbandbreedte.", + "LabelRemoteClientBitrateLimit": "Bitsnelheidlimiet voor internetstreaming (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Een optionele bitrate limiet per stream voor alle apparaten buiten het netwerk. Dit is handig om te voorkomen dat apparaten een hogere bitrate vragen dan je internetverbinding aan kan. Dit kan een verhoogde belasting van de CPU in je server veroorzaken om om videos direct te transcoderen naar een lagere bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "Dit zal de standaard globale waarde overschrijven die in de geavanceerde serverinstellingen is ingesteld.", + "OptionEnableFullSpeedConversion": "Inschakelen conversie op hoge snelheid", + "OptionEnableFullSpeedConversionHelp": "Standaard worden conversies op een lage snelheid uitgevoerd om het resourceverbruik te minimaliseren.", + "OptionEnableAutomaticServerUpdates": "Schakel automatische serverupdates in", + "HeaderTVSources": "TV-bronnen", + "HeaderAddTvSource": "TV-bron toevoegen", + "LabelTunerIpAddress": "IP-adres van de Tuner", + "HeaderGuideProviders": "Gidsbronnen", + "HeaderAddGuideSource": "Gidsbron toevoegen", + "LabelZipCode": "Postcode", + "LabelLineup": "Opstellen", + "LabelImportOnlyFavoriteChannels": "Gebruik alleen kanalen die favoriet zijn", + "ImportFavoriteChannelsHelp": "Indien ingeschakeld, zullen alleen kanalen geïmporteerd worden die op de tuner als favoriet aangemerkt zijn.", + "HeaderDefaultRecordingSettings": "Standaard opname-instellingen", + "LabelDisplayName": "Weergavenaam", + "OptionDownloadImagesInAdvance": "Download afbeeldingen van tevoren", + "OptionDownloadImagesInAdvanceHelp": "Standaard worden de meeste afbeeldingen pas van internet gedownload als ze worden weergegeven door een Emby-app. Schakel deze optie in om alle afbeeldingen vooraf te downloaden, zodra nieuwe media worden geïmporteerd. Dit kan aanzienlijk langere bibliotheekscans veroorzaken.", + "MessageThankYouForSupporting": "Bedankt voor uw steun aan Emby", + "FileReadCancelled": "Het lezen van het bestand is geannuleerd.", + "FileNotFound": "Bestand niet gevonden.", + "FileReadError": "Er is een fout opgetreden bij het lezen van het bestand.", + "NoPluginConfigurationMessage": "Deze plug-in heeft geen instellingen om te configureren.", + "HeaderNewApiKey": "Nieuwe API-sleutel", + "HeaderNewApiKeyHelp": "Geef een applicatie toestemming om te communiceren met Emby Server.", + "MessageKeyEmailedTo": "Sleutel gemaild naar {0}.", + "HeaderConfirmation": "Bevestiging", + "MessageKeyUpdated": "Dank u wel. Uw Emby Première-sleutel is bijgewerkt.", + "MessageKeyRemoved": "Dank u wel. Uw Emby Première-sleutel is verwijderd.", + "TextEnjoyBonusFeatures": "Profiteer van extra mogelijkheden", + "MessageErrorLoadingSupporterInfo": "Er is een fout opgetreden bij het laden van Emby Première informatie. Probeer het later opnieuw.", + "ValueTimeLimitSingleHour": "Tijdslimiet: 1 uur", + "ValueTimeLimitMultiHour": "Tijdslimiet: {0} uren", + "General": "Algemeen", + "HeaderScreenSavers": "Schermbeveiligingen", + "Reporting": "Rapporteren", + "LabelStopping": "Stoppen", + "HeaderSelectCertificatePath": "Selecteer Certificaatpad", + "HeaderSupporterBenefit": "Een actief Emby Première-abonnement biedt extra voordelen, zoals toegang tot Emby DVR, offline media, premium plug-ins en meer. {0}Meer informatie{1}.", + "LabelAbortedByServerShutdown": "(Afgebroken door afsluiten van de server)", + "LabelScheduledTaskLastRan": "Laatste keer {0}, duur {1}.", + "HeaderDeleteTaskTrigger": "Taaktrigger verwijderen", + "MessageDeleteTaskTrigger": "Weet u zeker dat u deze taaktrigger wilt verwijderen?", + "MessageNoPluginsDueToAppStore": "Gebruik de Emby-webapp om plug-ins te beheren.", + "LabelVersionInstalled": "{0} geïnstalleerd", + "HeaderSelectServerCachePath": "Selecteer Server Cache Pad", + "HeaderSelectTranscodingPath": "Selecteer Tijdelijke Transcodeer Pad", + "HeaderSelectMetadataPath": "Selecteer Metadata Pad", + "HeaderSelectServerCachePathHelp": "Bladeren of voer het pad in om te gebruiken voor server cache-bestanden. De map moet beschrijfbaar zijn.", + "HeaderSelectTranscodingPathHelp": "Bladeren of voer het pad in om te gebruiken voor het transcoderen van tijdelijke bestanden. De map moet beschrijfbaar zijn.", + "HeaderSelectMetadataPathHelp": "Blader of voer het pad in dat u wilt gebruiken om metadata in op te slaan. De map moet beschrijfbaar zijn.", + "MessageConfirmRestart": "Weet u zeker dat u Emby Server wilt herstarten?", + "MessageConfirmShutdown": "Weet u zeker dat u Emby Server wilt afsluiten?", + "LabelLocalAccessUrl": "In-Home (LAN)-toegang: {0}", + "LabelRemoteAccessUrl": "Externe (WAN) access: {0}", + "LabelRunningOnPort": "Draait op http-poort {0}", + "LabelRunningOnPorts": "Draait op http-poort {0} en https-poort {1}", + "LabelCurrentPath": "Huidige pad:", + "HeaderSelectMediaPath": "Selecteer Media Pad", + "HeaderSelectPath": "Selecteer Pad", + "MessageDirectoryPickerInstruction": "Netwerkpaden kunnen handmatig worden ingevoerd als de netwerk-knop uw apparaten niet kan vinden. Bijvoorbeeld {0} of {1}.", + "MessageDirectoryPickerBSDInstruction": "Voor BSD kan het noodzakelijk zijn opslag op uw FreeNAS Jail te configureren voordat Emby het kan benaderen.", + "MessageDirectoryPickerLinuxInstruction": "Voor Linux op Arch Linux, CentOS, Debian, Fedora, OpenSuse, of Ubuntu, moet u de Emby systeemgebruiker ten minste leestoegang tot uw opslaglocaties verlenen.", + "MetadataManager": "Metadata Manager", + "OptionBlockLiveTvChannels": "Live TV-kanalen", + "OptionBlockChannelContent": "Inhoud internetkanaal", + "ButtonRevoke": "Herroepen", + "MessageConfirmRevokeApiKey": "Weet u zeker dat u deze API-sleutel wilt intrekken? De verbinding met Emby Server zal direct verbroken worden.", + "HeaderConfirmRevokeApiKey": "API-sleutel intrekken", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Accepteer de servicevoorwaarden voordat u doorgaat, a.u.b.", + "HeaderChangeFolderType": "Wijzig het inhoudstype", + "HeaderChangeFolderTypeHelp": "Als u het type wilt wijzigen, verwijder deze eerst en maak daarna een nieuwe bibliotheek met het nieuwe type aan.", + "HeaderAlert": "Waarschuwing", + "MessagePleaseRestart": "Herstart om update te voltooien.", + "OptionHomeVideos": "Homevideo's & foto's", + "OptionBooks": "Boeken", + "HeaderMetadataReaders": "Metadata lezers:", + "LabelMetadataReadersHelp": "Rangschik de gewenste lokale metadatabronnen in volgorde van prioriteit. Het eerst gevonden bestand zal worden gelezen.", + "HeaderSubtitleDownloaders": "Ondertiteldownloaders:", + "SubtitleDownloadersHelp": "Schakel uw favoriete ondertiteldownloaders in en rangschik ze in volgorde van prioriteit. Er kunnen meer ondertitelproviders worden geïnstalleerd via via de van de Emby plug-inscatalogus .", + "LabelMetadataDownloaders": "Metadata Downloaders:", + "LabelMetadataDownloadersHelp": "Rangschik uw voorkeurs metadata downloader in volgorde van prioriteit. Lagere prioriteit downloaders zullen alleen worden gebruikt om de ontbrekende informatie in te vullen.", + "HeaderMetadataSavers": "Metadata Opslag:", + "LabelMetadataSaversHelp": "Kies de bestandsindeling om uw metadata op te slaan.", + "LabelImageFetchers": "Afbeeldingen Downloaders:", + "LabelImageFetchersHelp": "Rangschik uw voorkeurs afbeeldingen downloader in volgorde van prioriteit.", + "PersonTypePerson": "Persoon", + "HeaderRemoveMediaLocation": "Verwijder media locatie", + "MessageConfirmRemoveMediaLocation": "Weet u zeker dat u deze locatie wilt verwijderen?", + "LabelNewName": "Nieuwe naam:", + "HeaderRemoveLibrary": "Verwijder bibliotheek", + "MessageAreYouSureYouWishToRemoveLibrary": "Ben je zeker dat je de {0} bibliotheek wil verwijderen van je Emby Server? Je mediabestanden zullen niet gewijzigd worden.", + "ButtonRename": "Naam wijzigen", + "HeaderPluginInstallation": "Plugin installatie", + "MessageTrialExpired": "De proef periode voor deze feature is verlopen", + "MessageTrialWillExpireIn": "De proef periode voor deze feature zal in {0} dag(en) verlopen", + "ValuePriceUSD": "Prijs {0} (USD)", + "MessageFeatureIncludedWithSupporter": "U bent ingeschreven voor deze functie en kunt het blijven gebruiken zolang u een actief Emby Premiere abonnement heeft.", + "HeaderSelectExternalPlayer": "Selecteer externe speler", + "HeaderExternalPlayerPlayback": "Afspelen met externe speler", + "HeaderThankYou": "Bedankt", + "HeaderSelectUploadPath": "Kies upload pad", + "ErrorMessageStartHourGreaterThanEnd": "Eind tijd moet na de start tijd liggen.", + "MessagePluginConfigurationRequiresLocalAccess": "Meld svp. op de lokale server aan om deze plugin te configureren.", + "MovieLibraryHelp": "Bekijk de {0} Emby film naamgeving gids {1}.", + "TvLibraryHelp": "Bekijk de {0} Emby TV naamgeving gids {1}.", + "BookLibraryHelp": "Tekstboeken worden ondersteund. Bekijk de {0}Emby Boeken naamgeving gids{1}.", + "MessageGamePluginRequired": "Vereist installatie van de GameBrowser plugin", + "HeaderUnlockApp": "App vrijgeven", + "MessagePaymentServicesUnavailable": "Betaal services zijn momenteel niet beschikbaar, Probeer het later svp. nog eens.", + "NoNewDevicesFound": "Er zijn geen nieuwe apparaten gevonden. Sluit dit melding en voer handmatig de apparaat gegevens in om een nieuwe tuner toe te voegen.", + "MessageConfirmDeleteTunerDevice": "Weet u zeker dat u dit apparaat wilt verwijderen?", + "MessageConfirmDeleteGuideProvider": "Weet u zeker dat u deze gidsprovider wilt verwijderen?", + "HeaderDeleteProvider": "Verwijder aanbieder", + "ErrorAddingTunerDevice": "Er was een fout bij het toevoegen van de tuner. Controleer of deze toegankelijk is en probeer het opnieuw.", + "ErrorSavingTvProvider": "Er was een fout bij het opslaan van de TV aanbieder. Controleer of deze toegankelijk is en probeer het opnieuw.", + "ErrorGettingTvLineups": "Er was een fout bij het downloaden van de TV lineup. Controleer of uw gegevens correct zijn en probeer het opnieuw.", + "MessageCreateAccountAt": "Maak een account bij {0}", + "ErrorPleaseSelectLineup": "Selecteer een lineup en probeer het opnieuw. Als er geen lineups beschibaar zijn, controleer dan of uw gebruikersnaam, wachtwoord en postcode correct zijn.", + "ErrorValidatingSupporterInfo": "Er is een fout bij het valideren van uw Emby Premiere gegevens . Probeer het later opnieuw.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Voor extra Live TV providers, klik op de Diensten tab om de mogelijke opties te zien.", + "AddUser": "Gebruiker toevoegen", + "HeaderEmailAddress": "E-mailadres", + "NumLocationsValue": "{0} folders", + "PleaseAddAtLeastOneFolder": "Voeg tenminste 1 map aan deze bibliotheek toe door op de Toevoegen knop te klikken.", + "ErrorAddingMediaPathToVirtualFolder": "Er ging iets mis bij het toevoegen van het media pad. Controleer of het pad klopt en of het Emby server process toegang heeft tot het pad.", + "ErrorAddingEmbyConnectAccount3": "Het Emby account is al gekoppeld aan een bestaande lokale gebruiker. Een Emby account kan worden gekoppeld aan maximaal één lokale gebruiker tegelijk.", + "HeaderConfirmPluginInstallation": "Bevestig Plugin Installatie", + "PleaseConfirmPluginInstallation": "Klik op OK om te bevestigen dat u bovenstaande heeft gelezen en door wenst te gaan met het installeren van de plugin.", + "MessagePluginInstallDisclaimer": "Plugins ontwikkeld door leden van de Emby gemeenschap zijn een geweldige manier om uw Emby ervaring met extra functies en voordelen te verbeteren. Alvorens te installeren, dient u zich bewust te zijn van de gevolgen die zij kunnen hebben op uw Emby Server, zoals langere bibliotheek scans, extra achtergrondinformatie verwerking, en een verminderde stabiliteit van het systeem.", + "HardwareAccelerationWarning": "Hardwareversnelling inschakelen kan instabiliteit veroorzaken in sommige omgevingen. Zorg ervoor dat uw besturingssysteem en videostuurprogramma's volledig up to date zijn. Als u problemen ondervindt bij het afspelen van video, nadat u dit hebt ingeschakeld, moet u de instelling terugzetten naar Auto.\n", + "ValueExample": "Voorbeeld: {0}", + "LabelFileOrUrl": "Bstand of URL:", + "OptionEnableForAllTuners": "Inschakelen voor alle tuners", + "HeaderTuners": "Ontvangers", + "DrmChannelsNotImported": "Kanalen met DRM worden niet geïmporteerd.", + "LabelAllowHWTranscoding": "Hardware transcoding toestaan", + "AllowHWTranscodingHelp": "Wanneer ingeschakeld zal de tuner streams direct transcoderen streams. Dit kan helpen de transcodering vereist door Emby Server te verlagen.", + "MetadataSettingChangeHelp": "Veranderen van metadata instellingen zal nieuwe content die wordt toegevoegd beïnvloeden. Om de bestaande inhoud te vernieuwen, opent u het detail scherm en klik op de knop Vernieuwen, of doe een bulk vernieuwing met behulp van de metadata manager.", + "RecordingPathChangeMessage": "Bij het wijzigen van uw opnamemap zullen bestaande opnamen niet migreren van de oude locatie naar de nieuwe. U moet deze desgewenst handmatig verplaatsen.", + "LabelLocalIpAddress": "Lokaal IP adres:", + "LabelBindToLocalNetworkAddressHelp": "Optioneel. Overrule het lokale IP-adres om aan de http-server te binden. Indien leeg gelaten, zal de server binden aan alle beschikbare adressen. Het veranderen van deze waarde vereist herstarten van Emby Server.", + "SettingsWarning": "Het veranderen van deze waarden kunnen instabiliteit of connectiviteit storingen veroorzaken. Als u problemen ondervindt, raden wij aan de veranderingen terug te zetten naar standaard.", + "OptionSaveMetadataAsHiddenHelp": "Het veranderen van dit zal gelden voor nieuwe metadata die wordt opgeslagen. Bestaande metadata bestanden zullen de volgende keer dat ze worden opgeslagen door Emby Server worden bijgewerkt.", + "EnablePhotos": "Inschakelen foto's", + "EnablePhotosHelp": "Foto's worden herkend en weergegeven naast andere mediabestanden.", + "ImportPlaylists": "Importeer afspeellijst bestanden", + "ImportPlaylistsHelp": "Afspeellijsten aangetroffen in uw mediamappen, kunnen in Emby Server worden geïmporteerd.", + "SaveThumbnailImagesIntoMediaFolders": "Miniaturen van videovoorbeelden opslaan in mediamappen", + "LabelGenerateVideoPreviewThumbnails": "Genereer video preview miniaturen:", + "LabelEnableDebugLogging": "Foutopsporings logboek inschakelen", + "OptionEnableExternalContentInSuggestions": "Inschakelen externe inhoud in suggesties", + "OptionEnableExternalContentInSuggestionsHelp": "Laat internet trailers en live-tv-programma's op te nemen binnen de voorgestelde inhoud.", + "LabelOptionalNetworkPath": "(Optioneel) Gedeelde netwerkmap:", + "LabelOptionalNetworkPathHelp": "Als deze map wordt gedeeld op uw netwerk, kunnen middels het netwerkpad Emby apps op andere apparaten rechtstreeks toegang tot mediabestanden krijgen.", + "SynologyUpdateInstructions": "Gelieve in te loggen op DSM en ga naar Pakket Center om bij te werken.", + "HeaderRecordingPostProcessing": "Opname nabewerking", + "LabelPostProcessorArguments": "Nabewerkings command line argumenten:", + "PostProcessorArgumentsHelp": "De volgende variabelen worden ondersteund op de opdrachtregel, zodat gegevens naar uw postprocessor kunnen worden doorgegeven", + "LabelPostProcessor": "Nabewerkings toepassing:", + "DvrPostProcessorPathArgument": "{path}: The volledige pad voor het nieuwe opnamebestand", + "OptionAutomaticallyGroupSeries": "Automatisch samenvoegen serie die zijn verspreid over meerdere mappen", + "OptionAutomaticallyGroupSeriesHelp": "Indien ingeschakeld, zal serie die zijn verspreid over meerdere mappen binnen deze bibliotheek automatisch samengevoegd tot één serie.", + "WhenDidYouPurchaseApp": "Wanneer heb je deze app oorspronkelijk gekocht?", + "PreferEmbeddedTitlesOverFileNames": "Prefereer ingesloten titels boven bestandsnamen", + "PreferEmbeddedTitlesOverFileNamesHelp": "Dit bepaalt de standaard weergavetitel wanneer er geen internet metagegevens of lokale metadata beschikbaar is.", + "FriendlyNameForReferenceHelp": "Gebruikersvriendelijke naam voor weergave ter referentie.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Instellingen", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detecteer Mijn Apparaten", + "MessagePleaseWait": "Even geduld. Dit kan even duren.", + "DetectingDevices": "Apparaten detecteren", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Vernieuw metagegevens automatisch van het internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Ververs metadata automatisch voor afleveringen met plaatsvervangende titels zoals \"TBA\"", + "EveryNDays": "Elke {0} dagen", + "LabelCertificatePassword": "Certificaat paswoord:", + "LabelCertificatePasswordHelp": "Als je certificaat een paswoord vereist, vul het dan hier in alstublieft.", + "HeaderNewLibrary": "Nieuwe bibliotheek", + "HttpsRequiresCert": "Om beveiligde verbindingen in te schakelen, is een vertrouwd SSL-certificaat vereist (zoals Let's Encrypt). Geef een certificaat op of schakel beveiligde verbindingen uit.", + "ServerRestartNeededAfterPluginInstall": "Emby server zal heropgestart moeten worden na het installeren van een plugin.", + "PluginInstalledMessage": "Het installeren van de plugin is gelukt. Emby Server zal heropgestart moeten worden om de wijzigingen door te voeren.", + "MessagePremiereStatusGood": "Je hebt een {0} Emby Premiere plan en je toestelgebruik is ruim binnen je limiet.", + "MessagePremiereStatusClose": "Je hebt een {0} Emby Premiere plan, maar je toestelgebruik nadert de limiet.", + "MessagePremiereExtendedPlans": "Overweeg een {0}uitgebreide toestellen plan{1}", + "MessagePremiereStatusOver": "Je hebt een {0} Emby Premiere plan, maar bent over je toestellimiet!", + "ListItemPremiereSub": "{0} abonnement aangekocht via {2} verloopt{1}", + "LabelClickToManage": "Klik om dit abbonement te beheren", + "LabelCancelInfo": "Je kan dit abonnement rechtstreeks beheren met {0}", + "LabelAlreadyCanceled": "Dit abonnement is geannuleerd. De sleutel blijft geldig tot deze verlopen is.", + "HeaderCancelSub": "Annuleer Emby Premiere", + "MessageConfirmSubCancel": "NEE, ga alsjeblieft niet weg... Je zal alle fantastische functies van Emby Premiere missen!", + "ButtonCancelSub": "Dat weet ik, annuleer het toch", + "ButtonDontCancelSub": "Hou Emby Premiere", + "MessageSubCancelReqSent": "Er is een email verstuurd naar de eigenaar van de key. Volg a.u.b. de instructies in die mail om de annulatie van het abonnement te voltooien. We hopen je snel terug te zien!", + "MessageSubCancelError": "Er is iets misgelopen bij het annuleren. Stuur a.u.b. een mail naar {0} en we zullen dit zo snel mogelijk in orde brengen.", + "LabelAlreadyCancelled": "Dit abonnement is geannuleerd. Je zal niets meer aangerekend worden maar alle functies zullen blijven werken tot bovenstaande datum.", + "AllowOnTheFlySubtitleExtraction": "Directe Ondertitel extractie toestaan", + "AllowOnTheFlySubtitleExtractionHelp": "Ingebakken ondertitels kunnen uit de video's gehaald worden en als tekst bezorgd worden aan de Emby apps om transcodering the helpen voorkomen. Op sommige systemen kan dit een lange tijd duren en er voor zorgen dat het afspelen van video stopt tijdens de extractie. Schakel dit uit om ingebakken ondertiteling in de video te laten branden met transcodering als deze niet standaard ondersteund worden door het afspeelapparaat.", + "AllowOnTheFlyFontExtraction": "Realtime ondertitelextractie toestaan", + "AllowOnTheFlyFontExtractionHelp": "Ingebrande lettertypes kunnen uit videos gehaald worden en naar de Emby apps worden doorstuurt zodat deze videos met afwijkende lettertypes kunnen ondersteunen. Op sommige systemen kan dit lang duren en kan het tijdens de extractie voor komen dat het afspelen van de video tijdelijk gepauseerd wordt.", + "EnableDebugLoggingHelp": "Debug logging mag alleen ingeschakeld worden voor het onderzoeken van problemen. De verhoogde belasting van het bestandssysteem kan voorkomen dat de server in slaapstand gaat in sommige omgevingen.", + "LabelSimultaneousConnectionLimit": "Gelijktijdige streams limiet:", + "SimultaneousConnectionLimitHelp": "Het maximum aantal toegestane gelijktijdige streams. Geef 0 in voor geen limiet.", + "LaunchWebAppOnStartup": "De Emby-webapp in mijn webbrowser openen wanneer Emby Server opstart", + "LaunchWebAppOnStartupHelp": "Dit zal de webapp in uw standaard webbrowser openen wanneer Emby Server opstart. Dit zal niet gebeuren wanneer de \"server opnieuw opstarten\" functie gebruikt wordt.", + "LabelReferrerHeader": "Verwijzende HTTP header", + "LabelUserAgentHeader": "User agent HTTP header", + "SupplyCustomValueIfNeeded": "Voer een eigen HTTP header in, wanneer nodig.", + "HeaderConfigureRemoteAccess": "Toegang op afstand configureren", + "LearnHowToCreateSynologyShares": "Leren mappen te delen in Synology.", + "LabelAllowedRemoteAddresses": "Externe IP-adressen filter:", + "LabelAllowedRemoteAddressesMode": "Externe IP-adressen filter modus:", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Komma-gescheiden lijst van IP-adressen of IP/netmask adressen voor netwerken die op afstand verbinding mogen maken. Indien blanco, worden alle externe adressen toegestaan.", + "LabelLanNetworks": "LAN-netwerken:", + "LanNetworksHelpText": "Kommagescheiden lijst met IP-adressen en IP/netwerkmaskers voor netwerken die moeten worden beschouw als \"lokaal\" wanneer de bandbreedte en toegankelijkheidsinstellingen worden uitgevoerd. \nWanneer ingesteld worden alle andere IP-adressen beschouwd als extern. Wanneer leeg worden enkel de server's subnet en algemene privé IP-subnets als lokaal beschouw (192.168.0.0/24, 172.16.0.0/12, etc).", + "LabelSecureConnectionsMode": "Beveiligde verbinding modus:", + "PreferredNotRequired": "Gewenst, maar niet verplicht", + "RequiredForAllRemoteConnections": "Vereist voor alle externe verbindingen", + "HandledByProxy": "Behandeld door reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Ondertitels opslaan in media mappen", + "SaveSubtitlesIntoMediaFoldersHelp": "Het opslaan van ondertitels in dezelfde map als de video's zorgt ervoor dat deze beter te beheren zijn.", + "AutomaticSubtitleDownloadInstructions": "Om de automatische ondertiteling downloads te beheren, klik op een bibliotheek binnen de Emby bibliotheek instelling en bewerk daar de instellingen voor ondertitels download, voor die bibliotheek.", + "ProviderNeedsSetupWithUrl": "{0} verplichte extra instellingen in het {1} instellingen scherm{2} op de Emby Server.", + "LabelEnableHardwareAcceleration": "Schakel hardwareversnelling in wanneer beschikbaar", + "HeaderPreferredHardwareDecoders": "Voorkeurs-hardwaredecoders", + "HeaderPreferredHardwareEncoders": "Voorkeurs-hardwareencoders", + "AllowChangingImageAndPassword": "Sta toe dat deze gebruikers het eigen wachtwoord en profielafbeelding kan wijzigingen", + "LabelSimultaneousStreamLimit": "Maximaal aantal gelijktijdige videostreams", + "SimultaneousStreamLimitHelp": "Beperk het aantal gelijktijdige video-afspeelsessies", + "LabelMusicFolderStructure": "Muziekfolder structuur", + "LabelMusicFolderStructureHelp": "Dit geeft de bibliotheeksscanner aan hoe je bestandsstructuur is opgebouwd. Als je dit niet zeker weet, of dat je bestanden niet exact overeen komen met één of meerdere opties, selecteer dan de standaard instellingen Anders.", + "OtherOrUnstructured": "Anders of niet gestructureerd", + "PerfectArtistAlbumTrack": "Perfect georganiseerd in arties\\album folders, met de nummers direct in de album folders.", + "PerfectAlbumTrack": "Perfect georganiseerd in album folders, met de nummers direct in de album folders.", + "LabelMinCollectionSize": "Minimale automatische collectie grootte", + "PerfectAuthorAudioBookTrack": "Perfect georganiseerd in auteur\\boek folders, met nummers direct in de boek folders.", + "PerfectAudioBookTrack": "Perfect geoganiseerd in boek folders, met nummers direct in de boek folders.", + "MinCollectionSizeHelp": "Maak automatisch collecties aan wanneer je minstens het aantal geselecteede aantal titels in je bibliotheek hebt. Het aanpassen van deze waarde heeft geen invloed op bestaande verzamelingen.", + "LabelImportCollections": "Importeer verzamelingsinformatie uit metadata downloaders", + "LabelImportCollectionsHelp": "Wanneer inschakeld zal dit verzamlingsinformatie importeren uit de ingeschakelde metadata downloaders. Dit kan voor ongewenste verzamelingen zorgen die automatisch zijn aangemaakt. Door dit uit te schakelen wordt het automatisch aanmaken van nieuwe verzamelingen uitgeschakeld. Bestaande verzamelingen worden niet verwijderd.", + "LabelAllowAdultMetadata": "Sta expliciete metadata toe", + "LabelAllowAdultMetadataHelp": "Sta het overeenkomen van expliciete titels toe tijdens het zoeken van internet metadata", + "HeaderVideoPreviewThumbnails": "Video Voorvertoningsminiaturen", + "LabelEnableHDRToneMapping": "Schakel HDR tone mapping in", + "EnableHDRToneMappingHelp": "Tone mapping zorgt ervoor dat de kleuren van HDR inhoud correct worden omgezet die anders gedimd of onverzadigd wordt weergegeven. Het kan zijn dat hier extra driver component voor nodig zijn om zo ook hardware versnelling te kunnen ondersteuning samen met deze feature. Zie daarvoor onze handleiding hardware versnelling.", + "WithHardwareAcceleratedTranscoding": "Ja, alleen met hardware versnelling.", + "TranscodingStillInitializing": "Emby Server's convertiediensten zijn nog bezig met opstarten. Dit scherm zal automatisch ververst worden wanneer deze klaar zijn met opstarten.", + "WithEitherHardwareOrSoftwareTranscoding": "Ja, met hardware of software transcodering.", + "ToneMappingInHardwareDescription": "Tone mapping zal worden toegepast met hardware versnelling wanneer ingeschakeld en dit wordt ondersteund door de hardware, anders zal dit worden overgeslagen.", + "ToneMappingInSoftwareDescription": "Tone mapping zal worden uitgevoerd door de CPU. Dit is trager dan hardware versnelde mtone mapping and je zal hiervoor een krachtige server nodig hebben.", + "ToneMappingInBothDescription": "Tone mapping zal worden uitgevoerd met hardware versnelling wanneer ingeschakeld en ondersteund door de hardware. Als dit niet mogelijk is, zal worden teruggevallen om dit via CPU uit te voeren. Tone mapping via de CPU is (veel) traget dan hardware versnelde tone mapping en het is aangeraden een krachtige server hiervoor te gebruiken.", + "AutoMapped": "Automatisch toegewezen", + "ManuallyMapped": "Handmatig toegewezen", + "NotMappedToGuideData": "Niet-toegewezen gids informatie", + "MappedToValue": "Toegewezen aan {0}", + "LabelAutomaticallyWakeServerForRecordings": "Wek de server automatisch om opnamen uit te voeren", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wekgebeurtenissen worden ingepland voor het besturingssysteem van de server. Deze optie uitschakelen zal ervoor zorgen dat toekomstige wekgebeurtenissen niet opnieuw worden ingepland maar zal de reeds ingeplande gebeurtenissen ook niet verwijderen.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Probeer de database te optimaliseren wanneer de server wordt uitgeschakeld", + "LabelOptimizeDatabaseOnShutdownHelp": "De database optimalisatie is normaliter een lege gebeurtenis maar het kan zijn dat hier af en toe een analyse door wordt uitgevoerd als dit behulpzaam is voor de zoekopdrachtplanner. Het kan er voor zorgen dat de Emby Server hierdoor langer doet over het uitschakelen.", + "LabelDatabaseCacheSize": "Database cache grootte (MB)", + "LabelDatabaseCacheSizeHelp": "Stelt de hoeveelheid data in die de database tegelijkertijd in het geheugen kan vasthouden, per database bestand. Het kán zijn dat een grotere waarde zorgt voor verbeterde prestaties. Hiervoor zal de server opnieuw moeten worden opgestart.", + "LabelDatabaseAnalysisLimit": "Analyse rij limiet", + "LabelDatabaseAnalysisLimitHelp": "Wanneer de database is geoptimaliseerd is dit het geschatte aantal rijen wat wordt onderzocht in elke index door het ANALYZE commando. Een grotere waarde zal ervoor zorgen dat de optimalisatie effectiver wordt uitgevoerd maar kan er ook voor zorgen dat de Emby Server trager afsluit.", + "LabelVacuumDb": "Schoon de database op wanneer Emby Server de volgende keer opstart", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Transcodering toestaan om de kwaliteit te verminderen tijdens het afspelen, gebaseerd op de kwaliteitsinstellingen,", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "LabelFolderScanningMode": "Folder scanning mode", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "Legacy": "Legacy" +} diff --git a/strings/pl.json b/strings/pl.json new file mode 100644 index 0000000..d45419a --- /dev/null +++ b/strings/pl.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Zakończono!", + "ThisWizardWillGuideYou": "Niniejszy kreator pomoże Ci przejść przez proces instalacji. Najpierw, wybierz preferowany przez siebie język.", + "HeaderCreateYourFirstUser": "Utwórz pierwszego użytkownika", + "ButtonQuickStartGuide": "Skrócona instrukcja obsługi", + "MoreUsersCanBeAddedLater": "Więcej użytkowników można dodać później z poziomu ustawień serwera Emby.", + "UserProfilesIntro": "Emby zawiera wbudowaną obsługę profili użytkowników, umożliwiając każdemu użytkownikowi personalizację ustawień wyświetlania, sposobu odtwarzania i kontroli rodzicielskiej.", + "WizardCompleted": "To wszystko, co teraz potrzebujemy. Emby rozpoczęło skanowanie Twojej biblioteki multimediów. Dowiedz się więcej o naszych aplikacjach, a następnie naciśnij Zakończ, aby zobaczyć Kokpit.", + "MessagePleaseAcceptTermsOfService": "Prosimy o zaakceptowanie warunków użytkowania oraz polityki prywatności przed kontynuowaniem.", + "OptionIAcceptTermsOfService": "Akceptuję warunki użytkowania", + "SeeOurHwaGuide": "Zobacz {0}poradnik wsparcia sprzętowego{1}.", + "HeaderEmbyServerReleaseNotes": "Informacje o wersji serwera", + "AllowSubtitleDownloading": "Zezwalaj na pobieranie napisów", + "AllowSubtitleManagement": "Zezwalaj na usuwanie istniejących plików napisów", + "NewUserNameHelp": "Oto jak będzie wyglądać ten użytkownik na serwerze.", + "ChapterMarkers": "Znaczniki rozdziałów", + "LabelThumbnailImagesInterval": "Częstotliwość obrazów miniatur", + "ThumbnailImagesIntervalHelp": "Większa częstotliwość dostarcza lepsze doświadczenia, ale będzie wymagać więcej przestrzeni na dysku i więcej czasu na tworzenie.", + "LabelAuthProvider": "Dostawca uwierzytelniania:", + "AuthProviderHelp": "Administratorzy zawsze używają domyślnego dostawcy Emby, aby zapobiegać zablokowaniu serwera.", + "HeaderNewUser": "Dodaj użytkownika", + "ChangeServerDisplayName": "Zmień wyświetlaną nazwę serwera", + "ShowAdvancedSettings": "Pokaż ustawienia zaawansowane", + "ChangingMetadataImageSettingsNewContent": "Zmiany ustawień metadanych i pobierania grafik będą miały zastosowanie tylko dla nowo dodanej zawartości do biblioteki. W celu zastosowania zmian dla wcześniej dodanych pozycji, należy odświeżyć metadane manualnie.", + "AllowRemoteAccess": "Zezwalaj na zdalne połączenia z serwerem.", + "AllowRemoteAccessHelp": "Jeśli nieaktywne, wszelkie zdalne połączenia będą blokowane.", + "Alerts": "Alarmy", + "LabelTrackTitleDisplay": "Wyświetlanie nazw wbudowanych ścieżek:", + "GenerateUserFriendlyTrackTitles": "Generowanie czytelnych nazw ścieżek na podstawie dodatkowych informacji", + "PreferOriginalTrackTitles": "Preferuj wbudowane tytuły", + "TrackTitleDisplayHelp": "Wybierz wyświetlaną nazwę ścieżek dźwiękowych i napisów. Nie polecamy wbudowanych nazw, chyba że ich pilnujesz.", + "EnableTranscodingThrottle": "Aktywuj dławienie procesora", + "EnableTranscodingThrottleHelp": "Umożliwia Emby dynamiczne dostosowywanie prędkości transkodowania w celu redukcji obciążenia procesora.", + "HeaderTypeMetadataDownloaders": "{0} - dostawcy metadanych", + "HeaderTypeImageFetchers": "{0} - dostawcy grafik", + "HeaderImageOptions": "Opcje obrazu", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Zarejestruj za pomocą PayPal", + "LabelSyncTempPath": "Folder plików tymczasowych:", + "LabelSyncTempPathHelp": "Określa niestandardowy folder roboczy. Przekonwertowane media, utworzone podczas procesu konwersji, będą zapisywane tutaj.", + "LabelCustomCertificatePath": "Folder niestandardowego certyfikatu SSL:", + "LabelCustomCertificatePathHelp": "Ścieżka do pliku PKCS #12, zawierającego certyfikat i klucz prywatny, niezbędny do aktywowana obsługi TLS dla własnej domeny.", + "HeaderSetupLibrary": "Konfiguruj biblioteki mediów", + "LabelTimeLimitHours": "Limit czasu (godziny):", + "HeaderPreferredMetadataLanguage": "Preferowany język metadanych", + "LabelSaveLocalMetadata": "Zapisuj grafiki w folderach mediów", + "LabelSaveLocalMetadataHelp": "Umożliwia zapisywanie grafik i bezpośrednio w folderach mediów, co umożliwia ich łatwą edycję i przechowywanie.", + "TabAccess": "Dostęp", + "HeaderDeviceAccess": "Dostęp urządzeń", + "OptionEnableAccessFromAllDevices": "Udostępniaj na wszystkich urządzeniach", + "OptionEnableAccessToAllChannels": "Udostępniaj wszystkie kanały", + "OptionEnableAccessToAllLibraries": "Udostępniaj wszystkie biblioteki", + "DeviceAccessHelp": "Filtrowanie dostępu do urządzeń nie pozwoli używać nowych urządzeń zanim zostaną tutaj zaakceptowane.", + "LabelDisplayMissingEpisodesWithinSeasons": "Wyświetlaj w sezonach brakujące odcinki", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Ta opcja, musi zostać dodatkowo aktywowana, w bibliotece seriali w konfiguracji serwera Emby.", + "ImportMissingEpisodesHelp": "W przypadku aktywacji tej opcji, informacje o brakujących odcinkach zostaną zaimportowane do bazy Emby i będą wyświetlane na listach sezonów i seriali. Może to jednak znacznie wydłużyć czas skanowania biblioteki.", + "MessageEnablingOptionLongerScans": "Aktywowanie tej opcji może spowodować znaczne wydłużenie czasu skanowania biblioteki.", + "LabelMaxParentalRating": "Maksymalnie dozwolona kategoria wiekowa:", + "MaxParentalRatingHelp": "Zawartość z wyższą kategorią wiekową, będzie ukryta przed tym użytkownikiem.", + "LibraryAccessHelp": "Wybierz foldery mediów udostępniane temu użytkownikowi. Administratorzy będą mogli edytować wszystkie foldery używając menedżera metadanych.", + "ChannelAccessHelp": "Wybierz kanały udostępniane temu użytkownikowi. Administratorzy będą mogli edytować wszystkie kanały używając menedżera metadanych.", + "ImageUploadAspectRatioHelp": "Zalecane proporcje 1:1. Tylko JPG/PNG.", + "AlreadyPaidHelp1": "Jeśli zapłaciłeś za instalację starszej wersji aplikacji Media Browser dla Androida, nie musisz płacić ponownie żeby aktywować tą wersję. Naciśnij OK, aby wysłać nam wiadomość na adres {0}, a my aktywujemy ją dla Ciebie.", + "AlreadyPaidHelp2": "Posiadasz subskrypcję Emby Premium? Wystarczy, że zamkniesz to okno, ustawisz w Kokpicie serwera, w zakładce Premium, dane subskrypcji Premium a aplikacja zostanie odblokowana automatycznie.", + "TabMyPlugins": "Zainstalowane", + "TabCatalog": "Katalog", + "HeaderAutomaticUpdates": "Aktualizacje", + "Standard": "Standardowa", + "TabSupporterKey": "Klucz subskrypcji Premium", + "OptionHideUserLocal": "Ukrywaj tego użytkownika na ekranie logowania w sieci lokalnej", + "OptionHideUserRemote": "Ukrywaj tego użytkownika na ekranie logowania zdalnego", + "OptionHideUserFromLoginHelp": "Przydatne dla prywatności lub ukrycia kont administratorów. Użytkownik będzie musiał wprowadzić nazwę użytkownika i hasło manualnie.", + "HideFromUnusedDevices": "Ukryj tego użytkownika na ekranach logowania, na ktorych nigdy się nie logowali.", + "OptionDisableUser": "Deaktywuj tego użytkownika", + "OptionDisableUserHelp": "Jeśli aktywne, serwer nie pozwoli na żadne połączenia tego użytkownika. Aktywne połączenia zostaną natychmiastowo zerwane.", + "OptionAllowUserToManageServer": "Zezwalaj temu użytkownikowi na zarządzanie serwerem", + "HeaderFeatureAccess": "Dostęp do funkcji", + "OptionAllowMediaPlayback": "Zezwalaj na odtwarzanie mediów", + "AllLibraries": "Biblioteki", + "HeaderAllowMediaDeletionFrom": "Zezwalaj na usuwanie mediów z", + "LiveTVRecordingManagement": "Zarządzanie nagrywaniem telewizji na żywo", + "OptionAllowRemoteControlOthers": "Zezwalaj na zdalne sterowanie innymi użytkownikami", + "OptionAllowRemoteSharedDevices": "Zezwalaj na zdalne sterowanie urządzeniami współdzielonymi", + "OptionAllowRemoteSharedDevicesHelp": "Urządzenia DLNA uważane są współdzielone, dopóki użytkownik nie zacznie nimi sterować.", + "OptionAllowLinkSharing": "Zezwalaj na udostępnienie w sieciach społecznościowych", + "OptionAllowLinkSharingHelp": "Tylko strony zawierające informacje o mediach są udostępnione. Media nigdy nie są udostępniane publicznie. Udostępnienia są ograniczone czasowo i wygasną po {0} dniach.", + "OptionRelease": "Oficjalne wydanie", + "LabelAllowServerAutoRestartPlugin": "Zezwalaj na ponowne uruchomienie serwera w celu aktualizacji wtyczek", + "LabelAllowServerAutoRestartServerOrPlugin": "Zezwalaj na ponowne uruchomienie serwera w celu aktualizacji serwera lub wtyczek", + "LabelAllowServerAutoRestartHelp": "Serwer będzie ponownie uruchamiany tylko w trakcie bezczynności, kiedy brak aktywnych użytkowników.", + "LabelRunServerAtStartup": "Uruchamiaj serwer podczas uruchomienia systemu", + "LabelRunServerAtStartupHelp": "Umożliwia uruchomienieEmby w trybie aplikacji z aktywną ikoną w zasobniku systemowym. Jeśli skonfigurowałeś Emby jako usługę Windows, pozostaw tę opcję odznaczoną i ustaw typ uruchomienia usługi jako Automatyczny.", + "ButtonSelectDirectory": "Wybierz folder", + "LabelCachePath": "Folder bufora:", + "DefaultMetadataLangaugeDescription": "To są twoje ustawienia domyślne. Możesz je zmienić dla każdej biblioteki osobno.", + "LabelCachePathHelp": "Określa niestandardową lokalizację plików bufora serwera, takich jak obrazy. Pozostaw puste, aby użyć domyślnej lokalizacji.", + "LabelDefaultRecordingFolder": "Domyślny folder nagrywania", + "LabelMovieRecordingFolder": "Folder nagrywania filmów", + "LabelSeriesRecordingFolder": "Folder nagrań serii", + "SeriesRecordingFolderHelp": "(Opcjonalnie). Wybierz bibliotekę, w której mają być zapisywane nagrania seriali. Musi to być biblioteka utworzona w konfiguracji biblioteki Emby z typem zawartości ustawionym na programy telewizyjne lub zawartość mieszaną.", + "HeaderProgramData": "Dane programu", + "RecordingFolderHelp": "Wybierz domyślną bibliotekę, w której będą zapisywane nagrania. Musi to być biblioteka utworzona w konfiguracji biblioteki Emby z typem zawartości ustawionym na zawartość mieszaną.", + "MovieRecordingFolderHelp": "(Opcjonalnie). Wybierz bibliotekę, w której mają być zapisywane nagrania filmów. Musi to być biblioteka utworzona w konfiguracji biblioteki Emby z typem zawartości ustawionym na filmy lub zawartość mieszaną.", + "LabelMetadataPath": "Folder metadanych:", + "LabelMetadataPathHelp": "Określ lokalizację dla pobranej grafiki i metadanych lub zostaw to pole puste, aby przywrócić ustawienia domyślne. Jeśli to zmienisz, musisz ręcznie przenieść zawartość ze starej lokalizacji do nowej. Jeśli kiedykolwiek ręcznie zmienisz zawartość folderu metadanych, musisz uruchomić {0}zaplanowane zadanie skanowania folderu metadanych{1}.", + "LabelTranscodingTempPath": "Folder tymczasowy transkodowania:", + "LabelTranscodingTempPathHelp": "Folder ten zawiera pliki używane przez silnik transkodowania. Wprowadź niestandardowy folder lub zostaw puste, aby używać domyślnego folderu danych serwera.", + "GenerateVideoPreviewThumbnailsHelp": "Miniatury podglądu wideo zapewniają aktualizacje na żywo podczas wyszukiwania w obsługiwanych aplikacjach. Generowanie miniatur może zająć dużo czasu, powodować wysokie zużycie procesora i zużywać dodatkowe miejsce na dysku.", + "AsAScheduledTask": "jako zaplanowane zadanie", + "AsAScheduledTaskAndMediaAdded": "jako zaplanowane zadanie oraz gdy zostaną dodane multimedia", + "ButtonRefreshGuideData": "Odśwież dane przewodnika", + "LabelNumberOfGuideDays": "Liczba dni pobieranych danych przewodnika:", + "LabelNumberOfGuideDaysHelp": "Pobranie danych przewodnika z większej liczby dni umożliwia planowanie z większym wyprzedzeniem i wyświetlanie większej liczby listy, ale wydłuży to również czas pobierania. Tryb automatyczny wybierze na podstawie liczby kanałów. Należy pamiętać, że niezależnie od tego, ile dni wybierzesz, dane muszą istnieć w danych przewodnika źródłowego, aby można je było pobrać. Niektóre źródła danych przewodnika zapewniają tylko 24 godziny. Emby Guide Data obsługuje do 14 dni.", + "HeaderFetchImages": "Pobieraj obrazy:", + "LabelMaxBackdropsPerItem": "Maksymalna liczba fototapet na pozycję:", + "LabelMaxScreenshotsPerItem": "Maksymalna ilość zrzutów ekranu na pozycję:", + "LabelMinBackdropDownloadWidth": "Minimalna szerokość pobieranych fototapet:", + "LabelMinScreenshotDownloadWidth": "Minimalna szerokość pobieranego zrzutu ekranu:", + "ButtonAddScheduledTaskTrigger": "Dodaj wyzwalacz", + "ButtonAdd": "Dodaj", + "LabelTriggerType": "Typ wyzwalacza:", + "OptionOnInterval": "Cyklicznie", + "OptionAfterSystemEvent": "Po zdarzeniu systemowym", + "LabelDay": "Dzień:", + "LabelTime": "Godzina:", + "LabelEvent": "Zdarzenie:", + "OptionWakeFromSleep": "Wybudź z uspienia", + "Every": "Każdy", + "LabelEnableRealtimeMonitor": "Monitoruj w czasie rzeczywistym", + "LabelEnableRealtimeMonitorHelp": "Na obsługiwanych systemach plików, zmiany zostaną przetworzone natychmiast.", + "Community": "Społeczność", + "HeaderEmbyNews": "Wiadomości Emby", + "LabelFriendlyServerName": "Przyjazna nazwa serwera:", + "LabelFriendlyServerNameHelp": "Ta nazwa zostanie użyta do identyfikacji serwera. Jeżeli pozostanie puste, użyta zostanie nazwa komputera.", + "LabelPreferredDisplayLanguage": "Preferowany język interfejsu:", + "LabelPreferredDisplayLanguageHelp": "Tłumaczenie Emby to projekt w ciągłym rozwoju.", + "LabelReadHowYouCanContribute": "Dowiedz się jak możesz pomóc.", + "LabelCustomCss": "Niestandardowy CSS:", + "LabelCustomCssHelp": "Umożliwia zastosowanie niestandardowego arkusza stylów CSS dla interfejsu webowego.", + "LabelLocalHttpServerPortNumber": "Lokalny numer portu HTTP:", + "LabelLocalHttpServerPortNumberHelp": "Numer portu TCP w trybie HTTP, na którym serwer Emby ma być dostępny.", + "LabelPublicHttpPort": "Publiczny numer portu HTTP:", + "LabelPublicHttpPortHelp": "Publiczny numer port na który ma być zmapowany lokalny port http.", + "LabelPublicHttpsPort": "Publiczny numer portu HTTPS:", + "LabelPublicHttpsPortHelp": "Publiczny numer port na który ma być zmapowany lokalny port https.", + "RequireHttps": "Wymagaj HTTPS dla połączeń zewnętrznych", + "RequireHttpsHelp": "Jeśli aktywne, połączenia HTTP będą przekierowywane do HTTPS.", + "LabelHttpsPort": "Lokalny numer portu HTTPS:", + "LabelHttpsPortHelp": "Numer portu TCP w trybie HTTPS, na którym serwer Emby ma być dostępny.", + "LabelEnableAutomaticPortMap": "Mapuj porty automatycznie", + "LabelEnableAutomaticPortMapHelp": "Umożliwia automatyczne mapowanie publicznego numeru portu z lokalnym numerem portu za pomocą UPnP. Ta opcja może nie działać z niektórymi modelami ruterów.", + "LabelExternalDDNS": "Domena zewnętrzna:", + "LabelExternalDDNSHelp": "Jeśli korzystasz z dynamicznego adresu DNS - wprowadź go tutaj, bez protokołu i portu usługi. Aplikacje Emby będą jej używać podczas zdalnego połączenia. To pole jest wymagane w przypadku używania niestandardowego certyfikatu SSL. Przykład: domena.pl.", + "LabelMinResumePercentage": "Minimalny procent dla wznowienia:", + "LabelMaxResumePercentage": "Maksymalny procent dla wznowienia:", + "LabelMinResumeDuration": "Minimalny czas dla wznowienia (sekundy):", + "LabelMinResumePercentageHelp": "Tytuły są traktowane jako nieobejrzane, jeśli zostały zatrzymane przed tym czasem", + "LabelMaxResumePercentageHelp": "Tytuły są traktowane jako w pełni obejrzane, jeśli zostały zatrzymane po tym czasie", + "LabelMinResumeDurationHelp": "Umożliwiaj wznawianie tytułów dłuższych niż", + "HeaderStatus": "Stan", + "Subscriptions": "Subskrypcje", + "LabelEndingEpisodeNumber": "Numer ostatniego odcinka:", + "LabelEndingEpisodeNumberHelp": "Wymagane tylko dla wielo-odcinkowych plików", + "HeaderSupportTheTeam": "Wesprzyj zespół Emby", + "HeaderSupportTheTeamHelp": "Pomóż zapewnić kontynuowanie rozwoju tego projektu poprzez zakup Emby Premiere. Część całego dochodu będzie przekazana na wsparcie innych narzędzi na których Emby polega.", + "DonationNextStep": "Po zakończeniu, wróć tutaj i wprowadź klucz Emby Premiere, który otrzymasz w wiadomości e-mail.", + "HeaderRunningTasks": "Uruchomione zadania", + "ButtonUpdateNow": "Aktualizuj teraz", + "PleaseUpdateManually": "Zamknij serwer i zainstaluj najnowszą wersję manualnie.", + "ServerUpToDate": "Serwer Emby jest aktualny", + "MessagePleaseRestartServerToFinishUpdating": "Uruchom serwer ponownie, aby zakończyć stosowanie aktualizacji.", + "LabelDownMixAudioScale": "Wzmocnienie dźwięku podczas miksowania w dół:", + "LabelDownMixAudioScaleHelp": "Umożliwia zwiększenie głośności dźwięku podczas miksowania w dół. Ustaw 1, aby zachować oryginalną wartość głośności.", + "HeaderForgotKey": "Zapomniałem klucza", + "LabelSupporterEmailAddress": "Adres pocztowy, który został użyty podczas zakupu klucza.", + "ButtonRetrieveKey": "Odzyskaj klucz", + "LabelSupporterKey": "Wprowadź klucz Emby Premiere (wklej z wiadomości pocztowej):", + "LabelSupporterKeyHelp": "Wprowadź swój klucz Emby Premiere i zacznij korzystać z dodatkowych funkcji.", + "MessageInvalidKey": "Klucz Emby Premiere nie istnieje lub jest nieprawidłowy.", + "ErrorMessageInvalidKey": "W celu zarejestrowania zawartości premium, musisz posiadać aktywną subskrypcję Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Pomijaj, jeżeli film posiada wbudowane napisy", + "LabelSkipIfGraphicalSubsPresentHelp": "Przechowywanie wersji tekstowych napisów umożliwi wydajniejsze dostarczanie i zmniejszy prawdopodobieństwo transkodowania wideo.", + "HeaderDownloadLanguages": "Języki pobierania", + "LabelSkipIfAudioTrackPresent": "Pomijaj, jeżeli domyślna ścieżka dźwiękowa jest w języku pobierania", + "LabelSkipIfAudioTrackPresentHelp": "Odznacz, aby upewnić się, że wszystkie wideo mają napisy, niezależnie od języka ścieżki dźwiękowej.", + "SendMessage": "Wyślij wiadomość", + "HeaderSendMessage": "Wyślij wiadomość", + "ButtonSend": "Wyślij", + "LabelMessageText": "Tekst wiadomości:", + "LabelMessageTitle": "Tytuł wiadomości:", + "ButtonEditOtherUserPreferences": "Edytuj profil, obrazy i ustawienia osobiste tego użytkownika.", + "LabelLoginDisclaimer": "Zastrzeżenie odpowiedzialności:", + "LabelLoginDisclaimerHelp": "To będzie wyświetlone na dole strony logowania.", + "HeaderTranscodingTemporaryFiles": "Tymczasowe pliki transkodowania", + "HeaderApiKeys": "Klucze Api", + "HeaderApiKeysHelp": "Zewnętrzne aplikacje są zobowiązane do posiadania klucza Api, aby komunikować się z Serwerem Emby. Klucze są wydawane przez zalogowanie się kontem Emby, lub przez ręczne przyznanie klucza aplikacji.", + "HeaderApiKey": "Klucz Api", + "HeaderResumeSettings": "Wznawianie", + "HeaderFetcherSettings": "Ustawienia pobierania", + "HeaderActivity": "Aktywność", + "ButtonPurchase": "Kup", + "HeaderInstall": "Instalacja", + "LabelSelectVersionToInstall": "Wybierz wersję do instalacji", + "LinkLearnMoreAboutSubscription": "Dowiedz się więcej o Emby Premium", + "MessagePluginRequiresSubscription": "Ta wtyczka, po minięciu 14 dni okresu próbnego, będzie wymagać aktywnej subskrypcji Emby Premium.", + "MessagePremiumPluginRequiresMembership": "Ta wtyczka, po minięciu 14 dni okresu próbnego, będzie wymagać aktywnej subskrypcji Emby Premium.", + "HeaderDeveloperInfo": "O deweloperze", + "HeaderRevisionHistory": "Historia zmian", + "ButtonViewWebsite": "Odwiedź stronę", + "OptionSaveMetadataAsHidden": "Zapisuj metadane i obrazy jako pliki ukryte", + "LabelConnectEmail": "(Opcjonalnie) Adres e-mail do Emby Connect:", + "LabelConnectEmailHelp": "Opcjonalnie połącz tego lokalnego użytkownika z istniejącym kontem Emby Connect, aby umożliwić łatwy dostęp do logowania z dowolnej aplikacji Emby bez konieczności znajomości adresu IP serwera.", + "ButtonLearnMoreAboutEmbyConnect": "Dowiedz się więcej o Emby Connect", + "LabelDateAddedBehavior": "Data dodania dla nowej zawartości:", + "OptionDateAddedImportTime": "Używaj daty dodania do biblioteki", + "OptionDateAddedFileTime": "Używaj daty utworzenia pliku", + "LabelDateAddedBehaviorHelp": "Jeśli istnieją metadane będą one użyte zawsze przed którąkolwiek z tych opcji.", + "HeaderLibrarySettings": "Ustawienia biblioteki", + "HeaderAutomaticSubtitleDownloads": "Automatyczne pobieranie napisów", + "HeaderCameraUploadHelp": "Aplikacje Emby mogą przesyłać automatycznie fotografie i nagrania, z urządzeń mobilnych, do serwera Emby.", + "LabelCameraUploadPath": "Folder zapisywania mediów:", + "LabelCameraUploadPathHelp": "Określa niestandardowy folder zapisywania mediów. Nadpisze to jakiekolwiek domyślne ustawienia w sekcji Przekazywanie. Jeśli pozostawisz puste, użyty zostanie folder domyślny. W przypadku używania niestandardowego folderu, należy dodatkowo dodać go do biblioteki.", + "DefaultCameraUploadPathHelp": "Umożliwia ustawienie niestandardowej lokalizacji przesyłania. Jeśli pozostanie puste, zostanie użyty domyślny folder. W przypadku używania niestandardowej lokalizacji, wymagane będzie dodanie jej jako biblioteki w konfiguracji Emby.", + "LabelCreateCameraUploadSubfolder": "Utwórz osobny podfolder dla każdego urządzenia", + "LabelCreateCameraUploadSubfolderHelp": "Konkretne foldery mogą być przypisane do urządzeń przez kliknięcie ich na stronie urządzenia.", + "LabelCustomDeviceDisplayNameHelp": "Dostarcz własną nazwę wyświetlania lub zostaw puste i użyj nazwy dostarczonej przez urządzenie.", + "TabParentalControl": "Kontrola rodzicielska", + "HeaderAccessSchedule": "Harmonogram dostępu", + "HeaderAccessScheduleHelp": "Utwórz dostęp do harmonogramu aby ograniczyć go do określonych godzin.", + "HeaderLibraryAccess": "Dostęp do Bibliotek", + "HeaderChannelAccess": "Dostęp do Kanałów", + "LabelForgotPasswordUsernameHelp": "Podaj nazwę użytkownika, jeśli pamiętasz.", + "TitlePasswordReset": "Czyszczenie hasła", + "HeaderBlockItemsWithNoRating": "Blokuj pozycje z brakującą lub nierozpoznaną kategorią wiekową:", + "LabelBlockContentWithTags": "Blokuj pozycje ze znacznikami", + "LabelTagRestrictionMode": "Tryb restrykcji znaczników:", + "BlockItemsWithTheseTags": "Blokuj pozycje ze znacznikami", + "AllowItemsWithTheseTags": "Dopuszczaj tylko pozycje ze znacznikami", + "OptionAllowContentDownloading": "Zezwalaj na pobieranie mediów", + "LabelNewUserNameHelp": "Nazwy użytkowników mogą zawierać litery (a-z), numery (0-9), myślniki (-), podkreślniki (_), apostrofy (') i kropki (.)", + "HeaderThisUserIsCurrentlyDisabled": "Ten użytkownik jest aktualnie zablokowany. Aby go odblokować, zobacz opcje na dole strony.", + "OptionAllowSyncTranscoding": "Zezwalaj na pobieranie mediów wymagających transkodowania", + "AllowMediaConversion": "Zezwalaj na konwersję mediów", + "AllowMediaConversionHelp": "Umożliwia dawanie lub odbieranie dostępu do funkcji konwersji mediów.", + "OptionAllowAudioPlaybackTranscoding": "W razie potrzeby zezwalaj na transkodowanie dźwięku podczas odtwarzania multimediów", + "OptionAllowVideoPlaybackTranscoding": "W razie potrzeby zezwalaj na transkodowanie wideo podczas odtwarzania multimediów", + "OptionAllowVideoPlaybackRemuxing": "W razie potrzeby zezwalaj na zmianę formatów kontenerów podczas odtwarzania multimediów", + "OptionAllowMediaPlaybackTranscodingHelp": "Ograniczenie dostępu do transkodowania wyłączy wybór jakości oraz może powodować problemy z odtwarzaniem w aplikacji Emby z powodu nieobsługiwanych formatów mediów lub niewystarczającej przepustowości łącza.", + "LabelRemoteClientBitrateLimit": "Limit przepływności transmisji (Mbps):", + "LabelRemoteClientBitrateLimitHelp": "Opcjonalny limit przepływności transmisji dla urządzeń poza siecią domową. Używaj tej opcji, w celu zapobiegania żądaniom o wyższe przepływności, niż Twojej połączenie internetowe może obsłużyć.", + "LabelUserRemoteClientBitrateLimitHelp": "Umożliwia nadpisanie domyślnej globalnej wartości wprowadzonej w zaawansowanych ustawieniach serwera.", + "OptionEnableFullSpeedConversion": "Konwertuj z pełną prędkością", + "OptionEnableFullSpeedConversionHelp": "Domyślnie, konwersje wykonywane są z niską prędkością tak, aby minimalizować użycie zasobów.", + "OptionEnableAutomaticServerUpdates": "Aktualizuj serwer automatycznie", + "HeaderTVSources": "Źródła telewizji", + "HeaderAddTvSource": "Dodaj źródło telewizji", + "LabelTunerIpAddress": "Adres IP dekodera:", + "HeaderGuideProviders": "Dostawcy danych przewodnika", + "HeaderAddGuideSource": "Dodaj źródło danych przewodnika", + "LabelZipCode": "Kod pocztowy:", + "LabelLineup": "Kolejka:", + "LabelImportOnlyFavoriteChannels": "Ograniczaj do kanałów oznaczonych jako ulubione", + "ImportFavoriteChannelsHelp": "Jeśli aktywne, tylko kanały oznaczone jako ulubione na tunerze, będą importowane.", + "HeaderDefaultRecordingSettings": "Domyślne ustawienia nagrywania", + "LabelDisplayName": "Nazwa wyświetlana:", + "OptionDownloadImagesInAdvance": "Pobieraj obrazy z wyprzedzeniem", + "OptionDownloadImagesInAdvanceHelp": "Domyślnie, większość obrazów jest pobierana tylko kiedy jest wymagana przez aplikacje Emby. Aktywuj tą opcję, aby pobierać wszystkie obrazy z wyprzedzeniem, podczas importowania multimediów. Może powodować znacząco dłuższe skanowanie biblioteki.", + "MessageThankYouForSupporting": "Dziękujemy za wsparcie rozwoju Emby.", + "FileReadCancelled": "Odczytywanie pliku zostało anulowane.", + "FileNotFound": "Plik nie znaleziony.", + "FileReadError": "Podczas odczytywania pliku wystąpił błąd.", + "NoPluginConfigurationMessage": "Ta wtyczka nie ma żadnych ustawień.", + "HeaderNewApiKey": "Nowy klucz Api", + "HeaderNewApiKeyHelp": "Przyznaj uprawnienia aplikacji do komunikacji z Serwerem Emby.", + "MessageKeyEmailedTo": "Klucz wysłany do {0}.", + "HeaderConfirmation": "Potwierdzenie", + "MessageKeyUpdated": "Dziękujemy. Twój klucz Emby Premium został aktualizowany.", + "MessageKeyRemoved": "Dziękujemy. Twój klucz Emby Premium został usunięty.", + "TextEnjoyBonusFeatures": "Sprawdź Funkcje Specjalne", + "MessageErrorLoadingSupporterInfo": "Podczas wczytywania danych subskrypcji Emby Premium wystąpił błąd. Spróbuj ponownie później.", + "ValueTimeLimitSingleHour": "Limit czasu: 1 godzina", + "ValueTimeLimitMultiHour": "Limit czasu: {0} godzin", + "General": "Ogólne", + "HeaderScreenSavers": "Wygaszacze", + "Reporting": "Raportowanie", + "LabelStopping": "Zatrzymywanie", + "HeaderSelectCertificatePath": "Wybierz folder certyfikatu", + "HeaderSupporterBenefit": "Aktywna subskrypcja Emby Premium daje dodatkowe korzyści np: możliwość nagrywania telewizji (DVR), pobieranie mediów z serwera, wtyczki premium i więcej. {0} Dowiedz się więcej {1}.", + "LabelAbortedByServerShutdown": "(Przerwano w skuter wyłączenia serwera)", + "LabelScheduledTaskLastRan": "Ostatnio uruchomiono {0}, czas trwania {1}.", + "HeaderDeleteTaskTrigger": "Usuń wyzwalacz", + "MessageDeleteTaskTrigger": "Czy na pewno chcesz usunąć ten wyzwalacz zadania?", + "MessageNoPluginsDueToAppStore": "Użyć aplikacji internetowej Emby, aby zarządzać wtyczkami.", + "LabelVersionInstalled": "Zainstalowano {0}", + "HeaderSelectServerCachePath": "Wybierz folder bufora serwera", + "HeaderSelectTranscodingPath": "Wybierz folder tymczasowy transkodowania", + "HeaderSelectMetadataPath": "Wybierz folder metadanych", + "HeaderSelectServerCachePathHelp": "Przeglądaj lub wprowadź folder plików bufora serwera. Folder musi umożliwiać zapis plików.", + "HeaderSelectTranscodingPathHelp": "Przeglądaj lub wprowadź folder plików tymczasowych transkodowania. Folder musi umożliwiać zapis plików.", + "HeaderSelectMetadataPathHelp": "Przeglądaj lub wprowadź folder plików przechowywania metadanych. Folder musi umożliwiać zapis plików.", + "MessageConfirmRestart": "Czy na pewno chcesz uruchomić serwer Emby ponownie?", + "MessageConfirmShutdown": "Czy na pewno chcesz zamknąć serwer Emby?", + "LabelLocalAccessUrl": "Dostęp lokalny (LAN): {0}", + "LabelRemoteAccessUrl": "Dostęp zdalny (WAN): {0}", + "LabelRunningOnPort": "Uruchomiony na porcie http {0}", + "LabelRunningOnPorts": "Uruchomiony na porcie http {0} oraz na porcie https {1}", + "LabelCurrentPath": "Folder aktualny:", + "HeaderSelectMediaPath": "Wybierz folder mediów", + "HeaderSelectPath": "Wybierz folder", + "MessageDirectoryPickerInstruction": "Udziały sieciowe mogą być wprowadzone manualnie, w przypadku niewykrycia wszystkich urządzeń za pomocą przycisku \"Sieć\". Na przykład: {0} lub {1}.", + "MessageDirectoryPickerBSDInstruction": "W wypadku BSD, należy skonfigurować oprogramowanie FreeNAS aby umożliwić serwerowi Emby dostęp do danych.", + "MessageDirectoryPickerLinuxInstruction": "Dla Linuxa dystrybucji Arch Linux, CentOS, Debian, Fedora, OpenSuse albo Ubuntu, musisz uzyskać dla użytkownika Emby uprawnienia przynajmniej do odczytu pamięci masowej.", + "MetadataManager": "Menedżer metadanych", + "OptionBlockLiveTvChannels": "Kanały telewizyjne", + "OptionBlockChannelContent": "Kanały internetowe", + "ButtonRevoke": "Odwołaj", + "MessageConfirmRevokeApiKey": "Czy na pewno chcesz unieważnić klucz api? Połączenia aplikacji z serwerem Emby zostaną natychmiastowo zakończone.", + "HeaderConfirmRevokeApiKey": "Odwołaj Klucz Api", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Proszę zaakceptować warunki usługi przed kontynuowaniem", + "HeaderChangeFolderType": "Zmień typ zawartości", + "HeaderChangeFolderTypeHelp": "W celu zmiany typu, usuń bibliotekę, a następnie dodaj ją określając nowy typ.", + "HeaderAlert": "Alarm", + "MessagePleaseRestart": "Uruchom ponownie, aby zakończyć aktualizację.", + "OptionHomeVideos": "Nagrania i fotografie prywatne", + "OptionBooks": "Książki", + "HeaderMetadataReaders": "Czytniki metadanych", + "LabelMetadataReadersHelp": "Określ swój priorytet dla źródeł metadanych. Pierwszy znaleziony plik będzie odczytany.", + "HeaderSubtitleDownloaders": "Dostawcy napisów", + "SubtitleDownloadersHelp": "Włącz i ustaw dostawców napisów w preferowanej kolejności. Więcej dostawców można znaleźć w katalogu wtyczek Emby.", + "LabelMetadataDownloaders": "Dostawcy metadanych:", + "LabelMetadataDownloadersHelp": "Aktywuj i określ priorytet preferowanych dostawców metadanych. Dostawcy o niższym priorytecie będą używani tylko w przypadku brakujących informacji.", + "HeaderMetadataSavers": "Zapisywanie metadanych", + "LabelMetadataSaversHelp": "Wybierz formaty plików używane do zapisywania metadanych.", + "LabelImageFetchers": "dostawcy grafik:", + "LabelImageFetchersHelp": "Aktywuj i uporządkuj preferowane źródła obrazów według ich priorytetu.", + "PersonTypePerson": "Osoba", + "HeaderRemoveMediaLocation": "Usuń lokalizację mediów", + "MessageConfirmRemoveMediaLocation": "Czy na pewno chcesz usunąć tę lokalizację?", + "LabelNewName": "Nowa nazwa:", + "HeaderRemoveLibrary": "Usuń bibliotekę", + "MessageAreYouSureYouWishToRemoveLibrary": "Czy na pewno chcesz usunąć bibliotekę \"{0}\" ze swojego serwera Emby? Twoje pliki multimedialne nie zostaną naruszone.", + "ButtonRename": "Zmień nazwę", + "HeaderPluginInstallation": "Instalacja wtyczki", + "MessageTrialExpired": "Zakończył się okres próbny dla tej opcji", + "MessageTrialWillExpireIn": "Okres próbny dla tej funkcji wygaśnie za {0} dni.", + "ValuePriceUSD": "Cena: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Jesteś zarejestrowany jako użytkownik tej opcji i będziesz mógł kontynuować jej używanie z aktywną subskrypcją Emby Premium.", + "HeaderSelectExternalPlayer": "Wybierz zewnętrzny Odtwarzacz", + "HeaderExternalPlayerPlayback": "Odtwarzanie na zewnętrznym Odtwarzaczu", + "HeaderThankYou": "Dziękuje", + "HeaderSelectUploadPath": "Wybierz folder zapisywania", + "ErrorMessageStartHourGreaterThanEnd": "Czas końcowy musi być większy niż czas początkowy.", + "MessagePluginConfigurationRequiresLocalAccess": "Aby skonfigurować ten plugin zaloguj się bezpośrednio do lokalnego serwera.", + "MovieLibraryHelp": "Zapoznaj się z instrukcją{1} nazewnictwa filmów {0}Emby.", + "TvLibraryHelp": "Zapoznaj się z instrukcją{1} nazewnictwa seriali {0}Emby.", + "BookLibraryHelp": "Wspierane są wersje tekstowe oraz dźwiękowe. Sprawdź przewodnik{1} nazewnictwa książek {0}Emby.", + "MessageGamePluginRequired": "Wymaga instalacji wtyczki GameBrowser", + "HeaderUnlockApp": "Odblokuj aplikację", + "MessagePaymentServicesUnavailable": "Serwis płatności jest chwilowo niedostępny. Proszę spróbować później.", + "NoNewDevicesFound": "Nie znaleziono żadnych nowych urządzeń. Aby dodać tuner, zamknij ten dialog i wprowadź informacje o urządzeniu ręcznie.", + "MessageConfirmDeleteTunerDevice": "Czy na pewno chcesz usunąć to urządzenie?", + "MessageConfirmDeleteGuideProvider": "Czy na pewno chcesz usunąć tego dostawcę przewodnika telewizyjnego?", + "HeaderDeleteProvider": "Usuń dostawcę", + "ErrorAddingTunerDevice": "Wystąpił błąd podczas dodawania tuner telewizyjnego. Upewnij się, że masz do niego dostęp i spróbuj ponownie.", + "ErrorSavingTvProvider": "Wystąpił błąd podczas dodawania dostawcy telewizji. Upewnij się, że jest on dostępny i spróbuj ponownie.", + "ErrorGettingTvLineups": "Podczas pobierania programu telewizyjnego wystąpił błąd. Upewnij się, że informacje są poprawne i spróbuj ponownie.", + "MessageCreateAccountAt": "Utwórz konto na {0}", + "ErrorPleaseSelectLineup": "Wybierz program i spróbuj ponownie, jeśli żadne programy nie są dostępne, sprawdź czy twój login, hasło i kod pocztowy jest poprawny.", + "ErrorValidatingSupporterInfo": "Wystąpił błąd podczas sprawdzania informacji o subskrypcji Emby Premium. Spróbuj ponownie później.", + "LabelLocalSyncStatusValue": "Stan: {0}", + "HeaderTopPlugins": "Najpopularniejsze wtyczki", + "ForAdditionalLiveTvOptions": "Przeglądaj {0}katalog wtyczek{1} Emby, aby zainstalować dodatkowych dostawców telewizji.", + "AddUser": "Dodaj użytkownika", + "HeaderEmailAddress": "Adres e-mail", + "NumLocationsValue": "{0} foldery", + "PleaseAddAtLeastOneFolder": "Proszę dodaj przynajmniej jeden folder do tej listy poprzez kliknięcie guzika Dodaj", + "ErrorAddingMediaPathToVirtualFolder": "Wystąpił błąd podczas dodawania folderu mediów. Upewnij się, że folder jest prawidłowy a serwer Emby ma dostęp do tej lokalizacji.", + "ErrorAddingEmbyConnectAccount3": "Konto Emby jest już połączone z innym użytkownikiem lokalnym. Konto Emby może być połączone tylko z jednym użytkownikiem lokalnym w danym czasie.", + "HeaderConfirmPluginInstallation": "Potwierdź instalację pluginu", + "PleaseConfirmPluginInstallation": "Kliknij OK aby potwierdzić, iż zapoznałeś się z powyższym i chcesz zainstalować plugin.", + "MessagePluginInstallDisclaimer": "Wtyczki tworzone przez członków społeczności Emby są doskonałym sposobem, aby zwiększyć swoje przeżycia z dodatkowymi funkcjami i zaletami Emby. Przed instalacją należy zdawać sobie sprawę jakie efekty mogą mieć na twój serwer Emby, takie jak dłuższy skan biblioteki, dodatkowe przetwarzanie w tle, a także obniżenie stabilności systemu.", + "HardwareAccelerationWarning": "Aktywacja akceleracji sprzętowej może powodować niestabilność na niektórych środowiskach. Upewnij się, że system operacyjny i sterowniki karty graficznej są aktualne. Jeżeli masz problemy z odtwarzaniem wideo po aktywacji, przywróć to ustawienie do wartości Automatycznie.", + "ValueExample": "Przykład: {0}", + "LabelFileOrUrl": "Plik, lub adres url:", + "OptionEnableForAllTuners": "Aktywuj dla wszystkich tunerów", + "HeaderTuners": "Tunery", + "DrmChannelsNotImported": "Kanały z DRM nie zostaną zaimportowane.", + "LabelAllowHWTranscoding": "Zezwalaj na sprzętowe transkodowanie", + "AllowHWTranscodingHelp": "Jeśli włączone, zezwalaj tunerowi na transkodowanie strumieni w locie. To może pomóc zmniejszyć prośby serwera Emby na transkodowanie.", + "MetadataSettingChangeHelp": "Zmiana ustawień metadanych wpłynie na nową treść, która będzie dodawana w przyszłości. W celu odświeżenia istniejącej zawartości, otwórz ekran szczegółów, a następnie naciśnij przycisk Odśwież lub wykonaj odświeżanie wsadowe, korzystając z menedżera metadanych.", + "RecordingPathChangeMessage": "Zmiana folderu z nagraniami nie spowoduje przeniesienia już istniejących nagrań, ze starej lokalizacji do nowej. Jeśli jest to wymagane, należy to zrobić manualnie.", + "LabelLocalIpAddress": "Lokalny adres IP:", + "LabelBindToLocalNetworkAddressHelp": "Opcjonalne. Zastąpi lokalny adres IP, którym serwer Emby przedstawia się aplikacjom Emby. Jeśli pozostanie puste, serwer będzie automatycznie wykrywać lokalny adres IP.", + "SettingsWarning": "Zmiana tych wartości może spowodować niestabilność lub awarię połączenia. Jeśli wystąpią jakiekolwiek problemy, zalecamy powrót do ustawień ich na domyślne.", + "OptionSaveMetadataAsHiddenHelp": "Zmiana ta będzie miała zastosowanie do nowych metadanych zapisanych w przyszłości. Istniejące pliki metadanych zostaną zaktualizowane przy następnym zapisie przez serwer Emby.", + "EnablePhotos": "Aktywuj fotografie", + "EnablePhotosHelp": "Fotografie będą wykrywane i wyświetlane obok innych plików multimedialnych.", + "ImportPlaylists": "Importuj pliki listy odtwarzania", + "ImportPlaylistsHelp": "Listy odtwarzania znalezione w katalogach multimediów można zaimportować do serwera Emby.", + "SaveThumbnailImagesIntoMediaFolders": "Zapisuj obrazy podglądu wideo w folderach mediów", + "LabelGenerateVideoPreviewThumbnails": "Generuj miniatury podglądu wideo:", + "LabelEnableDebugLogging": "Rejestruj szczegółowe informacje diagnostyczne", + "OptionEnableExternalContentInSuggestions": "Dodawaj zewnętrzną zawartość do polecanych", + "OptionEnableExternalContentInSuggestionsHelp": "Umożliwia dodawanie zwiastunów i programów telewizyjnych do polecanej zawartości.", + "LabelOptionalNetworkPath": "(Opcjonalne) Udostępniony folder sieciowy:", + "LabelOptionalNetworkPathHelp": "Jeśli folder jest udostępniony w sieci domowej, podanie jego ścieżki, umożliwi bezpośrednie odtwarzanie na innych urządzeniach.", + "SynologyUpdateInstructions": "Zaloguj się do DSM i przejdź do Centrum Pakietów w celu aktualizacji.", + "HeaderRecordingPostProcessing": "Przetwarzanie finalne nagrań", + "LabelPostProcessorArguments": "Argumenty linii poleceń aplikacji finalnego przetwarzania", + "PostProcessorArgumentsHelp": "Następujące zmienne są obsługiwane w wierszu poleceń, aby umożliwić przekazywanie danych do postprocesora:", + "LabelPostProcessor": "Aplikacja finalnego przetwarzania:", + "DvrPostProcessorPathArgument": "{path}: Pełna ścieżka do nowego pliku nagrania", + "OptionAutomaticallyGroupSeries": "Scalaj seriale znajdujące się w wielu folderach", + "OptionAutomaticallyGroupSeriesHelp": "Umożliwia automatyczne scalanie seriali, rozproszonych w wielu folderach biblioteki, w pojedyncze seriale.", + "WhenDidYouPurchaseApp": "Kiedy pierwotnie zakupiono tę aplikację?", + "PreferEmbeddedTitlesOverFileNames": "Preferuj wbudowane tytuły zamiast nazw plików", + "PreferEmbeddedTitlesOverFileNamesHelp": "Określa domyślnie wyświetlany tytuł, gdy brak dostępnych metadanych lokalnych i od dostawców internetowych.", + "FriendlyNameForReferenceHelp": "Przyjazna nazwa używana dla twojej własnej informacji.", + "HeaderLiveTvTunerSetup": "Konfiguracja tunera telewizyjnego", + "HeaderTVSourceSetup": "Konfiguracja źródła telewizji", + "HeaderDetectMyDevices": "Wykryj urządzenia", + "MessagePleaseWait": "Proszę czekać. To może potrwać chwilę.", + "DetectingDevices": "Wykrywanie urządzeń", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Po wstępnym imporcie, automatycznie odświeżaj metadane z internetu:", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatyczne odświeżanie metadanych dla odcinków z tytułami zastępczymi, takimi jak TBA:", + "EveryNDays": "Co {0} dni", + "LabelCertificatePassword": "Hasło do certyfikatu:", + "LabelCertificatePasswordHelp": "Jeśli Twój certyfikat wymaga podania hasła, wprowadź go tutaj.", + "HeaderNewLibrary": "Nowa biblioteka", + "HttpsRequiresCert": "Korzystanie z bezpiecznych połączeń, wymaga dostarczenia zaufanego certyfikatu SSL takiego, jak Lets Encrypt. Jeśli nie posiadasz certyfikatu, musisz dezaktywować bezpieczne połączenia.", + "ServerRestartNeededAfterPluginInstall": "Serwer Emby będzie wymagał ponownego uruchomienia po zainstalowaniu wtyczki.", + "PluginInstalledMessage": "Wtyczka została poprawnie zainstalowana. Serwer Emby będzie wymagała ponownego uruchomienia w celu zastosowania zmian.", + "MessagePremiereStatusGood": "Posiadasz abonament {0} Emby Premiere, a liczba używanych urządzeń jest daleka od limitu.", + "MessagePremiereStatusClose": "Posiadasz abonament {0} Emby Premiere i jesteś bliski wykorzystaniu limitu urządzeń.", + "MessagePremiereExtendedPlans": "Rozważ {0} rozszerzony plan urządzenia{1}", + "MessagePremiereStatusOver": "Posiadasz abonament {0} Emby Premiere, ale przekroczyłeś limit używanych urządzeń.", + "ListItemPremiereSub": "Subskrypcja {0} kupiona przy pomocy {2} wygasa {1}", + "LabelClickToManage": "Kliknij, aby zarządzać tą subskrypcją", + "LabelCancelInfo": "Możesz zarządzać subskrypcją bezpośrednio na stronie {0}", + "LabelAlreadyCanceled": "Ta subskrypcja została anulowana. Klucz pozostanie ważny do czasu wygaśnięcia.", + "HeaderCancelSub": "Anuluj subskrypcję Emby Premiere", + "MessageConfirmSubCancel": "Prosimy nie odchodź. Będzie CI brakowało wszystkich wspaniałych funkcji subskrypcji Emby Premiere!", + "ButtonCancelSub": "Wiem, anuluj mimo wszystko", + "ButtonDontCancelSub": "Zachowaj subskrypcję Emby Premiere", + "MessageSubCancelReqSent": "Do właściciela klucza została wysłana wiadomość pocztowa. Postępuj zgodnie z instrukcjami zawartymi w tej wiadomości, aby zakończyć anulowanie subskrypcji. Mamy nadzieję, że wkrótce wrócisz!", + "MessageSubCancelError": "Podczas próby anulowania wystąpił błąd. Prześlij wiadomość na adres {0}, a skontaktujemy się w tej sprawie.", + "LabelAlreadyCancelled": "Ta subskrypcja została anulowana. Twój rachunek nie zostanie obciążony ponownie, ale dodatkowe funkcjonalność będą działały do czasu podanego poniżej.", + "AllowOnTheFlySubtitleExtraction": "Zezwalaj na wydobywanie napisów w locie", + "AllowOnTheFlySubtitleExtractionHelp": "Napisy wbudowane mogą zostać wydobyte z plików wideo, a Emby może je dostarczać w postaci zwykłego tekstu, zapobiegając transkodowaniu wideo. Na niektórych systemach może to zabierać dużo czasu i powodować wstrzymywanie odtwarzania wideo podczas procesu ekstrakcji. Dezaktywuj tę opcję, aby wbudowane napisy były wypalane w transkodowanym wideo, gdy nie są obsługiwane przez urządzenie klienta.", + "AllowOnTheFlyFontExtraction": "Zezwalaj na natychmiastowe wyodrębnianie czcionek napisów", + "AllowOnTheFlyFontExtractionHelp": "Osadzone czcionki mogą być wyodrębniane z filmów i dostarczane do aplikacji Emby w celu obsługi filmów zawierających niestandardowe czcionki. W niektórych systemach może to zająć dużo czasu i spowodować zatrzymanie odtwarzania wideo podczas procesu wyodrębniania.", + "EnableDebugLoggingHelp": "Rejestrowanie informacji diagnostycznych powinno być aktywowane tylko w celu rozwiązania problemów. Zwiększona ilość operacji na systemie plików może uniemożliwiać, w przypadku niektórych środowisk, przejście maszyny serwera w tryb uśpienia.", + "LabelSimultaneousConnectionLimit": "Limit jednoczesnych transmisji:", + "SimultaneousConnectionLimitHelp": "Określa maksymalną liczbę dozwolonych jednoczesnych transmisji. Wprowadź 0 jako brak limitu.", + "LaunchWebAppOnStartup": "Uruchamiaj aplikację webową Emby w przeglądarce po uruchomieniu serwera Emby", + "LaunchWebAppOnStartupHelp": "Zaznaczenie tej opcji spowoduje otwieranie aplikacji webowej w domyślnej przeglądarce po uruchomieniu serwera Emby. Aplikacja webowa nie będzie otwierana w trakcie ponownego uruchomienia serwera.", + "LabelReferrerHeader": "Nagłówek HTTP Referer", + "LabelUserAgentHeader": "Nagłówek HTTP User-Agent", + "SupplyCustomValueIfNeeded": "Wprowadź niestandardową wartość nagłówka HTTP, jeśli konieczne.", + "HeaderConfigureRemoteAccess": "Konfiguracja dostępu zdalnego", + "LearnHowToCreateSynologyShares": "Dowiedz się jak udostępniać foldery w Synology.", + "LabelAllowedRemoteAddresses": "Filtr adresów IP:", + "LabelAllowedRemoteAddressesMode": "Tryb filtra adresów IP:", + "Whitelist": "Biała lista", + "Blacklist": "Czarna lista", + "AllowedRemoteAddressesHelp": "Lista rozdzielona przecinkiem w postaci adresów IP lub adresów IP z maską sieciową dla całych podsieci. W przypadku pozostawienia pustego pola, dopuszczalne będą połączenia ze wszystkich zdalnych adresów.", + "LabelLanNetworks": "Sieci lokalne:", + "LanNetworksHelpText": "Lista adresów IP rozdzielonych przecinkami lub wpisów IP/maski sieciowej dla sieci, które będą brane pod uwagę w sieci lokalnej podczas wymuszania ograniczeń przepustowości i dostępu zdalnego. Jeśli ustawione, wszystkie inne adresy IP będą uważane za znajdujące się w sieci zewnętrznej. Jeśli pozostawione puste, tylko podsieć serwera i wspólne prywatne podsieci IP (192.168.0.0/24, 172.16.0.0/12 itd.) są uważane za znajdujące się w sieci lokalnej.", + "LabelSecureConnectionsMode": "Tryb zabezpieczania połączenia:", + "PreferredNotRequired": "Preferowane, ale niewymagane", + "RequiredForAllRemoteConnections": "Wymagane dla wszystkich zdalnych połączeń", + "HandledByProxy": "Obsługiwane przez usługę pośredniczącą", + "SaveSubtitlesIntoMediaFolders": "Zapisz pobrane napisy w folderach multimediów", + "SaveSubtitlesIntoMediaFoldersHelp": "Umożliwia łatwiejsze zarządzanie napisami poprzez składowanie ich razem z plikami wideo.", + "AutomaticSubtitleDownloadInstructions": "W celu zarządzania pobieraniem napisów, należy w konfiguracji biblioteki zmodyfikować ustawienia pobierania napisów.", + "ProviderNeedsSetupWithUrl": "{0} wymaga dodatkowej konfiguracji na ekranie {1} ustawień{2} w Emby Server.", + "LabelEnableHardwareAcceleration": "Aktywuj akcelerację sprzętowe kiedy dostępna:", + "HeaderPreferredHardwareDecoders": "Preferowane dekodery sprzętowe", + "HeaderPreferredHardwareEncoders": "Preferowane kodery sprzętowe", + "AllowChangingImageAndPassword": "Zezwalaj temu użytkownikowi na zmianę hasła i obrazu profilu", + "LabelSimultaneousStreamLimit": "Limit jednoczesnych transmisji wideo:", + "SimultaneousStreamLimitHelp": "Określa maksymalną liczbę jednoczesnych sesji odtwarzania wideo.", + "LabelMusicFolderStructure": "Struktura folderu muzycznego:", + "LabelMusicFolderStructureHelp": "Stanowi to wskazówkę dla skanera biblioteki o sposobie organizacji folderów. Jeśli nie masz pewności lub jeśli Twoje foldery nie pasują dokładnie do jednej z opcji, wybierz domyślną opcję Inne.", + "OtherOrUnstructured": "Inna lub nieuporządkowana", + "PerfectArtistAlbumTrack": "Idealnie zorganizowane w foldery wykonawców\\albumów, z utworami bezpośrednio w folderach albumów.", + "PerfectAlbumTrack": "Idealnie zorganizowane w foldery albumów, z utworami bezpośrednio w folderach albumów.", + "LabelMinCollectionSize": "Minimalny rozmiar automatycznej kolekcji:", + "PerfectAuthorAudioBookTrack": "Doskonale zorganizowane w autorskich folderach książek, z utworami bezpośrednio w folderach książek.", + "PerfectAudioBookTrack": "Doskonale zorganizowane w folderach książek, z utworami bezpośrednio w folderach książek.", + "MinCollectionSizeHelp": "Automatycznie twórz kolekcje, gdy w biblotece masz co najmniej wybraną ilość tytułów. Zmiana tej wartości nie wpłynie na istniejące kolekcje.", + "LabelImportCollections": "Importuj informacje o kolekcjach od dostawców metadanych", + "LabelImportCollectionsHelp": "Po włączeniu spowoduje to zaimportowanie informacji o kolekcji od włączonych dostawców metadanych. Może to spowodować tworzenie niechcianych kolekcji. Wyłączenie uniemożliwi automatyczne tworzenie przyszłych kolekcji, ale nie spowoduje usunięcia istniejących.", + "LabelAllowAdultMetadata": "Zezwalaj na metadane dla dorosłych", + "LabelAllowAdultMetadataHelp": "Zezwalaj na pasujące tytuły dla dorosłych podczas wyszukiwania metadanych w Internecie.", + "HeaderVideoPreviewThumbnails": "Miniatury podglądu wideo", + "LabelEnableHDRToneMapping": "Włącz mapowanie tonów HDR:", + "EnableHDRToneMappingHelp": "Mapowanie tonów zapewni prawidłową konwersję kolorów podczas transkodowania treści HDR, która w innym przypadku będzie mocno przyciemniona i nienasycona. Przy włączonej tej funkcji mogą być potrzebne dodatkowe sterowniki do obsługi akceleracji sprzętowej. Aby uzyskać szczegółowe informacje, zapoznaj się z naszym przewodnikiem konfiguracji akceleracji sprzętowej.", + "WithHardwareAcceleratedTranscoding": "Tak, tylko z akcelaracją sprzętową", + "TranscodingStillInitializing": "Usługi transkodowania serwera Emby nadal się uruchamiają. Ten ekran zostanie automatycznie odświeżony, gdy usługi transkodowania będą gotowe.", + "WithEitherHardwareOrSoftwareTranscoding": "Tak, z transkodowaniem sprzętowym lub programowym", + "ToneMappingInHardwareDescription": "Mapowanie tonów będzie wykonywane z akceleracją sprzętową, gdy jest ona włączona i obsługiwana przez sprzęt, ale pomijana we wszystkich innych przypadkach.", + "ToneMappingInSoftwareDescription": "Mapowanie tonów będzie wykonywane programowo przez procesor. Jest to znacznie wolniejsze niż mapowanie tonów z przyspieszeniem sprzętowym i wymaga bardzo wydajnego serwera.", + "ToneMappingInBothDescription": "Mapowanie tonów zostanie wykonane z akceleracją sprzętową, gdy jest ona włączona i obsługiwana przez sprzęt, a we wszystkich pozostałych przypadkach będzie korzystać z programowego. Programowe mapowanie tonów jest znacznie wolniejsze niż mapowanie tonów przyspieszane sprzętowo i wymaga bardzo wydajnego serwera.", + "AutoMapped": "Automatycznie mapowane", + "ManuallyMapped": "Ręcznie mapowane", + "NotMappedToGuideData": "Nie zmapowane do gromadzonych danych", + "MappedToValue": "Zmapowane do {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatycznie wybudzaj serwer, aby wykonać nagrania", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Zdarzenia budzenia zostaną zaplanowane w systemie operacyjnym serwera. Wyłączenie tej opcji uniemożliwi planowanie przyszłych zdarzeń wybudzania, ale nie usunie żadnych wcześniej zaplanowanych zdarzeń.", + "Database": "Baza danych", + "LabelOptimizeDatabaseOnShutdown": "Próba optymalizacji bazy danych po wyłączeniu serwera", + "LabelOptimizeDatabaseOnShutdownHelp": "Operacja optymalizacji bazy danych jest zwykle wykonywana bez operacji, ale od czasu do czasu przeprowadza analizę, jeśli wydaje się, że będzie to przydatne dla planowania zapytań. Może to spowodować wydłużenie czasu zamykania serwera Emby.", + "LabelDatabaseCacheSize": "Rozmiar pamięci podręcznej bazy danych (MB)", + "LabelDatabaseCacheSizeHelp": "Ustawia ilość danych, które baza danych będzie przechowywać w pamięci jednocześnie, na plik bazy danych. Większa wartość może pomóc w poprawie wydajności serwera Emby. Wymaga ponownego uruchomienia serwera, aby odniosło skutek.", + "LabelDatabaseAnalysisLimit": "Limit wiersza analizy", + "LabelDatabaseAnalysisLimitHelp": "Gdy baza danych jest zoptymalizowana, jest to przybliżona liczba wierszy sprawdzanych w każdym indeksie przez polecenie ANALIZA. Większa wartość zwiększy efektywność optymalizacji bazy danych, ale może spowodować wydłużenie czasu zamykania serwera Emby.", + "LabelVacuumDb": "Odkurz bazę danych przy następnym uruchomieniu serwera Emby", + "LabelVacuumDbHelp": "Odkurzanie (vaccum) odbudowuje plik bazy danych, przepakowując go tak aby zajmował mniej miejsca. W niektórych przypadkach może to poprawić wydajność serwera Emby. Należy pamiętać, że serwer Emby nie będzie mógł być używany w czasie procesu odkurzania, nie będzie też możliwości monitorowania postępu tego procesu. Należy unikać zamykania procesu serwera Emby w tym czasie, ponieważ może to doprowadzić do uszkodzenia bazy danych. Jest to jednorazowa operacja, która zostanie odznaczona przy następnym uruchomieniu serwera.", + "AdvancedOptionsWarning": "Są to opcje zaawansowane i generalnie powinny być pozostawione domyślnie, chyba że masz powód, aby je zmienić.", + "HeaderRecentlyActiveDevices": "Ostatnio aktywne urządzenia", + "YesUntilServerRestart": "Tak, do następnego restartu serwera", + "YesUntilLogRotate": "Tak, do następnej rotacji pliku dziennika", + "LabelSubtitleDownloadMaxAge": "Przestań próbować automatycznie pobierać napisy do filmów starszych niż:", + "SubtitleDownloadMaxAgeHelp": "Data oparta na dacie dodania w metadanych pliku.", + "NoAgeLimit": "Brak limitu wiekowego", + "AnonymizeLogContents": "Anonimizuj zawartość dziennika", + "Markers": "Znaczniki", + "LabelGenerateIntroVideoMarkers": "Wygeneruj znaczniki czołówki wideo:", + "GenerateIntroVideoMarkersHelp": "Wykrywa czołówki materiałów wideo i wyświetla przycisk „Pomiń czołówkę” w aplikacjach Emby. Wykrywanie czołówki może zająć dużo czasu i powodować wysokie użycie procesora lub dysku.", + "LabelCopyFromUser": "Skopiuj ustawienia z konta użytkownika:", + "CopyFromUserHelp": "Opcjonalnie. Szybciej zakładaj nowe konta użytkowników, kopiując ustawienia z innego.", + "UserPolicy": "Polityki użytkownika (dostęp do funkcji i bibliotek, kontrola rodzicielska, itp.)", + "UserConfiguration": "Konfiguracja użytkownika (preferowany język ścieżki dźwiękowej i napisów, sortowanie biblioteki, itp.)", + "UserDataAndDescription": "Dane użytkownika (ulubione, stany oglądania i słuchania itp.)", + "HeaderCopyOptions": "Kopiuj ustawienia", + "LabelMultiRestrictionMode": "Tryb zwiększonej restrykcji:", + "MultiRestrictionModeAll": "Zezwalaj na zawartość odpowiadającą zarówno ograniczeniom dotyczącym klasyfikacji, jak i znaczników", + "MultiRestrictionModeAny": "Zezwalaj na zawartość odpowiadającą ograniczeniom dotyczącym klasyfikacji lub tagów", + "AllowMappingByChannelNumber": "Umożliwienie mapowania do prowadzenia danych za pomocą numerów kanałów", + "AllowMappingByChannelNumberHelp": "Może to być użyte jako rozwiązanie awaryjne do dopasowania kanałów z tunera do danych przewodnika, gdy nie można znaleźć dopasowania na podstawie nazwy kanału. Może to prowadzić do niedokładnego dopasowania, jeśli numery kanałów z tunera nie są poprawne.", + "LabelPreferredSourceForChannelLogos": "Preferuj loga kanałów z danych przewodnika nad tunerem, gdy oba są dostępne.", + "LabelPreferredSourceForChannelNumbers": "Preferuj numery kanałów z danych przewodnika nad tunerem, gdy oba są dostępne.", + "HeaderSoftwareEncoders": "Enkodery programowe", + "LabelProxyHeaderMode": "Odczytywanie nagłówków proxy w celu określenia adresów IP klientów", + "ProxyHeadersRemoteOnly": "Tylko wtedy, gdy zawierają zdalne adresy sieciowe", + "ProxyHeaderModeHelp": "Określa, czy nagłówki żądań, takie jak {0} i {1}, powinny być używane do określenia adresu IP łączących się urządzeń.", + "AllowCameraUpload": "Zezwalaj na przesyłanie z kamery", + "AllowCameraUploadHelp": "Jeśli jest to dozwolone i włączone w aplikacjach mobilnych Emby, użytkownicy mogą automatycznie przesyłać zdjęcia i filmy zrobione aparatem na ten serwer Emby.", + "CameraUploadMustBeGranted": "Dostęp do przesyłania obrazu z kamery musi być również przyznany przez administratora serwera.", + "EnableReadingAndWritingPeopleMetadata": "Umożliwienie odczytu i zapisu plików metadanych osób", + "EnableReadingAndWritingPeopleMetadataHelp": "Wymaga zainstalowania wtyczki Nfo Metadata. Umożliwi to zapisywanie edycji osób w plikach nfo metadanych, ale spowoduje dłuższe skanowanie biblioteki.", + "LabelIgnoreSampleFiles": "Ignoruje pliki zawierające słowo sample w nazwie pliku, jeśli ich rozmiar jest mniejszy niż (MB).", + "PreferredChannelImageSource": "Preferowane źródło obrazu kanału", + "PreferredChannelImageSourceHelp": "Wybierz preferowany obraz kanału, gdy zarówno tuner, jak i dane przewodnika mają dostępne obrazy.", + "CacheImagesInServerData": "Przechowuj buforowaną kopię obrazów w folderze metadanych serwera.", + "CacheImagesInServerDataHelp": "Jeśli multimedia i obrazy są przechowywane na innym komputerze, przechowywanie buforowanej kopii obrazów w folderze metadanych serwera ograniczy dostęp do sieci i może poprawić wydajność. Kosztem utworzenia tej pamięci podręcznej jest to, że skanowanie biblioteki będzie wolniejsze, a folder metadanych serwera zajmie znacznie więcej miejsca na dysku.", + "AllowSharingPersonalContent": "Zezwalaj na udostępnianie osobistych treści, takich jak listy odtwarzania, innym użytkownikom na tym serwerze.", + "AllowSharingPersonalContentHelp": "Po przyznaniu tej opcji użytkownik będzie mógł udostępniać swoje listy odtwarzania innym użytkownikom. Elementy list odtwarzania będą nadal ograniczone w oparciu o dostęp do biblioteki użytkownika i kontrolę rodzicielską.", + "LiveBufferSizeHours": "Limit rozmiaru bufora strumienia na żywo (godziny)", + "LiveBufferSizeHoursHelp": "Dłuższy bufor zapewni większą możliwość wyszukiwania do przodu i do tyłu podczas transmisji na żywo, ale zużyje więcej miejsca na dysku.", + "LabelTranscodingMaxResolution": "Maksymalna rozdzielczość transkodowania", + "TranscodingMaxResolutionHelp": "Ustaw górny limit, który będzie obowiązywał dla wszystkich transkodowań wideo, niezależnie od ustawień jakości w odtwarzaczu Emby. Pomoże to uprościć procesy transkodowania i zmniejszyć zużycie zasobów serwera.", + "EnableHevcEncodingExp": "Włącz kodowanie wideo HEVC (eksperymentalne)", + "EnableHevcEncodingHelp": "Włącz transkodowanie za pomocą kodeka HEVC, jeśli jest obsługiwany przez klienta.", + "LabelEnableMultiPartItems": "Włącz elementy wieloczęściowe", + "EnableMultiPartItemsHelp": "Automatycznie wykrywaj i grupuj pliki nazwane jako część 1, część 2 itd. Dodatkowe części będą wyświetlane na głównym ekranie szczegółów elementu.", + "MultiVersionItemsDetectionHelp": "Automatycznie wykrywaj i grupuj różne wersje tego samego elementu. Wybór wersji będzie oferowany na głównym ekranie szczegółów elementu. Grupowanie na podstawie plików wymaga odpowiedniego nazwania i zorganizowania plików.", + "MultiVersionMoviesDetectionHelp": "Grupowanie na podstawie metadanych spowoduje grupowanie filmów, które mają te same identyfikatory zewnętrzne (MovieDb, Imdb itp.).", + "EnableMultiPartItemsTVHelp": "Nieobsługiwane w przypadku odcinków programów telewizyjnych.", + "HeaderAutomaticGrouping": "Automatyczne grupowanie", + "LabelMultiVersionItemsDetection": "Wykrywanie elementów o wielu wersjach", + "MultiVersionItemsDetectionBoth": "Wykrywaj elementy o wielu wersjach na podstawie plików i metadanych", + "MultiVersionItemsDetectionFiles": "Wykrywaj elementy o wielu wersjach na podstawie plików", + "MultiVersionItemsDetectionMetadata": "Wykrywaj elementy o wielu wersjach na podstawie metadanych", + "LabelNetworkRequestProtocol": "Protokół żądania sieciowego", + "NetworkRequestProtocolHelp": "Wybierz protokół, który ma być używany do wychodzących żądań sieciowych do dostawców metadanych i innych usług. W niektórych przypadkach, gdy nie można dotrzeć do usług zewnętrznych za pomocą protokołu IPv6, może być konieczne ustawienie tej opcji tylko na IPv4", + "GenerateChaptersForVideos": "Generuj rozdziały dla filmów, które nie zawierają osadzonych informacji o rozdziałach", + "GeneratedChapterInterval": "Wygenerowany interwał rozdziału", + "StartOfSection": "Start of chapter", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "Margins": "Margins", + "PreviousPage": "Previous page", + "CurrentPage": "Current page", + "TotalPages": "Total pages", + "NextPage": "Next page", + "RightToLeft": "Right-to-left order", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/pt-BR.json b/strings/pt-BR.json new file mode 100644 index 0000000..1338776 --- /dev/null +++ b/strings/pt-BR.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Pronto!", + "ThisWizardWillGuideYou": "Este assistente irá guiá-lo pelo processo de instalação. Para começar, por favor selecione seu idioma preferido.", + "HeaderCreateYourFirstUser": "Crie seu primeiro usuário", + "ButtonQuickStartGuide": "Guia Inicial Rápido", + "MoreUsersCanBeAddedLater": "Mais usuários podem ser adicionados posteriormente nas configurações do Emby Server.", + "UserProfilesIntro": "Emby inclui suporte nativo para perfis de usuários, permitindo que cada usuário tenha seus próprios ajustes de visualização, estado da reprodução e controles etários.", + "WizardCompleted": "Isto é tudo que precisamos no momento. Emby começou rastrear sua biblioteca de mídia. Confira algumas de nossas apps e então cliqueTerminar para ver o Painel do Servidor.", + "MessagePleaseAcceptTermsOfService": "Por favor, aceite os termos de uso e política de privacidade antes de continuar.", + "OptionIAcceptTermsOfService": "Eu aceito os termos de uso", + "SeeOurHwaGuide": "Veja nosso {0}guia de configuração de aceleração do hardware{1}.", + "HeaderEmbyServerReleaseNotes": "Notas de versão do Emby Server", + "AllowSubtitleDownloading": "Permitir o download de legendas", + "AllowSubtitleManagement": "Permitir exclusão do arquivos de legendas existentes", + "NewUserNameHelp": "Assim é como o usuário aparecerá no seu servidor.", + "ChapterMarkers": "Marcadores de capítulo", + "LabelThumbnailImagesInterval": "Intervalo de imagens miniatura", + "ThumbnailImagesIntervalHelp": "Imagens miniatura mais frequentes resultarão em uma melhor experiência, mas será necessário mais espaço em disco e tempo para criar as imagens.", + "LabelAuthProvider": "Provedor de autenticação", + "AuthProviderHelp": "Administradores sempre usam o provedor padrão do Emby para garantir que você nunca será impedido de entrar.", + "HeaderNewUser": "Novo Usuário", + "ChangeServerDisplayName": "Alterar o Nome de Exibição do Servidor", + "ShowAdvancedSettings": "Exibir configurações avançadas", + "ChangingMetadataImageSettingsNewContent": "Alterações nas configurações do download de metadados ou imagens só aplicarão para novo conteúdo adicionado à sua biblioteca. Para aplicar as alterações aos títulos existentes, você precisará atualizar seus metadados manualmente.", + "AllowRemoteAccess": "Permitir conexões remotas a este Servidor Emby.", + "AllowRemoteAccessHelp": "Se não selecionado, todas as conexões remotas serão bloqueadas.", + "Alerts": "Alertas", + "LabelTrackTitleDisplay": "Exibição do título da faixa incorporada", + "GenerateUserFriendlyTrackTitles": "Gerar títulos amigáveis usando a informação da faixa", + "PreferOriginalTrackTitles": "Preferir títulos incorporados", + "TrackTitleDisplayHelp": "Escolha o título de exibição de faixas de áudio e legenda incorporadas. Preferir incorporado não é recomendado, a menos que você esteja curando manualmente as informações da faixa incorporada.", + "EnableTranscodingThrottle": "Ativar redução de uso de rede", + "EnableTranscodingThrottleHelp": "O Emby ajustará dinamicamente a velocidade de transcodificação para reduzir o uso da cpu.", + "HeaderTypeMetadataDownloaders": "{0} Downloaders de Metadados", + "HeaderTypeImageFetchers": "{0} Buscadores de Imagem", + "HeaderImageOptions": "Opções de Imagem", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registrar com PayPal", + "LabelSyncTempPath": "Local do arquivo temporário", + "LabelSyncTempPathHelp": "Especifique uma pasta de trabalho para a sincronização personalizada. Mídias convertidas criadas durante o processo de conversão serão aqui armazenadas.", + "LabelCustomCertificatePath": "Local do certificado ssl personalizado", + "LabelCustomCertificatePathHelp": "Local do arquivo PKCS #12 contendo certificado e chave privada para ativar o suporte TLS em um domínio personalizado.", + "HeaderSetupLibrary": "Configurar bibliotecas de mídia", + "LabelTimeLimitHours": "Limite de tempo (horas)", + "HeaderPreferredMetadataLanguage": "Idioma Preferido dos Metadados", + "LabelSaveLocalMetadata": "Salvar imagens dentro das pastas da mídia", + "LabelSaveLocalMetadataHelp": "Salvar imagens diretamente nas pastas da mídia as deixará próximas dos arquivos de mídia, onde poderão ser facilmente acessadas de fora do Emby. Se desativado, as imagens serão salvas na pasta de metadados do servidor.", + "TabAccess": "Acesso", + "HeaderDeviceAccess": "Acesso ao Dispositivo", + "OptionEnableAccessFromAllDevices": "Ativar o acesso de todos os dispositivos", + "OptionEnableAccessToAllChannels": "Ativar o acesso a todos os canais", + "OptionEnableAccessToAllLibraries": "Ativar o acesso a todas as bibliotecas", + "DeviceAccessHelp": "Filtrar o acesso ao dispositivo do usuário evitará que sejam usados novos dispositivos até que sejam aprovados aqui.", + "LabelDisplayMissingEpisodesWithinSeasons": "Exibir episódios que faltam dentro das temporadas", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Isto também deve ser ativado para as bibliotecas de TV na configuração do Servidor Emby.", + "ImportMissingEpisodesHelp": "Se ativo, as informações dos episódios que faltam serão importadas para sua base de dados do Emby e exibida dentro das temporadas e séries. Isto pode fazer com que o rastreamento da biblioteca seja mais longo.", + "MessageEnablingOptionLongerScans": "Ativar esta opção pode resultar em rastreamentos de biblioteca significativamente mais demorados.", + "LabelMaxParentalRating": "Classificação etária máxima permitida", + "MaxParentalRatingHelp": "Conteúdo com classificação maior será ocultado do usuário.", + "LibraryAccessHelp": "Selecione as pastas de mídia para compartilhar com este usuário. Administradores poderão editar todas as pastas usando o gerenciador de metadados.", + "ChannelAccessHelp": "Selecione os canais a compartilhar com este usuário. Administradores poderão editar todos os canais usando o gerenciador de metadados.", + "ImageUploadAspectRatioHelp": "Proporção de Imagem 1:1 Recomendada. Apenas JPG/PNG", + "AlreadyPaidHelp1": "Se já pagou anteriormente para instalar uma versão antiga do Media Browser para Android, não será necessário pagar novamente para ativar este app. Clique OK para enviar-nos um email para {0} e nós ativaremos para você.", + "AlreadyPaidHelp2": "Possui o Emby Premiere? Cancele esta caixa, configure o Emby Premiere no Painel do Servidor Emby em Ajuda -> Emby Premiere e ele será automaticamente desbloqueado.", + "TabMyPlugins": "Meus Plugins", + "TabCatalog": "Catálogo", + "HeaderAutomaticUpdates": "Atualizações Automáticas", + "Standard": "Padrão", + "TabSupporterKey": "Chave do Emby Premiere", + "OptionHideUserLocal": "Ocultar este usuário das telas de login na rede local", + "OptionHideUserRemote": "Ocultar este usuário das telas de login quando conectado remotamente", + "OptionHideUserFromLoginHelp": "Útil para contas de administrador privadas ou ocultas. O usuário necessitará entrar manualmente, digitando seu nome de usuário e senha.", + "HideFromUnusedDevices": "Ocultar este usuário das telas de login nos dispositivos em que nunca entrou", + "OptionDisableUser": "Desativar este usuário", + "OptionDisableUserHelp": "Se estiver desativado o servidor não permitirá nenhuma conexão deste usuário. Conexões existentes serão abruptamente terminadas.", + "OptionAllowUserToManageServer": "Permitir a este usuário administrar o servidor", + "HeaderFeatureAccess": "Acesso aos Recursos", + "OptionAllowMediaPlayback": "Permitir reprodução de mídia", + "AllLibraries": "Todas as bibliotecas", + "HeaderAllowMediaDeletionFrom": "Permitir a Exclusão de Mídia de", + "LiveTVRecordingManagement": "Gerenciamento de Gravação de TV ao Vivo", + "OptionAllowRemoteControlOthers": "Permitir controle remoto de outros usuários", + "OptionAllowRemoteSharedDevices": "Permitir controle remoto de dispositivos compartilhados", + "OptionAllowRemoteSharedDevicesHelp": "Dispositivos dlna são considerados compartilhados até que um usuário comece a controlá-lo.", + "OptionAllowLinkSharing": "Permitir compartilhamento com mídia social", + "OptionAllowLinkSharingHelp": "Apenas páginas web que contenham informações de mídia são compartilhadas. Arquivos de mídia nunca são compartilhados publicamente. Os compartilhamentos têm um limite de tempo e expiram depois de {0} dias.", + "OptionRelease": "Versão Oficial", + "LabelAllowServerAutoRestartPlugin": "Permitir que o servidor reinicie automaticamente para aplicar atualizações de plugins", + "LabelAllowServerAutoRestartServerOrPlugin": "Permitir que o servidor reinicie automaticamente para aplicar atualizações de servidor ou plugin", + "LabelAllowServerAutoRestartHelp": "O servidor só reiniciará durante os períodos ociosos, quando nenhum usuário estiver ativo.", + "LabelRunServerAtStartup": "Executar servidor na inicialização", + "LabelRunServerAtStartupHelp": "Esta opção abrirá o ícone da bandeja de sistema na inicialização do Windows. Se você configurou um serviço do Windows, então deixe a opção desmarcada e configure o serviço para executar na inicialização.", + "ButtonSelectDirectory": "Selecionar Diretório", + "LabelCachePath": "Local do cache", + "DefaultMetadataLangaugeDescription": "Estas são suas configurações padrão e podem ser personalizadas por biblioteca.", + "LabelCachePathHelp": "Defina uma localização para os arquivos de cache como, por exemplo, imagens. Por favor, deixe em branco para usar o padrão do servidor.", + "LabelDefaultRecordingFolder": "Pasta padrão de gravações", + "LabelMovieRecordingFolder": "Pasta de gravações de filmes", + "LabelSeriesRecordingFolder": "Pasta de gravações de séries", + "SeriesRecordingFolderHelp": "(Opcional). Selecione uma biblioteca para salvar as gravações de séries. Esta deve ser uma biblioteca que você criou na configuração da biblioteca Emby com o tipo de conteúdo definido para programas de TV ou conteúdo misto.", + "HeaderProgramData": "Dados do Programa", + "RecordingFolderHelp": "Selecione a biblioteca padrão para salvar as gravações. Esta biblioteca deve ter sido criada na configuração da biblioteca do Emby com o conteúdo definido para conteúdo misto.", + "MovieRecordingFolderHelp": "(Opcional). Selecione uma biblioteca para salvar as gravações de filmes. Esta deve ser uma biblioteca que você criou na configuração da biblioteca Emby com o tipo de conteúdo definido como filmes ou conteúdo misto.", + "LabelMetadataPath": "Local dos Metadados", + "LabelMetadataPathHelp": "Defina um local personalizado para artwork e metadados baixados.", + "LabelTranscodingTempPath": "Local temporário para transcodificação", + "LabelTranscodingTempPathHelp": "Esta pasta contém arquivos ativos usados pelo transcodificador. Especifique um local personalizado ou deixe em branco para usar o padrão dentro da pasta de dados do servidor.", + "GenerateVideoPreviewThumbnailsHelp": "As miniaturas de pre-visualização dos vídeos oferecem atualizações em tempo real enquanto buscam nos apps suportados. A geração das miniaturas pode demorar, causar uso intenso de CPU e consumir espaço adicional no disco.", + "AsAScheduledTask": "como uma tarefa agendada", + "AsAScheduledTaskAndMediaAdded": "como uma tarefa agendada e quando uma mídia é adicionada", + "ButtonRefreshGuideData": "Atualizar Dados do Guia", + "LabelNumberOfGuideDays": "Número de dias de dados do guia para download", + "LabelNumberOfGuideDaysHelp": "Fazer download de mais dias de dados do guia permite agendar com mais antecedência e ver mais itens, mas também levará mais tempo para o download. A opção Auto escolherá com base no número de canais. Por favor, saiba que independente do número de dias que escolha, os dados devem existir na fonte dos dados do guia para que possam ser baixados. Algumas fontes de dados do guia só fornecem 24 horas. Os Dados do Guia do Emby suportam até 14 dias.", + "HeaderFetchImages": "Buscar Imagens", + "LabelMaxBackdropsPerItem": "Número máximo de imagens de fundo por item", + "LabelMaxScreenshotsPerItem": "Número máximo de imagens de tela por item", + "LabelMinBackdropDownloadWidth": "Tamanho mínimo da imagem de fundo para download", + "LabelMinScreenshotDownloadWidth": "Tamanho mínimo da imagem de tela para download", + "ButtonAddScheduledTaskTrigger": "Adicionar Disparador", + "ButtonAdd": "Adicionar", + "LabelTriggerType": "Tipo de Disparador", + "OptionOnInterval": "Em um intervalo", + "OptionAfterSystemEvent": "Depois de um evento do sistema", + "LabelDay": "Dia", + "LabelTime": "Hora", + "LabelEvent": "Evento", + "OptionWakeFromSleep": "Despertar da hibernação", + "Every": "Todo(a)", + "LabelEnableRealtimeMonitor": "Ativar monitoramento em tempo real", + "LabelEnableRealtimeMonitorHelp": "As alterações nos arquivos serão processadas imediatamente em sistemas de arquivos suportados.", + "Community": "Comunidade", + "HeaderEmbyNews": "Novidades do Emby", + "LabelFriendlyServerName": "Nome amigável do servidor", + "LabelFriendlyServerNameHelp": "Este nome será usado para identificar este servidor. Se deixado em branco, será usado o nome do computador.", + "LabelPreferredDisplayLanguage": "Idioma preferido para exibição", + "LabelPreferredDisplayLanguageHelp": "A tradução do Emby é um projeto contínuo.", + "LabelReadHowYouCanContribute": "Aprenda como você pode contribuir.", + "LabelCustomCss": "Css personalizado", + "LabelCustomCssHelp": "Aplique o seu css personalizado para a interface web", + "LabelLocalHttpServerPortNumber": "Número da porta local de http", + "LabelLocalHttpServerPortNumberHelp": "O número da porta tcp que o servidor http do Emby deveria se conectar.", + "LabelPublicHttpPort": "Número da porta pública de http", + "LabelPublicHttpPortHelp": "O número da porta pública que deverá ser mapeada para a porta local de http.", + "LabelPublicHttpsPort": "Número da porta pública de https", + "LabelPublicHttpsPortHelp": "O número da porta pública que deverá ser mapeada para a porta local de https.", + "RequireHttps": "Necessita https para conexões externas", + "RequireHttpsHelp": "Se ativado, as conexões de http serão redirecionadas a https.", + "LabelHttpsPort": "Número da porta local de https", + "LabelHttpsPortHelp": "O número da porta tcp que o servidor https do Emby deveria se conectar.", + "LabelEnableAutomaticPortMap": "Ativar mapeamento automático de portas", + "LabelEnableAutomaticPortMapHelp": "Tentativa de mapear automaticamente a porta pública para a porta local através de UPnP. Isto poderá não funcionar em alguns modelos de roteadores.", + "LabelExternalDDNS": "Domínio externo", + "LabelExternalDDNSHelp": "Se você tem DNS dinâmico ou nome de domínio, digite aqui. Os apps do Emby o usarão ao conectar remotamente. Este campo é necessario quando for usado com um certificado ssl personalizado. Exemplo: meudominio.com.", + "LabelMinResumePercentage": "Porcentagem mínima para retomar", + "LabelMaxResumePercentage": "Porcentagem máxima para retomar", + "LabelMinResumeDuration": "Duração mínima para retomar (segundos)", + "LabelMinResumePercentageHelp": "Títulos são considerados como não assistidos se parados antes deste tempo", + "LabelMaxResumePercentageHelp": "Títulos são considerados totalmente assistidos se parados depois deste tempo", + "LabelMinResumeDurationHelp": "Títulos mais curtos que isto não poderão ser retomados", + "HeaderStatus": "Status", + "Subscriptions": "Inscrições", + "LabelEndingEpisodeNumber": "Número do episódio final", + "LabelEndingEpisodeNumberHelp": "Necessário só para arquivos multi-episódios", + "HeaderSupportTheTeam": "Colabore com o Time do Emby", + "HeaderSupportTheTeamHelp": "Ajude a assegurar o desenvolvimento contínuo deste projeto comprando o Emby Premiere. Uma parte de todas as receitas será distribuída para outras ferramentas grátis das quais dependemos.", + "DonationNextStep": "Uma vez completada, por favor retorne e digite a sua chave do Emby Premiere, que receberá por email.", + "HeaderRunningTasks": "Tarefas em Execução", + "ButtonUpdateNow": "Atualizar Agora", + "PleaseUpdateManually": "Por favor, desligue o Servidor Emby e instale a última versão..", + "ServerUpToDate": "O Servidor Emby está atualizado", + "MessagePleaseRestartServerToFinishUpdating": "Por favor, reinicie o servidor para terminar de aplicar as atualizações.", + "LabelDownMixAudioScale": "Aumento do áudio ao executar downmix", + "LabelDownMixAudioScaleHelp": "Aumentar o áudio quando executar downmix. Defina como 1 para preservar o volume original.", + "HeaderForgotKey": "Esqueci a Chave", + "LabelSupporterEmailAddress": "O endereço de email que foi usado para comprar a chave.", + "ButtonRetrieveKey": "Recuperar Chave", + "LabelSupporterKey": "Chave do Emby Premiere (cole do email)", + "LabelSupporterKeyHelp": "Digite sua chave do Emby Premiere para começar a aproveitar os benefícios adicionais.", + "MessageInvalidKey": "A chave do Emby Premiere está faltando ou é inválida.", + "ErrorMessageInvalidKey": "Para que qualquer conteúdo premium seja registrado, você precisa ter uma subscrição ativa do Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Ignorar se o vídeo já possuir legendas embutidas que estejam de acordo com o idioma de download.", + "LabelSkipIfGraphicalSubsPresentHelp": "Manter versões das legendas em texto resultará em uma entrega mais eficiente e diminuirá a necessidade de transcodificação do vídeo.", + "HeaderDownloadLanguages": "Idiomas para Download", + "LabelSkipIfAudioTrackPresent": "Ignorar se a faixa de áudio padrão coincidir com o idioma de download", + "LabelSkipIfAudioTrackPresentHelp": "Desmarque esta opção para garantir que todos os vídeos têm legendas, independente do idioma do áudio.", + "SendMessage": "Enviar mensagem", + "HeaderSendMessage": "Enviar mensagem", + "ButtonSend": "Enviar", + "LabelMessageText": "Texto da mensagem", + "LabelMessageTitle": "Título da mensagem", + "ButtonEditOtherUserPreferences": "Editar este perfil de usuário, imagem e preferências pessoais.", + "LabelLoginDisclaimer": "Aviso legal no login", + "LabelLoginDisclaimerHelp": "Este aviso será exibido na parte inferior da página de login.", + "HeaderTranscodingTemporaryFiles": "Arquivos Temporários da Transcodificação:", + "HeaderApiKeys": "Chaves da Api", + "HeaderApiKeysHelp": "As aplicações externas precisam ter um chave de Api para se comunicar com o Servidor Emby. As chaves são emitidas ao entrar com uma conta Emby ou concedendo manualmente a chave à aplicação.", + "HeaderApiKey": "Chave da Api", + "HeaderResumeSettings": "Ajustes para Retomar", + "HeaderFetcherSettings": "Configurações dos Buscadores", + "HeaderActivity": "Atividade", + "ButtonPurchase": "Comprar", + "HeaderInstall": "Instalar", + "LabelSelectVersionToInstall": "Selecione a versão para instalar", + "LinkLearnMoreAboutSubscription": "Saiba mais sobre o Emby Premiere", + "MessagePluginRequiresSubscription": "Este plugin requer uma subscrição ativa do Emby Premiere após os 14 dias de teste grátis.", + "MessagePremiumPluginRequiresMembership": "Este plugin requer uma subscrição ativa do Emby Premiere para comprar após os 14 dias de teste grátis.", + "HeaderDeveloperInfo": "Info do desenvolvedor", + "HeaderRevisionHistory": "Histórico de Versões", + "ButtonViewWebsite": "Ver website", + "OptionSaveMetadataAsHidden": "Salvar metadados e imagens como arquivos ocultos", + "LabelConnectEmail": "(Opcional) Endereço de email do Emby Connect", + "LabelConnectEmailHelp": "Opcionalmente, associe este usuário local a uma conta Emby Connect existente para ativar o acesso fácil a qualquer app Emby sem ter que conhecer o endereço IP do servidor.", + "ButtonLearnMoreAboutEmbyConnect": "Saiba mais sobre o Emby Connect", + "LabelDateAddedBehavior": "Comportamento da data de adição para novo conteúdo", + "OptionDateAddedImportTime": "Usar a data obtida na biblioteca", + "OptionDateAddedFileTime": "Usar a data de criação do arquivo", + "LabelDateAddedBehaviorHelp": "Se um valor de metadados estiver presente, ele sempre será utilizado antes destas opções.", + "HeaderLibrarySettings": "Configurações da Biblioteca", + "HeaderAutomaticSubtitleDownloads": "Downloads Automáticos de Legendas", + "HeaderCameraUploadHelp": "Os apps Emby podem fazer o updload automático de fotos tiradas por seus dispositivos móveis para o Servidor Emby.", + "LabelCameraUploadPath": "Local para upload da câmera", + "LabelCameraUploadPathHelp": "Selecione um local personalizado para upload. Isto irá alterar todas as configurações padrão definidas na seção de Upload da Câmera. Se não definir, a pasta padrão será usada. Se usar um local personalizado, será necessário adicionar como uma biblioteca na configuração de biblioteca do Emby.", + "DefaultCameraUploadPathHelp": "Selecione um local personalizado para upload. Se deixar em branco, uma pasta padrão será usada. Se usar um local personalizado, também será necessário adicionar como biblioteca na configuração de biblioteca do Emby.", + "LabelCreateCameraUploadSubfolder": "Criar uma subpasta para cada dispositivo", + "LabelCreateCameraUploadSubfolderHelp": "Pastas específicas podem ser atribuídas a um dispositivo, clicando-as na página de Dispositivos.", + "LabelCustomDeviceDisplayNameHelp": "Forneça um nome para exibição ou deixe em branco para usar o nome informado pelo dispositivo.", + "TabParentalControl": "Controle Etário", + "HeaderAccessSchedule": "Agendamento de Acesso", + "HeaderAccessScheduleHelp": "Criar um agendamento de acesso para limitar o acesso a certas horas.", + "HeaderLibraryAccess": "Acesso à Biblioteca", + "HeaderChannelAccess": "Acesso ao Canal", + "LabelForgotPasswordUsernameHelp": "Digite o nome de seu usuário, se lembrar.", + "TitlePasswordReset": "Redefinição de Senha", + "HeaderBlockItemsWithNoRating": "Bloquear itens que não tenham informação de classificação ou que não seja reconhecida", + "LabelBlockContentWithTags": "Restringir itens com tags", + "LabelTagRestrictionMode": "Modo de restrição de tag", + "BlockItemsWithTheseTags": "Bloquear itens com essas tags", + "AllowItemsWithTheseTags": "Permitir apenas itens com essas tags", + "OptionAllowContentDownloading": "Permitir download de mídia", + "LabelNewUserNameHelp": "Nomes de usuários podem conter letras (a-z), números (0-9), traços (-), sublinhados (_), apóstrofes (') e pontos (.)", + "HeaderThisUserIsCurrentlyDisabled": "Este usuário está desativado atualmente. Para ativar este usuário, por favor consulte a opção no rodapé desta página.", + "OptionAllowSyncTranscoding": "Permitir download de mídia que necessite de transcodificação", + "AllowMediaConversion": "Permitir conversão de mídia", + "AllowMediaConversionHelp": "Prover ou negar acesso à funcionalidade de conversão de mídia.", + "OptionAllowAudioPlaybackTranscoding": "Permitir transcodificação de áudio, se necessário, durante a reprodução da mídia", + "OptionAllowVideoPlaybackTranscoding": "Permitir transcodificação de vídeo, se necessário, durante a reprodução da mídia", + "OptionAllowVideoPlaybackRemuxing": "Permitir reprodução de vídeos que requeiram conversão sem re-encodação", + "OptionAllowMediaPlaybackTranscodingHelp": "Restringir acesso à transcodificação desativará a seleção de qualidade e pode causar falhas de reprodução nos apps Emby devido a formatos de mídias não suportados ou largura de banda insuficiente.", + "LabelRemoteClientBitrateLimit": "Limite de taxa de bits para streaming da Internet (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Um limite opcional da taxa de bits por-stream para todos os dispositivos fora da rede. Esta opção é útil para evitar que os dispositivos demandem uma taxa de bits maior que a permitida pela sua conexão. Isto pode causar um aumento na carga da CPU de seu servidor para que possa transcodificar os vídeos em tempo real para uma taxa mais baixa.", + "LabelUserRemoteClientBitrateLimitHelp": "Isto alterará o valor global padrão definido nas configurações avançadas do servidor.", + "OptionEnableFullSpeedConversion": "Ativar conversão de alta velocidade", + "OptionEnableFullSpeedConversionHelp": "Por padrão, conversões são executadas em uma velocidade baixa para minimizar o consumo de recursos.", + "OptionEnableAutomaticServerUpdates": "Ativar as atualizações automáticas do servidor", + "HeaderTVSources": "Fontes de TV", + "HeaderAddTvSource": "Adicionar Fonte de TV", + "LabelTunerIpAddress": "Endereço IP do Sintonizador", + "HeaderGuideProviders": "Fontes de Dados do Guia", + "HeaderAddGuideSource": "Adicionar Fonte de Dados do Guia", + "LabelZipCode": "CEP", + "LabelLineup": "Programação", + "LabelImportOnlyFavoriteChannels": "Restringir a canais marcados como favoritos", + "ImportFavoriteChannelsHelp": "Se ativado, apenas canais que estão marcados como favoritos no sintonizador serão importados.", + "HeaderDefaultRecordingSettings": "Configurações Padrão de Gravações", + "LabelDisplayName": "Nome para exibição", + "OptionDownloadImagesInAdvance": "Fazer download das imagens antecipadamente", + "OptionDownloadImagesInAdvanceHelp": "Por padrão, a maioria das imagens não são baixadas da internet até que sejam exibidas em um app Emby. Ativar esta opção fará download de todas as imagens atencipadamente, assim que novas mídias são importadas. Isto pode ocasionar um tempo maior para rastrear a biblioteca.", + "MessageThankYouForSupporting": "Obrigado por colaborar com o Emby.", + "FileReadCancelled": "A leitura do arquivo foi cancelada.", + "FileNotFound": "Arquivo não encontrado.", + "FileReadError": "Ocorreu um erro ao ler o arquivo.", + "NoPluginConfigurationMessage": "Este plugin não tem ajustes para configurar", + "HeaderNewApiKey": "Nova Chave da Api", + "HeaderNewApiKeyHelp": "Conceda permissão à aplicação de se comunicar com o Servidor Emby.", + "MessageKeyEmailedTo": "Chave enviada para {0}.", + "HeaderConfirmation": "Confirmação", + "MessageKeyUpdated": "Obrigado. Sua chave do Emby Premiere foi atualizada.", + "MessageKeyRemoved": "Obrigado. Sua chave do Emby Premiere foi removida.", + "TextEnjoyBonusFeatures": "Aproveite Funcionalidades Extras", + "MessageErrorLoadingSupporterInfo": "Ocorreu um erro ao carregar a informação do Emby Premiere. Por favor, tente novamente mais tarde.", + "ValueTimeLimitSingleHour": "Limite de tempo: 1 hora", + "ValueTimeLimitMultiHour": "Limite de tempo: {0} horas", + "General": "Geral", + "HeaderScreenSavers": "Protetores de Tela", + "Reporting": "Relatório", + "LabelStopping": "Parando", + "HeaderSelectCertificatePath": "Selecione o Local do Certificado", + "HeaderSupporterBenefit": "Um subscrição ativa do Emby Premiere fornece benefícios adicionais como acesso so Emby DVR, mídia offline, plugins premium e mais. {0}Saiba mais{1}.", + "LabelAbortedByServerShutdown": "(Abortada pelo desligamento do servidor)", + "LabelScheduledTaskLastRan": "Última execução {0}, demorando {1}.", + "HeaderDeleteTaskTrigger": "Excluir Disparador da Tarefa", + "MessageDeleteTaskTrigger": "Deseja realmente excluir este disparador de tarefa?", + "MessageNoPluginsDueToAppStore": "Para gerenciar plugins, por favor use o app Emby web.", + "LabelVersionInstalled": "{0} instalado", + "HeaderSelectServerCachePath": "Selecione o Local do Cache do Servidor", + "HeaderSelectTranscodingPath": "Selecione o Local Temporário da Transcodificação", + "HeaderSelectMetadataPath": "Selecione o Local dos Metadados", + "HeaderSelectServerCachePathHelp": "Localize ou digite o local para armazenar os arquivos de cache do servidor. A pasta deve permitir gravação.", + "HeaderSelectTranscodingPathHelp": "Localize ou digite o local para usar para arquivos temporários de transcodificação. A pasta deve ser gravável.", + "HeaderSelectMetadataPathHelp": "Localize ou digite o local que você gostaria de armazenar os metadados. A pasta deve ser gravável.", + "MessageConfirmRestart": "Deseja realmente reiniciar o Servidor Emby?", + "MessageConfirmShutdown": "Deseja realmente desligar o Servidor Emby?", + "LabelLocalAccessUrl": "Acesso em casa (LAN): {0}", + "LabelRemoteAccessUrl": "Acesso Remoto (WAN): {0}", + "LabelRunningOnPort": "Executando na porta http {0}", + "LabelRunningOnPorts": "Executando na porta http {0} e porta https {1}", + "LabelCurrentPath": "Local atual", + "HeaderSelectMediaPath": "Selecionar o Local da Mídia", + "HeaderSelectPath": "Selecione o Local", + "MessageDirectoryPickerInstruction": "Os locais de rede podem ser digitados manualmente caso o botão de Rede não consiga localizar seus dispositivos. Por exemplo, {0} ou {1}.", + "MessageDirectoryPickerBSDInstruction": "Para BSD, você precisará configurar o storage dentro de seu Jail do FreeNAS para permitir que o Emby tenha acesso a ele.", + "MessageDirectoryPickerLinuxInstruction": "Para Linux no Arch Linux, CentOS, Debian, Fedora, OpenSuse ou Ubuntu, você deve permitir que o usuário de sistema do Emby tenha ao menos acesso de leitura no seu storage.", + "MetadataManager": "Gerenciador de Metadados", + "OptionBlockLiveTvChannels": "Canais de TV ao vivo", + "OptionBlockChannelContent": "Conteúdo do Canal de Internet", + "ButtonRevoke": "Revogar", + "MessageConfirmRevokeApiKey": "Deseja realmente revogar esta chave de api? A conexão da aplicação com o Servidor Emby será abruptamente encerrada.", + "HeaderConfirmRevokeApiKey": "Revogar Chave da Api", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Por favor, aceite os termos de serviço antes de continuar.", + "HeaderChangeFolderType": "Alterar Tipo do Conteúdo", + "HeaderChangeFolderTypeHelp": "Para alterar o tipo, por favor remova e reconstrua a biblioteca com o novo tipo.", + "HeaderAlert": "Alerta", + "MessagePleaseRestart": "Por favor, reinicie para finalizar a atualização.", + "OptionHomeVideos": "Fotos & vídeos caseiros", + "OptionBooks": "Livros", + "HeaderMetadataReaders": "Leitores de Metadados:", + "LabelMetadataReadersHelp": "Ative e classifique suas fontes preferidas de metadados locais em ordem de prioridade.", + "HeaderSubtitleDownloaders": "Downloaders de Legendas", + "SubtitleDownloadersHelp": "Ativar e ranquear seus downloaders de legendas preferidos, em ordem de prioridade. Mais provedores de legendas podem ser instalados usando o catálogo de plugin do Emby.", + "LabelMetadataDownloaders": "Downloaders de metadados", + "LabelMetadataDownloadersHelp": "Ative e classifique por ordem de prioridade seus downloaders de metadados preferidos. Downloaders com prioridade mais baixa só serão usados para baixar informações que ainda não existam.", + "HeaderMetadataSavers": "Gravadores de Metadados", + "LabelMetadataSaversHelp": "Escolha os formatos de arquivos nos quais deseja gravar seus metadados.", + "LabelImageFetchers": "Buscadores de imagem", + "LabelImageFetchersHelp": "Ative e classifique por ordem de prioridade seus buscadores de imagem preferidos.", + "PersonTypePerson": "Pessoa", + "HeaderRemoveMediaLocation": "Remover Localização da Mídia", + "MessageConfirmRemoveMediaLocation": "Deseja realmente remover esta localização?", + "LabelNewName": "Novo nome", + "HeaderRemoveLibrary": "Remover Biblioteca", + "MessageAreYouSureYouWishToRemoveLibrary": "Deseja realmente remover a biblioteca {0} de seu Servidor Emby? Seus arquivos de mídia não serão afetados.", + "ButtonRename": "Renomear", + "HeaderPluginInstallation": "Instalação do plugin", + "MessageTrialExpired": "O período de testes terminou", + "MessageTrialWillExpireIn": "O período de testes expirará em {0} dia(s)", + "ValuePriceUSD": "Preço: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Você está registrado para este recurso e poderá continuar usando-o com uma subscrição ativa do Emby Premiere.", + "HeaderSelectExternalPlayer": "Selecionar Reprodutor Externo", + "HeaderExternalPlayerPlayback": "Reprodução em Reprodutor Externo", + "HeaderThankYou": "Obrigado", + "HeaderSelectUploadPath": "Selecionar o Caminho para Upload", + "ErrorMessageStartHourGreaterThanEnd": "A hora final deve ser maior que a hora inicial.", + "MessagePluginConfigurationRequiresLocalAccess": "Para configurar este plugin, por favor entre em seu servidor local diretamente.", + "MovieLibraryHelp": "Verifique o {0}guia de nomes de filmes do Emby{1}.", + "TvLibraryHelp": "Verifique o {0}guia de nomes de séries no Emby{1}.", + "BookLibraryHelp": "Livros de texto são suportados. Revise o {0}Guia de Nomes de Livros do Emby{1}.", + "MessageGamePluginRequired": "Requer a instalação do plugin GameBrowser", + "HeaderUnlockApp": "Desbloquear App", + "MessagePaymentServicesUnavailable": "Serviços de pagamento estão indisponíveis no momento. Por favor, tente novamente mais tarde.", + "NoNewDevicesFound": "Nenhum dispositivo novo encontrado. Para adicionar um novo sintonizador, feche esta mensagem e digite as informações do dispositivo manualmente.", + "MessageConfirmDeleteTunerDevice": "Deseja realmente excluir este dispositivo?", + "MessageConfirmDeleteGuideProvider": "Deseja realmente excluir este provedor do guia?", + "HeaderDeleteProvider": "Excluir Provedor", + "ErrorAddingTunerDevice": "Ocorreu um erro ao adicionar o sintonizador. Por favor, certifique-se que esteja acessível e tente novamente.", + "ErrorSavingTvProvider": "Ocorreu um erro ao salvar o provedor de TV. Por favor, certifique-se que esteja acessível e tente novamente.", + "ErrorGettingTvLineups": "Ocorreu um erro ao fazer download da programação da tv. Por favor, certifique-se que sua informação esteja correta e tente novamente.", + "MessageCreateAccountAt": "Criar uma conta em {0}", + "ErrorPleaseSelectLineup": "Por favor selecione a programação e tente novamente. Se não houver programações disponíveis, verifique se o seu nome de usuário, senha e código postal estão corretos.", + "ErrorValidatingSupporterInfo": "Ocorreu um erro ao validar sua informação do Emby Premiere. Por favor, tente novamente mais tarde.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Plugins Mais Usados", + "ForAdditionalLiveTvOptions": "Explore o {0}catálogo de plugin{1} do Emby para instalar provedores de TV ao Vivo adicionais.", + "AddUser": "Adicionar Usuário", + "HeaderEmailAddress": "Endereço de E-mail", + "NumLocationsValue": "{0} pastas", + "PleaseAddAtLeastOneFolder": "Por favor, adicione ao menos uma pasta a esta biblioteca, clicando no botão Adicionar.", + "ErrorAddingMediaPathToVirtualFolder": "Ocorreu um erro ao adicionar o local da mídia. Por favor, assegure-se que o local é valido e que o processo do Emby Server tenha acesso a essa localização.", + "ErrorAddingEmbyConnectAccount3": "A conta Emby já está vinculada para um usuário local existente. Uma conta Emby só pode ser vinculada a um usuário local por vez.", + "HeaderConfirmPluginInstallation": "Confirmar a Instalação do Plugin", + "PleaseConfirmPluginInstallation": "Por favor, clique em OK para confirmar que você leu e deseja prosseguir com a instalação do plugin.", + "MessagePluginInstallDisclaimer": "Plugins feitos por membros da comunidade Emby são uma grande forma de melhorar sua experiência Emby com funcionalidades e benefícios adicionais. Antes de instalar, por favor certifique-se de conhecer os efeitos que podem causar no seu Servidor Emby, tais como, rastreamentos da biblioreca mais longos, processamento adicional e diminuição na estabilidade do sistema.", + "HardwareAccelerationWarning": "Ativar a aceleração de hardware pode causar instabilidade em alguns ambientes. Assegure-se que seu sistema operacional e drivers de vídeo estão atualizados. Se tiver dificuldades em reproduzir vídeo depois de ativar isto, deverá alterar a configuração de volta a Auto.", + "ValueExample": "Exemplo: {0}", + "LabelFileOrUrl": "Arquivo ou url", + "OptionEnableForAllTuners": "Ativar para todos os sintonizadores", + "HeaderTuners": "Sintonizadores", + "DrmChannelsNotImported": "Canais com DRM não serão importados.", + "LabelAllowHWTranscoding": "Permitir a transcodificação de hardware", + "AllowHWTranscodingHelp": "Se ativado, permite ao sintonizador transcodificar streams em tempo real. Isto pode ajudar a reduzir a transcodificação requerida pelo Servidor Emby.", + "MetadataSettingChangeHelp": "Alterar as definições dos metadados afetará o novo conteúdo que será adicionado. Para atualizar o conteúdo existente, abra a tela de detalhes e clique no botão atualizar ou execute atualizações em bloco usando o gerenciador de metadados.", + "RecordingPathChangeMessage": "Alterar a sua pasta de gravações não migrará as gravações atuais do local anterior para o novo. Se desejar, você necessitará movê-los manualmente.", + "LabelLocalIpAddress": "Endereço IP local", + "LabelBindToLocalNetworkAddressHelp": "Opcional. Sobrepor o endereço de IP local que o Emby Server apresenta para os apps Emby. Se deixado em branco, o servidor irá detectar automaticamente o endereço IP local.", + "SettingsWarning": "Alterar estes valores pode causar instabilidade ou falhas de conectividade. Se tiver algum problema, recomendamos voltá-los ao padrão.", + "OptionSaveMetadataAsHiddenHelp": "Ao alterar isto, aplicará sobre novos metadados salvos daqui para a frente. Os arquivos de metadados existentes serão atualizados na próxima vez que forem salvos no Servidor Emby.", + "EnablePhotos": "Habilitar fotos", + "EnablePhotosHelp": "Fotos serão detectadas e mostradas junto com outros arquivos de mídia", + "ImportPlaylists": "Importar arquivos da playlist", + "ImportPlaylistsHelp": "Playlists encontradas em seus diretórios de mídia podem ser importadas para o Servidor Emby.", + "SaveThumbnailImagesIntoMediaFolders": "Salvar miniatura de pré-visualização de vídeos dentro das pastas de mídia", + "LabelGenerateVideoPreviewThumbnails": "Gerar miniaturas de visualização de vídeo", + "LabelEnableDebugLogging": "Ativar log de depuração", + "OptionEnableExternalContentInSuggestions": "Habilitar conteúdo externo em sugestões", + "OptionEnableExternalContentInSuggestionsHelp": "Permitir que trailers de internet e tv ao vivo sejam incluídos em conteúdos sugeridos.", + "LabelOptionalNetworkPath": "(Opcional) Caminho de rede compartilhado", + "LabelOptionalNetworkPathHelp": "Se esta pasta estiver compartilhada em sua rede, prover o caminho de rede do compartilhamento permitirá que apps Emby em outros dispositivos acessem mídias diretamente.", + "SynologyUpdateInstructions": "Por favor logue-se no DSM e siga para a Central de Pacotes para atualizar.", + "HeaderRecordingPostProcessing": "Processamento Pós-Gravação", + "LabelPostProcessorArguments": "Argumentos de linha de comando do Pós-processador", + "PostProcessorArgumentsHelp": "As seguintes variáveis são suportadas na linha de comando para permitir passar os dados ao seu pós-processador", + "LabelPostProcessor": "Aplicação de Pós-processamento", + "DvrPostProcessorPathArgument": "{path}: O caminho completo para o novo arquivo de gravação", + "OptionAutomaticallyGroupSeries": "Reunir automaticamente séries que estejam espalhadas por múltiplas pastas", + "OptionAutomaticallyGroupSeriesHelp": "Se ativado, séries que estiverem espalhadas por múltiplas pastas dentro desta biblioteca serão automaticamente reunidas em uma mesma série.", + "WhenDidYouPurchaseApp": "Quando originalmente você comprou este app?", + "PreferEmbeddedTitlesOverFileNames": "Preferir títulos embutidos ao invés de nomes de arquivos", + "PreferEmbeddedTitlesOverFileNamesHelp": "Isto determina a exibição padrão do título quando não houverem metadados da internet ou locais disponíveis.", + "FriendlyNameForReferenceHelp": "Um nome amigável usado para exibição, para sua própria referência.", + "HeaderLiveTvTunerSetup": "Config. Sintonizador da TV ao Vivo", + "HeaderTVSourceSetup": "Config. do Sinal de TV", + "HeaderDetectMyDevices": "Detectar Dispositivos", + "MessagePleaseWait": "Por favor, aguarde. Isto pode demorar um pouco.", + "DetectingDevices": "Detectando dispositivos", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Depois da importação inicial, atualizar os metadados automaticamente da internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Atualizar automaticamente os metadados de episódios com títulos para os marcadores de posição como TBA", + "EveryNDays": "A cada {0} dias", + "LabelCertificatePassword": "Senha do certificado", + "LabelCertificatePasswordHelp": "Se o seu certificado exige uma senha, por favor digite aqui.", + "HeaderNewLibrary": "Nova Biblioteca", + "HttpsRequiresCert": "Para ativar conexões seguras, você precisa fornecer um certificado SSL confiável, como o Lets Encrypt. Por favor, forneça um certificado ou desative as conexões seguras.", + "ServerRestartNeededAfterPluginInstall": "O Emby Server precisa ser reiniciado após a instalação de um plugin.", + "PluginInstalledMessage": "O plugin foi instalado com sucesso. O Emby Server precisa ser reiniciado para completar as alterações.", + "MessagePremiereStatusGood": "Você tem um {0} plano Emby Premiere e o uso de seu dispositivo está dentro de seu limite.", + "MessagePremiereStatusClose": "Você tem um plano Emby Premiere {0}, mas o uso de seu dispositivo está perto do limite.", + "MessagePremiereExtendedPlans": "Considere um {0}plano estendido do dispositivo{1}", + "MessagePremiereStatusOver": "Você tem um {0} plano Emby Premiere, mas você está acima do limite do dispositivo.", + "ListItemPremiereSub": "{0} assinatura comprada via {2} expira {1}", + "LabelClickToManage": "Clicar para gerenciar esta assinatura", + "LabelCancelInfo": "Você pode gerenciar esta assinatura diretamente com {0}", + "LabelAlreadyCanceled": "Esta assinatura foi cancelada. A chave permanecerá válida até que expire.", + "HeaderCancelSub": "Cancelar Emby Premiere", + "MessageConfirmSubCancel": "NÃO, por favor não vá... Você sentirá falta de todos os excelentes recursos do Emby Premiere!", + "ButtonCancelSub": "Eu sei, cancelar mesmo assim", + "ButtonDontCancelSub": "Permanecer com o Emby Premiere", + "MessageSubCancelReqSent": "Um email foi enviado para o dono da chave. Por favor, siga as instruções do email para completar o cancelamento desta assinatura. Esperamos vê-lo de volta em breve!", + "MessageSubCancelError": "Alguma coisa deu errado ao tentar cancelar. Por favor, envie um email para {0} e o ajudaremos.", + "LabelAlreadyCancelled": "Esta assinatura foi cancelada. Você não será cobrado novamente mas os recursos só funcionarão até à data acima.", + "AllowOnTheFlySubtitleExtraction": "Permitir a extração da legenda em tempo real", + "AllowOnTheFlySubtitleExtractionHelp": "Legendas gravadas podem ser extraídas dos vídeos e entregues às apps do Emby como texto puro para ajudar a evitar a transcodificação do vídeo. Em alguns sistemas isto pode levar bastante tempo e causar travamento na reprodução do vídeo durante o processo de extração. Desative isto para ter as legendas gravadas com transcodificação do vídeo quando não forem nativamente suportadas pelo dispositivo cliente.", + "AllowOnTheFlyFontExtraction": "Permitir extração da fonte da legenda ao reproduzir", + "AllowOnTheFlyFontExtractionHelp": "Fontes incorporadas podem ser extraídas de vídeos e enviadas para aplicativos Emby para oferecer suporte a vídeos que contenham fontes personalizadas. Em alguns sistemas, isso pode levar muito tempo e fazer com que a reprodução do vídeo pare durante o processo de extração.", + "EnableDebugLoggingHelp": "O log de depuração só deveria estar ativo se necessário para propósitos de identificação de problemas. O aumento de acesso ao sistema de arquivos pode evitar que a máquina do servidor possa entrar em modo suspensão em alguns ambientes.", + "LabelSimultaneousConnectionLimit": "Limite de stream simultâneo", + "SimultaneousConnectionLimitHelp": "O número máximo permitido de streams simultâneos. Digitar 0 para não haver limite.", + "LaunchWebAppOnStartup": "Executar a app web do Emby no meu navegador quando o Servidor Emby iniciar", + "LaunchWebAppOnStartupHelp": "Isto abrirá a app web no seu browser quando o Servidor Emby iniciar. Isto não ocorrerá quando reiniciar o servidor.", + "LabelReferrerHeader": "Cabeçalho http do referenciado", + "LabelUserAgentHeader": "Cabeçalho http do agente do usuário", + "SupplyCustomValueIfNeeded": "Forneça um valor de cabeçalho http personalizado, se necessário.", + "HeaderConfigureRemoteAccess": "Configurar Acesso Remoto", + "LearnHowToCreateSynologyShares": "Saiba como compartilhar pastas no Sinology.", + "LabelAllowedRemoteAddresses": "Filtro de endereço IP remoto", + "LabelAllowedRemoteAddressesMode": "Modo do filtro de endereço IP remoto", + "Whitelist": "Lista de Aceitos", + "Blacklist": "Lista de Negados", + "AllowedRemoteAddressesHelp": "Lista separada por vírgula de endereços IP ou entradas IP/máscara de rede para redes que permitirão ou não serão permitidas para conectar-se remotamente. Se deixar em branco, todos os endereços remotos terão permissão.", + "LabelLanNetworks": "Redes LAN", + "LanNetworksHelpText": "Lista separada por vírgulas de endereços IP ou entradas de IP/máscara de rede para redes que serão consideradas na rede local ao impor restrições de largura de banda e acesso remoto. Se definido, todos os outros endereços IP serão considerados como estando na rede externa. Se deixado em branco, apenas a sub-rede do servidor e as sub-redes IP privadas comuns (192.168.0.0/24, 172.16.0.0/12, etc.) serão consideradas como estando na rede local.", + "LabelSecureConnectionsMode": "Modo de conexão segura", + "PreferredNotRequired": "Preferível, mas não obrigatório", + "RequiredForAllRemoteConnections": "Necessário para todas as conexões remotas", + "HandledByProxy": "Tratado pelo proxy reverso", + "SaveSubtitlesIntoMediaFolders": "Salvar legendas baixadas nas pastas de mídia", + "SaveSubtitlesIntoMediaFoldersHelp": "Armazenar legendas junto com os arquivos de vídeo torna mais fácil gerenciá-las.", + "AutomaticSubtitleDownloadInstructions": "Para gerenciar o download de legendas, clique nas configurações de uma biblioteca Emby e altere as configurações de download de legendas para aquela biblioteca.", + "ProviderNeedsSetupWithUrl": "{0} requer configuração adicional em {1} tela de ajustes{2} no Servidor Emby", + "LabelEnableHardwareAcceleration": "Ativar aceleração de hardware quando disponível", + "HeaderPreferredHardwareDecoders": "Decodificadores de Hardware Preferidos", + "HeaderPreferredHardwareEncoders": "Codificadores de Hardware Preferidos", + "AllowChangingImageAndPassword": "Permitir a este usuário alterar sua senha e imagem de perfil.", + "LabelSimultaneousStreamLimit": "Transmissões máximas simultâneas de vídeos", + "SimultaneousStreamLimitHelp": "Limitar o número de sessões de reprodução de vídeo simultâneas.", + "LabelMusicFolderStructure": "Estrutura da pasta de Música", + "LabelMusicFolderStructureHelp": "Isto oferece uma dica ao rastreador da biblioteca sobre como suas pastas estão organizadas. Se não tiver certeza, ou se suas pastas não combinam com uma das opções, então por favor selecione a opção padrão de Outra.", + "OtherOrUnstructured": "Outra ou não-estruturada", + "PerfectArtistAlbumTrack": "Perfeitamente organizadas em pastas de artista\\álbum, com faixas diretamente em pastas dos álbuns.", + "PerfectAlbumTrack": "Perfeitamente organizadas em pastas de álbum, com faixas directamente dentro das pastas dos álbuns.", + "LabelMinCollectionSize": "Tamanho mínimo automático das coletâneas", + "PerfectAuthorAudioBookTrack": "Perfeitamente organizado em pastas autor\\livro, com faixas diretamente nas pastas de livros.", + "PerfectAudioBookTrack": "Perfeitamente organizado em pastas de livros, com faixas diretamente nas pastas de livros.", + "MinCollectionSizeHelp": "Automaticamente cria coletâneas quando você tem ao menos o número selecionado de títulos em sua biblioteca. Ao alterar este valor as coletâneas existentes não serão afetadas.", + "LabelImportCollections": "Importar informação das coletâneas dos downloaders de metadados", + "LabelImportCollectionsHelp": "Quando ativado, irá importar a informação das coletâneas através dos seus downloaders de metadados ativos. Isto pode causar que coletâneas não desejadas sejam automaticamente criadas. Desativar esta opção irá evitar que futuras coletâneas sejam automaticamente criadas, mas não excluirá as existentes.", + "LabelAllowAdultMetadata": "Permitir metadados para filmes adultos", + "LabelAllowAdultMetadataHelp": "Permitir a combinação de títulos adultos quando buscar por metadados de internet.", + "HeaderVideoPreviewThumbnails": "Miniaturas de Pré-visualização de Vídeos", + "LabelEnableHDRToneMapping": "Ativar mapeamento de tom de HDR", + "EnableHDRToneMappingHelp": "O mapeamento de tom garantirá a conversão correta de cor quando transcodificar conteúdo HDR, senão aparecerá muito esmaecida e dessaturada. Componentes de driver adicionais podem ser necessários para suportar aceleração de hardware com esta funcionalidade ativa. Por favor, veja nosso guia de configuração de aceleração de hardware para mais detalhes.", + "WithHardwareAcceleratedTranscoding": "Sim, apenas com aceleração de hardware", + "TranscodingStillInitializing": "Os serviços de transcodificação do Servidor Emby estão ocupados na inicialização. Esta tela será automaticamente atualizada quando os serviços de transcodificação estiverem prontos.", + "WithEitherHardwareOrSoftwareTranscoding": "Sim, tanto com transcodificação de hardware ou de software", + "ToneMappingInHardwareDescription": "O mapeamento de tom será executado com aceleração de hardware quando estiver ativa e suportada pelo hardware e será ignorada nos outros casos.", + "ToneMappingInSoftwareDescription": "O mapeamento de tom será executado em software pela CPU. Isto é muito mais lento que mapeamento de tom acelerado por hardware e demandará um servidor bastante poderoso.", + "ToneMappingInBothDescription": "O mapeamento de tom será executado com aceleração de hardware quando estiver ativa e suportada pelo hardware e será alterado para software nos outros casos. O mapeamento de tom em software é muito mais lento que mapeamento de tom acelerado por hardware e demandará um servidor bastante poderoso.", + "AutoMapped": "Automaticamente mapeado", + "ManuallyMapped": "Manualmente mapeado", + "NotMappedToGuideData": "Não mapeado para os dados do guia", + "MappedToValue": "Mapeado para {0}", + "LabelAutomaticallyWakeServerForRecordings": "Despertar o servidor automaticamente para executar as gravações", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Eventos para despertar serão agendados com o sistema operacional. Ao desativar esta função evitará que eventos futuros para despertar sejam agendados mas não removerá nenhum evento previamente agendado.", + "Database": "Banco de Dados", + "LabelOptimizeDatabaseOnShutdown": "Tentar otimizar o banco de dados nos desligamentos do servidor", + "LabelOptimizeDatabaseOnShutdownHelp": "A operação de otimização do banco de dados é usualmente uma não-op mas ocasionalmente executará uma análise se considerar que isso será útil para o planejador de query. Isso pode fazer com que o desligamento do Servidor Emby leve mais tempo.", + "LabelDatabaseCacheSize": "Tamanho do cache do banco de dados (MB)", + "LabelDatabaseCacheSizeHelp": "Define uma quantidade de dados que o banco de dados armazenará na memória de uma vez, por arquivo de banco de dados. Um valor maior pode ajudar a melhorar a performance do Servidor Emby. É necessário que o servidor seja reiniciado para que passe a valer.", + "LabelDatabaseAnalysisLimit": "Limite da coluna de análise", + "LabelDatabaseAnalysisLimitHelp": "Quando o banco de dados é otimizado, este é o número aproximado de colunas examinadas em cada índice pelo comando ANALYZE. Um valor maior melhorará a eficácia da otimização do banco de dados, mas pode fazer com que o Servidor Emby leve mais tempo para desligar.", + "LabelVacuumDb": "Limpar o banco de dados na próxima inicialização do Servidor Emby", + "LabelVacuumDbHelp": "A limpeza reconstrói o arquivo de banco de dados, empacotando-o em uma quantidade mínima de espaço em disco. Em alguns casos isto pode melhorar a performance do Servidor Emby. Por favor, saiba que o Servidor Emby não poderá ser usado durante a operação de limpeza, nem haverá nenhuma forma de monitorar o progresso da limpeza. Por favor, evite forçar o fechamento do processo do Servidor Emby durante este tempo porque pode fazer com que o banco de dados seja corrompido. Esta é uma operação que será executada uma única vez e esta opção será revertida para desligada na próxima inicialização do servidor.", + "AdvancedOptionsWarning": "Estas são opções avançadas e, em geral, devem ser deixadas como padrão, a menos que você tenha uma razão para alterá-las.", + "HeaderRecentlyActiveDevices": "Dispositivos Ativos Recentes", + "YesUntilServerRestart": "Sim, até o próximo reinicio do servidor", + "YesUntilLogRotate": "Sim, até a próxima rotação do arquivo de log", + "LabelSubtitleDownloadMaxAge": "Parar de tentar baixar automaticamente as legendas para vídeos mais antigos que", + "SubtitleDownloadMaxAgeHelp": "Isto é baseado no valor da data de adição dos metadados.", + "NoAgeLimit": "Sem limite de idade", + "AnonymizeLogContents": "Anonimizar conteúdo do log", + "Markers": "Marcadores", + "LabelGenerateIntroVideoMarkers": "Gerar marcadores de vídeo de intro", + "GenerateIntroVideoMarkersHelp": "Detecta intros das séries e exibe o botão 'Pular Intro' nas apps do Emby. A detecção de intro pode demorar bastante e causa alto uso de CPU e disco.", + "LabelCopyFromUser": "Copiar configurações do usuário", + "CopyFromUserHelp": "Opcional. Acelere a criação de novos usuários copiando informações de um usuário existente.", + "UserPolicy": "Política do usuário (acesso a bibliotecas e recursos, controles dos pais etc.)", + "UserConfiguration": "Configuração do usuário (idiomas de áudio e legendas preferidos, ordem da biblioteca, etc.)", + "UserDataAndDescription": "Dados do usuário (favoritos, estados de assistir e ouvir, etc.)", + "HeaderCopyOptions": "Opções de Cópia", + "LabelMultiRestrictionMode": "Modo de restrição múltipla", + "MultiRestrictionModeAll": "Permitir conteúdo que corresponda às restrições de classificação e tag", + "MultiRestrictionModeAny": "Permitir conteúdo que corresponda às restrições de classificação ou tag", + "AllowMappingByChannelNumber": "Permitir mapeamento para os dados do guia usando números de canais", + "AllowMappingByChannelNumberHelp": "Isto pode ser usado como um substituto para combinar os canais do sintonizador com os dados do guia sempre que uma correspondência não puder ser encontrada com base no nome do canal. Isso pode levar a uma correspondência imprecisa se os números de canal do sintonizador não estiverem corretos.", + "LabelPreferredSourceForChannelLogos": "Preferir os logotipos de canal dos dados do guia sobre o sintonizador quando ambos estiverem disponíveis", + "LabelPreferredSourceForChannelNumbers": "Preferir os números de canal dos dados do guia sobre o sintonizador quando ambos estiverem disponíveis", + "HeaderSoftwareEncoders": "Codificadores de Software", + "LabelProxyHeaderMode": "Ler os cabeçalhos do proxy para determinar os endereços IP do cliente", + "ProxyHeadersRemoteOnly": "Apenas quando contêm endereços remotos de rede:", + "ProxyHeaderModeHelp": "Determina se os cabeçalhos solicitados como {0} e {1} devem ser usados para determinar o endereço IP de dispositivos conectados.", + "AllowCameraUpload": "Permitir o Upload da Câmera", + "AllowCameraUploadHelp": "Se permitido, e caso esteja ativo nas apps móveis do Emby, os usuários podem subir as fotos automaticamente de sua câmera para seu Servidor Emby", + "CameraUploadMustBeGranted": "Você precisa permitir o acesso ao upload da câmera para seu administrador do servidor", + "EnableReadingAndWritingPeopleMetadata": "Ativar leitura e escrita de arquivos de metadados de pessoas", + "EnableReadingAndWritingPeopleMetadataHelp": "É necessário que o plugin Nfo Metadata esteja instalado. Isto permitirá salvar as edições das pessoas nos arquivos de metadados, mas deixará os rastreamentos da biblioteca mais demorados.", + "LabelIgnoreSampleFiles": "Ignorar os arquivos que contêm a palavra amostra no nome do arquivo se o tamanho for menor que (MB)", + "PreferredChannelImageSource": "Fonte de imagens de canais preferida", + "PreferredChannelImageSourceHelp": "Selecione uma imagem de canal preferida quando o sintonizador e os dados do guia possuirem imagens disponíveis.", + "CacheImagesInServerData": "Manter uma cópia (em cache) das imagens na pasta de metadados do servidor", + "CacheImagesInServerDataHelp": "Caso seus arquivos de mídia e imagens estejam armazenados em outro computador, manter uma cópia cache desse conteúdo nos metadados do servidor pode reduzir o acesso à rede e potencialmente melhorar o desempenho. Entretanto, isso resulta em buscas mais lentas na biblioteca e em um aumento significativo do espaço ocupado pela pasta de metadados no servidor.", + "AllowSharingPersonalContent": "Permitir o compartilhamento do seu conteúdo pessoal (como playlists) com outros usuários neste servidor.", + "AllowSharingPersonalContentHelp": "Se concedido, este usuário poderá compartilhar suas playlists com outros usuários. Os itens da lista de reprodução ainda serão restritos com base no acesso à biblioteca do usuário e no controle dos pais.", + "LiveBufferSizeHours": "Limite do tamanho do buffer para transmissão ao vivo (horas)", + "LiveBufferSizeHoursHelp": "Um buffer mais longo proporcionará uma maior capacidade de busca para frente e para trás durante uma transmissão ao vivo, mas consumirá mais espaço em disco.", + "LabelTranscodingMaxResolution": "Resolução máxima de transcoding", + "TranscodingMaxResolutionHelp": "Defina um limite superior para aplicar a toda transcodificação de vídeo, independentemente da configuração de qualidade no player Emby. Isso ajudará a reduzir os recursos consumidos pelos processos de transcodificação do servidor.", + "EnableHevcEncodingExp": "Ativar codificação de vídeo HEVC (experimental)", + "EnableHevcEncodingHelp": "Ativar a transcodificação usando o codec HEVC se for suportado pelo cliente.", + "LabelEnableMultiPartItems": "Ativar itens multi-parte", + "EnableMultiPartItemsHelp": "Detecte e agrupe automaticamente arquivos nomeados como parte 1, parte 2, etc. Partes adicionais serão exibidas na tela de detalhes principal do item.", + "MultiVersionItemsDetectionHelp": "Detectar e agrupar automaticamente diferentes versões do mesmo item. Uma seleção de versão será oferecida na tela principal de detalhes do item. O agrupamento com base em arquivos exige que você nomeie e organize seus arquivos adequadamente.", + "MultiVersionMoviesDetectionHelp": "O agrupamento com base em metadados agrupará filmes que tenham os mesmos IDs externos (MovieDb, Imdb, etc.).", + "EnableMultiPartItemsTVHelp": "Não suportado para episódios de séries de TV.", + "HeaderAutomaticGrouping": "Agrupamento Automático", + "LabelMultiVersionItemsDetection": "Detecção de item multi-versão", + "MultiVersionItemsDetectionBoth": "Detectar itens multi-versão baseado nos arquivos e nos metadados", + "MultiVersionItemsDetectionFiles": "Detectar itens multi-versão baseado em arquivos", + "MultiVersionItemsDetectionMetadata": "Detectar itens multi-versão baseado nos metadados", + "LabelNetworkRequestProtocol": "Protocolo de solicitação de rede", + "NetworkRequestProtocolHelp": "Selecionar o protocolo a ser usado para solicitações de rede de saída para provedores de metadados e outros serviços. Em alguns casos, quando serviços externos não podem ser acessados ​​via IPv6, pode ser necessário definir essa opção como somente IPv4.", + "GenerateChaptersForVideos": "Gerar capítulos para vídeos que não contenham informações de capítulo incorporadas", + "GeneratedChapterInterval": "Intervalo de capítulos gerados", + "LabelPageSize": "Page Size", + "PageNarrow": "Narrow", + "PageSingle": "Single page", + "PageBook": "Double page", + "PageMaximized": "Maximized", + "StartOfSection": "Start of chapter", + "PreviousSection": "Previous chapter", + "NextSection": "Next chapter", + "PositionInBook": "Position in the book", + "TableOfContents": "Table Of Contents", + "ZoomOut": "Zoom out", + "ZoomIn": "Zoom in", + "ZoomNone": "Default zoom", + "ZoomAutoFit": "Fit page", + "LayoutPage": "Single page", + "LayoutDouble": "Double page", + "LayoutVertical": "Vertical scroll", + "Margins": "Margins", + "PreviousPage": "Previous page", + "CurrentPage": "Current page", + "TotalPages": "Total pages", + "NextPage": "Next page", + "RightToLeft": "Right-to-left order", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "Legacy": "Legacy", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode" +} diff --git a/strings/pt-PT.json b/strings/pt-PT.json new file mode 100644 index 0000000..06a1c5b --- /dev/null +++ b/strings/pt-PT.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Concluiu!", + "ThisWizardWillGuideYou": "Este assistente irá ajudá-lo durante o processo de configuração. Para começar, selecione o idioma.", + "HeaderCreateYourFirstUser": "Crie o seu primeiro utilizador", + "ButtonQuickStartGuide": "Guia de início rápido", + "MoreUsersCanBeAddedLater": "É possível adicionar utilizadores mais tarde nas definições do Servidor Emby.", + "UserProfilesIntro": "O Emby inclui suporte nativo de perfis de utilizadores, permitindo que cada utilizador tenha as suas configurações de visualização, estado da reprodução e controlos parentais.", + "WizardCompleted": "É tudo, de momento. O Emby começou a recolher informações da sua biblioteca de multimédia. Confira algumas das nossas apps e de seguida clique Terminar para ver o Painel Principal do Servidor", + "MessagePleaseAcceptTermsOfService": "Por favor, aceite os termos de serviço e a política de privacidade antes de continuar.", + "OptionIAcceptTermsOfService": "Aceito os termos de serviço", + "SeeOurHwaGuide": "Veja o nosso {0}Guia de Aceleração Gráfica por Hardware{1}", + "HeaderEmbyServerReleaseNotes": "Notas de Lançamento do Servidor Emby", + "AllowSubtitleDownloading": "Permitir download de legendas", + "AllowSubtitleManagement": "Permitir eliminar as legendas existentes", + "NewUserNameHelp": "Este é o exemplo com o utilizador irá aparecer no seu servidor.", + "ChapterMarkers": "Marcador de Capítulos", + "LabelThumbnailImagesInterval": "Intervalo de minaturas:", + "ThumbnailImagesIntervalHelp": "Miniaturas mais frequentes irão resultar numa melhor experiência mas irá requerer mais espaço em disco e tempo para criar as imagens.", + "LabelAuthProvider": "Provedor de autenticação:", + "AuthProviderHelp": "Os Administradores usam sempre o provedor Emby padrão para garantir que nunca são bloqueados.", + "HeaderNewUser": "Novo Utilizador", + "ChangeServerDisplayName": "Mudar Nome do Servidor", + "ShowAdvancedSettings": "Mostrar definições avançadas", + "ChangingMetadataImageSettingsNewContent": "Alterações à metadata ou download de informações apenas estará disponível quando o novo conteúdo for adicionado à sua biblioteca. Para atualizar as regras ao conteúdo existente, precisa de fazer atualização manual.", + "AllowRemoteAccess": "Permitir conexões remotas a este servidor Emby.", + "AllowRemoteAccessHelp": "Se estiver desseleccionado, todas as conexões remotas serão bloqueadas.", + "Alerts": "Alertas", + "LabelTrackTitleDisplay": "Embutir informação de pista:", + "GenerateUserFriendlyTrackTitles": "Gerar títulos usando informação da pista", + "PreferOriginalTrackTitles": "Preferir títulos embebidos", + "TrackTitleDisplayHelp": "Escolher o título de audio embutido e legendas. Preferir embutidas nao é recomendável a menos que defina manualmente a informação embebida.", + "EnableTranscodingThrottle": "Ativar Throttling", + "EnableTranscodingThrottleHelp": "Emby irá ajustar automaticamente a velocidade de transcoding para reduzir utilização de CPU.", + "HeaderTypeMetadataDownloaders": "{0} Downloaders de Metadata", + "HeaderTypeImageFetchers": "{0} Motores de pesquisa de imagens", + "HeaderImageOptions": "Opções de imagem", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registar com PayPal", + "LabelSyncTempPath": "Caminho do ficheiro temporário:", + "LabelSyncTempPathHelp": "Especifique uma pasta de trabalho para a sincronização personalizada. Multimédia convertida, criada durante o processo de sincronização, será aqui armazenada.", + "LabelCustomCertificatePath": "Localização do certificado SSL personalizado:", + "LabelCustomCertificatePathHelp": "O caminho para um arquivo PKCS #12 que contém um certificado e uma chave privada para ativar o suporte a TLS num domínio personalizado.", + "HeaderSetupLibrary": "Configurar as suas bibliotecas multimédia", + "LabelTimeLimitHours": "Limite de tempo (horas):", + "HeaderPreferredMetadataLanguage": "Idioma Preferencial dos Metadados", + "LabelSaveLocalMetadata": "Guardar imagens nas pastas multimédia", + "LabelSaveLocalMetadataHelp": "Guardar imagens diretamente nas pastas multimédia vai colocá-los num local onde podem ser editados facilmente.", + "TabAccess": "Acesso", + "HeaderDeviceAccess": "Acesso ao Dispositivo", + "OptionEnableAccessFromAllDevices": "Ativar acesso de todos os dispositivos", + "OptionEnableAccessToAllChannels": "Permitir acesso a todos os canais", + "OptionEnableAccessToAllLibraries": "Permitir acesso a todas as bibliotecas", + "DeviceAccessHelp": "Isto apenas se aplica para dispositivos que podem ser identificados como únicos e não evitarão o acesso do navegador. Filtrar o acesso ao dispositivo do utilizador evita que sejam usados novos dispositivos até que sejam aprovados aqui.", + "LabelDisplayMissingEpisodesWithinSeasons": "Mostrar episódios em falta dentro das temporadas", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Isto também tem de estar activo na biblioteca de TV do Servidor Emby.", + "ImportMissingEpisodesHelp": "Se ativo, a informação acerca dos episódios em falta, serão importados para a sua base de dados do Emby e exibida dentro das temporadas e séries. Isto pode aumentar significativamente a duração da análise da biblioteca.", + "MessageEnablingOptionLongerScans": "Ativar esta opção pode aumentar significativamente a duração da análise da biblioteca.", + "LabelMaxParentalRating": "Controlo Parental máximo permitido:", + "MaxParentalRatingHelp": "Conteúdo com classificação mais elevada será escondida deste utilizador.", + "LibraryAccessHelp": "Escolha as pastas multimédia a partilhar com este utilizador. Os Administradores poderão editar todas as pastas, usando o Gestor de Metadados.", + "ChannelAccessHelp": "Selecione os canais a compartilhar com este utilizador. Administradores poderão editar todos os canais usando o gestor de metadados.", + "ImageUploadAspectRatioHelp": "1:1 Rácio de aspecto recomendado. JPG/ PNG apenas.", + "AlreadyPaidHelp1": "Se já pagou para instalar uma versão mais antiga do Media Browser para Android, não precisa pagar novamente para ativar esta aplicação. Clique em OK para nos enviar um e-mail para {0} e vamos ativá-lo para si.", + "AlreadyPaidHelp2": "Tem o Emby Premiere? cancele esta caixa de diálogo, configure o Emby Premiere no painel principal do seu servidor Emby em Ajuda -> Emby Premiere e será desbloqueado automáticamente.", + "TabMyPlugins": "As minhas extensões", + "TabCatalog": "Catálogo", + "HeaderAutomaticUpdates": "Atualizações automáticas", + "Standard": "Padrão", + "TabSupporterKey": "Chave do Emby Premiere", + "OptionHideUserLocal": "ilizador dos ecrãs de login quando ligado na rede local", + "OptionHideUserRemote": "Oculte este utilizador dos ecrãs de login quando ligado remotamente", + "OptionHideUserFromLoginHelp": "Útil para contas de administrador privadas ou ocultas. O utilizador necessita de entrar manualmente, introduzindo o seu nome de utilizador e senha.", + "HideFromUnusedDevices": "Ocultar este user na página de login em dispositivos nos quais ele nunca tenha feito login", + "OptionDisableUser": "Desativar este utilizador", + "OptionDisableUserHelp": "Se desativado, o servidor não permite nenhuma conexão deste utilizador. Conexões existentes serão terminadas.", + "OptionAllowUserToManageServer": "Permitir a este utilizador gerir o servidor", + "HeaderFeatureAccess": "Acesso a Características", + "OptionAllowMediaPlayback": "Permitir reprodução de média", + "AllLibraries": "Todas as bibliotecas", + "HeaderAllowMediaDeletionFrom": "Permitir remover multimédia a partir de", + "LiveTVRecordingManagement": "Gestão da gravação de TV em direto", + "OptionAllowRemoteControlOthers": "Permitir controlo remoto de outros utilizadores", + "OptionAllowRemoteSharedDevices": "Permitir controlo remoto de dispositivos compartilhados", + "OptionAllowRemoteSharedDevicesHelp": "Dispositivos DLNA são considerados compartilhados até que um utilizador comece a controlá-lo.", + "OptionAllowLinkSharing": "Permitir partilha nas redes sociais", + "OptionAllowLinkSharingHelp": "Só as páginas web que contêm informações de media são partilhadas. Os arquivos de media nunca são partilhados publicamente. As ações são limitadas por tempo e irão expirar após {0} dias.", + "OptionRelease": "Lançamento Oficial", + "LabelAllowServerAutoRestartPlugin": "Permitir que o Servidor reinicie automaticamente para aplicar atualizações dos Plugins", + "LabelAllowServerAutoRestartServerOrPlugin": "Permitir que o Servidor reinicie automaticamente para aplicar atualizações dos Plugins ou do Servidor", + "LabelAllowServerAutoRestartHelp": "O servidor irá reiniciar apenas durante períodos em que não esteja a ser usado, quando nenhum utilizador estiver ativo.", + "LabelRunServerAtStartup": "Iniciar o servidor no arranque", + "LabelRunServerAtStartupHelp": "Isto irá iniciar o ícone do Emby na barra de tarefas quando o Windows inicia. Se configurou um serviço do Windows, deixe a caixa desmarcada e configure o serviço para correr no arranque.", + "ButtonSelectDirectory": "Selecione a diretoria", + "LabelCachePath": "Localização da cache:", + "DefaultMetadataLangaugeDescription": "Estes são seus defaults e podem ser personalizados por biblioteca.", + "LabelCachePathHelp": "Defina uma localização para os arquivos de cache como, por exemplo, imagens. Por favor, deixe em branco para usar o padrão do servidor.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Dados do Programa", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Localização dos metadados:", + "LabelMetadataPathHelp": "Define um local para artwork e metadados baixados da internet.", + "LabelTranscodingTempPath": "Localização temporária das transcodificações:", + "LabelTranscodingTempPathHelp": "Esta pasta contém arquivos ativos usados pelo transcodificador. Especifique um local personalizado ou deixe em branco para usar o padrão dentro da pasta de dados do servidor.", + "GenerateVideoPreviewThumbnailsHelp": "As miniaturas de visualização de vídeo fornecem atualizações ao vivo enquanto procuram em apps compatíveis. A geração de miniaturas pode demorar por requerer alto uso da CPU e consumir espaço adicional em disco.", + "AsAScheduledTask": "como uma tarefa agendada", + "AsAScheduledTaskAndMediaAdded": "como uma tarefa agendada e quando a media é adicionada", + "ButtonRefreshGuideData": "Atualizar Dados do Guia", + "LabelNumberOfGuideDays": "Número de dias de informação do guia para transferir:", + "LabelNumberOfGuideDaysHelp": "Transferir mais dias de informação do guia permite agendar com maior antecedência e ver mais listagens, no entanto irá levar mais tempo a transferir. Se optar que seja Automático, será escolhido baseado no número de canais.", + "HeaderFetchImages": "Buscar Imagens:", + "LabelMaxBackdropsPerItem": "Número máximo de imagens de fundo por item:", + "LabelMaxScreenshotsPerItem": "Número máximo de imagens de ecrã por item:", + "LabelMinBackdropDownloadWidth": "Transferir Imagens de fundo com o tamanho mínimo:", + "LabelMinScreenshotDownloadWidth": "Transferir imagens de ecrã com o tamanho mínimo:", + "ButtonAddScheduledTaskTrigger": "Adicionar Disparador", + "ButtonAdd": "Adicionar", + "LabelTriggerType": "Tipo do Acionador:", + "OptionOnInterval": "Num intervalo", + "OptionAfterSystemEvent": "Depois de um evento do sistema", + "LabelDay": "Dia:", + "LabelTime": "Tempo:", + "LabelEvent": "Evento:", + "OptionWakeFromSleep": "Retomar da suspensão", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Ativar monitorização em tempo real", + "LabelEnableRealtimeMonitorHelp": "As alterações nos ficheiros irão ser processadas imediatamente em sistemas de ficheiros suportados.", + "Community": "Comunidade", + "HeaderEmbyNews": "Novidades Emby", + "LabelFriendlyServerName": "Nome amigável do servidor:", + "LabelFriendlyServerNameHelp": "Será usado este nome para identificar o servidor. Se não for preenchido, será usado o nome do computador.", + "LabelPreferredDisplayLanguage": "Idioma de visualização preferencial:", + "LabelPreferredDisplayLanguageHelp": "A tradução do Emby é um projeto contínuo.", + "LabelReadHowYouCanContribute": "Aprenda como pode contribuir.", + "LabelCustomCss": "CSS personalizado:", + "LabelCustomCssHelp": "Adiciona o teu css personalizado à interface web.", + "LabelLocalHttpServerPortNumber": "Número da porta http local:", + "LabelLocalHttpServerPortNumberHelp": "O número da porta tcp que o servidor http do Emby deveria se conectar.", + "LabelPublicHttpPort": "Número da porta pública de http:", + "LabelPublicHttpPortHelp": "O número da porta pública que deverá ser mapeada para a porta local de http.", + "LabelPublicHttpsPort": "Número da porta pública de https:", + "LabelPublicHttpsPortHelp": "O número da porta pública que deverá ser mapeada para a porta local de https.", + "RequireHttps": "Ligação https obrigatória para conexões externas", + "RequireHttpsHelp": "Se selecionado, as conexões por http serão redirecionadas para https.", + "LabelHttpsPort": "Número da porta https local:", + "LabelHttpsPortHelp": "O número da porta tcp que o servidor https do Emby deveria se conectar.", + "LabelEnableAutomaticPortMap": "Ativar mapeamento automático de portas", + "LabelEnableAutomaticPortMapHelp": "Tentativa de mapear automaticamente a porta pública para a porta local através de UPnP. Isto poderá não funcionar em alguns modelos de roteadores.", + "LabelExternalDDNS": "Domínio externo:", + "LabelExternalDDNSHelp": "Se tem um servidor DNS dinâmico insira-o aqui. As aplicações do Emby irão usá-lo ao conectar remotamente. Este campo é obrigatório quando usado com um certificado SSL personalizado. Exemplo: omeudominio.com", + "LabelMinResumePercentage": "Percentagem mínima para retomar:", + "LabelMaxResumePercentage": "Percentagem máxima para retomar:", + "LabelMinResumeDuration": "Duração mínima da retoma (segundos):", + "LabelMinResumePercentageHelp": "Os títulos são considerados não assistidos se parados antes deste tempo", + "LabelMaxResumePercentageHelp": "Os títulos são considerados totalmente assistidos se parados depois deste tempo", + "LabelMinResumeDurationHelp": "Títulos mais curtos que isto não serão retomáveis", + "HeaderStatus": "Estado", + "Subscriptions": "Subscrições", + "LabelEndingEpisodeNumber": "Número do episódio final:", + "LabelEndingEpisodeNumberHelp": "Necessário só para arquivos multi-episódios", + "HeaderSupportTheTeam": "Suporte a Equipa do Emby", + "HeaderSupportTheTeamHelp": "Ajude a assegurar o desenvolvimento contínuo deste projeto comprando o Emby Premiere. Uma parte de todas as receitas será distribuída para outras ferramentas grátis das quais dependemos.", + "DonationNextStep": "Uma vez completada, por favor retorne e digite a sua chave do Emby Premiere, que receberá por email.", + "HeaderRunningTasks": "Tarefas em Execução", + "ButtonUpdateNow": "Atualizar Agora", + "PleaseUpdateManually": "Por favor desligue o Emby Server e instale a versão mais recente.", + "ServerUpToDate": "O Servidor Emby está atualizado", + "MessagePleaseRestartServerToFinishUpdating": "Por favor reinicie o servidor para terminar a aplicação das atualizações.", + "LabelDownMixAudioScale": "Escala do aumento de áudio ao fazer downmix:", + "LabelDownMixAudioScaleHelp": "Aumentar o áudio ao fazer downmix. Defina como 1 para preservar o volume original.", + "HeaderForgotKey": "Esqueci a Chave", + "LabelSupporterEmailAddress": "O endereço de email que foi usado para comprar a chave.", + "ButtonRetrieveKey": "Recuperar Chave", + "LabelSupporterKey": "Chave do Emby Premiere (cole do email)", + "LabelSupporterKeyHelp": "Digite a sua chave do Emby Premiere para começar a aproveitar os benefícios adicionais que a comunidade desenvolveu para o Emby.", + "MessageInvalidKey": "A chave do Emby Premiere está faltando ou é inválida.", + "ErrorMessageInvalidKey": "Para que qualquer conteúdo premium seja registrado, você precisa ter uma subscrição ativa do Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Ignorar se o vídeo já possuir legendas embutidas", + "LabelSkipIfGraphicalSubsPresentHelp": "Manter versões das legendas em texto resultará em uma entrega mais eficiente e diminuirá a necessidade de transcodificação do vídeo.", + "HeaderDownloadLanguages": "Download Idiomas", + "LabelSkipIfAudioTrackPresent": "Ignorar se a faixa de áudio padrão coincidir com o idioma de download", + "LabelSkipIfAudioTrackPresentHelp": "Desmarque esta opção para garantir que todos os vídeos têm legendas, independentemente do idioma do áudio.", + "SendMessage": "Enviar mensagem", + "HeaderSendMessage": "Enviar mensagem", + "ButtonSend": "Enviar", + "LabelMessageText": "Texto da mensagem:", + "LabelMessageTitle": "Titulo da mensagem:", + "ButtonEditOtherUserPreferences": "Editar este perfil de utilizador, imagem e preferências pessoais.", + "LabelLoginDisclaimer": "Aviso legal no login:", + "LabelLoginDisclaimerHelp": "Este aviso será exibido na parte inferior da página de login.", + "HeaderTranscodingTemporaryFiles": "Transcodificar Ficheiros Temporários", + "HeaderApiKeys": "Chaves da Api", + "HeaderApiKeysHelp": "As aplicações externas precisam ter uma chave da Api para se comunicarem com o Servidor Emby. As chaves são emitidas ao entrar com uma conta Emby ou concedendo manualmente a chave à aplicação.", + "HeaderApiKey": "Chave da Api", + "HeaderResumeSettings": "Ajustes para Retomar", + "HeaderFetcherSettings": "Configurações do Motor de Pesquisa", + "HeaderActivity": "Atividade", + "ButtonPurchase": "Comprar", + "HeaderInstall": "Instalar", + "LabelSelectVersionToInstall": "Selecione a versão para instalar:", + "LinkLearnMoreAboutSubscription": "Saiba mais sobre o Emby Premiere", + "MessagePluginRequiresSubscription": "Este plugin requer uma subscrição ativa do Emby Premiere após os 14 dias de teste grátis.", + "MessagePremiumPluginRequiresMembership": "Este plugin requer uma subscrição ativa do Emby Premiere para comprar após os 14 dias de teste grátis.", + "HeaderDeveloperInfo": "Informação do Programador", + "HeaderRevisionHistory": "Histórico de Versões", + "ButtonViewWebsite": "Ver website", + "OptionSaveMetadataAsHidden": "Salvar metadados e imagens como arquivos ocultos", + "LabelConnectEmail": "(Oprcional) Endereço de email do Emby Connect:", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Saiba mais sobre o Emby Connect", + "LabelDateAddedBehavior": "Data de adição de comportamento para o novo conteúdo:", + "OptionDateAddedImportTime": "Usar a data obtida na biblioteca", + "OptionDateAddedFileTime": "Usar a data de criação do arquivo", + "LabelDateAddedBehaviorHelp": "Se um valor de metadados estiver presente, ele sempre será utilizado antes destas opções.", + "HeaderLibrarySettings": "Definições da Biblioteca", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Aplicações do Emby podem automaticamente fazer upload de fotos tiradas a partir do seu smartphone para o servidor Emby.", + "LabelCameraUploadPath": "Local para upload da câmera:", + "LabelCameraUploadPathHelp": "Selecione um caminho de upload personalizado. Isto substituirá qualquer configuração padrão definida na seção Carregamento da câmara. Se deixado em branco, uma pasta padrão será usada. Se estiver a usar um caminho personalizado, também precisará de ser adicionado como uma biblioteca na configuração da biblioteca Emby.", + "DefaultCameraUploadPathHelp": "Selecione um caminho de upload personalizado. Se deixado em branco, uma pasta padrão será usada. Se estiver a usar um caminho personalizado, também precisará de ser adicionado como uma biblioteca na configuração da biblioteca Emby.", + "LabelCreateCameraUploadSubfolder": "Criar uma subpasta para cada dispositivo", + "LabelCreateCameraUploadSubfolderHelp": "Pastas específicas podem ser atribuídas a um dispositivo, clicando-as na página de Dispositivos.", + "LabelCustomDeviceDisplayNameHelp": "Forneça um nome para exibição ou deixe em branco para usar o nome informado pelo dispositivo.", + "TabParentalControl": "Controlo Parental", + "HeaderAccessSchedule": "Agendamento de Acesso", + "HeaderAccessScheduleHelp": "Criar um agendamento de acesso para limitar o acesso a certas horas.", + "HeaderLibraryAccess": "Acesso à Biblioteca", + "HeaderChannelAccess": "Acesso ao Canal", + "LabelForgotPasswordUsernameHelp": "Escreva o nome do seu utilizador, se lembrar.", + "TitlePasswordReset": "Redefinição de Senha", + "HeaderBlockItemsWithNoRating": "Bloquear conteúdo sem informação de classificação etária ou com informação desconhecida:", + "LabelBlockContentWithTags": "Bloquear conteúdo com tags:", + "LabelTagRestrictionMode": "Modo de restrição de tags:", + "BlockItemsWithTheseTags": "Bloquear itens com estas tags", + "AllowItemsWithTheseTags": "Permitir apenas itens com estas tags", + "OptionAllowContentDownloading": "Permitir download dos ficheiros multimédia e sincronização", + "LabelNewUserNameHelp": "Nomes de utilizadores podem conter letras (a-z), números (0-9), traços (-), sublinhados (_), apóstrofes (') e pontos (.)", + "HeaderThisUserIsCurrentlyDisabled": "Este utilizador está desativado atualmente", + "OptionAllowSyncTranscoding": "Permitir download de media que requer transcodificação", + "AllowMediaConversion": "Permitir conversão multimédia", + "AllowMediaConversionHelp": "Conceder ou negar acesso ao recurso de conversão de media.", + "OptionAllowAudioPlaybackTranscoding": "Permitir reprodução de áudio que necessite de transcodificação", + "OptionAllowVideoPlaybackTranscoding": "Permitir reprodução de vídeo que necessite de transcodificação", + "OptionAllowVideoPlaybackRemuxing": "Permitir a reprodução de vídeo que requer conversão sem recodificação", + "OptionAllowMediaPlaybackTranscodingHelp": "Restringir o acesso à transcodificação pode causar falhas de reprodução nas aplicações do Emby devido a formatos multimédia não suportados.", + "LabelRemoteClientBitrateLimit": "Limite de taxa de bits para streaming da Internet (Mbps):", + "LabelRemoteClientBitrateLimitHelp": "Um limite de taxa de bits por transmissão opcional para todos os dispositivos fora da rede. Isto é útil para evitar que os dispositivos solicitem uma taxa de bits maior do que a capacidade de sua ligação de Internet. Isto pode resultar num aumento de carga de CPU no seu servidor para transcodificar vídeos rapidamente para uma taxa de bits mais baixa.", + "LabelUserRemoteClientBitrateLimitHelp": "Isto substituirá o valor global padrão definido nas configurações avançadas do servidor.", + "OptionEnableFullSpeedConversion": "Ativar conversão de alta velocidade", + "OptionEnableFullSpeedConversionHelp": "Por padrão, a conversão na sincronização é executada em uma velocidade baixa para minimizar o consumo de recursos.", + "OptionEnableAutomaticServerUpdates": "Ativar as atualizações automáticas do servidor", + "HeaderTVSources": "Fontes TV", + "HeaderAddTvSource": "Adicionar Fonte de TV", + "LabelTunerIpAddress": "Endereço IP do Sintonizador:", + "HeaderGuideProviders": "Provedores de Guia de TV", + "HeaderAddGuideSource": "Adiconar fonte de guia de TV", + "LabelZipCode": "CEP:", + "LabelLineup": "Programação:", + "LabelImportOnlyFavoriteChannels": "Restringir a canais marcados como favoritos", + "ImportFavoriteChannelsHelp": "Se ativado, apenas canais que estão marcados como favoritos no sintonizador serão importados.", + "HeaderDefaultRecordingSettings": "Configurações Default de Gravação", + "LabelDisplayName": "Nome para exibição:", + "OptionDownloadImagesInAdvance": "Descarregar todas as imagens antecipadamente", + "OptionDownloadImagesInAdvanceHelp": "Por padrão, a maioria das imagens são descarregadas só quando uma aplicação do Emby solicita. Ativar esta opção para descarregar todas as imagens antencipadamente, assim que os novos ficheiros multimédia são importados. Isto pode aumentar significativamente a duração da análise da biblioteca.", + "MessageThankYouForSupporting": "Obrigado por suportar o Emby.", + "FileReadCancelled": "A leitura do ficheiro foi cancelada.", + "FileNotFound": "Ficheiro não encontrado.", + "FileReadError": "Ocorreu um erro ao ler o ficheiro.", + "NoPluginConfigurationMessage": "Esta extensão não tem configurações para fazer.", + "HeaderNewApiKey": "Nova Chave da Api", + "HeaderNewApiKeyHelp": "Conceda permissão à aplicação de se comunicar com o Servidor Emby.", + "MessageKeyEmailedTo": "Chave enviada para {0}.", + "HeaderConfirmation": "Confirmação", + "MessageKeyUpdated": "Obrigado. Sua chave do Emby Premiere foi atualizada.", + "MessageKeyRemoved": "Obrigado. Sua chave do Emby Premiere foi removida.", + "TextEnjoyBonusFeatures": "Aproveite os Extras", + "MessageErrorLoadingSupporterInfo": "Ocorreu um erro ao carregar a informação do Emby Premiere. Por favor, tente novamente mais tarde.", + "ValueTimeLimitSingleHour": "Limite de tempo: 1 hora", + "ValueTimeLimitMultiHour": "Limite de tempo: {0} horas", + "General": "Geral", + "HeaderScreenSavers": "Protetores de ecrã", + "Reporting": "A Comunicar", + "LabelStopping": "Parando", + "HeaderSelectCertificatePath": "Selecione o Local do Certificado", + "HeaderSupporterBenefit": "Uma assinatura ativa do Emby Premiere oferece benefícios adicionais, como acesso ao Emby DVR, media offline, plugins premium e muito mais. {0} Saiba mais {1}", + "LabelAbortedByServerShutdown": "(Abortada pelo desligamento do servidor)", + "LabelScheduledTaskLastRan": "Última execução {0}, demorando {1}.", + "HeaderDeleteTaskTrigger": "Excluir Disparador da Tarefa", + "MessageDeleteTaskTrigger": "Deseja realmente excluir este disparador de tarefa?", + "MessageNoPluginsDueToAppStore": "Para gerir plugins, por favor use o app Emby web.", + "LabelVersionInstalled": "{0} instalado", + "HeaderSelectServerCachePath": "Selecione o Local do Cache do Servidor", + "HeaderSelectTranscodingPath": "Selecione o Local Temporário da Transcodificação", + "HeaderSelectMetadataPath": "Selecione o Local dos Metadados", + "HeaderSelectServerCachePathHelp": "Localize ou digite o local para armazenar o cache do servidor. A pasta deve permitir gravação.", + "HeaderSelectTranscodingPathHelp": "Localize ou insira o local para usar para os ficheiros temporários de transcodificação. A pasta deve permitir a escrita.", + "HeaderSelectMetadataPathHelp": "Localize ou digite o local que você gostaria de armazenar os metadados. A pasta deve ser gravável.", + "MessageConfirmRestart": "Deseja realmente reiniciar o Servidor Emby?", + "MessageConfirmShutdown": "Deseja realmente desligar o Servidor Emby?", + "LabelLocalAccessUrl": "Acesso em casa (LAN): {0}", + "LabelRemoteAccessUrl": "Acesso fora de casa (WAN): {0}", + "LabelRunningOnPort": "A executar na porta http {0}.", + "LabelRunningOnPorts": "A executar na porta http {0} e na porta https {1}.", + "LabelCurrentPath": "Local atual:", + "HeaderSelectMediaPath": "Selecionar o Local dos ficheiros Multimédia", + "HeaderSelectPath": "Selecione o Local", + "MessageDirectoryPickerInstruction": "Os locais de rede podem ser digitados manualmente caso o botão de Rede não consiga localizar seus dispositivos. Por exemplo, {0} ou {1}.", + "MessageDirectoryPickerBSDInstruction": "Para BSD, você precisará configurar o disco dentro de seu Jail do FreeNAS para permitir que o Emby tenha acesso a ele.", + "MessageDirectoryPickerLinuxInstruction": "Para Linux no Arch Linux, CentOS, Debian, Fedora, OpenSuse ou Ubuntu, você deve permitir que o utilizador Emby tenha ao menos acesso de leitura no seu disco.", + "MetadataManager": "Gestor de Metadata", + "OptionBlockLiveTvChannels": "Canais de TV ao vivo", + "OptionBlockChannelContent": "Conteúdo do Canal de Internet", + "ButtonRevoke": "Revogar", + "MessageConfirmRevokeApiKey": "Deseja realmente revogar esta chave de api? A conexão da aplicação com o Servidor Emby será abruptamente encerrada.", + "HeaderConfirmRevokeApiKey": "Revogar Chave da Api", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Por favor, aceite os termos de serviço antes de continuar.", + "HeaderChangeFolderType": "Alterar o Tipo de Conteúdo", + "HeaderChangeFolderTypeHelp": "Para alterar o tipo, remova e reconstrua a biblioteca com o novo tipo.", + "HeaderAlert": "Alerta", + "MessagePleaseRestart": "Por favor reinicie para terminar a atualização.", + "OptionHomeVideos": "Vídeos caseiros e fotos", + "OptionBooks": "Livros", + "HeaderMetadataReaders": "Leitores de Metadata", + "LabelMetadataReadersHelp": "Classifique suas fontes de metadados locais preferidas por ordem de prioridade. O primeiro arquivo encontrado será lido.", + "HeaderSubtitleDownloaders": "Downloaders de Legendas", + "SubtitleDownloadersHelp": "Ative e classifique seus downloaders de legendas preferidos por ordem de prioridade. Mais motores de pesquisa de legendas podem ser instalados usando o catálogo de plugins Emby.", + "LabelMetadataDownloaders": "Downloaders de metadados:", + "LabelMetadataDownloadersHelp": "Ative e classifique seus downloaders de metadados preferidos por ordem de prioridade. Downloaders de prioridade mais baixa só serão usados ​​para preencher informações ausentes.", + "HeaderMetadataSavers": "Savers de Metadata", + "LabelMetadataSaversHelp": "Escolha os formatos de arquivo para gravar os seus metadados.", + "LabelImageFetchers": "Motores de pesquisa de imagens:", + "LabelImageFetchersHelp": "Ative e classifique seus motores de pesquisa de imagens preferidos por ordem de prioridade.", + "PersonTypePerson": "Pessoa", + "HeaderRemoveMediaLocation": "Remover Localização dos ficheiros multimédia", + "MessageConfirmRemoveMediaLocation": "Tem certeza de que deseja remover este local?", + "LabelNewName": "Novo nome:", + "HeaderRemoveLibrary": "Remover Biblioteca", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Renomear", + "HeaderPluginInstallation": "Instalação de Plugins", + "MessageTrialExpired": "O período de avaliação deste recurso expirou", + "MessageTrialWillExpireIn": "O período de avaliação deste recurso expirará em {0} dia(s)", + "ValuePriceUSD": "Preço: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Está registrado para este recurso e poderá continuar a usá-lo com uma assinatura ativa do Emby Premiere.", + "HeaderSelectExternalPlayer": "Selecione um reprodutor de vídeo externo", + "HeaderExternalPlayerPlayback": "Reprodução de Reprodutor de Vídeo Externo", + "HeaderThankYou": "Obrigado", + "HeaderSelectUploadPath": "Selecione o caminho de upload", + "ErrorMessageStartHourGreaterThanEnd": "A hora de terminar deve ser maior que a hora de início.", + "MessagePluginConfigurationRequiresLocalAccess": "Para configurar este plugin, entre diretamente no seu servidor local.", + "MovieLibraryHelp": "Reveja o {0} guia de nomenclatura de filmes do Emby {1}.", + "TvLibraryHelp": "Reveja o {0} guia de nomenclatura do Emby TV {1}", + "BookLibraryHelp": "Livros de texto são suportados. Reveja o {0} guia de nomenclatura do Emby Book {1}.", + "MessageGamePluginRequired": "Requer a instalação do plugin GameBrowser", + "HeaderUnlockApp": "Desbloquear App", + "MessagePaymentServicesUnavailable": "Os serviços de pagamento não estão disponíveis no momento. Por favor, tente novamente mais tarde.", + "NoNewDevicesFound": "Nenhum novo dispositivo encontrado. Para adicionar um novo sintonizador, feche esta caixa de diálogo e insira as informações do dispositivo manualmente.", + "MessageConfirmDeleteTunerDevice": "Tem certeza de que deseja excluir este dispositivo?", + "MessageConfirmDeleteGuideProvider": "Tem certeza de que deseja excluir este provedor de guia?", + "HeaderDeleteProvider": "Eliminar Provedor", + "ErrorAddingTunerDevice": "Ocorreu um erro ao adicionar o dispositivo sintonizador. Certifique-se de que está acessível e tente novamente.", + "ErrorSavingTvProvider": "Ocorreu um erro ao gravar o provedor de TV. Certifique-se de que está acessível e tente novamente.", + "ErrorGettingTvLineups": "Ocorreu um erro ao fazer download da programação da tv. Por favor, certifique-se que a sua informação está correta e tente novamente.", + "MessageCreateAccountAt": "Criar uma conta em {0}", + "ErrorPleaseSelectLineup": "Por favor selecione a programação e tente novamente. Se não houver programações disponíveis, verifique se o seu nome de utilizador, senha e código postal estão corretos.", + "ErrorValidatingSupporterInfo": "Ocorreu um erro ao validar suas informações do Emby Premiere. Por favor, tente novamente mais tarde.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Navegue pelo catálogo de plugins {1} do Emby {0} para instalar provedores adicionais de TV ao vivo.", + "AddUser": "Adicionar Utilizador", + "HeaderEmailAddress": "Endereço de E-Mail", + "NumLocationsValue": "{0} pastas", + "PleaseAddAtLeastOneFolder": "Adicione pelo menos uma pasta a esta biblioteca clicando no botão Adicionar.", + "ErrorAddingMediaPathToVirtualFolder": "Ocorreu um erro ao adicionar o local dos seus ficheiros. Por favor, assegure-se que o local é valido e que o processo do Emby Server tenha acesso a essa localização.", + "ErrorAddingEmbyConnectAccount3": "A conta Emby já está ligada a um user local existente. Uma conta Emby só pode ser ligada a um user local de cada vez.", + "HeaderConfirmPluginInstallation": "Confirme a instalação do plugin", + "PleaseConfirmPluginInstallation": "Clique em OK para confirmar que leu e deseja continuar com a instalação do plugin.", + "MessagePluginInstallDisclaimer": "Plugins construídos por membros da comunidade Emby são uma ótima maneira de aprimorar sua experiência Emby com recursos e benefícios adicionais. Antes de instalar, esteja ciente dos efeitos que eles podem ter no seu Servidor Emby, como pesquisas mais longas da biblioteca, processamento adicional em segundo plano e diminuição da estabilidade do sistema.", + "HardwareAccelerationWarning": "Ativar a aceleração de hardware pode causar instabilidade em alguns ambientes. Certifique-se de que o seu sistema operacional e drivers de vídeo estão totalmente atualizados. Se tiver dificuldade em reproduzir o vídeo depois de habilitar a opção, será necessário alterar a configuração de volta para Automático.", + "ValueExample": "Exemplo: {0}", + "LabelFileOrUrl": "Ficheiro ou URL:", + "OptionEnableForAllTuners": "Ativar para todos os sintonizadores de dispositivos", + "HeaderTuners": "Sintonizadores", + "DrmChannelsNotImported": "Canais com DRM não serão importados.", + "LabelAllowHWTranscoding": "Permitir transcodificação de hardware", + "AllowHWTranscodingHelp": "Se habilitado, permite que o sintonizador transcodifique streams em tempo real. Isto pode ajudar a reduzir a transcodificação exigida pelo Emby Server.", + "MetadataSettingChangeHelp": "Alterar as configurações de metadados afetará o novo conteúdo adicionado daqui para frente. Para atualizar o conteúdo existente, abra a tela de detalhes e clique no botão atualizar ou execute atualizações em massa usando o gerenciador de metadados.", + "RecordingPathChangeMessage": "Ao alterar a sua pasta de gravações não migrará as gravações existentes do local antigo para o novo. Precisa de movê-los manualmente, se desejar.", + "LabelLocalIpAddress": "Endereço de IP local:", + "LabelBindToLocalNetworkAddressHelp": "Opcional. Substitua o endereço IP local que o Emby Server apresentará às apps Emby. Se deixado em branco, o servidor detectará automaticamente o endereço IP local.", + "SettingsWarning": "Alterar estes valores pode causar instabilidade ou falhas de conectividade. Se tiver problemas, recomendamos alterá-los de volta ao default.", + "OptionSaveMetadataAsHiddenHelp": "Ao alterar isto a alteração irá aplicar-se aos novos metadados gravados daqui para frente. Os arquivos de metadados existentes serão atualizados na próxima vez que forem gravados pelo Emby Server.", + "EnablePhotos": "Permitir fotos", + "EnablePhotosHelp": "As fotos serão detectadas e exibidas junto com outros arquivos de media.", + "ImportPlaylists": "Importar ficheiros da playlist", + "ImportPlaylistsHelp": "As listas de reprodução encontradas nas suas pastas de media podem ser importadas para o Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Gravar miniaturas de visualização de vídeo nas pastas de media", + "LabelGenerateVideoPreviewThumbnails": "Gerar miniaturas de visualização de vídeo:", + "LabelEnableDebugLogging": "Ativar log de depuração", + "OptionEnableExternalContentInSuggestions": "Ativar conteúdo externo nas sugestões", + "OptionEnableExternalContentInSuggestionsHelp": "Permitir que trailers da Internet e programas de TV ao vivo sejam incluídos no conteúdo sugerido.", + "LabelOptionalNetworkPath": "(Opcional) Pasta de rede compartilhada:", + "LabelOptionalNetworkPathHelp": "Se esta pasta for compartilhada na sua rede, fornecer o caminho de compartilhamento de rede pode permitir que os aplicativos Emby noutros dispositivos acedam a arquivos de media diretamente.", + "SynologyUpdateInstructions": "Faça login no DSM e vá para o Package Center para atualizar.", + "HeaderRecordingPostProcessing": "Pós-Processamento da Gravação", + "LabelPostProcessorArguments": "Argumentos da linha de comandos do pós-processador:", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Aplicação de pós-processamento:", + "DvrPostProcessorPathArgument": "{path}: O caminho completo do novo ficheiro de gravação.", + "OptionAutomaticallyGroupSeries": "Unir séries automaticamente que estão espalhadas por diversas pastas", + "OptionAutomaticallyGroupSeriesHelp": "Se ativado, as séries que estão espalhadas por várias pastas nesta biblioteca serão automaticamente unidas numa única série.", + "WhenDidYouPurchaseApp": "Quando comprou esta app originalmente?", + "PreferEmbeddedTitlesOverFileNames": "Prefirir títulos incorporados a nomes de arquivos", + "PreferEmbeddedTitlesOverFileNamesHelp": "Isto determina o título de exibição padrão quando não há metadados da Internet ou metadados locais disponíveis.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Config. sintonizador de TV em direto", + "HeaderTVSourceSetup": "Configuração da fonte de TV", + "HeaderDetectMyDevices": "Detetar meus Dispositivos", + "MessagePleaseWait": "Por favor, aguarde.Pode demorar um minuto.", + "DetectingDevices": "A detetar dispositivos", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Após a importação inicial, atualize automaticamente os metadados da Internet:", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "A cada {0} dias", + "LabelCertificatePassword": "Password do certificado:", + "LabelCertificatePasswordHelp": "Se o seu certificado exigir uma password, insira-a aqui.", + "HeaderNewLibrary": "Nova Biblioteca", + "HttpsRequiresCert": "Para habilitar ligações seguras,precisa de fornecer um certificado SSL confiável, como Lets Encrypt. Forneça um certificado ou desative as ligações seguras.", + "ServerRestartNeededAfterPluginInstall": "O Emby Server precisa de ser reiniciado após a instalação de um plugin.", + "PluginInstalledMessage": "O plugin foi instalado com sucesso. O Emby Server precisará de ser reiniciado para que as alterações tenham efeito.", + "MessagePremiereStatusGood": "Tem um plano {0} Emby Premiere e o uso do seu dispositivo está dentro do seu limite.", + "MessagePremiereStatusClose": "Tem um plano {0} Emby Premiere, mas o uso do seu dispositivo está perto do limite.", + "MessagePremiereExtendedPlans": "Considere um {0} plano de dispositivo suplementar{1}", + "MessagePremiereStatusOver": "Tem um plano {0} Emby Premiere, mas ultrapassou o limite do dispositivo!", + "ListItemPremiereSub": "{0} assinatura adquirida por meio de {2} expira em {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "Pode gerir esta assinatura diretamente com {0}", + "LabelAlreadyCanceled": "Esta assinatura foi cancelada. A chave permanecerá válida até à data de expiração.", + "HeaderCancelSub": "Cancelar Emby Premiere", + "MessageConfirmSubCancel": "NÃO, por favor, não vá... Vai perder todos os grandes recursos do Emby Premiere!", + "ButtonCancelSub": "Eu sei, cancele mesmo assim", + "ButtonDontCancelSub": "Manter o Emby Premiere", + "MessageSubCancelReqSent": "Um e-mail foi enviado ao proprietário da chave. Siga as instruções naquele e-mail para concluir o cancelamento desta assinatura. Esperamos vê-lo de volta em breve!", + "MessageSubCancelError": "Algo deu errado ao tentar cancelar. Envie um e-mail para {0} e nós esclareceremos.", + "LabelAlreadyCancelled": "Esta assinatura foi cancelada. Não será cobrado novamente, mas os recursos funcionarão até a data acima.", + "AllowOnTheFlySubtitleExtraction": "Permitir a extração de legendas em tempo real", + "AllowOnTheFlySubtitleExtractionHelp": "As legendas incorporadas podem ser extraídas de vídeos e entregues às apps Emby em texto simples para ajudar a prevenir a transcodificação de vídeo. Nalguns sistemas pode demorar muito e fazer com que a reprodução do vídeo pare durante o processo de extração. Desative isto para que as legendas incorporadas sejam gravadas com a transcodificação de vídeo quando não forem suportadas nativamente pelo dispositivo do cliente.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "O Debug logging só deve ser ativado conforme necessário para fins de solução de problemas. O aumento do acesso ao sistema de arquivos pode impedir que a máquina do servidor seja capaz de hibernar nalguns ambientes.", + "LabelSimultaneousConnectionLimit": "Limite de streams simultâneos:", + "SimultaneousConnectionLimitHelp": "Número máximo de streams simultâneos permitidos: Coloque 0 para ilimitado.", + "LaunchWebAppOnStartup": "Inicie a app web do Emby no meu navegador quando o Emby Server iniciar", + "LaunchWebAppOnStartupHelp": "Isto abrirá a app web no seu browser padrão quando o Emby Server for iniciado pela primeira vez. Isto não ocorrerá ao usar a função reiniciar servidor.", + "LabelReferrerHeader": "Referir http header:", + "LabelUserAgentHeader": "Agente do user http header:", + "SupplyCustomValueIfNeeded": "Forneça um valor de http header personalizado, se necessário.", + "HeaderConfigureRemoteAccess": "Configurar Acesso Remoto", + "LearnHowToCreateSynologyShares": "Aprenda a partilhar pastas no Synology.", + "LabelAllowedRemoteAddresses": "Filtro de endereço IP remoto:", + "LabelAllowedRemoteAddressesMode": "Modo de filtro de endereço IP remoto:", + "Whitelist": "Whitelist", + "Blacklist": "Lista Negra", + "AllowedRemoteAddressesHelp": "Lista separada por vírgulas de endereços IP ou entradas de IP / máscara de rede para redes que terão permissão para se ligar remotamente. Se deixado em branco, todos os endereços remotos serão permitidos.", + "LabelLanNetworks": "Redes LAN:", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Modo de conexão segura:", + "PreferredNotRequired": "Preferido, mas não obrigatório", + "RequiredForAllRemoteConnections": "Obrigatório para todas as conexões remotas:", + "HandledByProxy": "Gerido por reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Guardar legendas nas pastas do conteúdo", + "SaveSubtitlesIntoMediaFoldersHelp": "Armazenar as legendas ao lado dos ficheiros de vídeo permite que sejam facilmente geridos.", + "AutomaticSubtitleDownloadInstructions": "Para gerir o download automático de legendas, clique numa biblioteca na configuração da biblioteca Emby e edite as configurações de download de legendas para essa biblioteca.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Ativar a aceleração de hardware quando disponível:", + "HeaderPreferredHardwareDecoders": "Decodificadores de Hardware Preferidos", + "HeaderPreferredHardwareEncoders": "Codificadores de Hardware Preferidos", + "AllowChangingImageAndPassword": "Permitir que este user altere sua password e imagem de perfil", + "LabelSimultaneousStreamLimit": "Máximo de streams de vídeo simultâneos:", + "SimultaneousStreamLimitHelp": "Limite o número de sessões de reprodução de vídeo simultâneas.", + "LabelMusicFolderStructure": "Estrutura da pasta de músicas:", + "LabelMusicFolderStructureHelp": "Isso fornece uma dica para o scanner da biblioteca sobre a forma como suas pastas estão organizadas. Se não tiver a certeza ou se suas pastas não corresponderem exatamente a uma das opções, selecione a opção padrão Outro.", + "OtherOrUnstructured": "Outro ou não estruturado", + "PerfectArtistAlbumTrack": "Perfeitamente organizado em pastas de artista\\álbum, com faixas diretamente nas pastas de álbum.", + "PerfectAlbumTrack": "Perfeitamente organizado em pastas de álbuns, com faixas diretamente nas pastas de álbuns.", + "LabelMinCollectionSize": "Tamanho mínimo de coleção automática:", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Crie coleções automaticamente quando tiver pelo menos o número selecionado de títulos na sua biblioteca. Ao alterar este valor não afetará as coleções existentes.", + "LabelImportCollections": "Importar informações da coleção", + "LabelImportCollectionsHelp": "Quando ativado, importará informações da coleção dos seus downloaders de metadados ativados. Isto pode fazer com que coleções indesejadas sejam criadas automaticamente. A desativação impedirá que coleções futuras sejam criadas automaticamente, mas não excluirá as existentes.", + "LabelAllowAdultMetadata": "Permitir metadados para adultos", + "LabelAllowAdultMetadataHelp": "Permitir a correspondência de títulos para adultos ao pesquisar metadados da Internet.", + "HeaderVideoPreviewThumbnails": "Miniaturas de Visualização de Vídeo", + "LabelEnableHDRToneMapping": "Ativar mapeamento de tom HDR:", + "EnableHDRToneMappingHelp": "O mapeamento de tom garante a conversão de cores correta ao transcodificar o conteúdo HDR, que, de outra forma, aparecerá muito pálido e sem saturação. Componentes de driver adicionais podem ser necessários para oferecer suporte à aceleração de hardware com esse recurso habilitado. Consulte nosso guia de configuração de aceleração de hardware para obter detalhes.", + "WithHardwareAcceleratedTranscoding": "Sim, só com aceleração de hardware", + "TranscodingStillInitializing": "Os serviços de transcodificação do Emby Server ainda estão ocupados na inicialização. Esta tela será atualizada automaticamente quando os serviços de transcodificação estiverem prontos.", + "WithEitherHardwareOrSoftwareTranscoding": "Sim, com transcodificação de hardware ou software", + "ToneMappingInHardwareDescription": "O mapeamento de tom será executado com aceleração de hardware quando habilitado e suportado pelo hardware e ignorado em todos os outros casos.", + "ToneMappingInSoftwareDescription": "O mapeamento de tom será executado pelo software na CPU. É muito mais lento do que o mapeamento de tom acelerado por hardware e exigirá uma máquina de servidor muito poderosa.", + "ToneMappingInBothDescription": "O mapeamento de tom será executado com aceleração de hardware quando habilitado e compatível com o hardware, e será executado pelo software em todos os outros casos. O mapeamento de tom pelo software é muito mais lento do que o mapeamento de tom acelerado por hardware e exigirá uma máquina de servidor muito poderosa.", + "AutoMapped": "Mapeado automaticamente", + "ManuallyMapped": "Mapeado manualmente", + "NotMappedToGuideData": "Não mapeado para dados de guia", + "MappedToValue": "Mapeado para {0}", + "LabelAutomaticallyWakeServerForRecordings": "Acordar automaticamente a máquina do servidor para realizar gravações", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Os eventos de acordar serão agendados com o sistema operacional do servidor. Desativar esta opção impedirá que eventos de acordar futuros sejam agendados, mas não removerá quaisquer eventos agendados anteriormente.", + "Database": "Base de Dados", + "LabelOptimizeDatabaseOnShutdown": "Tentar otimizar a base de dados ao encerrar o servidor", + "LabelOptimizeDatabaseOnShutdownHelp": "A operação de otimização do banco de dados geralmente é autónoma, mas ocasionalmente executará uma análise se parecer que é útil para o planeador de consultas. Isto pode fazer com que o Emby Server demore mais para desligar.", + "LabelDatabaseCacheSize": "Tamanho da cache da Base de Dados (MB)", + "LabelDatabaseCacheSizeHelp": "Define a quantidade de dados que o banco de dados manterá na memória de uma vez, por arquivo de banco de dados. Um valor maior pode ajudar a melhorar o desempenho do Emby Server. Requer a reinicialização do servidor para ter efeito.", + "LabelDatabaseAnalysisLimit": "Limite de linhas de análise", + "LabelDatabaseAnalysisLimitHelp": "Quando o banco de dados é otimizado, este é o número aproximado de linhas examinadas em cada índice pelo comando ANALYZE. Um valor maior aumentará a eficácia da otimização do banco de dados, mas pode fazer com que o Emby Server demore mais para desligar.", + "LabelVacuumDb": "Limpar o banco de dados na próxima inicialização do Emby Server", + "LabelVacuumDbHelp": "O comando vacuum reconstrói o arquivo de banco de dados, reconstruindo-o numa quantidade mínima de espaço em disco. Nalguns casos pode melhorar o desempenho do Emby Server. Tenha em atenção que o seu Emby Server não poderá ser usado durante o tempo de operação de vácuo, nem haverá qualquer maneira de monitorizar o progresso do vácuo. Evite forçar fechar o processo do Emby Server durante este período, pois pode corromper o banco de dados. Esta é uma operação única e esta opção será revertida para desmarcada na próxima inicialização do servidor.", + "AdvancedOptionsWarning": "Estas são opções avançadas e geralmente devem ser deixadas como padrão, a menos que tenha um motivo para alterá-las.", + "HeaderRecentlyActiveDevices": "Dispositivos Activos Recentemente", + "YesUntilServerRestart": "Sim, até ao próximo reiniciar do servidor", + "YesUntilLogRotate": "Sim, até à próxima rotação do ficheiro de logs", + "LabelSubtitleDownloadMaxAge": "Parar automaticamente o download de legendas de ficheiro mais antigos que:", + "SubtitleDownloadMaxAgeHelp": "Isto é baseado no valor de metadados da data adicionada.", + "NoAgeLimit": "Sem limite de idade", + "AnonymizeLogContents": "Anonimizar o conteudo dos log", + "Markers": "Marcadores", + "LabelGenerateIntroVideoMarkers": "Gerar marcadores de intro de video", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copiar configurações do utilizador:", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copiar opções", + "LabelMultiRestrictionMode": "Modo de múltiplas restrições:", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Codificadores de software", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Permitir upload da câmara", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Ativar escrita e leitura de metadata de pessoas", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "LabelPageSize": "Page Size", + "PageNarrow": "Narrow", + "PageSingle": "Single page", + "PageBook": "Double page", + "PageMaximized": "Maximized", + "StartOfSection": "Start of chapter", + "PreviousSection": "Previous chapter", + "NextSection": "Next chapter", + "PositionInBook": "Position in the book", + "TableOfContents": "Table Of Contents", + "ZoomOut": "Zoom out", + "ZoomIn": "Zoom in", + "ZoomNone": "Default zoom", + "ZoomAutoFit": "Fit page", + "LayoutPage": "Single page", + "LayoutDouble": "Double page", + "LayoutVertical": "Vertical scroll", + "Margins": "Margins", + "PreviousPage": "Previous page", + "CurrentPage": "Current page", + "TotalPages": "Total pages", + "NextPage": "Next page", + "RightToLeft": "Right-to-left order", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "MaintenanceModeMessage": "Maintenance mode message", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LabelFolderScanningMode": "Folder scanning mode", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "Legacy": "Legacy" +} diff --git a/strings/ro.json b/strings/ro.json new file mode 100644 index 0000000..a04ea81 --- /dev/null +++ b/strings/ro.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Ești Gata!", + "ThisWizardWillGuideYou": "Acest asistent vă va ghida prin procesul de configurare. Pentru a începe, vă rugăm să selectați limba preferată.", + "HeaderCreateYourFirstUser": "Crează primul utilizator", + "ButtonQuickStartGuide": "Ghid rapid de Start", + "MoreUsersCanBeAddedLater": "Mai mulți utilizatori pot fi adăugați mai târziu în Tabloul de Bord.", + "UserProfilesIntro": "Emby include sprijin pentru profile de utilizator, permițând fiecărui utilizator să își facă propriile setări de afișare, playstate și control parental.", + "WizardCompleted": "Asta e tot ce avem nevoie pentru moment. Emby a început colectarea de informații despre biblioteca media. Verifică unele din aplicațiile noastre și apoi faceți clic pe Finalizare pentru a vizualiza Tabloul de bord al Serverului .", + "MessagePleaseAcceptTermsOfService": "Vă rugăm să acceptați termenii de utilizare și politica de confidențialitate înainte de a continua.", + "OptionIAcceptTermsOfService": "Accept termenii de utilizare", + "SeeOurHwaGuide": "Consultați {0}ghidul nostru de configurare a accelerației hardware{1}.", + "HeaderEmbyServerReleaseNotes": "Note de lansare a serverului Emby", + "AllowSubtitleDownloading": "Permite descărcarea subtitrărilor", + "AllowSubtitleManagement": "Permite ștergerea fișierelor de subtitrare existente", + "NewUserNameHelp": "Acesta este modul în care utilizatorul va apărea pe serverul dvs.", + "ChapterMarkers": "Marcatori de capitol", + "LabelThumbnailImagesInterval": "Thumbnail images interval", + "ThumbnailImagesIntervalHelp": "Capturile mai frecvente vor avea ca rezultat o experiență mai bună, dar vor necesita mai mult spațiu pe disc și timp pentru a crea imaginile.", + "LabelAuthProvider": "Authentication provider", + "AuthProviderHelp": "Administratorii folosesc întotdeauna furnizorul Emby implicit pentru a se asigura că nu niciodată nu rămân blocați pe dinafară.", + "HeaderNewUser": "Utilizator nou", + "ChangeServerDisplayName": "Schimbă numele serverului", + "ShowAdvancedSettings": "Vezi setări avansate", + "ChangingMetadataImageSettingsNewContent": "Changes to metadata or artwork downloading settings will only apply to new content added to your library. To apply the changes to existing titles, you'll need to refresh their metadata manually.", + "AllowRemoteAccess": "Premite conexiuni de la distanță la acest server Emby.", + "AllowRemoteAccessHelp": "Dacă rămane neselectat, toate conexiunile de la distanță vor fi refuzate.", + "Alerts": "Alerte", + "LabelTrackTitleDisplay": "Embedded track title display", + "GenerateUserFriendlyTrackTitles": "Generate user friendly titles using track information", + "PreferOriginalTrackTitles": "Prefer embedded titles", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "EnableTranscodingThrottle": "Enable throttling", + "EnableTranscodingThrottleHelp": "Emby will dynamically adjust transcoding speed based in order to reduce CPU utilization.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} Image Fetchers", + "HeaderImageOptions": "Image Options", + "OptionBeta": "Testare", + "RegisterWithPayPal": "Înregistrează-te cu PayPal", + "LabelSyncTempPath": "Cale fișier temporară", + "LabelSyncTempPathHelp": "Specificați un dosar de lucru special pentru sincronizare. Fișierele media convertite, create în timpul procesului de sincronizare, vor fi stocate aici.", + "LabelCustomCertificatePath": "Calea către certificatul personalizat:", + "LabelCustomCertificatePathHelp": "Furnizați propriul fișier care conține un certificat SSL in format .pfx.", + "HeaderSetupLibrary": "Setări biblioteci media", + "LabelTimeLimitHours": "Limită de timp(ore):", + "HeaderPreferredMetadataLanguage": "Limba preferata pentru metadata", + "LabelSaveLocalMetadata": "Salvează posterele si metadata în dosarele ce conțin fișierele media", + "LabelSaveLocalMetadataHelp": "Salvând posterele și metadata direct in dosarele media, acestea vor fi mai accesibile pentru a fi modificate.", + "TabAccess": "Acces", + "HeaderDeviceAccess": "Accesul Dispozitivelor", + "OptionEnableAccessFromAllDevices": "Activează accesul de la toate dispozitivele", + "OptionEnableAccessToAllChannels": "Activează accesul la toate canalele", + "OptionEnableAccessToAllLibraries": "Activează accesul la toate bibliotecile", + "DeviceAccessHelp": "Aceasta se aplică numai pentru dispozitive care pot fi identificate în mod unic și nu va împiedica accesul din navigatorul de internet. Filtrând accesul dispozitivelor utilizatorului va împiedica utilizarea noilor dispozitive până când acestea nu vor fi aprobate aici.", + "LabelDisplayMissingEpisodesWithinSeasons": "Afișeaza episoadele lipsă din seriale", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Aceasta trebuie sa fie de asemenea activată pentru bibliotecile de seriale în setările serverului Emby.", + "ImportMissingEpisodesHelp": "Dacă este activată, informația despre episoadele lipsă va fi importată in baza de date Emby și va fi afișată în cadrul serialelor. Aceasta poate cauza un timp semnificativ mai îndelungat la scanarea bibliotecilor.", + "MessageEnablingOptionLongerScans": "Activând această opțiune poate rezulta în scanări ale bilbiotecilor semnificativ mai îndelungate.", + "LabelMaxParentalRating": "Limită de vârstă maxim permisă:", + "MaxParentalRatingHelp": "Conținutul cu un o limită de vârstă mai mare va fi ascuns pentru acest utilizator.", + "LibraryAccessHelp": "Selectează dosarele media partajate cu acest utilizator. Administratorii vor avea posibilitatea sa modifice toate dosarele utilizând managerul de metadata.", + "ChannelAccessHelp": "Selectează canalele pe care vrei să le partajezi cu acest utilizator. Administratorii vor avea posibilitatea sa editeze canalele folosind managerul de metadate.", + "ImageUploadAspectRatioHelp": "Rație de Aspect Recomandată 1:1. Doar fișiere JPG/PNG.", + "AlreadyPaidHelp1": "Dacă ați plătit deja pentru a instala o versiune mai veche de Media Browser pentru Android, nu trebuie să mai plătiți din nou pentru a activa această aplicație. Apăsați OK pnetru a ne trimite un email la {0} și o vom activa noi pentru dvs.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, setup Emby Premiere in your Emby Server Dashboard under Help -> Emby Premiere, and it will be unlocked automatically.", + "TabMyPlugins": "Plugin-urile mele", + "TabCatalog": "Catalog", + "HeaderAutomaticUpdates": "Actualizare Automată", + "Standard": "Standard", + "TabSupporterKey": "Cheia Emby Premiere", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Folositor pentru conturi private sau de administrator ascunse. Utilizatorul va trebui să se conecteze manual prin introducerea numelui de utilizator și a parolei.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Dezactivați acest utilizator", + "OptionDisableUserHelp": "Dacă este dezactivat, serverul nu va permite nicio conexiune de la acest utilizator. Conexiunile existente vor fi terminate brusc.", + "OptionAllowUserToManageServer": "Permite acestui utilizator să administreze serverul", + "HeaderFeatureAccess": "Acces Facilități", + "OptionAllowMediaPlayback": "Permite redarea media", + "AllLibraries": "All libraries", + "HeaderAllowMediaDeletionFrom": "Permite ștergerea conținutului media din", + "LiveTVRecordingManagement": "Gestionarea înregistrărilor TV în direct", + "OptionAllowRemoteControlOthers": "Permite controlul la distanță a celorlalți utilizatori", + "OptionAllowRemoteSharedDevices": "Permite controlul la distanță a dispozitivelor partajate", + "OptionAllowRemoteSharedDevicesHelp": "Dispozitivele DLNA sunt considerate partajate până ce un utilizator începe să le controleze.", + "OptionAllowLinkSharing": "Permite partajarea pe rețelele de socializare", + "OptionAllowLinkSharingHelp": "Doar paginile wev ce contin informații despre conținutul media va fi partajat. Fișierele media nu vor fi partajate niciodată pentru public. Partajările sunt limitate ca timp și vor expira după {0} zile.", + "OptionRelease": "Lansare Oficială", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "Serverul se va reporni doar în timp ce nu are nici o sarcină, când nu este nici un utilizator conectat.", + "LabelRunServerAtStartup": "Pornește serverul automat cu sistemul de operare", + "LabelRunServerAtStartupHelp": "Aceaasta va porni Emby bara de stare la pornirea Windows. Dacă ați stat Emby ca serviciu de Windows, lasați această opțiune neselectată și configurați serviciul să pornească automat.", + "ButtonSelectDirectory": "Selectați Director", + "LabelCachePath": "Cale pentru cache:", + "DefaultMetadataLangaugeDescription": "Acestea sunt setările implicite și pot fi personalizate pentru fiecare bibliotecă în parte.", + "LabelCachePathHelp": "Specificați o locație specială pentru fișierele de cache, precum imagini etc. Lasați gol pentru a folosi setarea implicită.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Cale pentru metadata:", + "LabelMetadataPathHelp": "Specificați o locație specială pentru a descărca postere și metadata.", + "LabelTranscodingTempPath": "Cale temporară pentru conversie:", + "LabelTranscodingTempPathHelp": "Acest director conține fișierele de lucru folosite de convertor. Specificați o cale specială sau lasați gol pentru a folosi pe cea implicită în directorul de lucru al serverului.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Reîmprospătează Ghidul", + "LabelNumberOfGuideDays": "Numărul de zile de ghid de descărcat", + "LabelNumberOfGuideDaysHelp": "Descărcând mai multe zile de ghid va permite să programați mai în avans și să vizualizați listările mai în viitor, dar descărcarea va dura mai mult. \"Automat\" va alege în funcție de numărul de canale.", + "HeaderFetchImages": "Preia imagini:", + "LabelMaxBackdropsPerItem": "Numărul maxim de fundaluri pentru fiecare element:", + "LabelMaxScreenshotsPerItem": "Numărul maxim de capturi pentru fiecare element:", + "LabelMinBackdropDownloadWidth": "Lățimea maximă pentru fundalurile descărcate:", + "LabelMinScreenshotDownloadWidth": "Minimum screenshot download width", + "ButtonAddScheduledTaskTrigger": "Adaugă declanșator", + "ButtonAdd": "Adaugă", + "LabelTriggerType": "Tip Declanșator", + "OptionOnInterval": "On an interval", + "OptionAfterSystemEvent": "After a system event", + "LabelDay": "Day", + "LabelTime": "Time", + "LabelEvent": "Event", + "OptionWakeFromSleep": "Wake from sleep", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Enable real time monitoring", + "LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately, on supported file systems.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Friendly server name", + "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.", + "LabelPreferredDisplayLanguage": "Preferred display language", + "LabelPreferredDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LabelReadHowYouCanContribute": "Learn how you can contribute.", + "LabelCustomCss": "Custom css", + "LabelCustomCssHelp": "Apply your own custom css to the web interface.", + "LabelLocalHttpServerPortNumber": "Local http port number", + "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Emby's http server should bind to.", + "LabelPublicHttpPort": "Public http port number", + "LabelPublicHttpPortHelp": "The public port number that should be mapped to the local http port.", + "LabelPublicHttpsPort": "Public https port number", + "LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local https port.", + "RequireHttps": "Require https for external connections", + "RequireHttpsHelp": "If enabled, connections over http will be redirected to https.", + "LabelHttpsPort": "Local https port number", + "LabelHttpsPortHelp": "The tcp port number that Emby's https server should bind to.", + "LabelEnableAutomaticPortMap": "Enable automatic port mapping", + "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", + "LabelExternalDDNS": "External domain", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Min resume percentage", + "LabelMaxResumePercentage": "Max resume percentage", + "LabelMinResumeDuration": "Min resume duration (seconds)", + "LabelMinResumePercentageHelp": "Titles are assumed unplayed if stopped before this time", + "LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time", + "LabelMinResumeDurationHelp": "Titles shorter than this will not be resumable", + "HeaderStatus": "Status", + "Subscriptions": "Subscriptions", + "LabelEndingEpisodeNumber": "Ending episode number", + "LabelEndingEpisodeNumberHelp": "Only required for multi-episode files", + "HeaderSupportTheTeam": "Support the Emby Team", + "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by purchasing Emby Premiere. A portion of all income will be contributed to other free tools we depend on.", + "DonationNextStep": "Once complete, please return and enter your Emby Premiere key, which you will receive by email.", + "HeaderRunningTasks": "Running Tasks", + "ButtonUpdateNow": "Update Now", + "PleaseUpdateManually": "Please shutdown Emby Server and install the latest version.", + "ServerUpToDate": "Emby Server is up to date", + "MessagePleaseRestartServerToFinishUpdating": "Please restart the server to finish applying updates.", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", + "HeaderForgotKey": "Forgot Key", + "LabelSupporterEmailAddress": "The email address that was used to purchase the key.", + "ButtonRetrieveKey": "Retrieve Key", + "LabelSupporterKey": "Emby Premiere key (paste from email)", + "LabelSupporterKeyHelp": "Enter your Emby Premiere key to start enjoying additional benefits.", + "MessageInvalidKey": "Emby Premiere key is missing or invalid.", + "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also have an active Emby Premiere subscription.", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Send message", + "HeaderSendMessage": "Send Message", + "ButtonSend": "Send", + "LabelMessageText": "Message text", + "LabelMessageTitle": "Message title", + "ButtonEditOtherUserPreferences": "Editați profilul, imaginea și preferințele personale ale acestui utilizator.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Api Keys", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "Api Key", + "HeaderResumeSettings": "Resume Settings", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Activity", + "ButtonPurchase": "Purchase", + "HeaderInstall": "Install", + "LabelSelectVersionToInstall": "Select version to install", + "LinkLearnMoreAboutSubscription": "Learn about Emby Premiere", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Developer Info", + "HeaderRevisionHistory": "Revision History", + "ButtonViewWebsite": "View website", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Opțional, conectați acest utilizator local la un cont Emby Connect existent pentru a permite accesul ușor de conectare din orice aplicație Emby fără a fi nevoie să cunoașteți adresa IP a serverului.", + "ButtonLearnMoreAboutEmbyConnect": "Aflați mai multe despre Emby Connect", + "LabelDateAddedBehavior": "Date added behavior for new content", + "OptionDateAddedImportTime": "Use date scanned into the library", + "OptionDateAddedFileTime": "Use file creation date", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Library Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Camera upload path", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Parental Control", + "HeaderAccessSchedule": "Access Schedule", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Acces la bibliotecă", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "TitlePasswordReset": "Password Reset", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Permite descărcarea media", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Permite descărcarea media care necesită transcodare", + "AllowMediaConversion": "Permite conversia media", + "AllowMediaConversionHelp": "Acordați sau refuzați accesul la funcția de conversie media.", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricționarea accesului la transcodare va dezactiva selecția calității și poate cauza erori de redare în aplicațiile Emby din cauza formatelor media neacceptate sau a lățimii de bandă insuficiente în rețea.", + "LabelRemoteClientBitrateLimit": "Limita ratei de biți în flux pe internet (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Zip Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Display name", + "OptionDownloadImagesInAdvance": "Download images in advance", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Thank you for supporting Emby.", + "FileReadCancelled": "The file read has been canceled.", + "FileNotFound": "File not found.", + "FileReadError": "An error occurred while reading the file.", + "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "HeaderNewApiKey": "New Api Key", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "TextEnjoyBonusFeatures": "Bucurați-vă de caracteristicile Bonus", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "To manage plugins, please use the Emby web app.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Are you sure you wish to restart Emby Server?", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Running on http port {0}", + "LabelRunningOnPorts": "Running on http port {0}, and https port {1}", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Select Path", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Metadata Manager", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Change Content Type", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Home videos & photos", + "OptionBooks": "Books", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "New name", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Rename", + "HeaderPluginInstallation": "Plugin Installation", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Price: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Thank You", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Unlock App", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Add User", + "HeaderEmailAddress": "E-Mail Address", + "NumLocationsValue": "{0} dosare", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Example: {0}", + "LabelFileOrUrl": "File or url", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Enable debug logging", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN networks", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Fluxuri video simultane maxime", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Dispozitive active recent", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copiați setările de la utilizator", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Permite încărcarea din cameră", + "AllowCameraUploadHelp": "Dacă este permis și dacă este activat în aplicațiile mobile Emby, utilizatorii pot încărca automat fotografii și videoclipuri realizate de pe camera lor pe acest server Emby", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Permite partajarea conținutului personal, cum ar fi listele de redare, cu alți utilizatori de pe acest server", + "AllowSharingPersonalContentHelp": "Dacă se acordă, acest utilizator va putea să-și partajeze listele de redare cu alți utilizatori. Elementele din lista de redare vor fi în continuare restricționate pe baza accesului la bibliotecă de utilizator și a controlului parental.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/ru.json b/strings/ru.json new file mode 100644 index 0000000..6ef2110 --- /dev/null +++ b/strings/ru.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Вы готовы!", + "ThisWizardWillGuideYou": "Этот помощник проведёт вас через все фазы установки и настройки Emby Server. Сначала выберите предпочитаемый язык.", + "HeaderCreateYourFirstUser": "Создайте первого пользователя", + "ButtonQuickStartGuide": "Руководство по быстрому запуску", + "MoreUsersCanBeAddedLater": "Дополнительные пользователи могут быть добавлены позже в настройках Emby Server.", + "UserProfilesIntro": "Emby включает встроенную поддержку пользовательских профилей, позволяя каждому пользователю иметь собственные настройки отображения, состояние воспроизведения и родительский контроль.", + "WizardCompleted": "Это всё, что нам нужно сейчас. Emby начинает собирать сведения о вашей медиатеке. Ознакомьтесь пока с некоторыми нашими приложениями, а затем нажмите Завершить, чтобы просмотреть Панель сервера.", + "MessagePleaseAcceptTermsOfService": "Подтвердите согласие с Условиями предоставления услуг и Политикой конфиденциальности, прежде чем продолжить.", + "OptionIAcceptTermsOfService": "Я соглашаюсь с Условиями предоставления услуг", + "SeeOurHwaGuide": "См. Наше {0} руководство по настройке аппаратного ускорения {1}.", + "HeaderEmbyServerReleaseNotes": "Emby Server изменения в обновлении", + "AllowSubtitleDownloading": "Разрешить загрузку субтитров", + "AllowSubtitleManagement": "Разрешить удаление существующих файлов субтитров", + "NewUserNameHelp": "Именно так пользователь будет выглядеть на сервере.", + "ChapterMarkers": "Закладки глав", + "LabelThumbnailImagesInterval": "Интервал для мини-изображений", + "ThumbnailImagesIntervalHelp": "Более частые эскизы улучшат работу, но для создания изображений потребуется больше места на диске и времени.", + "LabelAuthProvider": "Поставщик проверки подлинности", + "AuthProviderHelp": "Администраторы всегда используют по умолчанию поставщика Emby, чтобы гарантировать, что вы никогда не будете заблокированы.", + "HeaderNewUser": "Новый пользователь", + "ChangeServerDisplayName": "Смена отображаемого имени сервера", + "ShowAdvancedSettings": "Показать расширенные параметры", + "ChangingMetadataImageSettingsNewContent": "Изменения в настройках загрузки метаданных или иллюстраций применяются только к новому содержанию, добавляемому в медиатеку. Чтобы применить изменения к наличным произведениям, необходимо обновить их метаданные вручную.", + "AllowRemoteAccess": "Разрешить удалённый доступ к данному серверу Emby Server.", + "AllowRemoteAccessHelp": "Если флажок снят, то все удалённые подключения будут заблокированы.", + "Alerts": "Оповещения", + "LabelTrackTitleDisplay": "Встроенное отображение названия трека", + "GenerateUserFriendlyTrackTitles": "Создавайте удобные заголовки, используя информацию о треках", + "PreferOriginalTrackTitles": "Предпочитать внедрённые названия", + "TrackTitleDisplayHelp": "Выберите отображаемое название для встроенного звука и дорожек субтитров. Не рекомендуется отдавать предпочтение встроенным файлам, если вы не собираете информацию о встроенных треках вручную.", + "EnableTranscodingThrottle": "Включить троттлинг", + "EnableTranscodingThrottleHelp": "Emby динамически регулирует скорость перекодировки, чтобы уменьшать нагрузку на CPU.", + "HeaderTypeMetadataDownloaders": "{0} загрузчики метаданных", + "HeaderTypeImageFetchers": "{0} отборщики рисунков", + "HeaderImageOptions": "Опции рисунка", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Зарегистрировать через PayPal", + "LabelSyncTempPath": "Путь ко временному файлу", + "LabelSyncTempPathHelp": "Укажите рабочую папку. Здесь будут храниться преобразованные медиафайлы, созданные в процессе конверсии.", + "LabelCustomCertificatePath": "Путь к пользовательскому SSL-сертификату", + "LabelCustomCertificatePathHelp": "Путь к файлу PKCS #12, содержащему сертификат и закрытый ключ для включения поддержки TLS на произвольном домене.", + "HeaderSetupLibrary": "Настройка медиатеки", + "LabelTimeLimitHours": "Временной лимит (час)", + "HeaderPreferredMetadataLanguage": "Выбор языка метаданных", + "LabelSaveLocalMetadata": "Сохранять иллюстрации внутри медиапапок", + "LabelSaveLocalMetadataHelp": "Сохранение иллюстраций в медиа-папках, разместит изображения рядом с медиафайлами. Где легко можно получить доступ к иллюстрациям извне Emby. Если отключено, изображения будут сохранены в папку метаданных сервера.", + "TabAccess": "Доступ", + "HeaderDeviceAccess": "Доступ с устройства", + "OptionEnableAccessFromAllDevices": "Включить доступ со всех устройств", + "OptionEnableAccessToAllChannels": "Включить доступ ко всем каналам", + "OptionEnableAccessToAllLibraries": "Включить доступ ко всем медиатекам", + "DeviceAccessHelp": "Это относится только к устройствам, которые могут быть однозначно распознаны и не препятствует доступу через браузер. Фильтрация доступа пользовательского устройства запретит использование новых устройств до тех пор, пока они не будут одобрены.", + "LabelDisplayMissingEpisodesWithinSeasons": "Отображать отсутствующие эпизоды в пределах сезонов", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Это также должно быть включено для ТВ-медиатек при установке и настройке Emby Server.", + "ImportMissingEpisodesHelp": "При включении, информация об отсутствующих эпизодах будет импортирована в вашу базу данных Emby и отображаться в пределах сезонов и сериалов. Это может увеличить время сканирования медиатеки.", + "MessageEnablingOptionLongerScans": "Включение этой опции может привести к значительному увеличению времени сканирования медиатеки.", + "LabelMaxParentalRating": "Максимальная допустимая возрастная категория", + "MaxParentalRatingHelp": "Содержание с более высокой возрастной категорией будет скрыто от этого пользователя.", + "LibraryAccessHelp": "Выберите медиапапки для совместного использования с этим пользователем. Администраторы смогут редактировать все папки с помощью «Диспетчера метаданных».", + "ChannelAccessHelp": "Выберите каналы для совместного использования с этим пользователем. . Администраторы могут изменять все каналы с помощью «Диспетчера метаданных».", + "ImageUploadAspectRatioHelp": "Рекомендуемое соотношение сторон - 1:1. Разрешены только JPG/PNG.", + "AlreadyPaidHelp1": "Если вы уже заплатили за установку старшей версии Media Browser for Android, вам не нужно платить снова, чтобы активировать данное приложение. Нажмите кнопку \"OK\", чтобы отправить нам email на {0}, и мы активируем это для вас.", + "AlreadyPaidHelp2": "Вы приобрели Emby Premiere? Просто закройте данный диалог, установите Emby Premiere в вашей Панели Emby Server под Справка -> Emby Premiere, и она будет разблокирована автоматически.", + "TabMyPlugins": "Мои плагины", + "TabCatalog": "Каталог", + "HeaderAutomaticUpdates": "Автоматические обновления", + "Standard": "Стандартный", + "TabSupporterKey": "Ключ Emby Premiere", + "OptionHideUserLocal": "Скрыть этого пользователя с экранов входа в систему в локальной сети", + "OptionHideUserRemote": "Скрыть этого пользователя с экрана входа в систему при удаленном подключении", + "OptionHideUserFromLoginHelp": "Полезно для приватных или скрытых аккаунтов администратора. Пользователь должен будет вручную войти, введя имя пользователя и пароль.", + "HideFromUnusedDevices": "Скрыть пользователя с экранов входа на устройствах с которых он никогда не входил", + "OptionDisableUser": "Заблокировать этого пользователя", + "OptionDisableUserHelp": "При блокировании, этому пользователю запрещаются любые подключения к серверу. Имеющиеся соединения будут разорваны.", + "OptionAllowUserToManageServer": "Разрешить этому пользователю управлять сервером", + "HeaderFeatureAccess": "Доступ к компонентам", + "OptionAllowMediaPlayback": "Разрешить воспроизведение медиаданных", + "AllLibraries": "Все медиатеки", + "HeaderAllowMediaDeletionFrom": "Разрешить удаление медиаданных из", + "LiveTVRecordingManagement": "Управление записью телепередач в прямом эфире", + "OptionAllowRemoteControlOthers": "Разрешить удалённое управление другими пользователями", + "OptionAllowRemoteSharedDevices": "Разрешить удаленное управление общими устройствами", + "OptionAllowRemoteSharedDevicesHelp": "DLNA-устройства считаются используемыми совместно, пока какой-либо пользователь не начнёт управлять ими.", + "OptionAllowLinkSharing": "Разрешить совместный доступ для социальных сетей", + "OptionAllowLinkSharingHelp": "Общедоступны только веб-страницы содержащие сведения о медиаданных. Медиафайлы никогда не предоставляются для общего просмотра. Совместно используемые ресурсы ограничены во времени, а срок действия истекает через {0} дн(я/ей).", + "OptionRelease": "Официальный выпуск", + "LabelAllowServerAutoRestartPlugin": "Разрешить автоматическую перезагрузку сервера для применения обновлений плагинов", + "LabelAllowServerAutoRestartServerOrPlugin": "Разрешить автоматическую перезагрузку сервера для применения обновлений сервера или плагинов", + "LabelAllowServerAutoRestartHelp": "Сервер будет перезапускаться только в периоды простоя, когда все пользователи не активны.", + "LabelRunServerAtStartup": "Запускать сервер при старте системы", + "LabelRunServerAtStartupHelp": "Это запустит иконку Emby в трее при запуске Windows. Если вы настроили службу Windows, оставьте это невыбранным и настройте запуск службы при старте.", + "ButtonSelectDirectory": "Выбрать каталог", + "LabelCachePath": "Путь к кешу", + "DefaultMetadataLangaugeDescription": "Они являются значениями по умолчанию и могут быть подстроены индивидуально для каждой медиатеки.", + "LabelCachePathHelp": "Укажите пользовательское расположение для файлов кеша сервера, таких как изображения. Оставьте пустым, чтобы использовать настройки сервера по умолчанию.", + "LabelDefaultRecordingFolder": "Каталог для записей по-умолчанию", + "LabelMovieRecordingFolder": "Каталог для записей", + "LabelSeriesRecordingFolder": "Каталог для записи серий", + "SeriesRecordingFolderHelp": "(Опционально). Выберите библиотеку для сохранения записей серий. Это должна быть библиотека, созданная вами в настройках библиотек Emby с типом контента, установленным на ТВ-шоу или смешанный контент.", + "HeaderProgramData": "Программные данные", + "RecordingFolderHelp": "Выберите библиотеку по умолчанию для сохранения записей в неё. Это должна быть библиотека, созданная вами в настройках библиотек Emby с типом контента, установленным на смешанный контент.", + "MovieRecordingFolderHelp": "(Опционально). Выберите библиотеку для сохранения записей фильмов. Это должна быть библиотека, созданная вами в настройках библиотек Emby с типом контента, установленным на фильмы или смешанный контент.", + "LabelMetadataPath": "Путь к метаданным", + "LabelMetadataPathHelp": "Укажите расположение, в котором будет создана папка 'metadata' для скачиваемых рисунков и метаданных, или оставьте пустым для восстановления по умолчанию. При изменении вам необходимо вручную перенести содержимое из старого расположения в новое. Если вы когда-либо вручную измените содержимое папки metadata, вам нужно запустить {0}задание по синхронизации папки метаданных{1}.", + "LabelTranscodingTempPath": "Путь ко временным файлам перекодировки", + "LabelTranscodingTempPathHelp": "Эта папка содержит рабочие файлы, используемые при перекодировке. Укажите собственный путь или оставьте пустым, чтобы использовать по умолчанию путь к папке данных сервера.", + "GenerateVideoPreviewThumbnailsHelp": "Эскизы предварительного просмотра видео обновляются в режиме реального времени при поиске в поддерживаемых приложениях. Создание эскизов может занять много времени, вызвать высокую загрузку CPU и дополнительное дисковое пространство.", + "AsAScheduledTask": "как запланированная задача", + "AsAScheduledTaskAndMediaAdded": "в качестве запланированной задачи и при добавлении медиа", + "ButtonRefreshGuideData": "Обновить данные телегида", + "LabelNumberOfGuideDays": "Число дней для загрузки данных телегида", + "LabelNumberOfGuideDaysHelp": "Загрузка программы телегида на большее количество дней дает возможность планировать дальнейшие действия заранее, но потребуется больше времени для загрузки. \"Авто\" будет выбирать в зависимости от количества каналов. Обратите внимание, что независимо от того, сколько дней вы выберете, программа телегида должна существовать, чтобы её можно было загрузить. Некоторые поставщики предоставляют телегид только на 24 часа. Emby Guide Data поддерживает до 14 дней.", + "HeaderFetchImages": "Отборка рисунков", + "LabelMaxBackdropsPerItem": "Максимальное число задников на элемент", + "LabelMaxScreenshotsPerItem": "Максимальное число снимков экрана на элемент", + "LabelMinBackdropDownloadWidth": "Минимальная ширина загружаемого задника", + "LabelMinScreenshotDownloadWidth": "Минимальная ширина загружаемого снимка экрана", + "ButtonAddScheduledTaskTrigger": "Добавить триггер", + "ButtonAdd": "Добавить", + "LabelTriggerType": "Тип триггера", + "OptionOnInterval": "По интервалу", + "OptionAfterSystemEvent": "По системному событию", + "LabelDay": "День", + "LabelTime": "Время", + "LabelEvent": "Событие", + "OptionWakeFromSleep": "Выход из спящего режима", + "Every": "Каждый", + "LabelEnableRealtimeMonitor": "Включить отслеживание в реальном времени", + "LabelEnableRealtimeMonitorHelp": "Изменения в файлах будут обрабатываться немедленно на поддерживаемых файловых системах.", + "Community": "Сообщество", + "HeaderEmbyNews": "Новости Emby", + "LabelFriendlyServerName": "Понятное имя сервера", + "LabelFriendlyServerNameHelp": "Данное имя используется для распознавания данного сервера. Если не заполнять, то будет использовано имя компьютера.", + "LabelPreferredDisplayLanguage": "Выбор языка отображения", + "LabelPreferredDisplayLanguageHelp": "Перевод Emby — это непрерывный проект.", + "LabelReadHowYouCanContribute": "Как внести свой вклад.", + "LabelCustomCss": "Пользовательский CSS", + "LabelCustomCssHelp": "Применяйте свои собственные пользовательские стили CSS к веб-интерфейсу.", + "LabelLocalHttpServerPortNumber": "Номер локального HTTP-порта", + "LabelLocalHttpServerPortNumberHelp": "Номер TCP-порта, к которому должен привязываться HTTP-сервер Emby.", + "LabelPublicHttpPort": "Номер публичного HTTP-порта", + "LabelPublicHttpPortHelp": "Номер публичного порта, который сопоставляется с локальным HTTP-портом.", + "LabelPublicHttpsPort": "Номер публичного HTTPS-порта", + "LabelPublicHttpsPortHelp": "Номер публичного порта, который сопоставляется с локальным HTTPS-портом.", + "RequireHttps": "Требовать HTTPS для внешних подключений", + "RequireHttpsHelp": "При включении, соединения по HTTP перенаправляются на HTTPS.", + "LabelHttpsPort": "Номер локального HTTPS-порта", + "LabelHttpsPortHelp": "Номер TCP-порта, к которому должен привязываться HTTPS-сервер Emby.", + "LabelEnableAutomaticPortMap": "Включить автоматическое сопоставление портов", + "LabelEnableAutomaticPortMapHelp": "Попытаться автоматически сопоставить публичный порт с локальным портом с помощью UPnP. Это может не сработать с некоторыми моделями маршрутизаторов.", + "LabelExternalDDNS": "Внешний домен", + "LabelExternalDDNSHelp": "Если у вас динамический DNS или доменное имя, введите его здесь без протокола или порта. Приложения Emby будут использовать его при удаленном подключении. Это поле является обязательным при использовании с настраиваемым ssl-сертификатом. Пример: mydomain.com.", + "LabelMinResumePercentage": "Минимальная доля в процентах для возобновления", + "LabelMaxResumePercentage": "Максимальная доля в процентах для возобновления", + "LabelMinResumeDuration": "Минимальная длительность для возобновления (секунды)", + "LabelMinResumePercentageHelp": "Произведения предполагаются не воспроизведёнными, при остановке до данного момента", + "LabelMaxResumePercentageHelp": "Произведения предполагаются воспроизведёнными полностью, при остановке после данного момента", + "LabelMinResumeDurationHelp": "Невозможно возобновление для произведений, при длительности менее данного", + "HeaderStatus": "Статус", + "Subscriptions": "Подписки", + "LabelEndingEpisodeNumber": "Номер конечного эпизода", + "LabelEndingEpisodeNumberHelp": "Требуется только для файлов, содержащих несколько эпизодов", + "HeaderSupportTheTeam": "Поддержите команду Emby", + "HeaderSupportTheTeamHelp": "Помогите гарантировать дальнейшую разработку данного проекта, путем приобретения Emby Premiere. Часть доходов будет вкладываться в прочие свободные программные средства, от которых мы зависим.", + "DonationNextStep": "По завершению, вернитесь и введите свой ключ Emby Premiere, который вы получите по email.", + "HeaderRunningTasks": "Выполняющиеся задачи", + "ButtonUpdateNow": "Обновить немедленно", + "PleaseUpdateManually": "Завершите работу Emby Server и установите последнюю версию.", + "ServerUpToDate": "Emby Server - актуализирован", + "MessagePleaseRestartServerToFinishUpdating": "Перезапустите сервер, чтобы завершить применение обновлений.", + "LabelDownMixAudioScale": "Коэффициент усиления при понижающем микшировании", + "LabelDownMixAudioScaleHelp": "Усилить аудио при даунмиксинге. Установите на 1, чтобы сохранить оригинальное значение громкости.", + "HeaderForgotKey": "Забыли ключ?", + "LabelSupporterEmailAddress": "Адрес email, который был использован для приобретения ключа.", + "ButtonRetrieveKey": "Восстановить ключ", + "LabelSupporterKey": "Ключ Emby Premiere (вставьте из письма)", + "LabelSupporterKeyHelp": "Введите свой ключ Emby Premiere, чтобы начать пользоваться дополнительными преимуществами.", + "MessageInvalidKey": "Ключ Emby Premiere отсутствует или неверен.", + "ErrorMessageInvalidKey": "Для того, чтобы зарегистрироваться для любого премиального контента, вам необходимо также иметь действующую подписку Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Пропустить, если видео уже содержит внедрённые субтитры", + "LabelSkipIfGraphicalSubsPresentHelp": "Наличие текстовых версий субтитров приведёт к более эффективной доставке и понизит вероятность перекодировки видео.", + "HeaderDownloadLanguages": "Загружаемые языки", + "LabelSkipIfAudioTrackPresent": "Пропустить, если аудиодорожка по умолчанию соответствует загружаемому языку", + "LabelSkipIfAudioTrackPresentHelp": "Снимите галочку, чтобы обеспечить субтитры для всех видео, независимо от языка аудио.", + "SendMessage": "Отправить сообщение", + "HeaderSendMessage": "Передача сообщения", + "ButtonSend": "Передать", + "LabelMessageText": "Текст сообщения", + "LabelMessageTitle": "Заголовок сообщения", + "ButtonEditOtherUserPreferences": "Править профиль, рисунок и личные настройки этого пользователя.", + "LabelLoginDisclaimer": "Сообщение при входе", + "LabelLoginDisclaimerHelp": "Будет отображаться в нижней части страницы входа в систему.", + "HeaderTranscodingTemporaryFiles": "Временные файлы перекодировки", + "HeaderApiKeys": "API-ключи", + "HeaderApiKeysHelp": "Для внешних приложений требуется наличие API-ключа для взаимодействия с Emby Server. Ключи выдаются путем входа в систему с учетной записью Emby или путем ручного предоставления приложению ключа.", + "HeaderApiKey": "API-ключ", + "HeaderResumeSettings": "Параметры возобновления", + "HeaderFetcherSettings": "Параметры отборщика", + "HeaderActivity": "События", + "ButtonPurchase": "Приобрести", + "HeaderInstall": "Установка", + "LabelSelectVersionToInstall": "Выбрать версию для установки", + "LinkLearnMoreAboutSubscription": "Подробнее об Emby Premiere", + "MessagePluginRequiresSubscription": "Для данного плагина потребуется действующая подписка Emby Premiere после пробных 14 дней бесплатной версии.", + "MessagePremiumPluginRequiresMembership": "Для данного плагина потребуется действующая подписка Emby Premiere для того, чтобы приобрести после пробных 14 дней бесплатной версии.", + "HeaderDeveloperInfo": "О разработчиках", + "HeaderRevisionHistory": "История изменений", + "ButtonViewWebsite": "См. вебсайт", + "OptionSaveMetadataAsHidden": "Сохранять метаданные и рисунки в виде скрытых файлов", + "LabelConnectEmail": "(Опционально). Адрес электронной почты Emby Connect", + "LabelConnectEmailHelp": "(Опционально). Свяжите этого локального пользователя с существующей учетной записью Emby Connect, чтобы обеспечить легкий доступ для входа из любого приложения Emby без необходимости знать IP-адрес сервера.", + "ButtonLearnMoreAboutEmbyConnect": "Подробнее об Emby Connect", + "LabelDateAddedBehavior": "Для нового содержания за дату добавления принимается", + "OptionDateAddedImportTime": "Дата сканирования внутрь медиатеки", + "OptionDateAddedFileTime": "Дата создания файла", + "LabelDateAddedBehaviorHelp": "При наличии значения в метаданных, оно всегда используется приоритетно, чем любая из данных опций.", + "HeaderLibrarySettings": "Параметры медиатеки", + "HeaderAutomaticSubtitleDownloads": "Автоматическая загрузка субтитров", + "HeaderCameraUploadHelp": "Emby-приложения могут автоматически выкладывать на Emby Server фотографии, снятые с помощью мобильных устройств.", + "LabelCameraUploadPath": "Путь для выкладки с камеры", + "LabelCameraUploadPathHelp": "Выберите произвольный путь выкладки. Если не заполнять, то будет использована стандартная папка. Это отменяет любые настройки по умолчанию, заданные в разделе «Выкладка с камеры». Если используется произвольный путь, то его также требуется добавить как медиатеку в области установки и настройки медиатек Emby.", + "DefaultCameraUploadPathHelp": "Выберите произвольный путь выкладки. Если не заполнять, то будет использована стандартная папка. Если используется произвольный путь, то его также требуется добавить как медиатеку в области установки и настройки медиатек Emby.", + "LabelCreateCameraUploadSubfolder": "Создавать подпапку для каждого устройства", + "LabelCreateCameraUploadSubfolderHelp": "Нестандартные папки могут быть назначены для устройства при щелчке на нём со страницы \"Устройства\".", + "LabelCustomDeviceDisplayNameHelp": "Приведите произвольное имя для отображения или не заполняйте, чтобы использовать имя, выданное устройством.", + "TabParentalControl": "Управление содержанием", + "HeaderAccessSchedule": "Расписание доступа", + "HeaderAccessScheduleHelp": "Создайте расписание доступа, чтобы лимитировать доступ определёнными часами.", + "HeaderLibraryAccess": "Доступ к медиатеке", + "HeaderChannelAccess": "Доступ ко каналам", + "LabelForgotPasswordUsernameHelp": "Введите имя пользователя, если помните его.", + "TitlePasswordReset": "Сброс пароля", + "HeaderBlockItemsWithNoRating": "Блокирование элементов с отсутствующей или не распознанной информацией о возрастной категории", + "LabelBlockContentWithTags": "Блокирование элементов с тегами", + "LabelTagRestrictionMode": "Режим ограничения тегов", + "BlockItemsWithTheseTags": "Блокировать элементы с этими тегами", + "AllowItemsWithTheseTags": "Разрешить только с этими тегами", + "OptionAllowContentDownloading": "Разрешить загрузку медиафайлов", + "LabelNewUserNameHelp": "Имена пользователей могут содержать латинские буквы (a-z), цифры (0-9), дефисы (-), подчёркивания (_), апострофы (') и точки (.)", + "HeaderThisUserIsCurrentlyDisabled": "Этот пользователь в настоящее время отключен. Чтобы включить этого пользователя, пожалуйста, посмотрите опцию внизу этой страницы.", + "OptionAllowSyncTranscoding": "Разрешить загрузку медиафайлов, требующих перекодирования", + "AllowMediaConversion": "Разрешить преобразование медиаданных", + "AllowMediaConversionHelp": "Предоставить или запретить доступ к компоненте преобразования медиаданных.", + "OptionAllowAudioPlaybackTranscoding": "Разрешить воспроизведение аудио, для которого потребуется перекодировка", + "OptionAllowVideoPlaybackTranscoding": "Разрешить воспроизведение видео, для которого потребуется перекодировка", + "OptionAllowVideoPlaybackRemuxing": "Разрешить воспроизведение видео, для которого потребуется преобразование без перекодировки", + "OptionAllowMediaPlaybackTranscodingHelp": "Ограничение доступа к перекодированию отключит выбор качества и может вызвать сбои воспроизведения в приложениях Emby из-за не поддерживаемых форматов мультимедиа или недостаточной пропускной способности сети.", + "LabelRemoteClientBitrateLimit": "Предел потоковой скорости интернет-трансляции (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Необязательный предел скорости на поток для каждого из сетевых устройств. Это целесообразно, чтобы не допускать запрашивание устройствами более высокого битрейта, чем способно пропустить интернет-соединение. Это может привести к увеличению загрузки CPU на вашем сервере, при динамическом перекодировании видео до более низкого битрейта.", + "LabelUserRemoteClientBitrateLimitHelp": "Это переопределит глобальное значение по умолчанию, установленное в дополнительных настройках сервера.", + "OptionEnableFullSpeedConversion": "Включить полноскоростное преобразование", + "OptionEnableFullSpeedConversionHelp": "По умолчанию преобразования выполняются с низкой скоростью, чтобы минимизировать потребление ресурсов.", + "OptionEnableAutomaticServerUpdates": "Включить автоматические обновления сервера", + "HeaderTVSources": "ТВ-источники", + "HeaderAddTvSource": "Добавить источник ТВ", + "LabelTunerIpAddress": "IP-адрес тюнера", + "HeaderGuideProviders": "Поставщики данных телегида", + "HeaderAddGuideSource": "Добавить источник данных программы ТВ", + "LabelZipCode": "Почтовый индекс", + "LabelLineup": "Список сопоставления", + "LabelImportOnlyFavoriteChannels": "Ограничиваться каналами обозначенными как избранное", + "ImportFavoriteChannelsHelp": "При включении, будут импортированы только каналы, которые обозначены как избранное на тюнерном устройстве.", + "HeaderDefaultRecordingSettings": "Стандартные параметры записи", + "LabelDisplayName": "Отображаемое название", + "OptionDownloadImagesInAdvance": "Загружать рисунки заблаговременно", + "OptionDownloadImagesInAdvanceHelp": "По умолчанию, большинство изображений загружаются из интернета тогда, когда они будут отображены приложением Emby. Включите эту опцию, чтобы загружать все изображения заранее при импорте новых медиа. Это может привести к значительно более длительному сканированию библиотек.", + "MessageThankYouForSupporting": "Благодарим за поддержку Emby.", + "FileReadCancelled": "Чтение файла было отменено.", + "FileNotFound": "Файл не найден.", + "FileReadError": "Произошла ошибка при чтении файла.", + "NoPluginConfigurationMessage": "В этом плагине нет параметров настроек.", + "HeaderNewApiKey": "Новый API-ключ", + "HeaderNewApiKeyHelp": "Предоставьте приложению права подключения к Emby Server.", + "MessageKeyEmailedTo": "Ключ отправлен на {0}.", + "HeaderConfirmation": "Подтверждение", + "MessageKeyUpdated": "Ваш ключ Emby Premiere был обновлён.", + "MessageKeyRemoved": "Ваш ключ Emby Premiere был изъят.", + "TextEnjoyBonusFeatures": "Приобретите бонусные компоненты", + "MessageErrorLoadingSupporterInfo": "Произошла ошибка при загрузке данных Emby Premiere. Повторите попытку позже.", + "ValueTimeLimitSingleHour": "Временной лимит: 1 час", + "ValueTimeLimitMultiHour": "Временной лимит: {0} час(а/ов)", + "General": "Общие", + "HeaderScreenSavers": "Хранители экрана", + "Reporting": "Отчёты", + "LabelStopping": "Остановка", + "HeaderSelectCertificatePath": "Выбор пути к сертификату", + "HeaderSupporterBenefit": "Действующая подписка Emby Premiere предоставит дополнительные компоненты, например, видеорекордер Emby, автономные медиаданные, премиум плагины и т.д. {0}Подробнее{1}.", + "LabelAbortedByServerShutdown": "(Прервано отключением сервера)", + "LabelScheduledTaskLastRan": "Выполнялась {0}, заняла {1}.", + "HeaderDeleteTaskTrigger": "Удаление триггера задачи", + "MessageDeleteTaskTrigger": "Вы действительно хотите удалить данный триггер задачи?", + "MessageNoPluginsDueToAppStore": "Чтобы управлять плагинами, используйте веб-приложение Emby.", + "LabelVersionInstalled": "Установлена: {0}", + "HeaderSelectServerCachePath": "Выбор пути для серверного кэша", + "HeaderSelectTranscodingPath": "Выбор пути для временных файлов перекодировки", + "HeaderSelectMetadataPath": "Выбор пути для метаданных", + "HeaderSelectServerCachePathHelp": "Найдите или введите путь, чтобы использовать для файлов серверного кэша. Папка должна быть доступна для записи.", + "HeaderSelectTranscodingPathHelp": "Найдите или введите путь, чтобы использовать для временных файлов перекодировки. Папка должна быть доступна для записи.", + "HeaderSelectMetadataPathHelp": "Найдите или введите путь, в пределах которого хотите хранить метаданные. Папка должна быть доступна для записи.", + "MessageConfirmRestart": "Вы действительно хотите перезапустить Emby Server?", + "MessageConfirmShutdown": "Вы действительно хотите завершить работу Emby Server?", + "LabelLocalAccessUrl": "Домашний (LAN) доступ: {0}", + "LabelRemoteAccessUrl": "Удалённый (WAN) доступ: {0}", + "LabelRunningOnPort": "Работает на HTTP-порту {0}", + "LabelRunningOnPorts": "Работает на HTTP-порту {0} и HTTPS-порту {1}", + "LabelCurrentPath": "Текущий путь", + "HeaderSelectMediaPath": "Выбор пути медиаданных", + "HeaderSelectPath": "Выбор пути", + "MessageDirectoryPickerInstruction": "Сетевые пути возможно ввести вручную, в том случае, если при нажатии кнопки «Сеть» происходит сбой обнаружения устройств. Например: {0} или {1}.", + "MessageDirectoryPickerBSDInstruction": "Касаемо BSD, возможно, потребуется конфигурировать хранилище в вашем FreeNAS Jail для того, чтобы разрешить Emby получить к нему доступ.", + "MessageDirectoryPickerLinuxInstruction": "Для Linux на Arch Linux, CentOS, Debian, Fedora, OpenSuse или Ubuntu, вы должны предоставить системному пользователю Emby, по крайней мере, доступ для чтения к расположениям хранилища.", + "MetadataManager": "Дисп. метаданных", + "OptionBlockLiveTvChannels": "Эфирные каналы", + "OptionBlockChannelContent": "Содержание интернет-канала", + "ButtonRevoke": "Отозвать", + "MessageConfirmRevokeApiKey": "Вы действительно хотите отозвать данный API-ключ? Подключение приложения к Emby Server будет резко прекращено.", + "HeaderConfirmRevokeApiKey": "Отозвать API-ключ", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Подтвердите согласие с Условиями предоставления услуг, прежде чем продолжить.", + "HeaderChangeFolderType": "Изменение типа содержания", + "HeaderChangeFolderTypeHelp": "Для изменения типа, надо изъять медиатеку и заново построить её с новым типом.", + "HeaderAlert": "Предупреждение", + "MessagePleaseRestart": "Перезапустите, чтобы завершить обновление.", + "OptionHomeVideos": "Домашнее видео и фото", + "OptionBooks": "Книги", + "HeaderMetadataReaders": "Считыватели метаданных", + "LabelMetadataReadersHelp": "Ранжируйте предпочитаемые локальные источники метаданных в порядке приоритета. Будет считан первый же найденный файл.", + "HeaderSubtitleDownloaders": "Загрузчики субтитров", + "SubtitleDownloadersHelp": "Включите и расположите предпочитаемые программы для загрузки субтитров в порядке приоритета. Дополнительных поставщиков субтитров можно установить с помощью каталога плагинов Emby.", + "LabelMetadataDownloaders": "Загрузчики метаданных", + "LabelMetadataDownloadersHelp": "Включите и ранжируйте предпочитаемые загрузчики метаданных в порядке приоритета. Загрузчики с низким приоритетом будут использоваться только для заполнения недостающей информации.", + "HeaderMetadataSavers": "Хранители метаданных", + "LabelMetadataSaversHelp": "Выберите форматы файлов, куда будут сохраняться метаданные.", + "LabelImageFetchers": "Отборщики рисунков", + "LabelImageFetchersHelp": "Включите и ранжируйте предпочитаемые отборщики рисунков в порядке приоритета.", + "PersonTypePerson": "Персона", + "HeaderRemoveMediaLocation": "Изъятие расположения медиаданных", + "MessageConfirmRemoveMediaLocation": "Вы действительно хотите изъять это расположение?", + "LabelNewName": "Новое название", + "HeaderRemoveLibrary": "Удалить бибилиотеку", + "MessageAreYouSureYouWishToRemoveLibrary": "Вы уверены, что хотите удалить библиотеку {0} со своего сервера Emby? Это не повлияет на ваши медиафайлы.", + "ButtonRename": "Переименовать", + "HeaderPluginInstallation": "Установка плагина", + "MessageTrialExpired": "Пробный период для данного компонента уже истёк", + "MessageTrialWillExpireIn": "Пробный период для данного компонента истечёт через {0} дней", + "ValuePriceUSD": "Цена: {0} USD", + "MessageFeatureIncludedWithSupporter": "Вы зарегистрированы для этого компонента, и сможете продолжать использование этого с действующей подпиской Emby Premiere .", + "HeaderSelectExternalPlayer": "Выбор внешнего проигрывателя", + "HeaderExternalPlayerPlayback": "Воспроизведение внешним проигрывателем", + "HeaderThankYou": "Благодарим вас", + "HeaderSelectUploadPath": "Выбор пути для выкладки", + "ErrorMessageStartHourGreaterThanEnd": "Время окончания должно быть позже времени начала.", + "MessagePluginConfigurationRequiresLocalAccess": "Чтобы настроить данный плагин войдите непосредственно в свой локальный сервер.", + "MovieLibraryHelp": "Просмотрите {0}Руководство Emby по именованию фильмов{1}.", + "TvLibraryHelp": "Просмотрите {0}Руководство Emby по именованию сериалов{1}.", + "BookLibraryHelp": "Учебники поддерживаются. Ознакомьтесь с {0} руководством по присвоению имен Emby Book {1}.", + "MessageGamePluginRequired": "Требуется установка плагина GameBrowser", + "HeaderUnlockApp": "Разблокировать приложение", + "MessagePaymentServicesUnavailable": "Службы оплаты в настоящее время недоступны. Пожалуйста, попробуйте позже.", + "NoNewDevicesFound": "Новых устройств не обнаружено. Чтобы добавить новый тюнер, закройте данный диалог и введите сведения об устройстве вручную.", + "MessageConfirmDeleteTunerDevice": "Вы действительно хотите удалить данное устройство?", + "MessageConfirmDeleteGuideProvider": "Вы действительно хотите удалить данного поставщика телегида?", + "HeaderDeleteProvider": "Удаление поставщика", + "ErrorAddingTunerDevice": "Произошла ошибка при добавлении тюнерного устройства. Убедитесь, что оно доступно и повторите попытку.", + "ErrorSavingTvProvider": "Произошла ошибка при сохранении поставщика ТВ. Убедитесь, что он доступен и повторите попытку.", + "ErrorGettingTvLineups": "Произошла ошибка при загрузке списков сопоставления. Убедитесь, что ваши данные правильны и повторите попытку.", + "MessageCreateAccountAt": "Создайте учётную запись на {0}", + "ErrorPleaseSelectLineup": "Выделите список сопоставления и повторите попытку. Если списков сопоставления не имеется, то проверьте, что ваше имя пользователя, пароль и почтовый код являются верными.", + "ErrorValidatingSupporterInfo": "Произошла ошибка при проверке ваших данных Emby Premiere. Повторите попытку позже.", + "LabelLocalSyncStatusValue": "Статус: {0}", + "HeaderTopPlugins": "Популярные плагины", + "ForAdditionalLiveTvOptions": "Просмотрите {0} каталог подключаемых модулей {1} Emby, чтобы установить дополнительных поставщиков эфирного ТВ.", + "AddUser": "Добавить пользователя", + "HeaderEmailAddress": "Email", + "NumLocationsValue": "{0} пап(ки/ок)", + "PleaseAddAtLeastOneFolder": "Добавьте хотя бы одну папку к данной медиатеке, нажав кнопку \"Добавить\".", + "ErrorAddingMediaPathToVirtualFolder": "Произошла ошибка при добавлении пути к медиаданным. Убедитесь, что путь является действительным и Emby Server имеет доступ к этому расположению.", + "ErrorAddingEmbyConnectAccount3": "Учётная запись Emby уже привязана к существующему локальному пользователю. Учётная запись Emby может быть привязана только к одному локальному пользователю в то же время.", + "HeaderConfirmPluginInstallation": "Подтверждение установки плагина", + "PleaseConfirmPluginInstallation": "Нажмите кнопку \"OK\", чтобы подтвердить, что вы прочитали вышеизложенное и хотите приступить к установке плагина.", + "MessagePluginInstallDisclaimer": "Плагины, созданные участниками сообщества Emby, — отличный способ улучшить ваш опыт Emby с дополнительными функциями и преимуществами. Перед установкой учтите их влияние на Emby Server, например, такое как более длительные сканирования медиатеки, дополнительные фоновые процессы и снижение стабильности системы.", + "HardwareAccelerationWarning": "Включение аппаратного ускорения может вызвать нестабильность в некоторых средах. Убедитесь, что ваша операционная система и видеодрайверы полностью обновлены. Если у вас возникнут проблемы с воспроизведением видео после включения этого, вам потребуется изменить настройку обратно на \"Авто\".", + "ValueExample": "Пример: {0}", + "LabelFileOrUrl": "Файл или URL", + "OptionEnableForAllTuners": "Включить для всех тюнерных устройств", + "HeaderTuners": "Тюнеры", + "DrmChannelsNotImported": "Каналы с DRM не будут импортироваться.", + "LabelAllowHWTranscoding": "Разрешить аппаратную перекодировку", + "AllowHWTranscodingHelp": "Если включено, разрешит тюнеру транскодировать потоки на лету. Это может помочь уменьшить объем транскодирования, требуемого Emby Server.", + "MetadataSettingChangeHelp": "Изменение параметров метаданных повлияет на новое содержание, которое будет добавляться в дальнейшем. Чтобы обновить существующие содержание, откройте экран с подробностями и нажмите кнопку Обновить, или выполните массовое обновление, с помощью \"Диспетчера метаданных\".", + "RecordingPathChangeMessage": "Изменение папки для записи не приведёт к переносу существующих записей со старого места на новое. Вам нужно переместить их вручную, если это необходимо.", + "LabelLocalIpAddress": "Локальный IP-адрес", + "LabelBindToLocalNetworkAddressHelp": "(Опционально). Переопределите локальный IP-адрес, который Emby Server будет предоставлять приложениям Emby. Если оставить поле пустым, сервер автоматически определит локальный IP-адрес.", + "SettingsWarning": "Изменение данных значений может привести к нестабильности или сбоям возможности подключения. Если вы испытываете любые проблемы, мы рекомендуем изменить их обратно к стандартным.", + "OptionSaveMetadataAsHiddenHelp": "Изменение этого параметра будет применяется к новым метаданным, сохраняемым в дальнейшем. Существующие файлы метаданных будут обновлены при следующем их сохранении Emby Server.", + "EnablePhotos": "Включить фотографии", + "EnablePhotosHelp": "Фото будут обнаруживаться и отображаться наряду с другими медиафайлами.", + "ImportPlaylists": "Импорт файлов плейлистов", + "ImportPlaylistsHelp": "Плейлисты, найденные в ваших медиа-каталогах, могут быть импортированы на Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Сохранение эскизов предварительного просмотра видео в медиапапки", + "LabelGenerateVideoPreviewThumbnails": "Создание эскизов предварительного просмотра видео", + "LabelEnableDebugLogging": "Включить отладочное журналирование", + "OptionEnableExternalContentInSuggestions": "Включать внешнее содержание в предложения", + "OptionEnableExternalContentInSuggestionsHelp": "Разрешить включать интернет-трейлеры и телепрограммы в предлагаемый контент.", + "LabelOptionalNetworkPath": "(Опционально). Общедоступная сетевая папка", + "LabelOptionalNetworkPathHelp": "Если данная папка общедоступна в своей сети, предоставление пути к сетевой папке может позволить Emby-приложениям на других устройствах получить прямой доступ к медиафайлам.", + "SynologyUpdateInstructions": "Для обновления войдите в DSM и перейдите в Package Center.", + "HeaderRecordingPostProcessing": "Постобработка записи", + "LabelPostProcessorArguments": "Аргументы командной строки постобработчика", + "PostProcessorArgumentsHelp": "В командной строке поддерживаются следующие переменные, позволяющие передавать данные вашему постпроцессору", + "LabelPostProcessor": "Приложение постобработки", + "DvrPostProcessorPathArgument": "{path}: Полный путь к записываемому файлу", + "OptionAutomaticallyGroupSeries": "Автоматически сливать вместе сериалы, которые разбросаны по нескольким папкам", + "OptionAutomaticallyGroupSeriesHelp": "При включении, сериалы, которые разбросаны по нескольким папкам данной медиатеки, будут автоматически слиты в единый сериал.", + "WhenDidYouPurchaseApp": "Когда вы изначально приобрели данное приложение?", + "PreferEmbeddedTitlesOverFileNames": "Предпочитать внедрённые названия, чем имена файлов", + "PreferEmbeddedTitlesOverFileNamesHelp": "Этим определяется отображаемое название по умолчанию, когда нет метаданных с интернета или локальные метаданные недоступны.", + "FriendlyNameForReferenceHelp": "Понятное название, используемое для отображения, для вашей собственной справки.", + "HeaderLiveTvTunerSetup": "Установка и настройка тюнера", + "HeaderTVSourceSetup": "Установка и настройка ТВ-источников", + "HeaderDetectMyDevices": "Обнаружение моих устройств", + "MessagePleaseWait": "Подождите. Это может занять минуту.", + "DetectingDevices": "Обнаруживются устройства", + "LabelAutomaticallyRefreshInternetMetadataEvery": "После первоначального импорта автоматически обновите метаданные из интернета", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Автоматически обновлять метаданные для эпизодов с заголовками-запалнителями, такими как TBA", + "EveryNDays": "Каждые {0} дней", + "LabelCertificatePassword": "Пароль сертификата", + "LabelCertificatePasswordHelp": "Если для вашего сертификата требуется пароль, то введите его здесь.", + "HeaderNewLibrary": "Новая медиатека", + "HttpsRequiresCert": "Чтобы включить HTTPS для внешних подключений, вам нужно будет предоставить доверенный SSL-cертификат, например, Lets Encrypt. Предоставьте сертификат или отключите защищенные соединения.", + "ServerRestartNeededAfterPluginInstall": "После установки плагина потребуется перезапустить Emby Server.", + "PluginInstalledMessage": "Плагин успешно установлен. Для применения изменений потребуется перезапустить Emby Server.", + "MessagePremiereStatusGood": "У вас план Emby Premiere {0}, и использование устройств находится в пределах лимита.", + "MessagePremiereStatusClose": "У вас план Emby Premiere {0}, и использование устройств достигло вашего лимита.", + "MessagePremiereExtendedPlans": "Примите во внимание {0}расширенный план устройства{1}", + "MessagePremiereStatusOver": "У вас план Emby Premiere {0}, и использование устройств превысило ваш лимит!", + "ListItemPremiereSub": "Подписка на {0}, приобретённое через {2} истекает {1}", + "LabelClickToManage": "Кликнуть, чтобы управлять этой подпиской", + "LabelCancelInfo": "Вы можете управлять данной подпиской напрямую с помощью {0}", + "LabelAlreadyCanceled": "Данная подписка была отменена. Ключ годен до истечения срока действия.", + "HeaderCancelSub": "Отмена Emby Premiere", + "MessageConfirmSubCancel": "НЕТ. Пожалуйста, не уходите... Вы упустите все замечательные возможности Emby Premiere!", + "ButtonCancelSub": "Я знаю, всё равно отменить", + "ButtonDontCancelSub": "Оставить Emby Premiere", + "MessageSubCancelReqSent": "Электронное письмо отправлено владельцу ключа. Следуйте инструкциям в этом письме, чтобы завершить отмену этой подписки. Мы надеемся скоро увидеть вас снова!", + "MessageSubCancelError": "При попытке отмены что-то пошло не так. Отправьте email на адрес {0}, и мы всё уладим с вами.", + "LabelAlreadyCancelled": "Данная подписка была отменена. С вас не будет больше взиматься плата, но функции будут работать до вышеуказанной даты.", + "AllowOnTheFlySubtitleExtraction": "Разрешить динамическое извлечение субтитров", + "AllowOnTheFlySubtitleExtractionHelp": "Внедрённые субтитры возможно извлекать из видео и доставлять Emby-приложениям в виде обычного текста, в целях предотвращения перекодировки видео. На некоторых системах это может занять продолжительное время и вызывать задержки воспроизведения видео в процессе извлечения. Отключите это, для прошивки внедрённых субтитров во время перекодировки видео, при отсутствии встроенной поддержки их в клиентском устройстве.", + "AllowOnTheFlyFontExtraction": "Разрешить извлечение шрифтов субтитров в реальном времени", + "AllowOnTheFlyFontExtractionHelp": "Встроенные шрифты могут извлекаться из видео и передаваться в приложения Emby для поддержки видео с пользовательскими шрифтами. На некоторых системах это занимает много времени и может вызвать остановку воспроизведения видео во время процесса извлечения.", + "EnableDebugLoggingHelp": "Журналирование отладки должно включаться только при необходимости устранения неполадок. Повышенная активность файловой системы может помешать серверу переходить в состояние сна в некоторых окружениях.", + "LabelSimultaneousConnectionLimit": "Лимит одновременных потоков", + "SimultaneousConnectionLimitHelp": "Максимальное количество разрешённых одновременных потоков. Введите 0, чтобы снять ограничения.", + "LaunchWebAppOnStartup": "Запускать веб-приложение Emby на моём веб-браузере при старте Emby Server", + "LaunchWebAppOnStartupHelp": "При этом откроется веб-приложение на вашем веб-браузере по умолчанию, когда Emby Server вначале стартует. Этого не произойдет при использовании функции перезапуск сервера.", + "LabelReferrerHeader": "HTTP-заголовок referer", + "LabelUserAgentHeader": "HTTP-заголовок user agent", + "SupplyCustomValueIfNeeded": "При необходимости укажите пользовательское значение HTTP-заголовка.", + "HeaderConfigureRemoteAccess": "Настройка удалённого доступа", + "LearnHowToCreateSynologyShares": "Как предоставить общий доступ к папкам в Synology.", + "LabelAllowedRemoteAddresses": "Фильтр внешних IP-адресов", + "LabelAllowedRemoteAddressesMode": "Режим фильтра внешних IP-адресов", + "Whitelist": "Белый список", + "Blacklist": "Чёрный список", + "AllowedRemoteAddressesHelp": "Разделенный запятыми список IP-адресов или записей сетей (IP/netmask), которым разрешен удаленный доступ. Если оставить пустым, разрешен доступ со всех внешних адресов.", + "LabelLanNetworks": "Локальные сети", + "LanNetworksHelpText": "Разделенный запятыми список IP-адресов или записей сетей (IP/netmask) для сетей, которые будут считаться локальными при применении ограничений пропускной способности и удаленного доступа. Если указано, все остальные IP-адреса будут считаться внешними. Если оставить пустым, то только подсеть сервера и общие частные IP-подсети (192.168.0.0/24, 172.16.0.0/12 и т. д.) будут считаться локальными.", + "LabelSecureConnectionsMode": "Режим безопасного соединения", + "PreferredNotRequired": "Предпочтительно, но не требуется", + "RequiredForAllRemoteConnections": "Требуется для всех внешних подключений", + "HandledByProxy": "Обрабатывается обратным прокси", + "SaveSubtitlesIntoMediaFolders": "Сохранять загруженные субтитры внутри медиапапок", + "SaveSubtitlesIntoMediaFoldersHelp": "Хранение субтитров рядом с видеофайлами позволяет легко управлять ими.", + "AutomaticSubtitleDownloadInstructions": "Чтобы управлять автоматической загрузкой субтитров, нажмите на медиатеку, далее в настройках медиатеки Emby измените настройки загрузки субтитров для этой медиатеки.", + "ProviderNeedsSetupWithUrl": "{0} требует дополнительной настройки {1} на экране настроек {2} в Emby Server.", + "LabelEnableHardwareAcceleration": "Включать аппаратное ускорение, когда доступно", + "HeaderPreferredHardwareDecoders": "Предпочитаемые аппаратные декодеры", + "HeaderPreferredHardwareEncoders": "Предпочитаемые аппаратные энкодеры", + "AllowChangingImageAndPassword": "Разрешить этому пользователю менять свой пароль и картинку профиля", + "LabelSimultaneousStreamLimit": "Максимальное количество одновременных видеопотоков", + "SimultaneousStreamLimitHelp": "Ограничьте количество одновременных сеансов воспроизведения видео.", + "LabelMusicFolderStructure": "Структура музыкальной папки", + "LabelMusicFolderStructureHelp": "Это дает сканеру библиотеки подсказку о том, как организованы ваши папки. Если вы не уверены или ваши папки не совсем соответствуют одному из вариантов, выберите вариант по умолчанию «Другое».", + "OtherOrUnstructured": "Другое или неструктурированное", + "PerfectArtistAlbumTrack": "Идеально организованы в папки по исполнителю\\альбом, с треками непосредственно в папках альбомов.", + "PerfectAlbumTrack": "Идеально организованы в папки альбомов, с треками непосредственно в папках альбомов.", + "LabelMinCollectionSize": "Минимальный размер автоматической коллекции", + "PerfectAuthorAudioBookTrack": "Идеально организованы в папки автора\\книги, с треками непосредственно в папках книг.", + "PerfectAudioBookTrack": "Идеально организованы в папки книг, с треками непосредственно в папках книг.", + "MinCollectionSizeHelp": "Автоматически создавать коллекции, если в вашей библиотеке есть хотя бы выбранное количество названий. Изменение этого значения не повлияет на существующие коллекции.", + "LabelImportCollections": "Импорт информации о коллекции", + "LabelImportCollectionsHelp": "Если этот параметр включен, информация о коллекции будет импортирована из ваших разрешенных загрузчиков метаданных (в настоящее время поддерживается только TheMovieDb). Это может привести к автоматическому созданию нежелательных коллекций. Отключение предотвратит автоматическое создание будущих коллекций, но не удалит существующие.", + "LabelAllowAdultMetadata": "Разрешить метаданные для взрослых", + "LabelAllowAdultMetadataHelp": "Разрешить совпадение заголовков для взрослых в результатах поиска по метаданным.", + "HeaderVideoPreviewThumbnails": "Эскизы предварительного видео просмотра", + "LabelEnableHDRToneMapping": "Включить отображение тонов HDR", + "EnableHDRToneMappingHelp": "Отображение тонов обеспечит правильное преобразование цветов при перекодировании содержимого HDR, которое в противном случае будет выглядеть очень тусклым и ненасыщенным. Для поддержки аппаратного ускорения с включенной функцией могут потребоваться дополнительные компоненты. Подробности см. в настройках по установке аппаратного ускорения.", + "WithHardwareAcceleratedTranscoding": "Да, только с аппаратным ускорением", + "TranscodingStillInitializing": "Службы транскодирования Emby Server все еще загрузятся. Экран автоматически обновится, когда они будут готовы.", + "WithEitherHardwareOrSoftwareTranscoding": "Да, с аппаратным или программным перекодированием", + "ToneMappingInHardwareDescription": "Отображение тонов будет выполняться с аппаратным ускорением, если оно включено и поддерживается оборудованием и игнорироваться во всех остальных случаях.", + "ToneMappingInSoftwareDescription": "Отображение тонов будет выполняться CPU программно. Это намного медленнее, чем тональное отображение с аппаратным ускорением, и для него потребуется очень мощный сервер.", + "ToneMappingInBothDescription": "Отображение тонов будет выполняться с аппаратным ускорением, когда оно включено и поддерживается оборудованием, в остальных случаях будет выполнено переключение на программное ускорение. Отображение тонов в программном ускорении выполняется намного медленнее, чем отображение тонов с аппаратным ускорением, и для этого потребуется очень мощный сервер.", + "AutoMapped": "Сопоставлено автоматически", + "ManuallyMapped": "Сопоставлено вручную", + "NotMappedToGuideData": "Не сопоставлены с данными из руководства", + "MappedToValue": "Сопоставлено с {0}", + "LabelAutomaticallyWakeServerForRecordings": "Автоматическое включение сервера для выполнения записей", + "LabelAutomaticallyWakeServerForRecordingsHelp": "События пробуждения будут планироваться с помощью операционной системы сервера. Отключение этой опции предотвратит планирование будущих событий пробуждения, но не приведет к удалению ранее запланированных событий.", + "Database": "База данных", + "LabelOptimizeDatabaseOnShutdown": "Попытаться оптимизировать работу базы данных при выключении сервера", + "LabelOptimizeDatabaseOnShutdownHelp": "Операция оптимизации базы данных обычно не выполняется, но иногда она запускает анализ, если кажется, что это будет полезно для планировщика запросов. Это может привести к более длительному завершению работы Emby Server.", + "LabelDatabaseCacheSize": "Размер кэша базы данных (МБ)", + "LabelDatabaseCacheSizeHelp": "Задает объем данных, который база данных будет хранить в памяти одновременно для каждого файла базы данных. Большее значение может помочь повысить производительность Emby Server. Для вступления в силу требуется перезагрузка сервера.", + "LabelDatabaseAnalysisLimit": "Лимит строк анализа", + "LabelDatabaseAnalysisLimitHelp": "Когда база данных оптимизирована, это приблизительное количество строк, проверяемых в каждом индексе командой ANALYZE. Большее значение повысит эффективность оптимизации базы данных, но может привести к более длительному завершению работы Emby Server.", + "LabelVacuumDb": "Сжать базу данных при следующем запуске сервера Emby", + "LabelVacuumDbHelp": "Сжатие перестраивает файл базы данных, упаковывая его в минимальный объём дискового пространства. В некоторых случаях это может улучшить производительность Emby Server. Обратите внимание, что ваш Emby Server будет недоступен во время операции сжатия, и нет возможности отслеживать её прогресс. Избегайте принудительного закрытия процесса Emby Server в это время, так как это может привести к повреждению базы данных. Это разовая операция, флажок вернётся в не выбранное состояние при следующем запуске сервера.", + "AdvancedOptionsWarning": "Это расширенные параметры, и, как правило, их следует оставить по умолчанию, если только у вас нет причин их менять.", + "HeaderRecentlyActiveDevices": "Недавно добавленные устройства", + "YesUntilServerRestart": "Да, до следующего перезапуска сервера", + "YesUntilLogRotate": "Да, до следующей смены файла журнала", + "LabelSubtitleDownloadMaxAge": "Прекратить попытки автоматической загрузки субтитров для видео старше чем", + "SubtitleDownloadMaxAgeHelp": "Это основано на дате добавления значения метаданных.", + "NoAgeLimit": "Нет срока давности", + "AnonymizeLogContents": "Обезличить содержимое журнала", + "Markers": "Маркеры", + "LabelGenerateIntroVideoMarkers": "Создание вступительных видеомаркеров", + "GenerateIntroVideoMarkersHelp": "Обнаруживает заставки и отображает кнопку \"Пропустить\" в приложениях Emby. Обнаружение заставок может занять много времени и привести к высокой загрузке процессора или диска.", + "LabelCopyFromUser": "Копировать настройки с пользователя", + "CopyFromUserHelp": "(Опционально). Ускорьте создание нового пользователя, скопировав информацию от существующего пользователя.", + "UserPolicy": "Политика пользователя (библиотеки, родительский контроль и т.п.)", + "UserConfiguration": "Конфигурация пользователя (предпочитаемые языки звуковой дорожки и субтитров, порядок библиотек и т.д.)", + "UserDataAndDescription": "Пользовательские данные (избранное, статусы просмотра и прослушивания и т. д.)", + "HeaderCopyOptions": "Опции копирования", + "LabelMultiRestrictionMode": "Режим множественного ограничения", + "MultiRestrictionModeAll": "Разрешить содержимое, соответствующее как рейтингу, так и ограничениям по тегам", + "MultiRestrictionModeAny": "Разрешить содержимое, соответствующее ограничениям по рейтингу или тегам", + "AllowMappingByChannelNumber": "Разрешить отображение для управления данными с использованием номеров каналов", + "AllowMappingByChannelNumberHelp": "Это может быть использовано в качестве запасного варианта для сопоставления каналов тюнера с ориентировочными данными в тех случаях, когда не удается найти соответствие по названию канала. Это может привести к неточному сопоставлению, если номера каналов в тюнере указаны неверно.", + "LabelPreferredSourceForChannelLogos": "Предпочитайте логотипы каналов из данных руководства, а не из тюнера, если они доступны у обоих", + "LabelPreferredSourceForChannelNumbers": "Предпочитайте номера каналов из данных руководства, а не из тюнера, если они доступны обоим", + "HeaderSoftwareEncoders": "Программные кодировщики", + "LabelProxyHeaderMode": "Считывание заголовков прокси-серверов для определения IP-адресов клиентов", + "ProxyHeadersRemoteOnly": "Только в том случае, если они содержат удаленные сетевые адреса", + "ProxyHeaderModeHelp": "Определяет, следует ли использовать заголовки запросов, такие как {0} и {1}, для определения IP-адреса подключаемых устройств. Это следует включать только в том случае, если вы используете обратный прокси.", + "AllowCameraUpload": "Разрешить загрузку с камеры", + "AllowCameraUploadHelp": "Если разрешено и включено в мобильных приложениях Emby, пользователи могут автоматически загружать фотографии и видео, снятые с их камеры, на Emby Server", + "CameraUploadMustBeGranted": "Администратор вашего сервера также должен предоставить вам доступ к загрузке с камеры.", + "EnableReadingAndWritingPeopleMetadata": "Позволяет читать и записывать файлы метаданных пользователей", + "EnableReadingAndWritingPeopleMetadataHelp": "Требуется установить плагин Nfo Metadata. Это позволит сохранить ваши правки людей в файлах метаданных nfo, но приведет к более длительному сканированию библиотеки.", + "LabelIgnoreSampleFiles": "Игнорировать файлы, содержащие слово \"sample\" в имени файла, если их размер меньше (МБ)", + "PreferredChannelImageSource": "Предпочтительный канал источника изображения", + "PreferredChannelImageSourceHelp": "Выберите предпочтительный канал источника изображения, если изображения доступны как на тюнере, так и в каналах.", + "CacheImagesInServerData": "Хранить кэшированную копию изображений в папке метаданных сервера", + "CacheImagesInServerDataHelp": "Если ваши мультимедийные файлы и изображения хранятся на другом компьютере, сохранение кэшированной копии изображений в папке метаданных сервера сократит доступ к сети и может повысить производительность. Стоимость создания такого кэша заключается в том, что сканирование библиотеки будет выполняться медленнее, а папка метаданных сервера будет занимать значительно больше места на диске.", + "AllowSharingPersonalContent": "Разрешить совместное использование личного контента, такого как плейлисты, с другими пользователями на этом сервере", + "AllowSharingPersonalContentHelp": "Если предоставлено право, этот пользователь сможет делиться своими плейлистами с другими пользователями. Однако элементы плейлистов будут по-прежнему ограничены на основе доступа пользователя к библиотеке и настроек родительского контроля.", + "LiveBufferSizeHours": "Лимит буфера живого потока (часов)", + "LiveBufferSizeHoursHelp": "Более длинный буфер обеспечит большую возможность поиска вперед и назад во время прямой трансляции, но займет больше места на диске.", + "LabelTranscodingMaxResolution": "Максимальное разрешение транскодирования", + "TranscodingMaxResolutionHelp": "Установите верхний предел для всех видеотранскодирований, независимо от настройки качества в проигрывателе Emby. Это поможет сократить ресурсы, потребляемые процессами транскодирования сервера.", + "EnableHevcEncodingExp": "Включить кодирование видео HEVC (экспериментально)", + "EnableHevcEncodingHelp": "Включите транскодирование с использованием кодека HEVC, если он поддерживается клиентом.", + "LabelEnableMultiPartItems": "Включить многокомпонентные элементы", + "EnableMultiPartItemsHelp": "Автоматически определяет и группирует файлы, имеющие названия часть 1, часть 2 и т. д. Дополнительные части будут отображаться на главном экране сведений об элементе.", + "MultiVersionItemsDetectionHelp": "Автоматически определять и группировать разные версии одного и того же элемента. Выбор версии будет предложен на главном экране сведений об элементе. Группировка на основе файлов требует соответствующего именования и организации файлов.", + "MultiVersionMoviesDetectionHelp": "Группировка на основе метаданных позволит сгруппировать фильмы с одинаковыми внешними идентификаторами (MovieDb, Imdb и т. д.).", + "EnableMultiPartItemsTVHelp": "Не поддерживается для эпизодов телешоу.", + "HeaderAutomaticGrouping": "Автоматическая группировка", + "LabelMultiVersionItemsDetection": "Многовариантное обнаружение элементов", + "MultiVersionItemsDetectionBoth": "Обнаружение многоверсионных элементов на основе файлов и метаданных", + "MultiVersionItemsDetectionFiles": "Обнаружение многоверсионных элементов на основе файлов", + "MultiVersionItemsDetectionMetadata": "Обнаружение многоверсионных элементов на основе метаданных", + "LabelNetworkRequestProtocol": "Протокол сетевого запроса", + "NetworkRequestProtocolHelp": "Выберите протокол, который будет использоваться для исходящих сетевых запросов к поставщикам метаданных и другим службам. В некоторых случаях, когда внешние службы не могут быть доступны с помощью IPv6, вам может потребоваться установить только IPv4.", + "GenerateChaptersForVideos": "Создавайте главы для видеороликов, которые не содержат встроенной информации о главах", + "GeneratedChapterInterval": "Интервал создания глав", + "StartOfSection": "Начало главы", + "Margins": "Отступы", + "NextPage": "Следующая страница", + "PreviousSection": "Предыдущая глава", + "LayoutVertical": "Вертикальная прокрутка", + "ZoomIn": "Увеличить", + "PageNarrow": "Узкий", + "PreviousPage": "Предыдущая страница", + "PageMaximized": "Развёрнутый", + "ZoomOut": "Уменьшить", + "PageBook": "Двойная страница", + "RightToLeft": "Порядок справа налево", + "LabelPageSize": "Размер страницы", + "PositionInBook": "Положение в книге", + "CurrentPage": "Текущая страница", + "LayoutDouble": "Две страницы", + "TableOfContents": "Содержание", + "PageSingle": "Одна страница", + "TotalPages": "Всего страниц", + "ZoomNone": "Стандартный масштаб", + "LayoutPage": "Одна страница", + "NextSection": "Следующая глава", + "ZoomAutoFit": "Подогнать страницу", + "LetsGetSetup": "Давайте подготовимся", + "HeaderIgnoreFiles": "Игнорировать файлы", + "EnablePlexIgnoreAlias": "Включить поддержку файлов .plexignore в качестве связки для .embyignore", + "MaintenanceModeMessageHelp": "Если оставить это поле пустым, то будет отображено общее сообщение о том, что сервер проходит техническое обслуживание, которое будет переведено в зависимости от языка отображения пользователя.", + "HeaderMaintenanceMode": "Режим обслуживания", + "OptionEnableMaintenanceMode": "Перевести сервер в режим обслуживания", + "EnableMaintenanceModeHelp": "Только пользователи увидят сообщение о режиме обслуживания.", + "MaintenanceModeMessage": "Сообщение режима обслуживания", + "ServerInMaintenanceMode": "Emby Server в настоящее время работает в режиме обслуживания. Пользователи будут видеть сообщение о режиме обслуживания до тех пор, пока вы не выведете сервер из режима обслуживания.", + "ExcludeFromGlobalSearch": "Исключить из глобального поиска", + "MergeTopFoldersInFolderView": "Объединить содержимое папок верхнего уровня при использовании режима просмотра папок", + "MergeTopFoldersInFolderViewHelp": "Если этот параметр включен, содержимое папок верхнего уровня будет объединено и отображаться как одна объединенная папка при использовании режима просмотра папок. Если он отключен, папки верхнего уровня будут отображаться как первый уровень в режиме просмотра папок.", + "OptionAllowTranscodingToReduceQuality": "Разрешить транскодирование для снижения качества на основе настройки качества приложения во время воспроизведения медиа", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "Legacy": "Legacy", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode" +} diff --git a/strings/sk.json b/strings/sk.json new file mode 100644 index 0000000..62549b6 --- /dev/null +++ b/strings/sk.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Hotovo!", + "ThisWizardWillGuideYou": "Tento sprievodca Vám pomôže prejsť inštalačným procesom. Pre začatie zvoľte preferovaný jazyk.", + "HeaderCreateYourFirstUser": "Vytvoriť Vášho prvého používateľa", + "ButtonQuickStartGuide": "Sprievodca rýchlym nastavením", + "MoreUsersCanBeAddedLater": "Ďalších používateľov môžete pridať neskôr cez nastavenia Emby Server.", + "UserProfilesIntro": "Emby zahŕňa vstavanú podporu pre profily používateľov, čo umožňuje každému používateľovi mať jeho vlastné nastavenia zobrazenia, stavy prehrávania a rodičovskú kontrolu.", + "WizardCompleted": "To je zatiaľ všetko, čo potrebujeme. Emby začalo zhromažďovať údaje o vašej multimediálnej knižnici. Pozrite si niektoré z našich aplikácií a potom kliknite na Dokončiť pre zobrazenie Nástenky servera", + "MessagePleaseAcceptTermsOfService": "Než budete pokračovať, prosím akceptujte podmienky služby a zásady ochrany osobných údajov.", + "OptionIAcceptTermsOfService": "Súhlasím s podmienkami služby", + "SeeOurHwaGuide": "Pozrite si nášho {0} sprievodcu nastavením hardvérovej akcelerácie {1}.", + "HeaderEmbyServerReleaseNotes": "Poznámky k vydaniu servera Emby", + "AllowSubtitleDownloading": "Povoliť sťahovanie titulkov", + "AllowSubtitleManagement": "Povoliť vymazanie existujúcich súborov s titulkami", + "NewUserNameHelp": "Takto sa používateľ zobrazí na Vašom serveri.", + "ChapterMarkers": "Značky kapitol", + "LabelThumbnailImagesInterval": "Interval zobrazenia náhľadu obrázkov:", + "ThumbnailImagesIntervalHelp": "Častejšie náhľady budú mať za následok lepší zážitok, ale na vytvorenie obrázkov bude potrebné viac miesta na disku a čas na spracovanie.", + "LabelAuthProvider": "Poskytovateľ overenia:", + "AuthProviderHelp": "Správcovia vždy používajú predvoleného poskytovateľa Emby, aby bolo zaistené, že už nikdy nebudete zablokovaní.", + "HeaderNewUser": "Nový používateľ", + "ChangeServerDisplayName": "Change Server Display Name", + "ShowAdvancedSettings": "Zobraziť pokročilé nastavenia", + "ChangingMetadataImageSettingsNewContent": "Zmeny v nastaveniach sťahovania metadát alebo prebalov sa vzťahujú iba na nový obsah pridaný do vašej knižnice. Ak chcete použiť zmeny na existujúce tituly, musíte aktualizovať ich metadáta manuálne.", + "AllowRemoteAccess": "Povoliť vzdialené pripojenia k tomuto Emby serveru.", + "AllowRemoteAccessHelp": "Ak nezaškrtnuté, potom všetky vzdialené pripojenia budú blokované.", + "Alerts": "Upozornenia", + "LabelTrackTitleDisplay": "Vložený názov skladby:", + "GenerateUserFriendlyTrackTitles": "Vytvoriť používateľsky prívetivé názvy pomocou informácií o skladbe", + "PreferOriginalTrackTitles": "Uprednostniť vložené názvy", + "TrackTitleDisplayHelp": "Vybrať zobrazovaný názov vložených zvukových a titulkových stôp. Uprednostňovanie vloženého obsahu sa neodporúča, pokiaľ ručne neopravujete vložené informácie o stope.", + "EnableTranscodingThrottle": "Povoliť priškrtenie", + "EnableTranscodingThrottleHelp": "Emby dynamicky upraví rýchlosť transkódovania, aby sa znížilo využitie procesoru.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} sťahovače/sťahovačov obrázkov", + "HeaderImageOptions": "Možnosti obrázku", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registrovať pomocou PayPal", + "LabelSyncTempPath": "Cesta k dočasným súborom:", + "LabelSyncTempPathHelp": "Zadajte vlastný pracovný priečinok. Tu sa uložia skonvertované médiá vytvorené počas procesu konverzie.", + "LabelCustomCertificatePath": "Cesta k vlastnému certifikátu SSL:", + "LabelCustomCertificatePathHelp": "Cesta k súboru PKCS #12 obsahujúcemu certifikát a súkromný kľúč na povolenie podpory TLS vo vlastnej doméne.", + "HeaderSetupLibrary": "Nastavenie knižnice médií", + "LabelTimeLimitHours": "Časový limit (v hodinách):", + "HeaderPreferredMetadataLanguage": "Uprednostňovaný jazyk metadát", + "LabelSaveLocalMetadata": "Uložiť obrázok do priečinka s médiami", + "LabelSaveLocalMetadataHelp": "Uloženie obrázku do priečinka s médiami ich umiestni na miesto, kde je možné ich ľahko ukladať a upravovať.", + "TabAccess": "Prístup", + "HeaderDeviceAccess": "Prístup k zariadeniu", + "OptionEnableAccessFromAllDevices": "Povoliť prístup zo všetkých zariadení", + "OptionEnableAccessToAllChannels": "Povoliť prístup ku všetkým kanálom", + "OptionEnableAccessToAllLibraries": "Povoliť prístup ku všetkým knižniciam", + "DeviceAccessHelp": "Filtrovanie prístupu zariadení používateľov im zabráni v používaní nových zariadení, kým tu nebudú schválené.", + "LabelDisplayMissingEpisodesWithinSeasons": "Zobraziť chýbajúce epizódy v sériách", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Toto musí byť tiež povolené pre TV knižnice v nastavení Emby servera.", + "ImportMissingEpisodesHelp": "Ak je možnosť povolená, informácie o chýbajúcich epizódach budú importované do Vašej Emby databázy a zobrazené v sezónach a seriáloch. Toto môže spôsobiť podstatne dlhšie skenovanie knižníc.", + "MessageEnablingOptionLongerScans": "Povolenie tejto možnosti môže mať za následok podstatne dlhšie skenovanie knižníc.", + "LabelMaxParentalRating": "Maximálne povolené rodičovské hodnotenie:", + "MaxParentalRatingHelp": "Obsah s vyšším rodičovským hodnotením bude tomuto používateľovi skrytý.", + "LibraryAccessHelp": "Zvoľte priečinky médií, ktoré chcete zdieľať s týmto používateľom. Administrátori budú schopní upraviť všetky priečinky pomocou správcu metadát.", + "ChannelAccessHelp": "Zvoľte kanály, ktoré chcete zdieľať s týmto používateľom. Administrátori budú schopní upraviť všetky kanály pomocou správcu metadát.", + "ImageUploadAspectRatioHelp": "Odporúčaný pomer strán je 1:1. Iba JPG/PNG.", + "AlreadyPaidHelp1": "Ak ste už zaplatili za inštaláciu staršej verzie aplikácie Media Browser pre Android, nemusíte znova platiť za aktiváciu tejto aplikácie. Kliknutím na OK nám odošlete email na adresu {0} a my Vám ju aktivujeme.", + "AlreadyPaidHelp2": "Vlastníte Emby Premiere? Zavrite toto dialógové okno, nastavte Emby Premiere vo Vašej Nástenke Emby Serveru v sekcii Nápoveda -> Emby Premiere a funkcia bude automaticky odomknutá.", + "TabMyPlugins": "Moje rozšírenia", + "TabCatalog": "Katalóg", + "HeaderAutomaticUpdates": "Automatické aktualizácie", + "Standard": "Štandardná", + "TabSupporterKey": "Kľúč Emby Premiere", + "OptionHideUserLocal": "Skryť tohto používateľa na prihlasovacích obrazovkách v miestnej sieti", + "OptionHideUserRemote": "Skryť tohto používateľa na prihlasovacích obrazovkách pri vzdialenom pripojení", + "OptionHideUserFromLoginHelp": "Užitočné pre súkromné alebo skryté administrátorské účty. Používateľ sa bude musieť prihlásiť ručne zadaním mena a hesla.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Zakázať tohto používateľa", + "OptionDisableUserHelp": "Ak je zakázané, server nepovolí žiadne pripojenia od tohto používateľa. Aktívne pripojenia budú ihneď ukončené.", + "OptionAllowUserToManageServer": "Povoliť tomuto používateľovi spravovať server", + "HeaderFeatureAccess": "Prístup k funkciám", + "OptionAllowMediaPlayback": "Povoliť prehrávanie médií", + "AllLibraries": "Všetky knižnice", + "HeaderAllowMediaDeletionFrom": "Povoliť odstraňovanie médií z", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Povoliť vzdialené ovládanie ostatných používateľov", + "OptionAllowRemoteSharedDevices": "Povoliť vzdialené ovládanie zdieľaných zariadení", + "OptionAllowRemoteSharedDevicesHelp": "Dlna zariadenia sa považujú za zdieľané, kým ich používateľ nezačne obmedzovať.", + "OptionAllowLinkSharing": "Povoliť zdieľanie sociálnych médií", + "OptionAllowLinkSharingHelp": "Zdieľané sú iba webové stránky obsahujúce informácie o médiách. Súbory médií nie sú nikdy verejne zdieľané. Zdieľania sú časovo obmedzené a ich platnosť vyprší o {0} dní.", + "OptionRelease": "Oficiálne vydanie", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "Server sa reštartuje iba počas obdobia nečinnosti, keď nie sú žiadni používatelia aktívni.", + "LabelRunServerAtStartup": "Spustiť server pri štarte", + "LabelRunServerAtStartupHelp": "Toto naštartuje ikonu Emby na hlavnom paneli pri spustení systému Windows. Ak ste nastavili službu Windows, nechajte ju nezaškrtnutú a nakonfigurujte službu tak, aby sa spúšťala pri štarte.", + "ButtonSelectDirectory": "Vybrať priečinok", + "LabelCachePath": "Cesta k medzipamäti:", + "DefaultMetadataLangaugeDescription": "Toto sú Vaše predvolené hodnoty a dajú sa prispôsobiť pre jednotlivé knižnice.", + "LabelCachePathHelp": "Uveďte vlastné umiestnenie súborov medzipamäte servera, ako napríklad obrázky. Ponechajte prázdne pre použitie predvoleného umiestnenia servera.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Umiestnenie metadát:", + "LabelMetadataPathHelp": "Zadajte vlastné umiestnenie pre stiahnuté obrázky a metadáta.", + "LabelTranscodingTempPath": "Dočasné umiestnenie transkódovania:", + "LabelTranscodingTempPathHelp": "Tento priečinok obsahuje pracovné súbory, ktoré používa transkodér. Zadajte vlastnú cestu alebo ponechajte prázdne, ak chcete použiť predvolenú zložku s údajmi na serveri.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "ako naplánovaná úloha", + "AsAScheduledTaskAndMediaAdded": "ako naplánovaná úloha a po pridaní média", + "ButtonRefreshGuideData": "Obnoviť údaje sprievodcu", + "LabelNumberOfGuideDays": "Počet dní na stiahnutie údajov sprievodcu:", + "LabelNumberOfGuideDaysHelp": "Stiahnutie údajov sprievodcu na viac dní poskytuje možnosť vopred si rozvrhnúť a zobraziť viac záznamov, ale sťahovanie bude trvať aj dlhšie. Ak zvolíte \"Automatické\" bude výber určený na základe počtu kanálov. Upozorňujeme, že bez ohľadu na to, koľko dní si vyberiete, musia byť údaje v zdrojových údajoch sprievodcu, aby sa mohli stiahnúť. Niektorí poskytovatelia údajov sprievodcu poskytujú iba na nasledujúcich 24 hodín. Emby Guide Data podporuje až 14 dní.", + "HeaderFetchImages": "Načítať obrázky:", + "LabelMaxBackdropsPerItem": "Maximálny počet obrázkov pre pozadie na položku:", + "LabelMaxScreenshotsPerItem": "Maximálny počet snímkov obrazovky na položku:", + "LabelMinBackdropDownloadWidth": "Minimálna šírka pozadia na stiahnutie:", + "LabelMinScreenshotDownloadWidth": "Minimálna šírka snímky obrazovky na stiahnutie:", + "ButtonAddScheduledTaskTrigger": "Pridať spúštač", + "ButtonAdd": "Pridať", + "LabelTriggerType": "Typ spúšťača:", + "OptionOnInterval": "V intervale", + "OptionAfterSystemEvent": "Po systémovej udalosti", + "LabelDay": "Deň:", + "LabelTime": "Čas:", + "LabelEvent": "Udalosť:", + "OptionWakeFromSleep": "Zobudiť zo spánku", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Povoliť sledovanie v reálnom čase", + "LabelEnableRealtimeMonitorHelp": "Zmeny súborov na podporovaných súborových systémoch budú spracované okamžite .", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Zrozumiteľný názov servera:", + "LabelFriendlyServerNameHelp": "Toto meno bude použité na identifikáciu servera. Ak ostane prázdne, bude použitý názov počítača.", + "LabelPreferredDisplayLanguage": "Uprednostňovaný jazyk zobrazenia:", + "LabelPreferredDisplayLanguageHelp": "Preklad Emby je prebiehajúci projekt.", + "LabelReadHowYouCanContribute": "Zistite ako môžete prispieť.", + "LabelCustomCss": "Vlastné CSS:", + "LabelCustomCssHelp": "Aplikujte svoje vlastné CSS na web rozhranie.", + "LabelLocalHttpServerPortNumber": "Lokálny HTTP port:", + "LabelLocalHttpServerPortNumberHelp": "Číslo TCP portu, na ktorý by sa mal Emby HTTP server viazať.", + "LabelPublicHttpPort": "Verejný HTTP port:", + "LabelPublicHttpPortHelp": "Číslo verejného portu, ktoré by malo byť namapované na miestny HTTP port.", + "LabelPublicHttpsPort": "Verejný HTTPS port:", + "LabelPublicHttpsPortHelp": "Číslo verejného portu, ktoré by malo byť namapované na miestny HTTPS port.", + "RequireHttps": "Požadovať HTTPS pre externé pripojenia", + "RequireHttpsHelp": "Ak je povolené, spojenia cez HTTP budú presmerované na HTTPS.", + "LabelHttpsPort": "Lokálny HTTPS port:", + "LabelHttpsPortHelp": "Číslo TCP portu, na ktorý by sa mal viazať Emby HTTPS server.", + "LabelEnableAutomaticPortMap": "Povoliť automatické mapovanie portov", + "LabelEnableAutomaticPortMapHelp": "Pokúsiť sa o automatické priradenie verejného portu k miestnemu portu pomocou protokolu UPnP. U niektorých modelov smerovačov to nemusí fungovať.", + "LabelExternalDDNS": "Externá doména:", + "LabelExternalDDNSHelp": "Ak máte dynamickú DNS alebo názov domény, zadajte to tu, bez protokolu alebo portu. Emby ho použije pri vzdialenom pripojení. Toto pole je povinné pri použití s vlastným certifikátom SSL. Príklad: mydomain.com.", + "LabelMinResumePercentage": "Minimálne percento pre pokračovanie:", + "LabelMaxResumePercentage": "Maximálne percento pre pokračovanie:", + "LabelMinResumeDuration": "Minimálna doba trvania (v sekundách):", + "LabelMinResumePercentageHelp": "Tituly budú považované za neprehrané ak budú zastavené pred týmto časom", + "LabelMaxResumePercentageHelp": "Tituly budú považované za dopozerané ak budú zastavené po tomto čase", + "LabelMinResumeDurationHelp": "Tituly kratšie ako tento čas nebudú pozastaviteľné.", + "HeaderStatus": "Status", + "Subscriptions": "Predplatné", + "LabelEndingEpisodeNumber": "Číslo poslednej epizódy:", + "LabelEndingEpisodeNumberHelp": "Vyžadované iba pre súbory s viacerými epizódami", + "HeaderSupportTheTeam": "Podporte Emby tím", + "HeaderSupportTheTeamHelp": "Pomôžte zabezpečiť ďalší vývoj tohto projektu zakúpením Emby Premiere. Časť všetkých príjmov sa použije na ďalšie bezplatné nástroje, na ktorých sme závislí.", + "DonationNextStep": "Po dokončení sa vráťte a zadajte kľúč k Emby Premiere, ktorý obdržíte emailom.", + "HeaderRunningTasks": "Bežiace úlohy", + "ButtonUpdateNow": "Aktualizovať teraz", + "PleaseUpdateManually": "Vypnite prosím Emby server a nainštalujte najnovšiu verziu.", + "ServerUpToDate": "Emby Server je aktuálny", + "MessagePleaseRestartServerToFinishUpdating": "Prosím reštartujte server, aby sa mohla dokončiť aplikácia aktualizácií.", + "LabelDownMixAudioScale": "Zvýraznenie zvuku pri downmixovaní:", + "LabelDownMixAudioScaleHelp": "Zvýraznite zvuk pri downmixovaní. Nastavte na 1 pre zachovanie pôvodnej hodnoty hlasitosti.", + "HeaderForgotKey": "Zabudol som kľúč", + "LabelSupporterEmailAddress": "Emailová adresa, ktorá bola použitá pri nákupe kľúča.", + "ButtonRetrieveKey": "Získať kľúč", + "LabelSupporterKey": "Kľúč Emby Premiere (vložiť z emailu):", + "LabelSupporterKeyHelp": "Zadajte kľúč Emby Premiere, aby ste mohli začať využívať ďalšie výhody.", + "MessageInvalidKey": "Kľúč k Emby Premiere chýba alebo je neplatný.", + "ErrorMessageInvalidKey": "Aby ste mohli zaregistrovať akýkoľvek prémiový obsah, musíte mať tiež aktívne predplatné Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Preskočiť ak video obsahuje vložené titulky", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Poslať správu", + "HeaderSendMessage": "Poslať správu", + "ButtonSend": "Odoslať", + "LabelMessageText": "Text správy:", + "LabelMessageTitle": "Titulok správy:", + "ButtonEditOtherUserPreferences": "Upraviť používateľský profil, obrázok a osobné preferencie.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "Toto bude zobrazené na spodku prihlasovacej stránky.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Kľúče API", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "Kľúč API", + "HeaderResumeSettings": "Nastavenia pokračovania", + "HeaderFetcherSettings": "Nastavenia sťahovača metadát", + "HeaderActivity": "Aktivita", + "ButtonPurchase": "Zakúpiť", + "HeaderInstall": "Inštalovať", + "LabelSelectVersionToInstall": "Vyberte verziu, ktorú chcete nainštalovať:", + "LinkLearnMoreAboutSubscription": "Zistite viac o Emby Premiere", + "MessagePluginRequiresSubscription": "Toto rozšírenie bude po 14 dňovej skúšobnej lehote vyžadovať aktívne predplatné Emby Premiere.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Developer Info", + "HeaderRevisionHistory": "História revízií", + "ButtonViewWebsite": "Zobraziť web stránku", + "OptionSaveMetadataAsHidden": "Uložiť metadáta a obrázky ako skryté súbory", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Zistite viac o Emby Connect", + "LabelDateAddedBehavior": "Nový obsah zoraďovať podľa dátumu:", + "OptionDateAddedImportTime": "Podľa dátumu pridania do knižnice", + "OptionDateAddedFileTime": "Použiť dátum vytvorenia súboru", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Nastavenia knižnice", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apka dokáže automaticky nahrávať fotky z vášho mobilného zariadenia na Emby server.", + "LabelCameraUploadPath": "Camera upload path", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Vytvoriť podpriečinok pre každé zariadenie", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Rodičovská kontrola", + "HeaderAccessSchedule": "Rozvrh prístupu", + "HeaderAccessScheduleHelp": "Vytvoriť rozvrh prístupu a obmedziť tak prístup na určité hodiny.", + "HeaderLibraryAccess": "Prístup ku knižnici", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Zadajte svoje používateľské meno, ak si ho pamätáte.", + "TitlePasswordReset": "Obnovenie hesla", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Povoliť preberanie médií", + "LabelNewUserNameHelp": "Používateľské mená môžu obsahovať písmená (a-z), čísla (0-9), pomlčky (-), podčiarkovníky (_), apostrofy (') a bodky (.)", + "HeaderThisUserIsCurrentlyDisabled": "Tento používateľ je momentálne deaktivovaný", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Povoliť konverziu médií", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Povoliť prehrávanie audia, ktoré vyžaduje prekódovanie", + "OptionAllowVideoPlaybackTranscoding": "Povoliť prehrávanie videa, ktoré vyžaduje prekódovanie", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Povoliť konverziu plnou rýchlosťou", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Povoliť automatické aktualizácie servera", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "IP adresa tunera:", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "PSČ", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Obmedziť na kanály označené ako obľúbené", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Display name", + "OptionDownloadImagesInAdvance": "Sťahovať obrázky dopredu", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Ďakujeme, že podporujete Emby.", + "FileReadCancelled": "The file read has been canceled.", + "FileNotFound": "Súbor nenájdený.", + "FileReadError": "Pri čítaní súboru nastala chyba.", + "NoPluginConfigurationMessage": "Toto rozšírenie nemá žiadne nastavenia.", + "HeaderNewApiKey": "Nový kľúč API", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Kľúč odoslaný {0}", + "HeaderConfirmation": "Potvrdenie", + "MessageKeyUpdated": "Ďakujeme. Váš Emby Premiere kľúč bol aktualizovaný.", + "MessageKeyRemoved": "Ďakujeme. Váš Emby Premiere kľúč bol odstránený.", + "TextEnjoyBonusFeatures": "Užite si bonusové funkcie", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Časový limit: 1 hodina", + "ValueTimeLimitMultiHour": "Časový limit: {0} hodín", + "General": "Všeobecné", + "HeaderScreenSavers": "Šetriče obrazovky", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Posledné spustenie {0}, trvalo {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "Na správu rozšírení použite Emby web aplikáciu prosím.", + "LabelVersionInstalled": "{0} nainštalovaný", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Ste si istý, že chcete reštartovať Emby Server?", + "MessageConfirmShutdown": "Ste si istý, že chcete vypnúť Emby Server?", + "LabelLocalAccessUrl": "Domáci (LAN) prístup: {0}", + "LabelRemoteAccessUrl": "Vzdialený (WAN) prístup: {0}", + "LabelRunningOnPort": "Beží na HTTP porte {0}.", + "LabelRunningOnPorts": "Beží na HTTP porte {0} a na HTTPS porte {1}.", + "LabelCurrentPath": "Aktuálna cesta:", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Vybrať priečinok", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Správca metadát", + "OptionBlockLiveTvChannels": "Živé TV kanály", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Prosím akceptujte podmienky použitia pred pokračovaním.", + "HeaderChangeFolderType": "Zmeniť typ obsahu", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "HeaderAlert": "Výstraha", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Domáce videá a fotky", + "OptionBooks": "Knihy", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Sťahovače metadát:", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Vyberte formát súboru, do ktorého chcete ukladať vaše metadáta.", + "LabelImageFetchers": "Sťahovače obrázkov:", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Osoba", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Ste si istý, že chcete odobrať toto umiestnenie?", + "LabelNewName": "Nové meno:", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Premenovať", + "HeaderPluginInstallation": "Inštalácia rozšírenia", + "MessageTrialExpired": "Skúšobná doba pre túto funkciu vypršala", + "MessageTrialWillExpireIn": "Skúšobná doba pre túto funkciu vyprší o {0} dni", + "ValuePriceUSD": "Cena: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Vybrať externý prehrávač", + "HeaderExternalPlayerPlayback": "Prehrať v externom prehrávači", + "HeaderThankYou": "Vďaka", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "Čas ukončenia musí byť väčší ako čas štartu.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Audioknihy a učebnice sú podporované", + "MessageGamePluginRequired": "Požaduje inštaláciu rozšírenia GameBrowser", + "HeaderUnlockApp": "Odomknúť aplikáciu", + "MessagePaymentServicesUnavailable": "Platobné služby sú momentálne nedostupné. Skúste to prosím neskôr.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Ste si istý, že chcete zmazať toto zariadenie?", + "MessageConfirmDeleteGuideProvider": "Ste si istý, že chcete zmazať tohto poskytovateľa programu?", + "HeaderDeleteProvider": "Zmazať poskytovateľa", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Stav: {0}", + "HeaderTopPlugins": "Najlepšie rozšírenia", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Pridať užívateľa", + "HeaderEmailAddress": "E-mailová adresa", + "NumLocationsValue": "{0} priečinkov", + "PleaseAddAtLeastOneFolder": "Pridajte prosím aspoň jeden priečinok do tejto knižnice kliknutím na tlačidlo Pridať.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Potvrdiť inštaláciu rozšírenia", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Príklad: {0}", + "LabelFileOrUrl": "Súbor alebo URL:", + "OptionEnableForAllTuners": "Povoliť pre všetky tunery", + "HeaderTuners": "Tunery", + "DrmChannelsNotImported": "Kanály s DRM nebudú importované.", + "LabelAllowHWTranscoding": "Povoliť hardvérové transkódovanie", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Miestna IP adresa:", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Povoliť fotky", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Enable debug logging", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPath": "(Voliteľné) Zdieľaný sieťový priečinok:", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automaticky zlúčiť série, ktoré sú uložené v rôznych priečinkoch", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "Kedy ste túto aplikáciu pôvodne zakúpili?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detekovať moje zariadenia", + "MessagePleaseWait": "Prosím počkajte. Toto môže chvíľu trvať.", + "DetectingDevices": "Detegujem zariadenia", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Automaticky obnoviť metadáta z internetu:", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Každých {0} dní", + "LabelCertificatePassword": "Heslo certifikátu:", + "LabelCertificatePasswordHelp": "Ak váš certifikát vyžaduje heslo, zadajte ho tu prosím.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Po inštalácii rozšírenia bude potrebný reštart Emby servera.", + "PluginInstalledMessage": "Rozšírenie bolo úspešne nainštalované. Je potrebný reštart Emby Server aby sa prejavili zmeny.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "Toto predplatné bolo zrušené. Kľúč zostane platný až do expirácie.", + "HeaderCancelSub": "Zrušiť Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "Rozumiem, aj tak zrušiť", + "ButtonDontCancelSub": "Ponechať Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Spustiť Emby web apku v mojom webovom prehliadači pri štarte Emby servera", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Nastaviť vzdialený prístup", + "LearnHowToCreateSynologyShares": "Naučte sa ako zdieľať priečinky v Synology.", + "LabelAllowedRemoteAddresses": "Filter vzdialených IP adries:", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Biela listina", + "Blacklist": "Čierna listina", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN siete:", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferované, ale nevyžadované", + "RequiredForAllRemoteConnections": "Vyžadované pre všetky vzdialené spojenia", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Ukladať titulky do priečinkov s médiami", + "SaveSubtitlesIntoMediaFoldersHelp": "Uloženie titulkov k video súborom uľahčí ich spravovanie.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Povoliť hardvérovú akceleráciu ak je dostupná:", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "LabelFolderScanningMode": "Folder scanning mode", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "Legacy": "Legacy" +} diff --git a/strings/sl.json b/strings/sl.json new file mode 100644 index 0000000..682d3d2 --- /dev/null +++ b/strings/sl.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Končano!", + "ThisWizardWillGuideYou": "Čarovnik vas bo vodil skozi postopek namestitve.", + "HeaderCreateYourFirstUser": "Ustvarite svojega prvega uporabnika", + "ButtonQuickStartGuide": "Vodnik za hiter začetek", + "MoreUsersCanBeAddedLater": "Več uporabnikov je mogoče dodati pozneje v nastavitvah strežnika Emby.", + "UserProfilesIntro": "Emby vključuje vgrajeno podporo za uporabniške profile, kar vsakemu uporabniku omogoča lastne nastavitve zaslona, ​​status predvajanja in starševski nadzor.", + "WizardCompleted": "To je vse, kar potrebujemo za zdaj. Emby je začel skenirati vašo medijsko knjižnico. Oglejte si nekaj naših aplikacij in kliknite Dokončaj za ogled nadzorne plošče strežnika.", + "MessagePleaseAcceptTermsOfService": "Pred nadaljevanjem sprejmite pogoje uporabe in politiko zasebnosti.", + "OptionIAcceptTermsOfService": "Sprejemam pogoje uporabe", + "SeeOurHwaGuide": "Oglejte si naš {0}vodnik za namestitev pospeševanja strojne opreme{1}.", + "HeaderEmbyServerReleaseNotes": "Opombe ob izdaji strežnika Emby", + "AllowSubtitleDownloading": "Omogoči prenašanje podnapisov", + "AllowSubtitleManagement": "Omogoči izbris obstoječih datotek s podnapisi", + "NewUserNameHelp": "Tako bo uporabnik prikazan na vašem strežniku.", + "ChapterMarkers": "Oznake poglavij", + "LabelThumbnailImagesInterval": "Interval sličic", + "ThumbnailImagesIntervalHelp": "Pogostejše sličice bodo zagotovile boljšo izkušnjo, vendar bo za ustvarjanje slik potrebno več prostora na disku in časa.", + "LabelAuthProvider": "Ponudnik overitve", + "AuthProviderHelp": "Skrbniki vedno uporabljajo privzetega ponudnika Emby, da zagotovijo, da nikoli ne ostanete brez dostopa.", + "HeaderNewUser": "Nov uporabnik", + "ChangeServerDisplayName": "Spremenite prikazno ime strežnika", + "ShowAdvancedSettings": "Pokaži napredne nastavitve", + "ChangingMetadataImageSettingsNewContent": "Sprememba metapodatkov ali nastavitve prenosa opisnih podatkov se uporabi samo za novo dodano vsebino v vaši knjižnici. Za uveljavitev sprememb na obstoječe naslove, bo potrebno ročno osvežiti njihove metapodatke.", + "AllowRemoteAccess": "Dovoli oddaljene povezave do tega strežnika Emby", + "AllowRemoteAccessHelp": "Če ni obkljukano, bodo vse oddaljene povezave blokirane.", + "Alerts": "Opozorila", + "LabelTrackTitleDisplay": "Prikaz vgrajenega naslova", + "GenerateUserFriendlyTrackTitles": "Ustvarite uporabniku prijazne naslove z uporabo informacij iz datotek", + "PreferOriginalTrackTitles": "Raje vdelane naslove", + "TrackTitleDisplayHelp": "Izberite prikazni naslov vdelanega zvoka in podnapisov. Dajanje prednosti vdelanemu ni priporočljivo, razen če ročno pripravljate informacije o vdelani skladbi.", + "EnableTranscodingThrottle": "Omogoči dušenje", + "EnableTranscodingThrottleHelp": "Emby bo dinamično prilagodil hitrost prekodiranja, da bi zmanjšal porabo procesorja.", + "HeaderTypeMetadataDownloaders": "Ponudniki metapodatkov za {0}", + "HeaderTypeImageFetchers": "Pridobivanje slik za {0}", + "HeaderImageOptions": "Možnosti slik", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registriraj se z PayPal-om", + "LabelSyncTempPath": "Pot začasnih datotek", + "LabelSyncTempPathHelp": "Določite delovno mapo po meri. Tukaj bodo shranjeni pretvorjeni mediji, ustvarjeni med postopkom pretvorbe.", + "LabelCustomCertificatePath": "Pot potrdila SSL po meri", + "LabelCustomCertificatePathHelp": "Pot do PKCS #12 datoteke, ki vsebuje certifikat in privatni ključ, ki omogoči TLS podporo na poljubni domeni.", + "HeaderSetupLibrary": "Nastavitev medijskih knjižnic", + "LabelTimeLimitHours": "Časovna omejitev (ure)", + "HeaderPreferredMetadataLanguage": "Prednostni jezik metapodatkov", + "LabelSaveLocalMetadata": "Shrani slike skupaj z mediji", + "LabelSaveLocalMetadataHelp": "Če slike shranite skupaj z mediji, bo do njih mogoče preprosto dostopati. Če je onemogočeno, bodo slike shranjene v mapo z metapodatki strežnika.", + "TabAccess": "Dostop", + "HeaderDeviceAccess": "Dostop do naprave", + "OptionEnableAccessFromAllDevices": "Omogoči dostop iz vseh naprav", + "OptionEnableAccessToAllChannels": "Omogoči dostop do vseh programov", + "OptionEnableAccessToAllLibraries": "Omogoči dostop do vseh knjižnic", + "DeviceAccessHelp": "Filtriranje dostopa uporabnikov do naprav jim bo preprečilo uporabo novih naprav, dokler jih tukaj ne odobrimo.", + "LabelDisplayMissingEpisodesWithinSeasons": "Prikaži manjkajoče epizode v sezonah", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "To mora biti omogočeno tudi za TV knjižnice v nastavitvi Emby Server.", + "ImportMissingEpisodesHelp": "Če je omogočeno, bodo informacije o manjkajočih epizodah uvožene v vašo bazo podatkov Emby in prikazane v sezonah in serijah. To lahko povzroči znatno daljša skeniranja knjižnic.", + "MessageEnablingOptionLongerScans": "Omogočanje te možnosti lahko povzroči znatno daljše skeniranje knjižnic.", + "LabelMaxParentalRating": "Najvišja dovoljena starševska ocena", + "MaxParentalRatingHelp": "Vsebina z višjo oceno bo skrita pred tem uporabnikom.", + "LibraryAccessHelp": "Izberite medijske mape za skupno rabo s tem uporabnikom. Skrbniki bodo lahko urejali vse mape z uporabo upravitelja metapodatkov.", + "ChannelAccessHelp": "Izberite programe, ki jih želite deliti s tem uporabnikom. Skrbniki bodo lahko urejali vse programe z uporabo upravitelja metapodatkov.", + "ImageUploadAspectRatioHelp": "Priporočeno razmerje stranic 1:1. Samo JPG/PNG.", + "AlreadyPaidHelp1": "Če ste že plačali za namestitev starejše različice Media Browserja za Android, vam ni treba znova plačati, da bi aktivirali to aplikacijo. Kliknite »V redu«, da nam pošljete e-pošto na {0} in aktivirali ga bomo namesto vas.", + "AlreadyPaidHelp2": "Imate Emby Premiere? Samo prekličite to pogovorno okno, nastavite Emby Premiere na nadzorni plošči strežnika Emby pod Pomoč -> Emby Premiere in samodejno se bo odklenil.", + "TabMyPlugins": "Moji vtičniki", + "TabCatalog": "Katalog", + "HeaderAutomaticUpdates": "Samodejne posodobitve", + "Standard": "Standardno", + "TabSupporterKey": "Ključ Emby Premiere", + "OptionHideUserLocal": "Skrij tega uporabnika na prijavnih zaslonih v lokalnem omrežju", + "OptionHideUserRemote": "Skrij tega uporabnika na prijavnih zaslonih, ko je povezan na daljavo", + "OptionHideUserFromLoginHelp": "Uporabno za zasebne ali skrite skrbniške račune. Uporabnik se bo moral prijaviti ročno z vnosom svojega uporabniškega imena in gesla.", + "HideFromUnusedDevices": "Skrij tega uporabnika pred prijavnimi zasloni v napravah, v katere se ni nikoli prijavil", + "OptionDisableUser": "Onemogoči tega uporabnika", + "OptionDisableUserHelp": "Če je onemogočeno, strežnik ne bo dovolil povezav tega uporabnika. Obstoječe povezave bodo nenadoma prekinjene.", + "OptionAllowUserToManageServer": "Dovoli upravljanje strežnika temu uporabniku", + "HeaderFeatureAccess": "Dostop do funkcij", + "OptionAllowMediaPlayback": "Dovoli predvajanje vsebin", + "AllLibraries": "Vse knjižnice", + "HeaderAllowMediaDeletionFrom": "Dovoli brisanje predstavnosti iz", + "LiveTVRecordingManagement": "Upravljanje snemanja televizije", + "OptionAllowRemoteControlOthers": "Dovoli daljinsko upravljanje drugih uporabnikov", + "OptionAllowRemoteSharedDevices": "Dovoli daljinsko upravljanje naprav v skupni rabi", + "OptionAllowRemoteSharedDevicesHelp": "Naprave DLNA veljajo za skupne, dokler jih uporabnik ne začne nadzorovati.", + "OptionAllowLinkSharing": "Dovoli skupno rabo v družabnih medijih", + "OptionAllowLinkSharingHelp": "Delijo se samo spletne strani, ki vsebujejo informacije o medijih. Medijske datoteke se nikoli ne delijo javno. Delitve so časovno omejene in bodo potekle po {0} dneh.", + "OptionRelease": "Uradna izdaja", + "LabelAllowServerAutoRestartPlugin": "Dovolite, da se strežnik samodejno znova zažene, da uporabi posodobitve vtičnikov", + "LabelAllowServerAutoRestartServerOrPlugin": "Dovolite, da se strežnik samodejno znova zažene, da se uporabijo posodobitve strežnika ali vtičnika", + "LabelAllowServerAutoRestartHelp": "Strežnik se bo znova zagnal samo med obdobji mirovanja, ko ni aktiven noben uporabnik.", + "LabelRunServerAtStartup": "Zaženi strežnik ob zagonu", + "LabelRunServerAtStartupHelp": "To bo zagnalo ikono pladnja Emby ob zagonu sistema Windows. Če ste nastavili storitev Windows, pustite to nepotrjeno in konfigurirajte storitev za zagon ob zagonu.", + "ButtonSelectDirectory": "Izberite mapo", + "LabelCachePath": "Pot predpomnilnika", + "DefaultMetadataLangaugeDescription": "To so vaše privzete vrednosti in jih je mogoče prilagoditi za vsako knjižnico posebej.", + "LabelCachePathHelp": "Določite lokacijo po meri za datoteke predpomnilnika strežnika, kot so slike. Če želite uporabiti privzeto nastavitev strežnika, pustite prazno.", + "LabelDefaultRecordingFolder": "Privzeta mapa za snemanje", + "LabelMovieRecordingFolder": "Mapa za snemanje filmov", + "LabelSeriesRecordingFolder": "Mapa za snemanje serij", + "SeriesRecordingFolderHelp": "(Neobvezno). Izberite knjižnico, v katero shranite posnetke serije. To mora biti knjižnica, ki ste jo ustvarili v nastavitvi knjižnice Emby z vrsto vsebine, nastavljeno na TV-oddaje ali mešano vsebino.", + "HeaderProgramData": "Programski podatki", + "RecordingFolderHelp": "Izberite privzeto knjižnico, v katero želite shraniti posnetke. To mora biti knjižnica, ki ste jo ustvarili v nastavitvah knjižnice Emby z vrsto vsebine, nastavljeno na mešano vsebino.", + "MovieRecordingFolderHelp": "(Neobvezno). Izberite knjižnico, v katero shranite filmske posnetke. To mora biti knjižnica, ki ste jo ustvarili v nastavitvi knjižnice Emby z vrsto vsebine, nastavljeno na filme ali mešano vsebino.", + "LabelMetadataPath": "Pot metapodatkov", + "LabelMetadataPathHelp": "Določite lokacijo za prenesene slike in metapodatke ali pa to izpraznite, da se vrnete na privzeto. Če to spreminjate, boste morali ročno preseliti vsebino s stare lokacije na novo lokacijo. Če kdaj ročno spremenite vsebino mape z metapodatki, boste morali zagnati {0}načrtovano opravilo skeniranja mape z metapodatki{1}.", + "LabelTranscodingTempPath": "Začasna pot prekodiranja", + "LabelTranscodingTempPathHelp": "Ta mapa vsebuje delovne datoteke, ki jih uporablja transkoder. Določite pot po meri ali pustite prazno, če želite uporabiti privzeto v podatkovni mapi strežnika.", + "GenerateVideoPreviewThumbnailsHelp": "Sličice predogleda videa zagotavljajo posodobitve v živo med iskanjem v podprtih aplikacijah. Ustvarjanje sličic lahko traja dolgo, povzroči visoko obremenitev procesorja in porabi dodaten prostor na disku.", + "AsAScheduledTask": "kot načrtovano opravilo", + "AsAScheduledTaskAndMediaAdded": "kot načrtovano opravilo in ko je dodan medij", + "ButtonRefreshGuideData": "Osveži podatke EPG", + "LabelNumberOfGuideDays": "Število dni EPG za prenos", + "LabelNumberOfGuideDaysHelp": "Če prenesete podatke EPG za več dni, lahko vnaprej načrtujete in si ogledate več seznamov, vendar bo tudi prenos trajal dlje. \"Samodejno\" bo izbral glede na število kanalov. Ne glede na to, koliko dni izberete, morajo podatki obstajati v izvornih vodnikih, da jih je mogoče prenesti. Nekateri viri podatkov zagotavljajo samo 24 ur. Emby Guide Data podpira do 14 dni.", + "HeaderFetchImages": "Pridobi slike", + "LabelMaxBackdropsPerItem": "Največje število ozadij na element", + "LabelMaxScreenshotsPerItem": "Največje število posnetkov zaslona na element", + "LabelMinBackdropDownloadWidth": "Najmanjša širina ozadja za prenos", + "LabelMinScreenshotDownloadWidth": "Najmanjša širina posnetka za prenos", + "ButtonAddScheduledTaskTrigger": "Dodaj sprožilec", + "ButtonAdd": "Dodaj", + "LabelTriggerType": "Vrsta sprožilca", + "OptionOnInterval": "V intervalu", + "OptionAfterSystemEvent": "Po sistemskem dogodku", + "LabelDay": "Dan", + "LabelTime": "Čas", + "LabelEvent": "Dogodek", + "OptionWakeFromSleep": "Zbudi iz spanja", + "Every": "Vsak", + "LabelEnableRealtimeMonitor": "Omogoči spremljanje v realnem času", + "LabelEnableRealtimeMonitorHelp": "Spremembe datotek bodo takoj obdelane v podprtih datotečnih sistemih.", + "Community": "Skupnost", + "HeaderEmbyNews": "Novice Emby", + "LabelFriendlyServerName": "Prijazno ime strežnika", + "LabelFriendlyServerNameHelp": "To ime bo uporabljeno za identifikacijo tega strežnika. Če pustite prazno, bo uporabljeno ime računalnika.", + "LabelPreferredDisplayLanguage": "Prednostni jezik prikaza", + "LabelPreferredDisplayLanguageHelp": "Prevajanje Embyja je projekt v teku.", + "LabelReadHowYouCanContribute": "Izvedite, kako lahko prispevate.", + "LabelCustomCss": "CSS po meri", + "LabelCustomCssHelp": "Uporabite svoj lastni CSS po meri za spletni vmesnik.", + "LabelLocalHttpServerPortNumber": "Lokalna številka vrat http", + "LabelLocalHttpServerPortNumberHelp": "Številka vrat tcp, na katero se mora povezati Embyjev http strežnik.", + "LabelPublicHttpPort": "Javna številka vrat http", + "LabelPublicHttpPortHelp": "Številka javnih vrat, ki jih je treba preslikati v lokalna vrata http.", + "LabelPublicHttpsPort": "Javna številka vrat https", + "LabelPublicHttpsPortHelp": "Številka javnih vrat, ki jih je treba preslikati v lokalna vrata https.", + "RequireHttps": "Zahtevaj https za zunanje povezave", + "RequireHttpsHelp": "Če je omogočeno, bodo povezave prek http preusmerjene na https.", + "LabelHttpsPort": "Lokalna številka vrat https", + "LabelHttpsPortHelp": "Številka vrat tcp, na katero se mora povezati Embyjev https strežnik.", + "LabelEnableAutomaticPortMap": "Omogoči samodejno preslikavo vrat", + "LabelEnableAutomaticPortMapHelp": "Poskusite samodejno preslikati javna vrata v lokalna vrata prek UPnP. To morda ne bo delovalo pri nekaterih modelih usmerjevalnikov.", + "LabelExternalDDNS": "Zunanja domena", + "LabelExternalDDNSHelp": "Če imate dinamični DNS ali ime domene, ga vnesite tukaj, brez protokola ali vrat. Aplikacije Emby ga bodo uporabljale pri povezovanju na daljavo. To polje je obvezno pri uporabi s potrdilom ssl po meri. Primer: mojadomena.com.", + "LabelMinResumePercentage": "Najmanjši odstotek nadaljevanja", + "LabelMaxResumePercentage": "Največji odstotek nadaljevanja", + "LabelMinResumeDuration": "Najmanjše trajanje nadaljevanja (sekunde)", + "LabelMinResumePercentageHelp": "Predpostavlja se, da naslovi niso predvajani, če so ustavljeni pred tem časom", + "LabelMaxResumePercentageHelp": "Predpostavlja se, da so naslovi v celoti predvajani, če se ustavi po tem času", + "LabelMinResumeDurationHelp": "Naslovov, krajših od tega, ne bo mogoče nadaljevati", + "HeaderStatus": "Status", + "Subscriptions": "Naročnine", + "LabelEndingEpisodeNumber": "Številka končne epizode", + "LabelEndingEpisodeNumberHelp": "Zahtevano samo za datoteke z več epizodami", + "HeaderSupportTheTeam": "Podprite ekipo Emby", + "HeaderSupportTheTeamHelp": "Pomagajte zagotoviti nadaljnji razvoj tega projekta z nakupom Emby Premiere. Del vseh prihodkov bomo prispevali za druga brezplačna orodja, od katerih smo odvisni.", + "DonationNextStep": "Ko končate, se vrnite in vnesite ključ Emby Premiere, ki ga boste prejeli po e-pošti.", + "HeaderRunningTasks": "Tekoča opravila", + "ButtonUpdateNow": "Posodobi zdaj", + "PleaseUpdateManually": "Zaustavite Emby Server in namestite najnovejšo različico.", + "ServerUpToDate": "Uporabljate najnovejši strežnik Emby", + "MessagePleaseRestartServerToFinishUpdating": "Znova zaženite strežnik, da dokončate posodobitev.", + "LabelDownMixAudioScale": "Ojačitev zvoka pri mešanju navzdol", + "LabelDownMixAudioScaleHelp": "Okrepite zvok pri mešanju navzdol. Nastavite na 1, da ohranite prvotno vrednost glasnosti.", + "HeaderForgotKey": "Pozabljen ključ", + "LabelSupporterEmailAddress": "E-poštni naslov, ki je bil uporabljen za nakup ključa.", + "ButtonRetrieveKey": "Pridobi ključ", + "LabelSupporterKey": "Emby Premiere ključ (prilepite iz e-pošte)", + "LabelSupporterKeyHelp": "Vnesite ključ Emby Premiere, da začnete uživati ​​dodatne ugodnosti.", + "MessageInvalidKey": "Ključ Emby Premiere manjka ali je neveljaven.", + "ErrorMessageInvalidKey": "Če želite registrirati katero koli premium vsebino, morate imeti tudi aktivno naročnino na Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Preskoči, če videoposnetek že vsebuje vdelane podnapise v želenem jeziku", + "LabelSkipIfGraphicalSubsPresentHelp": "Ohranjanje besedilnih različic podnapisov bo povzročilo učinkovitejšo dostavo in zmanjšalo verjetnost video prekodiranja.", + "HeaderDownloadLanguages": "Prenos jezikov", + "LabelSkipIfAudioTrackPresent": "Preskoči, če se privzeti zvočni posnetek ujema z jezikom prenosa", + "LabelSkipIfAudioTrackPresentHelp": "Počistite to polje, da zagotovite, da imajo vsi videoposnetki podnapise, ne glede na jezik zvoka.", + "SendMessage": "Pošlji sporočilo", + "HeaderSendMessage": "Pošlji sporočilo", + "ButtonSend": "Pošlji", + "LabelMessageText": "Besedilo sporočila", + "LabelMessageTitle": "Naslov sporočila", + "ButtonEditOtherUserPreferences": "Uredite profil, sliko in osebne nastavitve tega uporabnika.", + "LabelLoginDisclaimer": "Zavrnitev odgovornosti za prijavo", + "LabelLoginDisclaimerHelp": "To bo prikazano na dnu strani za prijavo.", + "HeaderTranscodingTemporaryFiles": "Prekodiranje začasnih datotek", + "HeaderApiKeys": "Ključi API", + "HeaderApiKeysHelp": "Zunanje aplikacije morajo imeti ključ API, da lahko komunicirajo s strežnikom Emby. Ključi se izdajo s prijavo z računom Emby ali z ročno dodelitvijo ključa aplikaciji.", + "HeaderApiKey": "Ključ API", + "HeaderResumeSettings": "Nastavitve nadaljevanja", + "HeaderFetcherSettings": "Nastavitve pridobivanja", + "HeaderActivity": "Dejavnost", + "ButtonPurchase": "Nakup", + "HeaderInstall": "Namesti", + "LabelSelectVersionToInstall": "Izberite različico za namestitev", + "LinkLearnMoreAboutSubscription": "Več o Emby Premiere", + "MessagePluginRequiresSubscription": "Ta vtičnik bo po 14-dnevnem brezplačnem preizkusu zahteval aktivno naročnino na Emby Premiere.", + "MessagePremiumPluginRequiresMembership": "Ta vtičnik bo za nakup po 14-dnevnem brezplačnem preskusu zahteval aktivno naročnino na Emby Premiere.", + "HeaderDeveloperInfo": "Informacije o razvijalcu", + "HeaderRevisionHistory": "Zgodovina sprememb", + "ButtonViewWebsite": "Oglejte si spletno stran", + "OptionSaveMetadataAsHidden": "Shranite metapodatke in slike kot skrite datoteke", + "LabelConnectEmail": "(Izbirno) E-poštni naslov Emby Connect", + "LabelConnectEmailHelp": "Po želji povežite tega lokalnega uporabnika z obstoječim računom Emby Connect, da omogočite enostaven dostop za prijavo iz katere koli aplikacije Emby, ne da bi morali poznati naslov IP strežnika.", + "ButtonLearnMoreAboutEmbyConnect": "Izvedite več o Emby Connect", + "LabelDateAddedBehavior": "Datum dodajanja za novo vsebino", + "OptionDateAddedImportTime": "Uporabi datum vnosa v knjižnico", + "OptionDateAddedFileTime": "Uporabi datum datoteke", + "LabelDateAddedBehaviorHelp": "Če je prisotna vrednost metapodatkov, bo vedno uporabljena pred eno od teh možnosti.", + "HeaderLibrarySettings": "Nastavitve knjižnice", + "HeaderAutomaticSubtitleDownloads": "Samodejni prenosi podnapisov", + "HeaderCameraUploadHelp": "Aplikacije Emby lahko samodejno naložijo fotografije, posnete iz vaših mobilnih naprav, v strežnik Emby.", + "LabelCameraUploadPath": "Pot nalaganja kamere", + "LabelCameraUploadPathHelp": "Izberite pot za nalaganje po meri. To bo preglasilo vse privzete nastavitve, nastavljene v razdelku Nalaganje kamere. Če pustite prazno, bo uporabljena privzeta mapa. Če uporabljate pot po meri, jo boste morali dodati tudi kot knjižnico v nastavitvi knjižnice Emby.", + "DefaultCameraUploadPathHelp": "Izberite pot za nalaganje po meri. Če pustite prazno, bo uporabljena privzeta mapa. Če uporabljate pot po meri, jo boste morali dodati tudi kot knjižnico v nastavitvi knjižnice Emby.", + "LabelCreateCameraUploadSubfolder": "Ustvarite podmapo za vsako napravo", + "LabelCreateCameraUploadSubfolderHelp": "Določene mape lahko dodelite napravi tako, da jo kliknete na strani Naprave.", + "LabelCustomDeviceDisplayNameHelp": "Vnesite prilagojeno prikazno ime ali pustite prazno za prikaz naziva naprave.", + "TabParentalControl": "Starševski nadzor", + "HeaderAccessSchedule": "Urnik dostopa", + "HeaderAccessScheduleHelp": "Ustvarite razpored dostopa, da omejite dostop na določene ure.", + "HeaderLibraryAccess": "Dostop do knjižnice", + "HeaderChannelAccess": "Dostop do programa", + "LabelForgotPasswordUsernameHelp": "Vnesite svoje uporabniško ime, če se ga spomnite.", + "TitlePasswordReset": "Resetiranje gesla", + "HeaderBlockItemsWithNoRating": "Blokiraj elemente brez ali neprepoznanih informacij o oceni", + "LabelBlockContentWithTags": "Omejite elemente z oznakami", + "LabelTagRestrictionMode": "Način omejevanja oznak", + "BlockItemsWithTheseTags": "Blokiraj elemente s temi oznakami", + "AllowItemsWithTheseTags": "Dovoli samo elemente s temi oznakami", + "OptionAllowContentDownloading": "Dovoli prenos medijev", + "LabelNewUserNameHelp": "Uporabniška imena lahko vsebujejo črke (a-z), številke (0-9), pomišljaje (-), podčrtaje (_), apostrofe (') in pike (.)", + "HeaderThisUserIsCurrentlyDisabled": "Ta uporabnik je trenutno onemogočen. Če želite omogočiti tega uporabnika, si oglejte možnost na dnu te strani.", + "OptionAllowSyncTranscoding": "Dovoli prenos medijev, ki zahtevajo prekodiranje", + "AllowMediaConversion": "Dovoli pretvorbo medijev", + "AllowMediaConversionHelp": "Odobrite ali zavrnite dostop do funkcije pretvorbe medijev.", + "OptionAllowAudioPlaybackTranscoding": "Dovoli prekodiranje zvoka, če je potrebno", + "OptionAllowVideoPlaybackTranscoding": "Dovoli prekodiranje videa, če je potrebno", + "OptionAllowVideoPlaybackRemuxing": "Dovoli spreminjanje formata vsebnika, če je potrebno", + "OptionAllowMediaPlaybackTranscodingHelp": "Omejitev dostopa do prekodiranja bo onemogočila izbiro kakovosti in lahko povzroči napake pri predvajanju v aplikacijah Emby zaradi nepodprtih medijskih formatov ali nezadostne pasovne širine omrežja.", + "LabelRemoteClientBitrateLimit": "Omejitev bitne hitrosti internetnega pretakanja (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Izbirna omejitev bitne hitrosti na tok za vse naprave zunaj omrežja. To bo omejilo kakovost internetnega pretakanja, tudi če ima uporabnik v predvajalniku izbrano višjo kakovost. To je uporabno, da napravam preprečite, da bi zahtevale višjo bitno hitrost, kot jo zmore vaša internetna povezava. To lahko povzroči povečano obremenitev procesorja na vašem strežniku, da lahko videoposnetke sproti prekodirate na nižjo bitno hitrost.", + "LabelUserRemoteClientBitrateLimitHelp": "To bo preglasilo privzeto globalno vrednost, nastavljeno v naprednih nastavitvah strežnika.", + "OptionEnableFullSpeedConversion": "Omogoči pretvorbo s polno hitrostjo", + "OptionEnableFullSpeedConversionHelp": "Privzeto se pretvorbe izvajajo z nizko hitrostjo, da se zmanjša poraba virov.", + "OptionEnableAutomaticServerUpdates": "Omogoči samodejne posodobitve strežnika", + "HeaderTVSources": "TV viri", + "HeaderAddTvSource": "Dodaj TV vir", + "LabelTunerIpAddress": "Naslov IP sprejemnika", + "HeaderGuideProviders": "Viri EPG", + "HeaderAddGuideSource": "Dodaj vir EPG", + "LabelZipCode": "Poštna številka", + "LabelLineup": "Zasedba", + "LabelImportOnlyFavoriteChannels": "Omeji na programe, označene kot priljubljene", + "ImportFavoriteChannelsHelp": "Če je omogočeno, bodo uvoženi samo programi, ki so v sprejemniku označeni kot priljubljeni.", + "HeaderDefaultRecordingSettings": "Privzete nastavitve snemanja", + "LabelDisplayName": "Prikazno ime", + "OptionDownloadImagesInAdvance": "Prenesite slike vnaprej", + "OptionDownloadImagesInAdvanceHelp": "Večina slik se privzeto ne prenese iz interneta, dokler jih ne prikaže aplikacija Emby. Omogočite to možnost, če želite vnaprej prenesti vse slike, ko se novi mediji uvažajo. To lahko povzroči znatno daljša skeniranja knjižnic.", + "MessageThankYouForSupporting": "Hvala za podporo Emby.", + "FileReadCancelled": "Branje datoteke je bilo preklicano.", + "FileNotFound": "Datoteka ni najdena.", + "FileReadError": "Med branjem datoteke je prišlo do napake.", + "NoPluginConfigurationMessage": "Ta vtičnik nima nastavitev za konfiguracijo.", + "HeaderNewApiKey": "Nov ključ API", + "HeaderNewApiKeyHelp": "Dodelite aplikaciji dovoljenje za komunikacijo s strežnikom Emby.", + "MessageKeyEmailedTo": "Ključ poslan po e-pošti na {0}.", + "HeaderConfirmation": "Potrditev", + "MessageKeyUpdated": "Hvala vam. Vaš ključ Emby Premiere je posodobljen.", + "MessageKeyRemoved": "Hvala vam. Vaš ključ Emby Premiere je bil odstranjen.", + "TextEnjoyBonusFeatures": "Uživajte v dodatnih funkcijah", + "MessageErrorLoadingSupporterInfo": "Pri nalaganju informacij Emby Premiere je prišlo do napake. Prosim poskusite kasneje.", + "ValueTimeLimitSingleHour": "Časovna omejitev: 1 ura", + "ValueTimeLimitMultiHour": "Časovna omejitev: {0} ur", + "General": "Splošno", + "HeaderScreenSavers": "Ohranjevalniki zaslona", + "Reporting": "Poročanje", + "LabelStopping": "Ustavljanje", + "HeaderSelectCertificatePath": "Izberite pot potrdila", + "HeaderSupporterBenefit": "Aktivna naročnina na Emby Premiere zagotavlja dodatne ugodnosti, kot so dostop do Emby DVR, medijev brez povezave, premium vtičnikov in več. {0}Več o tem{1}.", + "LabelAbortedByServerShutdown": "(Prekinjeno zaradi zaustavitve strežnika)", + "LabelScheduledTaskLastRan": "Nazadnje izvedeno {0}, trajalo je {1}.", + "HeaderDeleteTaskTrigger": "Izbriši sprožilec opravila", + "MessageDeleteTaskTrigger": "Ali ste prepričani, da želite izbrisati ta sprožilec opravila?", + "MessageNoPluginsDueToAppStore": "Za upravljanje vtičnikov uporabite spletno aplikacijo Emby.", + "LabelVersionInstalled": "{0} nameščeno", + "HeaderSelectServerCachePath": "Izberite pot predpomnilnika strežnika", + "HeaderSelectTranscodingPath": "Izberite začasno pot prekodiranja", + "HeaderSelectMetadataPath": "Izberite pot za metapodatke:", + "HeaderSelectServerCachePathHelp": "Prebrskajte ali vnesite pot, ki jo želite uporabiti za datoteke predpomnilnika strežnika. Mapa mora biti zapisljiva.", + "HeaderSelectTranscodingPathHelp": "Prebrskajte ali vnesite pot, ki jo želite uporabiti za prekodiranje začasnih datotek. Mapa mora biti zapisljiva.", + "HeaderSelectMetadataPathHelp": "Prebrskajte ali vnesite pot, v katero želite shraniti metapodatke. Mapa mora biti zapisljiva.", + "MessageConfirmRestart": "Ali zares želite ponovno zagnati strežnik Emby?", + "MessageConfirmShutdown": "Ali res želite zaustaviti Emby Server?", + "LabelLocalAccessUrl": "Dostop znotraj doma (LAN): {0}", + "LabelRemoteAccessUrl": "Oddaljeni dostop (WAN) : {0}", + "LabelRunningOnPort": "Deluje na vratih http {0}", + "LabelRunningOnPorts": "Deluje na vratih http {0} in vratih https {1}", + "LabelCurrentPath": "Trenutna pot", + "HeaderSelectMediaPath": "Izberite pot medijev", + "HeaderSelectPath": "Izberite pot", + "MessageDirectoryPickerInstruction": "Omrežne poti lahko vnesete ročno, če gumb Omrežje ne najde vaših naprav. Na primer {0} ali {1}.", + "MessageDirectoryPickerBSDInstruction": "Za BSD boste morda morali konfigurirati shrambo znotraj FreeNAS Jail, da boste Embyju dovolili dostop do nje.", + "MessageDirectoryPickerLinuxInstruction": "Za Linux na Arch Linux, CentOS, Debian, Fedora, OpenSuse ali Ubuntu morate uporabniku sistema Emby odobriti vsaj dostop za branje do vaših lokacij za shranjevanje.", + "MetadataManager": "Upravitelj metapodatkov", + "OptionBlockLiveTvChannels": "Programi televizije", + "OptionBlockChannelContent": "Vsebina internetnega programa", + "ButtonRevoke": "Prekliči", + "MessageConfirmRevokeApiKey": "Ali res želite preklicati ta ključ API? Povezava aplikacije s strežnikom Emby bo nenadoma prekinjena.", + "HeaderConfirmRevokeApiKey": "Prekliči ključ API", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Pred nadaljevanjem sprejmite pogoje storitve.", + "HeaderChangeFolderType": "Spremenite vrsto vsebine", + "HeaderChangeFolderTypeHelp": "Če želite spremeniti vrsto, odstranite in znova sestavite knjižnico z novo vrsto.", + "HeaderAlert": "Opozorilo", + "MessagePleaseRestart": "Za dokončanje posodabljanja znova zaženite.", + "OptionHomeVideos": "Domači posnetki in fotografije", + "OptionBooks": "Knjige", + "HeaderMetadataReaders": "Branje metapodatkov", + "LabelMetadataReadersHelp": "Omogočite in razvrstite svoje priljubljene lokalne vire metapodatkov po prednostnem vrstnem redu.", + "HeaderSubtitleDownloaders": "Prenos podnapisov", + "SubtitleDownloadersHelp": "Omogočite in razvrstite želene prenosnike podnapisov po prednostnem vrstnem redu. S katalogom vtičnikov Emby je mogoče namestiti več ponudnikov podnapisov.", + "LabelMetadataDownloaders": "Prenos metapodatkov", + "LabelMetadataDownloadersHelp": "Omogočite in razvrstite želene ponudnike metapodatkov po prednostnem vrstnem redu. Ponudniki z nižjo prioriteto bodo uporabljeni samo za vnos manjkajočih informacij.", + "HeaderMetadataSavers": "Shranjevalniki metapodatkov", + "LabelMetadataSaversHelp": "Izberite oblike datotek, v katere želite shraniti svoje metapodatke.", + "LabelImageFetchers": "Pridobivanje slik", + "LabelImageFetchersHelp": "Omogočite in razvrstite želene pridobivalnike slik po prednostnem vrstnem redu.", + "PersonTypePerson": "Oseba", + "HeaderRemoveMediaLocation": "Odstrani lokacijo medija", + "MessageConfirmRemoveMediaLocation": "Ali res želite odstraniti to lokacijo?", + "LabelNewName": "Novo ime", + "HeaderRemoveLibrary": "Odstrani knjižnico", + "MessageAreYouSureYouWishToRemoveLibrary": "Ali res želite odstraniti knjižnico »{0}« iz strežnika Emby? To ne bo vplivalo na vaše medijske datoteke.", + "ButtonRename": "Preimenuj", + "HeaderPluginInstallation": "Namestitev vtičnika", + "MessageTrialExpired": "Preizkusno obdobje te funkcije je poteklo", + "MessageTrialWillExpireIn": "Preizkusno obdobje za to funkcijo bo poteklo čez {0} dni", + "ValuePriceUSD": "Cena: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Registrirani ste za to funkcijo in jo boste lahko še naprej uporabljali z aktivno naročnino na Emby Premiere.", + "HeaderSelectExternalPlayer": "Izberite zunanji predvajalnik", + "HeaderExternalPlayerPlayback": "Predvajanje z zunanjim predvajalnikom", + "HeaderThankYou": "Hvala", + "HeaderSelectUploadPath": "Izberite pot nalaganja", + "ErrorMessageStartHourGreaterThanEnd": "Končni čas mora biti daljši od začetnega.", + "MessagePluginConfigurationRequiresLocalAccess": "Če želite konfigurirati ta vtičnik, se prijavite neposredno v lokalni strežnik.", + "MovieLibraryHelp": "Preglejte {0}vodnik za poimenovanje filmov Emby{1}.", + "TvLibraryHelp": "Oglejte si {0}vodnik za poimenovanje TV Emby{1}.", + "BookLibraryHelp": "Učbeniki so podprti. Preglejte {0}vodnik za poimenovanje knjige Emby{1}.", + "MessageGamePluginRequired": "Zahteva namestitev vtičnika GameBrowser", + "HeaderUnlockApp": "Odkleni aplikacijo", + "MessagePaymentServicesUnavailable": "Plačilne storitve trenutno niso na voljo. Prosim poskusite kasneje.", + "NoNewDevicesFound": "Ni novih naprav. Če želite dodati nov sprejemnik, zaprite to pogovorno okno in ročno vnesite informacije o napravi.", + "MessageConfirmDeleteTunerDevice": "Ali res želite izbrisati to napravo?", + "MessageConfirmDeleteGuideProvider": "Ali res želite izbrisati tega ponudnika EPG?", + "HeaderDeleteProvider": "Izbriši ponudnika", + "ErrorAddingTunerDevice": "Pri dodajanju TV sprejemnika je prišlo do napake. Prepričajte se, da je dostopen, in poskusite znova.", + "ErrorSavingTvProvider": "Pri shranjevanju ponudnika televizije je prišlo do napake. Prepričajte se, da je dostopen, in poskusite znova.", + "ErrorGettingTvLineups": "Pri prenosu televizijskih izborov je prišlo do napake. Preverite, ali so vaši podatki pravilni, in poskusite znova.", + "MessageCreateAccountAt": "Ustvarite račun pri {0}", + "ErrorPleaseSelectLineup": "Izberite postavo in poskusite znova. Če ni na voljo nobene postave, preverite, ali so vaše uporabniško ime, geslo in poštna številka pravilni.", + "ErrorValidatingSupporterInfo": "Pri preverjanju podatkov o Emby Premiere je prišlo do napake. Prosim poskusite kasneje.", + "LabelLocalSyncStatusValue": "Stanje: {0}", + "HeaderTopPlugins": "Najboljši vtičniki", + "ForAdditionalLiveTvOptions": "Brskajte po {0}katalogu vtičnikov{1} Emby, da namestite dodatne ponudnike televizije.", + "AddUser": "Dodaj uporabnika", + "HeaderEmailAddress": "Naslov e-pošte", + "NumLocationsValue": "{0} map/e", + "PleaseAddAtLeastOneFolder": "Dodajte vsaj eno mapo v to knjižnico s klikom na gumb Dodaj.", + "ErrorAddingMediaPathToVirtualFolder": "Pri dodajanju medijske poti je prišlo do napake. Prepričajte se, da je pot veljavna in da ima proces Emby Server dostop do te lokacije.", + "ErrorAddingEmbyConnectAccount3": "Račun Emby je že povezan z obstoječim lokalnim uporabnikom. Račun Emby je lahko povezan samo z enim lokalnim uporabnikom hkrati.", + "HeaderConfirmPluginInstallation": "Potrdite namestitev vtičnika", + "PleaseConfirmPluginInstallation": "Kliknite V redu, da potrdite, da ste prebrali zgoraj in želite nadaljevati z namestitvijo vtičnika.", + "MessagePluginInstallDisclaimer": "Vtičniki, ki so jih ustvarili člani skupnosti Emby, so odličen način za izboljšanje vaše izkušnje Emby z dodatnimi funkcijami in ugodnostmi. Pred namestitvijo se zavedajte učinkov, ki jih lahko imajo na vaš strežnik Emby, kot so daljši pregledi knjižnic, dodatna obdelava v ozadju in zmanjšana stabilnost sistema.", + "HardwareAccelerationWarning": "Omogočanje strojnega pospeševanja lahko povzroči nestabilnost v nekaterih okoljih. Prepričajte se, da so vaš operacijski sistem in video gonilniki popolnoma posodobljeni. Če imate po tem, ko ste to omogočili, težave s predvajanjem videa, boste morali nastavitev spremeniti nazaj na Samodejno.", + "ValueExample": "Primer: {0}", + "LabelFileOrUrl": "Datoteka ali URL", + "OptionEnableForAllTuners": "Omogoči za vse sprejemne naprave", + "HeaderTuners": "Sprejemna naprava", + "DrmChannelsNotImported": "Programi z DRM ne bodo uvoženi.", + "LabelAllowHWTranscoding": "Dovoli strojno prekodiranje", + "AllowHWTranscodingHelp": "Če je omogočeno, omogočite sprejemniku sprotno prekodiranje tokov. To lahko pomaga zmanjšati prekodiranje, ki ga zahteva strežnik Emby.", + "MetadataSettingChangeHelp": "Spreminjanje nastavitev metapodatkov bo vplivalo na novo vsebino, ki bo dodana v prihodnje. Če želite osvežiti obstoječo vsebino, odprite zaslon s podrobnostmi in kliknite gumb za osvežitev ali izvedite množične osvežitve z upraviteljem metapodatkov.", + "RecordingPathChangeMessage": "Če spremenite mapo za snemanje, obstoječih posnetkov ne boste preselili s stare lokacije na novo. Po želji jih boste morali premakniti ročno.", + "LabelLocalIpAddress": "Lokalni naslov IP", + "LabelBindToLocalNetworkAddressHelp": "Neobvezno. Preglasite lokalni naslov IP, ki ga bo strežnik Emby predstavil aplikacijam Emby. Če pustite prazno, bo strežnik samodejno zaznal lokalni naslov IP.", + "SettingsWarning": "Spreminjanje teh vrednosti lahko povzroči nestabilnost ali napake pri povezovanju. Če imate kakršne koli težave, priporočamo, da jih vrnete na privzete.", + "OptionSaveMetadataAsHiddenHelp": "Sprememba tega bo veljala za nove metapodatke, shranjene v prihodnje. Obstoječe datoteke z metapodatki bodo posodobljene naslednjič, ko jih shrani Emby Server.", + "EnablePhotos": "Omogoči fotografije", + "EnablePhotosHelp": "Fotografije bodo zaznane in prikazane skupaj z drugimi mediji.", + "ImportPlaylists": "Uvoz seznama predvajanja", + "ImportPlaylistsHelp": "Sezname predvajanja, ki jih najdete v vaših mapah, lahko uvozite v Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Shranite sličice predogleda videa skupaj z mediji", + "LabelGenerateVideoPreviewThumbnails": "Ustvari sličice za predogled videa", + "LabelEnableDebugLogging": "Omogoči beleženje odpravljanja napak", + "OptionEnableExternalContentInSuggestions": "Omogoči zunanjo vsebino v predlogih", + "OptionEnableExternalContentInSuggestionsHelp": "Dovolite vključitev internetnih napovednikov in televizijskih programov v živo med predlagano vsebino.", + "LabelOptionalNetworkPath": "(Izbirno) Omrežna mapa v skupni rabi", + "LabelOptionalNetworkPathHelp": "Če je ta mapa v skupni rabi v vašem omrežju, lahko navedba poti za skupno rabo omrežja omogoči aplikacijam Emby v drugih napravah neposreden dostop do medijskih datotek.", + "SynologyUpdateInstructions": "Za posodobitev se prijavite v DSM in pojdite v Center za pakete.", + "HeaderRecordingPostProcessing": "Naknadna obdelava snemanja", + "LabelPostProcessorArguments": "Argumenti ukazne vrstice postprocesorja", + "PostProcessorArgumentsHelp": "V ukazni vrstici so podprte naslednje spremenljivke, ki omogočajo posredovanje podatkov vašemu postprocesorju", + "LabelPostProcessor": "Aplikacija za naknadno obdelavo", + "DvrPostProcessorPathArgument": "{path}: Celotna pot do nove snemalne datoteke", + "OptionAutomaticallyGroupSeries": "Samodejno združi serije, ki so razporejene po več mapah", + "OptionAutomaticallyGroupSeriesHelp": "Če je omogočeno, bodo serije, ki so razporejene po več mapah v tej knjižnici, samodejno združene v eno samo serijo.", + "WhenDidYouPurchaseApp": "Kdaj ste prvotno kupili to aplikacijo?", + "PreferEmbeddedTitlesOverFileNames": "Dajte prednost vdelanim naslovom kot imenom datotek", + "PreferEmbeddedTitlesOverFileNamesHelp": "To določa privzeti naslov za prikaz, ko internetni metapodatki ali lokalni metapodatki niso na voljo.", + "FriendlyNameForReferenceHelp": "Prijazno ime, ki se uporablja za prikaz, za lastno referenco.", + "HeaderLiveTvTunerSetup": "Nastavitev sprejemnika televizije", + "HeaderTVSourceSetup": "Nastavitev TV vira", + "HeaderDetectMyDevices": "Zaznavanje naprav", + "MessagePleaseWait": "Prosim, počakajte. To lahko traja nekaj minut.", + "DetectingDevices": "Zaznavanje naprav", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Po začetnem uvozu samodejno osveži metapodatke iz interneta", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Samodejno osveži metapodatke za epizode z nadomestnimi naslovi, kot je TBA", + "EveryNDays": "Vsakih {0} dni", + "LabelCertificatePassword": "Geslo za potrdilo", + "LabelCertificatePasswordHelp": "Če vaše potrdilo zahteva geslo, ga vnesite tukaj.", + "HeaderNewLibrary": "Nova knjižnica", + "HttpsRequiresCert": "Če želite omogočiti varne povezave, boste morali zagotoviti zaupanja vredno potrdilo SSL, kot je Lets Encrypt. Priskrbite potrdilo ali onemogočite varne povezave.", + "ServerRestartNeededAfterPluginInstall": "Po namestitvi vtičnika bo treba strežnik Emby znova zagnati.", + "PluginInstalledMessage": "Vtičnik je bil uspešno nameščen. Strežnik Emby bo treba znova zagnati, da bodo spremembe začele veljati.", + "MessagePremiereStatusGood": "Imate naročnino Emby Premiere {0} in število naprav je v skladu z vašo omejitvijo.", + "MessagePremiereStatusClose": "Imate naročnino Emby Premiere {0} vendar je število naprav blizu vaše omejitve.", + "MessagePremiereExtendedPlans": "Razmislite o {0}razširjenem paketu naprav{1}", + "MessagePremiereStatusOver": "Imate naročnino Emby Premiere {0} vendar je število naprav preseglo vašo omejitev.", + "ListItemPremiereSub": "Naročnina na {0}, kupljena prek {2}, poteče {1}", + "LabelClickToManage": "Kliknite za upravljanje te naročnine", + "LabelCancelInfo": "To naročnino lahko upravljate neposredno pri {0}", + "LabelAlreadyCanceled": "Ta naročnina je bila preklicana. Ključ bo veljaven do izteka.", + "HeaderCancelSub": "Prekliči Emby Premiere", + "MessageConfirmSubCancel": "NE, prosim, ne odidite. Zamudili boste vse odlične funkcije Emby Premiere!", + "ButtonCancelSub": "Vem, vseeno prekliči", + "ButtonDontCancelSub": "Obdrži Emby Premiere", + "MessageSubCancelReqSent": "E-poštno sporočilo je bilo poslano lastniku ključa. Sledite navodilom v tem e-poštnem sporočilu, da dokončate preklic te naročnine. Upamo, da se kmalu spet vidimo!", + "MessageSubCancelError": "Pri preklicu je šlo nekaj narobe. Prosimo, pošljite e-pošto na {0} in bomo uredili.", + "LabelAlreadyCancelled": "Ta naročnina je bila preklicana. Ne bomo vam več zaračunali, vendar bodo funkcije delovale do zgornjega datuma.", + "AllowOnTheFlySubtitleExtraction": "Omogoči sprotno ekstrakcijo podnapisov", + "AllowOnTheFlySubtitleExtractionHelp": "Vdelane podnapise je mogoče izvleči iz videoposnetkov in dostaviti aplikacijam Emby v navadnem besedilu, da preprečite prekodiranje videa. V nekaterih sistemih lahko to traja dolgo časa in povzroči zaustavitev predvajanja videa med postopkom ekstrakcije. Onemogočite to, če želite, da se vdelani podnapisi vžgejo s transkodiranjem videa, če jih odjemalska naprava ne podpira izvorno.", + "AllowOnTheFlyFontExtraction": "Omogočite sprotno pridobivanje pisave podnapisov", + "AllowOnTheFlyFontExtractionHelp": "Vdelane pisave je mogoče ekstrahirati iz videoposnetkov in dostaviti aplikacijam Emby, da podpirajo videoposnetke, ki vsebujejo pisave po meri. V nekaterih sistemih lahko to traja dolgo časa in povzroči zastoj predvajanja videa med postopkom ekstrakcije.", + "EnableDebugLoggingHelp": "Beleženje odpravljanja napak bi moralo biti omogočeno le, če je potrebno za odpravljanje težav. Povečan dostop do datotečnega sistema lahko prepreči, da bi strežniški stroj v nekaterih okoljih spal.", + "LabelSimultaneousConnectionLimit": "Omejitev hkratnih tokov", + "SimultaneousConnectionLimitHelp": "Največje dovoljeno število istočasnih tokov. Vnesite 0 za brez omejitev.", + "LaunchWebAppOnStartup": "Odpri spletno aplikacijo Emby v mojem spletnem brskalniku, ko se zažene Emby Server", + "LaunchWebAppOnStartupHelp": "To bo odprlo spletno aplikacijo v vašem privzetem spletnem brskalniku, ko se prvotno zažene Emby Server. To se ne bo zgodilo pri uporabi funkcije ponovnega zagona strežnika.", + "LabelReferrerHeader": "HTTP glava napotitelja", + "LabelUserAgentHeader": "HTTP glava uporabniškega agenta", + "SupplyCustomValueIfNeeded": "Po potrebi navedite vrednost glave http po meri.", + "HeaderConfigureRemoteAccess": "Konfigurirajte oddaljeni dostop", + "LearnHowToCreateSynologyShares": "Naučite se deliti mape v Synology.", + "LabelAllowedRemoteAddresses": "Filter oddaljenega naslova IP", + "LabelAllowedRemoteAddressesMode": "Način filtriranja oddaljenega naslova IP", + "Whitelist": "Seznam dovoljenih", + "Blacklist": "Črni seznam", + "AllowedRemoteAddressesHelp": "Seznam naslovov IP ali vnosov IP/omrežne maske, ločenih z vejicami, za omrežja, ki jim bo ali ne bo dovoljena povezava na daljavo. Če pustite prazno, bodo dovoljeni vsi oddaljeni naslovi.", + "LabelLanNetworks": "Omrežja LAN", + "LanNetworksHelpText": "Z vejicami ločen seznam naslovov IP ali vnosov IP/omrežne maske za omrežja, ki bodo upoštevana v lokalnem omrežju pri uveljavljanju omejitev pasovne širine in oddaljenega dostopa. Če je nastavljeno, se bo za vse druge naslove IP štelo, da so v zunanjem omrežju. Če pustite prazno, se šteje, da so v lokalnem omrežju samo podomrežje strežnika in pogosta zasebna podomrežja IP (192.168.0.0/24, 172.16.0.0/12 itd.).", + "LabelSecureConnectionsMode": "Način varne povezave", + "PreferredNotRequired": "Zaželeno, vendar ni obvezno", + "RequiredForAllRemoteConnections": "Obvezno za vse oddaljene povezave", + "HandledByProxy": "Obravnava obratni proxy", + "SaveSubtitlesIntoMediaFolders": "Shrani podnapise skupaj z mediji", + "SaveSubtitlesIntoMediaFoldersHelp": "Shranjevanje podnapisov poleg medijev bo omogočilo njihovo lažje upravljanje.", + "AutomaticSubtitleDownloadInstructions": "Če želite upravljati samodejni prenos podnapisov, kliknite knjižnico v nastavitvah knjižnice Emby in uredite nastavitve prenosa podnapisov za to knjižnico.", + "ProviderNeedsSetupWithUrl": "{0} zahteva dodatno nastavitev na {1} zaslonu z nastavitvami{2} v strežniku Emby.", + "LabelEnableHardwareAcceleration": "Omogoči strojno pospeševanje, ko je na voljo", + "HeaderPreferredHardwareDecoders": "Prednostni strojni dekoderji", + "HeaderPreferredHardwareEncoders": "Prednostni strojni kodirniki", + "AllowChangingImageAndPassword": "Omogoči temu uporabniku spreminjanje gesla in slike profila", + "LabelSimultaneousStreamLimit": "Največje število istočasnih video tokov", + "SimultaneousStreamLimitHelp": "Omejite število sočasnih sej predvajanja videa.", + "LabelMusicFolderStructure": "Struktura glasbene mape", + "LabelMusicFolderStructureHelp": "To skenerju knjižnice daje namig o tem, kako so vaše mape organizirane. Če niste prepričani ali če se vaše mape ne ujemajo natančno z eno od možnosti, izberite privzeto možnost Drugo.", + "OtherOrUnstructured": "Drugo ali nestrukturirano", + "PerfectArtistAlbumTrack": "Popolnoma organiziran v mape izvajalec\\album, s skladbami neposredno v mapah albumov.", + "PerfectAlbumTrack": "Popolnoma organiziran v mape albumov, s skladbami neposredno v mapah albumov.", + "LabelMinCollectionSize": "Najmanjša velikost samodejne zbirke", + "PerfectAuthorAudioBookTrack": "Popolnoma organiziran v mape avtor/knjiga, z datotekami neposredno v mapah knjig.", + "PerfectAudioBookTrack": "Popolnoma organiziran v knjižne mape, z datotekami neposredno v knjižnih mapah.", + "MinCollectionSizeHelp": "Samodejno ustvarite zbirke, ko imate v knjižnici vsaj izbrano število naslovov. Spreminjanje te vrednosti ne bo vplivalo na obstoječe zbirke.", + "LabelImportCollections": "Uvozite informacije o zbirki od ponudnikov metapodatkov", + "LabelImportCollectionsHelp": "Ko je omogočeno, bo to uvozilo informacije o zbirki iz omogočenih ponudnikov metapodatkov. To lahko povzroči samodejno ustvarjanje neželenih zbirk. Onemogočanje bo preprečilo samodejno ustvarjanje prihodnjih zbirk, ne bo pa izbrisalo obstoječih.", + "LabelAllowAdultMetadata": "Dovoli metapodatke vsebine za odrasle", + "LabelAllowAdultMetadataHelp": "Dovoli ujemanje z naslovi vsebine za odrasle pri iskanju metapodatkov.", + "HeaderVideoPreviewThumbnails": "Sličice predogleda videa", + "LabelEnableHDRToneMapping": "Omogoči tonsko preslikavo HDR", + "EnableHDRToneMappingHelp": "Preslikava tonov bo zagotovila pravilno pretvorbo barv pri prekodiranju vsebine HDR, ki bo sicer videti zelo zatemnjena in nenasičena. Morda bodo potrebne dodatne komponente gonilnika za podporo pospeševanja strojne opreme z omogočeno to funkcijo. Za podrobnosti si oglejte naš vodnik za namestitev strojnega pospeševanja.", + "WithHardwareAcceleratedTranscoding": "Da, samo s strojnim pospeševanjem\t", + "TranscodingStillInitializing": "Storitve za prekodiranje strežnika Emby so še vedno zasedene. Ta zaslon se bo samodejno osvežil, ko bodo storitve za prekodiranje pripravljene.", + "WithEitherHardwareOrSoftwareTranscoding": "Da, s strojnim ali programskim prekodiranjem", + "ToneMappingInHardwareDescription": "Preslikava tonov bo izvedena s strojnim pospeševanjem, ko je to omogočeno in podprto s strojno opremo, in preskočeno v vseh drugih primerih.", + "ToneMappingInSoftwareDescription": "Tonska preslikava bo izvedena v programski opremi. To je veliko počasneje kot strojno pospešena preslikava tonov in bo zahtevalo zelo zmogljiv računalnik.", + "ToneMappingInBothDescription": "Preslikava tonov bo izvedena s strojnim pospeševanjem, ko bo to omogočeno in podprto s strojno opremo, v vseh drugih primerih pa bo uporabljena programska oprema. Preslikava tonov v programski opremi je veliko počasnejša od strojno pospešene preslikave tonov in bo zahtevala zelo zmogljiv strežniški stroj.", + "AutoMapped": "Povezano samodejno", + "ManuallyMapped": "Povezano ročno", + "NotMappedToGuideData": "Ni povezano z EPG", + "MappedToValue": "Povezano z {0}", + "LabelAutomaticallyWakeServerForRecordings": "Samodejno zbudi strežnik za snemanje", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Dogodki bujenja bodo načrtovani z operacijskim sistemom strežnika. Če onemogočite to možnost, boste preprečili načrtovanje prihodnjih dogodkov bujenja, vendar ne boste odstranili predhodno načrtovanih dogodkov.", + "Database": "Baza podatkov", + "LabelOptimizeDatabaseOnShutdown": "Poskusi optimizirati bazo podatkov ob zaustavitvah strežnika", + "LabelOptimizeDatabaseOnShutdownHelp": "Operacija optimizacije baze podatkov je običajno no-op, vendar bo občasno zagnala analizo, če se zdi, da bo to koristno za načrtovalca poizvedb. To lahko povzroči, da bo zaustavitev strežnika Emby trajala dlje.", + "LabelDatabaseCacheSize": "Velikost predpomnilnika zbirke podatkov (MB)", + "LabelDatabaseCacheSizeHelp": "Nastavi količino podatkov, ki jih bo baza podatkov hranila v pomnilniku hkrati, na datoteko baze podatkov. Večja vrednost lahko pomaga izboljšati zmogljivost strežnika Emby. Za uveljavitev je potreben ponovni zagon strežnika.", + "LabelDatabaseAnalysisLimit": "Omejitev vrstice analize", + "LabelDatabaseAnalysisLimitHelp": "Ko je baza podatkov optimizirana, je to približno število vrstic, pregledanih v vsakem indeksu z ukazom ANALYZE. Večja vrednost bo povečala učinkovitost optimizacije baze podatkov, vendar lahko povzroči, da bo zaustavitev strežnika Emby trajala dlje.", + "LabelVacuumDb": "Posesajte bazo podatkov ob naslednjem zagonu strežnika Emby", + "LabelVacuumDbHelp": "Ukaz 'vacuum' ponovno zgradi datoteko baze podatkov in jo prepakira v minimalno količino prostora na disku. V nekaterih primerih lahko to izboljša zmogljivost strežnika Emby. Upoštevajte, da vaš strežnik Emby med sesanjem ne bo mogoč za uporabo, niti ne bo mogoče spremljati napredka sesanja. V tem času se izogibajte prisilnemu zapiranju procesa strežnika Emby Server, ker lahko povzroči poškodbo baze podatkov. To je enkratna operacija in ta možnost se ob naslednjem zagonu strežnika vrne na nepreverjeno.", + "AdvancedOptionsWarning": "To so napredne možnosti in jih na splošno pustite privzete, razen če imate razlog, da jih spremenite.", + "HeaderRecentlyActiveDevices": "Nedavno aktivne naprave", + "YesUntilServerRestart": "Da, do naslednjega ponovnega zagona strežnika", + "YesUntilLogRotate": "Da, do naslednje rotacije dnevniške datoteke", + "LabelSubtitleDownloadMaxAge": "Ne poskušaj samodejno prenesti podnapisov za videoposnetke, starejše od", + "SubtitleDownloadMaxAgeHelp": "To temelji na dodani vrednosti metapodatkov o datumu.", + "NoAgeLimit": "Brez starostne omejitve", + "AnonymizeLogContents": "Anonimiziraj vsebino dnevnika", + "Markers": "Markerji", + "LabelGenerateIntroVideoMarkers": "Ustvari oznake uvoda", + "GenerateIntroVideoMarkersHelp": "Zazna uvod in prikaže gumb »Preskoči uvod« v aplikacijah Emby. Zaznavanje uvoda lahko traja dolgo in povzroči visoko porabo procesorja ali diska.", + "LabelCopyFromUser": "Kopiraj nastavitve od uporabnika", + "CopyFromUserHelp": "Neobvezno. Pospešite ustvarjanje novega uporabnika s kopiranjem informacij obstoječega uporabnika.", + "UserPolicy": "Uporabniški pravilnik (dostop do knjižnice in funkcij, starševski nadzor itd.)", + "UserConfiguration": "Uporabniška konfiguracija (prednostni jeziki zvoka in podnapisov, vrstni red knjižnice itd.)", + "UserDataAndDescription": "Uporabniški podatki (priljubljene, stanja gledanja in poslušanja itd.)", + "HeaderCopyOptions": "Možnosti kopiranja", + "LabelMultiRestrictionMode": "Način večkratne omejitve", + "MultiRestrictionModeAll": "Dovoli vsebino, ki se ujema z omejitvami ocene in oznake", + "MultiRestrictionModeAny": "Dovoli vsebino, ki se ujema z omejitvami ocene ali oznake", + "AllowMappingByChannelNumber": "Dovoli povezavo z EPG z uporabo programskih mest", + "AllowMappingByChannelNumberHelp": "To lahko uporabite kot nadomestno možnost za ujemanje kanalov sprejemnika s podatki EPG, kadar koli ujemanja ni mogoče najti na podlagi imena programa. To lahko povzroči netočno ujemanje, če programska mesta iz sprejemnika niso pravilne.", + "LabelPreferredSourceForChannelLogos": "Dajte prednost logotipom programov iz podatkov EPG namesto sprejemnika, če sta oba na voljo", + "LabelPreferredSourceForChannelNumbers": "Dajte prednost programskim mestom iz podatkov EPG namesto sprejemnika, če jih imata oba na voljo", + "HeaderSoftwareEncoders": "Programski kodirniki", + "LabelProxyHeaderMode": "Preberite glave strežnika proxy, da določite naslove IP odjemalca", + "ProxyHeadersRemoteOnly": "Samo, če vsebujejo oddaljene omrežne naslove", + "ProxyHeaderModeHelp": "Določa, ali naj se glave zahtev, kot sta {0} in {1}, uporabijo za določitev naslova IP povezovalnih naprav.", + "AllowCameraUpload": "Dovoli nalaganje fotoaparata", + "AllowCameraUploadHelp": "Če je dovoljeno in če je omogočeno v mobilnih aplikacijah Emby, lahko uporabniki samodejno naložijo fotografije in videoposnetke, posnete s svojim fotoaparatom, v ta strežnik Emby", + "CameraUploadMustBeGranted": "Skrbnik strežnika vam mora odobriti tudi dostop do nalaganja fotoaparata.", + "EnableReadingAndWritingPeopleMetadata": "Omogoči branje in pisanje datotek z metapodatki o osebah", + "EnableReadingAndWritingPeopleMetadataHelp": "Zahteva namestitev vtičnika Nfo Metadata. To bo omogočilo shranjevanje urejanj vaših oseb v metapodatkovne datoteke nfo, vendar bo imelo za posledico daljše pregledovanje knjižnic.", + "LabelIgnoreSampleFiles": "Prezri datoteke, ki vsebujejo besedo sample v imenu datoteke, če je njihova velikost manjša od (MB)", + "PreferredChannelImageSource": "Prednostni vir slik programov:", + "PreferredChannelImageSourceHelp": "Izberite želeno sliko programa, ko je na voljo tako prek TV sprejemnika kot prek podatkov TV vodnika.", + "CacheImagesInServerData": "Hranite predpomnjeno kopijo slik v strežnikovi mapi metapodatkov", + "CacheImagesInServerDataHelp": "Če so vaši mediji in slike shranjeni na drugem računalniku, bo hramba predpomnjene kopije slik v mapi z metapodatki strežnika zmanjšala dostop do omrežja in lahko izboljšala zmogljivost. Cena ustvarjanja tega predpomnilnika je, da bodo pregledi knjižnic počasnejši in da bo mapa z metapodatki strežnika zavzela bistveno več prostora na disku.", + "AllowSharingPersonalContent": "Dovoli skupno rabo osebne vsebine, kot so seznami predvajanja, z drugimi uporabniki na tem strežniku", + "AllowSharingPersonalContentHelp": "Če je odobreno, bo ta uporabnik lahko svoje sezname predvajanja delil z drugimi uporabniki. Elementi seznama predvajanja bodo še vedno omejeni na podlagi uporabniškega dostopa do knjižnice in starševskega nadzora.", + "LiveBufferSizeHours": "Omejitev velikosti medpomnilnika za pretočno predvajanje v živo (ure)", + "LiveBufferSizeHoursHelp": "Daljši medpomnilnik bo zagotovil večjo zmožnost iskanja naprej in nazaj med pretakanjem v živo, vendar bo porabil več prostora na disku.", + "LabelTranscodingMaxResolution": "Največja ločljivost prekodiranja", + "TranscodingMaxResolutionHelp": "Nastavite zgornjo mejo, ki bo veljala za vsa video prekodiranja, ne glede na nastavitev kakovosti v predvajalniku Emby. To bo pomagalo zmanjšati vire, ki jih porabijo procesi prekodiranja strežnika.", + "EnableHevcEncodingExp": "Omogoči video kodiranje HEVC (poskusno)", + "EnableHevcEncodingHelp": "Omogoči prekodiranje s kodekom HEVC, če ga odjemalec podpira.", + "LabelEnableMultiPartItems": "Omogoči večdelne elemente", + "EnableMultiPartItemsHelp": "Samodejno zazna in združi datoteke, ki so poimenovane kot del 1, del 2 itd. Dodatni deli bodo prikazani na glavnem zaslonu s podrobnostmi za element.", + "MultiVersionItemsDetectionHelp": "Samodejno zazna in združi različne različice istega elementa. Izbira različice bo ponujena na glavnem zaslonu s podrobnostmi za predmet. Združevanje na podlagi datotek zahteva ustrezno poimenovanje in organiziranje datotek.", + "MultiVersionMoviesDetectionHelp": "Združevanje na podlagi metapodatkov bo združilo filme z enakimi zunanjimi ID-ji (MovieDb, Imdb itd.).", + "EnableMultiPartItemsTVHelp": "Ni podprto za epizode TV-oddaj.", + "HeaderAutomaticGrouping": "Samodejno združevanje", + "LabelMultiVersionItemsDetection": "Zaznavanje elementov z več različicami", + "MultiVersionItemsDetectionBoth": "Zaznavanje elementov z več različicami na podlagi datotek in metapodatkov", + "MultiVersionItemsDetectionFiles": "Zaznavanje elementov z več različicami na podlagi datotek", + "MultiVersionItemsDetectionMetadata": "Odkrivanje elementov z več različicami na podlagi metapodatkov", + "LabelNetworkRequestProtocol": "Protokol omrežne zahteve", + "NetworkRequestProtocolHelp": "Izberite protokol za uporabo za odhodne omrežne zahteve ponudnikom metapodatkov in drugim storitvam. V nekaterih primerih, ko zunanjih storitev ni mogoče doseči z IPv6, boste morda morali to nastaviti samo na IPv4.", + "GenerateChaptersForVideos": "Ustvari poglavja za videoposnetke, ki ne vsebujejo vdelanih informacij o poglavjih", + "GeneratedChapterInterval": "Interval ustvarjenih poglavij", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/sq.json b/strings/sq.json new file mode 100644 index 0000000..b9dd1e0 --- /dev/null +++ b/strings/sq.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Mbarove!", + "ThisWizardWillGuideYou": "Kjo procedurë do t’ju ndihmojë me proçesin e instalimit të Emby Server.", + "HeaderCreateYourFirstUser": "Krijo Përdoruesin Tënd Të Parë", + "ButtonQuickStartGuide": "Udhëzues Për Nisje Të Shpejtë", + "MoreUsersCanBeAddedLater": "Më shumë përdorues mund të shtohen më vonë tek parametrat e Emby Server.", + "UserProfilesIntro": "Emby përfshin profile përdoruesish të ndryshëm, duke mundësuar çdo përdorues të ketë parametra e tij të ekranit, pozicionimin e riprodhimit video/audio dhe kontrolle prindërore personale.", + "WizardCompleted": "Kaq na duhet për tani. Emby ka filluar të skanojë bibliotekën tënde multimediale. Kontrollo disa nga app-et tona, dhe pastaj kliko Përfundo për të parë Kuadër Kontrolli.", + "MessagePleaseAcceptTermsOfService": "Të lutem prano kushtet e përdorimit dhe politikën e privatësisë para se të vazhdosh.", + "OptionIAcceptTermsOfService": "Pranoj kushtet e përdorimit", + "SeeOurHwaGuide": "Shiko {0}udhëzues instalimi përshpejtim i hardware{1}.", + "HeaderEmbyServerReleaseNotes": "Shënimet e Versionit të Emby Server", + "AllowSubtitleDownloading": "Lejo shkarkimin e titrave", + "AllowSubtitleManagement": "Lejo fshirjen e titrave ekzistuese", + "NewUserNameHelp": "Përdoruesi do të shfaqet kështu në serverin tënd.", + "ChapterMarkers": "Shënuesit e kapitullit", + "LabelThumbnailImagesInterval": "Intervali i pamjeve thumbnail", + "ThumbnailImagesIntervalHelp": "Pamje thumbnail të shpeshta krijojnë një eksperiencë më të mirë, por kërkojnë më shumë hapësirë disku dhe kohë për të krijuar këto pamje.", + "LabelAuthProvider": "Furnizues vërtetimi", + "AuthProviderHelp": "Administratorë, përdorni gjithmonë furnizuesin e parazgjedhur të Emby për të mos u kyçur kurrë jashtë.", + "HeaderNewUser": "Përdorues i Ri", + "ChangeServerDisplayName": "Ndrysho Emrin e Serverit në Ekran", + "ShowAdvancedSettings": "Shfaq parametrat e përparuara", + "ChangingMetadataImageSettingsNewContent": "Ndryshimet e parametrave të shkarkimit të metadatave ose grafikave do t’i aplikohen vetëm përmbajtjeve të reja të shtuara në bibliotekën tënde. Për t’i aplikuar ndryshimet edhe titujve ekzistues, do t’ju duhet të rifreskoni metadatat e tyre manualisht.", + "AllowRemoteAccess": "Lejo lidhjet në distancë me këtë Emby Server.", + "AllowRemoteAccessHelp": "Nëqoftëse lihet e pazgjedhur, të gjitha lidhjet në distancë do të bllokohen.", + "Alerts": "Alarme", + "LabelTrackTitleDisplay": "Shfaq titullin e ngulitur të këngës/videos", + "GenerateUserFriendlyTrackTitles": "Gjenero tituj të thjeshtë duke përdorur informacionin e këngës/videos", + "PreferOriginalTrackTitles": "Prefero titujt e ngulitur", + "TrackTitleDisplayHelp": "Zgjidh titullin e audios dhe titrave të ngulitur që do të shfaqen në ekran. Preferimi i të nguliturave nuk rekomandohet përveç se kur jeni duke kuruar informacionin e ngulitur të këngës/videos.", + "EnableTranscodingThrottle": "Aktivizo throttling", + "EnableTranscodingThrottleHelp": "Emby do të rregullojë në mënyrë dinamike shpejtësinë e transkodimit në mënyrë që të reduktojë përdorimin e CPU.", + "HeaderTypeMetadataDownloaders": "Shkarkuesit e Metadatave për {0}", + "HeaderTypeImageFetchers": "Prurës Imazhesh për {0}", + "HeaderImageOptions": "Opsionet e Imazheve", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Regjistrohu me PayPal", + "LabelSyncTempPath": "Shtegu i përkohshëm i file-it", + "LabelSyncTempPathHelp": "Specifiko një folder personal funksional. Media e konvertuar që krijohet gjatë proçesit të konvertimit do të magazinohet këtu.", + "LabelCustomCertificatePath": "Shteg personal çertifikata ssl", + "LabelCustomCertificatePathHelp": "Shtegu për tek një file PKCS #12 me përmbajtje çertifikate dhe çelësi personal për të aktivizuar suportin TLS në një domen të personalizuar.", + "HeaderSetupLibrary": "Instalo Biblotekat Multimediale", + "LabelTimeLimitHours": "Limit kohe (në orë)", + "HeaderPreferredMetadataLanguage": "Gjuha e Preferuar për Metadatat", + "LabelSaveLocalMetadata": "Ruaj grafikën brenda dosjes së medias", + "LabelSaveLocalMetadataHelp": "Ruajtja e grafikës brenda dosjes së medias do të vendosë imazhet përkrah media file-ve ku mund të aksesohen lehtësisht jashtë Emby-t. Nëse çaktivizohet, imazhet do të ruhen në dosjen e metadatave të serverit.", + "TabAccess": "Akses", + "HeaderDeviceAccess": "Akses i Pajisjes", + "OptionEnableAccessFromAllDevices": "Aktivizo aksesin nga çdo pajisje", + "OptionEnableAccessToAllChannels": "Aktivizo aksesin në të gjitha kanalet", + "OptionEnableAccessToAllLibraries": "Aktivizo aksesin në të gjitha bibliotekat", + "DeviceAccessHelp": "Filtrimi i aksesit të pajisjes nga përdoruesit do t’i parandalojë të përdorin pajisjet e reja derisa ata të jenë aprovuar këtu.", + "LabelDisplayMissingEpisodesWithinSeasons": "Shfaq episodet që mungojnë brenda sezoneve", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Kjo duhet aktivizuar edhe për bibliotekat televizive në konfigurimin e Emby Server.", + "ImportMissingEpisodesHelp": "E aktivizuar, do të importojë informacionet mbi episodet munguese në databazën e Emby dhe do t’i shfaqë brenda sezoneve dhe serialeve. Kjo mund të shkaktojë skanime shumë më të gjata të bibliotekave.", + "MessageEnablingOptionLongerScans": "Aktivizimi i këtij opsioni mund të rezultojë në skanime shumë më të gjata të bibliotekave.", + "LabelMaxParentalRating": "Kontrolli prindëror maksimal i lejuar", + "MaxParentalRatingHelp": "Përmbajtja me klasifikim më të lartë do të fshehet nga ky përdorues.", + "LibraryAccessHelp": "Zgjidh dosjet e medias që do të ndash me këtë përdorues. Administratorët do të jenë të aftë të redaktojnë të gjitha dosjet me anë të menaxhuesit të metadatave.", + "ChannelAccessHelp": "Zgjidh kanalet që do të ndash me këtë përdorues. Administratorët do të jenë të aftë të redaktojnë të gjitha kanalet me anë të menaxhuesit të metadatave.", + "ImageUploadAspectRatioHelp": "1:1 Raport i Pamjes i Rekomanduar. Vetëm JPG/PNG.", + "AlreadyPaidHelp1": "Nëse keni paguar instalimin e një versioni më të vjetër të Media Browser për Android, nuk nevojitet të paguani përsëri për të aktivizuar këtë app. Kliko OK për të na dërguar një emai në {0} dhe do ta aktivizojmë ne për ty.", + "AlreadyPaidHelp2": "Ke Emby Premiere? Thjesht anullo këtë dialog, konfiguro Emby Premiere në Kuadrin e Kontrollit të Emby Server duke shkuar në Ndihmë -> Emby Premiere, dhe do të zhbllokohet automatikisht.", + "TabMyPlugins": "Plugin-et e mija", + "TabCatalog": "Katalog", + "HeaderAutomaticUpdates": "Përditësime Automatike", + "Standard": "Standart", + "TabSupporterKey": "Çelësi Emby Premiere", + "OptionHideUserLocal": "Fshihe këtë përdorues nga ekranet e hyrjes në rrjetin lokal", + "OptionHideUserRemote": "Fshihe këtë përdorues nga ekranet e hyrjes kur je i lidhur në distancë", + "OptionHideUserFromLoginHelp": "I dobishëm për llogari private apo të fshehura të administratorit. Përdoruesi duhet të hyjë manualisht duke futur emrin e përdoruesit dhe fjalëkalimin.", + "HideFromUnusedDevices": "Fshihe këtë përdorues nga ekranet e hyrjes të pajisjeve ku nuk kanë hyrë kurrë", + "OptionDisableUser": "Çaktivizo këtë përdorues", + "OptionDisableUserHelp": "I çaktivizuar, ky përdorues nuk do të jelohet të lidhet me serverin. Lidhjet ekzistuese do të ndërpriten menjëherë.", + "OptionAllowUserToManageServer": "Lejo këtë përdorues të menaxhojë serverin", + "HeaderFeatureAccess": "Akses Filmi", + "OptionAllowMediaPlayback": "Lejo riprodhimin e medias", + "AllLibraries": "Të gjitha bibliotekat", + "HeaderAllowMediaDeletionFrom": "Lejo Fshirjen e Medias Nga", + "LiveTVRecordingManagement": "Menaxhim i Regjistrimit të Live TV", + "OptionAllowRemoteControlOthers": "Lejo kontrollin në distancë të përdoruesve të tjerë", + "OptionAllowRemoteSharedDevices": "Lejo kontrollin në distancë të pajisjeve të bashkë-ndara", + "OptionAllowRemoteSharedDevicesHelp": "Pajisja Dlna konsiderohet e bashkë-ndarë deri në momentin kur një përdorues merr në dorë kontrollin e saj.", + "OptionAllowLinkSharing": "Lejo bashkë-ndarjen me social media", + "OptionAllowLinkSharingHelp": "Vetëm faqet e internetit me informacione mbi median do të bashkë-ndahen. Skedat e mediave nuk bashkë-ndahen kurrë publikisht. Bashkë-ndarjet janë të përkohshme dhe do të skadojnë pas {0} ditësh.", + "OptionRelease": "Publikim Zyrtar", + "LabelAllowServerAutoRestartPlugin": "Lejo serverin të riniset automatikisht për të aplikuar përditësimet e plugin-it", + "LabelAllowServerAutoRestartServerOrPlugin": "Lejo serverin të riniset automatikisht për të aplikuar përditësimet e serverit apo të plugin-it", + "LabelAllowServerAutoRestartHelp": "Serveri do të riniset vetëm gjatë periudhave boshe, kur asnjë përdorues është aktiv.", + "LabelRunServerAtStartup": "Ekzekuto serverin në nisje", + "LabelRunServerAtStartupHelp": "Kjo do të aktivizojë ikonën e Emby në nisjen e Windows. Nëse ke instaluar një shërbim për Windows , lëre të pa seleksionuar dhe konfiguro shërbimin që të ekzekutohet në nisje.", + "ButtonSelectDirectory": "Zgjidh Directory", + "LabelCachePath": "Shtegu i cache", + "DefaultMetadataLangaugeDescription": "Këto janë parametrat e tu të parazgjedhura dhe mund të personalizohen për çdo bibliotekë.", + "LabelCachePathHelp": "Specifiko një vendndodhje të personalizuar per file-et e caches së serverit, si përshembull imazhet. Lëre bosh për të përdorur vendodhjen e parazgjedhur nga serveri.", + "LabelDefaultRecordingFolder": "Dosje e parazgjedhur për regjistrime", + "LabelMovieRecordingFolder": "Dosje për regjistrime filmash", + "LabelSeriesRecordingFolder": "Dosje për regjistrime serialesh", + "SeriesRecordingFolderHelp": "(Opsional). Zgjidh një bibliotekë ku të ruash regjistrimet e serialeve. Kjo duhet të jetë një bibliotekë e krijuar gjatë konfigurimit të bibliotekës Emby dhe me llojin e përmbajtjes të përcaktuar si Seriale TV apo përmbajtje e përzjerë.", + "HeaderProgramData": "Të Dhënat e Programit", + "RecordingFolderHelp": "Përzgjidh bibliotekën e parazgjedhur ku të ruash regjistrimet. Kjo duhet të jetë një bibliotekë e krijuar gjatë konfigurimit të bibliotekës Emby dhe me llojin e përmbajtjes të përcaktuar si përmbajtje e përzjerë.", + "MovieRecordingFolderHelp": "(Opsional). Zgjidh një bibliotekë ku të ruash regjistrimet e filmave. Kjo duhet të jetë një bibliotekë e krijuar gjatë konfigurimit të bibliotekës Emby dhe me llojin e përmbajtjes të përcaktuar si Filma apo përmbajtje e përzjerë.", + "LabelMetadataPath": "Shtegu i metadatave", + "LabelMetadataPathHelp": "Specifiko më poshtë vendndodhjen ku do të krijohet dosja e 'metadata' për grafikat dhe metadatat e shkarkuara, ose boshoje për t’u rikthyer tek e parazgjedhura. Nëse e ndryshon këtë, do të të duhet ti spostosh përmbajtjet manualisht nga vendndodhja e vjetër tek e reja. Nëse ndryshon ndonjëherë manualisht përmbajtjet e dosjes së metadatave, do të të duhet të ekzekutosh {0}skano dosjen e metadatave detyrë e planifikuar{1}.", + "LabelTranscodingTempPath": "Shtegu i përkohshëm për transkodim", + "LabelTranscodingTempPathHelp": "Kjo dosje përmban file funksionale të përdorura nga transkoduesi. Specifiko një shteg të personalizuar, ose lëre bosh për të përdorur të parazgjedhurën nga serveri.", + "GenerateVideoPreviewThumbnailsHelp": "Imazhet thumbnail me pamjet paraprake të videos ofrojnë përditësime të çastit ndërsa kërkon në app-et e përkrahura nga ky funksion. Gjenerimi i imazheve thumbnail mund të kërkojë një kohë të gjatë, të shkaktojë përdorim të lartë të CPU-së dhe konsumim të mëtejshëm të hapësirës së diskut.", + "AsAScheduledTask": "si një detyrë e planifikuar", + "AsAScheduledTaskAndMediaAdded": "si një detyrë e planifikuar dhe kur media i shtohet bibliotekës", + "ButtonRefreshGuideData": "Rifresko të Dhënat e Udhëzuesit", + "LabelNumberOfGuideDays": "Numri i ditëve për të shkarkuar të dhënat e guidës", + "LabelNumberOfGuideDaysHelp": "Shkarkimi i një sasie më të madhe të dhënash ditore nga guida ofron aftësinë të planifikoni akoma më përpara dhe të shikoni më shumë listime, por do të kërkojë më shumë kohë shkarkimi. Automatike do të përzgjedhë duk u bazuar në numrin e kanaleve. Të lutem vi re që pavarësisht nga numri i ditëve që përzgjedh, të dhënat duhet të ekzistojnë në guidën bazë në mënyrë që të shkarkohen. Disa burime të dhënash të guidës ofrojnë vetëm 24 orë. Emby Guide Data përkrah deri në 14 ditë.", + "HeaderFetchImages": "Merr Imazhe", + "LabelMaxBackdropsPerItem": "Numri maksimal i sfondeve për artikull", + "LabelMaxScreenshotsPerItem": "Numri maksimal i screenshot për artikull", + "LabelMinBackdropDownloadWidth": "Gjerësia minimale e shkarkimit të sfondeve", + "LabelMinScreenshotDownloadWidth": "Gjerësia minimale e shkarkimit të screenshot", + "ButtonAddScheduledTaskTrigger": "Shto Stimulim", + "ButtonAdd": "Shto", + "LabelTriggerType": "Lloj Stimuli", + "OptionOnInterval": "Me interval", + "OptionAfterSystemEvent": "Pas një veprimtarie të sistemit", + "LabelDay": "Dita", + "LabelTime": "Ora", + "LabelEvent": "Veprimtaria", + "OptionWakeFromSleep": "Zgjohu nga gjumi", + "Every": "Çdo", + "LabelEnableRealtimeMonitor": "Aktivizo monitorimin në kohë reale", + "LabelEnableRealtimeMonitorHelp": "Ndryshimet e file-ve do të përpunohen menjëherë, në sistemet që përkrahin këtë funksion.", + "Community": "Komunitet", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Emër serveri i thjeshtuar", + "LabelFriendlyServerNameHelp": "Ky emër do të përdoret për të identifikuar këtë server. I lënë bosh, do të përdoret emri i kompjuterit.", + "LabelPreferredDisplayLanguage": "Gjuha e preferuar në ekran", + "LabelPreferredDisplayLanguageHelp": "Përkthimi i Emby është një projekt i vazhdueshëm.", + "LabelReadHowYouCanContribute": "Mëso si të ndihmosh.", + "LabelCustomCss": "Css i personalizuar", + "LabelCustomCssHelp": "Apliko css-në tënde të personalizuar në ndërfaqen web.", + "LabelLocalHttpServerPortNumber": "Numri i portës lokale http", + "LabelLocalHttpServerPortNumberHelp": "Numri i portës tcp ku serveri http i Emby duhet të lidhet.", + "LabelPublicHttpPort": "Numri i portës http publike", + "LabelPublicHttpPortHelp": "Numri i portës publike që duhet drejtuar tek porta http lokale.", + "LabelPublicHttpsPort": "Numri i portës https publike", + "LabelPublicHttpsPortHelp": "Numri i portës publike që duhet drejtuar tek porta https lokale.", + "RequireHttps": "Kërko https për lidhje të jashtme", + "RequireHttpsHelp": "Nëse aktivizohet, lidhjet me http do të ridrejtohen në https.", + "LabelHttpsPort": "Numri i portës https lokale", + "LabelHttpsPortHelp": "Numri i portës tcp ku serveri https i Emby duhet të lidhet.", + "LabelEnableAutomaticPortMap": "Aktivizo hartimin automatik të portave", + "LabelEnableAutomaticPortMapHelp": "Përpiqu të drejtosh automatikisht portën publike tek porta lokale nëpërmjet UPnP. Mund të mos funksionojë me disa modele router-ash.", + "LabelExternalDDNS": "Domen i jashtëm", + "LabelExternalDDNSHelp": "Nëse ke DNS apo emër domeni dinamik, shkruaje këtu, pa protokoll apo portë. App-et e Emby do ta përdorin kur të lidhen në distancë. Kjo fushë duhet të plotësohet kur përdoret me një çertifikatë ssl të personalizuar. Shembull: mydomain.com.", + "LabelMinResumePercentage": "Përqindje rifillimi minimale", + "LabelMaxResumePercentage": "Përqindje rifillimi maksimale", + "LabelMinResumeDuration": "Kohëzgjatje rifillimi minimale (në sekonda)", + "LabelMinResumePercentageHelp": "Titujt supozohen të pa riprodhuar nëse ndalohen para kësaj kohe", + "LabelMaxResumePercentageHelp": "Titujt supozohen të riprodhuar plotësisht nëse ndalohen pas kësaj kohe", + "LabelMinResumeDurationHelp": "Titujt më të shkurtër se kaq nuk do të jenë të rifillueshëm", + "HeaderStatus": "Gjendja", + "Subscriptions": "Abonime", + "LabelEndingEpisodeNumber": "Numri i episodit të fundit", + "LabelEndingEpisodeNumberHelp": "Kërkohet vetëm për file-t me episode të shumëfishta", + "HeaderSupportTheTeam": "Përkrah Skuadrën e Emby", + "HeaderSupportTheTeamHelp": "Ndihmoni të siguroni zhvillimin e vazhdueshëm të këtij projekti me blerjen e Emby Premiere. Një pjesë e fitimeve do të derdhet për veglat e tjera falas që na shërbejnë.", + "DonationNextStep": "Pas plotësimit, të lutem vazhdo dhe fut çelësin tënd të Emby Premiere, të cilin do ta marrësh me email.", + "HeaderRunningTasks": "Detyra në Funksionim", + "ButtonUpdateNow": "Përditëso Tani", + "PleaseUpdateManually": "Të lutem fik Emby Server dhe instalo versionin më të fundit.", + "ServerUpToDate": "Emby Server është përditësuar", + "MessagePleaseRestartServerToFinishUpdating": "Të lutem rinis serverin për të përfunduar aplikimin e përditësimeve.", + "LabelDownMixAudioScale": "Rrit audion në downmix", + "LabelDownMixAudioScaleHelp": "Rrit audion në downmix. Vendos 1 për të ruajtur vlerën origjinale të volumit.", + "HeaderForgotKey": "Harrova Çelësin", + "LabelSupporterEmailAddress": "Adresa email e përdorur për blerjen e çelësit.", + "ButtonRetrieveKey": "Rimerr Çelësin", + "LabelSupporterKey": "Çelësi Emby Premiere (ngjite nga email)", + "LabelSupporterKeyHelp": "Fut çelësin Emby Premiere për të gëzuar përfitimet shtesë.", + "MessageInvalidKey": "Çelësi Emby Premiere ka humbur ose i pavlefshëm.", + "ErrorMessageInvalidKey": "Për të regjistruar çfarëdo përmbajtje premium, duhet të kesh një abonim Emby Premiere gjithashtu.", + "LabelSkipIfGraphicalSubsPresent": "Kapërce nëse video-ja përmban titra të ngulitura të përputhshme me gjuhën e shkarkimit", + "LabelSkipIfGraphicalSubsPresentHelp": "Ruajtja e versionit text të titrave do të lehtësojë transmetimin dhe do të frenojë transkodimin e videos.", + "HeaderDownloadLanguages": "Gjuhët e Shkarkimit", + "LabelSkipIfAudioTrackPresent": "Kapërce nëse gjurma audio e parazgjedhur përputhet me gjuhën e shkarkimit", + "LabelSkipIfAudioTrackPresentHelp": "Çzgjidh këtë për tu siguruar që të gjitha videot të kenë titra, pavarësisht nga gjuha audio.", + "SendMessage": "Dërgo mesazh", + "HeaderSendMessage": "Dërgo Mesazh", + "ButtonSend": "Dërgo", + "LabelMessageText": "Teksti i mesazhit", + "LabelMessageTitle": "Titulli i mesazhit", + "ButtonEditOtherUserPreferences": "Redakto profilin e këtij përdoruesi, foton dhe preferencat personale.", + "LabelLoginDisclaimer": "Paralajmërim në hyrje", + "LabelLoginDisclaimerHelp": "Kjo do të shfaqet në fund të faqes së hyrjes.", + "HeaderTranscodingTemporaryFiles": "Duke transkoduar File-t e Përkohshme", + "HeaderApiKeys": "Çelësat Api", + "HeaderApiKeysHelp": "Aplikacionet e jashtme duhet të kenë një çelës Api për të komunikuar me Emby Server. Çelësat lëshohen kur hyni me një llogari Emby, ose kur i dhuroni manualisht aplikacionit një çelës.", + "HeaderApiKey": "Çelës Api", + "HeaderResumeSettings": "Parametrat e Rifillimit", + "HeaderFetcherSettings": "Parametrat e Prurësit", + "HeaderActivity": "Aktiviteti", + "ButtonPurchase": "Blerje", + "HeaderInstall": "Instalo", + "LabelSelectVersionToInstall": "Zgjidh versionin që do të instalosh", + "LinkLearnMoreAboutSubscription": "Mëso rreth Emby Premiere", + "MessagePluginRequiresSubscription": "Ky plugin do të kërkojë një abonim aktiv Emby Premiere pas 14 ditëve të provës falas.", + "MessagePremiumPluginRequiresMembership": "Ky plugin do të kërkojë një abonim aktiv Emby Premiere nëse do ta blesh pas 14 ditëve të provës falas.", + "HeaderDeveloperInfo": "Informacion mbi Programuesin", + "HeaderRevisionHistory": "Kronologjia e Revizionimit", + "ButtonViewWebsite": "Shiko faqen e internetit", + "OptionSaveMetadataAsHidden": "Ruaj metadatat dhe imazhet si file të fshehura", + "LabelConnectEmail": "(Opsionale) Adresa e e-mail-it për Emby Connect", + "LabelConnectEmailHelp": "Lidhe opsionalisht këtë përdorues lokal me një llogari Emby Connect ekzistuese për të aktivizuar aksesin e thjeshtuar nga çdo aplikacion Emby edhe pa e ditur adresën IP të serverit.", + "ButtonLearnMoreAboutEmbyConnect": "Mëso më shume rreth Emby Connect", + "LabelDateAddedBehavior": "Sjellje e datuar për përmbajtje të re", + "OptionDateAddedImportTime": "Përdor datën e skanimit në bibliotekë", + "OptionDateAddedFileTime": "Përdor datën e krijimit të file-it", + "LabelDateAddedBehaviorHelp": "Nëse një vlerë metadate është prezente, ajo do të përdoret para të gjitha këtyre opsioneve.", + "HeaderLibrarySettings": "Parametrat e Bibliotekës", + "HeaderAutomaticSubtitleDownloads": "Shkarkime Automatike të Titrave", + "HeaderCameraUploadHelp": "App-et Emby mund të ngarkojnë automatikisht fotot e shkrepura nga aparatet tuaja lëvizese në Emby Server.", + "LabelCameraUploadPath": "Shtegu i ngarkimit nga kamera", + "LabelCameraUploadPathHelp": "Zgjidh një shteg ngarkimi të personalizuar. Parametrat e parazgjedhura në seksionin Ngarkim nga Kamera do të anashkalohen. E lënë bosh, një dosje e parazgjedhur do të përdoret. Nëse përdorni një shteg personal duhet ta shtoni si bibliotekë në konfigurimin e bibliotekës Emby.", + "DefaultCameraUploadPathHelp": "Zgjidh një shteg ngarkimi të personalizuar. E lënë bosh, një dosje e parazgjedhur do të përdoret. Nëse përdorni një shteg personal duhet ta shtoni si bibliotekë në konfigurimin e bibliotekës Emby.", + "LabelCreateCameraUploadSubfolder": "Krijo një nën-dosje për secilën pajisje", + "LabelCreateCameraUploadSubfolderHelp": "Duke klikuar mbi një pajisje nga faqja e Pajisje-ve, mund ti caktosh asaj dosje specifike.", + "LabelCustomDeviceDisplayNameHelp": "Vendos një emër ekrani të personalizuar ose lëre bosh për të përdorur emrin e raportuar nga pajisja.", + "TabParentalControl": "Kontroll Prindëror", + "HeaderAccessSchedule": "Planifikim Aksesi", + "HeaderAccessScheduleHelp": "Krijo një plan aksesi për të kufizuar aksesin vetëm brenda orëve të caktuara.", + "HeaderLibraryAccess": "Akses i Bibliotekës", + "HeaderChannelAccess": "Akses i Kanaleve", + "LabelForgotPasswordUsernameHelp": "Fut emrin tënd të përdoruesit, nëse të kujtohet.", + "TitlePasswordReset": "Rivendos Fjalëkalimin", + "HeaderBlockItemsWithNoRating": "Blloko artikujt me klasifikim të panjohur apo jo ekzistues", + "LabelBlockContentWithTags": "Kufizo Artikujt me Etiketa", + "LabelTagRestrictionMode": "Mënyra e kufizimit të etiketave", + "BlockItemsWithTheseTags": "Blloko artikujt me këto etiketa", + "AllowItemsWithTheseTags": "Lejo vetëm artikujt me këto etiketa", + "OptionAllowContentDownloading": "Lejo shkarkimin e medias", + "LabelNewUserNameHelp": "Emrat e përdoruesit mund të përmbajnë shkronja (a-z), shifra (0-9), vija (-), vija poshtë (_), apostrofa (‘), dhe pika (.)", + "HeaderThisUserIsCurrentlyDisabled": "Ky përdorues është aktualisht i çaktivizuar. Për të aktivizuar këtë përdorues, të lutem shih opsionin në fund të kësaj faqeje.", + "OptionAllowSyncTranscoding": "Lejo shkarkimin e medias që nevojit transkodim", + "AllowMediaConversion": "Lejo konversionin e medias", + "AllowMediaConversionHelp": "Lejo ose ndalo aksesin e funksionit të konvertimit të medias.", + "OptionAllowAudioPlaybackTranscoding": "Lejo transkodimin e audios në një format të përshtatshëm, nëse e nevojshme, gjatë riprodhimit të medias", + "OptionAllowVideoPlaybackTranscoding": "Lejo transkodimin e videos në një format të përshtatshëm, nëse e nevojshme, gjatë riprodhimit të medias", + "OptionAllowVideoPlaybackRemuxing": "Lejo ndërrimin e formateve të kontejnerëve, nëse e nevojshme, gjatë riprodhimit të medias", + "OptionAllowMediaPlaybackTranscodingHelp": "Kufizimi i transkodimit do të çaktivizojë përzgjedhjen e cilësisë dhe mund të shkaktojë dështime riprodhimi në app-et Emby për shkak të formateve media të pa përkrahura ose gjerësisë së bandës së rrjetit të pamjaftueshme.", + "LabelRemoteClientBitrateLimit": "Limit bitrate-i për Streaming në internet (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Një limit opsional i bitrate për secilën rrymë streaming, për të gjitha pajisjet jashtë rrjetit. Ky është i dobishëm për të parandaluar pajisjet që të kërkojnë një bitrate më të lartë se ai i pranuar nga rrjeti yt. Kjo mund të rezultojë në ngarkesë pune më të lartë për CPU-në e serverit tënd që do të përpiqet të transkodojë videot menjëherë dhe bitrate më të ulët.", + "LabelUserRemoteClientBitrateLimitHelp": "Kjo do të mbikalojë vlerën e përgjithshme të parazgjedhur, e vendosur në parametrat e avancuara të serverit.", + "OptionEnableFullSpeedConversion": "Aktivizo konversionin me shpejtësi maksimale", + "OptionEnableFullSpeedConversionHelp": "Si rregull, konversionet kryhen me shpejtësi të ulët për të minimizuar konsumin e burimeve.", + "OptionEnableAutomaticServerUpdates": "Aktivizo përditësimet automatike të serverit", + "HeaderTVSources": "Burime TV", + "HeaderAddTvSource": "Shto Burim TV", + "LabelTunerIpAddress": "Adresa IP e Sinkronizuesit", + "HeaderGuideProviders": "Burimet e të Dhënave të Guidës", + "HeaderAddGuideSource": "Shto Burim për të Dhënat e Guidës", + "LabelZipCode": "Kodi Postar", + "LabelLineup": "Rreshtim", + "LabelImportOnlyFavoriteChannels": "Kufizohu tek kanalet e shënuara si të preferuara", + "ImportFavoriteChannelsHelp": "E aktivizuar, vetëm kanalet e shënuara si të preferuara në pajisjen sinkronizuese do të importohen.", + "HeaderDefaultRecordingSettings": "Parametrat e Parazgjedhur të Regjistrimit", + "LabelDisplayName": "Emri në ekran", + "OptionDownloadImagesInAdvance": "Shkarko imazhet paraprakisht", + "OptionDownloadImagesInAdvanceHelp": "Zakonisht, shumica e imazheve nuk shkarkohen nga interneti derisa ato shfaqen nga një aplikacion Emby. Aktivizo këtë opsion për të shkarkuar të gjitha imazhet paraprakisht, ndërkohë që importohet media e re. Mund të shkaktojë skanime më të gjata të bibliotekës.", + "MessageThankYouForSupporting": "Faleminderit që përkrahni Emby.", + "FileReadCancelled": "Leximi i file-ve është anulluar.", + "FileNotFound": "File-i nuk u gjet.", + "FileReadError": "Pati një gabim ndërsa po lexohej file-i.", + "NoPluginConfigurationMessage": "Ky plugin nuk ka parametra për të konfiguruar.", + "HeaderNewApiKey": "Çelës Api i Ri", + "HeaderNewApiKeyHelp": "Jepi leje një aplikacioni të komunikojë me Emby Server.", + "MessageKeyEmailedTo": "Çelësi iu dërgua {0}.", + "HeaderConfirmation": "Konfirmim", + "MessageKeyUpdated": "Faleminderit. Çelësi yt Emby Premiere u përditësua.", + "MessageKeyRemoved": "Faleminderit. Çelësi yt Emby Premiere u hoq.", + "TextEnjoyBonusFeatures": "Shijo Përmbajtje Speciale", + "MessageErrorLoadingSupporterInfo": "Pati një gabim me ngarkimin e informacioneve të Emby Premiere. Të lutem provo përsëri më vonë.", + "ValueTimeLimitSingleHour": "Limit kohor: 1 orë", + "ValueTimeLimitMultiHour": "Limit kohor: {0} orë", + "General": "Të Përgjithshme", + "HeaderScreenSavers": "Screen Saver", + "Reporting": "Duke raportuar", + "LabelStopping": "Duke ndaluar", + "HeaderSelectCertificatePath": "Zgjidh Shtegun e Çertifikatës", + "HeaderSupporterBenefit": "Një abonim Emby Premiere aktiv të sjell përfitime shtesë si akses në Emby DVR, media offline, plugin-e premium dhe më shumë. {0}Mëso më shumë{1}.", + "LabelAbortedByServerShutdown": "(Dështuar nga fikja e serverit)", + "LabelScheduledTaskLastRan": "U ekzekutua për herë të fundit {0}, zgjati {1}.", + "HeaderDeleteTaskTrigger": "Fshi Stimuluesin e Detyrës", + "MessageDeleteTaskTrigger": "Je i sigurt që dëshiron të fshish këtë stimulues detyre?", + "MessageNoPluginsDueToAppStore": "Për të menaxhuar plugin-et, të lutem përdor aplikacionin web të Emby.", + "LabelVersionInstalled": "{0} instaluar", + "HeaderSelectServerCachePath": "Zgjidh Shtegun e Cache-s të Serverit", + "HeaderSelectTranscodingPath": "Zgjidh Shtegun e Përkohshëm të Transkodimit", + "HeaderSelectMetadataPath": "Zgjidh Shtegun e Metadatave", + "HeaderSelectServerCachePathHelp": "Shfleto ose fut shtegun që do përdoret për file-t cache të serverit. Dosja duhet të jetë e shkruajtshme.", + "HeaderSelectTranscodingPathHelp": "Shfleto ose fut shtegun që do përdoret për transkodimin e file-ve të përkohshme. Dosja duhet të jetë e shkruajtshme.", + "HeaderSelectMetadataPathHelp": "Shfleto ose fut shtegun ku do të magazinohen metadatat. Dosja duhet të jetë e shkruajtshme.", + "MessageConfirmRestart": "Je i sigurt që dëshiron të rinisësh Emby Server?", + "MessageConfirmShutdown": "Je i sigurt që dëshiron të fikësh Emby Server?", + "LabelLocalAccessUrl": "Aksesi (LAN) në shtëpi: {0}", + "LabelRemoteAccessUrl": "Aksesi (WAN) në distancë: {0}", + "LabelRunningOnPort": "Po ekzekutohet në portën http {0}", + "LabelRunningOnPorts": "Po ekzekutohet në portën http {0}, dhe portën https {1}", + "LabelCurrentPath": "Shtegu aktual", + "HeaderSelectMediaPath": "Zgjidh Shtegun e Medias", + "HeaderSelectPath": "Zgjidh Shtegun", + "MessageDirectoryPickerInstruction": "Shtegjet e rrjetit mund të futen manualisht në rast se butoni Rrjet dështon në lokalizimin e pajisjeve të tua. Për shembull, {0} ose {1}.", + "MessageDirectoryPickerBSDInstruction": "Për BSD, mund të të duhet të konfigurosh memorje brenda FreeNAS Jail-it tënd në mënyrë që t’i lejoni Emby-t ta aksesojë.", + "MessageDirectoryPickerLinuxInstruction": "Për Linux në Arch Linux, CentOS, Debian, Fedora, OpenSuse ose Ubuntu duhet t’i lejoni përdoruesit të sistemit Emby të paktën akses leximi në vendndodhjet e memorjes tënde.", + "MetadataManager": "Menaxhues i Metadatave", + "OptionBlockLiveTvChannels": "Kanale Live TV", + "OptionBlockChannelContent": "Përmbajtje e Kanalit Internet", + "ButtonRevoke": "Revoko", + "MessageConfirmRevokeApiKey": "Je i sigurt që dëshiron të revokosh këtë çelës api? Lidhja e aplikacionit me Emby Server do të ndërpritet menjëherë.", + "HeaderConfirmRevokeApiKey": "Revoko Çelës Api", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Të lutem prano kushtet e shërbimit para se të vazhdosh.", + "HeaderChangeFolderType": "Ndrysho Llojin e Përmbajtjes", + "HeaderChangeFolderTypeHelp": "Për të ndryshuar llojin, të lutem hiqe dhe rindërtoje bibliotekën me llojin e ri.", + "HeaderAlert": "Alarm", + "MessagePleaseRestart": "Të lutem rinis për të përfunduar përditësimin.", + "OptionHomeVideos": "Video & foto shtëpiake", + "OptionBooks": "Libra", + "HeaderMetadataReaders": "Lexues Metadatash", + "LabelMetadataReadersHelp": "Aktivizo dhe rendit burimet e lokale të preferuara të metadatave sipas prioritetit.", + "HeaderSubtitleDownloaders": "Shkarkues Titrash", + "SubtitleDownloadersHelp": "Aktivizo dhe rendit shkarkuesit e tu të preferuar të titrave sipas prioritetit. Më shumë furnizues titrash mund të instalohen duke përdorur katalogun e plugin të Emby.", + "LabelMetadataDownloaders": "Shkarkues metadatash", + "LabelMetadataDownloadersHelp": "Aktivizo dhe rendit shkarkuesit e tu të preferuar të metadatave sipas prioritetit. Shkarkuesit me prioritet më të ulët do të përdoren vetëm për të mbushur informacionet munguese.", + "HeaderMetadataSavers": "Ruajtës Metadatash", + "LabelMetadataSaversHelp": "Zgjidh formatet e file për të ruajtur metadatat e tua.", + "LabelImageFetchers": "Prurës imazhesh", + "LabelImageFetchersHelp": "Aktivizo dhe rendit prurësit e tu të preferuar të imazheve sipas prioritetit.", + "PersonTypePerson": "Personi", + "HeaderRemoveMediaLocation": "Hiq Vendndodhjen e Medias", + "MessageConfirmRemoveMediaLocation": "Je i sigurt që dëshiron t’a heqësh këtë vendndodhje?", + "LabelNewName": "Emër i ri", + "HeaderRemoveLibrary": "Hiq Bibliotekën", + "MessageAreYouSureYouWishToRemoveLibrary": "Je i sigurt që dëshiron të heqësh bibliotekën {0} nga Emby Server? File-t mediatike nuk do të preken.", + "ButtonRename": "Riemëro", + "HeaderPluginInstallation": "Instalim Plugin", + "MessageTrialExpired": "Periudha e provës për këtë funksion ka skaduar", + "MessageTrialWillExpireIn": "Periudha e provës për këtë funksion do të skadojë në {0} ditë", + "ValuePriceUSD": "Çmimi: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Je i regjistruar për këtë funksion, dhe do të jeni të aftë të vazhdoni ta përdorni me një abonim Emby Premiere.", + "HeaderSelectExternalPlayer": "Zgjidh Riprodhues të Jashtëm", + "HeaderExternalPlayerPlayback": "Riprodhim me Riprodhues të Jashtëm", + "HeaderThankYou": "Faleminderit", + "HeaderSelectUploadPath": "Zgjidh Shtegun e Ngarkimeve", + "ErrorMessageStartHourGreaterThanEnd": "Ora e përfundimit duhet të jetë më e madhe se ora e fillimit.", + "MessagePluginConfigurationRequiresLocalAccess": "Për të konfiguruar këtë plugin të lutem hyr direkt në serverin tënd lokal.", + "MovieLibraryHelp": "Rishiko të dhënat e {0}guida e emërtimit të filmave Emby{1}.", + "TvLibraryHelp": "Rishiko të dhënat e {0}guida e emërtimit të TV Emby{1}.", + "BookLibraryHelp": "Librat shkollorë janë të suportuar. Rishiko të dhënat e {0}guida e emërtimit të Librave Emby{1}.", + "MessageGamePluginRequired": "Kërkon instalimin e plugin-it GameBrowser", + "HeaderUnlockApp": "Çkyç Aplikacionin", + "MessagePaymentServicesUnavailable": "Shërbimet e pagimit janë aktualisht të padisponueshme. Të lutem provo përsëri më vonë.", + "NoNewDevicesFound": "Nuk u gjet asnjë pajisje e re. Për të shtuar një sinkronizues të ri, mbyll këtë dialog dhe fut informacionin e pajisjes manualisht.", + "MessageConfirmDeleteTunerDevice": "Je i sigurt që dëshiron të fshish këtë pajisje?", + "MessageConfirmDeleteGuideProvider": "Je i sigurt që dëshiron të fshish këtë furnizues guide?", + "HeaderDeleteProvider": "Fshi Furnizuesin", + "ErrorAddingTunerDevice": "Pati një gabim në shtimin e pajisjes sinkronizuese. Të lutem sigurohu që është i aksesueshëm dhe provo përsëri.", + "ErrorSavingTvProvider": "Pati një gabim kur u ruajt furnizuesi TV. Të lutem sigurohu që është i aksesueshëm dhe provo përsëri.", + "ErrorGettingTvLineups": "Pati një gabim me shkarkimin e listës së televizioneve. Të lutem sigurohu që informacioni është i saktë dhe provo përsëri.", + "MessageCreateAccountAt": "Krijo një llogari tek {0}", + "ErrorPleaseSelectLineup": "Të lutem zgjidh një listë dhe provo përsëri. Nëse nuk gjendet atëherë kontrollo që emri yt i përdoruesit, fjalëkalimi dhe kodi postar janë të saktë.", + "ErrorValidatingSupporterInfo": "Pati një gabim në vërtetimin e informacionit të Emby Premiere. Të lutem provo përsëri më vonë.", + "LabelLocalSyncStatusValue": "Statusi: {0}", + "HeaderTopPlugins": "Plugin Top", + "ForAdditionalLiveTvOptions": "Shfleto {0}katalog plugin{1} të Emby për të instaluar provider Live TV shtesë.", + "AddUser": "Shto Përdorues", + "HeaderEmailAddress": "Adresa e E-Mail", + "NumLocationsValue": "dosje {0}", + "PleaseAddAtLeastOneFolder": "Të lutem shto të paktën një dosje në këtë bibliotekë duke klikuar butonin Shto.", + "ErrorAddingMediaPathToVirtualFolder": "Pati një gabim në shtimin e shtegut të medias. Të lutem sigurohu që shtegu është i vlefshëm dhe proçesi i Emby Server ka akses në atë vendndodhje.", + "ErrorAddingEmbyConnectAccount3": "Kjo llogari Emby është e lidhur me një tjetër përdorues lokal. Një llogari Emby mund të jetë e lidhur me një dhe vetëm një përdorues lokal.", + "HeaderConfirmPluginInstallation": "Konfirmo Instalimin e Plugin", + "PleaseConfirmPluginInstallation": "Të lutem kliko OK për të konfirmuar që ke lexuar të mësipërmet dhe dëshiron të vazhdosh me instalimin e plugin-it.", + "MessagePluginInstallDisclaimer": "Plugin-et e ndërtuara nga pjesëtarët e komunitetit Emby shërbejnë për të zgjeruar eksperiencën tënde Emby me funksione dhe përfitime shtesë. Para se ti instalosh, merrni parasysh efektet që mund të kenë mbi serverin Emby, si përshembull, skanime më të gjata të bibliotekës, përpunime shtesë në sfond dhe qëndrueshmëri më të ulët sistemi.", + "HardwareAccelerationWarning": "Aktivizimi i përshpejtimit hardware mund të shkaktojë paqëndrueshmëri në disa ambjente. Sigurohu që sistemi operativ dhe driver-at video jane plotësisht të përditësuar. Nëse ke vështirësi në riprodhimin e videos pas aktivizimit të kësaj, do të të duhet të rikthesh parametrat në Auto.", + "ValueExample": "Shembull: {0}", + "LabelFileOrUrl": "File ose url", + "OptionEnableForAllTuners": "Aktivizo për të gjitha pajisjet sinkronizuese", + "HeaderTuners": "Sinkronizuesit", + "DrmChannelsNotImported": "Kanale me DRM nuk do të importohen.", + "LabelAllowHWTranscoding": "Lejo transkodim hardware", + "AllowHWTranscodingHelp": "Nëse aktivizohet, lejo sinkronizuesin të transkodojë rrymat streaming menjëherë. Kjo mund të reduktojë transkodimin e kërkuar nga Emby Server.", + "MetadataSettingChangeHelp": "Ndryshimi i parametrave të metadatave do të ndikojë përmbajtjen e re që shtohet më tej. Për të rifreskuar përmabajtjet ekzistuese, hap ekranin e detajeve dhe kliko butonin rifresko, ose kryej rifreskime në grupe të caktuara duke përdorur menaxhuesin e metadatave.", + "RecordingPathChangeMessage": "Ndryshimi i dosjes të regjistrimeve nuk do të spostojë regjistrimet ekzistuese nga vendndodhja e vjetër tek e reja. Do të të duhet ti lëvizësh manualisht.", + "LabelLocalIpAddress": "Adresa IP lokale", + "LabelBindToLocalNetworkAddressHelp": "Opsionale. Mbikalo adresën IP lokale që Emby Server do ti prezantojë aplikacioneve Emby. E lënë bosh, serveri do ta zbulojë adresën IP lokale automatikisht.", + "SettingsWarning": "Ndryshimi i këtyre vlerave mund të shkaktojë paqëndrueshmëri ose mungesë lidhjeje. Nëse ke probleme, rekomandojmë t’i kthesh në vlerat e parazgjedhura.", + "OptionSaveMetadataAsHiddenHelp": "Ndryshimi i kësaj do ti aplikohet metadatave të reja duke filluar që tani. Metadatat ekzistuese do të përditësohen herën tjetër që do të ruhen nga Emby Server.", + "EnablePhotos": "Aktivizo fotot", + "EnablePhotosHelp": "Fotot do të zbulohen dhe shfaqen bashkë me file-t e tjera mediatike.", + "ImportPlaylists": "Importo file playlist", + "ImportPlaylistsHelp": "Playlist-at e gjendura në direktoritë mediatike mund të importohen në Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Ruaj mini imazhet e parashikimit të videos në dosjet mediatike", + "LabelGenerateVideoPreviewThumbnails": "Gjenero mini imazhe parashikimi video", + "LabelEnableDebugLogging": "Aktivizo regjistrin e korrigjimeve", + "OptionEnableExternalContentInSuggestions": "Aktivizo përmbajtje të jashtme në sugjerime", + "OptionEnableExternalContentInSuggestionsHelp": "Lejo trailer nga interneti dhe programe televizive të drejtpërdrejta të përfshihen brenda përmbajtjes së sugjeruar.", + "LabelOptionalNetworkPath": "(Opsionale) Dosja e bashkë-ndarë e rrjetit", + "LabelOptionalNetworkPathHelp": "Nëse kjo dosje është bashkë-ndarë në rrjetin tënd, duke treguar shtegun e bashkë-ndarjes të rrjetit mund të lejojë app-et Emby në pajisje të tjera të aksesojnë file-t mediatike në mënyrë direkte.", + "SynologyUpdateInstructions": "Të lutem lidhu me DSM dhe shko tek Package Center për të përditësuar.", + "HeaderRecordingPostProcessing": "Pas-Përpunimi i Regjistrimit", + "LabelPostProcessorArguments": "Argumenta të komandës të post-proçesorit", + "PostProcessorArgumentsHelp": "Variablat e mëtejshme janë të suportuara në linjën e komandës për të lejuar kalimin e të dhënave tek post-proçesori yt", + "LabelPostProcessor": "Aplikacion post-proçesues", + "DvrPostProcessorPathArgument": "{path}: Shtegu komplet për tek file-i i ri regjistrues", + "OptionAutomaticallyGroupSeries": "Bashkangjit automatikisht serialet e shpërndarë në më shumë se një dosje", + "OptionAutomaticallyGroupSeriesHelp": "Nëse aktivizohet, serialet e shpërndara në më shumë se një dosje brenda kësaj biblioteke do të bashkangjiten në një serial të vetëm.", + "WhenDidYouPurchaseApp": "Kur e ke blerë këtë app?", + "PreferEmbeddedTitlesOverFileNames": "Prefero titujt e ngulitur mbi emrat e file-ve", + "PreferEmbeddedTitlesOverFileNamesHelp": "Kjo përcakton emrin e parazgjedhur në ekran kur nuk disponohen metadata nga interneti ose metadata lokale.", + "FriendlyNameForReferenceHelp": "Një emër i lehtë për t’u shfaqur, për referencën tënde.", + "HeaderLiveTvTunerSetup": "Konfigurim i Sinkronizuesit Live TV", + "HeaderTVSourceSetup": "Konfigurim i Burimit TV", + "HeaderDetectMyDevices": "Zbulo Pajisje", + "MessagePleaseWait": "Të lutem prit. Mund të zgjasë disa kohë.", + "DetectingDevices": "Duke zbuluar pajisjet", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Mbas importit fillestar, rifresko automatikisht metadatat nga interneti", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Rifresko automatikisht metadatat për episodet me tituj të papërcaktuar si TBA", + "EveryNDays": "Çdo {0} ditë", + "LabelCertificatePassword": "Fjalëkalimi i çertifikatës", + "LabelCertificatePasswordHelp": "Nëse çertifikata jote kërkon një fjalëkalim, të lutem fute këtu.", + "HeaderNewLibrary": "Bibliotekë e Re", + "HttpsRequiresCert": "Për të aktivizuar lidhje të sigurta, do të të duhet të japësh një çertifikatë të besuar SSL, si Lets Encrypt. Të lutem jep një çertifikatë ose çaktivizo lidhjet e sigurta.", + "ServerRestartNeededAfterPluginInstall": "Emby Server duhet të riniset pas instalimit të plugin-it.", + "PluginInstalledMessage": "Plugin-i është instaluar me sukses. Emby Server duhet të riniset që ndryshimet të kenë efekt.", + "MessagePremiereStatusGood": "Ke një plan Emby Premiere {0} dhe përdorimi i pajisjes tënde është brenda limitit.", + "MessagePremiereStatusClose": "Ke një plan Emby Premiere {0}, por përdorimi i pajisjes tënde është afër limitit.", + "MessagePremiereExtendedPlans": "Konsidero një {0}plan pajisje i shtuar{1}", + "MessagePremiereStatusOver": "Ke një plan Emby Premiere {0}, por ke kaluar limitin e pajisjes!", + "ListItemPremiereSub": "Abonimi {0} i blerë nëpërmjet {2} skadon {1}", + "LabelClickToManage": "Kliko për të menaxhuar këtë abonim", + "LabelCancelInfo": "Mund ta menaxhosh këtë abonim në mënyrë direkte me {0}", + "LabelAlreadyCanceled": "Ky abonim është anulluar. Çelësi do të mbetet i vlefshëm deri në skadim.", + "HeaderCancelSub": "Anullo Emby Premiere", + "MessageConfirmSubCancel": "JO, Të lutem mos ik… Do të humbasësh të gjitha funksionet e shkëlqyera të Emby Premiere!", + "ButtonCancelSub": "E di, anulloje sidoqoftë", + "ButtonDontCancelSub": "Mbaj Emby Premiere", + "MessageSubCancelReqSent": "Emaili iu dërgua pronarit të çelësit. Të lutem ndiq instruksionet në atë email për të kompletuar anullimin e këtij abonimi. Shpresojmë të të shohim përsëri së shpejti!", + "MessageSubCancelError": "Diçka shkoi keq me anullimin. Të lutem dërgo një email tek {0} dhe do të ndihmojmë ne.", + "LabelAlreadyCancelled": "Ky abonim është anulluar. Nuk do të paguash përsëri por funksionet do të ngelen aktive deri në datën e mësipërme.", + "AllowOnTheFlySubtitleExtraction": "Lejo nxjerrjen e titrave menjëherë", + "AllowOnTheFlySubtitleExtractionHelp": "Titrat e ngulitura mund të nxirren nga videot dh ti dorëzohen aplikacioneve Emby në tekst të thjeshtë në mënyrë që të parandalohet transkodimi video. Në disa sisteme kjo mund të kërkojë një kohë të gjatë dhe të shkaktojë ngadalësim të riprodhimit video gjatë proçesit të nxjerrjes. Çaktivizoje për të pasur titrat e ngulitura të fiksuara me transkodimin video kur ato nuk suportohen nativisht nga pajisja e klientit.", + "AllowOnTheFlyFontExtraction": "Lejo ekstradimin e fontit të titrave në rrugë e sipër", + "AllowOnTheFlyFontExtractionHelp": "Fontet e gërmave të ngulitura mund të ekstradohen nga videot dhe t’i dërgohen app-eve të Emby në mënyrë që videot që përmbajnë fonte të veçanta të suportohen. Në disa sisteme kjo mund të kërkojë një kohë të gjatë dhe të shkaktojë ngecje të riprodhimit të videos gjatë proçesit të ekstradimit.", + "EnableDebugLoggingHelp": "Regjistri i korrigjimeve duhet të aktivizohet vetëm nëse nevojitet për zgjidhje problemesh. Aksesi i lartë i sistemit të file-ve mund të parandalojë që serveri të bjerë në gjumë në disa ambiente.", + "LabelSimultaneousConnectionLimit": "Limiti i streaming të njëkohshëm", + "SimultaneousConnectionLimitHelp": "Numri maksimal i lejuar për rryma streaming të njëkohshme. Fut 0 për i pakufizuar.", + "LaunchWebAppOnStartup": "Nis aplikacionin web të Emby në shfletuesin tim web kur Emby Server niset", + "LaunchWebAppOnStartupHelp": "Kjo do të hapë aplikacionin web në shfletuesin tuaj web të parazgjedhur kur Emby Server fillimisht nis. Kjo nuk do të ndodhë ku përdor funksionin rinis serverin.", + "LabelReferrerHeader": "Kreu i referuesit http", + "LabelUserAgentHeader": "Kreu i user agent http", + "SupplyCustomValueIfNeeded": "Jep një vlerë të personalizuar kreu http, nëse e nevojshme.", + "HeaderConfigureRemoteAccess": "Konfiguro Akses në Distancë", + "LearnHowToCreateSynologyShares": "Mëso se si të bashkë-ndash dosjet në Synology.", + "LabelAllowedRemoteAddresses": "Filtri i adresave të IP në distancë", + "LabelAllowedRemoteAddressesMode": "Modalitet i filtrit të adresave IP në distancë", + "Whitelist": "Lista e bardhë", + "Blacklist": "Lista e zezë", + "AllowedRemoteAddressesHelp": "Listë e ndarë me presje e adresave IP ose IP/netmask për rrjetet që do të lejohen të lidhen në distancë. Nëse lihet bosh, të gjitha adresat në distancë do të lejohen.", + "LabelLanNetworks": "Rrjete LAN", + "LanNetworksHelpText": "Listat e adresave IP ose hyrjeve IP/netmask të ndara me presje për rrjetet që do të konsiderohen në rrjetin lokal në rast kufizimesh ndaj aksesit në distancë apo gjerësisë së bandës. Nëse vendoset, të gjitha adresat e tjera do të konsiderohen si pjesë e rrjetit të jashtëm. Nëse lihet bosh, vetëm sub-rrjeti i serverit ose sub-rrjetet IP të zakonshme private (192.168.0.0/24, 172.16.0.0/12, etj.) do të konsiderohen si pjesë e rrjetit lokal.", + "LabelSecureConnectionsMode": "Modalitet i lidhjes së sigurtë", + "PreferredNotRequired": "I preferuar, por jo i kërkuar", + "RequiredForAllRemoteConnections": "I kërkuar për të gjitha lidhjet në distancë", + "HandledByProxy": "I menaxhuar nga reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Ruaj titrat e shkarkuara në dosjet mediatike", + "SaveSubtitlesIntoMediaFoldersHelp": "Magazinimi i titrave anash file-ve video do të lejojë një menaxhim më të thjeshtë të tyre.", + "AutomaticSubtitleDownloadInstructions": "Për të menaxhuar shkarkimin automatik të titrave, kliko mbi një bibliotekë gjatë kofigurimit të bibliotekave Emby dhe redakto parametrat e shkarkimit të titrave për atë bibliotekë.", + "ProviderNeedsSetupWithUrl": "{0} kërkon konfigurim shtesë në ekranin {1} e parametrave të{2} në Emby Server.", + "LabelEnableHardwareAcceleration": "Aktivizo përshpejtimin hardware nëse i disponueshëm", + "HeaderPreferredHardwareDecoders": "Dekodues Hardware të Preferuar", + "HeaderPreferredHardwareEncoders": "Enkodues Hardware të Preferuar", + "AllowChangingImageAndPassword": "Lejo këtë përdorues të ndryshojë fjalëkalimin e tij dhe foton e profilit", + "LabelSimultaneousStreamLimit": "Maksimumi i trasmetimeve video të njëkohshme", + "SimultaneousStreamLimitHelp": "Kufizo numrin e seksioneve të riprodhimit video të njëkohshëm.", + "LabelMusicFolderStructure": "Struktura e dosjes së muzikës", + "LabelMusicFolderStructureHelp": "Kjo i sugjeron skanerit të bibliotekës se si janë të organizuara dosjet e tua. Nëse je i pasigurtë, ose nëse dosjet nuk përputhen saktësisht me një nga opsionet, atëhere të lutem zgjidh opsionin e parazgjedhur të Të Tjerë/a.", + "OtherOrUnstructured": "Të tjera apo pa strukturë", + "PerfectArtistAlbumTrack": "Të organizuar në mënyrë perfekte në dosje artist\\album, me këngët e vendosura në dosjet e albumeve.", + "PerfectAlbumTrack": "Të organizuar në mënyrë perfekte në dosje albumesh, me këngët e vendosura në dosjet e albumeve.", + "LabelMinCollectionSize": "Përmasa minimale e koleksionit automatik", + "PerfectAuthorAudioBookTrack": "Organizuar në mënyrë perfekte në dosje autor\\libër, me file-t e vendosura në dosjet e librave.", + "PerfectAudioBookTrack": "Organizuar në mënyrë perfekte në dosje librash, me file-t e vendosura direkt në dosjet e librave.", + "MinCollectionSizeHelp": "Krijo automatikisht koleksione kur ke të paktën numrin e seleksionuar të titujve në bibliotekën tënde. Ndryshimi i kësaj vlere nuk do të ndikojë mbi koleksionet ekzistuese.", + "LabelImportCollections": "Importo informacionet e koleksionit nga shkarkuesit e metadatave", + "LabelImportCollectionsHelp": "Kur aktivizohet, kjo do importojë informacionin e koleksionit nga shkarkuesit e metadatave të aktivizuar. Kjo mund të shkaktojë krijimin automatik të koleksioneve të padashura. Çaktivizimi do të parandalojë krijimin automatik të koleksioneve por nuk do të fshijë ekzistueset.", + "LabelAllowAdultMetadata": "Lejo metadata për të rritur", + "LabelAllowAdultMetadataHelp": "Lejo tituj për të rritur që përputhen kur kërkoni internetin për metadata.", + "HeaderVideoPreviewThumbnails": "Mini imazhe Parashikimi Video", + "LabelEnableHDRToneMapping": "Aktivizo tone mapping HDR", + "EnableHDRToneMappingHelp": "Funksioni Tone Mapping do të sigurojë konversionin e saktë të ngjyrës kur konvertohet përmbajtja HDR, e cila përndryshe do shfaqet e çngjyrosur dhe e zbehtë. Komponentë shtesë të driver-it mund të duhen për të suportuar përshpejtimin hardware me këtë funksion aktiv. Të lutem kontrollo guidën e konfigurimit të përshpejtimit hardware.", + "WithHardwareAcceleratedTranscoding": "Po, vetëm me përshpejtim hardware", + "TranscodingStillInitializing": "Shërbimet e transkodimit të Emby Server janë akoma të zëna. Ky ekran do të rifreskohet automstikisht kur shërbimet e transkodimit do të jenë gati.", + "WithEitherHardwareOrSoftwareTranscoding": "Po, me transkodim hardware apo software", + "ToneMappingInHardwareDescription": "Funksioni Tone Mapping do të kryhet me përshpejtim hardware kur është i aktivizuar dhe i përkrahur nga hardware-i, dhe do të kapërcehet në të gjitha rastet e tjera.", + "ToneMappingInSoftwareDescription": "Funksioni Tone mapping do të kryhet në software nga CPU-ja. Kjo është shumë më e ngadaltë se tone mapping me përshpejtim hardware dhe do të kërkojë një aparat serveri shumë të fuqishëm.", + "ToneMappingInBothDescription": "Funksioni Tone mapping do të kryhet me përshpejtim hardware kur është i aktivizuar dhe i suportuar nga hardware-i, dhe do të kalojë në software ne rastet e tjera. Tone mapping në software është shumë më i ngadaltë se ai në hardware dhe do të kërkojë një aparat serveri shumë të fuqishëm.", + "AutoMapped": "Hartuar automatikisht", + "ManuallyMapped": "Hartuar manualisht", + "NotMappedToGuideData": "I pahartuar në të dhënat e guidës", + "MappedToValue": "Hartuar në {0}", + "LabelAutomaticallyWakeServerForRecordings": "Zgjo automatikisht aparatin e serverit për të kryer regjistrime", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Momentet e zgjimit do të planifikohen me sistemin operativ të serverit. Çaktivizimi i këtij opsioni do të parandalojë planifikimin e momenteve të zgjimit në të ardhmen, por nuk do të heqin planifikimet ekzistuese.", + "Database": "Databazë", + "LabelOptimizeDatabaseOnShutdown": "Përpiqu të optimizosh databazën gjatë fikjeve të serverit", + "LabelOptimizeDatabaseOnShutdownHelp": "Veprimi i optimizimit të databazës është zakonisht një no-op por do të kryejë me raste një analizë nëse bërja e kësaj do ti duhet planifikuesit të kërkesave. Kjo mund ti shkaktojë Emby Server një kohë më të gjatë në fikje.", + "LabelDatabaseCacheSize": "Përmasa (MB) e cache-s së databazës", + "LabelDatabaseCacheSizeHelp": "Vendos sasinë e të dhënave që databaza do të mbajë në memorje menjëherë, për çdo file databaze. Një vlerë më e lartë mund të ndihmojë performancën e Emby Server. Kërkon një rinisje të serverit për të patur efekt.", + "LabelDatabaseAnalysisLimit": "Limiti i rreshtit të analizës", + "LabelDatabaseAnalysisLimitHelp": "Kur databaza optimizohet, ky është numri i përafërt i rreshtave të ekzaminuar në çdo indeks nga komanda ANALIZO. Një vlerë më e lartë do të rrisë efektivitetin e optimizimit të databazës, por mund të shkaktojë vonesë në fikjen e Emby Server.", + "LabelVacuumDb": "Bëji vacuum databazës në nisjen e ardhshme të Emby Server", + "LabelVacuumDbHelp": "Komanda vacuum rindërton file-in e databazës, duke ripaketuar në një sasi minimale hapësire. Në disa raste kjo mund të përmirësojë performancën e Emby Server. Vi re që serveri nuk do të jetë i përdorshëm gjatë veprimit të vacuum, gjithashtu nuk do të mundesh të monitorosh ecueshmërinë e vacuum. Të lutem evito mbylljen me forcë të proçesit pasi mund të shkaktojë korruptim të databazës. Ky është një operacion i një-hershëm dhe ky opsion do të rivendoset si i pazgjedhur në nisjen e ardhshme të serverit.", + "AdvancedOptionsWarning": "Këto janë opsione të përparuara dhe në përgjithësi duhet të lihen në vlerat e parazgjedhura përveç nëse keni një arsye për t’i ndryshuar.", + "HeaderRecentlyActiveDevices": "Pajisje Aktive së Afërmi", + "YesUntilServerRestart": "Po, deri në rinisjen e ardhshme të serverit", + "YesUntilLogRotate": "Po, deri në rotacionin e ardhshëm të log file", + "LabelSubtitleDownloadMaxAge": "Ndalo provën e shkarkimit automatik të titrave për videot më të vjetra se", + "SubtitleDownloadMaxAgeHelp": "Kjo bazohet në vlerën e metadatës së datës së shtimit.", + "NoAgeLimit": "Pa limit moshe", + "AnonymizeLogContents": "Anonimizo përmbajtjet e log-ut", + "Markers": "Shënues", + "LabelGenerateIntroVideoMarkers": "Gjenero shënuesit e siglave", + "GenerateIntroVideoMarkersHelp": "Zbulon siglat e serialeve dhe shfaq butonin “Kapërce Siglën” në aplikacionet Emby. Zbulimi i siglave mund të zgjasë shumë kohë dhe të shkaktojë përdorim të lartë të CPU dhe diskut.", + "LabelCopyFromUser": "Kopjo parametrat nga përdoruesi", + "CopyFromUserHelp": "Opsionale. Shpejto krijimin e përdoruesit të ri duke kopjuar informacionin nga një përdorues ekzistues.", + "UserPolicy": "Rregullorja e Përdoruesit (aksesi i bibliotekës dhe karakteristikave, kontrollet prindërore, etj.)", + "UserConfiguration": "Konfigurimi i Përdoruesit (gjuha audio dhe e titrave e preferuar, renditja e bibliotekave, etj.)", + "UserDataAndDescription": "Të dhënat e Përdoruesit (të preferuarit, pozicionet e shikimit dhe dëgjimit, etj.)", + "HeaderCopyOptions": "Kopjo Opsionet", + "LabelMultiRestrictionMode": "Mënyrë kufizimi e shumëfishtë", + "MultiRestrictionModeAll": "Lejo përmbajtje me kufizime klasifikimi dhe etikete të njëjta", + "MultiRestrictionModeAny": "Lejo përmbajtje me kufizime të njëjta klasifikimi ose etikete", + "AllowMappingByChannelNumber": "Lejo mapping të udhëzojë të dhënat duke përdorur numrat e kanaleve", + "AllowMappingByChannelNumberHelp": "Kjo mund të përdoret si metodë rezervë për të përputhur kanalet e sintonizuesit me të dhënat e guidës kurdo nuk gjendet një përputhje me emrin e kanalit. Kjo mund të shpjerë në perputhje të papërshtashme nëse numrat e kanaleve të sintonizuesit janë të pasaktë.", + "LabelPreferredSourceForChannelLogos": "Prefero logot e kanaleve nga të dhënat e guidës mbi ato të sintonizuesit kur të dy i kanë të disponueshëm", + "LabelPreferredSourceForChannelNumbers": "Prefero numrat e kanaleve nga të dhënat e guidës mbi ato të sintonizuesit kur të dy i kanë të disponueshëm", + "HeaderSoftwareEncoders": "Enkoduesit e Software-it", + "LabelProxyHeaderMode": "Lexo kreun e proxy për të përcaktuar adresat IP client", + "ProxyHeadersRemoteOnly": "Vetëm kur përmbajnë adresa rrjeti në largësi", + "ProxyHeaderModeHelp": "Përcakton nëse krerë kërkese si {0} dhe {1} duhet të përdoren për të përcaktuar adresën IP të pajisjeve në lidhje e sipër. Kjo duhet aktivizuar vetëm nëse po përdor reverse proxy.", + "AllowCameraUpload": "Lejo ngarkimin nga kamera", + "AllowCameraUploadHelp": "Nëse e lejon, dhe nëse e aktivizon në aplikacionet celulare Emby, përdoruesit mund të ngarkojnë automatikisht fotografi dhe video të marra nga kamera e tyre në këtë Server Emby", + "CameraUploadMustBeGranted": "Duhet të kesh gjithashtu lejen nga administratori i server-it për të ngarkuar nga kamera jote.", + "EnableReadingAndWritingPeopleMetadata": "Aktivizo leximin dhe redaktimin e file-ve të metadatave të personave", + "EnableReadingAndWritingPeopleMetadataHelp": "Kërkon instalimin e plugin-it Nfo Metadata. Kjo do të lejojë ruajtjen e redaktimeve të personit në file-t metadata nfo por do të rezultojë në skanime më të gjata të bibliotekës.", + "LabelIgnoreSampleFiles": "Injoro file-t që përmbajnë fjalën sample në emrin e tyre nëse kanë përmasë më të vogël se (MB)", + "PreferredChannelImageSource": "Burimi i preferuar për imazhet e kanalit", + "PreferredChannelImageSourceHelp": "Zgjidh imazhin e preferuar për kanalin kur sintonizatori dhe të dhënat e guidës përmbajnë imazhe njëkohësisht.", + "CacheImagesInServerData": "Mbaj një kopje cache të imazheve në dosjen e metadatave të serverit", + "CacheImagesInServerDataHelp": "Nëse media dhe imazhet janë të ruajtura në një pajisje tjetër, mbajtja e një kopjeje cache në dosjen e metadatave të serverit do të reduktojë aksesin e rrjetit dhe mund të përmirësojë performancën. Kostoja e krijimit të kësaj cache është ngadalësimi i skanimit të bibliotekave dhe dosja e metadatave të serverit do të konsumojë më shumë hapësirë në memorje.", + "AllowSharingPersonalContent": "Lejo bashkëndarjen e përmbajtjeve personale siç playlista me përdorues të tjerë në këtë server", + "AllowSharingPersonalContentHelp": "Nëse lejohet, ky përdorues do të jetë i aftë të bashkëndajë playlistat e tij me përdorues të tjerë. Artikujt e playlistës do të jenë sidoqoftë të kufizuar sipas aksesit të bibliotekës dhe kontrolleve prindërore të përdoruesit.", + "LiveBufferSizeHours": "Kufiri i sasisë të buffer për live stream (në orë)", + "LiveBufferSizeHoursHelp": "Një sasi buffer më e madhe do të sjellë aftësi më të madhe për të kërkuar para dhe mbrapa përgjatë një live stream, por do të konsumojë më shumë hapësirë të diskut.", + "LabelTranscodingMaxResolution": "Rezolucioni maksimal gjatë transkodimit", + "TranscodingMaxResolutionHelp": "Vendos një kufi maksimal të transkodimit video , pavarësisht nga parametri i cilësisë i vendosur në riprodhuesin e Emby. Kjo do të ndihmojë në reduktimin e punës së serverit gjatë proçesit të transkodimit.", + "EnableHevcEncodingExp": "Aktivizo enkodimin HEVC video (eksperimentale)", + "EnableHevcEncodingHelp": "Aktivizo transkodimin duke përdorur kodekun HEVC nëse suportohet nga klienti.", + "LabelEnableMultiPartItems": "Aktivizo artikujt me shumë pjesë", + "EnableMultiPartItemsHelp": "Dallo automatikisht dhe grupo file-t e emërtuara si pjesa 1, pjesa 2, etj. Pjesët shtesë do të shfaqen në ekranin kryesor të detajeve për artikullin.", + "MultiVersionItemsDetectionHelp": "Dallo automatikisht dhe grupo versione të ndryshme të të njëjtit artikull. Një përzgjedhje e versionit do të ofrohet në ekranin kryesor të detajeve për artikullin. Grupimi i bazuar në emrin e file-ve kërkon një emërtim dhe organizim të file-ve në mënyrë të saktë.", + "MultiVersionMoviesDetectionHelp": "Grupimi i bazuar në metadata do të grupojë filmat që kanë Id të jashtme (MovieDb, Imdb, etj) të njëjta.", + "EnableMultiPartItemsTVHelp": "Nuk suportohet për episodet e serialeve TV.", + "HeaderAutomaticGrouping": "Grupim Automatik", + "LabelMultiVersionItemsDetection": "Detektim artikulli me më shumë versione", + "MultiVersionItemsDetectionBoth": "Dallo artikujt me versione të shumëfishta të bazuar si në emrat e file-ve dhe në metadatat e tyre", + "MultiVersionItemsDetectionFiles": "Dallo artikujt me versione të shumëfishta të bazuar në emrat e file-ve", + "MultiVersionItemsDetectionMetadata": "Dallo artikujt me versione të shumëfishta të bazuar në metadata", + "LabelNetworkRequestProtocol": "Protokolli i kërkesës së rrjetit", + "NetworkRequestProtocolHelp": "Zgjidh protokollin që do të përdoret për kërkesat në dalje ndaj prurësit të metadatave dhe shërbimeve të tjera. Në disa raste kur shërbimet e jashtme s’mund të kapen me IPv6, mund të duhet t’a vendosësh vetëm me IPv4.", + "GenerateChaptersForVideos": "Gjenero kapituj për videot që nuk përmbajnë info kapitujsh të ngulitur", + "GeneratedChapterInterval": "Gjenero interval kapitujsh", + "StartOfSection": "Fillimi i kapitullit", + "PreviousSection": "Kapitulli i mëparshëm", + "LayoutVertical": "Rrotullë vertikale", + "ZoomIn": "Zmadhoje", + "PageNarrow": "E ngushtë", + "PageMaximized": "I/E maksimizuar", + "ZoomOut": "Zvogëloje", + "PageBook": "Faqe dyshe", + "LabelPageSize": "Përmasa e Faqes", + "PositionInBook": "Pozicioni në libër", + "LayoutDouble": "Faqe dyshe", + "TableOfContents": "Tabela E Përmbajtjes", + "PageSingle": "Faqe njëshe", + "ZoomNone": "Zmadhim i parazgjedhur", + "LayoutPage": "Faqe njëshe", + "NextSection": "Kapitulli vijues", + "ZoomAutoFit": "Përshtat faqen", + "Margins": "Kufijtë anësorë", + "PreviousPage": "Faqja e mëparshme", + "CurrentPage": "Faqja aktuale", + "TotalPages": "Totali i faqeve", + "NextPage": "Faqja vijuese", + "RightToLeft": "Renditja nga e djathta në të majtë", + "LetsGetSetup": "Le Të Fillojmë", + "HeaderIgnoreFiles": "Injoro File-t", + "EnablePlexIgnoreAlias": "Aktivizo suportin për file-t .plexignore si alias për tek .embyignore", + "HeaderMaintenanceMode": "Modaliteti i Mirëmbajtjes", + "OptionEnableMaintenanceMode": "Vendose serverin në modalitet mirëmbajtjeje", + "EnableMaintenanceModeHelp": "Përdoruesit do të shikojnë vetëm mesazhin e modalitetit së mirëmbajtjes.", + "MaintenanceModeMessage": "Mesazhi i modalitetit së mirëmbajtjes", + "MaintenanceModeMessageHelp": "Nëse lihet bosh, një mesazh i përgjithshëm që komunikon se serveri po i nënshtrohet mirëmbajtjes do të shfaqet dhe përkthehet sipas gjuhës të ekranit së përdoruesit.", + "ServerInMaintenanceMode": "Serveri Emby po ekzekutohet në modalitet mirëmbajtjeje aktualisht. Përdoruesit do të shikojnë vetëm një mesazh të modalitetit së mirëmbajtjes derisa ta nxjerrësh serverin nga modaliteti i mirëmbajtjes.", + "ExcludeFromGlobalSearch": "Përjashtoje nga kërkimi global", + "MergeTopFoldersInFolderView": "Bashko përmbajtjet e dosjeve të nivelit të sipërm kur përdor pamjen e dosjes", + "MergeTopFoldersInFolderViewHelp": "Nëse aktivizohet, përmbajtjet e dosjeve të nivelit të sipërm do të bashkohen dhe vizualizohen si një dosje e kombinuar kur përdor pamjen e dosjes. Nëse çaktivizohet, dosjet e nivelit të sipërm do të vizualizohen në nivelin e parë në pamjen e dosjes.", + "OptionAllowTranscodingToReduceQuality": "Lejo transkodimin për të reduktuar cilësinë, sipas parametrit të cilësisë të aplikacionit, gjatë riprodhimit të medias", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/sv.json b/strings/sv.json new file mode 100644 index 0000000..dd36a3f --- /dev/null +++ b/strings/sv.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Du är klar!", + "ThisWizardWillGuideYou": "Den här guiden kommer att hjälpa dig genom installationsprocessen för Emby Server.", + "HeaderCreateYourFirstUser": "Skapa din första användare", + "ButtonQuickStartGuide": "Snabbstartsguide", + "MoreUsersCanBeAddedLater": "Fler användare kan läggas till senare i inställningarna för Emby Server.", + "UserProfilesIntro": "Emby inkluderar inbyggt stöd för användarprofiler, vilket gör det möjligt för varje användare att ha sina egna inställningar för visning, uppspelningsstatus och föräldrakontroller.", + "WizardCompleted": "Det är allt vi behöver just nu. Emby har börjat skanna ditt bibliotek. Utforska några av våra appar och klicka sedan på Slutför för att visa serverkontrollpanelen.", + "MessagePleaseAcceptTermsOfService": "Godkänn användarvillkoren och sekretesspolicyn innan du fortsätter.", + "OptionIAcceptTermsOfService": "Jag accepterar användarvillkoren", + "SeeOurHwaGuide": "Se vår {0}guide för hårdvaruaccelerering{1}.", + "HeaderEmbyServerReleaseNotes": "Emby Server - Versionshistorik", + "AllowSubtitleDownloading": "Tillåt nedladdning av undertexter", + "AllowSubtitleManagement": "Tillåt borttagning av redan existerande undertextfiler", + "NewUserNameHelp": "Så visas användaren på din server.", + "ChapterMarkers": "Kapitelmarkörer", + "LabelThumbnailImagesInterval": "Tidsintervall för miniatyrbilder", + "ThumbnailImagesIntervalHelp": "Mer frekventa miniatyrbilder kommer att ge en bättre upplevelse men kommer att kräva mer diskutrymme och tid för att skapa bilderna.", + "LabelAuthProvider": "Autentiseringsleverantör", + "AuthProviderHelp": "Administratörer kommer alltid att använda Embys standardleverantör för att skydda mot utelåsning.", + "HeaderNewUser": "Ny användare", + "ChangeServerDisplayName": "Ändra visningsnamn för server", + "ShowAdvancedSettings": "Visa avancerade inställningar", + "ChangingMetadataImageSettingsNewContent": "Ändringar i inställningarna för metadata eller nedladdning av grafik kommer enbart att gälla för nytt innehåll. För att ändringarna ska gälla för redan existerande innehåll så måste metadatan uppdateras manuellt.", + "AllowRemoteAccess": "Tillåt fjärranslutningar till denna Emby Server.", + "AllowRemoteAccessHelp": "Om avaktiverad kommer alla fjärranslutningar att blockeras.", + "Alerts": "Meddelanden", + "LabelTrackTitleDisplay": "Visning av inbäddad spårtitel", + "GenerateUserFriendlyTrackTitles": "Skapa användarvänliga titlar utifrån spårinformation", + "PreferOriginalTrackTitles": "Föredra inbäddade titlar", + "TrackTitleDisplayHelp": "Välj visningstitel för inbäddat ljud- och undertextspår. Det rekommenderas att inte föredra inbäddad information om du inte manuellt justerar den inbäddade spårinformationen.", + "EnableTranscodingThrottle": "Aktivera hastighetsbegränsning", + "EnableTranscodingThrottleHelp": "Emby justerar dynamiskt transkodningshastigheten för att minska CPU-användningen.", + "HeaderTypeMetadataDownloaders": "Metadatakällor för {0}", + "HeaderTypeImageFetchers": "Bildkällor för {0}", + "HeaderImageOptions": "Alternativ för bilder", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Registrera med PayPal", + "LabelSyncTempPath": "Sökväg för tillfälliga filer", + "LabelSyncTempPathHelp": "Ange en anpassad sökväg till en arbetsmapp för konverteringsjobb. Omkodad media som skapas under konverteringsprocessen kommer att lagras här. Lämna tomt för att använda serverns standardmapp.", + "LabelCustomCertificatePath": "Sökväg för eget ssl-certifikat", + "LabelCustomCertificatePathHelp": "Sökväg till en PKCS #12-fil som innehåller certifikat och privat nyckel för att aktivera tls-stöd för en personlig domän.", + "HeaderSetupLibrary": "Ställ in mediabibliotek", + "LabelTimeLimitHours": "Tidsbegränsning (timmar)", + "HeaderPreferredMetadataLanguage": "Föredraget metadataspråk", + "LabelSaveLocalMetadata": "Spara grafik i samma mapp som median", + "LabelSaveLocalMetadataHelp": "Genom att spara grafik tillsammans med mediafilerna så placeras de på en plats där de enkelt kan nås utanför Emby. Om inaktiverat kommer bilder att sparas i serverns metadata-mapp.", + "TabAccess": "Åtkomst", + "HeaderDeviceAccess": "Enhetsåtkomst", + "OptionEnableAccessFromAllDevices": "Aktivera åtkomst från alla enheter", + "OptionEnableAccessToAllChannels": "Aktivera åtkomst till alla kanaler", + "OptionEnableAccessToAllLibraries": "Aktivera åtkomst till alla bibliotek", + "DeviceAccessHelp": "Att begränsa enhetsåtkomsten hindrar användare från att använda nya enheter tills de har godkänts här.", + "LabelDisplayMissingEpisodesWithinSeasons": "Visa saknade avsnitt i säsonger", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Detta måste också vara aktiverat för TV-bibliotek på Emby Server.", + "ImportMissingEpisodesHelp": "Om aktiverat kommer information om saknade avsnitt att importeras till din Emby-databas och visas inom säsonger och serier. Detta kan orsaka betydligt längre biblioteksskanningar.", + "MessageEnablingOptionLongerScans": "Att aktivera detta alternativ kan resultera i betydligt längre biblioteksskanningar.", + "LabelMaxParentalRating": "Högsta tillåtna åldersgräns", + "MaxParentalRatingHelp": "Innehåll med högre åldersgräns visas inte för den här användaren.", + "LibraryAccessHelp": "Välj bibliotek att dela med denna användare. Administratörer kan redigera samtliga bibliotek med hjälp av metadatahanteraren.", + "ChannelAccessHelp": "Välj kanaler att dela med denna användare. Administratörer kan redigera samtliga kanaler med hjälp av metadatahanteraren.", + "ImageUploadAspectRatioHelp": "Bildförhållande 1:1 rekommenderas. Endast jpg eller png.", + "AlreadyPaidHelp1": "Om du redan har betalat för att installera en äldre version av Media Browser for Android så behöver du inte betala igen för att aktivera denna app. Klicka på OK för att skicka e-post till oss på {0} så aktiverar vi appen.", + "AlreadyPaidHelp2": "Har du redan Emby Premiere? Avbryt denna dialog och ställ in Emby Premiere i kontrollpanelen för Emby Server under Server -> Emby Premiere, så kommer upplåsning att ske automatiskt.", + "TabMyPlugins": "Installerade tillägg", + "TabCatalog": "Katalog", + "HeaderAutomaticUpdates": "Automatiska uppdateringar", + "Standard": "Standard", + "TabSupporterKey": "Emby Premiere-nyckel", + "OptionHideUserLocal": "Göm denna användare från inloggningsskärmen vid anslutning från lokalt nätverk", + "OptionHideUserRemote": "Göm denna användare från inloggningsskärmen vid fjärranslutning", + "OptionHideUserFromLoginHelp": "Användbart för privata eller dolda administratörs-konton. Användaren kommer behöva logga in manuellt genom att ange sitt användarnamn och lösenord.", + "HideFromUnusedDevices": "Göm denna användare från inloggningsskärmen på enheter de aldrig har loggat in med tidigare", + "OptionDisableUser": "Inaktivera den här användaren", + "OptionDisableUserHelp": "Om avaktiverat kommer servern inte att tillåta några anslutningar från denna användare. Aktiva anslutningar avbryts omedelbart.", + "OptionAllowUserToManageServer": "Tillåt denna användare att administrera servern", + "HeaderFeatureAccess": "Tillgång till funktioner", + "OptionAllowMediaPlayback": "Tillåt mediauppspelning", + "AllLibraries": "Alla bibliotek", + "HeaderAllowMediaDeletionFrom": "Tillåt mediaborttagning från", + "LiveTVRecordingManagement": "Hantering av inspelningar från direktsänd TV", + "OptionAllowRemoteControlOthers": "Tillåt fjärrstyrning av andra användare", + "OptionAllowRemoteSharedDevices": "Tillåt fjärrstyrning av delade enheter", + "OptionAllowRemoteSharedDevicesHelp": "Enheter med stöd för DLNA betraktas som delade fram tills dess att en användare börjar kontrollera dem.", + "OptionAllowLinkSharing": "Tillåt delning till sociala medier", + "OptionAllowLinkSharingHelp": "Endast webbsidor som innehåller medieinformation delas. Mediainnehåll delas aldrig offentligt. Delningarna är tidsbegränsade och kommer att upphöra efter {0} dagar.", + "OptionRelease": "Officiell version", + "LabelAllowServerAutoRestartPlugin": "Tillåt servern att starta om automatiskt för att tillämpa tilläggsuppdateringar", + "LabelAllowServerAutoRestartServerOrPlugin": "Tillåt servern att starta om automatiskt för att tillämpa server- eller tilläggsuppdateringar", + "LabelAllowServerAutoRestartHelp": "Servern kommer endast att starta om under inaktiva perioder när inga användare är aktiva.", + "LabelRunServerAtStartup": "Starta servern då systemet startas", + "LabelRunServerAtStartupHelp": "Detta kommer att starta Embys systemikon när Windows startar. Om du har ställt in Emby som en tjänst i Windows, lämna omarkerat och konfigurera tjänsten att starta med systemet.", + "ButtonSelectDirectory": "Välj mapp", + "LabelCachePath": "Plats för cache", + "DefaultMetadataLangaugeDescription": "Detta är dina standardinställningar. De kan justeras separat för varje enskilt bibliotek.", + "LabelCachePathHelp": "Ange en sökväg för cachefiler som till exempel bilder. Lämna tomt för att använda serverns standardmapp.", + "LabelDefaultRecordingFolder": "Standardmapp för inspelning", + "LabelMovieRecordingFolder": "Mapp för inspelning av filmer", + "LabelSeriesRecordingFolder": "Mapp för inspelning av serier", + "SeriesRecordingFolderHelp": "Välj bibliotek att spara serieinspelningar till (valfritt). Det måste vara ett bibliotek du skapat i Emby med innehållstypen inställd på serier eller blandat innehåll.", + "HeaderProgramData": "Programdata", + "RecordingFolderHelp": "Välj standardbiblioteket för att spara inspelningar i. Detta måste vara ett bibliotek som du har skapat i biblioteksinställningarna med innehållstypen inställd på blandat innehåll.", + "MovieRecordingFolderHelp": "Välj bibliotek att spara filminspelningar till (valfritt). Det måste vara ett bibliotek du skapat i Emby med innehållstypen inställd på filmer eller blandat innehåll.", + "LabelMetadataPath": "Plats för metadata", + "LabelMetadataPathHelp": "Ange platsen där mappen 'metadata' ska skapas för hämtade bilder och metadata, eller lämna tomt för att återgå till standard. Om du ändrar detta behöver du manuellt flytta innehållet från den gamla platsen till den nya. Om du någon gång manuellt ändrar innehållet i metadatamappen måste du köra det schemalagda jobbet {0}skanna metadatamapp{1}.", + "LabelTranscodingTempPath": "Temporär sökväg för transkodning", + "LabelTranscodingTempPathHelp": "Den här mappen lagrar arbetsfiler som används vid transkodning. Ange en egen sökväg eller lämna den tom för att använda serverns standarddatamapp.", + "GenerateVideoPreviewThumbnailsHelp": "Miniatyrbilder med förhandsgranskning av video ger liveuppdateringar när du söker i appar som stöds. Miniatyrbildgenerering kan ta lång tid, orsaka hög CPU-användning och konsumera ytterligare diskutrymme.", + "AsAScheduledTask": "som en schemalagd uppgift", + "AsAScheduledTaskAndMediaAdded": "som en schemalagd uppgift och när media läggs till", + "ButtonRefreshGuideData": "Uppdatera TV-tablå", + "LabelNumberOfGuideDays": "Antal dagar TV-tablådata att ladda ner", + "LabelNumberOfGuideDaysHelp": "Nedladdning av en längre periods TV-tablå ger möjlighet att schemalägga inspelningar och se vad som kommer att sändas längre fram i tiden, men ger i gengäld längre nedladdningstid. 'Auto' väljer baserat på antalet kanaler. Observera att oavsett hur många dagar du väljer måste datan finnas i källguiden för att den ska kunna laddas ner. Vissa leverantörer av guidedata tillhandahåller endast 24 timmar. Emby Guide Data stöder upp till 14 dagar.", + "HeaderFetchImages": "Nedladdning av bilder", + "LabelMaxBackdropsPerItem": "Maximalt antal bakgrunder per objekt", + "LabelMaxScreenshotsPerItem": "Högsta antal skärmdumpar per objekt", + "LabelMinBackdropDownloadWidth": "Ladda bara ner bakgrunder som är bredare än", + "LabelMinScreenshotDownloadWidth": "Ladda bara ner skärmdumpar som är bredare än", + "ButtonAddScheduledTaskTrigger": "Lägg till utlösare", + "ButtonAdd": "Lägg till", + "LabelTriggerType": "Typ av utlösare", + "OptionOnInterval": "Med visst intervall", + "OptionAfterSystemEvent": "Efter en systemhändelse", + "LabelDay": "Dag", + "LabelTime": "Tid", + "LabelEvent": "Händelse", + "OptionWakeFromSleep": "Väck från viloläge", + "Every": "Varje", + "LabelEnableRealtimeMonitor": "Aktivera realtidsbevakning av mappar", + "LabelEnableRealtimeMonitorHelp": "Filändringar kommer att bearbetas omedelbart för filsystem som stöder det.", + "Community": "Forum", + "HeaderEmbyNews": "Nyheter", + "LabelFriendlyServerName": "Användarvänligt servernamn", + "LabelFriendlyServerNameHelp": "Det här namnet används för att identifiera servern. Lämna tomt för att använda datorns namn.", + "LabelPreferredDisplayLanguage": "Föredraget visningsspråk", + "LabelPreferredDisplayLanguageHelp": "Att översätta Emby är ett pågående projekt.", + "LabelReadHowYouCanContribute": "Se hur du kan hjälpa till.", + "LabelCustomCss": "Egen css", + "LabelCustomCssHelp": "Applicera din egen css till webbgränssnittet.", + "LabelLocalHttpServerPortNumber": "Lokalt portnummer för http", + "LabelLocalHttpServerPortNumberHelp": "Den lokala tcp-porten för http som Emby Server ska lyssna på.", + "LabelPublicHttpPort": "Publikt portnummer för http", + "LabelPublicHttpPortHelp": "Det publika portnumret som ska kopplas till den lokala HTTP-porten.", + "LabelPublicHttpsPort": "Publikt portnummer för https", + "LabelPublicHttpsPortHelp": "Det publika portnumret som ska kopplas till den lokala HTTPS-porten.", + "RequireHttps": "Kräv https för externa anslutningar", + "RequireHttpsHelp": "Om aktiverat så kommer anslutningar via http att omdirigeras till https.", + "LabelHttpsPort": "Lokalt portnummer för https", + "LabelHttpsPortHelp": "Den lokala tcp-port för https som Emby Server ska lyssna på.", + "LabelEnableAutomaticPortMap": "Aktivera automatisk öppning av portar i routern (UPnP)", + "LabelEnableAutomaticPortMapHelp": "Försök att automatiskt koppla den offentliga porten till den lokala porten via UPnP. Detta kanske inte fungerar med vissa routermodeller.", + "LabelExternalDDNS": "Extern domän", + "LabelExternalDDNSHelp": "Om du har en dynamisk dns eller ett domännamn, ange det här utan protokoll eller port. Emby-appar kommer att använda det vid fjärranslutning. Det här fältet krävs för användning av eget ssl-certifikat. Exempel: mindoman.se.", + "LabelMinResumePercentage": "Lägsta gräns för återupptagande (%)", + "LabelMaxResumePercentage": "Högsta gräns för återupptagande (%)", + "LabelMinResumeDuration": "Minsta tid för återupptagande (sekunder)", + "LabelMinResumePercentageHelp": "Objekt betraktas som ospelade om uppspelningen stoppas före denna tidpunkt", + "LabelMaxResumePercentageHelp": "Objekt betraktas som färdigspelade om uppspelningen stoppas efter denna tidpunkt", + "LabelMinResumeDurationHelp": "Objekt med speltid kortare än så här kan inte återupptas", + "HeaderStatus": "Status", + "Subscriptions": "Prenumerationer", + "LabelEndingEpisodeNumber": "Avslutande avsnittsnummer", + "LabelEndingEpisodeNumberHelp": "Krävs enbart för filer som innehåller flera avsnitt", + "HeaderSupportTheTeam": "Stöd Emby-teamet", + "HeaderSupportTheTeamHelp": "Bidra till att Emby fortsätter utvecklas genom att köpa Emby Premiere. En del av alla intäkter kommer att användas för att stödja andra gratisverktyg som vi förlitar oss på.", + "DonationNextStep": "När du är klar, återvänd och fyll i din Emby Premiere-nyckel som du får via e-post.", + "HeaderRunningTasks": "Pågående aktiviteter", + "ButtonUpdateNow": "Uppdatera nu", + "PleaseUpdateManually": "Stäng av Emby Server och installera den senaste versionen.", + "ServerUpToDate": "Emby Server är uppdaterad", + "MessagePleaseRestartServerToFinishUpdating": "Starta om servern för att slutföra uppdateringarna.", + "LabelDownMixAudioScale": "Höj ljudvolymen vid nedmixning av ljudkanaler", + "LabelDownMixAudioScaleHelp": "Höj ljudvolymen vid nedmixning. Sätt värdet till 1 för att behålla ursprunglig ljudvolym.", + "HeaderForgotKey": "Glömt koden", + "LabelSupporterEmailAddress": "Den e-postadress du angav vid köpet av nyckeln.", + "ButtonRetrieveKey": "Hämta nyckel", + "LabelSupporterKey": "Din Emby Premiere-nyckel (klistra in från e-post)", + "LabelSupporterKeyHelp": "Skriv in din Emby Premiere-nyckel för att ta del av extra förmåner.", + "MessageInvalidKey": "Emby Premiere-nyckeln saknas eller är ogiltig.", + "ErrorMessageInvalidKey": "För att premiuminnehåll ska registreras måste du ha en aktiv prenumeration på Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Hoppa över om videofilen redan innehåller inbäddade undertexter som matchar nedladdningsspråket", + "LabelSkipIfGraphicalSubsPresentHelp": "Att behålla textbaserade undertexter ger effektivare leverans och minskar risken för att videon transkodas.", + "HeaderDownloadLanguages": "Ladda ner språk", + "LabelSkipIfAudioTrackPresent": "Hoppa över om det förvalda ljudspårets språk är samma som det nedladdade", + "LabelSkipIfAudioTrackPresentHelp": "Bocka ur detta för att säkerställa att alla videor har undertexter, oavsett ljudspårets språk.", + "SendMessage": "Skicka meddelande", + "HeaderSendMessage": "Skicka meddelande", + "ButtonSend": "Skicka", + "LabelMessageText": "Meddelandetext", + "LabelMessageTitle": "Meddelandetitel", + "ButtonEditOtherUserPreferences": "Ändra den här användarens profil, bild och personliga inställningar.", + "LabelLoginDisclaimer": "Meddelande vid inloggning", + "LabelLoginDisclaimerHelp": "Detta visas längst ner på inloggningssidan.", + "HeaderTranscodingTemporaryFiles": "Temporära filer för transkodning", + "HeaderApiKeys": "API-nycklar", + "HeaderApiKeysHelp": "Externa applikationer behöver en API-nyckel för att kommunicera med Emby Server. Nycklar skapas genom att logga in med ett Emby-konto eller genom att manuellt skapa en nyckel till applikationen.", + "HeaderApiKey": "API-nyckel", + "HeaderResumeSettings": "Inställningar för återupptagning", + "HeaderFetcherSettings": "Inställningar", + "HeaderActivity": "Aktivitet", + "ButtonPurchase": "Köp", + "HeaderInstall": "Installera", + "LabelSelectVersionToInstall": "Välj version att installera", + "LinkLearnMoreAboutSubscription": "Läs mer om Emby Premiere", + "MessagePluginRequiresSubscription": "Det här tillägget kräver en aktiv prenumeration på Emby Premiere efter en 14 dagars testperiod.", + "MessagePremiumPluginRequiresMembership": "Detta tillägg kräver en aktiv prenumeration på Emby Premiere för att kunna köpas efter testperioden på 14 dagar.", + "HeaderDeveloperInfo": "Information för utvecklare", + "HeaderRevisionHistory": "Revisionshistorik", + "ButtonViewWebsite": "Visa webbplats", + "OptionSaveMetadataAsHidden": "Spara metadata och bilder som dolda filer", + "LabelConnectEmail": "E-postadress för Emby Connect (valfritt)", + "LabelConnectEmailHelp": "Lämna tomt för att inte länka något konto. Denna användare kan länkas till ett befintligt Emby Connect-konto för att möjliggöra enkel inloggning från vilken Emby-app som helst, utan att behöva känna till serverns uppgifter.", + "ButtonLearnMoreAboutEmbyConnect": "Läs mer om Emby Connect", + "LabelDateAddedBehavior": "Hantering av datum för nytt innehåll", + "OptionDateAddedImportTime": "Använd datum för inläsning i biblioteket", + "OptionDateAddedFileTime": "Använd datum då filen skapades", + "LabelDateAddedBehaviorHelp": "Om ett metadatavärde finns kommer det att användas i stället för dessa.", + "HeaderLibrarySettings": "Inställningar för bibliotek", + "HeaderAutomaticSubtitleDownloads": "Automatisk nedladdning av undertexter", + "HeaderCameraUploadHelp": "Emby-appar kan automatiskt ladda upp foton tagna med dina mobila enheter till Emby Server.", + "LabelCameraUploadPath": "Sökväg för kamerauppladdning", + "LabelCameraUploadPathHelp": "Ange en anpassad sökväg för filer. Detta ersätter eventuella standardinställningar för Kamerauppladdning. Om fältet lämnas tomt så kommer standardsökvägen att användas. Om en anpassad sökväg används så kommer den också att behöva läggas till som ett bibliotek.", + "DefaultCameraUploadPathHelp": "Ange en anpassad sökväg för filer. Lämna tomt för att använda standardmappen. Om en anpassad sökväg anges så behöver sökvägen även läggas till som bibliotek.", + "LabelCreateCameraUploadSubfolder": "Skapa en undermapp för varje enhet", + "LabelCreateCameraUploadSubfolderHelp": "Särskilda mappar för varje enhet kan anges på sidan Enheter genom att klicka på respektive enhet.", + "LabelCustomDeviceDisplayNameHelp": "Ange ett anpassat enhetsnamn. Lämna tomt för att använda det namn som enheten själv rapporterar.", + "TabParentalControl": "Föräldrakontroll", + "HeaderAccessSchedule": "Schema för åtkomst", + "HeaderAccessScheduleHelp": "Skapa ett schema för att begränsa åtkomsten till vissa tider.", + "HeaderLibraryAccess": "Biblioteksåtkomst", + "HeaderChannelAccess": "Kanalåtkomst", + "LabelForgotPasswordUsernameHelp": "Skriv ditt användarnamn, om du kommer ihåg det.", + "TitlePasswordReset": "Återställning av lösenord", + "HeaderBlockItemsWithNoRating": "Blockera innehåll med ingen eller okänd åldersgräns", + "LabelBlockContentWithTags": "Blockera innehåll med taggarna", + "LabelTagRestrictionMode": "Läge för begränsning av taggar", + "BlockItemsWithTheseTags": "Blockera objekt med dessa taggar", + "AllowItemsWithTheseTags": "Tillåt endast objekt med dessa taggar", + "OptionAllowContentDownloading": "Tillåt nedladdning av media", + "LabelNewUserNameHelp": "Användarnamn kan innehålla bokstäver (a-z), nummer (0-9), streck (-), understreck (_), apostrofer (') och punkter (.)", + "HeaderThisUserIsCurrentlyDisabled": "Den här användaren är inaktiverad För att aktivera denna användare, se alternativet längst ner på den här sidan.", + "OptionAllowSyncTranscoding": "Tillåt nedladdning och synkronisering som kräver transkodning", + "AllowMediaConversion": "Tillåt mediakonvertering", + "AllowMediaConversionHelp": "Tillåt eller neka tillgång till funktionen för mediakonvertering.", + "OptionAllowAudioPlaybackTranscoding": "Tillåt ljudtranskodning till ett kompatibelt format vid behov under uppspelning", + "OptionAllowVideoPlaybackTranscoding": "Tillåt videotranskodning till ett kompatibelt format vid behov under uppspelning", + "OptionAllowVideoPlaybackRemuxing": "Tillåt ändring (remux) av behållarformat under mediauppspelning", + "OptionAllowMediaPlaybackTranscodingHelp": "Att begränsa åtkomsten till transkodning inaktiverar kvalitetsval och kan orsaka uppspelningsfel i Emby-appar på grund av medieformat som inte stöds eller otillräcklig nätverksbandbredd.", + "LabelRemoteClientBitrateLimit": "Bitrate-begränsning för fjärrströmning (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "En valfri begränsning av bithastighet per ström för alla enheter utanför nätverket. Detta begränsar kvaliteten för fjärrströmning även om användaren har valt en högre kvalitet i spelaren. Inställningen är användbar för att förhindra att enheter begär en högre bithastighet än vad din internetanslutning klarar av. Detta kan leda till ökad CPU-belastning på din server eftersom videofiler måste transkodas i realtid till en lägre bithastighet.", + "LabelUserRemoteClientBitrateLimitHelp": "Detta kommer att åsidosätta det globala värdet som är inställt under de avancerade serverinställningarna.", + "OptionEnableFullSpeedConversion": "Aktivera omkodning i full hastighet", + "OptionEnableFullSpeedConversionHelp": "Som standard omkodas filer i låg hastighet för att minimera användningen av systemresurser.", + "OptionEnableAutomaticServerUpdates": "Aktivera automatiska serveruppdateringar", + "HeaderTVSources": "TV-källor", + "HeaderAddTvSource": "Lägg till tv-källa", + "LabelTunerIpAddress": "IP-adress till mottagare", + "HeaderGuideProviders": "Leverantörer av Guide Data", + "HeaderAddGuideSource": "Lägg till tv-tablåkälla", + "LabelZipCode": "Postnummer", + "LabelLineup": "Uppsättning", + "LabelImportOnlyFavoriteChannels": "Begränsa till kanaler markerade som favoriter", + "ImportFavoriteChannelsHelp": "Aktivera för att enbart importera kanaler som är markerade som favoriter på den här mottagaren.", + "HeaderDefaultRecordingSettings": "Standardinställningar för inspelning", + "LabelDisplayName": "Visningsnamn", + "OptionDownloadImagesInAdvance": "Ladda ner bilder i förväg", + "OptionDownloadImagesInAdvanceHelp": "Som standard laddas de flesta bilder inte ner från internet förrän de visas av en Emby-app. Aktivera det här alternativet för att ladda ner alla bilder i förväg, allt eftersom ny media importeras. Detta kan orsaka betydligt längre biblioteksskanningar.", + "MessageThankYouForSupporting": "Tack för att du stöder Emby.", + "FileReadCancelled": "Inläsningen av filen har avbrutits.", + "FileNotFound": "Kan inte hitta filen.", + "FileReadError": "Ett fel inträffade vid inläsningen av filen.", + "NoPluginConfigurationMessage": "Detta tillägg har inga inställningar att konfigurera.", + "HeaderNewApiKey": "Ny API-nyckel", + "HeaderNewApiKeyHelp": "Ge en applikation åtkomst till att kommunicera med Emby Server.", + "MessageKeyEmailedTo": "Nyckeln mailad till {0}.", + "HeaderConfirmation": "Bekräftelse", + "MessageKeyUpdated": "Tack! Din Emby Premiere-nyckel har uppdaterats.", + "MessageKeyRemoved": "Tack! Din Emby Premiere-nyckel har tagits bort.", + "TextEnjoyBonusFeatures": "Njut av extra funktioner", + "MessageErrorLoadingSupporterInfo": "Det uppstod ett fel vid laddningen av information om Emby Premiere. Försök igen senare.", + "ValueTimeLimitSingleHour": "Tidsbegränsning: 1 timme", + "ValueTimeLimitMultiHour": "Tidsbegränsning: {0} timmar", + "General": "Allmänt", + "HeaderScreenSavers": "Skärmsläckare", + "Reporting": "Rapportering", + "LabelStopping": "Avbryter", + "HeaderSelectCertificatePath": "Välj sökväg för certifikat", + "HeaderSupporterBenefit": "Ett aktivt Emby Premiere-abonnemang ger ytterligare fördelar som tillgång till Emby DVR, offline-media, premium-tillägg och mer. {0}Läs mer{1}.", + "LabelAbortedByServerShutdown": "(avbröts eftersom servern stängdes av)", + "LabelScheduledTaskLastRan": "Senast körd {0}, tog {1}.", + "HeaderDeleteTaskTrigger": "Ta bort aktivitetsutlösare", + "MessageDeleteTaskTrigger": "Vill du ta bort denna aktivitetsutlösare?", + "MessageNoPluginsDueToAppStore": "Använd Embys webapp för att hantera tillägg.", + "LabelVersionInstalled": "{0} installerad", + "HeaderSelectServerCachePath": "Välj plats för serverns cache", + "HeaderSelectTranscodingPath": "Välj plats för mellanlagring vid transkodning", + "HeaderSelectMetadataPath": "Välj plats för metadatalagring", + "HeaderSelectServerCachePathHelp": "Bläddra fram till eller ange plats för serverns cache. Katalogen måste vara tillgänglig för skrivning.", + "HeaderSelectTranscodingPathHelp": "Bläddra eller ange sökvägen som ska användas för temporära transkodningsfiler. Mappen måste vara skrivbar.", + "HeaderSelectMetadataPathHelp": "Bläddra fram till eller ange plats för lagring av metadata. Katalogen måste vara tillgänglig för skrivning.", + "MessageConfirmRestart": "Är du säker på att du vill starta om Emby Server?", + "MessageConfirmShutdown": "Är du säker på att du vill stänga av Emby Server?", + "LabelLocalAccessUrl": "Lokal åtkomst (LAN): {0}", + "LabelRemoteAccessUrl": "Extern åtkomst (WAN): {0}", + "LabelRunningOnPort": "Kör http på port {0}", + "LabelRunningOnPorts": "Kör http på port {0} och https på port {1}", + "LabelCurrentPath": "Aktuell sökväg", + "HeaderSelectMediaPath": "Välj sökväg till media", + "HeaderSelectPath": "Välj sökväg", + "MessageDirectoryPickerInstruction": "Nätverkssökvägar kan anges manuellt om nätverksknappen misslyckas med att hitta dina enheter. Till exempel {0} eller {1}.", + "MessageDirectoryPickerBSDInstruction": "För BSD kan det vara nödvändigt att konfigurera lagring inom din FreeNAS Jail för att tillåta Emby att få åtkomst till den.", + "MessageDirectoryPickerLinuxInstruction": "För Linux på ArchLinux, CentOS, Debian, Fedora, OpenSuse, eller Ubuntu, behöver du ge systemanvändaren för Emby minst läsrättigheter till dina lagringsplatser.", + "MetadataManager": "Metadatahanteraren", + "OptionBlockLiveTvChannels": "Kanaler på direktsänd TV", + "OptionBlockChannelContent": "Kanalinnehåll från internet", + "ButtonRevoke": "Återkalla", + "MessageConfirmRevokeApiKey": "Är du säker på att du vill återkalla den här API-nyckeln? Applikationens koppling till Emby Server kommer att avslutas omedelbart.", + "HeaderConfirmRevokeApiKey": "Återkalla API-nyckel", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Acceptera användarvillkoren innan du går vidare.", + "HeaderChangeFolderType": "Ändra innehållstyp", + "HeaderChangeFolderTypeHelp": "För att ändra typ, ta bort och bygg om biblioteket med den nya typen.", + "HeaderAlert": "Varning", + "MessagePleaseRestart": "Starta om för att slutföra uppdateringarna.", + "OptionHomeVideos": "Egna videor & foton", + "OptionBooks": "Böcker", + "HeaderMetadataReaders": "Metadataläsare", + "LabelMetadataReadersHelp": "Aktivera och rangordna dina föredragna lokala metadatakällor i prioritetsordning.", + "HeaderSubtitleDownloaders": "Nedladdare av undertexter", + "SubtitleDownloadersHelp": "Aktivera och rangordna källor för undertexter i prioritetsordning. Fler undertextsleverantörer kan installeras som tillägg från Emby-katalogen.", + "LabelMetadataDownloaders": "Källor för metadata", + "LabelMetadataDownloadersHelp": "Aktivera och rangordna källor för metadata i prioritetsordning. Källor med lägre prioritet används enbart då information saknas i källor med högre prioritet.", + "HeaderMetadataSavers": "Metadatasparare", + "LabelMetadataSaversHelp": "Välj filformaten att spara metadata till.", + "LabelImageFetchers": "Källor för bilder", + "LabelImageFetchersHelp": "Aktivera och rangordna dina bildkällor i prioritetsordning.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Ta bort mediaplats", + "MessageConfirmRemoveMediaLocation": "Är du säker på att du vill ta bort den här platsen?", + "LabelNewName": "Nytt namn", + "HeaderRemoveLibrary": "Ta bort bibliotek", + "MessageAreYouSureYouWishToRemoveLibrary": "Är du säker på att du vill ta bort biblioteket {0} från din Emby Server? Dina filer kommer inte att påverkas.", + "ButtonRename": "Ändra namn", + "HeaderPluginInstallation": "Installation av tillägg", + "MessageTrialExpired": "Provperioden för den här funktionen är avslutad", + "MessageTrialWillExpireIn": "Provperioden för den här funktionen avslutas om {0} dag(ar)", + "ValuePriceUSD": "Pris: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Du är registrerad för den här funktionen och kommer kunna fortsätta att använda den med en aktiv prenumeration på Emby Premiere.", + "HeaderSelectExternalPlayer": "Välj extern spelare", + "HeaderExternalPlayerPlayback": "Uppspelning med extern spelare", + "HeaderThankYou": "Tack", + "HeaderSelectUploadPath": "Välj sökväg för uppladdning", + "ErrorMessageStartHourGreaterThanEnd": "Sluttiden måste vara senare än starttiden.", + "MessagePluginConfigurationRequiresLocalAccess": "Logga in på din lokala Emby Server för att konfigurera det här tillägget.", + "MovieLibraryHelp": "Läs {0}Embys vägledning för namngivning av film{1}.", + "TvLibraryHelp": "Läs {0}Embys vägledning för namngivning av tv{1}.", + "BookLibraryHelp": "Textböcker stöds. Läs {0}Embys vägledning för namngivning av böcker{1}.", + "MessageGamePluginRequired": "Kräver installation av GameBrowser-tillägget", + "HeaderUnlockApp": "Lås upp app", + "MessagePaymentServicesUnavailable": "Betalningstjänsterna är inte tillgängliga just nu. Försök igen senare.", + "NoNewDevicesFound": "Inga nya enheter hittades. För att lägga till en ny mottagare, stäng denna dialogruta och mata in enhetsinformationen manuellt.", + "MessageConfirmDeleteTunerDevice": "Är du säker på att du vill ta bort den här enheten?", + "MessageConfirmDeleteGuideProvider": "Är du säker på att du vill ta bort den här tv-tablåkällan?", + "HeaderDeleteProvider": "Ta bort källa", + "ErrorAddingTunerDevice": "Det gick inte att lägga till mottagaren. Säkerställ att den går att nå och försök igen.", + "ErrorSavingTvProvider": "Ett fel uppstod när tv-leverantören skulle sparas. Se till att den går att nå och försök igen.", + "ErrorGettingTvLineups": "Ett fel uppstod vid nedladdning av tv-data. Kontrollera att uppgifterna stämmer och försök igen.", + "MessageCreateAccountAt": "Skapa ett konto på {0}", + "ErrorPleaseSelectLineup": "Välj en lineup och försök igen. Om inga lineups finns tillgängliga, kolla så att användarnamn, lösenord och postnummer stämmer.", + "ErrorValidatingSupporterInfo": "Ett fel uppstod vid valideringen av Emby Premiere. Försök igen senare.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Tilläggstoppen", + "ForAdditionalLiveTvOptions": "Bläddra i {0}Embykatalogen för tillägg{1} för att installera ytterligare Live TV-leverantörer.", + "AddUser": "Skapa användare", + "HeaderEmailAddress": "E-postadress", + "NumLocationsValue": "{0} mappar", + "PleaseAddAtLeastOneFolder": "Lägg till minst en katalog till det här biblioteket genom att klicka på Lägg till-knappen.", + "ErrorAddingMediaPathToVirtualFolder": "Det gick inte att lägga till sökvägen. Kontrollera att sökvägen är korrekt och att Emby Server har rättigheter till sökvägen.", + "ErrorAddingEmbyConnectAccount3": "Emby-kontot är redan kopplat till en existerande lokal användare. Ett konto kan enbart kopplas till 1 lokal användare åt gången.", + "HeaderConfirmPluginInstallation": "Bekräfta installation av tillägg", + "PleaseConfirmPluginInstallation": "Klicka på OK för att bekräfta att du har läst ovanstående och önskar fortsätta med installationen av tillägget.", + "MessagePluginInstallDisclaimer": "Tillägg skapade av Emby-användare är ett bra sätt att förbättra din Emby-upplevelse med ytterligare funktionalitet. Observera att detta kan påverka din Emby Server på sätt som längre tidsåtgång för biblioteksskanningar, ytterligare bakgrundsprocesser och minskad systemstabilitet.", + "HardwareAccelerationWarning": "Aktivering av hårdvaruacceleration kan innebära instabilitet i vissa miljöer. Säkerställ att ditt operativsystem och dina grafikdrivrutiner är helt uppdaterade. Om du har problem att spela upp videor när detta är på behöver du ändra tillbaka inställningen till Auto.", + "ValueExample": "Exempel: {0}", + "LabelFileOrUrl": "Fil eller url", + "OptionEnableForAllTuners": "Aktivera för alla mottagare", + "HeaderTuners": "Mottagare av direktsänd TV", + "DrmChannelsNotImported": "Kanaler med DRM kommer inte att importeras.", + "LabelAllowHWTranscoding": "Tillåt hårdvaruaccelererad transkodning", + "AllowHWTranscodingHelp": "Om aktiverat, tillåt tv-mottagaren att transkoda strömmar i realtid. Detta kan minska behovet av transkodning på Emby Server.", + "MetadataSettingChangeHelp": "Förändringar i inställningarna för metadata gäller enbart för nytt innehåll som läggs till från och med nu. För att uppdatera redan existerande media, öppna detaljer och klicka på knappen för att uppdatera metadata. Du kan också använda massuppdatering via metadatahanteraren i menyn.", + "RecordingPathChangeMessage": "Ändring av katalogen för inspelningar kommer inte att flytta inspelningar från den gamla platsen till den nya. De behöver flyttas manuellt om så önskas.", + "LabelLocalIpAddress": "Lokal IP-adress", + "LabelBindToLocalNetworkAddressHelp": "Åsidosätt den lokala IP-adressen som Emby Server kommer att presentera för Emby-appar. Om detta lämnas tomt, kommer servern automatiskt att upptäcka och använda den lokala IP-adressen.", + "SettingsWarning": "Ändring av dessa alternativ kan innebära instabilitet eller anslutningsproblem. Återställ till standardvärden om du upplever några problem.", + "OptionSaveMetadataAsHiddenHelp": "Ändringar kommer att gälla för ny metadata som sparas från och med nu. Redan existerande filer för metadata kommer att uppdateras nästa gång de sparas av Emby.", + "EnablePhotos": "Aktivera foton", + "EnablePhotosHelp": "Foton kommer att upptäckas och visas tillsammans med andra mediafiler.", + "ImportPlaylists": "Importera spellistafiler", + "ImportPlaylistsHelp": "Spellistor funna i dina mediasökvägar kan importeras till Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Spara videominiatyrer i samma mappar som mediafilerna", + "LabelGenerateVideoPreviewThumbnails": "Generera miniatyrbilder för förhandsvisning av video", + "LabelEnableDebugLogging": "Aktivera loggning på felsökningsnivå (debug)", + "OptionEnableExternalContentInSuggestions": "Aktivera externt innehåll under förslag", + "OptionEnableExternalContentInSuggestionsHelp": "Visa trailrar på internet och sändningar på direktsänd TV under förslag.", + "LabelOptionalNetworkPath": "Delad nätverksmapp", + "LabelOptionalNetworkPathHelp": "Om denna mapp delas på ditt nätverk, kan den delade sökvägen tillåta Emby-appar på andra enheter att streama mediafiler direkt utan att gå via Emby Server.", + "SynologyUpdateInstructions": "Logga in på DSM och gå till Paketcenter för att uppdatera.", + "HeaderRecordingPostProcessing": "Efterbehandling av inspelningar", + "LabelPostProcessorArguments": "Kommandolinjeargument för efterbehandlaren", + "PostProcessorArgumentsHelp": "Följande variabler stöds på kommandoraden för att kunna skicka data till din efterbehandlare", + "LabelPostProcessor": "Sökväg till programvara för efterbehandling", + "DvrPostProcessorPathArgument": "{path}: Hela sökvägen för den nya, inspelande filen", + "OptionAutomaticallyGroupSeries": "Slå ihop avsnitt som är spridda över flera mappar", + "OptionAutomaticallyGroupSeriesHelp": "Om aktiverat, kommer serier som är utspridda över flera mappar inom detta bibliotek automatiskt att slås samman till en enda serie.", + "WhenDidYouPurchaseApp": "När köpte du den här appen?", + "PreferEmbeddedTitlesOverFileNames": "Föredra inbäddade titlar över filnamnen", + "PreferEmbeddedTitlesOverFileNamesHelp": "Det här bestämmer visningstiteln när ingen internetmetadata eller lokal metadata finns tillgänglig.", + "FriendlyNameForReferenceHelp": "Ett användarvänligt namn som används för visning, för din egen referens.", + "HeaderLiveTvTunerSetup": "Inställningar för mottagare av direktsänd TV", + "HeaderTVSourceSetup": "Ställ in tv-källa", + "HeaderDetectMyDevices": "Upptäck enheter", + "MessagePleaseWait": "Vänta. Detta kan ta ett tag.", + "DetectingDevices": "Söker efter enheter", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Efter den första importen, uppdatera metadata automatiskt från internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Uppdatera metadata automatiskt för avsnitt med platshållartitlar som till exempel TBA", + "EveryNDays": "Var {0}:e dag", + "LabelCertificatePassword": "Lösenord för certifikat", + "LabelCertificatePasswordHelp": "Om ditt certifikat kräver ett lösenord, ange det här.", + "HeaderNewLibrary": "Nytt bibliotek", + "HttpsRequiresCert": "För att aktivera säkra anslutningar krävs ett betrott ssl-certifikat, från till exempel Lets Encrypt. Ange sökvägen till ett certifikat eller inaktivera säkra anslutningar.", + "ServerRestartNeededAfterPluginInstall": "Emby Server behöver startas om efter installation av tillägg.", + "PluginInstalledMessage": "Tillägget har installerats. Emby Server behöver startas om för att verkställa ändringarna.", + "MessagePremiereStatusGood": "Du har en {0} Emby Premiere-prenumeration och din enhetsanvändning är väl inom gränsen.", + "MessagePremiereStatusClose": "Du har en {0} Emby Premiere-prenumeration, men din enhetsanvändning är nära gränsen.", + "MessagePremiereExtendedPlans": "Överväg en {0}utökad enhetsplan{1}", + "MessagePremiereStatusOver": "Du har en {0} Emby Premiere-prenumeration, men du har överstigit enhetsgränsen!", + "ListItemPremiereSub": "{0} abonnemang köpt via {2} går ut {1}", + "LabelClickToManage": "Klicka för att hantera denna prenumeration", + "LabelCancelInfo": "Du kan hantera prenumerationen direkt med {0}", + "LabelAlreadyCanceled": "Abonnemanget har sagts upp. Nyckeln förblir giltig för resterande abonnemangsperiod.", + "HeaderCancelSub": "Säg upp Emby Premiere", + "MessageConfirmSubCancel": "NEJ, snälla stanna... Du kommer att gå miste om alla fantastiska funktioner med Emby Premiere!", + "ButtonCancelSub": "Jag vet, säg upp ändå", + "ButtonDontCancelSub": "Behåll Emby Premiere", + "MessageSubCancelReqSent": "Ett e-postmeddelande har skickats till ägaren av nyckeln. Följ instruktionerna för att fullborda uppsägningen av abonnemanget. Vi hoppas på ett återseende!", + "MessageSubCancelError": "Något gick fel. Skicka ett e-postmeddelande till {0} så hjälper vi dig.", + "LabelAlreadyCancelled": "Abonnemanget har sagts upp. Ditt konto kommer inte att debiteras igen, men du har tillgång till förmånerna fram till datumet ovan.", + "AllowOnTheFlySubtitleExtraction": "Tillåt extrahering av undertexter under uppspelning", + "AllowOnTheFlySubtitleExtractionHelp": "Inbäddade undertexter kan extraheras från videor och levereras som vanlig text till Emby-appar för att minska behovet av videotranskodning. På vissa system kan detta ta lång tid och orsaka att videouppspelningen hackar under extraheringsprocessen. Inaktivera detta för att bränna in inbäddade undertexter i videon genom transkodning när de inte stöds direkt av klienten.", + "AllowOnTheFlyFontExtraction": "Tillåt extrahering av undertexttypsnitt i realtid", + "AllowOnTheFlyFontExtractionHelp": "Inbäddade typsnitt kan extraheras från videor och skickas till Emby-appar för att stödja videor med anpassade typsnitt. På vissa system kan detta ta lång tid och orsaka att uppspelningen stannar till under extraheringsprocessen.", + "EnableDebugLoggingHelp": "Felsökningsloggning ska enbart aktiveras när det krävs för felsökning. Den ökade åtkomsten till filsystemet kan förhindra servern från att gå ner i sparläge i vissa miljöer.", + "LabelSimultaneousConnectionLimit": "Begränsning för samtidiga strömmar", + "SimultaneousConnectionLimitHelp": "Maximalt antal tillåtna samtidiga strömmar. Ange 0 för att inte begränsa.", + "LaunchWebAppOnStartup": "Starta Embys webapp i min webbläsare när Emby Server startas", + "LaunchWebAppOnStartupHelp": "Det här startar webbappen i din webbläsare när Emby Server startas upp. Det sker dock inte när funktionen för att starta om Emby Server används i kontrollpanelen.", + "LabelReferrerHeader": "Referer HTTP-header", + "LabelUserAgentHeader": "Användaragent http-rubrik (header)", + "SupplyCustomValueIfNeeded": "Ange ett eget http rubrik (header) värde, om det behövs.", + "HeaderConfigureRemoteAccess": "Konfigurera extern åtkomst", + "LearnHowToCreateSynologyShares": "Lär dig hur man delar mappar på Synology.", + "LabelAllowedRemoteAddresses": "Filter för externa ip-adresser", + "LabelAllowedRemoteAddressesMode": "Typ av filter", + "Whitelist": "Vitlista", + "Blacklist": "Svartlista", + "AllowedRemoteAddressesHelp": "Kommaseparerad lista med IP-adresser eller IP/nätmask-poster för nätverk som ska tillåtas eller nekas för fjärranslutning. Om fältet lämnas tomt, tillåts alla fjärradresser.", + "LabelLanNetworks": "IP-adress(er) för lokalt nätverk (LAN)", + "LanNetworksHelpText": "Kommaseparerad lista med IP-adresser eller IP/nätmask-poster för nätverk som ska betraktas som lokala vid tillämpning av bandbredds- och fjärråtkomstbegränsningar. Om detta anges, kommer alla andra IP-adresser att betraktas som externa. Om fältet lämnas tomt, betraktas endast serverns subnät och vanliga privata IP-subnät (192.168.0.0/24, 172.16.0.0/12 osv.) som lokala nätverk.", + "LabelSecureConnectionsMode": "Läge för säker anslutning", + "PreferredNotRequired": "Föredraget, men inget krav", + "RequiredForAllRemoteConnections": "Krävs för alla fjärranslutningar", + "HandledByProxy": "Hanteras av reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Spara nedladdade undertexter i samma mapp som media", + "SaveSubtitlesIntoMediaFoldersHelp": "Lagring av undertexter tillsammans med videofilerna gör det enklare att hantera dem.", + "AutomaticSubtitleDownloadInstructions": "Inställningar för nedladdning av undertexter hanteras genom inställningarna för varje enskilt bibliotek.", + "ProviderNeedsSetupWithUrl": "{0} kräver ytterligare inställningar på {1}inställningsskärmen{2} på Emby Server.", + "LabelEnableHardwareAcceleration": "Aktivera hårdvaruacceleration när det finns tillgängligt", + "HeaderPreferredHardwareDecoders": "Föredragna hårdvaruavkodare", + "HeaderPreferredHardwareEncoders": "Föredragna hårdvarukodare", + "AllowChangingImageAndPassword": "Tillåt att denna användare byter sitt lösenord och profilbild", + "LabelSimultaneousStreamLimit": "Max samtidiga videoströmmar", + "SimultaneousStreamLimitHelp": "Begränsa antalet samtidiga videouppspelningssessioner.", + "LabelMusicFolderStructure": "Musikmappsstruktur", + "LabelMusicFolderStructureHelp": "Detta ger en ledtråd till bibliotekssökaren om hur dina mappar är organiserade. Om du är osäker, eller om dina mappar inte exakt matchar något av alternativen, välj då standardalternativet Annat.", + "OtherOrUnstructured": "Annat eller ostrukturerat", + "PerfectArtistAlbumTrack": "Perfekt organiserat i artist/album-mappar med ljudspåren placerade direkt i albumen.", + "PerfectAlbumTrack": "Perfekt organiserat i albummappar med ljudspåren placerade direkt i albumen.", + "LabelMinCollectionSize": "Antal objekt för att skapa samling automatiskt", + "PerfectAuthorAudioBookTrack": "Perfekt organiserat i författar/bokmappar, med spår direkt i bokmapparna.", + "PerfectAudioBookTrack": "Perfekt organiserat i bokmappar, med spår direkt i bokmapparna.", + "MinCollectionSizeHelp": "Skapa samlingar automatiskt när det finns minst det valda antalet titlar som ingår i samlingen i biblioteket. Ändring av detta värde påverkar inte redan existerande samlingar.", + "LabelImportCollections": "Importera information om samlingar från metadatakällorna", + "LabelImportCollectionsHelp": "När detta är aktiverat importeras samlingsinformation från dina aktiverade metadatakällor. Detta kan leda till att oönskade samlingar skapas automatiskt. Inaktivering förhindrar att framtida samlingar skapas automatiskt men raderar inte befintliga.", + "LabelAllowAdultMetadata": "Tillåt metadata för media med vuxet innehåll", + "LabelAllowAdultMetadataHelp": "Tillåt matchning av vuxna titlar när sökningar för internet-metadata sker.", + "HeaderVideoPreviewThumbnails": "Videominiatyrbilder", + "LabelEnableHDRToneMapping": "Aktivera HDR-tonmappning", + "EnableHDRToneMappingHelp": "Tonmappning säkerställer korrekt färgkonvertering vid transkodning av HDR-innehåll, som annars kan se mycket nedtonat och avmättat ut. Ytterligare drivrutinskomponenter kan behövas för att stödja hårdvaruacceleration när denna funktion är aktiverad. Se vår guide för hårdvaruacceleration för mer information.", + "WithHardwareAcceleratedTranscoding": "Ja, endast med maskinvaruacceleration", + "TranscodingStillInitializing": "Serverns transkodningstjänst håller fortfarande på att startas. Detta meddelande kommer att försvinna automatiskt när tjänsterna är redo.", + "WithEitherHardwareOrSoftwareTranscoding": "Ja, med antingen hårdvaru- eller mjukvarutranskodning", + "ToneMappingInHardwareDescription": "Tonmappning kommer enbart att utföras med hårdvaruacceleration när detta är aktiverat och stöds av din hårdvara, annars undviks det.", + "ToneMappingInSoftwareDescription": "Tonmappning kommer att utföras av processorn genom mjukvara. Detta är mycket långsammare än med hårdvaruaccelererad tonmappning och kommer därför att kräva en mycket stark serverenhet.", + "ToneMappingInBothDescription": "Tonmappning kommer att utföras med hårdvaruacceleration förutsatt att hårdvaran stöds och att funktionen är aktiverad, annars kommer den att falla tillbaka på mjukvara. Tonmappning via mjukvara kommer att vara mycket långsammare än med den hårdvaruaccelererade metoden och kommer att kräva en kraftfull enhet.", + "AutoMapped": "Automatiskt kartlagt (mapped)", + "ManuallyMapped": "Manuellt kartlagt (mapped)", + "NotMappedToGuideData": "Inte kopplad till guidedata", + "MappedToValue": "Kopplad till {0}", + "LabelAutomaticallyWakeServerForRecordings": "Väck servern automatiskt för att utföra inspelningar", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Väckningsevent kommer att schemaläggas med serveroperativsystemet. Genom att inaktivera detta alternativ förhindras framtida väckningar från att bli schemalagda, men det förändrar inte tidigare schemalagda event.", + "Database": "Databas", + "LabelOptimizeDatabaseOnShutdown": "Optimera databasen när servern stängs av", + "LabelOptimizeDatabaseOnShutdownHelp": "Databasens optimeringsåtgärd är oftast en åtgärd som inte gör något (no-op), men ibland utför den en analys om det verkar som att det kan vara användbart för frågeplaneraren, det vill säga systemet som hanterar databasfrågor. Denna analys kan ibland resultera i att Emby Server tar längre tid att stänga ner.", + "LabelDatabaseCacheSize": "Storlek på databasens cache (MB)", + "LabelDatabaseCacheSizeHelp": "Anger storleken för databasen som kommer att hållas i minnet, per databasfil. Ett större värde kan hjälpa till att förbättra Emby Server-prestandan. Kräver en serveromstart för att träda i kraft.", + "LabelDatabaseAnalysisLimit": "Analysradsgräns", + "LabelDatabaseAnalysisLimitHelp": "När databasen optimeras är detta det ungefärliga antalet rader som undersöks i varje index av ANALYZE-kommandot. Ett större värde kommer att öka effektiviteten av databasoptimeringen, men kan göra att Emby Server tar längre tid att stänga av.", + "LabelVacuumDb": "Städa databasen vid nästa uppstart av Emby Server", + "LabelVacuumDbHelp": "Städning/dammsugning återuppbygger databasfilen och packar om den till en minimal mängd diskutrymme. I vissa fall kan detta förbättra prestandan för Emby Server. Observera att din Emby Server inte kommer att vara användbar under tiden för städningsåtgärden, och det kommer inte finnas något sätt att övervaka städningsprocessens framsteg. Undvik att tvinga avslut av Emby Server-processen under denna tid eftersom det kan leda till databaskorruption. Detta är en engångsåtgärd, och denna inställning återställs till icke-ikryssad vid nästa serverstart.", + "AdvancedOptionsWarning": "Detta är avancerade inställningar och bör lämnas orörda såvida du inte har en god anledning till att ändra dem.", + "HeaderRecentlyActiveDevices": "Nyligen aktiva enheter", + "YesUntilServerRestart": "Ja, tills nästa serveromstart", + "YesUntilLogRotate": "Ja, tills nästa loggfilsrotation", + "LabelSubtitleDownloadMaxAge": "Undvik att automatiskt försöka ladda ner undertexter för videor äldre än", + "SubtitleDownloadMaxAgeHelp": "Detta är baserat på det datum då metadatavärdet lades till.", + "NoAgeLimit": "Ingen åldersgräns", + "AnonymizeLogContents": "Anonymisera logginnehåll", + "Markers": "Intromarkörer", + "LabelGenerateIntroVideoMarkers": "Generera intromarkörer", + "GenerateIntroVideoMarkersHelp": "Upptäcker intron och visar knappen hoppa över intro i Emby-appar. Introdetektion kan ta lång tid och orsaka hög CPU- eller diskanvändning.", + "LabelCopyFromUser": "Kopiera inställningar från användare", + "CopyFromUserHelp": "Snabba upp skapandet av nya användare genom att kopiera information från en befintlig användare.", + "UserPolicy": "Användarpolicy (åtkomst till bibliotek och funktioner, föräldrakontroll, etc.)", + "UserConfiguration": "Användarkonfiguration (önskade ljud- och undertextspråk, biblioteksordning, etc.)", + "UserDataAndDescription": "Användardata (favoritmarkeringar, uppspelningshistorik och liknande)", + "HeaderCopyOptions": "Kopieringsalternativ", + "LabelMultiRestrictionMode": "Flerbegränsningsläge", + "MultiRestrictionModeAll": "Tillåt innehåll som matchar både ålders- och taggbegränsningarna", + "MultiRestrictionModeAny": "Tillåt innehåll som matchar antingen åldersgränserna eller taggbegränsningarna", + "AllowMappingByChannelNumber": "Tillåt mappning för att styra data med hjälp av kanalnummer", + "AllowMappingByChannelNumberHelp": "Detta kan användas som en reserv för att matcha tunerkanaler med tvkanalskälla när en matchning inte kan hittas baserat på kanalnamnet. Detta kan leda till felaktig matchning om kanalnumren från tunern inte är korrekta.", + "LabelPreferredSourceForChannelLogos": "Föredra kanallogotyper från tvtablådata framför tunern när båda har dem tillgängliga", + "LabelPreferredSourceForChannelNumbers": "Föredra kanalnummer från tvtablådata framför tunern när båda har dem tillgängliga", + "HeaderSoftwareEncoders": "Programvarukodare", + "LabelProxyHeaderMode": "Läs proxy headers för att fastställa klienternas IP-adresser", + "ProxyHeadersRemoteOnly": "Endast när de innehåller fjärrnätverksadresser", + "ProxyHeaderModeHelp": "Avgör om request headers som {0} och {1} ska användas för att fastställa IP-adressen för anslutande enheter. Aktivera bara om du använder en reverse proxy.", + "AllowCameraUpload": "Tillåt kamerauppladdning", + "AllowCameraUploadHelp": "Om det är tillåtet och aktiverat i Embys mobilappar, kan användare automatiskt ladda upp foton och videor till denna Emby Server", + "CameraUploadMustBeGranted": "Du måste även beviljas åtkomst till kamerauppladdning av din serveradministratör.", + "EnableReadingAndWritingPeopleMetadata": "Aktivera läsning och skrivning av metadatafiler för personer", + "EnableReadingAndWritingPeopleMetadataHelp": "Kräver att metadata-tillägget för NFO-filer är installerat. Detta kommer att möjliggöra att dina ändringar av personer sparas i nfo-metadatafiler, men kommer att resultera i längre biblioteksskanningar.", + "LabelIgnoreSampleFiles": "Ignorera filer som innehåller ordet sample i filnamnet om storleken är mindre än (MB)", + "PreferredChannelImageSource": "Föredragen källa för kanalbilder", + "PreferredChannelImageSourceHelp": "Välj en föredragen källa för kanalbilder när både tuner och guide-data har tillgängliga bilder.", + "CacheImagesInServerData": "Spara en cachad kopia av bilder i serverns metadata-mapp", + "CacheImagesInServerDataHelp": "Om din media och dina bilder lagras på en annan maskin kan det vara fördelaktigt att spara en cachelagrad kopia av bilder i serverns metadata-mapp, vilket minskar nätverksåtkomsten och kan förbättra prestandan. Kostnaden för att skapa denna cache är att biblioteksskanningar kommer att vara långsammare och serverns metadata-mapp kommer att använda betydligt mer diskutrymme.", + "AllowSharingPersonalContent": "Tillåt delning av personligt innehåll, som spellistor med andra användare på denna server", + "AllowSharingPersonalContentHelp": "Om tillåtet kommer denna användare att kunna dela sina spellistor med andra användare. Spellistobjekt kommer fortfarande att vara begränsade baserat på användarens biblioteksåtkomst och föräldrakontroller.", + "LiveBufferSizeHours": "Gräns för buffertstorlek för live-ström (timmar)", + "LiveBufferSizeHoursHelp": "En längre buffert ger större möjlighet att spola framåt och bakåt under en live-ström, men kommer att använda mer diskutrymme.", + "LabelTranscodingMaxResolution": "Maximal transkodningsupplösning", + "TranscodingMaxResolutionHelp": "Ange en övre gräns för all videotranskodning, oavsett kvalitetsinställningen i Emby-spelaren. Detta hjälper till att minska resursförbrukningen för serverns transkodningsprocesser.", + "EnableHevcEncodingExp": "Aktivera HEVC-videokodning (experimentell)", + "EnableHevcEncodingHelp": "Aktivera transkodning med HEVC-kodek om det stöds av klienten.", + "LabelEnableMultiPartItems": "Aktivera flerdelade objekt", + "EnableMultiPartItemsHelp": "Filer namngivna som del 1, del 2, osv. identifieras och grupperas automatiskt. Ytterligare delar visas på objektets huvudsida.", + "MultiVersionItemsDetectionHelp": "Identifiera och gruppera automatiskt olika versioner av samma media. Ett versionsval visas på huvudskärmen för objektet. Gruppering baserat på filnamn kräver att filerna namnges och organiseras korrekt.", + "MultiVersionMoviesDetectionHelp": "Gruppering baserad på metadata samlar filmer med samma externa ID (MovieDb, IMDB etc.).", + "EnableMultiPartItemsTVHelp": "Ej tillgängligt för avsnitt av TV-serier.", + "HeaderAutomaticGrouping": "Automatisk gruppering", + "LabelMultiVersionItemsDetection": "Identifiering av media med flera versioner", + "MultiVersionItemsDetectionBoth": "Identifiera media med flera versioner utifrån både filnamn och metadata", + "MultiVersionItemsDetectionFiles": "Identifiera media med flera versioner enbart utifrån filnamn", + "MultiVersionItemsDetectionMetadata": "Identifiera media med flera versioner enbart utifrån metadata", + "LabelNetworkRequestProtocol": "Protokoll för nätverksanrop", + "NetworkRequestProtocolHelp": "Välj vilket protokoll som ska användas för utgående förfrågningar till metadata-leverantörer och andra tjänster. I vissa fall, när externa tjänster inte kan nås via IPv6, kan du behöva ställa in detta på enbart IPv4.", + "GenerateChaptersForVideos": "Skapa kapitel för videor som saknar inbäddad kapitelinformation", + "GeneratedChapterInterval": "Intervall för genererade kapitel", + "LabelPageSize": "Sidstorlek", + "PageNarrow": "Smal", + "PageBook": "Tvåsidesvy", + "StartOfSection": "Början av kapitel", + "NextSection": "Nästa kapitel", + "PositionInBook": "Position i boken", + "ZoomOut": "Zooma ut", + "ZoomIn": "Zooma in", + "ZoomAutoFit": "Passa sida", + "PreviousPage": "Föregående sida", + "LetsGetSetup": "Nu sätter vi igång", + "PageSingle": "Enkelsida", + "PageMaximized": "Maximerad", + "PreviousSection": "Föregående kapitel", + "TableOfContents": "Innehållsförteckning", + "ZoomNone": "Standardzoom", + "LayoutPage": "Enkelsida", + "LayoutDouble": "Tvåsidesvy", + "LayoutVertical": "Vertikal rullning", + "Margins": "Marginaler", + "CurrentPage": "Aktuell sida", + "TotalPages": "Totalt antal sidor", + "NextPage": "Nästa sida", + "RightToLeft": "Läsriktning höger till vänster", + "HeaderIgnoreFiles": "Ignorera filer", + "EnablePlexIgnoreAlias": "Aktivera stöd för .plexignore-filer som ett alias till .embyignore", + "HeaderMaintenanceMode": "Underhållsläge", + "OptionEnableMaintenanceMode": "Sätt servern i underhållsläge", + "MaintenanceModeMessageHelp": "Om fältet lämnas tomt visas ett allmänt meddelande som anger att servern genomgår underhåll. Meddelandet översätts utifrån användarens visningsspråk.", + "ServerInMaintenanceMode": "Emby Server körs för tillfället i underhållsläge. Användare kommer bara att se ett meddelande om underhåll till dess att du inaktiverar underhållsläget.", + "MaintenanceModeMessage": "Meddelande för underhållsläge", + "EnableMaintenanceModeHelp": "Användare kommer bara att se ett meddelande om underhåll.", + "ExcludeFromGlobalSearch": "Exkludera från global sökning", + "MergeTopFoldersInFolderView": "Slå ihop innehållet i toppnivåmappar vid användning av mappvy", + "MergeTopFoldersInFolderViewHelp": "Om aktiverat kommer innehållet i de översta mapparna att slås ihop och visas som en enda kombinerad mapp i mappvyn. Om inaktiverat visas de översta mapparna som första nivån i mappvyn.", + "OptionAllowTranscodingToReduceQuality": "Tillåt transkodning som sänker kvaliteten utifrån appens kvalitetsinställning under uppspelning", + "LabelAutoRemoteQuality": "Automatisk kvalitet för fjärrströmning (Mbps)", + "AutoRemoteQualityHelp": "Anger en fast strömningskvalitet som används när spelaren står på auto. Detta ersätter den automatiska kvalitetsavkänningen för användaren på alla enheter.", + "LegacyFolderScanningModeHelp": "Den äldre skanningsmetoden som försöker slå samman mappar som endast innehåller en enda videofil till en nivå. Detta påverkar främst visningen i mappvyn. Det kan fungera sämre i kombination med andra Emby-funktioner såsom extramaterial, flera versioner av samma video eller ignorerade filer.", + "FolderScanningModeHelp": "Att ändra detta alternativ resulterar i en fullständig genomsökning av biblioteket och kan leda till förlust eller ändring av befintlig metadata.", + "LabelFolderScanningMode": "Skanningsläge för mappar", + "Legacy": "Äldre version" +} diff --git a/strings/th.json b/strings/th.json new file mode 100644 index 0000000..5a60690 --- /dev/null +++ b/strings/th.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "คุณทำเสร็จแล้ว!", + "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process of setting up Emby Server.", + "HeaderCreateYourFirstUser": "สร้างผู้ใช้รายแรกของคุณ", + "ButtonQuickStartGuide": "คู่มือเริ่มใช้งานฉบับย่อ", + "MoreUsersCanBeAddedLater": "สามารถเพิ่มผู้ใช้เพิ่มเติมได้ในภายหลังภายในการตั้งค่าเซิร์ฟเวอร์ Emby", + "UserProfilesIntro": "Emby includes built-in support for user profiles, enabling each user to have their own display settings, playstate and parental controls.", + "WizardCompleted": "That's all we need for now. Emby has begun scanning your media library. Check out some of our apps, and then click Finish to view the Server Dashboard.", + "MessagePleaseAcceptTermsOfService": "โปรดยอมรับข้อกำหนดในการให้บริการและนโยบายความเป็นส่วนตัวก่อนดำเนินการต่อ", + "OptionIAcceptTermsOfService": "ฉันยอมรับข้อตกลงในการบริการ", + "SeeOurHwaGuide": "See our {0}hardware acceleration setup guide{1}.", + "HeaderEmbyServerReleaseNotes": "หมายเหตุประจำรุ่นเซิร์ฟเวอร์ Emby", + "AllowSubtitleDownloading": "อนุญาตให้ดาวน์โหลดคำบรรยาย", + "AllowSubtitleManagement": "อนุญาตให้ลบไฟล์คำบรรยายที่มีอยู่", + "NewUserNameHelp": "This is how the user will appear on your server.", + "ChapterMarkers": "Chapter markers", + "LabelThumbnailImagesInterval": "Thumbnail images interval", + "ThumbnailImagesIntervalHelp": "More frequent thumbnails will result in a better experience, but will require more disk space and time to create the images.", + "LabelAuthProvider": "Authentication provider", + "AuthProviderHelp": "Administrators always use the default Emby provider to ensure you're never locked out.", + "HeaderNewUser": "ผู้ใช้ใหม่", + "ChangeServerDisplayName": "Change Server Display Name", + "ShowAdvancedSettings": "แสดงการตั้งค่าขั้นสูง", + "ChangingMetadataImageSettingsNewContent": "Changes to metadata or artwork downloading settings will only apply to new content added to your library. To apply the changes to existing titles, you'll need to refresh their metadata manually.", + "AllowRemoteAccess": "อนุญาตการเชื่อมต่อระยะไกลกับเซิร์ฟเวอร์ Emby นี้", + "AllowRemoteAccessHelp": "หากไม่เลือกการเชื่อมต่อระยะไกลทั้งหมดจะถูกบล็อก", + "Alerts": "การแจ้งเตือน", + "LabelTrackTitleDisplay": "Embedded track title display", + "GenerateUserFriendlyTrackTitles": "Generate user friendly titles using track information", + "PreferOriginalTrackTitles": "Prefer embedded titles", + "TrackTitleDisplayHelp": "Choose the display title of embedded audio and subtitle tracks. Preferring embedded is not recommended unless you are manually curating embedded track information.", + "EnableTranscodingThrottle": "Enable throttling", + "EnableTranscodingThrottleHelp": "Emby will dynamically adjust transcoding speed based in order to reduce CPU utilization.", + "HeaderTypeMetadataDownloaders": "{0} Metadata Downloaders", + "HeaderTypeImageFetchers": "{0} Image Fetchers", + "HeaderImageOptions": "Image Options", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Register with PayPal", + "LabelSyncTempPath": "Temporary file path", + "LabelSyncTempPathHelp": "Specify a custom working folder. Converted media created during the conversion process will be stored here.", + "LabelCustomCertificatePath": "Custom ssl certificate path", + "LabelCustomCertificatePathHelp": "Path to a PKCS #12 file containing a certificate and private key to enable TLS support on a custom domain.", + "HeaderSetupLibrary": "Setup Media Libraries", + "LabelTimeLimitHours": "Time limit (hours)", + "HeaderPreferredMetadataLanguage": "Preferred Metadata Language", + "LabelSaveLocalMetadata": "Save artwork into media folders", + "LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put images next to media files where they can be easily accessed from outside of Emby. If disabled, images will be saved into the server's metadata folder.", + "TabAccess": "Access", + "HeaderDeviceAccess": "Device Access", + "OptionEnableAccessFromAllDevices": "Enable access from all devices", + "OptionEnableAccessToAllChannels": "Enable access to all channels", + "OptionEnableAccessToAllLibraries": "Enable access to all libraries", + "DeviceAccessHelp": "Filtering user device access will prevent them from using new devices until they've been approved here.", + "LabelDisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Emby database and displayed within seasons and series. This may cause significantly longer library scans.", + "MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.", + "LabelMaxParentalRating": "Maximum allowed parental rating", + "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.", + "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.", + "ChannelAccessHelp": "Select the channels to share with this user. Administrators will be able to edit all channels using the metadata manager.", + "ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG/PNG only.", + "AlreadyPaidHelp1": "If you already paid to install an older version of Media Browser for Android, you don't need to pay again in order to activate this app. Click OK to send us an email at {0} and we'll get it activated for you.", + "AlreadyPaidHelp2": "Got Emby Premiere? Just cancel this dialog, setup Emby Premiere in your Emby Server Dashboard under Help -> Emby Premiere, and it will be unlocked automatically.", + "TabMyPlugins": "My Plugins", + "TabCatalog": "Catalog", + "HeaderAutomaticUpdates": "Automatic Updates", + "Standard": "Standard", + "TabSupporterKey": "Emby Premiere Key", + "OptionHideUserLocal": "Hide this user from login screens on the local network", + "OptionHideUserRemote": "Hide this user from login screens when connected remotely", + "OptionHideUserFromLoginHelp": "Useful for private or hidden administrator accounts. The user will need to sign in manually by entering their username and password.", + "HideFromUnusedDevices": "Hide this user from login screens on devices they've never signed into", + "OptionDisableUser": "Disable this user", + "OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.", + "OptionAllowUserToManageServer": "Allow this user to manage the server", + "HeaderFeatureAccess": "Feature Access", + "OptionAllowMediaPlayback": "Allow media playback", + "AllLibraries": "All libraries", + "HeaderAllowMediaDeletionFrom": "Allow Media Deletion From", + "LiveTVRecordingManagement": "Live TV Recording Management", + "OptionAllowRemoteControlOthers": "Allow remote control of other users", + "OptionAllowRemoteSharedDevices": "Allow remote control of shared devices", + "OptionAllowRemoteSharedDevicesHelp": "Dlna devices are considered shared until a user begins controlling it.", + "OptionAllowLinkSharing": "Allow social media sharing", + "OptionAllowLinkSharingHelp": "Only web pages containing media information are shared. Media files are never shared publicly. Shares are time-limited and will expire after {0} days.", + "OptionRelease": "Official Release", + "LabelAllowServerAutoRestartPlugin": "Allow the server to restart automatically to apply plugin updates", + "LabelAllowServerAutoRestartServerOrPlugin": "Allow the server to restart automatically to apply server or plugin updates", + "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods, when no users are active.", + "LabelRunServerAtStartup": "Run server at startup", + "LabelRunServerAtStartupHelp": "This will start the Emby tray icon on Windows startup. If you've set up a Windows service then leave this unchecked and configure the service to run at startup.", + "ButtonSelectDirectory": "Select Directory", + "LabelCachePath": "Cache path", + "DefaultMetadataLangaugeDescription": "These are your defaults and can be customized on a per-library basis.", + "LabelCachePathHelp": "Specify a custom location for server cache files, such as images. Leave blank to use the server default.", + "LabelDefaultRecordingFolder": "Default recording folder", + "LabelMovieRecordingFolder": "Movie recording folder", + "LabelSeriesRecordingFolder": "Series recording folder", + "SeriesRecordingFolderHelp": "(Optional). Select a library so save series recordings into. This must be a library you've created in Emby library setup with the content type set to TV shows or mixed content.", + "HeaderProgramData": "Program Data", + "RecordingFolderHelp": "Select the default library to save recordings into. This must be a library you've created in Emby library setup with the content type set to mixed content.", + "MovieRecordingFolderHelp": "(Optional). Select a library so save movie recordings into. This must be a library you've created in Emby library setup with the content type set to movies or mixed content.", + "LabelMetadataPath": "Metadata path", + "LabelMetadataPathHelp": "Specify a location for downloaded artwork and metadata, or blank this out to revert to default. If changing this, you'll need to manually migrate the contents from the old location to the new location. If you ever manually change the contents of the metadata folder, you'll need to run the {0}scan metadata folder scheduled task{1}.", + "LabelTranscodingTempPath": "Transcoding temporary path", + "LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.", + "GenerateVideoPreviewThumbnailsHelp": "Video preview thumbnails provide live updates while seeking in supported apps. Thumbnail generation may take a long time, cause high CPU usage, and consume additional disk space.", + "AsAScheduledTask": "as a scheduled task", + "AsAScheduledTaskAndMediaAdded": "as a scheduled task and when media is added", + "ButtonRefreshGuideData": "Refresh Guide Data", + "LabelNumberOfGuideDays": "Number of days of guide data to download", + "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels. Please note that regardless of how many days you choose, the data must exist in the source guide data in order for it to be downloaded. Some guide data sources only provide 24 hours. Emby Guide Data supports up to 14 days.", + "HeaderFetchImages": "Fetch Images", + "LabelMaxBackdropsPerItem": "Maximum number of backdrops per item", + "LabelMaxScreenshotsPerItem": "Maximum number of screenshots per item", + "LabelMinBackdropDownloadWidth": "Minimum backdrop download width", + "LabelMinScreenshotDownloadWidth": "Minimum screenshot download width", + "ButtonAddScheduledTaskTrigger": "Add Trigger", + "ButtonAdd": "Add", + "LabelTriggerType": "Trigger Type", + "OptionOnInterval": "On an interval", + "OptionAfterSystemEvent": "After a system event", + "LabelDay": "Day", + "LabelTime": "Time", + "LabelEvent": "Event", + "OptionWakeFromSleep": "Wake from sleep", + "Every": "Every", + "LabelEnableRealtimeMonitor": "Enable real time monitoring", + "LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately, on supported file systems.", + "Community": "Community", + "HeaderEmbyNews": "Emby News", + "LabelFriendlyServerName": "Friendly server name", + "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.", + "LabelPreferredDisplayLanguage": "Preferred display language", + "LabelPreferredDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LabelReadHowYouCanContribute": "Learn how you can contribute.", + "LabelCustomCss": "Custom css", + "LabelCustomCssHelp": "Apply your own custom css to the web interface.", + "LabelLocalHttpServerPortNumber": "Local http port number", + "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Emby's http server should bind to.", + "LabelPublicHttpPort": "Public http port number", + "LabelPublicHttpPortHelp": "The public port number that should be mapped to the local http port.", + "LabelPublicHttpsPort": "Public https port number", + "LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local https port.", + "RequireHttps": "Require https for external connections", + "RequireHttpsHelp": "If enabled, connections over http will be redirected to https.", + "LabelHttpsPort": "Local https port number", + "LabelHttpsPortHelp": "The tcp port number that Emby's https server should bind to.", + "LabelEnableAutomaticPortMap": "Enable automatic port mapping", + "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.", + "LabelExternalDDNS": "External domain", + "LabelExternalDDNSHelp": "If you have a dynamic DNS or domain name, enter it here, without protocol or port. Emby apps will use it when connecting remotely. This field is required when used with a custom ssl certificate. Example: mydomain.com.", + "LabelMinResumePercentage": "Min resume percentage", + "LabelMaxResumePercentage": "Max resume percentage", + "LabelMinResumeDuration": "Min resume duration (seconds)", + "LabelMinResumePercentageHelp": "Titles are assumed unplayed if stopped before this time", + "LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time", + "LabelMinResumeDurationHelp": "Titles shorter than this will not be resumable", + "HeaderStatus": "Status", + "Subscriptions": "Subscriptions", + "LabelEndingEpisodeNumber": "Ending episode number", + "LabelEndingEpisodeNumberHelp": "Only required for multi-episode files", + "HeaderSupportTheTeam": "Support the Emby Team", + "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by purchasing Emby Premiere. A portion of all income will be contributed to other free tools we depend on.", + "DonationNextStep": "Once complete, please return and enter your Emby Premiere key, which you will receive by email.", + "HeaderRunningTasks": "Running Tasks", + "ButtonUpdateNow": "Update Now", + "PleaseUpdateManually": "Please shutdown Emby Server and install the latest version.", + "ServerUpToDate": "Emby Server is up to date", + "MessagePleaseRestartServerToFinishUpdating": "Please restart the server to finish applying updates.", + "LabelDownMixAudioScale": "Audio boost when downmixing", + "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.", + "HeaderForgotKey": "Forgot Key", + "LabelSupporterEmailAddress": "The email address that was used to purchase the key.", + "ButtonRetrieveKey": "Retrieve Key", + "LabelSupporterKey": "Emby Premiere key (paste from email)", + "LabelSupporterKeyHelp": "Enter your Emby Premiere key to start enjoying additional benefits.", + "MessageInvalidKey": "Emby Premiere key is missing or invalid.", + "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also have an active Emby Premiere subscription.", + "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains embedded subtitles matching the download language", + "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.", + "HeaderDownloadLanguages": "Download Languages", + "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language", + "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.", + "SendMessage": "Send message", + "HeaderSendMessage": "Send Message", + "ButtonSend": "Send", + "LabelMessageText": "Message text", + "LabelMessageTitle": "Message title", + "ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.", + "LabelLoginDisclaimer": "Login disclaimer", + "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.", + "HeaderTranscodingTemporaryFiles": "Transcoding Temporary Files", + "HeaderApiKeys": "Api Keys", + "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Emby Server. Keys are issued by logging in with an Emby account, or by manually granting the application a key.", + "HeaderApiKey": "Api Key", + "HeaderResumeSettings": "Resume Settings", + "HeaderFetcherSettings": "Fetcher Settings", + "HeaderActivity": "Activity", + "ButtonPurchase": "Purchase", + "HeaderInstall": "Install", + "LabelSelectVersionToInstall": "Select version to install", + "LinkLearnMoreAboutSubscription": "Learn about Emby Premiere", + "MessagePluginRequiresSubscription": "This plugin will require an active Emby Premiere subscription after the 14 day free trial.", + "MessagePremiumPluginRequiresMembership": "This plugin will require an active Emby Premiere subscription in order to purchase after the 14 day free trial.", + "HeaderDeveloperInfo": "Developer Info", + "HeaderRevisionHistory": "Revision History", + "ButtonViewWebsite": "View website", + "OptionSaveMetadataAsHidden": "Save metadata and images as hidden files", + "LabelConnectEmail": "(Optional) Emby Connect email address", + "LabelConnectEmailHelp": "Optionally link this local user to an existing Emby Connect account to enable easy sign-in access from any Emby app without having to know the server IP address.", + "ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect", + "LabelDateAddedBehavior": "Date added behavior for new content", + "OptionDateAddedImportTime": "Use date scanned into the library", + "OptionDateAddedFileTime": "Use file creation date", + "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.", + "HeaderLibrarySettings": "Library Settings", + "HeaderAutomaticSubtitleDownloads": "Automatic Subtitle Downloads", + "HeaderCameraUploadHelp": "Emby apps can automatically upload photos taken from your mobile devices into Emby Server.", + "LabelCameraUploadPath": "Camera upload path", + "LabelCameraUploadPathHelp": "Select a custom upload path. This will override any default settings set in the Camera Upload section. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "DefaultCameraUploadPathHelp": "Select a custom upload path. If left blank, a default folder will be used. If using a custom path it will also need to be added as a library in Emby library setup.", + "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device", + "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.", + "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.", + "TabParentalControl": "Parental Control", + "HeaderAccessSchedule": "Access Schedule", + "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.", + "HeaderLibraryAccess": "Library Access", + "HeaderChannelAccess": "Channel Access", + "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.", + "TitlePasswordReset": "Password Reset", + "HeaderBlockItemsWithNoRating": "Block items with no or unrecognized rating information", + "LabelBlockContentWithTags": "Restrict Items With Tags", + "LabelTagRestrictionMode": "Tag restriction mode", + "BlockItemsWithTheseTags": "Block items with these tags", + "AllowItemsWithTheseTags": "Allow only items with these tags", + "OptionAllowContentDownloading": "Allow media downloading", + "LabelNewUserNameHelp": "Usernames can contain letters (a-z), numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)", + "HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled. To enable this user, please see the option at the bottom of this page.", + "OptionAllowSyncTranscoding": "Allow media downloading that requires transcoding", + "AllowMediaConversion": "Allow media conversion", + "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", + "OptionAllowAudioPlaybackTranscoding": "Allow audio transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackTranscoding": "Allow video transcoding, if necessary, during media playback", + "OptionAllowVideoPlaybackRemuxing": "Allow changing of container formats, if necessary, during media playback", + "OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding will disable quality selection and may cause playback failures in Emby apps due to unsupported media formats or insufficient network bandwidth.", + "LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This will limit internet streaming quality even if the user has a higher quality selected in the player. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.", + "LabelUserRemoteClientBitrateLimitHelp": "This will override the default global value set in advanced server settings.", + "OptionEnableFullSpeedConversion": "Enable full speed conversion", + "OptionEnableFullSpeedConversionHelp": "By default, conversions are performed at a low speed to minimize resource consumption.", + "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", + "HeaderTVSources": "TV Sources", + "HeaderAddTvSource": "Add TV Source", + "LabelTunerIpAddress": "Tuner IP Address", + "HeaderGuideProviders": "Guide Data Sources", + "HeaderAddGuideSource": "Add Guide Data Source", + "LabelZipCode": "Zip Code", + "LabelLineup": "Lineup", + "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite", + "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.", + "HeaderDefaultRecordingSettings": "Default Recording Settings", + "LabelDisplayName": "Display name", + "OptionDownloadImagesInAdvance": "Download images in advance", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are not downloaded from the internet until they are displayed by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", + "MessageThankYouForSupporting": "Thank you for supporting Emby.", + "FileReadCancelled": "The file read has been canceled.", + "FileNotFound": "File not found.", + "FileReadError": "An error occurred while reading the file.", + "NoPluginConfigurationMessage": "This plugin has no settings to configure.", + "HeaderNewApiKey": "New Api Key", + "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Emby Server.", + "MessageKeyEmailedTo": "Key emailed to {0}.", + "HeaderConfirmation": "Confirmation", + "MessageKeyUpdated": "Thank you. Your Emby Premiere key has been updated.", + "MessageKeyRemoved": "Thank you. Your Emby Premiere key has been removed.", + "TextEnjoyBonusFeatures": "Enjoy Bonus Features", + "MessageErrorLoadingSupporterInfo": "There was an error loading Emby Premiere information. Please try again later.", + "ValueTimeLimitSingleHour": "Time limit: 1 hour", + "ValueTimeLimitMultiHour": "Time limit: {0} hours", + "General": "General", + "HeaderScreenSavers": "Screen Savers", + "Reporting": "Reporting", + "LabelStopping": "Stopping", + "HeaderSelectCertificatePath": "Select Certificate Path", + "HeaderSupporterBenefit": "An active Emby Premiere subscription provides additional benefits such as access to Emby DVR, offline media, premium plugins, and more. {0}Learn more{1}.", + "LabelAbortedByServerShutdown": "(Aborted by server shutdown)", + "LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.", + "HeaderDeleteTaskTrigger": "Delete Task Trigger", + "MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?", + "MessageNoPluginsDueToAppStore": "To manage plugins, please use the Emby web app.", + "LabelVersionInstalled": "{0} installed", + "HeaderSelectServerCachePath": "Select Server Cache Path", + "HeaderSelectTranscodingPath": "Select Transcoding Temporary Path", + "HeaderSelectMetadataPath": "Select Metadata Path", + "HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.", + "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.", + "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.", + "MessageConfirmRestart": "Are you sure you wish to restart Emby Server?", + "MessageConfirmShutdown": "Are you sure you wish to shutdown Emby Server?", + "LabelLocalAccessUrl": "Home (LAN) access: {0}", + "LabelRemoteAccessUrl": "Remote (WAN) access: {0}", + "LabelRunningOnPort": "Running on http port {0}", + "LabelRunningOnPorts": "Running on http port {0}, and https port {1}", + "LabelCurrentPath": "Current path", + "HeaderSelectMediaPath": "Select Media Path", + "HeaderSelectPath": "Select Path", + "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.", + "MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Emby to access it.", + "MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, OpenSuse, or Ubuntu, you must grant the Emby system user at least read access to your storage locations.", + "MetadataManager": "Metadata Manager", + "OptionBlockLiveTvChannels": "Live TV Channels", + "OptionBlockChannelContent": "Internet Channel Content", + "ButtonRevoke": "Revoke", + "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Emby Server will be abruptly terminated.", + "HeaderConfirmRevokeApiKey": "Revoke Api Key", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Please accept the terms of service before continuing.", + "HeaderChangeFolderType": "Change Content Type", + "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the library with the new type.", + "HeaderAlert": "Alert", + "MessagePleaseRestart": "Please restart to finish updating.", + "OptionHomeVideos": "Home videos & photos", + "OptionBooks": "Books", + "HeaderMetadataReaders": "Metadata Readers", + "LabelMetadataReadersHelp": "Enable and rank your preferred local metadata sources in order of priority.", + "HeaderSubtitleDownloaders": "Subtitle Downloaders", + "SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority. More subtitle providers can be installed using the Emby plugin catalog.", + "LabelMetadataDownloaders": "Metadata downloaders", + "LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.", + "HeaderMetadataSavers": "Metadata Savers", + "LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.", + "LabelImageFetchers": "Image fetchers", + "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", + "PersonTypePerson": "Person", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "LabelNewName": "New name", + "HeaderRemoveLibrary": "Remove Library", + "MessageAreYouSureYouWishToRemoveLibrary": "Are you sure you wish to remove the {0} library from your Emby Server? Your media files will not be affected.", + "ButtonRename": "Rename", + "HeaderPluginInstallation": "Plugin Installation", + "MessageTrialExpired": "The trial period for this feature has expired", + "MessageTrialWillExpireIn": "The trial period for this feature will expire in {0} day(s)", + "ValuePriceUSD": "Price: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "You are registered for this feature, and will be able to continue using it with an active Emby Premiere subscription.", + "HeaderSelectExternalPlayer": "Select External Player", + "HeaderExternalPlayerPlayback": "External Player Playback", + "HeaderThankYou": "Thank You", + "HeaderSelectUploadPath": "Select Upload Path", + "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time.", + "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", + "MovieLibraryHelp": "Review the {0}Emby movie naming guide{1}.", + "TvLibraryHelp": "Review the {0}Emby TV naming guide{1}.", + "BookLibraryHelp": "Text books are supported. Review the {0}Emby Book naming guide{1}.", + "MessageGamePluginRequired": "Requires installation of the GameBrowser plugin", + "HeaderUnlockApp": "Unlock App", + "MessagePaymentServicesUnavailable": "Payment services are currently unavailable. Please try again later.", + "NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.", + "MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?", + "MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?", + "HeaderDeleteProvider": "Delete Provider", + "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", + "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", + "MessageCreateAccountAt": "Create an account at {0}", + "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", + "ErrorValidatingSupporterInfo": "There was an error validating your Emby Premiere information. Please try again later.", + "LabelLocalSyncStatusValue": "Status: {0}", + "HeaderTopPlugins": "Top Plugins", + "ForAdditionalLiveTvOptions": "Browse the Emby {0}plugin catalog{1} to install additional Live TV providers.", + "AddUser": "Add User", + "HeaderEmailAddress": "E-Mail Address", + "NumLocationsValue": "{0} folders", + "PleaseAddAtLeastOneFolder": "Please add at least one folder to this library by clicking the Add button.", + "ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Emby Server process has access to that location.", + "ErrorAddingEmbyConnectAccount3": "The Emby account is already linked to an existing local user. An Emby account can only be linked to one local user at a time.", + "HeaderConfirmPluginInstallation": "Confirm Plugin Installation", + "PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.", + "MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.", + "HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to Auto.", + "ValueExample": "Example: {0}", + "LabelFileOrUrl": "File or url", + "OptionEnableForAllTuners": "Enable for all tuner devices", + "HeaderTuners": "Tuners", + "DrmChannelsNotImported": "Channels with DRM will not be imported.", + "LabelAllowHWTranscoding": "Allow hardware transcoding", + "AllowHWTranscodingHelp": "If enabled, allow the tuner to transcode streams on the fly. This may help reduce transcoding required by Emby Server.", + "MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.", + "RecordingPathChangeMessage": "Changing your recording folder will not migrate existing recordings from the old location to the new. You'll need to move them manually if desired.", + "LabelLocalIpAddress": "Local IP address", + "LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address that Emby Server will present to Emby apps. If left blank, the server will automatically detect the local IP address.", + "SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.", + "OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Emby Server.", + "EnablePhotos": "Enable photos", + "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", + "ImportPlaylists": "Import playlist files", + "ImportPlaylistsHelp": "Playlists found in your media directories can be imported into Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Save video preview thumbnails into media folders", + "LabelGenerateVideoPreviewThumbnails": "Generate video preview thumbnails", + "LabelEnableDebugLogging": "Enable debug logging", + "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", + "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live tv programs to be included within suggested content.", + "LabelOptionalNetworkPath": "(Optional) Shared network folder", + "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", + "SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.", + "HeaderRecordingPostProcessing": "Recording Post Processing", + "LabelPostProcessorArguments": "Post-processor command line arguments", + "PostProcessorArgumentsHelp": "The following variables are supported in the command line to allow passing data to your post-processor", + "LabelPostProcessor": "Post-processing application", + "DvrPostProcessorPathArgument": "{path}: The full path to the new recording file", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.", + "WhenDidYouPurchaseApp": "When did you originally purchase this app?", + "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", + "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", + "FriendlyNameForReferenceHelp": "A friendly name used for display, for your own reference.", + "HeaderLiveTvTunerSetup": "Live TV Tuner Setup", + "HeaderTVSourceSetup": "TV Source Setup", + "HeaderDetectMyDevices": "Detect Devices", + "MessagePleaseWait": "Please wait. This may take a minute.", + "DetectingDevices": "Detecting devices", + "LabelAutomaticallyRefreshInternetMetadataEvery": "After the initial import, automatically refresh metadata from the internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Automatically refresh metadata for episodes with placeholder titles such as TBA", + "EveryNDays": "Every {0} days", + "LabelCertificatePassword": "Certificate password", + "LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.", + "HeaderNewLibrary": "New Library", + "HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Lets Encrypt. Please either supply a certificate, or disable secure connections.", + "ServerRestartNeededAfterPluginInstall": "Emby Server will need to be restarted after installing a plugin.", + "PluginInstalledMessage": "The plugin has been successfully installed. Emby Server will need to be restarted for changes to take effect.", + "MessagePremiereStatusGood": "You have a {0} Emby Premiere plan and your device usage is well within your limit.", + "MessagePremiereStatusClose": "You have a {0} Emby Premiere plan, but your device usage is close to the limit.", + "MessagePremiereExtendedPlans": "Consider an {0}extended device plan{1}", + "MessagePremiereStatusOver": "You have a {0} Emby Premiere plan, but you are over your device limit!", + "ListItemPremiereSub": "{0} subscription purchased via {2} expires {1}", + "LabelClickToManage": "Click to manage this subscription", + "LabelCancelInfo": "You can manage this subscription directly with {0}", + "LabelAlreadyCanceled": "This subscription has been canceled. Key will remain valid until expiration.", + "HeaderCancelSub": "Cancel Emby Premiere", + "MessageConfirmSubCancel": "NO, Please don't go... You will miss out on all the great features of Emby Premiere!", + "ButtonCancelSub": "I know, cancel it anyway", + "ButtonDontCancelSub": "Keep Emby Premiere", + "MessageSubCancelReqSent": "An email has been sent to the owner of the key. Please follow the instructions in that email to complete the cancellation of this subscription. We hope to see you back soon!", + "MessageSubCancelError": "Something went wrong trying to cancel. Please send an email to {0} and we'll get you squared away.", + "LabelAlreadyCancelled": "This subscription has been cancelled. You will not be charged again but the features will work until the date above.", + "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", + "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to Emby apps in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Debug logging should only be enabled as needed for troubleshooting purposes. The increased file system access may prevent the server machine from being able to sleep in some environments.", + "LabelSimultaneousConnectionLimit": "Simultaneous stream limit", + "SimultaneousConnectionLimitHelp": "The maximum number of allowed simultaneous streams. Enter 0 for no limit.", + "LaunchWebAppOnStartup": "Launch the Emby web app in my web browser when Emby Server starts", + "LaunchWebAppOnStartupHelp": "This will open the web app in your default web browser when Emby Server initially starts. This will not occur when using the restart server function.", + "LabelReferrerHeader": "Referer http header", + "LabelUserAgentHeader": "User agent http header", + "SupplyCustomValueIfNeeded": "Supply a custom http header value, if necessary.", + "HeaderConfigureRemoteAccess": "Configure Remote Access", + "LearnHowToCreateSynologyShares": "Learn how to share folders in Synology.", + "LabelAllowedRemoteAddresses": "Remote IP address filter", + "LabelAllowedRemoteAddressesMode": "Remote IP address filter mode", + "Whitelist": "Whitelist", + "Blacklist": "Blacklist", + "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed or disallowed to connect remotely. If left blank, all remote addresses will be allowed.", + "LabelLanNetworks": "LAN networks", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Secure connection mode", + "PreferredNotRequired": "Preferred, but not required", + "RequiredForAllRemoteConnections": "Required for all remote connections", + "HandledByProxy": "Handled by reverse proxy", + "SaveSubtitlesIntoMediaFolders": "Save downloaded subtitles into media folders", + "SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.", + "AutomaticSubtitleDownloadInstructions": "To manage automatic subtitle downloading, click on a library in Emby library setup, and edit the subtitle downloading settings for that library.", + "ProviderNeedsSetupWithUrl": "{0} requires additional setup on the {1} settings screen{2} in Emby Server.", + "LabelEnableHardwareAcceleration": "Enable hardware acceleration when available", + "HeaderPreferredHardwareDecoders": "Preferred Hardware Decoders", + "HeaderPreferredHardwareEncoders": "Preferred Hardware Encoders", + "AllowChangingImageAndPassword": "Allow this user to change their password and profile image", + "LabelSimultaneousStreamLimit": "Max simultaneous video streams", + "SimultaneousStreamLimitHelp": "Limit the number of concurrent video playback sessions.", + "LabelMusicFolderStructure": "Music folder structure", + "LabelMusicFolderStructureHelp": "This provides a hint to the library scanner about the way your folders are organized. If you're unsure, or if your folders don't exactly match one of the options, then please select the default option of Other.", + "OtherOrUnstructured": "Other or unstructured", + "PerfectArtistAlbumTrack": "Perfectly organized into artist\\album folders, with tracks directly in the album folders.", + "PerfectAlbumTrack": "Perfectly organized into album folders, with tracks directly in the album folders.", + "LabelMinCollectionSize": "Minimum automatic collection size", + "PerfectAuthorAudioBookTrack": "Perfectly organized into author\\book folders, with tracks directly in the book folders.", + "PerfectAudioBookTrack": "Perfectly organized into book folders, with tracks directly in the book folders.", + "MinCollectionSizeHelp": "Automatically create collections when you have at least the selected number of titles in your library. Changing this value will not affect existing collections.", + "LabelImportCollections": "Import collection information from metadata downloaders", + "LabelImportCollectionsHelp": "When enabled, this will import collection information from your enabled metadata downloaders. This may cause unwanted collections to be automatically created. Disabling will prevent future collections from being automatically created, but will not delete existing ones.", + "LabelAllowAdultMetadata": "Allow adult metadata", + "LabelAllowAdultMetadataHelp": "Allow matching adult titles when searching for internet metadata.", + "HeaderVideoPreviewThumbnails": "Video Preview Thumbnails", + "LabelEnableHDRToneMapping": "Enable HDR tone mapping", + "EnableHDRToneMappingHelp": "Tone mapping will ensure correct color conversion when transcoding HDR content, which will otherwise appear highly dimmed and desaturated. Additional driver components may be needed to support hardware acceleration with this feature enabled. Please see our hardware acceleration setup guide for details.", + "WithHardwareAcceleratedTranscoding": "Yes, only with hardware acceleration", + "TranscodingStillInitializing": "Emby Server transcoding services are still busy starting up. This screen will automatically refresh when transcoding services are ready.", + "WithEitherHardwareOrSoftwareTranscoding": "Yes, with either hardware or software transcoding", + "ToneMappingInHardwareDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and skipped in all other cases.", + "ToneMappingInSoftwareDescription": "Tone mapping will be performed in software by the CPU. This is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "ToneMappingInBothDescription": "Tone mapping will be performed with hardware acceleration when it is enabled and supported by the hardware, and will fallback to software in all other cases. Tone mapping in software is much slower than hardware accelerated tone mapping and will require a very powerful server machine.", + "AutoMapped": "Automatically mapped", + "ManuallyMapped": "Manually mapped", + "NotMappedToGuideData": "Not mapped to guide data", + "MappedToValue": "Mapped to {0}", + "LabelAutomaticallyWakeServerForRecordings": "Automatically wake the server machine to perform recordings", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Wake events will be scheduled with the server operating system. Disabling this option will prevent future wake events from being scheduled but will not remove any previously scheduled events.", + "Database": "Database", + "LabelOptimizeDatabaseOnShutdown": "Attempt to optimize the database on server shutdowns", + "LabelOptimizeDatabaseOnShutdownHelp": "The database optimize operation is usually a no-op but it will occasionally run an analysis if it seems like doing so will be useful to the query planner. This may cause Emby Server to take longer to shutdown.", + "LabelDatabaseCacheSize": "Database cache size (MB)", + "LabelDatabaseCacheSizeHelp": "Sets the amount of data that the database will hold in memory at once, per database file. A larger value may help improve Emby Server performance. Requires a server restart to take effect.", + "LabelDatabaseAnalysisLimit": "Analysis row limit", + "LabelDatabaseAnalysisLimitHelp": "When the database is optimized, this is the approximate number of rows examined in each index by the ANALYZE command. A larger value will increase the effectiveness of the database optimization, but may cause Emby Server to take longer to shutdown.", + "LabelVacuumDb": "Vacuum the database on the next Emby Server startup", + "LabelVacuumDbHelp": "Vacuuming rebuilds the database file, repacking it into a minimal amount of disk space. In some cases this may improve Emby Server performance. Please note that your Emby Server will not be usable during the time of the vacuum operation, nor will there be any way to monitor the progress of the vacuum. Please avoid force closing the Emby Server process during this time as it may lead to database corruption. This is a one-time operation and this option will revert to unchecked on the next server startup.", + "AdvancedOptionsWarning": "These are advanced options and should generally be left at defaults unless you have a reason to change them.", + "HeaderRecentlyActiveDevices": "Recently Active Devices", + "YesUntilServerRestart": "Yes, until the next server restart", + "YesUntilLogRotate": "Yes, until the next log file rotation", + "LabelSubtitleDownloadMaxAge": "Stop trying to automatically download subtitles for videos older than", + "SubtitleDownloadMaxAgeHelp": "This is based on the date added metadata value.", + "NoAgeLimit": "No age limit", + "AnonymizeLogContents": "Anonymize log contents", + "Markers": "Markers", + "LabelGenerateIntroVideoMarkers": "Generate intro video markers", + "GenerateIntroVideoMarkersHelp": "Detects show intros and displays the 'Skip Intro' button in Emby apps. Intro detection may take a long time and cause high CPU or disk usage.", + "LabelCopyFromUser": "Copy settings from user", + "CopyFromUserHelp": "Optional. Speed up new user creation by copying information from an existing user.", + "UserPolicy": "User Policy (library and feature access, parental controls, etc.)", + "UserConfiguration": "User Configuration (preferred audio and subtitle languages, library order, etc.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Copy Options", + "LabelMultiRestrictionMode": "Multiple restriction mode", + "MultiRestrictionModeAll": "Allow content matching both the rating and tag restrictions", + "MultiRestrictionModeAny": "Allow content matching either the rating or tag restrictions", + "AllowMappingByChannelNumber": "Allow mapping to guide data using channel numbers", + "AllowMappingByChannelNumberHelp": "This can be used as a fallback to match tuner channels with guide data whenever a match can't be found based on the channel name. This may lead to inaccurate matching if channel numbers from the tuner are not correct.", + "LabelPreferredSourceForChannelLogos": "Prefer channel logos from the guide data over the tuner when both have them available", + "LabelPreferredSourceForChannelNumbers": "Prefer channel numbers from the guide data over the tuner when both have them available", + "HeaderSoftwareEncoders": "Software Encoders", + "LabelProxyHeaderMode": "Read proxy headers to determine client IP addresses", + "ProxyHeadersRemoteOnly": "Only when they contain remote network addresses", + "ProxyHeaderModeHelp": "Determines if request headers such as {0} and {1} should be used to determine the IP address of connecting devices.", + "AllowCameraUpload": "Allow camera upload", + "AllowCameraUploadHelp": "If allowed, and if enabled in Emby mobile apps, users can automatically upload photos and videos taken from their camera to this Emby Server", + "CameraUploadMustBeGranted": "You must also be granted access to camera upload by your server administrator.", + "EnableReadingAndWritingPeopleMetadata": "Enable reading and writing of person metadata files", + "EnableReadingAndWritingPeopleMetadataHelp": "Requires the Nfo Metadata plugin to be installed. This will allow saving your people edits to nfo metadata files but will result in longer library scans.", + "LabelIgnoreSampleFiles": "Ignore files containing the word sample in the filename if their size is less than (MB)", + "PreferredChannelImageSource": "Preferred channel image source", + "PreferredChannelImageSourceHelp": "Select a preferred channel image when both the tuner and guide data have images available.", + "CacheImagesInServerData": "Keep a cached copy of images in the server's metadata folder", + "CacheImagesInServerDataHelp": "If your media and images are stored on another machine, keeping a cached copy of images in the server metadata folder will reduce network access and may improve performance. The cost of creating this cache is that library scans will be slower and the server metadata folder will consume significantly more disk space.", + "AllowSharingPersonalContent": "Allow sharing personal content such as playlists with other users on this server", + "AllowSharingPersonalContentHelp": "If granted, this user will be able to share their playlists with other users. Playlist items will still be restricted based on user library access and parental controls.", + "LiveBufferSizeHours": "Live stream buffer size limit (hours)", + "LiveBufferSizeHoursHelp": "A longer buffer will provide a greater ability to seek forwards and backwards during a live stream, but will consume more disk space.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/tr.json b/strings/tr.json new file mode 100644 index 0000000..452875f --- /dev/null +++ b/strings/tr.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Bitti!", + "ThisWizardWillGuideYou": "Bu sihirbaz, Emby Server'ı kurma sürecinde size rehberlik edecektir.", + "HeaderCreateYourFirstUser": "İlk Kullanıcıyı Oluştur", + "ButtonQuickStartGuide": "Hızlı Başlangıç Rehberi", + "MoreUsersCanBeAddedLater": "Daha sonra Emby Sunucu ayarlarından daha fazla kullanıcı eklenebilir.", + "UserProfilesIntro": "Emby, her kullanıcının kendi ekran ayarlarına, oynatma durumuna ve ebeveyn kontrollerine sahip olmasını sağlayan kullanıcı profillerine imkan sağlar.", + "WizardCompleted": "Şimdilik ihtiyacımız olan tek şey bu. Emby medya kitaplığınızı taramaya başladı. Uygulamalarımızdan bazılarına göz atın ve ardından Sunucu Panosunu görüntülemek için Son'a tıklayın.", + "MessagePleaseAcceptTermsOfService": "Lütfen devam etmeden önce kullanım koşullarını ve gizlilik politikasını kabul edin.", + "OptionIAcceptTermsOfService": "Kullanım koşullarını kabul ediyorum", + "SeeOurHwaGuide": "{0}Donanım hızlandırma kurulum kılavuzumuza{1} bakın.", + "HeaderEmbyServerReleaseNotes": "Emby Sunucu Sürüm Notları", + "AllowSubtitleDownloading": "Altyazı indirmesine izin ver", + "AllowSubtitleManagement": "Mevcut altyazı dosyalarının silinmesine izin ver", + "NewUserNameHelp": "Kullanıcı sunucunuzda bu şekilde görünecektir.", + "ChapterMarkers": "Bölüm işaretleri", + "LabelThumbnailImagesInterval": "Küçük resim görüntü aralığı", + "ThumbnailImagesIntervalHelp": "Daha çok küçük resim daha iyi bir deneyim sağlar. Ancak daha fazla disk alanı ve oluşturma zamanı gerekir.", + "LabelAuthProvider": "Kimlik doğrulama sağlayıcısı", + "AuthProviderHelp": "Yöneticiler, hiçbir zaman kilitlenmediğinizden emin olmak için her zaman varsayılan Emby sağlayıcısını kullanır.", + "HeaderNewUser": "Yeni Kullanıcı", + "ChangeServerDisplayName": "Sunucunun Görünen Adını Değiştir", + "ShowAdvancedSettings": "Gelişmiş ayarları göster", + "ChangingMetadataImageSettingsNewContent": "Metaveri veya sanatsal görsellerin indirme ayarlarında yapılan değişiklikler yalnızca kitaplığınıza eklenen yeni içerikler için geçerli olacaktır. Değişiklikleri mevcut başlıklara uygulamak için metaverileri manuel olarak yenilemeniz gerekir.", + "AllowRemoteAccess": "Bu Emby Sunucu'suna uzaktan bağlanmaya izin ver", + "AllowRemoteAccessHelp": "Eğer işaretlenmemişse, bütün uzak bağlantılar engellenecektir.", + "Alerts": "Uyarılar", + "LabelTrackTitleDisplay": "Gömülü parça başlığı ekranı", + "GenerateUserFriendlyTrackTitles": "Parça bilgilerini kullanarak kullanıcı dostu başlıklar oluşturun", + "PreferOriginalTrackTitles": "Gömülü başlıkları tercih et", + "TrackTitleDisplayHelp": "Gömülü ses ve altyazı parçalarının ekran adını seçin. Gömülü parça bilgisini elle düzenleme yapmadığınız sürece gömülü tercih etmeniz önerilmez.", + "EnableTranscodingThrottle": "Kısıtlamayı etkinleştir", + "EnableTranscodingThrottleHelp": "Emby, CPU kullanımını azaltmak için dönüştürme hızını dinamik olarak ayarlayacaktır.", + "HeaderTypeMetadataDownloaders": "{0} Metaveri İndiricileri", + "HeaderTypeImageFetchers": "{0} Afiş Sağlayıcılar", + "HeaderImageOptions": "Görüntü Seçenekleri", + "OptionBeta": "Deneme", + "RegisterWithPayPal": "Paypal ile kayıt ol", + "LabelSyncTempPath": "Geçici dosya yolu", + "LabelSyncTempPathHelp": "Özel bir çalışma klasörü belirtin. Dönüştürme işlemi sırasında oluşturulan medya burada saklanır.", + "LabelCustomCertificatePath": "Özel ssl sertifika yolu", + "LabelCustomCertificatePathHelp": "Özel bir alanda TLS desteğini etkinleştirmek için sertifika ve özel anahtar içeren PKCS#12 dosyasının yolu.", + "HeaderSetupLibrary": "Medya Kütüphanelerini Kur", + "LabelTimeLimitHours": "Zaman sınırı (saat)", + "HeaderPreferredMetadataLanguage": "Tercih Edilen Metaveri Dili", + "LabelSaveLocalMetadata": "Sanat görsellerini medya klasörlerine kaydet", + "LabelSaveLocalMetadataHelp": "Resimleri medya klasörlerine kaydetmek, resimleri Emby dışından kolayca erişilebilecekleri medya dosyalarının yanına koyacaktır. Devre dışı bırakılırsa, resimler sunucunun meta veri klasörüne kaydedilecektir.", + "TabAccess": "Erişim", + "HeaderDeviceAccess": "Cihaz Erişimi", + "OptionEnableAccessFromAllDevices": "Bütün cihazlardan erişime izin ver", + "OptionEnableAccessToAllChannels": "Bütün kanallara erişim izni ver", + "OptionEnableAccessToAllLibraries": "Bütün kütüphanelere erişim izni ver", + "DeviceAccessHelp": "Kullanıcı cihaz erişiminin filtrelenmesi, burada onaylanana kadar yeni cihazların kullanmasını engelleyecektir.", + "LabelDisplayMissingEpisodesWithinSeasons": "Sezondaki eksik bölümleri göster", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Emby Sunucu'su kurulumunda bunun TV kütüphaneleri için de aktif edilmiş olması gerekir.", + "ImportMissingEpisodesHelp": "Etkinleştirilirse, eksik bölümlerle ilgili bilgiler Emby veritabanınıza aktarılır ve sezonlar ve seriler içinde görüntülenir. Bu, kütüphane tarama süresini önemli ölçüde artırabilir.", + "MessageEnablingOptionLongerScans": "Bu seçeneğin etkinleştirilmesi, daha uzun süreli kütüphane taramalarına neden olabilir.", + "LabelMaxParentalRating": "İzin verilen maksimum ebeveyn derecelendirmesi", + "MaxParentalRatingHelp": "Daha yüksek derecelendirmeli içerik bu kullanıcıdan gizlenecektir.", + "LibraryAccessHelp": "Bu kullanıcıyla paylaşılacak medya klasörlerini seçin. Yöneticiler, metaveri yöneticisini kullanarak tüm klasörleri düzenleyebilecektir.", + "ChannelAccessHelp": "Bu kullanıcıyla paylaşılacak kanalları seç. Yöneticiler bütün kanalları metaveri yöneticisi ile düzenleyebilecektir.", + "ImageUploadAspectRatioHelp": "1:1 En Boy Oranı Önerilir. Sadece JPG/PNG için.", + "AlreadyPaidHelp1": "Android için Media Browser'ın daha eski bir sürümünü yüklemek için ödeme yaptıysanız, bu uygulamayı etkinleştirmek için tekrar ödeme yapmanız gerekmez. Bize {0} adresinden bir e-posta göndermek için Tamam'ı tıklayın, biz de sizin için aktif hale getirelim.", + "AlreadyPaidHelp2": "Emby Prömiyer'in var mı? O zaman bu iletişim kutusunu iptal edin. Yardım -> Emby Prömiyer altında Emby Sunucu Kontrol Panelinde Emby Prömiyer'i kurun, otomatik olarak kilidi açılacaktır.", + "TabMyPlugins": "Eklentilerim", + "TabCatalog": "Katalog", + "HeaderAutomaticUpdates": "Otomatik Güncellemeler", + "Standard": "Standart", + "TabSupporterKey": "Emby Prömiyer Anahtarı", + "OptionHideUserLocal": "Bu kullanıcıyı yerel ağdaki giriş ekranlarından gizle", + "OptionHideUserRemote": "Uzaktan bağlandığında bu kullanıcıyı giriş ekranlarından gizle", + "OptionHideUserFromLoginHelp": "Özel veya gizli yönetici hesapları için kullanışlıdır. Kullanıcının kullanıcı adı ve parolasını girerek elle giriş yapması gerekir.", + "HideFromUnusedDevices": "Bu kullanıcıyı, hiç oturum açmadıkları cihazlardaki giriş ekranlarından gizle", + "OptionDisableUser": "Kullanıcıyı devre dışı bırak", + "OptionDisableUserHelp": "Devre dışı bırakıldığında, sunucu bu kullanıcıdan hiçbir bağlantıya izin vermez. Mevcut bağlantılar hemen sonlandırılacak.", + "OptionAllowUserToManageServer": "Bu kullanıcıya sunucuyu yönetme izni ver", + "HeaderFeatureAccess": "Özellik Erişimi", + "OptionAllowMediaPlayback": "Medya oynatmaya izin ver", + "AllLibraries": "Bütün kütüphaneler", + "HeaderAllowMediaDeletionFrom": "Medya Silinmesine İzin Ver", + "LiveTVRecordingManagement": "Canlı TV Kayıt Yönetimi", + "OptionAllowRemoteControlOthers": "Diğer kullanıcıların uzaktan kontrolüne izin ver", + "OptionAllowRemoteSharedDevices": "Paylaşılan cihazların uzaktan kontrolüne izin ver", + "OptionAllowRemoteSharedDevicesHelp": "DLNA cihazları, bir kullanıcı kontrol etmeye başlayana kadar paylaşılan kabul edilir.", + "OptionAllowLinkSharing": "Sosyal medya paylaşımına izin ver", + "OptionAllowLinkSharingHelp": "Yalnızca medya bilgilerini içeren web sayfaları paylaşılır. Medya dosyaları hiçbir zaman genel olarak paylaşılmaz. Paylaşımlar zaman sınırlıdır ve {0} gün sonra sona erecektir.", + "OptionRelease": "Resmi Yayın", + "LabelAllowServerAutoRestartPlugin": "Eklenti güncellemelerini uygulamak için sunucunun otomatik olarak yeniden başlatılmasına izin verin", + "LabelAllowServerAutoRestartServerOrPlugin": "Sunucu veya eklenti güncellemelerini uygulamak için sunucunun otomatik olarak yeniden başlatılmasına izin verin", + "LabelAllowServerAutoRestartHelp": "Sunucu, hiçbir kullanıcı aktif olmadığında, yalnızca atıl kaldığında yeniden başlatılır.", + "LabelRunServerAtStartup": "Sunucuyu başlangıçta çalıştır", + "LabelRunServerAtStartupHelp": "Bu, Windows başlangıcında Emby tepsi simgesini başlatacaktır. Bir Windows servisi kurduysanız, bu seçeneği işaretlemeden bırakın ve servisi başlangıçta çalışacak şekilde yapılandırın.", + "ButtonSelectDirectory": "Klasör Seç", + "LabelCachePath": "Önbellek yolu", + "DefaultMetadataLangaugeDescription": "Bunlar varsayılan ayarlarınızdır ve kütüphane bazında özelleştirilebilir.", + "LabelCachePathHelp": "Sunucunun resim vb. önbellek dosyalarını tutması için bir yer belirt. Öntanımlı yeri kullanmak için boş bırak.", + "LabelDefaultRecordingFolder": "Varsayılan kayıt klasörü", + "LabelMovieRecordingFolder": "Film kayıt klasörü", + "LabelSeriesRecordingFolder": "Seri kayıt klasörü", + "SeriesRecordingFolderHelp": "(İsteğe bağlı). Dizi kayıtlarını içine kaydetmek için bir kitaplık seçin. Bu, Emby kütüphane kurulumunda oluşturduğunuz ve içerik türü TV şovları veya karma içerik olarak ayarlanmış bir kütüphane olmalıdır.", + "HeaderProgramData": "Program Verisi", + "RecordingFolderHelp": "Kayıtların kaydedileceği varsayılan kitaplığı seçin. Bu, Emby kütüphane kurulumunda oluşturduğunuz ve içerik türü karma içerik olarak ayarlanmış bir kütüphane olmalıdır.", + "MovieRecordingFolderHelp": "(İsteğe bağlı). Film kayıtlarını içine kaydetmek için bir kitaplık seçin. Bu, içerik türü filmler veya karma içerik olarak ayarlanmış Emby kütüphane kurulumunda oluşturduğunuz bir kütüphane olmalıdır.", + "LabelMetadataPath": "Metaveri yolu", + "LabelMetadataPathHelp": "İndirilen resimler ve meta veriler için 'meta veriler' klasörünün altında oluşturulacağı konumu belirtin veya varsayılana dönmek için bunu boş bırakın. Bunu değiştirirseniz içerikleri eski konumdan yeni konuma manuel olarak taşımanız gerekir. Meta veri klasörünün içeriğini manuel olarak değiştirirseniz, {0}meta veri klasörünü tarama zamanlanmış görevini{1} çalıştırmanız gerekecektir.", + "LabelTranscodingTempPath": "Kodek dönüştürme için geçici yol", + "LabelTranscodingTempPathHelp": "Bu klasör, kodek dönüştürücü tarafından kullanılan çalışma dosyalarını içerir. Bir yol belirleyin veya sunucunun veri klasöründeki varsayılanı kullanması için boş bırakın.", + "GenerateVideoPreviewThumbnailsHelp": "Video önizleme küçük resimleri, desteklenen uygulamalarda arama yapılırken canlı güncellemeler sağlar. Küçük resim oluşturma uzun zaman alabilir, yüksek CPU kullanımına neden olabilir ve fazladan disk alanı kullanabilir.", + "AsAScheduledTask": "planlanmış bir görev olarak", + "AsAScheduledTaskAndMediaAdded": "planlanmış bir görev olarak ve medya eklendiğinde", + "ButtonRefreshGuideData": "Kılavuz Verilerini Yenile", + "LabelNumberOfGuideDays": "İndirilecek rehber verilerinin gün sayısı", + "LabelNumberOfGuideDaysHelp": "Daha fazla günlük kılavuz verisinin indirilmesi, önceden planlama yapma ve daha fazla listeyi görüntüleme olanağı sağlar, ancak indirilmesi de daha uzun sürecektir. Otomatik, kanal sayısına göre seçim yapacaktır. Lütfen kaç gün seçerseniz seçin, verilerin indirilebilmesi için kaynak kılavuz verilerinde bulunması gerektiğini unutmayın. Bazı rehber veri kaynakları yalnızca 24 saat destek sağlar. Emby Kılavuz Verileri 14 güne kadar destek sağlar.", + "HeaderFetchImages": "Görüntüleri Getir", + "LabelMaxBackdropsPerItem": "Ürün başına maksimum arka plan sayısı", + "LabelMaxScreenshotsPerItem": "Öğe başına maksimum ekran görüntüsü sayısı", + "LabelMinBackdropDownloadWidth": "Minimum arka plan indirme genişliği", + "LabelMinScreenshotDownloadWidth": "Minimum ekran görüntüsü indirme genişliği", + "ButtonAddScheduledTaskTrigger": "Tetikleyici Ekle", + "ButtonAdd": "Ekle", + "LabelTriggerType": "Tetikleyici Tipi", + "OptionOnInterval": "Aralık temelli", + "OptionAfterSystemEvent": "Bir sistem olayı sonrası", + "LabelDay": "Gün", + "LabelTime": "Zaman", + "LabelEvent": "Olay", + "OptionWakeFromSleep": "Uykudan kalk", + "Every": "Her", + "LabelEnableRealtimeMonitor": "Gerçek zamanlı gözlemi etkinleştir", + "LabelEnableRealtimeMonitorHelp": "Dosya sisteminin desteklediği durumlarda dosyalardaki değişiklikler hemen işlenecektir.", + "Community": "Topluluk", + "HeaderEmbyNews": "Emby Haberler", + "LabelFriendlyServerName": "Dost sunucu adı", + "LabelFriendlyServerNameHelp": "Bu ad, sunucuyu tanımlamak için kullanılacaktır. Boş bırakılırsa, bilgisayar adı kullanılacaktır.", + "LabelPreferredDisplayLanguage": "Tercih edilen görüntüleme dili", + "LabelPreferredDisplayLanguageHelp": "Emby'nin tercümesi devam eden bir projedir.", + "LabelReadHowYouCanContribute": "Nasıl katkıda bulunabileceğinizi öğrenin.", + "LabelCustomCss": "Özel css", + "LabelCustomCssHelp": "Web arayüzüne kendi css'nizi uygulayın.", + "LabelLocalHttpServerPortNumber": "Yerel http port numarası", + "LabelLocalHttpServerPortNumberHelp": "Emby http sunucusunun tcp port numarası.", + "LabelPublicHttpPort": "Genel http port numarası", + "LabelPublicHttpPortHelp": "Yerel http port numarasına eşlenmesi gereken genel http port numarası.", + "LabelPublicHttpsPort": "Genel https port numarası", + "LabelPublicHttpsPortHelp": "Yerel https port numarasına eşlenmesi gereken genel https port numarası.", + "RequireHttps": "Dış bağlantılar için https zorunlu olsun", + "RequireHttpsHelp": "Etkinleştirilirse, http üzerinden bağlantılar https'ye yeniden yönlendirilecektir.", + "LabelHttpsPort": "Yerel https port numarası", + "LabelHttpsPortHelp": "Emby https sunucusunun tcp port numarası.", + "LabelEnableAutomaticPortMap": "Otomatik port eşleştirmeyi etkinleştirin", + "LabelEnableAutomaticPortMapHelp": "UPnP aracılığıyla genel bağlantı noktasını yerel bağlantı noktasına otomatik olarak eşlemeyi dene. Bu, bazı router modellerinde çalışmayabilir.", + "LabelExternalDDNS": "Harici alan", + "LabelExternalDDNSHelp": "Dinamik bir DNS veya etki alanı adınız varsa, onu protokol veya bağlantı noktası olmadan buraya girin. Uzaktan bağlanırken Emby uygulamaları bunu kullanacaktır. Bu alan, özel bir SSL sertifikası ile kullanıldığında gereklidir. Örnek: alanadim.com.", + "LabelMinResumePercentage": "Min devam yüzdesi", + "LabelMaxResumePercentage": "Max devam yüzdesi", + "LabelMinResumeDuration": "Min devam süresi (saniye)", + "LabelMinResumePercentageHelp": "Bu süreden önce durdurulursa başlıkların oynatılmadığı varsayılır", + "LabelMaxResumePercentageHelp": "Bu süreden sonra durdurulursa başlıkların tamamen oynatıldığı varsayılır", + "LabelMinResumeDurationHelp": "Bundan daha kısa olan başlıklar devam ettirilemez", + "HeaderStatus": "Durum", + "Subscriptions": "Abonelikler", + "LabelEndingEpisodeNumber": "Son bölüm no", + "LabelEndingEpisodeNumberHelp": "Yalnızca çok bölümlü dosyalar için gereklidir", + "HeaderSupportTheTeam": "Emby Ekibini Destekleyin", + "HeaderSupportTheTeamHelp": "Emby Prömiyer'i satın alarak bu projenin sürekli gelişimini sağlamaya yardımcı olun. Gelirin bir kısmı, bağımlı olduğumuz diğer ücretsiz araçlara katkıda bulunmak için kullanılacaktır.", + "DonationNextStep": "İşlem tamamlandığında lütfen geri dönün ve e-posta ile alacağınız Emby Prömiyer anahtarınızı girin.", + "HeaderRunningTasks": "Çalışan Görevler", + "ButtonUpdateNow": "Şimdi Güncelle", + "PleaseUpdateManually": "Lütfen Emby Sunucu'sunu kapatın ve en son sürümü yükleyin.", + "ServerUpToDate": "Emby Sunucusu güncel", + "MessagePleaseRestartServerToFinishUpdating": "Güncellemeleri uygulamak için lütfen sunucuyu yeniden başlatın.", + "LabelDownMixAudioScale": "Alt sentezleme sırasında ses güçlendirme", + "LabelDownMixAudioScaleHelp": "Alt sentezlemede sesi güçlendir. Orijinal ses değerini korumak için 1'e ayarlayın.", + "HeaderForgotKey": "Anahtarı Unuttum", + "LabelSupporterEmailAddress": "Anahtarı satın almak için kullanılan e-posta adresi.", + "ButtonRetrieveKey": "Anahtarı Al", + "LabelSupporterKey": "Emby Prömiyer anahtarı (e-postadan yapıştırın)", + "LabelSupporterKeyHelp": "Ek avantajlardan yararlanmaya başlamak için Emby Prömiyer anahtarınızı girin.", + "MessageInvalidKey": "Emby Prömiyer anahtarı eksik veya geçersiz.", + "ErrorMessageInvalidKey": "Herhangi bir premium içeriğin kaydedilebilmesi için aktif bir Emby Prömiyer aboneliğinizin de olması gerekir.", + "LabelSkipIfGraphicalSubsPresent": "Video zaten indirme diliyle eşleşen gömülü altyazılar içeriyorsa atla", + "LabelSkipIfGraphicalSubsPresentHelp": "Altyazıların metin sürümlerini tutmak, daha verimli dağıtımla sonuçlanacak ve video dönüştürme olasılığını azaltacaktır.", + "HeaderDownloadLanguages": "Dilleri İndir", + "LabelSkipIfAudioTrackPresent": "Varsayılan ses parçası indirme diliyle eşleşiyorsa atla", + "LabelSkipIfAudioTrackPresentHelp": "Ses dilinden bağımsız olarak tüm videolarda altyazı olduğundan emin olmak için bunun işaretini kaldırın.", + "SendMessage": "Mesaj gönder", + "HeaderSendMessage": "Mesaj Gönder", + "ButtonSend": "Gönder", + "LabelMessageText": "Mesaj metni", + "LabelMessageTitle": "Mesaj başlığı", + "ButtonEditOtherUserPreferences": "Bu kullanıcının profilini, resmini ve kişisel tercihlerini düzenleyin.", + "LabelLoginDisclaimer": "Giriş sorumluluk reddi beyanı", + "LabelLoginDisclaimerHelp": "Bu, giriş sayfasının altında görüntülenecektir.", + "HeaderTranscodingTemporaryFiles": "Geçici Dosyalar Dönüştürülüyor", + "HeaderApiKeys": "Api Anahtarları", + "HeaderApiKeysHelp": "Harici uygulamaların Emby Sunucu'su ile iletişim kurabilmesi için bir Api anahtarına sahip olması gerekir. Anahtarlar, bir Emby hesabıyla oturum açılarak veya manuel olarak bir girilir.", + "HeaderApiKey": "Api Anahtarı", + "HeaderResumeSettings": "Ayarları Devam Ettir", + "HeaderFetcherSettings": "Afiş Sağlayıcı Ayarları", + "HeaderActivity": "Aktivite", + "ButtonPurchase": "Satın Al", + "HeaderInstall": "Kur", + "LabelSelectVersionToInstall": "Kurulacak sürümü seç", + "LinkLearnMoreAboutSubscription": "Emby Prömiyer'i Hakkında Bilgi Edin", + "MessagePluginRequiresSubscription": "Bu eklenti, 14 günlük ücretsiz denemeden sonra aktif bir Emby Prömiyer aboneliği gerektirecektir.", + "MessagePremiumPluginRequiresMembership": "Bu eklenti, 14 günlük ücretsiz deneme süresinden sonra satın almak için aktif bir Emby Prömiyer aboneliği gerektirecektir.", + "HeaderDeveloperInfo": "Geliştirici Bilgisi", + "HeaderRevisionHistory": "Revizyon Tarihçesi", + "ButtonViewWebsite": "Web sitesini görüntüle", + "OptionSaveMetadataAsHidden": "Meta verileri ve görüntüleri gizli dosyalar olarak kaydet", + "LabelConnectEmail": "(İsteğe bağlı) Emby Connect e-posta adresi", + "LabelConnectEmailHelp": "İsteğe bağlı olarak, sunucu IP adresini bilmek zorunda kalmadan herhangi bir Emby uygulamasından kolay oturum açma erişimi sağlamak için bu yerel kullanıcıyı mevcut bir Emby Connect hesabına bağlayın.", + "ButtonLearnMoreAboutEmbyConnect": "Emby Connect hakkında daha fazla bilgi edin.", + "LabelDateAddedBehavior": "Yeni içerik için ekleme tarihi davranışı", + "OptionDateAddedImportTime": "Kütüphaneye taranan tarihi kullan", + "OptionDateAddedFileTime": "Dosya oluşturma tarihini kullan", + "LabelDateAddedBehaviorHelp": "Bir metaveri değeri varsa, her zaman bu seçeneklerden birinden önce kullanılacaktır.", + "HeaderLibrarySettings": "Kütüphane Ayarları", + "HeaderAutomaticSubtitleDownloads": "Otomatik Altyazı İndirmeleri", + "HeaderCameraUploadHelp": "Emby uygulamaları, mobil cihazlarınızdan çekilen fotoğrafları otomatik olarak Emby Sunucu'suna yükleyebilir.", + "LabelCameraUploadPath": "Kamera yükleme yolu", + "LabelCameraUploadPathHelp": "Özel bir yükleme yolu seçin. Bu, Kamera Yükleme bölümünde ayarlanan tüm varsayılan ayarları geçersiz kılacaktır. Boş bırakılırsa, varsayılan bir klasör kullanılacaktır. Özel bir yol kullanılıyorsa, Emby kütüphane kurulumunda kütüphane olarak da eklenmesi gerekecektir.", + "DefaultCameraUploadPathHelp": "Özel bir yükleme yolu seçin. Boş bırakılırsa, varsayılan bir klasör kullanılacaktır. Özel bir yol kullanılıyorsa, Emby kütüphanesi kurulumunda kütüphane olarak da eklenmesi gerekecektir.", + "LabelCreateCameraUploadSubfolder": "Her cihaz için bir alt klasör oluşturun", + "LabelCreateCameraUploadSubfolderHelp": "Cihazlar sayfasından üzerine tıklanarak bir cihaza belirli klasörler atanabilir.", + "LabelCustomDeviceDisplayNameHelp": "Özelleştirilmiş bir ad girin veya cihaz tarafından bildirilen adı kullanmak için boş bırakın.", + "TabParentalControl": "Ebeveyn Kontrolü", + "HeaderAccessSchedule": "Erişim Programı", + "HeaderAccessScheduleHelp": "Erişimi belirli saatlerle sınırlandırmak için bir erişim programı oluşturun.", + "HeaderLibraryAccess": "Kütüphane Erişimi", + "HeaderChannelAccess": "Kanal Erişimi", + "LabelForgotPasswordUsernameHelp": "Hatırlıyorsanız, kullanıcı adınızı girin.", + "TitlePasswordReset": "Parola Sıfırla", + "HeaderBlockItemsWithNoRating": "Derecelendirme bilgisi olmayan veya tanınmayan öğeleri engelle", + "LabelBlockContentWithTags": "Etiketli Öğeleri Sınırlandır", + "LabelTagRestrictionMode": "Etiket sınırlandırma modu", + "BlockItemsWithTheseTags": "Bu etikete sahip öğeleri engelle:", + "AllowItemsWithTheseTags": "Sadece bu etiketlere sahip öğelere izin ver", + "OptionAllowContentDownloading": "Medya indirmeye izin ver", + "LabelNewUserNameHelp": "Kullanıcı adları harf (a-z), sayı (0-9), kısa çizgi (-), alt çizgi (_), kesme işareti (') ve nokta (.) içerebilir.", + "HeaderThisUserIsCurrentlyDisabled": "Bu kullanıcı şu anda devre dışı. Bu kullanıcıyı etkinleştirmek için lütfen bu sayfanın altındaki seçeneğe bakın.", + "OptionAllowSyncTranscoding": "Dönüştürme gerektiren medyanın indirilmesine izin ver", + "AllowMediaConversion": "Medya dönüştürmesine izin ver", + "AllowMediaConversionHelp": "Medya dönüştürme özelliğine erişim izni verin veya reddedin.", + "OptionAllowAudioPlaybackTranscoding": "Gerekirse medya oynatımı sırasında ses kodunun uyumlu bir formata dönüştürülmesine izin verin", + "OptionAllowVideoPlaybackTranscoding": "Gerekirse medya oynatımı sırasında videonun uyumlu bir formata dönüştürülmesine izin verin", + "OptionAllowVideoPlaybackRemuxing": "Medya oynatma sırasında gerekirse konteyner formatlarının değiştirilmesine izin verin", + "OptionAllowMediaPlaybackTranscodingHelp": "Kodek dönüştürmeye erişimin kısıtlanması, kalite seçimini devre dışı bırakır ve desteklenmeyen medya biçimleri veya yetersiz bant genişliği nedeniyle Emby uygulamalarında oynatma hatalarına neden olabilir.", + "LabelRemoteClientBitrateLimit": "İnternet akışı bit hızı sınırı (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Ağ dışındaki tüm cihazlar için isteğe bağlı yayın başına bit hızı sınırı. Bu, cihazların internet bağlantınızın kaldırabileceğinden daha yüksek bir bit hızı istemesini önlemek için kullanışlıdır. Bu, videoları anında daha düşük bir bit hızına dönüştürmek için sunucunuzda artan CPU yüküne neden olabilir.", + "LabelUserRemoteClientBitrateLimitHelp": "Bu, gelişmiş sunucu ayarlarında belirlenen varsayılan global değeri geçersiz kılacaktır.", + "OptionEnableFullSpeedConversion": "Tam hızlı dönüşümü etkinleştir", + "OptionEnableFullSpeedConversionHelp": "Varsayılan olarak, kaynak tüketimini en aza indirmek için dönüşümler düşük hızda gerçekleştirilir.", + "OptionEnableAutomaticServerUpdates": "Otomatik sunucu güncellemelerini etkinleştir", + "HeaderTVSources": "TV Kaynakları", + "HeaderAddTvSource": "TV Kaynağı Ekle", + "LabelTunerIpAddress": "Tuner IP Adresi", + "HeaderGuideProviders": "Rehber Veri Kaynakları", + "HeaderAddGuideSource": "Kılavuz Veri Kaynağı Ekleme", + "LabelZipCode": "Posta Kodu", + "LabelLineup": "Sırala", + "LabelImportOnlyFavoriteChannels": "Favori olarak işaretlenen kanallarla sınırla", + "ImportFavoriteChannelsHelp": "Etkinleştirilirse, yalnızca tuner cihazında favori olarak işaretlenen kanallar içe aktarılacaktır.", + "HeaderDefaultRecordingSettings": "Varsayılan Kayıt Ayarları", + "LabelDisplayName": "Görünen ad", + "OptionDownloadImagesInAdvance": "Resimleri önceden indir", + "OptionDownloadImagesInAdvanceHelp": "Varsayılan olarak, çoğu görüntü bir Emby uygulaması tarafından görüntülenene kadar internetten indirilmez. Yeni medya içe aktarıldıkça tüm görüntüleri önceden indirmek için bu seçeneği etkinleştirin. Bu, önemli ölçüde daha uzun kütüphane taramalarına neden olabilir", + "MessageThankYouForSupporting": "Emby'yi desteklediğiniz için teşekkürler.", + "FileReadCancelled": "Dosya Okuma İptal Edildi", + "FileNotFound": "Dosya Bulunamadı", + "FileReadError": "Dosya Okunurken Bir Hata Oluştu", + "NoPluginConfigurationMessage": "Bu eklentinin yapılandırılacak ayarı yoktur.", + "HeaderNewApiKey": "Yeni Api Anahtarı", + "HeaderNewApiKeyHelp": "Bir uygulamaya Emby Sunucu'su ile iletişim kurma izni verin.", + "MessageKeyEmailedTo": "Anahtar {0} adresine gönderildi.", + "HeaderConfirmation": "Onaylama", + "MessageKeyUpdated": "Teşekkürler. Emby Prömiyer anahtarınız güncellendi.", + "MessageKeyRemoved": "Teşekkürler. Emby Prömiyer anahtarınız kaldırıldı.", + "TextEnjoyBonusFeatures": "Bonus Özelliklerin Keyfini Çıkarın", + "MessageErrorLoadingSupporterInfo": "Emby Prömiyer bilgileri yüklenirken bir hata oluştu. Lütfen daha sonra tekrar deneyin.", + "ValueTimeLimitSingleHour": "Zaman limiti: 1 saat", + "ValueTimeLimitMultiHour": "Zaman limiti: {0} saat", + "General": "Genel", + "HeaderScreenSavers": "Ekran Koruyucular", + "Reporting": "Raporlanıyor", + "LabelStopping": "Durduruluyor", + "HeaderSelectCertificatePath": "Sertifika Yolunu Seç", + "HeaderSupporterBenefit": "Aktif bir Emby Prömiyer aboneliği, Emby DVR'ye, çevrimdışı medyaya, premium eklentilere ve daha fazlasına erişim gibi ek avantajlar sağlar. {0}Daha fazla bilgi edinin{1}.", + "LabelAbortedByServerShutdown": "(Sunucu kapanması yüzünden iptal edildi)", + "LabelScheduledTaskLastRan": "En son {0} çalıştırıldı, {1} sürdü.", + "HeaderDeleteTaskTrigger": "Görev Tetikleyicisini Sil", + "MessageDeleteTaskTrigger": "Bu görev tetikleyicisini silmek istedğinize emin misiniz?", + "MessageNoPluginsDueToAppStore": "Eklentileri yönetmek için lütfen Emby web uygulamasını kullanın.", + "LabelVersionInstalled": "{0} kuruldu", + "HeaderSelectServerCachePath": "Sunucu Önbellek Yolunu Seç", + "HeaderSelectTranscodingPath": "Geçici Kodek Dönüştürme Yolunu Seç", + "HeaderSelectMetadataPath": "Metaveri Yolunu Seç", + "HeaderSelectServerCachePathHelp": "Sunucu önbellek dosyaları için kullanılacak yola göz atın veya yolu girin. Klasör yazılabilir olmalıdır.", + "HeaderSelectTranscodingPathHelp": "Kodek dönüştürme geçici dosyaları için kullanılacak yola göz atın veya yolu girin. Klasör yazılabilir olmalıdır.", + "HeaderSelectMetadataPathHelp": "Metaverileri depolamak istediğiniz yola göz atın veya girin. Klasör yazılabilir olmalıdır.", + "MessageConfirmRestart": "Emby Sunucu'yu yeniden başlatmak istediğinizden emin misiniz?", + "MessageConfirmShutdown": "Emby Sunucu'sunu kapatmak istediğinizden emin misiniz?", + "LabelLocalAccessUrl": "Ev İçi (LAN) erişim: {0}", + "LabelRemoteAccessUrl": "Uzaktan (WAN) erişim: {0}", + "LabelRunningOnPort": "Http bağlantı noktası {0} üzerinde çalışıyor", + "LabelRunningOnPorts": "Http bağlantı noktası {0} ve https bağlantı noktası {1} üzerinde çalışıyor", + "LabelCurrentPath": "Mevcut yol", + "HeaderSelectMediaPath": "Medya Yolunu Seç", + "HeaderSelectPath": "Yol Seç", + "MessageDirectoryPickerInstruction": "Ağ düğmesi cihazlarınızı bulamazsa ağ yolları manuel olarak girilebilir. Örneğin, {0} veya {1} .", + "MessageDirectoryPickerBSDInstruction": "BSD kullanılması durumunda Emby'nin erişmesine izin vermek için FreeNAS Jail içindeki depolamayı yapılandırmanız gerekebilir.", + "MessageDirectoryPickerLinuxInstruction": "Arch Linux, CentOS, Debian, Fedora, OpenSuse veya Ubuntu için, Emby sistemi kullanıcısına depolama konumlarınıza en azından okuma erişimi vermelisiniz.", + "MetadataManager": "Metaveri Yöneticisi", + "OptionBlockLiveTvChannels": "Canlı TV Kanalları", + "OptionBlockChannelContent": "Internet Kanal İçeriği", + "ButtonRevoke": "Geri Al", + "MessageConfirmRevokeApiKey": "Bu API anahtarını iptal etmek istediğinizden emin misiniz? Uygulamanın Emby Sunucu'suna bağlantısı aniden kesilecektir.", + "HeaderConfirmRevokeApiKey": "API Anahtarını Geri Al", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Lütfen devam etmeden önce hizmet koşullarını kabul edin.", + "HeaderChangeFolderType": "İçerik Türünü Değiştir", + "HeaderChangeFolderTypeHelp": "Türü değiştirmek için lütfen kütüphaneyi kaldırıp yeni türle yeniden oluşturun.", + "HeaderAlert": "Uyarı", + "MessagePleaseRestart": "Güncellemeyi bitirmek için lütfen yeniden başlatın.", + "OptionHomeVideos": "Ev videoları & fotoğrafları", + "OptionBooks": "Kitaplar", + "HeaderMetadataReaders": "Metaveri Okuyucuları", + "LabelMetadataReadersHelp": "Tercih ettiğiniz yerel meta veri kaynaklarını etkinleştirin ve öncelik sırasına göre sıralayın.", + "HeaderSubtitleDownloaders": "Altyazı İndiricileri", + "SubtitleDownloadersHelp": "Tercih ettiğiniz altyazı indiricilerini etkinleştirin ve önceliğine göre sıralayın. Emby eklenti kataloğu kullanılarak daha fazla altyazı sağlayıcısı kurulabilir.", + "LabelMetadataDownloaders": "Metaveri indiricileri", + "LabelMetadataDownloadersHelp": "Tercih ettiğiniz metaveri indiricilerini etkinleştirin ve önceliğine göre sıralayın. Daha düşük öncelikli indiriciler yalnızca eksik bilgileri doldurmak için kullanılacaktır.", + "HeaderMetadataSavers": "Metaveri Kaydedicileri", + "LabelMetadataSaversHelp": "Metaverilerinizi kaydedeceğiniz dosya formatlarını seçin.", + "LabelImageFetchers": "Görüntü sağlayıcılar", + "LabelImageFetchersHelp": "Tercih ettiğiniz afiş sağlayıcılarını etkinleştirin ve önceliğine göre sıralayın.", + "PersonTypePerson": "Kişi", + "HeaderRemoveMediaLocation": "Medya Konumunu Kaldır", + "MessageConfirmRemoveMediaLocation": "Bu lokasyonu silmek istediğinize emin misiniz?", + "LabelNewName": "Yeni ad", + "HeaderRemoveLibrary": "Kütüphaneyi Kaldır", + "MessageAreYouSureYouWishToRemoveLibrary": "Emby Sunucunuzdan {0} kütüphanesini kaldırmak istediğinizden emin misiniz? Medya dosyalarınız etkilenmeyecektir.", + "ButtonRename": "Yeniden Adlandır", + "HeaderPluginInstallation": "Eklenti Kurulumu", + "MessageTrialExpired": "Bu özelliğin deneme süresi sona erdi", + "MessageTrialWillExpireIn": "Bu özelliğin deneme süresi {0} gün içinde sona erecek", + "ValuePriceUSD": "Fiyat: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Bu özellik için kaydoldunuz ve aktif bir Emby Prömiyer aboneliğiyle kullanmaya devam edebileceksiniz.", + "HeaderSelectExternalPlayer": "Harici Oynatıcı Seç", + "HeaderExternalPlayerPlayback": "Harici Oynatıcı Oynatma", + "HeaderThankYou": "Teşekkürler", + "HeaderSelectUploadPath": "Yükleme Yolunu Seç", + "ErrorMessageStartHourGreaterThanEnd": "Bitiş zamanı, başlangıç ​​zamanından büyük olmalıdır.", + "MessagePluginConfigurationRequiresLocalAccess": "Bu eklentiyi yapılandırmak için lütfen doğrudan yerel sunucunuzda oturum açın.", + "MovieLibraryHelp": "{0}Emby film adlandırma kılavuzunu{1} gözden geçir.", + "TvLibraryHelp": "{0}Emby TV adlandırma kılavuzunu{1} gözden geçir.", + "BookLibraryHelp": "Kitaplar desteklenmektedir. {0} Emby Kitap adlandırma kılavuzunu{1} gözden geçir.", + "MessageGamePluginRequired": "GameBrowser eklentisinin yüklenmesini gerektirir", + "HeaderUnlockApp": "Uygulama Kilidini Aç", + "MessagePaymentServicesUnavailable": "Ödeme hizmetleri şu anda kullanılamıyor. Lütfen daha sonra tekrar deneyiniz.", + "NoNewDevicesFound": "Yeni cihaz bulunamadı. Yeni bir tuner eklemek için, bu iletişim kutusunu kapatın ve cihaz bilgilerini manuel olarak girin.", + "MessageConfirmDeleteTunerDevice": "Bu cihazı silmek istediğinize emin misiniz?", + "MessageConfirmDeleteGuideProvider": "Bu kılavuz sağlayıcıyı silmek istediğinize emin misiniz?", + "HeaderDeleteProvider": "Sağlayıcıyı Sil", + "ErrorAddingTunerDevice": "Tuner cihazı eklenirken bir hata oluştu. Lütfen erişilebilir olduğundan emin olun ve tekrar deneyin.", + "ErrorSavingTvProvider": "TV sağlayıcısı kaydedilirken bir hata oluştu. Lütfen erişilebilir olduğundan emin olun ve tekrar deneyin.", + "ErrorGettingTvLineups": "TV programlarını indirirken bir hata oluştu. Lütfen bilgilerinizin doğru olduğundan emin olun ve tekrar deneyin.", + "MessageCreateAccountAt": "{0} adresinde bir hesap oluşturun", + "ErrorPleaseSelectLineup": "Lütfen bir dizilim seçin ve tekrar deneyin. Hiçbir dizilim yoksa, lütfen kullanıcı adınızın, parolanızın ve posta kodunuzun doğru olduğunu kontrol edin.", + "ErrorValidatingSupporterInfo": "Emby Prömiyer bilgilerinizi doğrularken bir hata oluştu. Lütfen daha sonra tekrar deneyiniz.", + "LabelLocalSyncStatusValue": "Durum: {0}", + "HeaderTopPlugins": "En İyi Eklentiler", + "ForAdditionalLiveTvOptions": "Ek Canlı TV sağlayıcıları yüklemek için Emby {0}eklenti kataloğuna{1} göz atın.", + "AddUser": "Kullanıcı Ekle", + "HeaderEmailAddress": "E-posta Adresi:", + "NumLocationsValue": "{0} klasörler", + "PleaseAddAtLeastOneFolder": "Lütfen Ekle düğmesine tıklayarak bu kütüphaneye en az bir klasör ekleyin.", + "ErrorAddingMediaPathToVirtualFolder": "Medya yolunu eklerken bir hata oluştu. Lütfen yolun geçerli olduğundan ve Emby Sunucu'sunun bu konuma erişimi olduğundan emin olun.", + "ErrorAddingEmbyConnectAccount3": "Emby hesabı zaten mevcut bir yerel kullanıcıya bağlı. Bir Emby hesabı aynı anda yalnızca bir yerel kullanıcıya bağlanabilir.", + "HeaderConfirmPluginInstallation": "Eklenti Kurulumunu Onayla", + "PleaseConfirmPluginInstallation": "Yukarıdakileri okuduğunuzu ve eklenti kurulumuna devam etmek istediğinizi onaylamak için lütfen Tamam'a tıklayın.", + "MessagePluginInstallDisclaimer": "Emby topluluğu üyeleri tarafından oluşturulan eklentiler, ek özellikler ve avantajlarla Emby deneyiminizi artırmanın harika bir yoludur. Yüklemeden önce, lütfen Emby Sunucu'nuz üzerinde daha uzun kütüphane taramaları, ek arka plan işlemleri ve azalan sistem kararlılığı gibi etkilerin farkında olun.", + "HardwareAccelerationWarning": "Donanım hızlandırmayı etkinleştirmek, bazı ortamlarda kararsızlığa neden olabilir. İşletim sisteminizin ve video sürücülerinizin tamamen güncel olduğundan emin olun. Bunu etkinleştirdikten sonra video oynatmada zorluk yaşıyorsanız, ayarı Otomatik olarak değiştirmeniz gerekecektir.", + "ValueExample": "Örnek: {0}", + "LabelFileOrUrl": "Dosya veya url", + "OptionEnableForAllTuners": "Tüm tuner cihazları için etkinleştirin", + "HeaderTuners": "Tunerler", + "DrmChannelsNotImported": "DRM'li kanallar içe aktarılmayacaktır.", + "LabelAllowHWTranscoding": "Donanımla kodek dönüştürmeye izin ver", + "AllowHWTranscodingHelp": "Etkinleştirilirdiyse, ayarlayıcının akışları anında dönüştürmesine izin ver. Bu, Emby Sunucu'su tarafından yapılacak kodek dönüştürmeye ihtiyacı azaltmaya yardımcı olabilir.", + "MetadataSettingChangeHelp": "Metaveri ayarlarının değiştirilmesi, bundan sonra eklenen yeni içeriği etkileyecektir. Mevcut içeriği yenilemek için ayrıntı ekranını açın ve yenile düğmesine tıklayın veya metaveri yöneticisini kullanarak toplu yenilemeler yapın.", + "RecordingPathChangeMessage": "Kayıt klasörünüzü değiştirmek, mevcut kayıtları eski konumdan yenisine taşımaz. İsterseniz bunları manuel olarak taşımanız gerekir.", + "LabelLocalIpAddress": "Yerel IP adresi", + "LabelBindToLocalNetworkAddressHelp": "İsteğe bağlı. Emby Sunucu'sunun Emby uygulamalarına sunacağı yerel IP adresininin üzerine yaz. Boş bırakılırsa, sunucu yerel IP adresini otomatik olarak algılayacaktır.", + "SettingsWarning": "Bu değerlerin değiştirilmesi kararsızlığa veya bağlantı hatalarına neden olabilir. Herhangi bir sorunla karşılaşırsanız, bunları varsayılana geri döndürmenizi öneririz.", + "OptionSaveMetadataAsHiddenHelp": "Bunun değiştirilmesi, bundan sonra kaydedilen yeni metaverilere uygulanacaktır. Mevcut metaveri dosyaları, Emby Sunucu'su tarafından bir sonraki kaydedilmelerinde güncellenecektir.", + "EnablePhotos": "Resimleri etkinleştir", + "EnablePhotosHelp": "Fotoğraflar algılanacak ve diğer medya dosyalarıyla birlikte görüntülenecektir.", + "ImportPlaylists": "Oynatma listelerini içeri aktar", + "ImportPlaylistsHelp": "Medya klasörlerinde bulunan oynatma listeleriniz Emby Sunucusu'na aktarılabilir.", + "SaveThumbnailImagesIntoMediaFolders": "Video önizleme küçük resimlerini medya klasörlerine kaydedin", + "LabelGenerateVideoPreviewThumbnails": "Video önizleme küçük resimleri oluşturun", + "LabelEnableDebugLogging": "Hata ayıklama günlüğünü etkinleştir", + "OptionEnableExternalContentInSuggestions": "Önerilerde harici içeriği etkinleştirin", + "OptionEnableExternalContentInSuggestionsHelp": "İnternet fragmanlarının ve canlı TV programlarının önerilen içeriğe dahil edilmesine izin verin.", + "LabelOptionalNetworkPath": "(İsteğe bağlı) Paylaşılan ağ klasörü", + "LabelOptionalNetworkPathHelp": "Bu klasör ağınızda paylaşılıyorsa, ağ paylaşım yolunu sağlamak diğer cihazlardaki Emby uygulamalarının medya dosyalarına doğrudan erişmesine izin verebilir.", + "SynologyUpdateInstructions": "Lütfen DSM'de oturum açın ve güncellemek için Paket Merkezi'ne gidin.", + "HeaderRecordingPostProcessing": "Kayıt Sonrası İşleme", + "LabelPostProcessorArguments": "Komut satırı işlem sonrası bağımsız değişkenleri", + "PostProcessorArgumentsHelp": "Son işlemcinize veri aktarımına izin vermek için komut satırında aşağıdaki değişkenler desteklenir", + "LabelPostProcessor": "İşlem sonrası uygulama", + "DvrPostProcessorPathArgument": "{path}: Yeni kayıt dosyasının tam yolu", + "OptionAutomaticallyGroupSeries": "Birden çok klasöre yayılmış serileri otomatik olarak birleştirin", + "OptionAutomaticallyGroupSeriesHelp": "Etkinleştirilirse, bu kütüphane içinde birden çok klasöre yayılmış seriler otomatik olarak tek bir seri halinde birleştirilecektir.", + "WhenDidYouPurchaseApp": "Bu uygulamayı ilk olarak ne zaman satın aldınız?", + "PreferEmbeddedTitlesOverFileNames": "Dosya adları yerine gömülü başlıkları tercih et", + "PreferEmbeddedTitlesOverFileNamesHelp": "Bu, internet metaverisi veya lokal metaveri mevcut olmadığında varsayılan başlık görünümünü belirler.", + "FriendlyNameForReferenceHelp": "Kendi referansınız için görüntüleme amacıyla kullanılan kolay bir ad.", + "HeaderLiveTvTunerSetup": "Canlı TV Tuner Kurulumu", + "HeaderTVSourceSetup": "TV Kaynak Kurulumu", + "HeaderDetectMyDevices": "Cihazları Algıla", + "MessagePleaseWait": "Lütfen bekle. Bu bir dakika sürebilir.", + "DetectingDevices": "Cihazlar algılanıyor", + "LabelAutomaticallyRefreshInternetMetadataEvery": "İlk içe aktarımdan sonra, meta verileri internetten otomatik olarak yenileyin", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "TBA gibi yer tutucu başlıklara sahip bölümler için meta verileri otomatik olarak yenileyin", + "EveryNDays": "Her {0} gün", + "LabelCertificatePassword": "Sertifika parolası", + "LabelCertificatePasswordHelp": "Sertifikanız bir parola gerektiriyorsa, lütfen buraya girin.", + "HeaderNewLibrary": "Yeni Kütüphane", + "HttpsRequiresCert": "Güvenli bağlantıları etkinleştirmek için, Lets Encrypt gibi güvenilir bir SSL sertifikası sağlamanız gerekir. Lütfen bir sertifika sağlayın veya güvenli bağlantıları devre dışı bırakın.", + "ServerRestartNeededAfterPluginInstall": "Bir eklenti yüklendikten sonra Emby Sunucu'sunun yeniden başlatılması gerekecektir.", + "PluginInstalledMessage": "Eklenti başarıyla kuruldu. Değişikliklerin geçerli olması için Emby Sunucu'sunun yeniden başlatılması gerekecektir.", + "MessagePremiereStatusGood": "Bir {0} Emby Prömiyer planınız var ve cihaz kullanımınız sınırınız dahilinde.", + "MessagePremiereStatusClose": "Bir {0} Emby Prömiyer planınız var, ancak cihaz kullanımınız sınıra yakın.", + "MessagePremiereExtendedPlans": "{0}Genişletilmiş cihaz planına{1} geçmeyi düşünün", + "MessagePremiereStatusOver": "{0} Emby Prömiyer planınız var, ancak cihaz sınırınızı aştınız!", + "ListItemPremiereSub": "{2} aracılığıyla satın alınan {0} aboneliğinin süresi {1} içinde doluyor", + "LabelClickToManage": "Bu aboneliği yönetmek için tıklayın", + "LabelCancelInfo": "Bu aboneliği doğrudan {0} ile yönetebilirsiniz", + "LabelAlreadyCanceled": "Bu abonelik iptal edildi. Anahtar, son kullanma tarihine kadar geçerli kalacaktır.", + "HeaderCancelSub": "Emby Prömiyer'i iptal et", + "MessageConfirmSubCancel": "HAYIR, Lütfen gitme ... Emby Prömiyer'in tüm harika özelliklerini kaçıracaksın!", + "ButtonCancelSub": "Biliyorum, yine de iptal et", + "ButtonDontCancelSub": "Emby Prömiyer'i Koru", + "MessageSubCancelReqSent": "Anahtarın sahibine bir e-posta gönderildi. Bu aboneliğin iptalini tamamlamak için lütfen bu e-postadaki talimatları izleyin. Yakında tekrar görüşmek dileğiyle!", + "MessageSubCancelError": "İptal etmeye çalışırken bir şeyler ters gitti. Lütfen {0} adresine bir e-posta gönderin, sizi düzelteceğiz.", + "LabelAlreadyCancelled": "Bu abonelik iptal edildi. Tekrar ücretlendirilmeyeceksiniz. Ancak özellikler yukarıdaki tarihe kadar çalışacak.", + "AllowOnTheFlySubtitleExtraction": "Anında altyazı çıkarmaya izin ver", + "AllowOnTheFlySubtitleExtractionHelp": "Gömülü altyazılar, video kod dönüştürmesini önlemeye yardımcı olmak için videolardan çıkarılabilir ve Emby uygulamalarına düz metin olarak gönderilebilir. Bazı sistemlerde bu uzun zaman alabilir ve çıkarma işlemi sırasında video oynatmanın durmasına neden olabilir. İstemci cihaz tarafından yerel olarak desteklenmediklerinde, gömülü altyazıların video dönüştürme ile yazılması için bunu devre dışı bırakın.", + "AllowOnTheFlyFontExtraction": "Anında altyazı yazı tipi çıkarmaya izin ver", + "AllowOnTheFlyFontExtractionHelp": "Özel yazı tipleri içeren videoları desteklemek için gömülü yazı tipleri videolardan çıkarılabilir ve Emby uygulamalarına gönderilebilir. Bazı sistemlerde bu uzun zaman alabilir ve çıkarma işlemi sırasında video oynatımının durmasına neden olabilir.", + "EnableDebugLoggingHelp": "Hata ayıklama günlük kaydı, yalnızca sorun giderme amacıyla gerektiğinde etkinleştirilmelidir. Dosya sistemi erişiminin artması, sunucu makinesinin bazı ortamlarda uykuya dalmasını engelleyebilir.", + "LabelSimultaneousConnectionLimit": "Eşzamanlı akış sınırı", + "SimultaneousConnectionLimitHelp": "İzin verilen maksimum eşzamanlı akış sayısı. Sınırsızlık için 0 girin.", + "LaunchWebAppOnStartup": "Emby Server başladığında web tarayıcımda Emby web uygulamasını başlat", + "LaunchWebAppOnStartupHelp": "Bu, Emby Server ilk başladığında web uygulamasını varsayılan web tarayıcınızda açacaktır. Sunucuyu yeniden başlatma işlevi kullanılırken bu gerçekleşmeyecektir.", + "LabelReferrerHeader": "Yönlendiren http başlığı", + "LabelUserAgentHeader": "Kullanıcı vekili http başlığı", + "SupplyCustomValueIfNeeded": "Gerekirse özel bir http başlık değeri sağlayın.", + "HeaderConfigureRemoteAccess": "Uzaktan Erişimi Yapılandırın", + "LearnHowToCreateSynologyShares": "Synology'de klasörleri nasıl paylaşacağınızı öğrenin.", + "LabelAllowedRemoteAddresses": "Uzak IP adres filtresi", + "LabelAllowedRemoteAddressesMode": "Uzak IP adresi filtre modu", + "Whitelist": "Beyaz liste", + "Blacklist": "Kara liste", + "AllowedRemoteAddressesHelp": "Uzaktan bağlanmasına izin verilecek ağlar için IP adreslerinin veya IP / ağ maskesi girişlerinin virgülle ayrılmış listesi. Boş bırakılırsa, tüm uzak adreslere izin verilecektir.", + "LabelLanNetworks": "Yerel ağlar", + "LanNetworksHelpText": "Bant genişliği ve uzaktan erişim kısıtlamalarını uygularken yerel ağda dikkate alınacak ağlar için virgülle ayrılmış IP adresleri veya IP/ağ maskesi girişleri listesi. Ayarlanırsa, diğer tüm IP adresleri harici ağda kabul edilir. Boş bırakılırsa, yalnızca sunucunun alt ağı ve ortak özel IP alt ağları (192.168.0.0/24, 172.16.0.0/12, vb.) yerel ağda kabul edilir.", + "LabelSecureConnectionsMode": "Güvenli bağlantı modu", + "PreferredNotRequired": "Tercih edilir, ancak zorunlu değil", + "RequiredForAllRemoteConnections": "Tüm uzak bağlantılar için gerekli", + "HandledByProxy": "Ters proxy tarafından yönetilir", + "SaveSubtitlesIntoMediaFolders": "İndirilen altyazıları medya klasörlerine kaydedin", + "SaveSubtitlesIntoMediaFoldersHelp": "Altyazıların video dosyalarının yanında saklanması, daha kolay yönetilmelerini sağlayacaktır.", + "AutomaticSubtitleDownloadInstructions": "Otomatik altyazı indirmeyi yönetmek için, Emby kütüphane kurulumundaki bir kütüphaneye tıklayın ve bu kütüphane için altyazı indirme ayarlarını düzenleyin.", + "ProviderNeedsSetupWithUrl": "{2} Emby Server'daki {1} ayarlar ekranında {0} ek kurulum gerektirir.", + "LabelEnableHardwareAcceleration": "Eğer varsa donanım hızlandırmayı etkinleştirin", + "HeaderPreferredHardwareDecoders": "Tercih Edilen Donanımsal Kod Çözücüler", + "HeaderPreferredHardwareEncoders": "Tercih Edilen Donanımsal Kodlayıcılar", + "AllowChangingImageAndPassword": "Bu kullanıcının parolasını ve profil resmini değiştirmesine izin ver", + "LabelSimultaneousStreamLimit": "Maksimum eşzamanlı video akışı", + "SimultaneousStreamLimitHelp": "Eşzamanlı video oynatma oturumlarının sayısını sınırlayın.", + "LabelMusicFolderStructure": "Müzik klasörü yapısı", + "LabelMusicFolderStructureHelp": "Bu, kütüphane tarayıcısına klasörlerinizin düzenlenme şekli hakkında bir ipucu sağlar. Emin değilseniz veya klasörleriniz seçeneklerden biriyle tam olarak eşleşmiyorsa, lütfen Diğer seçeneğini seçin.", + "OtherOrUnstructured": "Diğer veya yapılandırılmamış", + "PerfectArtistAlbumTrack": "Doğrudan albüm klasörlerindeki parçalarla, sanatçı\\albüm klasörleri halinde mükemmel şekilde düzenlenmiştir.", + "PerfectAlbumTrack": "Doğrudan albüm klasörlerindeki parçalarla albüm klasörleri halinde mükemmel bir şekilde düzenlenmiştir.", + "LabelMinCollectionSize": "Minimum otomatik koleksiyon boyutu", + "PerfectAuthorAudioBookTrack": "Doğrudan kitap klasörlerinde bulunan parçalarla, yazar\\kitap klasörleri halinde mükemmel bir şekilde düzenlenmiştir.", + "PerfectAudioBookTrack": "Doğrudan kitap klasörlerinde bulunan parçalarla kitap klasörleri halinde mükemmel şekilde düzenlenmiştir.", + "MinCollectionSizeHelp": "Kitaplığınızda en azından seçili sayıda başlık olduğunda otomatik olarak koleksiyon oluşturun. Bu değeri değiştirmek, mevcut koleksiyonları etkilemeyecektir.", + "LabelImportCollections": "Koleksiyon bilgilerini metaveri indiricilerinden aktar", + "LabelImportCollectionsHelp": "Etkinleştirildiğinde, bu, etkin metaveri indiricilerinizden koleksiyon bilgilerini içe aktaracaktır. Bu, istenmeyen koleksiyonların otomatik olarak oluşturulmasına neden olabilir. Devre dışı bırakmak, gelecekteki koleksiyonların otomatik olarak oluşturulmasını engeller ancak mevcut koleksiyonları silmeyecektir.", + "LabelAllowAdultMetadata": "Yetişkin metaveriye izin ver", + "LabelAllowAdultMetadataHelp": "İnternet metaverilerini ararken yetişkin başlıklarının eşleşmesine izin ver.", + "HeaderVideoPreviewThumbnails": "Video Önizleme Küçük Resimleri", + "LabelEnableHDRToneMapping": "HDR ton eşlemesini etkinleştirin", + "EnableHDRToneMappingHelp": "Ton eşleme, HDR içeriğini dönüştürürken doğru renk dönüşümünü sağlar. Aksi takdirde yüksek derecede soluk ve doymamış görünecektir. Bu özellik etkinken donanım hızlandırmayı desteklemek için ek sürücü bileşenleri gerekebilir. Ayrıntılar için lütfen donanım hızlandırma kurulum kılavuzumuza bakın.", + "WithHardwareAcceleratedTranscoding": "Evet, yalnızca donanım hızlandırma ile", + "TranscodingStillInitializing": "Emby Sunucu kod dönüştürme hizmetleri hala başlamakla meşgul. Bu ekran, kod dönüştürme hizmetleri hazır olduğunda otomatik olarak yenilenecektir.", + "WithEitherHardwareOrSoftwareTranscoding": "Evet, donanımla veya yazılımla kodek dönüştürme ile", + "ToneMappingInHardwareDescription": "Ton eşleme, etkinleştirildiğinde ve desteklendiğinde donanım hızlandırma ile gerçekleştirilir ve diğer tüm durumlarda atlanır.", + "ToneMappingInSoftwareDescription": "Ton eşleme, CPU tarafından yazılım içerisinde gerçekleştirilecektir. Bu, donanım hızlandırmalı ton eşlemesinden çok daha yavaştır ve çok güçlü bir sunucu makinesi gerektirir.", + "ToneMappingInBothDescription": "Ton eşleme, etkinleştirildiğinde ve desteklendiğinde donanım hızlandırma ile gerçekleştirilecek ve diğer tüm durumlarda yazılıma geri dönecektir. Yazılımda ton eşleme, donanım hızlandırmalı ton eşlemesinden çok daha yavaştır ve çok güçlü bir sunucu makinesi gerektirir.", + "AutoMapped": "Otomatik olarak eşlendi", + "ManuallyMapped": "Elle eşlendi", + "NotMappedToGuideData": "Kılavuz verisi ile eşleşmedi", + "MappedToValue": "{0}'a eşlendi", + "LabelAutomaticallyWakeServerForRecordings": "Kaydı gerçekleştirmek için sunucuyu otomatik olarak uyandır", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Uyandırma olayları, sunucu işletim sistemi ile planlanacaktır. Bu seçeneğin devre dışı bırakılması, gelecekteki uyandırma etkinliklerinin planlanmasını engeller ancak önceden planlanmış etkinlikleri kaldırmaz.", + "Database": "Veritabanı", + "LabelOptimizeDatabaseOnShutdown": "Sunucu kapanmalarında veritabanını optimize etmeye çalış", + "LabelOptimizeDatabaseOnShutdownHelp": "Veritabanı optimizasyonu işlemi genellikle bir işlem gerektirmez, ancak zaman zaman, sorgu planlayıcı için faydalı olacak gibi görünüyorsa bir analiz çalıştırılır. Bu, Emby Sunucu'nun kapanmasının daha uzun sürmesine neden olabilir.", + "LabelDatabaseCacheSize": "Veritabanı önbelleği (MB)", + "LabelDatabaseCacheSizeHelp": "Veritabanı dosyası başına, veritabanının bir kerede bellekte tutacağı veri miktarını ayarlar. Daha büyük bir değer, Emby Sunucu performansının iyileştirilmesine yardımcı olabilir. Etkili olması için sunucunun yeniden başlatılması gerekir.", + "LabelDatabaseAnalysisLimit": "Analiz satır sınırı", + "LabelDatabaseAnalysisLimitHelp": "Veritabanı optimize edildiğinde, bu, her bir dizinde ANALYZE komutu tarafından incelenen yaklaşık satır sayısıdır. Daha büyük bir değer, veritabanı optimizasyonunun etkinliğini artıracaktır, ancak Emby Sunucu'nun kapanmasının daha uzun sürmesine neden olabilir.", + "LabelVacuumDb": "Veritabanını bir sonraki Emby Sunucu başlangıcında vakumlama", + "LabelVacuumDbHelp": "Vakumlama, veritabanı dosyasını yeniden oluşturarak minimum miktarda disk alanına yeniden paketler. Bazı durumlarda bu işlem Emby Server performansını artırabilir. Vakumlama işlemi sırasında Emby Server'ınızın kullanılamayacağını ve vakumlamanın ilerleyişini izlemenin herhangi bir yolu olmayacağını lütfen unutmayın. Veritabanı bozulmasına yol açabileceğinden, lütfen bu süre zarfında Emby Server işlemini zorla kapatmaktan kaçının. Bu tek seferlik bir işlemdir ve bu seçenek bir sonraki sunucu başlangıcında işaretlenmemiş olarak geri dönecektir.", + "AdvancedOptionsWarning": "Bunlar gelişmiş seçeneklerdir ve bunları değiştirmek için bir nedeniniz olmadıkça genellikle varsayılanlarda bırakılmalıdır.", + "HeaderRecentlyActiveDevices": "En Son Aktif Olan Cihazlar", + "YesUntilServerRestart": "Evet, bir sonraki yeniden başlatmaya kadar", + "YesUntilLogRotate": "Evet, bir sonraki log dosyası rotasyonuna kadar", + "LabelSubtitleDownloadMaxAge": "Bu tarihten eski videolar için otomatik altyazı indirmeyi durdur", + "SubtitleDownloadMaxAgeHelp": "Bu, eklenen tarih meta veri değerine dayanır.", + "NoAgeLimit": "Yaş sınırı yok", + "AnonymizeLogContents": "Günlük içeriğini anonimleştirin", + "Markers": "İşaretler", + "LabelGenerateIntroVideoMarkers": "Giriş video işaretleri oluşturun", + "GenerateIntroVideoMarkersHelp": "Gösteri girişlerini algılar ve Emby uygulamalarında 'İntroyu Atla' düğmesini görüntüler. İntroyu algılama uzun sürebilir ve yüksek CPU veya disk kullanımına neden olabilir.", + "LabelCopyFromUser": "Kullanıcıdan ayarları kopyala", + "CopyFromUserHelp": "İsteğe bağlı. Mevcut bir kullanıcıdan bilgileri kopyalayarak yeni kullanıcı oluşturmayı hızlandırın.", + "UserPolicy": "Kullanıcı Politikası (kütüphane ve özellik erişimi, ebeveyn kontrolleri, vb.)", + "UserConfiguration": "Kullanıcı Yapılandırması (tercih edilen ses ve altyazı dilleri, kütüphane sırası, vb.)", + "UserDataAndDescription": "Kullanıcı Verileri (favoriler, izleme ve dinleme durumları vb.)", + "HeaderCopyOptions": "Kopyalama Seçenekleri", + "LabelMultiRestrictionMode": "Çoklu kısıtlama modu", + "MultiRestrictionModeAll": "Hem derecelendirme hem de etiket kısıtlamalarıyla eşleşen içeriğe izin ver", + "MultiRestrictionModeAny": "Derecelendirme veya etiket kısıtlamalarıyla eşleşen içeriğe izin ver", + "AllowMappingByChannelNumber": "Kanal numaralarını kullanarak verileri yönlendirmek için eşlemeye izin verin", + "AllowMappingByChannelNumberHelp": "Bu, kanal adına dayalı bir eşleşme bulunamadığında tuner kanallarını kılavuz verileriyle eşleştirmek için bir yedek olarak kullanılabilir. Bu, tunerdeki kanal numaraları doğru değilse yanlış eşleştirmeye yol açabilir.", + "LabelPreferredSourceForChannelLogos": "Rehber verilerindeki kanal logolarını, her ikisinde de mevcut olduğunda tuner yerine tercih edin", + "LabelPreferredSourceForChannelNumbers": "Rehber verilerindeki kanal numaralarını, her ikisinde de mevcut olduğunda tuner yerine tercih edin", + "HeaderSoftwareEncoders": "Yazılım Kodlayıcıları", + "LabelProxyHeaderMode": "İstemci IP adreslerini belirlemek için proxy başlıklarını okuma", + "ProxyHeadersRemoteOnly": "Yalnızca uzak ağ adresleri içerdiklerinde", + "ProxyHeaderModeHelp": "Bağlanan cihazların IP adresini belirlemek için {0} ve {1} gibi istek başlıklarının kullanılması gerekip gerekmediğini belirler. Bu yalnızca ters proxy kullanıyorsanız etkinleştirilmelidir.", + "AllowCameraUpload": "Kamera yüklemeye izin ver", + "AllowCameraUploadHelp": "İzin verilirse ve Emby mobil uygulamalarında etkinleştirilirse, kullanıcılar kameralarından çekilen fotoğraf ve videoları otomatik olarak bu Emby Sunucusuna yükleyebilir", + "CameraUploadMustBeGranted": "Ayrıca sunucu yöneticiniz tarafından size kamera yükleme erişimi verilmelidir.", + "EnableReadingAndWritingPeopleMetadata": "Kişi meta veri dosyalarının okunmasını ve yazılmasını etkinleştirme", + "EnableReadingAndWritingPeopleMetadataHelp": "Nfo Metadata eklentisinin yüklü olmasını gerektirir. Bu, kişilerinizin düzenlemelerini nfo metadata dosyalarına kaydetmeye izin verecek, ancak daha uzun kütüphane taramalarına neden olacaktır.", + "LabelIgnoreSampleFiles": "Boyutları (MB)'den küçükse dosya adında sample kelimesini içeren dosyaları yoksay", + "PreferredChannelImageSource": "Tercih edilen kanal görüntü kaynağı", + "PreferredChannelImageSourceHelp": "Hem tuner hem de kılavuz verilerinde görüntü mevcut olduğunda tercih edilen bir kanal görüntüsü seçin.", + "CacheImagesInServerData": "Görüntülerin önbelleğe alınmış bir kopyasını sunucunun meta veri klasöründe tutun", + "CacheImagesInServerDataHelp": "Medya ve görüntüleriniz başka bir makinede depolanıyorsa, sunucu meta veri klasöründe görüntülerin önbelleğe alınmış bir kopyasını tutmak ağ erişimini azaltacak ve performansı artırabilecektir. Bu önbelleği oluşturmanın bedeli, kütüphane taramalarının daha yavaş olması ve sunucu metadata klasörünün önemli ölçüde daha fazla disk alanı tüketmesidir.", + "AllowSharingPersonalContent": "Çalma listeleri gibi kişisel içeriğin bu sunucudaki diğer kullanıcılarla paylaşılmasına izin verin", + "AllowSharingPersonalContentHelp": "İzin verilirse, bu kullanıcı çalma listelerini diğer kullanıcılarla paylaşabilecektir. Çalma listesi öğeleri, kullanıcı kitaplığı erişimi ve ebeveyn denetimlerine göre kısıtlanmaya devam edecektir.", + "LiveBufferSizeHours": "Canlı akış arabellek boyutu sınırı (saat)", + "LiveBufferSizeHoursHelp": "Daha uzun bir arabellek, canlı yayın sırasında daha fazla ileri ve geri arama yeteneği sağlayacak, ancak daha fazla disk alanı tüketecektir.", + "LabelTranscodingMaxResolution": "Maksimum kod dönüştürme çözünürlüğü", + "TranscodingMaxResolutionHelp": "Emby oynatıcısındaki kalite ayarından bağımsız olarak tüm video kod dönüştürmelerine uygulanacak bir üst sınır belirleyin. Bu, sunucu kod dönüştürme işlemleri tarafından tüketilen kaynakları azaltmaya yardımcı olacaktır.", + "EnableHevcEncodingExp": "HEVC video kodlamasını etkinleştir (deneysel)", + "EnableHevcEncodingHelp": "İstemci tarafından destekleniyorsa HEVC kodeğini kullanarak kod dönüştürmeyi etkinleştirin.", + "LabelEnableMultiPartItems": "Çok parçalı öğeleri etkinleştir.", + "EnableMultiPartItemsHelp": "Parça 1, parça 2 vb. olarak adlandırılan dosyaları otomatik olarak algılar ve gruplandırır. Ek parçalar, öğenin ana ayrıntı ekranında görüntülenir.", + "MultiVersionItemsDetectionHelp": "Aynı öğenin farklı sürümlerini otomatik olarak algılayın ve gruplandırın. Öğe için ana ayrıntı ekranında bir sürüm seçimi sunulacaktır. Dosyalara göre gruplandırma, dosyalarınızı uygun şekilde adlandırmanızı ve düzenlemenizi gerektirir.", + "MultiVersionMoviesDetectionHelp": "Meta verilere dayalı gruplama, aynı dış ID'lere (MovieDb, Imdb, vb.) sahip filmleri gruplayacaktır.", + "EnableMultiPartItemsTVHelp": "TV şovlarının bölümleri için desteklenmiyor.", + "HeaderAutomaticGrouping": "Otomatik Gruplama", + "LabelMultiVersionItemsDetection": "Çoklu sürüm öğe algılama", + "MultiVersionItemsDetectionBoth": "Hem dosyalara hem de meta verilere dayalı olarak çoklu sürüm öğelerini algıla.", + "MultiVersionItemsDetectionFiles": "Dosyalara dayalı çoklu sürüm öğelerini algıla.", + "MultiVersionItemsDetectionMetadata": "Meta verilere dayalı olarak çoklu sürüm öğelerini algıla.", + "LabelNetworkRequestProtocol": "Ağ istek protokolü.", + "NetworkRequestProtocolHelp": "Meta veri sağlayıcılarına ve diğer hizmetlere giden ağ istekleri için kullanılacak protokolü seçin. Bazı durumlarda, IPv6 kullanılarak harici hizmetlere ulaşılamadığında, bunu yalnızca IPv4 olarak ayarlamanız gerekebilir.", + "GenerateChaptersForVideos": "Gömülü bölüm bilgisi içermeyen videolar için bölümler oluşturun", + "GeneratedChapterInterval": "Oluşturulan bölüm aralığı", + "StartOfSection": "Bölümün başlangıcı", + "PreviousSection": "Önceki bölüm", + "PageNarrow": "Dar", + "PageMaximized": "Büyütülmüş", + "PageBook": "Çift sayfa", + "LabelPageSize": "Sayfa Boyutu", + "PageSingle": "Tek sayfa", + "NextSection": "Sonraki bölüm", + "PositionInBook": "Kitaptaki konumu", + "TableOfContents": "İçindekiler", + "ZoomOut": "Uzaklaştır", + "ZoomIn": "Yakınlaştır", + "ZoomNone": "Varsayılan yakınlaştırma", + "ZoomAutoFit": "Sayfayı sığdır", + "LayoutPage": "Tek sayfa", + "LayoutDouble": "Çift sayfa", + "LayoutVertical": "Dikey kaydırma", + "Margins": "Marjlar", + "PreviousPage": "Önceki sayfa", + "CurrentPage": "Geçerli sayfa", + "TotalPages": "Toplam sayfa", + "NextPage": "Sonraki sayfa", + "RightToLeft": "Sağdan sola sıralama", + "LetsGetSetup": "Haydi Kuruluma Geçelim", + "HeaderIgnoreFiles": "Dosyaları Yoksay", + "EnablePlexIgnoreAlias": ".plexignore dosyaları için .embyignore takma adı desteğini etkinleştirin", + "HeaderMaintenanceMode": "Bakım Modu", + "OptionEnableMaintenanceMode": "Sunucuyu bakım moduna alın", + "MaintenanceModeMessageHelp": "Boş bırakılırsa, sunucunun bakımda olduğunu belirten genel bir mesaj görüntülenecek ve kullanıcının görüntüleme diline göre çevrilecektir.", + "ServerInMaintenanceMode": "Emby Sunucusu şu anda bakım modunda çalışıyor. Kullanıcılar, siz sunucuyu bakım modundan çıkarana kadar yalnızca bakım modu mesajını görebileceklerdir.", + "MaintenanceModeMessage": "Bakım modu mesajı", + "EnableMaintenanceModeHelp": "Kullanıcılar yalnızca bakım modu mesajını görecektir.", + "ExcludeFromGlobalSearch": "Genel aramadan hariç tut", + "MergeTopFoldersInFolderView": "Klasör görünümünü kullanırken üst düzey klasörlerin içeriğini birleştirme", + "MergeTopFoldersInFolderViewHelp": "Etkinleştirilirse, klasör görünümü kullanılırken üst düzey klasörlerin içerikleri birleştirilecek ve birleştirilmiş tek bir klasör olarak görüntülenecektir. Devre dışı bırakılırsa, üst düzey klasörler, klasör görünümünde ilk düzey olarak görüntülenecektir.", + "OptionAllowTranscodingToReduceQuality": "Medya oynatımı sırasında uygulama kalitesi ayarına bağlı olarak kod dönüştürmenin kaliteyi düşürmesine izin ver", + "LabelAutoRemoteQuality": "Otomatik uzaktan akış kalitesi (Mbps)", + "AutoRemoteQualityHelp": "Oynatıcıyı otomatik kaliteye ayarladığında bu kullanıcı için isteğe bağlı bir akış kalitesi. Bu, tüm cihazlarda bu kullanıcı için otomatik kalite algılamayı geçersiz kılar.", + "FolderScanningModeHelp": "Bu seçeneğin değiştirilmesi kitaplığın tamamen yeniden taranmasına neden olur ve mevcut meta verilerde kayıplara veya değişikliklere neden olabilir.", + "LegacyFolderScanningModeHelp": "Yalnızca tek bir video içeren klasörleri tek bir katmanda birleştirmeye çalışan eski tarama. Bu öncelikle klasör görünümündeki ekranı etkiler. Bu, ekstralar, çok sürümlü videolar veya dosyaların göz ardı edilmesi gibi diğer Emby özellikleriyle birlikte kullanıldığında iyi çalışmayabilir.", + "LabelFolderScanningMode": "Klasör tarama modu", + "Legacy": "Miras" +} diff --git a/strings/uk.json b/strings/uk.json new file mode 100644 index 0000000..bba5572 --- /dev/null +++ b/strings/uk.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Ви закінчили!", + "ThisWizardWillGuideYou": "Цей майстер допоможе вам налаштувати Emby Server.", + "HeaderCreateYourFirstUser": "Створіть свого першого користувача", + "ButtonQuickStartGuide": "Короткий посібник", + "MoreUsersCanBeAddedLater": "Інших користувачів можна буде додати пізніше в налаштуваннях Emby Server.", + "UserProfilesIntro": "Emby має вбудовану підтримку профілів користувачів, що дозволяє кожному користувачеві налаштувати власні параметри показу, відтворення та батьківського контролю.", + "WizardCompleted": "Це все, що нам зараз потрібно. Emby розпочав сканувати вашу медіатеку. Перегляньте деякі наші додатки, а потім натисніть кнопку Завершити, щоб перейти до Головної панелі сервера.", + "MessagePleaseAcceptTermsOfService": "Прийміть умови використання та політику конфіденційності перед тим, як продовжити.", + "OptionIAcceptTermsOfService": "Я приймаю умови використання", + "SeeOurHwaGuide": "Перегляньте наш {0}посібник із налаштування апаратного прискорення{1}.", + "HeaderEmbyServerReleaseNotes": "Примітки до випуску Emby Server", + "AllowSubtitleDownloading": "Дозволити завантажувати субтитри", + "AllowSubtitleManagement": "Дозволити видаляти наявні файли субтитрів", + "NewUserNameHelp": "Так користувач буде показаний на вашому сервері.", + "ChapterMarkers": "Мітки розділів", + "LabelThumbnailImagesInterval": "Інтервал між ескізами", + "ThumbnailImagesIntervalHelp": "Більша кількість ескізів покращить роботу, але для створення зображень знадобиться більше дискового простору та часу.", + "LabelAuthProvider": "Постачальник аутентифікації", + "AuthProviderHelp": "Для адміністраторів завжди використовується стандартний постачальник Emby, щоб гарантувати, що вони ніколи не будуть заблоковані.", + "HeaderNewUser": "Новий користувач", + "ChangeServerDisplayName": "Змінити відображувану назву сервера", + "ShowAdvancedSettings": "Показати розширені налаштування", + "ChangingMetadataImageSettingsNewContent": "Зміни в налаштуваннях завантаження метаданих або ілюстрацій стосуються лише нового вмісту, доданого до вашої медіатеки. Щоб застосувати зміни до наявних медіа файлів, потрібно буде оновити їх метадані вручну.", + "AllowRemoteAccess": "Дозволити віддалені підключення до даного Emby Server.", + "AllowRemoteAccessHelp": "Якщо прапорець знятий, усі віддалені з'єднання будуть заблоковані.", + "Alerts": "Сповіщення", + "LabelTrackTitleDisplay": "Вбудоване відображення назви доріжки", + "GenerateUserFriendlyTrackTitles": "Створити зручні назви з відомостей про доріжки", + "PreferOriginalTrackTitles": "Віддавати перевагу вбудованим назвам", + "TrackTitleDisplayHelp": "Виберіть відображувану назву вбудованих аудіозаписів та доріжок субтитрів. Віддавати перевагу вбудованим не рекомендується, якщо ви вручну не заповнюєте вбудовану інформацію про доріжку.", + "EnableTranscodingThrottle": "Увімкнути дроселювання", + "EnableTranscodingThrottleHelp": "Emby буде динамічно регулювати швидкість перекодування, щоб зменшити навантаження на процесор.", + "HeaderTypeMetadataDownloaders": "{0} завантажувачів метаданих", + "HeaderTypeImageFetchers": "{0}. Завантажувачі зображень", + "HeaderImageOptions": "Параметри зображення", + "OptionBeta": "Бета", + "RegisterWithPayPal": "Зареєструвати через PayPal", + "LabelSyncTempPath": "Шлях до тимчасових файлів", + "LabelSyncTempPathHelp": "Вкажіть власну робочу теку, в котрій будуть зберігатися перетворені медіафайли.", + "LabelCustomCertificatePath": "Шлях до користувацького SSL-сертифікату", + "LabelCustomCertificatePathHelp": "Шлях до файлу PKCS #12, що містить сертифікат та приватний ключ, щоб увімкнути підтримку TLS на користувацькому домені.", + "HeaderSetupLibrary": "Налаштування медіатек", + "LabelTimeLimitHours": "Обмеження часу (години)", + "HeaderPreferredMetadataLanguage": "Бажана мова метаданих", + "LabelSaveLocalMetadata": "Зберігати ілюстрації в теках з медіафайлами", + "LabelSaveLocalMetadataHelp": "Збереження ілюстрацій у теках з медіафайлами призведе до того, що зображення буде розташовано поруч з медіафайлами, де до них можна буде легко отримати доступ з-поза меж Emby. Якщо цей параметр вимкнено, зображення буде збережено до теки метаданих сервера.", + "TabAccess": "Доступ", + "HeaderDeviceAccess": "Доступ з пристроїв", + "OptionEnableAccessFromAllDevices": "Увімкнути доступ з усіх пристроїв", + "OptionEnableAccessToAllChannels": "Увімкнути доступ до всіх каналів", + "OptionEnableAccessToAllLibraries": "Увімкнути доступ до всіх медіатек", + "DeviceAccessHelp": "Фільтрування доступу користувачів з пристроїв не дозволить їм використовувати нові пристрої, доки вони не будуть затверджені.", + "LabelDisplayMissingEpisodesWithinSeasons": "Показувати відсутні серії протягом сезонів", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Це також потрібно ввімкнути для медіатек з серіалами під час налаштування Emby Server.", + "ImportMissingEpisodesHelp": "Якщо ввімкнено, інформація про відсутні серії буде імпортована у вашу базу даних Emby та відображатиметься протягом сезонів та серіалів. Це може призвести до значно тривалішого сканування медіатеки.", + "MessageEnablingOptionLongerScans": "Увімкнення цієї опції може призвести до значно тривалішого сканування медіатеки.", + "LabelMaxParentalRating": "Максимально дозволена вікова категорія", + "MaxParentalRatingHelp": "Вміст з більш високою категорією буде приховано від даного користувача.", + "LibraryAccessHelp": "Виберіть теки з медіафайлами, якими ви хочете поділитися з користувачем. Адміністратори зможуть редагувати всі теки за допомогою диспетчера метаданих.", + "ChannelAccessHelp": "Виберіть канали, якими слід поділитися з даним користувачем. Адміністратори зможуть редагувати всі канали за допомогою диспетчера метаданих.", + "ImageUploadAspectRatioHelp": "Рекомендоване співвідношення сторін 1:1. Лише JPG/PNG.", + "AlreadyPaidHelp1": "Якщо ви вже заплатили за встановлення старішої версії Media Browser для Android, вам не потрібно буде платити знову, щоб активувати дану програму. Натисніть ОК, щоб надіслати нам електронний лист за номером {0}, і ми активуємо її для вас.", + "AlreadyPaidHelp2": "Є передплата Emby Premiere? Просто закрийте це діалогове вікно, налаштуйте Emby Premiere на головній панелі Emby Server у розділі Довідка -> Emby Premiere, і вона буде розблокована автоматично.", + "TabMyPlugins": "Мої додатки", + "TabCatalog": "Каталог", + "HeaderAutomaticUpdates": "Автоматичні оновлення", + "Standard": "Стандартний", + "TabSupporterKey": "Ключ Emby Premiere", + "OptionHideUserLocal": "Сховати цього користувача на екранах входу з локальної мережі", + "OptionHideUserRemote": "Сховати цього користувача на екранах входу з глобальної мережі", + "OptionHideUserFromLoginHelp": "Корисно для приватних або прихованих облікових записів адміністратора. Користувачеві потрібно буде ввійти вручну, ввівши своє ім’я користувача та пароль.", + "HideFromUnusedDevices": "Сховати цього користувача на екранах входу тих пристроїв, у які він ніколи не входив", + "OptionDisableUser": "Вимкнути цього користувача", + "OptionDisableUserHelp": "Якщо користувача вимкнено, сервер забороняє з'єднання з даним користувачем. Існуючі з'єднання будуть розірвані.", + "OptionAllowUserToManageServer": "Дозволити цьому користувачеві керувати сервером", + "HeaderFeatureAccess": "Доступ до функцій", + "OptionAllowMediaPlayback": "Дозволити відтворення медіа", + "AllLibraries": "Всі медіатеки", + "HeaderAllowMediaDeletionFrom": "Дозволити видалення медіа з", + "LiveTVRecordingManagement": "Управління записом телепередач у прямому ефірі", + "OptionAllowRemoteControlOthers": "Дозволити віддалене керування іншими користувачами", + "OptionAllowRemoteSharedDevices": "Дозволити віддалене керування спільними пристроями", + "OptionAllowRemoteSharedDevicesHelp": "Пристрої Dlna вважаються спільними, поки користувач не почне керувати ним.", + "OptionAllowLinkSharing": "Дозволити спільний доступ до соціальних мереж", + "OptionAllowLinkSharingHelp": "Загальнодоступні тільки веб-сторінки, що містять відомості про медіа. Медіафайли ніколи не надаються для загального перегляду. Спільно використовувані ресурси обмежені в часі, а термін дії закінчується через {0} днів.", + "OptionRelease": "Офіційний випуск", + "LabelAllowServerAutoRestartPlugin": "Дозволити автоматичний перезапуск серверу для застосування оновлень додатків", + "LabelAllowServerAutoRestartServerOrPlugin": "Дозволити автоматичний перезапуск серверу для застосування оновлень серверу чи додатків", + "LabelAllowServerAutoRestartHelp": "Сервер буде перезапущено лише в режимі очікування, коли немає активних користувачів.", + "LabelRunServerAtStartup": "Запустити сервер при старті ОС", + "LabelRunServerAtStartupHelp": "Це запустить Emby під час запуску Windows. Якщо ви створили службу Windows, залиште цю опцію вимкненою і налаштуйте службу запуску під час старту ОС.", + "ButtonSelectDirectory": "Вибрати каталог", + "LabelCachePath": "Шлях кеша", + "DefaultMetadataLangaugeDescription": "Це стандартні налаштування. Їх можна змінити окремо для кожної медіатеки.", + "LabelCachePathHelp": "Вкажіть довільне місце для файлів кешу на сервері, таких як зображення. Якщо залишити порожнім, буде використано стандартне налаштування серверу.", + "LabelDefaultRecordingFolder": "Стандартна тека записів", + "LabelMovieRecordingFolder": "Тека для запису фільмів", + "LabelSeriesRecordingFolder": "Тека для запису серіалів", + "SeriesRecordingFolderHelp": "(необов'язково). Виберіть бібліотеку, щоб зберегти записи серії. Це має бути бібліотека, яку ви створили в налаштуваннях бібліотеки Emby з типом вмісту, встановленим на ТВ-шоу або змішаний вміст.", + "HeaderProgramData": "Програмні дані", + "RecordingFolderHelp": "Виберіть бібліотеку за замовчуванням для збереження записів. Це має бути бібліотека, яку ви створили у налаштуванні бібліотеки Emby із типом вмісту змішаний.", + "MovieRecordingFolderHelp": "(необов'язково). Виберіть бібліотеку для збереження записів фільмів. Це має бути бібліотека, яку ви створили в налаштуваннях бібліотеки Emby з типом вмісту, встановленим як фільми або змішаний вміст.", + "LabelMetadataPath": "Шлях метаданих", + "LabelMetadataPathHelp": "Вкажіть місце для створення теки «metadata», куди будуть завантажуватись ілюстрації та метадані, або не вказуйте нічого, щоб відновити стандартне значення. Після зміни місця збереження вам доведеться вручну перенести вміст зі старого розташування в нове. Якщо ви коли-небудь вручну зміните вміст теки метаданих, вам потрібно буде запустити {0}заплановану задачу сканування теки метаданих{1}.", + "LabelTranscodingTempPath": "Шлях для тимчасових файлів перекодування", + "LabelTranscodingTempPathHelp": "Ця тека містить робочі файли, які використовує перекодувальник. Вкажіть довільний шлях або залиште порожнім, щоб використовувати стандартну теку даних сервера.", + "GenerateVideoPreviewThumbnailsHelp": "Мініатюри попереднього перегляду відео надають актуальні оновлення під час пошуку в підтримуваних додатках. Генерація мініатюр може зайняти тривалий час, спричинити високе використання процесора та зайняти додаткове місце на диску.", + "AsAScheduledTask": "як заплановане завдання", + "AsAScheduledTaskAndMediaAdded": "як заплановане завдання та коли додаються медіафайли", + "ButtonRefreshGuideData": "Оновити дані телегіда", + "LabelNumberOfGuideDays": "Кількість днів для завантаження даних телегіда", + "LabelNumberOfGuideDaysHelp": "Завантаження даних на більше днів дає можливість спланувати перегляд заздалегідь, але завантаження також займе більше часу. Авто вибиратиме, виходячи з кількості каналів. Зауважте, що незалежно від того, скільки днів ви обираєте, дані повинні існувати у джерелах, щоб їх можна було завантажити. Деякі джерела надають дані лише на 24 години. Телегід Emby підтримуює до 14 днів.", + "HeaderFetchImages": "Отримати зображення", + "LabelMaxBackdropsPerItem": "Максимальна кількість задників на елемент", + "LabelMaxScreenshotsPerItem": "Максимальна кількість знімків екрана на елемент", + "LabelMinBackdropDownloadWidth": "Мінімальна ширина задника для завантаження", + "LabelMinScreenshotDownloadWidth": "Мінімальна ширина знімку екрана для завантаження", + "ButtonAddScheduledTaskTrigger": "Додати тригер", + "ButtonAdd": "Додати", + "LabelTriggerType": "Тип тригеру", + "OptionOnInterval": "З інтервалом", + "OptionAfterSystemEvent": "Після події у системі", + "LabelDay": "День", + "LabelTime": "Час", + "LabelEvent": "Подія", + "OptionWakeFromSleep": "Прокидання зі сну", + "Every": "Кожний", + "LabelEnableRealtimeMonitor": "Увімкнути моніторинг у реальному часі", + "LabelEnableRealtimeMonitorHelp": "Зміни у файлах будуть оброблятися негайно (у файлових системах, де це підтримується).", + "Community": "Спільнота", + "HeaderEmbyNews": "Новини Emby", + "LabelFriendlyServerName": "Власна назва сервера", + "LabelFriendlyServerNameHelp": "Використовується для ідентифікації цього сервера. Якщо залишити поле порожнім, буде використано ім’я комп’ютера.", + "LabelPreferredDisplayLanguage": "Бажана мова відображення", + "LabelPreferredDisplayLanguageHelp": "Emby постійно перекладається багатьма мовами.", + "LabelReadHowYouCanContribute": "Дізнайтесь, як ви можете допомогти.", + "LabelCustomCss": "Власний CSS", + "LabelCustomCssHelp": "Ви можете застосувати власний CSS до веб-интерфейсу.", + "LabelLocalHttpServerPortNumber": "Локальний http-порт", + "LabelLocalHttpServerPortNumberHelp": "Номер TCP-порту, до якого буде прив'язаний http-сервер Emby.", + "LabelPublicHttpPort": "Зовнішній http-порт", + "LabelPublicHttpPortHelp": "Зовнішній порт, який буде зіставлений з локальним http-портом.", + "LabelPublicHttpsPort": "Зовнішній https-порт", + "LabelPublicHttpsPortHelp": "Зовнішній порт, який буде зіставлений з локальним https-портом.", + "RequireHttps": "Вимагати https для зовнішніх з’єднань", + "RequireHttpsHelp": "Якщо увімкнено, з'єднання через http будуть перенаправлені на https.", + "LabelHttpsPort": "Локальний https-порт", + "LabelHttpsPortHelp": "Номер TCP-порту, до якого буде прив'язаний https-сервер Emby.", + "LabelEnableAutomaticPortMap": "Увімкнути автоматичне зіставлення портів", + "LabelEnableAutomaticPortMapHelp": "Намагатися автоматично зіставити зовнішній порт із локальним через UPnP. Це може не працювати з деякими моделями маршрутизаторів.", + "LabelExternalDDNS": "Зовнішнє доменне ім'я", + "LabelExternalDDNSHelp": "Якщо у вас є динамічний DNS або доменне ім’я, введіть його тут, не вказуючи протоколу та порт. Додатки Emby використовуватимуть це ім'я для віддаленого підключення. Це поле є обов’язковим, якщо використовується власний сертифікат SSL. Приклад: mydomain.com.", + "LabelMinResumePercentage": "Мінімальний відсоток для відновлення", + "LabelMaxResumePercentage": "Максимальний відсоток для відновлення", + "LabelMinResumeDuration": "Мінімальна тривалість для відновлення (с)", + "LabelMinResumePercentageHelp": "Композиції вважаються невідтвореними, якщо вони були зупинені до цього часу", + "LabelMaxResumePercentageHelp": "Композиції вважаються повністю відтвореними, якщо вони були зупинені після цього часу", + "LabelMinResumeDurationHelp": "Композиції, коротші за це значення, не можна буде відновити", + "HeaderStatus": "Статус", + "Subscriptions": "Підписки", + "LabelEndingEpisodeNumber": "Номер останньої серії", + "LabelEndingEpisodeNumberHelp": "Потрібно лише для файлів з багатьма серіями", + "HeaderSupportTheTeam": "Підтримати команду Emby", + "HeaderSupportTheTeamHelp": "Допоможіть подальшому розвитку цього проекту, оформивши передплату Emby Premiere. Частину від всіх доходів буде віддано на розвиток інших відкритих програм, від яких ми залежимо.", + "DonationNextStep": "Після оформлення передплати поверніться у цей розділ та введіть свій ключ Emby Premiere, який прийде на вашу електронну пошту.", + "HeaderRunningTasks": "Запущені завдання", + "ButtonUpdateNow": "Оновити зараз", + "PleaseUpdateManually": "Зупиніть Emby Server та встановіть останню версію.", + "ServerUpToDate": "Emby Server має останню версію", + "MessagePleaseRestartServerToFinishUpdating": "Перезапустить сервер, щоб застосувати оновлення.", + "LabelDownMixAudioScale": "Підсилення звуку під час зведення", + "LabelDownMixAudioScaleHelp": "Підсилення звуку під час зведення. Щоб залишити оригінальне значення гучності, вкажіть 1.", + "HeaderForgotKey": "Я забув(ла) ключ", + "LabelSupporterEmailAddress": "Електронна адреса, на яку було придбано ключ.", + "ButtonRetrieveKey": "Отримати ключ", + "LabelSupporterKey": "Ключ Emby Premiere (з електронного листа)", + "LabelSupporterKeyHelp": "Введіть ключ Emby Premiere, щоб отримати доступ до додаткових переваг.", + "MessageInvalidKey": "Ключ Emby Premiere відсутній або недійсний.", + "ErrorMessageInvalidKey": "Щоб зареєструвати будь-який преміум-вміст, у вас також має бути активна передплата Emby Premiere.", + "LabelSkipIfGraphicalSubsPresent": "Пропустити, якщо відео вже містить вбудовані субтитри, що відповідають мові завантаження", + "LabelSkipIfGraphicalSubsPresentHelp": "Зберігання текстових версій субтитрів підвищить ефективність доставки та зменшить ймовірність перекодування відео.", + "HeaderDownloadLanguages": "Завантажити мови", + "LabelSkipIfAudioTrackPresent": "Пропустити, якщо стандартна звукова доріжка відповідає мові завантаження", + "LabelSkipIfAudioTrackPresentHelp": "Зніміть цей прапорець, щоб усі відео мали субтитри, незалежно від мови звукової доріжки.", + "SendMessage": "Відправити повідомлення", + "HeaderSendMessage": "Відправити повідомлення", + "ButtonSend": "Відправити", + "LabelMessageText": "Текст повідомлення", + "LabelMessageTitle": "Заголовок повідомлення", + "ButtonEditOtherUserPreferences": "Відредагуйте профіль, зображення та особисті уподобання цього користувача.", + "LabelLoginDisclaimer": "Застереження перед входом", + "LabelLoginDisclaimerHelp": "Це буде показано у нижній частині сторінки входу.", + "HeaderTranscodingTemporaryFiles": "Тимчасові файли перекодування", + "HeaderApiKeys": "Ключі API", + "HeaderApiKeysHelp": "Зовнішнім програмам для спілкування з Emby Server потрібні ключ API. Ключі видаються шляхом входу в обліковий запис Emby або вручну видаються додатку.", + "HeaderApiKey": "Ключ API", + "HeaderResumeSettings": "Налаштування продовження", + "HeaderFetcherSettings": "Налаштування завантажувача", + "HeaderActivity": "Активність", + "ButtonPurchase": "Придбати", + "HeaderInstall": "Встановити", + "LabelSelectVersionToInstall": "Виберіть версію, яку потрібно встановити", + "LinkLearnMoreAboutSubscription": "Відомості про Emby Premiere", + "MessagePluginRequiresSubscription": "Для цього додатка буде потрібна передплата Emby Premiere після закінчення 14-денної безкоштовної пробної версії.", + "MessagePremiumPluginRequiresMembership": "Для цього додатку буде потрібна передплата Emby Premiere після закінчення 14-денної безкоштовної пробної версії.", + "HeaderDeveloperInfo": "Відомості про розробників", + "HeaderRevisionHistory": "Історія версій", + "ButtonViewWebsite": "Переглянути веб-сайт", + "OptionSaveMetadataAsHidden": "Зберігати метадані та зображення як приховані файли", + "LabelConnectEmail": "(Необов’язково) Адреса електронної пошти Emby Connect", + "LabelConnectEmailHelp": "За бажанням зв’яжіть цього локального користувача з наявним обліковим записом Emby Connect, щоб забезпечити легкий доступ із будь-якої програми Emby без необхідності знати IP-адресу сервера.", + "ButtonLearnMoreAboutEmbyConnect": "Дізнатися більше про Emby Connect", + "LabelDateAddedBehavior": "Обробка дати додавання для нового вмісту", + "OptionDateAddedImportTime": "Використовувати дату додавання до медіатеки", + "OptionDateAddedFileTime": "Використовувати дату створення файлу", + "LabelDateAddedBehaviorHelp": "Якщо присутні метадані, вони завжди будуть мати віщий пріоритет перед цими параметрами.", + "HeaderLibrarySettings": "Налаштування медіатеки", + "HeaderAutomaticSubtitleDownloads": "Автоматичне завантаження субтитрів", + "HeaderCameraUploadHelp": "Додатки Emby можуть автоматично завантажувати на Emby Server фотографії з мобільних пристроїв.", + "LabelCameraUploadPath": "Шлях для завантажень з камери", + "LabelCameraUploadPathHelp": "Вкажіть власний шлях для завантажень. Він замінить стандартні налаштування, встановлені в розділі «Завантаження з камери». Якщо нічого не вказати, буде використана стандартна тека. Якщо використовується власний шлях, його також потрібно буде додати як медіатеку в налаштуваннях медіатек Emby.", + "DefaultCameraUploadPathHelp": "Вкажіть власний шлях для завантажень. Якщо нічого не вказати, буде використана стандартна тека. Якщо використовується власний шлях, його також потрібно буде додати як медіатеку в налаштуваннях медіатек Emby.", + "LabelCreateCameraUploadSubfolder": "Створити вкладену теку для кожного пристрою", + "LabelCreateCameraUploadSubfolderHelp": "Пристрою можна призначити конкретні теки, натиснувши на них на сторінці «Пристрої».", + "LabelCustomDeviceDisplayNameHelp": "Вкажіть відображуване ім’я або залиште порожнім, щоб використати ім’я, яке повідомляє сам пристрій.", + "TabParentalControl": "Батьківський контроль", + "HeaderAccessSchedule": "Графік доступу", + "HeaderAccessScheduleHelp": "Створіть графік доступу, щоб обмежити доступ певними годинами.", + "HeaderLibraryAccess": "Доступ до медіатеки", + "HeaderChannelAccess": "Доступ до каналу", + "LabelForgotPasswordUsernameHelp": "Введіть своє ім’я користувача, якщо ви його пам’ятаєте.", + "TitlePasswordReset": "Скинути пароль", + "HeaderBlockItemsWithNoRating": "Блокувати елементи без рейтингу або з нерозпізнаним рейтингом", + "LabelBlockContentWithTags": "Обмежити елементи за тегами", + "LabelTagRestrictionMode": "Режим обмеження тегів", + "BlockItemsWithTheseTags": "Блокувати елементи з наступними тегами", + "AllowItemsWithTheseTags": "Дозволити елементи лише з наступними тегами", + "OptionAllowContentDownloading": "Дозволити завантаження медіафайлів", + "LabelNewUserNameHelp": "Імена користувачів можуть містити літери (a-z), цифри (0-9), дефіси (-), підкреслення (_), апострофи (') та крапки (.)", + "HeaderThisUserIsCurrentlyDisabled": "Наразі цей користувач відключений. Щоб увімкнути його, перегляньте параметри внизу цієї сторінки.", + "OptionAllowSyncTranscoding": "Дозволити завантаження медіафайлів, які потребують перекодування", + "AllowMediaConversion": "Дозволити перетворення медіа", + "AllowMediaConversionHelp": "Надати або заборонити доступ до функції перетворення медіафайлів.", + "OptionAllowAudioPlaybackTranscoding": "Дозволити перекодування аудіофайлів в підтримуваний формат, якщо це потрібно, під час відтворення", + "OptionAllowVideoPlaybackTranscoding": "Дозволити перекодування відеофайлів в підтримуваний формат, якщо це потрібно, під час відтворення", + "OptionAllowVideoPlaybackRemuxing": "Дозволити зміну форматів контейнеру, якщо це потрібно, під час відтворення відео", + "OptionAllowMediaPlaybackTranscodingHelp": "Якщо обмежити доступ до перекодування, не можна буде вибрати якість та можуть виникнути помилки відтворення в додатках Emby через непідтримувані формати мультимедіа або недостатню пропускну здатність мережі.", + "LabelRemoteClientBitrateLimit": "Обмеження швидкості інтернет-потоку (Мбіт/с)", + "LabelRemoteClientBitrateLimitHelp": "Необов'язкове обмеження бітрейту на потік для всіх позамережевих пристроїв. Це обмежить якість інтернет-потоку, навіть якщо користувач вибрав вищу якість у програвачі. Це корисно, щоб запобігти запитам пристроїв на вищий бітрейт, ніж може витримати ваше інтернет-з'єднання. Це може призвести до збільшення навантаження на процесор вашого сервера для перекодування відео на льоту до нижчого бітрейту.", + "LabelUserRemoteClientBitrateLimitHelp": "Це замінить загальне стандартне значення, встановлене в розширених налаштуваннях сервера.", + "OptionEnableFullSpeedConversion": "Увімкнути перетворення на повній швидкості", + "OptionEnableFullSpeedConversionHelp": "За замовчуванням перетворення виконуються на низькій швидкості, щоб мінімізувати споживання ресурсів.", + "OptionEnableAutomaticServerUpdates": "Увімкнути автоматичне оновлення серверу", + "HeaderTVSources": "Джерела ТБ", + "HeaderAddTvSource": "Додати джерело ТБ", + "LabelTunerIpAddress": "IP адреса тюнера", + "HeaderGuideProviders": "Постачальники даних телегіда", + "HeaderAddGuideSource": "Додати постачальника даних телегіда", + "LabelZipCode": "Поштовий індекс", + "LabelLineup": "Список каналів", + "LabelImportOnlyFavoriteChannels": "Обмежитись улюбленими каналами", + "ImportFavoriteChannelsHelp": "Якщо увімкнено, імпортуватимуться лише ті канали, які позначені на тюнері як улюблені.", + "HeaderDefaultRecordingSettings": "Стандартні параметри запису", + "LabelDisplayName": "Відображувана назва", + "OptionDownloadImagesInAdvance": "Заздалегідь завантажувати зображення", + "OptionDownloadImagesInAdvanceHelp": "За замовчуванням більшість зображень не завантажуються з Інтернету, доки їх не буде показано у програмі Emby. Увімкніть цей параметр, щоб завантажувати всі зображення заздалегідь, коли буде імпортовано нові носії. Це може спричинити значно довше сканування бібліотеки.", + "MessageThankYouForSupporting": "Дякуємо за підтримку Emby.", + "FileReadCancelled": "Читання файлу було скасовано.", + "FileNotFound": "Файл не знайдено.", + "FileReadError": "Під час читання файлу сталася помилка.", + "NoPluginConfigurationMessage": "У цього додатку немає параметрів для налаштування.", + "HeaderNewApiKey": "Новий ключ Api", + "HeaderNewApiKeyHelp": "Надати додатку дозвіл на спілкування з Emby Server.", + "MessageKeyEmailedTo": "Ключ відправлено на ел. пошту {0}.", + "HeaderConfirmation": "Підтвердження", + "MessageKeyUpdated": "Дякуємо. Ваш ключ Emby Premiere був оновлений.", + "MessageKeyRemoved": "Дякуємо. Ваш ключ Emby Premiere був видалений.", + "TextEnjoyBonusFeatures": "Насолоджуйтесь додатковими перевагами", + "MessageErrorLoadingSupporterInfo": "Не вдалося завантажити дані Emby Premiere. Повторіть спробу пізніше.", + "ValueTimeLimitSingleHour": "Обмеження часу: 1 година", + "ValueTimeLimitMultiHour": "Обмеження часу: {0} годин", + "General": "Загальне", + "HeaderScreenSavers": "Заставки", + "Reporting": "Звітність", + "LabelStopping": "Зупиняється", + "HeaderSelectCertificatePath": "Вкажіть шлях до сертифікату", + "HeaderSupporterBenefit": "Передплата на Emby Premiere надає такі додаткові переваги: доступ до Emby DVR, локальні медіафайли, преміум-додатки тощо. {0}Дізнатися більше{1}.", + "LabelAbortedByServerShutdown": "(Перервано через вимкнення серверу)", + "LabelScheduledTaskLastRan": "Останній запуск {0} (тривав {1}).", + "HeaderDeleteTaskTrigger": "Видалити тригер завдання", + "MessageDeleteTaskTrigger": "Дійсно видалити цей тригер завдання?", + "MessageNoPluginsDueToAppStore": "Для керування додатками використовуйте веб-застосунок Emby.", + "LabelVersionInstalled": "{0} встановлено", + "HeaderSelectServerCachePath": "Вкажіть шлях до кешу на сервері", + "HeaderSelectTranscodingPath": "Виберіть шлях для тимчасових файлів перекодування", + "HeaderSelectMetadataPath": "Вкажіть шлях до метаданих", + "HeaderSelectServerCachePathHelp": "Виберіть або введіть шлях для зберігання файлів кешу на сервері. Тека повинна бути доступною для запису.", + "HeaderSelectTranscodingPathHelp": "Виберіть або введіть шлях для зберігання тимчасових файлів перекодування. Тека повинна бути доступною для запису.", + "HeaderSelectMetadataPathHelp": "Виберіть або введіть шлях для зберігання метаданих. Тека повинна бути доступною для запису.", + "MessageConfirmRestart": "Дійсно перезапустити Emby Server?", + "MessageConfirmShutdown": "Дійсно зупинити Emby Server?", + "LabelLocalAccessUrl": "Доступ з домашньої мережі: {0}", + "LabelRemoteAccessUrl": "Доступ із зовнішньої мережі: {0}", + "LabelRunningOnPort": "Запущено на HTTP-порту {0}", + "LabelRunningOnPorts": "Запущено на HTTP-порту {0} та HTTPS-порту {1}", + "LabelCurrentPath": "Поточний шлях", + "HeaderSelectMediaPath": "Вкажіть шлях до медіафайлів", + "HeaderSelectPath": "Виберіть шлях", + "MessageDirectoryPickerInstruction": "Мережеві шляхи можна вказати вручну, якщо по кнопці «Мережа» не вдається знайти пристрої. Наприклад, {0} або {1}.", + "MessageDirectoryPickerBSDInstruction": "Для BSD-систем може знадобитися налаштувати сховище у FreeNAS, щоб надати Emby доступ до цього сховища.", + "MessageDirectoryPickerLinuxInstruction": "Для Linux-систем (Arch, CentOS, Debian, Fedora, OpenSuse чи Ubuntu) необхідно надати системному користувачеві Emby принаймні доступ на читання сховищ.", + "MetadataManager": "Диспетчер метаданих", + "OptionBlockLiveTvChannels": "Канали ефірного ТБ", + "OptionBlockChannelContent": "Вміст інтернет-каналу", + "ButtonRevoke": "Відкликати", + "MessageConfirmRevokeApiKey": "Дійсно відкликати чей ключ API? Підключення додатку до Emby Server буде негайно скасовано.", + "HeaderConfirmRevokeApiKey": "Відкликати ключ API", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Прийміть умови надання послуг, перш ніж продовжувати.", + "HeaderChangeFolderType": "Змінити тип вмісту", + "HeaderChangeFolderTypeHelp": "Щоб змінити тип, вилучіть бібліотеку та додайте її з новим типом.", + "HeaderAlert": "Сповіщення", + "MessagePleaseRestart": "Перезапустить, щоб завершити оновлення.", + "OptionHomeVideos": "Домашні відео та світлини", + "OptionBooks": "Книги", + "HeaderMetadataReaders": "Читачі метаданих", + "LabelMetadataReadersHelp": "Увімкніть та розташуйте бажані локальні джерела метаданих у порядку пріоритетності.", + "HeaderSubtitleDownloaders": "Завантажувачі субтитрів", + "SubtitleDownloadersHelp": "Увімкніть та розташуйте завантажувачі субтитрів у бажаному порядку. З каталогу додатків Emby можна встановити додаткові постачальники субтитрів.", + "LabelMetadataDownloaders": "Завантажувачі метаданих", + "LabelMetadataDownloadersHelp": "Увімкніть та розташуйте завантажувачі метаданих у бажаному порядку. Завантажувачі з нижчим пріоритетом будуть використовуватися лише для заповнення відсутньої інформації.", + "HeaderMetadataSavers": "Збереження метаданих", + "LabelMetadataSaversHelp": "Виберіть формати файлів, у яких зберігатимуться метадані.", + "LabelImageFetchers": "Завантажувачі зображень", + "LabelImageFetchersHelp": "Увімкніть то завдайте пріоритет для бажаних завантажувачів зображень.", + "PersonTypePerson": "Особа", + "HeaderRemoveMediaLocation": "Видалити джерело медіафайлів", + "MessageConfirmRemoveMediaLocation": "Дійсно видалити це джерело?", + "LabelNewName": "Нова назва", + "HeaderRemoveLibrary": "Видалити медіатеку", + "MessageAreYouSureYouWishToRemoveLibrary": "Дійсно вилучити медіатеку {0} з цього Emby Server? Це не вплине на ваші медіафайли.", + "ButtonRename": "Перейменувати", + "HeaderPluginInstallation": "Встановлення додатку", + "MessageTrialExpired": "Пробний період для цієї функції закінчився", + "MessageTrialWillExpireIn": "Пробний період для цієї функції закінчиться за {0} днів", + "ValuePriceUSD": "Ціна: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Ви зареєстровані на цю функцію і зможете продовжувати користуватися нею, якщо ви передплатили Emby Premiere.", + "HeaderSelectExternalPlayer": "Оберіть зовнішній програвач", + "HeaderExternalPlayerPlayback": "Відтворення у зовнішньому програвачі", + "HeaderThankYou": "Дякую", + "HeaderSelectUploadPath": "Виберіть шлях для завантаження", + "ErrorMessageStartHourGreaterThanEnd": "Час закінчення повинен бути пізніше часу початку.", + "MessagePluginConfigurationRequiresLocalAccess": "Налаштувати цей додаток можна лише безпосередньо на локальному сервері.", + "MovieLibraryHelp": "Перегляньте {0}Посібник із назв фільмів для Emby{1}.", + "TvLibraryHelp": "Перегляньте {0}Посібник із назв ТБ для Emby{1}.", + "BookLibraryHelp": "Підтримуються текстові книги. Перегляньте {0}Посібник із назв книг для Emby{1}.", + "MessageGamePluginRequired": "Потрібно встановити додаток GameBrowser", + "HeaderUnlockApp": "Розблокувати додаток", + "MessagePaymentServicesUnavailable": "На даний момент платіжні сервіси недоступні. Повторіть спробу пізніше.", + "NoNewDevicesFound": "Нові пристрої не знайдені. Щоб додати новий тюнер, закрийте це діалогове вікно та вручну введіть дані пристрою.", + "MessageConfirmDeleteTunerDevice": "Дійсно видалити цей пристрій?", + "MessageConfirmDeleteGuideProvider": "Дійсно видалити цього постачальника телегіда?", + "HeaderDeleteProvider": "Видалити постачальника", + "ErrorAddingTunerDevice": "Не вдалося додати тюнер. Переконайтеся, що він доступний, і спробуйте ще раз.", + "ErrorSavingTvProvider": "Не вдалося зберегти постачальника ТБ. Переконайтеся, що він доступний, і спробуйте ще раз.", + "ErrorGettingTvLineups": "Не вдалося завантажити канали ТБ. Перевірте правильність своїх даних і спробуйте ще раз.", + "MessageCreateAccountAt": "Створити обліковий запис {0}", + "ErrorPleaseSelectLineup": "Виберіть канал та спробуйте ще раз. Якщо канали відсутні, перевірте свої ім'я користувача, пароль та поштовий індекс.", + "ErrorValidatingSupporterInfo": "Не вдалося перевірити ваши дані Emby Premiere. Повторіть спробу пізніше.", + "LabelLocalSyncStatusValue": "Статус: {0}", + "HeaderTopPlugins": "Популярні додатки", + "ForAdditionalLiveTvOptions": "Додаткових постачальників ефірного ТБ можна встановити з {0}каталогу додатків{1} Emby.", + "AddUser": "Додати користувача", + "HeaderEmailAddress": "Адреса електронної пошти", + "NumLocationsValue": "{0} теки", + "PleaseAddAtLeastOneFolder": "Додайте принаймні одну теку до цієї медіатеки, натиснувши кнопку «Додати».", + "ErrorAddingMediaPathToVirtualFolder": "Не вдалося додати шлях до медіафайлів. Переконайтеся, що шлях вказано правильно, а у процесу Emby Server є доступ до цієї теки.", + "ErrorAddingEmbyConnectAccount3": "Обліковий запис Emby вже зв’язаний із локальним користувачем. Обліковий запис Emby одночасно може бути пов’язаний лише з одним локальним користувачем.", + "HeaderConfirmPluginInstallation": "Підтвердить встановлення додатку", + "PleaseConfirmPluginInstallation": "Натисніть ОК, щоб підтвердити, що ви прочитали інформацію вище, і хочете продовжити встановлення додатка.", + "MessagePluginInstallDisclaimer": "Додатки, створені учасниками спільноти Emby, — це чудовий спосіб покращити роботу з Emby за допомогою додаткових функцій та переваг. Перед встановленням слід дізнатися про наслідки, які можуть мати місце на вашому Emby Server: більш довге сканування медіатек, додаткова фонова обробка та зниження стабільності системи.", + "HardwareAccelerationWarning": "Увімкнення апаратного прискорення може призвести до нестабільності у деяких середовищах. Переконайтеся, що ваша операційна система та драйвери відеокарти мають останні оновлення. Якщо після увімкнення прискорення у вас виникають труднощі з відтворенням відео, варто змінити це налаштування на «Авто».", + "ValueExample": "Приклад: {0}", + "LabelFileOrUrl": "Файл або URL", + "OptionEnableForAllTuners": "Увімкнути для всіх пристроїв", + "HeaderTuners": "Тюнери", + "DrmChannelsNotImported": "Канали з DRM не імпортуватимуться.", + "LabelAllowHWTranscoding": "Дозволити апаратне перекодування", + "AllowHWTranscodingHelp": "Якщо увімкнено, тюнер зможе перекодовувати потоки на льоту. Це може зменшити навантаження на Emby Server.", + "MetadataSettingChangeHelp": "Зміна налаштувань метаданих вплине на новий вміст, який буде додаватися надалі. Щоб оновити наявний вміст, відкрийте екран подробиць та натисніть кнопку оновлення або виконайте масове оновлення за допомогою диспетчера метаданих.", + "RecordingPathChangeMessage": "Після зміни теки наявні записи не будуть перенесені зі старого місця у нове. Якщо потрібно, вам доведеться перенести їх вручну.", + "LabelLocalIpAddress": "Локальна IP-адреса", + "LabelBindToLocalNetworkAddressHelp": "Необов’язково. Перевизначає локальну IP-адресу, яку Emby Server представлятиме додаткам Emby. Якщо нічого не вказати, сервер автоматично визначить локальну IP-адресу.", + "SettingsWarning": "Зміна цих значень може призвести до нестабільності або збоїв у з'єднанні. У разі виникнення проблем рекомендується відновити стандартні значення.", + "OptionSaveMetadataAsHiddenHelp": "Зміна цього стосуватиметься нових метаданих, які будуть зберігатися надалі. Наявні файли метаданих будуть оновлені під час наступного збереження процесом Emby Server.", + "EnablePhotos": "Увімкнути світлини", + "EnablePhotosHelp": "Світлини будуть виявлятися та відображатися разом з іншими медіафайлами.", + "ImportPlaylists": "Імпортувати файли списків відтворення", + "ImportPlaylistsHelp": "Списки відтворення, знайдені у каталогах з медіафайлами, можна імпортувати в Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Зберігати мініатюри в теках з медіафайлами", + "LabelGenerateVideoPreviewThumbnails": "Створення мініатюр попереднього перегляду відео", + "LabelEnableDebugLogging": "Увімкнути журнал налагодження", + "OptionEnableExternalContentInSuggestions": "Дозволити зовнішній вміст у пропозиціях", + "OptionEnableExternalContentInSuggestionsHelp": "Дозволяє включення інтернет-трейлерів та програм ефірного ТБ до запропонованого вмісту.", + "LabelOptionalNetworkPath": "(Необов’язково) Спільна мережева тека", + "LabelOptionalNetworkPathHelp": "Якщо ця тека є спільною у вашій мережі, після надання шляху до неї додатки Emby на інших пристроях зможуть отримати прямий доступ до медіафайлів з цієї теки.", + "SynologyUpdateInstructions": "Увійдіть до DSM та перейдіть до Package Center для оновлення.", + "HeaderRecordingPostProcessing": "Подальша обробка запису", + "LabelPostProcessorArguments": "Аргументи командного рядка для постпроцесора", + "PostProcessorArgumentsHelp": "Наступні змінні підтримуються в командному рядку для передачі даних до вашого постпроцесора", + "LabelPostProcessor": "Додаток постпроцесору", + "DvrPostProcessorPathArgument": "{path}: повний шлях до нового файлу запису", + "OptionAutomaticallyGroupSeries": "Автоматично об’єднувати серіали, розміщені у різних теках", + "OptionAutomaticallyGroupSeriesHelp": "Якщо увімкнено, серії, розкидані по кільком текам цієї медіатеки, будуть автоматично об’єднані в один серіал.", + "WhenDidYouPurchaseApp": "Коли ви придбали цей додаток?", + "PreferEmbeddedTitlesOverFileNames": "Віддавати перевагу вбудованим назвам ніж назвам файлів", + "PreferEmbeddedTitlesOverFileNamesHelp": "Це визначає стандартний відображуваний заголовок, коли відсутні метадані з Інтернету чи локальні метадані.", + "FriendlyNameForReferenceHelp": "Зрозуміла назва для відображення.", + "HeaderLiveTvTunerSetup": "Налаштування тюнера ефірного ТБ", + "HeaderTVSourceSetup": "Налаштування джерела ТБ", + "HeaderDetectMyDevices": "Знайти пристрої", + "MessagePleaseWait": "Зачекайте. Це може зайняти хвилину чи дві.", + "DetectingDevices": "Пошук пристроїв", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Після першого імпортування автоматично оновляти метадані з Інтернету", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Автоматично оновлювати метадані для епізодів із заголовками-заповнювачами, наприклад TBA", + "EveryNDays": "Кожні {0} дні", + "LabelCertificatePassword": "Пароль сертифікату", + "LabelCertificatePasswordHelp": "Якщо для сертифіката потрібен пароль, введіть його тут.", + "HeaderNewLibrary": "Нова медіатека", + "HttpsRequiresCert": "Для використання безпечних з’єднань необхідно надати надійний сертифікат SSL, наприклад Lets Encrypt. Надайте сертифікат або вимкніть захищені з’єднання.", + "ServerRestartNeededAfterPluginInstall": "Після встановлення додатка потрібно буде перезапустити Emby Server.", + "PluginInstalledMessage": "Додаток успішно встановлений. Щоб зміни вступили в силу, перезапустіть Emby Server.", + "MessagePremiereStatusGood": "Ваш тарифний план Emby Premiere {0}, і використання вашого пристрою не перевищує обмеження.", + "MessagePremiereStatusClose": "Ваш тарифний план Emby Premiere {0}, але використання вашого пристрою наближається до обмеження.", + "MessagePremiereExtendedPlans": "Розгляньте перехід на {0}розширений план пристрою{1}", + "MessagePremiereStatusOver": "Ви маєте тарифний план Emby Premiere {0}, але для вашого пристрою було перевищено обмеження!", + "ListItemPremiereSub": "Передплата {0}, оформлена через {2}, закінчується {1}", + "LabelClickToManage": "Натисніть, щоб змінити передплату", + "LabelCancelInfo": "Ви можете керувати цією передплатою безпосередньо з {0}", + "LabelAlreadyCanceled": "Цю передплату скасовано. Ключ залишатиметься дійсним до закінчення терміну дії.", + "HeaderCancelSub": "Скасувати Emby Premiere", + "MessageConfirmSubCancel": "НІ! Будь ласка, не йдіть... Ви залишитесь без всіх чудових можливостей Emby Premiere!", + "ButtonCancelSub": "Я знаю, все одно скасувати", + "ButtonDontCancelSub": "Зберегти Emby Premiere", + "MessageSubCancelReqSent": "Власнику ключа надіслано електронний лист. Дотримуйтесь інструкцій у цьому електронному листі, щоб завершити скасування цієї передплати. Сподіваємось знову побачити вас найближчим часом!", + "MessageSubCancelError": "Щось пішло не так при спробі скасувати. Будь ласка, надішліть листа на {0}, і ми допоможемо вам вирішити проблему.", + "LabelAlreadyCancelled": "Цю передплату скасовано. З вас більше не будуть стягуватись гроші, але функції працюватимуть до зазначеної вище дати.", + "AllowOnTheFlySubtitleExtraction": "Дозволити витягувати субтитри на льоту", + "AllowOnTheFlySubtitleExtractionHelp": "Вбудовані субтитри можна витягнути з відео та відправити їх у додатки Emby у вигляді простого тексту, щоб запобігти перекодуванню відео. У деяких системах це може зайняти багато часу і призвести до зупинення відтворення відео під час процесу витягування. Якщо зняти цей прапорець, вбудовані субтитри, які не підтримуються клієнтом, будуть включені до перекодованого відео.", + "AllowOnTheFlyFontExtraction": "Дозволити видобувати шрифт субтитрів на льоту", + "AllowOnTheFlyFontExtractionHelp": "Вбудовані шрифти можна видобути з відео та передати в додатки Emby для підтримки відео, що містять власні шрифти. У деяких системах це може зайняти тривалий час і призвести до зупинки відтворення відео під час процесу видобутку.", + "EnableDebugLoggingHelp": "Журнал налагодження слід вмикати, лише якщо необхідно усунути несправності. Частіший доступ до файлової системи може не дозволити серверу перейти у режим сплячки в деяких середовищах.", + "LabelSimultaneousConnectionLimit": "Обмеження одночасних потоків", + "SimultaneousConnectionLimitHelp": "Максимальна дозволена кількість одночасних потоків. Введіть 0, щоб зняти обмеження.", + "LaunchWebAppOnStartup": "Запустити веб-додаток Emby у моєму веб-браузері після запуску Emby Server", + "LaunchWebAppOnStartupHelp": "Після першого запуску Emby Server у стандартному веб-браузері буде відкрито веб-додаток. Це не буде відбуватись у разі перезапуску сервера.", + "LabelReferrerHeader": "HTTP-заголовок джерела переходу", + "LabelUserAgentHeader": "HTTP-заголовок агента користувача", + "SupplyCustomValueIfNeeded": "Вкажіть власне значення HTTP-заголовка, якщо необхідно.", + "HeaderConfigureRemoteAccess": "Налаштувати віддалений доступ", + "LearnHowToCreateSynologyShares": "Дізнайтеся, як ділитися теками в Synology.", + "LabelAllowedRemoteAddresses": "Фільтр IP-адрес", + "LabelAllowedRemoteAddressesMode": "Режим фільтрування IP-адрес", + "Whitelist": "Білий список", + "Blacklist": "Чорний список", + "AllowedRemoteAddressesHelp": "Перелік IP-адрес або записів IP/маски мережі через кому для мереж, яким буде дозволено або заборонено віддалене підключення. Якщо залишити поле порожнім, усі віддалені адреси буде дозволено.", + "LabelLanNetworks": "Локальні мережі", + "LanNetworksHelpText": "Розділений комами список IP-адрес або записів IP/маска для мереж, які будуть вважатись локальною мережею при застосуванні пропускної здатності та обмежень віддаленого доступу. Якщо вказано, всі інші IP-адреси вважатимуться зовнішніми. Якщо залишити порожніми, локальною мережею вважатиметься тільки підмережа сервера та загальні приватні підмережі IP (192.168.0.0/24, 172.16.0.0/12 тощо).", + "LabelSecureConnectionsMode": "Режим безпечного з'єднання", + "PreferredNotRequired": "Бажано, але не обов’язково", + "RequiredForAllRemoteConnections": "Обов’язково для всіх віддалених з’єднань", + "HandledByProxy": "Обробляється зворотним проксі", + "SaveSubtitlesIntoMediaFolders": "Збережіть завантажені субтитри до тек з медіафайлами", + "SaveSubtitlesIntoMediaFoldersHelp": "Зберігання субтитрів поряд із відеофайлами спрощує керування ними.", + "AutomaticSubtitleDownloadInstructions": "Щоб керувати автоматичним завантаженням субтитрів, виберіть медіатеку в налаштуваннях медіатеки Emby та змініть параметри завантаження субтитрів для цієї медіатеки.", + "ProviderNeedsSetupWithUrl": "{0} вимагає додаткового налаштування на {1} екрані налаштувань{2} на Emby Server.", + "LabelEnableHardwareAcceleration": "Увімкнути апаратне прискорення, якщо воно доступне", + "HeaderPreferredHardwareDecoders": "Бажані апаратні декодери", + "HeaderPreferredHardwareEncoders": "Бажані апаратні кодери", + "AllowChangingImageAndPassword": "Дозволити цьому користувачеві змінювати свій пароль та зображення профілю", + "LabelSimultaneousStreamLimit": "Макс. кількість одночасних відеопотоків", + "SimultaneousStreamLimitHelp": "Обмежує кількість одночасних сеансів відтворення відео.", + "LabelMusicFolderStructure": "Структура тек з музикою", + "LabelMusicFolderStructureHelp": "Це підказка до сканера медіатек про спосіб організації тек. Якщо ви не впевнені або теки не повністю відповідають одному з варіантів, виберіть стандартний варіант «Інше».", + "OtherOrUnstructured": "Інше або без структури", + "PerfectArtistAlbumTrack": "Ідеально впорядкована у теки «виконавець\\альбом», а доріжки знаходяться безпосередньо в теках альбомів.", + "PerfectAlbumTrack": "Ідеально впорядкована у теки альбомів, а доріжки знаходяться безпосередньо в теках альбомів.", + "LabelMinCollectionSize": "Мінімальний автоматичний розмір колекції", + "PerfectAuthorAudioBookTrack": "Ідеально впорядковані у теки «автор\\книга», із доріжками безпосередньо в теках книг.", + "PerfectAudioBookTrack": "Ідеально впорядковані у теки з книгами, з доріжками безпосередньо в теках з книгами.", + "MinCollectionSizeHelp": "Автоматично створювати колекції, коли медіатека містить принаймні вибрану кількість назв. Зміна цього значення не вплине на існуючі колекції.", + "LabelImportCollections": "Імпортувати відомості про колекцію із завантажувачів метаданих", + "LabelImportCollectionsHelp": "Якщо увімкнено, з увімкнених завантажувачів метаданих будуть імпортуватися відомості про колекцію. Це може призвести до автоматичного створення небажаних колекцій. Вимкнення запобіжить автоматичному створенню майбутніх колекцій, але не видалить наявні.", + "LabelAllowAdultMetadata": "Дозволити метадані для дорослих", + "LabelAllowAdultMetadataHelp": "Дозволити перевірку заголовків для дорослих під час пошуку метаданих в Інтернеті.", + "HeaderVideoPreviewThumbnails": "Мініатюри попереднього перегляду відео", + "LabelEnableHDRToneMapping": "Увімкнути тональне відображення HDR", + "EnableHDRToneMappingHelp": "Тональне відображення забезпечить правильне перетворення кольорів під час перекодування HDR-вмісту, який інакше буде виглядати сильно затемненим і ненасиченим. Для підтримки апаратного прискорення з увімкненою цією функцією можуть знадобитися додаткові компоненти драйвера. Додаткові відомості дивіться у нашому посібнику з налаштування апаратного прискорення.", + "WithHardwareAcceleratedTranscoding": "Так, лише з апаратним прискоренням", + "TranscodingStillInitializing": "Служби перекодування Emby Server все ще у стані запуску. Цей екран автоматично оновиться, коли служби перекодування будуть готові.", + "WithEitherHardwareOrSoftwareTranscoding": "Так, з апаратним або програмним перекодуванням", + "ToneMappingInHardwareDescription": "Тональне відображення буде виконуватися з апаратним прискоренням, тільки якщо воно ввімкнене та підтримується апаратним забезпеченням. В інших випадках тональне відображення не буде виконуватися.", + "ToneMappingInSoftwareDescription": "Тональне відображення буде виконуватися програмним забезпеченням з використанням центрального процесора. Це набагато повільніше, ніж тональне відображення з апаратним прискоренням, і для цього потрібен дуже потужний сервер.", + "ToneMappingInBothDescription": "Тональне відображення буде виконуватися з апаратним прискоренням, коли воно ввімкнене та підтримується апаратним забезпеченням. В інших випадках тональне відображення буде виконуватися програмним забезпеченням. Програмна обробка набагато повільніша за апаратну і для неї потрібен дуже потужний сервер.", + "AutoMapped": "Зіставлено автоматично", + "ManuallyMapped": "Зіставлено вручну", + "NotMappedToGuideData": "Не зіставлено з даними телегіда", + "MappedToValue": "Зіставлено з {0}", + "LabelAutomaticallyWakeServerForRecordings": "Автоматично розбудити сервер, щоб почати запис", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Події пробудження будуть заплановані в операційній системі сервера. Якщо вимкнути цей параметр, майбутні події пробудження не можна будет запланувати, але заплановані раніше події не будуть видалені.", + "Database": "База даних", + "LabelOptimizeDatabaseOnShutdown": "Спробувати оптимізувати базу даних під час вимкнення сервера", + "LabelOptimizeDatabaseOnShutdownHelp": "Функція оптимізації бази даних зазвичай виконується вхолосту, але іноді вона запускає аналіз, якщо здається, що це допоможе планувальнику запитів у майбутньому. Це може уповільнити вимкнення Emby Server.", + "LabelDatabaseCacheSize": "Розмір кешу бази даних (МБ)", + "LabelDatabaseCacheSizeHelp": "Встановлює обсяг даних, які база даних буде тримати в пам’яті для кожного файлу бази даних. Більше значення може покращити продуктивність Emby Server. Після зміни значення потрібно перезапустити сервер.", + "LabelDatabaseAnalysisLimit": "Обмеження аналізу рядків", + "LabelDatabaseAnalysisLimitHelp": "Це приблизна кількість рядків, що перевіряються у кожному індексі командою ANALYZE під час оптимізації бази даних. Більше значення підвищить ефективність оптимізації бази даних, але може уповільнити вимкнення Emby Server.", + "LabelVacuumDb": "Стиснути базу даних під час наступного запуску Emby Server", + "LabelVacuumDbHelp": "Команда стиснення перебудовує файл бази даних, що дозволяє зменшити його розмір. У деяких випадках це може підвищити продуктивність Emby Server. Зверніть увагу, що під час стиснення сервер Emby буде непридатний для використання, а також не буде жодного способу відстежувати хід процесу. Не завершуйте процес Emby Server в цей час, оскільки це може призвести до пошкодження бази даних. Це одноразова операція, і цей прапорець буде знято під час наступного запуску сервера.", + "AdvancedOptionsWarning": "Це параметри призначені для досвідчених користувачів, і зазвичай їх не слід змінювати, якщо тільки ви не знаете, що робите.", + "HeaderRecentlyActiveDevices": "Останні активні пристрої", + "YesUntilServerRestart": "Так, до наступного перезавантаження сервера", + "YesUntilLogRotate": "Так, до наступної ротації файлу журналу", + "LabelSubtitleDownloadMaxAge": "Не намагатися автоматично завантажувати субтитри для відео що старше", + "SubtitleDownloadMaxAgeHelp": "Це засновано на даті додавання з метаданих.", + "NoAgeLimit": "Без вікових обмежень", + "AnonymizeLogContents": "Анонімізувати вміст журналу", + "Markers": "Маркери", + "LabelGenerateIntroVideoMarkers": "Генерувати маркети вступів", + "GenerateIntroVideoMarkersHelp": "Виявляє вступи у серіалах та показує кнопку «Пропустити вступ» у додатках Emby. На виявлення вступу може знадобитись багато часу і та підвищити рівень використання процессору або диска.", + "LabelCopyFromUser": "Копіювати налаштування з користувача", + "CopyFromUserHelp": "Не обов'язково. Прискорити створення нового користувача, скопіювавши дані з іншого існуючого користувача.", + "UserPolicy": "Політика користувача (доступ до медіатеки та функцій, батьківський контроль тощо)", + "UserConfiguration": "Конфігурація користувача (бажана мова аудіо та субтитрів, порядок медіатеки тощо)", + "UserDataAndDescription": "Дані користувача (улюблене, стан перегляду та прослуховування та ін.)", + "HeaderCopyOptions": "Копіювати параметри", + "LabelMultiRestrictionMode": "Режим змішаного обмеження", + "MultiRestrictionModeAll": "Дозволити вміст, який відповідає обмеженням рейтингу та тегів", + "MultiRestrictionModeAny": "Дозволити вміст, який відповідає обмеженням рейтингу або тегів", + "AllowMappingByChannelNumber": "Дозволити зіставлення для скерування даних за допомогою номерів каналів", + "AllowMappingByChannelNumberHelp": "Це можна використовувати як запасний варіант для зіставлення каналів тюнера з даними керівництва, якщо не вдається знайти відповідність на основі назви каналу. Це може призвести до неточної відповідності, якщо номери каналів тюнера неправильні.", + "LabelPreferredSourceForChannelLogos": "Надавайте перевагу логотипам каналів із даних путівника, а не тюнеру, якщо вони доступні в обох", + "LabelPreferredSourceForChannelNumbers": "Надавати перевагу номерам каналів із даних путівника, ніж тюнеру, якщо вони доступні в обох", + "HeaderSoftwareEncoders": "Програмні кодери", + "LabelProxyHeaderMode": "Читайте заголовки проксі, щоб визначити IP-адреси клієнта", + "ProxyHeadersRemoteOnly": "Лише якщо вони містять адреси віддалених мереж", + "ProxyHeaderModeHelp": "Визначає, чи слід використовувати заголовки запиту, такі як {0} і {1}, для визначення IP-адреси пристроїв, що підключаються. Це слід вмикати тільки якщо використовується зворотній проксі-сервер.", + "AllowCameraUpload": "Дозволити завантаження камери", + "AllowCameraUploadHelp": "Якщо дозволено та увімкнено в мобільних програмах Emby, користувачі можуть автоматично завантажувати фотографії та відео, зняті камерою, на цей Emby Server", + "CameraUploadMustBeGranted": "Адміністратор сервера також має надати вам доступ до завантаження з камери.", + "EnableReadingAndWritingPeopleMetadata": "Увімкнути читання та запис файлів метаданих особи", + "EnableReadingAndWritingPeopleMetadataHelp": "Потрібно встановити додаток Nfo Metadata. Це дозволить зберегти редагування ваших людей у файлах метаданих nfo, але призведе до більш тривалого сканування медіатеки.", + "LabelIgnoreSampleFiles": "Ігнорувати файли, що містять слово зразок (sample) в назві файлу, якщо їхній розмір менше (МБ)", + "PreferredChannelImageSource": "Бажане джерело зображення каналу", + "PreferredChannelImageSourceHelp": "Виберіть потрібне зображення каналу, якщо доступні зображення як для тюнера, так і для гіда.", + "CacheImagesInServerData": "Зберігайте кешовані копії зображень у папці метаданих сервера", + "CacheImagesInServerDataHelp": "Якщо ваші мультимедійні дані та зображення зберігаються на іншій машині, збереження кешованої копії зображень у теці метаданих сервера зменшить доступ до мережі та може покращити продуктивність. Вартість створення цього кешу полягає в тому, що сканування бібліотеки відбуватиметься повільніше, а тека метаданих сервера займатиме значно більше місця на диску.", + "AllowSharingPersonalContent": "Дозволити ділитися особистим вмістом, наприклад списками відтворення, з іншими користувачами на цьому сервері", + "AllowSharingPersonalContentHelp": "Якщо отримати дозвіл, цей користувач зможе ділитися своїми списками відтворення з іншими користувачами. Елементи списку відтворення все ще будуть обмежені на основі доступу користувача до бібліотеки та батьківського контролю.", + "LiveBufferSizeHours": "Обмеження розміру буфера прямої трансляції (годин)", + "LiveBufferSizeHoursHelp": "Довший буфер забезпечить кращу можливість перемотування вперед і назад під час прямої трансляції, але споживатиме більше місця на диску.", + "LabelTranscodingMaxResolution": "Максимальна роздільна здатність транскодування", + "TranscodingMaxResolutionHelp": "Вкажіть максимальне обмеження для перекодування всіх відео, незалежно від якості, вибраної у програвачі Emby. Це дозволить знизити споживання ресурсів на сервері під час перекодування.", + "EnableHevcEncodingExp": "Увімкнути кодування відео у форматі HEVC (експериментально)", + "EnableHevcEncodingHelp": "Увімкніть перекодування з використанням кодека HEVC, якщо клієнт його підтримує.", + "LabelEnableMultiPartItems": "Увімкнути багатокомпонентні елементи", + "EnableMultiPartItemsHelp": "Автоматично виявляти та групувати файли, які мають в назві \"частина 1\", \"частина 2\" і так далі. Додаткові частини будуть показані у основному вікні відомостей про елемент.", + "MultiVersionItemsDetectionHelp": "Автоматично виявляти та групувати різні версії одного елемента. Вибрати версію буде запропоновано у головному вікні відомостей про елемент. Для групування на основі файлів потрібно, щоб файли мали відповідні назви і мали певне впорядкування.", + "MultiVersionMoviesDetectionHelp": "Групування на основі метаданих дозволяє об'єднувати фільми з однаковими зовнішніми ідентифікаторами (MovieDb, iMDb тощо).", + "EnableMultiPartItemsTVHelp": "Не підтримується для серій в серіалах.", + "HeaderAutomaticGrouping": "Автоматичне групування", + "LabelMultiVersionItemsDetection": "Виявлення елементів із декількома версіями", + "MultiVersionItemsDetectionBoth": "Виявлення елементів з кількома версіями на основі файлів і метаданих", + "MultiVersionItemsDetectionFiles": "Виявлення елементів із кількома версіями на основі файлів", + "MultiVersionItemsDetectionMetadata": "Виявлення елементів із кількома версіями на основі метаданих", + "LabelNetworkRequestProtocol": "Протокол мережевих запитів", + "NetworkRequestProtocolHelp": "Виберіть протокол для вихідних мережевих запитів до постачальників метаданих та інших служб. У деяких випадках, коли зовнішні служби недоступні через IPv6, може знадобитися вказати тільки IPv4.", + "GenerateChaptersForVideos": "Створити розділи для відео, які не мають вбудованої інформації про розділи", + "GeneratedChapterInterval": "Інтервал між автоматично створеними розділами", + "LetsGetSetup": "Почнімо налаштування", + "NextPage": "Наступна сторінка", + "LabelPageSize": "Розмір сторінки", + "PageNarrow": "Вузька", + "PageSingle": "Одна сторінка", + "PageBook": "Подвійна сторінка", + "PageMaximized": "Розгорнута", + "StartOfSection": "Початок розділу", + "PreviousSection": "Попередній розділ", + "NextSection": "Наступний розділ", + "PositionInBook": "Позиція в книзі", + "TableOfContents": "Зміст", + "ZoomIn": "Збільшити масштаб", + "ZoomOut": "Зменшити масштаб", + "ZoomNone": "Масштаб за замовчуванням", + "ZoomAutoFit": "За розміром сторінки", + "LayoutPage": "Одна сторінка", + "LayoutDouble": "Подвійна сторінка", + "LayoutVertical": "Вертикальна прокрутка", + "Margins": "Поля", + "PreviousPage": "Попередня сторінка", + "CurrentPage": "Поточна сторінка", + "TotalPages": "Всього сторінок", + "RightToLeft": "Порядок справа наліво", + "HeaderIgnoreFiles": "Ігнорувати файли", + "EnablePlexIgnoreAlias": "Увімкнути підтримку файлів .plexignore як псевдонім для .embyignore", + "HeaderMaintenanceMode": "Режим обслуговування", + "OptionEnableMaintenanceMode": "Перевести сервер у режим обслуговування", + "MaintenanceModeMessageHelp": "Якщо залишити порожнім, буде показано загальне повідомлення про те, що сервер знаходиться на обслуговуванні, і воно буде перекладене відповідно до мови інтерфейсу користувача.", + "ServerInMaintenanceMode": "Emby Server наразі знаходиться в режимі обслуговування. Користувачі бачитимуть лише повідомлення про режим обслуговування, доки ви не вимкнете цей режим.", + "MaintenanceModeMessage": "Повідомлення про режим обслуговування", + "EnableMaintenanceModeHelp": "Користувачі бачитимуть лише повідомлення про режим обслуговування.", + "ExcludeFromGlobalSearch": "Виключити з глобального пошуку", + "MergeTopFoldersInFolderView": "Об'єднувати вміст тек верхнього рівня в режимі перегляду тек", + "MergeTopFoldersInFolderViewHelp": "Якщо увімкнено, вміст тек верхнього рівня буде об’єднано та показано як одну теку в режимі перегляду тек. Якщо вимкнено, теки верхнього рівня будуть показані як теки першого рівня.", + "OptionAllowTranscodingToReduceQuality": "Дозволити перекодування для зниження якості відповідно до налаштувань якості в застосунку під час відтворення медіафайлів", + "LabelAutoRemoteQuality": "Автоматична якість віддаленого потокового передавання (Мбіт/с)", + "AutoRemoteQualityHelp": "Необов'язкова якість потокового передавання для цього користувача, коли в програвачі встановлено автоматичне визначення якості. Це перевизначить автоматичне визначення якості для цього користувача на всіх пристроях.", + "Legacy": "Застарілий", + "FolderScanningModeHelp": "Зміна цього параметру призведе до повного повторного сканування медіатеки і може призвести до втрати або зміни існуючих метаданих.", + "LegacyFolderScanningModeHelp": "Старий тип сканування, яке намагається об’єднати на одному рівні теки, що містять лише одне відео. Це в основному впливає на відображення в режимі тек. Може не дуже добре працювати у поєднанні з іншими функціями Emby, такими як додаткові матеріали, відео з кількома версіями або ігнорування файлів.", + "LabelFolderScanningMode": "Режим сканування тек" +} diff --git a/strings/vi.json b/strings/vi.json new file mode 100644 index 0000000..1be9b57 --- /dev/null +++ b/strings/vi.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "Bạn đã hoàn thành!", + "ThisWizardWillGuideYou": "Trình hướng dẫn này sẽ giúp hướng dẫn bạn trong quá trình thiết lập Máy chủ Emby.", + "HeaderCreateYourFirstUser": "Tạo người dùng đầu tiên của bạn", + "ButtonQuickStartGuide": "Hướng dẫn Bắt đầu Nhanh", + "MoreUsersCanBeAddedLater": "Nhiều người dùng có thể được thêm vào sau trong cài đặt Máy chủ Emby.", + "UserProfilesIntro": "Emby bao gồm hỗ trợ tích hợp cho hồ sơ người dùng, cho phép mỗi người dùng có cài đặt hiển thị, chế độ phát và kiểm soát của phụ huynh riêng.", + "WizardCompleted": "Đó là tất cả những gì chúng ta cần bây giờ. Emby đã bắt đầu quét thư viện phương tiện của bạn. Hãy xem một số ứng dụng của chúng tôi, sau đó nhấp vào Hoàn tất để xem Bảng điều khiển máy chủ.", + "MessagePleaseAcceptTermsOfService": "Vui lòng chấp nhận các điều khoản sử dụng và chính sách bảo mật trước khi tiếp tục.", + "OptionIAcceptTermsOfService": "Tôi chấp nhận các điều khoản sử dụng", + "SeeOurHwaGuide": "Xem hướng dẫn {0} gia tốc phần mềm của chúng tôi{1}.", + "HeaderEmbyServerReleaseNotes": "Ghi chú phát hành máy chủ Emby", + "AllowSubtitleDownloading": "Cho phép tải xuống phụ đề", + "AllowSubtitleManagement": "Cho phép xóa các tệp phụ đề hiện có", + "NewUserNameHelp": "Đây là cách người dùng sẽ xuất hiện trên máy chủ của bạn.", + "ChapterMarkers": "Đánh dấu tập phim", + "LabelThumbnailImagesInterval": "Khoảng cách hình ảnh thu nhỏ", + "ThumbnailImagesIntervalHelp": "Hình thu nhỏ xuất hiện thường xuyên hơn sẽ mang lại trải nghiệm tốt hơn, nhưng sẽ yêu cầu nhiều dung lượng đĩa và thời gian hơn để tạo ra các hình ảnh", + "LabelAuthProvider": "Cung cấp xác thực", + "AuthProviderHelp": "Quản trị viên luôn sử dụng nhà cung cấp mặc định của Emby để đảm bảo bạn không bao giờ bị khóa truy cập.", + "HeaderNewUser": "Người dùng mới", + "ChangeServerDisplayName": "Thay đổi tên hiện thị của máy chủ", + "ShowAdvancedSettings": "Cấu hình nâng cao", + "ChangingMetadataImageSettingsNewContent": "Các thay đổi đối với cài đặt metadata hoặc tải artwork chỉ áp dụng cho nội dung mới được thêm vào thư viện của bạn. Để áp dụng các thay đổi cho các tiêu đề hiện có, bạn sẽ cần làm mới metadata của các bộ phim bằng cách làm thủ công.", + "AllowRemoteAccess": "Cho phép các kết nối từ xa đến máy chủ Emby này.", + "AllowRemoteAccessHelp": "Nếu bỏ chọn, tất cả các kết nối sẽ bị chặn.", + "Alerts": "Thông báo", + "LabelTrackTitleDisplay": "Hiển thị tiêu đề", + "GenerateUserFriendlyTrackTitles": "Tạo tiêu đề sử dụng thông tin bản nhạc", + "PreferOriginalTrackTitles": "Ưu tiên các tiêu đề đã được nhúng", + "TrackTitleDisplayHelp": "Chọn tiêu đề hiển thị của các bản nhạc âm thanh và phụ đề đã nhúng. Ưu tiên tiêu đề nhúng không được khuyến khích trừ khi bạn đang tự tay chỉnh sửa thông tin bản nhạc nhúng.", + "EnableTranscodingThrottle": "Bật giới hạn tốc độ", + "EnableTranscodingThrottleHelp": "Emby sẽ tự động điều chỉnh tốc độ mã hóa để giảm mức sử dụng CPU.", + "HeaderTypeMetadataDownloaders": "{0} Trình tải xuống siêu dữ liệu", + "HeaderTypeImageFetchers": "{0} Trình tải hình ảnh", + "HeaderImageOptions": "Tùy chọn hình ảnh", + "OptionBeta": "Beta", + "RegisterWithPayPal": "Đăng ký với PayPal", + "LabelSyncTempPath": "Đường dẫn tập tin tạm thời", + "LabelSyncTempPathHelp": "Chỉ định một thư mục làm việc tùy chỉnh. Phương tiện đã chuyển đổi được tạo trong quá trình chuyển đổi sẽ được lưu trữ tại đây.", + "LabelCustomCertificatePath": "Tùy chỉnh đường dẫn chứng chỉ ssl", + "LabelCustomCertificatePathHelp": "Đường dẫn đến tệp PKCS #12 chứa chứng chỉ và khóa riêng để bật hỗ trợ TLS tên miền tùy chỉnh.", + "HeaderSetupLibrary": "Thiết lập các thư viện phương tiện", + "LabelTimeLimitHours": "Giới hạn thời gian (giờ)", + "HeaderPreferredMetadataLanguage": "Ngôn ngữ Metadata được ưu tiên", + "LabelSaveLocalMetadata": "Lưu các ảnh nghệ thuật vào trong các thư mục media", + "LabelSaveLocalMetadataHelp": "Lưu artwork vào các thư mục phương tiện sẽ đặt hình ảnh bên cạnh các tệp phương tiện để chúng có thể dễ dàng truy cập từ bên ngoài Emby. Nếu tắt, hình ảnh sẽ được lưu vào thư mục metadata của máy chủ.", + "TabAccess": "Truy cập", + "HeaderDeviceAccess": "Thiết bị truy cập", + "OptionEnableAccessFromAllDevices": "Cho phép truy cập từ mọi thiết bị", + "OptionEnableAccessToAllChannels": "Cho phép truy cập tất cả các kênh", + "OptionEnableAccessToAllLibraries": "Cho phép truy cập tất cả các thư viện", + "DeviceAccessHelp": "Việc lọc quyền truy cập thiết bị của người dùng sẽ ngăn họ sử dụng thiết bị mới cho đến khi được chấp thuận tại đây.", + "LabelDisplayMissingEpisodesWithinSeasons": "Hiển thị các tập phim bị thiếu trong các mùa", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Tính năng này cũng phải được bật cho thư viện TV trong thiết lập Emby Server", + "ImportMissingEpisodesHelp": "Nếu được bật, thông tin về các tập phim bị thiếu sẽ được nhập vào cơ sở dữ liệu Emby của bạn và hiển thị trong các mùa và loạt phim. Điều này có thể khiến quá trình quét thư viện lâu hơn đáng kể.", + "MessageEnablingOptionLongerScans": "Bật tùy chọn này có thể làm thời gian quét thư viện lâu hơn đáng kể.", + "LabelMaxParentalRating": "Xếp hạng độ tuổi tối đa cho phép", + "MaxParentalRatingHelp": "Nội dung với đánh giá cao hơn sẽ được ẩn đi từ người dùng này.", + "LibraryAccessHelp": "Chọn các thư mục phương tiện để chia sẻ với người dùng này. Người quản trị sẽ có thể chỉnh sửa tất cả các thư mục bằng trình quản lý siêu dữ liệu.", + "ChannelAccessHelp": "Chọn các kênh để chia sẻ với người dùng này. Người quản trị sẽ có thể chỉnh sửa tất cả các kênh bằng trình quản lý siêu dữ liệu.", + "ImageUploadAspectRatioHelp": "Tỷ lệ khung hình khuyến nghị là 1:1. Chỉ có JPG/PNG.", + "AlreadyPaidHelp1": "Nếu bạn đã trả tiền để cài đặt phiên bản cũ hơn của Media Browser cho Android, bạn không cần phải trả tiền nữa để kích hoạt ứng dụng này. Nhấp vào OK để gửi email cho chúng tôi theo địa chỉ {0} và chúng tôi sẽ kích hoạt cho bạn.", + "AlreadyPaidHelp2": "Bạn đã có Emby Premiere chưa? Chỉ cần đóng hộp thoại này, sau đó thiết lập Emby Premiere trong Bảng điều khiển Emby Server của bạn tại mục Trợ giúp -> Emby Premiere, và tính năng sẽ tự động được mở khóa.", + "TabMyPlugins": "Các plugin của tôi", + "TabCatalog": "Danh mục", + "HeaderAutomaticUpdates": "Tự động cập nhật", + "Standard": "Tiêu chuẩn", + "TabSupporterKey": "Khóa Premiere của Emby", + "OptionHideUserLocal": "Ẩn người dùng này khỏi màn hình đăng nhập trên mạng cục bộ", + "OptionHideUserRemote": "Ẩn người dùng này khỏi màn hình đăng nhập khi kết nối từ xa", + "OptionHideUserFromLoginHelp": "Hữu ích cho tài khoản quản trị viên riêng tư hoặc ẩn. Người dùng sẽ cần phải đăng nhập thủ công bằng cách nhập tên người dùng và mật khẩu của họ.", + "HideFromUnusedDevices": "Ẩn người dùng này khỏi màn hình đăng nhập trên các thiết bị mà họ chưa bao giờ đăng nhập", + "OptionDisableUser": "Vô hiệu hóa người dùng này", + "OptionDisableUserHelp": "Nếu bị vô hiệu hóa, máy chủ sẽ không cho phép bất kỳ kết nối nào từ người dùng này. Các kết nối hiện tại sẽ bị chấm dứt đột ngột.", + "OptionAllowUserToManageServer": "Cho phép người dùng này quản lý máy chủ", + "HeaderFeatureAccess": "Truy cập tính năng", + "OptionAllowMediaPlayback": "Cho phép phát lại đa phương tiện", + "AllLibraries": "Tất cả các thư viện", + "HeaderAllowMediaDeletionFrom": "Cho phép xóa đa phương tiện từ", + "LiveTVRecordingManagement": "Quản lý ghi hình truyền hình trực tiếp", + "OptionAllowRemoteControlOthers": "Cho phép điều khiển từ xa người dùng khác", + "OptionAllowRemoteSharedDevices": "Cho phép điều khiển từ xa các thiết bị được chia sẻ", + "OptionAllowRemoteSharedDevicesHelp": "Các thiết bị DLNA được coi là dùng chung cho đến khi người dùng bắt đầu kiểm soát nó.\n", + "OptionAllowLinkSharing": "Cho phép chia sẻ lên mạng xã hội", + "OptionAllowLinkSharingHelp": "Chỉ những trang web chứa thông tin phương tiện mới được chia sẻ. Các tệp phương tiện không bao giờ được chia sẻ công khai. Chia sẻ có giới hạn thời gian và sẽ hết hạn sau {0} ngày.", + "OptionRelease": "Phát hành chính thức", + "LabelAllowServerAutoRestartPlugin": "Cho phép máy chủ tự động khởi động lại để áp dụng các bản cập nhật plugin", + "LabelAllowServerAutoRestartServerOrPlugin": "Cho phép máy chủ tự động khởi động lại để áp dụng các bản cập nhật máy chủ hoặc plugin", + "LabelAllowServerAutoRestartHelp": "Máy chủ chỉ khởi động lại trong thời gian nhàn rỗi, khi không có người dùng nào hoạt động.", + "LabelRunServerAtStartup": "Chạy máy chủ khi khởi động", + "LabelRunServerAtStartupHelp": "Thao tác này sẽ khởi động biểu tượng khay Emby khi khởi động Windows. Nếu bạn đã thiết lập dịch vụ Windows thì hãy bỏ chọn mục này và cấu hình dịch vụ để chạy khi khởi động.", + "ButtonSelectDirectory": "Lựa chọn trực tiếp", + "LabelCachePath": "Đường dẫn bộ đệm\n", + "DefaultMetadataLangaugeDescription": "Đây là những cài đặt mặc định và có thể tùy chỉnh theo từng thư viện.", + "LabelCachePathHelp": "Chỉ định vị trí tùy chỉnh cho các tệp bộ nhớ đệm máy chủ, chẳng hạn như hình ảnh. Để trống để sử dụng mặc định của máy chủ.", + "LabelDefaultRecordingFolder": "Thư mục ghi âm mặc định", + "LabelMovieRecordingFolder": "Thư mục ghi phim", + "LabelSeriesRecordingFolder": "Thư mục ghi âm loạt phim", + "SeriesRecordingFolderHelp": "(Tùy chọn). Chọn thư viện để lưu các bản ghi sê-ri vào. Đây phải là thư viện bạn đã tạo trong thiết lập thư viện Emby với loại nội dung được đặt thành chương trình truyền hình hoặc nội dung hỗn hợp.", + "HeaderProgramData": "Dữ liệu chương trình", + "RecordingFolderHelp": "Chọn thư viện mặc định để lưu bản ghi vào. Đây phải là thư viện bạn đã tạo trong thiết lập thư viện Emby với loại nội dung được đặt thành nội dung hỗn hợp.", + "MovieRecordingFolderHelp": "(Tùy chọn). Chọn thư viện để lưu bản ghi phim vào. Đây phải là thư viện bạn đã tạo trong thiết lập thư viện Emby với loại nội dung được đặt thành phim hoặc nội dung hỗn hợp.", + "LabelMetadataPath": "Đường dẫn siêu dữ liệu", + "LabelMetadataPathHelp": "Chỉ định vị trí cho tác phẩm nghệ thuật và siêu dữ liệu đã tải về, hoặc bỏ trống để quay lại mặc định. Nếu thay đổi điều này, bạn sẽ cần di chuyển thủ công nội dung từ vị trí cũ sang vị trí mới. Nếu bạn thay đổi thủ công nội dung trong thư mục siêu dữ liệu, bạn sẽ cần chạy {0} tác vụ quét thư mục siêu dữ liệu{1}.", + "LabelTranscodingTempPath": "Đường dẫn chuyển mã tạm thời", + "LabelTranscodingTempPathHelp": "https://www.veed.io/", + "GenerateVideoPreviewThumbnailsHelp": "Hình thu nhỏ xem trước video cung cấp các bản cập nhật trực tiếp trong khi tìm kiếm trong các ứng dụng được hỗ trợ. Việc tạo hình thu nhỏ có thể mất nhiều thời gian, gây ra tình trạng sử dụng CPU cao và tiêu tốn thêm dung lượng đĩa.", + "AsAScheduledTask": "Như một nhiệm vụ đã lên lịch", + "AsAScheduledTaskAndMediaAdded": "Như một nhiệm vụ được lên lịch và khi phương tiện được thêm vào", + "ButtonRefreshGuideData": "Làm mới dữ liệu hướng dẫn", + "LabelNumberOfGuideDays": "Số ngày dữ liệu hướng dẫn cần tải xuống", + "LabelNumberOfGuideDaysHelp": "Tải thêm dữ liệu hướng dẫn cho nhiều ngày sẽ cung cấp khả năng lên lịch xa hơn và xem thêm danh sách, nhưng cũng sẽ mất nhiều thời gian hơn để tải xuống. Chế độ Tự động sẽ chọn dựa trên số lượng kênh. Lưu ý rằng bất kể bạn chọn bao nhiêu ngày, dữ liệu phải có sẵn trong nguồn dữ liệu hướng dẫn để có thể tải xuống. Một số nguồn dữ liệu hướng dẫn chỉ cung cấp 24 giờ. Dữ liệu hướng dẫn Emby hỗ trợ tối đa 14 ngày.", + "HeaderFetchImages": "Lấy hình ảnh", + "LabelMaxBackdropsPerItem": "Số lượng phông nền tối đa cho mỗi mục", + "LabelMaxScreenshotsPerItem": "Số lượng ảnh chụp màn hình tối đa cho mỗi mục", + "LabelMinBackdropDownloadWidth": "Chiều rộng tối thiểu khi tải phông nền", + "LabelMinScreenshotDownloadWidth": "Chiều rộng tối thiểu khi tải ảnh chụp màn hình", + "ButtonAddScheduledTaskTrigger": "Thêm Trigger", + "ButtonAdd": "Thêm", + "LabelTriggerType": "Kiểu Trigger", + "OptionOnInterval": "Trên một khoảng thời gian", + "OptionAfterSystemEvent": "Sau một sự kiện hệ thống", + "LabelDay": "Ngày", + "LabelTime": "Thời gian", + "LabelEvent": "Sự kiện", + "OptionWakeFromSleep": "Dậy từ lúc ngủ", + "Every": "Mọi", + "LabelEnableRealtimeMonitor": "Cho phép giám sát thời gian thực", + "LabelEnableRealtimeMonitorHelp": "Những thay đổi đối với tệp sẽ được xử lý ngay lập tức trên các hệ thống tệp được hỗ trợ.", + "Community": "Cộng đồng", + "HeaderEmbyNews": "Tin tức Emby", + "LabelFriendlyServerName": "Tên máy chủ bạn bè", + "LabelFriendlyServerNameHelp": "Tên này sẽ được sử dụng để xác định máy chủ này. Nếu để trống, tên máy tính sẽ được sử dụng.", + "LabelPreferredDisplayLanguage": "Ngôn ngữ hiển thị ưa thích", + "LabelPreferredDisplayLanguageHelp": "Việc dịch Emby là một dự án đang được tiến hành.", + "LabelReadHowYouCanContribute": "Tìm hiểu cách bạn có thể đóng góp.", + "LabelCustomCss": "Css tùy chỉnh", + "LabelCustomCssHelp": "Áp dụng css tùy chỉnh của bạn vào giao diện web.", + "LabelLocalHttpServerPortNumber": "Số cổng http cục bộ", + "LabelLocalHttpServerPortNumberHelp": "Số cổng TCP mà máy chủ http của Emby phải liên kết tới.", + "LabelPublicHttpPort": "Số cổng http công khai", + "LabelPublicHttpPortHelp": "Số cổng công khai cần được ánh xạ tới cổng http cục bộ.", + "LabelPublicHttpsPort": "Số cổng https công khai", + "LabelPublicHttpsPortHelp": "Số cổng công khai cần được ánh xạ tới cổng https cục bộ", + "RequireHttps": "Yêu cầu https cho các kết nối bên ngoài", + "RequireHttpsHelp": "Nếu bật, các kết nối qua http sẽ được chuyển hướng đến https.", + "LabelHttpsPort": "Số cổng https cục bộ", + "LabelHttpsPortHelp": "Số cổng TCP mà máy chủ https của Emby phải liên kết tới.", + "LabelEnableAutomaticPortMap": "Bật ánh xạ cổng tự động", + "LabelEnableAutomaticPortMapHelp": "Cố gắng tự động ánh xạ cổng công cộng tới cổng cục bộ thông qua UPnP. Điều này có thể không hoạt động với một số kiểu bộ định tuyến.", + "LabelExternalDDNS": "Miền ngoài", + "LabelExternalDDNSHelp": "Nếu bạn có tên miền hoặc DNS động, hãy nhập vào đây, không cần giao thức hoặc cổng. Ứng dụng Emby sẽ sử dụng khi kết nối từ xa. Trường này là bắt buộc khi sử dụng với chứng chỉ ssl tùy chỉnh. Ví dụ: mydomain.com.", + "LabelMinResumePercentage": "Tỷ lệ tiếp tục tối thiểu", + "LabelMaxResumePercentage": "Tỷ lệ tiếp tục tối đa", + "LabelMinResumeDuration": "Thời lượng tối thiểu để tiếp tục (giây)", + "LabelMinResumePercentageHelp": "Tiêu đề được coi là chưa xem nếu dừng trước thời gian này.", + "LabelMaxResumePercentageHelp": "Tiêu đề được coi là đã xem hoàn toàn nếu dừng sau thời gian này.", + "LabelMinResumeDurationHelp": "Các tiêu đề ngắn hơn thời gian này sẽ không thể tiếp tục xem.", + "HeaderStatus": "Trạng thái", + "Subscriptions": "Đăng ký", + "LabelEndingEpisodeNumber": "Số tập kết thúc", + "LabelEndingEpisodeNumberHelp": "Chỉ yêu cầu đối với các tập tin nhiều tập", + "HeaderSupportTheTeam": "Hỗ trợ nhóm Emby", + "HeaderSupportTheTeamHelp": "Hỗ trợ đảm bảo sự phát triển liên tục của dự án này bằng cách mua Emby Premiere. Một phần thu nhập sẽ được đóng góp cho các công cụ miễn phí khác mà chúng tôi phụ thuộc vào.", + "DonationNextStep": "Sau khi hoàn tất, vui lòng quay lại và nhập khóa Emby Premiere của bạn, khóa này sẽ được gửi qua email.", + "HeaderRunningTasks": "Nhiệm vụ đang chạy", + "ButtonUpdateNow": "Cập nhật ngay", + "PleaseUpdateManually": "Vui lòng tắt Emby Server và cài đặt phiên bản mới nhất.", + "ServerUpToDate": "Máy chủ Emby đã được cập nhật", + "MessagePleaseRestartServerToFinishUpdating": "Vui lòng khởi động lại máy chủ để hoàn tất việc áp dụng bản cập nhật.", + "LabelDownMixAudioScale": "Tăng âm lượng khi trộn xuống", + "LabelDownMixAudioScaleHelp": "Tăng âm lượng khi trộn xuống. Đặt giá trị là 1 để giữ nguyên âm lượng gốc.", + "HeaderForgotKey": "Quên Key", + "LabelSupporterEmailAddress": "Địa chỉ email được sử dụng để mua khóa.", + "ButtonRetrieveKey": "Lấy lại Key", + "LabelSupporterKey": "Khóa Emby Premiere (dán từ email)", + "LabelSupporterKeyHelp": "Nhập khóa Emby Premiere để bắt đầu tận hưởng thêm nhiều lợi ích.", + "MessageInvalidKey": "Khóa Emby Premiere bị thiếu hoặc không hợp lệ.", + "ErrorMessageInvalidKey": "Để có thể đăng ký bất kỳ nội dung cao cấp nào, bạn cũng phải có đăng ký Emby Premiere đang hoạt động.", + "LabelSkipIfGraphicalSubsPresent": "Bỏ qua nếu video đã có phụ đề nhúng phù hợp với ngôn ngữ tải xuống", + "LabelSkipIfGraphicalSubsPresentHelp": "Việc giữ nguyên phiên bản phụ đề dạng văn bản sẽ giúp truyền tải hiệu quả hơn và giảm khả năng chuyển mã video.", + "HeaderDownloadLanguages": "Tải xuống Ngôn ngữ", + "LabelSkipIfAudioTrackPresent": "Bỏ qua nếu bản âm thanh mặc định khớp với ngôn ngữ tải xuống", + "LabelSkipIfAudioTrackPresentHelp": "Bỏ chọn mục này để đảm bảo tất cả video đều có phụ đề, bất kể ngôn ngữ âm thanh.", + "SendMessage": "Gửi tin nhắn", + "HeaderSendMessage": "Gửi tin nhắn", + "ButtonSend": "Gưit", + "LabelMessageText": "Nội dung tin nhắn", + "LabelMessageTitle": "Tiêu đề tin nhắn", + "ButtonEditOtherUserPreferences": "Chỉnh sửa hồ sơ, hình ảnh và sở thích cá nhân của người dùng này.", + "LabelLoginDisclaimer": "Tuyên bố miễn trừ đăng nhập", + "LabelLoginDisclaimerHelp": "Nội dung này sẽ được hiển thị ở cuối trang đăng nhập.", + "HeaderTranscodingTemporaryFiles": "Chuyển mã các tập tin tạm thời", + "HeaderApiKeys": "Khoá API", + "HeaderApiKeysHelp": "Các ứng dụng bên ngoài cần có khóa API để giao tiếp với Emby Server. Khóa được cấp bằng cách đăng nhập bằng tài khoản Emby hoặc cấp khóa thủ công cho ứng dụng.", + "HeaderApiKey": "Khoá API", + "HeaderResumeSettings": "Tiếp tục cài đặt", + "HeaderFetcherSettings": "Cài đặt trình tải xuống", + "HeaderActivity": "Hoạt động", + "ButtonPurchase": "Mua", + "HeaderInstall": "Cài đặt", + "LabelSelectVersionToInstall": "Chọn phiên bản để cài đặt", + "LinkLearnMoreAboutSubscription": "Tìm hiểu về Emby Premiere", + "MessagePluginRequiresSubscription": "Plugin này sẽ yêu cầu đăng ký Emby Premiere đang hoạt động sau 14 ngày dùng thử miễn phí.", + "MessagePremiumPluginRequiresMembership": "Plugin này yêu cầu phải có đăng ký Emby Premiere đang hoạt động để có thể mua sau 14 ngày dùng thử miễn phí.", + "HeaderDeveloperInfo": "Thông tin nhà phát triển", + "HeaderRevisionHistory": "Lịch sử sửa đổi", + "ButtonViewWebsite": "Xem trang web", + "OptionSaveMetadataAsHidden": "Lưu siêu dữ liệu và hình ảnh dưới dạng tệp ẩn", + "LabelConnectEmail": "(Tùy chọn) Địa chỉ email Emby Connect", + "LabelConnectEmailHelp": "Tùy chọn liên kết người dùng cục bộ này với tài khoản Emby Connect hiện có để cho phép truy cập đăng nhập dễ dàng từ bất kỳ ứng dụng Emby nào mà không cần biết địa chỉ IP của máy chủ.", + "ButtonLearnMoreAboutEmbyConnect": "Tìm hiểu thêm về Emby Connect", + "LabelDateAddedBehavior": "Cách thức xử lý ngày thêm đối với nội dung mới", + "OptionDateAddedImportTime": "Sử dụng ngày quét vào thư viện", + "OptionDateAddedFileTime": "Sử dụng ngày tạo tập tin", + "LabelDateAddedBehaviorHelp": "Nếu có giá trị siêu dữ liệu thì nó sẽ luôn được sử dụng trước bất kỳ tùy chọn nào trong số này.", + "HeaderLibrarySettings": "Cài đặt thư viện", + "HeaderAutomaticSubtitleDownloads": "Tự động tải xuống phụ đề", + "HeaderCameraUploadHelp": "Ứng dụng Emby có thể tự động tải ảnh chụp từ thiết bị di động của bạn lên Emby Server.", + "LabelCameraUploadPath": "Đường dẫn tải lên của camera", + "LabelCameraUploadPathHelp": "Chọn đường dẫn tải lên tùy chỉnh. Điều này sẽ ghi đè mọi thiết lập mặc định được đặt trong phần Tải lên máy ảnh. Nếu để trống, một thư mục mặc định sẽ được sử dụng. Nếu sử dụng đường dẫn tùy chỉnh, đường dẫn này cũng sẽ cần được thêm vào dưới dạng thư viện trong thiết lập thư viện Emby.", + "DefaultCameraUploadPathHelp": "Chọn đường dẫn tải lên tùy chỉnh. Nếu để trống, thư mục mặc định sẽ được sử dụng. Nếu sử dụng đường dẫn tùy chỉnh, đường dẫn này cũng cần được thêm vào dưới dạng thư viện trong thiết lập thư viện Emby.", + "LabelCreateCameraUploadSubfolder": "Tạo một thư mục con cho mỗi thiết bị", + "LabelCreateCameraUploadSubfolderHelp": "Có thể gán các thư mục cụ thể cho một thiết bị bằng cách nhấp vào thiết bị đó từ trang Thiết bị.", + "LabelCustomDeviceDisplayNameHelp": "Cung cấp tên hiển thị tùy chỉnh hoặc để trống để sử dụng tên do thiết bị báo cáo.", + "TabParentalControl": "Kiểm soát của phụ huynh", + "HeaderAccessSchedule": "Lịch trình truy cập", + "HeaderAccessScheduleHelp": "Tạo lịch trình truy cập để giới hạn quyền truy cập vào một số giờ nhất định.", + "HeaderLibraryAccess": "Truy cập thư viện", + "HeaderChannelAccess": "Truy cập kênh", + "LabelForgotPasswordUsernameHelp": "Nhập tên người dùng của bạn nếu bạn nhớ.", + "TitlePasswordReset": "Đặt lại mật khẩu", + "HeaderBlockItemsWithNoRating": "Chặn các mục không có hoặc không có thông tin xếp hạng", + "LabelBlockContentWithTags": "Hạn chế các mục có thẻ", + "LabelTagRestrictionMode": "Chế độ hạn chế thẻ", + "BlockItemsWithTheseTags": "Chặn các mục có các thẻ này", + "AllowItemsWithTheseTags": "Chỉ cho phép các mục có các thẻ này", + "OptionAllowContentDownloading": "Cho phép tải xuống phương tiện", + "LabelNewUserNameHelp": "Tên người dùng có thể chứa các chữ cái (a-z), số (0-9), dấu gạch ngang (-), dấu gạch dưới (_), dấu nháy đơn (') và dấu chấm (.)", + "HeaderThisUserIsCurrentlyDisabled": "Người dùng này hiện đang bị vô hiệu hóa. Để kích hoạt người dùng này, vui lòng xem tùy chọn ở cuối trang này.", + "OptionAllowSyncTranscoding": "Cho phép tải xuống phương tiện yêu cầu chuyển mã", + "AllowMediaConversion": "Cho phép chuyển đổi media", + "AllowMediaConversionHelp": "Cấp hoặc từ chối quyền truy cập vào tính năng chuyển đổi media.", + "OptionAllowAudioPlaybackTranscoding": "Cho phép chuyển mã âm thanh, nếu cần, trong quá trình phát lại phương tiện", + "OptionAllowVideoPlaybackTranscoding": "Cho phép chuyển mã video, nếu cần, trong khi đang phát", + "OptionAllowVideoPlaybackRemuxing": "Cho phép thay đổi định dạng chứa, nếu cần, trong quá khi đang phát", + "OptionAllowMediaPlaybackTranscodingHelp": "Việc hạn chế quyền truy cập vào chức năng chuyển mã sẽ vô hiệu hóa lựa chọn chất lượng và có thể gây ra lỗi phát lại trong ứng dụng Emby do định dạng phương tiện không được hỗ trợ hoặc băng thông mạng không đủ.", + "LabelRemoteClientBitrateLimit": "Giới hạn tốc độ bit phát trực tuyến Internet (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "Giới hạn bitrate tùy chọn cho mỗi luồng cho tất cả các thiết bị ngoài mạng. Điều này hữu ích để ngăn các thiết bị yêu cầu bitrate cao hơn mức kết nối internet của bạn có thể xử lý. Điều này có thể dẫn đến tăng tải CPU trên máy chủ của bạn để chuyển mã video ngay lập tức sang bitrate thấp hơn.", + "LabelUserRemoteClientBitrateLimitHelp": "Thao tác này sẽ ghi đè lên giá trị toàn cục mặc định được đặt trong cài đặt máy chủ nâng cao.", + "OptionEnableFullSpeedConversion": "Cho phép chuyển đổi tốc độ đầy đủ", + "OptionEnableFullSpeedConversionHelp": "Theo mặc định, quá trình chuyển đổi được thực hiện ở tốc độ thấp để giảm thiểu mức tiêu thụ tài nguyên.", + "OptionEnableAutomaticServerUpdates": "Bật cập nhật máy chủ tự động", + "HeaderTVSources": "Nguồn TV", + "HeaderAddTvSource": "Thêm Nguồn TV", + "LabelTunerIpAddress": "Địa chỉ IP của bộ dò sóng", + "HeaderGuideProviders": "Hướng dẫn nguồn dữ liệu", + "HeaderAddGuideSource": "Thêm nguồn dữ liệu hướng dẫn", + "LabelZipCode": "Mã Zip", + "LabelLineup": "Danh sách kênh", + "LabelImportOnlyFavoriteChannels": "Giới hạn các kênh được đánh dấu là yêu thích", + "ImportFavoriteChannelsHelp": "Nếu được bật, chỉ những kênh được đánh dấu là yêu thích trên thiết bị dò kênh mới được nhập.", + "HeaderDefaultRecordingSettings": "Cài đặt ghi âm mặc định", + "LabelDisplayName": "Tên hiển thị", + "OptionDownloadImagesInAdvance": "Tải xuống hình ảnh trước", + "OptionDownloadImagesInAdvanceHelp": "Theo mặc định, hầu hết hình ảnh không được tải xuống từ internet cho đến khi chúng được hiển thị bằng ứng dụng Emby. Bật tùy chọn này để tải xuống tất cả hình ảnh trước khi nhập phương tiện mới. Điều này có thể khiến quá trình quét thư viện lâu hơn đáng kể.", + "MessageThankYouForSupporting": "Cảm ơn bạn đã ủng hộ Emby.", + "FileReadCancelled": "Tệp tin đọc đã bị hủy.", + "FileNotFound": "Không tìm thấy tệp tin.", + "FileReadError": "Có một lỗi xảy ra khi đọc tệp tin này.", + "NoPluginConfigurationMessage": "Plugin này không có cài đặt nào để cấu hình", + "HeaderNewApiKey": "Khóa API mới", + "HeaderNewApiKeyHelp": "Cấp quyền cho ứng dụng giao tiếp với Emby Server", + "MessageKeyEmailedTo": "Khóa đã được gửi qua email tới {0} .", + "HeaderConfirmation": "Xác nhận", + "MessageKeyUpdated": "Cảm ơn bạn. Khóa Emby Premiere của bạn đã được cập nhật.", + "MessageKeyRemoved": "Cảm ơn bạn. Khóa Emby Premiere của bạn đã bị xóa.", + "TextEnjoyBonusFeatures": "Tận hưởng các tính năng thưởng", + "MessageErrorLoadingSupporterInfo": "Đã xảy ra lỗi khi tải thông tin Emby Premiere. Vui lòng thử lại sau.", + "ValueTimeLimitSingleHour": "Thời hạn: 1 giờ", + "ValueTimeLimitMultiHour": "Thời lượng: {0} giờ", + "General": "Tổng quan", + "HeaderScreenSavers": "Bảo vệ màn hình", + "Reporting": "Báo cáo", + "LabelStopping": "Dừng lại", + "HeaderSelectCertificatePath": "Chọn Đường dẫn chứng chỉ", + "HeaderSupporterBenefit": "Đăng ký Emby Premiere đang hoạt động cung cấp các lợi ích bổ sung như quyền truy cập vào Emby DVR, phương tiện ngoại tuyến, plugin cao cấp, v.v. {0}Tìm hiểu thêm{1}.", + "LabelAbortedByServerShutdown": "(Bị hủy bỏ do máy chủ tắt)", + "LabelScheduledTaskLastRan": "Lần chạy cuối cùng là {0}, mất {1}.", + "HeaderDeleteTaskTrigger": "Xóa tác vụ kích hoạt", + "MessageDeleteTaskTrigger": "Bạn có chắc chắn muốn xóa tác vụ kích hoạt này không?", + "MessageNoPluginsDueToAppStore": "Để quản lý plugin, vui lòng sử dụng ứng dụng web Emby.", + "LabelVersionInstalled": "{0} đã cài đặt", + "HeaderSelectServerCachePath": "Chọn Đường dẫn bộ nhớ đệm máy chủ", + "HeaderSelectTranscodingPath": "Chọn Đường dẫn tạm thời chuyển mã", + "HeaderSelectMetadataPath": "Chọn Đường dẫn siêu dữ liệu", + "HeaderSelectServerCachePathHelp": "Duyệt hoặc nhập đường dẫn để sử dụng cho các tệp bộ nhớ đệm máy chủ. Thư mục phải có thể ghi được.", + "HeaderSelectTranscodingPathHelp": "Duyệt hoặc nhập đường dẫn để sử dụng cho việc chuyển mã các tệp tạm thời. Thư mục phải có thể ghi được.", + "HeaderSelectMetadataPathHelp": "Duyệt hoặc nhập đường dẫn bạn muốn lưu trữ siêu dữ liệu. Thư mục phải có thể ghi được.", + "MessageConfirmRestart": "Bạn có chắc chắn muốn khởi động lại Emby Server không?", + "MessageConfirmShutdown": "Bạn có chắc chắn muốn tắt Emby Server không?", + "LabelLocalAccessUrl": "Truy cập tại nhà (LAN): {0}", + "LabelRemoteAccessUrl": "Truy cập từ xa (WAN): {0}", + "LabelRunningOnPort": "Chạy trên cổng http {0}", + "LabelRunningOnPorts": "Chạy trên cổng http {0} và cổng https {1}", + "LabelCurrentPath": "Đường dẫn hiện tại", + "HeaderSelectMediaPath": "Chọn Đường dẫn phương tiện", + "HeaderSelectPath": "Chọn Đường dẫn", + "MessageDirectoryPickerInstruction": "Đường dẫn mạng có thể được nhập thủ công trong trường hợp nút Mạng không xác định được thiết bị của bạn. Ví dụ: {0} hoặc {1}.", + "MessageDirectoryPickerBSDInstruction": "Đối với BSD, bạn có thể cần cấu hình lưu trữ trong FreeNAS Jail để cho phép Emby truy cập vào đó.", + "MessageDirectoryPickerLinuxInstruction": "Đối với Linux trên Arch Linux, CentOS, Debian, Fedora, OpenSuse hoặc Ubuntu, bạn phải cấp cho người dùng hệ thống Emby ít nhất quyền truy cập đọc vào các vị trí lưu trữ của bạn.", + "MetadataManager": "Trình quản lý siêu dữ liệu", + "OptionBlockLiveTvChannels": "Kênh truyền hình trực tiếp", + "OptionBlockChannelContent": "Nội dung kênh Internet", + "ButtonRevoke": "Thu hồi", + "MessageConfirmRevokeApiKey": "Bạn có chắc chắn muốn thu hồi khóa api này không? Kết nối của ứng dụng với Emby Server sẽ bị chấm dứt đột ngột.", + "HeaderConfirmRevokeApiKey": "Thu hồi khóa API", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "Vui lòng chấp nhận các điều khoản dịch vụ trước khi tiếp tục.", + "HeaderChangeFolderType": "Thay đổi loại nội dung", + "HeaderChangeFolderTypeHelp": "Để thay đổi loại, vui lòng xóa và xây dựng lại thư viện với loại mới.", + "HeaderAlert": "Thông báo", + "MessagePleaseRestart": "Vui lòng khởi động lại để hoàn tất cập nhật.", + "OptionHomeVideos": "Trang chủ video & hình ảnh", + "OptionBooks": "Sách", + "HeaderMetadataReaders": "Trình đọc siêu dữ liệu", + "LabelMetadataReadersHelp": "Bật và xếp hạng các nguồn siêu dữ liệu cục bộ mà bạn ưa thích theo thứ tự ưu tiên.", + "HeaderSubtitleDownloaders": "Tải xuống phụ đề", + "SubtitleDownloadersHelp": "Bật và xếp hạng trình tải phụ đề ưa thích của bạn theo thứ tự ưu tiên. Có thể cài đặt thêm nhiều nhà cung cấp phụ đề bằng cách sử dụng danh mục plugin Emby.", + "LabelMetadataDownloaders": "Trình tải xuống siêu dữ liệu", + "LabelMetadataDownloadersHelp": "Bật và xếp hạng trình tải xuống siêu dữ liệu ưa thích của bạn theo thứ tự ưu tiên. Trình tải xuống có mức độ ưu tiên thấp hơn sẽ chỉ được sử dụng để điền thông tin còn thiếu.", + "HeaderMetadataSavers": "Lưu trữ dữ liệu mô tả", + "LabelMetadataSaversHelp": "Chọn định dạng tệp để lưu siêu dữ liệu của bạn.", + "LabelImageFetchers": "Trình lấy hình ảnh", + "LabelImageFetchersHelp": "Bật và xếp hạng trình tải hình ảnh bạn ưa thích theo thứ tự ưu tiên.\n", + "PersonTypePerson": "Người", + "HeaderRemoveMediaLocation": "Xóa vị trí phương tiện", + "MessageConfirmRemoveMediaLocation": "Bạn có chắc chắn muốn xóa vị trí này không?", + "LabelNewName": "Tên mới", + "HeaderRemoveLibrary": "Xóa Thư viện", + "MessageAreYouSureYouWishToRemoveLibrary": "Bạn có chắc chắn muốn xóa thư viện {0} khỏi Máy chủ Emby của mình không? Các tệp phương tiện của bạn sẽ không bị ảnh hưởng.", + "ButtonRename": "Đổi tên", + "HeaderPluginInstallation": "Cài đặt Plugin", + "MessageTrialExpired": "Thời gian dùng thử tính năng này đã hết hạn", + "MessageTrialWillExpireIn": "Thời gian dùng thử cho tính năng này sẽ hết hạn sau {0} ngày", + "ValuePriceUSD": "Giá: {0} (USD)", + "MessageFeatureIncludedWithSupporter": "Bạn đã đăng ký tính năng này và có thể tiếp tục sử dụng khi đăng ký Emby Premiere đang hoạt động.", + "HeaderSelectExternalPlayer": "Chọn trình phát bên ngoài", + "HeaderExternalPlayerPlayback": "Phát lại trình phát bên ngoài", + "HeaderThankYou": "Cảm ơn", + "HeaderSelectUploadPath": "Chọn Đường dẫn Tải lên", + "ErrorMessageStartHourGreaterThanEnd": "Thời gian kết thúc phải lớn hơn thời gian bắt đầu.", + "MessagePluginConfigurationRequiresLocalAccess": "Để cấu hình plugin này, vui lòng đăng nhập trực tiếp vào máy chủ cục bộ của bạn.", + "MovieLibraryHelp": "Xem lại {0} Hướng dẫn đặt tên phim Emby {1} .", + "TvLibraryHelp": "Xem lại {0} Hướng dẫn đặt tên TV Emby {1} .", + "BookLibraryHelp": "Sách văn bản được hỗ trợ. Vui lòng xem lại {0}hướng dẫn đặt tên sách của Emby{1}.", + "MessageGamePluginRequired": "Yêu cầu cài đặt plugin GameBrowser", + "HeaderUnlockApp": "Mở khóa ứng dụng", + "MessagePaymentServicesUnavailable": "Dịch vụ thanh toán hiện không khả dụng. Vui lòng thử lại sau.", + "NoNewDevicesFound": "Không tìm thấy thiết bị mới. Để thêm bộ dò sóng mới, hãy đóng hộp thoại này và nhập thông tin thiết bị theo cách thủ công.", + "MessageConfirmDeleteTunerDevice": "Bạn có chắc chắn muốn xóa thiết bị này không?", + "MessageConfirmDeleteGuideProvider": "Bạn có chắc chắn muốn xóa nhà cung cấp hướng dẫn này không?", + "HeaderDeleteProvider": "Xóa Nhà cung cấp", + "ErrorAddingTunerDevice": "Đã xảy ra lỗi khi thêm thiết bị điều chỉnh. Vui lòng đảm bảo thiết bị có thể truy cập được và thử lại.", + "ErrorSavingTvProvider": "Đã xảy ra lỗi khi lưu nhà cung cấp TV. Vui lòng đảm bảo có thể truy cập được và thử lại.", + "ErrorGettingTvLineups": "Đã xảy ra lỗi khi tải xuống danh sách kênh truyền hình. Vui lòng đảm bảo thông tin của bạn là chính xác và thử lại.", + "MessageCreateAccountAt": "Tạo một tài khoản tại {0}", + "ErrorPleaseSelectLineup": "Vui lòng chọn một đội hình và thử lại. Nếu không có đội hình nào khả dụng, vui lòng kiểm tra xem tên người dùng, mật khẩu và mã bưu chính của bạn có đúng không.", + "ErrorValidatingSupporterInfo": "Đã xảy ra lỗi khi xác thực thông tin Emby Premiere của bạn. Vui lòng thử lại sau.", + "LabelLocalSyncStatusValue": "Trạng thái: {0}", + "HeaderTopPlugins": "Các Plugin hàng đầu", + "ForAdditionalLiveTvOptions": "Duyệt {0}danh mục plugin{1} Emby để cài đặt thêm các nhà cung cấp truyền hình trực tiếp.", + "AddUser": "Thêm người dùng", + "HeaderEmailAddress": "Địa chỉ Email", + "NumLocationsValue": "{0} thư mục", + "PleaseAddAtLeastOneFolder": "Vui lòng thêm ít nhất một thư mục vào thư viện này bằng cách nhấp vào nút Thêm.", + "ErrorAddingMediaPathToVirtualFolder": "Đã xảy ra lỗi khi thêm đường dẫn phương tiện. Vui lòng đảm bảo đường dẫn hợp lệ và quy trình Emby Server có quyền truy cập vào vị trí đó.", + "ErrorAddingEmbyConnectAccount3": "Tài khoản Emby đã được liên kết với một người dùng cục bộ hiện có. Một tài khoản Emby chỉ có thể được liên kết với một người dùng cục bộ tại một thời điểm.", + "HeaderConfirmPluginInstallation": "Xác nhận cài đặt Plugin", + "PleaseConfirmPluginInstallation": "Vui lòng nhấp vào OK để xác nhận bạn đã đọc những điều trên và muốn tiếp tục cài đặt plugin.", + "MessagePluginInstallDisclaimer": "Các plugin do các thành viên cộng đồng Emby xây dựng là một cách tuyệt vời để nâng cao trải nghiệm Emby của bạn với các tính năng và lợi ích bổ sung. Trước khi cài đặt, vui lòng lưu ý đến các tác động mà chúng có thể gây ra cho Máy chủ Emby của bạn, chẳng hạn như thời gian quét thư viện dài hơn, xử lý nền bổ sung và giảm độ ổn định của hệ thống.", + "HardwareAccelerationWarning": "Bật tăng tốc phần cứng có thể gây ra tình trạng không ổn định trong một số môi trường. Đảm bảo rằng hệ điều hành và trình điều khiển video của bạn được cập nhật đầy đủ. Nếu bạn gặp khó khăn khi phát video sau khi bật tính năng này, bạn sẽ cần thay đổi cài đặt trở lại Tự động.", + "ValueExample": "Ví dụ: {0}", + "LabelFileOrUrl": "Tệp hoặc url", + "OptionEnableForAllTuners": "Bật cho tất cả các thiết bị dò sóng", + "HeaderTuners": "Bộ chỉnh âm", + "DrmChannelsNotImported": "Các kênh có DRM sẽ không được nhập.", + "LabelAllowHWTranscoding": "Cho phép chuyển mã phần cứng", + "AllowHWTranscodingHelp": "Nếu được bật, cho phép bộ chỉnh chuyển mã luồng ngay lập tức. Điều này có thể giúp giảm việc chuyển mã do Emby Server yêu cầu.", + "MetadataSettingChangeHelp": "Thay đổi cài đặt siêu dữ liệu sẽ ảnh hưởng đến nội dung mới được thêm vào trong tương lai. Để làm mới nội dung hiện có, hãy mở màn hình chi tiết và nhấp vào nút làm mới hoặc thực hiện làm mới hàng loạt bằng trình quản lý siêu dữ liệu.", + "RecordingPathChangeMessage": "Việc thay đổi thư mục ghi âm sẽ không di chuyển các bản ghi âm hiện có từ vị trí cũ sang vị trí mới. Bạn sẽ cần phải di chuyển chúng theo cách thủ công nếu muốn.", + "LabelLocalIpAddress": "Địa chỉ IP cục bộ", + "LabelBindToLocalNetworkAddressHelp": "Tùy chọn. Ghi đè địa chỉ IP cục bộ mà Emby Server sẽ hiển thị cho các ứng dụng Emby. Nếu để trống, máy chủ sẽ tự động phát hiện địa chỉ IP cục bộ.", + "SettingsWarning": "Thay đổi các giá trị này có thể gây ra sự mất ổn định hoặc lỗi kết nối. Nếu bạn gặp bất kỳ sự cố nào, chúng tôi khuyên bạn nên đổi chúng về mặc định.", + "OptionSaveMetadataAsHiddenHelp": "Thay đổi này sẽ áp dụng cho siêu dữ liệu mới được lưu trong tương lai. Các tệp siêu dữ liệu hiện có sẽ được cập nhật vào lần tiếp theo chúng được lưu bởi Emby Server.", + "EnablePhotos": "Bật ảnh", + "EnablePhotosHelp": "Ảnh sẽ được phát hiện và hiển thị cùng với các tệp phương tiện khác.", + "ImportPlaylists": "Nhập tệp danh sách phát", + "ImportPlaylistsHelp": "Danh sách phát tìm thấy trong thư mục phương tiện của bạn có thể được nhập vào Emby Server.", + "SaveThumbnailImagesIntoMediaFolders": "Lưu hình thu nhỏ xem trước video vào thư mục phương tiện", + "LabelGenerateVideoPreviewThumbnails": "Tạo hình thu nhỏ xem trước video", + "LabelEnableDebugLogging": "Bật ghi nhật ký gỡ lỗi", + "OptionEnableExternalContentInSuggestions": "Cho phép nội dung bên ngoài trong các đề xuất", + "OptionEnableExternalContentInSuggestionsHelp": "Cho phép đưa đoạn giới thiệu trên internet và chương trình truyền hình trực tiếp vào nội dung được đề xuất", + "LabelOptionalNetworkPath": "(Tùy chọn) Thư mục mạng chia sẻ", + "LabelOptionalNetworkPathHelp": "Nếu thư mục này được chia sẻ trên mạng của bạn, việc cung cấp đường dẫn chia sẻ mạng có thể cho phép các ứng dụng Emby trên các thiết bị khác truy cập trực tiếp vào các tệp phương tiện.", + "SynologyUpdateInstructions": "Vui lòng đăng nhập vào DSM và vào Trung tâm gói để cập nhật.", + "HeaderRecordingPostProcessing": "Ghi lại quá trình xử lý hậu kỳ", + "LabelPostProcessorArguments": "Đối số dòng lệnh hậu xử lý", + "PostProcessorArgumentsHelp": "Các biến sau được hỗ trợ trong dòng lệnh để cho phép truyền dữ liệu đến bộ xử lý hậu kỳ của bạn", + "LabelPostProcessor": "Ứng dụng xử lý hậu kỳ", + "DvrPostProcessorPathArgument": "{path}: Đường dẫn đầy đủ đến tệp ghi âm mới", + "OptionAutomaticallyGroupSeries": "Tự động hợp nhất các chuỗi được phân bổ trên nhiều thư mục", + "OptionAutomaticallyGroupSeriesHelp": "Nếu được bật, các chuỗi truyện nằm rải rác trên nhiều thư mục trong thư viện này sẽ tự động được hợp nhất thành một chuỗi truyện duy nhất.", + "WhenDidYouPurchaseApp": "Bạn mua ứng dụng này lần đầu tiên khi nào?", + "PreferEmbeddedTitlesOverFileNames": "Ưu tiên tiêu đề nhúng hơn tên tệp", + "PreferEmbeddedTitlesOverFileNamesHelp": "Điều này xác định tiêu đề hiển thị mặc định khi không có siêu dữ liệu internet hoặc siêu dữ liệu cục bộ nào khả dụng.", + "FriendlyNameForReferenceHelp": "Tên thân thiện dùng để hiển thị, cho mục đích tham khảo của bạn.", + "HeaderLiveTvTunerSetup": "Cài đặt bộ dò TV trực tiếp", + "HeaderTVSourceSetup": "Thiết lập nguồn TV", + "HeaderDetectMyDevices": "Phát hiện thiết bị", + "MessagePleaseWait": "Vui lòng đợi. Quá trình này có thể mất một phút.", + "DetectingDevices": "Thiết bị phát hiện", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Sau khi nhập ban đầu, tự động làm mới siêu dữ liệu từ internet", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "Tự động làm mới siêu dữ liệu cho các tập phim có tiêu đề giữ chỗ như TBA", + "EveryNDays": "Mỗi {0} ngày", + "LabelCertificatePassword": "Mật khẩu chứng chỉ", + "LabelCertificatePasswordHelp": "Nếu chứng chỉ của bạn yêu cầu mật khẩu, vui lòng nhập mật khẩu ở đây.", + "HeaderNewLibrary": "Thư viện mới", + "HttpsRequiresCert": "Để bật kết nối an toàn, bạn sẽ cần cung cấp chứng chỉ SSL đáng tin cậy, chẳng hạn như Lets Encrypt. Vui lòng cung cấp chứng chỉ hoặc tắt kết nối an toàn.", + "ServerRestartNeededAfterPluginInstall": "Máy chủ Emby sẽ cần phải khởi động lại sau khi cài đặt plugin.", + "PluginInstalledMessage": "Máy chủ Emby sẽ cần phải khởi động lại sau khi cài đặt plugin.", + "MessagePremiereStatusGood": "Bạn có gói {0} Emby Premiere và mức sử dụng thiết bị của bạn nằm trong giới hạn cho phép.", + "MessagePremiereStatusClose": "Bạn có gói {0} Emby Premiere nhưng mức sử dụng thiết bị của bạn đã gần đạt đến giới hạn.", + "MessagePremiereExtendedPlans": "Xem xét một {0}gói thiết bị mở rộng{1}", + "MessagePremiereStatusOver": "Bạn có gói {0} Emby Premiere nhưng đã vượt quá giới hạn thiết bị!", + "ListItemPremiereSub": "{0} đăng ký mua qua {2} hết hạn {1}", + "LabelClickToManage": "Nhấp để quản lý đăng ký này", + "LabelCancelInfo": "Bạn có thể quản lý đăng ký này trực tiếp với {0}", + "LabelAlreadyCanceled": "Bạn có thể quản lý đăng ký này trực tiếp với {0}", + "HeaderCancelSub": "Hủy bỏ Emby Premiere", + "MessageConfirmSubCancel": "KHÔNG, xin đừng đi... Bạn sẽ bỏ lỡ tất cả các tính năng tuyệt vời của Emby Premiere!", + "ButtonCancelSub": "Tôi biết, hủy nó đi", + "ButtonDontCancelSub": "Giữ Emby Premiere", + "MessageSubCancelReqSent": "Một email đã được gửi đến chủ sở hữu của khóa. Vui lòng làm theo hướng dẫn trong email đó để hoàn tất việc hủy đăng ký này. Chúng tôi hy vọng sớm gặp lại bạn", + "MessageSubCancelError": "Có lỗi xảy ra khi cố gắng hủy. Vui lòng gửi email đến {0} và chúng tôi sẽ giải quyết cho bạn.", + "LabelAlreadyCancelled": "Đăng ký này đã bị hủy. Bạn sẽ không bị tính phí nữa nhưng các tính năng sẽ hoạt động cho đến ngày nêu trên.", + "AllowOnTheFlySubtitleExtraction": "Cho phép trích xuất phụ đề ngay lập tức\n", + "AllowOnTheFlySubtitleExtractionHelp": "Phụ đề nhúng có thể được trích xuất từ video và chuyển đến các ứng dụng Emby dưới dạng văn bản thuần túy để giúp ngăn chặn việc chuyển mã video. Trên một số hệ thống, quá trình này có thể mất thời gian và gây gián đoạn khi phát video trong khi trích xuất. Tắt tính năng này để phụ đề nhúng được gắn trực tiếp vào video trong quá trình chuyển mã khi chúng không được hỗ trợ natively bởi thiết bị khách.", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "Chỉ nên bật ghi nhật ký gỡ lỗi khi cần thiết cho mục đích khắc phục sự cố. Việc tăng quyền truy cập hệ thống tệp có thể ngăn máy chủ không thể ngủ trong một số môi trường.", + "LabelSimultaneousConnectionLimit": "Giới hạn luồng đồng thời", + "SimultaneousConnectionLimitHelp": "Số lượng luồng đồng thời tối đa được phép. Nhập 0 để không giới hạn.", + "LaunchWebAppOnStartup": "Khởi chạy ứng dụng web Emby trong trình duyệt web của tôi khi Emby Server khởi động", + "LaunchWebAppOnStartupHelp": "Khởi chạy ứng dụng web Emby trong trình duyệt web của tôi khi Emby Server khởi động", + "LabelReferrerHeader": "Tiêu đề http giới thiệu", + "LabelUserAgentHeader": "Tiêu đề HTTP của tác nhân người dùng", + "SupplyCustomValueIfNeeded": "Cung cấp giá trị tiêu đề http tùy chỉnh nếu cần.", + "HeaderConfigureRemoteAccess": "Cấu hình truy cập từ xa", + "LearnHowToCreateSynologyShares": "Tìm hiểu cách chia sẻ thư mục", + "LabelAllowedRemoteAddresses": "Bộ lọc địa chỉ IP từ xa", + "LabelAllowedRemoteAddressesMode": "Chế độ lọc địa chỉ IP từ xa", + "Whitelist": "Danh sách trắng", + "Blacklist": "Danh sách đen", + "AllowedRemoteAddressesHelp": "Danh sách phân cách bằng dấu phẩy các địa chỉ IP hoặc mục nhập IP/mặt nạ mạng cho các mạng sẽ được phép kết nối từ xa. Nếu để trống, tất cả các địa chỉ từ xa sẽ được phép.", + "LabelLanNetworks": "Mạng LAN", + "LanNetworksHelpText": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If set, all other IP addresses will be considered to be on the external network. If left blank, only the server's subnet and common private IP subnets (192.168.0.0/24, 172.16.0.0/12, etc.) are considered to be on the local network.", + "LabelSecureConnectionsMode": "Chế độ kết nối an toàn", + "PreferredNotRequired": "Được ưu tiên nhưng không bắt buộc", + "RequiredForAllRemoteConnections": "Yêu cầu đối với tất cả các kết nối từ xa", + "HandledByProxy": "Được xử lý bởi proxy ngược", + "SaveSubtitlesIntoMediaFolders": "Lưu phụ đề đã tải xuống vào thư mục phương tiện", + "SaveSubtitlesIntoMediaFoldersHelp": "Lưu phụ đề bên cạnh tệp video sẽ giúp quản lý chúng dễ dàng hơn.", + "AutomaticSubtitleDownloadInstructions": "Để quản lý việc tải xuống phụ đề tự động, hãy nhấp vào thư viện trong thiết lập thư viện Emby và sửa cài đặt tải xuống phụ đề cho thư viện đó.\n", + "ProviderNeedsSetupWithUrl": "{0} yêu cầu thiết lập bổ sung trên màn hình {1}cài đặt{2} trong Emby Server.", + "LabelEnableHardwareAcceleration": "Bật tăng tốc phần cứng khi có thể", + "HeaderPreferredHardwareDecoders": "Bộ giải mã phần cứng ưa thích", + "HeaderPreferredHardwareEncoders": "Bộ mã hóa phần cứng ưa thích", + "AllowChangingImageAndPassword": "Cho phép người dùng này thay đổi mật khẩu và ảnh đại diện của họ", + "LabelSimultaneousStreamLimit": "Tối đa luồng video đồng thời", + "SimultaneousStreamLimitHelp": "Giới hạn số lượng phiên phát lại video đồng thời.", + "LabelMusicFolderStructure": "Cấu trúc thư mục nhạc", + "LabelMusicFolderStructureHelp": "Điều này cung cấp gợi ý cho máy quét thư viện về cách sắp xếp các thư mục của bạn. Nếu bạn không chắc chắn hoặc nếu các thư mục của bạn không khớp chính xác với một trong các tùy chọn, vui lòng chọn tùy chọn mặc định là Khác.", + "OtherOrUnstructured": "Khác hoặc không có cấu trúc", + "PerfectArtistAlbumTrack": "Được sắp xếp hoàn hảo vào thư mục nghệ sĩ\\album, với các bản nhạc nằm trực tiếp trong thư mục album.", + "PerfectAlbumTrack": "Được sắp xếp hoàn hảo vào các thư mục album, với các bản nhạc nằm trực tiếp trong thư mục album.", + "LabelMinCollectionSize": "Kích thước thu thập tự động tối thiểu", + "PerfectAuthorAudioBookTrack": "Được sắp xếp hoàn hảo vào các thư mục tác giả\\cuốn sách, với các tệp âm thanh nằm trực tiếp trong các thư mục cuốn sách.", + "PerfectAudioBookTrack": "Mỗi cuốn sách được sắp xếp vào một thư mục riêng, các tệp âm thanh được đặt trực tiếp trong thư mục sách đó.", + "MinCollectionSizeHelp": "Tự động tạo bộ sưu tập khi bạn có ít nhất số lượng tiêu đề đã chọn trong thư viện của mình. Thay đổi giá trị này sẽ không ảnh hưởng đến bộ sưu tập hiện có.", + "LabelImportCollections": "Nhập thông tin bộ sưu tập từ trình tải xuống siêu dữ liệu", + "LabelImportCollectionsHelp": "Khi được bật, tính năng này sẽ nhập thông tin bộ sưu tập từ trình tải xuống siêu dữ liệu đã bật của bạn. Điều này có thể khiến các bộ sưu tập không mong muốn được tự động tạo. Tắt sẽ ngăn các bộ sưu tập trong tương lai được tự động tạo, nhưng sẽ không xóa các bộ sưu tập hiện có.", + "LabelAllowAdultMetadata": "Cho phép siêu dữ liệu phim XXX", + "LabelAllowAdultMetadataHelp": "Cho phép khớp tiêu đề nội dung người lớn khi tìm kiếm siêu dữ liệu trên internet", + "HeaderVideoPreviewThumbnails": "Hình thu nhỏ xem trước video", + "LabelEnableHDRToneMapping": "Bật ánh xạ tông màu HDR", + "EnableHDRToneMappingHelp": "Tone mapping sẽ đảm bảo chuyển đổi màu chính xác khi chuyển mã nội dung HDR, nếu không, nội dung này sẽ bị mờ và mất độ bão hòa. Có thể cần thêm các thành phần trình điều khiển để hỗ trợ tăng tốc phần cứng khi bật tính năng này. Vui lòng xem hướng dẫn thiết lập tăng tốc phần cứng của chúng tôi để biết chi tiết.", + "WithHardwareAcceleratedTranscoding": "Có, chỉ với khả năng tăng tốc phần cứng", + "TranscodingStillInitializing": "Dịch vụ chuyển mã Emby Server vẫn đang bận khởi động. Màn hình này sẽ tự động làm mới khi dịch vụ chuyển mã sẵn sàng.", + "WithEitherHardwareOrSoftwareTranscoding": "Có, với cả chuyển mã phần cứng hoặc phần mềm", + "ToneMappingInHardwareDescription": "Việc ánh xạ tông màu sẽ được thực hiện với khả năng tăng tốc phần cứng khi tính năng này được bật và hỗ trợ bởi phần cứng, và bị bỏ qua trong mọi trường hợp khác.", + "ToneMappingInSoftwareDescription": "Ánh xạ tông màu sẽ được thực hiện trong phần mềm bởi CPU. Điều này chậm hơn nhiều so với ánh xạ tông màu được tăng tốc bằng phần cứng và sẽ yêu cầu một máy chủ rất mạnh.", + "ToneMappingInBothDescription": "Tone mapping sẽ được thực hiện với khả năng tăng tốc phần cứng khi được phần cứng bật và hỗ trợ, và sẽ chuyển sang phần mềm trong mọi trường hợp khác. Tone mapping trong phần mềm chậm hơn nhiều so với tone mapping tăng tốc phần cứng và sẽ yêu cầu một máy chủ rất mạnh.", + "AutoMapped": "Tự động ánh xạ", + "ManuallyMapped": "Đã lập bản đồ thủ công", + "NotMappedToGuideData": "Không được ánh xạ tới dữ liệu hướng dẫn", + "MappedToValue": "Đã ánh xạ tới {0}", + "LabelAutomaticallyWakeServerForRecordings": "Tự động bật máy chủ để thực hiện ghi âm", + "LabelAutomaticallyWakeServerForRecordingsHelp": "Sự kiện đánh thức sẽ được lên lịch với hệ điều hành máy chủ. Tắt tùy chọn này sẽ ngăn các sự kiện đánh thức trong tương lai được lên lịch nhưng sẽ không xóa bất kỳ sự kiện nào đã lên lịch trước đó.", + "Database": "Cơ sở dữ liệu", + "LabelOptimizeDatabaseOnShutdown": "Cố gắng tối ưu hóa cơ sở dữ liệu khi máy chủ tắt", + "LabelOptimizeDatabaseOnShutdownHelp": "Hoạt động tối ưu hóa cơ sở dữ liệu thường là hoạt động không có tác dụng nhưng đôi khi nó sẽ chạy phân tích nếu việc này có vẻ hữu ích cho trình lập kế hoạch truy vấn. Điều này có thể khiến Emby Server mất nhiều thời gian hơn để tắt.", + "LabelDatabaseCacheSize": "Kích thước bộ nhớ đệm cơ sở dữ liệu (MB)", + "LabelDatabaseCacheSizeHelp": "Thiết lập lượng dữ liệu mà cơ sở dữ liệu sẽ lưu giữ trong bộ nhớ cùng một lúc, trên mỗi tệp cơ sở dữ liệu. Giá trị lớn hơn có thể giúp cải thiện hiệu suất của Emby Server. Cần khởi động lại máy chủ để có hiệu lực.", + "LabelDatabaseAnalysisLimit": "Giới hạn hàng phân tích", + "LabelDatabaseAnalysisLimitHelp": "Khi cơ sở dữ liệu được tối ưu hóa, đây là số lượng hàng gần đúng được kiểm tra trong mỗi chỉ mục bởi lệnh ANALYZE. Giá trị lớn hơn sẽ làm tăng hiệu quả tối ưu hóa cơ sở dữ liệu, nhưng có thể khiến Emby Server mất nhiều thời gian hơn để tắt máy.", + "LabelVacuumDb": "Tối ưu cơ sở dữ liệu khi khởi động Emby Server lần tới", + "LabelVacuumDbHelp": "Quá trình này sẽ tái cấu trúc tệp cơ sở dữ liệu, nén lại để sử dụng tối thiểu dung lượng ổ đĩa. Trong một số trường hợp, điều này có thể cải thiện hiệu suất của Emby Server. Lưu ý rằng bạn sẽ không thể sử dụng Emby Server trong khi quá trình này đang diễn ra, và cũng không có cách nào để theo dõi tiến trình của quá trình này. Vui lòng tránh đóng cưỡng bức Emby Server trong thời gian thực hiện quá trình này vì điều đó có thể dẫn đến hỏng cơ sở dữ liệu. Đây là một thao tác thực hiện một lần, và tùy chọn này sẽ tự động bị bỏ chọn sau lần khởi động máy chủ tiếp theo.", + "AdvancedOptionsWarning": "Đây là các tùy chọn nâng cao và thường nên để ở mặc định trừ khi bạn có lý do để thay đổi chúng.", + "HeaderRecentlyActiveDevices": "Thiết bị hoạt động gần đây", + "YesUntilServerRestart": "Có, cho đến khi máy chủ tiếp theo khởi động lại", + "YesUntilLogRotate": "Có, cho đến lần xoay vòng tệp nhật ký tiếp theo", + "LabelSubtitleDownloadMaxAge": "Hãy ngừng cố gắng tự động tải xuống phụ đề cho các video cũ hơn", + "SubtitleDownloadMaxAgeHelp": "Điều này dựa trên giá trị siêu dữ liệu được thêm vào ngày.", + "NoAgeLimit": "Không giới hạn độ tuổi", + "AnonymizeLogContents": "Ẩn danh nội dung nhật ký", + "Markers": "Đánh dấu", + "LabelGenerateIntroVideoMarkers": "Tạo các điểm đánh dấu video giới thiệu", + "GenerateIntroVideoMarkersHelp": "Phát hiện phần giới thiệu chương trình và hiển thị nút 'Bỏ qua phần giới thiệu' trong ứng dụng Emby. Phát hiện phần giới thiệu có thể mất nhiều thời gian và gây ra tình trạng sử dụng CPU hoặc đĩa cao.", + "LabelCopyFromUser": "Sao chép cài đặt từ người dùng", + "CopyFromUserHelp": "Tùy chọn. Tăng tốc độ tạo người dùng mới bằng cách sao chép thông tin từ người dùng hiện có.", + "UserPolicy": "Chính sách người dùng (quyền truy cập thư viện và tính năng, quyền kiểm soát của phụ huynh, v.v.)", + "UserConfiguration": "Cấu hình người dùng (ngôn ngữ âm thanh và phụ đề ưa thích, thứ tự thư viện, v.v.)", + "UserDataAndDescription": "User Data (favorites, watch and listening states, etc.)", + "HeaderCopyOptions": "Tùy chọn sao chép", + "LabelMultiRestrictionMode": "Chế độ hạn chế nhiều", + "MultiRestrictionModeAll": "Cho phép nội dung phù hợp với cả xếp hạng và hạn chế thẻ", + "MultiRestrictionModeAny": "Cho phép nội dung phù hợp với xếp hạng hoặc hạn chế thẻ", + "AllowMappingByChannelNumber": "Cho phép lập bản đồ để hướng dẫn dữ liệu bằng cách sử dụng số kênh", + "AllowMappingByChannelNumberHelp": "Có thể sử dụng chức năng này như một giải pháp dự phòng để khớp kênh bộ dò với dữ liệu hướng dẫn bất cứ khi nào không tìm thấy sự khớp dựa trên tên kênh. Điều này có thể dẫn đến việc khớp không chính xác nếu số kênh từ bộ dò không chính xác.", + "LabelPreferredSourceForChannelLogos": "Ưu tiên logo kênh từ dữ liệu hướng dẫn hơn là bộ dò sóng khi cả hai đều có sẵn", + "LabelPreferredSourceForChannelNumbers": "Ưu tiên số kênh từ dữ liệu hướng dẫn hơn là từ bộ dò sóng khi cả hai đều có sẵn", + "HeaderSoftwareEncoders": "Phần mềm mã hóa", + "LabelProxyHeaderMode": "Đọc tiêu đề proxy để xác định địa chỉ IP của máy khách", + "ProxyHeadersRemoteOnly": "Chỉ khi chúng chứa địa chỉ mạng từ xa", + "ProxyHeaderModeHelp": "Xác định xem các tiêu đề yêu cầu như {0} và {1} có nên được sử dụng để xác định địa chỉ IP của thiết bị kết nối hay không.", + "AllowCameraUpload": "Cho phép tải lên máy ảnh", + "AllowCameraUploadHelp": "Nếu được phép và nếu được bật trong ứng dụng di động Emby, người dùng có thể tự động tải ảnh và video được chụp từ máy ảnh của họ lên Máy chủ Emby này", + "CameraUploadMustBeGranted": "Bạn cũng phải được quản trị viên máy chủ cấp quyền tải ảnh lên.", + "EnableReadingAndWritingPeopleMetadata": "Cho phép đọc và ghi các tệp siêu dữ liệu của người dùng", + "EnableReadingAndWritingPeopleMetadataHelp": "Yêu cầu cài đặt plugin Nfo Metadata. Điều này sẽ cho phép lưu các chỉnh sửa của mọi người vào các tệp siêu dữ liệu nfo nhưng sẽ dẫn đến việc quét thư viện lâu hơn.", + "LabelIgnoreSampleFiles": "Bỏ qua các tệp có chứa từ sample trong tên tệp nếu kích thước của chúng nhỏ hơn (MB)", + "PreferredChannelImageSource": "Nguồn hình ảnh kênh ưa thích", + "PreferredChannelImageSourceHelp": "Chọn hình ảnh kênh ưa thích khi cả dữ liệu bộ dò và dữ liệu hướng dẫn đều có hình ảnh.", + "CacheImagesInServerData": "Lưu một bản sao lưu trữ hình ảnh trong thư mục siêu dữ liệu của máy chủ", + "CacheImagesInServerDataHelp": "Nếu phương tiện và hình ảnh của bạn được lưu trữ trên một máy khác, việc giữ một bản sao lưu đệm của hình ảnh trong thư mục siêu dữ liệu máy chủ sẽ làm giảm quyền truy cập mạng và có thể cải thiện hiệu suất. Chi phí tạo bộ nhớ đệm này là quá trình quét thư viện sẽ chậm hơn và thư mục siêu dữ liệu máy chủ sẽ tiêu tốn nhiều dung lượng đĩa hơn đáng kể.", + "AllowSharingPersonalContent": "Cho phép chia sẻ nội dung cá nhân như danh sách phát với người dùng khác trên máy chủ này", + "AllowSharingPersonalContentHelp": "Nếu được cấp, người dùng này sẽ có thể chia sẻ danh sách phát của họ với những người dùng khác. Các mục danh sách phát vẫn sẽ bị hạn chế dựa trên quyền truy cập thư viện của người dùng và quyền kiểm soát của phụ huynh.", + "LiveBufferSizeHours": "Giới hạn kích thước bộ đệm phát trực tiếp (giờ)", + "LiveBufferSizeHoursHelp": "Bộ đệm dài hơn sẽ cung cấp khả năng tìm kiếm tiến và lùi tốt hơn trong quá trình phát trực tiếp, nhưng sẽ tiêu tốn nhiều dung lượng đĩa hơn.", + "LabelTranscodingMaxResolution": "Max transcoding resolution", + "TranscodingMaxResolutionHelp": "Set an upper limit to apply to all video transcoding, regardless of the quality setting in the Emby player. This will help reduce resources consumed by server transcoding processes.", + "EnableHevcEncodingExp": "Enable HEVC video encoding (experimental)", + "EnableHevcEncodingHelp": "Enable transcoding using the HEVC codec if it is supported by the client.", + "LabelEnableMultiPartItems": "Enable multi-part items", + "EnableMultiPartItemsHelp": "Automatically detect and group files that are named as part 1, part 2, etc. Additional parts will be displayed on the main detail screen for the item.", + "MultiVersionItemsDetectionHelp": "Automatically detect and group different versions of the same item together. A version selection will be offered on the main detail screen for the item. Grouping based on files requires naming and organizing your files appropriately.", + "MultiVersionMoviesDetectionHelp": "Grouping based on metadata will group movies that have the same external Ids (MovieDb, Imdb, etc).", + "EnableMultiPartItemsTVHelp": "Not supported for episodes of TV shows.", + "HeaderAutomaticGrouping": "Automatic Grouping", + "LabelMultiVersionItemsDetection": "Multi-version item detection", + "MultiVersionItemsDetectionBoth": "Detect multi-version items based on both files and metadata", + "MultiVersionItemsDetectionFiles": "Detect multi-version items based on files", + "MultiVersionItemsDetectionMetadata": "Detect multi-version items based on metadata", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "RightToLeft": "Right-to-left order", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files." +} diff --git a/strings/zh-CN.json b/strings/zh-CN.json new file mode 100644 index 0000000..b9d85e4 --- /dev/null +++ b/strings/zh-CN.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "完成!", + "ThisWizardWillGuideYou": "该向导将指导你完成安装 Emby Server 的过程。", + "HeaderCreateYourFirstUser": "创建您的第一个用户", + "ButtonQuickStartGuide": "快速入门指南", + "MoreUsersCanBeAddedLater": "稍后可以在 Emby Server 设置中添加更多用户。", + "UserProfilesIntro": "Emby 集成了对用户配置的支持,允许每个用户分别配置自己的显示设置、播放状态和家长控制。", + "WizardCompleted": "现在所有必要信息已就绪。Emby 已开始扫描您的媒体库。了解一下我们的应用,然后单击完成可查看服务器控制台。", + "MessagePleaseAcceptTermsOfService": "继续之前请接受使用条款和隐私政策条款。", + "OptionIAcceptTermsOfService": "我接受使用条款", + "SeeOurHwaGuide": "请参阅我们的{0}硬件加速设置指南{1}。", + "HeaderEmbyServerReleaseNotes": "Emby Server 发行说明", + "AllowSubtitleDownloading": "允许字幕下载", + "AllowSubtitleManagement": "允许删除现有字幕文件", + "NewUserNameHelp": "这用于如何在您服务器上显示用户。", + "ChapterMarkers": "章节标记", + "LabelThumbnailImagesInterval": "缩略图间隔", + "ThumbnailImagesIntervalHelp": "缩略图的间隔频率越高,体验越好,但创建图像需要更多的磁盘空间和时间。", + "LabelAuthProvider": "身份验证提供者", + "AuthProviderHelp": "管理员始终使用默认的 Emby 提供者以确保您永远不会被锁定。", + "HeaderNewUser": "新增用户", + "ChangeServerDisplayName": "更改服务器显示的名称", + "ShowAdvancedSettings": "显示高级设置", + "ChangingMetadataImageSettingsNewContent": "如果更改了元数据或媒体图片下载的设置,只适用于之后添加到媒体库的新内容。要将更改应用于现有项目,您需要手动刷新其元数据。", + "AllowRemoteAccess": "允许远程访问此 Emby Server 。", + "AllowRemoteAccessHelp": "如果取消勾选,则将阻止所有远程连接。", + "Alerts": "警告", + "LabelTrackTitleDisplay": "内嵌音轨标题显示", + "GenerateUserFriendlyTrackTitles": "使用音轨信息生成用户友好标题", + "PreferOriginalTrackTitles": "优先使用内嵌的标题", + "TrackTitleDisplayHelp": "选择显示内嵌音轨和字幕轨道的标题。除非您是手动管理内嵌轨道信息,否则不建议您首选内嵌标题。", + "EnableTranscodingThrottle": "启用限流", + "EnableTranscodingThrottleHelp": "Emby 将动态调整转码速度,以降低 CPU 利用率。", + "HeaderTypeMetadataDownloaders": "{0} 元数据下载器", + "HeaderTypeImageFetchers": "{0} 图像获取器", + "HeaderImageOptions": "图像选项", + "OptionBeta": "测试版", + "RegisterWithPayPal": "使用 PayPal 注册", + "LabelSyncTempPath": "临时文件路径", + "LabelSyncTempPathHelp": "指定自定义工作文件夹。在转换过程中创建的转换媒体将存储在此处。", + "LabelCustomCertificatePath": "自定义 SSL 证书路径", + "LabelCustomCertificatePathHelp": "包含证书和私钥的 PKCS#12 文件的路径,可在自定义域上启用 TLS 支持。", + "HeaderSetupLibrary": "设置媒体库", + "LabelTimeLimitHours": "时间限制(小时)", + "HeaderPreferredMetadataLanguage": "首选元数据语言", + "LabelSaveLocalMetadata": "保存媒体图片到媒体文件夹中", + "LabelSaveLocalMetadataHelp": "将媒体图片保存到媒体文件夹会将图像和媒体文件放在一起,以便可从 Emby 外部轻松访问它们。如果禁用,图像将会保存到服务器的元数据文件夹中。", + "TabAccess": "访问", + "HeaderDeviceAccess": "设备访问", + "OptionEnableAccessFromAllDevices": "允许所有设备的访问", + "OptionEnableAccessToAllChannels": "允许访问所有频道", + "OptionEnableAccessToAllLibraries": "允许访问所有媒体库", + "DeviceAccessHelp": "过滤用户设备访问将阻止他们使用新设备,直到被批准为止。", + "LabelDisplayMissingEpisodesWithinSeasons": "显示每一季遗漏的剧集", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "必须在 Emby Server 设置的“电视节目”媒体库中启用此功能。", + "ImportMissingEpisodesHelp": "如果启用,将导入遗漏集信息到 Emby 数据库中,并在季和剧集信息中显示。这可能会导致更长的媒体库扫描时间。", + "MessageEnablingOptionLongerScans": "启用此选项可能会导致更长的媒体库扫描时间。", + "LabelMaxParentalRating": "允许的最大家长评分", + "MaxParentalRatingHelp": "将对此用户隐藏更高评分的内容。", + "LibraryAccessHelp": "选择要与此用户共享的媒体文件夹。管理员可使用元数据管理器来编辑所有文件夹。", + "ChannelAccessHelp": "选择要与此用户共享的频道。管理员可使用元数据管理器来编辑所有文件夹。", + "ImageUploadAspectRatioHelp": "建议使用宽高比为 1:1 的图片。仅支持 JPG / PNG 图片格式。", + "AlreadyPaidHelp1": "如果您已经付费安装旧版本的 Media Browser for Android,则无需再次付费即可激活此应用。单击“确定”向 {0} 发送邮件,我们将为您激活该邮箱地址。", + "AlreadyPaidHelp2": "已拥有 Emby Premiere ?只需取消此对话框,然后在 Emby Server 控制台的 “帮助” -> “Emby Premiere” 中配置 Emby Premiere ,即可自动解锁。", + "TabMyPlugins": "我的插件", + "TabCatalog": "目录", + "HeaderAutomaticUpdates": "自动更新", + "Standard": "标准", + "TabSupporterKey": "Emby Premiere 密钥", + "OptionHideUserLocal": "在本地网络的登录界面中隐藏此用户", + "OptionHideUserRemote": "在远程连接的登录界面中隐藏此用户", + "OptionHideUserFromLoginHelp": "这对私有或隐藏的管理员账户有用。用户需要手动输入用户名和密码才能动登录。", + "HideFromUnusedDevices": "在从未登录过设备的登录页面中隐藏此用户", + "OptionDisableUser": "禁用此用户", + "OptionDisableUserHelp": "如果禁用,服务器将不允许此用户进行任何连接。现有连接也将立刻被终止。", + "OptionAllowUserToManageServer": "允许此用户管理服务器", + "HeaderFeatureAccess": "功能访问", + "OptionAllowMediaPlayback": "允许媒体播放", + "AllLibraries": "所有媒体库", + "HeaderAllowMediaDeletionFrom": "允许从以下媒体库删除媒体", + "LiveTVRecordingManagement": "电视直播录制管理", + "OptionAllowRemoteControlOthers": "允许遥控其他用户", + "OptionAllowRemoteSharedDevices": "允许遥控共享设备", + "OptionAllowRemoteSharedDevicesHelp": "DLNA 设备被视为已共享,直到有用户开始控制它。", + "OptionAllowLinkSharing": "允许社交媒体分享", + "OptionAllowLinkSharingHelp": "仅共享包含媒体信息的网页。媒体文件永远不会公开共享。共享有时间限制,将在 {0} 天后过期。", + "OptionRelease": "官方发行版", + "LabelAllowServerAutoRestartPlugin": "允许服务器自动重启以便应用插件更新生效", + "LabelAllowServerAutoRestartServerOrPlugin": "允许服务器自动重启以便对服务器或插件的更新生效", + "LabelAllowServerAutoRestartHelp": "服务器将仅在空闲期间(此时没有活动用户)重新启动。", + "LabelRunServerAtStartup": "开机自启", + "LabelRunServerAtStartupHelp": "这将在 Windows 启动时启动 Emby 托盘图标。如果您已设置了 Windows 服务,请取消选中此选项并将此服务配置为开机自启。", + "ButtonSelectDirectory": "选择目录", + "LabelCachePath": "缓存路径", + "DefaultMetadataLangaugeDescription": "这些是您的默认设置,每个媒体库都可基于此自定义设置。", + "LabelCachePathHelp": "为服务器缓存文件(例如图像)指定自定义位置。留空可使用服务器默认值。", + "LabelDefaultRecordingFolder": "默认录制文件夹", + "LabelMovieRecordingFolder": "影片录制文件夹", + "LabelSeriesRecordingFolder": "剧集录制文件夹", + "SeriesRecordingFolderHelp": "(可选)。选择用于保存剧集录制内容的媒体库。必须是您在 Emby 媒体库设置中创建的库,且内容类型是电视节目或混合内容。", + "HeaderProgramData": "程序数据", + "RecordingFolderHelp": "选择用于保存录制内容的默认媒体库。必须是您在 Emby 媒体库设置中创建的库,且内容类型是混合内容。", + "MovieRecordingFolderHelp": "(可选)。选择用于保存影片录制内容的媒体库。必须是您在 Emby 媒体库设置中创建的库,且内容类型是影片或混合内容。", + "LabelMetadataPath": "元数据路径", + "LabelMetadataPathHelp": "指定用于存储下载媒体图片和元数据的“元数据”文件夹位置,或者留空使用默认值。如果更改此设置,您需要手动将内容从旧位置迁移到新位置。如果您曾手动更改了元数据文件夹的内容,则需要运行{0}扫描元数据文件夹计划任务{1}。", + "LabelTranscodingTempPath": "转码临时路径", + "LabelTranscodingTempPathHelp": "此文件夹中包含转码器的工作文件。指定路径或留空以使用服务器的默认数据文件夹。", + "GenerateVideoPreviewThumbnailsHelp": "视频预览缩略图可在支持的应用中提供实时更新。生成缩略图可能会花费很长时间,导致较高的 CPU 使用率并消耗更多的磁盘空间。", + "AsAScheduledTask": "作为计划任务", + "AsAScheduledTaskAndMediaAdded": "作为计划任务及添加媒体时", + "ButtonRefreshGuideData": "刷新指南数据", + "LabelNumberOfGuideDays": "指南数据下载天数", + "LabelNumberOfGuideDaysHelp": "下载越多天数的指南数据可以提前安排更多时间并查看更多列表,但下载时间也更长。“自动”将根据通道数进行选择。请注意,无论选择多少天,源指南数据都必须存在需下载的数据。一些指南数据提供者仅提供 24 小时。Emby 指南数据最多支持 14 天。", + "HeaderFetchImages": "获取图像", + "LabelMaxBackdropsPerItem": "每项的最大壁纸数量", + "LabelMaxScreenshotsPerItem": "每项的最大截屏数", + "LabelMinBackdropDownloadWidth": "最小壁纸下载宽度", + "LabelMinScreenshotDownloadWidth": "最小屏幕截图下载宽度", + "ButtonAddScheduledTaskTrigger": "添加触发器", + "ButtonAdd": "添加", + "LabelTriggerType": "触发类型", + "OptionOnInterval": "每隔一段时间", + "OptionAfterSystemEvent": "系统事件后", + "LabelDay": "日", + "LabelTime": "时间", + "LabelEvent": "事件", + "OptionWakeFromSleep": "从睡眠中唤醒", + "Every": "每", + "LabelEnableRealtimeMonitor": "启用实时监视", + "LabelEnableRealtimeMonitorHelp": "在支持的文件系统上,将立即处理对文件的更改。", + "Community": "社区", + "HeaderEmbyNews": "Emby 新闻", + "LabelFriendlyServerName": "服务器爱称", + "LabelFriendlyServerNameHelp": "此名称将用于标识此服务器。如果留空,将使用当前计算机名。", + "LabelPreferredDisplayLanguage": "首选显示语言", + "LabelPreferredDisplayLanguageHelp": "Emby 的翻译工作是一个持续进行的项目。", + "LabelReadHowYouCanContribute": "了解如何贡献自己的力量。", + "LabelCustomCss": "自定义 CSS", + "LabelCustomCssHelp": "将自己的自定义 CSS 应用于 Web 界面。", + "LabelLocalHttpServerPortNumber": "本地 HTTP 端口号", + "LabelLocalHttpServerPortNumberHelp": "Emby HTTP 服务器监听的 TCP 端口号。", + "LabelPublicHttpPort": "公网 HTTP 端口号", + "LabelPublicHttpPortHelp": "映射到本地 HTTP 端口的公网端口号。", + "LabelPublicHttpsPort": "公网 HTTPS 端口号", + "LabelPublicHttpsPortHelp": "映射到本地 HTTPS 端口的公网端口号。", + "RequireHttps": "外部连接需要 HTTPS", + "RequireHttpsHelp": "如果启用,将自动重定向 HTTP 至 HTTPS。", + "LabelHttpsPort": "本地 HTTPS 端口号", + "LabelHttpsPortHelp": "Emby HTTPS 服务器监听的 TCP 端口号。", + "LabelEnableAutomaticPortMap": "启用自动端口映射", + "LabelEnableAutomaticPortMapHelp": "尝试通过 UPnP 将本地端口自动映射到公网端口。这可能不适用于某些路由器。", + "LabelExternalDDNS": "外部域", + "LabelExternalDDNSHelp": "如果您有 DDNS 或域名,请在此处输入(不带协议或端口)。Emby 应用在远程连接时需要使用它。与自定义 SSL 证书一起使用时,此字段必填。例如:mydomain.com 。", + "LabelMinResumePercentage": "最小恢复播放百分比", + "LabelMaxResumePercentage": "最大恢复播放百分比", + "LabelMinResumeDuration": "最小恢复播放时长(秒)", + "LabelMinResumePercentageHelp": "如果在此时间之前停止,则将标记项目为“未播放”", + "LabelMaxResumePercentageHelp": "如果在此时间之后停止,则将标记项目为“已播放”", + "LabelMinResumeDurationHelp": "短于此时间的项目不可恢复播放", + "HeaderStatus": "状态", + "Subscriptions": "订阅", + "LabelEndingEpisodeNumber": "最后一集编号", + "LabelEndingEpisodeNumberHelp": "仅多集文件需要", + "HeaderSupportTheTeam": "支持 Emby 团队", + "HeaderSupportTheTeamHelp": "购买 Emby Premiere 可帮助此项目的持续开发。所有收入的一部分将贡献给我们所依赖的其它免费工具。", + "DonationNextStep": "完成后,请返回并输入您从邮件中收到的 Emby Premiere 密钥。", + "HeaderRunningTasks": "运行中任务", + "ButtonUpdateNow": "立即更新", + "PleaseUpdateManually": "请关闭 Emby Server 并安装最新版本。", + "ServerUpToDate": "Emby Server 已是最新版本", + "MessagePleaseRestartServerToFinishUpdating": "请重新启动服务器以便更新生效。", + "LabelDownMixAudioScale": "缩混时音频增强", + "LabelDownMixAudioScaleHelp": "降混音时增强音频。设置为 1 将保留原始音量值。", + "HeaderForgotKey": "忘记密钥", + "LabelSupporterEmailAddress": "用于购买密钥的邮件地址。", + "ButtonRetrieveKey": "取回密钥", + "LabelSupporterKey": "Emby Premiere 密钥(从邮件中粘贴)", + "LabelSupporterKeyHelp": "输入您的 Emby Premiere 密钥可享受额外功能。", + "MessageInvalidKey": "缺少或无效的 Emby Premiere 密钥。", + "ErrorMessageInvalidKey": "为了使用所有高级功能,您必须拥有一个有效的 Emby Premiere 订阅。", + "LabelSkipIfGraphicalSubsPresent": "如果视频包含有匹配下载语言的内嵌字幕,则跳过", + "LabelSkipIfGraphicalSubsPresentHelp": "保留字幕的文本版本将提高传递效率并降低视频转码的可能性。", + "HeaderDownloadLanguages": "下载语言", + "LabelSkipIfAudioTrackPresent": "如果默认音轨匹配下载语言,则跳过", + "LabelSkipIfAudioTrackPresentHelp": "取消选中可确保所有视频均带有字幕,而与音频语言无关。", + "SendMessage": "发送消息", + "HeaderSendMessage": "发送消息", + "ButtonSend": "发送", + "LabelMessageText": "消息文本", + "LabelMessageTitle": "消息标题", + "ButtonEditOtherUserPreferences": "编辑此用户的配置、图像和个人首选项。", + "LabelLoginDisclaimer": "登录免责声明", + "LabelLoginDisclaimerHelp": "这将显示在登录界面的底部。", + "HeaderTranscodingTemporaryFiles": "转码临时文件", + "HeaderApiKeys": "API 密钥", + "HeaderApiKeysHelp": "外部应用程序必须拥有 API 密钥才能与 Emby Server 通信。登录 Emby 账户可颁发密钥,或者手动向应用程序授予密钥。", + "HeaderApiKey": "API 密钥", + "HeaderResumeSettings": "恢复播放设置", + "HeaderFetcherSettings": "获取器设置", + "HeaderActivity": "活跃状况", + "ButtonPurchase": "购买", + "HeaderInstall": "安装", + "LabelSelectVersionToInstall": "选择要安装的版本", + "LinkLearnMoreAboutSubscription": "了解 Emby Premiere", + "MessagePluginRequiresSubscription": "免费试用 14 天后,将需要有效的 Emby Premiere 订阅才能正常使用此插件。", + "MessagePremiumPluginRequiresMembership": "免费试用 14 天后,将需要购买有效的 Emby Premiere 订阅才能正常使用此插件。", + "HeaderDeveloperInfo": "开发者信息", + "HeaderRevisionHistory": "修订历史", + "ButtonViewWebsite": "查看网站", + "OptionSaveMetadataAsHidden": "将元数据和图像保存为隐藏文件", + "LabelConnectEmail": "(可选)Emby Connect 电子邮件地址", + "LabelConnectEmailHelp": "可选择链接此本地用户到已有的 Emby Connect 账户,任何 Emby 应用即可轻松登录访问,而无需知道服务器 IP 地址。", + "ButtonLearnMoreAboutEmbyConnect": "了解有关 Emby Connect 的更多信息", + "LabelDateAddedBehavior": "新内容的加入日期", + "OptionDateAddedImportTime": "使用扫描进入媒体库的日期", + "OptionDateAddedFileTime": "使用文件的创建日期", + "LabelDateAddedBehaviorHelp": "如果指定了元数据值,则将直接使用此值而忽略这些选项。", + "HeaderLibrarySettings": "媒体库设置", + "HeaderAutomaticSubtitleDownloads": "自动字幕下载", + "HeaderCameraUploadHelp": "Emby 应用可以自动从您的移动设备将照片上传到 Emby Server 。", + "LabelCameraUploadPath": "相机上传路径", + "LabelCameraUploadPathHelp": "选择一个自定义上传路径。这将覆盖在“相机上传”中设置的所有默认设置。如果留空,将使用默认文件夹。如果使用自定义路径,则还需要在 Emby 媒体库设置中将其添加为一个媒体库。", + "DefaultCameraUploadPathHelp": "选择一个自定义上传路径。如果留空,将使用默认文件夹。如果使用自定义路径,则还需要在 Emby 媒体库设置中将其添加为一个媒体库。", + "LabelCreateCameraUploadSubfolder": "为每个设备创建子文件夹", + "LabelCreateCameraUploadSubfolderHelp": "通过在“设备”页面上单击设备,可以将特定的文件夹分配给对应设备。", + "LabelCustomDeviceDisplayNameHelp": "自定义显示名称或者留空以使用设备所报告的名称。", + "TabParentalControl": "家长控制", + "HeaderAccessSchedule": "访问计划", + "HeaderAccessScheduleHelp": "创建访问计划可将访问权限限制到某些时刻。", + "HeaderLibraryAccess": "媒体库访问", + "HeaderChannelAccess": "频道访问", + "LabelForgotPasswordUsernameHelp": "请输入您的用户名(如果记得)。", + "TitlePasswordReset": "密码重置", + "HeaderBlockItemsWithNoRating": "屏蔽没有或无法识别评分信息的项目", + "LabelBlockContentWithTags": "限制带有标签的项目", + "LabelTagRestrictionMode": "标签限制模式", + "BlockItemsWithTheseTags": "屏蔽带有这些标签的项目", + "AllowItemsWithTheseTags": "只允许带有这些标签的项目", + "OptionAllowContentDownloading": "允许下载媒体", + "LabelNewUserNameHelp": "用户名可以包含字母 a-z 、数字 0-9 、破折号 - 、下划线 _ 、单引号 ' 和句号 .", + "HeaderThisUserIsCurrentlyDisabled": "此用户当前被禁用。若要启用此用户,请参阅此页面底部的选项。", + "OptionAllowSyncTranscoding": "允许下载需要转码的媒体", + "AllowMediaConversion": "允许媒体转换", + "AllowMediaConversionHelp": "授予或拒绝访问转换媒体功能的权限。", + "OptionAllowAudioPlaybackTranscoding": "如有必要,在媒体播放期间允许音频转码为兼容格式", + "OptionAllowVideoPlaybackTranscoding": "如有必要,在媒体播放期间允许视频转码为兼容格式", + "OptionAllowVideoPlaybackRemuxing": "如有必要,在媒体播放期间允许更改容器格式", + "OptionAllowMediaPlaybackTranscodingHelp": "限制使用转码将禁用质量选择,并会使得不支持的音频、视频、字幕或因网络带宽不足而无法在 Emby 应用中播放。", + "LabelRemoteClientBitrateLimit": "远程流传输比特率限制 (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "所有网络外设备的可选每流比特率限制。即使用户在播放器中选择了更高的媒体质量,这也会限制远程流传输质量。有这有助于防止设备请求的比特率高于互联网连接所能处理的比特率。但可能会导致您服务器的 CPU 负载增加,以便实时将视频转码为较低的比特率。", + "LabelUserRemoteClientBitrateLimitHelp": "这将覆盖在高级服务器设置中设置的全局默认值。", + "OptionEnableFullSpeedConversion": "启用全速转换", + "OptionEnableFullSpeedConversionHelp": "默认情况下,会以低速执行转换,可最大程度减少资源消耗。", + "OptionEnableAutomaticServerUpdates": "启用服务器自动更新", + "HeaderTVSources": "电视源", + "HeaderAddTvSource": "添加电视输入源", + "LabelTunerIpAddress": "调谐器 IP 地址", + "HeaderGuideProviders": "指南数据源", + "HeaderAddGuideSource": "添加指南数据源", + "LabelZipCode": "邮政编码", + "LabelLineup": "节目时间表", + "LabelImportOnlyFavoriteChannels": "仅限已收藏的频道", + "ImportFavoriteChannelsHelp": "如果启用,则仅导入调谐器设备上已收藏的频道。", + "HeaderDefaultRecordingSettings": "默认录制设置", + "LabelDisplayName": "显示名称", + "OptionDownloadImagesInAdvance": "预先下载图像", + "OptionDownloadImagesInAdvanceHelp": "默认情况下,Emby 应用在显示图片之前不会先从互联网下载它们。启用此选项会在导入新媒体之前,预先下载所有图片。请注意,这可能会显著增加媒体库扫描的时间。", + "MessageThankYouForSupporting": "感谢你支持 Emby。", + "FileReadCancelled": "已取消文件读取。", + "FileNotFound": "未找到文件。", + "FileReadError": "读取文件时出错。", + "NoPluginConfigurationMessage": "此插件没有可配置的设置项。", + "HeaderNewApiKey": "新建 API 密钥", + "HeaderNewApiKeyHelp": "授予应用程序与 Emby Server 进行通信的权限。", + "MessageKeyEmailedTo": "密钥已通过邮件发送到 {0} 。", + "HeaderConfirmation": "确认", + "MessageKeyUpdated": "谢谢。已更新您的 Emby Premiere 密钥。", + "MessageKeyRemoved": "谢谢。已移除您的 Emby Premiere 密钥。", + "TextEnjoyBonusFeatures": "享受额外的功能", + "MessageErrorLoadingSupporterInfo": "加载 Emby Premiere 信息时出错。请稍后再试。", + "ValueTimeLimitSingleHour": "时间限制:1 小时", + "ValueTimeLimitMultiHour": "时间限制:{0} 小时", + "General": "通用", + "HeaderScreenSavers": "屏幕保护", + "Reporting": "报告", + "LabelStopping": "正在停止", + "HeaderSelectCertificatePath": "选择证书路径", + "HeaderSupporterBenefit": "拥有一个有效的 Emby Premiere 订阅可获取额外的功能,例如访问 Emby DVR 、离线媒体、高级插件等等。{0}了解详情{1}。", + "LabelAbortedByServerShutdown": "(由于服务器关闭而中止)", + "LabelScheduledTaskLastRan": "上次运行于 {0},耗时 {1} 。", + "HeaderDeleteTaskTrigger": "删除任务触发器", + "MessageDeleteTaskTrigger": "您确定要删除此任务触发器吗 ?", + "MessageNoPluginsDueToAppStore": "若要管理插件,请使用 Emby web 应用。", + "LabelVersionInstalled": "{0} 已安装", + "HeaderSelectServerCachePath": "选择服务器缓存路径", + "HeaderSelectTranscodingPath": "选择转码临时路径", + "HeaderSelectMetadataPath": "选择元数据路径", + "HeaderSelectServerCachePathHelp": "浏览或输入用于服务器缓存文件的路径。此文件夹必须有写入权限。", + "HeaderSelectTranscodingPathHelp": "浏览或输入用于存储转码临时文件的路径。此文件夹必须有写入权限。", + "HeaderSelectMetadataPathHelp": "浏览或输入用于存储元数据的路径。此文件夹必须有写入权限。", + "MessageConfirmRestart": "您确定要重启 Emby Server 吗 ?", + "MessageConfirmShutdown": "您确定要关闭 Emby Server 吗 ?", + "LabelLocalAccessUrl": "家庭(局域网)访问:{0}", + "LabelRemoteAccessUrl": "远程(广域网)访问:{0}", + "LabelRunningOnPort": "运行于 HTTP 端口 {0}", + "LabelRunningOnPorts": "运行于 HTTP 端口 {0} 和 HTTPS 端口 {1}", + "LabelCurrentPath": "当前路径", + "HeaderSelectMediaPath": "选择媒体路径", + "HeaderSelectPath": "选择路径", + "MessageDirectoryPickerInstruction": "如果在“网络”按钮找不到您的设备,则可以手动输入网络路径。例如 {0} 或 {1} 。", + "MessageDirectoryPickerBSDInstruction": "对于 BSD 系统,您可能需要在 FreeNAS Jail 中配置存储,以允许 Emby 访问它。", + "MessageDirectoryPickerLinuxInstruction": "对于 Linux on Arch Linux 、CentOS 、Debian 、Fedora 、OpenSuse 或 Ubuntu ,您必须至少授予 Emby 系统用户读取存储位置的权限。", + "MetadataManager": "元数据管理器", + "OptionBlockLiveTvChannels": "电视直播频道", + "OptionBlockChannelContent": "互联网频道内容", + "ButtonRevoke": "撤销", + "MessageConfirmRevokeApiKey": "您确定要撤消此 API 密钥吗?此应用程序与 Emby Server 的连接将立即终止。", + "HeaderConfirmRevokeApiKey": "撤销 API 密钥", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "请接受服务条款后继续。", + "HeaderChangeFolderType": "更改内容类型", + "HeaderChangeFolderTypeHelp": "若要更改内容类型,请移除媒体库并使用新的类型重建媒体库。", + "HeaderAlert": "警告", + "MessagePleaseRestart": "请重启服务器以完成更新。", + "OptionHomeVideos": "家庭视频和照片", + "OptionBooks": "书籍", + "HeaderMetadataReaders": "元数据读取器", + "LabelMetadataReadersHelp": "启用并按优先级排列您选择的本地元数据源。", + "HeaderSubtitleDownloaders": "字幕下载器", + "SubtitleDownloadersHelp": "启用并按优先级排列您选择的字幕下载器。使用 Emby 插件目录可以安装更多的字幕提供程序。", + "LabelMetadataDownloaders": "元数据下载器", + "LabelMetadataDownloadersHelp": "启用并按优先级排列您选择的元数据下载器。优先级较低的下载器仅用于填写缺少的信息。", + "HeaderMetadataSavers": "元数据存储方式", + "LabelMetadataSaversHelp": "选择您保存元数据的文件格式。", + "LabelImageFetchers": "图像获取器", + "LabelImageFetchersHelp": "启用并按优先级排列您选择的图像获取器。", + "PersonTypePerson": "人物", + "HeaderRemoveMediaLocation": "移除媒体位置", + "MessageConfirmRemoveMediaLocation": "您确定要移除此位置吗?", + "LabelNewName": "新建名称", + "HeaderRemoveLibrary": "移除媒体库", + "MessageAreYouSureYouWishToRemoveLibrary": "您确定要从 Emby Server 中移除 {0} 媒体库吗?媒体文件将不会受到影响。", + "ButtonRename": "重命名", + "HeaderPluginInstallation": "插件安装", + "MessageTrialExpired": "此功能的试用期已过", + "MessageTrialWillExpireIn": "此功能的试用期还剩 {0} 天", + "ValuePriceUSD": "价格:{0} (USD)", + "MessageFeatureIncludedWithSupporter": "您已注册此功能,并且可以通过有效的 Emby Premiere 订阅继续使用它。", + "HeaderSelectExternalPlayer": "选择外部播放器", + "HeaderExternalPlayerPlayback": "外部播放器播放", + "HeaderThankYou": "谢谢", + "HeaderSelectUploadPath": "选择上传路径", + "ErrorMessageStartHourGreaterThanEnd": "结束时间必须大于开始时间。", + "MessagePluginConfigurationRequiresLocalAccess": "若要配置此插件,请直接登录到本地服务器。", + "MovieLibraryHelp": "查看 {0}Emby 影片命名指南{1}。", + "TvLibraryHelp": "查看 {0}Emby 电视节目命名指南{1}。", + "BookLibraryHelp": "现已支持文本书籍。查看 {0}Emby 书籍命名指南{1}。", + "MessageGamePluginRequired": "需要安装 GameBrowser 插件", + "HeaderUnlockApp": "解锁应用", + "MessagePaymentServicesUnavailable": "支付服务当前不可用。请稍后再试。", + "NoNewDevicesFound": "未发现新的设备。若要添加新的调谐器,请关闭此对话框并手动输入设备信息。", + "MessageConfirmDeleteTunerDevice": "您确定要删除此设备吗 ?", + "MessageConfirmDeleteGuideProvider": "您确定要删除此指南提供者吗 ?", + "HeaderDeleteProvider": "删除提供者", + "ErrorAddingTunerDevice": "添加调谐器设备时出错。请确保它可访问后再重试。", + "ErrorSavingTvProvider": "保存电视服务商时出错。请确保它可访问后再重试。", + "ErrorGettingTvLineups": "下载电视节目表时出现错误。请确保信息正确后再重试。", + "MessageCreateAccountAt": "在 {0} 上创建一个账户", + "ErrorPleaseSelectLineup": "请选择一个节目时间表后重试。如果没有可用的时间表,请检查您的用户名、密码和邮政编码是否正确。", + "ErrorValidatingSupporterInfo": "验证您的 Emby Premiere 信息时出错。请稍后再试。", + "LabelLocalSyncStatusValue": "状态:{0}", + "HeaderTopPlugins": "热门插件", + "ForAdditionalLiveTvOptions": "浏览 Emby {0}插件目录{1}可安装其它的电视直播服务商。", + "AddUser": "添加用户", + "HeaderEmailAddress": "邮箱地址", + "NumLocationsValue": "{0} 个文件夹", + "PleaseAddAtLeastOneFolder": "请单击“添加”按钮将至少 1 个文件夹添加到此媒体库中。", + "ErrorAddingMediaPathToVirtualFolder": "添加媒体路径时出错。请检查路径是否有效且 Emby Server 对其具有访问权限后重试。", + "ErrorAddingEmbyConnectAccount3": "Emby 账户已链接到现有本地用户。每个 Emby 账户只能链接到一个本地用户。", + "HeaderConfirmPluginInstallation": "确认插件安装", + "PleaseConfirmPluginInstallation": "请单击“确定”确认您已阅读以上内容且希望继续安装插件。", + "MessagePluginInstallDisclaimer": "Emby 社区成员构建的插件为 Emby 带来了额外的功能和好处,增强了 Emby 的体验。在安装之前,请注意它们可能会对 Emby Server 产生的影响,例如更长时间的媒体库扫描、额外的后台处理以及降低的系统稳定性。", + "HardwareAccelerationWarning": "在某些环境中,启用硬件加速可能会导致不稳定。请确保您的操作系统和视频驱动程序已更新至最新版本。如果启用此选项后播放视频时出现问题,请将此设置改回“自动”。", + "ValueExample": "例如:{0}", + "LabelFileOrUrl": "文件或网址", + "OptionEnableForAllTuners": "为所有调谐器设备启用", + "HeaderTuners": "调谐器", + "DrmChannelsNotImported": "受 DRM 保护的频道将不会被导入。", + "LabelAllowHWTranscoding": "允许硬件转码", + "AllowHWTranscodingHelp": "如果启用,则允许调谐器对视频流进行实时转码。这可能有助于减少 Emby Server 对转码的需求。", + "MetadataSettingChangeHelp": "更改元数据设置将影响以后添加的新内容。若要刷新现有内容,可打开详情屏幕后单击刷新按钮,或者使用元数据管理器,然后执行批量刷新。", + "RecordingPathChangeMessage": "更改录制文件夹不会将已有录制内容从旧位置迁移到新位置。如果您需要,则需要手动移动它们。", + "LabelLocalIpAddress": "本地 IP 地址", + "LabelBindToLocalNetworkAddressHelp": "可选。将覆盖 Emby Server 提供给 Emby 应用的本地 IP 地址。如果留空,服务器将自动检测本地 IP 地址。", + "SettingsWarning": "更改这些值可能会导致不稳定或连接失败。如果您遇到任何问题,我们建议将其恢复为默认值。", + "OptionSaveMetadataAsHiddenHelp": "更改此设置将影响以后保存的新元数据。现有元数据文件将在 Emby Server 下次保存时进行更新。", + "EnablePhotos": "启用照片", + "EnablePhotosHelp": "将检测照片并与其它媒体文件一起显示。", + "ImportPlaylists": "导入播放列表文件", + "ImportPlaylistsHelp": "媒体目录中的播放列表可被导入到 Emby Server 中。", + "SaveThumbnailImagesIntoMediaFolders": "将视频预览缩略图保存到媒体文件夹中", + "LabelGenerateVideoPreviewThumbnails": "生成视频预览缩略图", + "LabelEnableDebugLogging": "启用调试日志记录", + "OptionEnableExternalContentInSuggestions": "在推荐中启用外部内容", + "OptionEnableExternalContentInSuggestionsHelp": "允许推荐内容中包含互联网预告片和电视直播节目。", + "LabelOptionalNetworkPath": "(可选)共享网络文件夹", + "LabelOptionalNetworkPathHelp": "如果此文件夹在网络上共享,则提供网络共享路径即可使 Emby 应用程序在其它设备上直接访问媒体文件。", + "SynologyUpdateInstructions": "请登录 DSM 并转到 “套件中心” 进行更新。", + "HeaderRecordingPostProcessing": "录制后期处理", + "LabelPostProcessorArguments": "后期处理器命令行参数", + "PostProcessorArgumentsHelp": "命令行中支持以下变量,以允许将数据传递到后期处理器", + "LabelPostProcessor": "后期处理应用程序", + "DvrPostProcessorPathArgument": "{path}:新录制文件的完整路径", + "OptionAutomaticallyGroupSeries": "自动合并分布在多个文件夹中的剧集", + "OptionAutomaticallyGroupSeriesHelp": "如果启用,分布在此媒体库库中多个文件夹中的剧集将自动合并为一部。", + "WhenDidYouPurchaseApp": "您最初是何时购买此应用程序的?", + "PreferEmbeddedTitlesOverFileNames": "首选使用内嵌标题而不是文件名", + "PreferEmbeddedTitlesOverFileNamesHelp": "此项确定在没有互联网元数据或本地元数据时的默认显示标题。", + "FriendlyNameForReferenceHelp": "用于显示的昵称,供您自己参考。", + "HeaderLiveTvTunerSetup": "电视直播调谐器设置", + "HeaderTVSourceSetup": "电视输入源设置", + "HeaderDetectMyDevices": "检测设备", + "MessagePleaseWait": "请稍候。这可能需要大约 1 分钟的时间。", + "DetectingDevices": "正在检测设备", + "LabelAutomaticallyRefreshInternetMetadataEvery": "初次导入后,自动从互联网刷新元数据", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "自动刷新带有占位标题(例如 TBA)的集的元数据", + "EveryNDays": "每 {0} 天", + "LabelCertificatePassword": "证书密码", + "LabelCertificatePasswordHelp": "如果您的证书需要密码,请在此处输入。", + "HeaderNewLibrary": "新增媒体库", + "HttpsRequiresCert": "若要启用安全连接,您需要提供信任的 SSL 证书(例如 Lets Encrypt)。提供证书文件或者禁用安全连接。", + "ServerRestartNeededAfterPluginInstall": "在安装插件后,Emby Server 将需要重启。", + "PluginInstalledMessage": "此插件已安装成功。Emby Server 将需要重启才能使更改生效。", + "MessagePremiereStatusGood": "您拥有 {0} Emby Premiere 计划且您的设备数未达到最大限制数量。", + "MessagePremiereStatusClose": "您拥有 {0} Emby Premiere 计划,但您的设备使用数已达最大限制数量。", + "MessagePremiereExtendedPlans": "考虑{0}设备数扩展计划{1}", + "MessagePremiereStatusOver": "您拥有 {0} Emby Premiere 计划,但您的设备数已超出最大限制数量!", + "ListItemPremiereSub": "通过 {2} 购买的 {0} 订阅将于 {1} 过期", + "LabelClickToManage": "点击管理此订阅", + "LabelCancelInfo": "您可以直接通过 {0} 管理此订阅", + "LabelAlreadyCanceled": "此订阅已被取消。密钥将在到期后失效。", + "HeaderCancelSub": "取消 Emby Premiere", + "MessageConfirmSubCancel": "不,请您不要离开… 您将错过 Emby Premiere 的所有强大功能 !", + "ButtonCancelSub": "我已了解,但仍要取消", + "ButtonDontCancelSub": "保留 Emby Premiere", + "MessageSubCancelReqSent": "已发送邮件给此密钥的所有者。请按照此邮件中的说明完成取消此订阅。希望很快与您再次相遇 !", + "MessageSubCancelError": "尝试取消时出现问题。请发送邮件至 {0},我们将帮您解决。", + "LabelAlreadyCancelled": "此订阅已被取消。您无需再付费,在订阅过期前您能继续使用这些功能。", + "AllowOnTheFlySubtitleExtraction": "允许实时提取字幕", + "AllowOnTheFlySubtitleExtractionHelp": "可以从视频中提取内嵌字幕,并以纯文本格式将其传递给 Emby 应用,以防止视频转码。在某些系统上,这可能需要很长时间且会导致提取过程中视频播放停止。如果客户端设备自身不支持此功能,禁用此选项可在视频转码时一起压制内嵌字幕。", + "AllowOnTheFlyFontExtraction": "允许实时提取字幕字体", + "AllowOnTheFlyFontExtractionHelp": "可以从视频中提取内嵌字体并将其传送给 Emby 应用,以支持包含自定义字体的视频。在某些系统上,此操作可能需要较长时间,并导致提取过程中视频播放卡顿。", + "EnableDebugLoggingHelp": "仅应根据需要启用调试日志以进行故障排除。增加的文件系统访问量会在某些情况下阻止计算机进入睡眠。", + "LabelSimultaneousConnectionLimit": "并发流限制", + "SimultaneousConnectionLimitHelp": "允许的最大并发流数量。输入 0 为无限制。", + "LaunchWebAppOnStartup": "Emby Server 启动时,打开我的 Web 浏览器并访问 Emby web 应用", + "LaunchWebAppOnStartupHelp": "Emby Server 首次启动时,会打开您的默认 Web 浏览器并访问 Emby web 应用。在重启服务器时不会发生这种情况。", + "LabelReferrerHeader": "引用者 HTTP 标头", + "LabelUserAgentHeader": "用户代理 HTTP 标头", + "SupplyCustomValueIfNeeded": "必要时请提供自定义 HTTP 标头值。", + "HeaderConfigureRemoteAccess": "配置远程访问", + "LearnHowToCreateSynologyShares": "了解如何在群晖中共享文件夹。", + "LabelAllowedRemoteAddresses": "远程 IP 地址筛选", + "LabelAllowedRemoteAddressesMode": "远程 IP 地址筛选模式", + "Whitelist": "白名单", + "Blacklist": "黑名单", + "AllowedRemoteAddressesHelp": "允许或禁止远程连接的 IP 地址或 IP/网络掩码条目的列表(以英文逗号分隔)。如果留空,将允许所有远程地址。", + "LabelLanNetworks": "局域网网络", + "LanNetworksHelpText": "被认为是本地网络的 IP 地址或 IP/网络掩码条目的列表(以英文逗号分隔),将进行带宽和远程访问限制。如果设置,则所有其它 IP 地址将被视为外部网络。如果留空,则仅将服务器的子网和常见的私网 IP 子网(192.168.0.0/24 、172.16.0.0/12 等)视为本地网络。", + "LabelSecureConnectionsMode": "安全连接模式", + "PreferredNotRequired": "首选,不是必需", + "RequiredForAllRemoteConnections": "所有远程连接必需", + "HandledByProxy": "由反向代理处理", + "SaveSubtitlesIntoMediaFolders": "将已下载的字幕保存到媒体文件夹中", + "SaveSubtitlesIntoMediaFoldersHelp": "将字幕和视频文件存储在一起,使它们更易于管理。", + "AutomaticSubtitleDownloadInstructions": "若要管理自动字幕下载,请在 Emby 媒体库设置中单击一个媒体库,然后编辑此库的字幕下载设置。", + "ProviderNeedsSetupWithUrl": "{0} 需要在 Emby Server 的{1}设置屏幕{2}中进行额外配置。", + "LabelEnableHardwareAcceleration": "启用硬件加速(如果可用)", + "HeaderPreferredHardwareDecoders": "首选硬件解码器", + "HeaderPreferredHardwareEncoders": "首选硬件编码器", + "AllowChangingImageAndPassword": "允许用户更改其头像和密码", + "LabelSimultaneousStreamLimit": "最大同步视频流", + "SimultaneousStreamLimitHelp": "限制并发视频播放会话的数量。", + "LabelMusicFolderStructure": "音乐文件夹结构", + "LabelMusicFolderStructureHelp": "这为媒体库扫描器提供了有关文件夹组织方式的提示。如果不确定,或者文件夹与任何选项都不完全匹配,请选择“其它”默认选项。", + "OtherOrUnstructured": "其它或非结构化", + "PerfectArtistAlbumTrack": "完美组织成 “艺人\\专辑” 文件夹,歌曲直接存放在专辑文件夹中。", + "PerfectAlbumTrack": "完美组织成专辑文件夹,歌曲直接存放在专辑文件夹中。", + "LabelMinCollectionSize": "最小自动合集尺寸", + "PerfectAuthorAudioBookTrack": "完美组织成 “作者 \\ 书籍” 文件夹,书本直接存放在书籍文件夹中。", + "PerfectAudioBookTrack": "完美组织成书籍文件夹,书本直接存放在书籍文件夹中。", + "MinCollectionSizeHelp": "当媒体库中至少有所选数量的项目时,将自动创建合集。更改此值对任何现有合集没有影响。", + "LabelImportCollections": "从元数据下载器导入合集信息", + "LabelImportCollectionsHelp": "启用时,会自动从您已启用的元数据下载器中导入合集信息。这可能会导致自动创建不需要的合集。禁用此项会阻止自动创建后续的合集,但不会删除现有的合集。", + "LabelAllowAdultMetadata": "允许成人元数据", + "LabelAllowAdultMetadataHelp": "允许在互联网上搜索元数据时匹配成人标题。", + "HeaderVideoPreviewThumbnails": "视频预览缩略图", + "LabelEnableHDRToneMapping": "启用 HDR 色调映射", + "EnableHDRToneMappingHelp": "在对 HDR 内容进行转码时,色调映射将确保颜色的正确转换,否则会出现颜色暗淡和不饱和。在启用此功能时,可能需要额外的驱动程序以支持硬件加速。详情请参阅我们的硬件加速设置指南。", + "WithHardwareAcceleratedTranscoding": "是,仅硬件加速", + "TranscodingStillInitializing": "Emby Server 转码服务仍在启动中。当转码服务就绪时,当前屏幕将自动刷新。", + "WithEitherHardwareOrSoftwareTranscoding": "是,使用硬件或软件转码", + "ToneMappingInHardwareDescription": "启用硬件加速且硬件支持的情况下,将用硬件加速执行色调映射,其它情况将自动忽略。", + "ToneMappingInSoftwareDescription": "将由 CPU 使用软件执行色调映射。这比使用硬件加速要慢得多,且需要一个非常强大的服务器。", + "ToneMappingInBothDescription": "启用硬件加速且硬件支持的情况下,将用硬件加速执行色调映射,其它情况将回退由软件执行。这比使用硬件加速要慢得多,且需要一个非常强大的服务器。", + "AutoMapped": "已自动映射", + "ManuallyMapped": "已手动映射", + "NotMappedToGuideData": "未映射到指南数据", + "MappedToValue": "映射到 {0}", + "LabelAutomaticallyWakeServerForRecordings": "自动唤醒服务器以便执行录制操作", + "LabelAutomaticallyWakeServerForRecordingsHelp": "服务器操作系统将计划执行唤醒事件。禁用此选项将阻止后续计划的唤醒事件,但不会移除之前计划的任何事件。", + "Database": "数据库", + "LabelOptimizeDatabaseOnShutdown": "尝试在服务器关闭时优化数据库", + "LabelOptimizeDatabaseOnShutdownHelp": "数据库的优化操作通常无需人工干预,但如果有益于查询规划器,偶尔会执行分析任务。这可能会使 Emby Server 需要更长的时间才能关闭。", + "LabelDatabaseCacheSize": "数据库缓存尺寸 (MB)", + "LabelDatabaseCacheSizeHelp": "设置数据库中每个数据库文件在内存中一次性保存的数据量。较大的值有助于提高 Emby Server 的性能。此设置将在服务器下次重启后生效。", + "LabelDatabaseAnalysisLimit": "分析行限制数", + "LabelDatabaseAnalysisLimitHelp": "优化数据库时,这是 ANALYZE 命令在每个索引中检查的大致行数。较大的值会增加数据库优化的有效性,但可能会导致 Emby Server 需要更长的时间才能关闭。", + "LabelVacuumDb": "下次 Emby Server 启动时清理数据库", + "LabelVacuumDbHelp": "清理操作会重建数据库文件,将其重新打包到最小的磁盘空间中。在某些情况下,这可能会提高 Emby Server 的性能。注意在进行清理操作期间,您的 Emby Server 将无法使用,也无法监控清理的进度。请避免在此期间强制关闭 Emby Server 进程,因为这可能会导致数据库损坏。这是一次性操作,此选项将在下次服务器启动时恢复为未选中状态。", + "AdvancedOptionsWarning": "这些都是高级选项,通常应该保留默认值,除非您有更改它们的理由。", + "HeaderRecentlyActiveDevices": "近期活动设备", + "YesUntilServerRestart": "是,直到下次服务器重启", + "YesUntilLogRotate": "是,直到下次日志文件轮换", + "LabelSubtitleDownloadMaxAge": "停止尝试自动下载早于以下时间的字幕", + "SubtitleDownloadMaxAgeHelp": "这基于”加入日期“元数据值。", + "NoAgeLimit": "无年龄限制", + "AnonymizeLogContents": "匿名日志内容", + "Markers": "片头标记", + "LabelGenerateIntroVideoMarkers": "生成片头标记", + "GenerateIntroVideoMarkersHelp": "检测片头并在 Emby 应用中显示 “跳过片头” 按钮。片头检测可能需要很长时间,并导致较高的 CPU 或磁盘使用率。", + "LabelCopyFromUser": "复制以下用户设置", + "CopyFromUserHelp": "可选。通过从现有用户复制信息可快速创建新的用户。", + "UserPolicy": "用户策略(媒体库、功能访问及家长控制等)", + "UserConfiguration": "用户配置(首选音频、字幕语言及媒体库顺序等)", + "UserDataAndDescription": "用户数据(收藏、观看和收听状态等)", + "HeaderCopyOptions": "复制选项", + "LabelMultiRestrictionMode": "多限制模式", + "MultiRestrictionModeAll": "允许同时匹配评分和标签限制的内容", + "MultiRestrictionModeAny": "允许匹配评分或者标签限制的内容", + "AllowMappingByChannelNumber": "允许使用频道编号映射指南数据", + "AllowMappingByChannelNumberHelp": "当无法根据频道名称找到匹配的频道时,可以将调谐器频道与指南数据进行匹配作为后备措施。如果调谐器的频道编号不正确时,这可能会导致匹配不正确。", + "LabelPreferredSourceForChannelLogos": "首选使用指南数据中的频道徽标(即使调谐器中也有)", + "LabelPreferredSourceForChannelNumbers": "首选使用指南数据中的频道编号(即使调谐器中也有)", + "HeaderSoftwareEncoders": "软件编码器", + "LabelProxyHeaderMode": "读取代理标头以确定客户端 IP 地址", + "ProxyHeadersRemoteOnly": "仅当它们包含远程网络地址时", + "ProxyHeaderModeHelp": "确定是否将请求标头(例如 {0} 和 {1})用于确定连接设备的 IP 地址。您应当仅在使用反向代理时才启用此选项。", + "AllowCameraUpload": "允许相机上传", + "AllowCameraUploadHelp": "如果允许且在 Emby 移动应用中已启用,则用户可以从相机自动将拍摄的照片和视频上传到此 Emby Server", + "CameraUploadMustBeGranted": "您还必须获得服务器管理员的相机上传访问权限。", + "EnableReadingAndWritingPeopleMetadata": "启用演职人员元数据文件的读写", + "EnableReadingAndWritingPeopleMetadataHelp": "需要安装 Nfo 元数据插件。这将允许您将人员修改信息保存到 nfo 元数据文件中,但这会导致媒体库扫描时间更长。", + "LabelIgnoreSampleFiles": "如果文件尺寸小于以下值 (MB),则忽略文件名中有 sample 一词的文件", + "PreferredChannelImageSource": "首选频道图像来源", + "PreferredChannelImageSourceHelp": "当调谐器和指南数据都有可用图像时,首选频道图像。", + "CacheImagesInServerData": "在服务器的元数据文件夹中保留图像的缓存副本", + "CacheImagesInServerDataHelp": "如果您的媒体和图像存储在另一台计算机上,则在服务器元数据文件夹中保留图像的缓存副本将减少网络访问并能提高性能。创建此缓存的成本是媒体库扫描速度会变慢,并且服务器元数据文件夹将会消耗更多的磁盘空间。", + "AllowSharingPersonalContent": "允许与此服务器上的其他用户共享个人内容,例如播放列表", + "AllowSharingPersonalContentHelp": "如果获得授权,此用户将能与其他用户共享播放列表。播放列表中的项目仍会受限于用户媒体库访问权限和家长控制。", + "LiveBufferSizeHours": "直播流缓冲区尺寸限制(小时)", + "LiveBufferSizeHoursHelp": "较长的缓冲区将提供在直播期间向前和向后搜索的更大能力,但会消耗更多磁盘空间。", + "LabelTranscodingMaxResolution": "最大转码分辨率", + "TranscodingMaxResolutionHelp": "设置适用于所有视频转码的上限(忽略 Emby 播放器中的质量设置)。这将有助于减少服务器转码过程中的资源消耗。", + "EnableHevcEncodingExp": "启用 HEVC 视频编码(实验性)", + "EnableHevcEncodingHelp": "启用 HEVC 编解码器的转码(如果客户端支持)。", + "LabelEnableMultiPartItems": "启用多部分项目", + "EnableMultiPartItemsHelp": "自动检测命名为 part 1 、part 2 等的文件并将它们组合在一起。额外部分将显示在此项目的主详情屏幕中。", + "MultiVersionItemsDetectionHelp": "自动检测并将同一项目的不同版本组合在一起。在项目的主详情屏幕上会提供版本选择。组合功能依据于适当地命名和组织文件。", + "MultiVersionMoviesDetectionHelp": "依据元数据进行分组将对具有相同外部标识符(MoviDb 、Imdb 等)的影片进行组合。", + "EnableMultiPartItemsTVHelp": "不支持电视节目剧集。", + "HeaderAutomaticGrouping": "自动组合", + "LabelMultiVersionItemsDetection": "多版本项目检测", + "MultiVersionItemsDetectionBoth": "基于文件和元数据检测多版本项目", + "MultiVersionItemsDetectionFiles": "基于文件检测多版本项目", + "MultiVersionItemsDetectionMetadata": "基于元数据检测多版本项目", + "LabelNetworkRequestProtocol": "网络请求协议", + "NetworkRequestProtocolHelp": "选择用于向元数据提供方和其它服务发出网络请求的协议。在某些情况下,当使用 IPv6 无法访问外部服务时,你可能需要将此设置为仅 IPv4 。", + "GenerateChaptersForVideos": "为不包含内嵌章节信息的视频生成章节", + "GeneratedChapterInterval": "生成章节间隔", + "StartOfSection": "章节开始", + "Margins": "页边距", + "NextPage": "下一页", + "PreviousSection": "上一章节", + "LayoutVertical": "垂直滚动", + "ZoomIn": "缩小", + "PageNarrow": "窄", + "PreviousPage": "上一页", + "PageMaximized": "已最大化", + "ZoomOut": "放大", + "PageBook": "双页", + "RightToLeft": "从右到左顺序", + "LabelPageSize": "每页大小", + "PositionInBook": "书籍中位置", + "CurrentPage": "当前页", + "LayoutDouble": "双页", + "TableOfContents": "目录", + "PageSingle": "单页", + "TotalPages": "总页数", + "ZoomNone": "默认尺寸", + "LayoutPage": "单页", + "NextSection": "下一章节", + "ZoomAutoFit": "适合页面", + "LetsGetSetup": "让我们做好准备", + "HeaderIgnoreFiles": "忽略文件", + "EnablePlexIgnoreAlias": "启用对 .plexignore 文件的支持,将其作为 .embyignore 的别名", + "HeaderMaintenanceMode": "维护模式", + "OptionEnableMaintenanceMode": "将服务器设置为维护模式", + "MaintenanceModeMessageHelp": "如果留空,将显示一条通用消息,表明服务器正在维护,并显示为用户的显示语言。", + "ServerInMaintenanceMode": "Emby Server 当前正运行于维护模式。在您将服务器退出维护模式之前,用户将只能看到一条维护模式消息。", + "MaintenanceModeMessage": "维护模式消息", + "EnableMaintenanceModeHelp": "用户将只会看到维护模式消息。", + "ExcludeFromGlobalSearch": "从全局搜索中排除", + "MergeTopFoldersInFolderView": "使用文件夹视图时合并顶级文件夹的内容", + "MergeTopFoldersInFolderViewHelp": "如果启用,在使用文件夹视图时,将合并顶级文件夹的内容并显示为一个组合文件夹。如果禁用,将在文件夹视图中显示顶级文件夹为第一级。", + "OptionAllowTranscodingToReduceQuality": "允许在媒体播放期间根据应用的质量设置进行转码以降低质量", + "LabelAutoRemoteQuality": "自动远程流传输质量 (Mbps)", + "AutoRemoteQualityHelp": "当用户将播放器设置为自动质量时,可选的流传输质量。这将覆盖此用户在所有设备上的任何自动质量检测。", + "FolderScanningModeHelp": "更改此选项会导致媒体库完全扫描一次且可能导致现有元数据丢失或变更。", + "LegacyFolderScanningModeHelp": "旧式扫描会尝试将只包含单个视频文件夹合并到一个层。这主要影响文件夹视图中的显示。当与其它 Emby 功能(如附加内容、多版本视频或忽略文件)一起使用时,可能无法很好地工作。", + "LabelFolderScanningMode": "文件夹扫描模式", + "Legacy": "过时" +} diff --git a/strings/zh-HK.json b/strings/zh-HK.json new file mode 100644 index 0000000..8547545 --- /dev/null +++ b/strings/zh-HK.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "大功告成!", + "ThisWizardWillGuideYou": "本精靈將協助你完成設定 Emby 伺服器的所需步驟。", + "HeaderCreateYourFirstUser": "建立您的第一個用戶", + "ButtonQuickStartGuide": "快速入門指南", + "MoreUsersCanBeAddedLater": "稍後可以在Emby伺服器設定中添加更多用戶。", + "UserProfilesIntro": "Emby 已內置用戶設定支援文件,讓每個用戶都有自己的顯示設定,播放情況和家長監護。", + "WizardCompleted": "感謝提供所需資訊,Emby 已開始掃瞄系統內媒體庫;與此同時,歡迎了解一下 Emby 的一系列應用程式,然後點擊 完成 按鈕,查看 Emby 伺服器儀錶板 。", + "MessagePleaseAcceptTermsOfService": "你必須先接受使用及隱私政策條款,才可繼續。", + "OptionIAcceptTermsOfService": "我願意接受服務條款", + "SeeOurHwaGuide": "查閱 {0}硬件加速設定指南{1}。", + "HeaderEmbyServerReleaseNotes": "Emby 伺服器發布通知", + "AllowSubtitleDownloading": "允許字幕下載", + "AllowSubtitleManagement": "允許刪除現有字幕檔案", + "NewUserNameHelp": "這是此用戶將會顯示在您的伺服器上的效果。", + "ChapterMarkers": "章節標記", + "LabelThumbnailImagesInterval": "縮圖間隔時間", + "ThumbnailImagesIntervalHelp": "更頻繁地建立縮圖會帶來較佳的表現,但需要更多硬碟空間和時間來建立縮圖。", + "LabelAuthProvider": "認證提供者", + "AuthProviderHelp": "管理員會使用預設的 Emby 提供者,確保你永不被登出。", + "HeaderNewUser": "新用戶", + "ChangeServerDisplayName": "更改伺服器顯示名稱", + "ShowAdvancedSettings": "顯示進階設定", + "ChangingMetadataImageSettingsNewContent": "對中繼資料或圖片下載設定的更動僅適用於新添加的內容。如要更改現有資料,需手動更新中繼資料。", + "AllowRemoteAccess": "允許與此Emby伺服器進行遠端連接。", + "AllowRemoteAccessHelp": "如未勾選,所有連線將被封鎖。", + "Alerts": "警示", + "LabelTrackTitleDisplay": "顯示內建音軌標題", + "GenerateUserFriendlyTrackTitles": "以音軌資訊生成較易閱讀的標題", + "PreferOriginalTrackTitles": "優先使用內建標題", + "TrackTitleDisplayHelp": "選擇顯示音訊內建標題與歌曲。不建議設為優先顯示內建資訊,除非是手動編輯內建音軌資訊", + "EnableTranscodingThrottle": "啟用限制", + "EnableTranscodingThrottleHelp": "Emby 將動態調整轉檔速度,以降低 CPU 使用率。", + "HeaderTypeMetadataDownloaders": "{0}中繼資料下載器", + "HeaderTypeImageFetchers": "{0} 圖片擷取器", + "HeaderImageOptions": "影像選項", + "OptionBeta": "公測", + "RegisterWithPayPal": "由 PayPal 註冊", + "LabelSyncTempPath": "臨時檔案路徑", + "LabelSyncTempPathHelp": "選擇一個自定工作文件夾。在轉換過程中建立的媒體將被存放到這裡。", + "LabelCustomCertificatePath": "自訂 SSL 證書路徑", + "LabelCustomCertificatePathHelp": "包含憑證和私鑰的 PKCS #12 檔案存放路徑,用於TLS合規的自定網域。", + "HeaderSetupLibrary": "建立媒體庫", + "LabelTimeLimitHours": "時限 (小時)", + "HeaderPreferredMetadataLanguage": "首選元數據語言", + "LabelSaveLocalMetadata": "儲存媒體圖片到媒體所屬的文件夾", + "LabelSaveLocalMetadataHelp": "啟用此選項的話,圖片會儲存至媒體資料夾,讓圖像顯示於相關媒體檔案旁邊,以便在 Emby 之外存取。停用此選項的話,圖片則會儲存至伺服器的元資料資料夾。", + "TabAccess": "存取", + "HeaderDeviceAccess": "允許裝置存取", + "OptionEnableAccessFromAllDevices": "允許所有裝置存取", + "OptionEnableAccessToAllChannels": "允許存取所有頻道", + "OptionEnableAccessToAllLibraries": "允許存取所有媒體庫", + "DeviceAccessHelp": "過濾用戶裝置存取會阻止用戶使用新裝置,直到它們在這裏被批准。", + "LabelDisplayMissingEpisodesWithinSeasons": "顯示每季缺少的集數", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "必須也在 Emby 伺服器的電視媒體庫設定中啟用此功能。", + "ImportMissingEpisodesHelp": "如果啟用,缺少的集數資料會匯入到你的 Emby 數據庫並在季度和劇集頁面中顯示。這會令掃描資料庫花更長時間。", + "MessageEnablingOptionLongerScans": "啟用此選項可能會花更長的時間掃描媒體庫。", + "LabelMaxParentalRating": "可容許的最高家長監護級別", + "MaxParentalRatingHelp": "此用戶會被隱藏具有較高評價的家長評級內容。", + "LibraryAccessHelp": "選擇與此用戶共享媒體文件夾。管理員將能夠使用媒體資料瀏覽器編輯所有文件夾。", + "ChannelAccessHelp": "選擇此用戶共享頻道。管理員將能夠使用資料管理器而編輯所有文件夾。", + "ImageUploadAspectRatioHelp": "推薦 1:1 長寬比。只適用於 JPG/ PNG。", + "AlreadyPaidHelp1": "如果您已經付費安裝了舊版本的Media Browser for Android,則無需再次付費即可啟動此應用程式。單擊“確定”以向我們({0})發送電子郵件,我們將為您啟動它。", + "AlreadyPaidHelp2": "已是Emby高級會員? 取消此對話,在Emby伺服器總覽頁中,找到幫助(Help) -> Emby高級會員,將自動解鎖", + "TabMyPlugins": "我的插件", + "TabCatalog": "目錄", + "HeaderAutomaticUpdates": "自動更新", + "Standard": "標準", + "TabSupporterKey": "Emby Premiere 序號", + "OptionHideUserLocal": "在區域網路內,登入畫面將隱藏該使用者", + "OptionHideUserRemote": "遠端連線時,登入畫面將隱藏該使用者", + "OptionHideUserFromLoginHelp": "有效私人或隱藏的管理員帳戶。用戶需手動輸入用戶名和密碼登錄。", + "HideFromUnusedDevices": "在未曾登入的裝置中,登入畫面中隱藏該使用者", + "OptionDisableUser": "禁用此用戶", + "OptionDisableUserHelp": "如果禁用此伺服器,將不允許此用戶的任何連接。現有的連接將被即時終止。", + "OptionAllowUserToManageServer": "允許此用戶管理伺服器", + "HeaderFeatureAccess": "可使用的功能", + "OptionAllowMediaPlayback": "允許媒體播放", + "AllLibraries": "所有媒體庫", + "HeaderAllowMediaDeletionFrom": "允許刪除媒體從", + "LiveTVRecordingManagement": "直播電視錄影管理", + "OptionAllowRemoteControlOthers": "允許遠程控制其他用戶", + "OptionAllowRemoteSharedDevices": "允許遠程控制共享裝置", + "OptionAllowRemoteSharedDevicesHelp": "DLNA 裝置會被認為是共享,直到用戶進行控制。", + "OptionAllowLinkSharing": "允許社交媒體分享", + "OptionAllowLinkSharingHelp": "只有包含媒體資訊的網頁可共享,媒體檔案永不公開共享。共享有時效性,將在{0}天後過期", + "OptionRelease": "官方發佈", + "LabelAllowServerAutoRestartPlugin": "允許伺服器自動重啟以套用更新", + "LabelAllowServerAutoRestartServerOrPlugin": "允許伺服器自動重啟以套用伺服器或附加元件更新", + "LabelAllowServerAutoRestartHelp": "只在沒有活躍用戶和空檔時間重新啟動。", + "LabelRunServerAtStartup": "啟動時運行伺服器", + "LabelRunServerAtStartupHelp": "在Windows啟動時,也啟用Emby托盤圖樣。如未勾選,並且設為啟動Windows時啟用此服務", + "ButtonSelectDirectory": "選擇目錄", + "LabelCachePath": "緩存路徑", + "DefaultMetadataLangaugeDescription": "這些為預設值,可在個別媒體庫基本設定中調整", + "LabelCachePathHelp": "選擇指定所需的緩存文件路徑,如圖像。保留空白以使用默認設定。", + "LabelDefaultRecordingFolder": "預設錄影資料夾", + "LabelMovieRecordingFolder": "電影錄影資料夾", + "LabelSeriesRecordingFolder": "電視劇錄影資料夾", + "SeriesRecordingFolderHelp": "(非必要)選擇一個媒體庫來儲存關於錄影。在Emby 媒體庫中,必須有已建立媒體庫,設定其內容為電視節目或是綜合內容", + "HeaderProgramData": "節目資訊", + "RecordingFolderHelp": "選擇錄影檔的預設儲存媒體庫,該媒體庫必須在 Emby 媒體庫設定中建立,內容類型必須為「混合內容」。", + "MovieRecordingFolderHelp": "(非必要)選擇一個媒體庫,將電影錄影儲存到其中。這必須是您在 Emby 媒體庫設定中建立的媒體庫,內容類型設定為電影或混合內容。", + "LabelMetadataPath": "媒體元資料路徑", + "LabelMetadataPathHelp": "請指定從網絡下載的媒體圖片和媒體元資料的儲存位置;本欄留空的話,則會使用預設位置 。更改此設定後,請手動將現有檔案遷移到新位置。如果元資料資料夾的內容經手動更改,則請執行 {0}掃描元資料資料夾排程工作{1}。", + "LabelTranscodingTempPath": "臨時轉碼路徑", + "LabelTranscodingTempPathHelp": "此文件夾包含轉換器需要的文件。選擇自定路徑,保留空白以使用默認伺服器的數據文件夾。", + "GenerateVideoPreviewThumbnailsHelp": "影片預覽縮圖在有支援的應用程式中搜索時,會提供實時畫面。 生成縮圖可能會花費很長時間,導致高CPU使用率,並佔用額外硬碟空間。", + "AsAScheduledTask": "作為一個排程作業", + "AsAScheduledTaskAndMediaAdded": "當排程作業和當媒體加入時", + "ButtonRefreshGuideData": "重新整理電視指南資料", + "LabelNumberOfGuideDays": "下載電視節目表日數", + "LabelNumberOfGuideDaysHelp": "下載更多日數的電視節目表,不但讓您看到更遠時段的節目編排,也方便預校錄影。不過,節目表下載日數愈多,下載時間愈長。「自動」則按頻道數目,自動調節節目表的下載日數。請注意:最終能夠下載的日數取決於電視節目表資料供應者,部分供應者只會提供 24 小時的節目表。Emby 本身則能處理最多 14 日的電視節目表。", + "HeaderFetchImages": "獲取圖像", + "LabelMaxBackdropsPerItem": "每個項目的最高背景圖片數量", + "LabelMaxScreenshotsPerItem": "每個項目的最高截圖數量", + "LabelMinBackdropDownloadWidth": "下載背景圖片的最小闊度", + "LabelMinScreenshotDownloadWidth": "下載截圖的最小闊度", + "ButtonAddScheduledTaskTrigger": "新增觸發", + "ButtonAdd": "新增", + "LabelTriggerType": "觸發類型", + "OptionOnInterval": "每個時段", + "OptionAfterSystemEvent": "系統事件後", + "LabelDay": "日", + "LabelTime": "時間", + "LabelEvent": "事件", + "OptionWakeFromSleep": "從休眠中恢復", + "Every": "每 ", + "LabelEnableRealtimeMonitor": "啟用實時監控", + "LabelEnableRealtimeMonitorHelp": "在支援的文件系統所作的更改,將會立即處理。", + "Community": "論壇", + "HeaderEmbyNews": "Emby新聞", + "LabelFriendlyServerName": "伺服器暱稱", + "LabelFriendlyServerNameHelp": "名稱用於識辨伺服器。如果留空,將使用本機(伺服器)名稱。", + "LabelPreferredDisplayLanguage": "首選顯示語言", + "LabelPreferredDisplayLanguageHelp": "翻譯 Emby 是一個進行中的項目。", + "LabelReadHowYouCanContribute": "了解如何作出貢獻。", + "LabelCustomCss": "自訂 CSS", + "LabelCustomCssHelp": "使用自訂 CSS Web 界面。", + "LabelLocalHttpServerPortNumber": "內部 http 連接埠號碼", + "LabelLocalHttpServerPortNumberHelp": "TCP 連接埠號碼應綁定到 Emby http 伺服器。", + "LabelPublicHttpPort": "對外 http 連接埠號碼", + "LabelPublicHttpPortHelp": "公共連接埠號碼應映射到本地 http 連接埠。", + "LabelPublicHttpsPort": "對外 https 連接埠號碼", + "LabelPublicHttpsPortHelp": "公共連接埠號碼應映射到本地 https 連接埠。", + "RequireHttps": "對外連線需為加密的https", + "RequireHttpsHelp": "如啟用,http連線會導向加密https連線", + "LabelHttpsPort": "內部 https 連接埠號碼", + "LabelHttpsPortHelp": "TCP 連接埠號碼應綁定到 Emby https 伺服器。", + "LabelEnableAutomaticPortMap": "啟用自動連接埠映射", + "LabelEnableAutomaticPortMapHelp": "自動嘗試映射公共連接埠到 UPnP 本地連接埠。這可能無法用於某些路由器。", + "LabelExternalDDNS": "外部網域", + "LabelExternalDDNSHelp": "如有動態網域伺服器或網域名稱,請在此輸入,無需輸入協定或埠號,Emby應用程式將透過此設定遠端連線。當使用自訂SSL憑證,如: mydomain.com,此為必要設定", + "LabelMinResumePercentage": "最少繼續播放百分比", + "LabelMaxResumePercentage": "最大繼續播放百分比", + "LabelMinResumeDuration": "最少繼續播放時間 (秒)", + "LabelMinResumePercentageHelp": "媒體如果在這個時間之前停止,會被認定為未播放。", + "LabelMaxResumePercentageHelp": "媒體如果在這個時間之後停止,會被認定為已播放。", + "LabelMinResumeDurationHelp": "媒體比此更短將不可恢復播放", + "HeaderStatus": "狀態", + "Subscriptions": "訂閱", + "LabelEndingEpisodeNumber": "結局集數", + "LabelEndingEpisodeNumberHelp": "只需多劇集文件", + "HeaderSupportTheTeam": "贊助我們的團隊", + "HeaderSupportTheTeamHelp": "請訂閱Emby高級會員以支持本專案永續發展。部分收入用來支付其他專案相依的免費工具", + "DonationNextStep": "完成後,請返回並輸入您電子郵件收到的Emby Premiere序號。", + "HeaderRunningTasks": "運行任務", + "ButtonUpdateNow": "立即更新", + "PleaseUpdateManually": "請關閉Emby伺服器並安裝最新版本", + "ServerUpToDate": "已經是最新版本", + "MessagePleaseRestartServerToFinishUpdating": "請重新啟動以完成更新。", + "LabelDownMixAudioScale": "降混時提高音量", + "LabelDownMixAudioScaleHelp": "縮軌混音要提升音量請設為1保留原始音量", + "HeaderForgotKey": "忘記密鑰", + "LabelSupporterEmailAddress": "用於購買序號的電郵地址。", + "ButtonRetrieveKey": "取回金鑰", + "LabelSupporterKey": "Emby Premiere 金鑰 (請從相關電子郵件貼上)", + "LabelSupporterKeyHelp": "輸入您的Emby高級會員金鑰開始享受額外功能", + "MessageInvalidKey": "Emby高級會員金鑰遺失或失效", + "ErrorMessageInvalidKey": "註冊任何進階內容,皆需有效的Emby高級會員資格", + "LabelSkipIfGraphicalSubsPresent": "如果影片已內嵌所需語言的字幕,則不下載", + "LabelSkipIfGraphicalSubsPresentHelp": "保留文字版本的字幕會更有效率傳遞,減低影片轉碼的機會。", + "HeaderDownloadLanguages": "下載語系", + "LabelSkipIfAudioTrackPresent": "如果預設音軌符合下載語言將省略", + "LabelSkipIfAudioTrackPresentHelp": "取消此項,無論音訊語言是否一致,所有影片都會確保下載字幕。", + "SendMessage": "發信息", + "HeaderSendMessage": "發信息", + "ButtonSend": "發送", + "LabelMessageText": "訊息內文", + "LabelMessageTitle": "訊息標題", + "ButtonEditOtherUserPreferences": "編輯使用者資訊,頭像,和個人化設定", + "LabelLoginDisclaimer": "登入聲明", + "LabelLoginDisclaimerHelp": "顯示在登入界面的底部", + "HeaderTranscodingTemporaryFiles": "轉碼暫存檔", + "HeaderApiKeys": "API金鑰", + "HeaderApiKeysHelp": "外部應用程式需要有API金鑰來和Emby伺服器溝通。使用Emby帳號登入可取得金鑰,或手動派發金鑰給應用程式。", + "HeaderApiKey": "API金鑰", + "HeaderResumeSettings": "繼續播放設定", + "HeaderFetcherSettings": "擷取設定", + "HeaderActivity": "活動", + "ButtonPurchase": "購買", + "HeaderInstall": "安裝", + "LabelSelectVersionToInstall": "選擇要安裝的版本", + "LinkLearnMoreAboutSubscription": "了解Emby高級會員", + "MessagePluginRequiresSubscription": "此插件在14天免費試用後,將需要有效Emby高級會員", + "MessagePremiumPluginRequiresMembership": "此插件在14天免費試用後,將需要有效Emby高級會員才能購買", + "HeaderDeveloperInfo": "開發者信息", + "HeaderRevisionHistory": "修訂歷史", + "ButtonViewWebsite": "檢視網站", + "OptionSaveMetadataAsHidden": "將中繼資料和影像存為隱藏檔", + "LabelConnectEmail": "(選填項) Emby Connect 電郵地址", + "LabelConnectEmailHelp": "(可選)將此本地用戶鏈接到現有的 Emby Connect 帳戶,以從任何 Emby 應用輕鬆登錄存取,而無需知道伺服器IP地址。", + "ButtonLearnMoreAboutEmbyConnect": "了解更多關於Emby Connect", + "LabelDateAddedBehavior": "新增內容的新增日期模式", + "OptionDateAddedImportTime": "使用加入媒體庫時的掃描日期", + "OptionDateAddedFileTime": "使用檔案創建日期", + "LabelDateAddedBehaviorHelp": "如果中繼資料日期為現在,在這任一選項之前,將一直套用", + "HeaderLibrarySettings": "媒體庫設定", + "HeaderAutomaticSubtitleDownloads": "自動字幕下載", + "HeaderCameraUploadHelp": "Emby應用程式自動上傳行動設備中的照片到Emby伺服器中", + "LabelCameraUploadPath": "相片上傳路徑", + "LabelCameraUploadPathHelp": "自定上傳路徑,會覆蓋照片上傳中的預設路徑。如留白,使用預設路徑。如使用自訂路徑,在Emby資料庫設定中,需要新增為資料庫之一", + "DefaultCameraUploadPathHelp": "請選自訂上傳路徑,如留白,將使用預設路徑。如使用自訂路徑,在Emby資料庫設定中,需要增加為資料庫之一", + "LabelCreateCameraUploadSubfolder": "建立每個裝置的文件夾", + "LabelCreateCameraUploadSubfolderHelp": "從裝置頁面,裝置能通過所屬文件夾。", + "LabelCustomDeviceDisplayNameHelp": "提供自訂顯示名稱,或留白以使用設備報告的名稱", + "TabParentalControl": "家長監護", + "HeaderAccessSchedule": "存取排程", + "HeaderAccessScheduleHelp": "建立存取排程來限制使用時數", + "HeaderLibraryAccess": "媒體庫存取", + "HeaderChannelAccess": "頻道存取", + "LabelForgotPasswordUsernameHelp": "如果您記得,請輸入您的用戶名。", + "TitlePasswordReset": "重設密碼", + "HeaderBlockItemsWithNoRating": "拒絶沒有或無法識別級別的項目", + "LabelBlockContentWithTags": "限制帶有標籤的項目", + "LabelTagRestrictionMode": "標籤限制模式", + "BlockItemsWithTheseTags": "阻止帶有這些標籤的項目", + "AllowItemsWithTheseTags": "只允許帶有這些標籤的項目", + "OptionAllowContentDownloading": "允許媒體下載", + "LabelNewUserNameHelp": "用戶名可以包含字母(a-z),數字(0-9),破折號(-),下劃線(_),單引號(')和點號(.)。", + "HeaderThisUserIsCurrentlyDisabled": "該用戶當前已被禁用。 要啟用該用戶,請查看本頁底部的選項。", + "OptionAllowSyncTranscoding": "允許需要轉碼的媒體下載", + "AllowMediaConversion": "允許媒體轉換", + "AllowMediaConversionHelp": "許可或拒絕存取轉換媒體功能", + "OptionAllowAudioPlaybackTranscoding": "如必要,允許音訊轉碼在媒體播放期間", + "OptionAllowVideoPlaybackTranscoding": "如播放時需要,允許影片轉碼", + "OptionAllowVideoPlaybackRemuxing": "如有必要,允許在媒體播放期間更改容器格式", + "OptionAllowMediaPlaybackTranscodingHelp": "限制對轉碼的存取將停用品質選擇,並可能因不支援的媒體格式或網路頻寬不足而導致 Emby 應用程式播放失敗。", + "LabelRemoteClientBitrateLimit": "網路串流位元速率限制 (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "套用於所有外網裝置的串流位元率限制 (非強制;以每條串流計算),即使有關裝置的使用者在播放器選用高畫質設定,網絡串流的質素依然會受限制。此設定有助防止外網裝置所總要求頻寬超出伺服器網路連線的頻寬,但就可能導致伺服器因要為視訊即時轉碼而增加 CPU 負荷。", + "LabelUserRemoteClientBitrateLimitHelp": "進階伺服器設定中會覆蓋預設全域設定值", + "OptionEnableFullSpeedConversion": "允許全速轉檔", + "OptionEnableFullSpeedConversionHelp": "轉檔預設低速,以減低資源消耗。", + "OptionEnableAutomaticServerUpdates": "啟用自動更新伺服器", + "HeaderTVSources": "電視源", + "HeaderAddTvSource": "新增電視源", + "LabelTunerIpAddress": "調頻器 IP 地址", + "HeaderGuideProviders": "節目表資料來源", + "HeaderAddGuideSource": "新增節目表資料來源", + "LabelZipCode": "郵政編號", + "LabelLineup": "排隊", + "LabelImportOnlyFavoriteChannels": "限制標記為收藏的頻道", + "ImportFavoriteChannelsHelp": "啟用此選項的話,則只會匯入調頻器上獲標為喜愛頻道的頻道。", + "HeaderDefaultRecordingSettings": "預設錄影設定", + "LabelDisplayName": "顯示名稱", + "OptionDownloadImagesInAdvance": "提前下載圖片", + "OptionDownloadImagesInAdvanceHelp": "Emby 應用程式預設僅在需要顯示圖像時下載相關圖像。如果啟用此選項,則會在匯入媒體時預先下載相關圖像,這可能導致掃描媒體庫的所需時間顯著變長。", + "MessageThankYouForSupporting": "感謝您支持Emby。", + "FileReadCancelled": "文件讀取已被取消。", + "FileNotFound": "找不到文件。", + "FileReadError": "讀取文件時發生錯誤。", + "NoPluginConfigurationMessage": "該插件沒有可配置的設定。", + "HeaderNewApiKey": "新 API 密鑰", + "HeaderNewApiKeyHelp": "授予應用程式與 Emby 伺服器通訊的權限。", + "MessageKeyEmailedTo": "密鑰已透過電子郵件發送至 {0}。", + "HeaderConfirmation": "確認", + "MessageKeyUpdated": "謝謝。您的 Emby Premiere 金鑰已更新。", + "MessageKeyRemoved": "謝謝。您的 Emby Premiere 金鑰已被刪除。", + "TextEnjoyBonusFeatures": "享受更多功能", + "MessageErrorLoadingSupporterInfo": "載入 Emby Premiere 資訊時發生錯誤。請稍後再試。", + "ValueTimeLimitSingleHour": "時間限制:1小時", + "ValueTimeLimitMultiHour": "時間限制:{0}小時", + "General": "一般", + "HeaderScreenSavers": "螢幕保護程式", + "Reporting": "報告中", + "LabelStopping": "停止中", + "HeaderSelectCertificatePath": "選擇證書路徑", + "HeaderSupporterBenefit": "持有有效 Emby Premiere 訂閱計劃,就可以享用額外專屬功能,包括 Emby DVR (數碼電視錄影服務)、離線播放、專屬外掛程式等。歡迎{0}了解詳情{1}。", + "LabelAbortedByServerShutdown": "(因伺服器關機而中止運行)", + "LabelScheduledTaskLastRan": "上次執行時間 {0},耗時 {1}。", + "HeaderDeleteTaskTrigger": "刪除工作引發點", + "MessageDeleteTaskTrigger": "確定要刪除此工作引發點嗎?", + "MessageNoPluginsDueToAppStore": "要管理外掛程式,請使用 Emby 網頁程式。", + "LabelVersionInstalled": "已安裝 {0}", + "HeaderSelectServerCachePath": "選擇伺服器緩存資料夾路徑", + "HeaderSelectTranscodingPath": "選擇臨時轉碼資料夾路徑", + "HeaderSelectMetadataPath": "選擇媒體中繼資料夾路徑", + "HeaderSelectServerCachePathHelp": "請以瀏覽或直接輸入方式指定伺服器緩存資料夾的路徑;請確保 Emby 程式持有有關資料夾的寫入權限。", + "HeaderSelectTranscodingPathHelp": "請以瀏覽或直接輸入方式指定臨時轉碼資料夾的路徑;請確保 Emby 程式持有有關資料夾的寫入權限。", + "HeaderSelectMetadataPathHelp": "請以瀏覽或直接輸入方式指定媒體中繼資料夾的路徑;請確保 Emby 程式持有有關資料夾的寫入權限。", + "MessageConfirmRestart": "您確認重新啟動伺服器?", + "MessageConfirmShutdown": "您確定要關閉 Emby 伺服器嗎?", + "LabelLocalAccessUrl": "家居網絡取用:{0}", + "LabelRemoteAccessUrl": "遠程(WAN)訪問:{0}", + "LabelRunningOnPort": "於 http 連接埠 {0} 運行", + "LabelRunningOnPorts": "於 http {0} 及 https {1} 連接埠運行", + "LabelCurrentPath": "現時路徑", + "HeaderSelectMediaPath": "選擇媒體路徑", + "HeaderSelectPath": "選擇資料夾路徑", + "MessageDirectoryPickerInstruction": "如果“網絡”按鈕找不到您的設備,可以手動輸入網絡路徑。例如,{0} 或 {1}。", + "MessageDirectoryPickerBSDInstruction": "在 BSD 環下,你或需要在 FreeNAS Jail 內調整檔案儲存設定,讓 Emby 存取。", + "MessageDirectoryPickerLinuxInstruction": "在 Linux 環境下 (包括 Arch Linux、CentOS、Debian、Fedora、OpenSuse 和 Ubuntu),你必須至少給予 Emby 系統使用者「讀取」你檔案儲存位置的權限。", + "MetadataManager": "中繼資料管理員", + "OptionBlockLiveTvChannels": "電視直播頻道", + "OptionBlockChannelContent": "網路頻道內容", + "ButtonRevoke": "撤銷", + "MessageConfirmRevokeApiKey": "你確定要撤銷此 API 金鑰嗎?Emby 伺服器與有關應用程式的連結將在撤銷確認後隨時中斷。", + "HeaderConfirmRevokeApiKey": "撤銷 Api 金鑰", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "繼續之前,請先接受服務條款。", + "HeaderChangeFolderType": "更改媒體類型", + "HeaderChangeFolderTypeHelp": "要更改媒體類型,請先刪除本媒體庫,然後以你希望使用的媒體類型建立新的媒體庫。", + "HeaderAlert": "警示", + "MessagePleaseRestart": "請重新啟動來完成更新", + "OptionHomeVideos": "個人影片和照片", + "OptionBooks": "書籍", + "HeaderMetadataReaders": "中繼資料讀取器", + "LabelMetadataReadersHelp": "啟用自訂的元資料來源,以及各自訂來源的優次。", + "HeaderSubtitleDownloaders": "字幕檔案下載器", + "SubtitleDownloadersHelp": "請啟用字幕檔案下載器,並按喜好指定不同下載器的優先次序;「Emby 外掛程式目錄」有更多字幕檔案提供者可供安裝。", + "LabelMetadataDownloaders": "元資料下載器", + "LabelMetadataDownloadersHelp": "啟用媒體屬性下載器的優先次序,愈下次序只會用來填補缺少的信息。", + "HeaderMetadataSavers": "中繼資料儲存器", + "LabelMetadataSaversHelp": "請選擇中繼資料的檔案格式。", + "LabelImageFetchers": "媒體圖像獲取器", + "LabelImageFetchersHelp": "啟用媒體圖片獲取程式的優先次序", + "PersonTypePerson": "人物", + "HeaderRemoveMediaLocation": "移除媒體位置", + "MessageConfirmRemoveMediaLocation": "你確定要移除此位置嗎?", + "LabelNewName": "新名稱", + "HeaderRemoveLibrary": "移除媒體庫", + "MessageAreYouSureYouWishToRemoveLibrary": "你確定要從 Emby 伺服器中移除 {0} 媒體庫嗎?相關的媒體檔案則不會被刪除。", + "ButtonRename": "重新命名", + "HeaderPluginInstallation": "外掛程式安裝", + "MessageTrialExpired": "此功能的試用期經已結束", + "MessageTrialWillExpireIn": "此功能的試用期將於 {0} 日後結束", + "ValuePriceUSD": "價格:{0} (美金)", + "MessageFeatureIncludedWithSupporter": "功能登記成功,要繼續使用此功能,請訂閱 Emby Premiere。", + "HeaderSelectExternalPlayer": "選擇外部播放器", + "HeaderExternalPlayerPlayback": "外部播放器播放", + "HeaderThankYou": "多謝", + "HeaderSelectUploadPath": "選擇上傳資料夾路徑", + "ErrorMessageStartHourGreaterThanEnd": "完結時間必須遲於開始時間。", + "MessagePluginConfigurationRequiresLocalAccess": "要設定此外掛程式,請直接登入你私用網絡上的伺服器。", + "MovieLibraryHelp": "查看 {0}Emby 電影命名指南{1}。", + "TvLibraryHelp": "查看 {0}Emby 電視節目命名指南{1}。", + "BookLibraryHelp": "支援課本,詳情請參閱 {0}Emby 書籍命名指南{1}。", + "MessageGamePluginRequired": "此功能需要安裝 GameBrowser 外掛程式。", + "HeaderUnlockApp": "解鎖應用程式", + "MessagePaymentServicesUnavailable": "現時無法提供付款服務,請稍後再試。", + "NoNewDevicesFound": "找不到新裝置;要新增調頻器的話,請先關閉此對話匣,然後手動輪入裝置資料。", + "MessageConfirmDeleteTunerDevice": "確定要刪除此裝置嗎?", + "MessageConfirmDeleteGuideProvider": "確定要刪除此節目表提供者嗎?", + "HeaderDeleteProvider": "刪除提供者", + "ErrorAddingTunerDevice": "新增調頻器發生錯誤。請檢查調頻器與系統是否妥善連接,然後重試。", + "ErrorSavingTvProvider": "新增電視服務供應者發生錯誤。請檢查供應者與系統是否妥善連接,然後重試。", + "ErrorGettingTvLineups": "下載電視頻道清單發生錯誤。請檢查所輸入的資料,然後重試。", + "MessageCreateAccountAt": "於 {0} 建立帳戶", + "ErrorPleaseSelectLineup": "請重新選擇電視頻道清單。如果並看不到頻道清單,則請檢查所輸入的用戶名稱、密碼及郵政編號是否正確。", + "ErrorValidatingSupporterInfo": "核實 Emby Premiere 訂閱資訊時發生錯誤,請稍後再試。", + "LabelLocalSyncStatusValue": "狀態:{0}", + "HeaderTopPlugins": "榜首外掛程式", + "ForAdditionalLiveTvOptions": "請瀏覽 Emby {0}插件目錄{1} 以安裝其他直播電視供應者。", + "AddUser": "加入用戶", + "HeaderEmailAddress": "電郵地址", + "NumLocationsValue": "{0}個文件夾", + "PleaseAddAtLeastOneFolder": "請按一下「新增」按鈕,為此媒體庫新增至少一個資料夾。", + "ErrorAddingMediaPathToVirtualFolder": "新增媒體路徑時發生錯誤。請查所輸入路徑,並確保 Emby 的伺服器進程可以存取該位置。", + "ErrorAddingEmbyConnectAccount3": "Emby 帳戶已連結至本機其中一位使用者,一個 Emby 帳戶只能連結一個本機使用者。", + "HeaderConfirmPluginInstallation": "確認外掛程式安裝", + "PleaseConfirmPluginInstallation": "請按 OK 按鈕,以確認你已閱讀上列資訊,並同意安裝外掛程式。", + "MessagePluginInstallDisclaimer": "由 Emby 社群成員編寫的附加元件為 Emby 增添額外功能,使您的 Emby 體驗更佳。在安裝附加元件之前,請注意它們可能對您的 Emby 伺服器有負面影響,例如:掃描媒體庫的時間變長、背景處理負擔更重、系統穩定性降低等。", + "HardwareAccelerationWarning": "啟用硬體加速可能會導致系統不穩定,請確保您的作業系統和顯示卡驅動程式都已更新至最新版本。如果啟用此功能後播放影片出現問題,請將設定改回「自動」。", + "ValueExample": "例如:{0}", + "LabelFileOrUrl": "檔案或網址", + "OptionEnableForAllTuners": "於所有調頻器啟用", + "HeaderTuners": "調頻器", + "DrmChannelsNotImported": "不會匯入含有數碼版權管理 (DRM) 的頻道", + "LabelAllowHWTranscoding": "使用硬件轉碼", + "AllowHWTranscodingHelp": "啟用此選項的話,調頻器就會為媒體串流進行即時轉碼,以減少 Emby Server 的轉碼負擔。", + "MetadataSettingChangeHelp": "更改媒體元資料,會影響未來新增的媒體內容。若要重新整理現有內容,請打開「詳細資料」畫面並按一下「重新整理」按鈕;您亦可以使用媒體元資料管理員作批量整理。", + "RecordingPathChangeMessage": "錄影資料夾變更後,現有的錄影檔並不會移往新資料夾。有需要的話,請自行移動相關錄影檔。", + "LabelLocalIpAddress": "本機 IP 位址", + "LabelBindToLocalNetworkAddressHelp": "(選填項) 指定 Emby Server 向 Emby 應用程式展示的本機 IP 位址,以淩駕自動偵測的位址。本欄留空的話,則會使用自動偵測的位址。", + "SettingsWarning": "更改本欄的設定值可能導致系統不穩定或連接失敗,如果系統在更改後出現問題,請恢復為預設值。", + "OptionSaveMetadataAsHiddenHelp": "更改此設定,會影響未來新增的媒體元資料;現有的元資料將會在下次 Emby Server 存檔時更新。", + "EnablePhotos": "啟用相片", + "EnablePhotosHelp": "相片將獲偵測,並與其他媒體一併顯示。", + "ImportPlaylists": "匯入播放清單", + "ImportPlaylistsHelp": "在媒體資料夾中的播放清單,可匯入至 Emby 伺服器。", + "SaveThumbnailImagesIntoMediaFolders": "儲存影片預覽縮圖於媒體資料夾內", + "LabelGenerateVideoPreviewThumbnails": "生成影片預覽縮圖", + "LabelEnableDebugLogging": "啟用記錄除錯日誌", + "OptionEnableExternalContentInSuggestions": "允許推薦內容提供外部內容", + "OptionEnableExternalContentInSuggestionsHelp": "允許推薦內容包含網路預告片和直播電視節目。", + "LabelOptionalNetworkPath": "(選填項) 共享的網絡文件夾", + "LabelOptionalNetworkPathHelp": "如果此文件夾在您的網絡上共享,則提供網絡共享路徑可以使 Emby 應用程序在其他設備上直接訪問媒體文件。", + "SynologyUpdateInstructions": "請登入 DSM 並進入套件中心更新軟件。", + "HeaderRecordingPostProcessing": "錄影後處理", + "LabelPostProcessorArguments": "後處理器指令行參數", + "PostProcessorArgumentsHelp": "為傳遞資料到後處理器,指令行支援以下參數", + "LabelPostProcessor": "後處理器應用程式", + "DvrPostProcessorPathArgument": "{path}:新錄影檔的完整路徑", + "OptionAutomaticallyGroupSeries": "自動合併分佈在多個資料夾中的系列", + "OptionAutomaticallyGroupSeriesHelp": "啟用此選項的話,分佈在多個資料夾內屬同一系列的項目,將在此媒體庫自動合併成為單一系列。", + "WhenDidYouPurchaseApp": "您最初在何時購買此應用程式?", + "PreferEmbeddedTitlesOverFileNames": "優先以嵌入標題取代檔案名稱", + "PreferEmbeddedTitlesOverFileNamesHelp": "此選項指定當沒有可用網路或本機元資料時,預設顯示的標題。", + "FriendlyNameForReferenceHelp": "供您自己參考的友善顯示名稱。", + "HeaderLiveTvTunerSetup": "直播電視調頻器設定", + "HeaderTVSourceSetup": "電視源設定", + "HeaderDetectMyDevices": "偵測裝置", + "MessagePleaseWait": "請稍候。這可能需要一些時間。", + "DetectingDevices": "偵測裝置中", + "LabelAutomaticallyRefreshInternetMetadataEvery": "首次匯入後,自動從網絡更新元數據。", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "以臨時標題 (例如「待定」) 自動更新集數的元資料", + "EveryNDays": "每 {0} 日", + "LabelCertificatePassword": "證書密碼", + "LabelCertificatePasswordHelp": "如果您的證書需要密碼,請在此輸入。", + "HeaderNewLibrary": "新媒體庫", + "HttpsRequiresCert": "要啟用安全連接,您將需要提供受信任的SSL證書,例如Lets Encrypt。請提供證書或禁用安全連接。", + "ServerRestartNeededAfterPluginInstall": "安裝外掛程式後,Emby 伺服器需要重新啟動。", + "PluginInstalledMessage": "該插件已成功安裝。Emby 伺服器需要重新啟動才能生效。", + "MessagePremiereStatusGood": "您擁有 {0} Emby Premiere 計劃;裝置使用量未達上限。", + "MessagePremiereStatusClose": "您擁有 {0} Emby Premiere 計劃;請注意:裝置使用量接近上限。", + "MessagePremiereExtendedPlans": "請考慮訂閱 {0}額外裝置計劃{1}", + "MessagePremiereStatusOver": "您擁有 {0} Emby Premiere 計劃;請注意:裝置使用量已超出上限!", + "ListItemPremiereSub": "經 {2} 購買 {0} 訂閱,於 {1} 失效", + "LabelClickToManage": "點擊管理此訂閱", + "LabelCancelInfo": "可經 {0} 直接管理訂閱", + "LabelAlreadyCanceled": "訂閱已取消,產品密鑰於訂閱屆滿日期前仍然有效。", + "HeaderCancelSub": "取消 Emby Premiere", + "MessageConfirmSubCancel": "不,請不要離開...您會錯過 Emby Premiere 的所有強大功能!", + "ButtonCancelSub": "我明白,而我依然要取消", + "ButtonDontCancelSub": "保留 Emby Premiere 會員", + "MessageSubCancelReqSent": "已發送電郵予密鑰擁有者,請按照所載的步驟完成取消訂閱的程序。我們期待您將來再次訂閱!", + "MessageSubCancelError": "嘗試取消時出現問題,請發送電子郵件至 {0} 以獲得技術支援。", + "LabelAlreadyCancelled": "訂閱已取消,您不會再被扣款,而在上列日期前您仍然可以使用額外功能。", + "AllowOnTheFlySubtitleExtraction": "容許即時抽取字幕", + "AllowOnTheFlySubtitleExtractionHelp": "Emby 伺服器可以抽取影片中的內嵌式字幕成為純文字,以傳送到 Emby 應用程式,以減少影片轉碼的需要。這操作可能需要較長時間,並可能導致影片播放時出現停頓。如果使用者的裝置不支援嵌入字幕,則請停用此功能,讓Emby 伺服器在影片轉碼時刻錄嵌入式字幕到影片上。", + "AllowOnTheFlyFontExtraction": "Allow subtitle font extraction on the fly", + "AllowOnTheFlyFontExtractionHelp": "Embedded fonts can be extracted from videos and delivered to Emby apps in order to support videos containing custom fonts. On some systems this can take a long time and cause video playback to stall during the extraction process.", + "EnableDebugLoggingHelp": "除錯日誌應只在排除故障時啟用;使用除錯日誌會增加檔案系統的存取量,或會導致伺服器無法休眠。", + "LabelSimultaneousConnectionLimit": "同時串流上限", + "SimultaneousConnectionLimitHelp": "允許同時串流的最大數量。 0 為無限制。", + "LaunchWebAppOnStartup": "Emby 伺服器啟動時,在網頁瀏覽器打開 Emby 網頁應用程式", + "LaunchWebAppOnStartupHelp": "此選項讓 Emby 伺服器首次啟動時,通過您系統預設的瀏覽器開啟網頁版 Emby 程式。此選項對重新啟動伺服器無效。", + "LabelReferrerHeader": "HTTP 參照位址頭欄值", + "LabelUserAgentHeader": "使用者代理 HTTP 頭欄值", + "SupplyCustomValueIfNeeded": "如有需要,請輸入自訂的 HTTP 頭欄值", + "HeaderConfigureRemoteAccess": "配置遠程訪問", + "LearnHowToCreateSynologyShares": "了解如何在Synology中共享文件夾。", + "LabelAllowedRemoteAddresses": "遠端 IP 位址過濾器", + "LabelAllowedRemoteAddressesMode": "遠端 IP 位址過濾模式", + "Whitelist": "白名單", + "Blacklist": "黑名單", + "AllowedRemoteAddressesHelp": "列出允許或禁止連接的遠端 IP 位址或遠端 IP 位址/網罩,並以逗號分隔;留空此欄的話,則表示允許所有遠端位址。", + "LabelLanNetworks": "區域網絡", + "LanNetworksHelpText": "列出在啟用頻寛及遠端存取限制時,需要視作本地網絡處理的 IP 位址或遠端 IP 位址/網罩,並以逗號分隔;留空此欄的話,伺服器所處的網罩,以及常用的本地網絡 IP 位址 (192.168.0.0/24, 172.16.0.0/12 等) 將視為本地網絡。", + "LabelSecureConnectionsMode": "安全連接模式", + "PreferredNotRequired": "首選,但不是必需的", + "RequiredForAllRemoteConnections": "所有遠程連接都需要", + "HandledByProxy": "由反向代理伺服器處理", + "SaveSubtitlesIntoMediaFolders": "儲存所下載的字幕到媒體所屬的資料夾", + "SaveSubtitlesIntoMediaFoldersHelp": "把字幕儲存到相關媒體所屬的資料夾有助檔案管理。", + "AutomaticSubtitleDownloadInstructions": "要管理自動字幕下載,請在「Emby 媒體庫設定」選取所需的媒體庫,然後更改該媒體庫的字幕下載設定。", + "ProviderNeedsSetupWithUrl": "{0}需要在 Emby 伺服器的{1}設定頁{2}進行額外設定。", + "LabelEnableHardwareAcceleration": "啟用可用的硬件加速", + "HeaderPreferredHardwareDecoders": "首選硬件解碼器", + "HeaderPreferredHardwareEncoders": "首選硬件編碼器", + "AllowChangingImageAndPassword": "允許該用戶更改密碼和頭像", + "LabelSimultaneousStreamLimit": "最大同時影片串流數量", + "SimultaneousStreamLimitHelp": "限制同時播放的影片數量。", + "LabelMusicFolderStructure": "音樂資料夾架構", + "LabelMusicFolderStructureHelp": "讓媒體庫掃描器得知資料夾的架構。如果不確定架構,或者資料夾與所選的類型選項不匹配的話,請選擇預設的「其他類型」選項。", + "OtherOrUnstructured": "其他類型,或沒有架構", + "PerfectArtistAlbumTrack": "歌曲妥善地以「歌手\\專輯」資料夾的方式分類,當中歌曲儲存於相應的「專輯」資料夾內。", + "PerfectAlbumTrack": "歌曲妥善地以「專輯」資料夾的方式分類,當中歌曲儲存於相應的「專輯」資料夾內。", + "LabelMinCollectionSize": "最小自動合輯容量:", + "PerfectAuthorAudioBookTrack": "有聲書妥善地以「作者\\書籍」資料夾的方式分類,當中有聲書聲軌儲存於相應的「書籍」資料夾內。", + "PerfectAudioBookTrack": "有聲書妥善地以「書籍」資料夾的方式分類,當中有聲書聲軌儲存於相應的「書籍」資料夾內。", + "MinCollectionSizeHelp": "當在資料庫中,勾選標題達到一定數量,會自動產生合輯。更動該數量的數值,不會影響現有的選集。", + "LabelImportCollections": "從中繼資料匯入合輯資訊", + "LabelImportCollectionsHelp": "當啟用時,將會從啟用的中繼資料下載源,匯入合輯資訊。這有可能造成非必要合輯也自動產生。關閉此功能可防止未來自動產生合輯,且不會刪除現存的合輯。", + "LabelAllowAdultMetadata": "允許含成人內容的元資料", + "LabelAllowAdultMetadataHelp": "從互聯網搜尋元資料時,允許匹配含成人內容的標題。", + "HeaderVideoPreviewThumbnails": "影片預覽縮圖", + "LabelEnableHDRToneMapping": "啟用 HDR 色調映射", + "EnableHDRToneMappingHelp": "「色調映射」確保 HDR 影片在轉碼後保持正確色彩;不使用此功能的話,轉碼後的影片可能會變得色彩暗淡,飽和度不足。此功能可能需要額外的驅動程式以支援硬件加速,詳情請參閱《硬件加速設定指南》。", + "WithHardwareAcceleratedTranscoding": "只在有硬件加速時啟用", + "TranscodingStillInitializing": "Emby 伺服器轉碼服務仍在啟動中,當轉碼服務準備就緒時,本網頁會自動更新。", + "WithEitherHardwareOrSoftwareTranscoding": "是,使用硬件或軟件轉碼", + "ToneMappingInHardwareDescription": "如果硬件加速選項啟用而系統有相關硬件支援的話,色調映射就會利用相關硬件加速執行,否則會不執行色調映射。", + "ToneMappingInSoftwareDescription": "色調映射會以軟件方式利用 CPU 執行;以軟件方式執行色調映射,速度會較硬件加速方式慢,並需要大量伺服器系統資源。", + "ToneMappingInBothDescription": "如果硬件加速選項啟用而系統有相關硬件支援的話,色調映射就會利用相關硬件加速執行,否則會以軟件方式執行。以軟件方式執行色調映射,速度會較硬件加速方式慢,並需要大量伺服器系統資源。", + "AutoMapped": "自動映射", + "ManuallyMapped": "手動映射", + "NotMappedToGuideData": "不根據導引資料映射", + "MappedToValue": "映射至{0}", + "LabelAutomaticallyWakeServerForRecordings": "自動喚醒伺服器以執行錄影工作。", + "LabelAutomaticallyWakeServerForRecordingsHelp": "喚醒事件將由伺服器的作業系統排程;停用此選項的話,未來的喚醒事件將不會排程,先前已排程的事件則不受影響。", + "Database": "資料庫", + "LabelOptimizeDatabaseOnShutdown": "嘗試在伺服器關機時優化資料庫", + "LabelOptimizeDatabaseOnShutdownHelp": "資料庫優化操作一般不會執行。不過,系統會不時分析資料庫的狀況,當分析結果指出優化會對查詢規劃程式有用時,就會執行優化操作。資料庫優化操作或會導致 Emby 伺服器需要更長時間關機。", + "LabelDatabaseCacheSize": "資料庫快取大小 (MB)", + "LabelDatabaseCacheSizeHelp": "設定在記憶體中保留作快取的資料量 (以每個資料庫檔案計算)。快取愈大,Emby 伺服器的效能或會愈高。此設定需要重新啟動伺服器才能生效。", + "LabelDatabaseAnalysisLimit": "資料庫分析行數上限", + "LabelDatabaseAnalysisLimitHelp": "優化資料庫時,此數值指定 ANALYZE 指令在每個索引中檢查的大致行數。數值愈大,資料庫優化的效果愈好;不過, Emby Server 會需要更長時間關閉。", + "LabelVacuumDb": "下次啟動 Emby 伺服器時重組資料庫", + "LabelVacuumDbHelp": "重組資料庫會重新組建資料庫檔案,有助減少所佔用空間,並可能提高 Emby 伺服器的效能。請注意:資料庫重組期間 Emby 伺服器將暫停服務,而且不能檢視資料庫的重組進度;請避免在重組期間強制關閉 Emby 伺服器進程,以免損壞資料庫。資料庫重組為一次過的操作,下次伺服器啟動時此選項將恢復為未選取狀態。", + "AdvancedOptionsWarning": "此為進階選項,除非您有明確理由更改,否則應使用預設選項。", + "HeaderRecentlyActiveDevices": "最近使用的裝置", + "YesUntilServerRestart": "直至伺服器下次重新啟動時,才啟用", + "YesUntilLogRotate": "直至下次記錄檔輪替時,才啟用", + "LabelSubtitleDownloadMaxAge": "對於舊於下列時間的影片,停止自動嘗試下載字幕", + "SubtitleDownloadMaxAgeHelp": "根據元資料的「加入日期」而定。", + "NoAgeLimit": "無年齡限制", + "AnonymizeLogContents": "匿名化日誌內容", + "Markers": "標記", + "LabelGenerateIntroVideoMarkers": "生成片頭位置標記", + "GenerateIntroVideoMarkersHelp": "偵測片頭的位置,並讓 Emby 應用程式顯示「跳過片頭」按鈕。片頭偵測可能需要很長時間並使用大量 CPU 或磁碟資源。", + "LabelCopyFromUser": "從現有使用者複製設定", + "CopyFromUserHelp": "(選填項) 從現有使用者複製設定,以縮短建立新使用者的流程。", + "UserPolicy": "使用者政策 (媒體庫與功能取用、家長控制等)", + "UserConfiguration": "使用者設定 (聲軌及字幕偏好、媒體庫排序等)", + "UserDataAndDescription": "使用者資料 (喜愛項目、觀看與耹聽狀態等)", + "HeaderCopyOptions": "複製選項", + "LabelMultiRestrictionMode": "多重限制模式", + "MultiRestrictionModeAll": "允許同時符合等級及標籤限制的內容", + "MultiRestrictionModeAny": "允許符合等級或標籤限制的內容", + "AllowMappingByChannelNumber": "允許以頻道號碼對應節目表資料", + "AllowMappingByChannelNumberHelp": "此設定可視作後備選項 ─ 當頻道名稱配對不了相應的節目表資料時,會改以調諧器所載的頻道號碼配對節目表資料。請注意:如果調諧器所載的頻道號碼不正確,會導致錯誤配對的情況。", + "LabelPreferredSourceForChannelLogos": "如果節目表資料及調諧器都能提供頻道標誌,偏好使用節目表資料所提供的版本", + "LabelPreferredSourceForChannelNumbers": "如果節目表資料及調諧器都能提供頻道號碼,偏好使用節目表資料所提供的版本", + "HeaderSoftwareEncoders": "軟件編碼器", + "LabelProxyHeaderMode": "通過讀取代理伺服器的頭欄資料,判斷用戶端的位址", + "ProxyHeadersRemoteOnly": "只限當其包含遠端網址時", + "ProxyHeaderModeHelp": "指定譬如 {0} 及 {1} 的連線請求會否用於判斷所連線裝置的 IP 位址。", + "AllowCameraUpload": "允許相片上載", + "AllowCameraUploadHelp": "同時在伺服器及 Emby 流動程式啟用此設定的話,使用者利用其流動裝置所拍的相片及影片會自動上載至伺服器。", + "CameraUploadMustBeGranted": "您必須同時獲系統管理員授權使用相機上載功能。", + "EnableReadingAndWritingPeopleMetadata": "允許讀寫人物元資料檔案", + "EnableReadingAndWritingPeopleMetadataHelp": "讓您把人物元資料的修改儲存至 NFO 元資料檔案;此功能需要安裝 NFO 元資料插件,並且會加長媒體庫的掃瞄時間。", + "LabelIgnoreSampleFiles": "如果檔案小於以下大小 (MB),略過其檔案名稱中的字詞樣本", + "PreferredChannelImageSource": "偏好的頻道圖片來源", + "PreferredChannelImageSourceHelp": "當調諧器和節目表資料都能提供頻道標誌圖片,選擇偏好的版本。", + "CacheImagesInServerData": "在伺服器的元資料資料夾保留圖片的快取複本", + "CacheImagesInServerDataHelp": "如果您的媒體和圖片是存於另一台機器上的話,在伺服器的元資料資料夾保留圖片的快取複本能減少網路存取,提高伺服器的效能。請注意:建立此快取的話,媒體庫的掃描速度會變慢,伺服器元資料資料夾亦會佔用更多空間。", + "AllowSharingPersonalContent": "允許與此伺服器上的其他使用者共享個人內容 (例如:播放清單)", + "AllowSharingPersonalContentHelp": "獲授權使用本功能的話,本使用者將能夠與其他使用者分享其播放清單。不過,能否播放清單內的項目,依然取決於使用者媒體庫的存取權限以及家長控制。", + "LiveBufferSizeHours": "直播串流緩衝上限 (小時)", + "LiveBufferSizeHoursHelp": "更長的緩衝區將提供在直播串流中快進或倒後更大的幅度,但會消耗更多的磁碟空間。", + "LabelTranscodingMaxResolution": "最高轉碼解像度", + "TranscodingMaxResolutionHelp": "不論 Emby 播放器的播放品質設定如何,所有影片轉碼的最高解像度都會按本設定的數值進行。本設定有助減少伺服器轉碼所需的資源。", + "EnableHevcEncodingExp": "啟用 HEVC 影片編碼 (實驗性功能)", + "EnableHevcEncodingHelp": "用戶端支援的話,則使用 HEVC 編解碼器為影片轉碼。", + "LabelEnableMultiPartItems": "啟用多部分項目", + "EnableMultiPartItemsHelp": "自動偵測並將名稱中含有 \"part 1\"、\"part 2\" 等的檔案編為同一組;有關部分會於相關媒體的詳細資料頁上列出。", + "MultiVersionItemsDetectionHelp": "自動偵測並將同一項目的不同版本編為同一組;相關媒體的詳細資料頁上會提供相應選單以供選擇。請注意:選擇以檔案分組的話,相關檔案必須妥善地命名和儲存。", + "MultiVersionMoviesDetectionHelp": "以元資料分組的話,有相同外部識別碼的電影 (MovieDB, IMDB 等) 會獲編進同一組。", + "EnableMultiPartItemsTVHelp": "不支援電視節目的集數", + "HeaderAutomaticGrouping": "自動分組", + "LabelMultiVersionItemsDetection": "多版本偵測", + "MultiVersionItemsDetectionBoth": "按檔案及元資料偵測項目是否具有多個版本", + "MultiVersionItemsDetectionFiles": "按檔案偵測媒體項目是否具有多個版本", + "MultiVersionItemsDetectionMetadata": "按元資料偵測項目是否具有多個版本", + "LabelNetworkRequestProtocol": "Network request protocol", + "NetworkRequestProtocolHelp": "Choose the protocol to use for outgoing network requests to metadata providers and other services. In some cases when external services can't be reached using IPv6, you may need to set this to IPv4 only.", + "GenerateChaptersForVideos": "Generate chapters for videos that don't contain embedded chapter information", + "GeneratedChapterInterval": "Generated chapter interval", + "StartOfSection": "Start of chapter", + "Margins": "Margins", + "NextPage": "Next page", + "PreviousSection": "Previous chapter", + "LayoutVertical": "Vertical scroll", + "ZoomIn": "Zoom in", + "PageNarrow": "Narrow", + "PreviousPage": "Previous page", + "PageMaximized": "Maximized", + "ZoomOut": "Zoom out", + "PageBook": "Double page", + "LabelPageSize": "Page Size", + "PositionInBook": "Position in the book", + "CurrentPage": "Current page", + "LayoutDouble": "Double page", + "TableOfContents": "Table Of Contents", + "PageSingle": "Single page", + "TotalPages": "Total pages", + "ZoomNone": "Default zoom", + "LayoutPage": "Single page", + "NextSection": "Next chapter", + "ZoomAutoFit": "Fit page", + "RightToLeft": "Right-to-left order", + "LetsGetSetup": "Let's Get Set Up", + "HeaderIgnoreFiles": "Ignore Files", + "EnablePlexIgnoreAlias": "Enable support for .plexignore files as an alias to .embyignore", + "HeaderMaintenanceMode": "Maintenance Mode", + "OptionEnableMaintenanceMode": "Put the server into maintenance mode", + "MaintenanceModeMessageHelp": "If left blank, a general message stating that the server is undergoing maintenance will be displayed and translated based on the user's display language.", + "ServerInMaintenanceMode": "Emby Server is currently running in maintenance mode. Users will only be able to see a maintenance mode message until you take the server out of maintenance mode.", + "MaintenanceModeMessage": "Maintenance mode message", + "EnableMaintenanceModeHelp": "Users will only see the maintenance mode message.", + "ExcludeFromGlobalSearch": "Exclude from global search", + "MergeTopFoldersInFolderView": "Merge the contents of the top level folders when using folder view", + "MergeTopFoldersInFolderViewHelp": "If enabled, the contents of the top level folders will be merged and displayed as one combined folder when using folder view. If disabled, the top level folders will be displayed as the first level in folder view.", + "OptionAllowTranscodingToReduceQuality": "Allow transcoding to reduce quality, based on the app quality setting, during media playback", + "LabelAutoRemoteQuality": "Auto remote streaming quality (Mbps)", + "AutoRemoteQualityHelp": "An optional streaming quality for this user when they have the player set to auto quality. This will override any automatic quality detection for this user on all devices.", + "FolderScanningModeHelp": "Changing this option will result in a full rescanning of the library and may cause loss or changes to existing metadata.", + "LegacyFolderScanningModeHelp": "The older scanning that will attempt to consolidate folders containing only a single video into one layer. This may not work well when used in conjunction with other Emby features such as extras, multi-version videos, or ignoring files.", + "LabelFolderScanningMode": "Folder scanning mode", + "Legacy": "Legacy" +} diff --git a/strings/zh-TW.json b/strings/zh-TW.json new file mode 100644 index 0000000..7bffdd7 --- /dev/null +++ b/strings/zh-TW.json @@ -0,0 +1,622 @@ +{ + "LabelYoureDone": "您已完成!", + "ThisWizardWillGuideYou": "此引導精靈將協助您完成設定 Emby 伺服器。", + "HeaderCreateYourFirstUser": "建立您的第一位使用者帳號", + "ButtonQuickStartGuide": "快速入門指引", + "MoreUsersCanBeAddedLater": "稍後可在 Emby 伺服器設定中新增更多使用者。", + "UserProfilesIntro": "Emby 內建帳號管理功能,每位使用者都可以擁有自己的顯示設定、播放記錄和家長控制狀態。", + "WizardCompleted": "這就是所需的全部資訊,Emby 將會開始掃描您的媒體庫內容。不妨參考我們推出的應用程式,按下完成檢視伺服器總覽。", + "MessagePleaseAcceptTermsOfService": "使用前,請先接受使用條款及隱私權政策。", + "OptionIAcceptTermsOfService": "我接受使用條款", + "SeeOurHwaGuide": "檢視我們的 {0} 硬體加速設定說明 {1}。", + "HeaderEmbyServerReleaseNotes": "Emby 伺服器更新說明", + "AllowSubtitleDownloading": "允許字幕下載", + "AllowSubtitleManagement": "允許刪除現有的字幕文件", + "NewUserNameHelp": "使用者在伺服器上顯示的名稱。", + "ChapterMarkers": "章節標記", + "LabelThumbnailImagesInterval": "縮圖時間間隔", + "ThumbnailImagesIntervalHelp": "縮圖間隔時間越短,瀏覽效果越好,但也會消耗更多硬碟容量和時間建立縮圖。", + "LabelAuthProvider": "認證提供者", + "AuthProviderHelp": "管理員始終使用預設的 Emby 提供者,確保永不被鎖定。", + "HeaderNewUser": "新增使用者", + "ChangeServerDisplayName": "變更伺服器名稱", + "ShowAdvancedSettings": "顯示進階設定", + "ChangingMetadataImageSettingsNewContent": "中繼資料或圖片下載設定的變更僅會套用到新增的媒體內容。若要套用至現有的項目,請手動更新它們的中繼資料。", + "AllowRemoteAccess": "允許遠端連線到此 Emby 伺服器。", + "AllowRemoteAccessHelp": "如未勾選,將阻擋所有遠端連線。", + "Alerts": "警告", + "LabelTrackTitleDisplay": "顯示內嵌音軌名稱", + "GenerateUserFriendlyTrackTitles": "使用音軌資訊產生名稱", + "PreferOriginalTrackTitles": "優先使用內嵌名稱", + "TrackTitleDisplayHelp": "選擇要在播放器中顯示的內嵌音訊與字幕軌名稱。除非您有自行整理過這些資訊,否則不建議使用內嵌軌作為優先來源。", + "EnableTranscodingThrottle": "啟用限制", + "EnableTranscodingThrottleHelp": "讓 Emby 自動調整轉碼速度,降低 CPU 使用率。", + "HeaderTypeMetadataDownloaders": "{0} 中繼資料下載器", + "HeaderTypeImageFetchers": "{0} 影像擷取器", + "HeaderImageOptions": "圖片選項", + "OptionBeta": "Beta", + "RegisterWithPayPal": "以 PayPal 註冊", + "LabelSyncTempPath": "暫存檔案路徑", + "LabelSyncTempPathHelp": "自訂工作區資料夾。轉檔過程所產生的檔案將暫存在此。", + "LabelCustomCertificatePath": "自訂 SSL 憑證存放路徑", + "LabelCustomCertificatePathHelp": "包含憑證和私鑰的 PKCS #12 檔案存放路徑,可用於啟用自訂網域的 TLS 支援。", + "HeaderSetupLibrary": "建立媒體庫", + "LabelTimeLimitHours": "時限(小時)", + "HeaderPreferredMetadataLanguage": "偏好中繼資料語系", + "LabelSaveLocalMetadata": "將封面儲存到媒體資料夾", + "LabelSaveLocalMetadataHelp": "啟用後 Emby 會將封面圖片儲存至對應的媒體資料夾中;若停用則會將圖片儲存於伺服器的中繼資料夾。", + "TabAccess": "存取權限", + "HeaderDeviceAccess": "裝置權限", + "OptionEnableAccessFromAllDevices": "允許所有裝置存取", + "OptionEnableAccessToAllChannels": "允許存取所有頻道", + "OptionEnableAccessToAllLibraries": "允許存取所有媒體庫", + "DeviceAccessHelp": "啟用裝置限制後,使用者將無法使用未獲授權的新裝置存取資料庫。", + "LabelDisplayMissingEpisodesWithinSeasons": "顯示本季缺少的集數", + "LabelDisplayMissingEpisodesWithinSeasonsHelp": "此功能也需要在 Emby 伺服器設定中的電視媒體庫啟用。", + "ImportMissingEpisodesHelp": "啟用後,Emby 會將缺少的集數資訊匯入您的媒體庫,並顯示在季別和電視劇頁面中。這可能會導致媒體庫掃描時間大幅延長。", + "MessageEnablingOptionLongerScans": "啟用此選項會延長媒體庫掃描時間。", + "LabelMaxParentalRating": "最大允許的電影分級", + "MaxParentalRatingHelp": "對此使用者隱藏較高電影分級的內容。", + "LibraryAccessHelp": "選擇要與此使用者共享的媒體資料夾。管理員可使用中繼資料管理員編輯所有文件夾。", + "ChannelAccessHelp": "選擇要與此使用者共享的頻道。管理員可使用中繼資料管理員編輯所有頻道。", + "ImageUploadAspectRatioHelp": "推薦使用長寬比為 1:1 的圖像。只允許JPG/PNG格式。", + "AlreadyPaidHelp1": "如果您曾購買舊安卓版 Media Browser,您無須再次付款即可啟用此應用程式。按下 OK 以寄信給我們 {0},我們將為您啟用此應用程式。", + "AlreadyPaidHelp2": "已購買 Emby Premiere?關閉此對話視窗,前往 Emby 伺服器控制台,找到幫助 -> Emby Premiere 後,輸入金鑰即可自動解鎖付費功能。", + "TabMyPlugins": "我的擴充套件", + "TabCatalog": "目錄", + "HeaderAutomaticUpdates": "自動更新", + "Standard": "標準", + "TabSupporterKey": "Emby Premiere 金鑰", + "OptionHideUserLocal": "在區網登入畫面中隱藏此使用者", + "OptionHideUserRemote": "在遠端登入畫面中隱藏此使用者", + "OptionHideUserFromLoginHelp": "此功能適合用於私人或隱藏的管理員帳號。使用者需要手動輸入使用者名稱與密碼才能登入。", + "HideFromUnusedDevices": "在未曾登入過的裝置中,於登入畫面隱藏此使用者", + "OptionDisableUser": "停用此使用者", + "OptionDisableUserHelp": "被停用的使用者將無法連接至伺服器。既有連線也會被立刻中斷。", + "OptionAllowUserToManageServer": "允許此帳號管理伺服器", + "HeaderFeatureAccess": "可以使用的功能", + "OptionAllowMediaPlayback": "允許播放媒體", + "AllLibraries": "所有媒體庫", + "HeaderAllowMediaDeletionFrom": "允許刪除媒體", + "LiveTVRecordingManagement": "管理網路電視錄影", + "OptionAllowRemoteControlOthers": "允許遠端控制其他使用者", + "OptionAllowRemoteSharedDevices": "允許遠端控制共享裝置", + "OptionAllowRemoteSharedDevicesHelp": "DLNA 裝置在有使用者控制前將會被視為已共享。", + "OptionAllowLinkSharing": "允許社群媒體分享", + "OptionAllowLinkSharingHelp": "只有包含媒體資訊的網頁可共享,媒體檔案永不公開共享。共享有時效性,將在{0}天後過期。", + "OptionRelease": "正式版", + "LabelAllowServerAutoRestartPlugin": "允許伺服器自動重啟以套用擴充套件更新", + "LabelAllowServerAutoRestartServerOrPlugin": "允許伺服器自動重啟以套用伺服器或擴充套件更新", + "LabelAllowServerAutoRestartHelp": "伺服器只會在閒置時重新啟動。", + "LabelRunServerAtStartup": "在系統啟動時自動執行", + "LabelRunServerAtStartupHelp": "在 Windows 啟動時,自動執行 Emby 並最小化至系統工具列。如要以 Windows 服務啟動 Emby 伺服器,請不要勾選此選項。", + "ButtonSelectDirectory": "選擇目錄", + "LabelCachePath": "快取路徑", + "DefaultMetadataLangaugeDescription": "這些為預設值,稍後您可以為每個媒體庫建立個別設定。", + "LabelCachePathHelp": "指定伺服器暫存檔案存放路徑(如:圖像)。留白則使用伺服器預設值。", + "LabelDefaultRecordingFolder": "預設錄影資料夾", + "LabelMovieRecordingFolder": "電影錄影資料夾", + "LabelSeriesRecordingFolder": "電視劇錄影資料夾", + "SeriesRecordingFolderHelp": "請選擇電視劇錄影的預設儲存媒體庫。此媒體庫必須已於 Emby 媒體庫設定中建立,且內容類型需設為「混合」。", + "HeaderProgramData": "節目資訊", + "RecordingFolderHelp": "請選擇影片錄影的預設儲存媒體庫。此媒體庫必須已於 Emby 媒體庫設定中建立,且內容類型需設為「混合」。", + "MovieRecordingFolderHelp": "(非必要)請選擇一個媒體庫來儲存電影錄影。此媒體庫必須已於 Emby 媒體庫設定中建立,且內容類型需設為「電影」或是「混合」。", + "LabelMetadataPath": "中繼資料路徑", + "LabelMetadataPathHelp": "指定下載作品和中繼資料存放路徑,不填寫則會套用預設值。變更後,需要將原路徑下的檔案自行搬移至新路徑。如曾經手動更改中繼資料夾內容,會需要重新執行 {0}掃描中繼資料夾排程任務{1}。", + "LabelTranscodingTempPath": "轉碼暫存路徑", + "LabelTranscodingTempPathHelp": "此文件夾將會用以存放轉檔過程中產生的檔案。請指定路徑,或留白使用預設伺服器資料夾。", + "GenerateVideoPreviewThumbnailsHelp": "在有支援的應用程式中搜索時,將會即時顯示影片預覽縮圖。產生縮圖可能會花費很長時間、導致高 CPU 使用率,或是佔用額外硬碟空間。", + "AsAScheduledTask": "作為排程作業", + "AsAScheduledTaskAndMediaAdded": "加入排程作業和媒體時", + "ButtonRefreshGuideData": "重新整理節目指南", + "LabelNumberOfGuideDays": "要下載的節目指南天數", + "LabelNumberOfGuideDaysHelp": "下載更多天的節目指南,但也會導致下載時間增加。啟用此選項後,可以讓您使用進階定時功能和查看更多節目。「自動」選項會根據頻道數量調整下載的天數。請注意,不管選擇多少天數,資料來源都必須存在且可供下載。部分來源只提供 24 小時的節目指南,而 Emby 支援下載最多 14 天的節目指南。", + "HeaderFetchImages": "擷取圖像", + "LabelMaxBackdropsPerItem": "每個項目的最大背景數量", + "LabelMaxScreenshotsPerItem": "每個項目的最大截圖數量", + "LabelMinBackdropDownloadWidth": "最小背景下載寬度", + "LabelMinScreenshotDownloadWidth": "最小截圖下載寬度", + "ButtonAddScheduledTaskTrigger": "新增觸發事件", + "ButtonAdd": "新增", + "LabelTriggerType": "觸發類型", + "OptionOnInterval": "固定間隔", + "OptionAfterSystemEvent": "系統事件之後", + "LabelDay": "日", + "LabelTime": "時間", + "LabelEvent": "事件", + "OptionWakeFromSleep": "從休眠中回復", + "Every": "每", + "LabelEnableRealtimeMonitor": "啟用即時監控", + "LabelEnableRealtimeMonitorHelp": "在支援的檔案系統上可以立即套用檔案更新。", + "Community": "社群", + "HeaderEmbyNews": "Emby 新聞", + "LabelFriendlyServerName": "伺服器名稱", + "LabelFriendlyServerNameHelp": "用於識別伺服器的名稱。如果留空將會使用電腦名稱。", + "LabelPreferredDisplayLanguage": "偏好顯示語言", + "LabelPreferredDisplayLanguageHelp": "Emby 的翻譯工作仍在持續進行中。", + "LabelReadHowYouCanContribute": "瞭解如何參與貢獻。", + "LabelCustomCss": "自訂 css", + "LabelCustomCssHelp": "將自訂 css 套用至介面。", + "LabelLocalHttpServerPortNumber": "本機 http 埠號", + "LabelLocalHttpServerPortNumberHelp": "Emby http 伺服器綁定的 tcp 埠號。", + "LabelPublicHttpPort": "公用 http 埠號:", + "LabelPublicHttpPortHelp": "對映本機 http 埠號的公用通訊埠。", + "LabelPublicHttpsPort": "公用 https 埠號:", + "LabelPublicHttpsPortHelp": "對映本機 https 埠號的公用通訊埠。", + "RequireHttps": "對遠端連線強制啟用 https", + "RequireHttpsHelp": "啟用後,http 連線將會自動導向 https 加密連線。", + "LabelHttpsPort": "本機 https 埠號", + "LabelHttpsPortHelp": "Emby https 伺服器綁定的 tcp 埠號。", + "LabelEnableAutomaticPortMap": "啟用自動埠號映射", + "LabelEnableAutomaticPortMapHelp": "某些路由器型號可能不支援以 UPnP 自動映射公用埠號至本機埠號。", + "LabelExternalDDNS": "外部網域", + "LabelExternalDDNSHelp": "請在此輸入動態網域伺服器或網域名稱 (如有),無需輸入協定或埠號。Emby 應用程式將根據此設定建立遠端連線。當使用自訂 SSL 憑證時此為必要設定,如:mydomain.com。", + "LabelMinResumePercentage": "最少恢復播放百分比", + "LabelMaxResumePercentage": "最大恢復播放百分比", + "LabelMinResumeDuration": "最少恢復播放時間(秒)", + "LabelMinResumePercentageHelp": "如果觀看時間少於此限制,媒體將會被視為未播放", + "LabelMaxResumePercentageHelp": "如果觀看時間大於此限制,媒體將會被視為已播放", + "LabelMinResumeDurationHelp": "短於此時長的內容無法恢復播放", + "HeaderStatus": "狀態", + "Subscriptions": "訂閱", + "LabelEndingEpisodeNumber": "最終集數", + "LabelEndingEpisodeNumberHelp": "只有多集數影片需要此設定", + "HeaderSupportTheTeam": "支持 Emby 團隊", + "HeaderSupportTheTeamHelp": "請訂閱 Emby Premiere 以支持本專案永續發展,我們一部分的收入會用來支持其他相依的免費工具。", + "DonationNextStep": "付款完成後,請回到此頁面並輸入電子郵件中內附的 Emby Premiere 金鑰。", + "HeaderRunningTasks": "執行中工作", + "ButtonUpdateNow": "立刻更新", + "PleaseUpdateManually": "關閉 Emby 伺服器並安裝更新。", + "ServerUpToDate": "Emby 伺服器已更新到最新版本", + "MessagePleaseRestartServerToFinishUpdating": "請重啟伺服器以完成更新。", + "LabelDownMixAudioScale": "降混時啟用音訊增強", + "LabelDownMixAudioScaleHelp": "降混時啟用音訊增強,請設為1以保持原始音量。", + "HeaderForgotKey": "忘記金鑰", + "LabelSupporterEmailAddress": "曾用於購買金鑰的電子郵件。", + "ButtonRetrieveKey": "取回金鑰", + "LabelSupporterKey": "Emby Premiere 金鑰(從電子郵件複製貼上)", + "LabelSupporterKeyHelp": "輸入您的 Emby Premiere 金鑰後即可開始享受額外功能。", + "MessageInvalidKey": "遺失或無效的 Emby Premiere 金鑰。", + "ErrorMessageInvalidKey": "註冊任何額外功能皆需有效的 Emby Premiere 訂閱。", + "LabelSkipIfGraphicalSubsPresent": "當影片已內嵌指定語言的字幕時,不下載字幕", + "LabelSkipIfGraphicalSubsPresentHelp": "保留文字版本的字幕可以提高傳輸效率,並且減少影片轉碼的機會。", + "HeaderDownloadLanguages": "下載語系", + "LabelSkipIfAudioTrackPresent": "如果預設音軌符合下載語言,將不下載", + "LabelSkipIfAudioTrackPresentHelp": "不勾選此設定可確保所有不同音訊語言的影片都有字幕。", + "SendMessage": "送出訊息", + "HeaderSendMessage": "送出訊息", + "ButtonSend": "送出", + "LabelMessageText": "訊息文字", + "LabelMessageTitle": "訊息標題", + "ButtonEditOtherUserPreferences": "編輯使用者檔案、頭像,和個人化設定。", + "LabelLoginDisclaimer": "登入訊息", + "LabelLoginDisclaimerHelp": "請輸入您希望顯示在登入畫面下方的訊息。", + "HeaderTranscodingTemporaryFiles": "轉碼暫存檔", + "HeaderApiKeys": "API 金鑰", + "HeaderApiKeysHelp": "外部應用程式需使用 API 金鑰來和 Emby 伺服器溝通。使用 Emby 帳號登入可取得金鑰,或手動派發金鑰給應用程式。", + "HeaderApiKey": "API 金鑰", + "HeaderResumeSettings": "恢復設定", + "HeaderFetcherSettings": "擷取設定", + "HeaderActivity": "活動", + "ButtonPurchase": "購買", + "HeaderInstall": "安裝", + "LabelSelectVersionToInstall": "選擇安裝版本", + "LinkLearnMoreAboutSubscription": "了解 Emby Premiere", + "MessagePluginRequiresSubscription": "14 天免費試用後,您需要 Emby Premiere 才能繼續使用此擴充套件。", + "MessagePremiumPluginRequiresMembership": "14 天免費試用後,您需要 Emby Premiere 才能購買此擴充套件。", + "HeaderDeveloperInfo": "開發者資訊", + "HeaderRevisionHistory": "更新記錄", + "ButtonViewWebsite": "造訪網站", + "OptionSaveMetadataAsHidden": "將中繼資料和圖片存為隱藏檔", + "LabelConnectEmail": "(選填) Emby Connect 電子郵件", + "LabelConnectEmailHelp": "可選擇將本機使用者連結到 Emby Connect 帳號,讓其他人輕鬆登入 Emby 應用程式,無須知道伺服器實際的 IP 位址。", + "ButtonLearnMoreAboutEmbyConnect": "了解更多有關 Emby Connect 的資訊", + "LabelDateAddedBehavior": "新增日期判定方式", + "OptionDateAddedImportTime": "使用媒體庫匯入日期", + "OptionDateAddedFileTime": "使用檔案創建日期", + "LabelDateAddedBehaviorHelp": "如有中繼資料,將直接套用並忽略此設定。", + "HeaderLibrarySettings": "媒體庫設定", + "HeaderAutomaticSubtitleDownloads": "自動下載字幕", + "HeaderCameraUploadHelp": "Emby 應用程式可以自動上傳行動裝置中的照片到 Emby 伺服器。", + "LabelCameraUploadPath": "照片上傳路徑", + "LabelCameraUploadPathHelp": "自訂上傳路徑,如留白將會使用預設路徑。在這之前,您需要將自訂路徑新增至 Emby 媒體庫。", + "DefaultCameraUploadPathHelp": "自訂上傳路徑,如留白將會使用預設路徑。在這之前,您需要將自訂路徑新增至 Emby 媒體庫。", + "LabelCreateCameraUploadSubfolder": "為每一裝置建立子資料夾", + "LabelCreateCameraUploadSubfolderHelp": "您可以在裝置頁面中,指定分配給設備的資料夾。", + "LabelCustomDeviceDisplayNameHelp": "輸入自訂顯示名稱,或留白使用裝置回傳名稱。", + "TabParentalControl": "家長控制", + "HeaderAccessSchedule": "存取限制", + "HeaderAccessScheduleHelp": "建立存取規則以限制可存取時間。", + "HeaderLibraryAccess": "媒體庫存取", + "HeaderChannelAccess": "頻道存取", + "LabelForgotPasswordUsernameHelp": "如果您還記得,請輸入您的使用者名稱。", + "TitlePasswordReset": "重設密碼", + "HeaderBlockItemsWithNoRating": "封鎖未分級或未認證分級的項目", + "LabelBlockContentWithTags": "限制標籤", + "LabelTagRestrictionMode": "標籤限制模式", + "BlockItemsWithTheseTags": "封鎖含有這些標籤的項目", + "AllowItemsWithTheseTags": "允許含有這些標籤的項目", + "OptionAllowContentDownloading": "允許媒體下載", + "LabelNewUserNameHelp": "使用者名稱可包含字母(a-z),數字(0-9),破折號(-),下底線(_),撇號('),和句點(.)", + "HeaderThisUserIsCurrentlyDisabled": "這位使用者已被停用,如要啟用,請見本頁下方選項。", + "OptionAllowSyncTranscoding": "允許下載需要轉碼的媒體", + "AllowMediaConversion": "允許媒體轉換", + "AllowMediaConversionHelp": "允許或拒絕存取媒體轉換功能。", + "OptionAllowAudioPlaybackTranscoding": "如必要,允許在媒體播放期間將音訊轉碼為相容格式", + "OptionAllowVideoPlaybackTranscoding": "如必要,允許在媒體播放期間將視訊轉碼至相容格式", + "OptionAllowVideoPlaybackRemuxing": "如必要,允許在媒體播放期間轉換容器格式", + "OptionAllowMediaPlaybackTranscodingHelp": "限制存取轉碼功能會也會停用播放品質選擇,導致不支援的媒體格式或網路頻寬不足造成 Emby 應用程式播放錯誤。", + "LabelRemoteClientBitrateLimit": "網路串流位元率限制 (Mbps)", + "LabelRemoteClientBitrateLimitHelp": "為所有外部網路裝置的設定串流位元率限制。即使使用者在播放器中選擇了較高的播放品質,伺服器仍會限制其網路串流品質。這有助於防止裝置請求高於您網路連線能力的串流位元率。請注意,這可能會導致伺服器必須將串流即時轉碼為較低品質,導致 CPU 使用率上升。", + "LabelUserRemoteClientBitrateLimitHelp": "這會覆寫進階伺服器設定中的全域預設值。", + "OptionEnableFullSpeedConversion": "啟用全速轉換", + "OptionEnableFullSpeedConversionHelp": "預設會以低速執行轉換,降低資源消耗。", + "OptionEnableAutomaticServerUpdates": "啟用伺服器自動更新", + "HeaderTVSources": "電視來源", + "HeaderAddTvSource": "新增電視來源", + "LabelTunerIpAddress": "調諧器 IP 位址", + "HeaderGuideProviders": "節目指南來源", + "HeaderAddGuideSource": "新增節目指南來源", + "LabelZipCode": "郵政編號", + "LabelLineup": "節目清單", + "LabelImportOnlyFavoriteChannels": "只限最愛的頻道", + "ImportFavoriteChannelsHelp": "如啟用,只有在調諧器中標示為最愛的頻道才會被匯入。", + "HeaderDefaultRecordingSettings": "預設錄影設定", + "LabelDisplayName": "顯示名稱", + "OptionDownloadImagesInAdvance": "預先下載影像", + "OptionDownloadImagesInAdvanceHelp": "在預設情況下,多數影像只有在 Emby 應用程式顯示時才會被下載。啟用此設定後,新媒體匯入後就會預先下載所有影像。這會大幅延長媒體庫掃描時間。", + "MessageThankYouForSupporting": "感謝支持 Emby。", + "FileReadCancelled": "已取消讀取檔案。", + "FileNotFound": "未找到檔案。", + "FileReadError": "讀取檔案時發生錯誤。", + "NoPluginConfigurationMessage": "此擴充功能無須設定。", + "HeaderNewApiKey": "新增 API 金鑰", + "HeaderNewApiKeyHelp": "允許應用程式與 Emby 伺服器通訊。", + "MessageKeyEmailedTo": "金鑰已寄送到 {0}。", + "HeaderConfirmation": "確認", + "MessageKeyUpdated": "感謝您,已更新您的 Emby Premiere 金鑰。", + "MessageKeyRemoved": "感謝您,已移除您的 Emby Premiere 金鑰。", + "TextEnjoyBonusFeatures": "享用額外功能", + "MessageErrorLoadingSupporterInfo": "載入 Emby Premiere 資訊時發生錯誤,請稍後重試。", + "ValueTimeLimitSingleHour": "時限:1 小時", + "ValueTimeLimitMultiHour": "時限:{0} 小時", + "General": "一般", + "HeaderScreenSavers": "螢幕保護程式", + "Reporting": "報告", + "LabelStopping": "停止中", + "HeaderSelectCertificatePath": "選擇憑證存放路徑", + "HeaderSupporterBenefit": "Emby Premiere 可解鎖額外權益,像是:Emby DVR、離線媒體、高級擴充套件等更多功能。{0}查看更多{1}。", + "LabelAbortedByServerShutdown": "(因伺服器關閉而中斷)", + "LabelScheduledTaskLastRan": "上次執行於 {0},花費 {1}。", + "HeaderDeleteTaskTrigger": "刪除觸發事件", + "MessageDeleteTaskTrigger": "您確定要刪除這個觸發事件?", + "MessageNoPluginsDueToAppStore": "請使用 Emby 網頁應用程式管理擴充套件。", + "LabelVersionInstalled": "已安裝 {0}", + "HeaderSelectServerCachePath": "選擇伺服器快取路徑", + "HeaderSelectTranscodingPath": "選擇轉碼暫存路徑", + "HeaderSelectMetadataPath": "選擇中繼資料路徑", + "HeaderSelectServerCachePathHelp": "瀏覽或輸入伺服器暫存檔案所用的路徑,這些資料夾需可寫入。", + "HeaderSelectTranscodingPathHelp": "瀏覽或輸入轉碼暫存檔案所用的路徑,這些資料夾需可寫入。", + "HeaderSelectMetadataPathHelp": "瀏覽或輸入存放中繼資料所用路徑,這些資料夾需可寫入。", + "MessageConfirmRestart": "確定要重啟 Emby 伺服器嗎?", + "MessageConfirmShutdown": "確定要關閉 Emby 伺服器嗎?", + "LabelLocalAccessUrl": "家庭(區域網路)存取:{0}", + "LabelRemoteAccessUrl": "遠端(網際網路)存取:{0}", + "LabelRunningOnPort": "執行於 http 埠:{0}", + "LabelRunningOnPorts": "執行於 http 埠:{0} 和 https 埠:{1}", + "LabelCurrentPath": "目前路徑", + "HeaderSelectMediaPath": "選擇媒體路徑", + "HeaderSelectPath": "選擇路徑", + "MessageDirectoryPickerInstruction": "如果「網路」按鈕無法找到您的裝置,您可以手動輸入網路路徑。比如,{0} 或 {1}。", + "MessageDirectoryPickerBSDInstruction": "在 BSD 作業系統中,您需要在 FreeNAS Jail 中設定 Emby 的存取權限。", + "MessageDirectoryPickerLinuxInstruction": "在 Linux on Arch Linux、CentOS、Debian、Fedora、OpenSuse,或 Ubuntu 作業系統中,您至少需要允許 Emby 使用者擁有儲存裝置的讀取權限。", + "MetadataManager": "中繼資料管理員", + "OptionBlockLiveTvChannels": "網路電視頻道", + "OptionBlockChannelContent": "網路電視頻道內容", + "ButtonRevoke": "撤銷", + "MessageConfirmRevokeApiKey": "確定要撤銷 API 金鑰嗎?應用程式與 Emby 伺服器間的連線將會異常中斷。", + "HeaderConfirmRevokeApiKey": "撤銷 API 金鑰", + "MessagePleaseAcceptTermsOfServiceBeforeContinuing": "繼續使用前請先接受使用條款。", + "HeaderChangeFolderType": "更改內容類型", + "HeaderChangeFolderTypeHelp": "若要變更類型,請先移除該媒體庫,然後使用新類型重新建立。", + "HeaderAlert": "警告", + "MessagePleaseRestart": "請重啟伺服器以完成更新。", + "OptionHomeVideos": "家庭影片和相片", + "OptionBooks": "書籍", + "HeaderMetadataReaders": "中繼資料閱讀器", + "LabelMetadataReadersHelp": "啟用並根據您的偏好排序中繼資料來源。", + "HeaderSubtitleDownloaders": "字幕下載器", + "SubtitleDownloadersHelp": "啟用並根據您的偏好排序字幕下載器。在 Emby 擴充套件目錄可安裝更多的字幕下載器。", + "LabelMetadataDownloaders": "中繼資料下載器", + "LabelMetadataDownloadersHelp": "啟用並根據您的偏好排序中繼資料下載器。較低優先序的下載器只會被用來填補缺失的資料。", + "HeaderMetadataSavers": "中繼資料存放器", + "LabelMetadataSaversHelp": "選擇用來存放中繼資料的檔案格式。", + "LabelImageFetchers": "圖片擷取器", + "LabelImageFetchersHelp": "啟用並排序偏好的影像擷取器。", + "PersonTypePerson": "人物", + "HeaderRemoveMediaLocation": "移除媒體位置", + "MessageConfirmRemoveMediaLocation": "您確定要移除此位置嗎?", + "LabelNewName": "新名稱", + "HeaderRemoveLibrary": "移除媒體庫", + "MessageAreYouSureYouWishToRemoveLibrary": "確定要從您的 Emby 伺服器中刪除「{0}」媒體庫嗎?您的媒體文件不會受到影響。", + "ButtonRename": "重新命名", + "HeaderPluginInstallation": "安裝擴充套件", + "MessageTrialExpired": "此功能試用期已經到期", + "MessageTrialWillExpireIn": "此功能試用期將於 {0} 天內到期", + "ValuePriceUSD": "價格:{0} (USD)", + "MessageFeatureIncludedWithSupporter": "註冊成功,在 Emby Premiere 有效期限內您都能繼續使用此功能。", + "HeaderSelectExternalPlayer": "選擇外部播放器", + "HeaderExternalPlayerPlayback": "外部播放器播放", + "HeaderThankYou": "感謝您", + "HeaderSelectUploadPath": "選擇上傳路徑", + "ErrorMessageStartHourGreaterThanEnd": "結束時間需大於起始時間。", + "MessagePluginConfigurationRequiresLocalAccess": "如欲設定此擴充套件,請直接登入本地伺服器。", + "MovieLibraryHelp": "檢視 {0}Emby 電影命名指南{1}。", + "TvLibraryHelp": "檢視 {0}Emby 電視命名指南{1}。", + "BookLibraryHelp": "Emby 支援電子書。請參閱 {0}Emby 電子書命名指南{1}。", + "MessageGamePluginRequired": "需要安裝 GameBrowser 擴充套件", + "HeaderUnlockApp": "解鎖應用程式", + "MessagePaymentServicesUnavailable": "目前無法購買,請稍後重試。", + "NoNewDevicesFound": "沒有可新增的裝置。如要新增調諧器,請關閉此對話視窗並手動輸入裝置資訊。", + "MessageConfirmDeleteTunerDevice": "確定要刪除該裝置嗎?", + "MessageConfirmDeleteGuideProvider": "確定要刪除該指南提供者嗎?", + "HeaderDeleteProvider": "刪除提供者", + "ErrorAddingTunerDevice": "新增調諧器裝置時發生錯誤,請確定能存取該裝置後,再試一次。", + "ErrorSavingTvProvider": "儲存電視提供者時發生錯誤,請確定能存取提供者後,再試一次。", + "ErrorGettingTvLineups": "下載節目清單時發生錯誤,請檢查您的資訊是否正確後,再試一次。", + "MessageCreateAccountAt": "在 {0} 建立帳號", + "ErrorPleaseSelectLineup": "請選一個節目清單後再試一次。如節目清單沒有出現,請確認使用者名稱、密碼,和郵遞區號是否正確。", + "ErrorValidatingSupporterInfo": "驗證 Emby Premiere 資訊時發生錯誤,請重試。", + "LabelLocalSyncStatusValue": "狀態:{0}", + "HeaderTopPlugins": "熱門擴充套件", + "ForAdditionalLiveTvOptions": "瀏覽 Emby {0}擴充套件目錄{1}來安裝更多網路電視節目提供者。", + "AddUser": "新增使用者", + "HeaderEmailAddress": "電子郵件", + "NumLocationsValue": "{0} 個資料夾", + "PleaseAddAtLeastOneFolder": "請使用新增按鈕新增至少一個資料夾到媒體庫中。", + "ErrorAddingMediaPathToVirtualFolder": "新增媒體路徑發生錯誤,請確定路徑有效,且 Emby 伺服器能存取該位置。", + "ErrorAddingEmbyConnectAccount3": "Emby 帳號已連結到本機使用者,Emby 帳號一次只能連結一位本機使用者。", + "HeaderConfirmPluginInstallation": "確認安裝擴充套件", + "PleaseConfirmPluginInstallation": "在繼續安裝擴充套件前,請按 OK 確認已閱讀以上條文。", + "MessagePluginInstallDisclaimer": "Emby 社群編寫的擴充套件可以增強您的 Emby 體驗,並新增更多功能。安裝前請留意對 Emby 伺服器的影響,例如:花費更多時間掃描媒體庫、增加背景程序,以及降低系統穩定度。", + "HardwareAccelerationWarning": "啟用硬體加速在某些環境下可能會造成不穩定,請確定作業系統和視訊驅動程式已是最新版。如果啟用後播放影片有問題,請將設定改回自動。", + "ValueExample": "例如:{0}", + "LabelFileOrUrl": "檔案或連結", + "OptionEnableForAllTuners": "對所有調諧器裝置啟用", + "HeaderTuners": "調諧器", + "DrmChannelsNotImported": "有 DRM 的頻道無法被匯入。", + "LabelAllowHWTranscoding": "允許硬體加速轉碼", + "AllowHWTranscodingHelp": "啟用後可以讓調諧器即時轉碼串流。這可能有助於減少 Emby 伺服器所需的轉碼工作。", + "MetadataSettingChangeHelp": "更改中繼資料設定只影響之後新增的內容,如果想更新現有資訊,請打開詳細資訊頁面,按下更新按鈕,或是使用中繼資料管理員執行全面更新。", + "RecordingPathChangeMessage": "變更錄影資料夾不會將現有的錄影檔案移動到新資料夾,需要您手動轉移。", + "LabelLocalIpAddress": "主機 IP 位址", + "LabelBindToLocalNetworkAddressHelp": "選用。覆寫 Emby 應用程式中顯示的 Emby 伺服器 IP 位址。如留白,伺服器將自動偵測本機 IP 位址。", + "SettingsWarning": "改變這些參數會引起不穩定或連線失敗,如果發生錯誤,我們建議調回預設值。", + "OptionSaveMetadataAsHiddenHelp": "此更動只會套用到新中繼資料,現有的中繼資料檔案將在下次 Emby 伺服器存儲時更新。", + "EnablePhotos": "啟用照片", + "EnablePhotosHelp": "偵測照片並顯示於其他媒體檔案旁。", + "ImportPlaylists": "導入播放清單檔案", + "ImportPlaylistsHelp": "Emby 在媒體資料夾找到可匯入的播放清單。", + "SaveThumbnailImagesIntoMediaFolders": "儲存影片縮圖到媒體資料夾", + "LabelGenerateVideoPreviewThumbnails": "產生影片預覽縮圖", + "LabelEnableDebugLogging": "啟用除錯日誌", + "OptionEnableExternalContentInSuggestions": "在建議區塊顯示外部內容", + "OptionEnableExternalContentInSuggestionsHelp": "允許在建議內容內包含網路預告和網路電視節目。", + "LabelOptionalNetworkPath": "(選用)共用網路資料夾", + "LabelOptionalNetworkPathHelp": "如果您已經設定了網路共享資料夾,提供該資料夾的路徑可以讓其他裝置上的 Emby 應用程式直接存取媒體檔案。", + "SynologyUpdateInstructions": "請登入 DSM 並到套件中心下載更新。", + "HeaderRecordingPostProcessing": "錄影後處理", + "LabelPostProcessorArguments": "後處理指令列參數", + "PostProcessorArgumentsHelp": "指令列中支援以下變量以允許將數據傳遞到後處理器", + "LabelPostProcessor": "後處理應用程式", + "DvrPostProcessorPathArgument": "{path}:新錄影的完整路徑", + "OptionAutomaticallyGroupSeries": "自動合併", + "OptionAutomaticallyGroupSeriesHelp": "自動合併位於不同資料夾中的電視劇。", + "WhenDidYouPurchaseApp": "大約何時初次購買此應用程式?", + "PreferEmbeddedTitlesOverFileNames": "優先使用內嵌名稱,而非檔名", + "PreferEmbeddedTitlesOverFileNamesHelp": "當沒有網路連線或是本機中繼資料時,預設顯示的名稱。", + "FriendlyNameForReferenceHelp": "一個好記憶的名稱,作為自己參考用。", + "HeaderLiveTvTunerSetup": "直播電視調頻設定", + "HeaderTVSourceSetup": "電視來源設定", + "HeaderDetectMyDevices": "偵測裝置", + "MessagePleaseWait": "請稍候,這將花費數分鐘。", + "DetectingDevices": "偵測裝置中", + "LabelAutomaticallyRefreshInternetMetadataEvery": "首次匯入後,自動從網路重整中繼資料", + "LabelPlaceholderMetadataRefreshInternetMetadataEvery": "自動為包含特定名稱的單集重整中繼資料,例如:TBA(尚未公布)", + "EveryNDays": "每隔 {0} 天", + "LabelCertificatePassword": "憑證密碼", + "LabelCertificatePasswordHelp": "如果憑證需要密碼,請在此輸入。", + "HeaderNewLibrary": "新增媒體庫", + "HttpsRequiresCert": "如要啟用加密連線,您需提供受信任的 SSL 憑證,例如:Let's Encrypt。請提供憑證或是停用用加密連線。", + "ServerRestartNeededAfterPluginInstall": "安裝擴充套件後,Emby 伺服器需要重新啟動。", + "PluginInstalledMessage": "已成功安裝擴充套件,Emby 伺服器需要重新啟動以套用變更。", + "MessagePremiereStatusGood": "您擁有 {0} Emby Premiere 方案,所用裝置數量在限制內。", + "MessagePremiereStatusClose": "您擁有 {0} Emby Premiere 方案,但所用設備數量接近上限。", + "MessagePremiereExtendedPlans": "請考慮{0}擴充裝置上限{1}", + "MessagePremiereStatusOver": "您擁有 {0} Emby Premiere 方案,但所用裝置數量超過上限!", + "ListItemPremiereSub": "透過 {2} 所購買的 {0} 訂閱,將於 {1} 過期", + "LabelClickToManage": "管理訂閱", + "LabelCancelInfo": "您可以在 {0} 直接管理訂閱", + "LabelAlreadyCanceled": "已取消訂閱,在過期前金鑰將持續運作。", + "HeaderCancelSub": "取消 Emby Premiere", + "MessageConfirmSubCancel": "不,千萬別離開...您會損失所有 Emby Premiere 帶來的功能!", + "ButtonCancelSub": "我知道,就取消吧", + "ButtonDontCancelSub": "保留 Emby Premiere", + "MessageSubCancelReqSent": "系統將會寄送一封電子郵件到金鑰擁有者,請根據郵件中指示完成取消訂閱,希望在不久後能重新見到您!", + "MessageSubCancelError": "取消時發生錯誤。請寄信到 {0},我們將給您滿意的回覆。", + "LabelAlreadyCancelled": "訂閱已取消,您將不會再被收費。在上方日期前您仍可以繼續使用額外功能。", + "AllowOnTheFlySubtitleExtraction": "允許即時提取字幕", + "AllowOnTheFlySubtitleExtractionHelp": "從影片中提取內嵌字幕,並以純文字形式傳送到 Emby 應用程式能避免影片轉碼。在某些系統上這可能需要花費較長時間,且可能會導致影片在提取過程中暫停播放。若停用此選項,當客戶端裝置不原生支援內嵌字幕時,Emby 會在轉碼過程中將字幕燒錄至影片中。", + "AllowOnTheFlyFontExtraction": "允許即時提取字幕字型", + "AllowOnTheFlyFontExtractionHelp": "Emby 可以將內嵌字體傳送至應用程式,使其支援播放使用自訂字體的影片。但此功能在某些作業系統上可能會花費較多時間處理,導致影片停止播放。", + "EnableDebugLoggingHelp": "只有在排除障礙時才應啟用除錯日誌,在某些系統下頻繁的讀寫可能會導致伺服器無法進入睡眠狀態。", + "LabelSimultaneousConnectionLimit": "同步串流限制", + "SimultaneousConnectionLimitHelp": "允許同步串流最大值,0 表示無限制。", + "LaunchWebAppOnStartup": "當 Emby 伺服器啟動時,自動開啟 Emby 網頁應用程式", + "LaunchWebAppOnStartupHelp": "當 Emby 伺服器啟動後,自動使用預設瀏覽器開啟網頁應用程式。重啟伺服器不會觸發此功能。", + "LabelReferrerHeader": "來源 HTTP header", + "LabelUserAgentHeader": "User-Agent HTTP header", + "SupplyCustomValueIfNeeded": "如有需要,請提供自訂 http header 數值。", + "HeaderConfigureRemoteAccess": "設定遠端存取", + "LearnHowToCreateSynologyShares": "了解如何在 Synology 共享資料夾。", + "LabelAllowedRemoteAddresses": "遠端 IP 位址過濾", + "LabelAllowedRemoteAddressesMode": "遠端 IP 位址過濾模式", + "Whitelist": "白名單", + "Blacklist": "黑名單", + "AllowedRemoteAddressesHelp": "請輸入允許遠端連線的 IP 位址或 IP/子網路遮罩,使用逗號分隔。留空則會允許所有遠端連線。", + "LabelLanNetworks": "區域網路", + "LanNetworksHelpText": "以逗號分隔的 IP 位址或 IP/網路遮罩條目列表,將會在執行頻寬與遠端存取限制時被視為區域網路。如果設定了這些條目,所有其他 IP 位址將被視為外部網路;如果留空,則只有伺服器的子網和常見的私人 IP 子網路(如 192.168.0.0/24、172.16.0.0/12 等)會被視為區域網路。", + "LabelSecureConnectionsMode": "加密連線模式", + "PreferredNotRequired": "偏好,但非必要", + "RequiredForAllRemoteConnections": "對所有遠端連線啟用", + "HandledByProxy": "由反向代理伺服器控制", + "SaveSubtitlesIntoMediaFolders": "儲存下載的字幕到媒體文件夾", + "SaveSubtitlesIntoMediaFoldersHelp": "將字幕存放於影片檔案旁以方便管理。", + "AutomaticSubtitleDownloadInstructions": "如要管理自動字幕下載,請於 Emby 媒體庫設定中,選擇字幕下載設定。", + "ProviderNeedsSetupWithUrl": "{0} 需要額外在 {1}Emby 伺服器設定{2} 中進行設定。", + "LabelEnableHardwareAcceleration": "當可用時,啟用硬體加速", + "HeaderPreferredHardwareDecoders": "偏好的硬體解碼器", + "HeaderPreferredHardwareEncoders": "偏好的硬體編碼器", + "AllowChangingImageAndPassword": "允許使用者更改密碼和個人檔案圖片", + "LabelSimultaneousStreamLimit": "最大同時串流數量", + "SimultaneousStreamLimitHelp": "限制可同時進行的影片播放工作階段。", + "LabelMusicFolderStructure": "音樂資料夾結構", + "LabelMusicFolderStructureHelp": "為資料庫掃描提供資料夾組織方式。如不確定,或不符合任一選項,請選「其他」作為預設選項。", + "OtherOrUnstructured": "其他或未結構化", + "PerfectArtistAlbumTrack": "完美地整理進藝人\\專輯資料夾,並將曲目直接置於其中。", + "PerfectAlbumTrack": "完美地整理進專輯資料夾,並將音軌直接放置其中。", + "LabelMinCollectionSize": "自動收藏清單最小容量", + "PerfectAuthorAudioBookTrack": "完美組織成「作者\\書籍」資料夾,並將音檔直接存放在書籍資料夾中。", + "PerfectAudioBookTrack": "完美組織成書籍資料夾,並將音檔直接存放在書籍資料夾中。", + "MinCollectionSizeHelp": "選擇一定數量的內容後,自動建立一個收藏清單。變更此處的數值不會影響現有的收藏清單。", + "LabelImportCollections": "從中繼資料下載器匯入收藏清單資訊", + "LabelImportCollectionsHelp": "讓 Emby 從啟用的中繼資料來源匯入收藏清單資訊。請注意,啟用此功能可能會導致不想要的收藏清單自動產生。關閉此功能可防止自動產生收藏清單,但不會刪除現存的收藏清單。", + "LabelAllowAdultMetadata": "允許成人中繼資料", + "LabelAllowAdultMetadataHelp": "允許使用成人中繼資料名稱。", + "HeaderVideoPreviewThumbnails": "影片預覽縮圖", + "LabelEnableHDRToneMapping": "啟用 HDR 色調映射", + "EnableHDRToneMappingHelp": "色調映射能確保在轉碼 HDR 內容時正確轉換色彩,否則畫面會顯得非常黯淡且飽和度不足。啟用此功能時,可能需要安裝額外的驅動程式來支援硬體加速。請參閱我們的硬體加速設定指南以獲取詳細資訊。", + "WithHardwareAcceleratedTranscoding": "僅啟用硬體加速時套用", + "TranscodingStillInitializing": "Emby 伺服器轉碼服務仍在啟動中。當轉碼服務準備好後,此畫面將自動重新整理。", + "WithEitherHardwareOrSoftwareTranscoding": "使用硬體或是軟體轉碼時皆套用", + "ToneMappingInHardwareDescription": "當啟用且硬體支援時,將使用硬體加速執行色調映射,其他情況則跳過。", + "ToneMappingInSoftwareDescription": "由 CPU 執行的軟體色調映射比硬體加速要慢得許多,且需要一台功能強大的伺服器。", + "ToneMappingInBothDescription": "當啟用並且硬體支援時,將使用硬體加速執行色調映射,其他情況則會回退至軟體模式。軟體模式下的色調映射比硬體加速的要慢得多,並且需要一台性能非常強大的伺服器來處理。", + "AutoMapped": "自動映射", + "ManuallyMapped": "手動映射", + "NotMappedToGuideData": "未映射至節目指南", + "MappedToValue": "映射到 {0}", + "LabelAutomaticallyWakeServerForRecordings": "自動喚醒伺服器啟動錄影", + "LabelAutomaticallyWakeServerForRecordingsHelp": "喚醒事件將由伺服器的作業系統負責排程。停用此選項後,未來將不會再新增喚醒事件,但不會移除先前已排程的事件。", + "Database": "資料庫", + "LabelOptimizeDatabaseOnShutdown": "嘗試在系統關機時最佳化資料庫", + "LabelOptimizeDatabaseOnShutdownHelp": "資料庫最佳化通常不會執行任何變更,但在系統判斷有助於查詢規劃器的情況下,可能會進行分析作業。這可能會導致 Emby 伺服器關閉所需時間變長。", + "LabelDatabaseCacheSize": "資料庫快取大小(MB)", + "LabelDatabaseCacheSizeHelp": "設定可暫存於記憶體中的資料數量,較大的數值可能可以提升 Emby 伺服器效能。需重啟伺服器才能套用變更。", + "LabelDatabaseAnalysisLimit": "分析列限制", + "LabelDatabaseAnalysisLimitHelp": "進行資料庫最佳化時,這是 ANALYZE 指令每個索引大約會檢查的資料列數。數值越大,最佳化效果可能越好,但也可能導致 Emby 伺服器關閉所需時間變長。", + "LabelVacuumDb": "於下次 Emby 伺服器啟動時清空資料庫", + "LabelVacuumDbHelp": "Emby 會清空並重建資料庫,且將壓縮佔用的磁碟空間。在某些情況下,這可能有助於提升 Emby 伺服器的效能。請注意,清理期間無法使用 Emby 伺服器,也無法查看進度。請勿強制停止 Emby 伺服器程序,否則可能導致資料庫損毀。此動作僅會執行一次,並於啟動完成後自動取消勾選此選項。", + "AdvancedOptionsWarning": "除非有必須修改的理由,這些進階選項一般應使用預設值。", + "HeaderRecentlyActiveDevices": "近期使用裝置", + "YesUntilServerRestart": "是,直到下次重啟服務器", + "YesUntilLogRotate": "是,直到下次日誌輪換", + "LabelSubtitleDownloadMaxAge": "停止為早於此日期的影片自動下載字幕", + "SubtitleDownloadMaxAgeHelp": "根據新增中繼資料的日期。", + "NoAgeLimit": "無年齡限制", + "AnonymizeLogContents": "日誌內容匿名化", + "Markers": "標記", + "LabelGenerateIntroVideoMarkers": "產生片頭標記", + "GenerateIntroVideoMarkersHelp": "檢測片頭並在 Emby 應用程式中顯示「跳過介紹」按鈕。檢測片頭可能需要很長時間,或導致 CPU 或磁碟使用率提高。", + "LabelCopyFromUser": "複製使用者設定:", + "CopyFromUserHelp": "可選的。使用既有用戶的資訊加速設定新使用者。", + "UserPolicy": "使用者控制(資料庫、功能存取權和家長控制等)", + "UserConfiguration": "使用者設定(偏好音訊和字幕語言、資料庫順序等)", + "UserDataAndDescription": "使用者資料(最愛,觀看和聆聽狀態等)", + "HeaderCopyOptions": "複製選項", + "LabelMultiRestrictionMode": "多重限制模式", + "MultiRestrictionModeAll": "允許同時吻合評級和標籤限制的內容", + "MultiRestrictionModeAny": "允許吻合評級或標籤限制的內容", + "AllowMappingByChannelNumber": "允許使用頻道編號對應節目指南", + "AllowMappingByChannelNumberHelp": "當無法使用頻道名稱進行配對時,可使用此設定作為備用方式,將調諧器頻道與節目指南進行對應。但若調諧器的頻道編號不正確,可能會導致錯誤的配對結果。", + "LabelPreferredSourceForChannelLogos": "當調諧器與節目指南皆有提供頻道標誌時,偏好使用指南資料的標誌", + "LabelPreferredSourceForChannelNumbers": "當調諧器與節目指南皆有提供頻道編號時,偏好使用指南資料的編號", + "HeaderSoftwareEncoders": "軟體編碼器", + "LabelProxyHeaderMode": "讀取代理伺服器 proxy header 來決定電腦網址", + "ProxyHeadersRemoteOnly": "僅包含遠端網址時", + "ProxyHeaderModeHelp": "決定 request headers,像是 {0} 和 {1},是否應被用來決定連線裝置的 IP 位址。您僅應在使用反向代理伺服器時啟用此選項。", + "AllowCameraUpload": "允許上傳照片", + "AllowCameraUploadHelp": "如被允許,且有在 Emby 行動應用程式中啟用此功能,使用者將可自動上傳照片和影片到 Emby 伺服器", + "CameraUploadMustBeGranted": "您必須獲得伺服器管理員授權才能上傳相片。", + "EnableReadingAndWritingPeopleMetadata": "啟用讀取和寫入個人中繼資料", + "EnableReadingAndWritingPeopleMetadataHelp": "需安裝 Nfo 中繼資料擴充套件。允許儲存使用者對 nfo 中繼資料的更動,但也會增加媒體庫掃描時間。", + "LabelIgnoreSampleFiles": "如果檔案小於以下數值(MB),則忽略檔名中包含「sample」一詞的檔案", + "PreferredChannelImageSource": "偏好頻道圖片來源", + "PreferredChannelImageSourceHelp": "當調諧器與節目指南皆有提供頻道圖片時,請選擇您偏好的圖片來源。", + "CacheImagesInServerData": "在伺服器中繼資料夾中保留圖片快取備份", + "CacheImagesInServerDataHelp": "如果您的媒體與圖片儲存在其他裝置上,將圖片快取至伺服器的中繼資料資料夾中,可以減少網路存取並可能提升效能;不過代價是資料庫掃描速度會變慢,且伺服器的中繼資料資料夾將會佔用更多磁碟空間。", + "AllowSharingPersonalContent": "允許分享個人內容,如與同伺服器的其他使用者分享播放清單", + "AllowSharingPersonalContentHelp": "如允許,這位使用者將能夠與其他使用者分享他們的播放清單。播放清單項目仍受媒體庫存取權和家長控制限制。", + "LiveBufferSizeHours": "直播串流的緩衝空間大小限制(小時)", + "LiveBufferSizeHoursHelp": "在直播串流期間,較大緩衝可提供往前往後快速搜尋較好的流暢度,但會使用較多硬碟空間。", + "LabelTranscodingMaxResolution": "最高轉碼解析度", + "TranscodingMaxResolutionHelp": "設定所有影片的轉碼解像度上限,有關上限會套用於 Emby 播放器的所有播放品質設定。這有助於減輕轉碼過程對伺服器的負擔。", + "EnableHevcEncodingExp": "使用 HEVC 影片解碼(實驗性)", + "EnableHevcEncodingHelp": "如果客戶端支援,則使用 HEVC 編碼進行轉碼。", + "LabelEnableMultiPartItems": "啟用多片段項目", + "EnableMultiPartItemsHelp": "自動偵測並將檔案根據名稱(如第 1 部分、第 2 部分等)進行分組。額外的部分將顯示在該項目的主要詳細資訊頁面上。", + "MultiVersionItemsDetectionHelp": "自動偵測同一項目的不同版本,並將其歸類在一起。您可以在主詳細資訊畫面上會選擇要播放的版本。檔案需要被正確命名和組織才能被正確分組。", + "MultiVersionMoviesDetectionHelp": "根據中繼資料進行分組,會將具有相同外部識別碼(如 MovieDb、IMDb 等)的電影歸為同一組。", + "EnableMultiPartItemsTVHelp": "不支援電視節目的集數。", + "HeaderAutomaticGrouping": "自動分組", + "LabelMultiVersionItemsDetection": "偵測多版本項目", + "MultiVersionItemsDetectionBoth": "根據檔案和中繼資料偵測多版本項目", + "MultiVersionItemsDetectionFiles": "根據檔案偵測多版本項目", + "MultiVersionItemsDetectionMetadata": "根據中繼資料偵測多版本項目", + "LabelNetworkRequestProtocol": "網路通訊協定", + "NetworkRequestProtocolHelp": "選擇對外連線至中繼資料來源或是其他服務所使用的通訊協定。當無法使用 IPv6 連線至某些服務時,可能必須設定為只使用 IPv4。", + "GenerateChaptersForVideos": "為沒有內嵌章節的影片產生章節資訊", + "GeneratedChapterInterval": "章節間隔", + "StartOfSection": "章節開始處", + "Margins": "間距", + "NextPage": "下一頁", + "PreviousSection": "上一章", + "LayoutVertical": "垂直滾動", + "ZoomIn": "放大", + "PageNarrow": "限制", + "PreviousPage": "上一頁", + "PageMaximized": "最大化", + "ZoomOut": "縮小", + "PageBook": "雙頁", + "RightToLeft": "右至左閱讀", + "LabelPageSize": "分頁大小", + "PositionInBook": "書中的位置", + "CurrentPage": "目前頁", + "LayoutDouble": "雙頁", + "TableOfContents": "目錄", + "PageSingle": "單頁", + "TotalPages": "總頁數", + "ZoomNone": "預設大小", + "LayoutPage": "單頁", + "NextSection": "下一章", + "ZoomAutoFit": "符合頁面", + "LetsGetSetup": "讓我們開始吧", + "HeaderIgnoreFiles": "忽略檔案", + "EnablePlexIgnoreAlias": "啟用支援.plexignore,將其作為.embyignore的別名", + "HeaderMaintenanceMode": "維護模式", + "OptionEnableMaintenanceMode": "使伺服器進入維護模式", + "MaintenanceModeMessageHelp": "如果留空,使用者將會看到一則關於伺服器維護的自動翻譯訊息。", + "ServerInMaintenanceMode": "Emby 伺服器目前正處於維護模式。在您退出模式維護前,使用者將僅能檢視伺服器維護訊息。", + "MaintenanceModeMessage": "維護模式訊息", + "EnableMaintenanceModeHelp": "使用者將只能檢視伺服器維護訊息。", + "ExcludeFromGlobalSearch": "從全域搜尋中排除", + "MergeTopFoldersInFolderView": "在檢視頂層資料夾時合併其內容", + "MergeTopFoldersInFolderViewHelp": "啟用後,所有內容將會被合併為一組合資料夾。如停用,頂層資料夾將會顯示在第一層級中。", + "OptionAllowTranscodingToReduceQuality": "允許在播放期間依照應用程式設定,將影片轉碼至較低解析度", + "LabelAutoRemoteQuality": "自動遠端串流品質(Mbps)", + "AutoRemoteQualityHelp": "當使用者將串流品質設為自動時,可選的播放品質。這會取消此使用者在所有裝置上的自動偵測機制。", + "LabelFolderScanningMode": "資料夾掃描模式", + "Legacy": "傳統", + "FolderScanningModeHelp": "變更此選項後系統會執行一次完整掃描,這可能會導致中繼資料遺失。", + "LegacyFolderScanningModeHelp": "舊版掃描方式會嘗試將單一的影片檔案整合到單一層級。此功能主要影響資料夾視圖的呈現方式,但可能會與其他 Emby 功能(如:額外內容、多版本影片或是忽略檔案)產生衝突。" +} diff --git a/thirdparty/fflate/fflate.js b/thirdparty/fflate/fflate.js new file mode 100644 index 0000000..627fbca --- /dev/null +++ b/thirdparty/fflate/fflate.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.unzlibSync=function(r,a){return E(r.subarray((r=r,n=a&&a.dictionary,(8!=(15&r[0])||7>4||(r[0]<<8|r[1])%31)&&T(6,"invalid zlib data"),(r[1]>>5&1)==+!n&&T(6,"invalid zlib data: "+(32&r[1]?"need":"unexpected")+" dictionary"),2+(r[1]>>3&4)),-4),{i:2},a&&a.out,a&&a.dictionary);var n};function f(r,n){for(var i=new a(31),t=0;t<31;++t)i[t]=n+=1<>1|(21845&d)<<1))>>2|(13107&w)<<2))>>4|(3855&w)<<4;c[d]=((65280&w)>>8|(255&w)<<8)>>1}function b(r,e,n){for(var i=r.length,t=0,f=new a(e);t>l]=u}else for(o=new a(i),t=0;t>15-r[t]);return o}for(var s=new r(288),d=0;d<144;++d)s[d]=8;for(d=144;d<256;++d)s[d]=9;for(d=256;d<280;++d)s[d]=7;for(d=280;d<288;++d)s[d]=8;var h=new r(32);for(d=0;d<32;++d)h[d]=5;function p(r){for(var a=r[0],e=1;ea&&(a=r[e]);return a}function k(r,a,e){var n=a/8|0;return(r[n]|r[1+n]<<8)>>(7&a)&e}function m(r,a){var e=a/8|0;return(r[e]|r[1+e]<<8|r[2+e]<<16)>>(7&a)}var y=b(s,9,1),g=b(h,5,1),x=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],T=function(r,a,e){a=new Error(a||x[r]);if(a.code=r,Error.captureStackTrace&&Error.captureStackTrace(a,T),e)return a;throw a},E=function(a,e,f,o){var l=a.length,c=o?o.length:0;if(!l||e.f&&!e.l)return f||new r(0);function h(a){var e=f.length;e>4)<16)C[H++]=N;else{var Q=0,R=0;for(16==N?(R=3+k(a,E,3),E+=2,Q=C[H-1]):17==N?(R=3+k(a,E,7),E+=3):18==N&&(R=11+k(a,E,127),E+=7);R--;)C[H++]=Q}}var S=C.subarray(0,I),W=C.subarray(I),D=p(S),F=p(W),A=b(S,D,1),U=b(W,F,1)}else T(1);if(M>4;if((E+=15&Q)>M){s&&T(0);break}if(Q||T(2),$<256)f[z++]=$;else{if(256==$){Z=E,A=null;break}var rr,_=$-254,$=(264<$&&(rr=n[H=$-257],_=k(a,E,(1<>4;if($||T(3),E+=15&$,W=u[er],3a.length)&&(n=a.length),new r(a.subarray(0,n))}(f,z):f.subarray(0,z)},_exports=new r(0);var U="undefined"!=typeof TextDecoder&&new TextDecoder;try{U.decode(_exports,{stream:!0})}catch(r){}}); \ No newline at end of file diff --git a/thirdparty/libarchive/libarchive.js b/thirdparty/libarchive/libarchive.js new file mode 100644 index 0000000..b33eec1 --- /dev/null +++ b/thirdparty/libarchive/libarchive.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function _createForOfIteratorHelper(r,e){var o,a,u,n,t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(t)return u=!(a=!0),{s:function(){t=t.call(r)},n:function(){var r=t.next();return a=r.done,r},e:function(r){u=!0,o=r},f:function(){try{a||null==t.return||t.return()}finally{if(u)throw o}}};if(Array.isArray(r)||(t=function(r,a){{var t;if(r)return"string"==typeof r?_arrayLikeToArray(r,a):"Map"===(t="Object"===(t={}.toString.call(r).slice(8,-1))&&r.constructor?r.constructor.name:t)||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r))||e&&r&&"number"==typeof r.length)return t&&(r=t),n=0,{s:e=function(){},n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e"object"==typeof val&&null!==val||"function"==typeof val,proxyTransferHandler={canHandle:val=>isObject(val)&&val[proxyMarker],serialize(obj){var{port1,port2}=new MessageChannel;return expose(obj,port1),[port2,[port2]]},deserialize(port){return port.start(),wrap(port)}},throwTransferHandler={canHandle:value=>isObject(value)&&throwMarker in value,serialize(_ref){_ref=_ref.value,_ref=_ref instanceof Error?{isError:!0,value:{message:_ref.message,name:_ref.name,stack:_ref.stack}}:{isError:!1,value:_ref};return[_ref,[]]},deserialize(serialized){if(serialized.isError)throw Object.assign(new Error(serialized.value.message),serialized.value);throw serialized.value}},transferHandlers=new Map([["proxy",proxyTransferHandler],["throw",throwTransferHandler]]);function isAllowedOrigin(allowedOrigins,origin){for(var allowedOrigin of allowedOrigins){if(origin===allowedOrigin||"*"===allowedOrigin)return!0;if(allowedOrigin instanceof RegExp&&allowedOrigin.test(origin))return!0}return!1}function expose(obj){var ep=1obj[prop],obj),rawValue=path.reduce((obj,prop)=>obj[prop],obj);switch(type){case"GET":returnValue=rawValue;break;case"SET":parent[path.slice(-1)[0]]=fromWireValue(ev.data.value),returnValue=!0;break;case"APPLY":returnValue=rawValue.apply(parent,argumentList);break;case"CONSTRUCT":var returnValue=proxy(new rawValue(...argumentList));break;case"ENDPOINT":var{port1,port2}=new MessageChannel;expose(obj,port2),returnValue=transfer(port1,[port1]);break;case"RELEASE":returnValue=void 0;break;default:return}}catch(value){returnValue={value:value,[throwMarker]:0}}Promise.resolve(returnValue).catch(value=>({value:value,[throwMarker]:0})).then(returnValue=>{var[returnValue,transferables]=toWireValue(returnValue);ep.postMessage(Object.assign(Object.assign({},returnValue),{id:id}),transferables),"RELEASE"===type&&(ep.removeEventListener("message",callback),closeEndPoint(ep),finalizer in obj)&&"function"==typeof obj[finalizer]&&obj[finalizer]()}).catch(error=>{var[wireValue,transferables]=toWireValue({value:new TypeError("Unserializable return value"),[throwMarker]:0});ep.postMessage(Object.assign(Object.assign({},wireValue),{id:id}),transferables)})}else console.warn("Invalid origin '".concat(ev.origin,"' for comlink proxy"))}),ep.start&&ep.start()}function isMessagePort(endpoint){return"MessagePort"===endpoint.constructor.name}function closeEndPoint(endpoint){isMessagePort(endpoint)&&endpoint.close()}function wrap(ep,target){var pendingListeners=new Map;return ep.addEventListener("message",function(ev){ev=ev.data;if(ev&&ev.id){var resolver=pendingListeners.get(ev.id);if(resolver)try{resolver(ev)}finally{pendingListeners.delete(ev.id)}}}),createProxy(ep,pendingListeners,[],target)}function throwIfProxyReleased(isReleased){if(isReleased)throw new Error("Proxy has been released and is not useable")}function releaseEndpoint(ep){return requestResponseMessage(ep,new Map,{type:"RELEASE"}).then(()=>{closeEndPoint(ep)})}var proxyCounter=new WeakMap,proxyFinalizers="FinalizationRegistry"in globalThis&&new FinalizationRegistry(ep=>{var newCount=(proxyCounter.get(ep)||0)-1;proxyCounter.set(ep,newCount),0==newCount&&releaseEndpoint(ep)});function registerProxy(proxy,ep){var newCount=(proxyCounter.get(ep)||0)+1;proxyCounter.set(ep,newCount),proxyFinalizers&&proxyFinalizers.register(proxy,ep,proxy)}function unregisterProxy(proxy){proxyFinalizers&&proxyFinalizers.unregister(proxy)}function createProxy(ep,pendingListeners){var path=2{unregisterProxy(proxy),releaseEndpoint(ep),pendingListeners.clear(),isProxyReleased=!0}:"then"===prop?0===path.length?{then:()=>proxy}:(r=requestResponseMessage(ep,pendingListeners,{type:"GET",path:path.map(p=>p.toString())}).then(fromWireValue)).then.bind(r):createProxy(ep,pendingListeners,[...path,prop])},set(_target,prop,rawValue){throwIfProxyReleased(isProxyReleased);var[rawValue,transferables]=toWireValue(rawValue);return requestResponseMessage(ep,pendingListeners,{type:"SET",path:[...path,prop].map(p=>p.toString()),value:rawValue},transferables).then(fromWireValue)},apply(_target,_thisArg,rawArgumentList){throwIfProxyReleased(isProxyReleased);var last=path[path.length-1];return last===createEndpoint?requestResponseMessage(ep,pendingListeners,{type:"ENDPOINT"}).then(fromWireValue):"bind"===last?createProxy(ep,pendingListeners,path.slice(0,-1)):([last,rawArgumentList]=processArguments(rawArgumentList),requestResponseMessage(ep,pendingListeners,{type:"APPLY",path:path.map(p=>p.toString()),argumentList:last},rawArgumentList).then(fromWireValue))},construct(_target,rawArgumentList){throwIfProxyReleased(isProxyReleased);var[rawArgumentList,transferables]=processArguments(rawArgumentList);return requestResponseMessage(ep,pendingListeners,{type:"CONSTRUCT",path:path.map(p=>p.toString()),argumentList:rawArgumentList},transferables).then(fromWireValue)}});return registerProxy(proxy,ep),proxy}function myFlat(arr){return Array.prototype.concat.apply([],arr)}function processArguments(argumentList){argumentList=argumentList.map(toWireValue);return[argumentList.map(v=>v[0]),myFlat(argumentList.map(v=>v[1]))]}var transferCache=new WeakMap;function transfer(obj,transfers){return transferCache.set(obj,transfers),obj}function proxy(obj){return Object.assign(obj,{[proxyMarker]:!0})}function toWireValue(value){for(var[name,handler]of transferHandlers){var transferables;if(handler.canHandle(value))return[handler,transferables]=handler.serialize(value),[{type:"HANDLER",name:name,value:handler},transferables]}return[{type:"RAW",value:value},transferCache.get(value)||[]]}function fromWireValue(value){switch(value.type){case"HANDLER":return transferHandlers.get(value.name).deserialize(value.value);case"RAW":return value.value}}function requestResponseMessage(ep,pendingListeners,msg,transfers){return new Promise(resolve=>{var id=generateUUID();pendingListeners.set(id,resolve),ep.start&&ep.start(),ep.postMessage(Object.assign({id:id},msg),transfers)})}function generateUUID(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}var TYPE_MAP={32768:"FILE",16384:"DIR",40960:"SYMBOLIC_LINK",49152:"SOCKET",8192:"CHARACTER_DEVICE",24576:"BLOCK_DEVICE",4096:"NAMED_PIPE"};class ArchiveReader{constructor(wasmModule){this._wasmModule=wasmModule,this._runCode=wasmModule.runCode,this._file=null,this._passphrase=null,this._locale="en_US.UTF-8"}async open(file){null!==this._file&&(console.warn("Closing previous file"),this.close());file=await this._loadFile(file);this._fileLength=file.length,this._filePtr=file.ptr}close(){this._runCode.closeArchive(this._archive),this._wasmModule._free(this._filePtr),this._file=null,this._filePtr=null,this._archive=null}hasEncryptedData(){this._archive=this._runCode.openArchive(this._filePtr,this._fileLength,this._passphrase,this._locale),this._runCode.getNextEntry(this._archive);var status=this._runCode.hasEncryptedEntries(this._archive);return 0!==status&&(0{_ref2=_ref2.file;return acc+_ref2.size+128},0)+128,bufferPtr=this._runCode.malloc(totalSize),outputSizePtr=this._runCode.malloc(this._runCode.sizeOfSizeT()),newArchive=this._runCode.startArchiveWrite(compression,format,bufferPtr,totalSize,outputSizePtr,passphrase);for({file,pathname}of files){var fileData=await this._loadFile(file);this._runCode.writeArchiveFile(newArchive,pathname||file.name,fileData.length,fileData.ptr),this._runCode.free(fileData.ptr)}compression=this._runCode.finishArchiveWrite(newArchive,outputSizePtr);if(compression<0)throw new Error(this._runCode.getError(newArchive));return this._wasmModule.HEAPU8.slice(bufferPtr,bufferPtr+compression)}async _loadFile(file){var file=await file.arrayBuffer(),file=new Uint8Array(file),filePtr=this._runCode.malloc(file.length);return this._wasmModule.HEAPU8.set(file,filePtr),{ptr:filePtr,length:file.length}}}var libarchive=(()=>{var _scriptDir=import.meta.url;return async function(){var readyPromiseResolve,readyPromiseReject,require,fs,nodePath,read_,readBinary,readAsync,moduleArg=0{readyPromiseResolve=resolve,readyPromiseReject=reject}),Object.assign({},Module)),thisProgram="./this.program",quit_=(status,toThrow)=>{throw toThrow},ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,scriptDirectory="";ENVIRONMENT_IS_NODE?(createRequire=(await import("module"))["createRequire"],require=createRequire(import.meta.url),fs=require("fs"),nodePath=require("path"),scriptDirectory=ENVIRONMENT_IS_WORKER?nodePath.dirname(scriptDirectory)+"/":require("url").fileURLToPath(new URL("./",import.meta.url)),read_=(filename,binary)=>(filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename),fs.readFileSync(filename,binary?void 0:"utf8")),readBinary=filename=>{filename=read_(filename,!0);return filename=filename.buffer?filename:new Uint8Array(filename)},readAsync=function(filename,onload,onerror){var binary=!(3{err?onerror(err):onload(binary?data.buffer:data)})},!Module.thisProgram&&1{throw process.exitCode=status,toThrow},Module.inspect=()=>"[Emscripten Module object]"):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:"undefined"!=typeof document&&document.currentScript&&(scriptDirectory=document.currentScript.src),scriptDirectory=0!==(scriptDirectory=_scriptDir?_scriptDir:scriptDirectory).indexOf("blob:")?scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1):"",read_=url=>{var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=url=>{var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=()=>{200==xhr.status||0==xhr.status&&xhr.response?onload(xhr.response):onerror()},xhr.onerror=onerror,xhr.send(null)});var wasmBinary,wasmMemory,HEAP8,HEAPU8,HEAP16,HEAP32,HEAPU32,out=Module.print||console.log.bind(console),err=Module.printErr||console.error.bind(console),ABORT=(Object.assign(Module,moduleOverrides),Module.arguments&&Module.arguments,Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit),Module.wasmBinary&&(wasmBinary=Module.wasmBinary),"object"!=typeof WebAssembly&&abort("no native wasm support detected"),!1);function assert(condition,text){condition||abort(text)}function updateMemoryViews(){var b=wasmMemory.buffer;Module.HEAP8=HEAP8=new Int8Array(b),Module.HEAP16=HEAP16=new Int16Array(b),Module.HEAPU8=HEAPU8=new Uint8Array(b),Module.HEAPU16=new Uint16Array(b),Module.HEAP32=HEAP32=new Int32Array(b),Module.HEAPU32=HEAPU32=new Uint32Array(b),Module.HEAPF32=new Float32Array(b),Module.HEAPF64=new Float64Array(b)}var __ATPRERUN__=[],__ATINIT__=[],__ATPOSTRUN__=[];function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)cb=Module.preRun.shift(),__ATPRERUN__.unshift(cb);var cb;callRuntimeCallbacks(__ATPRERUN__)}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)cb=Module.postRun.shift(),__ATPOSTRUN__.unshift(cb);var cb;callRuntimeCallbacks(__ATPOSTRUN__)}var runDependencies=0,dependenciesFulfilled=null;function addRunDependency(){var _Module$monitorRunDep;runDependencies++,null!=(_Module$monitorRunDep=Module.monitorRunDependencies)&&_Module$monitorRunDep.call(Module,runDependencies)}function removeRunDependency(){var _Module$monitorRunDep2;runDependencies--,null!=(_Module$monitorRunDep2=Module.monitorRunDependencies)&&_Module$monitorRunDep2.call(Module,runDependencies),0==runDependencies&&dependenciesFulfilled&&(_Module$monitorRunDep2=dependenciesFulfilled,dependenciesFulfilled=null,_Module$monitorRunDep2())}function abort(what){null!=(_Module$onAbort=Module.onAbort)&&_Module$onAbort.call(Module,what),err(what="Aborted("+what+")"),ABORT=!0,what+=". Build with -sASSERTIONS for more info.";var _Module$onAbort=new WebAssembly.RuntimeError(what);throw readyPromiseReject(_Module$onAbort),_Module$onAbort}var wasmBinaryFile,createRequire,tempDouble,tempI64,isDataURI=filename=>filename.startsWith("data:application/octet-stream;base64,"),isFileURI=filename=>filename.startsWith("file://");function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(file);throw"both async and sync fetching of the wasm failed"}function instantiateArrayBuffer(binaryFile,imports,receiver){return function(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if("function"==typeof fetch&&!isFileURI(binaryFile))return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(response.ok)return response.arrayBuffer();throw"failed to load wasm binary file at '"+binaryFile+"'"}).catch(()=>getBinarySync(binaryFile));if(readAsync)return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}return Promise.resolve().then(()=>getBinarySync(binaryFile))}(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(instance=>instance).then(receiver,reason=>{err("failed to asynchronously prepare wasm: ".concat(reason)),abort(reason)})}function ExitStatus(status){this.name="ExitStatus",this.message="Program terminated with exit(".concat(status,")"),this.status=status}Module.locateFile?isDataURI(wasmBinaryFile="libarchive.wasm")||(createRequire=wasmBinaryFile,wasmBinaryFile=Module.locateFile?Module.locateFile(createRequire,scriptDirectory):scriptDirectory+createRequire):wasmBinaryFile=new URL("libarchive.wasm",import.meta.url).href;var callRuntimeCallbacks=callbacks=>{for(;0"/"===path.charAt(0),splitPath:filename=>{return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{for(var up=0,i=parts.length-1;0<=i;i--){var last=parts[i];"."===last?parts.splice(i,1):".."===last?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash="/"===path.substr(-1);return(path=(path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/"))||isAbsolute?path:".")&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:path=>{var path=PATH.splitPath(path),root=path[0],path=path[1];return root||path?root+(path=path&&path.substr(0,path.length-1)):"."},basename:path=>{var lastSlash;return"/"===path?"/":-1===(lastSlash=(path=(path=PATH.normalize(path)).replace(/\/$/,"")).lastIndexOf("/"))?path:path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join("/"))},join2:(l,r)=>PATH.normalize(l+"/"+r)},initRandomFill=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return view=>crypto.getRandomValues(view);if(ENVIRONMENT_IS_NODE)try{var randomBytes,crypto_module=require("crypto");return crypto_module.randomFillSync?view=>crypto_module.randomFillSync(view):(randomBytes=crypto_module.randomBytes,view=>(view.set(randomBytes(view.byteLength)),view))}catch(e){}abort("initRandomDevice")},randomFill=view=>(randomFill=initRandomFill())(view),PATH_FS={resolve:function(){for(var resolvedPath="",resolvedAbsolute=!1,i=arguments.length-1;-1<=i&&!resolvedAbsolute;i--){var path=0<=i?arguments[i]:FS.cwd();if("string"!=typeof path)throw new TypeError("Arguments to path.resolve must be strings");if(!path)return"";resolvedPath=path+"/"+resolvedPath,resolvedAbsolute=PATH.isAbs(path)}return(resolvedAbsolute?"/":"")+(resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/"))||"."},relative:(from,to)=>{function trim(arr){for(var start=0;start{for(var endIdx=idx+maxBytesToRead,endPtr=idx;heapOrArray[endPtr]&&!(endIdx<=endPtr);)++endPtr;if(16>10,56320|1023&u1)))):str+=String.fromCharCode(u0)}return str},FS_stdin_getChar_buffer=[],lengthBytesUTF8=str=>{for(var len=0,i=0;i{if(!(0>6}else{if(u<=65535){if(endIdx<=outIdx+2)break;heap[outIdx++]=224|u>>12}else{if(endIdx<=outIdx+3)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63}heap[outIdx++]=128|u>>6&63}heap[outIdx++]=128|63&u}}return heap[outIdx]=0,outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){length=0{abort()},MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode))throw new FS.ErrnoError(63);MEMFS.ops_table||(MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}});mode=FS.createNode(parent,name,mode,dev);return FS.isDir(mode.mode)?(mode.node_ops=MEMFS.ops_table.dir.node,mode.stream_ops=MEMFS.ops_table.dir.stream,mode.contents={}):FS.isFile(mode.mode)?(mode.node_ops=MEMFS.ops_table.file.node,mode.stream_ops=MEMFS.ops_table.file.stream,mode.usedBytes=0,mode.contents=null):FS.isLink(mode.mode)?(mode.node_ops=MEMFS.ops_table.link.node,mode.stream_ops=MEMFS.ops_table.link.stream):FS.isChrdev(mode.mode)&&(mode.node_ops=MEMFS.ops_table.chrdev.node,mode.stream_ops=MEMFS.ops_table.chrdev.stream),mode.timestamp=Date.now(),parent&&(parent.contents[name]=mode,parent.timestamp=mode.timestamp),mode},getFileDataAsTypedArray(node){return node.contents?node.contents.subarray?node.contents.subarray(0,node.usedBytes):new Uint8Array(node.contents):new Uint8Array(0)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;newCapacity<=prevCapacity||(newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<1048576?2:1.125)>>>0),0!=prevCapacity&&(newCapacity=Math.max(newCapacity,256)),prevCapacity=node.contents,node.contents=new Uint8Array(newCapacity),0=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(8{var mode=0;return canRead&&(mode|=365),canWrite&&(mode|=146),mode},FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(path){var opts=1!!p),current=FS.root,current_path="/",i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash],FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node)FS.nameTable[hash]=node.name_next;else for(var current=FS.nameTable[hash];current;){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode)throw new FS.ErrnoError(errCode,parent);for(var errCode=FS.hashName(parent.id,name),node=FS.nameTable[errCode];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name)return node}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){parent=new FS.FSNode(parent,name,mode,rdev);return FS.hashAddNode(parent),parent},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return 32768==(61440&mode)},isDir(mode){return 16384==(61440&mode)},isLink(mode){return 40960==(61440&mode)},isChrdev(mode){return 8192==(61440&mode)},isBlkdev(mode){return 24576==(61440&mode)},isFIFO(mode){return 4096==(61440&mode)},isSocket(mode){return 49152==(49152&mode)},flagsToPermissionString(flag){var perms=["r","w","rw"][3&flag];return 512&flag&&(perms+="w"),perms},nodePermissions(node,perms){return FS.ignorePermissions||(!perms.includes("r")||292&node.mode)&&(!perms.includes("w")||146&node.mode)&&(!perms.includes("x")||73&node.mode)?0:2},mayLookup(dir){var errCode=FS.nodePermissions(dir,"x");return errCode||(dir.node_ops.lookup?0:2)},mayCreate(dir,name){try{FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}name=FS.nodePermissions(dir,"wx");if(name)return name;if(isdir){if(!FS.isDir(node.mode))return 54;if(FS.isRoot(node)||FS.getPath(node)===FS.cwd())return 10}else if(FS.isDir(node.mode))return 31;return 0},mayOpen(node,flags){return node?FS.isLink(node.mode)?32:FS.isDir(node.mode)&&("r"!==FS.flagsToPermissionString(flags)||512&flags)?31:FS.nodePermissions(node,FS.flagsToPermissionString(flags)):44},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++)if(!FS.streams[fd])return fd;throw new FS.ErrnoError(33)},getStreamChecked(fd){fd=FS.getStream(fd);if(fd)return fd;throw new FS.ErrnoError(8)},getStream:fd=>FS.streams[fd],createStream(stream){var fd=1dev>>8,minor:dev=>255&dev,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){for(var mounts=[],check=[mount];check.length;){var m=check.pop();mounts.push(m),check.push.apply(check,m.mounts)}return mounts},syncfs(populate,callback){"function"==typeof populate&&(callback=populate,populate=!1),FS.syncFSRequests++,1=mounts.length&&doCallback(null)}mounts.forEach(mount=>{if(!mount.type.syncfs)return done(null);mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var node,root="/"===mountpoint,pseudo=!mountpoint;if(root&&FS.root)throw new FS.ErrnoError(10);if(!root&&!pseudo){pseudo=FS.lookupPath(mountpoint,{follow_mount:!1});if(mountpoint=pseudo.path,node=pseudo.node,FS.isMountpoint(node))throw new FS.ErrnoError(10);if(!FS.isDir(node.mode))throw new FS.ErrnoError(54)}pseudo={type:type,opts:opts,mountpoint:mountpoint,mounts:[]},opts=type.mount(pseudo);return(opts.mount=pseudo).root=opts,root?FS.root=opts:node&&(node.mounted=pseudo,node.mount)&&node.mount.mounts.push(pseudo),opts},unmount(mountpoint){mountpoint=FS.lookupPath(mountpoint,{follow_mount:!1});if(!FS.isMountpoint(mountpoint.node))throw new FS.ErrnoError(28);var mountpoint=mountpoint.node,mount=mountpoint.mounted,mounts=FS.getMounts(mount),mount=(Object.keys(FS.nameTable).forEach(hash=>{for(var current=FS.nameTable[hash];current;){var next=current.name_next;mounts.includes(current.mount)&&FS.destroyNode(current),current=next}}),mountpoint.mounted=null,mountpoint.mount.mounts.indexOf(mount));mountpoint.mount.mounts.splice(mount,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var parent=FS.lookupPath(path,{parent:!0}).node,path=PATH.basename(path);if(!path||"."===path||".."===path)throw new FS.ErrnoError(28);var errCode=FS.mayCreate(parent,path);if(errCode)throw new FS.ErrnoError(errCode);if(parent.node_ops.mknod)return parent.node_ops.mknod(parent,path,mode,dev);throw new FS.ErrnoError(63)},create(path,mode){return FS.mknod(path,mode=(mode=void 0!==mode?mode:438)&4095|32768,0)},mkdir(path,mode){return FS.mknod(path,mode=(mode=void 0!==mode?mode:511)&1023|16384,0)},mkdirTree(path,mode){for(var dirs=path.split("/"),d="",i=0;i{var flags={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[str];if(void 0===flags)throw new Error("Unknown file open mode: ".concat(str));return flags})(flags):flags)?4095&mode|32768:0,"object"==typeof path)node=path;else{path=PATH.normalize(path);try{var node=FS.lookupPath(path,{follow:!(131072&flags)}).node}catch(e){}}var created=!1;if(64&flags)if(node){if(128&flags)throw new FS.ErrnoError(20)}else node=FS.mknod(path,mode,0),created=!0;if(!node)throw new FS.ErrnoError(44);if(FS.isChrdev(node.mode)&&(flags&=-513),65536&flags&&!FS.isDir(node.mode))throw new FS.ErrnoError(54);if(!created){mode=FS.mayOpen(node,flags);if(mode)throw new FS.ErrnoError(mode)}512&flags&&!created&&FS.truncate(node,0),flags&=-131713;mode=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:!0,position:0,stream_ops:node.stream_ops,ungotten:[],error:!1});return mode.stream_ops.open&&mode.stream_ops.open(mode),!Module.logReadFiles||1&flags||(FS.readFiles||(FS.readFiles={}),path in FS.readFiles)||(FS.readFiles[path]=1),mode},close(stream){if(FS.isClosed(stream))throw new FS.ErrnoError(8);stream.getdents&&(stream.getdents=null);try{stream.stream_ops.close&&stream.stream_ops.close(stream)}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return null===stream.fd},llseek(stream,offset,whence){if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(!stream.seekable||!stream.stream_ops.llseek)throw new FS.ErrnoError(70);if(0!=whence&&1!=whence&&2!=whence)throw new FS.ErrnoError(28);return stream.position=stream.stream_ops.llseek(stream,offset,whence),stream.ungotten=[],stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0)throw new FS.ErrnoError(28);if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(1==(2097155&stream.flags))throw new FS.ErrnoError(8);if(FS.isDir(stream.node.mode))throw new FS.ErrnoError(31);if(!stream.stream_ops.read)throw new FS.ErrnoError(28);var seeking=void 0!==position;if(seeking){if(!stream.seekable)throw new FS.ErrnoError(70)}else position=stream.position;buffer=stream.stream_ops.read(stream,buffer,offset,length,position);return seeking||(stream.position+=buffer),buffer},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0)throw new FS.ErrnoError(28);if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(0==(2097155&stream.flags))throw new FS.ErrnoError(8);if(FS.isDir(stream.node.mode))throw new FS.ErrnoError(31);if(!stream.stream_ops.write)throw new FS.ErrnoError(28);stream.seekable&&1024&stream.flags&&FS.llseek(stream,0,2);var seeking=void 0!==position;if(seeking){if(!stream.seekable)throw new FS.ErrnoError(70)}else position=stream.position;buffer=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);return seeking||(stream.position+=buffer),buffer},allocate(stream,offset,length){if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(offset<0||length<=0)throw new FS.ErrnoError(28);if(0==(2097155&stream.flags))throw new FS.ErrnoError(8);if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode))throw new FS.ErrnoError(43);if(!stream.stream_ops.allocate)throw new FS.ErrnoError(138);stream.stream_ops.allocate(stream,offset,length)},mmap(stream,length,position,prot,flags){if(0!=(2&prot)&&0==(2&flags)&&2!=(2097155&stream.flags))throw new FS.ErrnoError(2);if(1==(2097155&stream.flags))throw new FS.ErrnoError(2);if(stream.stream_ops.mmap)return stream.stream_ops.mmap(stream,length,position,prot,flags);throw new FS.ErrnoError(43)},msync(stream,buffer,offset,length,mmapFlags){return stream.stream_ops.msync?stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags):0},munmap:stream=>0,ioctl(stream,cmd,arg){if(stream.stream_ops.ioctl)return stream.stream_ops.ioctl(stream,cmd,arg);throw new FS.ErrnoError(59)},readFile(path){var ret,opts=1FS.currentPath,chdir(path){path=FS.lookupPath(path,{follow:!0});if(null===path.node)throw new FS.ErrnoError(44);if(!FS.isDir(path.node.mode))throw new FS.ErrnoError(54);var errCode=FS.nodePermissions(path.node,"x");if(errCode)throw new FS.ErrnoError(errCode);FS.currentPath=path.path},createDefaultDirectories(){FS.mkdir("/tmp"),FS.mkdir("/home"),FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev"),FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length}),FS.mkdev("/dev/null",FS.makedev(1,3)),TTY.register(FS.makedev(5,0),TTY.default_tty_ops),TTY.register(FS.makedev(6,0),TTY.default_tty1_ops),FS.mkdev("/dev/tty",FS.makedev(5,0)),FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0,randomByte=()=>(0===randomLeft&&(randomLeft=randomFill(randomBuffer).byteLength),randomBuffer[--randomLeft]);FS.createDevice("/dev","random",randomByte),FS.createDevice("/dev","urandom",randomByte),FS.mkdir("/dev/shm"),FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd"),FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);return node.node_ops={lookup(parent,name){var stream=FS.getStreamChecked(+name),name={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};return name.parent=name}},node}},{},"/proc/self/fd")},createStandardStreams(){Module.stdin?FS.createDevice("/dev","stdin",Module.stdin):FS.symlink("/dev/tty","/dev/stdin"),Module.stdout?FS.createDevice("/dev","stdout",null,Module.stdout):FS.symlink("/dev/tty","/dev/stdout"),Module.stderr?FS.createDevice("/dev","stderr",null,Module.stderr):FS.symlink("/dev/tty1","/dev/stderr"),FS.open("/dev/stdin",0),FS.open("/dev/stdout",1),FS.open("/dev/stderr",1)},ensureErrnoError(){FS.ErrnoError||(FS.ErrnoError=function(errno,node){this.name="ErrnoError",this.node=node,this.setErrno=function(errno){this.errno=errno},this.setErrno(errno),this.message="FS error"},FS.ErrnoError.prototype=new Error,FS.ErrnoError.prototype.constructor=FS.ErrnoError,[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code),FS.genericErrors[code].stack=""}))},staticInit(){FS.ensureErrnoError(),FS.nameTable=new Array(4096),FS.mount(MEMFS,{},"/"),FS.createDefaultDirectories(),FS.createDefaultDevices(),FS.createSpecialDirectories(),FS.filesystems={MEMFS:MEMFS}},init(input,output,error){FS.init.initialized=!0,FS.ensureErrnoError(),Module.stdin=input||Module.stdin,Module.stdout=output||Module.stdout,Module.stderr=error||Module.stderr,FS.createStandardStreams()},quit(){FS.init.initialized=!1;for(var i=0;ithis.length-1||idx<0))return chunkOffset=idx%this.chunkSize,idx=idx/this.chunkSize|0,this.getter(idx)[chunkOffset]},LazyUint8Array.prototype.setDataGetter=function(getter){this.getter=getter},LazyUint8Array.prototype.cacheLength=function(){var xhr=new XMLHttpRequest;if(xhr.open("HEAD",url,!1),xhr.send(null),!(200<=xhr.status&&xhr.status<300||304===xhr.status))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var header,datalength=Number(xhr.getResponseHeader("Content-length")),hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&"bytes"===header,xhr=(header=xhr.getResponseHeader("Content-Encoding"))&&"gzip"===header,chunkSize=1048576,lazyArray=(hasByteServing||(chunkSize=datalength),this);lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize,end=(chunkNum+1)*chunkSize-1,end=Math.min(end,datalength-1);if(void 0===lazyArray.chunks[chunkNum]&&(lazyArray.chunks[chunkNum]=((from,to)=>{if(to=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice)for(var i=0;i{var fn=node.stream_ops[key];stream_ops[key]=function(){return FS.forceLoadFile(node),fn.apply(null,arguments)}}),stream_ops.read=(stream,buffer,offset,length,position)=>(FS.forceLoadFile(node),writeChunks(stream,buffer,offset,length,position)),stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);mmapAlloc();throw new FS.ErrnoError(48)},node.stream_ops=stream_ops,node}},UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"",SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path))return path;if(dirfd=-100===dirfd?FS.cwd():SYSCALLS.getStreamFromFD(dirfd).path,0!=path.length)return PATH.join2(dirfd,path);if(allowEmpty)return dirfd;throw new FS.ErrnoError(44)},doStat(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node)))return-54;throw e}HEAP32[buf>>2]=stat.dev,HEAP32[buf+4>>2]=stat.mode,HEAPU32[buf+8>>2]=stat.nlink,HEAP32[buf+12>>2]=stat.uid,HEAP32[buf+16>>2]=stat.gid,HEAP32[buf+20>>2]=stat.rdev,tempI64=[stat.size>>>0,(tempDouble=stat.size,1<=+Math.abs(tempDouble)?0>>0:~~+Math.ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1],HEAP32[buf+32>>2]=4096,HEAP32[buf+36>>2]=stat.blocks;var func=stat.atime.getTime(),path=stat.mtime.getTime(),ctime=stat.ctime.getTime();return tempI64=[Math.floor(func/1e3)>>>0,(tempDouble=Math.floor(func/1e3),1<=+Math.abs(tempDouble)?0>>0:~~+Math.ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1],HEAPU32[buf+48>>2]=func%1e3*1e3,tempI64=[Math.floor(path/1e3)>>>0,(tempDouble=Math.floor(path/1e3),1<=+Math.abs(tempDouble)?0>>0:~~+Math.ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1],HEAPU32[buf+64>>2]=path%1e3*1e3,tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),1<=+Math.abs(tempDouble)?0>>0:~~+Math.ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1],HEAPU32[buf+80>>2]=ctime%1e3*1e3,tempI64=[stat.ino>>>0,(tempDouble=stat.ino,1<=+Math.abs(tempDouble)?0>>0:~~+Math.ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1],0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode))throw new FS.ErrnoError(43);if(2&flags)return 0;addr=HEAPU8.slice(addr,addr+len);FS.msync(stream,addr,offset,len,flags)},varargs:void 0,get(){var ret=HEAP32[+SYSCALLS.varargs>>2];return SYSCALLS.varargs+=4,ret},getp(){return SYSCALLS.get()},getStr(ptr){return UTF8ToString(ptr)},getStreamFromFD(fd){return FS.getStreamChecked(fd)}};var setErrNo=value=>HEAP32[___errno_location()>>2]=value;var PIPEFS={BUCKET_BUFFER_SIZE:8192,mount(mount){return FS.createNode(null,"/",16895,0)},createPipe(){var pipe={buckets:[],refcnt:2},rName=(pipe.buckets.push({buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:0,roffset:0}),PIPEFS.nextname()),wName=PIPEFS.nextname(),rNode=FS.createNode(PIPEFS.root,rName,4096,0),wNode=FS.createNode(PIPEFS.root,wName,4096,0),pipe=(rNode.pipe=pipe,wNode.pipe=pipe,FS.createStream({path:rName,node:rNode,flags:0,seekable:!1,stream_ops:PIPEFS.stream_ops})),rName=(rNode.stream=pipe,FS.createStream({path:wName,node:wNode,flags:1,seekable:!1,stream_ops:PIPEFS.stream_ops}));return wNode.stream=rName,{readable_fd:pipe.fd,writable_fd:rName.fd}},stream_ops:{poll(stream){var pipe=stream.node.pipe;if(1==(2097155&stream.flags))return 260;if(0hi+2097152>>>0<4194305-!!lo?(lo>>>0)+4294967296*hi:NaN;var isLeapYear=year=>year%4==0&&(year%100!=0||year%400==0),MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335],MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334],ydayFromDate=date=>{return(isLeapYear(date.getFullYear())?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE)[date.getMonth()]+date.getDate()-1};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite),stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1,ret=_malloc(size);return ret&&stringToUTF8(str,ret,size),ret},ENV={},getExecutableName=()=>thisProgram||"./this.program",getEnvStrings=()=>{if(!getEnvStrings.strings){var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:getExecutableName()};for(x in ENV)void 0===ENV[x]?delete env[x]:env[x]=ENV[x];var x,strings=[];for(x in env)strings.push("".concat(x,"=").concat(env[x]));getEnvStrings.strings=strings}return getEnvStrings.strings},keepRuntimeAlive=()=>noExitRuntime||!1,moduleOverrides=(status,implicit)=>{var _Module$onExit;status=status,keepRuntimeAlive()||(null!=(_Module$onExit=Module.onExit)&&_Module$onExit.call(Module,status),ABORT=!0),quit_(status,new ExitStatus(status))};function FSNode(parent,name,mode,rdev){this.parent=parent=parent||this,this.mount=parent.mount,this.mounted=null,this.id=FS.nextInode++,this.name=name,this.mode=mode,this.node_ops={},this.stream_ops={},this.rdev=rdev}var calledRun,MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31],MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31],writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)},getCFunc=ident=>{return Module["_"+ident]},stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1,ret=stackAlloc(size);return stringToUTF8(str,ret,size),ret},ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;return ret=null!=str&&0!==str?stringToUTF8OnStack(str):ret},array:arr=>{var ret=stackAlloc(arr.length);return writeArrayToMemory(arr,ret),ret}};var ident=getCFunc(ident),cArgs=[],stack=0;if(args)for(var i=0;i{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;function processData(byteArray){function finish(byteArray){null!=preFinish&&preFinish(),dontCreateFile||((parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)})(parent,name,byteArray,canRead,canWrite,canOwn),null!=onload&&onload(),removeRunDependency()}((byteArray,fullname,finish,onerror)=>{"undefined"!=typeof Browser&&Browser.init();var handled=!1;return preloadPlugins.forEach(plugin=>{handled||plugin.canHandle(fullname)&&(plugin.handle(byteArray,fullname,finish,onerror),handled=!0)}),handled})(byteArray,fullname,finish,()=>{null!=onerror&&onerror(),removeRunDependency()})||finish(byteArray)}addRunDependency(),"string"==typeof url?((url,onload,onerror,noRunDep)=>{var dep=noRunDep?"":"al ".concat(url);readAsync(url,arrayBuffer=>{assert(arrayBuffer,'Loading data file "'.concat(url,'" failed (no arrayBuffer).')),onload(new Uint8Array(arrayBuffer)),dep&&removeRunDependency()},event=>{if(!onerror)throw'Loading data file "'.concat(url,'" failed.');onerror()}),dep&&addRunDependency()})(url,byteArray=>processData(byteArray),onerror):processData(url)},FS.staticInit(),{i:function(fd){try{var old=SYSCALLS.getStreamFromFD(fd);return FS.createStream(old).fd}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}},a:function(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:if((arg=SYSCALLS.get())<0)return-28;for(;FS.streams[arg];)arg++;return FS.createStream(stream,arg).fd;case 1:case 2:return 0;case 3:return stream.flags;case 4:var arg=SYSCALLS.get();return stream.flags|=arg,0;case 5:arg=SYSCALLS.getp();return HEAP16[arg+0>>1]=2,0;case 6:case 7:return 0;case 16:case 8:return-28;case 9:return setErrNo(28),-1;default:return-28}}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}},x:function(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}},u:function(path,buf){try{return path=SYSCALLS.getStr(path),SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}},v:function(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=256&flags,allowEmpty=4096&flags;return flags&=-6401,path=SYSCALLS.calculateAt(dirfd,path,allowEmpty),SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}},y:function(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path),path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}},t:function(fdPtr){try{if(0==fdPtr)throw new FS.ErrnoError(21);var res=PIPEFS.createPipe();return HEAP32[fdPtr>>2]=res.readable_fd,HEAP32[fdPtr+4>>2]=res.writable_fd,0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}},s:function(fds,nfds,timeout){try{for(var nonzero=0,i=0;i>2],events=HEAP16[pollfd+4>>1],mask=32,stream=FS.getStream(fd);stream&&(mask=SYSCALLS.DEFAULT_POLLMASK,stream.stream_ops.poll)&&(mask=stream.stream_ops.poll(stream,-1)),(mask&=24|events)&&nonzero++,HEAP16[pollfd+6>>1]=mask}return nonzero}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}},w:function(path,buf){try{return path=SYSCALLS.getStr(path),SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}},q:function(dirfd,path,flags){try{return path=SYSCALLS.getStr(path),path=SYSCALLS.calculateAt(dirfd,path),0===flags?FS.unlink(path):512===flags?FS.rmdir(path):abort("Invalid flags passed to unlinkat"),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return-e.errno}},B:()=>1,k:function(time_low,time_high,tmPtr){time_low=convertI32PairToI53Checked(time_low,time_high),time_high=new Date(1e3*time_low),HEAP32[tmPtr>>2]=time_high.getUTCSeconds(),HEAP32[tmPtr+4>>2]=time_high.getUTCMinutes(),HEAP32[tmPtr+8>>2]=time_high.getUTCHours(),HEAP32[tmPtr+12>>2]=time_high.getUTCDate(),HEAP32[tmPtr+16>>2]=time_high.getUTCMonth(),HEAP32[tmPtr+20>>2]=time_high.getUTCFullYear()-1900,HEAP32[tmPtr+24>>2]=time_high.getUTCDay(),time_low=Date.UTC(time_high.getUTCFullYear(),0,1,0,0,0,0),time_high=(time_high.getTime()-time_low)/864e5|0,HEAP32[tmPtr+28>>2]=time_high},l:function(time_low,time_high,tmPtr){var time_low=convertI32PairToI53Checked(time_low,time_high),time_high=new Date(1e3*time_low),time_low=(HEAP32[tmPtr>>2]=time_high.getSeconds(),HEAP32[tmPtr+4>>2]=time_high.getMinutes(),HEAP32[tmPtr+8>>2]=time_high.getHours(),HEAP32[tmPtr+12>>2]=time_high.getDate(),HEAP32[tmPtr+16>>2]=time_high.getMonth(),HEAP32[tmPtr+20>>2]=time_high.getFullYear()-1900,HEAP32[tmPtr+24>>2]=time_high.getDay(),0|ydayFromDate(time_high)),time_low=(HEAP32[tmPtr+28>>2]=time_low,HEAP32[tmPtr+36>>2]=-60*time_high.getTimezoneOffset(),new Date(time_high.getFullYear(),0,1)),summerOffset=new Date(time_high.getFullYear(),6,1).getTimezoneOffset(),time_low=time_low.getTimezoneOffset(),time_high=0|(summerOffset!=time_low&&time_high.getTimezoneOffset()==Math.min(time_low,summerOffset));HEAP32[tmPtr+32>>2]=time_high},m:function(tmPtr){date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0),dst=HEAP32[tmPtr+32>>2],guessedOffset=date.getTimezoneOffset(),start=new Date(date.getFullYear(),0,1),summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset(),start=start.getTimezoneOffset(),dstOffset=Math.min(start,summerOffset),dst<0?HEAP32[tmPtr+32>>2]=Number(summerOffset!=start&&dstOffset==guessedOffset):0>2]=date.getDay(),dst=0|ydayFromDate(date),HEAP32[tmPtr+28>>2]=dst,HEAP32[tmPtr>>2]=date.getSeconds(),HEAP32[tmPtr+4>>2]=date.getMinutes(),HEAP32[tmPtr+8>>2]=date.getHours(),HEAP32[tmPtr+12>>2]=date.getDate(),HEAP32[tmPtr+16>>2]=date.getMonth(),HEAP32[tmPtr+20>>2]=date.getYear(),dstOffset=date.getTime();var date,dst,guessedOffset,summerOffset,dstOffset,start=isNaN(dstOffset)?(setErrNo(61),-1):dstOffset/1e3;return setTempRet0((tempDouble=start,1<=+Math.abs(tempDouble)?0>>0:~~+Math.ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)),start>>>0},n:function(tmPtr){time=Date.UTC(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0),time=new Date(time),HEAP32[tmPtr+24>>2]=time.getUTCDay(),start=Date.UTC(time.getUTCFullYear(),0,1,0,0,0,0),start=(time.getTime()-start)/864e5|0,HEAP32[tmPtr+28>>2]=start;var time,start,tmPtr=time.getTime()/1e3;return setTempRet0((tempDouble=tmPtr,1<=+Math.abs(tempDouble)?0>>0:~~+Math.ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)),tmPtr>>>0},r:(timezone,daylight,tzname)=>{var currentYear=(new Date).getFullYear(),winter=new Date(currentYear,0,1),currentYear=new Date(currentYear,6,1),winterOffset=winter.getTimezoneOffset(),summerOffset=currentYear.getTimezoneOffset(),stdTimezoneOffset=Math.max(winterOffset,summerOffset);function extractZone(date){date=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return date?date[1]:"GMT"}HEAPU32[timezone>>2]=60*stdTimezoneOffset,HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);timezone=extractZone(winter),stdTimezoneOffset=extractZone(currentYear),daylight=stringToNewUTF8(timezone),winter=stringToNewUTF8(stdTimezoneOffset);summerOffset>2]=daylight,HEAPU32[tzname+4>>2]=winter):(HEAPU32[tzname>>2]=winter,HEAPU32[tzname+4>>2]=daylight)},b:()=>{abort("")},c:()=>Date.now(),h:(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num),p:requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;if(!(2147483648{size=(size-wasmMemory.buffer.byteLength+65535)/65536;try{return wasmMemory.grow(size),updateMemoryViews(),1}catch(e){}})(Math.min(2147483648,(overGrownHeapSize=Math.max(requestedSize,overGrownHeapSize))+((multiple=65536)-overGrownHeapSize%multiple)%multiple)))return!0}return!1},z:(__environ,environ_buf)=>{var bufSize=0;return getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;((str,buffer)=>{for(var i=0;i>0]=str.charCodeAt(i);HEAP8[buffer>>0]=0})(string,HEAPU32[__environ+4*i>>2]=ptr),bufSize+=string.length+1}),0},A:(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings(),bufSize=(HEAPU32[penviron_count>>2]=strings.length,0);return strings.forEach(string=>bufSize+=string.length+1),HEAPU32[penviron_buf_size>>2]=bufSize,0},g:moduleOverrides,e:function(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);return FS.close(stream),0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return e.errno}},j:function(fd,iov,iovcnt,pnum){try{var num=((stream,iov,iovcnt,offset)=>{for(var ret=0,i=0;i>2],len=HEAPU32[iov+4>>2],ptr=(iov+=8,FS.read(stream,HEAP8,ptr,len,offset));if(ptr<0)return-1;if(ret+=ptr,ptr>2]=num,0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return e.errno}},o:function(fd,offset_low,offset_high,whence,newOffset){var stream,offset_low=convertI32PairToI53Checked(offset_low,offset_high);try{return isNaN(offset_low)?61:(stream=SYSCALLS.getStreamFromFD(fd),FS.llseek(stream,offset_low,whence),tempI64=[stream.position>>>0,(tempDouble=stream.position,1<=+Math.abs(tempDouble)?0>>0:~~+Math.ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1],stream.getdents&&0===offset_low&&0===whence&&(stream.getdents=null),0)}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return e.errno}},d:function(fd,iov,iovcnt,pnum){try{var num=((stream,iov,iovcnt,offset)=>{for(var ret=0,i=0;i>2],len=HEAPU32[iov+4>>2],ptr=(iov+=8,FS.write(stream,HEAP8,ptr,len,offset));if(ptr<0)return-1;ret+=ptr,void 0!==offset&&(offset+=ptr)}return ret})(SYSCALLS.getStreamFromFD(fd),iov,iovcnt);return HEAPU32[pnum>>2]=num,0}catch(e){if(void 0===FS||"ErrnoError"!==e.name)throw e;return e.errno}},f:(s,maxsize,format,tm)=>{var tm_zone=HEAPU32[tm+40>>2],date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""},pattern=UTF8ToString(format),EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(rule in EXPANSION_RULES_1)pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule]);var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){for(var str="number"==typeof value?value.toString():value||"";str.length{for(var newDate=new Date(date.getTime());0leap-newDate.getDate()))return newDate.setDate(newDate.getDate()+days),newDate;days-=leap-newDate.getDate()+1,newDate.setDate(1),currentMonth<11?newDate.setMonth(currentMonth+1):(newDate.setMonth(0),newDate.setFullYear(newDate.getFullYear()+1))}return newDate})(new Date(date.tm_year+1900,0,1),date.tm_yday),janFourthThisYear=new Date(date.getFullYear(),0,4),janFourthNextYear=new Date(date.getFullYear()+1,0,4),janFourthThisYear=getFirstWeekStartDate(janFourthThisYear),janFourthNextYear=getFirstWeekStartDate(janFourthNextYear);return compareByDay(janFourthThisYear,date)<=0?compareByDay(janFourthNextYear,date)<=0?date.getFullYear()+1:date.getFullYear():date.getFullYear()-1}var rule,EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{return leadingNulls((date.tm_year+1900)/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":date=>getWeekBasedYear(date),"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{date=date.tm_hour;return 0==date?date=12:12leadingNulls(date.tm_mday+((array,index)=>{for(var sum=0,i=0;i<=index;sum+=array[i++]);return sum})(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>0<=date.tm_hour&&date.tm_hour<12?"AM":"PM","%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{date=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(date/7),2)},"%V":date=>{var jan1,val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);return(date.tm_wday+371-date.tm_yday-2)%7<=2&&val++,val?53!=val||4==(jan1=(date.tm_wday+371-date.tm_yday)%7)||3==jan1&&isLeapYear(date.tm_year)||(val=1):(val=52,(4==(jan1=(date.tm_wday+7-date.tm_yday-1)%7)||5==jan1&&isLeapYear(date.tm_year%400-1))&&val++),leadingNulls(val,2)},"%w":date=>date.tm_wday,"%W":date=>{date=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(date/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":date=>{var ahead=0<=(date=date.tm_gmtoff),date=Math.abs(date)/60;return(ahead?"+":"-")+String("0000"+(date/60*100+date%60)).slice(-4)},"%Z":date=>date.tm_zone,"%%":()=>"%"},pattern=pattern.replace(/%%/g,"\0\0");for(rule in EXPANSION_RULES_2)pattern.includes(rule)&&(pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date)));tm=intArrayFromString(pattern=pattern.replace(/\0\0/g,"%"),!1);return tm.length>maxsize?0:(writeArrayToMemory(tm,s),tm.length-1)}}),wasmExports=function(){var binaryFile,imports,callback,info={a:wasmImports};function receiveInstance(instance,module){return wasmExports=instance.exports,wasmMemory=wasmExports.C,updateMemoryViews(),instance=wasmExports.D,__ATINIT__.unshift(instance),removeRunDependency(),wasmExports}if(addRunDependency(),Module.instantiateWasm)try{return Module.instantiateWasm(info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: ".concat(e)),readyPromiseReject(e)}return binaryFile=wasmBinaryFile,imports=info,callback=function(result){receiveInstance(result.instance)},(wasmBinary||"function"!=typeof WebAssembly.instantiateStreaming||isDataURI(binaryFile)||isFileURI(binaryFile)||ENVIRONMENT_IS_NODE||"function"!=typeof fetch?instantiateArrayBuffer(binaryFile,imports,callback):fetch(binaryFile,{credentials:"same-origin"}).then(response=>{return WebAssembly.instantiateStreaming(response,imports).then(callback,function(reason){return err("wasm streaming compile failed: ".concat(reason)),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(binaryFile,imports,callback)})})).catch(readyPromiseReject),{}}(),_malloc=(Module._get_version=()=>(Module._get_version=wasmExports.E)(),Module._archive_open=(a0,a1,a2,a3)=>(Module._archive_open=wasmExports.F)(a0,a1,a2,a3),Module._archive_read_add_passphrase=(a0,a1)=>(Module._archive_read_add_passphrase=wasmExports.G)(a0,a1),Module._archive_error_string=a0=>(Module._archive_error_string=wasmExports.H)(a0),Module._get_next_entry=a0=>(Module._get_next_entry=wasmExports.I)(a0),Module._get_filedata=(a0,a1)=>(Module._get_filedata=wasmExports.J)(a0,a1),Module._malloc=a0=>(_malloc=Module._malloc=wasmExports.K)(a0)),___errno_location=(Module._archive_close=a0=>(Module._archive_close=wasmExports.L)(a0),Module._start_archive_write=(a0,a1,a2,a3,a4,a5)=>(Module._start_archive_write=wasmExports.M)(a0,a1,a2,a3,a4,a5),Module._write_archive_file=(a0,a1,a2,a3)=>(Module._write_archive_file=wasmExports.N)(a0,a1,a2,a3),Module._size_of_size_t=()=>(Module._size_of_size_t=wasmExports.O)(),Module._finish_archive_write=(a0,a1)=>(Module._finish_archive_write=wasmExports.P)(a0,a1),Module._free=a0=>(Module._free=wasmExports.Q)(a0),()=>(___errno_location=wasmExports.R)()),setTempRet0=(Module._archive_entry_birthtime_nsec=a0=>(Module._archive_entry_birthtime_nsec=wasmExports.S)(a0),Module._archive_entry_filetype=a0=>(Module._archive_entry_filetype=wasmExports.T)(a0),Module._archive_entry_mtime_nsec=a0=>(Module._archive_entry_mtime_nsec=wasmExports.U)(a0),Module._archive_entry_pathname=a0=>(Module._archive_entry_pathname=wasmExports.V)(a0),Module._archive_entry_pathname_utf8=a0=>(Module._archive_entry_pathname_utf8=wasmExports.W)(a0),Module._archive_entry_size=a0=>(Module._archive_entry_size=wasmExports.X)(a0),Module._archive_entry_is_encrypted=a0=>(Module._archive_entry_is_encrypted=wasmExports.Y)(a0),Module._archive_read_has_encrypted_entries=a0=>(Module._archive_read_has_encrypted_entries=wasmExports.Z)(a0),Module._archive_read_data_skip=a0=>(Module._archive_read_data_skip=wasmExports._)(a0),a0=>(setTempRet0=wasmExports.aa)(a0)),stackSave=()=>(stackSave=wasmExports.ba)(),stackRestore=a0=>(stackRestore=wasmExports.ca)(a0),stackAlloc=a0=>(stackAlloc=wasmExports.da)(a0);function run(){function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,ABORT)||(Module.noFSInit||FS.init.initialized||FS.init(),FS.ignorePermissions=!1,PIPEFS.root=FS.mount(PIPEFS,{},null),callRuntimeCallbacks(__ATINIT__),readyPromiseResolve(Module),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),postRun())}0{var numericArgs=!argTypes||argTypes.every(type=>"number"===type||"boolean"===type);return"string"!==returnType&&numericArgs&&!opts?getCFunc(ident):function(){return ccall(ident,returnType,argTypes,arguments)}},Module.allocate=(slab,allocator)=>{allocator=(1==allocator?stackAlloc:_malloc)(slab.length);return slab.subarray||slab.slice||(slab=new Uint8Array(slab)),HEAPU8.set(slab,allocator),allocator},dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)},Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);0this.allocate(this.intArrayFromString(str),"i8",0),malloc:this.cwrap("malloc","number",["number"]),free:this.cwrap("free",null,["number"]),sizeOfSizeT:this.cwrap("size_of_size_t","number",[])}}monitorRunDependencies(){}}function getWasmModule(cb){libarchive(new WasmModule).then(module=>{module.initFunctions(),cb(module)})}var reader=null,writer=null,ready=!1;class LibArchiveWorker{constructor(readyCallback){LibArchiveWorker.readyCallback=readyCallback,ready&&setTimeout(()=>readyCallback(),0)}open(file,cb){reader.open(file).then(()=>cb())}listFiles(){var entry,arr=[];for(entry of reader.entries(!0))arr.push(entry);return arr}extractFiles(){var entry,arr=[];for(entry of reader.entries(!1))arr.push(entry);return arr}extractSingleFile(target){for(var entry of reader.entries(!0,target))if(entry.fileData)return entry}hasEncryptedData(){return reader.hasEncryptedData()}usePassword(passphrase){reader.setPassphrase(passphrase)}setLocale(locale){reader.setLocale(locale)}writeArchive(files,compression,format,passphrase){return writer.write(files,compression,format,passphrase)}close(){reader.close()}}getWasmModule(wasmModule=>{reader=new ArchiveReader(wasmModule),writer=new ArchiveWriter(wasmModule),null!=LibArchiveWorker&&null!=LibArchiveWorker.readyCallback&&LibArchiveWorker.readyCallback(),ready=!0}),expose(LibArchiveWorker); \ No newline at end of file diff --git a/thirdparty/pdfjs/pdf.js b/thirdparty/pdfjs/pdf.js new file mode 100644 index 0000000..e154de2 --- /dev/null +++ b/thirdparty/pdfjs/pdf.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){var _AnnotationEditor,_PDFDocumentLoadingTa,_PDFDocumentLoadingTa2,_FreeTextEditor,_HighlightEditor,_DrawingEditor;function _toSetter(t,e,n){var r=(e=e||[]).length++;return Object.defineProperty({},"_",{set:function(o){e[r]=o,t.apply(n,e)}})}function _superPropGet(t,o,e,r){var p=babelHelpers.get(babelHelpers.getPrototypeOf(1&r?t.prototype:t),o,e);return 2&r&&"function"==typeof p?function(t){return p.apply(e,t)}:p}function ownKeys(e,r){var o,t=Object.keys(e);return Object.getOwnPropertySymbols&&(o=Object.getOwnPropertySymbols(e),r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)),t}function _objectSpread(e){for(var r=1;r=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e=VerbosityLevel.INFOS&&console.log("Info: ".concat(msg))}function warn(msg){verbosity>=VerbosityLevel.WARNINGS&&console.log("Warning: ".concat(msg))}function unreachable(msg){throw new Error(msg)}function assert(cond,msg){cond||unreachable(msg)}function createValidAbsoluteUrl(url){var baseUrl=1rect[2]&&(r[0]=rect[2],r[2]=rect[0]),rect[1]>rect[3]&&(r[1]=rect[3],r[3]=rect[1]),r}},{key:"intersect",value:function(rect1,rect2){var yLow,xLow=Math.max(Math.min(rect1[0],rect1[2]),Math.min(rect2[0],rect2[2])),xHigh=Math.min(Math.max(rect1[0],rect1[2]),Math.max(rect2[0],rect2[2]));return xHigh>16,(65280&colorRGB)>>8,255&colorRGB]:color.startsWith("rgb(")?color.slice(4,-1).split(",").map(function(x){return parseInt(x)}):color.startsWith("rgba(")?color.slice(5,-1).split(",").map(function(x){return parseInt(x)}).slice(0,3):(warn('Not a valid color format: "'.concat(color,'"')),[0,0,0])}function getCurrentTransform(ctx){ctx=ctx.getTransform();return[ctx.a,ctx.b,ctx.c,ctx.d,ctx.e,ctx.f]}function getCurrentTransformInverse(ctx){ctx=ctx.getTransform().invertSelf();return[ctx.a,ctx.b,ctx.c,ctx.d,ctx.e,ctx.f]}function setLayerDimensions(div,viewport){var style,_viewport$rawDims,pageWidth,useRound,mustFlip=2capAreaFactor||this.sy>capAreaFactor)&&(this.sx=capAreaFactor,this.sy=capAreaFactor,!0)}}],[{key:"pixelRatio",get:function(){return globalThis.devicePixelRatio||1}},{key:"capPixels",value:function(maxPixels,capAreaFactor){return 0<=capAreaFactor?(capAreaFactor=Math.ceil(window.screen.availWidth*window.screen.availHeight*Math.pow(this.pixelRatio,2)*(1+capAreaFactor/100)),0_classPrivateFieldGet144.identifier&&(onTouchEnd=(evt=[_classPrivateFieldGet144,onTouchEnd])[0],_classPrivateFieldGet144=evt[1]),_classPrivateFieldSet(_touchInfo,this,{touch0X:onTouchEnd.screenX,touch0Y:onTouchEnd.screenY,touch1X:_classPrivateFieldGet144.screenX,touch1Y:_classPrivateFieldGet144.screenY}))}}function _onTouchMove(evt){var _ref133,touch0,screen1X,touchInfo,distance,pTouch0X,pTouch0Y;_classPrivateFieldGet(_touchInfo,this)&&2===evt.touches.length&&(stopEvent(evt),touch0=(evt=babelHelpers.slicedToArray(evt.touches,2))[0],evt=evt[1],touch0.identifier>evt.identifier&&(touch0=(_ref133=[evt,touch0])[0],evt=_ref133[1]),_ref133=touch0.screenX,touch0=touch0.screenY,screen1X=(evt=evt).screenX,evt=evt.screenY,pTouch0X=(touchInfo=_classPrivateFieldGet(_touchInfo,this)).touch0X,pTouch0Y=touchInfo.touch0Y,pTouch0X=touchInfo.touch1X-pTouch0X,pTouch0Y=touchInfo.touch1Y-pTouch0Y,distance=Math.hypot(screen1X-_ref133,evt-touch0)||1,pTouch0X=Math.hypot(pTouch0X,pTouch0Y)||1,!_classPrivateFieldGet(_isPinching,this)&&Math.abs(pTouch0X-distance)<=_TouchManager.MIN_TOUCH_DISTANCE_TO_PINCH||(touchInfo.touch0X=_ref133,touchInfo.touch0Y=touch0,touchInfo.touch1X=screen1X,touchInfo.touch1Y=evt,_classPrivateFieldGet(_isPinching,this)?(pTouch0Y=[(_ref133+screen1X)/2,(touch0+evt)/2],null!=(touchInfo=_classPrivateFieldGet(_onPinching,this))&&touchInfo.call(this,pTouch0Y,pTouch0X,distance)):_classPrivateFieldSet(_isPinching,this,!0)))}function _onTouchEnd(evt){var _classPrivateFieldGet149;2<=evt.touches.length||(_classPrivateFieldGet(_touchMoveAC,this)&&(_classPrivateFieldGet(_touchMoveAC,this).abort(),_classPrivateFieldSet(_touchMoveAC,this,null),null!=(_classPrivateFieldGet149=_classPrivateFieldGet(_onPinchEnd,this)))&&_classPrivateFieldGet149.call(this),_classPrivateFieldGet(_touchInfo,this)&&(stopEvent(evt),_classPrivateFieldSet(_touchInfo,this,null),_classPrivateFieldSet(_isPinching,this,!1)))}var _TouchManager=TouchManager,_accessibilityData=new WeakMap,_allResizerDivs=new WeakMap,_altText3=new WeakMap,_disabled=new WeakMap,_dragPointerId=new WeakMap,_dragPointerType=new WeakMap,_keepAspectRatio=new WeakMap,_resizersDiv=new WeakMap,_lastPointerCoords=new WeakMap,_savedDimensions=new WeakMap,_focusAC=new WeakMap,_focusedResizerName=new WeakMap,_hasBeenClicked=new WeakMap,_initialRect=new WeakMap,_isEditing=new WeakMap,_isInEditMode=new WeakMap,_isResizerEnabledForKeyboard=new WeakMap,_moveInDOMTimeout=new WeakMap,_prevDragX=new WeakMap,_prevDragY=new WeakMap,_telemetryTimeouts=new WeakMap,_touchManager=new WeakMap,_isDraggable=new WeakMap,_zIndex=new WeakMap,_AnnotationEditor_brand=new WeakSet,AnnotationEditor=function(){function AnnotationEditor(parameters){babelHelpers.classCallCheck(this,AnnotationEditor),_classPrivateMethodInitSpec(this,_AnnotationEditor_brand),_classPrivateFieldInitSpec(this,_accessibilityData,null),_classPrivateFieldInitSpec(this,_allResizerDivs,null),_classPrivateFieldInitSpec(this,_altText3,null),_classPrivateFieldInitSpec(this,_disabled,!1),_classPrivateFieldInitSpec(this,_dragPointerId,null),_classPrivateFieldInitSpec(this,_dragPointerType,""),_classPrivateFieldInitSpec(this,_keepAspectRatio,!1),_classPrivateFieldInitSpec(this,_resizersDiv,null),_classPrivateFieldInitSpec(this,_lastPointerCoords,null),_classPrivateFieldInitSpec(this,_savedDimensions,null),_classPrivateFieldInitSpec(this,_focusAC,null),_classPrivateFieldInitSpec(this,_focusedResizerName,""),_classPrivateFieldInitSpec(this,_hasBeenClicked,!1),_classPrivateFieldInitSpec(this,_initialRect,null),_classPrivateFieldInitSpec(this,_isEditing,!1),_classPrivateFieldInitSpec(this,_isInEditMode,!1),_classPrivateFieldInitSpec(this,_isResizerEnabledForKeyboard,!1),_classPrivateFieldInitSpec(this,_moveInDOMTimeout,null),_classPrivateFieldInitSpec(this,_prevDragX,0),_classPrivateFieldInitSpec(this,_prevDragY,0),_classPrivateFieldInitSpec(this,_telemetryTimeouts,null),_classPrivateFieldInitSpec(this,_touchManager,null),babelHelpers.defineProperty(this,"isSelected",!1),babelHelpers.defineProperty(this,"_isCopy",!1),babelHelpers.defineProperty(this,"_editToolbar",null),babelHelpers.defineProperty(this,"_initialOptions",Object.create(null)),babelHelpers.defineProperty(this,"_initialData",null),babelHelpers.defineProperty(this,"_isVisible",!0),babelHelpers.defineProperty(this,"_uiManager",null),babelHelpers.defineProperty(this,"_focusEventsAllowed",!0),_classPrivateFieldInitSpec(this,_isDraggable,!1),_classPrivateFieldInitSpec(this,_zIndex,AnnotationEditor._zIndex++),this.parent=parameters.parent,this.id=parameters.id,this.width=this.height=null,this.pageIndex=parameters.parent.pageIndex,this.name=parameters.name,this.div=null,this._uiManager=parameters.uiManager,this.annotationElementId=null,this._willKeepAspectRatio=!1,this._initialOptions.isCentered=parameters.isCentered,this._structTreeParentId=null,this.annotationElementId=parameters.annotationElementId||null;var _this$parent$viewport=this.parent.viewport,_rotation2=_this$parent$viewport.rotation,_this$parent$viewport=_this$parent$viewport.rawDims,_pageWidth2=_this$parent$viewport.pageWidth,_pageHeight2=_this$parent$viewport.pageHeight,pageX=_this$parent$viewport.pageX,_this$parent$viewport=_this$parent$viewport.pageY,_rotation2=(this.rotation=_rotation2,this.pageRotation=(360+_rotation2-this._uiManager.viewParameters.rotation)%360,this.pageDimensions=[_pageWidth2,_pageHeight2],this.pageTranslation=[pageX,_this$parent$viewport],babelHelpers.slicedToArray(this.parentDimensions,2)),_pageWidth2=_rotation2[0],_pageHeight2=_rotation2[1];this.x=parameters.x/_pageWidth2,this.y=parameters.y/_pageHeight2,this.isAttachedToDOM=!1,this.deleted=!1}return babelHelpers.createClass(AnnotationEditor,[{key:"editorType",get:function(){return Object.getPrototypeOf(this).constructor._type}},{key:"mode",get:function(){return Object.getPrototypeOf(this).constructor._editorType}},{key:"propertiesToUpdate",get:function(){return[]}},{key:"_isDraggable",get:function(){return _classPrivateFieldGet(_isDraggable,this)},set:function(value){var _this$div;_classPrivateFieldSet(_isDraggable,this,value),null!=(_this$div=this.div)&&_this$div.classList.toggle("draggable",value)}},{key:"isEnterHandled",get:function(){return!0}},{key:"center",value:function(){var _this$pageDimensions=babelHelpers.slicedToArray(this.pageDimensions,2),pageWidth=_this$pageDimensions[0],pageHeight=_this$pageDimensions[1];switch(this.parentRotation){case 90:this.x-=this.height*pageHeight/(2*pageWidth),this.y+=this.width*pageWidth/(2*pageHeight);break;case 180:this.x+=this.width/2,this.y+=this.height/2;break;case 270:this.x+=this.height*pageHeight/(2*pageWidth),this.y-=this.width*pageWidth/(2*pageHeight);break;default:this.x-=this.width/2,this.y-=this.height/2}this.fixAndSetPosition()}},{key:"addCommands",value:function(params){this._uiManager.addCommands(params)}},{key:"currentLayer",get:function(){return this._uiManager.currentLayer}},{key:"setInBackground",value:function(){this.div.style.zIndex=0}},{key:"setInForeground",value:function(){this.div.style.zIndex=_classPrivateFieldGet(_zIndex,this)}},{key:"setParent",value:function(parent){null!==parent?(this.pageIndex=parent.pageIndex,this.pageDimensions=parent.pageDimensions):_assertClassBrand(_AnnotationEditor_brand,this,_stopResizing).call(this),this.parent=parent}},{key:"focusin",value:function(event){this._focusEventsAllowed&&(_classPrivateFieldGet(_hasBeenClicked,this)?_classPrivateFieldSet(_hasBeenClicked,this,!1):this.parent.setSelected(this))}},{key:"focusout",value:function(event){var target;!this._focusEventsAllowed||!this.isAttachedToDOM||null!=(target=event.relatedTarget)&&target.closest("#".concat(this.id))||(event.preventDefault(),null!=(target=this.parent)&&target.isMultipleSelection)||this.commitOrRemove()}},{key:"commitOrRemove",value:function(){this.isEmpty()?this.remove():this.commit()}},{key:"commit",value:function(){this.isInEditMode()&&this.addToAnnotationStorage()}},{key:"addToAnnotationStorage",value:function(){this._uiManager.addToAnnotationStorage(this)}},{key:"setAt",value:function(x,y,tx,ty){var _this$parentDimension2=babelHelpers.slicedToArray(this.parentDimensions,2),width=_this$parentDimension2[0],_this$parentDimension2=_this$parentDimension2[1],_this$screenToPageTra=this.screenToPageTranslation(tx,ty),_this$screenToPageTra=babelHelpers.slicedToArray(_this$screenToPageTra,2);tx=_this$screenToPageTra[0],ty=_this$screenToPageTra[1],this.x=(x+tx)/width,this.y=(y+ty)/_this$parentDimension2,this.fixAndSetPosition()}},{key:"_moveAfterPaste",value:function(baseX,baseY){var _this$parentDimension3=babelHelpers.slicedToArray(this.parentDimensions,2),parentWidth=_this$parentDimension3[0],_this$parentDimension3=_this$parentDimension3[1];this.setAt(baseX*parentWidth,baseY*_this$parentDimension3,this.width*parentWidth,this.height*_this$parentDimension3),this._onTranslated()}},{key:"translate",value:function(x,y){_assertClassBrand(_AnnotationEditor_brand,this,_translate).call(this,this.parentDimensions,x,y)}},{key:"translateInPage",value:function(x,y){_classPrivateFieldGet(_initialRect,this)||_classPrivateFieldSet(_initialRect,this,[this.x,this.y,this.width,this.height]),_assertClassBrand(_AnnotationEditor_brand,this,_translate).call(this,this.pageDimensions,x,y),this.div.scrollIntoView({block:"nearest"})}},{key:"translationDone",value:function(){this._onTranslated(this.x,this.y)}},{key:"drag",value:function(tx,ty){_classPrivateFieldGet(_initialRect,this)||_classPrivateFieldSet(_initialRect,this,[this.x,this.y,this.width,this.height]);var div=this.div,_this$parentDimension4=babelHelpers.slicedToArray(this.parentDimensions,2),parentWidth=_this$parentDimension4[0],_this$parentDimension4=_this$parentDimension4[1],_this$parentDimension4=(this.x+=tx/parentWidth,this.y+=ty/_this$parentDimension4,this.parent&&(this.x<0||1>>8,data[length++]=255&code)}else{if(!ArrayBuffer.isView(input))throw new Error("Invalid data format, must be a string or TypedArray.");length=(data=input.slice()).byteLength}for(var k2,blockCounts=length>>2,tailLength=length-4*blockCounts,dataUint32=new Uint32Array(data.buffer,0,blockCounts),k1=0,h1=this.h1,h2=this.h2,C1=3432918353,C2=461845907,_i6=0;_i6>>17)*C2&4294901760|13715*k1&65535)<<13|h1>>>19)+3864292196:h2=5*(h2=(h2^=(k2=(k2=(k2=dataUint32[_i6])*C1&4294901760|11601*k2&65535)<<15|k2>>>17)*C2&4294901760|13715*k2&65535)<<13|h2>>>19)+3864292196;switch(k1=0,tailLength){case 3:k1^=data[4*blockCounts+2]<<16;case 2:k1^=data[4*blockCounts+1]<<8;case 1:k1=(k1=(k1=(k1^=data[4*blockCounts])*C1&4294901760|11601*k1&65535)<<15|k1>>>17)*C2&4294901760|13715*k1&65535,1&blockCounts?h1^=k1:h2^=k1}this.h1=h1,this.h2=h2}},{key:"hexdigest",value:function(){var h1=this.h1,h2=this.h2,h1=3981806797*(h1^=h2>>>1)&4294901760|36045*h1&65535;return h1=444984403*(h1^=(h2=4283543511*h2&4294901760|(2950163797*(h2<<16|h1>>>16)&4294901760)>>>16)>>>1)&4294901760|60499*h1&65535,((h1^=(h2=3301882366*h2&4294901760|(3120437893*(h2<<16|h1>>>16)&4294901760)>>>16)>>>1)>>>0).toString(16).padStart(8,"0")+(h2>>>0).toString(16).padStart(8,"0")}}])}(),SerializableEmpty=Object.freeze({map:null,hash:"",transfer:void 0}),_modified=new WeakMap,_modifiedIds=new WeakMap,_storage=new WeakMap,_AnnotationStorage_brand=new WeakSet,AnnotationStorage=function(){return babelHelpers.createClass(function AnnotationStorage(){babelHelpers.classCallCheck(this,AnnotationStorage),_classPrivateMethodInitSpec(this,_AnnotationStorage_brand),_classPrivateFieldInitSpec(this,_modified,!1),_classPrivateFieldInitSpec(this,_modifiedIds,null),_classPrivateFieldInitSpec(this,_storage,new Map),this.onSetModified=null,this.onResetModified=null,this.onAnnotationEditor=null},[{key:"getValue",value:function(key,defaultValue){key=_classPrivateFieldGet(_storage,this).get(key);return void 0===key?defaultValue:Object.assign(defaultValue,key)}},{key:"getRawValue",value:function(key){return _classPrivateFieldGet(_storage,this).get(key)}},{key:"remove",value:function(key){if(_classPrivateFieldGet(_storage,this).delete(key),0===_classPrivateFieldGet(_storage,this).size&&this.resetModified(),"function"==typeof this.onAnnotationEditor){var _step48,_iterator48=_createForOfIteratorHelper(_classPrivateFieldGet(_storage,this).values());try{for(_iterator48.s();!(_step48=_iterator48.n()).done;)if(_step48.value instanceof AnnotationEditor)return}catch(err){_iterator48.e(err)}finally{_iterator48.f()}this.onAnnotationEditor(null)}}},{key:"setValue",value:function(key,value){var obj=_classPrivateFieldGet(_storage,this).get(key),modified=!1;if(void 0!==obj)for(var _i7=0,_Object$entries=Object.entries(value);_i7<_Object$entries.length;_i7++){var _Object$entries$_i=babelHelpers.slicedToArray(_Object$entries[_i7],2),entry=_Object$entries$_i[0],_Object$entries$_i=_Object$entries$_i[1];obj[entry]!==_Object$entries$_i&&(modified=!0,obj[entry]=_Object$entries$_i)}else modified=!0,_classPrivateFieldGet(_storage,this).set(key,value);modified&&_assertClassBrand(_AnnotationStorage_brand,this,_setModified).call(this),value instanceof AnnotationEditor&&"function"==typeof this.onAnnotationEditor&&this.onAnnotationEditor(value.constructor._type)}},{key:"has",value:function(key){return _classPrivateFieldGet(_storage,this).has(key)}},{key:"size",get:function(){return _classPrivateFieldGet(_storage,this).size}},{key:"resetModified",value:function(){_classPrivateFieldGet(_modified,this)&&(_classPrivateFieldSet(_modified,this,!1),"function"==typeof this.onResetModified)&&this.onResetModified()}},{key:"print",get:function(){return new PrintAnnotationStorage(this)}},{key:"serializable",get:function(){if(0===_classPrivateFieldGet(_storage,this).size)return SerializableEmpty;var _step49,map=new Map,hash=new MurmurHash3_64,transfer=[],context=Object.create(null),hasBitmap=!1,_iterator49=_createForOfIteratorHelper(_classPrivateFieldGet(_storage,this));try{for(_iterator49.s();!(_step49=_iterator49.n()).done;){var _step49$value=babelHelpers.slicedToArray(_step49.value,2),key=_step49$value[0],val=_step49$value[1],serialized=val instanceof AnnotationEditor?val.serialize(!1,context):val;serialized&&(map.set(key,serialized),hash.update("".concat(key,":").concat(JSON.stringify(serialized))),hasBitmap=hasBitmap||!!serialized.bitmap)}}catch(err){_iterator49.e(err)}finally{_iterator49.f()}if(hasBitmap){var _step50,_iterator50=_createForOfIteratorHelper(map.values());try{for(_iterator50.s();!(_step50=_iterator50.n()).done;){var value=_step50.value;value.bitmap&&transfer.push(value.bitmap)}}catch(err){_iterator50.e(err)}finally{_iterator50.f()}}return 0>24&255,value>>16&255,value>>8&255,255&value)));var value="url(data:font/opentype;base64,".concat(btoa(canvas),");"),canvas='@font-face {font-family:"'.concat(loadTestFontId,'";src:').concat(value,"}"),div=(this.insertRule(canvas),this._document.createElement("div"));div.style.visibility="hidden",div.style.width=div.style.height="10px",div.style.position="absolute",div.style.top=div.style.left="0px";for(var _i9=0,_arr=[font.loadedName,loadTestFontId];_i9<_arr.length;_i9++){var name=_arr[_i9],span=this._document.createElement("span");span.textContent="Hi",span.style.fontFamily=name,div.append(span)}this._document.body.append(div),isFontReady(loadTestFontId,function(){div.remove(),request.complete()})}}])}(),FontFaceObject=function(){return babelHelpers.createClass(function FontFaceObject(translatedData){var i,inspectFont=1coords[p2+1]&&(tmp=p1,p1=p2,p2=tmp,tmp=c1,c1=c2,c2=tmp),coords[p2+1]>coords[p3+1]&&(tmp=p2,p2=p3,p3=tmp,tmp=c2,c2=c3,c3=tmp),coords[p1+1]>coords[p2+1]&&(tmp=p1,p1=p2,p2=tmp,tmp=c1,c1=c2,c2=tmp),(coords[p1]+context.offsetX)*context.scaleX),y1=(coords[p1+1]+context.offsetY)*context.scaleY,x2=(coords[p2]+context.offsetX)*context.scaleX,y2=(coords[p2+1]+context.offsetY)*context.scaleY,x3=(coords[p3]+context.offsetX)*context.scaleX,y3=(coords[p3+1]+context.offsetY)*context.scaleY;if(!(y3<=y1))for(var c1r=colors[c1],c1g=colors[c1+1],c1b=colors[c1+2],c2r=colors[c2],c2g=colors[c2+1],c2b=colors[c2+2],c3r=colors[c3],c3g=colors[c3+1],c3b=colors[c3+2],data=Math.round(y1),maxY=Math.round(y3),y=data;y<=maxY;y++){cab=y>3,widthRemainder=7&_ref28$srcPos,srcLength=src.length,dest=new Uint32Array(dest.buffer),destPos=0,i=0;i>2),dest32DataLength=dest32.length,fullSrcDiff=width+7>>3,white=4294967295,black=util_FeatureTest.isLittleEndian?4278190080:255,i=0;i>=1}for(;destPosendTime)return continueCallback(),i;steps=0}}}},{key:"endDrawing",value:function(){_assertClassBrand(_CanvasGraphics_brand,this,_restoreInitialState).call(this),this.cachedCanvases.clear(),this.cachedPatterns.clear();var _step60,_iterator60=_createForOfIteratorHelper(this._cachedBitmapsMap.values());try{for(_iterator60.s();!(_step60=_iterator60.n()).done;){var _step61,cache=_step60.value,_iterator61=_createForOfIteratorHelper(cache.values());try{for(_iterator61.s();!(_step61=_iterator61.n()).done;){var canvas=_step61.value;"undefined"!=typeof HTMLCanvasElement&&canvas instanceof HTMLCanvasElement&&(canvas.width=canvas.height=0)}}catch(err){_iterator61.e(err)}finally{_iterator61.f()}cache.clear()}}catch(err){_iterator60.e(err)}finally{_iterator60.f()}this._cachedBitmapsMap.clear(),_assertClassBrand(_CanvasGraphics_brand,this,_drawFilter).call(this)}},{key:"_scaleImage",value:function(img,inverseTransform){for(var tmpCanvas,tmpCtx,_img$width=null!=(_img$width=img.width)?_img$width:img.displayWidth,_img$height=null!=(_img$height=img.height)?_img$height:img.displayHeight,widthScale=Math.max(Math.hypot(inverseTransform[0],inverseTransform[1]),1),heightScale=Math.max(Math.hypot(inverseTransform[2],inverseTransform[3]),1),paintWidth=_img$width,paintHeight=_img$height,tmpCanvasId="prescale1";2maskCanvas.width||maskOffsetY+height>maskCanvas.height?((ctx=(canvas=this.cachedCanvases.getCanvas("maskExtension",width,height)).context).drawImage(maskCanvas,-maskOffsetX,-maskOffsetY),ctx.globalCompositeOperation="destination-atop",ctx.fillStyle=backdrop,ctx.fillRect(0,0,width,height),ctx.globalCompositeOperation="source-over",maskCanvas=canvas.canvas,maskOffsetX=maskOffsetY=0):(maskCtx.save(),maskCtx.globalAlpha=1,maskCtx.setTransform(1,0,0,1,0,0),(ctx=new Path2D).rect(maskOffsetX,maskOffsetY,width,height),maskCtx.clip(ctx),maskCtx.globalCompositeOperation="destination-atop",maskCtx.fillStyle=backdrop,maskCtx.fillRect(maskOffsetX,maskOffsetY,width,height),maskCtx.restore())),layerCtx.save(),layerCtx.globalAlpha=1,layerCtx.setTransform(1,0,0,1,0,0),"Alpha"===subtype&&transferMap?layerCtx.filter=this.filterFactory.addAlphaFilter(transferMap):"Luminosity"===subtype&&(layerCtx.filter=this.filterFactory.addLuminosityFilter(transferMap)),new Path2D);canvas.rect(layerOffsetX,layerOffsetY,width,height),layerCtx.clip(canvas),layerCtx.globalCompositeOperation="destination-in",layerCtx.drawImage(maskCanvas,maskOffsetX,maskOffsetY,width,height,layerOffsetX,layerOffsetY,width,height),layerCtx.restore()}},{key:"save",value:function(){this.inSMaskMode&©CtxState(this.ctx,this.suspendedCtx),this.ctx.save();var old=this.current;this.stateStack.push(old),this.current=old.clone()}},{key:"restore",value:function(){0===this.stateStack.length?this.inSMaskMode&&this.endSMaskMode():(this.current=this.stateStack.pop(),this.ctx.restore(),this.inSMaskMode&©CtxState(this.suspendedCtx,this.ctx),this.checkSMaskState(),this.pendingClip=null,this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null)}},{key:"transform",value:function(a,b,c,d,e,f){this.ctx.transform(a,b,c,d,e,f),this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}},{key:"constructPath",value:function(op,data,minMax){var path=babelHelpers.slicedToArray(data,1)[0];if(minMax){if(!(path instanceof Path2D)){for(var path2d=data[0]=new Path2D,i=0,ii=path.length;iMAX_TEXT_DIVS_TO_RENDER)return warn("Ignoring additional textDivs for performance reasons."),void _classPrivateFieldSet(_disableProcessItems,this,!0);void 0===item.str?"beginMarkedContentProps"===item.type||"beginMarkedContent"===item.type?(parent=_classPrivateFieldGet(_container4,this),_classPrivateFieldSet(_container4,this,document.createElement("span")),_classPrivateFieldGet(_container4,this).classList.add("markedContent"),null!==item.id&&_classPrivateFieldGet(_container4,this).setAttribute("id","".concat(item.id)),parent.append(_classPrivateFieldGet(_container4,this))):"endMarkedContent"===item.type&&_classPrivateFieldSet(_container4,this,_classPrivateFieldGet(_container4,this).parentNode):(textContentItemsStr.push(item.str),_assertClassBrand(_TextLayer_brand,this,_appendText).call(this,item))}}catch(err){_iterator183.e(err)}finally{_iterator183.f()}}}function _appendText(geom){var textDiv=document.createElement("span"),textDivProperties={angle:0,canvasWidth:0,hasText:""!==geom.str,hasEOL:geom.hasEOL,fontSize:0},tx=(_classPrivateFieldGet(_textDivs,this).push(textDiv),Util.transform(_classPrivateFieldGet(_transform,this),geom.transform)),angle=Math.atan2(tx[1],tx[0]),style=_classPrivateFieldGet(_styleCache,this)[geom.fontName],fontFamily=(style.vertical&&(angle+=Math.PI/2),_classPrivateFieldGet(_fontInspectorEnabled,this)&&style.fontSubstitution||style.fontFamily),fontFamily=_TextLayer.fontFamilyMap.get(fontFamily)||fontFamily,fontHeight=Math.hypot(tx[2],tx[3]),fontAscent=fontHeight*function(fontFamily,style,lang){var cachedAscent=_assertClassBrand(_TextLayer,this,_ascentCache)._.get(fontFamily);if(cachedAscent)return cachedAscent;var cachedAscent=_assertClassBrand(_TextLayer,this,_getCtx).call(this,lang),lang=(cachedAscent.canvas.width=cachedAscent.canvas.height=DEFAULT_FONT_SIZE,_assertClassBrand(_TextLayer,this,_ensureCtxFont).call(this,cachedAscent,DEFAULT_FONT_SIZE,fontFamily),cachedAscent.measureText("")),ascent=lang.fontBoundingBoxAscent,lang=Math.abs(lang.fontBoundingBoxDescent),cachedAscent=(cachedAscent.canvas.width=cachedAscent.canvas.height=0,.8);ascent?cachedAscent=ascent/(ascent+lang):(util_FeatureTest.platform.isFirefox&&warn("Enable the `dom.textMetrics.fontBoundingBox.enabled` preference in `about:config` to improve TextLayer rendering."),style.ascent?cachedAscent=style.ascent:style.descent&&(cachedAscent=1+style.descent));return _assertClassBrand(_TextLayer,this,_ascentCache)._.set(fontFamily,cachedAscent),cachedAscent}.call(_TextLayer,fontFamily,style,_classPrivateFieldGet(_lang,this)),tx=0===angle?(left=tx[4],tx[5]-fontAscent):(left=tx[4]+fontAscent*Math.sin(angle),tx[5]-fontAscent*Math.cos(angle)),fontAscent="calc(var(--total-scale-factor) *",divStyle=textDiv.style,left=(_classPrivateFieldGet(_container4,this)===_classPrivateFieldGet(_rootContainer,this)?(divStyle.left="".concat((100*left/_classPrivateFieldGet(_pageWidth3,this)).toFixed(2),"%"),divStyle.top="".concat((100*tx/_classPrivateFieldGet(_pageHeight3,this)).toFixed(2),"%")):(divStyle.left="".concat(fontAscent).concat(left.toFixed(2),"px)"),divStyle.top="".concat(fontAscent).concat(tx.toFixed(2),"px)")),divStyle.fontSize="".concat(fontAscent).concat((_minFontSize._*fontHeight).toFixed(2),"px)"),divStyle.fontFamily=fontFamily,textDivProperties.fontSize=fontHeight,textDiv.setAttribute("role","presentation"),textDiv.textContent=geom.str,textDiv.dir=geom.dir,_classPrivateFieldGet(_fontInspectorEnabled,this)&&(textDiv.dataset.fontName=style.fontSubstitutionLoadedName||geom.fontName),0!==angle&&(textDivProperties.angle=angle*(180/Math.PI)),!1);(left=1this._numPages?Promise.reject(new Error("Invalid page request.")):(pageIndex=pageNumber-1,_classPrivateFieldGet(_pagePromises,this).get(pageIndex)||(promise=this.messageHandler.sendWithPromise("GetPage",{pageIndex:pageIndex}).then(function(pageInfo){if(_this52.destroyed)throw new Error("Transport destroyed");pageInfo.refStr&&_classPrivateFieldGet(_pageRefCache,_this52).set(pageInfo.refStr,pageNumber);pageInfo=new PDFPageProxy(pageIndex,pageInfo,_this52,_this52._params.pdfBug);return _classPrivateFieldGet(_pageCache,_this52).set(pageIndex,pageInfo),pageInfo}),_classPrivateFieldGet(_pagePromises,this).set(pageIndex,promise),promise))}},{key:"getPageIndex",value:function(ref){return isRefProxy(ref)?this.messageHandler.sendWithPromise("GetPageIndex",{num:ref.num,gen:ref.gen}):Promise.reject(new Error("Invalid pageIndex request."))}},{key:"getAnnotations",value:function(pageIndex,intent){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:pageIndex,intent:intent})}},{key:"getFieldObjects",value:function(){return _assertClassBrand(_WorkerTransport_brand,this,_cacheSimpleMethod).call(this,"GetFieldObjects")}},{key:"hasJSActions",value:function(){return _assertClassBrand(_WorkerTransport_brand,this,_cacheSimpleMethod).call(this,"HasJSActions")}},{key:"getCalculationOrderIds",value:function(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}},{key:"getDestinations",value:function(){return this.messageHandler.sendWithPromise("GetDestinations",null)}},{key:"getDestination",value:function(id){return"string"!=typeof id?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:id})}},{key:"getPageLabels",value:function(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}},{key:"getPageLayout",value:function(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}},{key:"getPageMode",value:function(){return this.messageHandler.sendWithPromise("GetPageMode",null)}},{key:"getViewerPreferences",value:function(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}},{key:"getOpenAction",value:function(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}},{key:"getAttachments",value:function(){return this.messageHandler.sendWithPromise("GetAttachments",null)}},{key:"getDocJSActions",value:function(){return _assertClassBrand(_WorkerTransport_brand,this,_cacheSimpleMethod).call(this,"GetDocJSActions")}},{key:"getPageJSActions",value:function(pageIndex){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:pageIndex})}},{key:"getStructTree",value:function(pageIndex){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:pageIndex})}},{key:"getOutline",value:function(){return this.messageHandler.sendWithPromise("GetOutline",null)}},{key:"getOptionalContentConfig",value:function(renderingIntent){return _assertClassBrand(_WorkerTransport_brand,this,_cacheSimpleMethod).call(this,"GetOptionalContentConfig").then(function(data){return new OptionalContentConfig(data,renderingIntent)})}},{key:"getPermissions",value:function(){return this.messageHandler.sendWithPromise("GetPermissions",null)}},{key:"getMetadata",value:function(){var _this53=this,name="GetMetadata",cachedPromise=_classPrivateFieldGet(_methodPromises,this).get(name);return cachedPromise||(cachedPromise=this.messageHandler.sendWithPromise(name,null).then(function(results){return{info:results[0],metadata:results[1]?new Metadata(results[1]):null,contentDispositionFilename:null!=(results=null==(results=_this53._fullReader)?void 0:results.filename)?results:null,contentLength:null!=(results=null==(results=_this53._fullReader)?void 0:results.contentLength)?results:null}}),_classPrivateFieldGet(_methodPromises,this).set(name,cachedPromise),cachedPromise)}},{key:"getMarkInfo",value:function(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}},{key:"startCleanup",value:async function(){var keepLoadedFonts=0','')],this.container.classList.add("hasBorder")),rectTrX-rectBlX),height=rectTrY-rectBlY,svgFactory=this.svgFactory,_this$data$rect$map=svgFactory.createElement("svg"),trY=(_this$data$rect$map.classList.add("quadrilateralsContainer"),_this$data$rect$map.setAttribute("width",0),_this$data$rect$map.setAttribute("height",0),_this$data$rect$map.role="none",svgFactory.createElement("defs")),clipPath=(_this$data$rect$map.append(trY),svgFactory.createElement("clipPath")),blX="clippath_".concat(this.data.id);clipPath.setAttribute("id",blX),clipPath.setAttribute("clipPathUnits","objectBoundingBox"),trY.append(clipPath);for(var i=2,ii=quadPoints.length;i'))}_classPrivateFieldGet(_hasBorder,this)&&(svgBuffer.push("')"),trX.backgroundImage=svgBuffer.join("")),this.container.append(_this$data$rect$map),this.container.style.clipPath="url(#".concat(blX,")")}}}},{key:"_createPopup",value:function(){var data=this.data,data=_classPrivateFieldSet(_popupElement,this,new PopupAnnotationElement({data:{color:data.color,titleObj:data.titleObj,modificationDate:data.modificationDate,contentsObj:data.contentsObj,richText:data.richText,parentRect:data.rect,borderStyle:0,id:"popup_".concat(data.id),rotation:data.rotation,noRotate:!0},parent:this.parent,elements:[this]}));this.parent.div.append(data.render())}},{key:"render",value:function(){unreachable("Abstract method `AnnotationElement.render` called")}},{key:"_getElementsByName",value:function(name){var skipId=1maxLen&&(textContent=textContent.slice(0,maxLen)),storedData=storedData.formattedValue||(null==(storedData=this.data.textContent)?void 0:storedData.join("\n"))||null,elementData={userValue:textContent,formattedValue:storedData=storedData&&this.data.comb?storedData.replaceAll(/\s+/g,""):storedData,lastCommittedValue:null,commitKey:1,focused:!1},this.data.multiLine?((element=document.createElement("textarea")).textContent=null!=storedData?storedData:textContent,this.data.doNotScroll&&(element.style.overflowY="hidden")):((element=document.createElement("input")).type=this.data.password?"password":"text",element.setAttribute("value",null!=storedData?storedData:textContent),this.data.doNotScroll&&(element.style.overflowX="hidden")),this.data.hasOwnCanvas&&(element.hidden=!0),GetElementsByNameSet.add(element),element.setAttribute("data-element-id",id),element.disabled=this.data.readOnly,element.name=this.data.fieldName,element.tabIndex=0,(storedData=this.data.dateFormat||this.data.timeFormat)&&(element.title=storedData),this._setRequired(element,this.data.required),maxLen&&(element.maxLength=maxLen),element.addEventListener("input",function(event){storage.setValue(id,{value:event.target.value}),_this63.setPropertyOnSiblings(element,"value",event.target.value,"value"),elementData.formattedValue=null}),element.addEventListener("resetform",function(event){var _this63$data$defaultF=null!=(_this63$data$defaultF=_this63.data.defaultFieldValue)?_this63$data$defaultF:"";element.value=elementData.userValue=_this63$data$defaultF,elementData.formattedValue=null}),textContent=function(event){var formattedValue=elementData.formattedValue;null!=formattedValue&&(event.target.value=formattedValue),event.target.scrollLeft=0},this.enableScripting&&this.hasJSActions&&(element.addEventListener("focus",function(event){elementData.focused||(event=event.target,elementData.userValue&&(event.value=elementData.userValue),elementData.lastCommittedValue=event.value,elementData.commitKey=1,null!=(event=_this63.data.actions)&&event.Focus)||(elementData.focused=!0)}),element.addEventListener("updatefromsandbox",function(jsEvent){_this63.showElementAndHideCanvas(jsEvent.target),_this63._dispatchEventFromSandbox({value:function(event){var _event$detail$value;elementData.userValue=null!=(_event$detail$value=event.detail.value)?_event$detail$value:"",storage.setValue(id,{value:elementData.userValue.toString()}),event.target.value=elementData.userValue},formattedValue:function(event){var formattedValue=event.detail.formattedValue;null!=(elementData.formattedValue=formattedValue)&&event.target!==document.activeElement&&(event.target.value=formattedValue),storage.setValue(id,{formattedValue:formattedValue})},selRange:function(event){var _event$target;(_event$target=event.target).setSelectionRange.apply(_event$target,babelHelpers.toConsumableArray(event.detail.selRange))},charLimit:function(event){var value,charLimit=event.detail.charLimit,event=event.target;0===charLimit?event.removeAttribute("maxLength"):(event.setAttribute("maxLength",charLimit),!(value=elementData.userValue)||value.length<=charLimit||(value=value.slice(0,charLimit),event.value=elementData.userValue=value,storage.setValue(id,{value:value}),null!=(charLimit=_this63.linkService.eventBus)&&charLimit.dispatch("dispatcheventinsandbox",{source:_this63,detail:{id:id,name:"Keystroke",value:value,willCommit:!0,commitKey:1,selStart:event.selectionStart,selEnd:event.selectionEnd}})))}},jsEvent)}),element.addEventListener("keydown",function(event){var _this63$linkService$e2,value,commitKey=-(elementData.commitKey=1);"Escape"===event.key?commitKey=0:"Enter"!==event.key||_this63.data.multiLine?"Tab"===event.key&&(elementData.commitKey=3):commitKey=2,-1!==commitKey&&(value=event.target.value,elementData.lastCommittedValue!==value)&&(elementData.lastCommittedValue=value,elementData.userValue=value,null!=(_this63$linkService$e2=_this63.linkService.eventBus))&&_this63$linkService$e2.dispatch("dispatcheventinsandbox",{source:_this63,detail:{id:id,name:"Keystroke",value:value,willCommit:!0,commitKey:commitKey,selStart:event.target.selectionStart,selEnd:event.target.selectionEnd}})}),_blurListener=textContent,textContent=null,element.addEventListener("blur",function(event){var _this63$data$actions2,_this63$linkService$e3;elementData.focused&&event.relatedTarget&&(null!=(_this63$data$actions2=_this63.data.actions)&&_this63$data$actions2.Blur||(elementData.focused=!1),_this63$data$actions2=event.target.value,elementData.userValue=_this63$data$actions2,elementData.lastCommittedValue!==_this63$data$actions2&&null!=(_this63$linkService$e3=_this63.linkService.eventBus)&&_this63$linkService$e3.dispatch("dispatcheventinsandbox",{source:_this63,detail:{id:id,name:"Keystroke",value:_this63$data$actions2,willCommit:!0,commitKey:elementData.commitKey,selStart:event.target.selectionStart,selEnd:event.target.selectionEnd}}),_blurListener(event))}),null!=(storedData=this.data.actions)&&storedData.Keystroke&&element.addEventListener("beforeinput",function(event){elementData.lastCommittedValue=null;var data=event.data,target=event.target,value=target.value,selectionStart=target.selectionStart,selectionEnd=target.selectionEnd,selStart=selectionStart,selEnd=selectionEnd;switch(event.inputType){case"deleteWordBackward":var match=value.substring(0,selectionStart).match(/\w*[^\w]*$/);match&&(selStart-=match[0].length);break;case"deleteWordForward":match=value.substring(selectionStart).match(/^[^\w]*\w*/);match&&(selEnd+=match[0].length);break;case"deleteContentBackward":selectionStart===selectionEnd&&--selStart;break;case"deleteContentForward":selectionStart===selectionEnd&&(selEnd+=1)}event.preventDefault(),null!=(target=_this63.linkService.eventBus)&&target.dispatch("dispatcheventinsandbox",{source:_this63,detail:{id:id,name:"Keystroke",value:value,change:data||"",willCommit:!1,selStart:selStart,selEnd:selEnd}})}),this._setEventListeners(element,elementData,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],function(event){return event.target.value})),textContent&&element.addEventListener("blur",textContent),this.data.comb&&(storedData=(this.data.rect[2]-this.data.rect[0])/maxLen,element.classList.add("comb"),element.style.letterSpacing="calc(".concat(storedData,"px * var(--total-scale-factor) - 1ch)"))):((element=document.createElement("div")).textContent=this.data.fieldValue,element.style.verticalAlign="middle",element.style.display="table-cell",this.data.hasOwnCanvas&&(element.hidden=!0)),this._setTextStyle(element),this._setBackgroundColor(element),this._setDefaultPropertiesFromJS(element),this.container.append(element),this.container}}])}(),SignatureWidgetAnnotationElement=function(){function SignatureWidgetAnnotationElement(parameters){return babelHelpers.classCallCheck(this,SignatureWidgetAnnotationElement),_callSuper(this,SignatureWidgetAnnotationElement,[parameters,{isRenderable:!!parameters.data.hasOwnCanvas}])}return babelHelpers.inherits(SignatureWidgetAnnotationElement,WidgetAnnotationElement),babelHelpers.createClass(SignatureWidgetAnnotationElement)}(),CheckboxWidgetAnnotationElement=function(){function CheckboxWidgetAnnotationElement(parameters){return babelHelpers.classCallCheck(this,CheckboxWidgetAnnotationElement),_callSuper(this,CheckboxWidgetAnnotationElement,[parameters,{isRenderable:parameters.renderForms}])}return babelHelpers.inherits(CheckboxWidgetAnnotationElement,WidgetAnnotationElement),babelHelpers.createClass(CheckboxWidgetAnnotationElement,[{key:"render",value:function(){var _this64=this,storage=this.annotationStorage,data=this.data,id=data.id,value=storage.getValue(id,{value:data.exportValue===data.fieldValue}).value,element=("string"==typeof value&&storage.setValue(id,{value:value="Off"!==value}),this.container.classList.add("buttonWidgetAnnotation","checkBox"),document.createElement("input"));return GetElementsByNameSet.add(element),element.setAttribute("data-element-id",id),element.disabled=data.readOnly,this._setRequired(element,this.data.required),element.type="checkbox",element.name=data.fieldName,value&&element.setAttribute("checked",!0),element.setAttribute("exportValue",data.exportValue),element.tabIndex=0,element.addEventListener("change",function(event){var _step120,event=event.target,name=event.name,checked=event.checked,_iterator120=_createForOfIteratorHelper(_this64._getElementsByName(name,id));try{for(_iterator120.s();!(_step120=_iterator120.n()).done;){var checkbox=_step120.value,curChecked=checked&&checkbox.exportValue===data.exportValue;checkbox.domElement&&(checkbox.domElement.checked=curChecked),storage.setValue(checkbox.id,{value:curChecked})}}catch(err){_iterator120.e(err)}finally{_iterator120.f()}storage.setValue(id,{value:checked})}),element.addEventListener("resetform",function(event){var defaultValue=data.defaultFieldValue||"Off";event.target.checked=defaultValue===data.exportValue}),this.enableScripting&&this.hasJSActions&&(element.addEventListener("updatefromsandbox",function(jsEvent){_this64._dispatchEventFromSandbox({value:function(event){event.target.checked="Off"!==event.detail.value,storage.setValue(id,{value:event.target.checked})}},jsEvent)}),this._setEventListeners(element,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],function(event){return event.target.checked})),this._setBackgroundColor(element),this._setDefaultPropertiesFromJS(element),this.container.append(element),this.container}}])}(),RadioButtonWidgetAnnotationElement=function(){function RadioButtonWidgetAnnotationElement(parameters){return babelHelpers.classCallCheck(this,RadioButtonWidgetAnnotationElement),_callSuper(this,RadioButtonWidgetAnnotationElement,[parameters,{isRenderable:parameters.renderForms}])}return babelHelpers.inherits(RadioButtonWidgetAnnotationElement,WidgetAnnotationElement),babelHelpers.createClass(RadioButtonWidgetAnnotationElement,[{key:"render",value:function(){var _this65=this,storage=(this.container.classList.add("buttonWidgetAnnotation","radioButton"),this.annotationStorage),data=this.data,id=data.id,value=storage.getValue(id,{value:data.fieldValue===data.buttonValue}).value;if("string"==typeof value&&(value=value!==data.buttonValue,storage.setValue(id,{value:value})),value){var _step121,_iterator121=_createForOfIteratorHelper(this._getElementsByName(data.fieldName,id));try{for(_iterator121.s();!(_step121=_iterator121.n()).done;){var radio=_step121.value;storage.setValue(radio.id,{value:!1})}}catch(err){_iterator121.e(err)}finally{_iterator121.f()}}var pdfButtonValue,element=document.createElement("input");return GetElementsByNameSet.add(element),element.setAttribute("data-element-id",id),element.disabled=data.readOnly,this._setRequired(element,this.data.required),element.type="radio",element.name=data.fieldName,value&&element.setAttribute("checked",!0),element.tabIndex=0,element.addEventListener("change",function(event){var _step122,event=event.target,name=event.name,event=event.checked,_iterator122=_createForOfIteratorHelper(_this65._getElementsByName(name,id));try{for(_iterator122.s();!(_step122=_iterator122.n()).done;){var _radio=_step122.value;storage.setValue(_radio.id,{value:!1})}}catch(err){_iterator122.e(err)}finally{_iterator122.f()}storage.setValue(id,{value:event})}),element.addEventListener("resetform",function(event){var defaultValue=data.defaultFieldValue;event.target.checked=null!=defaultValue&&defaultValue===data.buttonValue}),this.enableScripting&&this.hasJSActions&&(pdfButtonValue=data.buttonValue,element.addEventListener("updatefromsandbox",function(jsEvent){_this65._dispatchEventFromSandbox({value:function(event){var _step123,checked=pdfButtonValue===event.detail.value,_iterator123=_createForOfIteratorHelper(_this65._getElementsByName(event.target.name));try{for(_iterator123.s();!(_step123=_iterator123.n()).done;){var _radio2=_step123.value,curChecked=checked&&_radio2.id===id;_radio2.domElement&&(_radio2.domElement.checked=curChecked),storage.setValue(_radio2.id,{value:curChecked})}}catch(err){_iterator123.e(err)}finally{_iterator123.f()}}},jsEvent)}),this._setEventListeners(element,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],function(event){return event.target.checked})),this._setBackgroundColor(element),this._setDefaultPropertiesFromJS(element),this.container.append(element),this.container}}])}(),PushButtonWidgetAnnotationElement=function(){function PushButtonWidgetAnnotationElement(parameters){return babelHelpers.classCallCheck(this,PushButtonWidgetAnnotationElement),_callSuper(this,PushButtonWidgetAnnotationElement,[parameters,{ignoreBorder:parameters.data.hasAppearance}])}return babelHelpers.inherits(PushButtonWidgetAnnotationElement,LinkAnnotationElement),babelHelpers.createClass(PushButtonWidgetAnnotationElement,[{key:"render",value:function(){var _this66=this,container=_superPropGet(PushButtonWidgetAnnotationElement,"render",this,3)([]),linkElement=(container.classList.add("buttonWidgetAnnotation","pushButton"),container.lastChild);return this.enableScripting&&this.hasJSActions&&linkElement&&(this._setDefaultPropertiesFromJS(linkElement),linkElement.addEventListener("updatefromsandbox",function(jsEvent){_this66._dispatchEventFromSandbox({},jsEvent)})),container}}])}(),ChoiceWidgetAnnotationElement=function(){function ChoiceWidgetAnnotationElement(parameters){return babelHelpers.classCallCheck(this,ChoiceWidgetAnnotationElement),_callSuper(this,ChoiceWidgetAnnotationElement,[parameters,{isRenderable:parameters.renderForms}])}return babelHelpers.inherits(ChoiceWidgetAnnotationElement,WidgetAnnotationElement),babelHelpers.createClass(ChoiceWidgetAnnotationElement,[{key:"render",value:function(){var _step125,_this67=this,storage=(this.container.classList.add("choiceWidgetAnnotation"),this.annotationStorage),id=this.data.id,storedData=storage.getValue(id,{value:this.data.fieldValue}),selectElement=document.createElement("select"),addAnEmptyEntry=(GetElementsByNameSet.add(selectElement),selectElement.setAttribute("data-element-id",id),selectElement.disabled=this.data.readOnly,this._setRequired(selectElement,this.data.required),selectElement.name=this.data.fieldName,selectElement.tabIndex=0,this.data.combo&&0>1,y1=array[middle][0];if(y1===y)return middle;y1>2),_version=header[1];if(0!==_version)throw new Error("Invalid version: ".concat(_version));var diffs,width=header[2],height=header[3],areContours=0===header[4],thickness=header[5],numberOfDrawings=header[6],bufferType=header[7],outlines=[],diffsOffset=(8+3*numberOfDrawings)*Uint32Array.BYTES_PER_ELEMENT;switch(bufferType){case Int8Array.BYTES_PER_ELEMENT:diffs=new Int8Array(data.buffer,diffsOffset);break;case Int16Array.BYTES_PER_ELEMENT:diffs=new Int16Array(data.buffer,diffsOffset);break;case Int32Array.BYTES_PER_ELEMENT:diffs=new Int32Array(data.buffer,diffsOffset)}for(var offset=0,i=0;iMath.pow(dist*tmax,2)?(_assertClassBrand(_SignatureExtractor,this,_douglasPeuckerHelper).call(this,points,start,index+2,output),_assertClassBrand(_SignatureExtractor,this,_douglasPeuckerHelper).call(this,points,index,end,output)):output.push(ax,ay)}}function _douglasPeucker(points){var output=[],len=points.length;return _assertClassBrand(_SignatureExtractor,this,_douglasPeuckerHelper).call(this,points,0,len,output),output.push(points[len-2],points[len-1]),output.length<=4?null:output}function _bilateralFilter(buf,width,height,sigmaS,sigmaR,kernelSize){for(var kernel=new Float32Array(Math.pow(kernelSize,2)),sigmaS2=-2*Math.pow(sigmaS,2),halfSize=kernelSize>>1,i=0;i>2),max=-1/0,min=1/0,i=0,ii=out.length;ihistogram[i+1]);i--);return i}function _getGrayPixels(bitmap){var originalBitmap=bitmap,_bitmap3=bitmap,width=_bitmap3.width,_bitmap3=_bitmap3.height,maxDim=_assertClassBrand(_SignatureExtractor,this,_PARAMETERS)._.maxDim,newWidth=width,newHeight=_bitmap3;if(maxDim(isForCopying=context.stamps.get(_classPrivateFieldGet(_bitmapId,this))).area&&(isForCopying.area=decorative,isForCopying.serialized.bitmap.close(),isForCopying.serialized.bitmap=_assertClassBrand(_StampEditor_brand,this,_serializeBitmap).call(this,!1)):(context.stamps.set(_classPrivateFieldGet(_bitmapId,this),{area:decorative,serialized:serialized}),serialized.bitmap=_assertClassBrand(_StampEditor_brand,this,_serializeBitmap).call(this,!1)))}return serialized}},{key:"renderAnnotationElement",value:function(annotation){return annotation.updateEdited({rect:this.getRect(0,0)}),null}}],[{key:"initialize",value:function(l10n,uiManager){AnnotationEditor.initialize(l10n,uiManager)}},{key:"isHandlingMimeForPasting",value:function(mime){return SupportedImageMimeTypes.includes(mime)}},{key:"paste",value:function(item,parent){parent.pasteEditor({mode:AnnotationEditorType.STAMP},{bitmapFile:item.getAsFile()})}},{key:"computeTelemetryFinalData",value:function(data){var _hasAltTextStats$get,data=data.get("hasAltText");return{hasAltText:null!=(_hasAltTextStats$get=data.get(!0))?_hasAltTextStats$get:0,hasNoAltText:null!=(_hasAltTextStats$get=data.get(!1))?_hasAltTextStats$get:0}}},{key:"deserialize",value:async function(data,parent,uiManager){var initialData=null,missingCanvas=!1,container=(data instanceof StampAnnotationElement&&(_rect5=(_data0$data=(_data0=data).data).rect,rotation=_data0$data.rotation,id=_data0$data.id,structParent=_data0$data.structParent,_data0$data=_data0$data.popupRef,container=_data0.container,pageNumber=_data0.parent.page.pageNumber,(_data0=_data0.canvas)?(delete data.canvas,_bitmapId2=(container=uiManager.imageManager.getFromCanvas(container.id,_data0)).id,_bitmap2=container.bitmap,_data0.remove()):data._hasNoCanvas=missingCanvas=!0,_data0=(null==(container=await parent._structTree.getAriaAttributes("".concat("pdfjs_internal_id_").concat(id)))?void 0:container.get("aria-label"))||"",initialData=data={annotationType:AnnotationEditorType.STAMP,bitmapId:_bitmapId2,bitmap:_bitmap2,pageIndex:pageNumber-1,rect:_rect5.slice(0),rotation:rotation,annotationElementId:id,id:id,deleted:!1,accessibilityData:{decorative:!1,altText:_data0},isSvg:!1,structParent:structParent,popupRef:_data0$data}),await _superPropGet(StampEditor,"deserialize",this,2)([data,parent,uiManager])),_bitmapId2=data,_bitmap2=_bitmapId2.rect,pageNumber=_bitmapId2.bitmap,_rect5=_bitmapId2.bitmapUrl,rotation=_bitmapId2.bitmapId,id=_bitmapId2.isSvg,_data0=_bitmapId2.accessibilityData,structParent=(missingCanvas?(uiManager.addMissingCanvas(data.id,container),_classPrivateFieldSet(_missingCanvas,container,!0)):rotation&&uiManager.imageManager.isValidId(rotation)?(_classPrivateFieldSet(_bitmapId,container,rotation),pageNumber&&_classPrivateFieldSet(_bitmap,container,pageNumber)):_classPrivateFieldSet(_bitmapUrl,container,_rect5),_classPrivateFieldSet(_isSvg,container,id),babelHelpers.slicedToArray(container.pageDimensions,2)),_data0$data=structParent[0],parent=structParent[1];return container.width=(_bitmap2[2]-_bitmap2[0])/_data0$data,container.height=(_bitmap2[3]-_bitmap2[1])/parent,_data0&&(container.altTextData=_data0),container._initialData=initialData,_classPrivateFieldSet(_hasBeenAddedInUndoStack,container,!!initialData),container}}])}(AnnotationEditor);function _getBitmapFetched(data){var fromId=1=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);ei;)!hasOwn(O,key=names[i++])||~indexOf(result,key)||push(result,key);return result}},2106:function(module,__unused_webpack_exports,__webpack_require__){var makeBuiltIn=__webpack_require__(283),defineProperty=__webpack_require__(4913);module.exports=function(target,name,descriptor){return descriptor.get&&makeBuiltIn(descriptor.get,name,{getter:!0}),descriptor.set&&makeBuiltIn(descriptor.set,name,{setter:!0}),defineProperty.f(target,name,descriptor)}},2140:function(module,__unused_webpack_exports,__webpack_require__){var test={};test[__webpack_require__(8227)("toStringTag")]="z",module.exports="[object z]"===String(test)},2195:function(module,__unused_webpack_exports,__webpack_require__){var __webpack_require__=__webpack_require__(9504),toString=__webpack_require__({}.toString),stringSlice=__webpack_require__("".slice);module.exports=function(it){return stringSlice(toString(it),8,-1)}},2211:function(module,__unused_webpack_exports,__webpack_require__){__webpack_require__=__webpack_require__(9039);module.exports=!__webpack_require__(function(){function F(){}return F.prototype.constructor=null,Object.getPrototypeOf(new F)!==F.prototype})},2303:function(module,__unused_webpack_exports,__webpack_require__){var globalThis=__webpack_require__(4576),__webpack_require__=__webpack_require__(9504),Uint8Array=globalThis.Uint8Array,SyntaxError=globalThis.SyntaxError,parseInt=globalThis.parseInt,min=Math.min,NOT_HEX=/[^\da-f]/i,exec=__webpack_require__(NOT_HEX.exec),stringSlice=__webpack_require__("".slice);module.exports=function(string,into){var stringLength=string.length;if(stringLength%2!=0)throw new SyntaxError("String should be an even number of characters");for(var maxLength=into?min(into.length,stringLength/2):stringLength/2,bytes=into||new Uint8Array(maxLength),read=0,written=0;written"+content+""},NullProtoObject=function(){try{activeXDocument=new ActiveXObject("htmlfile")}catch(error){}NullProtoObject="undefined"==typeof document||document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):(iframe=documentCreateElement("iframe"),JS="java"+SCRIPT+":",iframe.style.display="none",html.appendChild(iframe),iframe.src=String(JS),(JS=iframe.contentWindow.document).open(),JS.write(scriptTag("document.F=Object")),JS.close(),JS.F);for(var iframe,JS,length=enumBugKeys.length;length--;)delete NullProtoObject.prototype[enumBugKeys[length]];return NullProtoObject()};hiddenKeys[IE_PROTO]=!0,module.exports=Object.create||function(O,Properties){var result;return null!==O?(EmptyConstructor.prototype=anObject(O),result=new EmptyConstructor,EmptyConstructor.prototype=null,result[IE_PROTO]=O):result=NullProtoObject(),void 0===Properties?result:definePropertiesModule.f(result,Properties)}},2475:function(__unused_webpack_module,__unused_webpack_exports,__webpack_require__){var $=__webpack_require__(6518),isSupersetOf=__webpack_require__(8527);$({target:"Set",proto:!0,real:!0,forced:!__webpack_require__(4916)("isSupersetOf",function(result){return!result})},{isSupersetOf:isSupersetOf})},2489:function(__unused_webpack_module,__unused_webpack_exports,__webpack_require__){var $=__webpack_require__(6518),call=__webpack_require__(9565),aCallable=__webpack_require__(9306),anObject=__webpack_require__(8551),getIteratorDirect=__webpack_require__(1767),createIteratorProxy=__webpack_require__(9462),callWithSafeIterationClosing=__webpack_require__(6319),IS_PURE=__webpack_require__(6395),iteratorClose=__webpack_require__(9539),iteratorHelperThrowsOnInvalidIterator=__webpack_require__(684),__webpack_require__=__webpack_require__(4549),iteratorHelperThrowsOnInvalidIterator=!IS_PURE&&!iteratorHelperThrowsOnInvalidIterator("filter",function(){}),filterWithoutClosingOnEarlyError=!IS_PURE&&!iteratorHelperThrowsOnInvalidIterator&&__webpack_require__("filter",TypeError),__webpack_require__=IS_PURE||iteratorHelperThrowsOnInvalidIterator||filterWithoutClosingOnEarlyError,IteratorProxy=createIteratorProxy(function(){for(var result,iterator=this.iterator,predicate=this.predicate,next=this.next;;){if(result=anObject(call(next,iterator)),this.done=!!result.done)return;if(result=result.value,callWithSafeIterationClosing(iterator,predicate,[result,this.counter++],!0))return result}});$({target:"Iterator",proto:!0,real:!0,forced:__webpack_require__},{filter:function(predicate){anObject(this);try{aCallable(predicate)}catch(error){iteratorClose(this,"throw",error)}return filterWithoutClosingOnEarlyError?call(filterWithoutClosingOnEarlyError,this,predicate):new IteratorProxy(getIteratorDirect(this),{predicate:predicate})}})},2529:function(module){module.exports=function(value,done){return{value:value,done:done}}},2603:function(module,__unused_webpack_exports,__webpack_require__){var toString=__webpack_require__(655);module.exports=function(argument,$default){return void 0===argument?arguments.length<2?"":$default:toString(argument)}},2652:function(module,__unused_webpack_exports,__webpack_require__){function Result(stopped,result){this.stopped=stopped,this.result=result}var bind=__webpack_require__(6080),call=__webpack_require__(9565),anObject=__webpack_require__(8551),tryToString=__webpack_require__(6823),isArrayIteratorMethod=__webpack_require__(4209),lengthOfArrayLike=__webpack_require__(6198),isPrototypeOf=__webpack_require__(1625),getIterator=__webpack_require__(81),getIteratorMethod=__webpack_require__(851),iteratorClose=__webpack_require__(9539),$TypeError=TypeError,ResultPrototype=Result.prototype;module.exports=function(iterable,unboundFunction,options){function stop(condition){return iterator&&iteratorClose(iterator,"normal"),new Result(!0,condition)}function callFn(value){return AS_ENTRIES?(anObject(value),INTERRUPTED?fn(value[0],value[1],stop):fn(value[0],value[1])):INTERRUPTED?fn(value,stop):fn(value)}var iterator,index,length,result,next,step,that=options&&options.that,AS_ENTRIES=!(!options||!options.AS_ENTRIES),IS_RECORD=!(!options||!options.IS_RECORD),IS_ITERATOR=!(!options||!options.IS_ITERATOR),INTERRUPTED=!(!options||!options.INTERRUPTED),fn=bind(unboundFunction,that);if(IS_RECORD)iterator=iterable.iterator;else if(IS_ITERATOR)iterator=iterable;else{if(!(options=getIteratorMethod(iterable)))throw new $TypeError(tryToString(iterable)+" is not iterable");if(isArrayIteratorMethod(options)){for(index=0,length=lengthOfArrayLike(iterable);indexotherRec.size)&&!1!==iterate(O,function(e){if(!otherRec.includes(e))return!1},!0)}},3853:function(__unused_webpack_module,__unused_webpack_exports,__webpack_require__){var $=__webpack_require__(6518),isDisjointFrom=__webpack_require__(4449);$({target:"Set",proto:!0,real:!0,forced:!__webpack_require__(4916)("isDisjointFrom",function(result){return!result})},{isDisjointFrom:isDisjointFrom})},3925:function(module,__unused_webpack_exports,__webpack_require__){var isObject=__webpack_require__(34);module.exports=function(argument){return isObject(argument)||null===argument}},3972:function(module,__unused_webpack_exports,__webpack_require__){var isObject=__webpack_require__(34),$String=String,$TypeError=TypeError;module.exports=function(argument){if(void 0===argument||isObject(argument))return argument;throw new $TypeError($String(argument)+" is not an object or undefined")}},4055:function(module,__unused_webpack_exports,__webpack_require__){var globalThis=__webpack_require__(4576),__webpack_require__=__webpack_require__(34),document=globalThis.document,EXISTS=__webpack_require__(document)&&__webpack_require__(document.createElement);module.exports=function(it){return EXISTS?document.createElement(it):{}}},4114:function(__unused_webpack_module,__unused_webpack_exports,__webpack_require__){var $=__webpack_require__(6518),toObject=__webpack_require__(8981),lengthOfArrayLike=__webpack_require__(6198),setArrayLength=__webpack_require__(4527),doesNotExceedSafeInteger=__webpack_require__(6837);$({target:"Array",proto:!0,arity:1,forced:__webpack_require__(9039)(function(){return 4294967297!==[].push.call({length:4294967296},1)})||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(error){return error instanceof TypeError}}()},{push:function(item){var O=toObject(this),len=lengthOfArrayLike(O),argCount=arguments.length;doesNotExceedSafeInteger(len+argCount);for(var i=0;iotherRec.size?iterateSimple(otherRec.getIterator(),function(e){has(O,e)&&add(result,e)}):iterateSet(O,function(e){otherRec.includes(e)&&add(result,e)}),result}},8773:function(__unused_webpack_module,exports){var $propertyIsEnumerable={}.propertyIsEnumerable,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,NASHORN_BUG=getOwnPropertyDescriptor&&!$propertyIsEnumerable.call({1:2},1);exports.f=NASHORN_BUG?function(V){V=getOwnPropertyDescriptor(this,V);return!!V&&V.enumerable}:$propertyIsEnumerable},8981:function(module,__unused_webpack_exports,__webpack_require__){var requireObjectCoercible=__webpack_require__(7750),$Object=Object;module.exports=function(argument){return $Object(requireObjectCoercible(argument))}},9039:function(module){module.exports=function(exec){try{return!!exec()}catch(error){return!0}}},9143:function(module,__unused_webpack_exports,__webpack_require__){function skipAsciiWhitespace(string,index){for(var length=string.length;index>16&255,alphabet>>8&255,255&alphabet];if(2===chunkLength){if(throwOnExtraBits&&0!==chunk[1])throw new SyntaxError("Extra bits");return[chunk[0]]}if(3!==chunkLength)return chunk;if(throwOnExtraBits&&0!==chunk[2])throw new SyntaxError("Extra bits");return[chunk[0],chunk[1]]}function writeBytes(bytes,elements,written){for(var elementsLength=elements.length,index=0;index>6*shift&63)}for(var triplet,array=anUint8Array(this),options=arguments.length?anObjectOrUndefined(arguments[0]):void 0,alphabet="base64"===getAlphabetOption(options)?base64Alphabet:base64UrlAlphabet,options=!!options&&!!options.omitPadding,result=(notDetached(this.buffer),""),i=0,length=array.length;i+2=VerbosityLevel.INFOS&&console.log("Info: ".concat(msg))}function warn(msg){verbosity>=VerbosityLevel.WARNINGS&&console.log("Warning: ".concat(msg))}function unreachable(msg){throw new Error(msg)}function assert(cond,msg){cond||unreachable(msg)}function createValidAbsoluteUrl(url){var baseUrl=1rect[2]&&(r[0]=rect[2],r[2]=rect[0]),rect[1]>rect[3]&&(r[1]=rect[3],r[3]=rect[1]),r}},{key:"intersect",value:function(rect1,rect2){var yLow,xLow=Math.max(Math.min(rect1[0],rect1[2]),Math.min(rect2[0],rect2[2])),xHigh=Math.min(Math.max(rect1[0],rect1[2]),Math.max(rect2[0],rect2[2]));return xHigh>16,(65280&colorRGB)>>8,255&colorRGB]:color.startsWith("rgb(")?color.slice(4,-1).split(",").map(function(x){return parseInt(x)}):color.startsWith("rgba(")?color.slice(5,-1).split(",").map(function(x){return parseInt(x)}).slice(0,3):(warn('Not a valid color format: "'.concat(color,'"')),[0,0,0])}function getCurrentTransform(ctx){ctx=ctx.getTransform();return[ctx.a,ctx.b,ctx.c,ctx.d,ctx.e,ctx.f]}function getCurrentTransformInverse(ctx){ctx=ctx.getTransform().invertSelf();return[ctx.a,ctx.b,ctx.c,ctx.d,ctx.e,ctx.f]}function setLayerDimensions(div,viewport){var style,_viewport$rawDims,pageWidth,useRound,mustFlip=2capAreaFactor||this.sy>capAreaFactor)&&(this.sx=capAreaFactor,this.sy=capAreaFactor,!0)}}],[{key:"pixelRatio",get:function(){return globalThis.devicePixelRatio||1}},{key:"capPixels",value:function(maxPixels,capAreaFactor){return 0<=capAreaFactor?(capAreaFactor=Math.ceil(window.screen.availWidth*window.screen.availHeight*Math.pow(this.pixelRatio,2)*(1+capAreaFactor/100)),0_classPrivateFieldGet144.identifier&&(onTouchEnd=(evt=[_classPrivateFieldGet144,onTouchEnd])[0],_classPrivateFieldGet144=evt[1]),_classPrivateFieldSet(_touchInfo,this,{touch0X:onTouchEnd.screenX,touch0Y:onTouchEnd.screenY,touch1X:_classPrivateFieldGet144.screenX,touch1Y:_classPrivateFieldGet144.screenY}))}}function _onTouchMove(evt){var _ref133,touch0,screen1X,touchInfo,distance,pTouch0X,pTouch0Y;_classPrivateFieldGet(_touchInfo,this)&&2===evt.touches.length&&(stopEvent(evt),touch0=(evt=babelHelpers.slicedToArray(evt.touches,2))[0],evt=evt[1],touch0.identifier>evt.identifier&&(touch0=(_ref133=[evt,touch0])[0],evt=_ref133[1]),_ref133=touch0.screenX,touch0=touch0.screenY,screen1X=(evt=evt).screenX,evt=evt.screenY,pTouch0X=(touchInfo=_classPrivateFieldGet(_touchInfo,this)).touch0X,pTouch0Y=touchInfo.touch0Y,pTouch0X=touchInfo.touch1X-pTouch0X,pTouch0Y=touchInfo.touch1Y-pTouch0Y,distance=Math.hypot(screen1X-_ref133,evt-touch0)||1,pTouch0X=Math.hypot(pTouch0X,pTouch0Y)||1,!_classPrivateFieldGet(_isPinching,this)&&Math.abs(pTouch0X-distance)<=_TouchManager.MIN_TOUCH_DISTANCE_TO_PINCH||(touchInfo.touch0X=_ref133,touchInfo.touch0Y=touch0,touchInfo.touch1X=screen1X,touchInfo.touch1Y=evt,_classPrivateFieldGet(_isPinching,this)?(pTouch0Y=[(_ref133+screen1X)/2,(touch0+evt)/2],null!=(touchInfo=_classPrivateFieldGet(_onPinching,this))&&touchInfo.call(this,pTouch0Y,pTouch0X,distance)):_classPrivateFieldSet(_isPinching,this,!0)))}function _onTouchEnd(evt){var _classPrivateFieldGet149;2<=evt.touches.length||(_classPrivateFieldGet(_touchMoveAC,this)&&(_classPrivateFieldGet(_touchMoveAC,this).abort(),_classPrivateFieldSet(_touchMoveAC,this,null),null!=(_classPrivateFieldGet149=_classPrivateFieldGet(_onPinchEnd,this)))&&_classPrivateFieldGet149.call(this),_classPrivateFieldGet(_touchInfo,this)&&(stopEvent(evt),_classPrivateFieldSet(_touchInfo,this,null),_classPrivateFieldSet(_isPinching,this,!1)))}var _TouchManager=TouchManager,_accessibilityData=new WeakMap,_allResizerDivs=new WeakMap,_altText3=new WeakMap,_disabled=new WeakMap,_dragPointerId=new WeakMap,_dragPointerType=new WeakMap,_keepAspectRatio=new WeakMap,_resizersDiv=new WeakMap,_lastPointerCoords=new WeakMap,_savedDimensions=new WeakMap,_focusAC=new WeakMap,_focusedResizerName=new WeakMap,_hasBeenClicked=new WeakMap,_initialRect=new WeakMap,_isEditing=new WeakMap,_isInEditMode=new WeakMap,_isResizerEnabledForKeyboard=new WeakMap,_moveInDOMTimeout=new WeakMap,_prevDragX=new WeakMap,_prevDragY=new WeakMap,_telemetryTimeouts=new WeakMap,_touchManager=new WeakMap,_isDraggable=new WeakMap,_zIndex=new WeakMap,_AnnotationEditor_brand=new WeakSet,AnnotationEditor=function(){function AnnotationEditor(parameters){babelHelpers.classCallCheck(this,AnnotationEditor),_classPrivateMethodInitSpec(this,_AnnotationEditor_brand),_classPrivateFieldInitSpec(this,_accessibilityData,null),_classPrivateFieldInitSpec(this,_allResizerDivs,null),_classPrivateFieldInitSpec(this,_altText3,null),_classPrivateFieldInitSpec(this,_disabled,!1),_classPrivateFieldInitSpec(this,_dragPointerId,null),_classPrivateFieldInitSpec(this,_dragPointerType,""),_classPrivateFieldInitSpec(this,_keepAspectRatio,!1),_classPrivateFieldInitSpec(this,_resizersDiv,null),_classPrivateFieldInitSpec(this,_lastPointerCoords,null),_classPrivateFieldInitSpec(this,_savedDimensions,null),_classPrivateFieldInitSpec(this,_focusAC,null),_classPrivateFieldInitSpec(this,_focusedResizerName,""),_classPrivateFieldInitSpec(this,_hasBeenClicked,!1),_classPrivateFieldInitSpec(this,_initialRect,null),_classPrivateFieldInitSpec(this,_isEditing,!1),_classPrivateFieldInitSpec(this,_isInEditMode,!1),_classPrivateFieldInitSpec(this,_isResizerEnabledForKeyboard,!1),_classPrivateFieldInitSpec(this,_moveInDOMTimeout,null),_classPrivateFieldInitSpec(this,_prevDragX,0),_classPrivateFieldInitSpec(this,_prevDragY,0),_classPrivateFieldInitSpec(this,_telemetryTimeouts,null),_classPrivateFieldInitSpec(this,_touchManager,null),babelHelpers.defineProperty(this,"isSelected",!1),babelHelpers.defineProperty(this,"_isCopy",!1),babelHelpers.defineProperty(this,"_editToolbar",null),babelHelpers.defineProperty(this,"_initialOptions",Object.create(null)),babelHelpers.defineProperty(this,"_initialData",null),babelHelpers.defineProperty(this,"_isVisible",!0),babelHelpers.defineProperty(this,"_uiManager",null),babelHelpers.defineProperty(this,"_focusEventsAllowed",!0),_classPrivateFieldInitSpec(this,_isDraggable,!1),_classPrivateFieldInitSpec(this,_zIndex,AnnotationEditor._zIndex++),this.parent=parameters.parent,this.id=parameters.id,this.width=this.height=null,this.pageIndex=parameters.parent.pageIndex,this.name=parameters.name,this.div=null,this._uiManager=parameters.uiManager,this.annotationElementId=null,this._willKeepAspectRatio=!1,this._initialOptions.isCentered=parameters.isCentered,this._structTreeParentId=null,this.annotationElementId=parameters.annotationElementId||null;var _this$parent$viewport=this.parent.viewport,_rotation2=_this$parent$viewport.rotation,_this$parent$viewport=_this$parent$viewport.rawDims,_pageWidth2=_this$parent$viewport.pageWidth,_pageHeight2=_this$parent$viewport.pageHeight,pageX=_this$parent$viewport.pageX,_this$parent$viewport=_this$parent$viewport.pageY,_rotation2=(this.rotation=_rotation2,this.pageRotation=(360+_rotation2-this._uiManager.viewParameters.rotation)%360,this.pageDimensions=[_pageWidth2,_pageHeight2],this.pageTranslation=[pageX,_this$parent$viewport],babelHelpers.slicedToArray(this.parentDimensions,2)),_pageWidth2=_rotation2[0],_pageHeight2=_rotation2[1];this.x=parameters.x/_pageWidth2,this.y=parameters.y/_pageHeight2,this.isAttachedToDOM=!1,this.deleted=!1}return babelHelpers.createClass(AnnotationEditor,[{key:"editorType",get:function(){return Object.getPrototypeOf(this).constructor._type}},{key:"mode",get:function(){return Object.getPrototypeOf(this).constructor._editorType}},{key:"propertiesToUpdate",get:function(){return[]}},{key:"_isDraggable",get:function(){return _classPrivateFieldGet(_isDraggable,this)},set:function(value){var _this$div;_classPrivateFieldSet(_isDraggable,this,value),null!=(_this$div=this.div)&&_this$div.classList.toggle("draggable",value)}},{key:"isEnterHandled",get:function(){return!0}},{key:"center",value:function(){var _this$pageDimensions=babelHelpers.slicedToArray(this.pageDimensions,2),pageWidth=_this$pageDimensions[0],pageHeight=_this$pageDimensions[1];switch(this.parentRotation){case 90:this.x-=this.height*pageHeight/(2*pageWidth),this.y+=this.width*pageWidth/(2*pageHeight);break;case 180:this.x+=this.width/2,this.y+=this.height/2;break;case 270:this.x+=this.height*pageHeight/(2*pageWidth),this.y-=this.width*pageWidth/(2*pageHeight);break;default:this.x-=this.width/2,this.y-=this.height/2}this.fixAndSetPosition()}},{key:"addCommands",value:function(params){this._uiManager.addCommands(params)}},{key:"currentLayer",get:function(){return this._uiManager.currentLayer}},{key:"setInBackground",value:function(){this.div.style.zIndex=0}},{key:"setInForeground",value:function(){this.div.style.zIndex=_classPrivateFieldGet(_zIndex,this)}},{key:"setParent",value:function(parent){null!==parent?(this.pageIndex=parent.pageIndex,this.pageDimensions=parent.pageDimensions):_assertClassBrand(_AnnotationEditor_brand,this,_stopResizing).call(this),this.parent=parent}},{key:"focusin",value:function(event){this._focusEventsAllowed&&(_classPrivateFieldGet(_hasBeenClicked,this)?_classPrivateFieldSet(_hasBeenClicked,this,!1):this.parent.setSelected(this))}},{key:"focusout",value:function(event){var target;!this._focusEventsAllowed||!this.isAttachedToDOM||null!=(target=event.relatedTarget)&&target.closest("#".concat(this.id))||(event.preventDefault(),null!=(target=this.parent)&&target.isMultipleSelection)||this.commitOrRemove()}},{key:"commitOrRemove",value:function(){this.isEmpty()?this.remove():this.commit()}},{key:"commit",value:function(){this.isInEditMode()&&this.addToAnnotationStorage()}},{key:"addToAnnotationStorage",value:function(){this._uiManager.addToAnnotationStorage(this)}},{key:"setAt",value:function(x,y,tx,ty){var _this$parentDimension2=babelHelpers.slicedToArray(this.parentDimensions,2),width=_this$parentDimension2[0],_this$parentDimension2=_this$parentDimension2[1],_this$screenToPageTra=this.screenToPageTranslation(tx,ty),_this$screenToPageTra=babelHelpers.slicedToArray(_this$screenToPageTra,2);tx=_this$screenToPageTra[0],ty=_this$screenToPageTra[1],this.x=(x+tx)/width,this.y=(y+ty)/_this$parentDimension2,this.fixAndSetPosition()}},{key:"_moveAfterPaste",value:function(baseX,baseY){var _this$parentDimension3=babelHelpers.slicedToArray(this.parentDimensions,2),parentWidth=_this$parentDimension3[0],_this$parentDimension3=_this$parentDimension3[1];this.setAt(baseX*parentWidth,baseY*_this$parentDimension3,this.width*parentWidth,this.height*_this$parentDimension3),this._onTranslated()}},{key:"translate",value:function(x,y){_assertClassBrand(_AnnotationEditor_brand,this,_translate).call(this,this.parentDimensions,x,y)}},{key:"translateInPage",value:function(x,y){_classPrivateFieldGet(_initialRect,this)||_classPrivateFieldSet(_initialRect,this,[this.x,this.y,this.width,this.height]),_assertClassBrand(_AnnotationEditor_brand,this,_translate).call(this,this.pageDimensions,x,y),this.div.scrollIntoView({block:"nearest"})}},{key:"translationDone",value:function(){this._onTranslated(this.x,this.y)}},{key:"drag",value:function(tx,ty){_classPrivateFieldGet(_initialRect,this)||_classPrivateFieldSet(_initialRect,this,[this.x,this.y,this.width,this.height]);var div=this.div,_this$parentDimension4=babelHelpers.slicedToArray(this.parentDimensions,2),parentWidth=_this$parentDimension4[0],_this$parentDimension4=_this$parentDimension4[1],_this$parentDimension4=(this.x+=tx/parentWidth,this.y+=ty/_this$parentDimension4,this.parent&&(this.x<0||1>>8,data[length++]=255&code)}else{if(!ArrayBuffer.isView(input))throw new Error("Invalid data format, must be a string or TypedArray.");length=(data=input.slice()).byteLength}for(var k2,blockCounts=length>>2,tailLength=length-4*blockCounts,dataUint32=new Uint32Array(data.buffer,0,blockCounts),k1=0,h1=this.h1,h2=this.h2,C1=3432918353,C2=461845907,_i6=0;_i6>>17)*C2&4294901760|13715*k1&65535)<<13|h1>>>19)+3864292196:h2=5*(h2=(h2^=(k2=(k2=(k2=dataUint32[_i6])*C1&4294901760|11601*k2&65535)<<15|k2>>>17)*C2&4294901760|13715*k2&65535)<<13|h2>>>19)+3864292196;switch(k1=0,tailLength){case 3:k1^=data[4*blockCounts+2]<<16;case 2:k1^=data[4*blockCounts+1]<<8;case 1:k1=(k1=(k1=(k1^=data[4*blockCounts])*C1&4294901760|11601*k1&65535)<<15|k1>>>17)*C2&4294901760|13715*k1&65535,1&blockCounts?h1^=k1:h2^=k1}this.h1=h1,this.h2=h2}},{key:"hexdigest",value:function(){var h1=this.h1,h2=this.h2,h1=3981806797*(h1^=h2>>>1)&4294901760|36045*h1&65535;return h1=444984403*(h1^=(h2=4283543511*h2&4294901760|(2950163797*(h2<<16|h1>>>16)&4294901760)>>>16)>>>1)&4294901760|60499*h1&65535,((h1^=(h2=3301882366*h2&4294901760|(3120437893*(h2<<16|h1>>>16)&4294901760)>>>16)>>>1)>>>0).toString(16).padStart(8,"0")+(h2>>>0).toString(16).padStart(8,"0")}}])}(),SerializableEmpty=Object.freeze({map:null,hash:"",transfer:void 0}),_modified=new WeakMap,_modifiedIds=new WeakMap,_storage=new WeakMap,_AnnotationStorage_brand=new WeakSet,AnnotationStorage=function(){return babelHelpers.createClass(function AnnotationStorage(){babelHelpers.classCallCheck(this,AnnotationStorage),_classPrivateMethodInitSpec(this,_AnnotationStorage_brand),_classPrivateFieldInitSpec(this,_modified,!1),_classPrivateFieldInitSpec(this,_modifiedIds,null),_classPrivateFieldInitSpec(this,_storage,new Map),this.onSetModified=null,this.onResetModified=null,this.onAnnotationEditor=null},[{key:"getValue",value:function(key,defaultValue){key=_classPrivateFieldGet(_storage,this).get(key);return void 0===key?defaultValue:Object.assign(defaultValue,key)}},{key:"getRawValue",value:function(key){return _classPrivateFieldGet(_storage,this).get(key)}},{key:"remove",value:function(key){if(_classPrivateFieldGet(_storage,this).delete(key),0===_classPrivateFieldGet(_storage,this).size&&this.resetModified(),"function"==typeof this.onAnnotationEditor){var _step50,_iterator50=_createForOfIteratorHelper(_classPrivateFieldGet(_storage,this).values());try{for(_iterator50.s();!(_step50=_iterator50.n()).done;)if(_step50.value instanceof AnnotationEditor)return}catch(err){_iterator50.e(err)}finally{_iterator50.f()}this.onAnnotationEditor(null)}}},{key:"setValue",value:function(key,value){var obj=_classPrivateFieldGet(_storage,this).get(key),modified=!1;if(void 0!==obj)for(var _i7=0,_Object$entries=Object.entries(value);_i7<_Object$entries.length;_i7++){var _Object$entries$_i=babelHelpers.slicedToArray(_Object$entries[_i7],2),entry=_Object$entries$_i[0],_Object$entries$_i=_Object$entries$_i[1];obj[entry]!==_Object$entries$_i&&(modified=!0,obj[entry]=_Object$entries$_i)}else modified=!0,_classPrivateFieldGet(_storage,this).set(key,value);modified&&_assertClassBrand(_AnnotationStorage_brand,this,_setModified).call(this),value instanceof AnnotationEditor&&"function"==typeof this.onAnnotationEditor&&this.onAnnotationEditor(value.constructor._type)}},{key:"has",value:function(key){return _classPrivateFieldGet(_storage,this).has(key)}},{key:"size",get:function(){return _classPrivateFieldGet(_storage,this).size}},{key:"resetModified",value:function(){_classPrivateFieldGet(_modified,this)&&(_classPrivateFieldSet(_modified,this,!1),"function"==typeof this.onResetModified)&&this.onResetModified()}},{key:"print",get:function(){return new PrintAnnotationStorage(this)}},{key:"serializable",get:function(){if(0===_classPrivateFieldGet(_storage,this).size)return SerializableEmpty;var _step51,map=new Map,hash=new MurmurHash3_64,transfer=[],context=Object.create(null),hasBitmap=!1,_iterator51=_createForOfIteratorHelper(_classPrivateFieldGet(_storage,this));try{for(_iterator51.s();!(_step51=_iterator51.n()).done;){var _step51$value=babelHelpers.slicedToArray(_step51.value,2),key=_step51$value[0],val=_step51$value[1],serialized=val instanceof AnnotationEditor?val.serialize(!1,context):val;serialized&&(map.set(key,serialized),hash.update("".concat(key,":").concat(JSON.stringify(serialized))),hasBitmap=hasBitmap||!!serialized.bitmap)}}catch(err){_iterator51.e(err)}finally{_iterator51.f()}if(hasBitmap){var _step52,_iterator52=_createForOfIteratorHelper(map.values());try{for(_iterator52.s();!(_step52=_iterator52.n()).done;){var value=_step52.value;value.bitmap&&transfer.push(value.bitmap)}}catch(err){_iterator52.e(err)}finally{_iterator52.f()}}return 0>24&255,value>>16&255,value>>8&255,255&value)));var value="url(data:font/opentype;base64,".concat(btoa(canvas),");"),canvas='@font-face {font-family:"'.concat(loadTestFontId,'";src:').concat(value,"}"),div=(this.insertRule(canvas),this._document.createElement("div"));div.style.visibility="hidden",div.style.width=div.style.height="10px",div.style.position="absolute",div.style.top=div.style.left="0px";for(var _i9=0,_arr=[font.loadedName,loadTestFontId];_i9<_arr.length;_i9++){var name=_arr[_i9],span=this._document.createElement("span");span.textContent="Hi",span.style.fontFamily=name,div.append(span)}this._document.body.append(div),isFontReady(loadTestFontId,function(){div.remove(),request.complete()})}}])}(),FontFaceObject=function(){return babelHelpers.createClass(function FontFaceObject(translatedData){var i,inspectFont=1coords[p2+1]&&(tmp=p1,p1=p2,p2=tmp,tmp=c1,c1=c2,c2=tmp),coords[p2+1]>coords[p3+1]&&(tmp=p2,p2=p3,p3=tmp,tmp=c2,c2=c3,c3=tmp),coords[p1+1]>coords[p2+1]&&(tmp=p1,p1=p2,p2=tmp,tmp=c1,c1=c2,c2=tmp),(coords[p1]+context.offsetX)*context.scaleX),y1=(coords[p1+1]+context.offsetY)*context.scaleY,x2=(coords[p2]+context.offsetX)*context.scaleX,y2=(coords[p2+1]+context.offsetY)*context.scaleY,x3=(coords[p3]+context.offsetX)*context.scaleX,y3=(coords[p3+1]+context.offsetY)*context.scaleY;if(!(y3<=y1))for(var c1r=colors[c1],c1g=colors[c1+1],c1b=colors[c1+2],c2r=colors[c2],c2g=colors[c2+1],c2b=colors[c2+2],c3r=colors[c3],c3g=colors[c3+1],c3b=colors[c3+2],data=Math.round(y1),maxY=Math.round(y3),y=data;y<=maxY;y++){cab=y>3,widthRemainder=7&_ref28$srcPos,srcLength=src.length,dest=new Uint32Array(dest.buffer),destPos=0,i=0;i>2),dest32DataLength=dest32.length,fullSrcDiff=width+7>>3,white=4294967295,black=util_FeatureTest.isLittleEndian?4278190080:255,i=0;i>=1}for(;destPosendTime)return continueCallback(),i;steps=0}}}},{key:"endDrawing",value:function(){_assertClassBrand(_CanvasGraphics_brand,this,_restoreInitialState).call(this),this.cachedCanvases.clear(),this.cachedPatterns.clear();var _step62,_iterator62=_createForOfIteratorHelper(this._cachedBitmapsMap.values());try{for(_iterator62.s();!(_step62=_iterator62.n()).done;){var _step63,cache=_step62.value,_iterator63=_createForOfIteratorHelper(cache.values());try{for(_iterator63.s();!(_step63=_iterator63.n()).done;){var _canvas4=_step63.value;"undefined"!=typeof HTMLCanvasElement&&_canvas4 instanceof HTMLCanvasElement&&(_canvas4.width=_canvas4.height=0)}}catch(err){_iterator63.e(err)}finally{_iterator63.f()}cache.clear()}}catch(err){_iterator62.e(err)}finally{_iterator62.f()}this._cachedBitmapsMap.clear(),_assertClassBrand(_CanvasGraphics_brand,this,_drawFilter).call(this)}},{key:"_scaleImage",value:function(img,inverseTransform){for(var tmpCanvas,tmpCtx,_img$width=null!=(_img$width=img.width)?_img$width:img.displayWidth,_img$height=null!=(_img$height=img.height)?_img$height:img.displayHeight,widthScale=Math.max(Math.hypot(inverseTransform[0],inverseTransform[1]),1),heightScale=Math.max(Math.hypot(inverseTransform[2],inverseTransform[3]),1),paintWidth=_img$width,paintHeight=_img$height,tmpCanvasId="prescale1";2maskCanvas.width||maskOffsetY+height>maskCanvas.height?((ctx=(_canvas5=this.cachedCanvases.getCanvas("maskExtension",width,height)).context).drawImage(maskCanvas,-maskOffsetX,-maskOffsetY),ctx.globalCompositeOperation="destination-atop",ctx.fillStyle=backdrop,ctx.fillRect(0,0,width,height),ctx.globalCompositeOperation="source-over",maskCanvas=_canvas5.canvas,maskOffsetX=maskOffsetY=0):(maskCtx.save(),maskCtx.globalAlpha=1,maskCtx.setTransform(1,0,0,1,0,0),(ctx=new Path2D).rect(maskOffsetX,maskOffsetY,width,height),maskCtx.clip(ctx),maskCtx.globalCompositeOperation="destination-atop",maskCtx.fillStyle=backdrop,maskCtx.fillRect(maskOffsetX,maskOffsetY,width,height),maskCtx.restore())),layerCtx.save(),layerCtx.globalAlpha=1,layerCtx.setTransform(1,0,0,1,0,0),"Alpha"===subtype&&transferMap?layerCtx.filter=this.filterFactory.addAlphaFilter(transferMap):"Luminosity"===subtype&&(layerCtx.filter=this.filterFactory.addLuminosityFilter(transferMap)),new Path2D);_canvas5.rect(layerOffsetX,layerOffsetY,width,height),layerCtx.clip(_canvas5),layerCtx.globalCompositeOperation="destination-in",layerCtx.drawImage(maskCanvas,maskOffsetX,maskOffsetY,width,height,layerOffsetX,layerOffsetY,width,height),layerCtx.restore()}},{key:"save",value:function(){this.inSMaskMode&©CtxState(this.ctx,this.suspendedCtx),this.ctx.save();var old=this.current;this.stateStack.push(old),this.current=old.clone()}},{key:"restore",value:function(){0===this.stateStack.length?this.inSMaskMode&&this.endSMaskMode():(this.current=this.stateStack.pop(),this.ctx.restore(),this.inSMaskMode&©CtxState(this.suspendedCtx,this.ctx),this.checkSMaskState(),this.pendingClip=null,this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null)}},{key:"transform",value:function(a,b,c,d,e,f){this.ctx.transform(a,b,c,d,e,f),this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}},{key:"constructPath",value:function(op,data,minMax){var path=babelHelpers.slicedToArray(data,1)[0];if(minMax){if(!(path instanceof Path2D)){for(var path2d=data[0]=new Path2D,i=0,ii=path.length;iMAX_TEXT_DIVS_TO_RENDER)return warn("Ignoring additional textDivs for performance reasons."),void _classPrivateFieldSet(_disableProcessItems,this,!0);void 0===item.str?"beginMarkedContentProps"===item.type||"beginMarkedContent"===item.type?(parent=_classPrivateFieldGet(_container4,this),_classPrivateFieldSet(_container4,this,document.createElement("span")),_classPrivateFieldGet(_container4,this).classList.add("markedContent"),null!==item.id&&_classPrivateFieldGet(_container4,this).setAttribute("id","".concat(item.id)),parent.append(_classPrivateFieldGet(_container4,this))):"endMarkedContent"===item.type&&_classPrivateFieldSet(_container4,this,_classPrivateFieldGet(_container4,this).parentNode):(textContentItemsStr.push(item.str),_assertClassBrand(_TextLayer_brand,this,_appendText).call(this,item))}}catch(err){_iterator185.e(err)}finally{_iterator185.f()}}}function _appendText(geom){var textDiv=document.createElement("span"),textDivProperties={angle:0,canvasWidth:0,hasText:""!==geom.str,hasEOL:geom.hasEOL,fontSize:0},tx=(_classPrivateFieldGet(_textDivs,this).push(textDiv),Util.transform(_classPrivateFieldGet(_transform,this),geom.transform)),angle=Math.atan2(tx[1],tx[0]),style=_classPrivateFieldGet(_styleCache,this)[geom.fontName],fontFamily=(style.vertical&&(angle+=Math.PI/2),_classPrivateFieldGet(_fontInspectorEnabled,this)&&style.fontSubstitution||style.fontFamily),fontFamily=_TextLayer.fontFamilyMap.get(fontFamily)||fontFamily,fontHeight=Math.hypot(tx[2],tx[3]),fontAscent=fontHeight*function(fontFamily,style,lang){var cachedAscent=_assertClassBrand(_TextLayer,this,_ascentCache)._.get(fontFamily);if(cachedAscent)return cachedAscent;var cachedAscent=_assertClassBrand(_TextLayer,this,_getCtx).call(this,lang),lang=(cachedAscent.canvas.width=cachedAscent.canvas.height=DEFAULT_FONT_SIZE,_assertClassBrand(_TextLayer,this,_ensureCtxFont).call(this,cachedAscent,DEFAULT_FONT_SIZE,fontFamily),cachedAscent.measureText("")),ascent=lang.fontBoundingBoxAscent,lang=Math.abs(lang.fontBoundingBoxDescent),cachedAscent=(cachedAscent.canvas.width=cachedAscent.canvas.height=0,.8);ascent?cachedAscent=ascent/(ascent+lang):(util_FeatureTest.platform.isFirefox&&warn("Enable the `dom.textMetrics.fontBoundingBox.enabled` preference in `about:config` to improve TextLayer rendering."),style.ascent?cachedAscent=style.ascent:style.descent&&(cachedAscent=1+style.descent));return _assertClassBrand(_TextLayer,this,_ascentCache)._.set(fontFamily,cachedAscent),cachedAscent}.call(_TextLayer,fontFamily,style,_classPrivateFieldGet(_lang,this)),tx=0===angle?(left=tx[4],tx[5]-fontAscent):(left=tx[4]+fontAscent*Math.sin(angle),tx[5]-fontAscent*Math.cos(angle)),fontAscent="calc(var(--total-scale-factor) *",divStyle=textDiv.style,left=(_classPrivateFieldGet(_container4,this)===_classPrivateFieldGet(_rootContainer,this)?(divStyle.left="".concat((100*left/_classPrivateFieldGet(_pageWidth3,this)).toFixed(2),"%"),divStyle.top="".concat((100*tx/_classPrivateFieldGet(_pageHeight3,this)).toFixed(2),"%")):(divStyle.left="".concat(fontAscent).concat(left.toFixed(2),"px)"),divStyle.top="".concat(fontAscent).concat(tx.toFixed(2),"px)")),divStyle.fontSize="".concat(fontAscent).concat((_minFontSize._*fontHeight).toFixed(2),"px)"),divStyle.fontFamily=fontFamily,textDivProperties.fontSize=fontHeight,textDiv.setAttribute("role","presentation"),textDiv.textContent=geom.str,textDiv.dir=geom.dir,_classPrivateFieldGet(_fontInspectorEnabled,this)&&(textDiv.dataset.fontName=style.fontSubstitutionLoadedName||geom.fontName),0!==angle&&(textDivProperties.angle=angle*(180/Math.PI)),!1);(left=1this._numPages?Promise.reject(new Error("Invalid page request.")):(pageIndex=pageNumber-1,_classPrivateFieldGet(_pagePromises,this).get(pageIndex)||(promise=this.messageHandler.sendWithPromise("GetPage",{pageIndex:pageIndex}).then(function(pageInfo){if(_this52.destroyed)throw new Error("Transport destroyed");pageInfo.refStr&&_classPrivateFieldGet(_pageRefCache,_this52).set(pageInfo.refStr,pageNumber);pageInfo=new PDFPageProxy(pageIndex,pageInfo,_this52,_this52._params.pdfBug);return _classPrivateFieldGet(_pageCache,_this52).set(pageIndex,pageInfo),pageInfo}),_classPrivateFieldGet(_pagePromises,this).set(pageIndex,promise),promise))}},{key:"getPageIndex",value:function(ref){return isRefProxy(ref)?this.messageHandler.sendWithPromise("GetPageIndex",{num:ref.num,gen:ref.gen}):Promise.reject(new Error("Invalid pageIndex request."))}},{key:"getAnnotations",value:function(pageIndex,intent){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:pageIndex,intent:intent})}},{key:"getFieldObjects",value:function(){return _assertClassBrand(_WorkerTransport_brand,this,_cacheSimpleMethod).call(this,"GetFieldObjects")}},{key:"hasJSActions",value:function(){return _assertClassBrand(_WorkerTransport_brand,this,_cacheSimpleMethod).call(this,"HasJSActions")}},{key:"getCalculationOrderIds",value:function(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}},{key:"getDestinations",value:function(){return this.messageHandler.sendWithPromise("GetDestinations",null)}},{key:"getDestination",value:function(id){return"string"!=typeof id?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:id})}},{key:"getPageLabels",value:function(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}},{key:"getPageLayout",value:function(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}},{key:"getPageMode",value:function(){return this.messageHandler.sendWithPromise("GetPageMode",null)}},{key:"getViewerPreferences",value:function(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}},{key:"getOpenAction",value:function(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}},{key:"getAttachments",value:function(){return this.messageHandler.sendWithPromise("GetAttachments",null)}},{key:"getDocJSActions",value:function(){return _assertClassBrand(_WorkerTransport_brand,this,_cacheSimpleMethod).call(this,"GetDocJSActions")}},{key:"getPageJSActions",value:function(pageIndex){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:pageIndex})}},{key:"getStructTree",value:function(pageIndex){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:pageIndex})}},{key:"getOutline",value:function(){return this.messageHandler.sendWithPromise("GetOutline",null)}},{key:"getOptionalContentConfig",value:function(renderingIntent){return _assertClassBrand(_WorkerTransport_brand,this,_cacheSimpleMethod).call(this,"GetOptionalContentConfig").then(function(data){return new OptionalContentConfig(data,renderingIntent)})}},{key:"getPermissions",value:function(){return this.messageHandler.sendWithPromise("GetPermissions",null)}},{key:"getMetadata",value:function(){var _this53=this,name="GetMetadata",cachedPromise=_classPrivateFieldGet(_methodPromises,this).get(name);return cachedPromise||(cachedPromise=this.messageHandler.sendWithPromise(name,null).then(function(results){return{info:results[0],metadata:results[1]?new Metadata(results[1]):null,contentDispositionFilename:null!=(results=null==(results=_this53._fullReader)?void 0:results.filename)?results:null,contentLength:null!=(results=null==(results=_this53._fullReader)?void 0:results.contentLength)?results:null}}),_classPrivateFieldGet(_methodPromises,this).set(name,cachedPromise),cachedPromise)}},{key:"getMarkInfo",value:function(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}},{key:"startCleanup",value:async function(){var keepLoadedFonts=0','')],this.container.classList.add("hasBorder")),rectTrX-rectBlX),height=rectTrY-rectBlY,svgFactory=this.svgFactory,_this$data$rect$map=svgFactory.createElement("svg"),trY=(_this$data$rect$map.classList.add("quadrilateralsContainer"),_this$data$rect$map.setAttribute("width",0),_this$data$rect$map.setAttribute("height",0),_this$data$rect$map.role="none",svgFactory.createElement("defs")),clipPath=(_this$data$rect$map.append(trY),svgFactory.createElement("clipPath")),blX="clippath_".concat(this.data.id);clipPath.setAttribute("id",blX),clipPath.setAttribute("clipPathUnits","objectBoundingBox"),trY.append(clipPath);for(var i=2,ii=quadPoints.length;i'))}_classPrivateFieldGet(_hasBorder,this)&&(svgBuffer.push("')"),trX.backgroundImage=svgBuffer.join("")),this.container.append(_this$data$rect$map),this.container.style.clipPath="url(#".concat(blX,")")}}}},{key:"_createPopup",value:function(){var data=this.data,data=_classPrivateFieldSet(_popupElement,this,new PopupAnnotationElement({data:{color:data.color,titleObj:data.titleObj,modificationDate:data.modificationDate,contentsObj:data.contentsObj,richText:data.richText,parentRect:data.rect,borderStyle:0,id:"popup_".concat(data.id),rotation:data.rotation,noRotate:!0},parent:this.parent,elements:[this]}));this.parent.div.append(data.render())}},{key:"render",value:function(){unreachable("Abstract method `AnnotationElement.render` called")}},{key:"_getElementsByName",value:function(name){var skipId=1maxLen&&(textContent=textContent.slice(0,maxLen)),storedData=storedData.formattedValue||(null==(storedData=this.data.textContent)?void 0:storedData.join("\n"))||null,elementData={userValue:textContent,formattedValue:storedData=storedData&&this.data.comb?storedData.replaceAll(/\s+/g,""):storedData,lastCommittedValue:null,commitKey:1,focused:!1},this.data.multiLine?((element=document.createElement("textarea")).textContent=null!=storedData?storedData:textContent,this.data.doNotScroll&&(element.style.overflowY="hidden")):((element=document.createElement("input")).type=this.data.password?"password":"text",element.setAttribute("value",null!=storedData?storedData:textContent),this.data.doNotScroll&&(element.style.overflowX="hidden")),this.data.hasOwnCanvas&&(element.hidden=!0),GetElementsByNameSet.add(element),element.setAttribute("data-element-id",id),element.disabled=this.data.readOnly,element.name=this.data.fieldName,element.tabIndex=0,(storedData=this.data.dateFormat||this.data.timeFormat)&&(element.title=storedData),this._setRequired(element,this.data.required),maxLen&&(element.maxLength=maxLen),element.addEventListener("input",function(event){storage.setValue(id,{value:event.target.value}),_this63.setPropertyOnSiblings(element,"value",event.target.value,"value"),elementData.formattedValue=null}),element.addEventListener("resetform",function(event){var _this63$data$defaultF=null!=(_this63$data$defaultF=_this63.data.defaultFieldValue)?_this63$data$defaultF:"";element.value=elementData.userValue=_this63$data$defaultF,elementData.formattedValue=null}),textContent=function(event){var formattedValue=elementData.formattedValue;null!=formattedValue&&(event.target.value=formattedValue),event.target.scrollLeft=0},this.enableScripting&&this.hasJSActions&&(element.addEventListener("focus",function(event){elementData.focused||(event=event.target,elementData.userValue&&(event.value=elementData.userValue),elementData.lastCommittedValue=event.value,elementData.commitKey=1,null!=(event=_this63.data.actions)&&event.Focus)||(elementData.focused=!0)}),element.addEventListener("updatefromsandbox",function(jsEvent){_this63.showElementAndHideCanvas(jsEvent.target),_this63._dispatchEventFromSandbox({value:function(event){var _event$detail$value;elementData.userValue=null!=(_event$detail$value=event.detail.value)?_event$detail$value:"",storage.setValue(id,{value:elementData.userValue.toString()}),event.target.value=elementData.userValue},formattedValue:function(event){var formattedValue=event.detail.formattedValue;null!=(elementData.formattedValue=formattedValue)&&event.target!==document.activeElement&&(event.target.value=formattedValue),storage.setValue(id,{formattedValue:formattedValue})},selRange:function(event){var _event$target;(_event$target=event.target).setSelectionRange.apply(_event$target,babelHelpers.toConsumableArray(event.detail.selRange))},charLimit:function(event){var value,charLimit=event.detail.charLimit,event=event.target;0===charLimit?event.removeAttribute("maxLength"):(event.setAttribute("maxLength",charLimit),!(value=elementData.userValue)||value.length<=charLimit||(value=value.slice(0,charLimit),event.value=elementData.userValue=value,storage.setValue(id,{value:value}),null!=(charLimit=_this63.linkService.eventBus)&&charLimit.dispatch("dispatcheventinsandbox",{source:_this63,detail:{id:id,name:"Keystroke",value:value,willCommit:!0,commitKey:1,selStart:event.selectionStart,selEnd:event.selectionEnd}})))}},jsEvent)}),element.addEventListener("keydown",function(event){var _this63$linkService$e2,value,commitKey=-(elementData.commitKey=1);"Escape"===event.key?commitKey=0:"Enter"!==event.key||_this63.data.multiLine?"Tab"===event.key&&(elementData.commitKey=3):commitKey=2,-1!==commitKey&&(value=event.target.value,elementData.lastCommittedValue!==value)&&(elementData.lastCommittedValue=value,elementData.userValue=value,null!=(_this63$linkService$e2=_this63.linkService.eventBus))&&_this63$linkService$e2.dispatch("dispatcheventinsandbox",{source:_this63,detail:{id:id,name:"Keystroke",value:value,willCommit:!0,commitKey:commitKey,selStart:event.target.selectionStart,selEnd:event.target.selectionEnd}})}),_blurListener=textContent,textContent=null,element.addEventListener("blur",function(event){var _this63$data$actions2,_this63$linkService$e3;elementData.focused&&event.relatedTarget&&(null!=(_this63$data$actions2=_this63.data.actions)&&_this63$data$actions2.Blur||(elementData.focused=!1),_this63$data$actions2=event.target.value,elementData.userValue=_this63$data$actions2,elementData.lastCommittedValue!==_this63$data$actions2&&null!=(_this63$linkService$e3=_this63.linkService.eventBus)&&_this63$linkService$e3.dispatch("dispatcheventinsandbox",{source:_this63,detail:{id:id,name:"Keystroke",value:_this63$data$actions2,willCommit:!0,commitKey:elementData.commitKey,selStart:event.target.selectionStart,selEnd:event.target.selectionEnd}}),_blurListener(event))}),null!=(storedData=this.data.actions)&&storedData.Keystroke&&element.addEventListener("beforeinput",function(event){elementData.lastCommittedValue=null;var data=event.data,target=event.target,value=target.value,selectionStart=target.selectionStart,selectionEnd=target.selectionEnd,selStart=selectionStart,selEnd=selectionEnd;switch(event.inputType){case"deleteWordBackward":var match=value.substring(0,selectionStart).match(/\w*[^\w]*$/);match&&(selStart-=match[0].length);break;case"deleteWordForward":match=value.substring(selectionStart).match(/^[^\w]*\w*/);match&&(selEnd+=match[0].length);break;case"deleteContentBackward":selectionStart===selectionEnd&&--selStart;break;case"deleteContentForward":selectionStart===selectionEnd&&(selEnd+=1)}event.preventDefault(),null!=(target=_this63.linkService.eventBus)&&target.dispatch("dispatcheventinsandbox",{source:_this63,detail:{id:id,name:"Keystroke",value:value,change:data||"",willCommit:!1,selStart:selStart,selEnd:selEnd}})}),this._setEventListeners(element,elementData,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],function(event){return event.target.value})),textContent&&element.addEventListener("blur",textContent),this.data.comb&&(storedData=(this.data.rect[2]-this.data.rect[0])/maxLen,element.classList.add("comb"),element.style.letterSpacing="calc(".concat(storedData,"px * var(--total-scale-factor) - 1ch)"))):((element=document.createElement("div")).textContent=this.data.fieldValue,element.style.verticalAlign="middle",element.style.display="table-cell",this.data.hasOwnCanvas&&(element.hidden=!0)),this._setTextStyle(element),this._setBackgroundColor(element),this._setDefaultPropertiesFromJS(element),this.container.append(element),this.container}}])}(),SignatureWidgetAnnotationElement=function(){function SignatureWidgetAnnotationElement(parameters){return babelHelpers.classCallCheck(this,SignatureWidgetAnnotationElement),_callSuper(this,SignatureWidgetAnnotationElement,[parameters,{isRenderable:!!parameters.data.hasOwnCanvas}])}return babelHelpers.inherits(SignatureWidgetAnnotationElement,WidgetAnnotationElement),babelHelpers.createClass(SignatureWidgetAnnotationElement)}(),CheckboxWidgetAnnotationElement=function(){function CheckboxWidgetAnnotationElement(parameters){return babelHelpers.classCallCheck(this,CheckboxWidgetAnnotationElement),_callSuper(this,CheckboxWidgetAnnotationElement,[parameters,{isRenderable:parameters.renderForms}])}return babelHelpers.inherits(CheckboxWidgetAnnotationElement,WidgetAnnotationElement),babelHelpers.createClass(CheckboxWidgetAnnotationElement,[{key:"render",value:function(){var _this64=this,storage=this.annotationStorage,data=this.data,id=data.id,value=storage.getValue(id,{value:data.exportValue===data.fieldValue}).value,element=("string"==typeof value&&storage.setValue(id,{value:value="Off"!==value}),this.container.classList.add("buttonWidgetAnnotation","checkBox"),document.createElement("input"));return GetElementsByNameSet.add(element),element.setAttribute("data-element-id",id),element.disabled=data.readOnly,this._setRequired(element,this.data.required),element.type="checkbox",element.name=data.fieldName,value&&element.setAttribute("checked",!0),element.setAttribute("exportValue",data.exportValue),element.tabIndex=0,element.addEventListener("change",function(event){var _step122,event=event.target,name=event.name,checked=event.checked,_iterator122=_createForOfIteratorHelper(_this64._getElementsByName(name,id));try{for(_iterator122.s();!(_step122=_iterator122.n()).done;){var checkbox=_step122.value,curChecked=checked&&checkbox.exportValue===data.exportValue;checkbox.domElement&&(checkbox.domElement.checked=curChecked),storage.setValue(checkbox.id,{value:curChecked})}}catch(err){_iterator122.e(err)}finally{_iterator122.f()}storage.setValue(id,{value:checked})}),element.addEventListener("resetform",function(event){var defaultValue=data.defaultFieldValue||"Off";event.target.checked=defaultValue===data.exportValue}),this.enableScripting&&this.hasJSActions&&(element.addEventListener("updatefromsandbox",function(jsEvent){_this64._dispatchEventFromSandbox({value:function(event){event.target.checked="Off"!==event.detail.value,storage.setValue(id,{value:event.target.checked})}},jsEvent)}),this._setEventListeners(element,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],function(event){return event.target.checked})),this._setBackgroundColor(element),this._setDefaultPropertiesFromJS(element),this.container.append(element),this.container}}])}(),RadioButtonWidgetAnnotationElement=function(){function RadioButtonWidgetAnnotationElement(parameters){return babelHelpers.classCallCheck(this,RadioButtonWidgetAnnotationElement),_callSuper(this,RadioButtonWidgetAnnotationElement,[parameters,{isRenderable:parameters.renderForms}])}return babelHelpers.inherits(RadioButtonWidgetAnnotationElement,WidgetAnnotationElement),babelHelpers.createClass(RadioButtonWidgetAnnotationElement,[{key:"render",value:function(){var _this65=this,storage=(this.container.classList.add("buttonWidgetAnnotation","radioButton"),this.annotationStorage),data=this.data,id=data.id,value=storage.getValue(id,{value:data.fieldValue===data.buttonValue}).value;if("string"==typeof value&&(value=value!==data.buttonValue,storage.setValue(id,{value:value})),value){var _step123,_iterator123=_createForOfIteratorHelper(this._getElementsByName(data.fieldName,id));try{for(_iterator123.s();!(_step123=_iterator123.n()).done;){var radio=_step123.value;storage.setValue(radio.id,{value:!1})}}catch(err){_iterator123.e(err)}finally{_iterator123.f()}}var pdfButtonValue,element=document.createElement("input");return GetElementsByNameSet.add(element),element.setAttribute("data-element-id",id),element.disabled=data.readOnly,this._setRequired(element,this.data.required),element.type="radio",element.name=data.fieldName,value&&element.setAttribute("checked",!0),element.tabIndex=0,element.addEventListener("change",function(event){var _step124,event=event.target,name=event.name,event=event.checked,_iterator124=_createForOfIteratorHelper(_this65._getElementsByName(name,id));try{for(_iterator124.s();!(_step124=_iterator124.n()).done;){var _radio=_step124.value;storage.setValue(_radio.id,{value:!1})}}catch(err){_iterator124.e(err)}finally{_iterator124.f()}storage.setValue(id,{value:event})}),element.addEventListener("resetform",function(event){var defaultValue=data.defaultFieldValue;event.target.checked=null!=defaultValue&&defaultValue===data.buttonValue}),this.enableScripting&&this.hasJSActions&&(pdfButtonValue=data.buttonValue,element.addEventListener("updatefromsandbox",function(jsEvent){_this65._dispatchEventFromSandbox({value:function(event){var _step125,checked=pdfButtonValue===event.detail.value,_iterator125=_createForOfIteratorHelper(_this65._getElementsByName(event.target.name));try{for(_iterator125.s();!(_step125=_iterator125.n()).done;){var _radio2=_step125.value,curChecked=checked&&_radio2.id===id;_radio2.domElement&&(_radio2.domElement.checked=curChecked),storage.setValue(_radio2.id,{value:curChecked})}}catch(err){_iterator125.e(err)}finally{_iterator125.f()}}},jsEvent)}),this._setEventListeners(element,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],function(event){return event.target.checked})),this._setBackgroundColor(element),this._setDefaultPropertiesFromJS(element),this.container.append(element),this.container}}])}(),PushButtonWidgetAnnotationElement=function(){function PushButtonWidgetAnnotationElement(parameters){return babelHelpers.classCallCheck(this,PushButtonWidgetAnnotationElement),_callSuper(this,PushButtonWidgetAnnotationElement,[parameters,{ignoreBorder:parameters.data.hasAppearance}])}return babelHelpers.inherits(PushButtonWidgetAnnotationElement,LinkAnnotationElement),babelHelpers.createClass(PushButtonWidgetAnnotationElement,[{key:"render",value:function(){var _this66=this,container=_superPropGet(PushButtonWidgetAnnotationElement,"render",this,3)([]),linkElement=(container.classList.add("buttonWidgetAnnotation","pushButton"),container.lastChild);return this.enableScripting&&this.hasJSActions&&linkElement&&(this._setDefaultPropertiesFromJS(linkElement),linkElement.addEventListener("updatefromsandbox",function(jsEvent){_this66._dispatchEventFromSandbox({},jsEvent)})),container}}])}(),ChoiceWidgetAnnotationElement=function(){function ChoiceWidgetAnnotationElement(parameters){return babelHelpers.classCallCheck(this,ChoiceWidgetAnnotationElement),_callSuper(this,ChoiceWidgetAnnotationElement,[parameters,{isRenderable:parameters.renderForms}])}return babelHelpers.inherits(ChoiceWidgetAnnotationElement,WidgetAnnotationElement),babelHelpers.createClass(ChoiceWidgetAnnotationElement,[{key:"render",value:function(){var _step127,_this67=this,storage=(this.container.classList.add("choiceWidgetAnnotation"),this.annotationStorage),id=this.data.id,storedData=storage.getValue(id,{value:this.data.fieldValue}),selectElement=document.createElement("select"),addAnEmptyEntry=(GetElementsByNameSet.add(selectElement),selectElement.setAttribute("data-element-id",id),selectElement.disabled=this.data.readOnly,this._setRequired(selectElement,this.data.required),selectElement.name=this.data.fieldName,selectElement.tabIndex=0,this.data.combo&&0>1,y1=array[middle][0];if(y1===y)return middle;y1>2),_version=header[1];if(0!==_version)throw new Error("Invalid version: ".concat(_version));var diffs,width=header[2],height=header[3],areContours=0===header[4],thickness=header[5],numberOfDrawings=header[6],bufferType=header[7],outlines=[],diffsOffset=(8+3*numberOfDrawings)*Uint32Array.BYTES_PER_ELEMENT;switch(bufferType){case Int8Array.BYTES_PER_ELEMENT:diffs=new Int8Array(data.buffer,diffsOffset);break;case Int16Array.BYTES_PER_ELEMENT:diffs=new Int16Array(data.buffer,diffsOffset);break;case Int32Array.BYTES_PER_ELEMENT:diffs=new Int32Array(data.buffer,diffsOffset)}for(var offset=0,i=0;iMath.pow(dist*tmax,2)?(_assertClassBrand(_SignatureExtractor,this,_douglasPeuckerHelper).call(this,points,start,index+2,output),_assertClassBrand(_SignatureExtractor,this,_douglasPeuckerHelper).call(this,points,index,end,output)):output.push(ax,ay)}}function _douglasPeucker(points){var output=[],len=points.length;return _assertClassBrand(_SignatureExtractor,this,_douglasPeuckerHelper).call(this,points,0,len,output),output.push(points[len-2],points[len-1]),output.length<=4?null:output}function _bilateralFilter(buf,width,height,sigmaS,sigmaR,kernelSize){for(var kernel=new Float32Array(Math.pow(kernelSize,2)),sigmaS2=-2*Math.pow(sigmaS,2),halfSize=kernelSize>>1,i=0;i>2),max=-1/0,min=1/0,i=0,ii=out.length;ihistogram[i+1]);i--);return i}function _getGrayPixels(bitmap){var originalBitmap=bitmap,_bitmap3=bitmap,width=_bitmap3.width,_bitmap3=_bitmap3.height,maxDim=_assertClassBrand(_SignatureExtractor,this,_PARAMETERS)._.maxDim,newWidth=width,newHeight=_bitmap3;if(maxDim(isForCopying=context.stamps.get(_classPrivateFieldGet(_bitmapId,this))).area&&(isForCopying.area=decorative,isForCopying.serialized.bitmap.close(),isForCopying.serialized.bitmap=_assertClassBrand(_StampEditor_brand,this,_serializeBitmap).call(this,!1)):(context.stamps.set(_classPrivateFieldGet(_bitmapId,this),{area:decorative,serialized:serialized}),serialized.bitmap=_assertClassBrand(_StampEditor_brand,this,_serializeBitmap).call(this,!1)))}return serialized}},{key:"renderAnnotationElement",value:function(annotation){return annotation.updateEdited({rect:this.getRect(0,0)}),null}}],[{key:"initialize",value:function(l10n,uiManager){AnnotationEditor.initialize(l10n,uiManager)}},{key:"isHandlingMimeForPasting",value:function(mime){return SupportedImageMimeTypes.includes(mime)}},{key:"paste",value:function(item,parent){parent.pasteEditor({mode:AnnotationEditorType.STAMP},{bitmapFile:item.getAsFile()})}},{key:"computeTelemetryFinalData",value:function(data){var _hasAltTextStats$get,data=data.get("hasAltText");return{hasAltText:null!=(_hasAltTextStats$get=data.get(!0))?_hasAltTextStats$get:0,hasNoAltText:null!=(_hasAltTextStats$get=data.get(!1))?_hasAltTextStats$get:0}}},{key:"deserialize",value:async function(data,parent,uiManager){var initialData=null,missingCanvas=!1,container=(data instanceof StampAnnotationElement&&(_rect5=(_data0$data=(_data0=data).data).rect,rotation=_data0$data.rotation,id=_data0$data.id,structParent=_data0$data.structParent,_data0$data=_data0$data.popupRef,container=_data0.container,pageNumber=_data0.parent.page.pageNumber,(_data0=_data0.canvas)?(delete data.canvas,_bitmapId2=(container=uiManager.imageManager.getFromCanvas(container.id,_data0)).id,_bitmap2=container.bitmap,_data0.remove()):data._hasNoCanvas=missingCanvas=!0,_data0=(null==(container=await parent._structTree.getAriaAttributes("".concat("pdfjs_internal_id_").concat(id)))?void 0:container.get("aria-label"))||"",initialData=data={annotationType:AnnotationEditorType.STAMP,bitmapId:_bitmapId2,bitmap:_bitmap2,pageIndex:pageNumber-1,rect:_rect5.slice(0),rotation:rotation,annotationElementId:id,id:id,deleted:!1,accessibilityData:{decorative:!1,altText:_data0},isSvg:!1,structParent:structParent,popupRef:_data0$data}),await _superPropGet(StampEditor,"deserialize",this,2)([data,parent,uiManager])),_bitmapId2=data,_bitmap2=_bitmapId2.rect,pageNumber=_bitmapId2.bitmap,_rect5=_bitmapId2.bitmapUrl,rotation=_bitmapId2.bitmapId,id=_bitmapId2.isSvg,_data0=_bitmapId2.accessibilityData,structParent=(missingCanvas?(uiManager.addMissingCanvas(data.id,container),_classPrivateFieldSet(_missingCanvas,container,!0)):rotation&&uiManager.imageManager.isValidId(rotation)?(_classPrivateFieldSet(_bitmapId,container,rotation),pageNumber&&_classPrivateFieldSet(_bitmap,container,pageNumber)):_classPrivateFieldSet(_bitmapUrl,container,_rect5),_classPrivateFieldSet(_isSvg,container,id),babelHelpers.slicedToArray(container.pageDimensions,2)),_data0$data=structParent[0],parent=structParent[1];return container.width=(_bitmap2[2]-_bitmap2[0])/_data0$data,container.height=(_bitmap2[3]-_bitmap2[1])/parent,_data0&&(container.altTextData=_data0),container._initialData=initialData,_classPrivateFieldSet(_hasBeenAddedInUndoStack,container,!!initialData),container}}])}(AnnotationEditor);function _getBitmapFetched(data){var fromId=1=VerbosityLevel.INFOS&&console.log("Info: ".concat(msg))}function warn(msg){verbosity>=VerbosityLevel.WARNINGS&&console.log("Warning: ".concat(msg))}function unreachable(msg){throw new Error(msg)}function assert(cond,msg){cond||unreachable(msg)}function _isValidProtocol(url){switch(null==url?void 0:url.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function createValidAbsoluteUrl(url){var baseUrl=1>24&255,value>>16&255,value>>8&255,255&value)}function objectSize(obj){return Object.keys(obj).length}function isLittleEndian(){var buffer8=new Uint8Array(4);return(buffer8[0]=1)===new Uint32Array(buffer8.buffer,0,1)[0]}function isEvalSupported(){try{return new Function(""),!0}catch(_unused2){return!1}}class FeatureTest{static get isLittleEndian(){return shadow(this,"isLittleEndian",isLittleEndian())}static get isEvalSupported(){return shadow(this,"isEvalSupported",isEvalSupported())}static get isOffscreenCanvasSupported(){return shadow(this,"isOffscreenCanvasSupported","undefined"!=typeof OffscreenCanvas)}static get isImageDecoderSupported(){return shadow(this,"isImageDecoderSupported","undefined"!=typeof ImageDecoder)}static get platform(){var{platform,userAgent}=navigator;return shadow(this,"platform",{isAndroid:userAgent.includes("Android"),isLinux:platform.includes("Linux"),isMac:platform.includes("Mac"),isWindows:platform.includes("Win"),isFirefox:userAgent.includes("Firefox")})}static get isCSSRoundSupported(){var _globalThis$CSS;return shadow(this,"isCSSRoundSupported",null==(_globalThis$CSS=globalThis.CSS)||null==_globalThis$CSS.supports?void 0:_globalThis$CSS.supports("width: round(1.5px, 1px)"))}}var hexNumbers=Array.from(Array(256).keys(),n=>n.toString(16).padStart(2,"0"));class Util{static makeHexColor(r,g,b){return"#".concat(hexNumbers[r]).concat(hexNumbers[g]).concat(hexNumbers[b])}static scaleMinMax(transform,minMax){var temp;transform[0]?(transform[0]<0&&(temp=minMax[0],minMax[0]=minMax[2],minMax[2]=temp),minMax[0]*=transform[0],minMax[2]*=transform[0],transform[3]<0&&(temp=minMax[1],minMax[1]=minMax[3],minMax[3]=temp),minMax[1]*=transform[3],minMax[3]*=transform[3]):(temp=minMax[0],minMax[0]=minMax[1],minMax[1]=temp,temp=minMax[2],minMax[2]=minMax[3],minMax[3]=temp,transform[1]<0&&(temp=minMax[1],minMax[1]=minMax[3],minMax[3]=temp),minMax[1]*=transform[1],minMax[3]*=transform[1],transform[2]<0&&(temp=minMax[0],minMax[0]=minMax[2],minMax[2]=temp),minMax[0]*=transform[2],minMax[2]*=transform[2]),minMax[0]+=transform[4],minMax[1]+=transform[5],minMax[2]+=transform[4],minMax[3]+=transform[5]}static transform(m1,m2){return[m1[0]*m2[0]+m1[2]*m2[1],m1[1]*m2[0]+m1[3]*m2[1],m1[0]*m2[2]+m1[2]*m2[3],m1[1]*m2[2]+m1[3]*m2[3],m1[0]*m2[4]+m1[2]*m2[5]+m1[4],m1[1]*m2[4]+m1[3]*m2[5]+m1[5]]}static applyTransform(p,m){var pos=2rect[2]&&(r[0]=rect[2],r[2]=rect[0]),rect[1]>rect[3]&&(r[1]=rect[3],r[3]=rect[1]),r}static intersect(rect1,rect2){var yLow,xLow=Math.max(Math.min(rect1[0],rect1[2]),Math.min(rect2[0],rect2[2])),xHigh=Math.min(Math.max(rect1[0],rect1[2]),Math.max(rect2[0],rect2[2]));return xHighp1?p1.normalize("NFKC"):NormalizationMap.get(p2))}function getUuid(){var buf;return"function"==typeof crypto.randomUUID?crypto.randomUUID():(buf=new Uint8Array(32),crypto.getRandomValues(buf),bytesToString(buf))}var AnnotationPrefix="pdfjs_internal_id_";function _isValidExplicitDest(validRef,validName,dest){if(!Array.isArray(dest)||dest.length<2)return!1;var[dest,zoom,...args]=dest;if(!validRef(dest)&&!Number.isInteger(dest))return!1;if(!validName(zoom))return!1;var arg,argsLen=args.length,allowNull=!0;switch(zoom.name){case"XYZ":if(argsLen<2||3hexNumbers[num]).join("")}function toBase64Util(arr){return Uint8Array.prototype.toBase64?arr.toBase64():btoa(bytesToString(arr))}function fromBase64Util(str){return Uint8Array.fromBase64?Uint8Array.fromBase64(str):stringToBytes(atob(str))}"function"!=typeof Promise.try&&(Promise.try=function(fn){for(var _len=arguments.length,args=new Array(1<_len?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];return new Promise(resolve=>{resolve(fn(...args))})}),"function"!=typeof Math.sumPrecise&&(Math.sumPrecise=function(numbers){return numbers.reduce((a,b)=>a+b,0)});var CIRCULAR_REF=Symbol("CIRCULAR_REF"),EOF=Symbol("EOF"),CmdCache=Object.create(null),NameCache=Object.create(null),RefCache=Object.create(null);function clearPrimitiveCaches(){CmdCache=Object.create(null),NameCache=Object.create(null),RefCache=Object.create(null)}class Name{constructor(name){this.name=name}static get(name){return NameCache[name]||(NameCache[name]=new Name(name))}}class Cmd{constructor(cmd){this.cmd=cmd}static get(cmd){return CmdCache[cmd]||(CmdCache[cmd]=new Cmd(cmd))}}var nonSerializable=function(){return nonSerializable};class Dict{constructor(){var xref=0{unreachable("Should not call `set` on the empty dictionary.")},shadow(this,"empty",emptyDict)}static merge(_ref){var dict,name,values,{xref,dictArray:_ref,mergeSubDicts=!1}=_ref,mergedDict=new Dict(xref),properties=new Map;for(dict of _ref)if(dict instanceof Dict)for(var[key,value]of dict._map){var property=properties.get(key);if(void 0===property)properties.set(key,property=[]);else if(!(mergeSubDicts&&value instanceof Dict))continue;property.push(value)}for([name,values]of properties)if(1!==values.length&&values[0]instanceof Dict){var _dict,subDict=new Dict(xref);for(_dict of values)for(var[_key2,_value]of _dict._map)subDict._map.has(_key2)||subDict._map.set(_key2,_value);0>24}function readInt16(data,offset){return(data[offset]<<24|data[offset+1]<<16)>>16}function readUint16(data,offset){return data[offset]<<8|data[offset+1]}function readUint32(data,offset){return(data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3])>>>0}function isWhiteSpace(ch){return 32===ch||9===ch||13===ch||10===ch}function isBooleanArray(arr,len){return Array.isArray(arr)&&(null===len||arr.length===len)&&arr.every(x=>"boolean"==typeof x)}function isNumberArray(arr,len){return Array.isArray(arr)?(null===len||arr.length===len)&&arr.every(x=>"number"==typeof x):ArrayBuffer.isView(arr)&&!(arr instanceof BigInt64Array||arr instanceof BigUint64Array)&&(null===len||arr.length===len)}function lookupMatrix(arr,fallback){return isNumberArray(arr,6)?arr:fallback}function lookupRect(arr,fallback){return isNumberArray(arr,4)?arr:fallback}function lookupNormalRect(arr,fallback){return isNumberArray(arr,4)?Util.normalizeRect(arr):fallback}function parseXFAPath(path){var positionPattern=/(.+)\[(\d+)\]$/;return path.split(".").map(component=>{var m=component.match(positionPattern);return m?{name:m[1],pos:parseInt(m[2],10)}:{name:component,pos:0}})}function escapePDFName(str){for(var buffer=[],start=0,i=0,ii=str.length;i"\n"===match?"\\n":"\r"===match?"\\r":"\\".concat(match))}function _collectJS(entry,xref,list,parents){if(entry){var js,code,parent=null;if(entry instanceof Ref){if(parents.has(entry))return;parent=entry,parents.put(parent),entry=xref.fetch(entry)}if(Array.isArray(entry))for(var element of entry)_collectJS(element,xref,list,parents);else entry instanceof Dict&&(isName(entry.get("S"),"JavaScript")&&((js=entry.get("JS"))instanceof BaseStream?code=js.getString():"string"==typeof js&&(code=js),code=code&&stringToPDFString(code,!0).replaceAll("\0",""))&&list.push(code),_collectJS(entry.getRaw("Next"),xref,list,parents));parent&&parents.remove(parent)}}function collectActions(xref,dict,eventType){var _list,actions=Object.create(null),additionalActionsDicts=getInheritableProperty({dict:dict,key:"AA",stopWhenFound:!1});if(additionalActionsDicts)for(var i=additionalActionsDicts.length-1;0<=i;i--){var additionalActions=additionalActionsDicts[i];if(additionalActions instanceof Dict)for(var key of additionalActions.getKeys()){var list,action=eventType[key];action&&(list=[],_collectJS(additionalActions.getRaw(key),xref,list,new RefSet),0: ".concat(fontFamily,".")),!1;return!0}function validateCSSFont(cssFontInfo){var CSS_FONT_WEIGHT_VALUES=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),{fontFamily,fontWeight,italicAngle}=cssFontInfo;return!!validateFontName(fontFamily,!0)&&(fontFamily=fontWeight?fontWeight.toString():"",cssFontInfo.fontWeight=CSS_FONT_WEIGHT_VALUES.has(fontFamily)?fontFamily:"400",fontWeight=parseFloat(italicAngle),cssFontInfo.italicAngle=isNaN(fontWeight)||fontWeight<-90||90>8&255],hexNumbers[255&char])}return buf.join("")}function stringToUTF16String(str){var buf=[];1>8&255),String.fromCharCode(255&char))}return buf.join("")}function getRotationMatrix(rotation,width,height){switch(rotation){case 90:return[0,1,-1,0,width,0];case 180:return[-1,0,0,-1,width,height];case 270:return[0,-1,1,0,0,height];default:throw new Error("Invalid rotation")}}function getSizeInBytes(x){return Math.ceil(Math.ceil(Math.log2(1+x))/8)}class QCMS{static get _memoryArray(){var array=_assertClassBrand(QCMS,this,_memoryArray2)._;return null!=array&&array.byteLength?array:_memoryArray2._=_assertClassBrand(QCMS,this,new Uint8Array(this._memory.buffer))}}var wasm,_memoryArray2={_:null};function copy_result(ptr,len){var{_mustAddAlpha,_destBuffer,_destOffset,_destLength,_memoryArray}=QCMS;if(len===_destLength)_destBuffer.set(_memoryArray.subarray(ptr,ptr+len),_destOffset);else if(_mustAddAlpha)for(var i=ptr,ii=ptr+len,j=_destOffset;i{throw Error("TextDecoder not available")}},cachedUint8ArrayMemory0=("undefined"!=typeof TextDecoder&&cachedTextDecoder.decode(),null);function getUint8ArrayMemory0(){return cachedUint8ArrayMemory0=null!==cachedUint8ArrayMemory0&&0!==cachedUint8ArrayMemory0.byteLength?cachedUint8ArrayMemory0:new Uint8Array(wasm.memory.buffer)}function getStringFromWasm0(ptr,len){return ptr>>>=0,cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr,ptr+len))}var WASM_VECTOR_LEN=0;function passArray8ToWasm0(arg,malloc){malloc=malloc(+arg.length,1)>>>0;return getUint8ArrayMemory0().set(arg,malloc),WASM_VECTOR_LEN=arg.length,malloc}function qcms_convert_array(transformer,src){var src=passArray8ToWasm0(src,wasm.__wbindgen_malloc),len0=WASM_VECTOR_LEN;wasm.qcms_convert_array(transformer,src,len0)}function qcms_convert_one(transformer,src,css){wasm.qcms_convert_one(transformer,src,css)}function qcms_convert_three(transformer,src1,src2,src3,css){wasm.qcms_convert_three(transformer,src1,src2,src3,css)}function qcms_convert_four(transformer,src1,src2,src3,src4,css){wasm.qcms_convert_four(transformer,src1,src2,src3,src4,css)}function qcms_transformer_from_memory(mem,in_type,intent){var mem=passArray8ToWasm0(mem,wasm.__wbindgen_malloc),len0=WASM_VECTOR_LEN;return wasm.qcms_transformer_from_memory(mem,len0,in_type,intent)>>>0}function qcms_drop_transformer(transformer){wasm.qcms_drop_transformer(transformer)}var DataType=Object.freeze({RGB8:0,0:"RGB8",RGBA8:1,1:"RGBA8",BGRA8:2,2:"BGRA8",Gray8:3,3:"Gray8",GrayA8:4,4:"GrayA8",CMYK:5,5:"CMYK"}),Intent=Object.freeze({Perceptual:0,0:"Perceptual",RelativeColorimetric:1,1:"RelativeColorimetric",Saturation:2,2:"Saturation",AbsoluteColorimetric:3,3:"AbsoluteColorimetric"});async function __wbg_load(module,imports){if("function"==typeof Response&&module instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(module,imports)}catch(e){if("application/wasm"==module.headers.get("Content-Type"))throw e;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",e)}var bytes=await module.arrayBuffer();return WebAssembly.instantiate(bytes,imports)}return(bytes=await WebAssembly.instantiate(module,imports))instanceof WebAssembly.Instance?{instance:bytes,module:module}:bytes}function __wbg_get_imports(){var imports={wbg:{}};return imports.wbg.__wbg_copyresult_b08ee7d273f295dd=function(arg0,arg1){copy_result(arg0>>>0,arg1>>>0)},imports.wbg.__wbg_copyrgb_d60ce17bb05d9b67=function(arg0){copy_rgb(arg0>>>0)},imports.wbg.__wbg_makecssRGB_893bf0cd9fdb302d=function(arg0){make_cssRGB(arg0>>>0)},imports.wbg.__wbindgen_init_externref_table=function(){var table=wasm.__wbindgen_export_0,offset=table.grow(4);table.set(0,void 0),table.set(offset+0,void 0),table.set(offset+1,null),table.set(offset+2,!0),table.set(offset+3,!1)},imports.wbg.__wbindgen_throw=function(arg0,arg1){throw new Error(getStringFromWasm0(arg0,arg1))},imports}function __wbg_init_memory(imports,memory){}function __wbg_finalize_init(instance,module){return wasm=instance.exports,__wbg_init.__wbindgen_wasm_module=module,cachedUint8ArrayMemory0=null,wasm.__wbindgen_start(),wasm}function initSync(module){if(void 0!==wasm)return wasm;void 0!==module&&(Object.getPrototypeOf(module)===Object.prototype?module=module["module"]:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));var imports=__wbg_get_imports();return __wbg_init_memory(imports),module instanceof WebAssembly.Module||(module=new WebAssembly.Module(module)),__wbg_finalize_init(new WebAssembly.Instance(module,imports),module)}async function __wbg_init(module_or_path){if(void 0!==wasm)return wasm;void 0!==module_or_path&&(Object.getPrototypeOf(module_or_path)===Object.prototype?module_or_path=module_or_path["module_or_path"]:console.warn("using deprecated parameters for the initialization function; pass a single object instead"));var imports=__wbg_get_imports(),{instance:module_or_path,module:imports}=(("string"==typeof module_or_path||"function"==typeof Request&&module_or_path instanceof Request||"function"==typeof URL&&module_or_path instanceof URL)&&(module_or_path=fetch(module_or_path)),__wbg_init_memory(imports),await __wbg_load(await module_or_path,imports));return __wbg_finalize_init(module_or_path,imports)}var qcms=null;function resizeRgbImage(src,dest,w1,h1,w2,h2,alpha01){alpha01=1!==alpha01?0:alpha01;for(var oldIndex,xRatio=w1/w2,yRatio=h1/h2,newIndex=0,xScaled=new Uint16Array(w2),w1Scanline=3*w1,i=0;ithis.amax||this.bmin>this.bmax)&&(info("Invalid Range, falling back to defaults"),this.amin=-100,this.amax=100,this.bmin=-100,this.bmax=100)}getRgbItem(src,srcOffset,dest,destOffset){_assertClassBrand(_LabCS_brand,this,_toRgb4).call(this,src,srcOffset,!1,dest,destOffset)}getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){for(var maxVal=(1<this.amax?as=this.amax:asthis.bmax?src=this.bmax:srcqcms_convert_one(_classPrivateFieldGet(_transformer,this),255*src[srcOffset],css));break;case 3:inType=DataType.RGB8,_classPrivateFieldSet(_convertPixel,this,(src,srcOffset,css)=>qcms_convert_three(_classPrivateFieldGet(_transformer,this),255*src[srcOffset],255*src[srcOffset+1],255*src[srcOffset+2],css));break;case 4:inType=DataType.CMYK,_classPrivateFieldSet(_convertPixel,this,(src,srcOffset,css)=>qcms_convert_four(_classPrivateFieldGet(_transformer,this),255*src[srcOffset],255*src[srcOffset+1],255*src[srcOffset+2],255*src[srcOffset+3],css));break;default:throw new Error("Unsupported number of components: ".concat(numComps))}if(_classPrivateFieldSet(_transformer,this,qcms_transformer_from_memory(iccProfile,inType,Intent.Perceptual)),!_classPrivateFieldGet(_transformer,this))throw new Error("Failed to create ICC color space");_finalizer._.register(this,_classPrivateFieldGet(_transformer,this))}getRgbHex(src,srcOffset){return _classPrivateFieldGet(_convertPixel,this).call(this,src,srcOffset,!0),QCMS._cssColor}getRgbItem(src,srcOffset,dest,destOffset){QCMS._destBuffer=dest,QCMS._destOffset=destOffset,QCMS._destLength=3,_classPrivateFieldGet(_convertPixel,this).call(this,src,srcOffset,!1),QCMS._destBuffer=null}getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){if(src=src.subarray(srcOffset,srcOffset+count*this.numComps),8!==bits)for(var scale=255/((1<{qcms_drop_transformer(transformer)})};class CmykICCBasedCS extends IccColorSpace{constructor(){super(new Uint8Array(fetchSync("".concat(_iccUrl._,"CGATS001Compat-v2-micro.icc"))),"DeviceCMYK",4)}static setOptions(_ref4){_ref4=_ref4.iccUrl;_iccUrl._=_assertClassBrand(CmykICCBasedCS,this,_ref4)}static get isUsable(){var isUsable=!1;return IccColorSpace.isUsable&&(_assertClassBrand(CmykICCBasedCS,this,_iccUrl)._?isUsable=!0:warn("No CMYK ICC profile support due to missing `iccUrl` API option")),shadow(this,"isUsable",isUsable)}}var _iccUrl={_:void 0};class Stream extends BaseStream{constructor(arrayBuffer,start,length,dict){super(),this.bytes=arrayBuffer instanceof Uint8Array?arrayBuffer:new Uint8Array(arrayBuffer),this.start=start||0,this.pos=this.start,this.end=start+length||this.bytes.length,this.dict=dict}get length(){return this.end-this.start}get isEmpty(){return 0===this.length}getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}getBytes(length){var bytes=this.bytes,pos=this.pos,strEnd=this.end;return length?(this.pos=length=strEnd<(length=pos+length)?strEnd:length,bytes.subarray(pos,length)):bytes.subarray(pos,strEnd)}getByteRange(begin,end){return end>this.end&&(end=this.end),this.bytes.subarray(begin=begin<0?0:begin,end)}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(start,length){var dict=2=this.end?this.numChunks:Math.floor(position/this.chunkSize)),curChunk=beginChunk;curChunkthis.numChunks)&&chunk!==this.lastSuccessfulEnsureByteChunk){if(!this._loadedChunks.has(chunk))throw new MissingDataException(pos,pos+1);this.lastSuccessfulEnsureByteChunk=chunk}}}ensureRange(begin,end){if(!(end<=begin||end<=this.progressiveDataLength)){var beginChunk=Math.floor(begin/this.chunkSize);if(!(beginChunk>this.numChunks))for(var endChunk=Math.min(Math.floor((end-1)/this.chunkSize)+1,this.numChunks),chunk=beginChunk;chunk=this.end?-1:(pos>=this.progressiveDataLength&&this.ensureByte(pos),this.bytes[this.pos++])}getBytes(length){var bytes=this.bytes,pos=this.pos,strEnd=this.end;return length?((length=strEnd<(length=pos+length)?strEnd:length)>this.progressiveDataLength&&this.ensureRange(pos,length),this.pos=length,bytes.subarray(pos,length)):(strEnd>this.progressiveDataLength&&this.ensureRange(pos,strEnd),bytes.subarray(pos,strEnd))}getByteRange(begin,end){return begin<0&&(begin=0),(end=end>this.end?this.end:end)>this.progressiveDataLength&&this.ensureRange(begin,end),this.bytes.subarray(begin,end)}makeSubStream(start,length){var dict=2this.progressiveDataLength&&this.ensureRange(start,start+length):start>=this.progressiveDataLength&&this.ensureByte(start),(ChunkedStreamSubstream.prototype=Object.create(this)).getMissingChunks=function(){for(var chunkSize=this.chunkSize,beginChunk=Math.floor(this.start/chunkSize),endChunk=Math.floor((this.end-1)/chunkSize)+1,missingChunks=[],chunk=beginChunk;chunk{var readChunk=_ref5=>{var chunkData,{value:_ref5,done}=_ref5;try{done?(chunkData=arrayBuffersToBytes(chunks),chunks=null,resolve(chunkData)):(loaded+=_ref5.byteLength,rangeReader.isStreamingSupported&&this.onProgress({loaded:loaded}),chunks.push(_ref5),rangeReader.read().then(readChunk,reject))}catch(e){reject(e)}};rangeReader.read().then(readChunk,reject)}).then(data=>{this.aborted||this.onReceiveData({chunk:data,begin:begin})})}requestAllChunks(){var missingChunks;return 0{if(!this.aborted)throw reason})}getStream(){return this.stream}requestRange(begin,end){end=Math.min(end,this.length);for(var begin=this.getBeginChunk(begin),endChunk=this.getEndChunk(end),chunks=[],chunk=begin;chunka-b),this._requestChunks(chunksToRequest)}groupChunks(chunks){for(var groupedChunks=[],beginChunk=-1,prevChunk=-1,i=0,ii=chunks.length;i>3,widthRemainder=7&_ref6,srcLength=src.length,dest=new Uint32Array(dest.buffer),destPos=0,i=0;i>2,src32=new Uint32Array(src.buffer,_ref7,len32);if(FeatureTest.isLittleEndian){for(;i>>24|s2<<8|4278190080,dest[destPos+2]=s2>>>16|s3<<16|4278190080,dest[destPos+3]=s3>>>8|4278190080}for(var j=4*i,jj=_ref7+width;j>>8|255,dest[destPos+2]=_s2<<16|_s3>>>16|255,dest[destPos+3]=_s3<<8|255}for(var _j3=4*i,_jj=_ref7+width;_j3<_jj;_j3+=3)dest[destPos++]=src[_j3]<<24|src[_j3+1]<<16|src[_j3+2]<<8|255}return{srcPos:_ref7+width,destPos:destPos}}function grayToRGBA(src,dest){if(FeatureTest.isLittleEndian)for(var i=0,ii=src.length;ithis.MAX_AREA:!(area<_assertClassBrand(ImageResizer,this,_goodSquareLength)._**2)&&(this._areGoodDims(width,height)?(_goodSquareLength._=_assertClassBrand(ImageResizer,this,Math.max(_assertClassBrand(ImageResizer,this,_goodSquareLength)._,Math.floor(Math.sqrt(width*height)))),!1):(_goodSquareLength._=_assertClassBrand(ImageResizer,this,this._guessMax(_assertClassBrand(ImageResizer,this,_goodSquareLength)._,MAX_DIM,MAX_ERROR,0)),(this.MAX_AREA=_assertClassBrand(ImageResizer,this,_goodSquareLength)._**2)>2),_isImageDecoderSupported._=_assertClassBrand(ImageResizer,this,isImageDecoderSupported)}static _areGoodDims(width,height){try{var canvas=new OffscreenCanvas(width,height),ctx=canvas.getContext("2d"),opacity=(ctx.fillRect(0,0,1,1),ctx.getImageData(0,0,1,1).data[3]);return canvas.width=canvas.height=1,0!==opacity}catch(_unused3){return!1}}static _guessMax(start,end,tolerance,defaultHeight){for(;start+tolerance+1(warn("BMP image decoding failed: ".concat(reason)),createImageBitmap(new Blob([this._encodeBMP().buffer],{type:"image/bmp"})))).finally(()=>{decoder.close()}):createImageBitmap(new Blob([_result.buffer],{type:"image/bmp"})),{MAX_AREA,MAX_DIM}=ImageResizer,MAX_DIM=Math.max(width/MAX_DIM,height/MAX_DIM,Math.sqrt(width*height/MAX_AREA)),MAX_AREA=Math.max(MAX_DIM,2),MAX_DIM=Math.round(10*(MAX_DIM+1.25))/10/MAX_AREA,N=Math.floor(Math.log2(MAX_DIM)),steps=new Array(N+2).fill(2),newWidth=(steps[0]=MAX_AREA,steps.splice(-1,1,MAX_DIM/(1<>3,rowSize=3+rowLen&-4;if(rowLen!=rowSize){for(var newData=new Uint8Array(rowSize*height),k=0,_i10=0,ii=height*rowLen;_i10>K,newHeight=height>>K,maxHeight=height;try{rgbaData=new Uint8Array(rgbaSize)}catch(_unused16){for(var n=Math.floor(Math.log2(1+rgbaSize));;)try{rgbaData=new Uint8Array(2**n-1);break}catch(_unused17){--n}rgbaSize=width*(maxHeight=Math.floor((2**n-1)/(4*width)))*4;rgbaSize>K;is instanceof BaseStream))maybeLength+=stream instanceof DecodeStream?stream._rawMinBufferLength:stream.length;super(maybeLength),this.streams=streams,this._onError=onError}readBlock(){var streams=this.streams;if(0===streams.length)this.eof=!0;else{var chunk,streams=streams.shift();try{chunk=streams.getBytes()}catch(reason){if(this._onError)return void this._onError(reason,null==(streams=streams.dict)?void 0:streams.objId);throw reason}var streams=this.bufferLength,newLength=streams+chunk.length;this.ensureBuffer(newLength).set(chunk,streams),this.bufferLength=newLength}}getBaseStreams(){var stream,baseStreamsBuf=[];for(stream of this.streams){var baseStreams=stream.getBaseStreams();baseStreams&&baseStreamsBuf.push(...baseStreams)}return 0>--bitsCount&1;if(255===(bitsData=data[offset++])){var nextByte=data[offset++];if(nextByte){if(220===nextByte&&parseDNLMarker){var scanLines=readUint16(data,offset+=2);if(offset+=2,0>>(bitsCount=7)}function decodeHuffman(tree){for(var node=tree;;){switch(typeof(node=node[readBit()])){case"number":return node;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(length){for(var n=0;0>4;if(0==s){if(rs<15){eobrun=receive(rs)+(1<>4,0==(rs=15&rs))successiveACState=r<15?(eobrun=receive(r)+(1<>4;if(0==s){if(rs<15)break;k+=16}else{rs=dctZigZag[k+=rs];component.blockData[blockOffset+rs]=receiveAndExtend(s),k++}}},mcu=0,mcuExpected=1===componentsLength?components[0].blocksPerLine*components[0].blocksPerColumn:mcusPerLine*frame.mcusPerColumn;mcu<=mcuExpected;){var mcuToRead=resetInterval?Math.min(mcuExpected-mcu,resetInterval):mcuExpected;if(0>10,p[row+1]=t,p[row+2]=t,p[row+3]=t,p[row+4]=t,p[row+5]=t,p[row+6]=t,p[row+7]=t):(p1*=qt[row+1],p2*=qt[row+2],p3*=qt[row+3],p4*=qt[row+4],p5*=qt[row+5],p6*=qt[row+6],p7*=qt[row+7],v1=(v0=(v0=dctSqrt2*p0+128>>8)+(v1=dctSqrt2*p4+128>>8)+1>>1)-v1,t=(v2=p2)*dctSin6+(v3=p6)*dctCos6+128>>8,v2=v2*dctCos6-v3*dctSin6+128>>8,v6=(v4=(v4=dctSqrt1d2*(p1-p7)+128>>8)+(v6=p5<<4)+1>>1)-v6,v5=(v7=(v7=dctSqrt1d2*(p1+p7)+128>>8)+(v5=p3<<4)+1>>1)-v5,v3=(v0=v0+(v3=t)+1>>1)-v3,v2=(v1=v1+v2+1>>1)-v2,t=v4*dctSin3+v7*dctCos3+2048>>12,v4=v4*dctCos3-v7*dctSin3+2048>>12,v7=t,t=v5*dctSin1+v6*dctCos1+2048>>12,v5=v5*dctCos1-v6*dctSin1+2048>>12,v6=t,p[row]=v0+v7,p[row+7]=v0-v7,p[row+1]=v1+v6,p[row+6]=v1-v6,p[row+2]=v2+v5,p[row+5]=v2-v5,p[row+3]=v3+v4,p[row+4]=v3-v4);for(var col=0;col<8;++col)p0=p[col],0==((p1=p[col+8])|(p2=p[col+16])|(p3=p[col+24])|(p4=p[col+32])|(p5=p[col+40])|(p6=p[col+48])|(p7=p[col+56]))?(blockData[blockBufferOffset+col]=t=(t=dctSqrt2*p0+8192>>14)<-2040?0:2024<=t?255:t+2056>>4,blockData[blockBufferOffset+col+8]=t,blockData[blockBufferOffset+col+16]=t,blockData[blockBufferOffset+col+24]=t,blockData[blockBufferOffset+col+32]=t,blockData[blockBufferOffset+col+40]=t,blockData[blockBufferOffset+col+48]=t,blockData[blockBufferOffset+col+56]=t):(v1=(v0=4112+((v0=dctSqrt2*p0+2048>>12)+(v1=dctSqrt2*p4+2048>>12)+1>>1))-v1,t=(v2=p2)*dctSin6+(v3=p6)*dctCos6+2048>>12,v2=v2*dctCos6-v3*dctSin6+2048>>12,v3=t,v6=(v4=(v4=dctSqrt1d2*(p1-p7)+2048>>12)+(v6=p5)+1>>1)-v6,v5=(v7=(v7=dctSqrt1d2*(p1+p7)+2048>>12)+(v5=p3)+1>>1)-v5,t=v4*dctSin3+v7*dctCos3+2048>>12,v4=v4*dctCos3-v7*dctSin3+2048>>12,v7=t,t=v5*dctSin1+v6*dctCos1+2048>>12,v5=v5*dctCos1-v6*dctSin1+2048>>12,(p0=(v0=v0+v3+1>>1)+v7)<16?p0=0:4080<=p0?p0=255:p0>>=4,(p1=(v1=v1+v2+1>>1)+(v6=t))<16?p1=0:4080<=p1?p1=255:p1>>=4,(p2=(v2=v1-v2)+v5)<16?p2=0:4080<=p2?p2=255:p2>>=4,(p3=(v3=v0-v3)+v4)<16?p3=0:4080<=p3?p3=255:p3>>=4,(p4=v3-v4)<16?p4=0:4080<=p4?p4=255:p4>>=4,(p5=v2-v5)<16?p5=0:4080<=p5?p5=255:p5>>=4,(p6=v1-v6)<16?p6=0:4080<=p6?p6=255:p6>>=4,(p7=v0-v7)<16?p7=0:4080<=p7?p7=255:p7>>=4,blockData[blockBufferOffset+col]=p0,blockData[blockBufferOffset+col+8]=p1,blockData[blockBufferOffset+col+16]=p2,blockData[blockBufferOffset+col+24]=p3,blockData[blockBufferOffset+col+32]=p4,blockData[blockBufferOffset+col+40]=p5,blockData[blockBufferOffset+col+48]=p6,blockData[blockBufferOffset+col+56]=p7)}function buildComponentData(frame,component){for(var blocksPerLine=component.blocksPerLine,blocksPerColumn=component.blocksPerColumn,computationBuffer=new Int16Array(64),blockRow=0;blockRow=maxPos)return null;newMarker=readUint16(data,newPos)}return{invalid:startPos.toString(16),marker:newMarker,offset:newPos}}function prepareComponents(frame){var component,mcusPerLine=Math.ceil(frame.samplesPerLine/8/frame.maxH),mcusPerColumn=Math.ceil(frame.scanLines/8/frame.maxV);for(component of frame.components){var blocksPerLine=Math.ceil(Math.ceil(frame.samplesPerLine/8)*component.h/frame.maxH),blocksPerColumn=Math.ceil(Math.ceil(frame.scanLines/8)*component.v/frame.maxV),blocksPerLineForMcu=mcusPerLine*component.h,blocksPerColumnForMcu=mcusPerColumn*component.v;component.blockData=new Int16Array(64*blocksPerColumnForMcu*(1+blocksPerLineForMcu)),component.blocksPerLine=blocksPerLine,component.blocksPerColumn=blocksPerColumn}frame.mcusPerLine=mcusPerLine,frame.mcusPerColumn=mcusPerColumn}function readDataBlock(data,offset){var length=readUint16(data,offset),length=(offset+=2)+length-2,fileMarker=findNextFileMarker(data,length,offset),fileMarker=(null!=fileMarker&&fileMarker.invalid&&(warn("readDataBlock - incorrect length, current marker is: "+fileMarker.invalid),length=fileMarker.offset),data.subarray(offset,length));return{appData:fileMarker,oldOffset:offset,newOffset:offset+fileMarker.length}}function skipData(data,offset){var length=readUint16(data,offset),length=(offset+=2)+length-2,data=findNextFileMarker(data,length,offset);return null!=data&&data.invalid?data.offset:length}class JpegImage{constructor(){var{decodeTransform=null,colorTransform=-1}=0>4==0)for(j=0;j<64;j++)tableData[dctZigZag[j]]=data[offset++];else{if(quantizationTableSpec>>4!=1)throw new JpegError("DQT - invalid table spec");for(j=0;j<64;j++)tableData[dctZigZag[j]]=readUint16(data,offset),offset+=2}quantizationTables[15&quantizationTableSpec]=tableData}break;case 65472:case 65473:case 65474:if(frame)throw new JpegError("Only single frame JPEGs supported");offset+=2,(frame={}).extended=65473===fileMarker,frame.progressive=65474===fileMarker,frame.precision=data[offset++];for(var newOffset=readUint16(data,offset),componentsCount=(offset+=2,frame.scanLines=dnlScanLines||newOffset,frame.samplesPerLine=readUint16(data,offset),offset+=2,frame.components=[],frame.componentIds={},data[offset++]),maxH=0,maxV=0,i=0;i>4,v=15&data[offset+1],qId=(maxH>4==0?huffmanTablesDC:huffmanTablesAC)[15&huffmanTableSpec]=buildHuffmanTable(codeLengths,huffmanValues)}break;case 65501:resetInterval=readUint16(data,offset+=2),offset+=2;break;case 65498:var appData=1==++numSOSMarkers&&!dnlScanLines,selectorsCount=(offset+=2,data[offset++]),components=[];for(i=0;i>4],componentIndex.huffmanTableAC=huffmanTablesAC[15&index],components.push(componentIndex)}var spectralStart=data[offset++],spectralEnd=data[offset++],successiveApproximation=data[offset++];try{offset+=decodeScan(data,offset,frame,components,resetInterval,spectralStart,spectralEnd,successiveApproximation>>4,15&successiveApproximation,appData)}catch(ex){if(ex instanceof DNLMarkerError)return warn("".concat(ex.message," -- attempting to re-parse the JPEG image.")),this.parse(data,{dnlScanLines:ex.scanLines});if(ex instanceof EOIMarkerError){warn("".concat(ex.message," -- ignoring the rest of the image data."));break markerLoop}throw ex}break;case 65500:offset+=4;break;case 65535:255!==data[offset]&&offset--;break;default:spectralStart=findNextFileMarker(data,offset-2,offset-3);if(null!=spectralStart&&spectralStart.invalid){warn("JpegImage.parse - unexpected data, current marker is: "+spectralStart.invalid),offset=spectralStart.offset;break}if(!spectralStart||offset>=data.length-1){warn("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break markerLoop}throw new JpegError("JpegImage.parse - unknown marker: "+fileMarker.toString(16))}fileMarker=readUint16(data,offset),offset+=2}if(!frame)throw new JpegError("JpegImage.parse - no frame data found.");this.width=frame.samplesPerLine,this.height=frame.scanLines,this.jfif=jfif,this.adobe=adobe,this.components=[];for(_component of frame.components){var quantizationTable=quantizationTables[_component.quantizationId];quantizationTable&&(_component.quantizationTable=quantizationTable),this.components.push({index:_component.index,output:buildComponentData(frame,_component),scaleX:_component.h/frame.maxH,scaleY:_component.v/frame.maxV,blocksPerLine:_component.blocksPerLine,blocksPerColumn:_component.blocksPerColumn})}this.numComponents=this.components.length}_getLinearizedBlockData(width,height){for(var component,componentScaleX,componentScaleY,blocksPerScanline,x,y,j,k,index,output,lastComponentScaleX,isSourcePDF=2>8)+transform[k+1];return data}get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}_convertYccToRgb(data){for(var Y,Cb,Cr,i=0,length=data.length;i{readyPromiseResolve=resolve,readyPromiseReject=reject}),thisProgram="./this.program",quit_=(status,toThrow)=>{throw toThrow};try{new URL(".",import1.meta.url).href}catch(_unused5){}var wasmMemory,EXITSTATUS,HEAP8,HEAPU8,HEAP32,HEAPU32,out=console.log.bind(console),err=console.error.bind(console),ABORT=!1;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b),new Int16Array(b),HEAPU8=new Uint8Array(b),new Uint16Array(b),HEAP32=new Int32Array(b),HEAPU32=new Uint32Array(b),new Float32Array(b),new Float64Array(b),new BigInt64Array(b),new BigUint64Array(b)}var runDependencies=0,dependenciesFulfilled=null;class ExitStatus{constructor(status){_defineProperty(this,"name","ExitStatus"),this.message="Program terminated with exit(".concat(status,")"),this.status=status}}var callRuntimeCallbacks=callbacks=>{for(;0onPostRuns.push(cb),onPreRuns=[],addOnPreRun=cb=>onPreRuns.push(cb),noExitRuntime=!0,runtimeKeepaliveCounter=0,timers={},handleException=e=>{if(e instanceof ExitStatus||"unwind"==e)return EXITSTATUS;quit_(1,e)},keepRuntimeAlive=()=>noExitRuntime||0{var _Module$onExit;EXITSTATUS=code,keepRuntimeAlive()||(null!=(_Module$onExit=Module.onExit)&&_Module$onExit.call(Module,code),ABORT=!0),quit_(code,new ExitStatus(code))},_exit=(status,implicit)=>{_proc_exit(EXITSTATUS=status)},maybeExit=()=>{if(!keepRuntimeAlive())try{_exit(EXITSTATUS)}catch(e){handleException(e)}};var ENV={},getExecutableName=()=>thisProgram||"./this.program",getEnvStrings=()=>{if(!getEnvStrings.strings){var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:getExecutableName()};for(x in ENV)void 0===ENV[x]?delete env[x]:env[x]=ENV[x];var x,strings=[];for(x in env)strings.push("".concat(x,"=").concat(env[x]));getEnvStrings.strings=strings}return getEnvStrings.strings},stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(0>6}else{if(u<=65535){if(endIdx<=outIdx+2)break;heap[outIdx++]=224|u>>12}else{if(endIdx<=outIdx+3)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63}heap[outIdx++]=128|u>>6&63}heap[outIdx++]=128|63&u}}return heap[outIdx]=0,outIdx-startIdx},INT53_MAX=9007199254740992,INT53_MIN=-9007199254740992;var printCharBuffers=[null,[],[]],UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder:void 0,UTF8ArrayToString=function(heapOrArray){for(var idx=1>10,56320|1023&u1)))):str+=String.fromCharCode(u0)}return str},UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),Module.print&&(out=Module.print),Module.printErr&&(err=Module.printErr),Module.wasmBinary&&Module.wasmBinary,Module.arguments&&Module.arguments,Module.thisProgram&&(thisProgram=Module.thisProgram),Module.writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var _Module$monitorRunDep,info,wasmImports={l:()=>{var what="",_Module$onAbort=(null!=(_Module$onAbort=Module.onAbort)&&_Module$onAbort.call(Module,what),err(what="Aborted("+what+")"),ABORT=!0,what+=". Build with -sASSERTIONS for more info.",new WebAssembly.RuntimeError(what));throw readyPromiseReject(_Module$onAbort),_Module$onAbort},k:()=>{noExitRuntime=!1,runtimeKeepaliveCounter=0},m:(which,timeout_ms)=>{var id;return timers[which]&&(clearTimeout(timers[which].id),delete timers[which]),timeout_ms&&(id=setTimeout(()=>{delete timers[which];var func=()=>__emscripten_timeout(which,performance.now());if(!ABORT)try{func(),maybeExit()}catch(e){handleException(e)}},timeout_ms),timers[which]={id:id,timeout_ms:timeout_ms}),0},g:function(compG_ptr,nb_pixels){compG_ptr>>=2;var imageData=Module.imageData=new Uint8ClampedArray(nb_pixels),compG_ptr=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);imageData.set(compG_ptr)},f:function(compR_ptr,compG_ptr,compB_ptr,nb_pixels){compR_ptr>>=2,compG_ptr>>=2,compB_ptr>>=2;for(var imageData=Module.imageData=new Uint8ClampedArray(3*nb_pixels),compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels),compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels),compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels),i=0;i>=2,compG_ptr>>=2,compB_ptr>>=2,compA_ptr>>=2;for(var imageData=Module.imageData=new Uint8ClampedArray(4*nb_pixels),compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels),compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels),compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels),compA=HEAP32.subarray(compA_ptr,compA_ptr+nb_pixels),i=0;i{var oldSize=HEAPU8.length;requestedSize>>>=0;if(!(2147483648{size=(size-wasmMemory.buffer.byteLength+65535)/65536|0;try{return wasmMemory.grow(size),updateMemoryViews(),1}catch(e){}})(Math.min(2147483648,(overGrownHeapSize=Math.max(requestedSize,overGrownHeapSize),alignment=65536,Math.ceil(overGrownHeapSize/alignment)*alignment))))return!0}return!1},p:(__environ,environ_buf)=>{var string,bufSize=0,envp=0;for(string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr,bufSize+=stringToUTF8Array(string,HEAPU8,ptr,1/0)+1,envp+=4}return 0},q:(penviron_count,penviron_buf_size)=>{var string,strings=getEnvStrings(),bufSize=(HEAPU32[penviron_count>>2]=strings.length,0);for(string of strings)bufSize+=(str=>{for(var len=0,i=0;i>2]=bufSize,0},b:fd=>52,o:function(fd,offset,whence,newOffset){var num;return offset=(num=offset){for(var stream,curr,buffer,num=0,i=0;i>2],len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num,0},r:function(compG_ptr,nb_pixels){compG_ptr>>=2;for(var imageData=Module.imageData=new Uint8ClampedArray(4*nb_pixels),compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels),i=0;i>=2,compA_ptr>>=2;for(var imageData=Module.imageData=new Uint8ClampedArray(4*nb_pixels),compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels),compA=HEAP32.subarray(compA_ptr,compA_ptr+nb_pixels),i=0;i>=2,compG_ptr>>=2,compB_ptr>>=2;for(var imageData=Module.imageData=new Uint8ClampedArray(4*nb_pixels),compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels),compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels),compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels),i=0;i{Module.instantiateWasm(info,(mod,inst)=>{resolve(receiveInstance(mod))})}));function receiveInstance(instance){return wasmExports=instance.exports,wasmMemory=wasmExports.s,updateMemoryViews(),runDependencies--,null!=(instance=Module.monitorRunDependencies)&&instance.call(Module,runDependencies),0==runDependencies&&dependenciesFulfilled&&(instance=dependenciesFulfilled,dependenciesFulfilled=null,instance()),wasmExports}wasmExports.t,Module._malloc=wasmExports.u,Module._free=wasmExports.v,Module._jp2_decode=wasmExports.w;var __emscripten_timeout=wasmExports.x;if(Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);0{setTimeout(()=>Module.setStatus(""),1),doRun()},1)):doRun()}function doRun(){var _Module$onRuntimeInit;if(Module.calledRun=!0,!ABORT){if(wasmExports.t(),readyPromiseResolve(Module),null!=(_Module$onRuntimeInit=Module.onRuntimeInitialized)&&_Module$onRuntimeInit.call(Module),Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(onPostRuns)}}}(),readyPromise},openjpeg=OpenJPEG;class JpxError extends BaseException{constructor(msg){super(msg,"JpxError")}}class JpxImage{static setOptions(_ref10){var{handler:_ref10,useWasm,useWorkerFetch,wasmUrl}=_ref10;_useWasm2._=_assertClassBrand(JpxImage,this,useWasm),_useWorkerFetch._=_assertClassBrand(JpxImage,this,useWorkerFetch),_wasmUrl2._=_assertClassBrand(JpxImage,this,wasmUrl),useWorkerFetch||(_handler._=_assertClassBrand(JpxImage,this,_ref10))}static async decode(bytes){var promise,{numComponents=4,isIndexedColormap=!1,smaskInData=!1,reducePower=0}=1>>0,Ysiz=stream.getInt32()>>>0,XOsiz=stream.getInt32()>>>0,YOsiz=stream.getInt32()>>>0,stream.skip(16),{width:Xsiz-XOsiz,height:Ysiz-YOsiz,bitsPerComponent:8,componentsCount:stream.getUint16()};throw new JpxError("No size marker found in JPX stream")}}async function _getJsModule(fallbackCallback){var path="".concat(_assertClassBrand(_JpxImage,this,_wasmUrl2)._,"openjpeg_nowasm_fallback.js"),instance=null;try{instance=(await import(path)).default()}catch(e){warn("JpxImage#getJsModule: ".concat(e))}fallbackCallback(instance)}async function _instantiateWasm(fallbackCallback,imports,successCallback){try{return _assertClassBrand(_JpxImage,this,_buffer)._||(_assertClassBrand(_JpxImage,this,_useWorkerFetch)._?_buffer._=_assertClassBrand(_JpxImage,this,await fetchBinaryData("".concat(_assertClassBrand(_JpxImage,this,_wasmUrl2)._).concat("openjpeg.wasm"))):_buffer._=_assertClassBrand(_JpxImage,this,await _assertClassBrand(_JpxImage,this,_handler)._.sendWithPromise("FetchBinaryData",{type:"wasmFactory",filename:"openjpeg.wasm"}))),successCallback((await WebAssembly.instantiate(_assertClassBrand(_JpxImage,this,_buffer)._,imports)).instance)}catch(reason){return warn("JpxImage#instantiateWasm: ".concat(reason)),_assertClassBrand(_JpxImage,this,_getJsModule).call(this,fallbackCallback),null}finally{_handler._=_assertClassBrand(_JpxImage,this,null)}}var _JpxImage=JpxImage,_buffer={_:null},_handler={_:null},_modulePromise={_:null},_useWasm2={_:!0},_useWorkerFetch={_:!0},_wasmUrl2={_:null};function addState(parentState,pattern,checkFn,iterateFn,processFn){for(var state=parentState,i=0,ii=pattern.length-1;i{var argsArray=context.argsArray,op=argsArray[context.iCurr-1][0];return op!==OPS.stroke&&op!==OPS.closeStroke&&op!==OPS.fillStroke&&op!==OPS.eoFillStroke&&op!==OPS.closeFillStroke&&op!==OPS.closeEOFillStroke||1===(op=argsArray[context.iCurr-2])[0]&&0===op[1]&&0===op[2]&&1===op[3]},()=>!1,(context,i)=>{var{fnArray,argsArray}=context,context=context.iCurr,iFirstSave=context-3,args=argsArray[context-1],transform=argsArray[context-2],[,[buffer],context]=args;if(context){Util.scaleMinMax(transform,context);for(var k=0,kk=buffer.length;k=OperatorList.CHUNK_SIZE||this.weight>=OperatorList.CHUNK_SIZE_ABOUT&&(fn===OPS.restore||fn===OPS.endText))&&this.flush()}addImageOps(fn,args,optionalContent){var hasMask=3>>0}function hexToStr(a,size){return 1===size?String.fromCharCode(a[0],a[1]):3===size?String.fromCharCode(a[0],a[1],a[2],a[3]):String.fromCharCode(...a.subarray(0,size+1))}function addHex(a,b,size){for(var c=0,i=size;0<=i;i--)c+=a[i]+b[i],a[i]=255&c,c>>=8}function incHex(a,size){for(var c=1,i=size;0<=i&&0>=8}_defineProperty(_OperatorList=OperatorList,"CHUNK_SIZE",1e3),_defineProperty(OperatorList,"CHUNK_SIZE_ABOUT",_OperatorList.CHUNK_SIZE-5),_defineProperty(OperatorList,"isOffscreenCanvasSupported",!1);var MAX_NUM_SIZE=16,MAX_ENCODED_NUM_SIZE=19;class BinaryCMapStream{constructor(data){this.buffer=data,this.pos=0,this.end=data.length,this.tmpBuf=new Uint8Array(MAX_ENCODED_NUM_SIZE)}readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]}readNumber(){var n=0;do{var b=this.readByte();if(b<0)throw new FormatError("unexpected EOF in bcmap")}while(n=n<<7|127&b,!!(128&b));return n}readSigned(){var n=this.readNumber();return 1&n?~(n>>>1):n>>>1}readHex(num,size){num.set(this.buffer.subarray(this.pos,this.pos+size+1)),this.pos+=size+1}readHexNumber(num,size){var last,stack=this.tmpBuf,sp=0;do{var b=this.readByte();if(b<0)throw new FormatError("unexpected EOF in bcmap")}while(last=!(128&b),stack[sp++]=127&b,!last);for(var i=size,buffer=0,bufferSize=0;0<=i;){for(;bufferSize<8&&0>=8,bufferSize-=8}}readHexSigned(num,size){this.readHexNumber(num,size);for(var sign=1&num[size]?255:0,c=0,i=0;i<=size;i++)c=(1&c)<<8|num[i],num[i]=c>>1^sign}readString(){for(var len=this.readNumber(),buf=new Array(len),i=0;i>5;if(7==type)switch(31&b){case 0:stream.readString();break;case 1:useCMap=stream.readString()}else{var sequence=!!(16&b),dataSize=15&b;if(MAX_NUM_SIZE<1+dataSize)throw new Error("BinaryCMapReader.process: Invalid dataSize.");var subitemsCount=stream.readNumber();switch(type){case 0:stream.readHex(start,dataSize),stream.readHexNumber(end,dataSize),addHex(end,start,dataSize),cMap.addCodespaceRange(1+dataSize,hexToInt(start,dataSize),hexToInt(end,dataSize));for(var i=1;i>=8}}}}class AsciiHexStream extends DecodeStream{constructor(str,maybeLength){maybeLength&&(maybeLength*=.5),super(maybeLength),this.str=str,this.dict=str.dict,this.firstDigit=-1}readBlock(){var bytes=this.str.getBytes(8e3);if(bytes.length){var _ch,maxDecodeLength=bytes.length+1>>1,buffer=this.ensureBuffer(this.bufferLength+maxDecodeLength),bufferLength=this.bufferLength,firstDigit=this.firstDigit;for(_ch of bytes){var digit=void 0;if(48<=_ch&&_ch<=57)digit=15&_ch;else{if(!(65<=_ch&&_ch<=70||97<=_ch&&_ch<=102)){if(62!==_ch)continue;this.eof=!0;break}digit=9+(15&_ch)}firstDigit=firstDigit<0?digit:(buffer[bufferLength++]=firstDigit<<4|digit,-1)}0<=firstDigit&&this.eof&&(buffer[bufferLength++]=firstDigit<<4,firstDigit=-1),this.firstDigit=firstDigit,this.bufferLength=bufferLength}else this.eof=!0}}var ccittEOL=-2,ccittEOF=-1,twoDimPass=0,twoDimHoriz=1,twoDimVert0=2,twoDimVertR1=3,twoDimVertL1=4,twoDimVertR2=5,twoDimVertL2=6,twoDimVertR3=7,twoDimVertL3=8,twoDimTable=[[-1,-1],[-1,-1],[7,twoDimVertL3],[7,twoDimVertR3],[6,twoDimVertL2],[6,twoDimVertL2],[6,twoDimVertR2],[6,twoDimVertR2],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0]],whiteTable1=[[-1,-1],[12,ccittEOL],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],whiteTable2=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],blackTable1=[[-1,-1],[-1,-1],[12,ccittEOL],[12,ccittEOL],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],blackTable2=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],blackTable3=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];class CCITTFaxDecoder{constructor(source){var code1,options=1>1==1)break;this._eatBits(1)}this._eatBits(12),0bits?(c<<=bits,1&this.codingPos||(c|=255>>8-bits),this.outputBits-=bits,bits=0):(c<<=this.outputBits,1&this.codingPos||(c|=255>>8-this.outputBits),bits-=this.outputBits,this.outputBits=0,codingLine[this.codingPos]codingLine[codingPos]&&(a1>this.columns&&(info("row is wrong length"),this.err=!0,a1=this.columns),1&codingPos^blackPixels&&++codingPos,codingLine[codingPos]=a1),this.codingPos=codingPos}_addPixelsNeg(a1,blackPixels){var codingLine=this.codingLine,codingPos=this.codingPos;if(a1>codingLine[codingPos])a1>this.columns&&(info("row is wrong length"),this.err=!0,a1=this.columns),1&codingPos^blackPixels&&++codingPos,codingLine[codingPos]=a1;else if(a1>5==0?whiteTable1[code]:whiteTable2[code>>3])[0])return this._eatBits(code[0]),code[1]}else{var code=this._findTableCode(1,9,whiteTable2);if(code[0])return code[1];if((code=this._findTableCode(11,12,whiteTable1))[0])return code[1]}return info("bad white code"),this._eatBits(1),1}_getBlackCode(){if(this.eoblock){if((code=this._lookBits(13))===ccittEOF)return 1;if(0<(code=code>>7==0?blackTable1[code]:code>>9==0&&code>>7!=0?blackTable2[(code>>1)-64]:blackTable3[code>>7])[0])return this._eatBits(code[0]),code[1]}else{var code=this._findTableCode(2,6,blackTable3);if(code[0])return code[1];if((code=this._findTableCode(7,12,blackTable2,64))[0])return code[1];if((code=this._findTableCode(10,13,blackTable1))[0])return code[1]}return info("bad black code"),this._eatBits(1),1}_lookBits(n){for(var c;this.inputBits>16-n;this.inputBuf=this.inputBuf<<8|c,this.inputBits+=8}return this.inputBuf>>this.inputBits-n&65535>>16-n}_eatBits(n){(this.inputBits-=n)<0&&(this.inputBits=0)}}class CCITTFaxStream extends DecodeStream{constructor(str,maybeLength,params){super(maybeLength),this.str=str,this.dict=str.dict,params instanceof Dict||(params=Dict.empty);maybeLength={next(){return str.getByte()}};this.ccittFaxDecoder=new CCITTFaxDecoder(maybeLength,{K:params.get("K"),EndOfLine:params.get("EndOfLine"),EncodedByteAlign:params.get("EncodedByteAlign"),Columns:params.get("Columns"),Rows:params.get("Rows"),EndOfBlock:params.get("EndOfBlock"),BlackIs1:params.get("BlackIs1")})}readBlock(){for(;!this.eof;){var c=this.ccittFaxDecoder.readNextChar();if(-1===c)return void(this.eof=!0);this.ensureBuffer(this.bufferLength+1),this.buffer[this.bufferLength++]=c}}}var codeLenCodeMap=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),lengthDecode=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),distDecode=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),fixedLitCodeTab=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],fixedDistCodeTab=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5],_FlateStream_brand=new WeakSet;class FlateStream extends DecodeStream{constructor(str,maybeLength){super(maybeLength),_classPrivateMethodInitSpec(this,_FlateStream_brand),this.str=str,this.dict=str.dict;maybeLength=str.getByte(),str=str.getByte();if(-1===maybeLength||-1===str)throw new FormatError("Invalid header in flate stream: ".concat(maybeLength,", ").concat(str));if(8!=(15&maybeLength))throw new FormatError("Unknown compression method in flate stream: ".concat(maybeLength,", ").concat(str));if(((maybeLength<<8)+str)%31!=0)throw new FormatError("Bad FCHECK in flate stream: ".concat(maybeLength,", ").concat(str));if(32&str)throw new FormatError("FDICT bit set in flate stream: ".concat(maybeLength,", ").concat(str));this.codeSize=0,this.codeBuf=0}async getImageData(length,_decoderOptions){var data=await this.asyncGetBytes();return data?data.length<=length?data:data.subarray(0,length):this.getBytes(length)}async asyncGetBytes(){this.str.reset();var bytes=this.str.getBytes();try{var chunk,{readable,writable}=new DecompressionStream("deflate"),writer=writable.getWriter(),chunks=(await writer.ready,writer.write(bytes).then(async()=>{await writer.ready,await writer.close()}).catch(()=>{}),[]),totalLength=0;for await(chunk of readable)chunks.push(chunk),totalLength+=chunk.byteLength;var _chunk2,data=new Uint8Array(totalLength),offset=0;for(_chunk2 of chunks)data.set(_chunk2,offset),offset+=_chunk2.byteLength;return data}catch(_unused6){return this.str=new Stream(bytes,2,bytes.length,this.str.dict),this.reset(),null}}get isAsync(){return!0}getBits(bits){for(var b,str=this.str,codeSize=this.codeSize,codeBuf=this.codeBuf;codeSize>bits,this.codeSize=codeSize-=bits,b}getCode(table){for(var b,str=this.str,codes=table[0],maxLen=table[1],codeSize=this.codeSize,codeBuf=this.codeBuf;codeSize>16,table&=65535;if(codes<1||codeSize>codes,this.codeSize=codeSize-codes,table}generateHuffmanTable(lengths){var n=lengths.length,maxLen=0;for(i=0;imaxLen&&(maxLen=lengths[i]);for(var size=1<>=1;for(i=code2;i>=1))if(-1===(b=str.getByte()))_assertClassBrand(_FlateStream_brand,this,_endsStreamOnError).call(this,"Bad block header in flate stream");else{var blockLen=b;if(-1===(b=str.getByte()))_assertClassBrand(_FlateStream_brand,this,_endsStreamOnError).call(this,"Bad block header in flate stream");else if(blockLen|=b<<8,-1===(b=str.getByte()))_assertClassBrand(_FlateStream_brand,this,_endsStreamOnError).call(this,"Bad block header in flate stream");else{var check=b;if(-1===(b=str.getByte()))_assertClassBrand(_FlateStream_brand,this,_endsStreamOnError).call(this,"Bad block header in flate stream");else{if((check|=b<<8)!=(65535&~blockLen)&&(0!=blockLen||0!=check))throw new FormatError("Bad uncompressed block length in flate stream");this.codeBuf=0,this.codeSize=0;var b=this.bufferLength,check=b+blockLen,buffer=this.ensureBuffer(check);this.bufferLength=check,0==blockLen?-1===str.peekByte()&&(this.eof=!0):(check=str.getBytes(blockLen),buffer.set(check,b),check.length>16,dist=(len=(65535&code1)+(code2=0>16)?this.getBits(code2):code2));limit<=pos+len&&(limit=(buffer=this.ensureBuffer(pos+len)).length);for(var k=0;k>9&127,this.clow=this.clow<<7&65535,this.ct-=7,this.a=32768}byteIn(){var data=this.data,bp=this.bp;255===data[bp]?143>16,this.clow&=65535)}readBit(contexts,pos){var d,cx_index=contexts[pos]>>1,cx_mps=1&contexts[pos],qeTableIcx=QeTable[cx_index],qeIcx=qeTableIcx.qe,a=this.a-qeIcx;if(this.chigh>15&1,this.clow=this.clow<<1&65535,this.ct--,0==(32768&a););return this.a=a,contexts[pos]=cx_index<<1|cx_mps,d}}class Jbig2Error extends BaseException{constructor(msg){super(msg,"Jbig2Error")}}class ContextCache{getContexts(id){return id in this?this[id]:this[id]=new Int8Array(65536)}}class DecodingContext{constructor(data,start,end){this.data=data,this.start=start,this.end=end}get decoder(){return shadow(this,"decoder",new ArithmeticDecoder(this.data,this.start,this.end))}get contextCache(){return shadow(this,"contextCache",new ContextCache)}}function decodeInteger(contextCache,procedure,decoder){var contexts=contextCache.getContexts(procedure),prev=1;function readBits(length){for(var v=0,i=0;i>>0}var signedValue,contextCache=readBits(1),procedure=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);return 0===contextCache?signedValue=procedure:0a.y-b.y||a.x-b.x),template.length),templateX=new Int8Array(templateLength),templateY=new Int8Array(templateLength),changingTemplateEntries=[],reuseMask=0,minX=0,maxX=0,minY=0,k=0;k>1)+decodeInteger(contextCache,"IARDX",decoder),(applyRefinement>>1)+decodeInteger(contextCache,"IARDY",decoder),!1,refinementAt,decodingContext)),0),offsetT=(transposed?1&referenceCorner?symbolId=symbolHeight-1:currentS+=symbolHeight-1:1>8,0<=(x=gridOffsetX+mg*gridVectorY+ng*gridVectorX>>8)&&x+patternWidth<=regionWidth&&0<=y&&y+patternHeight<=regionHeight)for(i=0;i>5&7,retainBits=[31&referredFlags],position=start+6;if(7===referredFlags){referredToCount=536870911&readUint32(data,position-1),position+=3;var bytes=referredToCount+7>>3;for(retainBits[0]=data[position++];0<--bytes;)retainBits.push(data[position++])}else if(5===referredFlags||6===referredFlags)throw new Jbig2Error("invalid referred-to flags");segmentHeader.retainBits=retainBits;for(var ii,referredToSegmentNumberSize=4,referredTo=(segmentHeader.number<=256?referredToSegmentNumberSize=1:segmentHeader.number<=65536&&(referredToSegmentNumberSize=2),[]),i=0;i>>24&255,searchPattern[3]=start.height>>16&255,searchPattern[4]=start.height>>8&255,searchPattern[5]=255&start.height,i=position,ii=data.length;i>2&3,dictionary.huffmanDWSelector=dictionaryFlags>>4&3,dictionary.bitmapSizeSelector=dictionaryFlags>>6&1,dictionary.aggregationInstancesSelector=dictionaryFlags>>7&1,dictionary.bitmapCodingContextUsed=!!(256&dictionaryFlags),dictionary.bitmapCodingContextRetained=!!(512&dictionaryFlags),dictionary.template=dictionaryFlags>>10&3,dictionary.refinementTemplate=dictionaryFlags>>12&1,position+=2,!dictionary.huffman){for(atLength=0===dictionary.template?4:1,at=[],i=0;i>2&3,dictionaryFlags.stripSize=1<>4&3,dictionaryFlags.transposed=!!(64&dictionary),dictionaryFlags.combinationOperator=dictionary>>7&3,dictionaryFlags.defaultPixelValue=dictionary>>9&1,dictionaryFlags.dsOffset=dictionary<<17>>27,dictionaryFlags.refinementTemplate=dictionary>>15&1,dictionaryFlags.huffman&&(dictionary=readUint16(data,position),position+=2,dictionaryFlags.huffmanFS=3&dictionary,dictionaryFlags.huffmanDS=dictionary>>2&3,dictionaryFlags.huffmanDT=dictionary>>4&3,dictionaryFlags.huffmanRefinementDW=dictionary>>6&3,dictionaryFlags.huffmanRefinementDH=dictionary>>8&3,dictionaryFlags.huffmanRefinementDX=dictionary>>10&3,dictionaryFlags.huffmanRefinementDY=dictionary>>12&3,dictionaryFlags.huffmanRefinementSizeSelector=!!(16384&dictionary)),dictionaryFlags.refinement&&!dictionaryFlags.refinementTemplate){for(at=[],i=0;i<2;i++)at.push({x:readInt8(data,position),y:readInt8(data,position+1)}),position+=2;dictionaryFlags.refinementAt=at}dictionaryFlags.numberOfSymbolInstances=readUint32(data,position),args=[dictionaryFlags,header.referredTo,data,position+=4,end];break;case 16:dictionary={},dictionaryFlags=data[position++];dictionary.mmr=!!(1&dictionaryFlags),dictionary.template=dictionaryFlags>>1&3,dictionary.patternWidth=data[position++],dictionary.patternHeight=data[position++],dictionary.maxPatternIndex=readUint32(data,position),args=[dictionary,header.number,data,position+=4,end];break;case 22:case 23:dictionaryFlags={},dictionary=(dictionaryFlags.info=readRegionSegmentInformation(data,position),position+=RegionSegmentInformationFieldLength,data[position++]);dictionaryFlags.mmr=!!(1&dictionary),dictionaryFlags.template=dictionary>>1&3,dictionaryFlags.enableSkip=!!(8&dictionary),dictionaryFlags.combinationOperator=dictionary>>4&7,dictionaryFlags.defaultPixelValue=dictionary>>7&1,dictionaryFlags.gridWidth=readUint32(data,position),dictionaryFlags.gridHeight=readUint32(data,position+=4),dictionaryFlags.gridOffsetX=4294967295&readUint32(data,position+=4),dictionaryFlags.gridOffsetY=4294967295&readUint32(data,position+=4),dictionaryFlags.gridVectorX=readUint16(data,position+=4),dictionaryFlags.gridVectorY=readUint16(data,position+=2),args=[dictionaryFlags,header.referredTo,data,position+=2,end];break;case 38:case 39:dictionary={},dictionaryFlags=(dictionary.info=readRegionSegmentInformation(data,position),position+=RegionSegmentInformationFieldLength,data[position++]);if(dictionary.mmr=!!(1&dictionaryFlags),dictionary.template=dictionaryFlags>>1&3,dictionary.prediction=!!(8&dictionaryFlags),!dictionary.mmr){for(atLength=0===dictionary.template?4:1,at=[],i=0;i>2&1,dictionaryFlags.combinationOperator=dictionary>>3&3,dictionaryFlags.requiresBuffer=!!(32&dictionary),dictionaryFlags.combinationOperatorOverride=!!(64&dictionary),args=[dictionaryFlags];break;case 49:case 50:case 51:break;case 53:args=[header.number,data,position,end];break;case 62:break;default:throw new Jbig2Error("segment type ".concat(header.typeName,"(").concat(header.type,") is not implemented"))}segment="on"+header.typeName;segment in visitor&&visitor[segment].apply(visitor,args)}function processSegments(segments,visitor){for(var i=0,ii=segments.length;i>3,rowSize=new Uint8ClampedArray(rowSize*info.height);info.defaultPixelValue&&rowSize.fill(255),this.buffer=rowSize}drawBitmap(regionInfo,bitmap){var i,j,mask,offset,pageInfo=this.currentPageInfo,width=regionInfo.width,height=regionInfo.height,rowSize=pageInfo.width+7>>3,combinationOperator=(pageInfo.combinationOperatorOverride?regionInfo:pageInfo).combinationOperator,buffer=this.buffer,mask0=128>>(7®ionInfo.x),offset0=regionInfo.y*rowSize+(regionInfo.x>>3);switch(combinationOperator){case 0:for(i=0;i>=1)||(mask=128,offset++);offset0+=rowSize}break;case 2:for(i=0;i>=1)||(mask=128,offset++);offset0+=rowSize}break;default:throw new Jbig2Error("operator ".concat(combinationOperator," is not supported"))}}onImmediateGenericRegion(region,data,start,end){var regionInfo=region.info,data=new DecodingContext(data,start,end),start=decodeBitmap(region.mmr,regionInfo.width,regionInfo.height,region.template,region.prediction,null,region.at,data);this.drawBitmap(regionInfo,start)}onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion(...arguments)}onSymbolDictionary(dictionary,currentSegment,referredSegments,data,start,end){dictionary.huffman&&(huffmanTables=getSymbolDictionaryHuffmanTables(dictionary,referredSegments,this.customTables),huffmanInput=new Reader(data,start,end));var huffmanTables,huffmanInput,referredSegment,symbols=this.symbols,inputSymbols=(symbols||(this.symbols=symbols={}),[]);for(referredSegment of referredSegments){var referredSymbols=symbols[referredSegment];referredSymbols&&inputSymbols.push(...referredSymbols)}referredSegments=new DecodingContext(data,start,end);symbols[currentSegment]=decodeSymbolDictionary(dictionary.huffman,dictionary.refinement,inputSymbols,dictionary.numberOfNewSymbols,dictionary.numberOfExportedSymbols,huffmanTables,dictionary.template,dictionary.at,dictionary.refinementTemplate,dictionary.refinementAt,referredSegments,huffmanInput)}onImmediateTextRegion(region,referredSegments,data,start,end){var huffmanTables,huffmanInput,referredSegment,regionInfo=region.info,symbols=this.symbols,inputSymbols=[];for(referredSegment of referredSegments){var referredSymbols=symbols[referredSegment];referredSymbols&&inputSymbols.push(...referredSymbols)}var symbolCodeLength=log2(inputSymbols.length),referredSegments=(region.huffman&&(huffmanInput=new Reader(data,start,end),huffmanTables=getTextRegionHuffmanTables(region,referredSegments,this.customTables,inputSymbols.length,huffmanInput)),new DecodingContext(data,start,end)),data=decodeTextRegion(region.huffman,region.refinement,regionInfo.width,regionInfo.height,region.defaultPixelValue,region.numberOfSymbolInstances,region.stripSize,inputSymbols,symbolCodeLength,region.transposed,region.dsOffset,region.referenceCorner,region.combinationOperator,huffmanTables,region.refinementTemplate,region.refinementAt,referredSegments,region.logStripSize,huffmanInput);this.drawBitmap(regionInfo,data)}onImmediateLosslessTextRegion(){this.onImmediateTextRegion(...arguments)}onPatternDictionary(dictionary,currentSegment,data,start,end){var patterns=this.patterns,data=(patterns||(this.patterns=patterns={}),new DecodingContext(data,start,end));patterns[currentSegment]=decodePatternDictionary(dictionary.mmr,dictionary.patternWidth,dictionary.patternHeight,dictionary.maxPatternIndex,dictionary.template,data)}onImmediateHalftoneRegion(region,referredSegments,data,start,end){var referredSegments=this.patterns[referredSegments[0]],regionInfo=region.info,data=new DecodingContext(data,start,end),start=decodeHalftoneRegion(region.mmr,referredSegments,region.template,regionInfo.width,regionInfo.height,region.defaultPixelValue,region.enableSkip,region.combinationOperator,region.gridWidth,region.gridHeight,region.gridOffsetX,region.gridOffsetY,region.gridVectorX,region.gridVectorY,data);this.drawBitmap(regionInfo,start)}onImmediateLosslessHalftoneRegion(){this.onImmediateHalftoneRegion(...arguments)}onTables(currentSegment,data,start,end){var customTables=this.customTables;customTables||(this.customTables=customTables={}),customTables[currentSegment]=decodeTablesSegment(data,start,end)}}class HuffmanLine{constructor(lineData){2===lineData.length?(this.isOOB=!0,this.rangeLow=0,this.prefixLength=lineData[0],this.rangeLength=0,this.prefixCode=lineData[1],this.isLowerRange=!1):(this.isOOB=!1,this.rangeLow=lineData[0],this.prefixLength=lineData[1],this.rangeLength=lineData[2],this.prefixCode=lineData[3],this.isLowerRange="lower"===lineData[4])}}class HuffmanTreeNode{constructor(line){this.children=[],line?(this.isLeaf=!0,this.rangeLength=line.rangeLength,this.rangeLow=line.rangeLow,this.isLowerRange=line.isLowerRange,this.isOOB=line.isOOB):this.isLeaf=!1}buildTree(line,shift){var node,bit=line.prefixCode>>shift&1;shift<=0?this.children[bit]=new HuffmanTreeNode(line):((node=this.children[bit])||(this.children[bit]=node=new HuffmanTreeNode(null)),node.buildTree(line,shift-1))}decodeNode(reader){if(this.isLeaf)return this.isOOB?null:(htOffset=reader.readBits(this.rangeLength),this.rangeLow+(this.isLowerRange?-htOffset:htOffset));var htOffset=this.children[reader.readBit()];if(htOffset)return htOffset.decodeNode(reader);throw new Jbig2Error("invalid Huffman data")}}class HuffmanTable{constructor(lines,prefixCodesDone){prefixCodesDone||this.assignPrefixCodes(lines),this.rootNode=new HuffmanTreeNode(null);for(var i=0,ii=lines.length;i>1&7),rangeSizeBits=1+(flags>>4&7),lines=[],currentRangeLow=lowestValue;prefixLength=reader.readBits(prefixSizeBits),rangeLength=reader.readBits(rangeSizeBits),lines.push(new HuffmanLine([currentRangeLow,prefixLength,rangeLength,0])),(currentRangeLow+=1<=this.end)throw new Jbig2Error("end of data while reading bit");this.currentByte=this.data[this.position++],this.shift=7}var bit=this.currentByte>>this.shift&1;return this.shift--,bit}readBits(numBits){for(var result=0,i=numBits-1;0<=i;i--)result|=this.readBit()<=this.end?-1:this.data[this.position++]}}function getCustomHuffmanTable(index,referredTo,customTables){for(var currentIndex=0,i=0,ii=referredTo.length;i>shift&1,shift--;if(endOfBlock&&!eof)for(var i=0;i<5&&-1!==decoder.readNextChar();i++);return bitmap}class Jbig2Image{parseChunks(chunks){return parseJbig2Chunks(chunks)}parse(data){throw new Error("Not implemented: Jbig2Image.parse")}}class Jbig2Stream extends DecodeStream{constructor(stream,maybeLength,params){super(maybeLength),this.stream=stream,this.dict=stream.dict,this.maybeLength=maybeLength,this.params=params}get bytes(){return shadow(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(requested){}readBlock(){this.decodeImage()}decodeImage(bytes){if(!this.eof){bytes=bytes||this.bytes;for(var globalsStream,jbig2Image=new Jbig2Image,chunks=[],data=(this.params instanceof Dict&&(globalsStream=this.params.get("JBIG2Globals"))instanceof BaseStream&&(globalsStream=globalsStream.getBytes(),chunks.push({data:globalsStream,start:0,end:globalsStream.length})),chunks.push({data:bytes,start:0,end:bytes.length}),jbig2Image.parseChunks(chunks)),dataLength=data.length,i=0;i>>bitsCached&(1<>3,this.rowBytes=params*maybeLength*str+7>>3,this}readBlockTiff(){var rowBytes=this.rowBytes,bufferLength=this.bufferLength,buffer=this.ensureBuffer(bufferLength+rowBytes),bits=this.bits,colors=this.colors,rawBytes=this.str.getBytes(rowBytes);if(this.eof=!rawBytes.length,!this.eof){var inbuf=0,outbuf=0,inbits=0,outbits=0,pos=bufferLength;if(1===bits&&1===colors)for(i=0;i>1)^c>>2)^c>>4))<<7;buffer[pos++]=c}else if(8===bits){for(i=0;i>8&255,buffer[pos++]=255&sum}}else{var compArray=new Uint8Array(colors+1),bitMask=(1<>inbits-bits)&bitMask,inbits-=bits,outbuf=outbuf<>outbits-8&255,outbits-=8);0>1)+rawBytes[i];for(;i>1)+rawBytes[i]&255,j++;break;case 4:for(i=0;i>")&&this.buf1!==EOF;)if(this.buf1 instanceof Name){var key=this.buf1.name;if(this.shift(),this.buf1===EOF)break;dict.set(key,this.getObj(cipherTransform))}else info("Malformed dictionary: key must be a name object"),this.shift();if(this.buf1!==EOF)return isCmd(this.buf2,"stream")?this.allowStreams?this.makeStream(dict,cipherTransform):dict:(this.shift(),dict);if(this.recoveryMode)return dict;throw new ParserEOFException("End of file inside dictionary.");default:return buf1}return Number.isInteger(buf1)?Number.isInteger(this.buf1)&&isCmd(this.buf2,"R")?(ref=Ref.get(buf1,this.buf1),this.shift(),this.shift(),ref):buf1:"string"==typeof buf1&&cipherTransform?cipherTransform.decryptString(buf1):buf1}findDefaultInlineStreamEnd(stream){for(var ch,knownCommands=this.lexer["knownCommands"],startPos=stream.pos,state=0;-1!==(ch=stream.getByte());)if(0===state)state=69===ch?1:0;else if(1===state)state=73===ch?2:0;else if(32===ch||10===ch||13===ch){var maybeEIPos=stream.pos,followingBytes=stream.peekBytes(15),ii=followingBytes.length;if(0===ii)break;for(var i=0;i{},0);;){var nextObj=tmpLexer.getObj();if(nextObj===EOF){state=0;break}if(nextObj instanceof Cmd){nextObj=knownCommands[nextObj.cmd];if(!nextObj){state=0;break}if(nextObj.variableArgs?numArgs<=nextObj.numArgs:numArgs===nextObj.numArgs)break;numArgs=0}else numArgs++}if(2===state)break}else warn("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.")}else state=0;-1===ch&&(warn("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker"),maybeEIPos)&&(warn('... trying to recover by using the last "EI" occurrence.'),stream.skip(-(stream.pos-maybeEIPos)));var endOffset=4;return stream.skip(-endOffset),ch=stream.peekByte(),stream.skip(endOffset),isWhiteSpace(ch)||endOffset--,stream.pos-endOffset-startPos}findDCTDecodeInlineStreamEnd(stream){for(var b,markerLength,startPos=stream.pos,foundEOI=!1;-1!==(b=stream.getByte());)if(255===b){switch(stream.getByte()){case 0:break;case 255:stream.skip(-1);break;case 217:foundEOI=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:2<(markerLength=stream.getUint16())?stream.skip(markerLength-2):stream.skip(-2)}if(foundEOI)break}startPos=stream.pos-startPos;return-1===b?(warn("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead."),stream.skip(-startPos),this.findDefaultInlineStreamEnd(stream)):(this.inlineStreamSkipEI(stream),startPos)}findASCII85DecodeInlineStreamEnd(stream){for(var startPos=stream.pos;-1!==(ch=stream.getByte());)if(126===ch){for(var tildePos=stream.pos,ch=stream.peekByte();isWhiteSpace(ch);)stream.skip(),ch=stream.peekByte();if(62===ch){stream.skip();break}if(stream.pos>tildePos){tildePos=stream.peekBytes(2);if(69===tildePos[0]&&73===tildePos[1])break}}startPos=stream.pos-startPos;return-1===ch?(warn("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead."),stream.skip(-startPos),this.findDefaultInlineStreamEnd(stream)):(this.inlineStreamSkipEI(stream),startPos)}findASCIIHexDecodeInlineStreamEnd(stream){for(var ch,startPos=stream.pos;-1!==(ch=stream.getByte())&&62!==ch;);startPos=stream.pos-startPos;return-1===ch?(warn("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead."),stream.skip(-startPos),this.findDefaultInlineStreamEnd(stream)):(this.inlineStreamSkipEI(stream),startPos)}inlineStreamSkipEI(stream){for(var ch,state=0;-1!==(ch=stream.getByte());)if(0===state)state=69===ch?1:0;else if(1===state)state=73===ch?2:0;else if(2===state)break}makeInlineImage(cipherTransform){for(var lexer=this.lexer,stream=lexer.stream,dictMap=Object.create(null);!isCmd(this.buf1,"ID")&&this.buf1!==EOF;){if(!(this.buf1 instanceof Name))throw new FormatError("Dictionary key must be a name object");var key=this.buf1.name;if(this.shift(),this.buf1===EOF)break;dictMap[key]=this.getObj(cipherTransform)}-1!==lexer.beginInlineImagePos&&(dictLength=stream.pos-lexer.beginInlineImagePos);var length,cacheKey,filter=this.xref.fetchIfRef(dictMap.F||dictMap.Filter),filter=(filter instanceof Name?filterName=filter.name:Array.isArray(filter)&&(filter=this.xref.fetchIfRef(filter[0]))instanceof Name&&(filterName=filter.name),stream.pos);switch(filterName){case"DCT":case"DCTDecode":length=this.findDCTDecodeInlineStreamEnd(stream);break;case"A85":case"ASCII85Decode":length=this.findASCII85DecodeInlineStreamEnd(stream);break;case"AHx":case"ASCIIHexDecode":length=this.findASCIIHexDecodeInlineStreamEnd(stream);break;default:length=this.findDefaultInlineStreamEnd(stream)}if(length>")):Cmd.get(">");case 123:return this.nextChar(),Cmd.get("{");case 125:return this.nextChar(),Cmd.get("}");case 41:throw this.nextChar(),new FormatError("Illegal character: ".concat(ch))}var str=String.fromCharCode(ch);if(ch<32||127>>0,codespaceRange=codespaceRanges[n],k=0,kk=codespaceRange.length;k>>0}function expectString(obj){if("string"!=typeof obj)throw new FormatError("Malformed CMap: expected string.")}function expectInt(obj){if(!Number.isInteger(obj))throw new FormatError("Malformed CMap: expected int.")}function parseBfChar(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endbfchar"))return;expectString(obj);var src=strToInt(obj);expectString(obj=lexer.getObj()),cMap.mapOne(src,obj)}}function parseBfRange(cMap,lexer){for(;;){if((obj=lexer.getObj())===EOF)break;if(isCmd(obj,"endbfrange"))return;expectString(obj);var low=strToInt(obj),high=(expectString(obj=lexer.getObj()),strToInt(obj));if(obj=lexer.getObj(),Number.isInteger(obj)||"string"==typeof obj){var dstLow=Number.isInteger(obj)?String.fromCharCode(obj):obj;cMap.mapBfRange(low,high,dstLow)}else{if(!isCmd(obj,"["))break;for(var obj=lexer.getObj(),array=[];!isCmd(obj,"]")&&obj!==EOF;)array.push(obj),obj=lexer.getObj();cMap.mapBfRangeToArray(low,high,array)}}throw new FormatError("Invalid bf range.")}function parseCidChar(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endcidchar"))return;expectString(obj);var src=strToInt(obj);expectInt(obj=lexer.getObj()),cMap.mapOne(src,obj)}}function parseCidRange(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endcidrange"))return;expectString(obj);var low=strToInt(obj),high=(expectString(obj=lexer.getObj()),strToInt(obj));expectInt(obj=lexer.getObj()),cMap.mapCidRange(low,high,obj)}}function parseCodespaceRange(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endcodespacerange"))return;if("string"!=typeof obj)break;var low=strToInt(obj);if("string"!=typeof(obj=lexer.getObj()))break;var high=strToInt(obj);cMap.addCodespaceRange(obj.length,low,high)}throw new FormatError("Invalid codespace range.")}function parseWMode(cMap,lexer){lexer=lexer.getObj();Number.isInteger(lexer)&&(cMap.vertical=!!lexer)}function parseCMapName(cMap,lexer){lexer=lexer.getObj();lexer instanceof Name&&(cMap.name=lexer.name)}async function parseCMap(cMap,lexer,fetchBuiltInCMap,useCMap){var previous,embeddedUseCMap;objLoop:for(;;)try{var obj=lexer.getObj();if(obj===EOF)break;if(obj instanceof Name)"WMode"===obj.name?parseWMode(cMap,lexer):"CMapName"===obj.name&&parseCMapName(cMap,lexer),previous=obj;else if(obj instanceof Cmd)switch(obj.cmd){case"endcmap":break objLoop;case"usecmap":previous instanceof Name&&(embeddedUseCMap=previous.name);break;case"begincodespacerange":parseCodespaceRange(cMap,lexer);break;case"beginbfchar":parseBfChar(cMap,lexer);break;case"begincidchar":parseCidChar(cMap,lexer);break;case"beginbfrange":parseBfRange(cMap,lexer);break;case"begincidrange":parseCidRange(cMap,lexer)}}catch(ex){if(ex instanceof MissingDataException)throw ex;warn("Invalid cMap data: "+ex);continue}return(useCMap=!useCMap&&embeddedUseCMap?embeddedUseCMap:useCMap)?extendCMap(cMap,fetchBuiltInCMap,useCMap):cMap}async function extendCMap(cMap,fetchBuiltInCMap,useCMap){if(cMap.useCMap=await createBuiltInCMap(useCMap,fetchBuiltInCMap),0===cMap.numCodespaceRanges){for(var useCodespaceRanges=cMap.useCMap.codespaceRanges,i=0;iextendCMap(cMap,fetchBuiltInCMap,useCMap)):(isCompressed=new Lexer(new Stream(name)),parseCMap(cMap,isCompressed,fetchBuiltInCMap,null));throw new Error("Built-in CMap parameters are not provided.")}class CMapFactory{static async create(_ref13){var{encoding:_ref13,fetchBuiltInCMap,useCMap}=_ref13;if(_ref13 instanceof Name)return createBuiltInCMap(_ref13.name,fetchBuiltInCMap);if(_ref13 instanceof BaseStream)return(_ref13=await parseCMap(new CMap,new Lexer(_ref13),fetchBuiltInCMap,useCMap)).isIdentityCMap?createBuiltInCMap(_ref13.name,fetchBuiltInCMap):_ref13;throw new Error("Encoding required.")}}var ExpertEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],MacExpertEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall","","","",""],MacRomanEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"],StandardEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls","","","",""],WinAnsiEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"],SymbolSetEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt",""],ZapfDingbatsEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191",""];function getEncoding(encodingName){switch(encodingName){case"WinAnsiEncoding":return WinAnsiEncoding;case"StandardEncoding":return StandardEncoding;case"MacRomanEncoding":return MacRomanEncoding;case"SymbolSetEncoding":return SymbolSetEncoding;case"ZapfDingbatsEncoding":return ZapfDingbatsEncoding;case"ExpertEncoding":return ExpertEncoding;case"MacExpertEncoding":return MacExpertEncoding;default:return null}}var getGlyphsUnicode=getLookupTableFactory(function(t){t.A=65,t.AE=198,t.AEacute=508,t.AEmacron=482,t.AEsmall=63462,t.Aacute=193,t.Aacutesmall=63457,t.Abreve=258,t.Abreveacute=7854,t.Abrevecyrillic=1232,t.Abrevedotbelow=7862,t.Abrevegrave=7856,t.Abrevehookabove=7858,t.Abrevetilde=7860,t.Acaron=461,t.Acircle=9398,t.Acircumflex=194,t.Acircumflexacute=7844,t.Acircumflexdotbelow=7852,t.Acircumflexgrave=7846,t.Acircumflexhookabove=7848,t.Acircumflexsmall=63458,t.Acircumflextilde=7850,t.Acute=63177,t.Acutesmall=63412,t.Acyrillic=1040,t.Adblgrave=512,t.Adieresis=196,t.Adieresiscyrillic=1234,t.Adieresismacron=478,t.Adieresissmall=63460,t.Adotbelow=7840,t.Adotmacron=480,t.Agrave=192,t.Agravesmall=63456,t.Ahookabove=7842,t.Aiecyrillic=1236,t.Ainvertedbreve=514,t.Alpha=913,t.Alphatonos=902,t.Amacron=256,t.Amonospace=65313,t.Aogonek=260,t.Aring=197,t.Aringacute=506,t.Aringbelow=7680,t.Aringsmall=63461,t.Asmall=63329,t.Atilde=195,t.Atildesmall=63459,t.Aybarmenian=1329,t.B=66,t.Bcircle=9399,t.Bdotaccent=7682,t.Bdotbelow=7684,t.Becyrillic=1041,t.Benarmenian=1330,t.Beta=914,t.Bhook=385,t.Blinebelow=7686,t.Bmonospace=65314,t.Brevesmall=63220,t.Bsmall=63330,t.Btopbar=386,t.C=67,t.Caarmenian=1342,t.Cacute=262,t.Caron=63178,t.Caronsmall=63221,t.Ccaron=268,t.Ccedilla=199,t.Ccedillaacute=7688,t.Ccedillasmall=63463,t.Ccircle=9400,t.Ccircumflex=264,t.Cdot=266,t.Cdotaccent=266,t.Cedillasmall=63416,t.Chaarmenian=1353,t.Cheabkhasiancyrillic=1212,t.Checyrillic=1063,t.Chedescenderabkhasiancyrillic=1214,t.Chedescendercyrillic=1206,t.Chedieresiscyrillic=1268,t.Cheharmenian=1347,t.Chekhakassiancyrillic=1227,t.Cheverticalstrokecyrillic=1208,t.Chi=935,t.Chook=391,t.Circumflexsmall=63222,t.Cmonospace=65315,t.Coarmenian=1361,t.Csmall=63331,t.D=68,t.DZ=497,t.DZcaron=452,t.Daarmenian=1332,t.Dafrican=393,t.Dcaron=270,t.Dcedilla=7696,t.Dcircle=9401,t.Dcircumflexbelow=7698,t.Dcroat=272,t.Ddotaccent=7690,t.Ddotbelow=7692,t.Decyrillic=1044,t.Deicoptic=1006,t.Delta=8710,t.Deltagreek=916,t.Dhook=394,t.Dieresis=63179,t.DieresisAcute=63180,t.DieresisGrave=63181,t.Dieresissmall=63400,t.Digammagreek=988,t.Djecyrillic=1026,t.Dlinebelow=7694,t.Dmonospace=65316,t.Dotaccentsmall=63223,t.Dslash=272,t.Dsmall=63332,t.Dtopbar=395,t.Dz=498,t.Dzcaron=453,t.Dzeabkhasiancyrillic=1248,t.Dzecyrillic=1029,t.Dzhecyrillic=1039,t.E=69,t.Eacute=201,t.Eacutesmall=63465,t.Ebreve=276,t.Ecaron=282,t.Ecedillabreve=7708,t.Echarmenian=1333,t.Ecircle=9402,t.Ecircumflex=202,t.Ecircumflexacute=7870,t.Ecircumflexbelow=7704,t.Ecircumflexdotbelow=7878,t.Ecircumflexgrave=7872,t.Ecircumflexhookabove=7874,t.Ecircumflexsmall=63466,t.Ecircumflextilde=7876,t.Ecyrillic=1028,t.Edblgrave=516,t.Edieresis=203,t.Edieresissmall=63467,t.Edot=278,t.Edotaccent=278,t.Edotbelow=7864,t.Efcyrillic=1060,t.Egrave=200,t.Egravesmall=63464,t.Eharmenian=1335,t.Ehookabove=7866,t.Eightroman=8551,t.Einvertedbreve=518,t.Eiotifiedcyrillic=1124,t.Elcyrillic=1051,t.Elevenroman=8554,t.Emacron=274,t.Emacronacute=7702,t.Emacrongrave=7700,t.Emcyrillic=1052,t.Emonospace=65317,t.Encyrillic=1053,t.Endescendercyrillic=1186,t.Eng=330,t.Enghecyrillic=1188,t.Enhookcyrillic=1223,t.Eogonek=280,t.Eopen=400,t.Epsilon=917,t.Epsilontonos=904,t.Ercyrillic=1056,t.Ereversed=398,t.Ereversedcyrillic=1069,t.Escyrillic=1057,t.Esdescendercyrillic=1194,t.Esh=425,t.Esmall=63333,t.Eta=919,t.Etarmenian=1336,t.Etatonos=905,t.Eth=208,t.Ethsmall=63472,t.Etilde=7868,t.Etildebelow=7706,t.Euro=8364,t.Ezh=439,t.Ezhcaron=494,t.Ezhreversed=440,t.F=70,t.Fcircle=9403,t.Fdotaccent=7710,t.Feharmenian=1366,t.Feicoptic=996,t.Fhook=401,t.Fitacyrillic=1138,t.Fiveroman=8548,t.Fmonospace=65318,t.Fourroman=8547,t.Fsmall=63334,t.G=71,t.GBsquare=13191,t.Gacute=500,t.Gamma=915,t.Gammaafrican=404,t.Gangiacoptic=1002,t.Gbreve=286,t.Gcaron=486,t.Gcedilla=290,t.Gcircle=9404,t.Gcircumflex=284,t.Gcommaaccent=290,t.Gdot=288,t.Gdotaccent=288,t.Gecyrillic=1043,t.Ghadarmenian=1346,t.Ghemiddlehookcyrillic=1172,t.Ghestrokecyrillic=1170,t.Gheupturncyrillic=1168,t.Ghook=403,t.Gimarmenian=1331,t.Gjecyrillic=1027,t.Gmacron=7712,t.Gmonospace=65319,t.Grave=63182,t.Gravesmall=63328,t.Gsmall=63335,t.Gsmallhook=667,t.Gstroke=484,t.H=72,t.H18533=9679,t.H18543=9642,t.H18551=9643,t.H22073=9633,t.HPsquare=13259,t.Haabkhasiancyrillic=1192,t.Hadescendercyrillic=1202,t.Hardsigncyrillic=1066,t.Hbar=294,t.Hbrevebelow=7722,t.Hcedilla=7720,t.Hcircle=9405,t.Hcircumflex=292,t.Hdieresis=7718,t.Hdotaccent=7714,t.Hdotbelow=7716,t.Hmonospace=65320,t.Hoarmenian=1344,t.Horicoptic=1e3,t.Hsmall=63336,t.Hungarumlaut=63183,t.Hungarumlautsmall=63224,t.Hzsquare=13200,t.I=73,t.IAcyrillic=1071,t.IJ=306,t.IUcyrillic=1070,t.Iacute=205,t.Iacutesmall=63469,t.Ibreve=300,t.Icaron=463,t.Icircle=9406,t.Icircumflex=206,t.Icircumflexsmall=63470,t.Icyrillic=1030,t.Idblgrave=520,t.Idieresis=207,t.Idieresisacute=7726,t.Idieresiscyrillic=1252,t.Idieresissmall=63471,t.Idot=304,t.Idotaccent=304,t.Idotbelow=7882,t.Iebrevecyrillic=1238,t.Iecyrillic=1045,t.Ifraktur=8465,t.Igrave=204,t.Igravesmall=63468,t.Ihookabove=7880,t.Iicyrillic=1048,t.Iinvertedbreve=522,t.Iishortcyrillic=1049,t.Imacron=298,t.Imacroncyrillic=1250,t.Imonospace=65321,t.Iniarmenian=1339,t.Iocyrillic=1025,t.Iogonek=302,t.Iota=921,t.Iotaafrican=406,t.Iotadieresis=938,t.Iotatonos=906,t.Ismall=63337,t.Istroke=407,t.Itilde=296,t.Itildebelow=7724,t.Izhitsacyrillic=1140,t.Izhitsadblgravecyrillic=1142,t.J=74,t.Jaarmenian=1345,t.Jcircle=9407,t.Jcircumflex=308,t.Jecyrillic=1032,t.Jheharmenian=1355,t.Jmonospace=65322,t.Jsmall=63338,t.K=75,t.KBsquare=13189,t.KKsquare=13261,t.Kabashkircyrillic=1184,t.Kacute=7728,t.Kacyrillic=1050,t.Kadescendercyrillic=1178,t.Kahookcyrillic=1219,t.Kappa=922,t.Kastrokecyrillic=1182,t.Kaverticalstrokecyrillic=1180,t.Kcaron=488,t.Kcedilla=310,t.Kcircle=9408,t.Kcommaaccent=310,t.Kdotbelow=7730,t.Keharmenian=1364,t.Kenarmenian=1343,t.Khacyrillic=1061,t.Kheicoptic=998,t.Khook=408,t.Kjecyrillic=1036,t.Klinebelow=7732,t.Kmonospace=65323,t.Koppacyrillic=1152,t.Koppagreek=990,t.Ksicyrillic=1134,t.Ksmall=63339,t.L=76,t.LJ=455,t.LL=63167,t.Lacute=313,t.Lambda=923,t.Lcaron=317,t.Lcedilla=315,t.Lcircle=9409,t.Lcircumflexbelow=7740,t.Lcommaaccent=315,t.Ldot=319,t.Ldotaccent=319,t.Ldotbelow=7734,t.Ldotbelowmacron=7736,t.Liwnarmenian=1340,t.Lj=456,t.Ljecyrillic=1033,t.Llinebelow=7738,t.Lmonospace=65324,t.Lslash=321,t.Lslashsmall=63225,t.Lsmall=63340,t.M=77,t.MBsquare=13190,t.Macron=63184,t.Macronsmall=63407,t.Macute=7742,t.Mcircle=9410,t.Mdotaccent=7744,t.Mdotbelow=7746,t.Menarmenian=1348,t.Mmonospace=65325,t.Msmall=63341,t.Mturned=412,t.Mu=924,t.N=78,t.NJ=458,t.Nacute=323,t.Ncaron=327,t.Ncedilla=325,t.Ncircle=9411,t.Ncircumflexbelow=7754,t.Ncommaaccent=325,t.Ndotaccent=7748,t.Ndotbelow=7750,t.Nhookleft=413,t.Nineroman=8552,t.Nj=459,t.Njecyrillic=1034,t.Nlinebelow=7752,t.Nmonospace=65326,t.Nowarmenian=1350,t.Nsmall=63342,t.Ntilde=209,t.Ntildesmall=63473,t.Nu=925,t.O=79,t.OE=338,t.OEsmall=63226,t.Oacute=211,t.Oacutesmall=63475,t.Obarredcyrillic=1256,t.Obarreddieresiscyrillic=1258,t.Obreve=334,t.Ocaron=465,t.Ocenteredtilde=415,t.Ocircle=9412,t.Ocircumflex=212,t.Ocircumflexacute=7888,t.Ocircumflexdotbelow=7896,t.Ocircumflexgrave=7890,t.Ocircumflexhookabove=7892,t.Ocircumflexsmall=63476,t.Ocircumflextilde=7894,t.Ocyrillic=1054,t.Odblacute=336,t.Odblgrave=524,t.Odieresis=214,t.Odieresiscyrillic=1254,t.Odieresissmall=63478,t.Odotbelow=7884,t.Ogoneksmall=63227,t.Ograve=210,t.Ogravesmall=63474,t.Oharmenian=1365,t.Ohm=8486,t.Ohookabove=7886,t.Ohorn=416,t.Ohornacute=7898,t.Ohorndotbelow=7906,t.Ohorngrave=7900,t.Ohornhookabove=7902,t.Ohorntilde=7904,t.Ohungarumlaut=336,t.Oi=418,t.Oinvertedbreve=526,t.Omacron=332,t.Omacronacute=7762,t.Omacrongrave=7760,t.Omega=8486,t.Omegacyrillic=1120,t.Omegagreek=937,t.Omegaroundcyrillic=1146,t.Omegatitlocyrillic=1148,t.Omegatonos=911,t.Omicron=927,t.Omicrontonos=908,t.Omonospace=65327,t.Oneroman=8544,t.Oogonek=490,t.Oogonekmacron=492,t.Oopen=390,t.Oslash=216,t.Oslashacute=510,t.Oslashsmall=63480,t.Osmall=63343,t.Ostrokeacute=510,t.Otcyrillic=1150,t.Otilde=213,t.Otildeacute=7756,t.Otildedieresis=7758,t.Otildesmall=63477,t.P=80,t.Pacute=7764,t.Pcircle=9413,t.Pdotaccent=7766,t.Pecyrillic=1055,t.Peharmenian=1354,t.Pemiddlehookcyrillic=1190,t.Phi=934,t.Phook=420,t.Pi=928,t.Piwrarmenian=1363,t.Pmonospace=65328,t.Psi=936,t.Psicyrillic=1136,t.Psmall=63344,t.Q=81,t.Qcircle=9414,t.Qmonospace=65329,t.Qsmall=63345,t.R=82,t.Raarmenian=1356,t.Racute=340,t.Rcaron=344,t.Rcedilla=342,t.Rcircle=9415,t.Rcommaaccent=342,t.Rdblgrave=528,t.Rdotaccent=7768,t.Rdotbelow=7770,t.Rdotbelowmacron=7772,t.Reharmenian=1360,t.Rfraktur=8476,t.Rho=929,t.Ringsmall=63228,t.Rinvertedbreve=530,t.Rlinebelow=7774,t.Rmonospace=65330,t.Rsmall=63346,t.Rsmallinverted=641,t.Rsmallinvertedsuperior=694,t.S=83,t.SF010000=9484,t.SF020000=9492,t.SF030000=9488,t.SF040000=9496,t.SF050000=9532,t.SF060000=9516,t.SF070000=9524,t.SF080000=9500,t.SF090000=9508,t.SF100000=9472,t.SF110000=9474,t.SF190000=9569,t.SF200000=9570,t.SF210000=9558,t.SF220000=9557,t.SF230000=9571,t.SF240000=9553,t.SF250000=9559,t.SF260000=9565,t.SF270000=9564,t.SF280000=9563,t.SF360000=9566,t.SF370000=9567,t.SF380000=9562,t.SF390000=9556,t.SF400000=9577,t.SF410000=9574,t.SF420000=9568,t.SF430000=9552,t.SF440000=9580,t.SF450000=9575,t.SF460000=9576,t.SF470000=9572,t.SF480000=9573,t.SF490000=9561,t.SF500000=9560,t.SF510000=9554,t.SF520000=9555,t.SF530000=9579,t.SF540000=9578,t.Sacute=346,t.Sacutedotaccent=7780,t.Sampigreek=992,t.Scaron=352,t.Scarondotaccent=7782,t.Scaronsmall=63229,t.Scedilla=350,t.Schwa=399,t.Schwacyrillic=1240,t.Schwadieresiscyrillic=1242,t.Scircle=9416,t.Scircumflex=348,t.Scommaaccent=536,t.Sdotaccent=7776,t.Sdotbelow=7778,t.Sdotbelowdotaccent=7784,t.Seharmenian=1357,t.Sevenroman=8550,t.Shaarmenian=1351,t.Shacyrillic=1064,t.Shchacyrillic=1065,t.Sheicoptic=994,t.Shhacyrillic=1210,t.Shimacoptic=1004,t.Sigma=931,t.Sixroman=8549,t.Smonospace=65331,t.Softsigncyrillic=1068,t.Ssmall=63347,t.Stigmagreek=986,t.T=84,t.Tau=932,t.Tbar=358,t.Tcaron=356,t.Tcedilla=354,t.Tcircle=9417,t.Tcircumflexbelow=7792,t.Tcommaaccent=354,t.Tdotaccent=7786,t.Tdotbelow=7788,t.Tecyrillic=1058,t.Tedescendercyrillic=1196,t.Tenroman=8553,t.Tetsecyrillic=1204,t.Theta=920,t.Thook=428,t.Thorn=222,t.Thornsmall=63486,t.Threeroman=8546,t.Tildesmall=63230,t.Tiwnarmenian=1359,t.Tlinebelow=7790,t.Tmonospace=65332,t.Toarmenian=1337,t.Tonefive=444,t.Tonesix=388,t.Tonetwo=423,t.Tretroflexhook=430,t.Tsecyrillic=1062,t.Tshecyrillic=1035,t.Tsmall=63348,t.Twelveroman=8555,t.Tworoman=8545,t.U=85,t.Uacute=218,t.Uacutesmall=63482,t.Ubreve=364,t.Ucaron=467,t.Ucircle=9418,t.Ucircumflex=219,t.Ucircumflexbelow=7798,t.Ucircumflexsmall=63483,t.Ucyrillic=1059,t.Udblacute=368,t.Udblgrave=532,t.Udieresis=220,t.Udieresisacute=471,t.Udieresisbelow=7794,t.Udieresiscaron=473,t.Udieresiscyrillic=1264,t.Udieresisgrave=475,t.Udieresismacron=469,t.Udieresissmall=63484,t.Udotbelow=7908,t.Ugrave=217,t.Ugravesmall=63481,t.Uhookabove=7910,t.Uhorn=431,t.Uhornacute=7912,t.Uhorndotbelow=7920,t.Uhorngrave=7914,t.Uhornhookabove=7916,t.Uhorntilde=7918,t.Uhungarumlaut=368,t.Uhungarumlautcyrillic=1266,t.Uinvertedbreve=534,t.Ukcyrillic=1144,t.Umacron=362,t.Umacroncyrillic=1262,t.Umacrondieresis=7802,t.Umonospace=65333,t.Uogonek=370,t.Upsilon=933,t.Upsilon1=978,t.Upsilonacutehooksymbolgreek=979,t.Upsilonafrican=433,t.Upsilondieresis=939,t.Upsilondieresishooksymbolgreek=980,t.Upsilonhooksymbol=978,t.Upsilontonos=910,t.Uring=366,t.Ushortcyrillic=1038,t.Usmall=63349,t.Ustraightcyrillic=1198,t.Ustraightstrokecyrillic=1200,t.Utilde=360,t.Utildeacute=7800,t.Utildebelow=7796,t.V=86,t.Vcircle=9419,t.Vdotbelow=7806,t.Vecyrillic=1042,t.Vewarmenian=1358,t.Vhook=434,t.Vmonospace=65334,t.Voarmenian=1352,t.Vsmall=63350,t.Vtilde=7804,t.W=87,t.Wacute=7810,t.Wcircle=9420,t.Wcircumflex=372,t.Wdieresis=7812,t.Wdotaccent=7814,t.Wdotbelow=7816,t.Wgrave=7808,t.Wmonospace=65335,t.Wsmall=63351,t.X=88,t.Xcircle=9421,t.Xdieresis=7820,t.Xdotaccent=7818,t.Xeharmenian=1341,t.Xi=926,t.Xmonospace=65336,t.Xsmall=63352,t.Y=89,t.Yacute=221,t.Yacutesmall=63485,t.Yatcyrillic=1122,t.Ycircle=9422,t.Ycircumflex=374,t.Ydieresis=376,t.Ydieresissmall=63487,t.Ydotaccent=7822,t.Ydotbelow=7924,t.Yericyrillic=1067,t.Yerudieresiscyrillic=1272,t.Ygrave=7922,t.Yhook=435,t.Yhookabove=7926,t.Yiarmenian=1349,t.Yicyrillic=1031,t.Yiwnarmenian=1362,t.Ymonospace=65337,t.Ysmall=63353,t.Ytilde=7928,t.Yusbigcyrillic=1130,t.Yusbigiotifiedcyrillic=1132,t.Yuslittlecyrillic=1126,t.Yuslittleiotifiedcyrillic=1128,t.Z=90,t.Zaarmenian=1334,t.Zacute=377,t.Zcaron=381,t.Zcaronsmall=63231,t.Zcircle=9423,t.Zcircumflex=7824,t.Zdot=379,t.Zdotaccent=379,t.Zdotbelow=7826,t.Zecyrillic=1047,t.Zedescendercyrillic=1176,t.Zedieresiscyrillic=1246,t.Zeta=918,t.Zhearmenian=1338,t.Zhebrevecyrillic=1217,t.Zhecyrillic=1046,t.Zhedescendercyrillic=1174,t.Zhedieresiscyrillic=1244,t.Zlinebelow=7828,t.Zmonospace=65338,t.Zsmall=63354,t.Zstroke=437,t.a=97,t.aabengali=2438,t.aacute=225,t.aadeva=2310,t.aagujarati=2694,t.aagurmukhi=2566,t.aamatragurmukhi=2622,t.aarusquare=13059,t.aavowelsignbengali=2494,t.aavowelsigndeva=2366,t.aavowelsigngujarati=2750,t.abbreviationmarkarmenian=1375,t.abbreviationsigndeva=2416,t.abengali=2437,t.abopomofo=12570,t.abreve=259,t.abreveacute=7855,t.abrevecyrillic=1233,t.abrevedotbelow=7863,t.abrevegrave=7857,t.abrevehookabove=7859,t.abrevetilde=7861,t.acaron=462,t.acircle=9424,t.acircumflex=226,t.acircumflexacute=7845,t.acircumflexdotbelow=7853,t.acircumflexgrave=7847,t.acircumflexhookabove=7849,t.acircumflextilde=7851,t.acute=180,t.acutebelowcmb=791,t.acutecmb=769,t.acutecomb=769,t.acutedeva=2388,t.acutelowmod=719,t.acutetonecmb=833,t.acyrillic=1072,t.adblgrave=513,t.addakgurmukhi=2673,t.adeva=2309,t.adieresis=228,t.adieresiscyrillic=1235,t.adieresismacron=479,t.adotbelow=7841,t.adotmacron=481,t.ae=230,t.aeacute=509,t.aekorean=12624,t.aemacron=483,t.afii00208=8213,t.afii08941=8356,t.afii10017=1040,t.afii10018=1041,t.afii10019=1042,t.afii10020=1043,t.afii10021=1044,t.afii10022=1045,t.afii10023=1025,t.afii10024=1046,t.afii10025=1047,t.afii10026=1048,t.afii10027=1049,t.afii10028=1050,t.afii10029=1051,t.afii10030=1052;t.afii10031=1053,t.afii10032=1054,t.afii10033=1055,t.afii10034=1056,t.afii10035=1057,t.afii10036=1058,t.afii10037=1059,t.afii10038=1060,t.afii10039=1061,t.afii10040=1062,t.afii10041=1063,t.afii10042=1064,t.afii10043=1065,t.afii10044=1066,t.afii10045=1067,t.afii10046=1068,t.afii10047=1069,t.afii10048=1070,t.afii10049=1071,t.afii10050=1168,t.afii10051=1026,t.afii10052=1027,t.afii10053=1028,t.afii10054=1029,t.afii10055=1030,t.afii10056=1031,t.afii10057=1032,t.afii10058=1033,t.afii10059=1034,t.afii10060=1035,t.afii10061=1036,t.afii10062=1038,t.afii10063=63172,t.afii10064=63173,t.afii10065=1072,t.afii10066=1073,t.afii10067=1074,t.afii10068=1075,t.afii10069=1076,t.afii10070=1077,t.afii10071=1105,t.afii10072=1078,t.afii10073=1079,t.afii10074=1080,t.afii10075=1081,t.afii10076=1082,t.afii10077=1083,t.afii10078=1084,t.afii10079=1085,t.afii10080=1086,t.afii10081=1087,t.afii10082=1088,t.afii10083=1089,t.afii10084=1090,t.afii10085=1091,t.afii10086=1092,t.afii10087=1093,t.afii10088=1094,t.afii10089=1095,t.afii10090=1096,t.afii10091=1097,t.afii10092=1098,t.afii10093=1099,t.afii10094=1100,t.afii10095=1101,t.afii10096=1102,t.afii10097=1103,t.afii10098=1169,t.afii10099=1106,t.afii10100=1107,t.afii10101=1108,t.afii10102=1109,t.afii10103=1110,t.afii10104=1111,t.afii10105=1112,t.afii10106=1113,t.afii10107=1114,t.afii10108=1115,t.afii10109=1116,t.afii10110=1118,t.afii10145=1039,t.afii10146=1122,t.afii10147=1138,t.afii10148=1140,t.afii10192=63174,t.afii10193=1119,t.afii10194=1123,t.afii10195=1139,t.afii10196=1141,t.afii10831=63175,t.afii10832=63176,t.afii10846=1241,t.afii299=8206,t.afii300=8207,t.afii301=8205,t.afii57381=1642,t.afii57388=1548,t.afii57392=1632,t.afii57393=1633,t.afii57394=1634,t.afii57395=1635,t.afii57396=1636,t.afii57397=1637,t.afii57398=1638,t.afii57399=1639,t.afii57400=1640,t.afii57401=1641,t.afii57403=1563,t.afii57407=1567,t.afii57409=1569,t.afii57410=1570,t.afii57411=1571,t.afii57412=1572,t.afii57413=1573,t.afii57414=1574,t.afii57415=1575,t.afii57416=1576,t.afii57417=1577,t.afii57418=1578,t.afii57419=1579,t.afii57420=1580,t.afii57421=1581,t.afii57422=1582,t.afii57423=1583,t.afii57424=1584,t.afii57425=1585,t.afii57426=1586,t.afii57427=1587,t.afii57428=1588,t.afii57429=1589,t.afii57430=1590,t.afii57431=1591,t.afii57432=1592,t.afii57433=1593,t.afii57434=1594,t.afii57440=1600,t.afii57441=1601,t.afii57442=1602,t.afii57443=1603,t.afii57444=1604,t.afii57445=1605,t.afii57446=1606,t.afii57448=1608,t.afii57449=1609,t.afii57450=1610,t.afii57451=1611,t.afii57452=1612,t.afii57453=1613,t.afii57454=1614,t.afii57455=1615,t.afii57456=1616,t.afii57457=1617,t.afii57458=1618,t.afii57470=1607,t.afii57505=1700,t.afii57506=1662,t.afii57507=1670,t.afii57508=1688,t.afii57509=1711,t.afii57511=1657,t.afii57512=1672,t.afii57513=1681,t.afii57514=1722,t.afii57519=1746,t.afii57534=1749,t.afii57636=8362,t.afii57645=1470,t.afii57658=1475,t.afii57664=1488,t.afii57665=1489,t.afii57666=1490,t.afii57667=1491,t.afii57668=1492,t.afii57669=1493,t.afii57670=1494,t.afii57671=1495,t.afii57672=1496,t.afii57673=1497,t.afii57674=1498,t.afii57675=1499,t.afii57676=1500,t.afii57677=1501,t.afii57678=1502,t.afii57679=1503,t.afii57680=1504,t.afii57681=1505,t.afii57682=1506,t.afii57683=1507,t.afii57684=1508,t.afii57685=1509,t.afii57686=1510,t.afii57687=1511,t.afii57688=1512,t.afii57689=1513,t.afii57690=1514,t.afii57694=64298,t.afii57695=64299,t.afii57700=64331,t.afii57705=64287,t.afii57716=1520,t.afii57717=1521,t.afii57718=1522,t.afii57723=64309,t.afii57793=1460,t.afii57794=1461,t.afii57795=1462,t.afii57796=1467,t.afii57797=1464,t.afii57798=1463,t.afii57799=1456,t.afii57800=1458,t.afii57801=1457,t.afii57802=1459,t.afii57803=1474,t.afii57804=1473,t.afii57806=1465,t.afii57807=1468,t.afii57839=1469,t.afii57841=1471,t.afii57842=1472,t.afii57929=700,t.afii61248=8453,t.afii61289=8467,t.afii61352=8470,t.afii61573=8236,t.afii61574=8237,t.afii61575=8238,t.afii61664=8204,t.afii63167=1645,t.afii64937=701,t.agrave=224,t.agujarati=2693,t.agurmukhi=2565,t.ahiragana=12354,t.ahookabove=7843,t.aibengali=2448,t.aibopomofo=12574,t.aideva=2320,t.aiecyrillic=1237,t.aigujarati=2704,t.aigurmukhi=2576,t.aimatragurmukhi=2632,t.ainarabic=1593,t.ainfinalarabic=65226,t.aininitialarabic=65227,t.ainmedialarabic=65228,t.ainvertedbreve=515,t.aivowelsignbengali=2504,t.aivowelsigndeva=2376,t.aivowelsigngujarati=2760,t.akatakana=12450,t.akatakanahalfwidth=65393,t.akorean=12623,t.alef=1488,t.alefarabic=1575,t.alefdageshhebrew=64304,t.aleffinalarabic=65166,t.alefhamzaabovearabic=1571,t.alefhamzaabovefinalarabic=65156,t.alefhamzabelowarabic=1573,t.alefhamzabelowfinalarabic=65160,t.alefhebrew=1488,t.aleflamedhebrew=64335,t.alefmaddaabovearabic=1570,t.alefmaddaabovefinalarabic=65154,t.alefmaksuraarabic=1609,t.alefmaksurafinalarabic=65264,t.alefmaksurainitialarabic=65267,t.alefmaksuramedialarabic=65268,t.alefpatahhebrew=64302,t.alefqamatshebrew=64303,t.aleph=8501,t.allequal=8780,t.alpha=945,t.alphatonos=940,t.amacron=257,t.amonospace=65345,t.ampersand=38,t.ampersandmonospace=65286,t.ampersandsmall=63270,t.amsquare=13250,t.anbopomofo=12578,t.angbopomofo=12580,t.angbracketleft=12296,t.angbracketright=12297,t.angkhankhuthai=3674,t.angle=8736,t.anglebracketleft=12296,t.anglebracketleftvertical=65087,t.anglebracketright=12297,t.anglebracketrightvertical=65088,t.angleleft=9001,t.angleright=9002,t.angstrom=8491,t.anoteleia=903,t.anudattadeva=2386,t.anusvarabengali=2434,t.anusvaradeva=2306,t.anusvaragujarati=2690,t.aogonek=261,t.apaatosquare=13056,t.aparen=9372,t.apostrophearmenian=1370,t.apostrophemod=700,t.apple=63743,t.approaches=8784,t.approxequal=8776,t.approxequalorimage=8786,t.approximatelyequal=8773,t.araeaekorean=12686,t.araeakorean=12685,t.arc=8978,t.arighthalfring=7834,t.aring=229,t.aringacute=507,t.aringbelow=7681,t.arrowboth=8596,t.arrowdashdown=8675,t.arrowdashleft=8672,t.arrowdashright=8674,t.arrowdashup=8673,t.arrowdblboth=8660,t.arrowdbldown=8659,t.arrowdblleft=8656,t.arrowdblright=8658,t.arrowdblup=8657,t.arrowdown=8595,t.arrowdownleft=8601,t.arrowdownright=8600,t.arrowdownwhite=8681,t.arrowheaddownmod=709,t.arrowheadleftmod=706,t.arrowheadrightmod=707,t.arrowheadupmod=708,t.arrowhorizex=63719,t.arrowleft=8592,t.arrowleftdbl=8656,t.arrowleftdblstroke=8653,t.arrowleftoverright=8646,t.arrowleftwhite=8678,t.arrowright=8594,t.arrowrightdblstroke=8655,t.arrowrightheavy=10142,t.arrowrightoverleft=8644,t.arrowrightwhite=8680,t.arrowtableft=8676,t.arrowtabright=8677,t.arrowup=8593,t.arrowupdn=8597,t.arrowupdnbse=8616,t.arrowupdownbase=8616,t.arrowupleft=8598,t.arrowupleftofdown=8645,t.arrowupright=8599,t.arrowupwhite=8679,t.arrowvertex=63718,t.asciicircum=94,t.asciicircummonospace=65342,t.asciitilde=126,t.asciitildemonospace=65374,t.ascript=593,t.ascriptturned=594,t.asmallhiragana=12353,t.asmallkatakana=12449,t.asmallkatakanahalfwidth=65383,t.asterisk=42,t.asteriskaltonearabic=1645,t.asteriskarabic=1645,t.asteriskmath=8727,t.asteriskmonospace=65290,t.asterisksmall=65121,t.asterism=8258,t.asuperior=63209,t.asymptoticallyequal=8771,t.at=64,t.atilde=227,t.atmonospace=65312,t.atsmall=65131,t.aturned=592,t.aubengali=2452,t.aubopomofo=12576,t.audeva=2324,t.augujarati=2708,t.augurmukhi=2580,t.aulengthmarkbengali=2519,t.aumatragurmukhi=2636,t.auvowelsignbengali=2508,t.auvowelsigndeva=2380,t.auvowelsigngujarati=2764,t.avagrahadeva=2365,t.aybarmenian=1377,t.ayin=1506,t.ayinaltonehebrew=64288,t.ayinhebrew=1506,t.b=98,t.babengali=2476,t.backslash=92,t.backslashmonospace=65340,t.badeva=2348,t.bagujarati=2732,t.bagurmukhi=2604,t.bahiragana=12400,t.bahtthai=3647,t.bakatakana=12496,t.bar=124,t.barmonospace=65372,t.bbopomofo=12549,t.bcircle=9425,t.bdotaccent=7683,t.bdotbelow=7685,t.beamedsixteenthnotes=9836,t.because=8757,t.becyrillic=1073,t.beharabic=1576,t.behfinalarabic=65168,t.behinitialarabic=65169,t.behiragana=12409,t.behmedialarabic=65170,t.behmeeminitialarabic=64671,t.behmeemisolatedarabic=64520,t.behnoonfinalarabic=64621,t.bekatakana=12505,t.benarmenian=1378,t.bet=1489,t.beta=946,t.betasymbolgreek=976,t.betdagesh=64305,t.betdageshhebrew=64305,t.bethebrew=1489,t.betrafehebrew=64332,t.bhabengali=2477,t.bhadeva=2349,t.bhagujarati=2733,t.bhagurmukhi=2605,t.bhook=595,t.bihiragana=12403,t.bikatakana=12499,t.bilabialclick=664,t.bindigurmukhi=2562,t.birusquare=13105,t.blackcircle=9679,t.blackdiamond=9670,t.blackdownpointingtriangle=9660,t.blackleftpointingpointer=9668,t.blackleftpointingtriangle=9664,t.blacklenticularbracketleft=12304,t.blacklenticularbracketleftvertical=65083,t.blacklenticularbracketright=12305,t.blacklenticularbracketrightvertical=65084,t.blacklowerlefttriangle=9699,t.blacklowerrighttriangle=9698,t.blackrectangle=9644,t.blackrightpointingpointer=9658,t.blackrightpointingtriangle=9654,t.blacksmallsquare=9642,t.blacksmilingface=9787,t.blacksquare=9632,t.blackstar=9733,t.blackupperlefttriangle=9700,t.blackupperrighttriangle=9701,t.blackuppointingsmalltriangle=9652,t.blackuppointingtriangle=9650,t.blank=9251,t.blinebelow=7687,t.block=9608,t.bmonospace=65346,t.bobaimaithai=3610,t.bohiragana=12412,t.bokatakana=12508,t.bparen=9373,t.bqsquare=13251,t.braceex=63732,t.braceleft=123,t.braceleftbt=63731,t.braceleftmid=63730,t.braceleftmonospace=65371,t.braceleftsmall=65115,t.bracelefttp=63729,t.braceleftvertical=65079,t.braceright=125,t.bracerightbt=63742,t.bracerightmid=63741,t.bracerightmonospace=65373,t.bracerightsmall=65116,t.bracerighttp=63740,t.bracerightvertical=65080,t.bracketleft=91,t.bracketleftbt=63728,t.bracketleftex=63727,t.bracketleftmonospace=65339,t.bracketlefttp=63726,t.bracketright=93,t.bracketrightbt=63739,t.bracketrightex=63738,t.bracketrightmonospace=65341,t.bracketrighttp=63737,t.breve=728,t.brevebelowcmb=814,t.brevecmb=774,t.breveinvertedbelowcmb=815,t.breveinvertedcmb=785,t.breveinverteddoublecmb=865,t.bridgebelowcmb=810,t.bridgeinvertedbelowcmb=826,t.brokenbar=166,t.bstroke=384,t.bsuperior=63210,t.btopbar=387,t.buhiragana=12406,t.bukatakana=12502,t.bullet=8226,t.bulletinverse=9688,t.bulletoperator=8729,t.bullseye=9678,t.c=99,t.caarmenian=1390,t.cabengali=2458,t.cacute=263,t.cadeva=2330,t.cagujarati=2714,t.cagurmukhi=2586,t.calsquare=13192,t.candrabindubengali=2433,t.candrabinducmb=784,t.candrabindudeva=2305,t.candrabindugujarati=2689,t.capslock=8682,t.careof=8453,t.caron=711,t.caronbelowcmb=812,t.caroncmb=780,t.carriagereturn=8629,t.cbopomofo=12568,t.ccaron=269,t.ccedilla=231,t.ccedillaacute=7689,t.ccircle=9426,t.ccircumflex=265,t.ccurl=597,t.cdot=267,t.cdotaccent=267,t.cdsquare=13253,t.cedilla=184,t.cedillacmb=807,t.cent=162,t.centigrade=8451,t.centinferior=63199,t.centmonospace=65504,t.centoldstyle=63394,t.centsuperior=63200,t.chaarmenian=1401,t.chabengali=2459,t.chadeva=2331,t.chagujarati=2715,t.chagurmukhi=2587,t.chbopomofo=12564,t.cheabkhasiancyrillic=1213,t.checkmark=10003,t.checyrillic=1095,t.chedescenderabkhasiancyrillic=1215,t.chedescendercyrillic=1207,t.chedieresiscyrillic=1269,t.cheharmenian=1395,t.chekhakassiancyrillic=1228,t.cheverticalstrokecyrillic=1209,t.chi=967,t.chieuchacirclekorean=12919,t.chieuchaparenkorean=12823,t.chieuchcirclekorean=12905,t.chieuchkorean=12618,t.chieuchparenkorean=12809,t.chochangthai=3594,t.chochanthai=3592,t.chochingthai=3593,t.chochoethai=3596,t.chook=392,t.cieucacirclekorean=12918,t.cieucaparenkorean=12822,t.cieuccirclekorean=12904,t.cieuckorean=12616,t.cieucparenkorean=12808,t.cieucuparenkorean=12828,t.circle=9675,t.circlecopyrt=169,t.circlemultiply=8855,t.circleot=8857,t.circleplus=8853,t.circlepostalmark=12342,t.circlewithlefthalfblack=9680,t.circlewithrighthalfblack=9681,t.circumflex=710,t.circumflexbelowcmb=813,t.circumflexcmb=770,t.clear=8999,t.clickalveolar=450,t.clickdental=448,t.clicklateral=449,t.clickretroflex=451,t.club=9827,t.clubsuitblack=9827,t.clubsuitwhite=9831,t.cmcubedsquare=13220,t.cmonospace=65347,t.cmsquaredsquare=13216,t.coarmenian=1409,t.colon=58,t.colonmonetary=8353,t.colonmonospace=65306,t.colonsign=8353,t.colonsmall=65109,t.colontriangularhalfmod=721,t.colontriangularmod=720,t.comma=44,t.commaabovecmb=787,t.commaaboverightcmb=789,t.commaaccent=63171,t.commaarabic=1548,t.commaarmenian=1373,t.commainferior=63201,t.commamonospace=65292,t.commareversedabovecmb=788,t.commareversedmod=701,t.commasmall=65104,t.commasuperior=63202,t.commaturnedabovecmb=786,t.commaturnedmod=699,t.compass=9788,t.congruent=8773,t.contourintegral=8750,t.control=8963,t.controlACK=6,t.controlBEL=7,t.controlBS=8,t.controlCAN=24,t.controlCR=13,t.controlDC1=17,t.controlDC2=18,t.controlDC3=19,t.controlDC4=20,t.controlDEL=127,t.controlDLE=16,t.controlEM=25,t.controlENQ=5,t.controlEOT=4,t.controlESC=27,t.controlETB=23,t.controlETX=3,t.controlFF=12,t.controlFS=28,t.controlGS=29,t.controlHT=9,t.controlLF=10,t.controlNAK=21,t.controlNULL=0,t.controlRS=30,t.controlSI=15,t.controlSO=14,t.controlSOT=2,t.controlSTX=1,t.controlSUB=26,t.controlSYN=22,t.controlUS=31,t.controlVT=11,t.copyright=169,t.copyrightsans=63721,t.copyrightserif=63193,t.cornerbracketleft=12300,t.cornerbracketlefthalfwidth=65378,t.cornerbracketleftvertical=65089,t.cornerbracketright=12301,t.cornerbracketrighthalfwidth=65379,t.cornerbracketrightvertical=65090,t.corporationsquare=13183,t.cosquare=13255,t.coverkgsquare=13254,t.cparen=9374,t.cruzeiro=8354,t.cstretched=663,t.curlyand=8911,t.curlyor=8910,t.currency=164,t.cyrBreve=63185,t.cyrFlex=63186,t.cyrbreve=63188,t.cyrflex=63189,t.d=100,t.daarmenian=1380,t.dabengali=2470,t.dadarabic=1590,t.dadeva=2342,t.dadfinalarabic=65214,t.dadinitialarabic=65215,t.dadmedialarabic=65216,t.dagesh=1468,t.dageshhebrew=1468,t.dagger=8224,t.daggerdbl=8225,t.dagujarati=2726,t.dagurmukhi=2598,t.dahiragana=12384,t.dakatakana=12480,t.dalarabic=1583,t.dalet=1491,t.daletdagesh=64307,t.daletdageshhebrew=64307,t.dalethebrew=1491,t.dalfinalarabic=65194,t.dammaarabic=1615,t.dammalowarabic=1615,t.dammatanaltonearabic=1612,t.dammatanarabic=1612,t.danda=2404,t.dargahebrew=1447,t.dargalefthebrew=1447,t.dasiapneumatacyrilliccmb=1157,t.dblGrave=63187,t.dblanglebracketleft=12298,t.dblanglebracketleftvertical=65085,t.dblanglebracketright=12299,t.dblanglebracketrightvertical=65086,t.dblarchinvertedbelowcmb=811,t.dblarrowleft=8660,t.dblarrowright=8658,t.dbldanda=2405,t.dblgrave=63190,t.dblgravecmb=783,t.dblintegral=8748,t.dbllowline=8215,t.dbllowlinecmb=819,t.dbloverlinecmb=831,t.dblprimemod=698,t.dblverticalbar=8214,t.dblverticallineabovecmb=782,t.dbopomofo=12553,t.dbsquare=13256,t.dcaron=271,t.dcedilla=7697,t.dcircle=9427,t.dcircumflexbelow=7699,t.dcroat=273,t.ddabengali=2465,t.ddadeva=2337,t.ddagujarati=2721,t.ddagurmukhi=2593,t.ddalarabic=1672,t.ddalfinalarabic=64393,t.dddhadeva=2396,t.ddhabengali=2466,t.ddhadeva=2338,t.ddhagujarati=2722,t.ddhagurmukhi=2594,t.ddotaccent=7691,t.ddotbelow=7693,t.decimalseparatorarabic=1643,t.decimalseparatorpersian=1643,t.decyrillic=1076,t.degree=176,t.dehihebrew=1453,t.dehiragana=12391,t.deicoptic=1007,t.dekatakana=12487,t.deleteleft=9003,t.deleteright=8998,t.delta=948,t.deltaturned=397,t.denominatorminusonenumeratorbengali=2552,t.dezh=676,t.dhabengali=2471,t.dhadeva=2343,t.dhagujarati=2727,t.dhagurmukhi=2599,t.dhook=599,t.dialytikatonos=901,t.dialytikatonoscmb=836,t.diamond=9830,t.diamondsuitwhite=9826,t.dieresis=168,t.dieresisacute=63191,t.dieresisbelowcmb=804,t.dieresiscmb=776,t.dieresisgrave=63192,t.dieresistonos=901,t.dihiragana=12386,t.dikatakana=12482,t.dittomark=12291,t.divide=247,t.divides=8739,t.divisionslash=8725,t.djecyrillic=1106,t.dkshade=9619,t.dlinebelow=7695,t.dlsquare=13207,t.dmacron=273,t.dmonospace=65348,t.dnblock=9604,t.dochadathai=3598,t.dodekthai=3604,t.dohiragana=12393,t.dokatakana=12489,t.dollar=36;t.dollarinferior=63203,t.dollarmonospace=65284,t.dollaroldstyle=63268,t.dollarsmall=65129,t.dollarsuperior=63204,t.dong=8363,t.dorusquare=13094,t.dotaccent=729,t.dotaccentcmb=775,t.dotbelowcmb=803,t.dotbelowcomb=803,t.dotkatakana=12539,t.dotlessi=305,t.dotlessj=63166,t.dotlessjstrokehook=644,t.dotmath=8901,t.dottedcircle=9676,t.doubleyodpatah=64287,t.doubleyodpatahhebrew=64287,t.downtackbelowcmb=798,t.downtackmod=725,t.dparen=9375,t.dsuperior=63211,t.dtail=598,t.dtopbar=396,t.duhiragana=12389,t.dukatakana=12485,t.dz=499,t.dzaltone=675,t.dzcaron=454,t.dzcurl=677,t.dzeabkhasiancyrillic=1249,t.dzecyrillic=1109,t.dzhecyrillic=1119,t.e=101,t.eacute=233,t.earth=9793,t.ebengali=2447,t.ebopomofo=12572,t.ebreve=277,t.ecandradeva=2317,t.ecandragujarati=2701,t.ecandravowelsigndeva=2373,t.ecandravowelsigngujarati=2757,t.ecaron=283,t.ecedillabreve=7709,t.echarmenian=1381,t.echyiwnarmenian=1415,t.ecircle=9428,t.ecircumflex=234,t.ecircumflexacute=7871,t.ecircumflexbelow=7705,t.ecircumflexdotbelow=7879,t.ecircumflexgrave=7873,t.ecircumflexhookabove=7875,t.ecircumflextilde=7877,t.ecyrillic=1108,t.edblgrave=517,t.edeva=2319,t.edieresis=235,t.edot=279,t.edotaccent=279,t.edotbelow=7865,t.eegurmukhi=2575,t.eematragurmukhi=2631,t.efcyrillic=1092,t.egrave=232,t.egujarati=2703,t.eharmenian=1383,t.ehbopomofo=12573,t.ehiragana=12360,t.ehookabove=7867,t.eibopomofo=12575,t.eight=56,t.eightarabic=1640,t.eightbengali=2542,t.eightcircle=9319,t.eightcircleinversesansserif=10129,t.eightdeva=2414,t.eighteencircle=9329,t.eighteenparen=9349,t.eighteenperiod=9369,t.eightgujarati=2798,t.eightgurmukhi=2670,t.eighthackarabic=1640,t.eighthangzhou=12328,t.eighthnotebeamed=9835,t.eightideographicparen=12839,t.eightinferior=8328,t.eightmonospace=65304,t.eightoldstyle=63288,t.eightparen=9339,t.eightperiod=9359,t.eightpersian=1784,t.eightroman=8567,t.eightsuperior=8312,t.eightthai=3672,t.einvertedbreve=519,t.eiotifiedcyrillic=1125,t.ekatakana=12456,t.ekatakanahalfwidth=65396,t.ekonkargurmukhi=2676,t.ekorean=12628,t.elcyrillic=1083,t.element=8712,t.elevencircle=9322,t.elevenparen=9342,t.elevenperiod=9362,t.elevenroman=8570,t.ellipsis=8230,t.ellipsisvertical=8942,t.emacron=275,t.emacronacute=7703,t.emacrongrave=7701,t.emcyrillic=1084,t.emdash=8212,t.emdashvertical=65073,t.emonospace=65349,t.emphasismarkarmenian=1371,t.emptyset=8709,t.enbopomofo=12579,t.encyrillic=1085,t.endash=8211,t.endashvertical=65074,t.endescendercyrillic=1187,t.eng=331,t.engbopomofo=12581,t.enghecyrillic=1189,t.enhookcyrillic=1224,t.enspace=8194,t.eogonek=281,t.eokorean=12627,t.eopen=603,t.eopenclosed=666,t.eopenreversed=604,t.eopenreversedclosed=606,t.eopenreversedhook=605,t.eparen=9376,t.epsilon=949,t.epsilontonos=941,t.equal=61,t.equalmonospace=65309,t.equalsmall=65126,t.equalsuperior=8316,t.equivalence=8801,t.erbopomofo=12582,t.ercyrillic=1088,t.ereversed=600,t.ereversedcyrillic=1101,t.escyrillic=1089,t.esdescendercyrillic=1195,t.esh=643,t.eshcurl=646,t.eshortdeva=2318,t.eshortvowelsigndeva=2374,t.eshreversedloop=426,t.eshsquatreversed=645,t.esmallhiragana=12359,t.esmallkatakana=12455,t.esmallkatakanahalfwidth=65386,t.estimated=8494,t.esuperior=63212,t.eta=951,t.etarmenian=1384,t.etatonos=942,t.eth=240,t.etilde=7869,t.etildebelow=7707,t.etnahtafoukhhebrew=1425,t.etnahtafoukhlefthebrew=1425,t.etnahtahebrew=1425,t.etnahtalefthebrew=1425,t.eturned=477,t.eukorean=12641,t.euro=8364,t.evowelsignbengali=2503,t.evowelsigndeva=2375,t.evowelsigngujarati=2759,t.exclam=33,t.exclamarmenian=1372,t.exclamdbl=8252,t.exclamdown=161,t.exclamdownsmall=63393,t.exclammonospace=65281,t.exclamsmall=63265,t.existential=8707,t.ezh=658,t.ezhcaron=495,t.ezhcurl=659,t.ezhreversed=441,t.ezhtail=442,t.f=102,t.fadeva=2398,t.fagurmukhi=2654,t.fahrenheit=8457,t.fathaarabic=1614,t.fathalowarabic=1614,t.fathatanarabic=1611,t.fbopomofo=12552,t.fcircle=9429,t.fdotaccent=7711,t.feharabic=1601,t.feharmenian=1414,t.fehfinalarabic=65234,t.fehinitialarabic=65235,t.fehmedialarabic=65236,t.feicoptic=997,t.female=9792,t.ff=64256,t.f_f=64256,t.ffi=64259,t.f_f_i=64259,t.ffl=64260,t.f_f_l=64260,t.fi=64257,t.f_i=64257,t.fifteencircle=9326,t.fifteenparen=9346,t.fifteenperiod=9366,t.figuredash=8210,t.filledbox=9632,t.filledrect=9644,t.finalkaf=1498,t.finalkafdagesh=64314,t.finalkafdageshhebrew=64314,t.finalkafhebrew=1498,t.finalmem=1501,t.finalmemhebrew=1501,t.finalnun=1503,t.finalnunhebrew=1503,t.finalpe=1507,t.finalpehebrew=1507,t.finaltsadi=1509,t.finaltsadihebrew=1509,t.firsttonechinese=713,t.fisheye=9673,t.fitacyrillic=1139,t.five=53,t.fivearabic=1637,t.fivebengali=2539,t.fivecircle=9316,t.fivecircleinversesansserif=10126,t.fivedeva=2411,t.fiveeighths=8541,t.fivegujarati=2795,t.fivegurmukhi=2667,t.fivehackarabic=1637,t.fivehangzhou=12325,t.fiveideographicparen=12836,t.fiveinferior=8325,t.fivemonospace=65301,t.fiveoldstyle=63285,t.fiveparen=9336,t.fiveperiod=9356,t.fivepersian=1781,t.fiveroman=8564,t.fivesuperior=8309,t.fivethai=3669,t.fl=64258,t.f_l=64258,t.florin=402,t.fmonospace=65350,t.fmsquare=13209,t.fofanthai=3615,t.fofathai=3613,t.fongmanthai=3663,t.forall=8704,t.four=52,t.fourarabic=1636,t.fourbengali=2538,t.fourcircle=9315,t.fourcircleinversesansserif=10125,t.fourdeva=2410,t.fourgujarati=2794,t.fourgurmukhi=2666,t.fourhackarabic=1636,t.fourhangzhou=12324,t.fourideographicparen=12835,t.fourinferior=8324,t.fourmonospace=65300,t.fournumeratorbengali=2551,t.fouroldstyle=63284,t.fourparen=9335,t.fourperiod=9355,t.fourpersian=1780,t.fourroman=8563,t.foursuperior=8308,t.fourteencircle=9325,t.fourteenparen=9345,t.fourteenperiod=9365,t.fourthai=3668,t.fourthtonechinese=715,t.fparen=9377,t.fraction=8260,t.franc=8355,t.g=103,t.gabengali=2455,t.gacute=501,t.gadeva=2327,t.gafarabic=1711,t.gaffinalarabic=64403,t.gafinitialarabic=64404,t.gafmedialarabic=64405,t.gagujarati=2711,t.gagurmukhi=2583,t.gahiragana=12364,t.gakatakana=12460,t.gamma=947,t.gammalatinsmall=611,t.gammasuperior=736,t.gangiacoptic=1003,t.gbopomofo=12557,t.gbreve=287,t.gcaron=487,t.gcedilla=291,t.gcircle=9430,t.gcircumflex=285,t.gcommaaccent=291,t.gdot=289,t.gdotaccent=289,t.gecyrillic=1075,t.gehiragana=12370,t.gekatakana=12466,t.geometricallyequal=8785,t.gereshaccenthebrew=1436,t.gereshhebrew=1523,t.gereshmuqdamhebrew=1437,t.germandbls=223,t.gershayimaccenthebrew=1438,t.gershayimhebrew=1524,t.getamark=12307,t.ghabengali=2456,t.ghadarmenian=1394,t.ghadeva=2328,t.ghagujarati=2712,t.ghagurmukhi=2584,t.ghainarabic=1594,t.ghainfinalarabic=65230,t.ghaininitialarabic=65231,t.ghainmedialarabic=65232,t.ghemiddlehookcyrillic=1173,t.ghestrokecyrillic=1171,t.gheupturncyrillic=1169,t.ghhadeva=2394,t.ghhagurmukhi=2650,t.ghook=608,t.ghzsquare=13203,t.gihiragana=12366,t.gikatakana=12462,t.gimarmenian=1379,t.gimel=1490,t.gimeldagesh=64306,t.gimeldageshhebrew=64306,t.gimelhebrew=1490,t.gjecyrillic=1107,t.glottalinvertedstroke=446,t.glottalstop=660,t.glottalstopinverted=662,t.glottalstopmod=704,t.glottalstopreversed=661,t.glottalstopreversedmod=705,t.glottalstopreversedsuperior=740,t.glottalstopstroke=673,t.glottalstopstrokereversed=674,t.gmacron=7713,t.gmonospace=65351,t.gohiragana=12372,t.gokatakana=12468,t.gparen=9378,t.gpasquare=13228,t.gradient=8711,t.grave=96,t.gravebelowcmb=790,t.gravecmb=768,t.gravecomb=768,t.gravedeva=2387,t.gravelowmod=718,t.gravemonospace=65344,t.gravetonecmb=832,t.greater=62,t.greaterequal=8805,t.greaterequalorless=8923,t.greatermonospace=65310,t.greaterorequivalent=8819,t.greaterorless=8823,t.greateroverequal=8807,t.greatersmall=65125,t.gscript=609,t.gstroke=485,t.guhiragana=12368,t.guillemotleft=171,t.guillemotright=187,t.guilsinglleft=8249,t.guilsinglright=8250,t.gukatakana=12464,t.guramusquare=13080,t.gysquare=13257,t.h=104,t.haabkhasiancyrillic=1193,t.haaltonearabic=1729,t.habengali=2489,t.hadescendercyrillic=1203,t.hadeva=2361,t.hagujarati=2745,t.hagurmukhi=2617,t.haharabic=1581,t.hahfinalarabic=65186,t.hahinitialarabic=65187,t.hahiragana=12399,t.hahmedialarabic=65188,t.haitusquare=13098,t.hakatakana=12495,t.hakatakanahalfwidth=65418,t.halantgurmukhi=2637,t.hamzaarabic=1569,t.hamzalowarabic=1569,t.hangulfiller=12644,t.hardsigncyrillic=1098,t.harpoonleftbarbup=8636,t.harpoonrightbarbup=8640,t.hasquare=13258,t.hatafpatah=1458,t.hatafpatah16=1458,t.hatafpatah23=1458,t.hatafpatah2f=1458,t.hatafpatahhebrew=1458,t.hatafpatahnarrowhebrew=1458,t.hatafpatahquarterhebrew=1458,t.hatafpatahwidehebrew=1458,t.hatafqamats=1459,t.hatafqamats1b=1459,t.hatafqamats28=1459,t.hatafqamats34=1459,t.hatafqamatshebrew=1459,t.hatafqamatsnarrowhebrew=1459,t.hatafqamatsquarterhebrew=1459,t.hatafqamatswidehebrew=1459,t.hatafsegol=1457,t.hatafsegol17=1457,t.hatafsegol24=1457,t.hatafsegol30=1457,t.hatafsegolhebrew=1457,t.hatafsegolnarrowhebrew=1457,t.hatafsegolquarterhebrew=1457,t.hatafsegolwidehebrew=1457,t.hbar=295,t.hbopomofo=12559,t.hbrevebelow=7723,t.hcedilla=7721,t.hcircle=9431,t.hcircumflex=293,t.hdieresis=7719,t.hdotaccent=7715,t.hdotbelow=7717,t.he=1492,t.heart=9829,t.heartsuitblack=9829,t.heartsuitwhite=9825,t.hedagesh=64308,t.hedageshhebrew=64308,t.hehaltonearabic=1729,t.heharabic=1607,t.hehebrew=1492,t.hehfinalaltonearabic=64423,t.hehfinalalttwoarabic=65258,t.hehfinalarabic=65258,t.hehhamzaabovefinalarabic=64421,t.hehhamzaaboveisolatedarabic=64420,t.hehinitialaltonearabic=64424,t.hehinitialarabic=65259,t.hehiragana=12408,t.hehmedialaltonearabic=64425,t.hehmedialarabic=65260,t.heiseierasquare=13179,t.hekatakana=12504,t.hekatakanahalfwidth=65421,t.hekutaarusquare=13110,t.henghook=615,t.herutusquare=13113,t.het=1495,t.hethebrew=1495,t.hhook=614,t.hhooksuperior=689,t.hieuhacirclekorean=12923,t.hieuhaparenkorean=12827,t.hieuhcirclekorean=12909,t.hieuhkorean=12622,t.hieuhparenkorean=12813,t.hihiragana=12402,t.hikatakana=12498,t.hikatakanahalfwidth=65419,t.hiriq=1460,t.hiriq14=1460,t.hiriq21=1460,t.hiriq2d=1460,t.hiriqhebrew=1460,t.hiriqnarrowhebrew=1460,t.hiriqquarterhebrew=1460,t.hiriqwidehebrew=1460,t.hlinebelow=7830,t.hmonospace=65352,t.hoarmenian=1392,t.hohipthai=3627,t.hohiragana=12411,t.hokatakana=12507,t.hokatakanahalfwidth=65422,t.holam=1465,t.holam19=1465,t.holam26=1465,t.holam32=1465,t.holamhebrew=1465,t.holamnarrowhebrew=1465,t.holamquarterhebrew=1465,t.holamwidehebrew=1465,t.honokhukthai=3630,t.hookabovecomb=777,t.hookcmb=777,t.hookpalatalizedbelowcmb=801,t.hookretroflexbelowcmb=802,t.hoonsquare=13122,t.horicoptic=1001,t.horizontalbar=8213,t.horncmb=795,t.hotsprings=9832,t.house=8962,t.hparen=9379,t.hsuperior=688,t.hturned=613,t.huhiragana=12405,t.huiitosquare=13107,t.hukatakana=12501,t.hukatakanahalfwidth=65420,t.hungarumlaut=733,t.hungarumlautcmb=779,t.hv=405,t.hyphen=45,t.hypheninferior=63205,t.hyphenmonospace=65293,t.hyphensmall=65123,t.hyphensuperior=63206,t.hyphentwo=8208,t.i=105,t.iacute=237,t.iacyrillic=1103,t.ibengali=2439,t.ibopomofo=12583,t.ibreve=301,t.icaron=464,t.icircle=9432,t.icircumflex=238,t.icyrillic=1110,t.idblgrave=521,t.ideographearthcircle=12943,t.ideographfirecircle=12939,t.ideographicallianceparen=12863,t.ideographiccallparen=12858,t.ideographiccentrecircle=12965,t.ideographicclose=12294,t.ideographiccomma=12289,t.ideographiccommaleft=65380,t.ideographiccongratulationparen=12855,t.ideographiccorrectcircle=12963,t.ideographicearthparen=12847,t.ideographicenterpriseparen=12861,t.ideographicexcellentcircle=12957,t.ideographicfestivalparen=12864,t.ideographicfinancialcircle=12950,t.ideographicfinancialparen=12854,t.ideographicfireparen=12843,t.ideographichaveparen=12850,t.ideographichighcircle=12964,t.ideographiciterationmark=12293,t.ideographiclaborcircle=12952,t.ideographiclaborparen=12856,t.ideographicleftcircle=12967,t.ideographiclowcircle=12966,t.ideographicmedicinecircle=12969,t.ideographicmetalparen=12846,t.ideographicmoonparen=12842,t.ideographicnameparen=12852,t.ideographicperiod=12290,t.ideographicprintcircle=12958,t.ideographicreachparen=12867,t.ideographicrepresentparen=12857,t.ideographicresourceparen=12862,t.ideographicrightcircle=12968,t.ideographicsecretcircle=12953,t.ideographicselfparen=12866,t.ideographicsocietyparen=12851,t.ideographicspace=12288,t.ideographicspecialparen=12853,t.ideographicstockparen=12849,t.ideographicstudyparen=12859,t.ideographicsunparen=12848,t.ideographicsuperviseparen=12860,t.ideographicwaterparen=12844,t.ideographicwoodparen=12845,t.ideographiczero=12295,t.ideographmetalcircle=12942,t.ideographmooncircle=12938,t.ideographnamecircle=12948,t.ideographsuncircle=12944,t.ideographwatercircle=12940,t.ideographwoodcircle=12941,t.ideva=2311,t.idieresis=239,t.idieresisacute=7727,t.idieresiscyrillic=1253,t.idotbelow=7883,t.iebrevecyrillic=1239,t.iecyrillic=1077,t.ieungacirclekorean=12917,t.ieungaparenkorean=12821,t.ieungcirclekorean=12903,t.ieungkorean=12615,t.ieungparenkorean=12807,t.igrave=236,t.igujarati=2695,t.igurmukhi=2567,t.ihiragana=12356,t.ihookabove=7881,t.iibengali=2440,t.iicyrillic=1080,t.iideva=2312,t.iigujarati=2696,t.iigurmukhi=2568,t.iimatragurmukhi=2624,t.iinvertedbreve=523,t.iishortcyrillic=1081,t.iivowelsignbengali=2496,t.iivowelsigndeva=2368,t.iivowelsigngujarati=2752,t.ij=307,t.ikatakana=12452,t.ikatakanahalfwidth=65394,t.ikorean=12643,t.ilde=732,t.iluyhebrew=1452,t.imacron=299,t.imacroncyrillic=1251,t.imageorapproximatelyequal=8787,t.imatragurmukhi=2623,t.imonospace=65353,t.increment=8710,t.infinity=8734,t.iniarmenian=1387,t.integral=8747,t.integralbottom=8993,t.integralbt=8993,t.integralex=63733,t.integraltop=8992,t.integraltp=8992,t.intersection=8745,t.intisquare=13061,t.invbullet=9688,t.invcircle=9689,t.invsmileface=9787,t.iocyrillic=1105,t.iogonek=303,t.iota=953,t.iotadieresis=970,t.iotadieresistonos=912,t.iotalatin=617,t.iotatonos=943,t.iparen=9380,t.irigurmukhi=2674,t.ismallhiragana=12355,t.ismallkatakana=12451,t.ismallkatakanahalfwidth=65384,t.issharbengali=2554,t.istroke=616,t.isuperior=63213,t.iterationhiragana=12445,t.iterationkatakana=12541,t.itilde=297,t.itildebelow=7725,t.iubopomofo=12585,t.iucyrillic=1102,t.ivowelsignbengali=2495,t.ivowelsigndeva=2367,t.ivowelsigngujarati=2751,t.izhitsacyrillic=1141,t.izhitsadblgravecyrillic=1143,t.j=106,t.jaarmenian=1393,t.jabengali=2460,t.jadeva=2332,t.jagujarati=2716,t.jagurmukhi=2588,t.jbopomofo=12560,t.jcaron=496,t.jcircle=9433,t.jcircumflex=309,t.jcrossedtail=669,t.jdotlessstroke=607,t.jecyrillic=1112,t.jeemarabic=1580,t.jeemfinalarabic=65182,t.jeeminitialarabic=65183,t.jeemmedialarabic=65184,t.jeharabic=1688,t.jehfinalarabic=64395,t.jhabengali=2461,t.jhadeva=2333,t.jhagujarati=2717,t.jhagurmukhi=2589,t.jheharmenian=1403,t.jis=12292,t.jmonospace=65354,t.jparen=9381,t.jsuperior=690,t.k=107,t.kabashkircyrillic=1185,t.kabengali=2453,t.kacute=7729,t.kacyrillic=1082,t.kadescendercyrillic=1179,t.kadeva=2325,t.kaf=1499,t.kafarabic=1603,t.kafdagesh=64315,t.kafdageshhebrew=64315,t.kaffinalarabic=65242,t.kafhebrew=1499,t.kafinitialarabic=65243,t.kafmedialarabic=65244,t.kafrafehebrew=64333,t.kagujarati=2709,t.kagurmukhi=2581,t.kahiragana=12363,t.kahookcyrillic=1220,t.kakatakana=12459,t.kakatakanahalfwidth=65398,t.kappa=954,t.kappasymbolgreek=1008,t.kapyeounmieumkorean=12657,t.kapyeounphieuphkorean=12676,t.kapyeounpieupkorean=12664,t.kapyeounssangpieupkorean=12665,t.karoriisquare=13069,t.kashidaautoarabic=1600,t.kashidaautonosidebearingarabic=1600,t.kasmallkatakana=12533,t.kasquare=13188,t.kasraarabic=1616,t.kasratanarabic=1613,t.kastrokecyrillic=1183,t.katahiraprolongmarkhalfwidth=65392,t.kaverticalstrokecyrillic=1181,t.kbopomofo=12558,t.kcalsquare=13193,t.kcaron=489,t.kcedilla=311,t.kcircle=9434,t.kcommaaccent=311,t.kdotbelow=7731,t.keharmenian=1412,t.kehiragana=12369,t.kekatakana=12465,t.kekatakanahalfwidth=65401,t.kenarmenian=1391,t.kesmallkatakana=12534,t.kgreenlandic=312,t.khabengali=2454,t.khacyrillic=1093,t.khadeva=2326,t.khagujarati=2710,t.khagurmukhi=2582,t.khaharabic=1582,t.khahfinalarabic=65190,t.khahinitialarabic=65191,t.khahmedialarabic=65192,t.kheicoptic=999,t.khhadeva=2393,t.khhagurmukhi=2649,t.khieukhacirclekorean=12920,t.khieukhaparenkorean=12824,t.khieukhcirclekorean=12906,t.khieukhkorean=12619,t.khieukhparenkorean=12810,t.khokhaithai=3586,t.khokhonthai=3589,t.khokhuatthai=3587,t.khokhwaithai=3588,t.khomutthai=3675,t.khook=409,t.khorakhangthai=3590,t.khzsquare=13201,t.kihiragana=12365,t.kikatakana=12461,t.kikatakanahalfwidth=65399,t.kiroguramusquare=13077,t.kiromeetorusquare=13078,t.kirosquare=13076,t.kiyeokacirclekorean=12910,t.kiyeokaparenkorean=12814,t.kiyeokcirclekorean=12896,t.kiyeokkorean=12593,t.kiyeokparenkorean=12800,t.kiyeoksioskorean=12595;t.kjecyrillic=1116,t.klinebelow=7733,t.klsquare=13208,t.kmcubedsquare=13222,t.kmonospace=65355,t.kmsquaredsquare=13218,t.kohiragana=12371,t.kohmsquare=13248,t.kokaithai=3585,t.kokatakana=12467,t.kokatakanahalfwidth=65402,t.kooposquare=13086,t.koppacyrillic=1153,t.koreanstandardsymbol=12927,t.koroniscmb=835,t.kparen=9382,t.kpasquare=13226,t.ksicyrillic=1135,t.ktsquare=13263,t.kturned=670,t.kuhiragana=12367,t.kukatakana=12463,t.kukatakanahalfwidth=65400,t.kvsquare=13240,t.kwsquare=13246,t.l=108,t.labengali=2482,t.lacute=314,t.ladeva=2354,t.lagujarati=2738,t.lagurmukhi=2610,t.lakkhangyaothai=3653,t.lamaleffinalarabic=65276,t.lamalefhamzaabovefinalarabic=65272,t.lamalefhamzaaboveisolatedarabic=65271,t.lamalefhamzabelowfinalarabic=65274,t.lamalefhamzabelowisolatedarabic=65273,t.lamalefisolatedarabic=65275,t.lamalefmaddaabovefinalarabic=65270,t.lamalefmaddaaboveisolatedarabic=65269,t.lamarabic=1604,t.lambda=955,t.lambdastroke=411,t.lamed=1500,t.lameddagesh=64316,t.lameddageshhebrew=64316,t.lamedhebrew=1500,t.lamfinalarabic=65246,t.lamhahinitialarabic=64714,t.laminitialarabic=65247,t.lamjeeminitialarabic=64713,t.lamkhahinitialarabic=64715,t.lamlamhehisolatedarabic=65010,t.lammedialarabic=65248,t.lammeemhahinitialarabic=64904,t.lammeeminitialarabic=64716,t.largecircle=9711,t.lbar=410,t.lbelt=620,t.lbopomofo=12556,t.lcaron=318,t.lcedilla=316,t.lcircle=9435,t.lcircumflexbelow=7741,t.lcommaaccent=316,t.ldot=320,t.ldotaccent=320,t.ldotbelow=7735,t.ldotbelowmacron=7737,t.leftangleabovecmb=794,t.lefttackbelowcmb=792,t.less=60,t.lessequal=8804,t.lessequalorgreater=8922,t.lessmonospace=65308,t.lessorequivalent=8818,t.lessorgreater=8822,t.lessoverequal=8806,t.lesssmall=65124,t.lezh=622,t.lfblock=9612,t.lhookretroflex=621,t.lira=8356,t.liwnarmenian=1388,t.lj=457,t.ljecyrillic=1113,t.ll=63168,t.lladeva=2355,t.llagujarati=2739,t.llinebelow=7739,t.llladeva=2356,t.llvocalicbengali=2529,t.llvocalicdeva=2401,t.llvocalicvowelsignbengali=2531,t.llvocalicvowelsigndeva=2403,t.lmiddletilde=619,t.lmonospace=65356,t.lmsquare=13264,t.lochulathai=3628,t.logicaland=8743,t.logicalnot=172,t.logicalnotreversed=8976,t.logicalor=8744,t.lolingthai=3621,t.longs=383,t.lowlinecenterline=65102,t.lowlinecmb=818,t.lowlinedashed=65101,t.lozenge=9674,t.lparen=9383,t.lslash=322,t.lsquare=8467,t.lsuperior=63214,t.ltshade=9617,t.luthai=3622,t.lvocalicbengali=2444,t.lvocalicdeva=2316,t.lvocalicvowelsignbengali=2530,t.lvocalicvowelsigndeva=2402,t.lxsquare=13267,t.m=109,t.mabengali=2478,t.macron=175,t.macronbelowcmb=817,t.macroncmb=772,t.macronlowmod=717,t.macronmonospace=65507,t.macute=7743,t.madeva=2350,t.magujarati=2734,t.magurmukhi=2606,t.mahapakhhebrew=1444,t.mahapakhlefthebrew=1444,t.mahiragana=12414,t.maichattawalowleftthai=63637,t.maichattawalowrightthai=63636,t.maichattawathai=3659,t.maichattawaupperleftthai=63635,t.maieklowleftthai=63628,t.maieklowrightthai=63627,t.maiekthai=3656,t.maiekupperleftthai=63626,t.maihanakatleftthai=63620,t.maihanakatthai=3633,t.maitaikhuleftthai=63625,t.maitaikhuthai=3655,t.maitholowleftthai=63631,t.maitholowrightthai=63630,t.maithothai=3657,t.maithoupperleftthai=63629,t.maitrilowleftthai=63634,t.maitrilowrightthai=63633,t.maitrithai=3658,t.maitriupperleftthai=63632,t.maiyamokthai=3654,t.makatakana=12510,t.makatakanahalfwidth=65423,t.male=9794,t.mansyonsquare=13127,t.maqafhebrew=1470,t.mars=9794,t.masoracirclehebrew=1455,t.masquare=13187,t.mbopomofo=12551,t.mbsquare=13268,t.mcircle=9436,t.mcubedsquare=13221,t.mdotaccent=7745,t.mdotbelow=7747,t.meemarabic=1605,t.meemfinalarabic=65250,t.meeminitialarabic=65251,t.meemmedialarabic=65252,t.meemmeeminitialarabic=64721,t.meemmeemisolatedarabic=64584,t.meetorusquare=13133,t.mehiragana=12417,t.meizierasquare=13182,t.mekatakana=12513,t.mekatakanahalfwidth=65426,t.mem=1502,t.memdagesh=64318,t.memdageshhebrew=64318,t.memhebrew=1502,t.menarmenian=1396,t.merkhahebrew=1445,t.merkhakefulahebrew=1446,t.merkhakefulalefthebrew=1446,t.merkhalefthebrew=1445,t.mhook=625,t.mhzsquare=13202,t.middledotkatakanahalfwidth=65381,t.middot=183,t.mieumacirclekorean=12914,t.mieumaparenkorean=12818,t.mieumcirclekorean=12900,t.mieumkorean=12609,t.mieumpansioskorean=12656,t.mieumparenkorean=12804,t.mieumpieupkorean=12654,t.mieumsioskorean=12655,t.mihiragana=12415,t.mikatakana=12511,t.mikatakanahalfwidth=65424,t.minus=8722,t.minusbelowcmb=800,t.minuscircle=8854,t.minusmod=727,t.minusplus=8723,t.minute=8242,t.miribaarusquare=13130,t.mirisquare=13129,t.mlonglegturned=624,t.mlsquare=13206,t.mmcubedsquare=13219,t.mmonospace=65357,t.mmsquaredsquare=13215,t.mohiragana=12418,t.mohmsquare=13249,t.mokatakana=12514,t.mokatakanahalfwidth=65427,t.molsquare=13270,t.momathai=3617,t.moverssquare=13223,t.moverssquaredsquare=13224,t.mparen=9384,t.mpasquare=13227,t.mssquare=13235,t.msuperior=63215,t.mturned=623,t.mu=181,t.mu1=181,t.muasquare=13186,t.muchgreater=8811,t.muchless=8810,t.mufsquare=13196,t.mugreek=956,t.mugsquare=13197,t.muhiragana=12416,t.mukatakana=12512,t.mukatakanahalfwidth=65425,t.mulsquare=13205,t.multiply=215,t.mumsquare=13211,t.munahhebrew=1443,t.munahlefthebrew=1443,t.musicalnote=9834,t.musicalnotedbl=9835,t.musicflatsign=9837,t.musicsharpsign=9839,t.mussquare=13234,t.muvsquare=13238,t.muwsquare=13244,t.mvmegasquare=13241,t.mvsquare=13239,t.mwmegasquare=13247,t.mwsquare=13245,t.n=110,t.nabengali=2472,t.nabla=8711,t.nacute=324,t.nadeva=2344,t.nagujarati=2728,t.nagurmukhi=2600,t.nahiragana=12394,t.nakatakana=12490,t.nakatakanahalfwidth=65413,t.napostrophe=329,t.nasquare=13185,t.nbopomofo=12555,t.nbspace=160,t.ncaron=328,t.ncedilla=326,t.ncircle=9437,t.ncircumflexbelow=7755,t.ncommaaccent=326,t.ndotaccent=7749,t.ndotbelow=7751,t.nehiragana=12397,t.nekatakana=12493,t.nekatakanahalfwidth=65416,t.newsheqelsign=8362,t.nfsquare=13195,t.ngabengali=2457,t.ngadeva=2329,t.ngagujarati=2713,t.ngagurmukhi=2585,t.ngonguthai=3591,t.nhiragana=12435,t.nhookleft=626,t.nhookretroflex=627,t.nieunacirclekorean=12911,t.nieunaparenkorean=12815,t.nieuncieuckorean=12597,t.nieuncirclekorean=12897,t.nieunhieuhkorean=12598,t.nieunkorean=12596,t.nieunpansioskorean=12648,t.nieunparenkorean=12801,t.nieunsioskorean=12647,t.nieuntikeutkorean=12646,t.nihiragana=12395,t.nikatakana=12491,t.nikatakanahalfwidth=65414,t.nikhahitleftthai=63641,t.nikhahitthai=3661,t.nine=57,t.ninearabic=1641,t.ninebengali=2543,t.ninecircle=9320,t.ninecircleinversesansserif=10130,t.ninedeva=2415,t.ninegujarati=2799,t.ninegurmukhi=2671,t.ninehackarabic=1641,t.ninehangzhou=12329,t.nineideographicparen=12840,t.nineinferior=8329,t.ninemonospace=65305,t.nineoldstyle=63289,t.nineparen=9340,t.nineperiod=9360,t.ninepersian=1785,t.nineroman=8568,t.ninesuperior=8313,t.nineteencircle=9330,t.nineteenparen=9350,t.nineteenperiod=9370,t.ninethai=3673,t.nj=460,t.njecyrillic=1114,t.nkatakana=12531,t.nkatakanahalfwidth=65437,t.nlegrightlong=414,t.nlinebelow=7753,t.nmonospace=65358,t.nmsquare=13210,t.nnabengali=2467,t.nnadeva=2339,t.nnagujarati=2723,t.nnagurmukhi=2595,t.nnnadeva=2345,t.nohiragana=12398,t.nokatakana=12494,t.nokatakanahalfwidth=65417,t.nonbreakingspace=160,t.nonenthai=3603,t.nonuthai=3609,t.noonarabic=1606,t.noonfinalarabic=65254,t.noonghunnaarabic=1722,t.noonghunnafinalarabic=64415,t.nooninitialarabic=65255,t.noonjeeminitialarabic=64722,t.noonjeemisolatedarabic=64587,t.noonmedialarabic=65256,t.noonmeeminitialarabic=64725,t.noonmeemisolatedarabic=64590,t.noonnoonfinalarabic=64653,t.notcontains=8716,t.notelement=8713,t.notelementof=8713,t.notequal=8800,t.notgreater=8815,t.notgreaternorequal=8817,t.notgreaternorless=8825,t.notidentical=8802,t.notless=8814,t.notlessnorequal=8816,t.notparallel=8742,t.notprecedes=8832,t.notsubset=8836,t.notsucceeds=8833,t.notsuperset=8837,t.nowarmenian=1398,t.nparen=9385,t.nssquare=13233,t.nsuperior=8319,t.ntilde=241,t.nu=957,t.nuhiragana=12396,t.nukatakana=12492,t.nukatakanahalfwidth=65415,t.nuktabengali=2492,t.nuktadeva=2364,t.nuktagujarati=2748,t.nuktagurmukhi=2620,t.numbersign=35,t.numbersignmonospace=65283,t.numbersignsmall=65119,t.numeralsigngreek=884,t.numeralsignlowergreek=885,t.numero=8470,t.nun=1504,t.nundagesh=64320,t.nundageshhebrew=64320,t.nunhebrew=1504,t.nvsquare=13237,t.nwsquare=13243,t.nyabengali=2462,t.nyadeva=2334,t.nyagujarati=2718,t.nyagurmukhi=2590,t.o=111,t.oacute=243,t.oangthai=3629,t.obarred=629,t.obarredcyrillic=1257,t.obarreddieresiscyrillic=1259,t.obengali=2451,t.obopomofo=12571,t.obreve=335,t.ocandradeva=2321,t.ocandragujarati=2705,t.ocandravowelsigndeva=2377,t.ocandravowelsigngujarati=2761,t.ocaron=466,t.ocircle=9438,t.ocircumflex=244,t.ocircumflexacute=7889,t.ocircumflexdotbelow=7897,t.ocircumflexgrave=7891,t.ocircumflexhookabove=7893,t.ocircumflextilde=7895,t.ocyrillic=1086,t.odblacute=337,t.odblgrave=525,t.odeva=2323,t.odieresis=246,t.odieresiscyrillic=1255,t.odotbelow=7885,t.oe=339,t.oekorean=12634,t.ogonek=731,t.ogonekcmb=808,t.ograve=242,t.ogujarati=2707,t.oharmenian=1413,t.ohiragana=12362,t.ohookabove=7887,t.ohorn=417,t.ohornacute=7899,t.ohorndotbelow=7907,t.ohorngrave=7901,t.ohornhookabove=7903,t.ohorntilde=7905,t.ohungarumlaut=337,t.oi=419,t.oinvertedbreve=527,t.okatakana=12458,t.okatakanahalfwidth=65397,t.okorean=12631,t.olehebrew=1451,t.omacron=333,t.omacronacute=7763,t.omacrongrave=7761,t.omdeva=2384,t.omega=969,t.omega1=982,t.omegacyrillic=1121,t.omegalatinclosed=631,t.omegaroundcyrillic=1147,t.omegatitlocyrillic=1149,t.omegatonos=974,t.omgujarati=2768,t.omicron=959,t.omicrontonos=972,t.omonospace=65359,t.one=49,t.onearabic=1633,t.onebengali=2535,t.onecircle=9312,t.onecircleinversesansserif=10122,t.onedeva=2407,t.onedotenleader=8228,t.oneeighth=8539,t.onefitted=63196,t.onegujarati=2791,t.onegurmukhi=2663,t.onehackarabic=1633,t.onehalf=189,t.onehangzhou=12321,t.oneideographicparen=12832,t.oneinferior=8321,t.onemonospace=65297,t.onenumeratorbengali=2548,t.oneoldstyle=63281,t.oneparen=9332,t.oneperiod=9352,t.onepersian=1777,t.onequarter=188,t.oneroman=8560,t.onesuperior=185,t.onethai=3665,t.onethird=8531,t.oogonek=491,t.oogonekmacron=493,t.oogurmukhi=2579,t.oomatragurmukhi=2635,t.oopen=596,t.oparen=9386,t.openbullet=9702,t.option=8997,t.ordfeminine=170,t.ordmasculine=186,t.orthogonal=8735,t.oshortdeva=2322,t.oshortvowelsigndeva=2378,t.oslash=248,t.oslashacute=511,t.osmallhiragana=12361,t.osmallkatakana=12457,t.osmallkatakanahalfwidth=65387,t.ostrokeacute=511,t.osuperior=63216,t.otcyrillic=1151,t.otilde=245,t.otildeacute=7757,t.otildedieresis=7759,t.oubopomofo=12577,t.overline=8254,t.overlinecenterline=65098,t.overlinecmb=773,t.overlinedashed=65097,t.overlinedblwavy=65100,t.overlinewavy=65099,t.overscore=175,t.ovowelsignbengali=2507,t.ovowelsigndeva=2379,t.ovowelsigngujarati=2763,t.p=112,t.paampssquare=13184,t.paasentosquare=13099,t.pabengali=2474,t.pacute=7765,t.padeva=2346,t.pagedown=8671,t.pageup=8670,t.pagujarati=2730,t.pagurmukhi=2602,t.pahiragana=12401,t.paiyannoithai=3631,t.pakatakana=12497,t.palatalizationcyrilliccmb=1156,t.palochkacyrillic=1216,t.pansioskorean=12671,t.paragraph=182,t.parallel=8741,t.parenleft=40,t.parenleftaltonearabic=64830,t.parenleftbt=63725,t.parenleftex=63724,t.parenleftinferior=8333,t.parenleftmonospace=65288,t.parenleftsmall=65113,t.parenleftsuperior=8317,t.parenlefttp=63723,t.parenleftvertical=65077,t.parenright=41,t.parenrightaltonearabic=64831,t.parenrightbt=63736,t.parenrightex=63735,t.parenrightinferior=8334,t.parenrightmonospace=65289,t.parenrightsmall=65114,t.parenrightsuperior=8318,t.parenrighttp=63734,t.parenrightvertical=65078,t.partialdiff=8706,t.paseqhebrew=1472,t.pashtahebrew=1433,t.pasquare=13225,t.patah=1463,t.patah11=1463,t.patah1d=1463,t.patah2a=1463,t.patahhebrew=1463,t.patahnarrowhebrew=1463,t.patahquarterhebrew=1463,t.patahwidehebrew=1463,t.pazerhebrew=1441,t.pbopomofo=12550,t.pcircle=9439,t.pdotaccent=7767,t.pe=1508,t.pecyrillic=1087,t.pedagesh=64324,t.pedageshhebrew=64324,t.peezisquare=13115,t.pefinaldageshhebrew=64323,t.peharabic=1662,t.peharmenian=1402,t.pehebrew=1508,t.pehfinalarabic=64343,t.pehinitialarabic=64344,t.pehiragana=12410,t.pehmedialarabic=64345,t.pekatakana=12506,t.pemiddlehookcyrillic=1191,t.perafehebrew=64334,t.percent=37,t.percentarabic=1642,t.percentmonospace=65285,t.percentsmall=65130,t.period=46,t.periodarmenian=1417,t.periodcentered=183,t.periodhalfwidth=65377,t.periodinferior=63207,t.periodmonospace=65294,t.periodsmall=65106,t.periodsuperior=63208,t.perispomenigreekcmb=834,t.perpendicular=8869,t.perthousand=8240,t.peseta=8359,t.pfsquare=13194,t.phabengali=2475,t.phadeva=2347,t.phagujarati=2731,t.phagurmukhi=2603,t.phi=966,t.phi1=981,t.phieuphacirclekorean=12922,t.phieuphaparenkorean=12826,t.phieuphcirclekorean=12908,t.phieuphkorean=12621,t.phieuphparenkorean=12812,t.philatin=632,t.phinthuthai=3642,t.phisymbolgreek=981,t.phook=421,t.phophanthai=3614,t.phophungthai=3612,t.phosamphaothai=3616,t.pi=960,t.pieupacirclekorean=12915,t.pieupaparenkorean=12819,t.pieupcieuckorean=12662,t.pieupcirclekorean=12901,t.pieupkiyeokkorean=12658,t.pieupkorean=12610,t.pieupparenkorean=12805,t.pieupsioskiyeokkorean=12660,t.pieupsioskorean=12612,t.pieupsiostikeutkorean=12661,t.pieupthieuthkorean=12663,t.pieuptikeutkorean=12659,t.pihiragana=12404,t.pikatakana=12500,t.pisymbolgreek=982,t.piwrarmenian=1411,t.planckover2pi=8463,t.planckover2pi1=8463,t.plus=43,t.plusbelowcmb=799,t.pluscircle=8853,t.plusminus=177,t.plusmod=726,t.plusmonospace=65291,t.plussmall=65122,t.plussuperior=8314,t.pmonospace=65360,t.pmsquare=13272,t.pohiragana=12413,t.pointingindexdownwhite=9759,t.pointingindexleftwhite=9756,t.pointingindexrightwhite=9758,t.pointingindexupwhite=9757,t.pokatakana=12509,t.poplathai=3611,t.postalmark=12306,t.postalmarkface=12320,t.pparen=9387,t.precedes=8826,t.prescription=8478,t.primemod=697,t.primereversed=8245,t.product=8719,t.projective=8965,t.prolongedkana=12540,t.propellor=8984,t.propersubset=8834,t.propersuperset=8835,t.proportion=8759,t.proportional=8733,t.psi=968,t.psicyrillic=1137,t.psilipneumatacyrilliccmb=1158,t.pssquare=13232,t.puhiragana=12407,t.pukatakana=12503,t.pvsquare=13236,t.pwsquare=13242,t.q=113,t.qadeva=2392,t.qadmahebrew=1448,t.qafarabic=1602,t.qaffinalarabic=65238,t.qafinitialarabic=65239,t.qafmedialarabic=65240,t.qamats=1464,t.qamats10=1464,t.qamats1a=1464,t.qamats1c=1464,t.qamats27=1464,t.qamats29=1464,t.qamats33=1464,t.qamatsde=1464,t.qamatshebrew=1464,t.qamatsnarrowhebrew=1464,t.qamatsqatanhebrew=1464,t.qamatsqatannarrowhebrew=1464,t.qamatsqatanquarterhebrew=1464,t.qamatsqatanwidehebrew=1464,t.qamatsquarterhebrew=1464,t.qamatswidehebrew=1464,t.qarneyparahebrew=1439,t.qbopomofo=12561,t.qcircle=9440,t.qhook=672,t.qmonospace=65361,t.qof=1511,t.qofdagesh=64327,t.qofdageshhebrew=64327,t.qofhebrew=1511,t.qparen=9388,t.quarternote=9833,t.qubuts=1467,t.qubuts18=1467,t.qubuts25=1467,t.qubuts31=1467,t.qubutshebrew=1467,t.qubutsnarrowhebrew=1467,t.qubutsquarterhebrew=1467,t.qubutswidehebrew=1467,t.question=63,t.questionarabic=1567,t.questionarmenian=1374,t.questiondown=191,t.questiondownsmall=63423,t.questiongreek=894,t.questionmonospace=65311,t.questionsmall=63295,t.quotedbl=34,t.quotedblbase=8222,t.quotedblleft=8220,t.quotedblmonospace=65282,t.quotedblprime=12318,t.quotedblprimereversed=12317,t.quotedblright=8221,t.quoteleft=8216,t.quoteleftreversed=8219,t.quotereversed=8219,t.quoteright=8217,t.quoterightn=329,t.quotesinglbase=8218,t.quotesingle=39,t.quotesinglemonospace=65287,t.r=114,t.raarmenian=1404,t.rabengali=2480,t.racute=341,t.radeva=2352,t.radical=8730,t.radicalex=63717,t.radoverssquare=13230,t.radoverssquaredsquare=13231,t.radsquare=13229,t.rafe=1471,t.rafehebrew=1471,t.ragujarati=2736,t.ragurmukhi=2608,t.rahiragana=12425,t.rakatakana=12521,t.rakatakanahalfwidth=65431,t.ralowerdiagonalbengali=2545,t.ramiddlediagonalbengali=2544,t.ramshorn=612,t.ratio=8758,t.rbopomofo=12566,t.rcaron=345,t.rcedilla=343,t.rcircle=9441,t.rcommaaccent=343,t.rdblgrave=529,t.rdotaccent=7769,t.rdotbelow=7771,t.rdotbelowmacron=7773,t.referencemark=8251,t.reflexsubset=8838,t.reflexsuperset=8839,t.registered=174,t.registersans=63720,t.registerserif=63194,t.reharabic=1585,t.reharmenian=1408,t.rehfinalarabic=65198,t.rehiragana=12428,t.rekatakana=12524;t.rekatakanahalfwidth=65434,t.resh=1512,t.reshdageshhebrew=64328,t.reshhebrew=1512,t.reversedtilde=8765,t.reviahebrew=1431,t.reviamugrashhebrew=1431,t.revlogicalnot=8976,t.rfishhook=638,t.rfishhookreversed=639,t.rhabengali=2525,t.rhadeva=2397,t.rho=961,t.rhook=637,t.rhookturned=635,t.rhookturnedsuperior=693,t.rhosymbolgreek=1009,t.rhotichookmod=734,t.rieulacirclekorean=12913,t.rieulaparenkorean=12817,t.rieulcirclekorean=12899,t.rieulhieuhkorean=12608,t.rieulkiyeokkorean=12602,t.rieulkiyeoksioskorean=12649,t.rieulkorean=12601,t.rieulmieumkorean=12603,t.rieulpansioskorean=12652,t.rieulparenkorean=12803,t.rieulphieuphkorean=12607,t.rieulpieupkorean=12604,t.rieulpieupsioskorean=12651,t.rieulsioskorean=12605,t.rieulthieuthkorean=12606,t.rieultikeutkorean=12650,t.rieulyeorinhieuhkorean=12653,t.rightangle=8735,t.righttackbelowcmb=793,t.righttriangle=8895,t.rihiragana=12426,t.rikatakana=12522,t.rikatakanahalfwidth=65432,t.ring=730,t.ringbelowcmb=805,t.ringcmb=778,t.ringhalfleft=703,t.ringhalfleftarmenian=1369,t.ringhalfleftbelowcmb=796,t.ringhalfleftcentered=723,t.ringhalfright=702,t.ringhalfrightbelowcmb=825,t.ringhalfrightcentered=722,t.rinvertedbreve=531,t.rittorusquare=13137,t.rlinebelow=7775,t.rlongleg=636,t.rlonglegturned=634,t.rmonospace=65362,t.rohiragana=12429,t.rokatakana=12525,t.rokatakanahalfwidth=65435,t.roruathai=3619,t.rparen=9389,t.rrabengali=2524,t.rradeva=2353,t.rragurmukhi=2652,t.rreharabic=1681,t.rrehfinalarabic=64397,t.rrvocalicbengali=2528,t.rrvocalicdeva=2400,t.rrvocalicgujarati=2784,t.rrvocalicvowelsignbengali=2500,t.rrvocalicvowelsigndeva=2372,t.rrvocalicvowelsigngujarati=2756,t.rsuperior=63217,t.rtblock=9616,t.rturned=633,t.rturnedsuperior=692,t.ruhiragana=12427,t.rukatakana=12523,t.rukatakanahalfwidth=65433,t.rupeemarkbengali=2546,t.rupeesignbengali=2547,t.rupiah=63197,t.ruthai=3620,t.rvocalicbengali=2443,t.rvocalicdeva=2315,t.rvocalicgujarati=2699,t.rvocalicvowelsignbengali=2499,t.rvocalicvowelsigndeva=2371,t.rvocalicvowelsigngujarati=2755,t.s=115,t.sabengali=2488,t.sacute=347,t.sacutedotaccent=7781,t.sadarabic=1589,t.sadeva=2360,t.sadfinalarabic=65210,t.sadinitialarabic=65211,t.sadmedialarabic=65212,t.sagujarati=2744,t.sagurmukhi=2616,t.sahiragana=12373,t.sakatakana=12469,t.sakatakanahalfwidth=65403,t.sallallahoualayhewasallamarabic=65018,t.samekh=1505,t.samekhdagesh=64321,t.samekhdageshhebrew=64321,t.samekhhebrew=1505,t.saraaathai=3634,t.saraaethai=3649,t.saraaimaimalaithai=3652,t.saraaimaimuanthai=3651,t.saraamthai=3635,t.saraathai=3632,t.saraethai=3648,t.saraiileftthai=63622,t.saraiithai=3637,t.saraileftthai=63621,t.saraithai=3636,t.saraothai=3650,t.saraueeleftthai=63624,t.saraueethai=3639,t.saraueleftthai=63623,t.sarauethai=3638,t.sarauthai=3640,t.sarauuthai=3641,t.sbopomofo=12569,t.scaron=353,t.scarondotaccent=7783,t.scedilla=351,t.schwa=601,t.schwacyrillic=1241,t.schwadieresiscyrillic=1243,t.schwahook=602,t.scircle=9442,t.scircumflex=349,t.scommaaccent=537,t.sdotaccent=7777,t.sdotbelow=7779,t.sdotbelowdotaccent=7785,t.seagullbelowcmb=828,t.second=8243,t.secondtonechinese=714,t.section=167,t.seenarabic=1587,t.seenfinalarabic=65202,t.seeninitialarabic=65203,t.seenmedialarabic=65204,t.segol=1462,t.segol13=1462,t.segol1f=1462,t.segol2c=1462,t.segolhebrew=1462,t.segolnarrowhebrew=1462,t.segolquarterhebrew=1462,t.segoltahebrew=1426,t.segolwidehebrew=1462,t.seharmenian=1405,t.sehiragana=12379,t.sekatakana=12475,t.sekatakanahalfwidth=65406,t.semicolon=59,t.semicolonarabic=1563,t.semicolonmonospace=65307,t.semicolonsmall=65108,t.semivoicedmarkkana=12444,t.semivoicedmarkkanahalfwidth=65439,t.sentisquare=13090,t.sentosquare=13091,t.seven=55,t.sevenarabic=1639,t.sevenbengali=2541,t.sevencircle=9318,t.sevencircleinversesansserif=10128,t.sevendeva=2413,t.seveneighths=8542,t.sevengujarati=2797,t.sevengurmukhi=2669,t.sevenhackarabic=1639,t.sevenhangzhou=12327,t.sevenideographicparen=12838,t.seveninferior=8327,t.sevenmonospace=65303,t.sevenoldstyle=63287,t.sevenparen=9338,t.sevenperiod=9358,t.sevenpersian=1783,t.sevenroman=8566,t.sevensuperior=8311,t.seventeencircle=9328,t.seventeenparen=9348,t.seventeenperiod=9368,t.seventhai=3671,t.sfthyphen=173,t.shaarmenian=1399,t.shabengali=2486,t.shacyrillic=1096,t.shaddaarabic=1617,t.shaddadammaarabic=64609,t.shaddadammatanarabic=64606,t.shaddafathaarabic=64608,t.shaddakasraarabic=64610,t.shaddakasratanarabic=64607,t.shade=9618,t.shadedark=9619,t.shadelight=9617,t.shademedium=9618,t.shadeva=2358,t.shagujarati=2742,t.shagurmukhi=2614,t.shalshelethebrew=1427,t.shbopomofo=12565,t.shchacyrillic=1097,t.sheenarabic=1588,t.sheenfinalarabic=65206,t.sheeninitialarabic=65207,t.sheenmedialarabic=65208,t.sheicoptic=995,t.sheqel=8362,t.sheqelhebrew=8362,t.sheva=1456,t.sheva115=1456,t.sheva15=1456,t.sheva22=1456,t.sheva2e=1456,t.shevahebrew=1456,t.shevanarrowhebrew=1456,t.shevaquarterhebrew=1456,t.shevawidehebrew=1456,t.shhacyrillic=1211,t.shimacoptic=1005,t.shin=1513,t.shindagesh=64329,t.shindageshhebrew=64329,t.shindageshshindot=64300,t.shindageshshindothebrew=64300,t.shindageshsindot=64301,t.shindageshsindothebrew=64301,t.shindothebrew=1473,t.shinhebrew=1513,t.shinshindot=64298,t.shinshindothebrew=64298,t.shinsindot=64299,t.shinsindothebrew=64299,t.shook=642,t.sigma=963,t.sigma1=962,t.sigmafinal=962,t.sigmalunatesymbolgreek=1010,t.sihiragana=12375,t.sikatakana=12471,t.sikatakanahalfwidth=65404,t.siluqhebrew=1469,t.siluqlefthebrew=1469,t.similar=8764,t.sindothebrew=1474,t.siosacirclekorean=12916,t.siosaparenkorean=12820,t.sioscieuckorean=12670,t.sioscirclekorean=12902,t.sioskiyeokkorean=12666,t.sioskorean=12613,t.siosnieunkorean=12667,t.siosparenkorean=12806,t.siospieupkorean=12669,t.siostikeutkorean=12668,t.six=54,t.sixarabic=1638,t.sixbengali=2540,t.sixcircle=9317,t.sixcircleinversesansserif=10127,t.sixdeva=2412,t.sixgujarati=2796,t.sixgurmukhi=2668,t.sixhackarabic=1638,t.sixhangzhou=12326,t.sixideographicparen=12837,t.sixinferior=8326,t.sixmonospace=65302,t.sixoldstyle=63286,t.sixparen=9337,t.sixperiod=9357,t.sixpersian=1782,t.sixroman=8565,t.sixsuperior=8310,t.sixteencircle=9327,t.sixteencurrencydenominatorbengali=2553,t.sixteenparen=9347,t.sixteenperiod=9367,t.sixthai=3670,t.slash=47,t.slashmonospace=65295,t.slong=383,t.slongdotaccent=7835,t.smileface=9786,t.smonospace=65363,t.sofpasuqhebrew=1475,t.softhyphen=173,t.softsigncyrillic=1100,t.sohiragana=12381,t.sokatakana=12477,t.sokatakanahalfwidth=65407,t.soliduslongoverlaycmb=824,t.solidusshortoverlaycmb=823,t.sorusithai=3625,t.sosalathai=3624,t.sosothai=3595,t.sosuathai=3626,t.space=32,t.spacehackarabic=32,t.spade=9824,t.spadesuitblack=9824,t.spadesuitwhite=9828,t.sparen=9390,t.squarebelowcmb=827,t.squarecc=13252,t.squarecm=13213,t.squarediagonalcrosshatchfill=9641,t.squarehorizontalfill=9636,t.squarekg=13199,t.squarekm=13214,t.squarekmcapital=13262,t.squareln=13265,t.squarelog=13266,t.squaremg=13198,t.squaremil=13269,t.squaremm=13212,t.squaremsquared=13217,t.squareorthogonalcrosshatchfill=9638,t.squareupperlefttolowerrightfill=9639,t.squareupperrighttolowerleftfill=9640,t.squareverticalfill=9637,t.squarewhitewithsmallblack=9635,t.srsquare=13275,t.ssabengali=2487,t.ssadeva=2359,t.ssagujarati=2743,t.ssangcieuckorean=12617,t.ssanghieuhkorean=12677,t.ssangieungkorean=12672,t.ssangkiyeokkorean=12594,t.ssangnieunkorean=12645,t.ssangpieupkorean=12611,t.ssangsioskorean=12614,t.ssangtikeutkorean=12600,t.ssuperior=63218,t.sterling=163,t.sterlingmonospace=65505,t.strokelongoverlaycmb=822,t.strokeshortoverlaycmb=821,t.subset=8834,t.subsetnotequal=8842,t.subsetorequal=8838,t.succeeds=8827,t.suchthat=8715,t.suhiragana=12377,t.sukatakana=12473,t.sukatakanahalfwidth=65405,t.sukunarabic=1618,t.summation=8721,t.sun=9788,t.superset=8835,t.supersetnotequal=8843,t.supersetorequal=8839,t.svsquare=13276,t.syouwaerasquare=13180,t.t=116,t.tabengali=2468,t.tackdown=8868,t.tackleft=8867,t.tadeva=2340,t.tagujarati=2724,t.tagurmukhi=2596,t.taharabic=1591,t.tahfinalarabic=65218,t.tahinitialarabic=65219,t.tahiragana=12383,t.tahmedialarabic=65220,t.taisyouerasquare=13181,t.takatakana=12479,t.takatakanahalfwidth=65408,t.tatweelarabic=1600,t.tau=964,t.tav=1514,t.tavdages=64330,t.tavdagesh=64330,t.tavdageshhebrew=64330,t.tavhebrew=1514,t.tbar=359,t.tbopomofo=12554,t.tcaron=357,t.tccurl=680,t.tcedilla=355,t.tcheharabic=1670,t.tchehfinalarabic=64379,t.tchehinitialarabic=64380,t.tchehmedialarabic=64381,t.tcircle=9443,t.tcircumflexbelow=7793,t.tcommaaccent=355,t.tdieresis=7831,t.tdotaccent=7787,t.tdotbelow=7789,t.tecyrillic=1090,t.tedescendercyrillic=1197,t.teharabic=1578,t.tehfinalarabic=65174,t.tehhahinitialarabic=64674,t.tehhahisolatedarabic=64524,t.tehinitialarabic=65175,t.tehiragana=12390,t.tehjeeminitialarabic=64673,t.tehjeemisolatedarabic=64523,t.tehmarbutaarabic=1577,t.tehmarbutafinalarabic=65172,t.tehmedialarabic=65176,t.tehmeeminitialarabic=64676,t.tehmeemisolatedarabic=64526,t.tehnoonfinalarabic=64627,t.tekatakana=12486,t.tekatakanahalfwidth=65411,t.telephone=8481,t.telephoneblack=9742,t.telishagedolahebrew=1440,t.telishaqetanahebrew=1449,t.tencircle=9321,t.tenideographicparen=12841,t.tenparen=9341,t.tenperiod=9361,t.tenroman=8569,t.tesh=679,t.tet=1496,t.tetdagesh=64312,t.tetdageshhebrew=64312,t.tethebrew=1496,t.tetsecyrillic=1205,t.tevirhebrew=1435,t.tevirlefthebrew=1435,t.thabengali=2469,t.thadeva=2341,t.thagujarati=2725,t.thagurmukhi=2597,t.thalarabic=1584,t.thalfinalarabic=65196,t.thanthakhatlowleftthai=63640,t.thanthakhatlowrightthai=63639,t.thanthakhatthai=3660,t.thanthakhatupperleftthai=63638,t.theharabic=1579,t.thehfinalarabic=65178,t.thehinitialarabic=65179,t.thehmedialarabic=65180,t.thereexists=8707,t.therefore=8756,t.theta=952,t.theta1=977,t.thetasymbolgreek=977,t.thieuthacirclekorean=12921,t.thieuthaparenkorean=12825,t.thieuthcirclekorean=12907,t.thieuthkorean=12620,t.thieuthparenkorean=12811,t.thirteencircle=9324,t.thirteenparen=9344,t.thirteenperiod=9364,t.thonangmonthothai=3601,t.thook=429,t.thophuthaothai=3602,t.thorn=254,t.thothahanthai=3607,t.thothanthai=3600,t.thothongthai=3608,t.thothungthai=3606,t.thousandcyrillic=1154,t.thousandsseparatorarabic=1644,t.thousandsseparatorpersian=1644,t.three=51,t.threearabic=1635,t.threebengali=2537,t.threecircle=9314,t.threecircleinversesansserif=10124,t.threedeva=2409,t.threeeighths=8540,t.threegujarati=2793,t.threegurmukhi=2665,t.threehackarabic=1635,t.threehangzhou=12323,t.threeideographicparen=12834,t.threeinferior=8323,t.threemonospace=65299,t.threenumeratorbengali=2550,t.threeoldstyle=63283,t.threeparen=9334,t.threeperiod=9354,t.threepersian=1779,t.threequarters=190,t.threequartersemdash=63198,t.threeroman=8562,t.threesuperior=179,t.threethai=3667,t.thzsquare=13204,t.tihiragana=12385,t.tikatakana=12481,t.tikatakanahalfwidth=65409,t.tikeutacirclekorean=12912,t.tikeutaparenkorean=12816,t.tikeutcirclekorean=12898,t.tikeutkorean=12599,t.tikeutparenkorean=12802,t.tilde=732,t.tildebelowcmb=816,t.tildecmb=771,t.tildecomb=771,t.tildedoublecmb=864,t.tildeoperator=8764,t.tildeoverlaycmb=820,t.tildeverticalcmb=830,t.timescircle=8855,t.tipehahebrew=1430,t.tipehalefthebrew=1430,t.tippigurmukhi=2672,t.titlocyrilliccmb=1155,t.tiwnarmenian=1407,t.tlinebelow=7791,t.tmonospace=65364,t.toarmenian=1385,t.tohiragana=12392,t.tokatakana=12488,t.tokatakanahalfwidth=65412,t.tonebarextrahighmod=741,t.tonebarextralowmod=745,t.tonebarhighmod=742,t.tonebarlowmod=744,t.tonebarmidmod=743,t.tonefive=445,t.tonesix=389,t.tonetwo=424,t.tonos=900,t.tonsquare=13095,t.topatakthai=3599,t.tortoiseshellbracketleft=12308,t.tortoiseshellbracketleftsmall=65117,t.tortoiseshellbracketleftvertical=65081,t.tortoiseshellbracketright=12309,t.tortoiseshellbracketrightsmall=65118,t.tortoiseshellbracketrightvertical=65082,t.totaothai=3605,t.tpalatalhook=427,t.tparen=9391,t.trademark=8482,t.trademarksans=63722,t.trademarkserif=63195,t.tretroflexhook=648,t.triagdn=9660,t.triaglf=9668,t.triagrt=9658,t.triagup=9650,t.ts=678,t.tsadi=1510,t.tsadidagesh=64326,t.tsadidageshhebrew=64326,t.tsadihebrew=1510,t.tsecyrillic=1094,t.tsere=1461,t.tsere12=1461,t.tsere1e=1461,t.tsere2b=1461,t.tserehebrew=1461,t.tserenarrowhebrew=1461,t.tserequarterhebrew=1461,t.tserewidehebrew=1461,t.tshecyrillic=1115,t.tsuperior=63219,t.ttabengali=2463,t.ttadeva=2335,t.ttagujarati=2719,t.ttagurmukhi=2591,t.tteharabic=1657,t.ttehfinalarabic=64359,t.ttehinitialarabic=64360,t.ttehmedialarabic=64361,t.tthabengali=2464,t.tthadeva=2336,t.tthagujarati=2720,t.tthagurmukhi=2592,t.tturned=647,t.tuhiragana=12388,t.tukatakana=12484,t.tukatakanahalfwidth=65410,t.tusmallhiragana=12387,t.tusmallkatakana=12483,t.tusmallkatakanahalfwidth=65391,t.twelvecircle=9323,t.twelveparen=9343,t.twelveperiod=9363,t.twelveroman=8571,t.twentycircle=9331,t.twentyhangzhou=21316,t.twentyparen=9351,t.twentyperiod=9371,t.two=50,t.twoarabic=1634,t.twobengali=2536,t.twocircle=9313,t.twocircleinversesansserif=10123,t.twodeva=2408,t.twodotenleader=8229,t.twodotleader=8229,t.twodotleadervertical=65072,t.twogujarati=2792,t.twogurmukhi=2664,t.twohackarabic=1634,t.twohangzhou=12322,t.twoideographicparen=12833,t.twoinferior=8322,t.twomonospace=65298,t.twonumeratorbengali=2549,t.twooldstyle=63282,t.twoparen=9333,t.twoperiod=9353,t.twopersian=1778,t.tworoman=8561,t.twostroke=443,t.twosuperior=178,t.twothai=3666,t.twothirds=8532,t.u=117,t.uacute=250,t.ubar=649,t.ubengali=2441,t.ubopomofo=12584,t.ubreve=365,t.ucaron=468,t.ucircle=9444,t.ucircumflex=251,t.ucircumflexbelow=7799,t.ucyrillic=1091,t.udattadeva=2385,t.udblacute=369,t.udblgrave=533,t.udeva=2313,t.udieresis=252,t.udieresisacute=472,t.udieresisbelow=7795,t.udieresiscaron=474,t.udieresiscyrillic=1265,t.udieresisgrave=476,t.udieresismacron=470,t.udotbelow=7909,t.ugrave=249,t.ugujarati=2697,t.ugurmukhi=2569,t.uhiragana=12358,t.uhookabove=7911,t.uhorn=432,t.uhornacute=7913,t.uhorndotbelow=7921,t.uhorngrave=7915,t.uhornhookabove=7917,t.uhorntilde=7919,t.uhungarumlaut=369,t.uhungarumlautcyrillic=1267,t.uinvertedbreve=535,t.ukatakana=12454,t.ukatakanahalfwidth=65395,t.ukcyrillic=1145,t.ukorean=12636,t.umacron=363,t.umacroncyrillic=1263,t.umacrondieresis=7803,t.umatragurmukhi=2625,t.umonospace=65365,t.underscore=95,t.underscoredbl=8215,t.underscoremonospace=65343,t.underscorevertical=65075,t.underscorewavy=65103,t.union=8746,t.universal=8704,t.uogonek=371,t.uparen=9392,t.upblock=9600,t.upperdothebrew=1476,t.upsilon=965,t.upsilondieresis=971,t.upsilondieresistonos=944,t.upsilonlatin=650,t.upsilontonos=973,t.uptackbelowcmb=797,t.uptackmod=724,t.uragurmukhi=2675,t.uring=367,t.ushortcyrillic=1118,t.usmallhiragana=12357,t.usmallkatakana=12453,t.usmallkatakanahalfwidth=65385,t.ustraightcyrillic=1199,t.ustraightstrokecyrillic=1201,t.utilde=361,t.utildeacute=7801,t.utildebelow=7797,t.uubengali=2442,t.uudeva=2314,t.uugujarati=2698,t.uugurmukhi=2570,t.uumatragurmukhi=2626,t.uuvowelsignbengali=2498,t.uuvowelsigndeva=2370,t.uuvowelsigngujarati=2754,t.uvowelsignbengali=2497,t.uvowelsigndeva=2369,t.uvowelsigngujarati=2753,t.v=118,t.vadeva=2357,t.vagujarati=2741,t.vagurmukhi=2613,t.vakatakana=12535,t.vav=1493,t.vavdagesh=64309,t.vavdagesh65=64309,t.vavdageshhebrew=64309,t.vavhebrew=1493,t.vavholam=64331,t.vavholamhebrew=64331,t.vavvavhebrew=1520,t.vavyodhebrew=1521,t.vcircle=9445,t.vdotbelow=7807,t.vecyrillic=1074,t.veharabic=1700,t.vehfinalarabic=64363,t.vehinitialarabic=64364,t.vehmedialarabic=64365,t.vekatakana=12537,t.venus=9792,t.verticalbar=124,t.verticallineabovecmb=781,t.verticallinebelowcmb=809,t.verticallinelowmod=716,t.verticallinemod=712,t.vewarmenian=1406,t.vhook=651,t.vikatakana=12536,t.viramabengali=2509,t.viramadeva=2381,t.viramagujarati=2765,t.visargabengali=2435,t.visargadeva=2307,t.visargagujarati=2691,t.vmonospace=65366,t.voarmenian=1400,t.voicediterationhiragana=12446,t.voicediterationkatakana=12542,t.voicedmarkkana=12443,t.voicedmarkkanahalfwidth=65438,t.vokatakana=12538,t.vparen=9393,t.vtilde=7805,t.vturned=652,t.vuhiragana=12436,t.vukatakana=12532,t.w=119,t.wacute=7811,t.waekorean=12633,t.wahiragana=12431,t.wakatakana=12527,t.wakatakanahalfwidth=65436,t.wakorean=12632,t.wasmallhiragana=12430,t.wasmallkatakana=12526,t.wattosquare=13143,t.wavedash=12316,t.wavyunderscorevertical=65076,t.wawarabic=1608,t.wawfinalarabic=65262,t.wawhamzaabovearabic=1572,t.wawhamzaabovefinalarabic=65158,t.wbsquare=13277,t.wcircle=9446,t.wcircumflex=373,t.wdieresis=7813,t.wdotaccent=7815,t.wdotbelow=7817,t.wehiragana=12433,t.weierstrass=8472,t.wekatakana=12529,t.wekorean=12638,t.weokorean=12637,t.wgrave=7809,t.whitebullet=9702,t.whitecircle=9675,t.whitecircleinverse=9689,t.whitecornerbracketleft=12302,t.whitecornerbracketleftvertical=65091,t.whitecornerbracketright=12303,t.whitecornerbracketrightvertical=65092,t.whitediamond=9671,t.whitediamondcontainingblacksmalldiamond=9672,t.whitedownpointingsmalltriangle=9663;t.whitedownpointingtriangle=9661,t.whiteleftpointingsmalltriangle=9667,t.whiteleftpointingtriangle=9665,t.whitelenticularbracketleft=12310,t.whitelenticularbracketright=12311,t.whiterightpointingsmalltriangle=9657,t.whiterightpointingtriangle=9655,t.whitesmallsquare=9643,t.whitesmilingface=9786,t.whitesquare=9633,t.whitestar=9734,t.whitetelephone=9743,t.whitetortoiseshellbracketleft=12312,t.whitetortoiseshellbracketright=12313,t.whiteuppointingsmalltriangle=9653,t.whiteuppointingtriangle=9651,t.wihiragana=12432,t.wikatakana=12528,t.wikorean=12639,t.wmonospace=65367,t.wohiragana=12434,t.wokatakana=12530,t.wokatakanahalfwidth=65382,t.won=8361,t.wonmonospace=65510,t.wowaenthai=3623,t.wparen=9394,t.wring=7832,t.wsuperior=695,t.wturned=653,t.wynn=447,t.x=120,t.xabovecmb=829,t.xbopomofo=12562,t.xcircle=9447,t.xdieresis=7821,t.xdotaccent=7819,t.xeharmenian=1389,t.xi=958,t.xmonospace=65368,t.xparen=9395,t.xsuperior=739,t.y=121,t.yaadosquare=13134,t.yabengali=2479,t.yacute=253,t.yadeva=2351,t.yaekorean=12626,t.yagujarati=2735,t.yagurmukhi=2607,t.yahiragana=12420,t.yakatakana=12516,t.yakatakanahalfwidth=65428,t.yakorean=12625,t.yamakkanthai=3662,t.yasmallhiragana=12419,t.yasmallkatakana=12515,t.yasmallkatakanahalfwidth=65388,t.yatcyrillic=1123,t.ycircle=9448,t.ycircumflex=375,t.ydieresis=255,t.ydotaccent=7823,t.ydotbelow=7925,t.yeharabic=1610,t.yehbarreearabic=1746,t.yehbarreefinalarabic=64431,t.yehfinalarabic=65266,t.yehhamzaabovearabic=1574,t.yehhamzaabovefinalarabic=65162,t.yehhamzaaboveinitialarabic=65163,t.yehhamzaabovemedialarabic=65164,t.yehinitialarabic=65267,t.yehmedialarabic=65268,t.yehmeeminitialarabic=64733,t.yehmeemisolatedarabic=64600,t.yehnoonfinalarabic=64660,t.yehthreedotsbelowarabic=1745,t.yekorean=12630,t.yen=165,t.yenmonospace=65509,t.yeokorean=12629,t.yeorinhieuhkorean=12678,t.yerahbenyomohebrew=1450,t.yerahbenyomolefthebrew=1450,t.yericyrillic=1099,t.yerudieresiscyrillic=1273,t.yesieungkorean=12673,t.yesieungpansioskorean=12675,t.yesieungsioskorean=12674,t.yetivhebrew=1434,t.ygrave=7923,t.yhook=436,t.yhookabove=7927,t.yiarmenian=1397,t.yicyrillic=1111,t.yikorean=12642,t.yinyang=9775,t.yiwnarmenian=1410,t.ymonospace=65369,t.yod=1497,t.yoddagesh=64313,t.yoddageshhebrew=64313,t.yodhebrew=1497,t.yodyodhebrew=1522,t.yodyodpatahhebrew=64287,t.yohiragana=12424,t.yoikorean=12681,t.yokatakana=12520,t.yokatakanahalfwidth=65430,t.yokorean=12635,t.yosmallhiragana=12423,t.yosmallkatakana=12519,t.yosmallkatakanahalfwidth=65390,t.yotgreek=1011,t.yoyaekorean=12680,t.yoyakorean=12679,t.yoyakthai=3618,t.yoyingthai=3597,t.yparen=9396,t.ypogegrammeni=890,t.ypogegrammenigreekcmb=837,t.yr=422,t.yring=7833,t.ysuperior=696,t.ytilde=7929,t.yturned=654,t.yuhiragana=12422,t.yuikorean=12684,t.yukatakana=12518,t.yukatakanahalfwidth=65429,t.yukorean=12640,t.yusbigcyrillic=1131,t.yusbigiotifiedcyrillic=1133,t.yuslittlecyrillic=1127,t.yuslittleiotifiedcyrillic=1129,t.yusmallhiragana=12421,t.yusmallkatakana=12517,t.yusmallkatakanahalfwidth=65389,t.yuyekorean=12683,t.yuyeokorean=12682,t.yyabengali=2527,t.yyadeva=2399,t.z=122,t.zaarmenian=1382,t.zacute=378,t.zadeva=2395,t.zagurmukhi=2651,t.zaharabic=1592,t.zahfinalarabic=65222,t.zahinitialarabic=65223,t.zahiragana=12374,t.zahmedialarabic=65224,t.zainarabic=1586,t.zainfinalarabic=65200,t.zakatakana=12470,t.zaqefgadolhebrew=1429,t.zaqefqatanhebrew=1428,t.zarqahebrew=1432,t.zayin=1494,t.zayindagesh=64310,t.zayindageshhebrew=64310,t.zayinhebrew=1494,t.zbopomofo=12567,t.zcaron=382,t.zcircle=9449,t.zcircumflex=7825,t.zcurl=657,t.zdot=380,t.zdotaccent=380,t.zdotbelow=7827,t.zecyrillic=1079,t.zedescendercyrillic=1177,t.zedieresiscyrillic=1247,t.zehiragana=12380,t.zekatakana=12476,t.zero=48,t.zeroarabic=1632,t.zerobengali=2534,t.zerodeva=2406,t.zerogujarati=2790,t.zerogurmukhi=2662,t.zerohackarabic=1632,t.zeroinferior=8320,t.zeromonospace=65296,t.zerooldstyle=63280,t.zeropersian=1776,t.zerosuperior=8304,t.zerothai=3664,t.zerowidthjoiner=65279,t.zerowidthnonjoiner=8204,t.zerowidthspace=8203,t.zeta=950,t.zhbopomofo=12563,t.zhearmenian=1386,t.zhebrevecyrillic=1218,t.zhecyrillic=1078,t.zhedescendercyrillic=1175,t.zhedieresiscyrillic=1245,t.zihiragana=12376,t.zikatakana=12472,t.zinorhebrew=1454,t.zlinebelow=7829,t.zmonospace=65370,t.zohiragana=12382,t.zokatakana=12478,t.zparen=9397,t.zretroflexhook=656,t.zstroke=438,t.zuhiragana=12378,t.zukatakana=12474,t[".notdef"]=0,t.angbracketleftbig=9001,t.angbracketleftBig=9001,t.angbracketleftbigg=9001,t.angbracketleftBigg=9001,t.angbracketrightBig=9002,t.angbracketrightbig=9002,t.angbracketrightBigg=9002,t.angbracketrightbigg=9002,t.arrowhookleft=8618,t.arrowhookright=8617,t.arrowlefttophalf=8636,t.arrowleftbothalf=8637,t.arrownortheast=8599,t.arrownorthwest=8598,t.arrowrighttophalf=8640,t.arrowrightbothalf=8641,t.arrowsoutheast=8600,t.arrowsouthwest=8601,t.backslashbig=8726,t.backslashBig=8726,t.backslashBigg=8726,t.backslashbigg=8726,t.bardbl=8214,t.bracehtipdownleft=65079,t.bracehtipdownright=65079,t.bracehtipupleft=65080,t.bracehtipupright=65080,t.braceleftBig=123,t.braceleftbig=123,t.braceleftbigg=123,t.braceleftBigg=123,t.bracerightBig=125,t.bracerightbig=125,t.bracerightbigg=125,t.bracerightBigg=125,t.bracketleftbig=91,t.bracketleftBig=91,t.bracketleftbigg=91,t.bracketleftBigg=91,t.bracketrightBig=93,t.bracketrightbig=93,t.bracketrightbigg=93,t.bracketrightBigg=93,t.ceilingleftbig=8968,t.ceilingleftBig=8968,t.ceilingleftBigg=8968,t.ceilingleftbigg=8968,t.ceilingrightbig=8969,t.ceilingrightBig=8969,t.ceilingrightbigg=8969,t.ceilingrightBigg=8969,t.circledotdisplay=8857,t.circledottext=8857,t.circlemultiplydisplay=8855,t.circlemultiplytext=8855,t.circleplusdisplay=8853,t.circleplustext=8853,t.contintegraldisplay=8750,t.contintegraltext=8750,t.coproductdisplay=8720,t.coproducttext=8720,t.floorleftBig=8970,t.floorleftbig=8970,t.floorleftbigg=8970,t.floorleftBigg=8970,t.floorrightbig=8971,t.floorrightBig=8971,t.floorrightBigg=8971,t.floorrightbigg=8971,t.hatwide=770,t.hatwider=770,t.hatwidest=770,t.intercal=7488,t.integraldisplay=8747,t.integraltext=8747,t.intersectiondisplay=8898,t.intersectiontext=8898,t.logicalanddisplay=8743,t.logicalandtext=8743,t.logicalordisplay=8744,t.logicalortext=8744,t.parenleftBig=40,t.parenleftbig=40,t.parenleftBigg=40,t.parenleftbigg=40,t.parenrightBig=41,t.parenrightbig=41,t.parenrightBigg=41,t.parenrightbigg=41,t.prime=8242,t.productdisplay=8719,t.producttext=8719,t.radicalbig=8730,t.radicalBig=8730,t.radicalBigg=8730,t.radicalbigg=8730,t.radicalbt=8730,t.radicaltp=8730,t.radicalvertex=8730,t.slashbig=47,t.slashBig=47,t.slashBigg=47,t.slashbigg=47,t.summationdisplay=8721,t.summationtext=8721,t.tildewide=732,t.tildewider=732,t.tildewidest=732,t.uniondisplay=8899,t.unionmultidisplay=8846,t.unionmultitext=8846,t.unionsqdisplay=8852,t.unionsqtext=8852,t.uniontext=8899,t.vextenddouble=8741,t.vextendsingle=8739}),getDingbatsGlyphsUnicode=getLookupTableFactory(function(t){t.space=32,t.a1=9985,t.a2=9986,t.a202=9987,t.a3=9988,t.a4=9742,t.a5=9990,t.a119=9991,t.a118=9992,t.a117=9993,t.a11=9755,t.a12=9758,t.a13=9996,t.a14=9997,t.a15=9998,t.a16=9999,t.a105=1e4,t.a17=10001,t.a18=10002,t.a19=10003,t.a20=10004,t.a21=10005,t.a22=10006,t.a23=10007,t.a24=10008,t.a25=10009,t.a26=10010,t.a27=10011,t.a28=10012,t.a6=10013,t.a7=10014,t.a8=10015,t.a9=10016,t.a10=10017,t.a29=10018,t.a30=10019,t.a31=10020,t.a32=10021,t.a33=10022,t.a34=10023,t.a35=9733,t.a36=10025,t.a37=10026,t.a38=10027,t.a39=10028,t.a40=10029,t.a41=10030,t.a42=10031,t.a43=10032,t.a44=10033,t.a45=10034,t.a46=10035,t.a47=10036,t.a48=10037,t.a49=10038,t.a50=10039,t.a51=10040,t.a52=10041,t.a53=10042,t.a54=10043,t.a55=10044,t.a56=10045,t.a57=10046,t.a58=10047,t.a59=10048,t.a60=10049,t.a61=10050,t.a62=10051,t.a63=10052,t.a64=10053,t.a65=10054,t.a66=10055,t.a67=10056,t.a68=10057,t.a69=10058,t.a70=10059,t.a71=9679,t.a72=10061,t.a73=9632,t.a74=10063,t.a203=10064,t.a75=10065,t.a204=10066,t.a76=9650,t.a77=9660,t.a78=9670,t.a79=10070,t.a81=9687,t.a82=10072,t.a83=10073,t.a84=10074,t.a97=10075,t.a98=10076,t.a99=10077,t.a100=10078,t.a101=10081,t.a102=10082,t.a103=10083,t.a104=10084,t.a106=10085,t.a107=10086,t.a108=10087,t.a112=9827,t.a111=9830,t.a110=9829,t.a109=9824,t.a120=9312,t.a121=9313,t.a122=9314,t.a123=9315,t.a124=9316,t.a125=9317,t.a126=9318,t.a127=9319,t.a128=9320,t.a129=9321,t.a130=10102,t.a131=10103,t.a132=10104,t.a133=10105,t.a134=10106,t.a135=10107,t.a136=10108,t.a137=10109,t.a138=10110,t.a139=10111,t.a140=10112,t.a141=10113,t.a142=10114,t.a143=10115,t.a144=10116,t.a145=10117,t.a146=10118,t.a147=10119,t.a148=10120,t.a149=10121,t.a150=10122,t.a151=10123,t.a152=10124,t.a153=10125,t.a154=10126,t.a155=10127,t.a156=10128,t.a157=10129,t.a158=10130,t.a159=10131,t.a160=10132,t.a161=8594,t.a163=8596,t.a164=8597,t.a196=10136,t.a165=10137,t.a192=10138,t.a166=10139,t.a167=10140,t.a168=10141,t.a169=10142,t.a170=10143,t.a171=10144,t.a172=10145,t.a173=10146,t.a162=10147,t.a174=10148,t.a175=10149,t.a176=10150,t.a177=10151,t.a178=10152,t.a179=10153,t.a193=10154,t.a180=10155,t.a199=10156,t.a181=10157,t.a200=10158,t.a182=10159,t.a201=10161,t.a183=10162,t.a184=10163,t.a197=10164,t.a185=10165,t.a194=10166,t.a198=10167,t.a186=10168,t.a195=10169,t.a187=10170,t.a188=10171,t.a189=10172,t.a190=10173,t.a191=10174,t.a89=10088,t.a90=10089,t.a93=10090,t.a94=10091,t.a91=10092,t.a92=10093,t.a205=10094,t.a85=10095,t.a206=10096,t.a86=10097,t.a87=10098,t.a88=10099,t.a95=10100,t.a96=10101,t[".notdef"]=0}),getSpecialPUASymbols=getLookupTableFactory(function(t){t[63721]=169,t[63193]=169,t[63720]=174,t[63194]=174,t[63722]=8482,t[63195]=8482,t[63729]=9127,t[63730]=9128,t[63731]=9129,t[63740]=9131,t[63741]=9132,t[63742]=9133,t[63726]=9121,t[63727]=9122,t[63728]=9123,t[63737]=9124,t[63738]=9125,t[63739]=9126,t[63723]=9115,t[63724]=9116,t[63725]=9117,t[63734]=9118,t[63735]=9119,t[63736]=9120});function mapSpecialUnicodeValues(code){return 65520<=code&&code<=65535?0:62976<=code&&code<=63743?getSpecialPUASymbols()[code]||code:173===code?45:code}function getUnicodeForGlyph(name,glyphsUnicodeMap){glyphsUnicodeMap=glyphsUnicodeMap[name];if(void 0!==glyphsUnicodeMap)return glyphsUnicodeMap;if(name&&"u"===name[0]){var hexStr,nameLen=name.length;if(7===nameLen&&"n"===name[1]&&"i"===name[2])hexStr=name.substring(3);else{if(!(5<=nameLen&&nameLen<=7))return-1;hexStr=name.substring(1)}if(hexStr===hexStr.toUpperCase()&&0<=(glyphsUnicodeMap=parseInt(hexStr,16)))return glyphsUnicodeMap}return-1}var UnicodeRanges=[[0,127],[128,255],[256,383],[384,591],[592,687,7424,7551,7552,7615],[688,767,42752,42783],[768,879,7616,7679],[880,1023],[11392,11519],[1024,1279,1280,1327,11744,11775,42560,42655],[1328,1423],[1424,1535],[42240,42559],[1536,1791,1872,1919],[1984,2047],[2304,2431],[2432,2559],[2560,2687],[2688,2815],[2816,2943],[2944,3071],[3072,3199],[3200,3327],[3328,3455],[3584,3711],[3712,3839],[4256,4351,11520,11567],[6912,7039],[4352,4607],[7680,7935,11360,11391,42784,43007],[7936,8191],[8192,8303,11776,11903],[8304,8351],[8352,8399],[8400,8447],[8448,8527],[8528,8591],[8592,8703,10224,10239,10496,10623,11008,11263],[8704,8959,10752,11007,10176,10223,10624,10751],[8960,9215],[9216,9279],[9280,9311],[9312,9471],[9472,9599],[9600,9631],[9632,9727],[9728,9983],[9984,10175],[12288,12351],[12352,12447],[12448,12543,12784,12799],[12544,12591,12704,12735],[12592,12687],[43072,43135],[12800,13055],[13056,13311],[44032,55215],[55296,57343],[67840,67871],[19968,40959,11904,12031,12032,12255,12272,12287,13312,19903,131072,173791,12688,12703],[57344,63743],[12736,12783,63744,64255,194560,195103],[64256,64335],[64336,65023],[65056,65071],[65040,65055],[65104,65135],[65136,65279],[65280,65519],[65520,65535],[3840,4095],[1792,1871],[1920,1983],[3456,3583],[4096,4255],[4608,4991,4992,5023,11648,11743],[5024,5119],[5120,5759],[5760,5791],[5792,5887],[6016,6143],[6144,6319],[10240,10495],[40960,42127],[5888,5919,5920,5951,5952,5983,5984,6015],[66304,66351],[66352,66383],[66560,66639],[118784,119039,119040,119295,119296,119375],[119808,120831],[1044480,1048573],[65024,65039,917760,917999],[917504,917631],[6400,6479],[6480,6527],[6528,6623],[6656,6687],[11264,11359],[11568,11647],[19904,19967],[43008,43055],[65536,65663,65664,65791,65792,65855],[65856,65935],[66432,66463],[66464,66527],[66640,66687],[66688,66735],[67584,67647],[68096,68191],[119552,119647],[73728,74751,74752,74879],[119648,119679],[7040,7103],[7168,7247],[7248,7295],[43136,43231],[43264,43311],[43312,43359],[43520,43615],[65936,65999],[66e3,66047],[66208,66271,66176,66207,67872,67903],[127024,127135,126976,127023]];function getUnicodeRangeFor(value){var lastPosition=1=range[i]&&value<=range[i+1])return lastPosition;for(var _i22=0,_ii6=UnicodeRanges.length;_i22<_ii6;_i22++)for(var _range=UnicodeRanges[_i22],j=0,jj=_range.length;j=_range[j]&&value<=_range[j+1])return _i22;return-1}var SpecialCharRegExp=new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$","u"),CategoryCache=new Map;function getCharUnicodeCategory(char){var cachedCategory=CategoryCache.get(char);return cachedCategory||(cachedCategory={isWhitespace:!(null==(cachedCategory=char.match(SpecialCharRegExp))||!cachedCategory[1]),isZeroWidthDiacritic:!(null==cachedCategory||!cachedCategory[2]),isInvisibleFormatMark:!(null==cachedCategory||!cachedCategory[3])},CategoryCache.set(char,cachedCategory),cachedCategory)}function clearUnicodeCaches(){CategoryCache.clear()}var SEAC_ANALYSIS_ENABLED=!0,FontFlags={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144},MacStandardGlyphOrdering=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function recoverGlyphName(name,glyphsUnicodeMap){if(void 0===glyphsUnicodeMap[name]){var unicode=getUnicodeForGlyph(name,glyphsUnicodeMap);if(-1!==unicode)for(var key in glyphsUnicodeMap)if(glyphsUnicodeMap[key]===unicode)return key;info("Unable to recover a standard glyph name for: "+name)}return name}function type1FontGlyphMapping(properties,builtInEncoding,glyphNames){var charCode,baseEncoding,charCodeToGlyphId=Object.create(null),isSymbolicFont=!!(properties.flags&FontFlags.Symbolic);if(properties.isInternalFont)for(baseEncoding=builtInEncoding,charCode=0;charCode{t[8211]=65074,t[8212]=65073,t[8229]=65072,t[8230]=65049,t[12289]=65041,t[12290]=65042,t[12296]=65087,t[12297]=65088,t[12298]=65085,t[12299]=65086,t[12300]=65089,t[12301]=65090,t[12302]=65091,t[12303]=65092,t[12304]=65083,t[12305]=65084,t[12308]=65081,t[12309]=65082,t[12310]=65047,t[12311]=65048,t[65103]=65076,t[65281]=65045,t[65288]=65077,t[65289]=65078,t[65292]=65040,t[65306]=65043,t[65307]=65044,t[65311]=65046,t[65339]=65095,t[65341]=65096,t[65343]=65075,t[65371]=65079,t[65373]=65080}),MAX_SIZE_TO_COMPILE=1e3;function compileType3Glyph(_ref14){var{data:_ref14,width,height}=_ref14;if(MAX_SIZE_TO_COMPILE>=1;var count=0;for(0!==data[pos=0]&&(points[0]=1,++count),j=1;j>2)+(data[pos+1]?4:0)+(data[pos-lineSize+1]?8:0)]&&(points[j0+j]=POINT_TYPES[sum],++count),pos++;if(data[pos-lineSize]!==data[pos]&&(points[j0+j]=data[pos]?2:4,++count),1e3>4)>>2|type<<2,pathBuf.push(DrawOPS.lineTo,a*(x=p%width1)+c*(y=p/width1|0)+e,b*x+d*y+f),points[p]||--count,p0!==p);--i}}return[OPS.rawFillPath,[new Float32Array(pathBuf)],new Float32Array([0,0,width,height])]}var ISOAdobeCharset=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],ExpertCharset=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],ExpertSubsetCharset=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"],MAX_SUBR_NESTING=10,CFFStandardStrings=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],NUM_STANDARD_CFF_STRINGS=391,CharstringValidationData=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],CharstringValidationData12=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]+stack[index-1]}},{id:"sub",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]-stack[index-1]}},{id:"div",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]/stack[index-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn(stack,index){stack[index-1]=-stack[index-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]*stack[index-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];class CFFParser{constructor(file,properties,seacAnalysisEnabled){this.bytes=file.getBytes(),this.properties=properties,this.seacAnalysisEnabled=!!seacAnalysisEnabled}parse(){var charset,encoding,properties=this.properties,cff=new CFF,header=(this.cff=cff,this.parseHeader()),nameIndex=this.parseIndex(header.endPos),topDictIndex=this.parseIndex(nameIndex.endPos),stringIndex=this.parseIndex(topDictIndex.endPos),globalSubrIndex=this.parseIndex(stringIndex.endPos),topDictIndex=this.parseDict(topDictIndex.obj.get(0)),topDictIndex=this.createDict(CFFTopDict,topDictIndex,cff.strings),header=(cff.header=header.obj,cff.names=this.parseNameIndex(nameIndex.obj),cff.strings=this.parseStringIndex(stringIndex.obj),cff.topDict=topDictIndex,cff.globalSubrIndex=globalSubrIndex.obj,this.parsePrivateDict(cff.topDict),cff.isCIDFont=topDictIndex.hasName("ROS"),topDictIndex.getByName("CharStrings")),nameIndex=this.parseIndex(header).obj,stringIndex=topDictIndex.getByName("FontMatrix"),header=(stringIndex&&(properties.fontMatrix=stringIndex),topDictIndex.getByName("FontBBox"));if(header&&(properties.ascent=Math.max(header[3],header[1]),properties.descent=Math.min(header[1],header[3]),properties.ascentScaled=!0),cff.isCIDFont){for(var fdArrayIndex=this.parseIndex(topDictIndex.getByName("FDArray")).obj,i=0,ii=fdArrayIndex.count;i>4,b=15&b;if(15==b1)break;if(str+=lookup[b1],15==b)break;str+=lookup[b]}return parseFloat(str)}for(var operands=[],entries=[],pos=0,end=dict.length;posMAX_SUBR_NESTING)return!1;for(var stackSize=state.stackSize,stack=state.stack,length=data.length,j=0;j>1,0===state.hints){data.copyWithin(j-1,j,-1),--j,--length;continue}j+=state.hints+7>>3,stackSize%=2,validationCommand=CharstringValidationData[value]}else{if(10===value||29===value){q=10===value?localSubrIndex:globalSubrIndex;if(!q)return warn("Missing subrsIndex for "+(validationCommand=CharstringValidationData[value]).id),!1;var bias=32768,bias=(q.count<1240?bias=107:q.count<33900&&(bias=1131),stack[--stackSize]+bias);if(bias<0||bias>=q.count||isNaN(bias))return warn("Out of bounds subrIndex for "+(validationCommand=CharstringValidationData[value]).id),!1;if(state.stackSize=stackSize,state.callDepth++,!this.parseCharString(state,q.get(bias),localSubrIndex,globalSubrIndex))return!1;state.callDepth--,stackSize=state.stackSize;continue}if(11===value)return state.stackSize=stackSize,!0;if(0===value&&j===data.length)data[j-1]=14,validationCommand=CharstringValidationData[14];else{if(9===value){data.copyWithin(j-1,j,-1),--j,--length;continue}validationCommand=CharstringValidationData[value]}}if(validationCommand){if(validationCommand.stem&&(state.hints+=stackSize>>1,3===value||23===value?state.hasVStems=!0:!state.hasVStems||1!==value&&18!==value||(warn("CFF stem hints are in wrong order"),data[j-1]=1===value?3:23)),"min"in validationCommand&&!state.undefStack&&stackSize=fdArray.length&&(warn("Invalid fd index for glyph index."),valid=!1),valid&&(localSubrToUse=(privateDictToUse=fdArray[fdIndex].privateDict).subrsIndex)):localSubrIndex&&(localSubrToUse=localSubrIndex),valid=valid&&this.parseCharString(state,charstring,localSubrToUse,globalSubrIndex),null!==state.width?(fdIndex=privateDictToUse.getByName("nominalWidthX"),widths[i]=fdIndex+state.width):(charstring=privateDictToUse.getByName("defaultWidthX"),widths[i]=charstring),null!==state.seac&&(seacs[i]=state.seac),valid||charStrings.set(i,new Uint8Array([14]))}return{charStrings:charStrings,seacs:seacs,widths:widths}}emptyPrivateDictionary(parentDict){var privateDict=this.createDict(CFFPrivateDict,[],parentDict.strings);parentDict.setByKey(18,[0,0]),parentDict.privateDict=privateDict}parsePrivateDict(parentDict){var size,relativeOffset,privateOffset;parentDict.hasName("Private")?(privateOffset=parentDict.getByName("Private"),Array.isArray(privateOffset)&&2===privateOffset.length?(size=privateOffset[0],privateOffset=privateOffset[1],0===size||privateOffset>=this.bytes.length?this.emptyPrivateDictionary(parentDict):(size=this.bytes.subarray(privateOffset,privateOffset+size),size=this.parseDict(size),size=this.createDict(CFFPrivateDict,size,parentDict.strings),0===(parentDict.privateDict=size).getByName("ExpansionFactor")&&size.setByName("ExpansionFactor",.06),size.getByName("Subrs")&&(relativeOffset=privateOffset+(privateOffset=size.getByName("Subrs")),0===privateOffset||relativeOffset>=this.bytes.length?this.emptyPrivateDictionary(parentDict):(privateOffset=this.parseIndex(relativeOffset),size.subrsIndex=privateOffset.obj)))):parentDict.removeByName("Private")):this.emptyPrivateDictionary(parentDict)}parseCharsets(pos,length,strings,cid){if(0===pos)return new CFFCharset(!0,CFFCharsetPredefinedTypes.ISO_ADOBE,ISOAdobeCharset);if(1===pos)return new CFFCharset(!0,CFFCharsetPredefinedTypes.EXPERT,ExpertCharset);if(2===pos)return new CFFCharset(!0,CFFCharsetPredefinedTypes.EXPERT_SUBSET,ExpertSubsetCharset);var id,count,i,bytes=this.bytes,start=pos,format=bytes[pos++],charset=[cid?0:".notdef"];switch(--length,format){case 0:for(i=0;i=this.charStrings.count)&&0=this.fdSelect.length?-1:this.fdSelect[glyphIndex]}}class CFFOffsetTracker{constructor(){this.offsets=Object.create(null)}isTracking(key){return key in this.offsets}track(key,location){if(key in this.offsets)throw new FormatError("Already tracking location of ".concat(key));this.offsets[key]=location}offset(value){for(var key in this.offsets)this.offsets[key]+=value}setEntryLocation(key,values,output){if(!(key in this.offsets))throw new FormatError("Not tracking location of ".concat(key));for(var data=output.data,dataOffset=this.offsets[key],i=0,ii=values.length;i>24&255,data[offset2]=value>>16&255,data[offset3]=value>>8&255,data[offset4]=255&value}}}class CFFCompiler{constructor(cff){this.cff=cff}compile(){var cff=this.cff,output={data:[],length:0,add(data){try{this.data.push(...data)}catch(_unused7){this.data=this.data.concat(data)}this.length=this.data.length}},header=this.compileHeader(cff.header),header=(output.add(header),this.compileNameIndex(cff.names));if(output.add(header),cff.isCIDFont&&cff.topDict.hasName("FontMatrix")){var subDict,base=cff.topDict.getByName("FontMatrix");cff.topDict.removeByName("FontMatrix");for(subDict of cff.fdArray){var matrix=base.slice(0);subDict.hasName("FontMatrix")&&(matrix=Util.transform(matrix,subDict.getByName("FontMatrix"))),subDict.setByName("FontMatrix",matrix)}}var header=cff.topDict.getByName("XUID"),header=(16<(null==header?void 0:header.length)&&cff.topDict.removeByName("XUID"),cff.topDict.setByName("charset",0),this.compileTopDicts([cff.topDict],output.length,cff.isCIDFont)),topDictTracker=(output.add(header.output),header.trackers[0]),stringIndex=this.compileStringIndex(cff.strings.strings),stringIndex=(output.add(stringIndex),this.compileIndex(cff.globalSubrIndex)),stringIndex=(output.add(stringIndex),cff.encoding&&cff.topDict.hasName("Encoding")&&(cff.encoding.predefined?topDictTracker.setEntryLocation("Encoding",[cff.encoding.format],output):(stringIndex=this.compileEncoding(cff.encoding),topDictTracker.setEntryLocation("Encoding",[output.length],output),output.add(stringIndex))),this.compileCharset(cff.charset,cff.charStrings.count,cff.strings,cff.isCIDFont)),stringIndex=(topDictTracker.setEntryLocation("charset",[output.length],output),output.add(stringIndex),this.compileCharStrings(cff.charStrings));return topDictTracker.setEntryLocation("CharStrings",[output.length],output),output.add(stringIndex),cff.isCIDFont&&(topDictTracker.setEntryLocation("FDSelect",[output.length],output),stringIndex=this.compileFDSelect(cff.fdSelect),output.add(stringIndex),header=this.compileTopDicts(cff.fdArray,output.length,!0),topDictTracker.setEntryLocation("FDArray",[output.length],output),output.add(header.output),stringIndex=header.trackers,this.compilePrivateDicts(cff.fdArray,stringIndex,output)),this.compilePrivateDicts([cff.topDict],[topDictTracker],output),output.add([0]),output.data}encodeNumber(value){return Number.isInteger(value)?this.encodeInteger(value):this.encodeFloat(value)}static get EncodeFloatRegExp(){return shadow(this,"EncodeFloatRegExp",/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/)}encodeFloat(num){for(var value=num.toString(),m=CFFCompiler.EncodeFloatRegExp.exec(value),nibbles=(m&&(m=parseFloat("1e"+((m[2]?+m[2]:0)+m[1].length)),value=(Math.round(num*m)/m).toString()),""),i=0,ii=value.length;i>8),255&value]:-1131<=value&&value<=-108?[251+((value=-value-108)>>8),255&value]:-32768<=value&&value<=32767?[28,value>>8&255,255&value]:[29,value>>24&255,value>>16&255,value>>8&255,255&value];return value}compileHeader(header){return[header.major,header.minor,4,header.offSize]}compileNameIndex(names){var name,nameIndex=new CFFIndex;for(name of names){for(var length=Math.min(name.length,127),sanitizedName=new Array(length),j=0;j"===char||"/"===char||"%"===char)&&(char="_"),sanitizedName[j]=char}""===(sanitizedName=sanitizedName.join(""))&&(sanitizedName="Bad_Font_Name"),nameIndex.add(stringToBytes(sanitizedName))}return this.compileIndex(nameIndex)}compileTopDicts(dicts,length,removeCidKeys){var fontDict,fontDictTrackers=[],fdArrayIndex=new CFFIndex;for(fontDict of dicts){removeCidKeys&&(fontDict.removeByName("CIDFontVersion"),fontDict.removeByName("CIDFontRevision"),fontDict.removeByName("CIDFontType"),fontDict.removeByName("CIDCount"),fontDict.removeByName("UIDBase"));var fontDictTracker=new CFFOffsetTracker,fontDictData=this.compileDict(fontDict,fontDictTracker);fontDictTrackers.push(fontDictTracker),fdArrayIndex.add(fontDictData),fontDictTracker.offset(length)}return{trackers:fontDictTrackers,output:fdArrayIndex=this.compileIndex(fdArrayIndex,fontDictTrackers)}}compilePrivateDicts(dicts,trackers,output){for(var i=0,ii=dicts.length;i>8&255,255&isCIDFont]);else for(var charsetIndex=(out=new Uint8Array(1+2*numGlyphs))[0]=0,numCharsets=charset.charset.length,warned=!1,i=1;i>8&255,out[i+1]=255&sid}return this.compileTypedArray(out)}compileEncoding(encoding){return this.compileTypedArray(encoding.raw)}compileFDSelect(fdSelect){var out,format=fdSelect.format;switch(format){case 0:for((out=new Uint8Array(1+fdSelect.fdSelect.length))[0]=format,i=0;i>8&255,255&i,currentFD),lastFD=currentFD)}var numRanges=(ranges.length-3)/3;ranges[1]=numRanges>>8&255,ranges[2]=255&numRanges,ranges.push(i>>8&255,255&i),out=new Uint8Array(ranges)}return this.compileTypedArray(out)}compileTypedArray(data){return Array.from(data)}compileIndex(index){var trackers=1>8&255,255&count],lastOffset=1,i=0;i>8&255,255&relativeOffset):3===offsetSize?data.push(relativeOffset>>16&255,relativeOffset>>8&255,255&relativeOffset):data.push(relativeOffset>>>24&255,relativeOffset>>16&255,relativeOffset>>8&255,255&relativeOffset),objects[i]&&(relativeOffset+=objects[i].length);for(i=0;i=this.firstChar&&v<=this.lastChar?v:-1}amend(map){unreachable("Should not call amend()")}}class CFFFont{constructor(file,properties){this.properties=properties;var parser=new CFFParser(file,properties,SEAC_ANALYSIS_ENABLED),parser=(this.cff=parser.parse(),this.cff.duplicateFirstGlyph(),new CFFCompiler(this.cff));this.seacs=this.cff.seacs;try{this.data=parser.compile()}catch(_unused8){warn("Failed to compile font "+properties.loadedName),this.data=file}this._createBuiltInEncoding()}get numGlyphs(){return this.cff.charStrings.count}getCharset(){return this.cff.charset.charset}getGlyphMapping(){var glyphId,cff=this.cff,properties=this.properties,{cidToGidMap,cMap}=properties,charsets=cff.charset.charset;if(properties.composite){if(0<(null==cidToGidMap?void 0:cidToGidMap.length))for(var invCidToGidMap=Object.create(null),i=0,ii=cidToGidMap.length;i>1,p=start+offset+14,ranges=[],i=0;i2*readUint16(data,offset)),glyphs=[],startOffset=itemDecode(loca,0),j=itemSize;j>1;code>1,stackClean=!0;break;case 4:y+=stack.pop(),moveTo(x,y),stackClean=!0;break;case 5:for(;0Math.abs(y-y0)?x+=stack.shift():y+=stack.shift(),bezierCurveTo(xa,ya,xb,yb,x,y);break;default:throw new FormatError("unknown operator: 12 ".concat(v))}break;case 14:return void(4<=stack.length&&(_fontDict$privateDict=stack.pop(),fdIndex=stack.pop(),y=stack.pop(),x=stack.pop(),cmds.save(),cmds.translate(x,y),subrs=lookupCmap(font.cmap,String.fromCharCode(font.glyphNameMap[StandardEncoding[_fontDict$privateDict]])),compileCharString(font.glyphs[subrs.glyphId],cmds,font,subrs.glyphId),cmds.restore(),subrs=lookupCmap(font.cmap,String.fromCharCode(font.glyphNameMap[StandardEncoding[fdIndex]])),compileCharString(font.glyphs[subrs.glyphId],cmds,font,subrs.glyphId)));case 18:stems+=stack.length>>1,stackClean=!0;break;case 19:case 20:i+=(stems+=stack.length>>1)+7>>3,stackClean=!0;break;case 21:y+=stack.pop(),moveTo(x+=stack.pop(),y),stackClean=!0;break;case 22:moveTo(x+=stack.pop(),y),stackClean=!0;break;case 23:stems+=stack.length>>1,stackClean=!0;break;case 24:for(;2g.getSize()+3&-4))}write(){var glyph,totalSize=this.getSize(),glyfTable=new DataView(new ArrayBuffer(totalSize)),isLocationLong=131070>1);return{isLocationLong:isLocationLong,loca:new Uint8Array(locaTable.buffer),glyf:new Uint8Array(glyfTable.buffer)}}scale(factors){for(var i=0,ii=this.glyphs.length;ic.getSize())),this.header.getSize()+size):0}write(pos,buf){if(!this.header)return 0;var spos=pos;if(pos+=this.header.write(pos,buf),this.simple)pos+=this.simple.write(pos,buf);else for(var composite of this.composites)pos+=composite.write(pos,buf);return pos-spos}scale(factor){if(this.header){var xMiddle=(this.header.xMin+this.header.xMax)/2;if(this.header.scale(xMiddle,factor),this.simple)this.simple.scale(xMiddle,factor);else for(var composite of this.composites)composite.scale(xMiddle,factor)}}}class GlyphHeader{constructor(_ref18){var{numberOfContours:_ref18,xMin,yMin,xMax,yMax}=_ref18;this.numberOfContours=_ref18,this.xMin=xMin,this.yMin=yMin,this.xMax=xMax,this.yMax=yMax}static parse(pos,glyf){return[10,new GlyphHeader({numberOfContours:glyf.getInt16(pos),xMin:glyf.getInt16(pos+2),yMin:glyf.getInt16(pos+4),xMax:glyf.getInt16(pos+6),yMax:glyf.getInt16(pos+8)})]}getSize(){return 10}write(pos,buf){return buf.setInt16(pos,this.numberOfContours),buf.setInt16(pos+2,this.xMin),buf.setInt16(pos+4,this.yMin),buf.setInt16(pos+6,this.xMax),buf.setInt16(pos+8,this.yMax),10}scale(x,factor){this.xMin=Math.round(x+(this.xMin-x)*factor),this.xMax=Math.round(x+(this.xMax-x)*factor)}}class Contour{constructor(_ref19){var{flags:_ref19,xCoordinates,yCoordinates}=_ref19;this.xCoordinates=xCoordinates,this.yCoordinates=yCoordinates,this.flags=_ref19}}class SimpleGlyph{constructor(_ref20){var{contours:_ref20,instructions}=_ref20;this.contours=_ref20,this.instructions=instructions}static parse(pos,glyf,numberOfContours){for(var endPtsOfContours=[],i=0;i>8&255,dest[offset+1]=255&num}function writeInt32(dest,offset,num){dest[offset]=num>>24&255,dest[offset+1]=num>>16&255,dest[offset+2]=num>>8&255,dest[offset+3]=255&num}function writeData(dest,offset,data){if(data instanceof Uint8Array)dest.set(data,offset);else if("string"==typeof data)for(var i=0,ii=data.length;i>>0;tableOffsets.push(offset+=paddedLength)}var file=new Uint8Array(offset);for(i=0;i>>0;writeInt32(file,offset+4,checksum),writeInt32(file,offset+8,tableOffsets[i]),writeInt32(file,offset+12,tables[tableName].length),offset+=OTF_TABLE_ENTRY_SIZE}return file}addTable(tag,data){if(tag in this.tables)throw new Error("Table "+tag+" already exists");this.tables[tag]=data}}var HINTING_ENABLED=!1,COMMAND_MAP={hstem:[1],vstem:[3],vmoveto:[4],rlineto:[5],hlineto:[6],vlineto:[7],rrcurveto:[8],callsubr:[10],flex:[12,35],drop:[12,18],endchar:[14],rmoveto:[21],hmoveto:[22],vhcurveto:[30],hvcurveto:[31]};class Type1CharString{constructor(){this.width=0,this.lsb=0,this.flexing=!1,this.output=[],this.stack=[]}convert(encoded,subrs,seacAnalysisEnabled){for(var count=encoded.length,error=!1,i=0;i>8&255,255&value):this.output.push(255,(value=65536*value|0)>>24&255,value>>16&255,value>>8&255,255&value)}return this.output.push(...command),keepStack?this.stack.splice(start,howManyArgs):this.stack.length=0,!1}}var EEXEC_ENCRYPT_KEY=55665,CHAR_STRS_ENCRYPT_KEY=4330;function isHexDigit(code){return 48<=code&&code<=57||65<=code&&code<=70||97<=code&&code<=102}function decrypt(data,key,discardNumber){if(discardNumber>=data.length)return new Uint8Array(0);for(var j,r=0|key,i=0;i>8,r=52845*(value+r)+22719&65535}return decrypted}function decryptAscii(data,key,discardNumber){for(var r=0|key,count=data.length,decrypted=new Uint8Array(count>>>1),i=0,j=0;i>8,r=52845*(digit1+r)+22719&65535)}}return decrypted.slice(discardNumber,j)}function isSpecial(c){return 47===c||91===c||93===c||123===c||125===c||40===c||41===c}class Type1Parser{constructor(stream,encrypted,seacAnalysisEnabled){var isBinary;encrypted&&(isBinary=!((isHexDigit((encrypted=stream.getBytes())[0])||isWhiteSpace(encrypted[0]))&&isHexDigit(encrypted[1])&&isHexDigit(encrypted[2])&&isHexDigit(encrypted[3])&&isHexDigit(encrypted[4])&&isHexDigit(encrypted[5])&&isHexDigit(encrypted[6])&&isHexDigit(encrypted[7])),stream=new Stream((isBinary?decrypt:decryptAscii)(encrypted,EEXEC_ENCRYPT_KEY,4))),this.seacAnalysisEnabled=!!seacAnalysisEnabled,this.stream=stream,this.nextChar()}readNumberArray(){this.getToken();for(var array=[];;){var token=this.getToken();if(null===token||"]"===token||"}"===token)break;array.push(parseFloat(token||0))}return array}readNumber(){var token=this.getToken();return parseFloat(token||0)}readInt(){var token=this.getToken();return 0|parseInt(token||0,10)}readBoolean(){return"true"===this.getToken()?1:0}nextChar(){return this.currentChar=this.stream.getByte()}prevChar(){return this.stream.skip(-2),this.currentChar=this.stream.getByte()}getToken(){for(var comment=!1,ch=this.currentChar;;){if(-1===ch)return null;if(comment)10!==ch&&13!==ch||(comment=!1);else if(37===ch)comment=!0;else if(!isWhiteSpace(ch))break;ch=this.nextChar()}if(isSpecial(ch))return this.nextChar(),String.fromCharCode(ch);for(var token="";token+=String.fromCharCode(ch),0<=(ch=this.nextChar())&&!isWhiteSpace(ch)&&!isSpecial(ch););return token}readCharStrings(bytes,lenIV){return-1===lenIV?bytes:decrypt(bytes,CHAR_STRS_ENCRYPT_KEY,lenIV)}extractFontProgram(properties){for(var token,glyph,length,data,lenIV,encoded,_encoded2,_glyph,stream=this.stream,subrs=[],charstrings=[],privateData=Object.create(null),program=(privateData.lenIV=4,{subrs:[],charstrings:[],properties:{privateData:privateData}});null!==(token=this.getToken());)if("/"===token)switch(token=this.getToken()){case"CharStrings":for(this.getToken(),this.getToken(),this.getToken(),this.getToken();;){if(null===(token=this.getToken())||"end"===token)break;"/"===token&&(glyph=this.getToken(),length=this.readInt(),this.getToken(),data=0=properties.firstChar&&output<=properties.lastChar&&(properties.widths[output]=charString.width)}return program}extractFontHeader(properties){for(var token;null!==(token=this.getToken());)if("/"===token)switch(token=this.getToken()){case"FontMatrix":var matrix=this.readNumberArray();properties.fontMatrix=matrix;break;case"Encoding":var matrix=this.getToken(),encoding=void 0;if(/^\d+$/.test(matrix)){var encoding=[],size=0|parseInt(matrix,10);this.getToken();for(var j=0;j=this.numGlyphs)&&(0===id||0>>8}function signedInt16(b0,b1){b0=(b0<<8)+b1;return 32768&b0?b0-65536:b0}function writeUint32(bytes,index,value){bytes[index+3]=255&value,bytes[index+2]=value>>>8,bytes[index+1]=value>>>16,bytes[index]=value>>>24}function int32(b0,b1,b2,b3){return(b0<<24)+(b1<<16)+(b2<<8)+b3}function string16(value){return String.fromCharCode(value>>8&255,255&value)}function safeString16(value){return 32767>8&255,255&value)}function isTrueTypeFile(file){file=file.peekBytes(4);return 65536===readUint32(file,0)||"true"===bytesToString(file)}function isTrueTypeCollectionFile(file){return"ttcf"===bytesToString(file.peekBytes(4))}function isOpenTypeFile(file){return"OTTO"===bytesToString(file.peekBytes(4))}function isType1File(file){file=file.peekBytes(2);return 37===file[0]&&33===file[1]||128===file[0]&&1===file[1]}function isCFFFile(file){file=file.peekBytes(4);return 1<=file[0]&&1<=file[3]&&file[3]<=4}function getFontFileType(file,_ref22){var fileType,fileSubtype,{type:_ref22,subtype,composite}=_ref22;return isTrueTypeFile(file)||isTrueTypeCollectionFile(file)?fileType=composite?"CIDFontType2":"TrueType":isOpenTypeFile(file)?fileType=composite?"CIDFontType2":"OpenType":isType1File(file)?fileType=composite?"CIDFontType0":"MMType1"===_ref22?"MMType1":"Type1":fileSubtype=isCFFFile(file)?composite?(fileType="CIDFontType0","CIDFontType0C"):(fileType="MMType1"===_ref22?"MMType1":"Type1","Type1C"):(warn("getFontFileType: Unable to detect correct font file Type/Subtype."),fileType=_ref22,subtype),[fileType,fileSubtype]}function applyStandardFontGlyphMap(map,glyphMap){for(var charCode in glyphMap)map[+charCode]=glyphMap[charCode]}function buildToFontChar(encoding,glyphsUnicodeMap,differences){for(var unicode,charCode,toFontChar=[],i=0,ii=encoding.length;i=PRIVATE_USE_AREAS.length){warn("Ran out of space in font private use area.");break}nextAvailableFontCharCode=PRIVATE_USE_AREAS[privateUseAreaIndex][0],privateUseOffetEnd=PRIVATE_USE_AREAS[privateUseAreaIndex][1]}var fontCharCode=nextAvailableFontCharCode++,unicode=(0===glyphId&&(glyphId=newGlyphZeroId),toUnicode.get(originalCharCode));if("string"==typeof unicode)if(1===unicode.length)unicode=unicode.codePointAt(0);else{if(!LIGATURE_TO_UNICODE)for(var LIGATURE_TO_UNICODE=new Map,i=64256;i<=64335;i++){var normalized=String.fromCharCode(i).normalize("NFKD");1=numGlyphs||codes.push({fontCharCode:0|charCode,glyphId:glyphs[charCode]});if(toUnicodeExtraMap)for(var[unicode,glyphId]of toUnicodeExtraMap)numGlyphs<=glyphId||codes.push({fontCharCode:unicode,glyphId:glyphId});0===codes.length&&codes.push({fontCharCode:0,glyphId:0}),codes.sort((a,b)=>a.fontCharCode-b.fontCharCode);for(var ranges=[],length=codes.length,n=0;n 123 are reserved for internal usage");ulUnicodeRange4|=1</%]/g,"").slice(0,63)}function createNameTable(name,proto){for(var strings=[(proto=proto||[[],[]])[0][0]||"Original licence",proto[0][1]||name,proto[0][2]||"Unknown",proto[0][3]||"uniqueID",proto[0][4]||name,proto[0][5]||"Version 0.11",proto[0][6]||createPostscriptName(name),proto[0][7]||"Unknown",proto[0][8]||"Unknown",proto[0][9]||"Unknown"],stringsUnicode=[],i=0,ii=strings.length;i{var unicode;this.composite||-1!==(unicode=getUnicodeForGlyph(this.differences[charCode]||this.defaultEncoding[charCode],glyphsUnicodeMap))&&(unicodeCharCode=unicode),_map2[+charCode]=unicodeCharCode}),this.composite&&this.toUnicode instanceof IdentityToUnicodeMap&&/Tahoma|Verdana/i.test(name)&&applyStandardFontGlyphMap(_map2,getGlyphMapForStandardFonts()),this.toFontChar=_map2);amendFallbackToUnicode(properties),this.loadedName=fontName.split("-",1)[0]}checkAndRepair(name,font,properties){var VALID_TABLES=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(file,numTables){var tables=Object.create(null);tables["OS/2"]=null,tables.cmap=null,tables.head=null,tables.hhea=null,tables.hmtx=null,tables.maxp=null,tables.name=null,tables.post=null;for(var i=0;i>>0,offset=file.getInt32()>>>0,length=file.getInt32()>>>0,previousPosition=file.pos,data=(file.pos=file.start||0,file.skip(offset),file.getBytes(length));file.pos=previousPosition,"head"===tag&&(data[8]=data[9]=data[10]=data[11]=0,data[17]|=32);return{tag:tag,checksum:checksum,length:length,offset:offset,data:data}}(file);VALID_TABLES.includes(table.tag)&&0!==table.length&&(tables[table.tag]=table)}return tables}function readOpenTypeHeader(ttf){return{version:ttf.getString(4),numTables:ttf.getUint16(),searchRange:ttf.getUint16(),entrySelector:ttf.getUint16(),rangeShift:ttf.getUint16()}}function readTrueTypeCollectionData(ttc,fontName){for(var fallbackData,{numFonts,offsetTable}=function(ttc){for(var ttcTag=ttc.getString(4),majorVersion=(assert("ttcf"===ttcTag,"Must be a TrueType Collection font."),ttc.getUint16()),minorVersion=ttc.getUint16(),numFonts=ttc.getInt32()>>>0,offsetTable=[],i=0;i>>0);var header={ttcTag:ttcTag,majorVersion:majorVersion,minorVersion:minorVersion,numFonts:numFonts,offsetTable:offsetTable};switch(majorVersion){case 1:return header;case 2:return header.dsigTag=ttc.getInt32()>>>0,header.dsigLength=ttc.getInt32()>>>0,header.dsigOffset=ttc.getInt32()>>>0,header}throw new FormatError("Invalid TrueType Collection majorVersion: ".concat(majorVersion,"."))}(ttc),fontNameParts=fontName.split("+"),i=0;i>>24&255,data[offset+1]=value>>16&255,data[offset+2]=value>>8&255,data[offset+3]=255&value}):(itemSize=2,itemDecode=function(data,offset){return data[offset]<<9|data[offset+1]<<1},function(data,offset,value){data[offset]=value>>9&255,data[offset+1]=value>>1&255}),numGlyphsOut=dupFirstEntry?numGlyphs+1:numGlyphs,isGlyphLocationsLong=itemSize*(1+numGlyphsOut),locaData=new Uint8Array(isGlyphLocationsLong),oldGlyfData=(locaData.set(loca.data.subarray(0,isGlyphLocationsLong)),loca.data=locaData,glyf.data),oldGlyfDataLength=oldGlyfData.length,newGlyfData=new Uint8Array(oldGlyfDataLength),locaEntries=[];for(j=i=0;ia.offset-b.offset),i=0;ia.index-b.index),i=0;i=source.length||sourceEnd>source.length||sourceEnd-sourceStart<=12)){var glyf=source.subarray(sourceStart,sourceEnd),source=signedInt16(glyf[2],glyf[3]),sourceStart=signedInt16(glyf[4],glyf[5]),sourceEnd=signedInt16(glyf[6],glyf[7]),yMax=signedInt16(glyf[8],glyf[9]),contoursCount=(sourceEndglyf.length||(!hintsValid&&0maxSizeOfInstructions&&(maxSizeOfInstructions=glyphProfile.sizeOfInstructions),itemEncode(locaData,j,writeOffset+=newLength)}if(0===writeOffset){for(var simpleGlyph=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]),i=0,j=itemSize;iisGlyphLocationsLong+writeOffset?glyf.data=newGlyfData.subarray(0,isGlyphLocationsLong+writeOffset):(glyf.data=new Uint8Array(isGlyphLocationsLong+writeOffset),glyf.data.set(newGlyfData.subarray(0,writeOffset))),glyf.data.set(newGlyfData.subarray(0,isGlyphLocationsLong),writeOffset),itemEncode(loca.data,locaData.length-itemSize,writeOffset+isGlyphLocationsLong)):glyf.data=newGlyfData.subarray(0,writeOffset);return{missingGlyphs:missingGlyphs,maxSizeOfInstructions:maxSizeOfInstructions}}function readNameTable(nameTable){var start=(font.start||0)+nameTable.offset,names=(font.pos=start,[[],[]]),records=[],nameTable=nameTable.length,end=start+nameTable,format=font.getUint16();if(!(0!==format||nameTable<6)){for(var ii,numRecords=font.getUint16(),stringsStart=font.getUint16(),i=0;iend)){font.pos=pos;pos=record.name;if(record.encoding){for(var str="",j=0,jj=record.length;jdata.length&&content.push(new Uint8Array(i-data.length)),lastEndf>8&255,metrics[1+j]=255&advanceWidth,Math.round(scaleFactors[i]*signedInt16(metrics[2+j],metrics[3+j])));writeSignedInt16(metrics,2+j,advanceWidth)}var glyphs=numGlyphs+1,loca=!0,_properties$scaleFact=(65535>8,tables.maxp.data[5]=255&glyphs,function(fpgm,prep,cvt,maxFunctionDefs){var ttContext={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};return fpgm&&sanitizeTTProgram(fpgm,ttContext),prep&&sanitizeTTProgram(prep,ttContext),fpgm&&function(ttContext,maxFunctionDefs){if(!ttContext.tooComplexToFollowFunctions)if(ttContext.functionsDefined.length>maxFunctionDefs)warn("TT: more functions defined than expected"),ttContext.hintsValid=!1;else for(var j=0,jj=ttContext.functionsUsed.length;j>8,header.data[35]=255&file),0<(caretOffset=numGlyphs-file-(metrics.length-4*file>>1))&&((headTable=new Uint8Array(metrics.length+2*caretOffset)).set(metrics.data),dupFirstEntry&&(headTable[metrics.length]=metrics.data[2],headTable[metrics.length+1]=metrics.data[3]),metrics.data=headTable)):metrics&&(metrics.data=null)}(font,tables.hhea,tables.hmtx,tables.head,glyphs,loca),!tables.head)throw new FormatError('Required "head" table is not found');!function(head,numGlyphs,locaLength){var version=int32((head=head.data)[0],head[1],head[2],head[3]);if(version>>16!=1&&(info("Attempting to fix invalid version in head table: "+version),head[0]=0,head[1]=1,head[2]=0,head[3]=0),(version=int16(head[50],head[51]))<0||1>8,tables.maxp.data[27]=255&_isGlyphLocationsLong.maxSizeOfInstructions),!tables.hhea)throw new FormatError('Required "hhea" table is not found');0===tables.hhea.data[10]&&0===tables.hhea.data[11]&&(tables.hhea.data[10]=255,tables.hhea.data[11]=255);var _properties$scaleFact={unitsPerEm:int16(tables.head.data[18],tables.head.data[19]),yMax:signedInt16(tables.head.data[42],tables.head.data[43]),yMin:signedInt16(tables.head.data[38],tables.head.data[39]),ascent:signedInt16(tables.hhea.data[4],tables.hhea.data[5]),descent:signedInt16(tables.hhea.data[6],tables.hhea.data[7]),lineGap:signedInt16(tables.hhea.data[8],tables.hhea.data[9])},charCodeToGlyphId=(this.ascent=_properties$scaleFact.ascent/_properties$scaleFact.unitsPerEm,this.descent=_properties$scaleFact.descent/_properties$scaleFact.unitsPerEm,this.lineGap=_properties$scaleFact.lineGap/_properties$scaleFact.unitsPerEm,null!=(isLocationLong=this.cssFontInfo)&&isLocationLong.lineHeight?(this.lineHeight=this.cssFontInfo.metrics.lineHeight,this.lineGap=this.cssFontInfo.metrics.lineGap):this.lineHeight=this.ascent-this.descent+this.lineGap,tables.post&&!function(post,propertiesObj,maxpNumGlyphs){var glyphNames,start=(font.start||0)+post.offset,end=(font.pos=start)+post.length,version=font.getInt32(),valid=(font.skip(28),!0);switch(version){case 65536:glyphNames=MacStandardGlyphOrdering;break;case 131072:var _numGlyphs=font.getUint16();if(_numGlyphs!==maxpNumGlyphs)valid=!1;else{for(var glyphNameIndexes=[],i=0;i<_numGlyphs;++i){var index=font.getUint16();if(32768<=index){valid=!1;break}glyphNameIndexes.push(index)}if(valid){for(var customNames=[],strBuf=[];font.pos>>0,useTable=!1;if((null==potentialTable?void 0:potentialTable.platformId)!==platformId||(null==potentialTable?void 0:potentialTable.encodingId)!==encodingId)if(0===platformId&&(0===encodingId||1===encodingId||3===encodingId)||1===platformId&&0===encodingId?useTable=!0:3!==platformId||1!==encodingId||!hasEncoding&&potentialTable?isSymbolicFont&&3===platformId&&0===encodingId&&(correctlySorted=useTable=!0,correctlySorted=!(i>3;subHeaderKeys.push(subHeaderKey),maxSubHeaderKey=Math.max(subHeaderKey,maxSubHeaderKey)}for(var subHeaders=[],_i29=0;_i29<=maxSubHeaderKey;_i29++)subHeaders.push({firstCode:file.getUint16(),entryCount:file.getUint16(),idDelta:signedInt16(file.getByte(),file.getByte()),idRangePos:file.pos+file.getUint16()});for(var _i30=0;_i30<256;_i30++)if(0===subHeaderKeys[_i30])file.pos=subHeaders[0].idRangePos+2*_i30,glyphId=file.getUint16(),mappings.push({charCode:_i30,glyphId:glyphId});else for(var s=subHeaders[subHeaderKeys[_i30]],j=0;j>1,segments=(file.skip(6),[]),segIndex=0;segIndex>1)-(segCount-segIndex),offsetsCount=Math.max(offsetsCount,offsetIndex+segment.end-segment.start+1)):segment.offsetIndex=-1}var offsets=[];for(j=0;j>>0;for(j=0;j>>0,endCharCode=file.getInt32()>>>0,glyphCode=file.getInt32()>>>0,_charCode3=startCharCode;_charCode3<=endCharCode;_charCode3++)mappings.push({charCode:_charCode3,glyphId:glyphCode++})}mappings.sort((a,b)=>a.charCode-b.charCode);var map,finalMappings=[],seenCharCodes=new Set;for(map of mappings){var _charCode4=map["charCode"];seenCharCodes.has(_charCode4)||(seenCharCodes.add(_charCode4),finalMappings.push(map))}return{platformId:potentialTable.platformId,encodingId:potentialTable.encodingId,mappings:finalMappings,hasShortCmap:hasShortCmap}}(tables.cmap,font,this.isSymbolicFont,properties.hasEncoding),cmapPlatformId=_properties$cidToGidM.platformId,cmapEncodingId=_properties$cidToGidM.encodingId,cmapMappings=_properties$cidToGidM.mappings,baseEncoding=[],forcePostTable=!1;if(!properties.hasEncoding||"MacRomanEncoding"!==properties.baseEncodingName&&"WinAnsiEncoding"!==properties.baseEncodingName||(baseEncoding=getEncoding(properties.baseEncodingName)),properties.hasEncoding&&!this.isSymbolicFont&&(3===cmapPlatformId&&1===cmapEncodingId||1===cmapPlatformId&&0===cmapEncodingId))for(var glyphsUnicodeMap=getGlyphsUnicode(),charCode=0;charCode<256;charCode++){var glyphName=void 0;if(glyphName=(void 0!==this.differences[charCode]?this.differences:baseEncoding.length&&""!==baseEncoding[charCode]?baseEncoding:StandardEncoding)[charCode]){var mapping,glyphName=recoverGlyphName(glyphName,glyphsUnicodeMap),unicodeOrCharCode=void 0;if(3===cmapPlatformId&&1===cmapEncodingId?unicodeOrCharCode=glyphsUnicodeMap[glyphName]:1===cmapPlatformId&&0===cmapEncodingId&&(unicodeOrCharCode=MacRomanEncoding.indexOf(glyphName)),void 0===unicodeOrCharCode)if(properties.glyphNames||!properties.hasIncludedToUnicodeMap||this.toUnicode instanceof IdentityToUnicodeMap||(glyphName=this.toUnicode.get(charCode))&&(unicodeOrCharCode=glyphName.codePointAt(0)),void 0===unicodeOrCharCode)continue;for(mapping of cmapMappings)if(mapping.charCode===unicodeOrCharCode){charCodeToGlyphId[charCode]=mapping.glyphId;break}}}else if(0===cmapPlatformId){for(var _mapping of cmapMappings)charCodeToGlyphId[_mapping.charCode]=_mapping.glyphId;forcePostTable=!0}else if(3===cmapPlatformId&&0===cmapEncodingId)for(var _mapping2 of cmapMappings){var _charCode5=_mapping2.charCode;61440<=_charCode5&&_charCode5<=61695&&(_charCode5&=255),charCodeToGlyphId[_charCode5]=_mapping2.glyphId}else for(var _mapping3 of cmapMappings)charCodeToGlyphId[_mapping3.charCode]=_mapping3.glyphId;if(properties.glyphNames&&(baseEncoding.length||this.differences.length))for(var _glyphName,_i31=0;_i31<256;++_i31)(forcePostTable||void 0===charCodeToGlyphId[_i31])&&(_glyphName=this.differences[_i31]||baseEncoding[_i31])&&0<(_glyphName=properties.glyphNames.indexOf(_glyphName))&&hasGlyph(_glyphName)&&(charCodeToGlyphId[_i31]=_glyphName)}0===charCodeToGlyphId.length&&(charCodeToGlyphId[0]=0);var _isGlyphLocationsLong=loca?glyphs-1:0;if(properties.cssFontInfo||(isLocationLong=adjustMapping(charCodeToGlyphId,hasGlyph,_isGlyphLocationsLong,this.toUnicode),this.toFontChar=isLocationLong.toFontChar,tables.cmap={tag:"cmap",data:createCmapTable(isLocationLong.charCodeToGlyphId,isLocationLong.toUnicodeExtraMap,glyphs)},tables["OS/2"]&&validateOS2Table(tables["OS/2"],font))||(tables["OS/2"]={tag:"OS/2",data:createOS2Table(properties,isLocationLong.charCodeToGlyphId,_properties$scaleFact)}),!ttcData)try{var cff,cffFile=new Stream(tables["CFF "].data),compiler=((cff=new CFFParser(cffFile,properties,SEAC_ANALYSIS_ENABLED).parse()).duplicateFirstGlyph(),new CFFCompiler(cff));tables["CFF "].data=compiler.compile()}catch(_unused0){warn("Failed to compile font "+properties.loadedName)}tables.name?([_properties$cidToGidM,loca]=readNameTable(tables.name),tables.name.data=createNameTable(name,_properties$cidToGidM),this.psName=_properties$cidToGidM[0][6]||null,properties.composite||adjustTrueTypeToUnicode(properties,this.isSymbolicFont,loca)):tables.name={tag:"name",data:createNameTable(this.name)};var tableTag,builder=new OpenTypeFileBuilder(header.version);for(tableTag in tables)builder.addTable(tableTag,tables[tableTag].data);return builder.toArray()}convert(fontName,font,properties){properties.fixedPitch=!1,properties.builtInEncoding&&adjustType1ToUnicode(properties,properties.builtInEncoding);var glyphZeroId=1,mapping=(font instanceof CFFFont&&(glyphZeroId=font.numGlyphs-1),font.getGlyphMapping(properties)),newMapping=null,newCharCodeToGlyphId=mapping,toUnicodeExtraMap=null,numGlyphs=(properties.cssFontInfo||(newMapping=adjustMapping(mapping,font.hasGlyphId.bind(font),glyphZeroId,this.toUnicode),this.toFontChar=newMapping.toFontChar,newCharCodeToGlyphId=newMapping.charCodeToGlyphId,toUnicodeExtraMap=newMapping.toUnicodeExtraMap),font.numGlyphs);function createCharCode(charCodeToGlyphId,glyphId){for(var charCode in charCodeToGlyphId)if(glyphId===charCodeToGlyphId[charCode])return 0|charCode;return newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode]=glyphId,newMapping.nextAvailableFontCharCode++}var seacs=font.seacs;if(newMapping&&SEAC_ANALYSIS_ENABLED&&null!=seacs&&seacs.length){var glyphId,matrix=properties.fontMatrix||FONT_IDENTITY_MATRIX,charset=font.getCharset(),seacMap=Object.create(null);for(glyphId in seacs){var seac=seacs[glyphId|=0],baseGlyphName=StandardEncoding[seac[2]],accentGlyphName=StandardEncoding[seac[3]],baseGlyphId=charset.indexOf(baseGlyphName),accentGlyphId=charset.indexOf(accentGlyphName);if(!(baseGlyphId<0||accentGlyphId<0)){var accentOffset={x:seac[0]*matrix[0]+seac[1]*matrix[2]+matrix[4],y:seac[0]*matrix[1]+seac[1]*matrix[3]+matrix[5]},baseGlyphName=function(charCodeToGlyphId,glyphId){var charCode,charCodes=null;for(charCode in charCodeToGlyphId)glyphId===charCodeToGlyphId[charCode]&&(charCodes=charCodes||[]).push(0|charCode);return charCodes}(mapping,glyphId);if(baseGlyphName)for(var charCode of baseGlyphName){var charCodeToGlyphId=newMapping.charCodeToGlyphId,baseFontCharCode=createCharCode(charCodeToGlyphId,baseGlyphId),charCodeToGlyphId=createCharCode(charCodeToGlyphId,accentGlyphId);seacMap[charCode]={baseFontCharCode:baseFontCharCode,accentFontCharCode:charCodeToGlyphId,accentOffset:accentOffset}}}}properties.seacMap=seacMap}var glyphZeroId=properties.fontMatrix?1/Math.max(...properties.fontMatrix.slice(0,4).map(Math.abs)):1e3,builder=new OpenTypeFileBuilder("OTTO");return builder.addTable("CFF ",font.data),builder.addTable("OS/2",createOS2Table(properties,newCharCodeToGlyphId)),builder.addTable("cmap",createCmapTable(newCharCodeToGlyphId,toUnicodeExtraMap,numGlyphs)),builder.addTable("head","\0\0\0\0\0\0\0\0\0\0_<õ\0\0"+safeString16(glyphZeroId)+"\0\0\0\0ž\v~'\0\0\0\0ž\v~'\0\0"+safeString16(properties.descent)+"ÿ"+safeString16(properties.ascent)+string16(properties.italicAngle?2:0)+"\0\0\0\0\0\0\0"),builder.addTable("hhea","\0\0\0"+safeString16(properties.ascent)+safeString16(properties.descent)+"\0\0ÿÿ\0\0\0\0\0\0"+safeString16(properties.capHeight)+safeString16(Math.tan(properties.italicAngle)*properties.xHeight)+"\0\0\0\0\0\0\0\0\0\0\0\0"+string16(numGlyphs)),builder.addTable("hmtx",function(){for(var charstrings=font.charstrings,cffWidths=font.cff?font.cff.widths:null,hmtx="\0\0\0\0",i=1,ii=numGlyphs;ithis.toUnicode.charCodeOf(unicode):unicode=>this.toUnicode.charCodeOf(String.fromCodePoint(unicode)),i=0,ii=str.length;i>8*j&255));continue}}buffers.length%2!=1&&(buffers.push(currentBuf.join("")),currentBuf.length=0),currentBuf.push(String.fromCodePoint(unicode))}return buffers.push(currentBuf.join("")),buffers}}class ErrorFont{constructor(error){this.error=error,this.loadedName="g_font_error",this.missingFile=!0}charsToGlyphs(){return[]}encodeString(chars){return[chars]}exportData(){return{error:this.error}}}var ShadingType={FUNCTION_BASED:1,AXIAL:2,RADIAL:3,FREE_FORM_MESH:4,LATTICE_FORM_MESH:5,COONS_PATCH_MESH:6,TENSOR_PATCH_MESH:7};class Pattern{constructor(){unreachable("Cannot initialize Pattern.")}static parseShading(shading,xref,res,pdfFunctionFactory,globalColorSpaceCache,localColorSpaceCache){var dict=shading instanceof BaseStream?shading.dict:shading,type=dict.get("ShadingType");try{switch(type){case ShadingType.AXIAL:case ShadingType.RADIAL:return new RadialAxialShading(dict,xref,res,pdfFunctionFactory,globalColorSpaceCache,localColorSpaceCache);case ShadingType.FREE_FORM_MESH:case ShadingType.LATTICE_FORM_MESH:case ShadingType.COONS_PATCH_MESH:case ShadingType.TENSOR_PATCH_MESH:return new MeshShading(shading,xref,res,pdfFunctionFactory,globalColorSpaceCache,localColorSpaceCache);default:throw new FormatError("Unsupported ShadingType: "+type)}}catch(ex){if(ex instanceof MissingDataException)throw ex;return warn(ex),new DummyShading}}}class BaseShading{getIR(){unreachable("Abstract method `getIR` called.")}}_defineProperty(BaseShading,"SMALL_NUMBER",1e-6);class RadialAxialShading extends BaseShading{constructor(dict,xref,resources,pdfFunctionFactory,globalColorSpaceCache,localColorSpaceCache){super(),this.shadingType=dict.get("ShadingType");var coordsLen=0;if(this.shadingType===ShadingType.AXIAL?coordsLen=4:this.shadingType===ShadingType.RADIAL&&(coordsLen=6),this.coordsArr=dict.getArray("Coords"),!isNumberArray(this.coordsArr,coordsLen))throw new FormatError("RadialAxialShading: Invalid /Coords array.");var r1,y2,r2,cs=ColorSpaceUtils.parse({cs:dict.getRaw("CS")||dict.getRaw("ColorSpace"),xref:xref,resources:resources,pdfFunctionFactory:pdfFunctionFactory,globalColorSpaceCache:globalColorSpaceCache,localColorSpaceCache:localColorSpaceCache}),t0=(this.bbox=lookupNormalRect(dict.getArray("BBox"),null),0),coordsLen=1,xref=dict.getArray("Domain"),resources=(isNumberArray(xref,2)&&([t0,coordsLen]=xref),!1),globalColorSpaceCache=!1,localColorSpaceCache=dict.getArray("Extend"),x2=(isBooleanArray(localColorSpaceCache,2)&&([resources,globalColorSpaceCache]=localColorSpaceCache),this.shadingType!==ShadingType.RADIAL||resources&&globalColorSpaceCache||([xref,localColorSpaceCache,r1,x2,y2,r2]=this.coordsArr,r1<=r2+(xref=Math.hypot(xref-x2,localColorSpaceCache-y2))&&r2<=r1+xref&&warn("Unsupported radial gradient.")),this.extendStart=resources,this.extendEnd=globalColorSpaceCache,dict.getRaw("Function")),fn=pdfFunctionFactory.create(x2,!0),step=(coordsLen-t0)/840,colorStops=this.colorStops=[];if(coordsLen<=t0||step<=0)info("Bad shading domain.");else{for(var color=new Float32Array(cs.numComps),ratio=new Float32Array(1),iBase=0,rgbBuffer=(ratio[0]=t0,fn(ratio,0,color,0),new Uint8ClampedArray(3)),[rBase,gBase,bBase]=(cs.getRgb(color,0,rgbBuffer),rgbBuffer),iPrev=(colorStops.push([0,Util.makeHexColor(rBase,gBase,bBase)]),1),[rPrev,gPrev,bPrev]=(ratio[0]=t0+step,fn(ratio,0,color,0),cs.getRgb(color,0,rgbBuffer),rgbBuffer),maxSlopeR=rPrev-rBase+1,maxSlopeG=gPrev-gBase+1,maxSlopeB=bPrev-bBase+1,minSlopeR=rPrev-rBase-1,minSlopeG=gPrev-gBase-1,minSlopeB=bPrev-bBase-1,i=2;i<840;i++){ratio[0]=t0+i*step,fn(ratio,0,color,0),cs.getRgb(color,0,rgbBuffer);var[r,g,b]=rgbBuffer,run=i-iBase,maxSlopeR=Math.min(maxSlopeR,(r-rBase+1)/run),maxSlopeG=Math.min(maxSlopeG,(g-gBase+1)/run),maxSlopeB=Math.min(maxSlopeB,(b-bBase+1)/run),minSlopeR=Math.max(minSlopeR,(r-rBase-1)/run),minSlopeG=Math.max(minSlopeG,(g-gBase-1)/run),minSlopeB=Math.max(minSlopeB,(b-bBase-1)/run);minSlopeR<=maxSlopeR&&minSlopeG<=maxSlopeG&&minSlopeB<=maxSlopeB||(run=Util.makeHexColor(rPrev,gPrev,bPrev),colorStops.push([iPrev/840,run]),maxSlopeR=r-rPrev+1,maxSlopeG=g-gPrev+1,maxSlopeB=b-bPrev+1,minSlopeR=r-rPrev-1,minSlopeG=g-gPrev-1,minSlopeB=b-bPrev-1,iBase=iPrev,rBase=rPrev,gBase=gPrev,bBase=bPrev),iPrev=i,rPrev=r,gPrev=g,bPrev=b}colorStops.push([1,Util.makeHexColor(rPrev,gPrev,bPrev)]);localColorSpaceCache="transparent";dict.has("Background")&&(localColorSpaceCache=cs.getRgbHex(dict.get("Background"),0)),resources||(colorStops.unshift([0,localColorSpaceCache]),colorStops[1][0]+=BaseShading.SMALL_NUMBER),globalColorSpaceCache||(colorStops.at(-1)[0]-=BaseShading.SMALL_NUMBER,colorStops.push([1,localColorSpaceCache])),this.colorStops=colorStops}}getIR(){var type,p0,p1,r0,r1,{coordsArr,shadingType}=this;return shadingType===ShadingType.AXIAL?(p0=[coordsArr[0],coordsArr[1]],p1=[coordsArr[2],coordsArr[3]],r1=r0=null,type="axial"):shadingType===ShadingType.RADIAL?(p0=[coordsArr[0],coordsArr[1]],p1=[coordsArr[3],coordsArr[4]],r0=coordsArr[2],r1=coordsArr[5],type="radial"):unreachable("getPattern type unknown: ".concat(shadingType)),["RadialAxial",type,this.bbox,this.colorStops,p0,p1,r0,r1]}}class MeshStreamReader{constructor(stream,context){this.stream=stream,this.context=context,this.buffer=0,this.bufferLength=0;stream=context.numComps,this.tmpCompsBuf=new Float32Array(stream),stream=context.colorSpace.numComps;this.tmpCsCompsBuf=context.colorFn?new Float32Array(stream):this.tmpCompsBuf}get hasData(){if(this.stream.end)return this.stream.pos>>0:(buffer=buffer<<24|stream.getByte()<<16|stream.getByte()<<8|stream.getByte(),nextByte=stream.getByte(),this.buffer=nextByte&(1<>bufferLength)>>>0);if(8===n&&0===bufferLength)return stream.getByte();for(;bufferLength>bufferLength}align(){this.buffer=0,this.bufferLength=0}readFlag(){return this.readBits(this.context.bitsPerFlag)}readCoordinate(){var{bitsPerCoordinate,decode}=this.context,xi=this.readBits(bitsPerCoordinate),yi=this.readBits(bitsPerCoordinate),bitsPerCoordinate=bitsPerCoordinate<32?1/((1<w*factors[i]):name,currentCode=-2,newWidths=[];for([unicode,glyphIndex]of baseMapping.map((charUnicode,index)=>[charUnicode,index]).sort((_ref23,_ref24)=>{var[_ref23]=_ref23,[_ref24]=_ref24;return _ref23-_ref24}))-1!==unicode&&(unicode===currentCode+1?(currentArray.push(rescaledBaseWidths[glyphIndex]),currentCode+=1):(currentCode=unicode,currentArray=[rescaledBaseWidths[glyphIndex]],newWidths.push(unicode,currentArray)));return newWidths}function getXfaFontDict(name){var widths=getXfaFontWidths(name),dict=new Dict(null),name=(dict.set("BaseFont",Name.get(name)),dict.set("Type",Name.get("Font")),dict.set("Subtype",Name.get("CIDFontType2")),dict.set("Encoding",Name.get("Identity-H")),dict.set("CIDToGIDMap",Name.get("Identity")),dict.set("W",widths),dict.set("FirstChar",widths[0]),dict.set("LastChar",widths.at(-2)+widths.at(-1).length-1),new Dict(null)),widths=(dict.set("FontDescriptor",name),new Dict(null));return widths.set("Ordering","Identity"),widths.set("Registry","Adobe"),widths.set("Supplement",0),dict.set("CIDSystemInfo",widths),dict}class PostScriptParser{constructor(lexer){this.lexer=lexer,this.operators=[],this.token=null,this.prev=null}nextToken(){this.prev=this.token,this.token=this.lexer.getToken()}accept(type){return this.token.type===type&&(this.nextToken(),!0)}expect(type){if(this.accept(type))return!0;throw new FormatError("Unexpected symbol: found ".concat(this.token.type," expected ").concat(type,"."))}parse(){return this.nextToken(),this.expect(PostScriptTokenTypes.LBRACE),this.parseBlock(),this.expect(PostScriptTokenTypes.RBRACE),this.operators}parseBlock(){for(;;)if(this.accept(PostScriptTokenTypes.NUMBER))this.operators.push(this.prev.value);else if(this.accept(PostScriptTokenTypes.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(PostScriptTokenTypes.LBRACE))return;this.parseCondition()}}parseCondition(){var conditionLocation=this.operators.length;if(this.operators.push(null,null),this.parseBlock(),this.expect(PostScriptTokenTypes.RBRACE),this.accept(PostScriptTokenTypes.IF))this.operators[conditionLocation]=this.operators.length;else{if(!this.accept(PostScriptTokenTypes.LBRACE))throw new FormatError("PS Function: error parsing conditional.");var jumpLocation=this.operators.length,endOfTrue=(this.operators.push(null,null),this.operators.length);this.parseBlock(),this.expect(PostScriptTokenTypes.RBRACE),this.expect(PostScriptTokenTypes.IFELSE),this.operators[jumpLocation]=this.operators.length,this.operators[jumpLocation+1]="j",this.operators[conditionLocation]=endOfTrue}this.operators[conditionLocation+1]="jz"}}var PostScriptTokenTypes={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5};class PostScriptToken{static get opCache(){return shadow(this,"opCache",Object.create(null))}constructor(type,value){this.type=type,this.value=value}static getOperator(op){var _PostScriptToken$opCa;return(_PostScriptToken$opCa=PostScriptToken.opCache)[op]||(_PostScriptToken$opCa[op]=new PostScriptToken(PostScriptTokenTypes.OPERATOR,op))}static get LBRACE(){return shadow(this,"LBRACE",new PostScriptToken(PostScriptTokenTypes.LBRACE,"{"))}static get RBRACE(){return shadow(this,"RBRACE",new PostScriptToken(PostScriptTokenTypes.RBRACE,"}"))}static get IF(){return shadow(this,"IF",new PostScriptToken(PostScriptTokenTypes.IF,"IF"))}static get IFELSE(){return shadow(this,"IFELSE",new PostScriptToken(PostScriptTokenTypes.IFELSE,"IFELSE"))}}class PostScriptLexer{constructor(stream){this.stream=stream,this.nextChar(),this.strBuf=[]}nextChar(){return this.currentChar=this.stream.getByte()}getToken(){for(var comment=!1,ch=this.currentChar;;){if(ch<0)return EOF;if(comment)10!==ch&&13!==ch||(comment=!1);else if(37===ch)comment=!0;else if(!isWhiteSpace(ch))break;ch=this.nextChar()}switch(0|ch){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new PostScriptToken(PostScriptTokenTypes.NUMBER,this.getNumber());case 123:return this.nextChar(),PostScriptToken.LBRACE;case 125:return this.nextChar(),PostScriptToken.RBRACE}var strBuf=this.strBuf;for(strBuf.length=0,strBuf[0]=String.fromCharCode(ch);0<=(ch=this.nextChar())&&(65<=ch&&ch<=90||97<=ch&&ch<=122);)strBuf.push(String.fromCharCode(ch));var str=strBuf.join("");switch(str.toLowerCase()){case"if":return PostScriptToken.IF;case"ifelse":return PostScriptToken.IFELSE;default:return PostScriptToken.getOperator(str)}}getNumber(){var ch=this.currentChar,strBuf=this.strBuf;for(strBuf.length=0,strBuf[0]=String.fromCharCode(ch);0<=(ch=this.nextChar())&&(48<=ch&&ch<=57||45===ch||46===ch);)strBuf.push(String.fromCharCode(ch));var value=parseFloat(strBuf.join(""));if(isNaN(value))throw new FormatError("Invalid floating point number: ".concat(value));return value}}class BaseLocalCache{constructor(options){this._onlyRefs=!0===(null==options?void 0:options.onlyRefs),this._onlyRefs||(this._nameRefMap=new Map,this._imageMap=new Map),this._imageCache=new RefSetCache}getByName(name){this._onlyRefs&&unreachable("Should not call `getByName` method.");var ref=this._nameRefMap.get(name);return ref?this.getByRef(ref):this._imageMap.get(name)||null}getByRef(ref){return this._imageCache.get(ref)||null}set(name,ref,data){unreachable("Abstract method `set` called.")}}class LocalImageCache extends BaseLocalCache{set(name){var ref=1+x):null}class PDFFunction{static getSampleArray(size,outputSize,bps,stream){for(var length=1,i=0,ii=size.length;i>codeSize)*sampleMul,codeBuf&=(1<>1,numInputs=domain.length>>1,evaluator=new PostScriptEvaluator(fn),cache=Object.create(null),cache_available=8192,tmpBuf=new Float32Array(numInputs);return function(src,srcOffset,dest,destOffset){var key="",input=tmpBuf;for(i=0;i=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");this.stack.push(value)}pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()}copy(n){if(this.stack.length+n>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");for(var stack=this.stack,i=stack.length-n,j=n-1;0<=j;j--,i++)stack.push(stack[i])}index(n){this.push(this.stack[this.stack.length-n-1])}roll(n,p){for(var stack=this.stack,l=stack.length-n,r=stack.length-1,p=l+(p-Math.floor(p/n)*n),i=l,j=r;i>b);break;case"ceiling":a=stack.pop(),stack.push(Math.ceil(a));break;case"copy":a=stack.pop(),stack.copy(a);break;case"cos":a=stack.pop(),stack.push(Math.cos(a%360/180*Math.PI));break;case"cvi":a=0|stack.pop(),stack.push(a);break;case"cvr":break;case"div":b=stack.pop(),a=stack.pop(),stack.push(a/b);break;case"dup":stack.copy(1);break;case"eq":b=stack.pop(),a=stack.pop(),stack.push(a===b);break;case"exch":stack.roll(2,1);break;case"exp":b=stack.pop(),a=stack.pop(),stack.push(a**b);break;case"false":stack.push(!1);break;case"floor":a=stack.pop(),stack.push(Math.floor(a));break;case"ge":b=stack.pop(),a=stack.pop(),stack.push(b<=a);break;case"gt":b=stack.pop(),a=stack.pop(),stack.push(b=max?new AstLiteral(max):num1.max<=max?num1:new AstMin(num1,max)}class PostScriptCompiler{compile(code,domain,range){for(var n,num1,num2,ast1,ast2,tmpVar,item,stack=[],instructions=[],inputSize=domain.length>>1,outputSize=range.length>>1,lastRegister=0,i=0;iexpr.min&&(_statementBuilder.unshift("Math.max(",min,", "),_statementBuilder.push(")")),max"!==_ch2||(chars[i]="")}return createBidiText(chars.join(""),isLTR)}var NORMAL={style:"normal",weight:"normal"},BOLD={style:"normal",weight:"bold"},ITALIC={style:"italic",weight:"normal"},BOLDITALIC={style:"italic",weight:"bold"},substitutionMap=new Map([["Times-Roman",{local:["Times New Roman","Times-Roman","Times","Liberation Serif","Nimbus Roman","Nimbus Roman L","Tinos","Thorndale","TeX Gyre Termes","FreeSerif","Linux Libertine O","Libertinus Serif","DejaVu Serif","Bitstream Vera Serif","Ubuntu"],style:NORMAL,ultimate:"serif"}],["Times-Bold",{alias:"Times-Roman",style:BOLD,ultimate:"serif"}],["Times-Italic",{alias:"Times-Roman",style:ITALIC,ultimate:"serif"}],["Times-BoldItalic",{alias:"Times-Roman",style:BOLDITALIC,ultimate:"serif"}],["Helvetica",{local:["Helvetica","Helvetica Neue","Arial","Arial Nova","Liberation Sans","Arimo","Nimbus Sans","Nimbus Sans L","A030","TeX Gyre Heros","FreeSans","DejaVu Sans","Albany","Bitstream Vera Sans","Arial Unicode MS","Microsoft Sans Serif","Apple Symbols","Cantarell"],path:"LiberationSans-Regular.ttf",style:NORMAL,ultimate:"sans-serif"}],["Helvetica-Bold",{alias:"Helvetica",path:"LiberationSans-Bold.ttf",style:BOLD,ultimate:"sans-serif"}],["Helvetica-Oblique",{alias:"Helvetica",path:"LiberationSans-Italic.ttf",style:ITALIC,ultimate:"sans-serif"}],["Helvetica-BoldOblique",{alias:"Helvetica",path:"LiberationSans-BoldItalic.ttf",style:BOLDITALIC,ultimate:"sans-serif"}],["Courier",{local:["Courier","Courier New","Liberation Mono","Nimbus Mono","Nimbus Mono L","Cousine","Cumberland","TeX Gyre Cursor","FreeMono","Linux Libertine Mono O","Libertinus Mono"],style:NORMAL,ultimate:"monospace"}],["Courier-Bold",{alias:"Courier",style:BOLD,ultimate:"monospace"}],["Courier-Oblique",{alias:"Courier",style:ITALIC,ultimate:"monospace"}],["Courier-BoldOblique",{alias:"Courier",style:BOLDITALIC,ultimate:"monospace"}],["ArialBlack",{local:["Arial Black"],style:{style:"normal",weight:"900"},fallback:"Helvetica-Bold"}],["ArialBlack-Bold",{alias:"ArialBlack"}],["ArialBlack-Italic",{alias:"ArialBlack",style:{style:"italic",weight:"900"},fallback:"Helvetica-BoldOblique"}],["ArialBlack-BoldItalic",{alias:"ArialBlack-Italic"}],["ArialNarrow",{local:["Arial Narrow","Liberation Sans Narrow","Helvetica Condensed","Nimbus Sans Narrow","TeX Gyre Heros Cn"],style:NORMAL,fallback:"Helvetica"}],["ArialNarrow-Bold",{alias:"ArialNarrow",style:BOLD,fallback:"Helvetica-Bold"}],["ArialNarrow-Italic",{alias:"ArialNarrow",style:ITALIC,fallback:"Helvetica-Oblique"}],["ArialNarrow-BoldItalic",{alias:"ArialNarrow",style:BOLDITALIC,fallback:"Helvetica-BoldOblique"}],["Calibri",{local:["Calibri","Carlito"],style:NORMAL,fallback:"Helvetica"}],["Calibri-Bold",{alias:"Calibri",style:BOLD,fallback:"Helvetica-Bold"}],["Calibri-Italic",{alias:"Calibri",style:ITALIC,fallback:"Helvetica-Oblique"}],["Calibri-BoldItalic",{alias:"Calibri",style:BOLDITALIC,fallback:"Helvetica-BoldOblique"}],["Wingdings",{local:["Wingdings","URW Dingbats"],style:NORMAL}],["Wingdings-Regular",{alias:"Wingdings"}],["Wingdings-Bold",{alias:"Wingdings"}]]),fontAliases=new Map([["Arial-Black","ArialBlack"]]);function getStyleToAppend(style){switch(style){case BOLD:return"Bold";case ITALIC:return"Italic";case BOLDITALIC:return"Bold Italic";default:if("bold"===(null==style?void 0:style.weight))return"Bold";if("italic"===(null==style?void 0:style.style))return"Italic"}return""}function getFamilyName(str){var keywords=new Set(["thin","extralight","ultralight","demilight","semilight","light","book","regular","normal","medium","demibold","semibold","bold","extrabold","ultrabold","black","heavy","extrablack","ultrablack","roman","italic","oblique","ultracondensed","extracondensed","condensed","semicondensed","normal","semiexpanded","expanded","extraexpanded","ultraexpanded","bolditalic"]);return str.split(/[- ,+]+/g).filter(tok=>!keywords.has(tok.toLowerCase())).join(" ")}function generateFont(_ref26,src,localFontPath){var{alias,local,path,fallback,style,ultimate}=_ref26,useFallback=!(3>>8,data[length++]=255&code)}else{if(!ArrayBuffer.isView(input))throw new Error("Invalid data format, must be a string or TypedArray.");length=(data=input.slice()).byteLength}for(var k2,blockCounts=length>>2,tailLength=length-4*blockCounts,dataUint32=new Uint32Array(data.buffer,0,blockCounts),k1=0,h1=this.h1,h2=this.h2,C1=3432918353,C2=461845907,C1_LOW=C1&MASK_LOW,C2_LOW=C2&MASK_LOW,_i40=0;_i40>>17)*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW)<<13|h1>>>19)+3864292196:h2=5*(h2=(h2^=(k2=(k2=(k2=dataUint32[_i40])*C1&MASK_HIGH|k2*C1_LOW&MASK_LOW)<<15|k2>>>17)*C2&MASK_HIGH|k2*C2_LOW&MASK_LOW)<<13|h2>>>19)+3864292196;switch(k1=0,tailLength){case 3:k1^=data[4*blockCounts+2]<<16;case 2:k1^=data[4*blockCounts+1]<<8;case 1:k1=(k1=(k1=(k1^=data[4*blockCounts])*C1&MASK_HIGH|k1*C1_LOW&MASK_LOW)<<15|k1>>>17)*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW,1&blockCounts?h1^=k1:h2^=k1}this.h1=h1,this.h2=h2}hexdigest(){var h1=this.h1,h2=this.h2,h1=3981806797*(h1^=h2>>>1)&MASK_HIGH|36045*h1&MASK_LOW;return h1=444984403*(h1^=(h2=4283543511*h2&MASK_HIGH|(2950163797*(h2<<16|h1>>>16)&MASK_HIGH)>>>16)>>>1)&MASK_HIGH|60499*h1&MASK_LOW,((h1^=(h2=3301882366*h2&MASK_HIGH|(3120437893*(h2<<16|h1>>>16)&MASK_HIGH)>>>16)>>>1)>>>0).toString(16).padStart(8,"0")+(h2>>>0).toString(16).padStart(8,"0")}}function resizeImageMask(src,bpc,w1,h1,w2,h2){for(var j,py,oldIndex,length=w2*h2,dest=new(bpc<=8?Uint8Array:bpc<=16?Uint16Array:Uint32Array)(length),xRatio=w1/w2,yRatio=h1/h2,newIndex=0,xScaled=new Uint16Array(w2),w1Scanline=w1,i=0;i>3)*height,imgArray=_ref29.getBytes(computedLength),isSingleOpaquePixel=1===width&&1===height&&dict==(0===imgArray.length||!!(128&imgArray[0]));if(isSingleOpaquePixel)return{isSingleOpaquePixel:isSingleOpaquePixel};if(isOffscreenCanvasSupported)return ImageResizer.needsToBeResized(width,height)?(convertBlackAndWhiteToRGBA({src:imgArray,dest:isSingleOpaquePixel=new Uint8ClampedArray(width*height*4),width:width,height:height,nonBlackColor:0,inverseDecode:dict}),ImageResizer.createImage({kind:ImageKind.RGBA_32BPP,data:isSingleOpaquePixel,width:width,height:height,interpolate:interpolate})):(convertBlackAndWhiteToRGBA({src:imgArray,dest:(imgData=(isSingleOpaquePixel=(isOffscreenCanvasSupported=new OffscreenCanvas(width,height)).getContext("2d")).createImageData(width,height)).data,width:width,height:height,nonBlackColor:0,inverseDecode:dict}),isSingleOpaquePixel.putImageData(imgData,0,0),{data:null,width:width,height:height,interpolate:interpolate,bitmap:isOffscreenCanvasSupported.transferToImageBitmap()});var data,actualLength=imgArray.byteLength,isSingleOpaquePixel=computedLength===actualLength;if(_ref29 instanceof DecodeStream&&(!dict||isSingleOpaquePixel)?data=imgArray:dict?((data=new Uint8Array(computedLength)).set(imgArray),data.fill(255,actualLength)):data=new Uint8Array(imgArray),dict)for(var i=0;i>7&1,output[i+1]=buf>>6&1,output[i+2]=buf>>5&1,output[i+3]=buf>>4&1,output[i+4]=buf>>3&1,output[i+5]=buf>>2&1,output[i+6]=buf>>1&1,output[i+7]=1&buf,i+=8;if(i>=1}else for(var bits=0,buf=0,i=0,ii=length;i>remainingBits;value<0?value=0:maxmask[1+maskOffset]){opacity=255;break}}alphaBuf[i]=opacity}}if(alphaBuf)for(i=0,j=3,ii=width*actualHeight;i>3,mustBeResized=isOffscreenCanvasSupported&&ImageResizer.needsToBeResized(drawWidth,drawHeight);if(!this.smask&&!this.mask&&"DeviceRGBA"===this.colorSpace.name)return imgData.kind=ImageKind.RGBA_32BPP,_imgArray=imgData.data=await this.getImageBytes(originalHeight*originalWidth*4,{}),isOffscreenCanvasSupported?mustBeResized?ImageResizer.createImage(imgData,!1):this.createBitmap(ImageKind.RGBA_32BPP,drawWidth,drawHeight,_imgArray):imgData;if(!forceRGBA){if("DeviceGray"===this.colorSpace.name&&1===bpc?kind=ImageKind.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==bpc||this.needsDecode||(kind=ImageKind.RGB_24BPP),kind&&!this.smask&&!this.mask&&drawWidth===originalWidth&&drawHeight===originalHeight){var _imgArray=await _assertClassBrand(_PDFImage_brand,this,_getImage).call(this,originalWidth,originalHeight);if(_imgArray)return _imgArray;_imgArray=await this.getImageBytes(originalHeight*numComps,{});if(isOffscreenCanvasSupported)return mustBeResized?ImageResizer.createImage({data:_imgArray,kind:kind,width:drawWidth,height:drawHeight,interpolate:this.interpolate},this.needsDecode):this.createBitmap(kind,originalWidth,originalHeight,_imgArray);if(imgData.kind=kind,imgData.data=_imgArray,this.needsDecode){assert(kind===ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");for(var buffer=imgData.data,i=0,ii=buffer.length;i>3),{internal:!0}),comps=this.getComponents(numComps);if(1===bpc)if(length=width*height,this.needsDecode)for(i=0;i((imgData=await imageObj.createImageData(!1,isOffscreenCanvasSupported)).dataLen=imgData.bitmap?imgData.width*imgData.height*4:imgData.data.length,imgData.ref=imageRef,cacheGlobally&&this.globalImageCache.addByteSize(imageRef,imgData.dataLen),this._sendImgData(objId,imgData,cacheGlobally))).catch(reason=>(warn('Unable to decode image "'.concat(objId,'": "').concat(reason,'".')),imageRef&&this.globalImageCache.addDecodeFailed(imageRef),this._sendImgData(objId,null,cacheGlobally))),cacheKey&&(dict={objId:objId,fn:fn,args:args,optionalContent:optionalContent,hasMask:maxImageSize},localImageCache.set(cacheKey,imageRef,dict),imageRef)&&(this._regionalImageCache.set(null,imageRef,dict),cacheGlobally)&&(assert(imageObj,"The global cache-data must be available."),this.globalImageCache.setData(imageRef,imageObj))}}else warn("Image dimensions are missing, or not numbers.")}handleSMask(smask,resources,operatorList,task,stateManager,localColorSpaceCache,seenRefs){var smaskContent=smask.get("G"),smaskOptions={subtype:smask.get("S").name,backdrop:smask.get("BC")},smask=smask.get("TR");if(isPDFFunction(smask)){for(var transferFn=this._pdfFunctionFactory.create(smask),transferMap=new Uint8Array(256),tmp=new Float32Array(1),i=0;i<256;i++)tmp[0]=i/255,transferFn(tmp,0,tmp,0),transferMap[i]=255*tmp[0]|0;smaskOptions.transferMap=transferMap}return this.buildFormXObject(resources,smaskContent,smaskOptions,operatorList,task,stateManager.state.clone({newPath:!0}),localColorSpaceCache,seenRefs)}handleTransferFunction(tr){var transferArray;if(Array.isArray(tr))transferArray=tr;else{if(!isPDFFunction(tr))return null;transferArray=[tr]}var entry,transferMaps=[],numFns=0,numEffectfulFns=0;for(entry of transferArray){var transferObj=this.xref.fetchIfRef(entry);if(numFns++,isName(transferObj,"Identity"))transferMaps.push(null);else{if(!isPDFFunction(transferObj))return null;for(var transferFn=this._pdfFunctionFactory.create(transferObj),transferMap=new Uint8Array(256),tmp=new Float32Array(1),j=0;j<256;j++)tmp[0]=j/255,transferFn(tmp,0,tmp,0),transferMap[j]=255*tmp[0]|0;transferMaps.push(transferMap),numEffectfulFns++}}return 1!==numFns&&4!==numFns||0===numEffectfulFns?null:transferMaps}handleTilingType(fn,color,resources,pattern,patternDict,operatorList,task,localTilingPatternCache){var tilingOpList=new OperatorList,resources=Dict.merge({xref:this.xref,dictArray:[patternDict.get("Resources"),resources]});return this.getOperatorList({stream:pattern,task:task,resources:resources,operatorList:tilingOpList}).then(function(){var operatorListIR=tilingOpList.getIR(),tilingPatternIR=getTilingPatternIR(operatorListIR,patternDict,color);operatorList.addDependencies(tilingOpList.dependencies),operatorList.addOp(fn,tilingPatternIR),patternDict.objId&&localTilingPatternCache.set(null,patternDict.objId,{operatorListIR:operatorListIR,dict:patternDict})}).catch(reason=>{if(!(reason instanceof AbortException)){if(!this.options.ignoreErrors)throw reason;warn('handleTilingType - ignoring pattern: "'.concat(reason,'".'))}})}async handleSetFont(resources,fontArgs,fontRef,operatorList,task,state){var fallbackFontDict=6_this3.handleSetFont(resources,null,value[0],operatorList,task,stateManager.state).then(function(loadedName){operatorList.addDependency(loadedName),gStateObj.push([key,[loadedName,value[1]]])}));break;case"BM":gStateObj.push([key,normalizeBlendMode(value)]);break;case"SMask":isName(value,"None")?gStateObj.push([key,!1]):value instanceof Dict?(isSimpleGState=!1,promise=promise.then(()=>_this3.handleSMask(value,resources,operatorList,task,stateManager,localColorSpaceCache,seenRefs)),gStateObj.push([key,!0])):warn("Unsupported SMask type");break;case"TR":var transferMaps=_this3.handleTransferFunction(value);gStateObj.push([key,transferMaps]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":info("graphic state operator "+key);break;default:info("Unknown graphic state operator "+key)}}(key,value);await promise,0new TranslatedFont({loadedName:"g_font_error",font:new ErrorFont('Font "'.concat(fontName,'" is not available.')),dict:font});if(font?font instanceof Ref&&(fontRef=font):(fontRes=resources.get("Font"))&&(fontRef=fontRes.getRaw(fontName)),fontRef){if(null!=(fontRes=this.type3FontRefs)&&fontRes.has(fontRef))return errorFont();if(this.fontCache.has(fontRef))return this.fontCache.get(fontRef);try{font=this.xref.fetchIfRef(fontRef)}catch(ex){warn('loadFont - lookup failed: "'.concat(ex,'".'))}}if(!(font instanceof Dict)){if(!this.options.ignoreErrors&&!this.parsingType3Font)return warn('Font "'.concat(fontName,'" is not available.')),errorFont();warn('Font "'.concat(fontName,'" is not available -- attempting to fallback to a default font.')),font=fallbackFontDict||PartialEvaluator.fallbackFontDict}if(font.cacheKey&&this.fontCache.has(font.cacheKey))return this.fontCache.get(font.cacheKey);var preEvaluatedFont,{promise:fontRes,resolve}=Promise.withResolvers();try{(preEvaluatedFont=this.preEvaluateFont(font)).cssFontInfo=cssFontInfo}catch(reason){return warn('loadFont - preEvaluateFont failed: "'.concat(reason,'".')),errorFont()}var{descriptor:fallbackFontDict,hash:cssFontInfo}=preEvaluatedFont,errorFont=fontRef instanceof Ref;if(cssFontInfo&&fallbackFontDict instanceof Dict){fallbackFontDict=fallbackFontDict.fontAliases||(fallbackFontDict.fontAliases=Object.create(null));if(fallbackFontDict[cssFontInfo]){var aliasFontRef=fallbackFontDict[cssFontInfo].aliasRef;if(errorFont&&aliasFontRef&&this.fontCache.has(aliasFontRef))return this.fontCache.putAlias(fontRef,aliasFontRef),this.fontCache.get(fontRef)}else fallbackFontDict[cssFontInfo]={fontID:this.idFactory.createFontId()};errorFont&&(fallbackFontDict[cssFontInfo].aliasRef=fontRef),aliasFontRef=fallbackFontDict[cssFontInfo].fontID}else aliasFontRef=this.idFactory.createFontId();return assert(null==aliasFontRef?void 0:aliasFontRef.startsWith("f"),'The "fontID" must be (correctly) defined.'),errorFont?this.fontCache.put(fontRef,fontRes):(font.cacheKey="cacheKey_".concat(aliasFontRef),this.fontCache.put(font.cacheKey,fontRes)),font.loadedName="".concat(this.idFactory.getDocId(),"_").concat(aliasFontRef),this.translateFont(preEvaluatedFont).then(async translatedFont=>{var translated=new TranslatedFont({loadedName:font.loadedName,font:translatedFont,dict:font});if(translatedFont.isType3Font)try{await translated.loadType3Data(this,resources,task)}catch(reason){throw new Error("Type3 font load error: ".concat(reason))}resolve(translated)}).catch(reason=>{warn('loadFont - translateFont failed: "'.concat(reason,'".')),resolve(new TranslatedFont({loadedName:font.loadedName,font:new ErrorFont(null==reason?void 0:reason.message),dict:font}))}),fontRes}buildPath(fn,args,state){var{pathMinMax:minMax,pathBuffer}=state;switch(0|fn){case OPS.rectangle:var x=state.currentPointX=args[0],y=state.currentPointY=args[1],width=args[2],height=args[3],xw=x+width,yh=y+height;0===width||0===height?pathBuffer.push(DrawOPS.moveTo,x,y,DrawOPS.lineTo,xw,yh,DrawOPS.closePath):pathBuffer.push(DrawOPS.moveTo,x,y,DrawOPS.lineTo,xw,y,DrawOPS.lineTo,xw,yh,DrawOPS.lineTo,x,yh,DrawOPS.closePath),Util.rectBoundingBox(x,y,xw,yh,minMax);break;case OPS.moveTo:width=state.currentPointX=args[0],height=state.currentPointY=args[1];pathBuffer.push(DrawOPS.moveTo,width,height),Util.pointBoundingBox(width,height,minMax);break;case OPS.lineTo:x=state.currentPointX=args[0],y=state.currentPointY=args[1];pathBuffer.push(DrawOPS.lineTo,x,y),Util.pointBoundingBox(x,y,minMax);break;case OPS.curveTo:var xw=state.currentPointX,yh=state.currentPointY,[width,height,x,y,_x4,_y4]=args;state.currentPointX=_x4,state.currentPointY=_y4,pathBuffer.push(DrawOPS.curveTo,width,height,x,y,_x4,_y4),Util.bezierBoundingBox(xw,yh,width,height,x,y,_x4,_y4,minMax);break;case OPS.curveTo2:var xw=state.currentPointX,yh=state.currentPointY,[width,height,x,y]=args;state.currentPointX=x,state.currentPointY=y,pathBuffer.push(DrawOPS.curveTo,xw,yh,width,height,x,y),Util.bezierBoundingBox(xw,yh,xw,yh,width,height,x,y,minMax);break;case OPS.curveTo3:var _x4=state.currentPointX,_y4=state.currentPointY,[xw,yh,width,height]=args;state.currentPointX=width,state.currentPointY=height,pathBuffer.push(DrawOPS.curveTo,xw,yh,width,height,width,height),Util.bezierBoundingBox(_x4,_y4,xw,yh,width,height,width,height,minMax);break;case OPS.closePath:pathBuffer.push(DrawOPS.closePath)}}_getColorSpace(cs,resources,localColorSpaceCache){return ColorSpaceUtils.parse({cs:cs,xref:this.xref,resources:resources,pdfFunctionFactory:this._pdfFunctionFactory,globalColorSpaceCache:this.globalColorSpaceCache,localColorSpaceCache:localColorSpaceCache,asyncIfNotCached:!0})}async _handleColorSpace(csPromise){try{return await csPromise}catch(ex){if(ex instanceof AbortException)return null;if(this.options.ignoreErrors)return warn('_handleColorSpace - ignoring ColorSpace: "'.concat(ex,'".')),null;throw ex}}parseShading(_ref35){var{shading:_ref35,resources,localColorSpaceCache,localShadingPatternCache}=_ref35,id=localShadingPatternCache.get(_ref35);if(!id){try{var patternIR=Pattern.parseShading(_ref35,this.xref,resources,this._pdfFunctionFactory,this.globalColorSpaceCache,localColorSpaceCache).getIR()}catch(reason){if(reason instanceof AbortException)return null;if(this.options.ignoreErrors)return warn('parseShading - ignoring shading: "'.concat(reason,'".')),localShadingPatternCache.set(_ref35,null),null;throw reason}id="pattern_".concat(this.idFactory.createObjId()),this.parsingType3Font&&(id="".concat(this.idFactory.getDocId(),"_type3_").concat(id)),localShadingPatternCache.set(_ref35,id),this.parsingType3Font?this.handler.send("commonobj",[id,"Pattern",patternIR]):this.handler.send("obj",[id,this.pageIndex,"Pattern",patternIR])}return id}handleColorN(operatorList,fn,args,cs,patterns,resources,task,localColorSpaceCache,localTilingPatternCache,localShadingPatternCache){var patternName=args.pop();if(patternName instanceof Name){var patterns=patterns.getRaw(patternName.name),localTilingPattern=patterns instanceof Ref&&localTilingPatternCache.getByRef(patterns);if(localTilingPattern)try{var color=cs.base?cs.base.getRgbHex(args,0):null,tilingPatternIR=getTilingPatternIR(localTilingPattern.operatorListIR,localTilingPattern.dict,color);return void operatorList.addOp(fn,tilingPatternIR)}catch(_unused1){}localTilingPattern=this.xref.fetchIfRef(patterns);if(localTilingPattern){color=localTilingPattern instanceof BaseStream?localTilingPattern.dict:localTilingPattern,tilingPatternIR=color.get("PatternType");if(tilingPatternIR===PatternType.TILING)return patterns=cs.base?cs.base.getRgbHex(args,0):null,this.handleTilingType(fn,patterns,resources,localTilingPattern,color,operatorList,task,localTilingPatternCache);if(tilingPatternIR===PatternType.SHADING)return cs=color.get("Shading"),void((args=this.parseShading({shading:cs,resources:resources,localColorSpaceCache:localColorSpaceCache,localShadingPatternCache:localShadingPatternCache}))&&(patterns=lookupMatrix(color.getArray("Matrix"),null),operatorList.addOp(fn,["Shading",args,patterns])));throw new FormatError("Unknown PatternType: ".concat(tilingPatternIR))}}throw new FormatError("Unknown PatternName: ".concat(patternName))}_parseVisibilityExpression(array,nestingCounter,currentResult){if(10<++nestingCounter)warn("Visibility expression is too deeply nested");else{var length=array.length,operator=this.xref.fetchIfRef(array[0]);if(length<2||!(operator instanceof Name))warn("Invalid visibility expression");else{switch(operator.name){case"And":case"Or":case"Not":currentResult.push(operator.name);break;default:return void warn("Invalid operator ".concat(operator.name," in visibility expression"))}for(var i=1;i{stateManager.state.fillColorSpace=colorSpace||ColorSpaceUtils.gray})),{v:void 0});case OPS.setStrokeColorSpace:localImage=self._getColorSpace(args[0],resources,localColorSpaceCache);return localImage instanceof ColorSpace?(stateManager.state.strokeColorSpace=localImage,1):(next(self._handleColorSpace(localImage).then(colorSpace=>{stateManager.state.strokeColorSpace=colorSpace||ColorSpaceUtils.gray})),{v:void 0});case OPS.setFillColor:args=[(cs=stateManager.state.fillColorSpace).getRgbHex(args,0)],fn=OPS.setFillRGBColor;break;case OPS.setStrokeColor:args=[(cs=stateManager.state.strokeColorSpace).getRgbHex(args,0)],fn=OPS.setStrokeRGBColor;break;case OPS.setFillGray:stateManager.state.fillColorSpace=ColorSpaceUtils.gray,args=[ColorSpaceUtils.gray.getRgbHex(args,0)],fn=OPS.setFillRGBColor;break;case OPS.setStrokeGray:stateManager.state.strokeColorSpace=ColorSpaceUtils.gray,args=[ColorSpaceUtils.gray.getRgbHex(args,0)],fn=OPS.setStrokeRGBColor;break;case OPS.setFillCMYKColor:stateManager.state.fillColorSpace=ColorSpaceUtils.cmyk,args=[ColorSpaceUtils.cmyk.getRgbHex(args,0)],fn=OPS.setFillRGBColor;break;case OPS.setStrokeCMYKColor:stateManager.state.strokeColorSpace=ColorSpaceUtils.cmyk,args=[ColorSpaceUtils.cmyk.getRgbHex(args,0)],fn=OPS.setStrokeRGBColor;break;case OPS.setFillRGBColor:stateManager.state.fillColorSpace=ColorSpaceUtils.rgb,args=[ColorSpaceUtils.rgb.getRgbHex(args,0)];break;case OPS.setStrokeRGBColor:stateManager.state.strokeColorSpace=ColorSpaceUtils.rgb,args=[ColorSpaceUtils.rgb.getRgbHex(args,0)];break;case OPS.setFillColorN:if(cs=stateManager.state.patternFillColorSpace){if("Pattern"===cs.name)return next(self.handleColorN(operatorList,OPS.setFillColorN,args,cs,patterns,resources,task,localColorSpaceCache,localTilingPatternCache,localShadingPatternCache)),{v:void 0};args=[cs.getRgbHex(args,0)],fn=OPS.setFillRGBColor}else{if(isNumberArray(args,null)){args=[ColorSpaceUtils.gray.getRgbHex(args,0)],fn=OPS.setFillRGBColor;break}args=[],fn=OPS.setFillTransparent}break;case OPS.setStrokeColorN:if(cs=stateManager.state.patternStrokeColorSpace){if("Pattern"===cs.name)return next(self.handleColorN(operatorList,OPS.setStrokeColorN,args,cs,patterns,resources,task,localColorSpaceCache,localTilingPatternCache,localShadingPatternCache)),{v:void 0};args=[cs.getRgbHex(args,0)],fn=OPS.setStrokeRGBColor}else{if(isNumberArray(args,null)){args=[ColorSpaceUtils.gray.getRgbHex(args,0)],fn=OPS.setStrokeRGBColor;break}args=[],fn=OPS.setStrokeTransparent}break;case OPS.shadingFill:try{var shadingRes=resources.get("Shading");if(!shadingRes)throw new FormatError("No shading resource found");if(!(shading=shadingRes.get(args[0].name)))throw new FormatError("No shading object found")}catch(reason){if(reason instanceof AbortException)return 1;if(self.options.ignoreErrors)return warn('getOperatorList - ignoring Shading: "'.concat(reason,'".')),1;throw reason}_localImage=self.parseShading({shading:shading,resources:resources,localColorSpaceCache:localColorSpaceCache,localShadingPatternCache:localShadingPatternCache});if(!_localImage)return 1;args=[_localImage],fn=OPS.shadingFill;break;case OPS.setGState:if(isValidName=args[0]instanceof Name,name=args[0].name,isValidName){localImage=localGStateCache.getByName(name);if(localImage)return 0{operatorList.addOp(OPS.beginMarkedContentProps,["OC",data])}).catch(reason=>{if(!(reason instanceof AbortException)){if(!self.options.ignoreErrors)throw reason;warn('getOperatorList - ignoring beginMarkedContentProps: "'.concat(reason,'".')),operatorList.addOp(OPS.beginMarkedContentProps,["OC",null])}})),{v:void 0};args=[args[0].name,args[1]instanceof Dict?args[1].get("MCID"):null];break;case OPS.beginMarkedContent:case OPS.endMarkedContent:default:if(null!==args){for(i=0,ii=args.length;i{if(!(reason instanceof AbortException)){if(!this.options.ignoreErrors)throw reason;warn('getOperatorList - ignoring errors during "'.concat(task.name,'" ')+'task: "'.concat(reason,'".')),closePendingRestoreOPS()}});throw new Error('getOperatorList: missing "operatorList" parameter');function closePendingRestoreOPS(){for(var i=0,ii=preprocessor.savedStatesDepth;iviewBox[2]||posY+glyphWidthviewBox[3])return}else if(posX+glyphWidthviewBox[2]||posYviewBox[3])return;if(textState.font&&textContentItem.prevTransform){var lastPosX=textContentItem.prevTransform[4],lastPosY=textContentItem.prevTransform[5];if(lastPosX!==posX||lastPosY!==posY){var _textOrientation,_textState$font=-1;switch(currentTransform[0]&&0===currentTransform[1]&&0===currentTransform[2]?_textState$font=0.5*textContentItem.width?appendEOL:(resetLastChars(),flushTextContentItem))():Math.abs(glyphWidth)>textContentItem.width?appendEOL():(_textState$font<=_textOrientation*textContentItem.notASpace&&resetLastChars(),_textState$font<=_textOrientation*textContentItem.trackingSpaceMin?shouldAddWhitepsace()?(resetLastChars(),flushTextContentItem(),pushWhitespace({height:Math.abs(_textState$font)})):textContentItem.height+=_textState$font:addFakeSpaces(_textState$font,textContentItem.prevTransform,_textOrientation)||(0===textContentItem.str.length?(resetLastChars(),pushWhitespace({height:Math.abs(_textState$font)})):textContentItem.height+=_textState$font),Math.abs(glyphWidth)>textContentItem.width*VERTICAL_SHIFT_RATIO&&flushTextContentItem())):(_textOrientation=posY-lastPosY,(_textState$font=(posX-lastPosX)/textContentItem.textAdvanceScale)<(glyphWidth=Math.sign(textContentItem.width))*textContentItem.negativeSpaceMax?(Math.abs(_textOrientation)>.5*textContentItem.height?appendEOL:(resetLastChars(),flushTextContentItem))():Math.abs(_textOrientation)>textContentItem.height?appendEOL():(_textState$font<=glyphWidth*textContentItem.notASpace&&resetLastChars(),_textState$font<=glyphWidth*textContentItem.trackingSpaceMin?shouldAddWhitepsace()?(resetLastChars(),flushTextContentItem(),pushWhitespace({width:Math.abs(_textState$font)})):textContentItem.width+=_textState$font:addFakeSpaces(_textState$font,textContentItem.prevTransform,glyphWidth)||(0===textContentItem.str.length?(resetLastChars(),pushWhitespace({width:Math.abs(_textState$font)})):textContentItem.width+=_textState$font),Math.abs(_textOrientation)>textContentItem.height*VERTICAL_SHIFT_RATIO&&flushTextContentItem()))}}return 1}function buildTextContentItem(_ref39){var{chars:_ref39,extraSpacing}=_ref39,font=textState.font;if(_ref39)for(var glyphs=font.charsToGlyphs(_ref39),scale=textState.fontMatrix[0]*textState.fontSize,i=0,ii=glyphs.length;i=(null!=(fn=null==sink?void 0:sink.desiredSize)?fn:1)){stop=!0;break}}stop?next(deferred):(flushTextContentItem(),enqueueChunk(),resolve())}).catch(reason=>{if(!(reason instanceof AbortException)){if(!this.options.ignoreErrors)throw reason;warn('getTextContent - ignoring errors during "'.concat(task.name,'" ')+'task: "'.concat(reason,'".')),flushTextContentItem(),enqueueChunk()}})}async extractDataStructures(dict,properties){var cidToGidBytes,xref=this.xref,toUnicodePromise=this.readToUnicode(properties.toUnicode);if(properties.composite){var cidSystemInfo=dict.get("CIDSystemInfo");cidSystemInfo instanceof Dict&&(properties.cidSystemInfo={registry:stringToPDFString(cidSystemInfo.get("Registry")),ordering:stringToPDFString(cidSystemInfo.get("Ordering")),supplement:cidSystemInfo.get("Supplement")});try{var cidToGidMap=dict.get("CIDToGIDMap");cidToGidMap instanceof BaseStream&&(cidToGidBytes=cidToGidMap.getBytes())}catch(ex){if(!this.options.ignoreErrors)throw ex;warn('extractDataStructures - ignoring CIDToGIDMap data: "'.concat(ex,'".'))}}var differences=[],cidSystemInfo=null;if(dict.has("Encoding")){if((encoding=dict.get("Encoding"))instanceof Dict){if(cidSystemInfo=(cidSystemInfo=encoding.get("BaseEncoding"))instanceof Name?cidSystemInfo.name:null,encoding.has("Differences")){var entry,index=0;for(entry of encoding.get("Differences")){var data=xref.fetchIfRef(entry);if("number"==typeof data)index=data;else{if(!(data instanceof Name))throw new FormatError("Invalid entry in 'Differences' array: ".concat(data));differences[index++]=data.name}}}}else if(encoding instanceof Name)cidSystemInfo=encoding.name;else{cidToGidMap="Encoding is not a Name nor a Dict";if(!this.options.ignoreErrors)throw new FormatError(cidToGidMap);warn(cidToGidMap)}"MacRomanEncoding"!==cidSystemInfo&&"MacExpertEncoding"!==cidSystemInfo&&"WinAnsiEncoding"!==cidSystemInfo&&(cidSystemInfo=null)}var isSymbolicFont,encoding,cidToGidMap=!properties.file||properties.isInternalFont,isSymbolsFontName=getSymbolsFonts()[properties.name],isNonsymbolicFont=((cidSystemInfo=cidSystemInfo&&cidToGidMap&&isSymbolsFontName?null:cidSystemInfo)?properties.defaultEncoding=getEncoding(cidSystemInfo):(isSymbolicFont=!!(properties.flags&FontFlags.Symbolic),isNonsymbolicFont=!!(properties.flags&FontFlags.Nonsymbolic),encoding=StandardEncoding,"TrueType"!==properties.type||isNonsymbolicFont||(encoding=WinAnsiEncoding),(isSymbolicFont||isSymbolsFontName)&&(encoding=MacRomanEncoding,cidToGidMap)&&(/Symbol/i.test(properties.name)?encoding=SymbolSetEncoding:/Dingbats/i.test(properties.name)?encoding=ZapfDingbatsEncoding:/Wingdings/i.test(properties.name)&&(encoding=WinAnsiEncoding)),properties.defaultEncoding=encoding),properties.differences=differences,properties.baseEncodingName=cidSystemInfo,properties.hasEncoding=!!cidSystemInfo||0>1;0==glyphID&&!toUnicode.has(code)||(result[code]=glyphID)}return result}extractWidths(dict,descriptor,properties){var xref=this.xref,glyphsWidths=[],defaultWidth=0,glyphsVMetrics=[];if(properties.composite){var dw=dict.get("DW"),defaultWidth="number"==typeof dw?Math.ceil(dw):1e3,widths=dict.get("W");if(Array.isArray(widths))for(var i=0,ii=widths.length;i{var glyphStream=charProcs.get(key),operatorList=new OperatorList;return type3Evaluator.getOperatorList({stream:glyphStream,task:task,resources:fontResources,operatorList:operatorList}).then(()=>{switch(operatorList.fnArray[0]){case OPS.setCharWidthAndBounds:_assertClassBrand(_TranslatedFont_brand,_this4,_removeType3ColorOperators).call(_this4,operatorList,fontBBoxSize);break;case OPS.setCharWidth:fontBBoxSize||_assertClassBrand(_TranslatedFont_brand,_this4,_guessType3FontBBox).call(_this4,operatorList)}charProcOperatorList[key]=operatorList.getIR();for(var dependency of operatorList.dependencies)type3Dependencies.add(dependency)}).catch(function(reason){warn('Type3 font resource "'.concat(key,'" is not available.'));var dummyOperatorList=new OperatorList;charProcOperatorList[key]=dummyOperatorList.getIR()})})}(key);_classPrivateFieldSet(_type3Loaded,this,loadCharProcsPromise.then(()=>{font.charProcOperatorList=charProcOperatorList,this._bbox&&(font.isCharBBox=!0,font.bbox=this._bbox)}))}return _classPrivateFieldGet(_type3Loaded,this)}}function _removeType3ColorOperators(operatorList){for(var fontBBoxSize=1=OPS.moveTo&&fn<=OPS.endPath,opSpec.variableArgs)numArgsEvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new FormatError("Invalid ".concat(opSpec));warn("Skipping ".concat(opSpec)),null!==args&&(args.length=0);continue}}return this.preprocessCommand(fn,args),operation.fn=fn,operation.args=args,!0}if(obj===EOF)return!1;if(null!==obj&&((args=null===args?[]:args).push(obj),33numberToString(c/255)).join(" ")+" ".concat(isFill?"rg":"RG")}function createDefaultAppearance(_ref42){var{fontSize:_ref42,fontName,fontColor}=_ref42;return"/".concat(escapePDFName(fontName)," ").concat(_ref42," Tf ").concat(getPdfColor(fontColor,!0))}class FakeUnicodeFont{constructor(xref,fontFamily){this.xref=xref,this.widths=null,this.firstChar=1/0,this.lastChar=-1/0,this.fontFamily=fontFamily;xref=new OffscreenCanvas(1,1);this.ctxMeasure=xref.getContext("2d",{willReadFrequently:!0}),FakeUnicodeFont._fontNameId||(FakeUnicodeFont._fontNameId=1),this.fontName=Name.get("InvalidPDFjsFont_".concat(fontFamily,"_").concat(FakeUnicodeFont._fontNameId++))}get fontDescriptorRef(){var fontDescriptor;return FakeUnicodeFont._fontDescriptorRef||((fontDescriptor=new Dict(this.xref)).set("Type",Name.get("FontDescriptor")),fontDescriptor.set("FontName",this.fontName),fontDescriptor.set("FontFamily","MyriadPro Regular"),fontDescriptor.set("FontBBox",[0,0,0,0]),fontDescriptor.set("FontStretch",Name.get("Normal")),fontDescriptor.set("FontWeight",400),fontDescriptor.set("ItalicAngle",0),FakeUnicodeFont._fontDescriptorRef=this.xref.getNewPersistentRef(fontDescriptor)),FakeUnicodeFont._fontDescriptorRef}get descendantFontRef(){var char,width,descendantFont=new Dict(this.xref),widths=(descendantFont.set("BaseFont",this.fontName),descendantFont.set("Type",Name.get("Font")),descendantFont.set("Subtype",Name.get("CIDFontType0")),descendantFont.set("CIDToGIDMap",Name.get("Identity")),descendantFont.set("FirstChar",this.firstChar),descendantFont.set("LastChar",this.lastChar),descendantFont.set("FontDescriptor",this.fontDescriptorRef),descendantFont.set("DW",1e3),[]),currentChar=null,currentWidths=null;for([char,width]of[...this.widths.entries()].sort())currentChar?char===currentChar+currentWidths.length?currentWidths.push(width):(widths.push(currentChar,currentWidths),currentChar=char,currentWidths=[width]):(currentChar=char,currentWidths=[width]);currentChar&&widths.push(currentChar,currentWidths),descendantFont.set("W",widths);var cidSystemInfo=new Dict(this.xref);return cidSystemInfo.set("Ordering","Identity"),cidSystemInfo.set("Registry","Adobe"),cidSystemInfo.set("Supplement",0),descendantFont.set("CIDSystemInfo",cidSystemInfo),this.xref.getNewPersistentRef(descendantFont)}get baseFontRef(){var baseFont=new Dict(this.xref);return baseFont.set("BaseFont",this.fontName),baseFont.set("Type",Name.get("Font")),baseFont.set("Subtype",Name.get("Type0")),baseFont.set("Encoding",Name.get("Identity-H")),baseFont.set("DescendantFonts",[this.descendantFontRef]),baseFont.set("ToUnicode",Name.get("Identity-H")),this.xref.getNewPersistentRef(baseFont)}get resources(){var resources=new Dict(this.xref),font=new Dict(this.xref);return font.set(this.fontName.name,this.baseFontRef),resources.set("Font",font),resources}_createContext(){return this.widths=new Map,this.ctxMeasure.font="1000px ".concat(this.fontFamily),this.ctxMeasure}createFontResources(text){var line,ctx=this._createContext();for(line of text.split(/\r\n?|\n/))for(var char of line.split("")){var code=char.charCodeAt(0);this.widths.has(code)||(char=ctx.measureText(char),char=Math.ceil(char.width),this.widths.set(code,char),this.firstChar=Math.min(code,this.firstChar),this.lastChar=Math.max(code,this.lastChar))}return this.resources}static getFirstPositionInfo(rect,rotation,fontSize){var[rect,y1,x2,y2]=rect,x2=x2-rect,rect=y2-y1,y2=(rotation%180!=0&&([x2,rect]=[rect,x2]),LINE_FACTOR*fontSize);return{coords:[0,rect+LINE_DESCENT_FACTOR*fontSize-y2],bbox:[0,0,x2,rect],matrix:0!==rotation?getRotationMatrix(rotation,rect,y2):void 0}}createAppearance(text,rect,rotation,fontSize,bgColor,strokeAlpha){var line,ctx=this._createContext(),lines=[],maxWidth=-1/0;for(line of text.split(/\r\n?|\n/)){lines.push(line);var code,lineWidth=ctx.measureText(line).width,maxWidth=Math.max(maxWidth,lineWidth);for(code of codePointIter(line)){var char=String.fromCodePoint(code),width=this.widths.get(code);void 0===width&&(char=ctx.measureText(char),width=Math.ceil(char.width),this.widths.set(code,width),this.firstChar=Math.min(code,this.firstChar),this.lastChar=Math.max(code,this.lastChar))}}var[text,rect,x2,y2]=rect,x2=x2-text,text=y2-rect,y2=(rotation%180!=0&&([x2,text]=[text,x2]),1),rect=(x2<(maxWidth*=fontSize/1e3)&&(y2=x2/maxWidth),1),lineHeight=LINE_FACTOR*fontSize,lineDescent=LINE_DESCENT_FACTOR*fontSize,maxHeight=lineHeight*lines.length;text Tj"));buffer.push("ET","Q");lineDescent=buffer.join("\n"),bgColor=new Dict(this.xref),bgColor.set("Subtype",Name.get("Form")),bgColor.set("Type",Name.get("XObject")),bgColor.set("BBox",[0,0,x2,text]),bgColor.set("Length",lineDescent.length),bgColor.set("Resources",fontSize),rotation&&(maxHeight=getRotationMatrix(rotation,x2,text),bgColor.set("Matrix",maxHeight)),strokeAlpha=new StringStream(lineDescent);return strokeAlpha.dict=bgColor,strokeAlpha}}function makeColorComp(n){return Math.floor(255*Math.max(0,Math.min(1,n))).toString(16).padStart(2,"0")}function scaleAndClamp(x){return Math.max(0,Math.min(255,255*x))}class ColorConverters{static CMYK_G(_ref43){var[_ref43,y,m,k]=_ref43;return["G",1-Math.min(1,.3*_ref43+.59*m+.11*y+k)]}static G_CMYK(_ref44){var[_ref44]=_ref44;return["CMYK",0,0,0,1-_ref44]}static G_RGB(_ref45){var[_ref45]=_ref45;return["RGB",_ref45,_ref45,_ref45]}static G_rgb(_ref46){var[_ref46]=_ref46;return[_ref46=scaleAndClamp(_ref46),_ref46,_ref46]}static G_HTML(_ref47){var[_ref47]=_ref47,_ref47=makeColorComp(_ref47);return"#".concat(_ref47).concat(_ref47).concat(_ref47)}static RGB_G(_ref48){var[_ref48,g,b]=_ref48;return["G",.3*_ref48+.59*g+.11*b]}static RGB_rgb(color){return color.map(scaleAndClamp)}static RGB_HTML(color){return"#".concat(color.map(makeColorComp).join(""))}static T_HTML(){return"#00000000"}static T_rgb(){return[null]}static CMYK_RGB(_ref49){var[_ref49,y,m,k]=_ref49;return["RGB",1-Math.min(1,_ref49+k),1-Math.min(1,m+k),1-Math.min(1,y+k)]}static CMYK_rgb(_ref50){var[_ref50,y,m,k]=_ref50;return[scaleAndClamp(1-Math.min(1,_ref50+k)),scaleAndClamp(1-Math.min(1,m+k)),scaleAndClamp(1-Math.min(1,y+k))]}static CMYK_HTML(components){components=this.CMYK_RGB(components).slice(1);return this.RGB_HTML(components)}static RGB_CMYK(_ref51){var[_ref51,g,b]=_ref51,_ref51=1-_ref51,g=1-g,b=1-b;return["CMYK",_ref51,g,b,Math.min(_ref51,g,b)]}}var DateFormats=["m/d","m/d/yy","mm/dd/yy","mm/yy","d-mmm","d-mmm-yy","dd-mmm-yy","yy-mm-dd","mmm-yy","mmmm-yy","mmm d, yyyy","mmmm d, yyyy","m/d/yy h:MM tt","m/d/yy HH:MM"],TimeFormats=["HH:MM","h:MM tt","HH:MM:ss","h:MM:ss tt"];class NameOrNumberTree{constructor(root,xref,type){this.root=root,this.xref=xref,this._type=type}getAll(){var map=new Map;if(this.root)for(var xref=this.xref,processed=new RefSet,queue=(processed.put(this.root),[this.root]);0>1,kid=xref.fetchIfRef(kids[m]),limits=kid.get("Limits");if(keyxref.fetchIfRef(limits[1]))){kidsOrEntries=kid;break}l=1+m}}if(r>1,tmp=tmp+(1&tmp),currentKey=xref.fetchIfRef(entries[tmp]);if(key{if("#x"===entity.substring(0,2))return String.fromCodePoint(parseInt(entity.substring(2),16));if("#"===entity.substring(0,1))return String.fromCodePoint(parseInt(entity.substring(1),10));switch(entity){case"lt":return"<";case"gt":return">";case"amp":return"&";case"quot":return'"';case"apos":return"'"}return this.onResolveEntity(entity)})}_parseContent(s,start){var attributes=[],pos=start;function skipWs(){for(;pos"!==s[pos]&&"/"!==s[pos];)++pos;var name=s.substring(start,pos);for(skipWs();pos"!==s[pos]&&"/"!==s[pos]&&"?"!==s[pos];){skipWs();for(var attrValue,attrName="";pos"!==s[pos]&&"?"!==s[pos]&&"/"!==s[pos];)++pos;for(var name=s.substring(start,pos);pos"!==s[pos+1]);)++pos;return{name:name,value:s.substring(attrStart,pos),parsed:pos-start}}parseXml(s){for(var i=0;i",j))<0)return void this.onError(XMLParserErrorCode.UnterminatedElement);this.onEndElement(s.substring(j,q)),j=q+1;break;case"?":++j;var pi=this._parseProcessingInstruction(s,j);if("?>"!==s.substring(j+pi.parsed,j+pi.parsed+2))return void this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);this.onPi(pi.name,pi.value),j+=pi.parsed+2;break;case"!":if("--"===s.substring(j+1,j+3)){if((q=s.indexOf("--\x3e",j+3))<0)return void this.onError(XMLParserErrorCode.UnterminatedComment);this.onComment(s.substring(j+3,q)),j=q+3}else if("[CDATA["===s.substring(j+1,j+8)){if((q=s.indexOf("]]>",j+8))<0)return void this.onError(XMLParserErrorCode.UnterminatedCdat);this.onCdata(s.substring(j+8,q)),j=q+3}else{if("DOCTYPE"!==s.substring(j+1,j+8))return void this.onError(XMLParserErrorCode.MalformedElement);var pi=s.indexOf("[",j+8),complexDoctype=!1;if((q=s.indexOf(">",j+8))<0)return void this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);if(0",j+8))<0)return void this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);complexDoctype=!0}var doctypeContent=s.substring(j+8,q+(complexDoctype?1:0));this.onDoctype(doctypeContent),j=q+(complexDoctype?2:1)}break;default:doctypeContent=this._parseContent(s,j);if(null===doctypeContent)return void this.onError(XMLParserErrorCode.MalformedElement);complexDoctype=!1;if("/>"===s.substring(j+doctypeContent.parsed,j+doctypeContent.parsed+2))complexDoctype=!0;else if(">"!==s.substring(j+doctypeContent.parsed,j+doctypeContent.parsed+1))return void this.onError(XMLParserErrorCode.UnterminatedElement);this.onBeginElement(doctypeContent.name,doctypeContent.attributes,complexDoctype),j+=doctypeContent.parsed+(complexDoctype?2:1)}}else{for(;jchild.textContent).join(""):this.nodeValue||""}get children(){return this.childNodes||[]}hasChildNodes(){var _this$childNodes2;return 0<(null==(_this$childNodes2=this.childNodes)?void 0:_this$childNodes2.length)}searchNode(paths,pos){if(pos>=paths.length)return this;var component=paths[pos];if(component.name.startsWith("#")&&pos");for(var child of this.childNodes)child.dump(buffer);buffer.push(""))}else this.nodeValue?buffer.push(">".concat(encodeToXmlString(this.nodeValue),"")):buffer.push("/>")}}}class SimpleXMLParser extends XMLParserBase{constructor(_ref52){var{hasAttributes:_ref52=!1,lowerCaseName=!1}=_ref52;super(),this._currentFragment=null,this._stack=null,this._errorCode=XMLParserErrorCode.NoError,this._hasAttributes=_ref52,this._lowerCaseName=lowerCaseName}parseFromString(data){if(this._currentFragment=[],this._stack=[],this._errorCode=XMLParserErrorCode.NoError,this.parseXml(data),this._errorCode===XMLParserErrorCode.NoError){var[data]=this._currentFragment;if(data)return{documentElement:data}}}onText(text){isWhitespaceString(text)||(text=new SimpleDOMNode("#text",text),this._currentFragment.push(text))}onCdata(text){text=new SimpleDOMNode("#text",text);this._currentFragment.push(text)}onBeginElement(name,attributes,isEmpty){this._lowerCaseName&&(name=name.toLowerCase());name=new SimpleDOMNode(name);name.childNodes=[],this._hasAttributes&&(name.attributes=attributes),this._currentFragment.push(name),isEmpty||(this._stack.push(this._currentFragment),this._currentFragment=name.childNodes)}onEndElement(name){this._currentFragment=this._stack.pop()||[];var childNode,lastElement=this._currentFragment.at(-1);if(!lastElement)return null;for(childNode of lastElement.childNodes)childNode.parentNode=lastElement;return lastElement}onError(code){this._errorCode=code}}class MetadataParser{constructor(data){data=this._repair(data);var xmlDocument=new SimpleXMLParser({lowerCaseName:!0}).parseFromString(data);this._metadataMap=new Map,this._data=data,xmlDocument&&this._parse(xmlDocument)}_repair(data){return data.replace(/^[^<]+/,"").replaceAll(/>\\376\\377([^<]+)/g,function(all,codes){for(var bytes=codes.replaceAll(/\\([0-3])([0-7])([0-7])/g,function(code,d1,d2,d3){return String.fromCharCode(64*d1+8*d2+ +d3)}).replaceAll(/&(amp|apos|gt|lt|quot);/g,function(str,name){switch(name){case"amp":return"&";case"apos":return"'";case"gt":return">";case"lt":return"<";case"quot":return'"'}throw new Error("_repair: ".concat(name," isn't defined."))}),charBuf=[">"],i=0,ii=bytes.length;i"rdf:li"===node.nodeName)}_parseArray(entry){var seqNode;entry.hasChildNodes()&&([seqNode]=entry.childNodes,seqNode=this._getSequence(seqNode)||[],this._metadataMap.set(entry.nodeName,seqNode.map(node=>node.textContent.trim())))}_parse(xmlDocument){var rdf=xmlDocument.documentElement;if("rdf:rdf"!==rdf.nodeName)for(rdf=rdf.firstChild;rdf&&"rdf:rdf"!==rdf.nodeName;)rdf=rdf.nextSibling;if(rdf&&"rdf:rdf"===rdf.nodeName&&rdf.hasChildNodes())for(var desc of rdf.childNodes)if("rdf:description"===desc.nodeName)for(var entry of desc.childNodes){var name=entry.nodeName;switch(name){case"#text":continue;case"dc:creator":case"dc:subject":this._parseArray(entry);continue}this._metadataMap.set(name,entry.textContent.trim())}}get serializable(){return{parsedData:this._metadataMap,rawData:this._data}}}var MAX_DEPTH=40,StructElementType={PAGE_CONTENT:1,STREAM_CONTENT:2,OBJECT:3,ANNOTATION:4,ELEMENT:5},_StructTreeRoot_brand=new WeakSet;class StructTreeRoot{constructor(xref,rootDict,rootRef){_classPrivateMethodInitSpec(this,_StructTreeRoot_brand),this.xref=xref,this.dict=rootDict,this.ref=rootRef instanceof Ref?rootRef:null,this.roleMap=new Map,this.structParentIds=null}init(){this.readRoleMap()}addAnnotationIdToPage(pageRef,id){_assertClassBrand(_StructTreeRoot_brand,this,_addIdToPage).call(this,pageRef,id,StructElementType.ANNOTATION)}readRoleMap(){var roleMapDict=this.dict.get("RoleMap");if(roleMapDict instanceof Dict)for(var[key,value]of roleMapDict)value instanceof Name&&this.roleMap.set(key,value.name)}static async canCreateStructureTree(_ref53){var{catalogRef:_ref53,pdfManager,newAnnotationsByPage}=_ref53;if(!(_ref53 instanceof Ref))return warn("Cannot save the struct tree: no catalog reference."),!1;var pageIndex,elements,nextKey=0,hasNothingToUpdate=!0;for([pageIndex,elements]of newAnnotationsByPage){var element,_element$accessibilit,pageRef=(await pdfManager.getPage(pageIndex))["ref"];if(!(pageRef instanceof Ref)){warn("Cannot save the struct tree: page ".concat(pageIndex," has no ref.")),hasNothingToUpdate=!0;break}for(element of elements)null!=(_element$accessibilit=element.accessibilityData)&&_element$accessibilit.type&&(element.parentTreeId=nextKey++,hasNothingToUpdate=!1)}if(hasNothingToUpdate){for(var _elements of newAnnotationsByPage.values())for(var _element of _elements)delete _element.parentTreeId;return!1}return!0}static async createStructureTree(_ref54){var ref,obj,{newAnnotationsByPage:_ref54,xref,catalogRef,pdfManager,changes}=_ref54,root=await pdfManager.ensureCatalog("cloneDict"),cache=new RefSetCache,catalogRef=(cache.put(catalogRef,root),xref.getNewTemporaryRef()),root=(root.set("StructTreeRoot",catalogRef),new Dict(xref)),parentTreeRef=(root.set("Type",Name.get("StructTreeRoot")),xref.getNewTemporaryRef()),kids=(root.set("ParentTree",parentTreeRef),[]),parentTree=(root.set("K",kids),cache.put(catalogRef,root),new Dict(xref)),nums=[],_ref54=(parentTree.set("Nums",nums),await _assertClassBrand(StructTreeRoot,this,_writeKids).call(this,{newAnnotationsByPage:_ref54,structTreeRootRef:catalogRef,structTreeRoot:null,kids:kids,nums:nums,xref:xref,pdfManager:pdfManager,changes:changes,cache:cache}));root.set("ParentTreeNextKey",_ref54),cache.put(parentTreeRef,parentTree);for([ref,obj]of cache.items())changes.put(ref,{data:obj})}async canUpdateStructTree(_ref55){var{pdfManager,newAnnotationsByPage:_ref55}=_ref55;if(!this.ref)return warn("Cannot update the struct tree: no root reference."),!1;var nextKey=this.dict.get("ParentTreeNextKey");if(!Number.isInteger(nextKey)||nextKey<0)return warn("Cannot update the struct tree: invalid next key."),!1;var parentTree=this.dict.get("ParentTree");if(!(parentTree instanceof Dict))return warn("Cannot update the struct tree: ParentTree isn't a dict."),!1;var nums=parentTree.get("Nums");if(!Array.isArray(nums))return warn("Cannot update the struct tree: nums isn't an array."),!1;var pageIndex,numberTree=new NumberTree(parentTree,this.xref);for(pageIndex of _ref55.keys()){var pageDict=(await pdfManager.getPage(pageIndex))["pageDict"];if(pageDict.has("StructParents")){pageDict=pageDict.get("StructParents");if(!Number.isInteger(pageDict)||!Array.isArray(numberTree.get(pageDict)))return warn("Cannot save the struct tree: page ".concat(pageIndex," has a wrong id.")),!1}}var _pageIndex,elements,hasNothingToUpdate=!0;for([_pageIndex,elements]of _ref55){var element,_element$accessibilit2,_pageDict=(await pdfManager.getPage(_pageIndex))["pageDict"];_collectParents.call(StructTreeRoot,{elements:elements,xref:this.xref,pageDict:_pageDict,numberTree:numberTree});for(element of elements)null!=(_element$accessibilit2=element.accessibilityData)&&_element$accessibilit2.type&&(0<=element.accessibilityData.structParent||(element.parentTreeId=nextKey++),hasNothingToUpdate=!1)}if(hasNothingToUpdate){for(var _elements2 of _ref55.values())for(var _element2 of _elements2)delete _element2.parentTreeId,delete _element2.structTreeParent;return!1}return!0}async updateStructureTree(_ref56){var{newAnnotationsByPage:_ref56,pdfManager,changes}=_ref56,{ref:structTreeRootRef,xref}=this,structTreeRoot=this.dict.clone(),cache=new RefSetCache,parentTreeRef=(cache.put(structTreeRootRef,structTreeRoot),structTreeRoot.getRaw("ParentTree")),parentTreeRef=(parentTreeRef instanceof Ref?parentTree=xref.fetch(parentTreeRef):(parentTree=parentTreeRef,parentTreeRef=xref.getNewTemporaryRef(),structTreeRoot.set("ParentTree",parentTreeRef)),parentTree=parentTree.clone(),cache.put(parentTreeRef,parentTree),parentTree.getRaw("Nums")),numsRef=null,parentTree=(parentTreeRef instanceof Ref&&(numsRef=parentTreeRef,parentTreeRef=xref.fetch(numsRef)),parentTreeRef=parentTreeRef.slice(),numsRef||parentTree.set("Nums",parentTreeRef),await _writeKids.call(StructTreeRoot,{newAnnotationsByPage:_ref56,structTreeRootRef:structTreeRootRef,structTreeRoot:this,kids:null,nums:parentTreeRef,xref:xref,pdfManager:pdfManager,changes:changes,cache:cache}));if(-1!==parentTree){structTreeRoot.set("ParentTreeNextKey",parentTree),numsRef&&cache.put(numsRef,parentTreeRef);for(var[ref,obj]of cache.items())changes.put(ref,{data:obj})}}}function _addIdToPage(pageRef,id,type){var ids;pageRef instanceof Ref&&!(id<0)&&(this.structParentIds||(this.structParentIds=new RefSetCache),(ids=this.structParentIds.get(pageRef))||this.structParentIds.put(pageRef,ids=[]),ids.push([id,type]))}async function _writeKids(_ref93){var structTreePageObjs,pageIndex,elements,{newAnnotationsByPage:_ref93,structTreeRootRef,structTreeRoot,kids,nums,xref,pdfManager,changes,cache}=_ref93,objr=Name.get("OBJR"),nextKey=-1;for([pageIndex,elements]of _ref93){var accessibilityData,ref,parentTreeId,structTreeParent,page=await pdfManager.getPage(pageIndex),pageRef=page["ref"],isPageRef=pageRef instanceof Ref;for({accessibilityData,ref,parentTreeId,structTreeParent}of elements)if(null!=accessibilityData&&accessibilityData.type){var structParent=accessibilityData["structParent"];if(structTreeRoot&&Number.isInteger(structParent)&&0<=structParent){var objs=(structTreePageObjs=structTreePageObjs||new Map).get(pageIndex),objs=(void 0===objs&&(objs=new StructTreePage(structTreeRoot,page.pageDict).collectObjects(pageRef),structTreePageObjs.set(pageIndex,objs)),null==objs?void 0:objs.get(structParent));if(objs){structParent=xref.fetch(objs).clone();_writeProperties.call(_StructTreeRoot,structParent,accessibilityData),changes.put(objs,{data:structParent});continue}}var nextKey=Math.max(nextKey,parentTreeId),objs=xref.getNewTemporaryRef(),structParent=new Dict(xref),objDict=(_writeProperties.call(_StructTreeRoot,structParent,accessibilityData),await _assertClassBrand(_StructTreeRoot,this,_updateParentTag).call(this,{structTreeParent:structTreeParent,tagDict:structParent,newTagRef:objs,structTreeRootRef:structTreeRootRef,fallbackKids:kids,xref:xref,cache:cache}),new Dict(xref));structParent.set("K",objDict),objDict.set("Type",objr),isPageRef&&objDict.set("Pg",pageRef),objDict.set("Obj",ref),cache.put(objs,structParent),nums.push(parentTreeId,objs)}}return nextKey+1}function _writeProperties(tagDict,_ref94){var{type:_ref94,title,lang,alt,expanded,actualText}=_ref94;tagDict.set("S",Name.get(_ref94)),title&&tagDict.set("T",stringToAsciiOrUTF16BE(title)),lang&&tagDict.set("Lang",stringToAsciiOrUTF16BE(lang)),alt&&tagDict.set("Alt",stringToAsciiOrUTF16BE(alt)),expanded&&tagDict.set("E",stringToAsciiOrUTF16BE(expanded)),actualText&&tagDict.set("ActualText",stringToAsciiOrUTF16BE(actualText))}function _collectParents(_ref95){var element,_id,elems,{elements:_ref95,xref,pageDict,numberTree}=_ref95,idToElements=new Map;for(element of _ref95)element.structTreeParentId&&(_id=parseInt(element.structTreeParentId.split("_mc")[1],10),(elems=idToElements.get(_id))||idToElements.set(_id,elems=[]),elems.push(element));_ref95=pageDict.get("StructParents");if(Number.isInteger(_ref95)){var kidRef,updateElement=(kid,pageKid,kidRef)=>{kid=idToElements.get(kid);if(kid){var parentRef=pageKid.getRaw("P"),parentDict=xref.fetchIfRef(parentRef);if(parentRef instanceof Ref&&parentDict instanceof Dict){var _element4,params={ref:kidRef,dict:pageKid};for(_element4 of kid)_element4.structTreeParent=params}return!0}return!1};for(kidRef of numberTree.get(_ref95))if(kidRef instanceof Ref){var pageKid=xref.fetch(kidRef),k=pageKid.get("K");if(Number.isInteger(k))updateElement(k,pageKid,kidRef);else if(Array.isArray(k))for(var kid of k){if(kid=xref.fetchIfRef(kid),Number.isInteger(kid)&&updateElement(kid,pageKid,kidRef))break;if(kid instanceof Dict){if(!isName(kid.get("Type"),"MCR"))break;kid=kid.get("MCID");if(Number.isInteger(kid)&&updateElement(kid,pageKid,kidRef))break}}}}}async function _updateParentTag(_ref96){var{structTreeParent:_ref96,tagDict,newTagRef,structTreeRootRef,fallbackKids,xref,cache}=_ref96,ref=null,_ref96=_ref96&&(ref=_ref96["ref"],_ref96.dict.getRaw("P"))||structTreeRootRef,structTreeRootRef=(tagDict.set("P",_ref96),xref.fetchIfRef(_ref96));structTreeRootRef?((tagDict=cache.get(_ref96))||(tagDict=structTreeRootRef.clone(),cache.put(_ref96,tagDict)),(_ref96=(structTreeRootRef=tagDict.getRaw("K"))instanceof Ref?cache.get(structTreeRootRef):null)||(_ref96=xref.fetchIfRef(structTreeRootRef),_ref96=Array.isArray(_ref96)?_ref96.slice():[structTreeRootRef],structTreeRootRef=xref.getNewTemporaryRef(),tagDict.set("K",structTreeRootRef),cache.put(structTreeRootRef,_ref96)),xref=_ref96.indexOf(ref),_ref96.splice(0<=xref?xref+1:_ref96.length,0,newTagRef)):fallbackKids.push(newTagRef)}_StructTreeRoot=StructTreeRoot;class StructElementNode{constructor(tree,dict){this.tree=tree,this.xref=tree.xref,this.dict=dict,this.kids=[],this.parseKids()}get role(){var nameObj=this.dict.get("S"),nameObj=nameObj instanceof Name?nameObj.name:"",root=this.tree["root"];return null!=(root=root.roleMap.get(nameObj))?root:nameObj}parseKids(){var pageObjId=null,objRef=this.dict.getRaw("Pg"),objRef=(objRef instanceof Ref&&(pageObjId=objRef.toString()),this.dict.get("K"));if(Array.isArray(objRef))for(var kid of objRef){kid=this.parseKid(pageObjId,this.xref.fetchIfRef(kid));kid&&this.kids.push(kid)}else{objRef=this.parseKid(pageObjId,objRef);objRef&&this.kids.push(objRef)}}parseKid(pageObjId,kid){var pageRef,kidRef;return Number.isInteger(kid)?this.tree.pageDict.objId!==pageObjId?null:new StructElement({type:StructElementType.PAGE_CONTENT,mcid:kid,pageObjId:pageObjId}):kid instanceof Dict?((pageRef=kid.getRaw("Pg"))instanceof Ref&&(pageObjId=pageRef.toString()),"MCR"===(pageRef=kid.get("Type")instanceof Name?kid.get("Type").name:null)?this.tree.pageDict.objId!==pageObjId?null:(kidRef=kid.getRaw("Stm"),new StructElement({type:StructElementType.STREAM_CONTENT,refObjId:kidRef instanceof Ref?kidRef.toString():null,pageObjId:pageObjId,mcid:kid.get("MCID")})):"OBJR"===pageRef?this.tree.pageDict.objId!==pageObjId?null:(kidRef=kid.getRaw("Obj"),new StructElement({type:StructElementType.OBJECT,refObjId:kidRef instanceof Ref?kidRef.toString():null,pageObjId:pageObjId})):new StructElement({type:StructElementType.ELEMENT,dict:kid})):null}}class StructElement{constructor(_ref57){var{type:_ref57,dict=null,mcid=null,pageObjId=null,refObjId=null}=_ref57;this.type=_ref57,this.dict=dict,this.mcid=mcid,this.pageObjId=pageObjId,this.refObjId=refObjId,this.parentNode=null}}class StructTreePage{constructor(structTreeRoot,pageDict){var _structTreeRoot$xref;this.root=structTreeRoot,this.xref=null!=(_structTreeRoot$xref=null==structTreeRoot?void 0:structTreeRoot.xref)?_structTreeRoot$xref:null,this.rootDict=null!=(_structTreeRoot$xref=null==structTreeRoot?void 0:structTreeRoot.dict)?_structTreeRoot$xref:null,this.pageDict=pageDict,this.nodes=[]}collectObjects(pageRef){if(!(this.root&&this.rootDict&&pageRef instanceof Ref))return null;var parentTree=this.rootDict.get("ParentTree");if(!parentTree)return null;var _this$root$structPare=null==(_this$root$structPare=this.root.structParentIds)?void 0:_this$root$structPare.get(pageRef);if(!_this$root$structPare)return null;var elemId,map=new Map,numberTree=new NumberTree(parentTree,this.xref);for([elemId]of _this$root$structPare){var obj=numberTree.getRaw(elemId);obj instanceof Ref&&map.set(elemId,obj)}return map}parse(pageRef){if(this.root&&this.rootDict&&pageRef instanceof Ref){var parentTree=this.rootDict.get("ParentTree");if(parentTree){var id=this.pageDict.get("StructParents"),_this$root$structPare2=null==(_this$root$structPare2=this.root.structParentIds)?void 0:_this$root$structPare2.get(pageRef);if(Number.isInteger(id)||_this$root$structPare2){var map=new Map,numberTree=new NumberTree(parentTree,this.xref);if(Number.isInteger(id)){pageRef=numberTree.get(id);if(Array.isArray(pageRef))for(var ref of pageRef)ref instanceof Ref&&this.addNode(this.xref.fetch(ref),map)}if(_this$root$structPare2)for(var[elemId,type]of _this$root$structPare2){var _elem$kids,elemId=numberTree.get(elemId);elemId&&1===(null==(elemId=this.addNode(this.xref.fetchIfRef(elemId),map))||null==(_elem$kids=elemId.kids)?void 0:_elem$kids.length)&&elemId.kids[0].type===StructElementType.OBJECT&&(elemId.kids[0].type=type)}}}}}addNode(dict,map){var level=2v instanceof Ref,isValidExplicitDest=_isValidExplicitDest.bind(null,isRef,isName);function fetchDest(dest){return dest instanceof Dict&&(dest=dest.get("D")),isValidExplicitDest(dest)?dest:null}function fetchRemoteDest(action){action=action.get("D");if(action){if("string"==typeof(action=action instanceof Name?action.name:action))return stringToPDFString(action,!0);if(isValidExplicitDest(action))return JSON.stringify(action)}return null}var _actualNumPages=new WeakMap,_catDict=new WeakMap,_Catalog_brand=new WeakSet;class Catalog{constructor(pdfManager,_xref){if(_classPrivateMethodInitSpec(this,_Catalog_brand),_classPrivateFieldInitSpec(this,_actualNumPages,null),_classPrivateFieldInitSpec(this,_catDict,null),_defineProperty(this,"builtInCMapCache",new Map),_defineProperty(this,"fontCache",new RefSetCache),_defineProperty(this,"globalColorSpaceCache",new GlobalColorSpaceCache),_defineProperty(this,"globalImageCache",new GlobalImageCache),_defineProperty(this,"nonBlendModesSet",new RefSet),_defineProperty(this,"pageDictCache",new RefSetCache),_defineProperty(this,"pageIndexCache",new RefSetCache),_defineProperty(this,"pageKidsCountCache",new RefSetCache),_defineProperty(this,"standardFontDataCache",new Map),_defineProperty(this,"systemFontCache",new Map),this.pdfManager=pdfManager,this.xref=_xref,_classPrivateFieldSet(_catDict,this,_xref.getCatalogObj()),!(_classPrivateFieldGet(_catDict,this)instanceof Dict))throw new FormatError("Catalog object is not a dictionary.");this.toplevelPagesDict}cloneDict(){return _classPrivateFieldGet(_catDict,this).clone()}get version(){var version=_classPrivateFieldGet(_catDict,this).get("Version");if(version instanceof Name){if(PDF_VERSION_REGEXP.test(version.name))return shadow(this,"version",version.name);warn("Invalid PDF catalog version: ".concat(version.name))}return shadow(this,"version",null)}get lang(){var lang=_classPrivateFieldGet(_catDict,this).get("Lang");return shadow(this,"lang",lang&&"string"==typeof lang?stringToPDFString(lang):null)}get needsRendering(){var needsRendering=_classPrivateFieldGet(_catDict,this).get("NeedsRendering");return shadow(this,"needsRendering","boolean"==typeof needsRendering&&needsRendering)}get collection(){var collection=null;try{var obj=_classPrivateFieldGet(_catDict,this).get("Collection");obj instanceof Dict&&0Number.isInteger(page)&&0=arr[i-1])&&page<=this.numPages)&&(prefValue=value);break;case"NumCopies":Number.isInteger(value)&&0=currentNode.length)queue.pop();else{currentNode=currentNode[posInKids],posInKids=void 0;if(currentNode instanceof Ref){if(visitedNodes.has(currentNode)){addPageError(new FormatError("Pages tree contains circular reference."));break}visitedNodes.put(currentNode);try{posInKids=await xref.fetchAsync(currentNode)}catch(ex){addPageError(ex);break}}else posInKids=currentNode;if(!(posInKids instanceof Dict)){addPageError(new FormatError("Page dictionary kid reference points to wrong type of object."));break}var type=posInKids.getRaw("Type");if(type instanceof Ref)try{type=await xref.fetchAsync(type)}catch(ex){addPageError(ex);break}isName(type,"Page")||!posInKids.has("Kids")?(type=posInKids,(currentNode=currentNode instanceof Ref?currentNode:null)&&!pageIndexCache.has(currentNode)&&pageIndexCache.put(currentNode,pageIndex),map.set(pageIndex++,[type,currentNode])):queue.push({currentNode:posInKids,posInKids:0}),queueItem.posInKids++}}return map}getPageIndex(pageRef){var xref,total,next,cachedPageIndex=this.pageIndexCache.get(pageRef);return void 0!==cachedPageIndex?Promise.resolve(cachedPageIndex):(xref=this.xref,total=0,(next=ref=>function(kidRef){var parentRef,total=0;return xref.fetchAsync(kidRef).then(function(node){if(isRefsEqual(kidRef,pageRef)&&!isDict(node,"Page")&&!(node instanceof Dict&&!node.has("Type")&&node.has("Contents")))throw new FormatError("The reference does not point to a /Page dictionary.");if(!node)return null;if(node instanceof Dict)return parentRef=node.getRaw("Parent"),node.getAsync("Parent");throw new FormatError("Node must be a dictionary.")}).then(function(parent){if(!parent)return null;if(parent instanceof Dict)return parent.getAsync("Kids");throw new FormatError("Parent must be a dictionary.")}).then(function(kids){if(!kids)return null;var kid,kidPromises=[],found=!1;for(kid of kids){if(!(kid instanceof Ref))throw new FormatError("Kid must be a reference.");if(isRefsEqual(kid,kidRef)){found=!0;break}kidPromises.push(xref.fetchAsync(kid).then(function(obj){if(!(obj instanceof Dict))throw new FormatError("Kid node must be a dictionary.");obj.has("Count")?total+=obj.get("Count"):total++}))}if(found)return Promise.all(kidPromises).then(()=>[total,parentRef]);throw new FormatError("Kid reference not found in parent's kids.")})}(ref).then(args=>{var parentRef;return args?([args,parentRef]=args,total+=args,next(parentRef)):(this.pageIndexCache.put(pageRef,total),total)}))(pageRef))}get baseUrl(){var uri=_classPrivateFieldGet(_catDict,this).get("URI");if(uri instanceof Dict){uri=uri.get("Base");if("string"==typeof uri){uri=createValidAbsoluteUrl(uri,null,{tryConvertEncoding:!0});if(uri)return shadow(this,"baseUrl",uri.href)}}return shadow(this,"baseUrl",this.pdfManager.docBaseUrl)}static parseDestDictionary(_ref58){var{destDict:_ref58,resultObj,docBaseUrl=null,docAttachments=null}=_ref58;if(_ref58 instanceof Dict){var dest,action=_ref58.get("A");if(action instanceof Dict||(_ref58.has("Dest")?action=_ref58.get("Dest"):(action=_ref58.get("AA"))instanceof Dict&&(action.has("D")?action=action.get("D"):action.has("U")&&(action=action.get("U")))),action instanceof Dict){var actionType=action.get("S");if(!(actionType instanceof Name))return void warn("parseDestDictionary: Invalid type in Action dictionary.");var actionName=actionType.name;switch(actionName){case"ResetForm":var obj,flags=action.get("Flags"),flags=0==(1&("number"==typeof flags?flags:0)),fields=[],refs=[];for(obj of action.get("Fields")||[])obj instanceof Ref?refs.push(obj.toString()):"string"==typeof obj&&fields.push(stringToPDFString(obj));resultObj.resetForm={fields:fields,refs:refs,include:flags};break;case"URI":(url=action.get("URI"))instanceof Name&&(url="/"+url.name);break;case"GoTo":dest=action.get("D");break;case"Launch":case"GoToR":var url,flags=action.get("F"),rawFilename=(flags instanceof Dict?(rawFilename=new FileSpec(flags,null,!0).serializable["rawFilename"],url=rawFilename):"string"==typeof flags&&(url=flags),fetchRemoteDest(action)),flags=(rawFilename&&"string"==typeof url&&(url=url.split("#",1)[0]+"#"+rawFilename),action.get("NewWindow"));"boolean"==typeof flags&&(resultObj.newWindow=flags);break;case"GoToE":var attachment,rawFilename=action.get("T");(attachment=docAttachments&&rawFilename instanceof Dict&&(flags=rawFilename.get("R"),rawFilename=rawFilename.get("N"),isName(flags,"C"))&&"string"==typeof rawFilename?docAttachments[stringToPDFString(rawFilename,!0)]:attachment)?(resultObj.attachment=attachment,(flags=fetchRemoteDest(action))&&(resultObj.attachmentDest=flags)):warn('parseDestDictionary - unimplemented "GoToE" action.');break;case"Named":rawFilename=action.get("N");rawFilename instanceof Name&&(resultObj.action=rawFilename.name);break;case"SetOCGState":flags=action.get("State"),rawFilename=action.get("PreserveRB");if(Array.isArray(flags)&&0!==flags.length){var elem,stateArr=[];for(elem of flags)if(elem instanceof Name)switch(elem.name){case"ON":case"OFF":case"Toggle":stateArr.push(elem.name)}else elem instanceof Ref&&stateArr.push(elem.toString());stateArr.length===flags.length&&(resultObj.setOCGState={state:stateArr,preserveRB:"boolean"!=typeof rawFilename||rawFilename})}break;case"JavaScript":var js,flags=action.get("JS"),rawFilename=(flags instanceof BaseStream?js=flags.getString():"string"==typeof flags&&(js=flags),js&&recoverJsURL(stringToPDFString(js,!0)));if(rawFilename){url=rawFilename.url,resultObj.newWindow=rawFilename.newWindow;break}default:"JavaScript"!==actionName&&"SubmitForm"!==actionName&&warn('parseDestDictionary - unsupported action: "'.concat(actionName,'".'))}}else _ref58.has("Dest")&&(dest=_ref58.get("Dest"));"string"==typeof url&&((actionType=createValidAbsoluteUrl(url,docBaseUrl,{addDefaultProtocol:!0,tryConvertEncoding:!0}))&&(resultObj.url=actionType.href),resultObj.unsafeUrl=url),dest&&("string"==typeof(dest=dest instanceof Name?dest.name:dest)?resultObj.dest=stringToPDFString(dest,!0):isValidExplicitDest(dest)&&(resultObj.dest=dest))}else warn("parseDestDictionary: `destDict` must be a dictionary.")}}function _readMarkInfo(){var obj=_classPrivateFieldGet(_catDict,this).get("MarkInfo");if(!(obj instanceof Dict))return null;var key,markInfo={Marked:!1,UserProperties:!1,Suspects:!1};for(key in markInfo){var value=obj.get(key);"boolean"==typeof value&&(markInfo[key]=value)}return markInfo}function _readStructTreeRoot(){var rawObj=_classPrivateFieldGet(_catDict,this).getRaw("StructTreeRoot"),obj=this.xref.fetchIfRef(rawObj);return obj instanceof Dict?((obj=new StructTreeRoot(this.xref,obj,rawObj)).init(),obj):null}function _readDocumentOutline(){var obj=_classPrivateFieldGet(_catDict,this).get("Outlines");if(!(obj instanceof Dict))return null;if(!((obj=obj.getRaw("First"))instanceof Ref))return null;for(var root={items:[]},queue=[{obj:obj,parent:root}],processed=new RefSet,xref=(processed.put(obj),this.xref),blackColor=new Uint8ClampedArray(3);0i instanceof Name)&&(groupRef.intent=name.map(i=>i.name)),group.get("Usage"));if(name instanceof Dict){var usageObj=groupRef.usage,group=name.get("Print");if(group instanceof Dict){var printState=group.get("PrintState");if(printState instanceof Name)switch(printState.name){case"ON":case"OFF":usageObj.print={printState:printState.name}}}group=name.get("View");if(group instanceof Dict){var viewState=group.get("ViewState");if(viewState instanceof Name)switch(viewState.name){case"ON":case"OFF":usageObj.view={viewState:viewState.name}}}}return groupRef}function _readOptionalContentConfig(config,groupRefCache){function parseOnOff(refs){var onParsed=[];if(Array.isArray(refs))for(var value of refs)value instanceof Ref&&groupRefCache.has(value)&&onParsed.push(value.toString());return onParsed}function parseOrder(refs,argument_1){var nestedLevels=1MAX_NESTED_LEVELS)return warn("parseNestedOrder - reached MAX_NESTED_LEVELS."),null;ref=xref.fetchIfRef(ref);if(!Array.isArray(ref))return null;var nestedName=xref.fetchIfRef(ref[0]);if("string"!=typeof nestedName)return null;ref=parseOrder(ref.slice(1),nestedLevels);return null!=ref&&ref.length?{name:stringToPDFString(nestedName),order:ref}:null}(value,nestedLevels))&&order.push(nestedOrder);if(!(0ns.startsWith("http://www.xfa.org/schema/xci/")},connectionSet:{id:1,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-connection-set/")},datasets:{id:2,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-data/")},form:{id:3,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-form/")},localeSet:{id:4,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-locale-set/")},pdf:{id:5,check:ns=>"http://ns.adobe.com/xdp/pdf/"===ns},signature:{id:6,check:ns=>"http://www.w3.org/2000/09/xmldsig#"===ns},sourceSet:{id:7,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-source-set/")},stylesheet:{id:8,check:ns=>"http://www.w3.org/1999/XSL/Transform"===ns},template:{id:9,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-template/")},xdc:{id:10,check:ns=>ns.startsWith("http://www.xfa.org/schema/xdc/")},xdp:{id:11,check:ns=>"http://ns.adobe.com/xdp/"===ns},xfdf:{id:12,check:ns=>"http://ns.adobe.com/xfdf/"===ns},xhtml:{id:13,check:ns=>"http://www.w3.org/1999/xhtml"===ns},xmpmeta:{id:14,check:ns=>"http://ns.adobe.com/xmpmeta/"===ns}},dimConverters={pt:x=>x,cm:x=>x/2.54*72,mm:x=>x/25.4*72,in:x=>72*x,px:x=>x},measurementPattern=/([+-]?\d+\.?\d*)(.*)/;function stripQuotes(str){return str.startsWith("'")||str.startsWith('"')?str.slice(1,-1):str}function getInteger(_ref59){var{data:_ref59,defaultValue,validate}=_ref59;return _ref59&&(_ref59=_ref59.trim(),_ref59=parseInt(_ref59,10),!isNaN(_ref59))&&validate(_ref59)?_ref59:defaultValue}function getFloat(_ref60){var{data:_ref60,defaultValue,validate}=_ref60;return _ref60&&(_ref60=_ref60.trim(),_ref60=parseFloat(_ref60),!isNaN(_ref60))&&validate(_ref60)?_ref60:defaultValue}function getKeyword(_ref61){var{data:_ref61,defaultValue,validate}=_ref61;return _ref61&&validate(_ref61=_ref61.trim())?_ref61:defaultValue}function getStringOption(data,options){return getKeyword({data:data,defaultValue:options[0],validate:k=>options.includes(k)})}function getMeasurement(str){var match,unit,def=(def=1parseFloat(x.trim())).filter(x=>!isNaN(x))).length&&data.push(1),0===data.length)?{num:1,den:1}:([data,den]=data,{num:data,den:den})}function getRelevant(data){return data?data.trim().split(/\s+/).map(e=>({excluded:"-"===e[0],viewname:e.substring(1)})):[]}function getColor(data){var color,[r,g,b]=1MathClamp(parseInt(c.trim(),10),0,255)).map(c=>isNaN(c)?0:c)).length<3||([r,g,b]=color),{r:r,g:g,b:b}}function getBBox(data){var y,width,height;return!data||(data=data.split(",",4).map(m=>getMeasurement(m.trim(),"-1"))).length<4||data[2]<0||data[3]<0?{x:-1,y:-1,width:-1,height:-1}:([data,y,width,height]=data,{x:data,y:y,width:width,height:height})}class HTMLResult{static get FAILURE(){return shadow(this,"FAILURE",new HTMLResult(!1,null,null,null))}static get EMPTY(){return shadow(this,"EMPTY",new HTMLResult(!0,null,null,null))}constructor(success,html,bbox,breakNode){this.success=success,this.html=html,this.bbox=bbox,this.breakNode=breakNode}isBreak(){return!!this.breakNode}static breakNode(node){return new HTMLResult(!1,null,null,node)}static success(html){var bbox=1root.datasets?root.datasets.data:root],["$record",(root,current)=>(root.datasets?root.datasets.data:root)[$getChildren]()[0]],["$template",(root,current)=>root.template],["$connectionSet",(root,current)=>root.connectionSet],["$form",(root,current)=>root.form],["$layout",(root,current)=>root.layout],["$host",(root,current)=>root.host],["$dataWindow",(root,current)=>root.dataWindow],["$event",(root,current)=>root.event],["!",(root,current)=>root.datasets],["$xfa",(root,current)=>root],["xfa",(root,current)=>root],["$",(root,current)=>current]]),somCache=new WeakMap;function parseIndex(index){return"*"===(index=index.trim())?1/0:parseInt(index,10)||0}function parseExpression(expr,dotDotAllowed){var noExpr=!(2indexnode[index]):nodes.flat()}())&&_ret2)return _ret2.v;return 0===root.length?null:root}function createDataNode(root,container,expr){var parsed=parseExpression(expr);if(parsed&&!parsed.some(x=>x.operator===operators.dotDot)){var expr=shortcuts.get(parsed[0].name),i=0;expr?(root=expr(root,container),i=1):root=container||root;for(var ii=parsed.length;ic[$text]()).join("")}get[_attributeNames](){var proto=Object.getPrototypeOf(this);if(!proto._attributes){var name,attributes=proto._attributes=new Set;for(name of Object.getOwnPropertyNames(this)){if(null===this[name]||this[name]instanceof XFAObject||this[name]instanceof XFAObjectArray)break;attributes.add(name)}}return shadow(this,_attributeNames,proto._attributes)}[$isDescendent](parent){for(var node=this;node;){if(node===parent)return!0;node=node[$getParent]()}return!1}[$getParent](){return this[_parent]}[$getSubformParent](){return this[$getParent]()}[$getChildren](){var name=0allAttr.has(x)&&!setAttr.has(x))}[$resolvePrototypes](ids){var child,ancestors=1XFAObject[_cloneAttribute](x)):"object"==typeof obj&&null!==obj?Object.assign({},obj):obj}[$clone](){var $symbol,name,value,child,clone=Object.create(Object.getPrototypeOf(this));for($symbol of Object.getOwnPropertySymbols(this))try{clone[$symbol]=this[$symbol]}catch(_unused10){shadow(clone,$symbol,this[$symbol])}clone[$uid]="".concat(clone[$nodeName]).concat(uid++),clone[_children]=[];for(name of Object.getOwnPropertyNames(this))this[_attributeNames].has(name)?clone[name]=XFAObject[_cloneAttribute](this[name]):(value=this[name],clone[name]=value instanceof XFAObjectArray?new XFAObjectArray(value[_max]):null);for(child of this[_children]){var _name2=child[$nodeName],clonedChild=child[$clone]();clone[_children].push(clonedChild),null===(clonedChild[_parent]=clone)[_name2]?clone[_name2]=clonedChild:clone[_name2][_children].push(clonedChild)}return clone}[$getChildren](){var name=0c[$nodeName]===name):this[_children]}[$getChildrenByClass](name){return this[name]}[$getChildrenByName](name,allTransparent){return Array.from(this[$getChildrenByNameIt](name,allTransparent,!(2x[$dump]())}[$clone](){var clone=new XFAObjectArray(this[_max]);return clone[_children]=this[_children].map(c=>c[$clone]()),clone}get children(){return this[_children]}clear(){this[_children].length=0}}class XFAAttribute{constructor(node,name,value){this[_parent]=node,this[$nodeName]=name,this[$content]=value,this[$consumed]=!1,this[$uid]="attribute".concat(uid++)}[$getParent](){return this[_parent]}[$isDataValue](){return!0}[$getDataValue](){return this[$content].trim()}[$setValue](value){value=value.value||"",this[$content]=value.toString()}[$text](){return this[$content]}[$isDescendent](parent){return this[_parent]===parent||this[_parent][$isDescendent](parent)}}class XmlObject extends XFAObject{constructor(nsId,name){var attributes=2"),this[$content])"string"==typeof this[$content]?buf.push(encodeToXmlString(this[$content])):this[$content][$toString](buf);else for(var child of this[_children])child[$toString](buf);buf.push(""))}else buf.push("/>")}}[$onChild](child){var node;return this[$content]&&(node=new XmlObject(this[$namespaceId],"#text"),this[$appendChild](node),node[$content]=this[$content],this[$content]=""),this[$appendChild](child),!0}[$onText](str){this[$content]+=str}[$finalize](){var node;this[$content]&&0c[$nodeName]===name):this[_children]}[$getAttributes](){return this[_attributes]}[$getChildrenByClass](name){var value=this[_attributes].get(name);return void 0!==value?value:this[$getChildren](name)}*[$getChildrenByNameIt](name,allTransparent){var child,value=this[_attributes].get(name);value&&(yield value);for(child of this[_children])child[$nodeName]===name&&(yield child),allTransparent&&(yield*child[$getChildrenByNameIt](name,allTransparent))}*[$getAttributeIt](name,skipConsumed){var child,value=this[_attributes].get(name);!value||skipConsumed&&value[$consumed]||(yield value);for(child of this[_children])yield*child[$getAttributeIt](name,skipConsumed)}*[$getRealChildrenByNameIt](name,allTransparent,skipConsumed){for(var child of this[_children])child[$nodeName]!==name||skipConsumed&&child[$consumed]||(yield child),allTransparent&&(yield*child[$getRealChildrenByNameIt](name,allTransparent,skipConsumed))}[$isDataValue](){return null===this[_dataValue]?0===this[_children].length||this[_children][0][$namespaceId]===NamespaceIds.xhtml.id:this[_dataValue]}[$getDataValue](){return null!==this[_dataValue]||0===this[_children].length?this[$content].trim():this[_children][0][$namespaceId]===NamespaceIds.xhtml.id?this[_children][0][$text]().trim():null}[$setValue](value){value=value.value||"",this[$content]=value.toString()}[$dump](){var child,name,value,hasNS=0this[_options].includes(k)})}[$clean](builder){super[$clean](builder),delete this[_options]}}class StringObject extends ContentObject{[$finalize](){this[$content]=this[$content].trim()}}class IntegerObject extends ContentObject{constructor(nsId,name,defaultValue,validator){super(nsId,name),this[_defaultValue]=defaultValue,this[_validator]=validator}[$finalize](){this[$content]=getInteger({data:this[$content],defaultValue:this[_defaultValue],validate:this[_validator]})}[$clean](builder){super[$clean](builder),delete this[_defaultValue],delete this[_validator]}}class Option01 extends IntegerObject{constructor(nsId,name){super(nsId,name,0,n=>1===n)}}class Option10 extends IntegerObject{constructor(nsId,name){super(nsId,name,1,n=>0===n)}}function measureToString(m){return"string"==typeof m?"0px":Number.isInteger(m)?"".concat(m,"px"):"".concat(m.toFixed(2),"px")}var converters={anchorType(node,style){var parent=node[$getSubformParent]();if(parent&&(!parent.layout||"position"===parent.layout))switch("transform"in style||(style.transform=""),node.anchorType){case"bottomCenter":style.transform+="translate(-50%, -100%)";break;case"bottomLeft":style.transform+="translate(0,-100%)";break;case"bottomRight":style.transform+="translate(-100%,-100%)";break;case"middleCenter":style.transform+="translate(-50%,-50%)";break;case"middleLeft":style.transform+="translate(0,-50%)";break;case"middleRight":style.transform+="translate(-100%,-50%)";break;case"topCenter":style.transform+="translate(-50%,0)";break;case"topRight":style.transform+="translate(-100%,0)"}},dimensions(node,style){var _parent$layout,w,parent=node[$getSubformParent](),width=node.w,height=node.h;null!=(_parent$layout=parent.layout)&&_parent$layout.includes("row")&&(_parent$layout=parent[$extra],-1===(parent=node.colSpan)?(w=Math.sumPrecise(_parent$layout.columnWidths.slice(_parent$layout.currentColumn)),_parent$layout.currentColumn=0):(w=Math.sumPrecise(_parent$layout.columnWidths.slice(_parent$layout.currentColumn,_parent$layout.currentColumn+parent)),_parent$layout.currentColumn=(_parent$layout.currentColumn+node.colSpan)%_parent$layout.columnWidths.length),isNaN(w)||(width=node.w=w)),style.width=""!==width?measureToString(width):"auto",style.height=""!==height?measureToString(height):"auto"},position(node,style){var parent=node[$getSubformParent]();null!=parent&&parent.layout&&"position"!==parent.layout||(style.position="absolute",style.left=measureToString(node.x),style.top=measureToString(node.y))},rotate(node,style){node.rotate&&("transform"in style||(style.transform=""),style.transform+="rotate(-".concat(node.rotate,"deg)"),style.transformOrigin="top left")},presence(node,style){switch(node.presence){case"invisible":style.visibility="hidden";break;case"hidden":case"inactive":style.display="none"}},hAlign(node,style){if("para"===node[$nodeName])switch(node.hAlign){case"justifyAll":style.textAlign="justify-all";break;case"radix":style.textAlign="left";break;default:style.textAlign=node.hAlign}else switch(node.hAlign){case"left":style.alignSelf="start";break;case"center":style.alignSelf="center";break;case"right":style.alignSelf="end"}},margin(node,style){node.margin&&(style.margin=node.margin[$toStyle]().margin)}};function setMinMaxDimensions(node,style){"position"===node[$getSubformParent]().layout&&(0node[$getTemplateRoot]()[$extra].currentContentArea.h;case"rl-row":case"row":return node[$getTemplateRoot]()[$extra].noLayoutFailure?!0:""===node.h||Math.round(h-space.height)<=2;default:return!0}}var TEMPLATE_NS_ID=NamespaceIds.template.id,SVG_NS="http://www.w3.org/2000/svg",MAX_ATTEMPTS_FOR_LRTB_LAYOUT=2,MAX_EMPTY_PAGES=3,DEFAULT_TAB_INDEX=5e3,HEADING_PATTERN=/^H(\d+)$/,MIMES=new Set(["image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/apng","image/x-png","image/bmp","image/x-ms-bmp","image/tiff","image/tif","application/octet-stream"]),IMAGES_HEADERS=[[[66,77],"image/bmp"],[[255,216,255],"image/jpeg"],[[73,73,42,0],"image/tiff"],[[77,77,0,42],"image/tiff"],[[71,73,70,56,57,97],"image/gif"],[[137,80,78,71,13,10,26,10],"image/png"]];function getBorderDims(node){return node&&node.border&&(node=node.border[$getExtra]())?{w:node.widths[0]+node.widths[2]+node.insets[0]+node.insets[2],h:node.widths[1]+node.widths[3]+node.insets[1]+node.insets[3]}:{w:0,h:0}}function hasMargin(node){return node.margin&&(node.margin.topInset||node.margin.rightInset||node.margin.bottomInset||node.margin.leftInset)}function _setValue(templateNode,value){var nodeValue;templateNode.value||(nodeValue=new Value({}),templateNode[$appendChild](nodeValue),templateNode.value=nodeValue),templateNode.value[$setValue](value)}function*getContainedChildren(node){for(var child of node[$getChildren]())child instanceof SubformSet?yield*child[$getContainedChildren]():yield child}function isRequired(node){return"error"===(null==(node=node.validate)?void 0:node.nullTest)}function setTabIndex(node){for(;node;){if(!node.traversal)return void(node[$tabIndex]=node[$getParent]()[$tabIndex]);if(node[$tabIndex])return;var child,next=null;for(child of node.traversal[$getChildren]())if("next"===child.operation){next=child;break}if(!next||!next.ref)return void(node[$tabIndex]=node[$getParent]()[$tabIndex]);var root=node[$getTemplateRoot](),root=(node[$tabIndex]=++root[$tabIndex],root[$searchNode](next.ref,node));if(!root)return;node=root[0]}}function applyAssist(obj,attributes){var assistTitle,assist=obj.assist;assist&&((assistTitle=assist[$toHTML]())&&(attributes.title=assistTitle),assistTitle=assist.role.match(HEADING_PATTERN))&&(assist=assistTitle[1],attributes.role="heading",attributes["aria-level"]=assist),"table"===obj.layout?attributes.role="table":"row"===obj.layout?attributes.role="row":"row"===(assistTitle=obj[$getParent]()).layout&&(attributes.role="TH"===(null==(assist=assistTitle.assist)?void 0:assist.role)?"columnheader":"cell")}function ariaLabel(obj){return obj.assist?(obj=obj.assist).speak&&""!==obj.speak[$content]?obj.speak[$content]:obj.toolTip?obj.toolTip[$content]:null:null}function valueToHtml(value){return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:Object.create(null)},children:[{name:"span",attributes:{style:Object.create(null)},value:value}]})}function setFirstUnsplittable(node){var root=node[$getTemplateRoot]();null===root[$extra].firstUnsplittable&&(root[$extra].firstUnsplittable=node,root[$extra].noLayoutFailure=!0)}function unsetFirstUnsplittable(node){var root=node[$getTemplateRoot]();root[$extra].firstUnsplittable===node&&(root[$extra].noLayoutFailure=!1)}function handleBreak(node){if(node[$extra])return!1;if(node[$extra]=Object.create(null),"auto"===node.targetType)return!1;var root=node[$getTemplateRoot](),target=null;if(node.target){if(!(target=root[$searchNode](node.target,node[$getParent]())))return!1;target=target[0]}var{currentPageArea:root,currentContentArea}=root[$extra];if("pageArea"===node.targetType)return target instanceof PageArea||(target=null),node.startNew?(node[$extra].target=target||root,!0):!(!target||target===root||(node[$extra].target=target,0));var pageArea=(target=target instanceof ContentArea?target:null)&&target[$getParent](),nextPageArea=pageArea;if(node.startNew)var contentAreas,indexForCurrent=target?(indexForCurrent=(contentAreas=pageArea.contentArea.children).indexOf(currentContentArea),contentAreas=contentAreas.indexOf(target),-1!==indexForCurrent&&indexForCurrentnode,root[$extra].noLayoutFailure=!0,extraNode[$toHTML](space));node[$addHTML](space.html,space.bbox),root[$extra].noLayoutFailure=saved,extraNode[$getSubformParent]=savedMethod}class AppearanceFilter extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"appearanceFilter"),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Arc extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"arc",!0),this.circular=getInteger({data:attributes.circular,defaultValue:0,validate:x=>1===x}),this.hand=getStringOption(attributes.hand,["even","left","right"]),this.id=attributes.id||"",this.startAngle=getFloat({data:attributes.startAngle,defaultValue:0,validate:x=>!0}),this.sweepAngle=getFloat({data:attributes.sweepAngle,defaultValue:360,validate:x=>!0}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.edge=null,this.fill=null}[$toHTML](){var largeArc,x2,y2,arc,edge=this.edge||new Edge({}),edgeStyle=edge[$toStyle](),style=Object.create(null),_this$fill=("visible"===(null==(_this$fill=this.fill)?void 0:_this$fill.presence)?Object.assign(style,this.fill[$toStyle]()):style.fill="transparent",style.strokeWidth=measureToString("visible"===edge.presence?edge.thickness:0),style.stroke=edgeStyle.color,{xmlns:SVG_NS,style:{width:"100%",height:"100%",overflow:"visible"}}),edge=(360===this.sweepAngle?arc={name:"ellipse",attributes:{xmlns:SVG_NS,cx:"50%",cy:"50%",rx:"50%",ry:"50%",style:style}}:(edge=this.startAngle*Math.PI/180,edgeStyle=this.sweepAngle*Math.PI/180,largeArc=1801<=n||-1===n}),this.id=attributes.id||"",this.name=attributes.name||"",this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.desc=null,this.extras=null,this.area=new XFAObjectArray,this.draw=new XFAObjectArray,this.exObject=new XFAObjectArray,this.exclGroup=new XFAObjectArray,this.field=new XFAObjectArray,this.subform=new XFAObjectArray,this.subformSet=new XFAObjectArray}*[$getContainedChildren](){yield*getContainedChildren(this)}[$isTransparent](){return!0}[$isBindable](){return!0}[$addHTML](html,bbox){var[bbox,y,w,h]=bbox;this[$extra].width=Math.max(this[$extra].width,bbox+w),this[$extra].height=Math.max(this[$extra].height,y+h),this[$extra].children.push(html)}[$getAvailableSpace](){return this[$extra].availableSpace}[$toHTML](availableSpace){var style=toStyle(this,"position"),attributes={style:style,id:this[$uid],class:["xfaArea"]},children=(isPrintOnly(this)&&attributes.class.push("xfaPrintOnly"),this.name&&(attributes.xfaName=this.name),[]),availableSpace=(this[$extra]={children:children,width:0,height:0,availableSpace:availableSpace},this[$childrenToHTML]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:!0}));if(!availableSpace.success)return availableSpace.isBreak()?availableSpace:(delete this[$extra],HTMLResult.FAILURE);style.width=measureToString(this[$extra].width),style.height=measureToString(this[$extra].height);availableSpace={name:"div",attributes:attributes,children:children},style=[this.x,this.y,this[$extra].width,this[$extra].height];return delete this[$extra],HTMLResult.success(availableSpace,style)}}class Assist extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"assist",!0),this.id=attributes.id||"",this.role=attributes.role||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.speak=null,this.toolTip=null}[$toHTML](){var _this$toolTip;return(null==(_this$toolTip=this.toolTip)?void 0:_this$toolTip[$content])||null}}class Barcode extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"barcode",!0),this.charEncoding=getKeyword({data:attributes.charEncoding?attributes.charEncoding.toLowerCase():"",defaultValue:"",validate:k=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(k)||k.match(/iso-8859-\d{2}/)}),this.checksum=getStringOption(attributes.checksum,["none","1mod10","1mod10_1mod11","2mod10","auto"]),this.dataColumnCount=getInteger({data:attributes.dataColumnCount,defaultValue:-1,validate:x=>0<=x}),this.dataLength=getInteger({data:attributes.dataLength,defaultValue:-1,validate:x=>0<=x}),this.dataPrep=getStringOption(attributes.dataPrep,["none","flateCompress"]),this.dataRowCount=getInteger({data:attributes.dataRowCount,defaultValue:-1,validate:x=>0<=x}),this.endChar=attributes.endChar||"",this.errorCorrectionLevel=getInteger({data:attributes.errorCorrectionLevel,defaultValue:-1,validate:x=>0<=x&&x<=8}),this.id=attributes.id||"",this.moduleHeight=getMeasurement(attributes.moduleHeight,"5mm"),this.moduleWidth=getMeasurement(attributes.moduleWidth,"0.25mm"),this.printCheckDigit=getInteger({data:attributes.printCheckDigit,defaultValue:0,validate:x=>1===x}),this.rowColumnRatio=getRatio(attributes.rowColumnRatio),this.startChar=attributes.startChar||"",this.textLocation=getStringOption(attributes.textLocation,["below","above","aboveEmbedded","belowEmbedded","none"]),this.truncate=getInteger({data:attributes.truncate,defaultValue:0,validate:x=>1===x}),this.type=getStringOption(attributes.type?attributes.type.toLowerCase():"",["aztec","codabar","code2of5industrial","code2of5interleaved","code2of5matrix","code2of5standard","code3of9","code3of9extended","code11","code49","code93","code128","code128a","code128b","code128c","code128sscc","datamatrix","ean8","ean8add2","ean8add5","ean13","ean13add2","ean13add5","ean13pwcd","fim","logmars","maxicode","msi","pdf417","pdf417macro","plessey","postauscust2","postauscust3","postausreplypaid","postausstandard","postukrm4scc","postusdpbc","postusimb","postusstandard","postus5zip","qrcode","rfid","rss14","rss14expanded","rss14limited","rss14stacked","rss14stackedomni","rss14truncated","telepen","ucc128","ucc128random","ucc128sscc","upca","upcaadd2","upcaadd5","upcapwcd","upce","upceadd2","upceadd5","upcean2","upcean5","upsmaxicode"]),this.upsMode=getStringOption(attributes.upsMode,["usCarrier","internationalCarrier","secureSymbol","standardSymbol"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.wideNarrowRatio=getRatio(attributes.wideNarrowRatio),this.encrypt=null,this.extras=null}}class Bind extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bind",!0),this.match=getStringOption(attributes.match,["once","dataRef","global","none"]),this.ref=attributes.ref||"",this.picture=null}}class BindItems extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bindItems"),this.connection=attributes.connection||"",this.labelRef=attributes.labelRef||"",this.ref=attributes.ref||"",this.valueRef=attributes.valueRef||""}}class Bookend extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bookend"),this.id=attributes.id||"",this.leader=attributes.leader||"",this.trailer=attributes.trailer||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class BooleanElement extends Option01{constructor(attributes){super(TEMPLATE_NS_ID,"boolean"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$toHTML](availableSpace){return valueToHtml(1===this[$content]?"1":"0")}}class Border extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"border",!0),this.break=getStringOption(attributes.break,["close","open"]),this.hand=getStringOption(attributes.hand,["even","left","right"]),this.id=attributes.id||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.corner=new XFAObjectArray(4),this.edge=new XFAObjectArray(4),this.extras=null,this.fill=null,this.margin=null}[$getExtra](){if(!this[$extra]){var edges=this.edge.children.slice();if(edges.length<4)for(var defaultEdge=edges.at(-1)||new Edge({}),i=edges.length;i<4;i++)edges.push(defaultEdge);var widths=edges.map(edge=>edge.thickness),insets=[0,0,0,0];this.margin&&(insets[0]=this.margin.topInset,insets[1]=this.margin.rightInset,insets[2]=this.margin.bottomInset,insets[3]=this.margin.leftInset),this[$extra]={widths:widths,insets:insets,edges:edges}}return this[$extra]}[$toStyle](){var edges=this[$getExtra]()["edges"],edgeStyles=edges.map(node=>{node=node[$toStyle]();return node.color||(node.color="#000000"),node}),style=Object.create(null);if(this.margin&&Object.assign(style,this.margin[$toStyle]()),"visible"===(null==(edges=this.fill)?void 0:edges.presence)&&Object.assign(style,this.fill[$toStyle]()),this.corner.children.some(node=>0!==node.radius)){var cornerStyles=this.corner.children.map(node=>node[$toStyle]());if(2===cornerStyles.length||3===cornerStyles.length)for(var last=cornerStyles.at(-1),i=cornerStyles.length;i<4;i++)cornerStyles.push(last);style.borderRadius=cornerStyles.map(s=>s.radius).join(" ")}switch(this.presence){case"invisible":case"hidden":style.borderStyle="";break;case"inactive":style.borderStyle="none";break;default:style.borderStyle=edgeStyles.map(s=>s.style).join(" ")}return style.borderWidth=edgeStyles.map(s=>s.width).join(" "),style.borderColor=edgeStyles.map(s=>s.color).join(" "),style}}class Break extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"break",!0),this.after=getStringOption(attributes.after,["auto","contentArea","pageArea","pageEven","pageOdd"]),this.afterTarget=attributes.afterTarget||"",this.before=getStringOption(attributes.before,["auto","contentArea","pageArea","pageEven","pageOdd"]),this.beforeTarget=attributes.beforeTarget||"",this.bookendLeader=attributes.bookendLeader||"",this.bookendTrailer=attributes.bookendTrailer||"",this.id=attributes.id||"",this.overflowLeader=attributes.overflowLeader||"",this.overflowTarget=attributes.overflowTarget||"",this.overflowTrailer=attributes.overflowTrailer||"",this.startNew=getInteger({data:attributes.startNew,defaultValue:0,validate:x=>1===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}}class BreakAfter extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"breakAfter",!0),this.id=attributes.id||"",this.leader=attributes.leader||"",this.startNew=getInteger({data:attributes.startNew,defaultValue:0,validate:x=>1===x}),this.target=attributes.target||"",this.targetType=getStringOption(attributes.targetType,["auto","contentArea","pageArea"]),this.trailer=attributes.trailer||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.script=null}}class BreakBefore extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"breakBefore",!0),this.id=attributes.id||"",this.leader=attributes.leader||"",this.startNew=getInteger({data:attributes.startNew,defaultValue:0,validate:x=>1===x}),this.target=attributes.target||"",this.targetType=getStringOption(attributes.targetType,["auto","contentArea","pageArea"]),this.trailer=attributes.trailer||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.script=null}[$toHTML](availableSpace){return this[$extra]={},HTMLResult.FAILURE}}class Button extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"button",!0),this.highlight=getStringOption(attributes.highlight,["inverted","none","outline","push"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}[$toHTML](availableSpace){var event,jsURL,href,grandpa=this[$getParent]()[$getParent](),htmlButton={name:"button",attributes:{id:this[$uid],class:["xfaButton"],style:{}},children:[]};for(event of grandpa.event.children)"click"===event.activity&&event.script&&(jsURL=recoverJsURL(event.script[$content]))&&(href=fixURL(jsURL.url))&&htmlButton.children.push({name:"a",attributes:{id:"link"+this[$uid],href:href,newWindow:jsURL.newWindow,class:["xfaLink"],style:{}},children:[]});return HTMLResult.success(htmlButton)}}class Calculate extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"calculate",!0),this.id=attributes.id||"",this.override=getStringOption(attributes.override,["disabled","error","ignore","warning"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.message=null,this.script=null}}class Caption extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"caption",!0),this.id=attributes.id||"",this.placement=getStringOption(attributes.placement,["left","bottom","inline","right","top"]),this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.reserve=Math.ceil(getMeasurement(attributes.reserve)),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.font=null,this.margin=null,this.para=null,this.value=null}[$setValue](value){_setValue(this,value)}[$getExtra](availableSpace){if(!this[$extra]){var{width,height}=availableSpace;switch(this.placement){case"left":case"right":case"inline":width=this.reserve<=0?width:this.reserve;break;case"top":case"bottom":height=this.reserve<=0?height:this.reserve}this[$extra]=layoutNode(this,{width:width,height:height})}return this[$extra]}[$toHTML](availableSpace){if(!this.value)return HTMLResult.EMPTY;this[$pushPara]();var value=this.value[$toHTML](availableSpace).html;if(!value)return this[$popPara](),HTMLResult.EMPTY;var savedReserve=this.reserve;if(this.reserve<=0){var{w,h}=this[$getExtra](availableSpace);switch(this.placement){case"left":case"right":case"inline":this.reserve=w;break;case"top":case"bottom":this.reserve=h}}var availableSpace=[],style=(availableSpace.push("string"==typeof value?{name:"#text",value:value}:value),toStyle(this,"font","margin","visibility"));switch(this.placement){case"left":case"right":01===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","margin"),field=this[$getParent]()[$getParent](),_field$font=(null==(_field$font=field.font)?void 0:_field$font.size)||10,optionStyle={fontSize:"calc(".concat(_field$font,"px * var(--total-scale-factor))")},children=[];if(00<=x}),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Connect extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"connect",!0),this.connection=attributes.connection||"",this.id=attributes.id||"",this.ref=attributes.ref||"",this.usage=getStringOption(attributes.usage,["exportAndImport","exportOnly","importOnly"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.picture=null}}class ContentArea extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"contentArea",!0),this.h=getMeasurement(attributes.h),this.id=attributes.id||"",this.name=attributes.name||"",this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=getMeasurement(attributes.w),this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.desc=null,this.extras=null}[$toHTML](availableSpace){var style={left:measureToString(this.x),top:measureToString(this.y),width:measureToString(this.w),height:measureToString(this.h)},classNames=["xfaContentarea"];return isPrintOnly(this)&&classNames.push("xfaPrintOnly"),HTMLResult.success({name:"div",children:[],attributes:{style:style,class:classNames,id:this[$uid]}})}}class Corner extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"corner",!0),this.id=attributes.id||"",this.inverted=getInteger({data:attributes.inverted,defaultValue:0,validate:x=>1===x}),this.join=getStringOption(attributes.join,["square","round"]),this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.radius=getMeasurement(attributes.radius),this.stroke=getStringOption(attributes.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]),this.thickness=getMeasurement(attributes.thickness,"0.5pt"),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](){var style=toStyle(this,"visibility");return style.radius=measureToString("square"===this.join?0:this.radius),style}}class DateElement extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"date"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var date=this[$content].trim();this[$content]=date?new Date(date):null}[$toHTML](availableSpace){return valueToHtml(this[$content]?this[$content].toString():"")}}class DateTime extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"dateTime"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var date=this[$content].trim();this[$content]=date?new Date(date):null}[$toHTML](availableSpace){return valueToHtml(this[$content]?this[$content].toString():"")}}class DateTimeEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"dateTimeEdit",!0),this.hScrollPolicy=getStringOption(attributes.hScrollPolicy,["auto","off","on"]),this.id=attributes.id||"",this.picker=getStringOption(attributes.picker,["host","none"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.comb=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","font","margin"),field=this[$getParent]()[$getParent](),_field$$data3={name:"input",attributes:{type:"text",fieldId:field[$uid],dataId:(null==(_field$$data3=field[$data])?void 0:_field$$data3[$uid])||field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}};return isRequired(field)&&(_field$$data3.attributes["aria-required"]=!0,_field$$data3.attributes.required=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[_field$$data3]})}}class Decimal extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"decimal"),this.fracDigits=getInteger({data:attributes.fracDigits,defaultValue:2,validate:x=>!0}),this.id=attributes.id||"",this.leadDigits=getInteger({data:attributes.leadDigits,defaultValue:-1,validate:x=>!0}),this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var number=parseFloat(this[$content].trim());this[$content]=isNaN(number)?null:number}[$toHTML](availableSpace){return valueToHtml(null!==this[$content]?this[$content].toString():"")}}class DefaultUi extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"defaultUi",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}}class Desc extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"desc",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}}class DigestMethod extends OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class DigestMethods extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"digestMethods",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.digestMethod=new XFAObjectArray}}class Draw extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"draw",!0),this.anchorType=getStringOption(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.locale=attributes.locale||"",this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.rotate=getInteger({data:attributes.rotate,defaultValue:0,validate:x=>x%90==0}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.border=null,this.caption=null,this.desc=null,this.extras=null,this.font=null,this.keep=null,this.margin=null,this.para=null,this.traversal=null,this.ui=null,this.value=null,this.setProperty=new XFAObjectArray}[$setValue](value){_setValue(this,value)}[$toHTML](availableSpace){if(setTabIndex(this),"hidden"===this.presence||"inactive"===this.presence)return HTMLResult.EMPTY;fixDimensions(this),this[$pushPara]();var savedW=this.w,savedH=this.h,{w,h,isBroken}=layoutNode(this,availableSpace);if(w&&""===this.w){if(isBroken&&this[$getSubformParent]()[$isThereMoreWidth]())return this[$popPara](),HTMLResult.FAILURE;this.w=w}if(h&&""===this.h&&(this.h=h),setFirstUnsplittable(this),!checkDimensions(this,availableSpace))return this.w=savedW,this.h=savedH,this[$popPara](),HTMLResult.FAILURE;unsetFirstUnsplittable(this);isBroken=toStyle(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin"),setMinMaxDimensions(this,isBroken),isBroken.margin&&(isBroken.padding=isBroken.margin,delete isBroken.margin),w=["xfaDraw"],this.font&&w.push("xfaFont"),isPrintOnly(this)&&w.push("xfaPrintOnly"),h={style:isBroken,id:this[$uid],class:w},this.name&&(h.xfaName=this.name),w={name:"div",attributes:h,children:[]},applyAssist(this,h),h=computeBbox(this,w,availableSpace),availableSpace=this.value?this.value[$toHTML](availableSpace).html:null;return null===availableSpace?(this.w=savedW,this.h=savedH,this[$popPara]()):(w.children.push(availableSpace),setPara(this,isBroken,availableSpace),this.w=savedW,this.h=savedH,this[$popPara]()),HTMLResult.success(createWrapper(this,w),h)}}class Edge extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"edge",!0),this.cap=getStringOption(attributes.cap,["square","butt","round"]),this.id=attributes.id||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.stroke=getStringOption(attributes.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]),this.thickness=getMeasurement(attributes.thickness,"0.5pt"),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](){var style=toStyle(this,"visibility");if(Object.assign(style,{linecap:this.cap,width:measureToString(this.thickness),color:this.color?this.color[$toStyle]():"#000000",style:""}),"visible"!==this.presence)style.style="none";else switch(this.stroke){case"solid":style.style="solid";break;case"dashDot":case"dashDotDot":case"dashed":style.style="dashed";break;case"dotted":style.style="dotted";break;case"embossed":style.style="ridge";break;case"etched":style.style="groove";break;case"lowered":style.style="inset";break;case"raised":style.style="outset"}return style}}class Encoding extends OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"encoding",["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Encodings extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encodings",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.encoding=new XFAObjectArray}}class Encrypt extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encrypt",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.certificate=null}}class EncryptData extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptData",!0),this.id=attributes.id||"",this.operation=getStringOption(attributes.operation,["encrypt","decrypt"]),this.target=attributes.target||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.filter=null,this.manifest=null}}class Encryption extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryption",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.certificate=new XFAObjectArray}}class EncryptionMethod extends OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptionMethod",["","AES256-CBC","TRIPLEDES-CBC","AES128-CBC","AES192-CBC"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class EncryptionMethods extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptionMethods",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.encryptionMethod=new XFAObjectArray}}class Event extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"event",!0),this.activity=getStringOption(attributes.activity,["click","change","docClose","docReady","enter","exit","full","indexChange","initialize","mouseDown","mouseEnter","mouseExit","mouseUp","postExecute","postOpen","postPrint","postSave","postSign","postSubmit","preExecute","preOpen","prePrint","preSave","preSign","preSubmit","ready","validationState"]),this.id=attributes.id||"",this.listen=getStringOption(attributes.listen,["refOnly","refAndDescendents"]),this.name=attributes.name||"",this.ref=attributes.ref||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.encryptData=null,this.execute=null,this.script=null,this.signData=null,this.submit=null}}class ExData extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"exData"),this.contentType=attributes.contentType||"",this.href=attributes.href||"",this.id=attributes.id||"",this.maxLength=getInteger({data:attributes.maxLength,defaultValue:-1,validate:x=>-1<=x}),this.name=attributes.name||"",this.rid=attributes.rid||"",this.transferEncoding=getStringOption(attributes.transferEncoding,["none","base64","package"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$isCDATAXml](){return"text/html"===this.contentType}[$onChild](child){return("text/html"===this.contentType&&child[$namespaceId]===NamespaceIds.xhtml.id||"text/xml"===this.contentType)&&(this[$content]=child,!0)}[$toHTML](availableSpace){return"text/html"===this.contentType&&this[$content]?this[$content][$toHTML](availableSpace):HTMLResult.EMPTY}}class ExObject extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"exObject",!0),this.archive=attributes.archive||"",this.classId=attributes.classId||"",this.codeBase=attributes.codeBase||"",this.codeType=attributes.codeType||"",this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.exObject=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}}class ExclGroup extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"exclGroup",!0),this.access=getStringOption(attributes.access,["open","nonInteractive","protected","readOnly"]),this.accessKey=attributes.accessKey||"",this.anchorType=getStringOption(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.layout=getStringOption(attributes.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]),this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.bind=null,this.border=null,this.calculate=null,this.caption=null,this.desc=null,this.extras=null,this.margin=null,this.para=null,this.traversal=null,this.validate=null,this.connect=new XFAObjectArray,this.event=new XFAObjectArray,this.field=new XFAObjectArray,this.setProperty=new XFAObjectArray}[$isBindable](){return!0}[$hasSettableValue](){return!0}[$setValue](value){for(var field of this.field.children){var nodeValue;field.value||(nodeValue=new Value({}),field[$appendChild](nodeValue),field.value=nodeValue),field.value[$setValue](value)}}[$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[$extra].attempt&&01<=n||-1===n}),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.locale=attributes.locale||"",this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.rotate=getInteger({data:attributes.rotate,defaultValue:0,validate:x=>x%90==0}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.bind=null,this.border=null,this.calculate=null,this.caption=null,this.desc=null,this.extras=null,this.font=null,this.format=null,this.items=new XFAObjectArray(2),this.keep=null,this.margin=null,this.para=null,this.traversal=null,this.ui=null,this.validate=null,this.value=null,this.bindItems=new XFAObjectArray,this.connect=new XFAObjectArray,this.event=new XFAObjectArray,this.setProperty=new XFAObjectArray}[$isBindable](){return!0}[$setValue](value){_setValue(this,value)}[$toHTML](availableSpace){var node;if(setTabIndex(this),!this.ui){switch(this.ui=new Ui({}),this.ui[$globalData]=this[$globalData],this[$appendChild](this.ui),this.items.children.length){case 0:node=new TextEdit({}),this.ui.textEdit=node;break;case 1:node=new CheckButton({}),this.ui.checkButton=node;break;case 2:node=new ChoiceList({}),this.ui.choiceList=node}this.ui[$appendChild](node)}if(!this.ui||"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return HTMLResult.EMPTY;this.caption&&delete this.caption[$extra],this[$pushPara]();var caption=this.caption?this.caption[$toHTML](availableSpace).html:null,savedW=this.w,savedH=this.h,marginH=0,marginV=0,borderDims=(this.margin&&(marginH=this.margin.leftInset+this.margin.rightInset,marginV=this.margin.topInset+this.margin.bottomInset),null);if(""===this.w||""===this.h){var width=null,height=null,uiW=0,uiH=0;if(this.ui.checkButton?uiW=uiH=this.ui.checkButton.size:({w,h}=layoutNode(this,availableSpace),uiH=null!==w?(uiW=w,h):fonts_getMetrics(this.font,!0).lineNoGap),uiW+=(borderDims=getBorderDims(this.ui[$getExtra]())).w,uiH+=borderDims.h,this.caption){var{w,h,isBroken}=this.caption[$getExtra](availableSpace);if(isBroken&&this[$getSubformParent]()[$isThereMoreWidth]())return this[$popPara](),HTMLResult.FAILURE;switch(width=w,height=h,this.caption.placement){case"left":case"right":case"inline":width+=uiW;break;case"top":case"bottom":height+=uiH}}else width=uiW,height=uiH;width&&""===this.w&&(width+=marginH,this.w=Math.min(this.maxW<=0?1/0:this.maxW,this.minW+11<=x&&x<=5}),this.appearanceFilter=null,this.certificates=null,this.digestMethods=null,this.encodings=null,this.encryptionMethods=null,this.handler=null,this.lockDocument=null,this.mdp=null,this.reasons=null,this.timeStamp=null}}class Float extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"float"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var number=parseFloat(this[$content].trim());this[$content]=isNaN(number)?null:number}[$toHTML](availableSpace){return valueToHtml(null!==this[$content]?this[$content].toString():"")}}class template_Font extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"font",!0),this.baselineShift=getMeasurement(attributes.baselineShift),this.fontHorizontalScale=getFloat({data:attributes.fontHorizontalScale,defaultValue:100,validate:x=>0<=x}),this.fontVerticalScale=getFloat({data:attributes.fontVerticalScale,defaultValue:100,validate:x=>0<=x}),this.id=attributes.id||"",this.kerningMode=getStringOption(attributes.kerningMode,["none","pair"]),this.letterSpacing=getMeasurement(attributes.letterSpacing,"0"),this.lineThrough=getInteger({data:attributes.lineThrough,defaultValue:0,validate:x=>1===x||2===x}),this.lineThroughPeriod=getStringOption(attributes.lineThroughPeriod,["all","word"]),this.overline=getInteger({data:attributes.overline,defaultValue:0,validate:x=>1===x||2===x}),this.overlinePeriod=getStringOption(attributes.overlinePeriod,["all","word"]),this.posture=getStringOption(attributes.posture,["normal","italic"]),this.size=getMeasurement(attributes.size,"10pt"),this.typeface=attributes.typeface||"Courier",this.underline=getInteger({data:attributes.underline,defaultValue:0,validate:x=>1===x||2===x}),this.underlinePeriod=getStringOption(attributes.underlinePeriod,["all","word"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.weight=getStringOption(attributes.weight,["normal","bold"]),this.extras=null,this.fill=null}[$clean](builder){super[$clean](builder),this[$globalData].usedTypefaces.add(this.typeface)}[$toStyle](){var style=toStyle(this,"fill"),color=style.color;return color&&("#000000"===color?delete style.color:color.startsWith("#")||(style.background=color,style.backgroundClip="text",style.color="transparent")),this.baselineShift&&(style.verticalAlign=measureToString(this.baselineShift)),style.fontKerning="none"===this.kerningMode?"none":"normal",style.letterSpacing=measureToString(this.letterSpacing),0!==this.lineThrough&&(style.textDecoration="line-through",2===this.lineThrough)&&(style.textDecorationStyle="double"),0!==this.overline&&(style.textDecoration="overline",2===this.overline)&&(style.textDecorationStyle="double"),style.fontStyle=this.posture,style.fontSize=measureToString(.99*this.size),setFontFamily(this,this,this[$globalData].fontFinder,style),0!==this.underline&&(style.textDecoration="underline",2===this.underline)&&(style.textDecorationStyle="double"),style.fontWeight=this.weight,style}}class Format extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"format",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.picture=null}}class Handler extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"handler"),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Hyphenation extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"hyphenation"),this.excludeAllCaps=getInteger({data:attributes.excludeAllCaps,defaultValue:0,validate:x=>1===x}),this.excludeInitialCap=getInteger({data:attributes.excludeInitialCap,defaultValue:0,validate:x=>1===x}),this.hyphenate=getInteger({data:attributes.hyphenate,defaultValue:0,validate:x=>1===x}),this.id=attributes.id||"",this.pushCharacterCount=getInteger({data:attributes.pushCharacterCount,defaultValue:3,validate:x=>0<=x}),this.remainCharacterCount=getInteger({data:attributes.remainCharacterCount,defaultValue:3,validate:x=>0<=x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.wordCharacterCount=getInteger({data:attributes.wordCharacterCount,defaultValue:7,validate:x=>0<=x})}}class Image extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"image"),this.aspect=getStringOption(attributes.aspect,["fit","actual","height","none","width"]),this.contentType=attributes.contentType||"",this.href=attributes.href||"",this.id=attributes.id||"",this.name=attributes.name||"",this.transferEncoding=getStringOption(attributes.transferEncoding,["base64","none","package"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$toHTML](){if(this.contentType&&!MIMES.has(this.contentType.toLowerCase()))return HTMLResult.EMPTY;var buffer=null==(_this$$globalData$ima=this[$globalData].images)?void 0:_this$$globalData$ima.get(this.href);if(!buffer&&(this.href||!this[$content]))return HTMLResult.EMPTY;if(!(buffer=buffer||"base64"!==this.transferEncoding?buffer:fromBase64Util(this[$content])))return HTMLResult.EMPTY;if(!this.contentType){for(var[header,type]of IMAGES_HEADERS)if(buffer.length>header.length&&header.every((x,i)=>x===buffer[i])){this.contentType=type;break}if(!this.contentType)return HTMLResult.EMPTY}var style,_this$$globalData$ima=new Blob([buffer],{type:this.contentType});switch(this.aspect){case"fit":case"actual":break;case"height":style={height:"100%",objectFit:"fill"};break;case"none":style={width:"100%",height:"100%",objectFit:"fill"};break;case"width":style={width:"100%",objectFit:"fill"}}var parent=this[$getParent]();return HTMLResult.success({name:"img",attributes:{class:["xfaImage"],style:style,src:URL.createObjectURL(_this$$globalData$ima),alt:parent?ariaLabel(parent[$getParent]()):null}})}}class ImageEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"imageEdit",!0),this.data=getStringOption(attributes.data,["link","embed"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){return"embed"===this.data?HTMLResult.success({name:"div",children:[],attributes:{}}):HTMLResult.EMPTY}}class Integer extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"integer"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var number=parseInt(this[$content].trim(),10);this[$content]=isNaN(number)?null:number}[$toHTML](availableSpace){return valueToHtml(null!==this[$content]?this[$content].toString():"")}}class Issuers extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"issuers",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.certificate=new XFAObjectArray}}class Items extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"items",!0),this.id=attributes.id||"",this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.ref=attributes.ref||"",this.save=getInteger({data:attributes.save,defaultValue:0,validate:x=>1===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}[$toHTML](){var child,output=[];for(child of this[$getChildren]())output.push(child[$text]());return HTMLResult.success(output)}}class Keep extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"keep",!0),this.id=attributes.id||"";var options=["none","contentArea","pageArea"];this.intact=getStringOption(attributes.intact,options),this.next=getStringOption(attributes.next,options),this.previous=getStringOption(attributes.previous,options),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}}class KeyUsage extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"keyUsage");var options=["","yes","no"];this.crlSign=getStringOption(attributes.crlSign,options),this.dataEncipherment=getStringOption(attributes.dataEncipherment,options),this.decipherOnly=getStringOption(attributes.decipherOnly,options),this.digitalSignature=getStringOption(attributes.digitalSignature,options),this.encipherOnly=getStringOption(attributes.encipherOnly,options),this.id=attributes.id||"",this.keyAgreement=getStringOption(attributes.keyAgreement,options),this.keyCertSign=getStringOption(attributes.keyCertSign,options),this.keyEncipherment=getStringOption(attributes.keyEncipherment,options),this.nonRepudiation=getStringOption(attributes.nonRepudiation,options),this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Line extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"line",!0),this.hand=getStringOption(attributes.hand,["even","left","right"]),this.id=attributes.id||"",this.slope=getStringOption(attributes.slope,["\\","/"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.edge=null}[$toHTML](){var x1,y1,x2,y2,parent=this[$getParent]()[$getParent](),edge=this.edge||new Edge({}),edgeStyle=edge[$toStyle](),style=Object.create(null),edge="visible"===edge.presence?edge.thickness:0,edgeStyle=(style.strokeWidth=measureToString(edge),style.stroke=edgeStyle.color,"100%"),height="100%";parent.w<=edge?([x1,y1,x2,y2]=["50%",0,"50%","100%"],edgeStyle=style.strokeWidth):parent.h<=edge?([x1,y1,x2,y2]=[0,"50%","100%","50%"],height=style.strokeWidth):"\\"===this.slope?[x1,y1,x2,y2]=[0,0,"100%","100%"]:[x1,y1,x2,y2]=[0,"100%","100%",0];edge={name:"svg",children:[{name:"line",attributes:{xmlns:SVG_NS,x1:x1,y1:y1,x2:x2,y2:y2,style:style}}],attributes:{xmlns:SVG_NS,width:edgeStyle,height:height,style:{overflow:"visible"}}};return hasMargin(parent)?HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[edge]}):(edge.attributes.style.position="absolute",HTMLResult.success(edge))}}class Linear extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"linear",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["toRight","toBottom","toLeft","toTop"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](startColor){startColor=startColor?startColor[$toStyle]():"#FFFFFF";var transf=this.type.replace(/([RBLT])/," $1").toLowerCase(),endColor=this.color?this.color[$toStyle]():"#000000";return"linear-gradient(".concat(transf,", ").concat(startColor,", ").concat(endColor,")")}}class LockDocument extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"lockDocument"),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){this[$content]=getStringOption(this[$content],["auto","0","1"])}}class Manifest extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"manifest",!0),this.action=getStringOption(attributes.action,["include","all","exclude"]),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.ref=new XFAObjectArray}}class Margin extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"margin",!0),this.bottomInset=getMeasurement(attributes.bottomInset,"0"),this.id=attributes.id||"",this.leftInset=getMeasurement(attributes.leftInset,"0"),this.rightInset=getMeasurement(attributes.rightInset,"0"),this.topInset=getMeasurement(attributes.topInset,"0"),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}[$toStyle](){return{margin:measureToString(this.topInset)+" "+measureToString(this.rightInset)+" "+measureToString(this.bottomInset)+" "+measureToString(this.leftInset)}}}class Mdp extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"mdp"),this.id=attributes.id||"",this.permissions=getInteger({data:attributes.permissions,defaultValue:2,validate:x=>1===x||3===x}),this.signatureType=getStringOption(attributes.signatureType,["filler","author"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Medium extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"medium"),this.id=attributes.id||"",this.imagingBBox=getBBox(attributes.imagingBBox),this.long=getMeasurement(attributes.long),this.orientation=getStringOption(attributes.orientation,["portrait","landscape"]),this.short=getMeasurement(attributes.short),this.stock=attributes.stock||"",this.trayIn=getStringOption(attributes.trayIn,["auto","delegate","pageFront"]),this.trayOut=getStringOption(attributes.trayOut,["auto","delegate"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Message extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"message",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.text=new XFAObjectArray}}class NumericEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"numericEdit",!0),this.hScrollPolicy=getStringOption(attributes.hScrollPolicy,["auto","off","on"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.comb=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","font","margin"),field=this[$getParent]()[$getParent](),_field$$data4={name:"input",attributes:{type:"text",fieldId:field[$uid],dataId:(null==(_field$$data4=field[$data])?void 0:_field$$data4[$uid])||field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}};return isRequired(field)&&(_field$$data4.attributes["aria-required"]=!0,_field$$data4.attributes.required=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[_field$$data4]})}}class Occur extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"occur",!0),this.id=attributes.id||"",this.initial=""!==attributes.initial?getInteger({data:attributes.initial,defaultValue:"",validate:x=>!0}):"",this.max=""!==attributes.max?getInteger({data:attributes.max,defaultValue:1,validate:x=>!0}):"",this.min=""!==attributes.min?getInteger({data:attributes.min,defaultValue:1,validate:x=>!0}):"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}[$clean](){var parent=this[$getParent](),originalMin=this.min;""===this.min&&(this.min=parent instanceof PageArea||parent instanceof PageSet?0:1),""===this.max&&(this.max=""===originalMin?parent instanceof PageArea||parent instanceof PageSet?-1:1:this.min),-1!==this.max&&this.max!0}),this.name=attributes.name||"",this.numbered=getInteger({data:attributes.numbered,defaultValue:1,validate:x=>!0}),this.oddOrEven=getStringOption(attributes.oddOrEven,["any","even","odd"]),this.pagePosition=getStringOption(attributes.pagePosition,["any","first","last","only","rest"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.desc=null,this.extras=null,this.medium=null,this.occur=null,this.area=new XFAObjectArray,this.contentArea=new XFAObjectArray,this.draw=new XFAObjectArray,this.exclGroup=new XFAObjectArray,this.field=new XFAObjectArray,this.subform=new XFAObjectArray}[$isUsable](){return this[$extra]?!this.occur||-1===this.occur.max||this[$extra].numberOfUsep.oddOrEven===parity&&p.pagePosition===position);return parent||this.pageArea.children.find(p=>"any"===p.oddOrEven&&p.pagePosition===position)||this.pageArea.children.find(p=>"any"===p.oddOrEven&&"any"===p.pagePosition)||this.pageArea.children[0]}}class Para extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"para",!0),this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.lineHeight=attributes.lineHeight?getMeasurement(attributes.lineHeight,"0pt"):"",this.marginLeft=attributes.marginLeft?getMeasurement(attributes.marginLeft,"0pt"):"",this.marginRight=attributes.marginRight?getMeasurement(attributes.marginRight,"0pt"):"",this.orphans=getInteger({data:attributes.orphans,defaultValue:0,validate:x=>0<=x}),this.preserve=attributes.preserve||"",this.radixOffset=attributes.radixOffset?getMeasurement(attributes.radixOffset,"0pt"):"",this.spaceAbove=attributes.spaceAbove?getMeasurement(attributes.spaceAbove,"0pt"):"",this.spaceBelow=attributes.spaceBelow?getMeasurement(attributes.spaceBelow,"0pt"):"",this.tabDefault=attributes.tabDefault?getMeasurement(this.tabDefault):"",this.tabStops=(attributes.tabStops||"").trim().split(/\s+/).map((x,i)=>i%2==1?getMeasurement(x):x),this.textIndent=attributes.textIndent?getMeasurement(attributes.textIndent,"0pt"):"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.vAlign=getStringOption(attributes.vAlign,["top","bottom","middle"]),this.widows=getInteger({data:attributes.widows,defaultValue:0,validate:x=>0<=x}),this.hyphenation=null}[$toStyle](){var style=toStyle(this,"hAlign");return""!==this.marginLeft&&(style.paddingLeft=measureToString(this.marginLeft)),""!==this.marginRight&&(style.paddingRight=measureToString(this.marginRight)),""!==this.spaceAbove&&(style.paddingTop=measureToString(this.spaceAbove)),""!==this.spaceBelow&&(style.paddingBottom=measureToString(this.spaceBelow)),""!==this.textIndent&&(style.textIndent=measureToString(this.textIndent),fixTextIndent(style)),01===x}),this.id=attributes.id||"",this.priority=getStringOption(attributes.priority,["custom","caption","name","toolTip"]),this.rid=attributes.rid||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Stipple extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"stipple",!0),this.id=attributes.id||"",this.rate=getInteger({data:attributes.rate,defaultValue:50,validate:x=>0<=x&&x<=100}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](bgColor){var alpha=this.rate/100;return Util.makeHexColor(Math.round(bgColor.value.r*(1-alpha)+this.value.r*alpha),Math.round(bgColor.value.g*(1-alpha)+this.value.g*alpha),Math.round(bgColor.value.b*(1-alpha)+this.value.b*alpha))}}class Subform extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"subform",!0),this.access=getStringOption(attributes.access,["open","nonInteractive","protected","readOnly"]),this.allowMacro=getInteger({data:attributes.allowMacro,defaultValue:0,validate:x=>1===x}),this.anchorType=getStringOption(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.columnWidths=(attributes.columnWidths||"").trim().split(/\s+/).map(x=>"-1"===x?-1:getMeasurement(x)),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.layout=getStringOption(attributes.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]),this.locale=attributes.locale||"",this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.mergeMode=getStringOption(attributes.mergeMode,["consumeData","matchTemplate"]),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.restoreState=getStringOption(attributes.restoreState,["manual","auto"]),this.scope=getStringOption(attributes.scope,["name","none"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.bind=null,this.bookend=null,this.border=null,this.break=null,this.calculate=null,this.desc=null,this.extras=null,this.keep=null,this.margin=null,this.occur=null,this.overflow=null,this.pageSet=null,this.para=null,this.traversal=null,this.validate=null,this.variables=null,this.area=new XFAObjectArray,this.breakAfter=new XFAObjectArray,this.breakBefore=new XFAObjectArray,this.connect=new XFAObjectArray,this.draw=new XFAObjectArray,this.event=new XFAObjectArray,this.exObject=new XFAObjectArray,this.exclGroup=new XFAObjectArray,this.field=new XFAObjectArray,this.proto=new XFAObjectArray,this.setProperty=new XFAObjectArray,this.subform=new XFAObjectArray,this.subformSet=new XFAObjectArray}[$getSubformParent](){var parent=this[$getParent]();return parent instanceof SubformSet?parent[$getSubformParent]():parent}[$isBindable](){return!0}[$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[$extra].attempt&&0((kv=kv.split("=",2))[0]=kv[0].trim(),kv)))}}class SubjectDNs extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"subjectDNs",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.subjectDN=new XFAObjectArray}}class Submit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"submit",!0),this.embedPDF=getInteger({data:attributes.embedPDF,defaultValue:0,validate:x=>1===x}),this.format=getStringOption(attributes.format,["xdp","formdata","pdf","urlencoded","xfd","xml"]),this.id=attributes.id||"",this.target=attributes.target||"",this.textEncoding=getKeyword({data:attributes.textEncoding?attributes.textEncoding.toLowerCase():"",defaultValue:"",validate:k=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(k)||k.match(/iso-8859-\d{2}/)}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.xdpContent=attributes.xdpContent||"",this.encrypt=null,this.encryptData=new XFAObjectArray,this.signData=new XFAObjectArray}}class Template extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"template",!0),this.baseProfile=getStringOption(attributes.baseProfile,["full","interactiveForms"]),this.extras=null,this.subform=new XFAObjectArray}[$finalize](){0===this.subform.children.length&&warn("XFA - No subforms in template node."),2<=this.subform.children.length&&warn("XFA - Several subforms in template node: please file a bug."),this[$tabIndex]=DEFAULT_TAB_INDEX}[$isSplittable](){return!0}[$searchNode](expr,container){return expr.startsWith("#")?[this[$ids].get(expr.slice(1))]:searchNode(this,container,expr,!0,!0)}*[$toPages](){var _this6=this;if(!this.subform.children.length)return HTMLResult.success({name:"div",children:[]});this[$extra]={overflowNode:null,firstUnsplittable:null,currentContentArea:null,currentPageArea:null,noLayoutFailure:!1,pageNumber:1,pagePosition:"first",oddOrEven:"odd",blankOrNotBlank:"nonBlank",paraStack:[]};for(var _root$break,targetPageArea,_ret3,root=this.subform.children[0],pageAreas=(root.pageSet[$cleanPage](),root.pageSet.pageArea.children),mainHtml={name:"div",children:[]},pageArea=null,breakBefore=null,breakBeforeTarget=null,breakBeforeTarget=(1<=root.breakBefore.children.length?breakBeforeTarget=(breakBefore=root.breakBefore.children[0]).target:1<=root.subform.children.length&&1<=root.subform.children[0].breakBefore.children.length?breakBeforeTarget=(breakBefore=root.subform.children[0].breakBefore.children[0]).target:null!=(_root$break=root.break)&&_root$break.beforeTarget?breakBeforeTarget=(breakBefore=root.break).beforeTarget:1<=root.subform.children.length&&null!=(_root$break=root.subform.children[0].break)&&_root$break.beforeTarget&&(breakBeforeTarget=(breakBefore=root.subform.children[0].break).beforeTarget),breakBefore&&(_root$break=this[$searchNode](breakBeforeTarget,breakBefore[$getParent]()))instanceof PageArea&&(pageArea=_root$break,breakBefore[$extra]={}),(pageArea=pageArea||pageAreas[0])[$extra]={numberOfUse:1},pageArea[$getParent]()),leader=(breakBeforeTarget[$extra]={numberOfUse:1,pageIndex:breakBeforeTarget.pageArea.children.indexOf(pageArea),pageSetIndex:0},null),trailer=null,hasSomething=!0,hasSomethingCounter=0,startIndex=0;;)if(_ret3=yield*function*(){if(hasSomething)hasSomethingCounter=0;else if(mainHtml.children.pop(),++hasSomethingCounter===MAX_EMPTY_PAGES)return warn("XFA - Something goes wrong: please file a bug."),{v:mainHtml};targetPageArea=null;for(var page=(_this6[$extra].currentPageArea=pageArea)[$toHTML]().html,contentAreas=(mainHtml.children.push(page),leader&&(_this6[$extra].noLayoutFailure=!0,page.children.push(leader[$toHTML](pageArea[$extra].space).html),leader=null),trailer&&(_this6[$extra].noLayoutFailure=!0,page.children.push(trailer[$toHTML](pageArea[$extra].space).html),trailer=null),pageArea.contentArea.children),htmlContentAreas=page.children.filter(node=>node.attributes.class.includes("xfaContentarea")),flush=(hasSomething=!1,_this6[$extra].firstUnsplittable=null,_this6[$extra].noLayoutFailure=!1,index=>{var _html$children,html=root[$flushHTML]();html&&(hasSomething=hasSomething||0<(null==(_html$children=html.children)?void 0:_html$children.length),htmlContentAreas[index].children.push(html))}),i=startIndex,ii=contentAreas.length;i0<=x}),this.name=attributes.name||"",this.rid=attributes.rid||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$acceptWhitespace](){return!0}[$onChild](child){return child[$namespaceId]===NamespaceIds.xhtml.id?(this[$content]=child,!0):(warn("XFA - Invalid content in Text: ".concat(child[$nodeName],".")),!1)}[$onText](str){this[$content]instanceof XFAObject||super[$onText](str)}[$finalize](){"string"==typeof this[$content]&&(this[$content]=this[$content].replaceAll("\r\n","\n"))}[$getExtra](){return"string"==typeof this[$content]?this[$content].split(/[\u2029\u2028\n]/).filter(line=>!!line).join("\n"):this[$content][$text]()}[$toHTML](availableSpace){var html;return"string"==typeof this[$content]?(html=valueToHtml(this[$content]).html,this[$content].includes("\u2029")?(html.name="div",html.children=[],this[$content].split("\u2029").map(para=>para.split(/[\u2028\n]/).flatMap(line=>[{name:"span",value:line},{name:"br"}])).forEach(lines=>{html.children.push({name:"p",children:lines})})):/[\u2028\n]/.test(this[$content])&&(html.name="div",html.children=[],this[$content].split(/[\u2028\n]/).forEach(line=>{html.children.push({name:"span",value:line},{name:"br"})})),HTMLResult.success(html)):this[$content][$toHTML](availableSpace)}}class TextEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"textEdit",!0),this.allowRichText=getInteger({data:attributes.allowRichText,defaultValue:0,validate:x=>1===x}),this.hScrollPolicy=getStringOption(attributes.hScrollPolicy,["auto","off","on"]),this.id=attributes.id||"",this.multiLine=getInteger({data:attributes.multiLine,defaultValue:"",validate:x=>0===x||1===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.vScrollPolicy=getStringOption(attributes.vScrollPolicy,["auto","off","on"]),this.border=null,this.comb=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var _field$$data5,style=toStyle(this,"border","font","margin"),field=this[$getParent]()[$getParent]();return""===this.multiLine&&(this.multiLine=field instanceof Draw?1:0),_field$$data5=1===this.multiLine?{name:"textarea",attributes:{dataId:(null==(_field$$data5=field[$data])?void 0:_field$$data5[$uid])||field[$uid],fieldId:field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}}:{name:"input",attributes:{type:"text",dataId:(null==(_field$$data5=field[$data])?void 0:_field$$data5[$uid])||field[$uid],fieldId:field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}},isRequired(field)&&(_field$$data5.attributes["aria-required"]=!0,_field$$data5.attributes.required=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[_field$$data5]})}}class Time extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"time"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var date=this[$content].trim();this[$content]=date?new Date(date):null}[$toHTML](availableSpace){return valueToHtml(this[$content]?this[$content].toString():"")}}class TimeStamp extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"timeStamp"),this.id=attributes.id||"",this.server=attributes.server||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class ToolTip extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"toolTip"),this.id=attributes.id||"",this.rid=attributes.rid||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Traversal extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"traversal",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.traverse=new XFAObjectArray}}class Traverse extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"traverse",!0),this.id=attributes.id||"",this.operation=getStringOption(attributes.operation,["next","back","down","first","left","right","up"]),this.ref=attributes.ref||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.script=null}get name(){return this.operation}[$isTransparent](){return!1}}class Ui extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"ui",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.picture=null,this.barcode=null,this.button=null,this.checkButton=null,this.choiceList=null,this.dateTimeEdit=null,this.defaultUi=null,this.imageEdit=null,this.numericEdit=null,this.passwordEdit=null,this.signature=null,this.textEdit=null}[$getExtra](){if(void 0===this[$extra]){for(var name of Object.getOwnPropertyNames(this))if("extras"!==name&&"picture"!==name){name=this[name];if(name instanceof XFAObject)return this[$extra]=name}this[$extra]=null}return this[$extra]}[$toHTML](availableSpace){var obj=this[$getExtra]();return obj?obj[$toHTML](availableSpace):HTMLResult.EMPTY}}class Validate extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"validate",!0),this.formatTest=getStringOption(attributes.formatTest,["warning","disabled","error"]),this.id=attributes.id||"",this.nullTest=getStringOption(attributes.nullTest,["disabled","error","warning"]),this.scriptTest=getStringOption(attributes.scriptTest,["error","disabled","warning"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.message=null,this.picture=null,this.script=null}}class Value extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"value",!0),this.id=attributes.id||"",this.override=getInteger({data:attributes.override,defaultValue:0,validate:x=>1===x}),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.arc=null,this.boolean=null,this.date=null,this.dateTime=null,this.decimal=null,this.exData=null,this.float=null,this.image=null,this.integer=null,this.line=null,this.rectangle=null,this.text=null,this.time=null}[$setValue](value){var parent=this[$getParent]();if(parent instanceof Field&&(null!=(parent=parent.ui)&&parent.imageEdit))return this.image||(this.image=new Image({}),this[$appendChild](this.image)),void(this.image[$content]=value[$content]);parent=value[$nodeName];if(null!==this[parent])this[parent][$content]=value[$content];else{for(var name of Object.getOwnPropertyNames(this)){var obj=this[name];obj instanceof XFAObject&&(this[name]=null,this[$removeChild](obj))}this[value[$nodeName]]=value,this[$appendChild](value)}}[$text](){if(this.exData)return("string"==typeof this.exData[$content]?this.exData[$content]:this.exData[$content][$text]()).trim();for(var name of Object.getOwnPropertyNames(this))if("image"!==name){name=this[name];if(name instanceof XFAObject)return(name[$content]||"").toString().trim()}return null}[$toHTML](availableSpace){for(var name of Object.getOwnPropertyNames(this)){name=this[name];if(name instanceof XFAObject)return name[$toHTML](availableSpace)}return HTMLResult.EMPTY}}class Variables extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"variables",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.manifest=new XFAObjectArray,this.script=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}[$isTransparent](){return!0}}class TemplateNamespace{static[$buildXFAObject](name,attributes){if(TemplateNamespace.hasOwnProperty(name))return(name=TemplateNamespace[name](attributes))[$setSetAttributes](attributes),name}static appearanceFilter(attrs){return new AppearanceFilter(attrs)}static arc(attrs){return new Arc(attrs)}static area(attrs){return new Area(attrs)}static assist(attrs){return new Assist(attrs)}static barcode(attrs){return new Barcode(attrs)}static bind(attrs){return new Bind(attrs)}static bindItems(attrs){return new BindItems(attrs)}static bookend(attrs){return new Bookend(attrs)}static boolean(attrs){return new BooleanElement(attrs)}static border(attrs){return new Border(attrs)}static break(attrs){return new Break(attrs)}static breakAfter(attrs){return new BreakAfter(attrs)}static breakBefore(attrs){return new BreakBefore(attrs)}static button(attrs){return new Button(attrs)}static calculate(attrs){return new Calculate(attrs)}static caption(attrs){return new Caption(attrs)}static certificate(attrs){return new Certificate(attrs)}static certificates(attrs){return new Certificates(attrs)}static checkButton(attrs){return new CheckButton(attrs)}static choiceList(attrs){return new ChoiceList(attrs)}static color(attrs){return new Color(attrs)}static comb(attrs){return new Comb(attrs)}static connect(attrs){return new Connect(attrs)}static contentArea(attrs){return new ContentArea(attrs)}static corner(attrs){return new Corner(attrs)}static date(attrs){return new DateElement(attrs)}static dateTime(attrs){return new DateTime(attrs)}static dateTimeEdit(attrs){return new DateTimeEdit(attrs)}static decimal(attrs){return new Decimal(attrs)}static defaultUi(attrs){return new DefaultUi(attrs)}static desc(attrs){return new Desc(attrs)}static digestMethod(attrs){return new DigestMethod(attrs)}static digestMethods(attrs){return new DigestMethods(attrs)}static draw(attrs){return new Draw(attrs)}static edge(attrs){return new Edge(attrs)}static encoding(attrs){return new Encoding(attrs)}static encodings(attrs){return new Encodings(attrs)}static encrypt(attrs){return new Encrypt(attrs)}static encryptData(attrs){return new EncryptData(attrs)}static encryption(attrs){return new Encryption(attrs)}static encryptionMethod(attrs){return new EncryptionMethod(attrs)}static encryptionMethods(attrs){return new EncryptionMethods(attrs)}static event(attrs){return new Event(attrs)}static exData(attrs){return new ExData(attrs)}static exObject(attrs){return new ExObject(attrs)}static exclGroup(attrs){return new ExclGroup(attrs)}static execute(attrs){return new Execute(attrs)}static extras(attrs){return new Extras(attrs)}static field(attrs){return new Field(attrs)}static fill(attrs){return new Fill(attrs)}static filter(attrs){return new Filter(attrs)}static float(attrs){return new Float(attrs)}static font(attrs){return new template_Font(attrs)}static format(attrs){return new Format(attrs)}static handler(attrs){return new Handler(attrs)}static hyphenation(attrs){return new Hyphenation(attrs)}static image(attrs){return new Image(attrs)}static imageEdit(attrs){return new ImageEdit(attrs)}static integer(attrs){return new Integer(attrs)}static issuers(attrs){return new Issuers(attrs)}static items(attrs){return new Items(attrs)}static keep(attrs){return new Keep(attrs)}static keyUsage(attrs){return new KeyUsage(attrs)}static line(attrs){return new Line(attrs)}static linear(attrs){return new Linear(attrs)}static lockDocument(attrs){return new LockDocument(attrs)}static manifest(attrs){return new Manifest(attrs)}static margin(attrs){return new Margin(attrs)}static mdp(attrs){return new Mdp(attrs)}static medium(attrs){return new Medium(attrs)}static message(attrs){return new Message(attrs)}static numericEdit(attrs){return new NumericEdit(attrs)}static occur(attrs){return new Occur(attrs)}static oid(attrs){return new Oid(attrs)}static oids(attrs){return new Oids(attrs)}static overflow(attrs){return new Overflow(attrs)}static pageArea(attrs){return new PageArea(attrs)}static pageSet(attrs){return new PageSet(attrs)}static para(attrs){return new Para(attrs)}static passwordEdit(attrs){return new PasswordEdit(attrs)}static pattern(attrs){return new template_Pattern(attrs)}static picture(attrs){return new Picture(attrs)}static proto(attrs){return new Proto(attrs)}static radial(attrs){return new Radial(attrs)}static reason(attrs){return new Reason(attrs)}static reasons(attrs){return new Reasons(attrs)}static rectangle(attrs){return new Rectangle(attrs)}static ref(attrs){return new RefElement(attrs)}static script(attrs){return new Script(attrs)}static setProperty(attrs){return new SetProperty(attrs)}static signData(attrs){return new SignData(attrs)}static signature(attrs){return new Signature(attrs)}static signing(attrs){return new Signing(attrs)}static solid(attrs){return new Solid(attrs)}static speak(attrs){return new Speak(attrs)}static stipple(attrs){return new Stipple(attrs)}static subform(attrs){return new Subform(attrs)}static subformSet(attrs){return new SubformSet(attrs)}static subjectDN(attrs){return new SubjectDN(attrs)}static subjectDNs(attrs){return new SubjectDNs(attrs)}static submit(attrs){return new Submit(attrs)}static template(attrs){return new Template(attrs)}static text(attrs){return new Text(attrs)}static textEdit(attrs){return new TextEdit(attrs)}static time(attrs){return new Time(attrs)}static timeStamp(attrs){return new TimeStamp(attrs)}static toolTip(attrs){return new ToolTip(attrs)}static traversal(attrs){return new Traversal(attrs)}static traverse(attrs){return new Traverse(attrs)}static ui(attrs){return new Ui(attrs)}static validate(attrs){return new Validate(attrs)}static value(attrs){return new Value(attrs)}static variables(attrs){return new Variables(attrs)}}var bind_NS_DATASETS=NamespaceIds.datasets.id;function createText(content){var node=new Text({});return node[$content]=content,node}class Binder{constructor(root){var _root$datasets;this.root=root,this.datasets=root.datasets,this.data=(null==(_root$datasets=root.datasets)?void 0:_root$datasets.data)||new XmlObject(NamespaceIds.datasets.id,"data"),this.emptyMerge=0===this.data[$getChildren]().length,this.root.form=this.form=root.template[$clone]()}_isConsumeData(){return!this.emptyMerge&&this._mergeMode}_isMatchTemplate(){return!this._isConsumeData()}bind(){return this._bindElement(this.form,this.data),this.form}getData(){return this.data}_bindValue(formNode,data,picture){var value;formNode[$data]=data,formNode[$hasSettableValue]()?data[$isDataValue]()?(value=data[$getDataValue](),formNode[$setValue](createText(value))):formNode instanceof Field&&"multiSelect"===(null==(value=formNode.ui)||null==(value=value.choiceList)?void 0:value.open)?(value=data[$getChildren]().map(child=>child[$content].trim()).join("\n"),formNode[$setValue](createText(value))):this._isConsumeData()&&warn("XFA - Nodes haven't the same type."):!data[$isDataValue]()||this._isMatchTemplate()?this._bindElement(formNode,data):warn("XFA - Nodes haven't the same type.")}_findDataByNameToConsume(name,isValue,dataNode,global){var generator,match;if(!name)return null;for(var i=0;i<3;i++){for(generator=dataNode[$getRealChildrenByNameIt](name,!1,!0);;){if(!(match=generator.next().value))break;if(isValue===match[$isDataValue]())return match}if(dataNode[$namespaceId]===NamespaceIds.datasets.id&&"data"===dataNode[$nodeName])break;dataNode=dataNode[$getParent]()}return global?(match=(generator=this.data[$getRealChildrenByNameIt](name,!0,!1)).next().value)||(null!=(match=(generator=this.data[$getAttributeIt](name,!0)).next().value)&&match[$isDataValue]()?match:null):null}_setProperties(formNode,dataNode){if(formNode.hasOwnProperty("setProperty"))for(var{ref,target,connection}of formNode.setProperty.children){var targetNodes,targetParent,content,name,attrs;connection||ref&&((connection=searchNode(this.root,dataNode,ref,!1,!1))?([connection]=connection,connection[$isDescendent](this.data)?(targetNodes=searchNode(this.root,formNode,target,!1,!1))?([targetNodes]=targetNodes,targetNodes[$isDescendent](formNode)?(targetParent=targetNodes[$getParent](),targetNodes instanceof SetProperty||targetParent instanceof SetProperty?warn("XFA - Invalid target: cannot be a setProperty or one of its properties."):targetNodes instanceof BindItems||targetParent instanceof BindItems?warn("XFA - Invalid target: cannot be a bindItems or one of its properties."):(content=connection[$text](),name=targetNodes[$nodeName],targetNodes instanceof XFAAttribute?((attrs=Object.create(null))[name]=content,attrs=Reflect.construct(Object.getPrototypeOf(targetParent).constructor,[attrs]),targetParent[name]=attrs[name]):targetNodes.hasOwnProperty($content)?(targetNodes[$data]=connection,targetNodes[$content]=content,targetNodes[$finalize]()):warn("XFA - Invalid node to use in setProperty"))):warn("XFA - Invalid target: must be a property or subproperty.")):warn("XFA - Invalid target: ".concat(target,".")):warn("XFA - Invalid node: must be a data node.")):warn("XFA - Invalid reference: ".concat(ref,".")))}}_bindItems(formNode,dataNode){if(formNode.hasOwnProperty("items")&&formNode.hasOwnProperty("bindItems")&&!formNode.bindItems.isEmpty()){for(var item of formNode.items.children)formNode[$removeChild](item);formNode.items.clear();var ref,labelRef,valueRef,connection,labels=new Items({}),values=new Items({});formNode[$appendChild](labels),formNode.items.push(labels),formNode[$appendChild](values),formNode.items.push(values);for({ref,labelRef,valueRef,connection}of formNode.bindItems.children)if(!connection&&ref){var labelNodes,nodes=searchNode(this.root,dataNode,ref,!1,!1);if(nodes)for(var node of nodes)node[$isDescendent](this.datasets)?(labelNodes=searchNode(this.root,node,labelRef,!0,!1))?([labelNodes]=labelNodes,labelNodes[$isDescendent](this.datasets)?(node=searchNode(this.root,node,valueRef,!0,!1))?([node]=node,node[$isDescendent](this.datasets)?(labelNodes=createText(labelNodes[$text]()),node=createText(node[$text]()),labels[$appendChild](labelNodes),labels.text.push(labelNodes),values[$appendChild](node),values.text.push(node)):warn("XFA - Invalid value: must be a datasets child.")):warn("XFA - Invalid value: ".concat(valueRef,".")):warn("XFA - Invalid label: must be a datasets child.")):warn("XFA - Invalid label: ".concat(labelRef,".")):warn("XFA - Invalid ref (".concat(ref,"): must be a datasets child."));else warn("XFA - Invalid reference: ".concat(ref,"."))}}}_bindOccurrences(formNode,matches,picture){var baseClone;if(1e.name===formNode.name):parent[name].children).length,pos=parent[$indexOf](formNode)+1,ii=occur.initial-currentNumber;if(ii){var nodeClone=formNode[$clone]();nodeClone[$removeChild](nodeClone.occur),nodeClone.occur=null,parent[name].push(nodeClone),parent[$insertAt](pos,nodeClone);for(var i=1;i!node[$consumed]):match).length>max?match=match.slice(0,max):0===match.length&&(match=null),match&&this._isConsumeData()&&match.forEach(node=>{node[$consumed]=!0})}else{if(!child.name){this._setAndBind(child,dataNode);continue}if(this._isConsumeData()){for(var matches=[];matches.lengthnode[$getParent]()[$removeChild](node))}}class DataHandler{constructor(root,data){this.data=data,this.dataset=root.datasets||null}serialize(storage){for(var stack=[[-1,this.data[$getChildren]()]];0'];if(this.dataset)for(var _child3 of this.dataset[$getChildren]())"data"!==_child3[$nodeName]&&_child3[$toString](buf);return this.data[$toString](buf),buf.push(""),buf.join("")}}var CONFIG_NS_ID=NamespaceIds.config.id;class Acrobat extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"acrobat",!0),this.acrobat7=null,this.autoSave=null,this.common=null,this.validate=null,this.validateApprovalSignatures=null,this.submitUrl=new XFAObjectArray}}class Acrobat7 extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"acrobat7",!0),this.dynamicRender=null}}class ADBE_JSConsole extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ADBE_JSConsole",["delegate","Enable","Disable"])}}class ADBE_JSDebugger extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ADBE_JSDebugger",["delegate","Enable","Disable"])}}class AddSilentPrint extends Option01{constructor(attributes){super(CONFIG_NS_ID,"addSilentPrint")}}class AddViewerPreferences extends Option01{constructor(attributes){super(CONFIG_NS_ID,"addViewerPreferences")}}class AdjustData extends Option10{constructor(attributes){super(CONFIG_NS_ID,"adjustData")}}class AdobeExtensionLevel extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"adobeExtensionLevel",0,n=>1<=n&&n<=8)}}class Agent extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"agent",!0),this.name=attributes.name?attributes.name.trim():"",this.common=new XFAObjectArray}}class AlwaysEmbed extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"alwaysEmbed")}}class Amd extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"amd")}}class config_Area extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"area"),this.level=getInteger({data:attributes.level,defaultValue:0,validate:n=>1<=n&&n<=3}),this.name=getStringOption(attributes.name,["","barcode","coreinit","deviceDriver","font","general","layout","merge","script","signature","sourceSet","templateCache"])}}class Attributes extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"attributes",["preserve","delegate","ignore"])}}class AutoSave extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"autoSave",["disabled","enabled"])}}class Base extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"base")}}class BatchOutput extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"batchOutput"),this.format=getStringOption(attributes.format,["none","concat","zip","zipCompress"])}}class BehaviorOverride extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"behaviorOverride")}[$finalize](){this[$content]=new Map(this[$content].trim().split(/\s+/).filter(x=>x.includes(":")).map(x=>x.split(":",2)))}}class Cache extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"cache",!0),this.templateCache=null}}class Change extends Option01{constructor(attributes){super(CONFIG_NS_ID,"change")}}class Common extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"common",!0),this.data=null,this.locale=null,this.localeSet=null,this.messaging=null,this.suppressBanner=null,this.template=null,this.validationMessaging=null,this.versionControl=null,this.log=new XFAObjectArray}}class Compress extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"compress"),this.scope=getStringOption(attributes.scope,["imageOnly","document"])}}class CompressLogicalStructure extends Option01{constructor(attributes){super(CONFIG_NS_ID,"compressLogicalStructure")}}class CompressObjectStream extends Option10{constructor(attributes){super(CONFIG_NS_ID,"compressObjectStream")}}class Compression extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"compression",!0),this.compressLogicalStructure=null,this.compressObjectStream=null,this.level=null,this.type=null}}class Config extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"config",!0),this.acrobat=null,this.present=null,this.trace=null,this.agent=new XFAObjectArray}}class Conformance extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"conformance",["A","B"])}}class ContentCopy extends Option01{constructor(attributes){super(CONFIG_NS_ID,"contentCopy")}}class Copies extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"copies",1,n=>1<=n)}}class Creator extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"creator")}}class CurrentPage extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"currentPage",0,n=>0<=n)}}class Data extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"data",!0),this.adjustData=null,this.attributes=null,this.incrementalLoad=null,this.outputXSL=null,this.range=null,this.record=null,this.startNode=null,this.uri=null,this.window=null,this.xsl=null,this.excludeNS=new XFAObjectArray,this.transform=new XFAObjectArray}}class Debug extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"debug",!0),this.uri=null}}class DefaultTypeface extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"defaultTypeface"),this.writingScript=getStringOption(attributes.writingScript,["*","Arabic","Cyrillic","EastEuropeanRoman","Greek","Hebrew","Japanese","Korean","Roman","SimplifiedChinese","Thai","TraditionalChinese","Vietnamese"])}}class Destination extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"destination",["pdf","pcl","ps","webClient","zpl"])}}class DocumentAssembly extends Option01{constructor(attributes){super(CONFIG_NS_ID,"documentAssembly")}}class Driver extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"driver",!0),this.name=attributes.name?attributes.name.trim():"",this.fontInfo=null,this.xdc=null}}class DuplexOption extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"])}}class DynamicRender extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"dynamicRender",["forbidden","required"])}}class Embed extends Option01{constructor(attributes){super(CONFIG_NS_ID,"embed")}}class config_Encrypt extends Option01{constructor(attributes){super(CONFIG_NS_ID,"encrypt")}}class config_Encryption extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"encryption",!0),this.encrypt=null,this.encryptionLevel=null,this.permissions=null}}class EncryptionLevel extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"encryptionLevel",["40bit","128bit"])}}class Enforce extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"enforce")}}class Equate extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"equate"),this.force=getInteger({data:attributes.force,defaultValue:1,validate:n=>0===n}),this.from=attributes.from||"",this.to=attributes.to||""}}class EquateRange extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"equateRange"),this.from=attributes.from||"",this.to=attributes.to||"",this._unicodeRange=attributes.unicodeRange||""}get unicodeRange(){var range,ranges=[],unicodeRegex=/U\+([0-9a-fA-F]+)/;for(range of this._unicodeRange.split(",").map(x=>x.trim()).filter(x=>!!x))1===(range=range.split("-",2).map(x=>{x=x.match(unicodeRegex);return x?parseInt(x[1],16):0})).length&&range.push(range[0]),ranges.push(range);return shadow(this,"unicodeRange",ranges)}}class Exclude extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"exclude")}[$finalize](){this[$content]=this[$content].trim().split(/\s+/).filter(x=>x&&["calculate","close","enter","exit","initialize","ready","validate"].includes(x))}}class ExcludeNS extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"excludeNS")}}class FlipLabel extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"flipLabel",["usePrinterSetting","on","off"])}}class config_FontInfo extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"fontInfo",!0),this.embed=null,this.map=null,this.subsetBelow=null,this.alwaysEmbed=new XFAObjectArray,this.defaultTypeface=new XFAObjectArray,this.neverEmbed=new XFAObjectArray}}class FormFieldFilling extends Option01{constructor(attributes){super(CONFIG_NS_ID,"formFieldFilling")}}class GroupParent extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"groupParent")}}class IfEmpty extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ifEmpty",["dataValue","dataGroup","ignore","remove"])}}class IncludeXDPContent extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"includeXDPContent")}}class IncrementalLoad extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"incrementalLoad",["none","forwardOnly"])}}class IncrementalMerge extends Option01{constructor(attributes){super(CONFIG_NS_ID,"incrementalMerge")}}class Interactive extends Option01{constructor(attributes){super(CONFIG_NS_ID,"interactive")}}class Jog extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"jog",["usePrinterSetting","none","pageSet"])}}class LabelPrinter extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"labelPrinter",!0),this.name=getStringOption(attributes.name,["zpl","dpl","ipl","tcpl"]),this.batchOutput=null,this.flipLabel=null,this.fontInfo=null,this.xdc=null}}class Layout extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"layout",["paginate","panel"])}}class Level extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"level",0,n=>01<=n)}}class NameAttr extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"nameAttr")}}class NeverEmbed extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"neverEmbed")}}class NumberOfCopies extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"numberOfCopies",null,n=>2<=n&&n<=5)}}class OpenAction extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"openAction",!0),this.destination=null}}class Output extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"output",!0),this.to=null,this.type=null,this.uri=null}}class OutputBin extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"outputBin")}}class OutputXSL extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"outputXSL",!0),this.uri=null}}class Overprint extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"overprint",["none","both","draw","field"])}}class Packets extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"packets")}[$finalize](){"*"!==this[$content]&&(this[$content]=this[$content].trim().split(/\s+/).filter(x=>["config","datasets","template","xfdf","xslt"].includes(x)))}}class PageOffset extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pageOffset"),this.x=getInteger({data:attributes.x,defaultValue:"useXDCSetting",validate:n=>!0}),this.y=getInteger({data:attributes.y,defaultValue:"useXDCSetting",validate:n=>!0})}}class PageRange extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"pageRange")}[$finalize](){for(var numbers=this[$content].trim().split(/\s+/).map(x=>parseInt(x,10)),ranges=[],i=0,ii=numbers.length;i!1)}}class Pcl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pcl",!0),this.name=attributes.name||"",this.batchOutput=null,this.fontInfo=null,this.jog=null,this.mediumInfo=null,this.outputBin=null,this.pageOffset=null,this.staple=null,this.xdc=null}}class Pdf extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pdf",!0),this.name=attributes.name||"",this.adobeExtensionLevel=null,this.batchOutput=null,this.compression=null,this.creator=null,this.encryption=null,this.fontInfo=null,this.interactive=null,this.linearized=null,this.openAction=null,this.pdfa=null,this.producer=null,this.renderPolicy=null,this.scriptModel=null,this.silentPrint=null,this.submitFormat=null,this.tagged=null,this.version=null,this.viewerPreferences=null,this.xdc=null}}class Pdfa extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pdfa",!0),this.amd=null,this.conformance=null,this.includeXDPContent=null,this.part=null}}class Permissions extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"permissions",!0),this.accessibleContent=null,this.change=null,this.contentCopy=null,this.documentAssembly=null,this.formFieldFilling=null,this.modifyAnnots=null,this.plaintextMetadata=null,this.print=null,this.printHighQuality=null}}class PickTrayByPDFSize extends Option01{constructor(attributes){super(CONFIG_NS_ID,"pickTrayByPDFSize")}}class config_Picture extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"picture")}}class PlaintextMetadata extends Option01{constructor(attributes){super(CONFIG_NS_ID,"plaintextMetadata")}}class Presence extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"presence",["preserve","dissolve","dissolveStructure","ignore","remove"])}}class Present extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"present",!0),this.behaviorOverride=null,this.cache=null,this.common=null,this.copies=null,this.destination=null,this.incrementalMerge=null,this.layout=null,this.output=null,this.overprint=null,this.pagination=null,this.paginationOverride=null,this.script=null,this.validate=null,this.xdp=null,this.driver=new XFAObjectArray,this.labelPrinter=new XFAObjectArray,this.pcl=new XFAObjectArray,this.pdf=new XFAObjectArray,this.ps=new XFAObjectArray,this.submitUrl=new XFAObjectArray,this.webClient=new XFAObjectArray,this.zpl=new XFAObjectArray}}class Print extends Option01{constructor(attributes){super(CONFIG_NS_ID,"print")}}class PrintHighQuality extends Option01{constructor(attributes){super(CONFIG_NS_ID,"printHighQuality")}}class PrintScaling extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"printScaling",["appdefault","noScaling"])}}class PrinterName extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"printerName")}}class Producer extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"producer")}}class Ps extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"ps",!0),this.name=attributes.name||"",this.batchOutput=null,this.fontInfo=null,this.jog=null,this.mediumInfo=null,this.outputBin=null,this.staple=null,this.xdc=null}}class Range extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"range")}[$finalize](){this[$content]=this[$content].split(",",2).map(range=>range.split("-").map(x=>parseInt(x.trim(),10))).filter(range=>range.every(x=>!isNaN(x))).map(range=>(1===range.length&&range.push(range[0]),range))}}class Record extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"record")}[$finalize](){this[$content]=this[$content].trim();var n=parseInt(this[$content],10);!isNaN(n)&&0<=n&&(this[$content]=n)}}class Relevant extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"relevant")}[$finalize](){this[$content]=this[$content].trim().split(/\s+/)}}class Rename extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"rename")}[$finalize](){this[$content]=this[$content].trim(),(this[$content].toLowerCase().startsWith("xml")||new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*","u").test(this[$content]))&&warn("XFA - Rename: invalid XFA name")}}class RenderPolicy extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"renderPolicy",["server","client"])}}class RunScripts extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"runScripts",["both","client","none","server"])}}class config_Script extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"script",!0),this.currentPage=null,this.exclude=null,this.runScripts=null}}class ScriptModel extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"scriptModel",["XFA","none"])}}class Severity extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"severity",["ignore","error","information","trace","warning"])}}class SilentPrint extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"silentPrint",!0),this.addSilentPrint=null,this.printerName=null}}class Staple extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"staple"),this.mode=getStringOption(attributes.mode,["usePrinterSetting","on","off"])}}class StartNode extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"startNode")}}class StartPage extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"startPage",0,n=>!0)}}class SubmitFormat extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"submitFormat",["html","delegate","fdf","xml","pdf"])}}class SubmitUrl extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"submitUrl")}}class SubsetBelow extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"subsetBelow",100,n=>0<=n&&n<=100)}}class SuppressBanner extends Option01{constructor(attributes){super(CONFIG_NS_ID,"suppressBanner")}}class Tagged extends Option01{constructor(attributes){super(CONFIG_NS_ID,"tagged")}}class config_Template extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"template",!0),this.base=null,this.relevant=null,this.startPage=null,this.uri=null,this.xsl=null}}class Threshold extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"threshold",["trace","error","information","warning"])}}class To extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"to",["null","memory","stderr","stdout","system","uri"])}}class TemplateCache extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"templateCache"),this.maxEntries=getInteger({data:attributes.maxEntries,defaultValue:5,validate:n=>0<=n})}}class Trace extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"trace",!0),this.area=new XFAObjectArray}}class Transform extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"transform",!0),this.groupParent=null,this.ifEmpty=null,this.nameAttr=null,this.picture=null,this.presence=null,this.rename=null,this.whitespace=null}}class Type extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"])}}class Uri extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"uri")}}class config_Validate extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"validate",["preSubmit","prePrint","preExecute","preSave"])}}class ValidateApprovalSignatures extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"validateApprovalSignatures")}[$finalize](){this[$content]=this[$content].trim().split(/\s+/).filter(x=>["docReady","postSign"].includes(x))}}class ValidationMessaging extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"])}}class Version extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"version",["1.7","1.6","1.5","1.4","1.3","1.2"])}}class VersionControl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"VersionControl"),this.outputBelow=getStringOption(attributes.outputBelow,["warn","error","update"]),this.sourceAbove=getStringOption(attributes.sourceAbove,["warn","error"]),this.sourceBelow=getStringOption(attributes.sourceBelow,["update","maintain"])}}class ViewerPreferences extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"viewerPreferences",!0),this.ADBE_JSConsole=null,this.ADBE_JSDebugger=null,this.addViewerPreferences=null,this.duplexOption=null,this.enforce=null,this.numberOfCopies=null,this.pageRange=null,this.pickTrayByPDFSize=null,this.printScaling=null}}class WebClient extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"webClient",!0),this.name=attributes.name?attributes.name.trim():"",this.fontInfo=null,this.xdc=null}}class Whitespace extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"whitespace",["preserve","ltrim","normalize","rtrim","trim"])}}class Window extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"window")}[$finalize](){var pair=this[$content].split(",",2).map(x=>parseInt(x.trim(),10));pair.some(x=>isNaN(x))?this[$content]=[0,0]:(1===pair.length&&pair.push(pair[0]),this[$content]=pair)}}class Xdc extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xdc",!0),this.uri=new XFAObjectArray,this.xsl=new XFAObjectArray}}class Xdp extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xdp",!0),this.packets=null}}class Xsl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xsl",!0),this.debug=null,this.uri=null}}class Zpl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"zpl",!0),this.name=attributes.name?attributes.name.trim():"",this.batchOutput=null,this.flipLabel=null,this.fontInfo=null,this.xdc=null}}class ConfigNamespace{static[$buildXFAObject](name,attributes){if(ConfigNamespace.hasOwnProperty(name))return ConfigNamespace[name](attributes)}static acrobat(attrs){return new Acrobat(attrs)}static acrobat7(attrs){return new Acrobat7(attrs)}static ADBE_JSConsole(attrs){return new ADBE_JSConsole(attrs)}static ADBE_JSDebugger(attrs){return new ADBE_JSDebugger(attrs)}static addSilentPrint(attrs){return new AddSilentPrint(attrs)}static addViewerPreferences(attrs){return new AddViewerPreferences(attrs)}static adjustData(attrs){return new AdjustData(attrs)}static adobeExtensionLevel(attrs){return new AdobeExtensionLevel(attrs)}static agent(attrs){return new Agent(attrs)}static alwaysEmbed(attrs){return new AlwaysEmbed(attrs)}static amd(attrs){return new Amd(attrs)}static area(attrs){return new config_Area(attrs)}static attributes(attrs){return new Attributes(attrs)}static autoSave(attrs){return new AutoSave(attrs)}static base(attrs){return new Base(attrs)}static batchOutput(attrs){return new BatchOutput(attrs)}static behaviorOverride(attrs){return new BehaviorOverride(attrs)}static cache(attrs){return new Cache(attrs)}static change(attrs){return new Change(attrs)}static common(attrs){return new Common(attrs)}static compress(attrs){return new Compress(attrs)}static compressLogicalStructure(attrs){return new CompressLogicalStructure(attrs)}static compressObjectStream(attrs){return new CompressObjectStream(attrs)}static compression(attrs){return new Compression(attrs)}static config(attrs){return new Config(attrs)}static conformance(attrs){return new Conformance(attrs)}static contentCopy(attrs){return new ContentCopy(attrs)}static copies(attrs){return new Copies(attrs)}static creator(attrs){return new Creator(attrs)}static currentPage(attrs){return new CurrentPage(attrs)}static data(attrs){return new Data(attrs)}static debug(attrs){return new Debug(attrs)}static defaultTypeface(attrs){return new DefaultTypeface(attrs)}static destination(attrs){return new Destination(attrs)}static documentAssembly(attrs){return new DocumentAssembly(attrs)}static driver(attrs){return new Driver(attrs)}static duplexOption(attrs){return new DuplexOption(attrs)}static dynamicRender(attrs){return new DynamicRender(attrs)}static embed(attrs){return new Embed(attrs)}static encrypt(attrs){return new config_Encrypt(attrs)}static encryption(attrs){return new config_Encryption(attrs)}static encryptionLevel(attrs){return new EncryptionLevel(attrs)}static enforce(attrs){return new Enforce(attrs)}static equate(attrs){return new Equate(attrs)}static equateRange(attrs){return new EquateRange(attrs)}static exclude(attrs){return new Exclude(attrs)}static excludeNS(attrs){return new ExcludeNS(attrs)}static flipLabel(attrs){return new FlipLabel(attrs)}static fontInfo(attrs){return new config_FontInfo(attrs)}static formFieldFilling(attrs){return new FormFieldFilling(attrs)}static groupParent(attrs){return new GroupParent(attrs)}static ifEmpty(attrs){return new IfEmpty(attrs)}static includeXDPContent(attrs){return new IncludeXDPContent(attrs)}static incrementalLoad(attrs){return new IncrementalLoad(attrs)}static incrementalMerge(attrs){return new IncrementalMerge(attrs)}static interactive(attrs){return new Interactive(attrs)}static jog(attrs){return new Jog(attrs)}static labelPrinter(attrs){return new LabelPrinter(attrs)}static layout(attrs){return new Layout(attrs)}static level(attrs){return new Level(attrs)}static linearized(attrs){return new Linearized(attrs)}static locale(attrs){return new Locale(attrs)}static localeSet(attrs){return new LocaleSet(attrs)}static log(attrs){return new Log(attrs)}static map(attrs){return new MapElement(attrs)}static mediumInfo(attrs){return new MediumInfo(attrs)}static message(attrs){return new config_Message(attrs)}static messaging(attrs){return new Messaging(attrs)}static mode(attrs){return new Mode(attrs)}static modifyAnnots(attrs){return new ModifyAnnots(attrs)}static msgId(attrs){return new MsgId(attrs)}static nameAttr(attrs){return new NameAttr(attrs)}static neverEmbed(attrs){return new NeverEmbed(attrs)}static numberOfCopies(attrs){return new NumberOfCopies(attrs)}static openAction(attrs){return new OpenAction(attrs)}static output(attrs){return new Output(attrs)}static outputBin(attrs){return new OutputBin(attrs)}static outputXSL(attrs){return new OutputXSL(attrs)}static overprint(attrs){return new Overprint(attrs)}static packets(attrs){return new Packets(attrs)}static pageOffset(attrs){return new PageOffset(attrs)}static pageRange(attrs){return new PageRange(attrs)}static pagination(attrs){return new Pagination(attrs)}static paginationOverride(attrs){return new PaginationOverride(attrs)}static part(attrs){return new Part(attrs)}static pcl(attrs){return new Pcl(attrs)}static pdf(attrs){return new Pdf(attrs)}static pdfa(attrs){return new Pdfa(attrs)}static permissions(attrs){return new Permissions(attrs)}static pickTrayByPDFSize(attrs){return new PickTrayByPDFSize(attrs)}static picture(attrs){return new config_Picture(attrs)}static plaintextMetadata(attrs){return new PlaintextMetadata(attrs)}static presence(attrs){return new Presence(attrs)}static present(attrs){return new Present(attrs)}static print(attrs){return new Print(attrs)}static printHighQuality(attrs){return new PrintHighQuality(attrs)}static printScaling(attrs){return new PrintScaling(attrs)}static printerName(attrs){return new PrinterName(attrs)}static producer(attrs){return new Producer(attrs)}static ps(attrs){return new Ps(attrs)}static range(attrs){return new Range(attrs)}static record(attrs){return new Record(attrs)}static relevant(attrs){return new Relevant(attrs)}static rename(attrs){return new Rename(attrs)}static renderPolicy(attrs){return new RenderPolicy(attrs)}static runScripts(attrs){return new RunScripts(attrs)}static script(attrs){return new config_Script(attrs)}static scriptModel(attrs){return new ScriptModel(attrs)}static severity(attrs){return new Severity(attrs)}static silentPrint(attrs){return new SilentPrint(attrs)}static staple(attrs){return new Staple(attrs)}static startNode(attrs){return new StartNode(attrs)}static startPage(attrs){return new StartPage(attrs)}static submitFormat(attrs){return new SubmitFormat(attrs)}static submitUrl(attrs){return new SubmitUrl(attrs)}static subsetBelow(attrs){return new SubsetBelow(attrs)}static suppressBanner(attrs){return new SuppressBanner(attrs)}static tagged(attrs){return new Tagged(attrs)}static template(attrs){return new config_Template(attrs)}static templateCache(attrs){return new TemplateCache(attrs)}static threshold(attrs){return new Threshold(attrs)}static to(attrs){return new To(attrs)}static trace(attrs){return new Trace(attrs)}static transform(attrs){return new Transform(attrs)}static type(attrs){return new Type(attrs)}static uri(attrs){return new Uri(attrs)}static validate(attrs){return new config_Validate(attrs)}static validateApprovalSignatures(attrs){return new ValidateApprovalSignatures(attrs)}static validationMessaging(attrs){return new ValidationMessaging(attrs)}static version(attrs){return new Version(attrs)}static versionControl(attrs){return new VersionControl(attrs)}static viewerPreferences(attrs){return new ViewerPreferences(attrs)}static webClient(attrs){return new WebClient(attrs)}static whitespace(attrs){return new Whitespace(attrs)}static window(attrs){return new Window(attrs)}static xdc(attrs){return new Xdc(attrs)}static xdp(attrs){return new Xdp(attrs)}static xsl(attrs){return new Xsl(attrs)}static zpl(attrs){return new Zpl(attrs)}}var CONNECTION_SET_NS_ID=NamespaceIds.connectionSet.id;class ConnectionSet extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"connectionSet",!0),this.wsdlConnection=new XFAObjectArray,this.xmlConnection=new XFAObjectArray,this.xsdConnection=new XFAObjectArray}}class EffectiveInputPolicy extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"effectiveInputPolicy"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class EffectiveOutputPolicy extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"effectiveOutputPolicy"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Operation extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"operation"),this.id=attributes.id||"",this.input=attributes.input||"",this.name=attributes.name||"",this.output=attributes.output||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class RootElement extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"rootElement"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class SoapAction extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"soapAction"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class SoapAddress extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"soapAddress"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class connection_set_Uri extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"uri"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class WsdlAddress extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"wsdlAddress"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class WsdlConnection extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"wsdlConnection",!0),this.dataDescription=attributes.dataDescription||"",this.name=attributes.name||"",this.effectiveInputPolicy=null,this.effectiveOutputPolicy=null,this.operation=null,this.soapAction=null,this.soapAddress=null,this.wsdlAddress=null}}class XmlConnection extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"xmlConnection",!0),this.dataDescription=attributes.dataDescription||"",this.name=attributes.name||"",this.uri=null}}class XsdConnection extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"xsdConnection",!0),this.dataDescription=attributes.dataDescription||"",this.name=attributes.name||"",this.rootElement=null,this.uri=null}}class ConnectionSetNamespace{static[$buildXFAObject](name,attributes){if(ConnectionSetNamespace.hasOwnProperty(name))return ConnectionSetNamespace[name](attributes)}static connectionSet(attrs){return new ConnectionSet(attrs)}static effectiveInputPolicy(attrs){return new EffectiveInputPolicy(attrs)}static effectiveOutputPolicy(attrs){return new EffectiveOutputPolicy(attrs)}static operation(attrs){return new Operation(attrs)}static rootElement(attrs){return new RootElement(attrs)}static soapAction(attrs){return new SoapAction(attrs)}static soapAddress(attrs){return new SoapAddress(attrs)}static uri(attrs){return new connection_set_Uri(attrs)}static wsdlAddress(attrs){return new WsdlAddress(attrs)}static wsdlConnection(attrs){return new WsdlConnection(attrs)}static xmlConnection(attrs){return new XmlConnection(attrs)}static xsdConnection(attrs){return new XsdConnection(attrs)}}var DATASETS_NS_ID=NamespaceIds.datasets.id;class datasets_Data extends XmlObject{constructor(attributes){super(DATASETS_NS_ID,"data",attributes)}[$isNsAgnostic](){return!0}}class Datasets extends XFAObject{constructor(attributes){super(DATASETS_NS_ID,"datasets",!0),this.data=null,this.Signature=null}[$onChild](child){var name=child[$nodeName];("data"===name&&child[$namespaceId]===DATASETS_NS_ID||"Signature"===name&&child[$namespaceId]===NamespaceIds.signature.id)&&(this[name]=child),this[$appendChild](child)}}class DatasetsNamespace{static[$buildXFAObject](name,attributes){if(DatasetsNamespace.hasOwnProperty(name))return DatasetsNamespace[name](attributes)}static datasets(attributes){return new Datasets(attributes)}static data(attributes){return new datasets_Data(attributes)}}var LOCALE_SET_NS_ID=NamespaceIds.localeSet.id;class CalendarSymbols extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"calendarSymbols",!0),this.name="gregorian",this.dayNames=new XFAObjectArray(2),this.eraNames=null,this.meridiemNames=null,this.monthNames=new XFAObjectArray(2)}}class CurrencySymbol extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"currencySymbol"),this.name=getStringOption(attributes.name,["symbol","isoname","decimal"])}}class CurrencySymbols extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"currencySymbols",!0),this.currencySymbol=new XFAObjectArray(3)}}class DatePattern extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"datePattern"),this.name=getStringOption(attributes.name,["full","long","med","short"])}}class DatePatterns extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"datePatterns",!0),this.datePattern=new XFAObjectArray(4)}}class DateTimeSymbols extends ContentObject{constructor(attributes){super(LOCALE_SET_NS_ID,"dateTimeSymbols")}}class Day extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"day")}}class DayNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"dayNames",!0),this.abbr=getInteger({data:attributes.abbr,defaultValue:0,validate:x=>1===x}),this.day=new XFAObjectArray(7)}}class Era extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"era")}}class EraNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"eraNames",!0),this.era=new XFAObjectArray(2)}}class locale_set_Locale extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"locale",!0),this.desc=attributes.desc||"",this.name="isoname",this.calendarSymbols=null,this.currencySymbols=null,this.datePatterns=null,this.dateTimeSymbols=null,this.numberPatterns=null,this.numberSymbols=null,this.timePatterns=null,this.typeFaces=null}}class locale_set_LocaleSet extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"localeSet",!0),this.locale=new XFAObjectArray}}class Meridiem extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"meridiem")}}class MeridiemNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"meridiemNames",!0),this.meridiem=new XFAObjectArray(2)}}class Month extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"month")}}class MonthNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"monthNames",!0),this.abbr=getInteger({data:attributes.abbr,defaultValue:0,validate:x=>1===x}),this.month=new XFAObjectArray(12)}}class NumberPattern extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberPattern"),this.name=getStringOption(attributes.name,["full","long","med","short"])}}class NumberPatterns extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberPatterns",!0),this.numberPattern=new XFAObjectArray(4)}}class NumberSymbol extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberSymbol"),this.name=getStringOption(attributes.name,["decimal","grouping","percent","minus","zero"])}}class NumberSymbols extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberSymbols",!0),this.numberSymbol=new XFAObjectArray(5)}}class TimePattern extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"timePattern"),this.name=getStringOption(attributes.name,["full","long","med","short"])}}class TimePatterns extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"timePatterns",!0),this.timePattern=new XFAObjectArray(4)}}class TypeFace extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"typeFace",!0),this.name=""|attributes.name}}class TypeFaces extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"typeFaces",!0),this.typeFace=new XFAObjectArray}}class LocaleSetNamespace{static[$buildXFAObject](name,attributes){if(LocaleSetNamespace.hasOwnProperty(name))return LocaleSetNamespace[name](attributes)}static calendarSymbols(attrs){return new CalendarSymbols(attrs)}static currencySymbol(attrs){return new CurrencySymbol(attrs)}static currencySymbols(attrs){return new CurrencySymbols(attrs)}static datePattern(attrs){return new DatePattern(attrs)}static datePatterns(attrs){return new DatePatterns(attrs)}static dateTimeSymbols(attrs){return new DateTimeSymbols(attrs)}static day(attrs){return new Day(attrs)}static dayNames(attrs){return new DayNames(attrs)}static era(attrs){return new Era(attrs)}static eraNames(attrs){return new EraNames(attrs)}static locale(attrs){return new locale_set_Locale(attrs)}static localeSet(attrs){return new locale_set_LocaleSet(attrs)}static meridiem(attrs){return new Meridiem(attrs)}static meridiemNames(attrs){return new MeridiemNames(attrs)}static month(attrs){return new Month(attrs)}static monthNames(attrs){return new MonthNames(attrs)}static numberPattern(attrs){return new NumberPattern(attrs)}static numberPatterns(attrs){return new NumberPatterns(attrs)}static numberSymbol(attrs){return new NumberSymbol(attrs)}static numberSymbols(attrs){return new NumberSymbols(attrs)}static timePattern(attrs){return new TimePattern(attrs)}static timePatterns(attrs){return new TimePatterns(attrs)}static typeFace(attrs){return new TypeFace(attrs)}static typeFaces(attrs){return new TypeFaces(attrs)}}var SIGNATURE_NS_ID=NamespaceIds.signature.id;class signature_Signature extends XFAObject{constructor(attributes){super(SIGNATURE_NS_ID,"signature",!0)}}class SignatureNamespace{static[$buildXFAObject](name,attributes){if(SignatureNamespace.hasOwnProperty(name))return SignatureNamespace[name](attributes)}static signature(attributes){return new signature_Signature(attributes)}}var STYLESHEET_NS_ID=NamespaceIds.stylesheet.id;class Stylesheet extends XFAObject{constructor(attributes){super(STYLESHEET_NS_ID,"stylesheet",!0)}}class StylesheetNamespace{static[$buildXFAObject](name,attributes){if(StylesheetNamespace.hasOwnProperty(name))return StylesheetNamespace[name](attributes)}static stylesheet(attributes){return new Stylesheet(attributes)}}var XDP_NS_ID=NamespaceIds.xdp.id;class xdp_Xdp extends XFAObject{constructor(attributes){super(XDP_NS_ID,"xdp",!0),this.uuid=attributes.uuid||"",this.timeStamp=attributes.timeStamp||"",this.config=null,this.connectionSet=null,this.datasets=null,this.localeSet=null,this.stylesheet=new XFAObjectArray,this.template=null}[$onChildCheck](child){var ns=NamespaceIds[child[$nodeName]];return ns&&child[$namespaceId]===ns.id}}class XdpNamespace{static[$buildXFAObject](name,attributes){if(XdpNamespace.hasOwnProperty(name))return XdpNamespace[name](attributes)}static xdp(attributes){return new xdp_Xdp(attributes)}}var XHTML_NS_ID=NamespaceIds.xhtml.id,$richText=Symbol(),VALID_STYLES=new Set(["color","font","font-family","font-size","font-stretch","font-style","font-weight","margin","margin-bottom","margin-left","margin-right","margin-top","letter-spacing","line-height","orphans","page-break-after","page-break-before","page-break-inside","tab-interval","tab-stop","text-align","text-decoration","text-indent","vertical-align","widows","kerning-mode","xfa-font-horizontal-scale","xfa-font-vertical-scale","xfa-spacerun","xfa-tab-stops"]),StyleMapping=new Map([["page-break-after","breakAfter"],["page-break-before","breakBefore"],["page-break-inside","breakInside"],["kerning-mode",value=>"none"===value?"none":"normal"],["xfa-font-horizontal-scale",value=>"scaleX(".concat(Math.max(0,parseInt(value)/100).toFixed(2),")")],["xfa-font-vertical-scale",value=>"scaleY(".concat(Math.max(0,parseInt(value)/100).toFixed(2),")")],["xfa-spacerun",""],["xfa-tab-stops",""],["font-size",(value,original)=>measureToString(.99*(value=original.fontSize=Math.abs(getMeasurement(value))))],["letter-spacing",value=>measureToString(getMeasurement(value))],["line-height",value=>measureToString(getMeasurement(value))],["margin",value=>measureToString(getMeasurement(value))],["margin-bottom",value=>measureToString(getMeasurement(value))],["margin-left",value=>measureToString(getMeasurement(value))],["margin-right",value=>measureToString(getMeasurement(value))],["margin-top",value=>measureToString(getMeasurement(value))],["text-indent",value=>measureToString(getMeasurement(value))],["font-family",value=>value],["vertical-align",value=>measureToString(getMeasurement(value))]]),spacesRegExp=/\s+/g,crlfRegExp=/[\r\n]+/g,crlfForRichTextRegExp=/\r\n?/g;function mapStyle(styleStr,node,richText){var style=Object.create(null);if(styleStr){var key,value,original=Object.create(null);for([key,value]of styleStr.split(";").map(s=>s.split(":",2))){var newValue,mapping=StyleMapping.get(key);""!==mapping&&(newValue=value,mapping&&(newValue="string"==typeof mapping?mapping:mapping(value,original)),key.endsWith("scale")?style.transform=style.transform?"".concat(style[key]," ").concat(newValue):newValue:style[key.replaceAll(/-([a-zA-Z])/g,(_,x)=>x.toUpperCase())]=newValue)}style.fontFamily&&setFontFamily({typeface:style.fontFamily,weight:style.fontWeight||"normal",posture:style.fontStyle||"normal",size:original.fontSize||0},node,node[$globalData].fontFinder,style),richText&&style.verticalAlign&&"0px"!==style.verticalAlign&&style.fontSize&&(styleStr=getMeasurement(style.fontSize),style.fontSize=measureToString(.583*styleStr),style.verticalAlign=measureToString(Math.sign(getMeasurement(style.verticalAlign))*styleStr*.333)),richText&&style.fontSize&&(style.fontSize="calc(".concat(style.fontSize," * var(--total-scale-factor))")),fixTextIndent(style)}return style}function checkStyle(node){return node.style?node.style.split(";").filter(s=>!!s.trim()).map(s=>s.split(":",2).map(t=>t.trim())).filter(_ref63=>{var[_ref63,value]=_ref63;return"font-family"===_ref63&&node[$globalData].usedTypefaces.add(value),VALID_STYLES.has(_ref63)}).map(kv=>kv.join(":")).join(";"):""}var NoWhites=new Set(["body","html"]);class XhtmlObject extends XmlObject{constructor(attributes,name){super(XHTML_NS_ID,name),this[$richText]=!1,this.style=attributes.style||""}[$clean](builder){super[$clean](builder),this.style=checkStyle(this)}[$acceptWhitespace](){return!NoWhites.has(this[$nodeName])}[$onText](str){1s.split(":",2)))switch(key){case"font-family":xfaFont.typeface=stripQuotes(value);break;case"font-size":xfaFont.size=getMeasurement(value);break;case"font-weight":xfaFont.weight=value;break;case"font-style":xfaFont.posture=value;break;case"letter-spacing":xfaFont.letterSpacing=getMeasurement(value);break;case"margin":var values=value.split(/ \t/).map(x=>getMeasurement(x));switch(values.length){case 1:margin.top=margin.bottom=margin.left=margin.right=values[0];break;case 2:margin.top=margin.bottom=values[0],margin.left=margin.right=values[1];break;case 3:margin.top=values[0],margin.bottom=values[2],margin.left=margin.right=values[1];break;case 4:margin.top=values[0],margin.left=values[1],margin.bottom=values[2],margin.right=values[3]}break;case"margin-top":margin.top=getMeasurement(value);break;case"margin-bottom":margin.bottom=getMeasurement(value);break;case"margin-left":margin.left=getMeasurement(value);break;case"margin-right":margin.right=getMeasurement(value);break;case"line-height":lineHeight=getMeasurement(value)}if(measure.pushData(xfaFont,margin,lineHeight),this[$content])measure.addString(this[$content]);else for(var child of this[$getChildren]())"#text"===child[$nodeName]?measure.addString(child[$content]):child[$pushGlyphs](measure);mustPop&&measure.popFont()}[$toHTML](availableSpace){var value,children=[];return this[$extra]={children:children},this[$childrenToHTML]({}),0!==children.length||this[$content]?(value=this[$richText]?this[$content]?this[$content].replaceAll(crlfForRichTextRegExp,"\n"):void 0:this[$content]||void 0,HTMLResult.success({name:this[$nodeName],attributes:{href:this.href,style:mapStyle(this.style,this,this[$richText])},children:children,value:value})):HTMLResult.EMPTY}}class A extends XhtmlObject{constructor(attributes){super(attributes,"a"),this.href=fixURL(attributes.href)||""}}class B extends XhtmlObject{constructor(attributes){super(attributes,"b")}[$pushGlyphs](measure){measure.pushFont({weight:"bold"}),super[$pushGlyphs](measure),measure.popFont()}}class Body extends XhtmlObject{constructor(attributes){super(attributes,"body")}[$toHTML](availableSpace){var availableSpace=super[$toHTML](availableSpace),html=availableSpace["html"];return html?(html.name="div",html.attributes.class=["xfaRich"],availableSpace):HTMLResult.EMPTY}}class Br extends XhtmlObject{constructor(attributes){super(attributes,"br")}[$text](){return"\n"}[$pushGlyphs](measure){measure.addString("\n")}[$toHTML](availableSpace){return HTMLResult.success({name:"br"})}}class Html extends XhtmlObject{constructor(attributes){super(attributes,"html")}[$toHTML](availableSpace){var children=[];if(this[$extra]={children:children},this[$childrenToHTML]({}),0===children.length)return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[$content]||""});if(1===children.length){var _child$attributes,child=children[0];if(null!=(_child$attributes=child.attributes)&&_child$attributes.class.includes("xfaRich"))return HTMLResult.success(child)}return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},children:children})}}class I extends XhtmlObject{constructor(attributes){super(attributes,"i")}[$pushGlyphs](measure){measure.pushFont({posture:"italic"}),super[$pushGlyphs](measure),measure.popFont()}}class Li extends XhtmlObject{constructor(attributes){super(attributes,"li")}}class Ol extends XhtmlObject{constructor(attributes){super(attributes,"ol")}}class P extends XhtmlObject{constructor(attributes){super(attributes,"p")}[$pushGlyphs](measure){super[$pushGlyphs](measure,!1),measure.addString("\n"),measure.addPara(),measure.popFont()}[$text](){return this[$getParent]()[$getChildren]().at(-1)===this?super[$text]():super[$text]()+"\n"}}class Span extends XhtmlObject{constructor(attributes){super(attributes,"span")}}class Sub extends XhtmlObject{constructor(attributes){super(attributes,"sub")}}class Sup extends XhtmlObject{constructor(attributes){super(attributes,"sup")}}class Ul extends XhtmlObject{constructor(attributes){super(attributes,"ul")}}class XhtmlNamespace{static[$buildXFAObject](name,attributes){if(XhtmlNamespace.hasOwnProperty(name))return XhtmlNamespace[name](attributes)}static a(attributes){return new A(attributes)}static b(attributes){return new B(attributes)}static body(attributes){return new Body(attributes)}static br(attributes){return new Br(attributes)}static html(attributes){return new Html(attributes)}static i(attributes){return new I(attributes)}static li(attributes){return new Li(attributes)}static ol(attributes){return new Ol(attributes)}static p(attributes){return new P(attributes)}static span(attributes){return new Span(attributes)}static sub(attributes){return new Sub(attributes)}static sup(attributes){return new Sup(attributes)}static ul(attributes){return new Ul(attributes)}}var NamespaceSetUp={config:ConfigNamespace,connection:ConnectionSetNamespace,datasets:DatasetsNamespace,localeSet:LocaleSetNamespace,signature:SignatureNamespace,stylesheet:StylesheetNamespace,template:TemplateNamespace,xdp:XdpNamespace,xhtml:XhtmlNamespace};class UnknownNamespace{constructor(nsId){this.namespaceId=nsId}[$buildXFAObject](name,attributes){return new XmlObject(this.namespaceId,name,attributes)}}class Root extends XFAObject{constructor(ids){super(-1,"root",Object.create(null)),this.element=null,this[$ids]=ids}[$onChild](child){return this.element=child,!0}[$finalize](){super[$finalize](),this.element.template instanceof Template&&(this[$ids].set($root,this.element),this.element.template[$resolvePrototypes](this[$ids]),this.element.template[$ids]=this[$ids])}}class Empty extends XFAObject{constructor(){super(-1,"",Object.create(null))}[$onChild](_){return!1}}class Builder{constructor(){var rootNameSpace=0{_ref64=_ref64.id;return _ref64})),this._currentNamespace=rootNameSpace||new UnknownNamespace(++this._nextNsId)}buildRoot(ids){return new Root(ids)}build(_ref65){var{nsPrefix:_ref65,name,attributes,namespace,prefixes}=_ref65,hasNamespaceDef=null!==namespace;if(hasNamespaceDef&&(this._namespaceStack.push(this._currentNamespace),this._currentNamespace=this._searchNamespace(namespace)),prefixes&&this._addNamespacePrefix(prefixes),attributes.hasOwnProperty($nsAttributes)){var ns,attrs,dataTemplate=NamespaceSetUp.datasets,namespace=attributes[$nsAttributes],xfaAttrs=null;for([ns,attrs]of Object.entries(namespace))if(this._getNamespaceToUse(ns)===dataTemplate){xfaAttrs={xfa:attrs};break}xfaAttrs?attributes[$nsAttributes]=xfaAttrs:delete attributes[$nsAttributes]}namespace=this._getNamespaceToUse(_ref65),_ref65=(null==namespace?void 0:namespace[$buildXFAObject](name,attributes))||new Empty;return _ref65[$isNsAgnostic]()&&this._nsAgnosticLevel++,(hasNamespaceDef||prefixes||_ref65[$isNsAgnostic]())&&(_ref65[$cleanup]={hasNamespace:hasNamespaceDef,prefixes:prefixes,nsAgnostic:_ref65[$isNsAgnostic]()}),_ref65}isNsAgnostic(){return 0{_ref66=_ref66.prefix;this._namespacePrefixes.get(_ref66).pop()}),nsAgnostic&&this._nsAgnosticLevel--}}class XFAParser extends XMLParserBase{constructor(){var rootNameSpace=0match.slice(1)+" "),this._richText||this._current[$acceptWhitespace]()?this._current[$onText](text,this._richText):this._whiteRegex.test(text)||this._current[$onText](text.trim())}onCdata(text){this._current[$onText](text)}_mkAttributes(attributes,tagName){var name,value,prefix,_attributeObj$$nsAttr,ns,attrName,namespace=null,prefixes=null,attributeObj=Object.create({});for({name,value}of attributes)"xmlns"===name?namespace?warn("XFA - multiple namespace definition in <".concat(tagName,">")):namespace=value:name.startsWith("xmlns:")?(prefix=name.substring("xmlns:".length),(prefixes=null!=prefixes?prefixes:[]).push({prefix:prefix,value:value})):-1===(prefix=name.indexOf(":"))?attributeObj[name]=value:(_attributeObj$$nsAttr=null!=(_attributeObj$$nsAttr=attributeObj[$nsAttributes])?_attributeObj$$nsAttr:attributeObj[$nsAttributes]=Object.create(null),[ns,attrName]=[name.slice(0,prefix),name.slice(prefix+1)],(_attributeObj$$nsAttr[ns]||(_attributeObj$$nsAttr[ns]=Object.create(null)))[attrName]=value);return[namespace,prefixes,attributeObj]}_getNameAndPrefix(name,nsAgnostic){var i=name.indexOf(":");return-1===i?[name,null]:[name.substring(i+1),nsAgnostic?"":name.substring(0,i)]}onBeginElement(tagName,attributes,isEmpty){var[attributes,prefixes,attributesObj]=this._mkAttributes(attributes,tagName),[tagName,nsPrefix]=this._getNameAndPrefix(tagName,this._builder.isNsAgnostic()),nsPrefix=this._builder.build({nsPrefix:nsPrefix,name:tagName,attributes:attributesObj,namespace:attributes,prefixes:prefixes});nsPrefix[$globalData]=this._globalData,isEmpty?(nsPrefix[$finalize](),this._current[$onChild](nsPrefix)&&nsPrefix[$setId](this._ids),nsPrefix[$clean](this._builder)):(this._stack.push(this._current),this._current=nsPrefix)}onEndElement(name){var parser,node=this._current;node[$isCDATAXml]()&&"string"==typeof node[$content]&&((parser=new XFAParser)._globalData=this._globalData,parser=parser.parse(node[$content]),node[$content]=null,node[$onChild](parser)),node[$finalize](),this._current=this._stack.pop(),this._current[$onChild](node)&&node[$setId](this._ids),node[$clean](this._builder)}onError(code){this._errorCode=code}}class XFAFactory{constructor(data){try{this.root=(new XFAParser).parse(XFAFactory._createDocument(data));var binder=new Binder(this.root);this.form=binder.bind(),this.dataHandler=new DataHandler(this.root,binder.getData()),this.form[$globalData].template=this.form}catch(e){warn("XFA - an error occurred during parsing and binding: ".concat(e))}}isValid(){return!(!this.root||!this.form)}_createPagesHelper(){var iterator=this.form[$toPages]();return new Promise((resolve,reject)=>{var nextIteration=()=>{try{var value=iterator.next();value.done?resolve(value.value):setTimeout(nextIteration,0)}catch(e){reject(e)}};setTimeout(nextIteration,0)})}async _createPages(){try{this.pages=await this._createPagesHelper(),this.dims=this.pages.children.map(c=>{var{width:c,height}=c.attributes.style;return[0,0,parseInt(c),parseInt(height)]})}catch(e){warn("XFA - an error occurred during layout: ".concat(e))}}getBoundingBox(pageIndex){return this.dims[pageIndex]}async getNumPages(){return this.pages||await this._createPages(),this.dims.length}setImages(images){this.form[$globalData].images=images}setFonts(fonts){this.form[$globalData].fontFinder=new FontFinder(fonts);var missingFonts=[];for(typeface of this.form[$globalData].usedTypefaces){var typeface=stripQuotes(typeface);this.form[$globalData].fontFinder.find(typeface)||missingFonts.push(typeface)}return 0!attr.startsWith("xfa"))),attributes.dir="auto"),{html:html,str:root[$text]()}):null}catch(e){warn("XFA - an error occurred during parsing of rich text: ".concat(e))}return null}}class AnnotationFactory{static createGlobals(pdfManager){return Promise.all([pdfManager.ensureCatalog("acroForm"),pdfManager.ensureDoc("xfaDatasets"),pdfManager.ensureCatalog("structTreeRoot"),pdfManager.ensureCatalog("baseUrl"),pdfManager.ensureCatalog("attachments"),pdfManager.ensureCatalog("globalColorSpaceCache")]).then(_ref67=>{var[_ref67,xfaDatasets,structTreeRoot,baseUrl,attachments,globalColorSpaceCache]=_ref67;return{pdfManager:pdfManager,acroForm:_ref67 instanceof Dict?_ref67:Dict.empty,xfaDatasets:xfaDatasets,structTreeRoot:structTreeRoot,baseUrl:baseUrl,attachments:attachments,globalColorSpaceCache:globalColorSpaceCache}},reason=>(warn('createGlobals: "'.concat(reason,'".')),null))}static async create(xref,ref,annotationGlobals,idFactory,collectFields,orphanFields,pageRef){var pageIndex=collectFields?await this._getPageIndex(xref,ref,annotationGlobals.pdfManager):null;return annotationGlobals.pdfManager.ensure(this,"_create",[xref,ref,annotationGlobals,idFactory,collectFields,orphanFields,pageIndex,pageRef])}static _create(xref,ref,annotationGlobals,idFactory){var collectFields=4c/255)}function getQuadPoints(dict,rect){var quadPoints=dict.getArray("QuadPoints");if(!isNumberArray(quadPoints,null)||0===quadPoints.length||0rect[2]||x2rect[3]))return null;newQuadPoints.set([minX,x3,x1,x3,minX,x2,x1,x2],i)}return newQuadPoints}function getTransformMatrix(rect,bbox,matrix){var minMax=new Float32Array([1/0,1/0,-1/0,-1/0]),[bbox,matrix,minMax,maxY]=(Util.axialAlignedBoundingBox(bbox,matrix,minMax),minMax);return bbox===minMax||matrix===maxY?[1,0,0,1,rect[0],rect[1]]:[minMax=(rect[2]-rect[0])/(minMax-bbox),0,0,maxY=(rect[3]-rect[1])/(maxY-matrix),rect[0]-bbox*minMax,rect[1]-matrix*maxY]}class Annotation{constructor(params){var{dict,xref,annotationGlobals,ref,orphanFields}=params,orphanFields=null==orphanFields?void 0:orphanFields.get(ref),ref=(orphanFields&&dict.set("Parent",orphanFields),this.setTitle(dict.get("T")),this.setContents(dict.get("Contents")),this.setModificationDate(dict.get("M")),this.setFlags(dict.get("F")),this.setRectangle(dict.getArray("Rect")),this.setColor(dict.getArray("C")),this.setBorderStyle(dict),this.setAppearance(dict),this.setOptionalContent(dict),dict.get("MK")),orphanFields=(this.setBorderAndBackgroundColors(ref),this.setRotation(ref,dict),this.ref=params.ref instanceof Ref?params.ref:null,this._streams=[],this.appearance&&this._streams.push(this.appearance),!!(this.flags&AnnotationFlag.LOCKED)),ref=!!(this.flags&AnnotationFlag.LOCKEDCONTENTS);if(this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,rotation:this.rotation,contentsObj:this._contents,hasAppearance:!!this.appearance,id:params.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:params.subtype,hasOwnCanvas:!1,noRotate:!!(this.flags&AnnotationFlag.NOROTATE),noHTML:orphanFields&&ref,isEditable:!1,structParent:-1},annotationGlobals.structTreeRoot&&(orphanFields=dict.get("StructParent"),this.data.structParent=orphanFields=Number.isInteger(orphanFields)&&0<=orphanFields?orphanFields:-1,annotationGlobals.structTreeRoot.addAnnotationIdToPage(params.pageRef,orphanFields)),params.collectFields){ref=dict.get("Kids");if(Array.isArray(ref)){var kid,kidIds=[];for(kid of ref)kid instanceof Ref&&kidIds.push(kid.toString());0!==kidIds.length&&(this.data.kidIds=kidIds)}this.data.actions=collectActions(xref,dict,AnnotationActionEventType),this.data.fieldName=this._constructFieldName(dict),this.data.pageIndex=params.pageIndex}annotationGlobals=dict.get("IT");annotationGlobals instanceof Name&&(this.data.it=annotationGlobals.name),this._isOffscreenCanvasSupported=params.evaluatorOptions.isOffscreenCanvasSupported,this._fallbackFontDict=null,this._needAppearances=!1}_hasFlag(flags,flag){return!!(flags&flag)}_buildFlags(noView,noPrint){var flags=this["flags"];return void 0===noView?void 0===noPrint?void 0:noPrint?flags&~AnnotationFlag.PRINT:flags&~AnnotationFlag.HIDDEN|AnnotationFlag.PRINT:noView?(flags|=AnnotationFlag.PRINT,noPrint?flags&~AnnotationFlag.NOVIEW|AnnotationFlag.HIDDEN:flags&~AnnotationFlag.HIDDEN|AnnotationFlag.NOVIEW):(flags&=~(AnnotationFlag.HIDDEN|AnnotationFlag.NOVIEW),noPrint?flags&~AnnotationFlag.PRINT:flags|AnnotationFlag.PRINT)}_isViewable(flags){return!this._hasFlag(flags,AnnotationFlag.INVISIBLE)&&!this._hasFlag(flags,AnnotationFlag.NOVIEW)}_isPrintable(flags){return this._hasFlag(flags,AnnotationFlag.PRINT)&&!this._hasFlag(flags,AnnotationFlag.HIDDEN)&&!this._hasFlag(flags,AnnotationFlag.INVISIBLE)}mustBeViewed(annotationStorage,_renderForms){annotationStorage=null==annotationStorage||null==(annotationStorage=annotationStorage.get(this.data.id))?void 0:annotationStorage.noView;return void 0!==annotationStorage?!annotationStorage:this.viewable&&!this._hasFlag(this.flags,AnnotationFlag.HIDDEN)}mustBePrinted(annotationStorage){annotationStorage=null==annotationStorage||null==(annotationStorage=annotationStorage.get(this.data.id))?void 0:annotationStorage.noPrint;return void 0!==annotationStorage?!annotationStorage:this.printable}mustBeViewedWhenEditing(isEditing){var modifiedIds=1"string"==typeof item).map(item=>stringToPDFString(item)):formValue instanceof Name?stringToPDFString(formValue.name):"string"==typeof formValue?stringToPDFString(formValue):null}hasFieldFlag(flag){return!!(this.data.fieldFlags&flag)}_isViewable(flags){return!0}mustBeViewed(annotationStorage,renderForms){return renderForms?this.viewable:super.mustBeViewed(annotationStorage,renderForms)&&!this._hasFlag(this.flags,AnnotationFlag.NOVIEW)}getRotationMatrix(annotationStorage){annotationStorage=null==annotationStorage||null==(annotationStorage=annotationStorage.get(this.data.id))?void 0:annotationStorage.rotation;return 0===(annotationStorage=void 0===annotationStorage?this.rotation:annotationStorage)?IDENTITY_MATRIX:getRotationMatrix(annotationStorage,this.width,this.height)}getBorderAndBackgroundAppearances(annotationStorage){var str,borderWidth,annotationStorage=null==annotationStorage||null==(annotationStorage=annotationStorage.get(this.data.id))?void 0:annotationStorage.rotation;return void 0===annotationStorage&&(annotationStorage=this.rotation),this.backgroundColor||this.borderColor?(annotationStorage=0===annotationStorage||180===annotationStorage?"0 0 ".concat(this.width," ").concat(this.height," re"):"0 0 ".concat(this.height," ").concat(this.width," re"),str="",this.backgroundColor&&(str="".concat(getPdfColor(this.backgroundColor,!0)," ").concat(annotationStorage," f ")),this.borderColor&&(borderWidth=this.borderStyle.width||1,str+="".concat(borderWidth," w ").concat(getPdfColor(this.borderColor,!1)," ").concat(annotationStorage," S ")),str):""}async getOperatorList(evaluator,task,intent,annotationStorage){var content,opList,optionalContent,bbox;return!(intent&RenderingIntentFlag.ANNOTATIONS_FORMS)||this instanceof SignatureWidgetAnnotation||this.data.noHTML||this.data.hasOwnCanvas?!this._hasText||(content=await this._getAppearance(evaluator,task,intent,annotationStorage),this.appearance&&null===content)?super.getOperatorList(evaluator,task,intent,annotationStorage):(opList=new OperatorList,this._defaultAppearance&&null!==content?(intent=!!(this.data.hasOwnCanvas&&intent&RenderingIntentFlag.DISPLAY),bbox=[0,0,this.width,this.height],bbox=getTransformMatrix(this.data.rect,bbox,[1,0,0,1,0,0]),void 0!==(optionalContent=this.oc?await evaluator.parseMarkedContentProps(this.oc,null):optionalContent)&&opList.addOp(OPS.beginMarkedContentProps,["OC",optionalContent]),opList.addOp(OPS.beginAnnotation,[this.data.id,this.data.rect,bbox,this.getRotationMatrix(annotationStorage),intent]),bbox=new StringStream(content),await evaluator.getOperatorList({stream:bbox,task:task,resources:this._fieldResources.mergedResources,operatorList:opList}),opList.addOp(OPS.endAnnotation,[]),void 0!==optionalContent&&opList.addOp(OPS.endMarkedContent,[]),{opList:opList,separateForm:!1,separateCanvas:intent}):{opList:opList,separateForm:!1,separateCanvas:!1}):{opList:new OperatorList,separateForm:!0,separateCanvas:!1}}_getMKDict(rotation){var mk=new Dict(null);return rotation&&mk.set("R",rotation),this.borderColor&&mk.set("BC",getPdfColorArray(this.borderColor)),this.backgroundColor&&mk.set("BG",getPdfColorArray(this.backgroundColor)),0{_ref69=_ref69.exportValue;return value===_ref69}),value=(null==option?void 0:option.displayValue)||value),""===value)return"/Tx BMC q ".concat(storageEntry,"Q EMC");void 0===rotation&&(rotation=this.rotation);var lines,defaultAppearance,fontSize,lineHeight,line,option=-1,{width:totalWidth,height:totalHeight}=(this.data.multiLine?option=(lines=value.split(/\r\n?|\n/).map(line=>line.normalize("NFC"))).length:lines=[value.replace(/\r\n?|\n/,"").normalize("NFC")],this),font=(90!==rotation&&270!==rotation||([totalWidth,totalHeight]=[totalHeight,totalWidth]),this._defaultAppearance||(this.data.defaultAppearanceData=parseDefaultAppearance(this._defaultAppearance="/Helvetica 0 Tf 0 g")),await WidgetAnnotation._getFontData(evaluator,task,this.data.defaultAppearanceData,this._fieldResources.mergedResources)),encodedLines=[],encodingError=!1;for(line of lines){var encodedString=font.encodeString(line);1g.width))/1e3}_computeFontSize(height,width,text,font,lineCount){var fontSize=this.data.defaultAppearanceData["fontSize"],lineHeight=(fontSize||12)*LINE_FACTOR,numberOfLines=Math.round(height/lineHeight);if(!fontSize){var roundWithTwoDigits=x=>Math.floor(100*x)/100;if(-1===lineCount)lineHeight=this._getTextWidth(text,font),fontSize=roundWithTwoDigits(Math.min(height/LINE_FACTOR,width/lineHeight)),numberOfLines=1;else{var line,lineHeight=text.split(/\r\n?|\n/),cachedLines=[];for(line of lineHeight){var encoded=font.encodeString(line).join(""),glyphs=font.charsToGlyphs(encoded),positions=font.getCharPositions(encoded);cachedLines.push({line:encoded,glyphs:glyphs,positions:positions})}var isTooBig=fsize=>{var cache,totalHeight=0;for(cache of cachedLines)if(totalHeight+=this._splitLine(null,font,fsize,width,cache).length*fsize,heightp1?"\\".concat(p1):"\\s+"),new RegExp("^\\s*".concat(viewBox,"\\s*$")).test(this.data.fieldValue))&&(this.data.textContent=this.data.fieldValue.split("\n"))}getFieldObject(){return{id:this.data.id,value:this.data.fieldValue,defaultValue:this.data.defaultFieldValue||"",multiline:this.data.multiLine,password:this.data.password,charLimit:this.data.maxLen,comb:this.data.comb,editable:!this.data.readOnly,hidden:this.data.hidden,name:this.data.fieldName,rect:this.data.rect,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:"text"}}}class ButtonWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params),this.checkedAppearance=null,this.uncheckedAppearance=null;var isRadio=this.hasFieldFlag(AnnotationFieldFlag.RADIO),isPushButton=this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);this.data.checkBox=!isRadio&&!isPushButton,this.data.radioButton=isRadio&&!isPushButton,this.data.pushButton=isPushButton,this.data.isTooltipOnly=!1,this.data.checkBox?this._processCheckBox(params):this.data.radioButton?this._processRadioButton(params):this.data.pushButton?(this.data.hasOwnCanvas=!0,this.data.noHTML=!1,this._processPushButton(params)):warn("Invalid field flags for button widget annotation")}async getOperatorList(evaluator,task,intent,annotationStorage){var storageEntry,value,savedMatrix,rotation;return this.data.pushButton?super.getOperatorList(evaluator,task,intent,!1,annotationStorage):(rotation=value=null,annotationStorage&&(value=(storageEntry=annotationStorage.get(this.data.id))?storageEntry.value:null,rotation=storageEntry?storageEntry.rotation:null),null===value&&this.appearance?super.getOperatorList(evaluator,task,intent,annotationStorage):(storageEntry=(value=null==value?this.data.checkBox?this.data.fieldValue===this.data.exportValue:this.data.fieldValue===this.data.buttonValue:value)?this.checkedAppearance:this.uncheckedAppearance)?(value=this.appearance,savedMatrix=lookupMatrix(storageEntry.dict.getArray("Matrix"),IDENTITY_MATRIX),rotation&&storageEntry.dict.set("Matrix",this.getRotationMatrix(annotationStorage)),this.appearance=storageEntry,rotation=super.getOperatorList(evaluator,task,intent,annotationStorage),this.appearance=value,storageEntry.dict.set("Matrix",savedMatrix),rotation):{opList:new OperatorList,separateForm:!1,separateCanvas:!1})}async save(evaluator,task,annotationStorage,changes){this.data.checkBox?this._saveCheckbox(evaluator,task,annotationStorage,changes):this.data.radioButton&&this._saveRadioButton(evaluator,task,annotationStorage,changes)}async _saveCheckbox(evaluator,task,annotationStorage,changes){if(annotationStorage){var annotationStorage=annotationStorage.get(this.data.id),flags=this._buildFlags(null==annotationStorage?void 0:annotationStorage.noView,null==annotationStorage?void 0:annotationStorage.noPrint),rotation=null==annotationStorage?void 0:annotationStorage.rotation,annotationStorage=null==annotationStorage?void 0:annotationStorage.value;if(void 0===rotation&&void 0===flags){if(void 0===annotationStorage)return;if(this.data.fieldValue===this.data.exportValue===annotationStorage)return}var xfa,dict=evaluator.xref.fetchIfRef(this.ref);dict instanceof Dict&&(dict=dict.clone(),void 0===rotation&&(rotation=this.rotation),void 0===annotationStorage&&(annotationStorage=this.data.fieldValue===this.data.exportValue),xfa={path:this.data.fieldName,value:annotationStorage?this.data.exportValue:""},annotationStorage=Name.get(annotationStorage?this.data.exportValue:"Off"),this.setValue(dict,annotationStorage,evaluator.xref,changes),dict.set("AS",annotationStorage),dict.set("M","D:".concat(getModificationDate())),void 0!==flags&&dict.set("F",flags),(evaluator=this._getMKDict(rotation))&&dict.set("MK",evaluator),changes.put(this.ref,{data:dict,xfa:xfa,needAppearances:!1}))}}async _saveRadioButton(evaluator,task,annotationStorage,changes){if(annotationStorage){var annotationStorage=annotationStorage.get(this.data.id),flags=this._buildFlags(null==annotationStorage?void 0:annotationStorage.noView,null==annotationStorage?void 0:annotationStorage.noPrint),rotation=null==annotationStorage?void 0:annotationStorage.rotation,annotationStorage=null==annotationStorage?void 0:annotationStorage.value;if(void 0===rotation&&void 0===flags){if(void 0===annotationStorage)return;if(this.data.fieldValue===this.data.buttonValue===annotationStorage)return}var xfa,name,dict=evaluator.xref.fetchIfRef(this.ref);dict instanceof Dict&&(dict=dict.clone(),void 0===annotationStorage&&(annotationStorage=this.data.fieldValue===this.data.buttonValue),void 0===rotation&&(rotation=this.rotation),xfa={path:this.data.fieldName,value:annotationStorage?this.data.buttonValue:""},name=Name.get(annotationStorage?this.data.buttonValue:"Off"),annotationStorage&&this.setValue(dict,name,evaluator.xref,changes),dict.set("AS",name),dict.set("M","D:".concat(getModificationDate())),void 0!==flags&&dict.set("F",flags),(annotationStorage=this._getMKDict(rotation))&&dict.set("MK",annotationStorage),changes.put(this.ref,{data:dict,xfa:xfa,needAppearances:!1}))}}_getDefaultCheckedAppearance(params,type){var char,{width,height}=this,bbox=[0,0,width,height],fontSize=.8*Math.min(width,height),type=("check"===type?(metrics={width:.755*fontSize,height:.705*fontSize},char="3"):"disc"===type?(metrics={width:.791*fontSize,height:.705*fontSize},char="l"):unreachable("_getDefaultCheckedAppearance - unsupported type: ".concat(type)),numberToString((width-metrics.width)/2)),width=numberToString((height-metrics.height)/2),height="q BT /PdfJsZaDb ".concat(fontSize," Tf 0 g ").concat(type," ").concat(width," Td (").concat(char,") Tj ET Q"),metrics=new Dict(params.xref),fontSize=(metrics.set("FormType",1),metrics.set("Subtype",Name.get("Form")),metrics.set("Type",Name.get("XObject")),metrics.set("BBox",bbox),metrics.set("Matrix",[1,0,0,1,0,0]),metrics.set("Length",height.length),new Dict(params.xref)),type=new Dict(params.xref);type.set("PdfJsZaDb",this.fallbackFontDict),fontSize.set("Font",type),metrics.set("Resources",fontSize),this.checkedAppearance=new StringStream(height),this.checkedAppearance.dict=metrics,this._streams.push(this.checkedAppearance)}_processCheckBox(params){var asValue,exportValues,customAppearance=params.dict.get("AP");customAppearance instanceof Dict&&(customAppearance=customAppearance.get("N"))instanceof Dict&&("string"==typeof(asValue=this._decodeFormValue(params.dict.get("AS")))&&(this.data.fieldValue=asValue),asValue=null!==this.data.fieldValue&&"Off"!==this.data.fieldValue?this.data.fieldValue:"Yes",0===(exportValues=this._decodeFormValue(customAppearance.getKeys())).length?exportValues.push("Off",asValue):1===exportValues.length?"Off"===exportValues[0]?exportValues.push(asValue):exportValues.unshift("Off"):exportValues.includes(asValue)?(exportValues.length=0,exportValues.push("Off",asValue)):(asValue=exportValues.find(v=>"Off"!==v),exportValues.length=0,exportValues.push("Off",asValue)),exportValues.includes(this.data.fieldValue)||(this.data.fieldValue="Off"),this.data.exportValue=exportValues[1],asValue=customAppearance.get(this.data.exportValue),this.checkedAppearance=asValue instanceof BaseStream?asValue:null,exportValues=customAppearance.get("Off"),this.uncheckedAppearance=exportValues instanceof BaseStream?exportValues:null,this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(params,"check"),this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance),this._fallbackFontDict=this.fallbackFontDict,null===this.data.defaultFieldValue)&&(this.data.defaultFieldValue="Off")}_processRadioButton(params){this.data.buttonValue=null;var fieldParent=params.dict.get("Parent"),fieldParent=(fieldParent instanceof Dict&&(this.parent=params.dict.getRaw("Parent"),(fieldParent=fieldParent.get("V"))instanceof Name)&&(this.data.fieldValue=this._decodeFormValue(fieldParent)),params.dict.get("AP"));if(fieldParent instanceof Dict){fieldParent=fieldParent.get("N");if(fieldParent instanceof Dict){for(var key of fieldParent.getKeys())if("Off"!==key){this.data.buttonValue=this._decodeFormValue(key);break}var checkedAppearance=fieldParent.get(this.data.buttonValue),checkedAppearance=(this.checkedAppearance=checkedAppearance instanceof BaseStream?checkedAppearance:null,fieldParent.get("Off"));this.uncheckedAppearance=checkedAppearance instanceof BaseStream?checkedAppearance:null,this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(params,"disc"),this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance),this._fallbackFontDict=this.fallbackFontDict,null===this.data.defaultFieldValue&&(this.data.defaultFieldValue="Off")}}}_processPushButton(params){var{dict:params,annotationGlobals}=params;params.has("A")||params.has("AA")||this.data.alternativeText?(this.data.isTooltipOnly=!params.has("A")&&!params.has("AA"),Catalog.parseDestDictionary({destDict:params,resultObj:this.data,docBaseUrl:annotationGlobals.baseUrl,docAttachments:annotationGlobals.attachments})):warn("Push buttons without action dictionaries are not supported")}getFieldObject(){var exportValues,type="button";return this.data.checkBox?(type="checkbox",exportValues=this.data.exportValue):this.data.radioButton&&(type="radiobutton",exportValues=this.data.buttonValue),{id:this.data.id,value:this.data.fieldValue||"Off",defaultValue:this.data.defaultFieldValue,exportValues:exportValues,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,hidden:this.data.hidden,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:type}}get fallbackFontDict(){var dict=new Dict;return dict.set("BaseFont",Name.get("ZapfDingbats")),dict.set("Type",Name.get("FallbackType")),dict.set("Subtype",Name.get("FallbackType")),dict.set("Encoding",Name.get("ZapfDingbatsEncoding")),shadow(this,"fallbackFontDict",dict)}}class ChoiceWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params);var{dict:params,xref}=params,options=(this.indices=params.getArray("I"),this.hasIndices=Array.isArray(this.indices)&&0({exportValue:value,displayValue:value}))),this.data.combo=this.hasFieldFlag(AnnotationFieldFlag.COMBO),this.data.multiSelect=this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT),this._hasText=!0}getFieldObject(){var type=this.data.combo?"combobox":"listbox",value=0line.trimEnd()),{coords,bbox,matrix}=FakeUnicodeFont.getFirstPositionInfo(this.rectangle,this.rotation,evaluatorOptions),this.data.textPosition=this._transformPoint(coords,bbox,matrix)),this._isOffscreenCanvasSupported?(coords=params.dict.get("CA"),bbox=new FakeUnicodeFont(xref,"sans-serif"),this.appearance=bbox.createAppearance(this._contents.str,this.rectangle,this.rotation,evaluatorOptions,annotationGlobals,coords),this._streams.push(this.appearance)):warn("FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly."))}get hasTextContent(){return this._hasAppearance}static createNewDict(annotation,xref,_ref70){var{apRef:_ref70,ap}=_ref70,{color:annotation,fontSize,oldAnnotation,rect,rotation,user,value}=annotation,freetext=oldAnnotation||new Dict(xref),oldAnnotation=(freetext.set("Type",Name.get("Annot")),freetext.set("Subtype",Name.get("FreeText")),oldAnnotation?(freetext.set("M","D:".concat(getModificationDate())),freetext.delete("RC")):freetext.set("CreationDate","D:".concat(getModificationDate())),freetext.set("Rect",rect),"/Helv ".concat(fontSize," Tf ").concat(getPdfColor(annotation,!0)));return freetext.set("DA",oldAnnotation),freetext.set("Contents",stringToAsciiOrUTF16BE(value)),freetext.set("F",4),freetext.set("Border",[0,0,0]),freetext.set("Rotate",rotation),user&&freetext.set("T",stringToAsciiOrUTF16BE(user)),(_ref70||ap)&&(rect=new Dict(xref),freetext.set("AP",rect),_ref70?rect.set("N",_ref70):rect.set("N",ap)),freetext}static async createNewAppearanceStream(annotation,xref,params){var line,{baseFontRef:params,evaluator,task}=params,{color:annotation,fontSize,rect,rotation,value}=annotation,resources=new Dict(xref),font=new Dict(xref),helv=(params?font.set("Helv",params):((params=new Dict(xref)).set("BaseFont",Name.get("Helvetica")),params.set("Type",Name.get("Font")),params.set("Subtype",Name.get("Type1")),params.set("Encoding",Name.get("WinAnsiEncoding")),font.set("Helv",params)),resources.set("Font",font),await WidgetAnnotation._getFontData(evaluator,task,{fontName:"Helv",fontSize:fontSize},resources)),[params,font,evaluator,task]=rect,w=evaluator-params,h=task-font,evaluator=(rotation%180!=0&&([w,h]=[h,w]),value.split("\n")),scale=fontSize/1e3,totalWidth=-1/0,encodedLines=[];for(line of evaluator){var encoded=helv.encodeString(line);if(1(buffer.push("".concat(lineCoordinates[0]," ").concat(lineCoordinates[1]," m"),"".concat(lineCoordinates[2]," ").concat(lineCoordinates[3]," l"),"S"),[points[0]-borderWidth,points[7]-borderWidth,points[2]+borderWidth,points[3]+borderWidth])}))}}class SquareAnnotation extends MarkupAnnotation{constructor(params){super(params);var strokeColor,strokeAlpha,fillColor,{dict:params,xref}=params;this.data.annotationType=AnnotationType.SQUARE,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1,!this.appearance&&(strokeColor=this.color?getPdfColorArray(this.color):[0,0,0],strokeAlpha=params.get("CA"),params=getRgbColor(params.getArray("IC"),null),params=(fillColor=params?getPdfColorArray(params):null)?strokeAlpha:null,0!==this.borderStyle.width||fillColor)&&this._setDefaultAppearance({xref:xref,extra:"".concat(this.borderStyle.width," w"),strokeColor:strokeColor,fillColor:fillColor,strokeAlpha:strokeAlpha,fillAlpha:params,pointsCallback:(buffer,points)=>{var x=points[4]+this.borderStyle.width/2,y=points[5]+this.borderStyle.width/2,width=points[6]-points[4]-this.borderStyle.width,height=points[3]-points[7]-this.borderStyle.width;return buffer.push("".concat(x," ").concat(y," ").concat(width," ").concat(height," re")),fillColor?buffer.push("B"):buffer.push("S"),[points[0],points[7],points[2],points[3]]}})}}class CircleAnnotation extends MarkupAnnotation{constructor(params){super(params);var strokeColor,strokeAlpha,fillColor,controlPointsDistance,{dict:params,xref}=params;this.data.annotationType=AnnotationType.CIRCLE,!this.appearance&&(strokeColor=this.color?getPdfColorArray(this.color):[0,0,0],strokeAlpha=params.get("CA"),params=getRgbColor(params.getArray("IC"),null),params=(fillColor=params?getPdfColorArray(params):null)?strokeAlpha:null,0!==this.borderStyle.width||fillColor)&&(controlPointsDistance=4/3*Math.tan(Math.PI/8),this._setDefaultAppearance({xref:xref,extra:"".concat(this.borderStyle.width," w"),strokeColor:strokeColor,fillColor:fillColor,strokeAlpha:strokeAlpha,fillAlpha:params,pointsCallback:(buffer,points)=>{var x0=points[0]+this.borderStyle.width/2,y0=points[1]-this.borderStyle.width/2,x1=points[6]-this.borderStyle.width/2,y1=points[7]+this.borderStyle.width/2,xMid=x0+(x1-x0)/2,yMid=y0+(y1-y0)/2,xOffset=(x1-x0)/2*controlPointsDistance,yOffset=(y1-y0)/2*controlPointsDistance;return buffer.push("".concat(xMid," ").concat(y1," m"),"".concat(xMid+xOffset," ").concat(y1," ").concat(x1," ").concat(yMid+yOffset," ").concat(x1," ").concat(yMid," c"),"".concat(x1," ").concat(yMid-yOffset," ").concat(xMid+xOffset," ").concat(y0," ").concat(xMid," ").concat(y0," c"),"".concat(xMid-xOffset," ").concat(y0," ").concat(x0," ").concat(yMid-yOffset," ").concat(x0," ").concat(yMid," c"),"".concat(x0," ").concat(yMid+yOffset," ").concat(xMid-xOffset," ").concat(y1," ").concat(xMid," ").concat(y1," c"),"h"),fillColor?buffer.push("B"):buffer.push("S"),[points[0],points[7],points[2],points[3]]}}))}}class PolylineAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params,rawVertices=(this.data.annotationType=AnnotationType.POLYLINE,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1,this.data.vertices=null,this instanceof PolygonAnnotation||(this.setLineEndings(params.getArray("LE")),this.data.lineEndings=this.lineEndings),params.getArray("Vertices"));if(isNumberArray(rawVertices,null)){var vertices=this.data.vertices=Float32Array.from(rawVertices);if(!this.appearance){for(var rawVertices=this.color?getPdfColorArray(this.color):[0,0,0],params=params.get("CA"),borderWidth=this.borderStyle.width||1,borderAdjust=2*borderWidth,bbox=[1/0,1/0,-1/0,-1/0],i=0,ii=vertices.length;i{for(var _i44=0,_ii13=vertices.length;_i44<_ii13;_i44+=2)buffer.push("".concat(vertices[_i44]," ").concat(vertices[_i44+1]," ").concat(0===_i44?"m":"l"));return buffer.push("S"),[points[0],points[7],points[2],points[3]]}})}}}}class PolygonAnnotation extends PolylineAnnotation{constructor(params){super(params),this.data.annotationType=AnnotationType.POLYGON}}class CaretAnnotation extends MarkupAnnotation{constructor(params){super(params),this.data.annotationType=AnnotationType.CARET}}class InkAnnotation extends MarkupAnnotation{constructor(params){super(params),this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1;var{dict:params,xref}=params,rawInkLists=(this.data.annotationType=AnnotationType.INK,this.data.inkLists=[],this.data.isEditable=!this.data.noHTML,this.data.noHTML=!1,this.data.opacity=params.get("CA")||1,params.getArray("InkList"));if(Array.isArray(rawInkLists)){for(var i=0,ii=rawInkLists.length;i{for(var _inkList2 of this.data.inkLists){for(var _i46=0,_ii15=_inkList2.length;_i46<_ii15;_i46+=2)buffer.push("".concat(_inkList2[_i46]," ").concat(_inkList2[_i46+1]," ").concat(0===_i46?"m":"l"));buffer.push("S")}return[points[0],points[7],points[2],points[3]]}})}}}static createNewDict(annotation,xref,_ref71){var{apRef:_ref71,ap}=_ref71,{oldAnnotation:annotation,color,opacity,paths,outlines,rect,rotation,thickness,user}=annotation,ink=annotation||new Dict(xref),annotation=(ink.set("Type",Name.get("Annot")),ink.set("Subtype",Name.get("Ink")),ink.set(annotation?"M":"CreationDate","D:".concat(getModificationDate())),ink.set("Rect",rect),ink.set("InkList",(null==outlines?void 0:outlines.points)||paths.points),ink.set("F",4),ink.set("Rotate",rotation),user&&ink.set("T",stringToAsciiOrUTF16BE(user)),outlines&&ink.set("IT",Name.get("InkHighlight")),new Dict(xref)),rect=(ink.set("BS",annotation),annotation.set("W",thickness),ink.set("C",getPdfColorArray(color)),ink.set("CA",opacity),new Dict(xref));return ink.set("AP",rect),_ref71?rect.set("N",_ref71):rect.set("N",ap),ink}static async createNewAppearanceStream(annotation,xref,params){if(annotation.outlines)return this.createNewAppearanceStreamForHighlight(annotation,xref,params);var outline,{color:params,rect:annotation,paths,thickness,opacity}=annotation,appearanceBuffer=["".concat(thickness," w 1 J 1 j"),"".concat(getPdfColor(params,!1))];1!==opacity&&appearanceBuffer.push("/R0 gs");for(outline of paths.lines){appearanceBuffer.push("".concat(numberToString(outline[4])," ").concat(numberToString(outline[5])," m"));for(var c1x,c1y,c2x,c2y,x,y,i=6,ii=outline.length;i(buffer.push("".concat(points[0]," ").concat(points[1]," m"),"".concat(points[2]," ").concat(points[3]," l"),"".concat(points[6]," ").concat(points[7]," l"),"".concat(points[4]," ").concat(points[5]," l"),"f"),[points[0],points[7],points[2],points[3]])}))):this.data.popupRef=null}get overlaysTextContent(){return!0}static createNewDict(annotation,xref,_ref72){var{apRef:_ref72,ap}=_ref72,{color:annotation,oldAnnotation,opacity,rect,rotation,user,quadPoints}=annotation,highlight=oldAnnotation||new Dict(xref);return highlight.set("Type",Name.get("Annot")),highlight.set("Subtype",Name.get("Highlight")),highlight.set(oldAnnotation?"M":"CreationDate","D:".concat(getModificationDate())),highlight.set("CreationDate","D:".concat(getModificationDate())),highlight.set("Rect",rect),highlight.set("F",4),highlight.set("Border",[0,0,0]),highlight.set("Rotate",rotation),highlight.set("QuadPoints",quadPoints),highlight.set("C",getPdfColorArray(annotation)),highlight.set("CA",opacity),user&&highlight.set("T",stringToAsciiOrUTF16BE(user)),(_ref72||ap)&&(oldAnnotation=new Dict(xref),highlight.set("AP",oldAnnotation),oldAnnotation.set("N",_ref72||ap)),highlight}static async createNewAppearanceStream(annotation,xref,params){var outline,{color:annotation,rect,outlines,opacity}=annotation,appearanceBuffer=["".concat(getPdfColor(annotation,!0)),"/R0 gs"],buffer=[];for(outline of outlines){buffer.length=0,buffer.push("".concat(numberToString(outline[0])," ").concat(numberToString(outline[1])," m"));for(var i=2,ii=outline.length;i(buffer.push("".concat(points[4]," ").concat(points[5]+1.3," m"),"".concat(points[6]," ").concat(points[7]+1.3," l"),"S"),[points[0],points[7],points[2],points[3]])})):this.data.popupRef=null}get overlaysTextContent(){return!0}}class SquigglyAnnotation extends MarkupAnnotation{constructor(params){super(params);var strokeColor,{dict:params,xref}=params;this.data.annotationType=AnnotationType.SQUIGGLY,(this.data.quadPoints=getQuadPoints(params,null))?this.appearance||(strokeColor=this.color?getPdfColorArray(this.color):[0,0,0],params=params.get("CA"),this._setDefaultAppearance({xref:xref,extra:"[] 0 d 1 w",strokeColor:strokeColor,strokeAlpha:params,pointsCallback:(buffer,points)=>{var dy=(points[1]-points[5])/6,shift=dy,x=points[4],y=points[5],xEnd=points[6];for(buffer.push("".concat(x," ").concat(y+shift," m"));shift=0===shift?dy:0,buffer.push("".concat(x+=2," ").concat(y+shift," l")),x(buffer.push("".concat((points[0]+points[4])/2," ")+"".concat((points[1]+points[5])/2," m"),"".concat((points[2]+points[6])/2," ")+"".concat((points[3]+points[7])/2," l"),"S"),[points[0],points[7],points[2],points[3]])})):this.data.popupRef=null}get overlaysTextContent(){return!0}}var _savedHasOwnCanvas=new WeakMap;class StampAnnotation extends MarkupAnnotation{constructor(params){super(params),_classPrivateFieldInitSpec(this,_savedHasOwnCanvas,null),this.data.annotationType=AnnotationType.STAMP,this.data.hasOwnCanvas=this.data.noRotate,this.data.isEditable=!this.data.noHTML,this.data.noHTML=!1}mustBeViewedWhenEditing(isEditing){var modifiedIds=1x>>>24!=255:x=>255!=(255&x)),ctx=(data&&(ctx.fillStyle="white",ctx.fillRect(0,0,width,height),ctx.drawImage(bitmap,0,0)),canvas.convertToBlob({type:"image/jpeg",quality:1}).then(blob=>blob.arrayBuffer())),bitmap=Name.get("XObject"),canvas=Name.get("Image"),image=new Dict(xref),smaskStream=(image.set("Type",bitmap),image.set("Subtype",canvas),image.set("BitsPerComponent",8),image.set("ColorSpace",Name.get("DeviceRGB")),image.set("Filter",Name.get("DCTDecode")),image.set("BBox",[0,0,width,height]),image.set("Width",width),image.set("Height",height),null);if(data){var alphaBuffer=new Uint8Array(buf32.length);if(FeatureTest.isLittleEndian)for(var i=0,ii=buf32.length;i>>24;else for(var _i47=0,_ii16=buf32.length;_i47<_ii16;_i47++)alphaBuffer[_i47]=255&buf32[_i47];data=new Dict(xref);data.set("Type",bitmap),data.set("Subtype",canvas),data.set("BitsPerComponent",8),data.set("ColorSpace",Name.get("DeviceGray")),data.set("Width",width),data.set("Height",height),smaskStream=new Stream(alphaBuffer,0,0,data)}return{imageStream:new Stream(await ctx,0,0,image),smaskStream:smaskStream,width:width,height:height}}static createNewDict(annotation,xref,_ref73){var{apRef:_ref73,ap}=_ref73,{oldAnnotation:annotation,rect,rotation,user}=annotation,stamp=annotation||new Dict(xref);return stamp.set("Type",Name.get("Annot")),stamp.set("Subtype",Name.get("Stamp")),stamp.set(annotation?"M":"CreationDate","D:".concat(getModificationDate())),stamp.set("Rect",rect),stamp.set("F",4),stamp.set("Border",[0,0,0]),stamp.set("Rotate",rotation),user&&stamp.set("T",stringToAsciiOrUTF16BE(user)),(_ref73||ap)&&(annotation=new Dict(xref),stamp.set("AP",annotation),_ref73?annotation.set("N",_ref73):annotation.set("N",ap)),stamp}static async createNewAppearanceStream(annotation,xref,params){var width,height,xobject,resources;return annotation.oldAnnotation?null:annotation.isSignature?_assertClassBrand(StampAnnotation,this,_createNewAppearanceStreamForDrawing).call(this,annotation,xref):(annotation=annotation["rotation"],{imageRef:params,width,height}=params.image,resources=new Dict(xref),xobject=new Dict(xref),resources.set("XObject",xobject),xobject.set("Im0",params),xobject="q ".concat(width," 0 0 ").concat(height," 0 0 cm /Im0 Do Q"),(params=new Dict(xref)).set("FormType",1),params.set("Subtype",Name.get("Form")),params.set("Type",Name.get("XObject")),params.set("BBox",[0,0,width,height]),params.set("Resources",resources),annotation&&(xref=getRotationMatrix(annotation,width,height),params.set("Matrix",xref)),(resources=new StringStream(xobject)).dict=params,resources)}}async function _createNewAppearanceStreamForDrawing(annotation,xref){var line,{areContours:annotation,color,rect,lines,thickness}=annotation,appearanceBuffer=["".concat(thickness," w 1 J 1 j"),"".concat(getPdfColor(color,annotation))];for(line of lines){appearanceBuffer.push("".concat(numberToString(line[4])," ").concat(numberToString(line[5])," m"));for(var c1x,c1y,c2x,c2y,x,y,i=6,ii=line.length;i>5&255,padded[i++]=length>>13&255,padded[i++]=length>>21&255,padded[i++]=length>>>29&255,i+=3,new Int32Array(16)),{k,r}=PARAMS;for(i=0;i>>32-rotate)|0,a=tmp;h0=h0+a|0,h1=h1+b|0,h2=h2+c|0,h3=h3+d|0}return new Uint8Array([255&h0,h0>>8&255,h0>>16&255,h0>>>24&255,255&h1,h1>>8&255,h1>>16&255,h1>>>24&255,255&h2,h2>>8&255,h2>>16&255,h2>>>24&255,255&h3,h3>>8&255,h3>>16&255,h3>>>24&255])}function decodeString(str){try{return stringToUTF8String(str)}catch(ex){return warn('UTF-8 decoding failed: "'.concat(ex,'".')),str}}class DatasetXMLParser extends SimpleXMLParser{constructor(options){super(options),this.node=null}onEndElement(name){var node=super.onEndElement(name);if(node&&"xfa:datasets"===name)throw this.node=node,new Error("Aborting DatasetXMLParser.")}}class DatasetReader{constructor(data){if(data.datasets)this.node=new SimpleXMLParser({hasAttributes:!0}).parseFromString(data.datasets).documentElement;else{var parser=new DatasetXMLParser({hasAttributes:!0});try{parser.parseFromString(data["xdp:xdp"])}catch(_unused11){}this.node=parser.node}}getValue(path){var first;return this.node&&(path=path&&this.node.searchNode(parseXFAPath(path),0))?"value"===(null==(first=path.firstChild)?void 0:first.nodeName)?path.children.map(child=>decodeString(child.textContent)):decodeString(path.textContent):""}}var _annotation=new WeakMap,_minX=new WeakMap,_minY=new WeakMap,_maxX=new WeakMap,_maxY=new WeakMap,_quadPoints=new WeakMap,_text=new WeakMap,_extraChars=new WeakMap,_lastIntersectingQuadIndex=new WeakMap,_canTakeExtraChars=new WeakMap,_SingleIntersector_brand=new WeakSet;class SingleIntersector{constructor(annotation){_classPrivateMethodInitSpec(this,_SingleIntersector_brand),_classPrivateFieldInitSpec(this,_annotation,void 0),_classPrivateFieldInitSpec(this,_minX,1/0),_classPrivateFieldInitSpec(this,_minY,1/0),_classPrivateFieldInitSpec(this,_maxX,-1/0),_classPrivateFieldInitSpec(this,_maxY,-1/0),_classPrivateFieldInitSpec(this,_quadPoints,void 0),_classPrivateFieldInitSpec(this,_text,[]),_classPrivateFieldInitSpec(this,_extraChars,[]),_classPrivateFieldInitSpec(this,_lastIntersectingQuadIndex,-1),_classPrivateFieldInitSpec(this,_canTakeExtraChars,!1),_classPrivateFieldSet(_annotation,this,annotation);for(var _quadPoints2=_classPrivateFieldSet(_quadPoints,this,annotation.data.quadPoints),i=0,ii=_quadPoints2.length;i=_classPrivateFieldGet(_maxX,other)||_classPrivateFieldGet(_maxX,this)<=_classPrivateFieldGet(_minX,other)||_classPrivateFieldGet(_minY,this)>=_classPrivateFieldGet(_maxY,other)||_classPrivateFieldGet(_maxY,this)<=_classPrivateFieldGet(_minY,other))}addGlyph(x,y,glyph){return _assertClassBrand(_SingleIntersector_brand,this,_intersects).call(this,x,y)?(0<_classPrivateFieldGet(_extraChars,this).length&&(_classPrivateFieldGet(_text,this).push(_classPrivateFieldGet(_extraChars,this).join("")),_classPrivateFieldGet(_extraChars,this).length=0),_classPrivateFieldGet(_text,this).push(glyph),_classPrivateFieldSet(_canTakeExtraChars,this,!0),!0):(this.disableExtraChars(),!1)}addExtraChar(char){_classPrivateFieldGet(_canTakeExtraChars,this)&&_classPrivateFieldGet(_extraChars,this).push(char)}disableExtraChars(){_classPrivateFieldGet(_canTakeExtraChars,this)&&(_classPrivateFieldSet(_canTakeExtraChars,this,!1),_classPrivateFieldGet(_extraChars,this).length=0)}setText(){_classPrivateFieldGet(_annotation,this).data.overlaidText=_classPrivateFieldGet(_text,this).join("")}}function _intersects(x,y){if(!(_classPrivateFieldGet(_minX,this)>=x||_classPrivateFieldGet(_maxX,this)<=x||_classPrivateFieldGet(_minY,this)>=y||_classPrivateFieldGet(_maxY,this)<=y)){var quadPoints=_classPrivateFieldGet(_quadPoints,this);if(8===quadPoints.length)return!0;if(0<=_classPrivateFieldGet(_lastIntersectingQuadIndex,this)){var i=_classPrivateFieldGet(_lastIntersectingQuadIndex,this);if(!(quadPoints[i]>=x||quadPoints[i+2]<=x||quadPoints[i+5]>=y||quadPoints[i+1]<=y))return!0;_classPrivateFieldSet(_lastIntersectingQuadIndex,this,-1)}for(var _i54=0,ii=quadPoints.length;_i54=x||quadPoints[_i54+2]<=x||quadPoints[_i54+5]>=y||quadPoints[_i54+1]<=y))return _classPrivateFieldSet(_lastIntersectingQuadIndex,this,_i54),!0}return!1}var _intersectors=new WeakMap;class Intersector{constructor(annotations){_classPrivateFieldInitSpec(this,_intersectors,new Map);for(var annotation of annotations)if(annotation.data.quadPoints){var otherIntersector,overlapping,intersector=new SingleIntersector(annotation);for([otherIntersector,overlapping]of _classPrivateFieldGet(_intersectors,this))otherIntersector.overlaps(intersector)&&(overlapping?overlapping.add(intersector):_classPrivateFieldGet(_intersectors,this).set(otherIntersector,new Set([intersector])));_classPrivateFieldGet(_intersectors,this).set(intersector,null)}}addGlyph(transform,width,height,glyph){var overlappingIntersectors,intersector,overlapping,x=transform[4]+width/2,y=transform[5]+height/2;for([intersector,overlapping]of _classPrivateFieldGet(_intersectors,this))overlappingIntersectors?overlappingIntersectors.has(intersector)?intersector.addGlyph(x,y,glyph):intersector.disableExtraChars():intersector.addGlyph(x,y,glyph)&&(overlappingIntersectors=overlapping)}addExtraChar(char){for(var intersector of _classPrivateFieldGet(_intersectors,this).keys())intersector.addExtraChar(char)}setText(){for(var intersector of _classPrivateFieldGet(_intersectors,this).keys())intersector.setText()}}class Word64{constructor(highInteger,lowInteger){this.high=0|highInteger,this.low=0|lowInteger}and(word){this.high&=word.high,this.low&=word.low}xor(word){this.high^=word.high,this.low^=word.low}shiftRight(places){32<=places?(this.low=this.high>>>places-32|0,this.high=0):(this.low=this.low>>>places|this.high<<32-places,this.high=this.high>>>places|0)}rotateRight(places){var low,high;32&places?(high=this.low,low=this.high):(low=this.low,high=this.high),this.low=low>>>(places&=31)|high<<32-places,this.high=high>>>places|low<<32-places}not(){this.high=~this.high,this.low=~this.low}add(word){var lowAdd=(this.low>>>0)+(word.low>>>0),word=(this.high>>>0)+(word.high>>>0);4294967295>>24&255,bytes[offset+1]=this.high>>16&255,bytes[offset+2]=this.high>>8&255,bytes[offset+3]=255&this.high,bytes[offset+4]=this.low>>>24&255,bytes[offset+5]=this.low>>16&255,bytes[offset+6]=this.low>>8&255,bytes[offset+7]=255&this.low}assign(word){this.high=word.high,this.low=word.low}}var calculate_sha_other_PARAMS={get k(){return shadow(this,"k",[new Word64(1116352408,3609767458),new Word64(1899447441,602891725),new Word64(3049323471,3964484399),new Word64(3921009573,2173295548),new Word64(961987163,4081628472),new Word64(1508970993,3053834265),new Word64(2453635748,2937671579),new Word64(2870763221,3664609560),new Word64(3624381080,2734883394),new Word64(310598401,1164996542),new Word64(607225278,1323610764),new Word64(1426881987,3590304994),new Word64(1925078388,4068182383),new Word64(2162078206,991336113),new Word64(2614888103,633803317),new Word64(3248222580,3479774868),new Word64(3835390401,2666613458),new Word64(4022224774,944711139),new Word64(264347078,2341262773),new Word64(604807628,2007800933),new Word64(770255983,1495990901),new Word64(1249150122,1856431235),new Word64(1555081692,3175218132),new Word64(1996064986,2198950837),new Word64(2554220882,3999719339),new Word64(2821834349,766784016),new Word64(2952996808,2566594879),new Word64(3210313671,3203337956),new Word64(3336571891,1034457026),new Word64(3584528711,2466948901),new Word64(113926993,3758326383),new Word64(338241895,168717936),new Word64(666307205,1188179964),new Word64(773529912,1546045734),new Word64(1294757372,1522805485),new Word64(1396182291,2643833823),new Word64(1695183700,2343527390),new Word64(1986661051,1014477480),new Word64(2177026350,1206759142),new Word64(2456956037,344077627),new Word64(2730485921,1290863460),new Word64(2820302411,3158454273),new Word64(3259730800,3505952657),new Word64(3345764771,106217008),new Word64(3516065817,3606008344),new Word64(3600352804,1432725776),new Word64(4094571909,1467031594),new Word64(275423344,851169720),new Word64(430227734,3100823752),new Word64(506948616,1363258195),new Word64(659060556,3750685593),new Word64(883997877,3785050280),new Word64(958139571,3318307427),new Word64(1322822218,3812723403),new Word64(1537002063,2003034995),new Word64(1747873779,3602036899),new Word64(1955562222,1575990012),new Word64(2024104815,1125592928),new Word64(2227730452,2716904306),new Word64(2361852424,442776044),new Word64(2428436474,593698344),new Word64(2756734187,3733110249),new Word64(3204031479,2999351573),new Word64(3329325298,3815920427),new Word64(3391569614,3928383900),new Word64(3515267271,566280711),new Word64(3940187606,3454069534),new Word64(4118630271,4000239992),new Word64(116418474,1914138554),new Word64(174292421,2731055270),new Word64(289380356,3203993006),new Word64(460393269,320620315),new Word64(685471733,587496836),new Word64(852142971,1086792851),new Word64(1017036298,365543100),new Word64(1126000580,2618297676),new Word64(1288033470,3409855158),new Word64(1501505948,4234509866),new Word64(1607167915,987167468),new Word64(1816402316,1246189591)])}};function ch(result,x,y,z,tmp){result.assign(x),result.and(y),tmp.assign(x),tmp.not(),tmp.and(z),result.xor(tmp)}function maj(result,x,y,z,tmp){result.assign(x),result.and(y),tmp.assign(x),tmp.and(z),result.xor(tmp),tmp.assign(y),tmp.and(z),result.xor(tmp)}function sigma(result,x,tmp){result.assign(x),result.rotateRight(28),tmp.assign(x),tmp.rotateRight(34),result.xor(tmp),tmp.assign(x),tmp.rotateRight(39),result.xor(tmp)}function sigmaPrime(result,x,tmp){result.assign(x),result.rotateRight(14),tmp.assign(x),tmp.rotateRight(18),result.xor(tmp),tmp.assign(x),tmp.rotateRight(41),result.xor(tmp)}function littleSigma(result,x,tmp){result.assign(x),result.rotateRight(1),tmp.assign(x),tmp.rotateRight(8),result.xor(tmp),tmp.assign(x),tmp.shiftRight(7),result.xor(tmp)}function littleSigmaPrime(result,x,tmp){result.assign(x),result.rotateRight(19),tmp.assign(x),tmp.rotateRight(61),result.xor(tmp),tmp.assign(x),tmp.shiftRight(6),result.xor(tmp)}function calculateSHA512(data,offset,length){for(var h0,h1,h2,h3,h4,h5,h6,j,mode384=3>>29&255,padded[i++]=length>>21&255,padded[i++]=length>>13&255,padded[i++]=length>>5&255,padded[i++]=length<<3&255,new Array(80));for(i=0;i<80;i++)w[i]=new Word64(0,0);var tmp3,result,k=calculate_sha_other_PARAMS["k"],a=new Word64(0,0),b=new Word64(0,0),c=new Word64(0,0),d=new Word64(0,0),e=new Word64(0,0),f=new Word64(0,0),g=new Word64(0,0),h=new Word64(0,0),t1=new Word64(0,0),t2=new Word64(0,0),tmp1=new Word64(0,0),tmp2=new Word64(0,0);for(i=0;i>>n|x<<32-n}function calculate_sha256_ch(x,y,z){return x&y^~x&z}function calculate_sha256_maj(x,y,z){return x&y^x&z^y&z}function calculate_sha256_sigma(x){return rotr(x,2)^rotr(x,13)^rotr(x,22)}function calculate_sha256_sigmaPrime(x){return rotr(x,6)^rotr(x,11)^rotr(x,25)}function calculate_sha256_littleSigma(x){return rotr(x,7)^rotr(x,18)^x>>>3}function calculate_sha256_littleSigmaPrime(x){return rotr(x,17)^rotr(x,19)^x>>>10}function calculateSHA256(data,offset,length){for(var h0=1779033703,h1=3144134277,h2=1013904242,h3=2773480762,h4=1359893119,h5=2600822924,h6=528734635,h7=1541459225,paddedLength=64*Math.ceil((length+9)/64),padded=new Uint8Array(paddedLength),i=0;i>>29&255,padded[i++]=length>>21&255,padded[i++]=length>>13&255,padded[i++]=length>>5&255,padded[i++]=length<<3&255,new Uint32Array(64)),k=calculate_sha256_PARAMS["k"];for(i=0;i>24&255,h0>>16&255,h0>>8&255,255&h0,h1>>24&255,h1>>16&255,h1>>8&255,255&h1,h2>>24&255,h2>>16&255,h2>>8&255,255&h2,h3>>24&255,h3>>16&255,h3>>8&255,255&h3,h4>>24&255,h4>>16&255,h4>>8&255,255&h4,h5>>24&255,h5>>16&255,h5>>8&255,255&h5,h6>>24&255,h6>>16&255,h6>>8&255,255&h6,h7>>24&255,h7>>16&255,h7>>8&255,255&h7])}var chunkSize=512;class DecryptStream extends DecodeStream{constructor(str,maybeLength,decrypt){super(maybeLength),this.str=str,this.dict=str.dict,this.decrypt=decrypt,this.nextChunk=null,this.initialized=!1}readBlock(){var chunk,_this$nextChunk,newLength;this.initialized?chunk=this.nextChunk:(chunk=this.str.getBytes(chunkSize),this.initialized=!0),null!=chunk&&chunk.length?(this.nextChunk=this.str.getBytes(chunkSize),_this$nextChunk=0<(null==(_this$nextChunk=this.nextChunk)?void 0:_this$nextChunk.length),chunk=(0,this.decrypt)(chunk,!_this$nextChunk),newLength=(_this$nextChunk=this.bufferLength)+chunk.length,this.ensureBuffer(newLength).set(chunk,_this$nextChunk),this.bufferLength=newLength):this.eof=!0}}class ARCFourCipher{constructor(key){this.a=0,this.b=0;for(var s=new Uint8Array(256),keyLength=key.length,i=0;i<256;++i)s[i]=i;for(var _i48=0,j=0;_i48<256;++_i48){var tmp=s[_i48],j=j+tmp+key[_i48%keyLength]&255;s[_i48]=s[j],s[j]=tmp}this.s=s}encryptBlock(data){for(var a=this.a,b=this.b,s=this.s,n=data.length,output=new Uint8Array(n),i=0;ii<128?i<<1:i<<1^27)),this.buffer=new Uint8Array(16),this.bufferPosition=0}_expandKey(cipherKey){unreachable("Cannot call `_expandKey` on the base class")}_decrypt(input,key){var u,v,state=new Uint8Array(16);state.set(input);for(var j=0,k=this._keySize;j<16;++j,++k)state[j]^=key[k];for(var i=this._cyclesOfRepetition-1;1<=i;--i){t=state[13],state[13]=state[9],state[9]=state[5],state[5]=state[1],state[1]=t,t=state[14],u=state[10],state[14]=state[6],state[10]=state[2],state[6]=t,state[2]=u,t=state[15],u=state[11],v=state[7],state[15]=state[3],state[11]=t,state[7]=u,state[3]=v;for(var _j0=0;_j0<16;++_j0)state[_j0]=this._inv_s[state[_j0]];for(var _j1=0,_k2=16*i;_j1<16;++_j1,++_k2)state[_j1]^=key[_k2];for(var _j10=0;_j10<16;_j10+=4){var s0=this._mix[state[_j10]],s1=this._mix[state[_j10+1]],s2=this._mix[state[_j10+2]],s3=this._mix[state[_j10+3]],t=s0^s1>>>8^s1<<24^s2>>>16^s2<<16^s3>>>24^s3<<8;state[_j10]=t>>>24&255,state[_j10+1]=t>>16&255,state[_j10+2]=t>>8&255,state[_j10+3]=255&t}}t=state[13],state[13]=state[9],state[9]=state[5],state[5]=state[1],state[1]=t,t=state[14],u=state[10],state[14]=state[6],state[10]=state[2],state[6]=t,state[2]=u,t=state[15],u=state[11],v=state[7],state[15]=state[3],state[11]=t,state[7]=u,state[3]=v;for(var _j11=0;_j11<16;++_j11)state[_j11]=this._inv_s[state[_j11]],state[_j11]^=key[_j11];return state}_encrypt(input,key){var u,v,s=this._s,state=new Uint8Array(16);state.set(input);for(var j=0;j<16;++j)state[j]^=key[j];for(var i=1;ii-32;){for(var combinedLength=password.length+k.length+userBytes.length,combinedArray=new Uint8Array(combinedLength),writeOffset=0,k1=(combinedArray.set(password,0),writeOffset+=password.length,combinedArray.set(k,writeOffset),writeOffset+=k.length,combinedArray.set(userBytes,writeOffset),new Uint8Array(64*combinedLength)),j=0,pos=0;j<64;j++,pos+=combinedLength)k1.set(combinedArray,pos);e=new AES128Cipher(k.subarray(0,16)).encrypt(k1,k.subarray(16,32)),writeOffset=Math.sumPrecise(e.slice(0,16))%3;0==writeOffset?k=calculateSHA256(e,0,e.length):1==writeOffset?k=calculateSHA384(e,0,e.length):2==writeOffset&&(k=calculateSHA512(e,0,e.length)),i++}return k.subarray(0,32)}}class CipherTransform{constructor(stringCipherConstructor,streamCipherConstructor){this.StringCipherConstructor=stringCipherConstructor,this.StreamCipherConstructor=streamCipherConstructor}createStream(stream,length){var cipher=new this.StreamCipherConstructor;return new DecryptStream(stream,length,function(data,finalize){return cipher.decryptBlock(data,finalize)})}decryptString(s){var cipher=new this.StringCipherConstructor,s=stringToBytes(s);return bytesToString(cipher.decryptBlock(s,!0))}encryptString(s){var _data4,buf,pad,cipher=new this.StringCipherConstructor;return cipher instanceof AESBaseCipher?(pad=16-s.length%16,s+=String.fromCharCode(pad).repeat(pad),pad=new Uint8Array(16),crypto.getRandomValues(pad),_data4=stringToBytes(s),_data4=cipher.encrypt(_data4,pad),(buf=new Uint8Array(16+_data4.length)).set(pad),buf.set(_data4,16),bytesToString(buf)):(pad=stringToBytes(s),bytesToString(pad=cipher.encrypt(pad)))}}var _CipherTransformFactory_brand=new WeakSet;class CipherTransformFactory{static get _defaultPasswordBytes(){return shadow(this,"_defaultPasswordBytes",new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]))}constructor(dict,_fileId,_password){_classPrivateMethodInitSpec(this,_CipherTransformFactory_brand);var filter=dict.get("Filter");if(!isName(filter,"Standard"))throw new FormatError("unknown encryption method");this.filterName=filter.name;filter=(this.dict=dict).get("V");if(!Number.isInteger(filter)||1!==filter&&2!==filter&&4!==filter&&5!==filter)throw new FormatError("unsupported encryption algorithm");this.algorithm=filter;var _keyLength=dict.get("Length");if(_keyLength||(filter<=3?_keyLength=40:(cfDict=dict.get("CF"),streamCryptoName=dict.get("StmF"),cfDict instanceof Dict&&streamCryptoName instanceof Name&&(cfDict.suppressEncryption=!0,(_keyLength=(null==(cfDict=cfDict.get(streamCryptoName.name))?void 0:cfDict.get("Length"))||128)<40)&&(_keyLength<<=3))),!Number.isInteger(_keyLength)||_keyLength<40||_keyLength%8!=0)throw new FormatError("invalid key length");var passwordBytes,userValidationSalt,ownerEncryption,userEncryption,perms,ownerValidationSalt,uBytes,streamCryptoName=stringToBytes(dict.get("O")),cfDict=stringToBytes(dict.get("U")),_ownerPassword=streamCryptoName.subarray(0,32),_userPassword=cfDict.subarray(0,32),_flags2=dict.get("P"),_revision=dict.get("R"),_encryptMetadata=(4===filter||5===filter)&&!1!==dict.get("EncryptMetadata"),_fileId=(this.encryptMetadata=_encryptMetadata,stringToBytes(_fileId));if(_password){if(6===_revision)try{_password=utf8StringToString(_password)}catch(_unused12){warn("CipherTransformFactory: Unable to convert UTF8 encoded password.")}passwordBytes=stringToBytes(_password)}if(!(ownerValidationSalt=5!==filter?_assertClassBrand(_CipherTransformFactory_brand,this,_prepareKeyData).call(this,_fileId,passwordBytes,_ownerPassword,_userPassword,_flags2,_revision,_keyLength,_encryptMetadata):(ownerValidationSalt=streamCryptoName.subarray(32,40),streamCryptoName=streamCryptoName.subarray(40,48),uBytes=cfDict.subarray(0,48),userValidationSalt=cfDict.subarray(32,40),cfDict=cfDict.subarray(40,48),ownerEncryption=stringToBytes(dict.get("OE")),userEncryption=stringToBytes(dict.get("UE")),perms=stringToBytes(dict.get("Perms")),_assertClassBrand(_CipherTransformFactory_brand,this,_createEncryptionKey).call(this,_revision,passwordBytes,_ownerPassword,ownerValidationSalt,streamCryptoName,uBytes,_userPassword,userValidationSalt,cfDict,ownerEncryption,userEncryption,perms)))){if(!_password)throw new PasswordException("No password given",PasswordResponses.NEED_PASSWORD);streamCryptoName=_assertClassBrand(_CipherTransformFactory_brand,this,_decodeUserPassword).call(this,passwordBytes,_ownerPassword,_revision,_keyLength);ownerValidationSalt=_assertClassBrand(_CipherTransformFactory_brand,this,_prepareKeyData).call(this,_fileId,streamCryptoName,_ownerPassword,_userPassword,_flags2,_revision,_keyLength,_encryptMetadata)}if(!ownerValidationSalt)throw new PasswordException("Incorrect Password",PasswordResponses.INCORRECT_PASSWORD);4===filter&&ownerValidationSalt.length<16?(this.encryptionKey=new Uint8Array(16),this.encryptionKey.set(ownerValidationSalt)):this.encryptionKey=ownerValidationSalt,4<=filter&&((uBytes=dict.get("CF"))instanceof Dict&&(uBytes.suppressEncryption=!0),this.cf=uBytes,this.stmf=dict.get("StmF")||Name.get("Identity"),this.strf=dict.get("StrF")||Name.get("Identity"),this.eff=dict.get("EFF")||this.stmf)}createCipherTransform(num,gen){var key;return 4===this.algorithm||5===this.algorithm?new CipherTransform(_assertClassBrand(_CipherTransformFactory_brand,this,_buildCipherConstructor).call(this,this.cf,this.strf,num,gen,this.encryptionKey),_assertClassBrand(_CipherTransformFactory_brand,this,_buildCipherConstructor).call(this,this.cf,this.stmf,num,gen,this.encryptionKey)):(key=_assertClassBrand(_CipherTransformFactory_brand,this,_buildObjectKey).call(this,num,gen,this.encryptionKey,!1),num=function(){return new ARCFourCipher(key)},new CipherTransform(num,num))}}function _createEncryptionKey(revision,password,ownerPassword,ownerValidationSalt,ownerKeySalt,uBytes,userPassword,userValidationSalt,userKeySalt,ownerEncryption,userEncryption,perms){password=password?(passwordLength=Math.min(127,password.length),password.subarray(0,passwordLength)):[];var passwordLength=new(6===revision?PDF20:PDF17);return passwordLength.checkUserPassword(password,userValidationSalt,userPassword)?passwordLength.getUserKey(password,userKeySalt,userEncryption):password.length&&passwordLength.checkOwnerPassword(password,ownerValidationSalt,uBytes,ownerPassword)?passwordLength.getOwnerKey(password,ownerKeySalt,uBytes,ownerEncryption):null}function _prepareKeyData(fileId,password,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata){var hashDataSize=40+ownerPassword.length+fileId.length,hashData=new Uint8Array(hashDataSize),i=0;if(password)for(n=Math.min(32,password.length);i>8&255,hashData[i++]=flags>>16&255,hashData[i++]=flags>>>24&255,hashData.set(fileId,i),i+=fileId.length,4<=revision&&!encryptMetadata&&(hashData.fill(255,i,i+4),i+=4);var hash=calculateMD5(hashData,0,i),keyLengthInBytes=keyLength>>3;if(3<=revision)for(j=0;j<50;++j)hash=calculateMD5(hash,0,keyLengthInBytes);var encryptionKey=hash.subarray(0,keyLengthInBytes);if(3<=revision){hashData.set(_CipherTransformFactory._defaultPasswordBytes,i=0),hashData.set(fileId,i+=32),i+=fileId.length;for(var checkData=new ARCFourCipher(encryptionKey).encryptBlock(calculateMD5(hashData,0,i)),n=encryptionKey.length,derivedKey=new Uint8Array(n),j=1;j<=19;++j){for(var k=0;kuserPassword[k]===data)?encryptionKey:null}function _decodeUserPassword(password,ownerPassword,revision,keyLength){for(var hashData=new Uint8Array(32),i=0,n=Math.min(32,password.length);i>3;if(3<=revision)for(j=0;j<50;++j)hash=calculateMD5(hash,0,hash.length);if(3<=revision)for(var userPassword=ownerPassword,derivedKey=new Uint8Array(keyLengthInBytes),j=19;0<=j;j--){for(var k=0;k>8&255,key[i++]=num>>16&255,key[i++]=255&gen,key[i++]=gen>>8&255,isAes&&(key[i++]=115,key[i++]=65,key[i++]=108,key[i++]=84),calculateMD5(key,0,i).subarray(0,Math.min(n+5,16))}function _buildCipherConstructor(cf,name,num,gen,key){if(!(name instanceof Name))throw new FormatError("Invalid crypt filter name.");var self=this,cf=cf.get(name.name),name=null==cf?void 0:cf.get("CFM");if(!name||"None"===name.name)return function(){return new NullCipher};if("V2"===name.name)return function(){return new ARCFourCipher(_assertClassBrand(_CipherTransformFactory_brand,self,_buildObjectKey).call(self,num,gen,key,!1))};if("AESV2"===name.name)return function(){return new AES128Cipher(_assertClassBrand(_CipherTransformFactory_brand,self,_buildObjectKey).call(self,num,gen,key,!0))};if("AESV3"===name.name)return function(){return new AES256Cipher(key)};throw new FormatError("Unknown crypto method")}var _CipherTransformFactory=CipherTransformFactory,_firstXRefStmPos=new WeakMap;class XRef{constructor(stream,pdfManager){_classPrivateFieldInitSpec(this,_firstXRefStmPos,null),this.stream=stream,this.pdfManager=pdfManager,this.entries=[],this._xrefStms=new Set,this._cacheMap=new Map,this._pendingRefs=new RefSet,this._newPersistentRefNum=null,this._newTemporaryRefNum=null,this._persistentRefsCache=null}getNewPersistentRef(obj){null===this._newPersistentRefNum&&(this._newPersistentRefNum=this.entries.length||1);var num=this._newPersistentRefNum++;return this._cacheMap.set(num,obj),Ref.get(num,0)}getNewTemporaryRef(){if(null===this._newTemporaryRefNum&&(this._newTemporaryRefNum=this.entries.length||1,this._newPersistentRefNum)){this._persistentRefsCache=new Map;for(var i=this._newTemporaryRefNum;i=data.length);)token+=String.fromCharCode(ch),ch=data[offset];return token}(buffer,position);if(token.startsWith("xref")&&(4===token.length||/\s/.test(token[4])))position+=skipUntil(buffer,position,trailerBytes),trailers.push(position),position+=skipUntil(buffer,position,startxrefBytes);else if(m=objRegExp.exec(token)){var num=0|m[1],m=0|m[2],startPos=position+token.length,contentLength=void 0,updateEntries=!1;if(this.entries[num]){if(this.entries[num].gen===m)try{new Parser({lexer:new Lexer(stream.makeSubStream(startPos))}).getObj(),updateEntries=!0}catch(ex){ex instanceof ParserEOFException?warn("indexObjects -- checking object (".concat(token,'): "').concat(ex,'".')):updateEntries=!0}}else updateEntries=!0;updateEntries&&(this.entries[num]={offset:position-stream.start,gen:m,uncompressed:!0}),gEndobjRegExp.lastIndex=startPos;var updateEntries=gEndobjRegExp.exec(bufferStr),num=(updateEntries?(contentLength=gEndobjRegExp.lastIndex+1-position,"endobj"!==updateEntries[1]&&(warn('indexObjects: Found "'.concat(updateEntries[1],'" inside of another "obj", ')+'caused by missing "endobj" -- trying to recover.'),contentLength-=updateEntries[1].length+1)):contentLength=length-position,buffer.subarray(position,position+contentLength)),m=skipUntil(num,0,xrefBytes);m!(a instanceof Ref&&deletedAnnotations.has(a)));for({ref}of(await AnnotationFactory.saveNewAnnotations(handler,task,annotations,imagePromises,changes)).annotations)ref instanceof Ref&&!existingAnnotations.has(ref)&&annotationsArray.push(ref);var deletedRef,handler=pageDict.clone();handler.set("Annots",annotationsArray),changes.put(this.ref,{data:handler});for(deletedRef of deletedAnnotations)changes.put(deletedRef,{data:null})}async save(handler,task,annotationStorage,changes){var annotation,partialEvaluator=_assertClassBrand(_Page_brand,this,_createPartialEvaluator).call(this,handler),promises=[];for(annotation of await this._parsedAnnotations)promises.push(annotation.save(partialEvaluator,task,annotationStorage,changes).catch(function(reason){return warn("save - ignoring annotation data during "+'"'.concat(task.name,'" task: "').concat(reason,'".')),null}));return Promise.all(promises)}async loadResources(keys){var _classPrivateFieldGet6;await(null!=(_classPrivateFieldGet6=_classPrivateFieldGet(_resourcesPromise,this))?_classPrivateFieldGet6:_classPrivateFieldSet(_resourcesPromise,this,this.pdfManager.ensure(this,"resources"))),await ObjectLoader.load(this.resources,keys,this.xref)}async getOperatorList(_ref76){var{handler,sink,task,intent,cacheKey,annotationStorage=null,modifiedIds=null}=_ref76,_ref76=this.getContentStream(),resourcesPromise=this.loadResources(RESOURCES_KEYS_OPERATOR_LIST),partialEvaluator=_assertClassBrand(_Page_brand,this,_createPartialEvaluator).call(this,handler),newAnnotsByPage=this.xfaFactory?null:getNewAnnotationsMap(annotationStorage),newAnnots=null==newAnnotsByPage?void 0:newAnnotsByPage.get(this.pageIndex),newAnnotsByPage=Promise.resolve(null),deletedAnnotations=null;if(newAnnots){var imagePromises,bitmapId,bitmap,annotationGlobalsPromise=this.pdfManager.ensureDoc("annotationGlobals"),missingBitmaps=new Set;for({bitmapId,bitmap}of newAnnots)!bitmapId||bitmap||missingBitmaps.has(bitmapId)||missingBitmaps.add(bitmapId);var isOffscreenCanvasSupported=this.evaluatorOptions["isOffscreenCanvasSupported"];if(0{var[_ref77]=_ref77;return _ref77?AnnotationFactory.printNewAnnotations(_ref77,partialEvaluator,task,newAnnots,imagePromises):null})}var isOffscreenCanvasSupported=Promise.all([_ref76,resourcesPromise]).then(async _ref78=>{var[_ref78]=_ref78,resources=await _assertClassBrand(_Page_brand,this,_getMergedResources).call(this,_ref78.dict,RESOURCES_KEYS_OPERATOR_LIST),opList=new OperatorList(intent,sink);return handler.send("StartRenderPage",{transparency:partialEvaluator.hasBlendModes(resources,this.nonBlendModesSet),pageIndex:this.pageIndex,cacheKey:cacheKey}),await partialEvaluator.getOperatorList({stream:_ref78,task:task,resources:resources,operatorList:opList}),opList}),[pageOpList,annotations,newAnnotations]=await Promise.all([isOffscreenCanvasSupported,this._parsedAnnotations,newAnnotsByPage]);if(newAnnotations){for(var annotations=annotations.filter(a=>!(a.ref&&deletedAnnotations.has(a.ref))),i=0,ii=newAnnotations.length;ia.ref&&isRefsEqual(a.ref,newAnnotation.refToReplace)))&&(annotations.splice(j,1,newAnnotation),newAnnotations.splice(_i53--,1),_ii18--),i=_i53,ii=_ii18}(i,ii);annotations=annotations.concat(newAnnotations)}if(0===annotations.length||intent&RenderingIntentFlag.ANNOTATIONS_DISABLE)pageOpList.flush(!0);else{var _annotation2,renderForms=!!(intent&RenderingIntentFlag.ANNOTATIONS_FORMS),isEditing=!!(intent&RenderingIntentFlag.IS_EDITING),intentAny=!!(intent&RenderingIntentFlag.ANY),intentDisplay=!!(intent&RenderingIntentFlag.DISPLAY),intentPrint=!!(intent&RenderingIntentFlag.PRINT),opListPromises=[];for(_annotation2 of annotations)(intentAny||intentDisplay&&_annotation2.mustBeViewed(annotationStorage,renderForms)&&_annotation2.mustBeViewedWhenEditing(isEditing,modifiedIds)||intentPrint&&_annotation2.mustBePrinted(annotationStorage))&&opListPromises.push(_annotation2.getOperatorList(partialEvaluator,task,intent,annotationStorage).catch(function(reason){return warn("getOperatorList - ignoring annotation data during "+'"'.concat(task.name,'" task: "').concat(reason,'".')),{opList:null,separateForm:!1,separateCanvas:!1}}));var opList,separateForm,separateCanvas,form=!1,canvas=!1;for({opList,separateForm,separateCanvas}of await Promise.all(opListPromises))pageOpList.addOpList(opList),form=form||separateForm,canvas=canvas||separateCanvas;pageOpList.flush(!0,{form:form,canvas:canvas})}return{length:pageOpList.totalLength}}async extractTextContent(_ref79){var{handler:_ref79,task,includeMarkedContent,disableNormalization,sink,intersector=null}=_ref79,contentStreamPromise=this.getContentStream(),resourcesPromise=this.loadResources(RESOURCES_KEYS_TEXT_CONTENT),langPromise=this.pdfManager.ensureCatalog("lang"),[contentStreamPromise,,resourcesPromise]=await Promise.all([contentStreamPromise,resourcesPromise,langPromise]),langPromise=await _assertClassBrand(_Page_brand,this,_getMergedResources).call(this,contentStreamPromise.dict,RESOURCES_KEYS_TEXT_CONTENT);return _assertClassBrand(_Page_brand,this,_createPartialEvaluator).call(this,_ref79).getTextContent({stream:contentStreamPromise,task:task,resources:langPromise,includeMarkedContent:includeMarkedContent,disableNormalization:disableNormalization,sink:sink,viewBox:this.view,lang:resourcesPromise,intersector:intersector})}async getStructTree(){var structTreeRoot=await this.pdfManager.ensureCatalog("structTreeRoot");if(!structTreeRoot)return null;await this._parsedAnnotations;try{var structTree=await this.pdfManager.ensure(this,"_parseStructTree",[structTreeRoot]);return await this.pdfManager.ensure(structTree,"serializable")}catch(ex){return warn('getStructTree: "'.concat(ex,'".')),null}}_parseStructTree(structTreeRoot){structTreeRoot=new StructTreePage(structTreeRoot,this.pageDict);return structTreeRoot.parse(this.ref),structTreeRoot}async getAnnotationsData(handler,task,intent){var annotations=await this._parsedAnnotations;if(0===annotations.length)return annotations;var partialEvaluator,annotation,intersector,annotationsData=[],textContentPromises=[],intentAny=!!(intent&RenderingIntentFlag.ANY),intentDisplay=!!(intent&RenderingIntentFlag.DISPLAY),intentPrint=!!(intent&RenderingIntentFlag.PRINT),highlightedAnnotations=[];for(annotation of annotations){var isVisible=intentAny||intentDisplay&&annotation.viewable;(isVisible||intentPrint&&annotation.printable)&&annotationsData.push(annotation.data),annotation.hasTextContent&&isVisible?(null==partialEvaluator&&(partialEvaluator=_assertClassBrand(_Page_brand,this,_createPartialEvaluator).call(this,handler)),textContentPromises.push(annotation.extractTextContent(partialEvaluator,task,[-1/0,-1/0,1/0,1/0]).catch(function(reason){warn('getAnnotationsData - ignoring textContent during "'.concat(task.name,'" task: "').concat(reason,'".'))}))):annotation.overlaysTextContent&&isVisible&&highlightedAnnotations.push(annotation)}return 0{intersector.setText()}))),await Promise.all(textContentPromises),annotationsData}get annotations(){var annots=_assertClassBrand(_Page_brand,this,_getInheritableProperty).call(this,"Annots");return shadow(this,"annotations",Array.isArray(annots)?annots:[])}get _parsedAnnotations(){var promise=this.pdfManager.ensure(this,"annotations").then(async annots=>{if(0===annots.length)return annots;var[annotationGlobals,fieldObjects]=await Promise.all([this.pdfManager.ensureDoc("annotationGlobals"),this.pdfManager.ensureDoc("fieldObjects")]);if(!annotationGlobals)return[];var annotationRef,orphanFields=null==fieldObjects?void 0:fieldObjects.orphanFields,annotationPromises=[];for(annotationRef of annots)annotationPromises.push(AnnotationFactory.create(this.xref,annotationRef,annotationGlobals,this._localIdFactory,!1,orphanFields,this.ref).catch(function(reason){return warn('_parsedAnnotations: "'.concat(reason,'".')),null}));var popupAnnotations,widgetAnnotations,annotation,sortedAnnotations=[];for(annotation of await Promise.all(annotationPromises))annotation&&(annotation instanceof WidgetAnnotation?widgetAnnotations=widgetAnnotations||[]:annotation instanceof PopupAnnotation?popupAnnotations=popupAnnotations||[]:sortedAnnotations).push(annotation);return widgetAnnotations&&sortedAnnotations.push(...widgetAnnotations),popupAnnotations&&sortedAnnotations.push(...popupAnnotations),sortedAnnotations});return shadow(this,"_parsedAnnotations",promise)}get jsActions(){return shadow(this,"jsActions",collectActions(this.xref,this.pageDict,PageActionEventType))}}function _createPartialEvaluator(handler){return new PartialEvaluator({xref:this.xref,handler:handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalColorSpaceCache:this.globalColorSpaceCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions})}function _getInheritableProperty(key){var value=getInheritableProperty({dict:this.pageDict,key:key,getArray:1{obj instanceof Dict&&(annotation.oldAnnotation=obj.clone())},()=>{warn("Cannot fetch `oldAnnotation` for: ".concat(ref,"."))})),delete annotation.id):warn("A non-linked annotation cannot be modified: ".concat(annotation.id))}(annotation);await Promise.all(promises)}async function _getMergedResources(streamDict,keys){streamDict=null==streamDict?void 0:streamDict.get("Resources");return streamDict instanceof Dict&&streamDict.size?(await ObjectLoader.load(streamDict,keys,this.xref),Dict.merge({xref:this.xref,dictArray:[streamDict,this.resources],mergeSubDicts:!0})):this.resources}var PDF_HEADER_SIGNATURE=new Uint8Array([37,80,68,70,45]),STARTXREF_SIGNATURE=new Uint8Array([115,116,97,114,116,120,114,101,102]),ENDOBJ_SIGNATURE=new Uint8Array([101,110,100,111,98,106]);function find(stream,signature){var limit=2[e,null]));if(xfa instanceof BaseStream&&!xfa.isEmpty)entries.set("xdp:xdp",xfa);else{if(!Array.isArray(xfa)||0===xfa.length)return null;for(var i=0,ii=xfa.length;i{}),_assertClassBrand(_PDFDocument_brand,this,_loadXfaImages).call(this)])}serializeXfaData(annotationStorage){return this.xfaFactory?this.xfaFactory.serializeData(annotationStorage):null}get version(){return this.catalog.version||_classPrivateFieldGet(_version,this)}get formInfo(){var formInfo={hasFields:!1,hasAcroForm:!1,hasXfa:!1,hasSignatures:!1},acroForm=this.catalog["acroForm"];if(acroForm)try{var fields=acroForm.get("Fields"),hasFields=Array.isArray(fields)&&0{var[_ref80,ref]=_ref80;return new Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:pageIndex,pageDict:_ref80,ref:ref,globalIdFactory:this._globalIdFactory,fontCache:catalog.fontCache,builtInCMapCache:catalog.builtInCMapCache,standardFontDataCache:catalog.standardFontDataCache,globalColorSpaceCache:catalog.globalColorSpaceCache,globalImageCache:catalog.globalImageCache,systemFontCache:catalog.systemFontCache,nonBlendModesSet:catalog.nonBlendModesSet,xfaFactory:xfaFactory})}),_classPrivateFieldGet(_pagePromises,this).set(pageIndex,cachedPromise),cachedPromise)}async checkFirstPage(){var recoveryMode=0{}):promise=Promise.resolve(new Page({pdfManager:pdfManager,xref:this.xref,pageIndex:pageIndex,pageDict:pageDict,ref:ref,globalIdFactory:this._globalIdFactory,fontCache:catalog.fontCache,builtInCMapCache:catalog.builtInCMapCache,standardFontDataCache:catalog.standardFontDataCache,globalColorSpaceCache:this.globalColorSpaceCache,globalImageCache:catalog.globalImageCache,systemFontCache:catalog.systemFontCache,nonBlendModesSet:catalog.nonBlendModesSet,xfaFactory:null})),_classPrivateFieldGet(_pagePromises,this).set(pageIndex,promise)}catalog.setActualNumPages(pagesTree.size)}}async fontFallback(id,handler){var translatedFont,{catalog,pdfManager}=this;for(translatedFont of await Promise.all(catalog.fontCache))if(translatedFont.loadedName===id)return void translatedFont.fallback(handler,pdfManager.evaluatorOptions)}async cleanup(){return this.catalog?this.catalog.cleanup(0{if(!formInfo.hasFields)return null;var annotationGlobals=await this.annotationGlobals;if(!annotationGlobals)return null;var fieldRef,formInfo=annotationGlobals["acroForm"],visitedRefs=new RefSet,allFields=Object.create(null),fieldPromises=new Map,orphanFields=new RefSetCache;for(fieldRef of formInfo.get("Fields"))await _assertClassBrand(_PDFDocument_brand,this,_collectFieldObjects).call(this,"",null,fieldRef,fieldPromises,annotationGlobals,visitedRefs,orphanFields);var name,promises,allPromises=[];for([name,promises]of fieldPromises)await async function(name){allPromises.push(Promise.all(promises).then(fields=>{0<(fields=fields.filter(field=>!!field)).length&&(allFields[name]=fields)}))}(name);return await Promise.all(allPromises),{allFields:0fieldObject.some(object=>null!==object.actions))}get calculationOrderIds(){var _this$catalog$acroFor=null==(_this$catalog$acroFor=this.catalog.acroForm)?void 0:_this$catalog$acroFor.get("CO");if(!Array.isArray(_this$catalog$acroFor)||0===_this$catalog$acroFor.length)return shadow(this,"calculationOrderIds",null);var id,ids=[];for(id of _this$catalog$acroFor)id instanceof Ref&&ids.push(id.toString());return shadow(this,"calculationOrderIds",ids.length?ids:null)}get annotationGlobals(){return shadow(this,"annotationGlobals",AnnotationFactory.createGlobals(this.pdfManager))}}function _hasOnlyDocumentSignatures(fields){var recursionDepth=1{var isSignature;return(field=this.xref.fetchIfRef(field))instanceof Dict&&(field.has("Kids")?10<++recursionDepth?(warn("#hasOnlyDocumentSignatures: maximum recursion depth reached"),!1):_assertClassBrand(_PDFDocument_brand,this,_hasOnlyDocumentSignatures).call(this,field.get("Kids"),recursionDepth):(isSignature=isName(field.get("FT"),"Sig"),field=field.get("Rect"),field=Array.isArray(field)&&field.every(value=>0===value),isSignature&&field))})}function _collectSignatureCertificates(fields,collectedSignatureCertificates){var visited=2partialEvaluator.handleSetFont(resources,[Name.get(fontName),1],null,operatorList,task,initialState,fallbackFontDict,cssFontInfo).catch(reason=>(warn('loadXfaFonts: "'.concat(reason,'".')),null)),promises=[];for([fontName,font]of acroForm){var descriptor=font.get("FontDescriptor");descriptor instanceof Dict&&validateCSSFont(descriptor={fontFamily:descriptor.get("FontFamily").replaceAll(/[ ]+(\d)/g,"$1"),fontWeight:descriptor.get("FontWeight"),italicAngle:-descriptor.get("ItalicAngle")})&&promises.push(parseFont(fontName,null,descriptor))}await Promise.all(promises);handler=this.xfaFactory.setFonts(pdfFonts);if(handler){options.ignoreErrors=!0,pdfFonts.length=promises.length=0;var missing,_missing,reallyMissingFonts=new Set;for(missing of handler)getXfaFontName("".concat(missing,"-Regular"))||reallyMissingFonts.add(missing);reallyMissingFonts.size&&handler.push("PdfJS-Fallback");for(_missing of handler)if(!reallyMissingFonts.has(_missing))for(var fontInfo of[{name:"Regular",fontWeight:400,italicAngle:0},{name:"Bold",fontWeight:700,italicAngle:0},{name:"Italic",fontWeight:400,italicAngle:12},{name:"BoldItalic",fontWeight:700,italicAngle:12}]){var name="".concat(_missing,"-").concat(fontInfo.name);promises.push(parseFont(name,getXfaFontDict(name),{fontFamily:_missing,fontWeight:fontInfo.fontWeight,italicAngle:fontInfo.italicAngle}))}await Promise.all(promises),this.xfaFactory.appendFonts(pdfFonts,reallyMissingFonts)}}}}}async function _getLinearizationPage(pageIndex){var{catalog,linearization,xref}=this,linearization=Ref.get(linearization.objectNumberFirst,0);try{var obj=await xref.fetchAsync(linearization);if(obj instanceof Dict){var type=obj.getRaw("Type");if(isName(type=type instanceof Ref?await xref.fetchAsync(type):type,"Page")||!obj.has("Type")&&!obj.has("Kids")&&obj.has("Contents"))return catalog.pageKidsCountCache.has(linearization)||catalog.pageKidsCountCache.put(linearization,1),catalog.pageIndexCache.has(linearization)||catalog.pageIndexCache.put(linearization,0),[obj,linearization]}throw new FormatError("The Linearization dictionary doesn't point to a valid Page dictionary.")}catch(reason){return warn('_getLinearizationPage: "'.concat(reason.message,'".')),catalog.getPageDict(pageIndex)}}async function _collectFieldObjects(name,parentRef,fieldRef,promises,annotationGlobals,visitedRefs,orphanFields){var xref=this["xref"];if(fieldRef instanceof Ref&&!visitedRefs.has(fieldRef)){visitedRefs.put(fieldRef);var field=await xref.fetchAsync(fieldRef);if(field instanceof Dict){var subtype=(subtype=await field.getAsync("Subtype"))instanceof Name?subtype.name:null;if("Link"!==subtype){if(field.has("T")){subtype=stringToPDFString(await field.getAsync("T"));name=""===name?subtype:"".concat(name,".").concat(subtype)}else for(var obj=field;;){if((obj=obj.getRaw("Parent")||parentRef)instanceof Ref){if(visitedRefs.has(obj))break;obj=await xref.fetchAsync(obj)}if(!(obj instanceof Dict))break;if(obj.has("T")){var _partName=stringToPDFString(await obj.getAsync("T"));name=""===name?_partName:"".concat(name,".").concat(_partName);break}}if(parentRef&&!field.has("Parent")&&isName(field.get("Subtype"),"Widget")&&orphanFields.put(fieldRef,parentRef),promises.has(name)||promises.set(name,[]),promises.get(name).push(AnnotationFactory.create(xref,fieldRef,annotationGlobals,null,!0,orphanFields,null).then(annotation=>null==annotation?void 0:annotation.getFieldObject()).catch(function(reason){return warn('#collectFieldObjects: "'.concat(reason,'".')),null})),field.has("Kids")){subtype=await field.getAsync("Kids");if(Array.isArray(subtype))for(var kid of subtype)await _assertClassBrand(_PDFDocument_brand,this,_collectFieldObjects).call(this,name,fieldRef,kid,promises,annotationGlobals,visitedRefs,orphanFields)}}}}}function parseDocBaseUrl(url){if(url){var absoluteUrl=createValidAbsoluteUrl(url);if(absoluteUrl)return absoluteUrl.href;warn('Invalid absolute docBaseUrl: "'.concat(url,'".'))}return null}class BasePdfManager{constructor(_ref81){var{docBaseUrl:_ref81,docId,enableXfa,evaluatorOptions,handler,password}=_ref81,_ref81=(this._docBaseUrl=parseDocBaseUrl(_ref81),this._docId=docId,this._password=password,this.enableXfa=enableXfa,evaluatorOptions.isOffscreenCanvasSupported&&(evaluatorOptions.isOffscreenCanvasSupported=FeatureTest.isOffscreenCanvasSupported),evaluatorOptions.isImageDecoderSupported&&(evaluatorOptions.isImageDecoderSupported=FeatureTest.isImageDecoderSupported),this.evaluatorOptions=Object.freeze(evaluatorOptions),ImageResizer.setOptions(evaluatorOptions),JpegStream.setOptions(evaluatorOptions),OperatorList.setOptions(evaluatorOptions),_objectSpread({},evaluatorOptions,{handler:handler}));JpxImage.setOptions(_ref81),IccColorSpace.setOptions(_ref81),CmykICCBasedCS.setOptions(_ref81)}get docId(){return this._docId}get password(){return this._password}get docBaseUrl(){return this._docBaseUrl}ensureDoc(prop,args){return this.ensure(this.pdfDocument,prop,args)}ensureXRef(prop,args){return this.ensure(this.pdfDocument.xref,prop,args)}ensureCatalog(prop,args){return this.ensure(this.pdfDocument.catalog,prop,args)}getPage(pageIndex){return this.pdfDocument.getPage(pageIndex)}fontFallback(id,handler){return this.pdfDocument.fontFallback(id,handler)}cleanup(){return this.pdfDocument.cleanup(0{var startCapability=Promise.withResolvers();return this.streamControllers[streamId]={controller:controller,startCall:startCapability,pullCall:null,cancelCall:null,isClosed:!1},comObj.postMessage({sourceName:sourceName,targetName:targetName,action:actionName,streamId:streamId,data:data,desiredSize:controller.desiredSize},transfers),startCapability.promise},pull:controller=>{var pullCapability=Promise.withResolvers();return this.streamControllers[streamId].pullCall=pullCapability,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.PULL,streamId:streamId,desiredSize:controller.desiredSize}),pullCapability.promise},cancel:reason=>{assert(reason instanceof Error,"cancel must have a valid reason");var cancelCapability=Promise.withResolvers();return this.streamControllers[streamId].cancelCall=cancelCapability,this.streamControllers[streamId].isClosed=!0,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.CANCEL,streamId:streamId,reason:wrapReason(reason)}),cancelCapability.promise}},queueingStrategy)}destroy(){var _classPrivateFieldGet7;null!=(_classPrivateFieldGet7=_classPrivateFieldGet(_messageAC,this))&&_classPrivateFieldGet7.abort(),_classPrivateFieldSet(_messageAC,this,null)}}function _onMessage(_ref97){var data=_ref97["data"];if(data.targetName===this.sourceName)if(data.stream)_assertClassBrand(_MessageHandler_brand,this,_processStreamMessage).call(this,data);else if(data.callback){var _ref97=data.callbackId,capability=this.callbackCapabilities[_ref97];if(!capability)throw new Error("Cannot resolve callback ".concat(_ref97));if(delete this.callbackCapabilities[_ref97],data.callback===CallbackKind.DATA)capability.resolve(data.data);else{if(data.callback!==CallbackKind.ERROR)throw new Error("Unexpected callback case");capability.reject(wrapReason(data.reason))}}else{var sourceName,targetName,comObj,_ref97=this.actionHandler[data.action];if(!_ref97)throw new Error("Unknown action from worker: ".concat(data.action));data.callbackId?(sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj,Promise.try(_ref97,data.data).then(function(result){comObj.postMessage({sourceName:sourceName,targetName:targetName,callback:CallbackKind.DATA,callbackId:data.callbackId,data:result})},function(reason){comObj.postMessage({sourceName:sourceName,targetName:targetName,callback:CallbackKind.ERROR,callbackId:data.callbackId,reason:wrapReason(reason)})})):data.streamId?_assertClassBrand(_MessageHandler_brand,this,_createStreamSink).call(this,data):_ref97(data.data)}}function _createStreamSink(data){var streamId=data.streamId,sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj,self=this,action=this.actionHandler[data.action],streamSink={enqueue(chunk){var lastDesiredSize,size=1>")}async function writeStream(stream,buffer,transform){var bytes=stream.getBytes(),stream=stream["dict"],[filter,params]=await Promise.all([stream.getAsync("Filter"),stream.getAsync("DecodeParms")]),isFilterZeroFlateDecode=isName(Array.isArray(filter)?await stream.xref.fetchIfRefAsync(filter[0]):filter,"FlateDecode");if(256<=bytes.length||isFilterZeroFlateDecode)try{var newFilter,newParams,cs=new CompressionStream("deflate"),writer=cs.writable.getWriter(),buf=(await writer.ready,writer.write(bytes).then(async()=>{await writer.ready,await writer.close()}).catch(()=>{}),await new Response(cs.readable).arrayBuffer()),bytes=new Uint8Array(buf);filter?isFilterZeroFlateDecode||(newFilter=Array.isArray(filter)?[Name.get("FlateDecode"),...filter]:[Name.get("FlateDecode"),filter],params&&(newParams=Array.isArray(params)?[null,...params]:[null,params])):newFilter=Name.get("FlateDecode"),newFilter&&stream.set("Filter",newFilter),newParams&&stream.set("DecodeParms",newParams)}catch(ex){info('writeStream - cannot compress data: "'.concat(ex,'".'))}cs=bytesToString(bytes);transform&&(cs=transform.encryptString(cs)),stream.set("Length",cs.length),await writeDict(stream,buffer,transform),buffer.push(" stream\n",cs,"\nendstream")}async function writeArray(array,buffer,transform){buffer.push("[");var val,first=!0;for(val of array)first?first=!1:buffer.push(" "),await writeValue(val,buffer,transform);buffer.push("]")}async function writeValue(value,buffer,transform){value instanceof Name?buffer.push("/".concat(escapePDFName(value.name))):value instanceof Ref?buffer.push("".concat(value.num," ").concat(value.gen," R")):Array.isArray(value)||ArrayBuffer.isView(value)?await writeArray(value,buffer,transform):"string"==typeof value?(transform&&(value=transform.encryptString(value)),buffer.push("(".concat(escapeString(value),")"))):"number"==typeof value?buffer.push(numberToString(value)):"boolean"==typeof value?buffer.push(value.toString()):value instanceof Dict?await writeDict(value,buffer,transform):value instanceof BaseStream?await writeStream(value,buffer,transform):null===value?buffer.push("null"):warn("Unhandled value in writer: ".concat(typeof value,", please file a bug."))}function writeInt(number,size,offset,buffer){for(var i=size+offset-1;offset-1>=8;return offset+size}function writeString(string,offset,buffer){for(var ii=string.length,i=0;istr.length)),array=new Uint8Array(filename),offset=0;for(str of time)offset=writeString(str,offset,array);return bytesToString(calculateMD5(array,0,array.length))}function writeXFADataForAcroform(str,changes){var xfa,path,value,nodePath,node,xml=new SimpleXMLParser({hasAttributes:!0}).parseFromString(str);for({xfa}of changes)xfa&&({path,value}=xfa,path)&&(nodePath=parseXFAPath(path),(node=!(node=xml.documentElement.searchNode(nodePath,0))&&1new SimpleDOMNode("value",val)):[new SimpleDOMNode("#text",value)]:warn("Node not found for path: ".concat(path)));str=[];return xml.documentElement.dump(str),str.join("")}async function updateAcroform(_ref83){var dict,{acroForm:_ref83,acroFormRef,hasXfa,hasXfaDatasetsEntry,xfaDatasetsRef,needAppearances,changes}=_ref83;!hasXfa||hasXfaDatasetsEntry||xfaDatasetsRef||warn("XFA - Cannot save it"),(needAppearances||hasXfa&&xfaDatasetsRef&&!hasXfaDatasetsEntry)&&(dict=_ref83.clone(),hasXfa&&!hasXfaDatasetsEntry&&((hasXfa=_ref83.get("XFA").slice()).splice(2,0,"datasets"),hasXfa.splice(3,0,xfaDatasetsRef),dict.set("XFA",hasXfa)),needAppearances&&dict.set("NeedAppearances",!0),changes.put(acroFormRef,{data:dict}))}function updateXFA(_ref84){var{xfaData:_ref84,xfaDatasetsRef,changes,xref}=_ref84,_ref84=(null===_ref84&&(_ref84=writeXFADataForAcroform(xref.fetchIfRef(xfaDatasetsRef).getString(),changes)),new StringStream(_ref84));_ref84.dict=new Dict(xref),_ref84.dict.set("Type",Name.get("EmbeddedFile")),changes.put(xfaDatasetsRef,{data:_ref84})}async function getXRefTable(xrefInfo,baseOffset,newRefs,newXref,buffer){buffer.push("xref\n");var ref,data,indexes=getIndexes(newRefs),indexesPosition=0;for({ref,data}of newRefs)ref.num===indexes[indexesPosition]&&(buffer.push("".concat(indexes[indexesPosition]," ").concat(indexes[indexesPosition+1],"\n")),indexesPosition+=2),null!==data?(buffer.push("".concat(baseOffset.toString().padStart(10,"0")," ").concat(Math.min(ref.gen,65535).toString().padStart(5,"0")," n\r\n")),baseOffset+=data.length):buffer.push("0000000000 ".concat(Math.min(ref.gen+1,65535).toString().padStart(5,"0")," f\r\n"));computeIDs(baseOffset,xrefInfo,newXref),buffer.push("trailer\n"),await writeDict(newXref,buffer),buffer.push("\nstartxref\n",baseOffset.toString(),"\n%%EOF\n")}function getIndexes(newRefs){var ref,indexes=[];for({ref}of newRefs)ref.num===indexes.at(-2)+indexes.at(-1)?indexes[indexes.length-1]+=1:indexes.push(ref.num,1);return indexes}async function getXRefStreamTable(xrefInfo,baseOffset,newRefs,newXref,buffer){var ref,_data5,xrefTableData=[],maxOffset=0,maxGen=0;for({ref,data:_data5}of newRefs){var gen=void 0,maxOffset=Math.max(maxOffset,baseOffset);null!==_data5?(gen=Math.min(ref.gen,65535),xrefTableData.push([1,baseOffset,gen]),baseOffset+=_data5.length):(gen=Math.min(ref.gen+1,65535),xrefTableData.push([0,0,gen])),maxGen=Math.max(maxGen,gen)}newXref.set("Index",getIndexes(newRefs));var type,objOffset,_gen,sizes=[1,getSizeInBytes(maxOffset),getSizeInBytes(maxGen)],newRefs=(newXref.set("W",sizes),computeIDs(baseOffset,xrefInfo,newXref),Math.sumPrecise(sizes)),data=new Uint8Array(newRefs*xrefTableData.length),newRefs=new Stream(data),offset=(newRefs.dict=newXref,0);for([type,objOffset,_gen]of xrefTableData)offset=writeInt(type,sizes[0],offset,data),offset=writeInt(objOffset,sizes[1],offset,data),offset=writeInt(_gen,sizes[2],offset,data);await writeObject(xrefInfo.newRef,newRefs,buffer,{}),buffer.push("startxref\n",baseOffset.toString(),"\n%%EOF\n")}function computeIDs(baseOffset,xrefInfo,newXref){Array.isArray(xrefInfo.fileIds)&&0a.ref.num-b.ref.num)}async function incrementalUpdate(_ref85){var data,{originalData:_ref85,xrefInfo,changes,xref=null,hasXfa=!1,xfaDatasetsRef=null,hasXfaDatasetsEntry=!1,needAppearances,acroFormRef=null,acroForm=null,xfaData=null,useXrefStream=!1}=_ref85,acroForm=(await updateAcroform({xref:xref,acroForm:acroForm,acroFormRef:acroFormRef,hasXfa:hasXfa,hasXfaDatasetsEntry:hasXfaDatasetsEntry,xfaDatasetsRef:xfaDatasetsRef,needAppearances:needAppearances,changes:changes}),hasXfa&&updateXFA({xfaData:xfaData,xfaDatasetsRef:xfaDatasetsRef,changes:changes,xref:xref}),getTrailerDict(xrefInfo,changes,useXrefStream)),buffer=[],acroFormRef=await writeChanges(changes,xref,buffer),hasXfaDatasetsEntry=_ref85.length,needAppearances=_ref85.at(-1);10!==needAppearances&&13!==needAppearances&&(buffer.push("\n"),hasXfaDatasetsEntry+=1);for({data}of acroFormRef)null!==data&&buffer.push(data);await(useXrefStream?getXRefStreamTable:getXRefTable)(xrefInfo,hasXfaDatasetsEntry,acroFormRef,acroForm,buffer);var str,hasXfa=_ref85.length+Math.sumPrecise(buffer.map(str=>str.length)),array=new Uint8Array(hasXfa),offset=(array.set(_ref85),_ref85.length);for(str of buffer)offset=writeString(str,offset,array);return array}class PDFWorkerStream{constructor(msgHandler){this._msgHandler=msgHandler,this._contentLength=null,this._fullRequestReader=null,this._rangeRequestReaders=[]}getFullReader(){return assert(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once."),this._fullRequestReader=new PDFWorkerStreamReader(this._msgHandler),this._fullRequestReader}getRangeReader(begin,end){begin=new PDFWorkerStreamRangeReader(begin,end,this._msgHandler);return this._rangeRequestReaders.push(begin),begin}cancelAllRequests(reason){var _this$_fullRequestRea,reader;null!=(_this$_fullRequestRea=this._fullRequestReader)&&_this$_fullRequestRea.cancel(reason);for(reader of this._rangeRequestReaders.slice(0))reader.cancel(reason)}}class PDFWorkerStreamReader{constructor(msgHandler){this._msgHandler=msgHandler,this.onProgress=null,this._contentLength=null,this._isRangeSupported=!1,this._isStreamingSupported=!1;msgHandler=this._msgHandler.sendWithStream("GetReader");this._reader=msgHandler.getReader(),this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then(data=>{this._isStreamingSupported=data.isStreamingSupported,this._isRangeSupported=data.isRangeSupported,this._contentLength=data.contentLength})}get headersReady(){return this._headersReady}get contentLength(){return this._contentLength}get isStreamingSupported(){return this._isStreamingSupported}get isRangeSupported(){return this._isRangeSupported}async read(){var{value,done}=await this._reader.read();return done?{value:void 0,done:!0}:{value:value.buffer,done:!1}}cancel(reason){this._reader.cancel(reason)}}class PDFWorkerStreamRangeReader{constructor(begin,end,msgHandler){this._msgHandler=msgHandler,this.onProgress=null;msgHandler=this._msgHandler.sendWithStream("GetRangeReader",{begin:begin,end:end});this._reader=msgHandler.getReader()}get isStreamingSupported(){return!1}async read(){var{value,done}=await this._reader.read();return done?{value:void 0,done:!0}:{value:value.buffer,done:!1}}cancel(reason){this._reader.cancel(reason)}}class WorkerTask{constructor(name){this.name=name,this.terminated=!1,this._capability=Promise.withResolvers()}get finished(){return this._capability.promise}finish(){this._capability.resolve()}terminate(){this.terminated=!0}ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}class WorkerMessageHandler{static setup(handler,port){var testMessageProcessed=!1;handler.on("test",data=>{testMessageProcessed||(testMessageProcessed=!0,handler.send("test",data instanceof Uint8Array))}),handler.on("configure",data=>{setVerbosityLevel(data.verbosity)}),handler.on("GetDocRequest",data=>this.createDocumentHandler(data,port))}static createDocumentHandler(docParams,port){var pdfManager,terminated=!1,cancelXHRs=null,WorkerTasks=new Set,verbosity=getVerbosityLevel(),{docId,apiVersion}=docParams;if("5.3.93"!==apiVersion)throw new Error('The API version "'.concat(apiVersion,'" does not match ')+'the Worker version "'.concat("5.3.93",'".'));var prop,_prop,buildMsg=(type,prop)=>"The `".concat(type,".prototype` contains unexpected enumerable property ")+'"'.concat(prop,'", thus breaking e.g. `for...in` iteration of ').concat(type,"s.");for(prop in{})throw new Error(buildMsg("Object",prop));for(_prop in[])throw new Error(buildMsg("Array",_prop));var apiVersion=docId+"_worker",handler=new MessageHandler(apiVersion,docId,port);function ensureNotTerminated(){if(terminated)throw new Error("Worker was terminated")}function startWorkerTask(task){WorkerTasks.add(task)}function finishWorkerTask(task){task.finish(),WorkerTasks.delete(task)}async function loadDocument(recoveryMode){await pdfManager.ensureDoc("checkHeader"),await pdfManager.ensureDoc("parseStartXRef"),await pdfManager.ensureDoc("parse",[recoveryMode]),await pdfManager.ensureDoc("checkFirstPage",[recoveryMode]),await pdfManager.ensureDoc("checkLastPage",[recoveryMode]);var recoveryMode=await pdfManager.ensureDoc("isPureXfa"),[task,fingerprints]=(recoveryMode&&(startWorkerTask(task=new WorkerTask("loadXfaResources")),await pdfManager.ensureDoc("loadXfaResources",[handler,task]),finishWorkerTask(task)),await Promise.all([pdfManager.ensureDoc("numPages"),pdfManager.ensureDoc("fingerprints")]));return{numPages:task,fingerprints:fingerprints,htmlForXfa:recoveryMode?await pdfManager.ensureDoc("htmlForXfa"):null}}function setupDoc(data){function onSuccess(doc){ensureNotTerminated(),handler.send("GetDoc",{pdfInfo:doc})}function onFailure(ex){var task;ensureNotTerminated(),ex instanceof PasswordException?(startWorkerTask(task=new WorkerTask("PasswordException: response ".concat(ex.code))),handler.sendWithPromise("PasswordRequest",ex).then(function(_ref88){_ref88=_ref88.password;finishWorkerTask(task),pdfManager.updatePassword(_ref88),pdfManagerReady()}).catch(function(){finishWorkerTask(task),handler.send("DocException",ex)})):handler.send("DocException",wrapReason(ex))}function pdfManagerReady(){ensureNotTerminated(),loadDocument(!1).then(onSuccess,function(reason){ensureNotTerminated(),reason instanceof XRefParseException?pdfManager.requestLoadedStream().then(function(){ensureNotTerminated(),loadDocument(!0).then(onSuccess,onFailure)}):onFailure(reason)})}ensureNotTerminated(),async function(_ref86){var pdfStream,fullRequest,pdfManagerCapability,newPdfManager,cachedChunks,loaded,{data:_ref86,password,disableAutoFetch,rangeChunkSize,length,docBaseUrl,enableXfa,evaluatorOptions}=_ref86,pdfManagerArgs={source:null,disableAutoFetch:disableAutoFetch,docBaseUrl:docBaseUrl,docId:docId,enableXfa:enableXfa,evaluatorOptions:evaluatorOptions,handler:handler,length:length,password:password,rangeChunkSize:rangeChunkSize};return _ref86?(pdfManagerArgs.source=_ref86,new LocalPdfManager(pdfManagerArgs)):(pdfStream=new PDFWorkerStream(handler),fullRequest=pdfStream.getFullReader(),pdfManagerCapability=Promise.withResolvers(),cachedChunks=[],loaded=0,fullRequest.headersReady.then(function(){if(fullRequest.isRangeSupported){pdfManagerArgs.source=pdfStream,pdfManagerArgs.length=fullRequest.contentLength,pdfManagerArgs.disableAutoFetch||(pdfManagerArgs.disableAutoFetch=fullRequest.isStreamingSupported),newPdfManager=new NetworkPdfManager(pdfManagerArgs);for(var chunk of cachedChunks)newPdfManager.sendProgressiveData(chunk);cachedChunks=[],pdfManagerCapability.resolve(newPdfManager),cancelXHRs=null}}).catch(function(reason){pdfManagerCapability.reject(reason),cancelXHRs=null}),new Promise(function(resolve,reject){var readChunk=function(_ref87){var pdfFile,{value:_ref87,done}=_ref87;try{ensureNotTerminated(),done?(newPdfManager||(pdfFile=arrayBuffersToBytes(cachedChunks),cachedChunks=[],length&&pdfFile.length!==length&&warn("reported HTTP length is different from actual"),pdfManagerArgs.source=pdfFile,newPdfManager=new LocalPdfManager(pdfManagerArgs),pdfManagerCapability.resolve(newPdfManager)),cancelXHRs=null):(loaded+=_ref87.byteLength,fullRequest.isStreamingSupported||handler.send("DocProgress",{loaded:loaded,total:Math.max(loaded,fullRequest.contentLength||0)}),newPdfManager?newPdfManager.sendProgressiveData(_ref87):cachedChunks.push(_ref87),fullRequest.read().then(readChunk,reject))}catch(e){reject(e)}};fullRequest.read().then(readChunk,reject)}).catch(function(e){pdfManagerCapability.reject(e),cancelXHRs=null}),cancelXHRs=reason=>{pdfStream.cancelAllRequests(reason)},pdfManagerCapability.promise)}(data).then(function(newPdfManager){if(terminated)throw newPdfManager.terminate(new AbortException("Worker was terminated.")),new Error("Worker was terminated");(pdfManager=newPdfManager).requestLoadedStream(!0).then(stream=>{handler.send("DataLoaded",{length:stream.bytes.byteLength})})}).then(pdfManagerReady,onFailure)}return handler.on("GetPage",function(data){return pdfManager.getPage(data.pageIndex).then(function(page){return Promise.all([pdfManager.ensure(page,"rotate"),pdfManager.ensure(page,"ref"),pdfManager.ensure(page,"userUnit"),pdfManager.ensure(page,"view")]).then(function(_ref89){var[_ref89,ref,userUnit,view]=_ref89;return{rotate:_ref89,ref:ref,refStr:null!=(_ref89=null==ref?void 0:ref.toString())?_ref89:null,userUnit:userUnit,view:view}})})}),handler.on("GetPageIndex",function(data){data=Ref.get(data.num,data.gen);return pdfManager.ensureCatalog("getPageIndex",[data])}),handler.on("GetDestinations",function(data){return pdfManager.ensureCatalog("destinations")}),handler.on("GetDestination",function(data){return pdfManager.ensureCatalog("getDestination",[data.id])}),handler.on("GetPageLabels",function(data){return pdfManager.ensureCatalog("pageLabels")}),handler.on("GetPageLayout",function(data){return pdfManager.ensureCatalog("pageLayout")}),handler.on("GetPageMode",function(data){return pdfManager.ensureCatalog("pageMode")}),handler.on("GetViewerPreferences",function(data){return pdfManager.ensureCatalog("viewerPreferences")}),handler.on("GetOpenAction",function(data){return pdfManager.ensureCatalog("openAction")}),handler.on("GetAttachments",function(data){return pdfManager.ensureCatalog("attachments")}),handler.on("GetDocJSActions",function(data){return pdfManager.ensureCatalog("jsActions")}),handler.on("GetPageJSActions",function(_ref90){_ref90=_ref90.pageIndex;return pdfManager.getPage(_ref90).then(page=>pdfManager.ensure(page,"jsActions"))}),handler.on("GetOutline",function(data){return pdfManager.ensureCatalog("documentOutline")}),handler.on("GetOptionalContentConfig",function(data){return pdfManager.ensureCatalog("optionalContentConfig")}),handler.on("GetPermissions",function(data){return pdfManager.ensureCatalog("permissions")}),handler.on("GetMetadata",function(data){return Promise.all([pdfManager.ensureDoc("documentInfo"),pdfManager.ensureCatalog("metadata")])}),handler.on("GetMarkInfo",function(data){return pdfManager.ensureCatalog("markInfo")}),handler.on("GetData",function(data){return pdfManager.requestLoadedStream().then(stream=>stream.bytes)}),handler.on("GetAnnotations",function(_ref91){var{pageIndex,intent}=_ref91;return pdfManager.getPage(pageIndex).then(function(page){var task=new WorkerTask("GetAnnotations: page ".concat(pageIndex));return startWorkerTask(task),page.getAnnotationsData(handler,task,intent).then(data=>(finishWorkerTask(task),data),reason=>{throw finishWorkerTask(task),reason})})}),handler.on("GetFieldObjects",function(data){return pdfManager.ensureDoc("fieldObjects").then(fieldObjects=>(null==fieldObjects?void 0:fieldObjects.allFields)||null)}),handler.on("HasJSActions",function(data){return pdfManager.ensureDoc("hasJSActions")}),handler.on("GetCalculationOrderIds",function(data){return pdfManager.ensureDoc("calculationOrderIds")}),handler.on("SaveDocument",async function(_ref92){var structTreeRoot,{isPureXfa:_ref92,numPages,annotationStorage,filename}=_ref92,globalPromises=[pdfManager.requestLoadedStream(),pdfManager.ensureCatalog("acroForm"),pdfManager.ensureCatalog("acroFormRef"),pdfManager.ensureDoc("startXRef"),pdfManager.ensureDoc("xref"),pdfManager.ensureDoc("linearization"),pdfManager.ensureCatalog("structTreeRoot")],changes=new RefSetCache,promises=[],newAnnotationsByPage=_ref92?null:getNewAnnotationsMap(annotationStorage),[globalPromises,acroForm,acroFormRef,startXRef,xref,linearization,_structTreeRoot]=await Promise.all(globalPromises),catalogRef=xref.trailer.getRaw("Root")||null;if(newAnnotationsByPage){_structTreeRoot?await _structTreeRoot.canUpdateStructTree({pdfManager:pdfManager,newAnnotationsByPage:newAnnotationsByPage})&&(structTreeRoot=_structTreeRoot):await StructTreeRoot.canCreateStructureTree({catalogRef:catalogRef,pdfManager:pdfManager,newAnnotationsByPage:newAnnotationsByPage})&&(structTreeRoot=null);var pageIndex,annotations,imagePromises=AnnotationFactory.generateImages(annotationStorage.values(),xref,pdfManager.evaluatorOptions.isOffscreenCanvasSupported),newAnnotationPromises=void 0===structTreeRoot?promises:[];for([pageIndex,annotations]of newAnnotationsByPage)await async function(pageIndex,annotations){newAnnotationPromises.push(pdfManager.getPage(pageIndex).then(page=>{var task=new WorkerTask("Save (editor): page ".concat(pageIndex));return startWorkerTask(task),page.saveNewAnnotations(handler,task,annotations,imagePromises,changes).finally(function(){finishWorkerTask(task)})}))}(pageIndex,annotations);null===structTreeRoot?promises.push(Promise.all(newAnnotationPromises).then(async()=>{await StructTreeRoot.createStructureTree({newAnnotationsByPage:newAnnotationsByPage,xref:xref,catalogRef:catalogRef,pdfManager:pdfManager,changes:changes})})):structTreeRoot&&promises.push(Promise.all(newAnnotationPromises).then(async()=>{await structTreeRoot.updateStructureTree({newAnnotationsByPage:newAnnotationsByPage,pdfManager:pdfManager,changes:changes})}))}if(_ref92)promises.push(pdfManager.ensureDoc("serializeXfaData",[annotationStorage]));else for(var _pageIndex3=0;_pageIndex3ref.needAppearances),xfa=acroForm instanceof Dict&&acroForm.get("XFA")||null,xfaDatasetsRef=null,hasXfaDatasetsEntry=!1;if(Array.isArray(xfa)){for(var i=0,ii=xfa.length;i{xref.resetNewTemporaryRef()})}),handler.on("GetOperatorList",function(data,sink){var pageIndex=data.pageIndex;pdfManager.getPage(pageIndex).then(function(page){var task=new WorkerTask("GetOperatorList: page ".concat(pageIndex)),start=(startWorkerTask(task),verbosity>=VerbosityLevel.INFOS?Date.now():0);page.getOperatorList({handler:handler,sink:sink,task:task,intent:data.intent,cacheKey:data.cacheKey,annotationStorage:data.annotationStorage,modifiedIds:data.modifiedIds}).then(function(operatorListInfo){finishWorkerTask(task),start&&info("page=".concat(pageIndex+1," - getOperatorList: time=")+"".concat(Date.now()-start,"ms, len=").concat(operatorListInfo.length)),sink.close()},function(reason){finishWorkerTask(task),task.terminated||sink.error(reason)})})}),handler.on("GetTextContent",function(data,sink){var{pageIndex,includeMarkedContent,disableNormalization}=data;pdfManager.getPage(pageIndex).then(function(page){var task=new WorkerTask("GetTextContent: page "+pageIndex),start=(startWorkerTask(task),verbosity>=VerbosityLevel.INFOS?Date.now():0);page.extractTextContent({handler:handler,task:task,sink:sink,includeMarkedContent:includeMarkedContent,disableNormalization:disableNormalization}).then(function(){finishWorkerTask(task),start&&info("page=".concat(pageIndex+1," - getTextContent: time=")+"".concat(Date.now()-start,"ms")),sink.close()},function(reason){finishWorkerTask(task),task.terminated||sink.error(reason)})})}),handler.on("GetStructTree",function(data){return pdfManager.getPage(data.pageIndex).then(page=>pdfManager.ensure(page,"getStructTree"))}),handler.on("FontFallback",function(data){return pdfManager.fontFallback(data.id,handler)}),handler.on("Cleanup",function(data){return pdfManager.cleanup(!0)}),handler.on("Terminate",function(data){terminated=!0;var cleanupPromise,task,waitOn=[];pdfManager?(pdfManager.terminate(new AbortException("Worker was terminated.")),cleanupPromise=pdfManager.cleanup(),waitOn.push(cleanupPromise),pdfManager=null):clearGlobalCaches(),null!=cancelXHRs&&cancelXHRs(new AbortException("Worker was terminated."));for(task of WorkerTasks)waitOn.push(task.finished),task.terminate();return Promise.all(waitOn).then(function(){handler.destroy(),handler=null})}),handler.on("Ready",function(data){setupDoc(docParams),docParams=null}),apiVersion}static initializeFromPort(port){var handler=new MessageHandler("worker","main",port);this.setup(handler,port),handler.send("ready",null)}}_WorkerMessageHandler=WorkerMessageHandler,"undefined"==typeof window&&!isNodeJS&&"undefined"!=typeof self&&"function"==typeof self.postMessage&&"onmessage"in self&&_WorkerMessageHandler.initializeFromPort(self),globalThis.pdfjsWorker={WorkerMessageHandler:WorkerMessageHandler};export{WorkerMessageHandler}; \ No newline at end of file diff --git a/thirdparty/pdfjs/pdf.worker.legacy.js b/thirdparty/pdfjs/pdf.worker.legacy.js new file mode 100644 index 0000000..c1d3a76 --- /dev/null +++ b/thirdparty/pdfjs/pdf.worker.legacy.js @@ -0,0 +1 @@ +var _ColorSpaceUtils,_OperatorList,_GlobalImageCache,_StructTreeRoot,_WorkerMessageHandler;function ownKeys(e,r){var o,t=Object.keys(e);return Object.getOwnPropertySymbols&&(o=Object.getOwnPropertySymbols(e),r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)),t}function _objectSpread(e){for(var r=1;r{var isCallable=__webpack_require__(4901);module.exports=function(it){return"object"==typeof it?null!==it:isCallable(it)}},81:(module,__unused_webpack_exports,__webpack_require__)=>{var call=__webpack_require__(9565),aCallable=__webpack_require__(9306),anObject=__webpack_require__(8551),tryToString=__webpack_require__(6823),getIteratorMethod=__webpack_require__(851),$TypeError=TypeError;module.exports=function(argument,usingIterator){var iteratorMethod=arguments.length<2?getIteratorMethod(argument):usingIterator;if(aCallable(iteratorMethod))return anObject(call(iteratorMethod,argument));throw new $TypeError(tryToString(argument)+" is not iterable")}},116:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),call=__webpack_require__(9565),iterate=__webpack_require__(2652),aCallable=__webpack_require__(9306),anObject=__webpack_require__(8551),getIteratorDirect=__webpack_require__(1767),iteratorClose=__webpack_require__(9539),findWithoutClosingOnEarlyError=__webpack_require__(4549)("find",TypeError);$({target:"Iterator",proto:!0,real:!0,forced:findWithoutClosingOnEarlyError},{find:function(predicate){anObject(this);try{aCallable(predicate)}catch(error){iteratorClose(this,"throw",error)}var record,counter;return findWithoutClosingOnEarlyError?call(findWithoutClosingOnEarlyError,this,predicate):(record=getIteratorDirect(this),iterate(record,function(value,stop){if(predicate(value,counter++))return stop(value)},{IS_RECORD:!(counter=0),INTERRUPTED:!0}).result)}})},283:(module,__unused_webpack_exports,__webpack_require__)=>{var uncurryThis=__webpack_require__(9504),fails=__webpack_require__(9039),isCallable=__webpack_require__(4901),hasOwn=__webpack_require__(9297),DESCRIPTORS=__webpack_require__(3724),CONFIGURABLE_FUNCTION_NAME=__webpack_require__(350).CONFIGURABLE,inspectSource=__webpack_require__(3706),__webpack_require__=__webpack_require__(1181),enforceInternalState=__webpack_require__.enforce,getInternalState=__webpack_require__.get,$String=String,defineProperty=Object.defineProperty,stringSlice=uncurryThis("".slice),replace=uncurryThis("".replace),join=uncurryThis([].join),CONFIGURABLE_LENGTH=DESCRIPTORS&&!fails(function(){return 8!==defineProperty(function(){},"length",{value:8}).length}),TEMPLATE=String(String).split("String"),__webpack_require__=module.exports=function(value,name,options){"Symbol("===stringSlice($String(name),0,7)&&(name="["+replace($String(name),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),options&&options.getter&&(name="get "+name),options&&options.setter&&(name="set "+name),(!hasOwn(value,"name")||CONFIGURABLE_FUNCTION_NAME&&value.name!==name)&&(DESCRIPTORS?defineProperty(value,"name",{value:name,configurable:!0}):value.name=name),CONFIGURABLE_LENGTH&&options&&hasOwn(options,"arity")&&value.length!==options.arity&&defineProperty(value,"length",{value:options.arity});try{options&&hasOwn(options,"constructor")&&options.constructor?DESCRIPTORS&&defineProperty(value,"prototype",{writable:!1}):value.prototype&&(value.prototype=void 0)}catch(error){}options=enforceInternalState(value);return hasOwn(options,"source")||(options.source=join(TEMPLATE,"string"==typeof name?name:"")),value};Function.prototype.toString=__webpack_require__(function(){return isCallable(this)&&getInternalState(this).source||inspectSource(this)},"toString")},350:(module,__unused_webpack_exports,__webpack_require__)=>{var DESCRIPTORS=__webpack_require__(3724),__webpack_require__=__webpack_require__(9297),FunctionPrototype=Function.prototype,getDescriptor=DESCRIPTORS&&Object.getOwnPropertyDescriptor,__webpack_require__=__webpack_require__(FunctionPrototype,"name"),PROPER=__webpack_require__&&"something"===function(){}.name,DESCRIPTORS=__webpack_require__&&(!DESCRIPTORS||getDescriptor(FunctionPrototype,"name").configurable);module.exports={EXISTS:__webpack_require__,PROPER:PROPER,CONFIGURABLE:DESCRIPTORS}},397:(module,__unused_webpack_exports,__webpack_require__)=>{__webpack_require__=__webpack_require__(7751);module.exports=__webpack_require__("document","documentElement")},421:module=>{module.exports={}},507:(module,__unused_webpack_exports,__webpack_require__)=>{var call=__webpack_require__(9565);module.exports=function(record,fn,ITERATOR_INSTEAD_OF_RECORD){for(var step,iterator=ITERATOR_INSTEAD_OF_RECORD?record:record.iterator,next=record.next;!(step=call(next,iterator)).done;)if(void 0!==(step=fn(step.value)))return step}},531:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),call=__webpack_require__(9565),aCallable=__webpack_require__(9306),anObject=__webpack_require__(8551),getIteratorDirect=__webpack_require__(1767),getIteratorFlattenable=__webpack_require__(8646),createIteratorProxy=__webpack_require__(9462),iteratorClose=__webpack_require__(9539),IS_PURE=__webpack_require__(6395),iteratorHelperThrowsOnInvalidIterator=__webpack_require__(684),__webpack_require__=__webpack_require__(4549),iteratorHelperThrowsOnInvalidIterator=!IS_PURE&&!iteratorHelperThrowsOnInvalidIterator("flatMap",function(){}),flatMapWithoutClosingOnEarlyError=!IS_PURE&&!iteratorHelperThrowsOnInvalidIterator&&__webpack_require__("flatMap",TypeError),__webpack_require__=IS_PURE||iteratorHelperThrowsOnInvalidIterator||flatMapWithoutClosingOnEarlyError,IteratorProxy=createIteratorProxy(function(){for(var result,inner,iterator=this.iterator,mapper=this.mapper;;){if(inner=this.inner)try{if(!(result=anObject(call(inner.next,inner.iterator))).done)return result.value;this.inner=null}catch(error){iteratorClose(iterator,"throw",error)}if(result=anObject(call(this.next,iterator)),this.done=!!result.done)return;try{this.inner=getIteratorFlattenable(mapper(result.value,this.counter++),!1)}catch(error){iteratorClose(iterator,"throw",error)}}});$({target:"Iterator",proto:!0,real:!0,forced:__webpack_require__},{flatMap:function(mapper){anObject(this);try{aCallable(mapper)}catch(error){iteratorClose(this,"throw",error)}return flatMapWithoutClosingOnEarlyError?call(flatMapWithoutClosingOnEarlyError,this,mapper):new IteratorProxy(getIteratorDirect(this),{mapper:mapper,inner:null})}})},616:(module,__unused_webpack_exports,__webpack_require__)=>{__webpack_require__=__webpack_require__(9039);module.exports=!__webpack_require__(function(){var test=function(){}.bind();return"function"!=typeof test||test.hasOwnProperty("prototype")})},655:(module,__unused_webpack_exports,__webpack_require__)=>{var classof=__webpack_require__(6955),$String=String;module.exports=function(argument){if("Symbol"===classof(argument))throw new TypeError("Cannot convert a Symbol value to a string");return $String(argument)}},679:(module,__unused_webpack_exports,__webpack_require__)=>{var isPrototypeOf=__webpack_require__(1625),$TypeError=TypeError;module.exports=function(it,Prototype){if(isPrototypeOf(Prototype,it))return it;throw new $TypeError("Incorrect invocation")}},684:module=>{module.exports=function(methodName,argument){methodName="function"==typeof Iterator&&Iterator.prototype[methodName];if(methodName)try{methodName.call({next:null},argument).next()}catch(error){return!0}}},741:module=>{var ceil=Math.ceil,floor=Math.floor;module.exports=Math.trunc||function(x){x=+x;return(0{var getBuiltIn=__webpack_require__(7751),isCallable=__webpack_require__(4901),isPrototypeOf=__webpack_require__(1625),__webpack_require__=__webpack_require__(7040),$Object=Object;module.exports=__webpack_require__?function(it){return"symbol"==typeof it}:function(it){var $Symbol=getBuiltIn("Symbol");return isCallable($Symbol)&&isPrototypeOf($Symbol.prototype,$Object(it))}},851:(module,__unused_webpack_exports,__webpack_require__)=>{var classof=__webpack_require__(6955),getMethod=__webpack_require__(5966),isNullOrUndefined=__webpack_require__(4117),Iterators=__webpack_require__(6269),ITERATOR=__webpack_require__(8227)("iterator");module.exports=function(it){if(!isNullOrUndefined(it))return getMethod(it,ITERATOR)||getMethod(it,"@@iterator")||Iterators[classof(it)]}},944:module=>{var $TypeError=TypeError;module.exports=function(options){options=options&&options.alphabet;if(void 0===options||"base64"===options||"base64url"===options)return options||"base64";throw new $TypeError("Incorrect `alphabet` option")}},1072:(module,__unused_webpack_exports,__webpack_require__)=>{var internalObjectKeys=__webpack_require__(1828),enumBugKeys=__webpack_require__(8727);module.exports=Object.keys||function(O){return internalObjectKeys(O,enumBugKeys)}},1103:module=>{module.exports=function(exec){try{return{error:!1,value:exec()}}catch(error){return{error:!0,value:error}}}},1148:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),call=__webpack_require__(9565),iterate=__webpack_require__(2652),aCallable=__webpack_require__(9306),anObject=__webpack_require__(8551),getIteratorDirect=__webpack_require__(1767),iteratorClose=__webpack_require__(9539),everyWithoutClosingOnEarlyError=__webpack_require__(4549)("every",TypeError);$({target:"Iterator",proto:!0,real:!0,forced:everyWithoutClosingOnEarlyError},{every:function(predicate){anObject(this);try{aCallable(predicate)}catch(error){iteratorClose(this,"throw",error)}var record,counter;return everyWithoutClosingOnEarlyError?call(everyWithoutClosingOnEarlyError,this,predicate):(record=getIteratorDirect(this),!iterate(record,function(value,stop){if(!predicate(value,counter++))return stop()},{IS_RECORD:!(counter=0),INTERRUPTED:!0}).stopped)}})},1181:(module,__unused_webpack_exports,__webpack_require__)=>{var set,get,store,STATE,NATIVE_WEAK_MAP=__webpack_require__(8622),globalThis=__webpack_require__(4576),isObject=__webpack_require__(34),createNonEnumerableProperty=__webpack_require__(6699),hasOwn=__webpack_require__(9297),shared=__webpack_require__(7629),sharedKey=__webpack_require__(6119),__webpack_require__=__webpack_require__(421),TypeError=globalThis.TypeError,globalThis=globalThis.WeakMap,has=NATIVE_WEAK_MAP||shared.state?((store=shared.state||(shared.state=new globalThis)).get=store.get,store.has=store.has,store.set=store.set,set=function(it,metadata){if(store.has(it))throw new TypeError("Object already initialized");return metadata.facade=it,store.set(it,metadata),metadata},get=function(it){return store.get(it)||{}},function(it){return store.has(it)}):(__webpack_require__[STATE=sharedKey("state")]=!0,set=function(it,metadata){if(hasOwn(it,STATE))throw new TypeError("Object already initialized");return metadata.facade=it,createNonEnumerableProperty(it,STATE,metadata),metadata},get=function(it){return hasOwn(it,STATE)?it[STATE]:{}},function(it){return hasOwn(it,STATE)});module.exports={set:set,get:get,has:has,enforce:function(it){return has(it)?get(it):set(it,{})},getterFor:function(TYPE){return function(it){if(isObject(it)&&(it=get(it)).type===TYPE)return it;throw new TypeError("Incompatible receiver, "+TYPE+" required")}}}},1291:(module,__unused_webpack_exports,__webpack_require__)=>{var trunc=__webpack_require__(741);module.exports=function(argument){argument=+argument;return argument!=argument||0==argument?0:trunc(argument)}},1385:(module,__unused_webpack_exports,__webpack_require__)=>{var iteratorClose=__webpack_require__(9539);module.exports=function(iters,kind,value){for(var i=iters.length-1;0<=i;i--)if(void 0!==iters[i])try{value=iteratorClose(iters[i].iterator,kind,value)}catch(error){kind="throw",value=error}if("throw"===kind)throw value;return value}},1548:(module,__unused_webpack_exports,__webpack_require__)=>{var globalThis=__webpack_require__(4576),fails=__webpack_require__(9039),V8=__webpack_require__(9519),ENVIRONMENT=__webpack_require__(4215),structuredClone=globalThis.structuredClone;module.exports=!!structuredClone&&!fails(function(){var buffer,clone;return!("DENO"===ENVIRONMENT&&92{var $=__webpack_require__(6518),globalThis=__webpack_require__(4576),$fromBase64=__webpack_require__(9143),anUint8Array=__webpack_require__(4154),Uint8Array=globalThis.Uint8Array,__webpack_require__=!Uint8Array||!Uint8Array.prototype.setFromBase64||!function(){var target=new Uint8Array([255,255,255,255,255]);try{target.setFromBase64("MjYyZg===")}catch(error){return 50===target[0]&&54===target[1]&&50===target[2]&&255===target[3]&&255===target[4]}}();Uint8Array&&$({target:"Uint8Array",proto:!0,forced:__webpack_require__},{setFromBase64:function(string){anUint8Array(this);var result=$fromBase64(string,1{__webpack_require__=__webpack_require__(9504);module.exports=__webpack_require__({}.isPrototypeOf)},1689:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),globalThis=__webpack_require__(4576),apply=__webpack_require__(8745),slice=__webpack_require__(7680),newPromiseCapabilityModule=__webpack_require__(6043),aCallable=__webpack_require__(9306),perform=__webpack_require__(1103),Promise=globalThis.Promise,ACCEPT_ARGUMENTS=!1;$({target:"Promise",stat:!0,forced:!Promise||!Promise.try||perform(function(){Promise.try(function(argument){ACCEPT_ARGUMENTS=8===argument},8)}).error||!ACCEPT_ARGUMENTS},{try:function(callbackfn){var args=1{var $=__webpack_require__(6518),union=__webpack_require__(4204),setMethodGetKeysBeforeCloning=__webpack_require__(9835);$({target:"Set",proto:!0,real:!0,forced:!__webpack_require__(4916)("union")||!setMethodGetKeysBeforeCloning("union")},{union:union})},1701:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),call=__webpack_require__(9565),aCallable=__webpack_require__(9306),anObject=__webpack_require__(8551),getIteratorDirect=__webpack_require__(1767),createIteratorProxy=__webpack_require__(9462),callWithSafeIterationClosing=__webpack_require__(6319),iteratorClose=__webpack_require__(9539),iteratorHelperThrowsOnInvalidIterator=__webpack_require__(684),iteratorHelperWithoutClosingOnEarlyError=__webpack_require__(4549),__webpack_require__=__webpack_require__(6395),iteratorHelperThrowsOnInvalidIterator=!__webpack_require__&&!iteratorHelperThrowsOnInvalidIterator("map",function(){}),mapWithoutClosingOnEarlyError=!__webpack_require__&&!iteratorHelperThrowsOnInvalidIterator&&iteratorHelperWithoutClosingOnEarlyError("map",TypeError),iteratorHelperWithoutClosingOnEarlyError=__webpack_require__||iteratorHelperThrowsOnInvalidIterator||mapWithoutClosingOnEarlyError,IteratorProxy=createIteratorProxy(function(){var iterator=this.iterator,result=anObject(call(this.next,iterator));if(!(this.done=!!result.done))return callWithSafeIterationClosing(iterator,this.mapper,[result.value,this.counter++],!0)});$({target:"Iterator",proto:!0,real:!0,forced:iteratorHelperWithoutClosingOnEarlyError},{map:function(mapper){anObject(this);try{aCallable(mapper)}catch(error){iteratorClose(this,"throw",error)}return mapWithoutClosingOnEarlyError?call(mapWithoutClosingOnEarlyError,this,mapper):new IteratorProxy(getIteratorDirect(this),{mapper:mapper})}})},1767:module=>{module.exports=function(obj){return{iterator:obj,next:obj.next,done:!1}}},1806:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),anObject=__webpack_require__(8551),iterate=__webpack_require__(2652),getIteratorDirect=__webpack_require__(1767),push=[].push;$({target:"Iterator",proto:!0,real:!0},{toArray:function(){var result=[];return iterate(getIteratorDirect(anObject(this)),push,{that:result,IS_RECORD:!0}),result}})},1828:(module,__unused_webpack_exports,__webpack_require__)=>{var uncurryThis=__webpack_require__(9504),hasOwn=__webpack_require__(9297),toIndexedObject=__webpack_require__(5397),indexOf=__webpack_require__(9617).indexOf,hiddenKeys=__webpack_require__(421),push=uncurryThis([].push);module.exports=function(object,names){var key,O=toIndexedObject(object),i=0,result=[];for(key in O)!hasOwn(hiddenKeys,key)&&hasOwn(O,key)&&push(result,key);for(;names.length>i;)!hasOwn(O,key=names[i++])||~indexOf(result,key)||push(result,key);return result}},2106:(module,__unused_webpack_exports,__webpack_require__)=>{var makeBuiltIn=__webpack_require__(283),defineProperty=__webpack_require__(4913);module.exports=function(target,name,descriptor){return descriptor.get&&makeBuiltIn(descriptor.get,name,{getter:!0}),descriptor.set&&makeBuiltIn(descriptor.set,name,{setter:!0}),defineProperty.f(target,name,descriptor)}},2140:(module,__unused_webpack_exports,__webpack_require__)=>{var test={};test[__webpack_require__(8227)("toStringTag")]="z",module.exports="[object z]"===String(test)},2195:(module,__unused_webpack_exports,__webpack_require__)=>{var __webpack_require__=__webpack_require__(9504),toString=__webpack_require__({}.toString),stringSlice=__webpack_require__("".slice);module.exports=function(it){return stringSlice(toString(it),8,-1)}},2211:(module,__unused_webpack_exports,__webpack_require__)=>{__webpack_require__=__webpack_require__(9039);module.exports=!__webpack_require__(function(){function F(){}return F.prototype.constructor=null,Object.getPrototypeOf(new F)!==F.prototype})},2303:(module,__unused_webpack_exports,__webpack_require__)=>{var globalThis=__webpack_require__(4576),__webpack_require__=__webpack_require__(9504),Uint8Array=globalThis.Uint8Array,SyntaxError=globalThis.SyntaxError,parseInt=globalThis.parseInt,min=Math.min,NOT_HEX=/[^\da-f]/i,exec=__webpack_require__(NOT_HEX.exec),stringSlice=__webpack_require__("".slice);module.exports=function(string,into){var stringLength=string.length;if(stringLength%2!=0)throw new SyntaxError("String should be an even number of characters");for(var maxLength=into?min(into.length,stringLength/2):stringLength/2,bytes=into||new Uint8Array(maxLength),read=0,written=0;written{function EmptyConstructor(){}function NullProtoObjectViaActiveX(activeXDocument){activeXDocument.write(scriptTag("")),activeXDocument.close();var temp=activeXDocument.parentWindow.Object;return activeXDocument=null,temp}var activeXDocument,anObject=__webpack_require__(8551),definePropertiesModule=__webpack_require__(6801),enumBugKeys=__webpack_require__(8727),hiddenKeys=__webpack_require__(421),html=__webpack_require__(397),documentCreateElement=__webpack_require__(4055),__webpack_require__=__webpack_require__(6119),SCRIPT="script",IE_PROTO=__webpack_require__("IE_PROTO"),scriptTag=function(content){return"<"+SCRIPT+">"+content+""},NullProtoObject=function(){try{activeXDocument=new ActiveXObject("htmlfile")}catch(error){}NullProtoObject="undefined"==typeof document||document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):(iframe=documentCreateElement("iframe"),JS="java"+SCRIPT+":",iframe.style.display="none",html.appendChild(iframe),iframe.src=String(JS),(JS=iframe.contentWindow.document).open(),JS.write(scriptTag("document.F=Object")),JS.close(),JS.F);for(var iframe,JS,length=enumBugKeys.length;length--;)delete NullProtoObject.prototype[enumBugKeys[length]];return NullProtoObject()};hiddenKeys[IE_PROTO]=!0,module.exports=Object.create||function(O,Properties){var result;return null!==O?(EmptyConstructor.prototype=anObject(O),result=new EmptyConstructor,EmptyConstructor.prototype=null,result[IE_PROTO]=O):result=NullProtoObject(),void 0===Properties?result:definePropertiesModule.f(result,Properties)}},2475:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),isSupersetOf=__webpack_require__(8527);$({target:"Set",proto:!0,real:!0,forced:!__webpack_require__(4916)("isSupersetOf",function(result){return!result})},{isSupersetOf:isSupersetOf})},2489:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),call=__webpack_require__(9565),aCallable=__webpack_require__(9306),anObject=__webpack_require__(8551),getIteratorDirect=__webpack_require__(1767),createIteratorProxy=__webpack_require__(9462),callWithSafeIterationClosing=__webpack_require__(6319),IS_PURE=__webpack_require__(6395),iteratorClose=__webpack_require__(9539),iteratorHelperThrowsOnInvalidIterator=__webpack_require__(684),__webpack_require__=__webpack_require__(4549),iteratorHelperThrowsOnInvalidIterator=!IS_PURE&&!iteratorHelperThrowsOnInvalidIterator("filter",function(){}),filterWithoutClosingOnEarlyError=!IS_PURE&&!iteratorHelperThrowsOnInvalidIterator&&__webpack_require__("filter",TypeError),__webpack_require__=IS_PURE||iteratorHelperThrowsOnInvalidIterator||filterWithoutClosingOnEarlyError,IteratorProxy=createIteratorProxy(function(){for(var result,iterator=this.iterator,predicate=this.predicate,next=this.next;;){if(result=anObject(call(next,iterator)),this.done=!!result.done)return;if(result=result.value,callWithSafeIterationClosing(iterator,predicate,[result,this.counter++],!0))return result}});$({target:"Iterator",proto:!0,real:!0,forced:__webpack_require__},{filter:function(predicate){anObject(this);try{aCallable(predicate)}catch(error){iteratorClose(this,"throw",error)}return filterWithoutClosingOnEarlyError?call(filterWithoutClosingOnEarlyError,this,predicate):new IteratorProxy(getIteratorDirect(this),{predicate:predicate})}})},2529:module=>{module.exports=function(value,done){return{value:value,done:done}}},2603:(module,__unused_webpack_exports,__webpack_require__)=>{var toString=__webpack_require__(655);module.exports=function(argument,$default){return void 0===argument?arguments.length<2?"":$default:toString(argument)}},2652:(module,__unused_webpack_exports,__webpack_require__)=>{function Result(stopped,result){this.stopped=stopped,this.result=result}var bind=__webpack_require__(6080),call=__webpack_require__(9565),anObject=__webpack_require__(8551),tryToString=__webpack_require__(6823),isArrayIteratorMethod=__webpack_require__(4209),lengthOfArrayLike=__webpack_require__(6198),isPrototypeOf=__webpack_require__(1625),getIterator=__webpack_require__(81),getIteratorMethod=__webpack_require__(851),iteratorClose=__webpack_require__(9539),$TypeError=TypeError,ResultPrototype=Result.prototype;module.exports=function(iterable,unboundFunction,options){function stop(condition){return iterator&&iteratorClose(iterator,"normal"),new Result(!0,condition)}function callFn(value){return AS_ENTRIES?(anObject(value),INTERRUPTED?fn(value[0],value[1],stop):fn(value[0],value[1])):INTERRUPTED?fn(value,stop):fn(value)}var iterator,index,length,result,next,step,that=options&&options.that,AS_ENTRIES=!(!options||!options.AS_ENTRIES),IS_RECORD=!(!options||!options.IS_RECORD),IS_ITERATOR=!(!options||!options.IS_ITERATOR),INTERRUPTED=!(!options||!options.INTERRUPTED),fn=bind(unboundFunction,that);if(IS_RECORD)iterator=iterable.iterator;else if(IS_ITERATOR)iterator=iterable;else{if(!(options=getIteratorMethod(iterable)))throw new $TypeError(tryToString(iterable)+" is not iterable");if(isArrayIteratorMethod(options)){for(index=0,length=lengthOfArrayLike(iterable);index{var call=__webpack_require__(9565),isObject=__webpack_require__(34),isSymbol=__webpack_require__(757),getMethod=__webpack_require__(5966),ordinaryToPrimitive=__webpack_require__(4270),__webpack_require__=__webpack_require__(8227),$TypeError=TypeError,TO_PRIMITIVE=__webpack_require__("toPrimitive");module.exports=function(input,pref){if(!isObject(input)||isSymbol(input))return input;var exoticToPrim=getMethod(input,TO_PRIMITIVE);if(exoticToPrim){if(exoticToPrim=call(exoticToPrim,input,pref=void 0===pref?"default":pref),!isObject(exoticToPrim)||isSymbol(exoticToPrim))return exoticToPrim;throw new $TypeError("Can't convert object to primitive value")}return ordinaryToPrimitive(input,pref=void 0===pref?"number":pref)}},2787:(module,__unused_webpack_exports,__webpack_require__)=>{var hasOwn=__webpack_require__(9297),isCallable=__webpack_require__(4901),toObject=__webpack_require__(8981),sharedKey=__webpack_require__(6119),__webpack_require__=__webpack_require__(2211),IE_PROTO=sharedKey("IE_PROTO"),$Object=Object,ObjectPrototype=$Object.prototype;module.exports=__webpack_require__?$Object.getPrototypeOf:function(O){var constructor,O=toObject(O);return hasOwn(O,IE_PROTO)?O[IE_PROTO]:(constructor=O.constructor,isCallable(constructor)&&O instanceof constructor?constructor.prototype:O instanceof $Object?ObjectPrototype:null)}},2796:(module,__unused_webpack_exports,__webpack_require__)=>{function isForced(feature,detection){return(feature=data[normalize(feature)])===POLYFILL||feature!==NATIVE&&(isCallable(detection)?fails(detection):!!detection)}var fails=__webpack_require__(9039),isCallable=__webpack_require__(4901),replacement=/#|\.prototype\./,normalize=isForced.normalize=function(string){return String(string).replace(replacement,".").toLowerCase()},data=isForced.data={},NATIVE=isForced.NATIVE="N",POLYFILL=isForced.POLYFILL="P";module.exports=isForced},2804:module=>{function inverse(characters){for(var result={},index=0;index<64;index++)result[characters.charAt(index)]=index;return result}var commonAlphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",base64Alphabet=commonAlphabet+"+/",commonAlphabet=commonAlphabet+"-_";module.exports={i2c:base64Alphabet,c2i:inverse(base64Alphabet),i2cUrl:commonAlphabet,c2iUrl:inverse(commonAlphabet)}},2812:module=>{var $TypeError=TypeError;module.exports=function(passed,required){if(passed{__webpack_require__=__webpack_require__(4576).navigator,__webpack_require__=__webpack_require__&&__webpack_require__.userAgent;module.exports=__webpack_require__?String(__webpack_require__):""},2967:(module,__unused_webpack_exports,__webpack_require__)=>{var uncurryThisAccessor=__webpack_require__(6706),isObject=__webpack_require__(34),requireObjectCoercible=__webpack_require__(7750),aPossiblePrototype=__webpack_require__(3506);module.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var setter,CORRECT_SETTER=!1,test={};try{(setter=uncurryThisAccessor(Object.prototype,"__proto__","set"))(test,[]),CORRECT_SETTER=test instanceof Array}catch(error){}return function(O,proto){return requireObjectCoercible(O),aPossiblePrototype(proto),isObject(O)&&(CORRECT_SETTER?setter(O,proto):O.__proto__=proto),O}}():void 0)},3167:(module,__unused_webpack_exports,__webpack_require__)=>{var isCallable=__webpack_require__(4901),isObject=__webpack_require__(34),setPrototypeOf=__webpack_require__(2967);module.exports=function($this,dummy,Wrapper){return setPrototypeOf&&isCallable(dummy=dummy.constructor)&&dummy!==Wrapper&&isObject(dummy=dummy.prototype)&&dummy!==Wrapper.prototype&&setPrototypeOf($this,dummy),$this}},3238:(module,__unused_webpack_exports,__webpack_require__)=>{var globalThis=__webpack_require__(4576),NATIVE_ARRAY_BUFFER=__webpack_require__(7811),arrayBufferByteLength=__webpack_require__(7394),DataView=globalThis.DataView;module.exports=function(O){if(!NATIVE_ARRAY_BUFFER||0!==arrayBufferByteLength(O))return!1;try{return new DataView(O),!1}catch(error){return!0}}},3392:(module,__unused_webpack_exports,__webpack_require__)=>{var __webpack_require__=__webpack_require__(9504),id=0,postfix=Math.random(),toString=__webpack_require__(1.1.toString);module.exports=function(key){return"Symbol("+(void 0===key?"":key)+")_"+toString(++id+postfix,36)}},3440:(module,__unused_webpack_exports,__webpack_require__)=>{var aSet=__webpack_require__(7080),SetHelpers=__webpack_require__(4402),clone=__webpack_require__(9286),size=__webpack_require__(5170),getSetRecord=__webpack_require__(3789),iterateSet=__webpack_require__(8469),iterateSimple=__webpack_require__(507),has=SetHelpers.has,remove=SetHelpers.remove;module.exports=function(other){var O=aSet(this),otherRec=getSetRecord(other),result=clone(O);return size(O)<=otherRec.size?iterateSet(O,function(e){otherRec.includes(e)&&remove(result,e)}):iterateSimple(otherRec.getIterator(),function(e){has(result,e)&&remove(result,e)}),result}},3463:module=>{var $TypeError=TypeError;module.exports=function(argument){if("string"==typeof argument)return argument;throw new $TypeError("Argument is not a string")}},3506:(module,__unused_webpack_exports,__webpack_require__)=>{var isPossiblePrototype=__webpack_require__(3925),$String=String,$TypeError=TypeError;module.exports=function(argument){if(isPossiblePrototype(argument))return argument;throw new $TypeError("Can't set "+$String(argument)+" as a prototype")}},3579:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),call=__webpack_require__(9565),iterate=__webpack_require__(2652),aCallable=__webpack_require__(9306),anObject=__webpack_require__(8551),getIteratorDirect=__webpack_require__(1767),iteratorClose=__webpack_require__(9539),someWithoutClosingOnEarlyError=__webpack_require__(4549)("some",TypeError);$({target:"Iterator",proto:!0,real:!0,forced:someWithoutClosingOnEarlyError},{some:function(predicate){anObject(this);try{aCallable(predicate)}catch(error){iteratorClose(this,"throw",error)}var record,counter;return someWithoutClosingOnEarlyError?call(someWithoutClosingOnEarlyError,this,predicate):(record=getIteratorDirect(this),iterate(record,function(value,stop){if(predicate(value,counter++))return stop()},{IS_RECORD:!(counter=0),INTERRUPTED:!0}).stopped)}})},3611:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var descriptor,$=__webpack_require__(6518),globalThis=__webpack_require__(4576),defineBuiltInAccessor=__webpack_require__(2106),__webpack_require__=__webpack_require__(3724),$TypeError=TypeError,defineProperty=Object.defineProperty,INCORRECT_VALUE=globalThis.self!==globalThis;try{__webpack_require__?(descriptor=Object.getOwnPropertyDescriptor(globalThis,"self"),!INCORRECT_VALUE&&descriptor&&descriptor.get&&descriptor.enumerable||defineBuiltInAccessor(globalThis,"self",{get:function(){return globalThis},set:function(value){if(this!==globalThis)throw new $TypeError("Illegal invocation");defineProperty(globalThis,"self",{value:value,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})):$({global:!0,simple:!0,forced:INCORRECT_VALUE},{self:globalThis})}catch(error){}},3650:(module,__unused_webpack_exports,__webpack_require__)=>{var aSet=__webpack_require__(7080),SetHelpers=__webpack_require__(4402),clone=__webpack_require__(9286),getSetRecord=__webpack_require__(3789),iterateSimple=__webpack_require__(507),add=SetHelpers.add,has=SetHelpers.has,remove=SetHelpers.remove;module.exports=function(other){var O=aSet(this),other=getSetRecord(other).getIterator(),result=clone(O);return iterateSimple(other,function(e){(has(O,e)?remove:add)(result,e)}),result}},3706:(module,__unused_webpack_exports,__webpack_require__)=>{var uncurryThis=__webpack_require__(9504),isCallable=__webpack_require__(4901),__webpack_require__=__webpack_require__(7629),functionToString=uncurryThis(Function.toString);isCallable(__webpack_require__.inspectSource)||(__webpack_require__.inspectSource=function(it){return functionToString(it)}),module.exports=__webpack_require__.inspectSource},3717:(__unused_webpack_module,exports)=>{exports.f=Object.getOwnPropertySymbols},3724:(module,__unused_webpack_exports,__webpack_require__)=>{__webpack_require__=__webpack_require__(9039);module.exports=!__webpack_require__(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})},3789:(module,__unused_webpack_exports,__webpack_require__)=>{function SetRecord(set,intSize){this.set=set,this.size=max(intSize,0),this.has=aCallable(set.has),this.keys=aCallable(set.keys)}var aCallable=__webpack_require__(9306),anObject=__webpack_require__(8551),call=__webpack_require__(9565),toIntegerOrInfinity=__webpack_require__(1291),getIteratorDirect=__webpack_require__(1767),$RangeError=RangeError,$TypeError=TypeError,max=Math.max;SetRecord.prototype={getIterator:function(){return getIteratorDirect(anObject(call(this.keys,this.set)))},includes:function(it){return call(this.has,this.set,it)}},module.exports=function(obj){anObject(obj);var numSize=+obj.size;if(numSize!=numSize)throw new $TypeError("Invalid size");numSize=toIntegerOrInfinity(numSize);if(numSize<0)throw new $RangeError("Invalid size");return new SetRecord(obj,numSize)}},3838:(module,__unused_webpack_exports,__webpack_require__)=>{var aSet=__webpack_require__(7080),size=__webpack_require__(5170),iterate=__webpack_require__(8469),getSetRecord=__webpack_require__(3789);module.exports=function(other){var O=aSet(this),otherRec=getSetRecord(other);return!(size(O)>otherRec.size)&&!1!==iterate(O,function(e){if(!otherRec.includes(e))return!1},!0)}},3853:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),isDisjointFrom=__webpack_require__(4449);$({target:"Set",proto:!0,real:!0,forced:!__webpack_require__(4916)("isDisjointFrom",function(result){return!result})},{isDisjointFrom:isDisjointFrom})},3925:(module,__unused_webpack_exports,__webpack_require__)=>{var isObject=__webpack_require__(34);module.exports=function(argument){return isObject(argument)||null===argument}},3972:(module,__unused_webpack_exports,__webpack_require__)=>{var isObject=__webpack_require__(34),$String=String,$TypeError=TypeError;module.exports=function(argument){if(void 0===argument||isObject(argument))return argument;throw new $TypeError($String(argument)+" is not an object or undefined")}},4055:(module,__unused_webpack_exports,__webpack_require__)=>{var globalThis=__webpack_require__(4576),__webpack_require__=__webpack_require__(34),document=globalThis.document,EXISTS=__webpack_require__(document)&&__webpack_require__(document.createElement);module.exports=function(it){return EXISTS?document.createElement(it):{}}},4114:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),toObject=__webpack_require__(8981),lengthOfArrayLike=__webpack_require__(6198),setArrayLength=__webpack_require__(4527),doesNotExceedSafeInteger=__webpack_require__(6837);$({target:"Array",proto:!0,arity:1,forced:__webpack_require__(9039)(function(){return 4294967297!==[].push.call({length:4294967296},1)})||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(error){return error instanceof TypeError}}()},{push:function(item){var O=toObject(this),len=lengthOfArrayLike(O),argCount=arguments.length;doesNotExceedSafeInteger(len+argCount);for(var i=0;i{module.exports=function(it){return null==it}},4154:(module,__unused_webpack_exports,__webpack_require__)=>{var classof=__webpack_require__(6955),$TypeError=TypeError;module.exports=function(argument){if("Uint8Array"===classof(argument))return argument;throw new $TypeError("Argument is not an Uint8Array")}},4204:(module,__unused_webpack_exports,__webpack_require__)=>{var aSet=__webpack_require__(7080),add=__webpack_require__(4402).add,clone=__webpack_require__(9286),getSetRecord=__webpack_require__(3789),iterateSimple=__webpack_require__(507);module.exports=function(other){var O=aSet(this),other=getSetRecord(other).getIterator(),result=clone(O);return iterateSimple(other,function(it){add(result,it)}),result}},4209:(module,__unused_webpack_exports,__webpack_require__)=>{var wellKnownSymbol=__webpack_require__(8227),Iterators=__webpack_require__(6269),ITERATOR=wellKnownSymbol("iterator"),ArrayPrototype=Array.prototype;module.exports=function(it){return void 0!==it&&(Iterators.Array===it||ArrayPrototype[ITERATOR]===it)}},4215:(module,__unused_webpack_exports,__webpack_require__)=>{function userAgentStartsWith(string){return userAgent.slice(0,string.length)===string}var globalThis=__webpack_require__(4576),userAgent=__webpack_require__(2839),__webpack_require__=__webpack_require__(2195);module.exports=userAgentStartsWith("Bun/")?"BUN":userAgentStartsWith("Cloudflare-Workers")?"CLOUDFLARE":userAgentStartsWith("Deno/")?"DENO":userAgentStartsWith("Node.js/")?"NODE":globalThis.Bun&&"string"==typeof Bun.version?"BUN":globalThis.Deno&&"object"==typeof Deno.version?"DENO":"process"===__webpack_require__(globalThis.process)?"NODE":globalThis.window&&globalThis.document?"BROWSER":"REST"},4270:(module,__unused_webpack_exports,__webpack_require__)=>{var call=__webpack_require__(9565),isCallable=__webpack_require__(4901),isObject=__webpack_require__(34),$TypeError=TypeError;module.exports=function(input,pref){var fn,val;if("string"===pref&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input)))return val;if(isCallable(fn=input.valueOf)&&!isObject(val=call(fn,input)))return val;if("string"!==pref&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input)))return val;throw new $TypeError("Can't convert object to primitive value")}},4376:(module,__unused_webpack_exports,__webpack_require__)=>{var classof=__webpack_require__(2195);module.exports=Array.isArray||function(argument){return"Array"===classof(argument)}},4402:(module,__unused_webpack_exports,__webpack_require__)=>{var __webpack_require__=__webpack_require__(9504),SetPrototype=Set.prototype;module.exports={Set:Set,add:__webpack_require__(SetPrototype.add),has:__webpack_require__(SetPrototype.has),remove:__webpack_require__(SetPrototype.delete),proto:SetPrototype}},4449:(module,__unused_webpack_exports,__webpack_require__)=>{var aSet=__webpack_require__(7080),has=__webpack_require__(4402).has,size=__webpack_require__(5170),getSetRecord=__webpack_require__(3789),iterateSet=__webpack_require__(8469),iterateSimple=__webpack_require__(507),iteratorClose=__webpack_require__(9539);module.exports=function(other){var iterator,O=aSet(this),otherRec=getSetRecord(other);return size(O)<=otherRec.size?!1!==iterateSet(O,function(e){if(otherRec.includes(e))return!1},!0):(iterator=otherRec.getIterator(),!1!==iterateSimple(iterator,function(e){if(has(O,e))return iteratorClose(iterator,"normal",!1)}))}},4483:(module,__unused_webpack_exports,__webpack_require__)=>{var WorkerThreads,channel,buffer,$detach,globalThis=__webpack_require__(4576),getBuiltInNodeModule=__webpack_require__(9429),__webpack_require__=__webpack_require__(1548),structuredClone=globalThis.structuredClone,$ArrayBuffer=globalThis.ArrayBuffer,globalThis=globalThis.MessageChannel,detach=!1;if(__webpack_require__)detach=function(transferable){structuredClone(transferable,{transfer:[transferable]})};else if($ArrayBuffer)try{globalThis||(WorkerThreads=getBuiltInNodeModule("worker_threads"))&&(globalThis=WorkerThreads.MessageChannel),globalThis&&(channel=new globalThis,buffer=new $ArrayBuffer(2),$detach=function(transferable){channel.port1.postMessage(null,[transferable])},2===buffer.byteLength)&&($detach(buffer),0===buffer.byteLength)&&(detach=$detach)}catch(error){}module.exports=detach},4495:(module,__unused_webpack_exports,__webpack_require__)=>{var V8_VERSION=__webpack_require__(9519),fails=__webpack_require__(9039),$String=__webpack_require__(4576).String;module.exports=!!Object.getOwnPropertySymbols&&!fails(function(){var symbol=Symbol("symbol detection");return!$String(symbol)||!(Object(symbol)instanceof Symbol)||!Symbol.sham&&V8_VERSION&&V8_VERSION<41})},4527:(module,__unused_webpack_exports,__webpack_require__)=>{var DESCRIPTORS=__webpack_require__(3724),isArray=__webpack_require__(4376),$TypeError=TypeError,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,__webpack_require__=DESCRIPTORS&&!function(){if(void 0!==this)return 1;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(error){return error instanceof TypeError}}();module.exports=__webpack_require__?function(O,length){if(isArray(O)&&!getOwnPropertyDescriptor(O,"length").writable)throw new $TypeError("Cannot set read only .length");return O.length=length}:function(O,length){return O.length=length}},4549:(module,__unused_webpack_exports,__webpack_require__)=>{var globalThis=__webpack_require__(4576);module.exports=function(METHOD_NAME,ExpectedError){var Iterator=globalThis.Iterator,Iterator=Iterator&&Iterator.prototype,Iterator=Iterator&&Iterator[METHOD_NAME],CLOSED=!1;if(Iterator)try{Iterator.call({next:function(){return{done:!0}},return:function(){CLOSED=!0}},-1)}catch(error){error instanceof ExpectedError||(CLOSED=!1)}if(!CLOSED)return Iterator}},4576:function(module){function check(it){return it&&it.Math===Math&&it}module.exports=check("object"==typeof globalThis&&globalThis)||check("object"==typeof window&&window)||check("object"==typeof self&&self)||check("object"==typeof global&&global)||check("object"==typeof this&&this)||function(){return this}()||Function("return this")()},4603:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var defineBuiltIn=__webpack_require__(6840),uncurryThis=__webpack_require__(9504),toString=__webpack_require__(655),validateArgumentsLength=__webpack_require__(2812),__webpack_require__=URLSearchParams,URLSearchParamsPrototype=__webpack_require__.prototype,append=uncurryThis(URLSearchParamsPrototype.append),$delete=uncurryThis(URLSearchParamsPrototype.delete),forEach=uncurryThis(URLSearchParamsPrototype.forEach),push=uncurryThis([].push),uncurryThis=new __webpack_require__("a=1&a=2&b=3");uncurryThis.delete("a",1),uncurryThis.delete("b",void 0),uncurryThis+""!="a=2"&&defineBuiltIn(URLSearchParamsPrototype,"delete",function(name){var length=arguments.length,$value=length<2?void 0:arguments[1];if(length&&void 0===$value)return $delete(this,name);for(var entry,entries=[],key=(forEach(this,function(v,k){push(entries,{key:k,value:v})}),validateArgumentsLength(length,1),toString(name)),value=toString($value),index=0,dindex=0,found=!1,entriesLength=entries.length;index{var $=__webpack_require__(6518),newPromiseCapabilityModule=__webpack_require__(6043);$({target:"Promise",stat:!0},{withResolvers:function(){var promiseCapability=newPromiseCapabilityModule.f(this);return{promise:promiseCapability.promise,resolve:promiseCapability.resolve,reject:promiseCapability.reject}}})},4659:(module,__unused_webpack_exports,__webpack_require__)=>{var DESCRIPTORS=__webpack_require__(3724),definePropertyModule=__webpack_require__(4913),createPropertyDescriptor=__webpack_require__(6980);module.exports=function(object,key,value){DESCRIPTORS?definePropertyModule.f(object,key,createPropertyDescriptor(0,value)):object[key]=value}},4901:module=>{var documentAll="object"==typeof document&&document.all;module.exports=void 0===documentAll&&void 0!==documentAll?function(argument){return"function"==typeof argument||argument===documentAll}:function(argument){return"function"==typeof argument}},4913:(__unused_webpack_module,exports,__webpack_require__)=>{var DESCRIPTORS=__webpack_require__(3724),IE8_DOM_DEFINE=__webpack_require__(5917),V8_PROTOTYPE_DEFINE_BUG=__webpack_require__(8686),anObject=__webpack_require__(8551),toPropertyKey=__webpack_require__(6969),$TypeError=TypeError,$defineProperty=Object.defineProperty,$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;exports.f=DESCRIPTORS?V8_PROTOTYPE_DEFINE_BUG?function(O,P,Attributes){var current;return anObject(O),P=toPropertyKey(P),anObject(Attributes),"function"==typeof O&&"prototype"===P&&"value"in Attributes&&"writable"in Attributes&&!Attributes.writable&&(current=$getOwnPropertyDescriptor(O,P))&¤t.writable&&(O[P]=Attributes.value,Attributes={configurable:("configurable"in Attributes?Attributes:current).configurable,enumerable:("enumerable"in Attributes?Attributes:current).enumerable,writable:!1}),$defineProperty(O,P,Attributes)}:$defineProperty:function(O,P,Attributes){if(anObject(O),P=toPropertyKey(P),anObject(Attributes),IE8_DOM_DEFINE)try{return $defineProperty(O,P,Attributes)}catch(error){}if("get"in Attributes||"set"in Attributes)throw new $TypeError("Accessors not supported");return"value"in Attributes&&(O[P]=Attributes.value),O}},4916:(module,__unused_webpack_exports,__webpack_require__)=>{function createSetLike(size){return{size:size,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}}function createSetLikeWithInfinitySize(size){return{size:size,has:function(){return!0},keys:function(){throw new Error("e")}}}var getBuiltIn=__webpack_require__(7751);module.exports=function(name,callback){var Set=getBuiltIn("Set");try{(new Set)[name](createSetLike(0));try{return(new Set)[name](createSetLike(-1)),!1}catch(error2){if(!callback)return!0;try{return(new Set)[name](createSetLikeWithInfinitySize(-1/0)),!1}catch(error){var set=new Set;return set.add(1),set.add(2),callback(set[name](createSetLikeWithInfinitySize(1/0)))}}}catch(error){return!1}}},4979:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{function $DOMException(){anInstance(this,DOMExceptionPrototype);var message=normalizeStringArgument((argumentsLength=arguments.length)<1?void 0:arguments[0]),argumentsLength=normalizeStringArgument(argumentsLength<2?void 0:arguments[1],"Error"),argumentsLength=new NativeDOMException(message,argumentsLength);return(message=new Error(message)).name="DOMException",defineProperty(argumentsLength,"stack",createPropertyDescriptor(1,clearErrorStack(message.stack,1))),inheritIfRequired(argumentsLength,this,$DOMException),argumentsLength}var constantName,$=__webpack_require__(6518),globalThis=__webpack_require__(4576),getBuiltIn=__webpack_require__(7751),createPropertyDescriptor=__webpack_require__(6980),defineProperty=__webpack_require__(4913).f,hasOwn=__webpack_require__(9297),anInstance=__webpack_require__(679),inheritIfRequired=__webpack_require__(3167),normalizeStringArgument=__webpack_require__(2603),DOMExceptionConstants=__webpack_require__(5002),clearErrorStack=__webpack_require__(8574),DESCRIPTORS=__webpack_require__(3724),__webpack_require__=__webpack_require__(6395),Error=getBuiltIn("Error"),NativeDOMException=getBuiltIn("DOMException"),DOMExceptionPrototype=$DOMException.prototype=NativeDOMException.prototype,ERROR_HAS_STACK="stack"in new Error("DOMException"),DOM_EXCEPTION_HAS_STACK="stack"in new NativeDOMException(1,2),DESCRIPTORS=NativeDOMException&&DESCRIPTORS&&Object.getOwnPropertyDescriptor(globalThis,"DOMException"),globalThis=!(!DESCRIPTORS||DESCRIPTORS.writable&&DESCRIPTORS.configurable),DESCRIPTORS=ERROR_HAS_STACK&&!globalThis&&!DOM_EXCEPTION_HAS_STACK,PolyfilledDOMException=($({global:!0,constructor:!0,forced:__webpack_require__||DESCRIPTORS},{DOMException:DESCRIPTORS?$DOMException:NativeDOMException}),getBuiltIn("DOMException")),ERROR_HAS_STACK=PolyfilledDOMException.prototype;if(ERROR_HAS_STACK.constructor!==PolyfilledDOMException)for(var key in __webpack_require__||defineProperty(ERROR_HAS_STACK,"constructor",createPropertyDescriptor(1,PolyfilledDOMException)),DOMExceptionConstants)!hasOwn(DOMExceptionConstants,key)||hasOwn(PolyfilledDOMException,constantName=(key=DOMExceptionConstants[key]).s)||defineProperty(PolyfilledDOMException,constantName,createPropertyDescriptor(6,key.c))},5002:module=>{module.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},5024:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),symmetricDifference=__webpack_require__(3650),setMethodGetKeysBeforeCloning=__webpack_require__(9835);$({target:"Set",proto:!0,real:!0,forced:!__webpack_require__(4916)("symmetricDifference")||!setMethodGetKeysBeforeCloning("symmetricDifference")},{symmetricDifference:symmetricDifference})},5031:(module,__unused_webpack_exports,__webpack_require__)=>{var getBuiltIn=__webpack_require__(7751),uncurryThis=__webpack_require__(9504),getOwnPropertyNamesModule=__webpack_require__(8480),getOwnPropertySymbolsModule=__webpack_require__(3717),anObject=__webpack_require__(8551),concat=uncurryThis([].concat);module.exports=getBuiltIn("Reflect","ownKeys")||function(it){var keys=getOwnPropertyNamesModule.f(anObject(it)),getOwnPropertySymbols=getOwnPropertySymbolsModule.f;return getOwnPropertySymbols?concat(keys,getOwnPropertySymbols(it)):keys}},5169:(module,__unused_webpack_exports,__webpack_require__)=>{var isDetached=__webpack_require__(3238),$TypeError=TypeError;module.exports=function(it){if(isDetached(it))throw new $TypeError("ArrayBuffer is detached");return it}},5170:(module,__unused_webpack_exports,__webpack_require__)=>{var uncurryThisAccessor=__webpack_require__(6706),__webpack_require__=__webpack_require__(4402);module.exports=uncurryThisAccessor(__webpack_require__.proto,"size","get")||function(set){return set.size}},5213:(module,__unused_webpack_exports,__webpack_require__)=>{var globalThis=__webpack_require__(4576),__webpack_require__=__webpack_require__(9039),RegExp=globalThis.RegExp,globalThis=!__webpack_require__(function(){var INDICES_SUPPORT=!0;try{RegExp(".","d")}catch(error){INDICES_SUPPORT=!1}var key,O={},calls="",expected=INDICES_SUPPORT?"dgimsy":"gimsy",pairs={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(key in INDICES_SUPPORT&&(pairs.hasIndices="d"),pairs)!function(key,chr){Object.defineProperty(O,key,{get:function(){return calls+=chr,!0}})}(key,pairs[key]);return Object.getOwnPropertyDescriptor(RegExp.prototype,"flags").get.call(O)!==expected||calls!==expected});module.exports={correct:globalThis}},5370:(module,__unused_webpack_exports,__webpack_require__)=>{var lengthOfArrayLike=__webpack_require__(6198);module.exports=function(Constructor,list,$length){for(var index=0,length=2{var IndexedObject=__webpack_require__(7055),requireObjectCoercible=__webpack_require__(7750);module.exports=function(it){return IndexedObject(requireObjectCoercible(it))}},5610:(module,__unused_webpack_exports,__webpack_require__)=>{var toIntegerOrInfinity=__webpack_require__(1291),max=Math.max,min=Math.min;module.exports=function(index,length){index=toIntegerOrInfinity(index);return index<0?max(index+length,0):min(index,length)}},5623:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),globalThis=__webpack_require__(4576),uncurryThis=__webpack_require__(9504),anUint8Array=__webpack_require__(4154),notDetached=__webpack_require__(5169),numberToString=uncurryThis(1.1.toString);globalThis.Uint8Array&&$({target:"Uint8Array",proto:!0},{toHex:function(){anUint8Array(this),notDetached(this.buffer);for(var result="",i=0,length=this.length;i{var globalThis=__webpack_require__(4576),uncurryThis=__webpack_require__(9504),uncurryThisAccessor=__webpack_require__(6706),toIndex=__webpack_require__(7696),notDetached=__webpack_require__(5169),arrayBufferByteLength=__webpack_require__(7394),detachTransferable=__webpack_require__(4483),PROPER_STRUCTURED_CLONE_TRANSFER=__webpack_require__(1548),structuredClone=globalThis.structuredClone,ArrayBuffer=globalThis.ArrayBuffer,DataView=globalThis.DataView,min=Math.min,__webpack_require__=ArrayBuffer.prototype,globalThis=DataView.prototype,slice=uncurryThis(__webpack_require__.slice),isResizable=uncurryThisAccessor(__webpack_require__,"resizable","get"),maxByteLength=uncurryThisAccessor(__webpack_require__,"maxByteLength","get"),getInt8=uncurryThis(globalThis.getInt8),setInt8=uncurryThis(globalThis.setInt8);module.exports=(PROPER_STRUCTURED_CLONE_TRANSFER||detachTransferable)&&function(arrayBuffer,newLength,preserveResizability){var byteLength=arrayBufferByteLength(arrayBuffer),newLength=void 0===newLength?byteLength:toIndex(newLength),fixedLength=!isResizable||!isResizable(arrayBuffer);if(notDetached(arrayBuffer),PROPER_STRUCTURED_CLONE_TRANSFER&&(arrayBuffer=structuredClone(arrayBuffer,{transfer:[arrayBuffer]}),byteLength===newLength)&&(preserveResizability||fixedLength))return arrayBuffer;if(newLength<=byteLength&&(!preserveResizability||fixedLength))newBuffer=slice(arrayBuffer,0,newLength);else for(var preserveResizability=preserveResizability&&!fixedLength&&maxByteLength?{maxByteLength:maxByteLength(arrayBuffer)}:void 0,newBuffer=new ArrayBuffer(newLength,preserveResizability),a=new DataView(arrayBuffer),b=new DataView(newBuffer),copyLength=min(newLength,byteLength),i=0;i{var store=__webpack_require__(7629);module.exports=function(key,value){return store[key]||(store[key]=value||{})}},5781:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),getBuiltIn=__webpack_require__(7751),validateArgumentsLength=__webpack_require__(2812),toString=__webpack_require__(655),__webpack_require__=__webpack_require__(7416),URL=getBuiltIn("URL");$({target:"URL",stat:!0,forced:!__webpack_require__},{parse:function(url){var length=validateArgumentsLength(arguments.length,1),urlString=toString(url),length=length<2||void 0===arguments[1]?void 0:toString(arguments[1]);try{return new URL(urlString,length)}catch(error){return null}}})},5876:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),isSubsetOf=__webpack_require__(3838);$({target:"Set",proto:!0,real:!0,forced:!__webpack_require__(4916)("isSubsetOf",function(result){return result})},{isSubsetOf:isSubsetOf})},5917:(module,__unused_webpack_exports,__webpack_require__)=>{var DESCRIPTORS=__webpack_require__(3724),fails=__webpack_require__(9039),createElement=__webpack_require__(4055);module.exports=!DESCRIPTORS&&!fails(function(){return 7!==Object.defineProperty(createElement("div"),"a",{get:function(){return 7}}).a})},5966:(module,__unused_webpack_exports,__webpack_require__)=>{var aCallable=__webpack_require__(9306),isNullOrUndefined=__webpack_require__(4117);module.exports=function(V,P){V=V[P];return isNullOrUndefined(V)?void 0:aCallable(V)}},6043:(module,__unused_webpack_exports,__webpack_require__)=>{function PromiseCapability(C){var resolve,reject;this.promise=new C(function($$resolve,$$reject){if(void 0!==resolve||void 0!==reject)throw new $TypeError("Bad Promise constructor");resolve=$$resolve,reject=$$reject}),this.resolve=aCallable(resolve),this.reject=aCallable(reject)}var aCallable=__webpack_require__(9306),$TypeError=TypeError;module.exports.f=function(C){return new PromiseCapability(C)}},6080:(module,__unused_webpack_exports,__webpack_require__)=>{var uncurryThis=__webpack_require__(7476),aCallable=__webpack_require__(9306),NATIVE_BIND=__webpack_require__(616),bind=uncurryThis(uncurryThis.bind);module.exports=function(fn,that){return aCallable(fn),void 0===that?fn:NATIVE_BIND?bind(fn,that):function(){return fn.apply(that,arguments)}}},6119:(module,__unused_webpack_exports,__webpack_require__)=>{var shared=__webpack_require__(5745),uid=__webpack_require__(3392),keys=shared("keys");module.exports=function(key){return keys[key]||(keys[key]=uid(key))}},6193:(module,__unused_webpack_exports,__webpack_require__)=>{__webpack_require__=__webpack_require__(4215);module.exports="NODE"===__webpack_require__},6198:(module,__unused_webpack_exports,__webpack_require__)=>{var toLength=__webpack_require__(8014);module.exports=function(obj){return toLength(obj.length)}},6269:module=>{module.exports={}},6279:(module,__unused_webpack_exports,__webpack_require__)=>{var defineBuiltIn=__webpack_require__(6840);module.exports=function(target,src,options){for(var key in src)defineBuiltIn(target,key,src[key],options);return target}},6319:(module,__unused_webpack_exports,__webpack_require__)=>{var anObject=__webpack_require__(8551),iteratorClose=__webpack_require__(9539);module.exports=function(iterator,fn,value,ENTRIES){try{return ENTRIES?fn(anObject(value)[0],value[1]):fn(value)}catch(error){iteratorClose(iterator,"throw",error)}}},6395:module=>{module.exports=!1},6518:(module,__unused_webpack_exports,__webpack_require__)=>{var globalThis=__webpack_require__(4576),getOwnPropertyDescriptor=__webpack_require__(7347).f,createNonEnumerableProperty=__webpack_require__(6699),defineBuiltIn=__webpack_require__(6840),defineGlobalProperty=__webpack_require__(9433),copyConstructorProperties=__webpack_require__(7740),isForced=__webpack_require__(2796);module.exports=function(options,source){var key,sourceProperty,descriptor,TARGET=options.target,GLOBAL=options.global,STATIC=options.stat,target=GLOBAL?globalThis:STATIC?globalThis[TARGET]||defineGlobalProperty(TARGET,{}):globalThis[TARGET]&&globalThis[TARGET].prototype;if(target)for(key in source){if(sourceProperty=source[key],descriptor=options.dontCallGetSet?(descriptor=getOwnPropertyDescriptor(target,key))&&descriptor.value:target[key],!isForced(GLOBAL?key:TARGET+(STATIC?".":"#")+key,options.forced)&&void 0!==descriptor){if(typeof sourceProperty==typeof descriptor)continue;copyConstructorProperties(sourceProperty,descriptor)}(options.sham||descriptor&&descriptor.sham)&&createNonEnumerableProperty(sourceProperty,"sham",!0),defineBuiltIn(target,key,sourceProperty,options)}}},6573:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var DESCRIPTORS=__webpack_require__(3724),defineBuiltInAccessor=__webpack_require__(2106),isDetached=__webpack_require__(3238),__webpack_require__=ArrayBuffer.prototype;!DESCRIPTORS||"detached"in __webpack_require__||defineBuiltInAccessor(__webpack_require__,"detached",{configurable:!0,get:function(){return isDetached(this)}})},6699:(module,__unused_webpack_exports,__webpack_require__)=>{var DESCRIPTORS=__webpack_require__(3724),definePropertyModule=__webpack_require__(4913),createPropertyDescriptor=__webpack_require__(6980);module.exports=DESCRIPTORS?function(object,key,value){return definePropertyModule.f(object,key,createPropertyDescriptor(1,value))}:function(object,key,value){return object[key]=value,object}},6706:(module,__unused_webpack_exports,__webpack_require__)=>{var uncurryThis=__webpack_require__(9504),aCallable=__webpack_require__(9306);module.exports=function(object,key,method){try{return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object,key)[method]))}catch(error){}}},6801:(__unused_webpack_module,exports,__webpack_require__)=>{var DESCRIPTORS=__webpack_require__(3724),V8_PROTOTYPE_DEFINE_BUG=__webpack_require__(8686),definePropertyModule=__webpack_require__(4913),anObject=__webpack_require__(8551),toIndexedObject=__webpack_require__(5397),objectKeys=__webpack_require__(1072);exports.f=DESCRIPTORS&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function(O,Properties){anObject(O);for(var key,props=toIndexedObject(Properties),keys=objectKeys(Properties),length=keys.length,index=0;index{var $String=String;module.exports=function(argument){try{return $String(argument)}catch(error){return"Object"}}},6837:module=>{var $TypeError=TypeError;module.exports=function(it){if(9007199254740991{var isCallable=__webpack_require__(4901),definePropertyModule=__webpack_require__(4913),makeBuiltIn=__webpack_require__(283),defineGlobalProperty=__webpack_require__(9433);module.exports=function(O,key,value,options){var simple=(options=options||{}).enumerable,name=void 0!==options.name?options.name:key;if(isCallable(value)&&makeBuiltIn(value,name,options),options.global)simple?O[key]=value:defineGlobalProperty(key,value);else{try{options.unsafe?O[key]&&(simple=!0):delete O[key]}catch(error){}simple?O[key]=value:definePropertyModule.f(O,key,{value:value,enumerable:!1,configurable:!options.nonConfigurable,writable:!options.nonWritable})}return O}},6955:(module,__unused_webpack_exports,__webpack_require__)=>{var TO_STRING_TAG_SUPPORT=__webpack_require__(2140),isCallable=__webpack_require__(4901),classofRaw=__webpack_require__(2195),TO_STRING_TAG=__webpack_require__(8227)("toStringTag"),$Object=Object,CORRECT_ARGUMENTS="Arguments"===classofRaw(function(){return arguments}());module.exports=TO_STRING_TAG_SUPPORT?classofRaw:function(it){var tag;return void 0===it?"Undefined":null===it?"Null":"string"==typeof(tag=function(it,key){try{return it[key]}catch(error){}}(it=$Object(it),TO_STRING_TAG))?tag:CORRECT_ARGUMENTS?classofRaw(it):"Object"===(tag=classofRaw(it))&&isCallable(it.callee)?"Arguments":tag}},6969:(module,__unused_webpack_exports,__webpack_require__)=>{var toPrimitive=__webpack_require__(2777),isSymbol=__webpack_require__(757);module.exports=function(argument){argument=toPrimitive(argument,"string");return isSymbol(argument)?argument:argument+""}},6980:module=>{module.exports=function(bitmap,value){return{enumerable:!(1&bitmap),configurable:!(2&bitmap),writable:!(4&bitmap),value:value}}},7040:(module,__unused_webpack_exports,__webpack_require__)=>{__webpack_require__=__webpack_require__(4495);module.exports=__webpack_require__&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},7055:(module,__unused_webpack_exports,__webpack_require__)=>{var uncurryThis=__webpack_require__(9504),fails=__webpack_require__(9039),classof=__webpack_require__(2195),$Object=Object,split=uncurryThis("".split);module.exports=fails(function(){return!$Object("z").propertyIsEnumerable(0)})?function(it){return"String"===classof(it)?split(it,""):$Object(it)}:$Object},7080:(module,__unused_webpack_exports,__webpack_require__)=>{var has=__webpack_require__(4402).has;module.exports=function(it){return has(it),it}},7347:(__unused_webpack_module,exports,__webpack_require__)=>{var DESCRIPTORS=__webpack_require__(3724),call=__webpack_require__(9565),propertyIsEnumerableModule=__webpack_require__(8773),createPropertyDescriptor=__webpack_require__(6980),toIndexedObject=__webpack_require__(5397),toPropertyKey=__webpack_require__(6969),hasOwn=__webpack_require__(9297),IE8_DOM_DEFINE=__webpack_require__(5917),$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;exports.f=DESCRIPTORS?$getOwnPropertyDescriptor:function(O,P){if(O=toIndexedObject(O),P=toPropertyKey(P),IE8_DOM_DEFINE)try{return $getOwnPropertyDescriptor(O,P)}catch(error){}if(hasOwn(O,P))return createPropertyDescriptor(!call(propertyIsEnumerableModule.f,O,P),O[P])}},7394:(module,__unused_webpack_exports,__webpack_require__)=>{var globalThis=__webpack_require__(4576),uncurryThisAccessor=__webpack_require__(6706),classof=__webpack_require__(2195),__webpack_require__=globalThis.ArrayBuffer,TypeError=globalThis.TypeError;module.exports=__webpack_require__&&uncurryThisAccessor(__webpack_require__.prototype,"byteLength","get")||function(O){if("ArrayBuffer"!==classof(O))throw new TypeError("ArrayBuffer expected");return O.byteLength}},7416:(module,__unused_webpack_exports,__webpack_require__)=>{var fails=__webpack_require__(9039),wellKnownSymbol=__webpack_require__(8227),DESCRIPTORS=__webpack_require__(3724),IS_PURE=__webpack_require__(6395),ITERATOR=wellKnownSymbol("iterator");module.exports=!fails(function(){var url=new URL("b?a=1&b=2&c=3","https://a"),params=url.searchParams,params2=new URLSearchParams("a=1&a=2&b=3"),result="";return url.pathname="c%20d",params.forEach(function(value,key){params.delete("b"),result+=key+value}),params2.delete("a",2),params2.delete("b",void 0),IS_PURE&&(!url.toJSON||!params2.has("a",1)||params2.has("a",2)||!params2.has("a",void 0)||params2.has("b"))||!params.size&&(IS_PURE||!DESCRIPTORS)||!params.sort||"https://a/c%20d?a=1&c=3"!==url.href||"3"!==params.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!params[ITERATOR]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==result||"x"!==new URL("https://x",void 0).host})},7476:(module,__unused_webpack_exports,__webpack_require__)=>{var classofRaw=__webpack_require__(2195),uncurryThis=__webpack_require__(9504);module.exports=function(fn){if("Function"===classofRaw(fn))return uncurryThis(fn)}},7566:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var defineBuiltIn=__webpack_require__(6840),uncurryThis=__webpack_require__(9504),toString=__webpack_require__(655),validateArgumentsLength=__webpack_require__(2812),__webpack_require__=URLSearchParams,URLSearchParamsPrototype=__webpack_require__.prototype,getAll=uncurryThis(URLSearchParamsPrototype.getAll),$has=uncurryThis(URLSearchParamsPrototype.has),uncurryThis=new __webpack_require__("a=1");!uncurryThis.has("a",2)&&uncurryThis.has("a",void 0)||defineBuiltIn(URLSearchParamsPrototype,"has",function(name){var length=arguments.length,$value=length<2?void 0:arguments[1];if(length&&void 0===$value)return $has(this,name);for(var values=getAll(this,name),value=(validateArgumentsLength(length,1),toString($value)),index=0;index{var $=__webpack_require__(6518),call=__webpack_require__(9565),iterate=__webpack_require__(2652),aCallable=__webpack_require__(9306),anObject=__webpack_require__(8551),getIteratorDirect=__webpack_require__(1767),iteratorClose=__webpack_require__(9539),forEachWithoutClosingOnEarlyError=__webpack_require__(4549)("forEach",TypeError);$({target:"Iterator",proto:!0,real:!0,forced:forEachWithoutClosingOnEarlyError},{forEach:function(fn){anObject(this);try{aCallable(fn)}catch(error){iteratorClose(this,"throw",error)}if(forEachWithoutClosingOnEarlyError)return call(forEachWithoutClosingOnEarlyError,this,fn);var record=getIteratorDirect(this),counter=0;iterate(record,function(value){fn(value,counter++)},{IS_RECORD:!0})}})},7629:(module,__unused_webpack_exports,__webpack_require__)=>{var IS_PURE=__webpack_require__(6395),globalThis=__webpack_require__(4576),__webpack_require__=__webpack_require__(9433),module=module.exports=globalThis["__core-js_shared__"]||__webpack_require__("__core-js_shared__",{});(module.versions||(module.versions=[])).push({version:"3.43.0",mode:IS_PURE?"pure":"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.43.0/LICENSE",source:"https://github.com/zloirock/core-js"})},7642:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),difference=__webpack_require__(3440),fails=__webpack_require__(9039);$({target:"Set",proto:!0,real:!0,forced:!__webpack_require__(4916)("difference",function(result){return 0===result.size})||fails(function(){var setLike={size:1,has:function(){return!0},keys:function(){var index=0;return{next:function(){var done=1{var IteratorPrototype,arrayIterator,fails=__webpack_require__(9039),isCallable=__webpack_require__(4901),isObject=__webpack_require__(34),create=__webpack_require__(2360),getPrototypeOf=__webpack_require__(2787),defineBuiltIn=__webpack_require__(6840),wellKnownSymbol=__webpack_require__(8227),__webpack_require__=__webpack_require__(6395),ITERATOR=wellKnownSymbol("iterator"),wellKnownSymbol=!1;[].keys&&("next"in(arrayIterator=[].keys())?(getPrototypeOf=getPrototypeOf(getPrototypeOf(arrayIterator)))!==Object.prototype&&(IteratorPrototype=getPrototypeOf):wellKnownSymbol=!0),!isObject(IteratorPrototype)||fails(function(){var test={};return IteratorPrototype[ITERATOR].call(test)!==test})?IteratorPrototype={}:__webpack_require__&&(IteratorPrototype=create(IteratorPrototype)),isCallable(IteratorPrototype[ITERATOR])||defineBuiltIn(IteratorPrototype,ITERATOR,function(){return this}),module.exports={IteratorPrototype:IteratorPrototype,BUGGY_SAFARI_ITERATORS:wellKnownSymbol}},7680:(module,__unused_webpack_exports,__webpack_require__)=>{__webpack_require__=__webpack_require__(9504);module.exports=__webpack_require__([].slice)},7696:(module,__unused_webpack_exports,__webpack_require__)=>{var toIntegerOrInfinity=__webpack_require__(1291),toLength=__webpack_require__(8014),$RangeError=RangeError;module.exports=function(it){if(void 0===it)return 0;var it=toIntegerOrInfinity(it),length=toLength(it);if(it!==length)throw new $RangeError("Wrong length or index");return length}},7740:(module,__unused_webpack_exports,__webpack_require__)=>{var hasOwn=__webpack_require__(9297),ownKeys=__webpack_require__(5031),getOwnPropertyDescriptorModule=__webpack_require__(7347),definePropertyModule=__webpack_require__(4913);module.exports=function(target,source,exceptions){for(var keys=ownKeys(source),defineProperty=definePropertyModule.f,getOwnPropertyDescriptor=getOwnPropertyDescriptorModule.f,i=0;i{var isNullOrUndefined=__webpack_require__(4117),$TypeError=TypeError;module.exports=function(it){if(isNullOrUndefined(it))throw new $TypeError("Can't call method on "+it);return it}},7751:(module,__unused_webpack_exports,__webpack_require__)=>{var globalThis=__webpack_require__(4576),isCallable=__webpack_require__(4901);module.exports=function(namespace,method){return arguments.length<2?(argument=globalThis[namespace],isCallable(argument)?argument:void 0):globalThis[namespace]&&globalThis[namespace][method];var argument}},7811:module=>{module.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},7936:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),$transfer=__webpack_require__(5636);$transfer&&$({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return $transfer(this,arguments.length?arguments[0]:void 0,!1)}})},7979:(module,__unused_webpack_exports,__webpack_require__)=>{var anObject=__webpack_require__(8551);module.exports=function(){var that=anObject(this),result="";return that.hasIndices&&(result+="d"),that.global&&(result+="g"),that.ignoreCase&&(result+="i"),that.multiline&&(result+="m"),that.dotAll&&(result+="s"),that.unicode&&(result+="u"),that.unicodeSets&&(result+="v"),that.sticky&&(result+="y"),result}},8004:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),fails=__webpack_require__(9039),intersection=__webpack_require__(8750);$({target:"Set",proto:!0,real:!0,forced:!__webpack_require__(4916)("intersection",function(result){return 2===result.size&&result.has(1)&&result.has(2)})||fails(function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))})},{intersection:intersection})},8014:(module,__unused_webpack_exports,__webpack_require__)=>{var toIntegerOrInfinity=__webpack_require__(1291),min=Math.min;module.exports=function(argument){argument=toIntegerOrInfinity(argument);return 0{var $=__webpack_require__(6518),$transfer=__webpack_require__(5636);$transfer&&$({target:"ArrayBuffer",proto:!0},{transfer:function(){return $transfer(this,arguments.length?arguments[0]:void 0,!0)}})},8111:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{function IteratorConstructor(){if(anInstance(this,IteratorPrototype),getPrototypeOf(this)===IteratorPrototype)throw new $TypeError("Abstract class Iterator not directly constructable")}function defineIteratorPrototypeAccessor(key,value){DESCRIPTORS?defineBuiltInAccessor(IteratorPrototype,key,{configurable:!0,get:function(){return value},set:function(replacement){if(anObject(this),this===IteratorPrototype)throw new $TypeError("You can't redefine this property");hasOwn(this,key)?this[key]=replacement:createProperty(this,key,replacement)}}):IteratorPrototype[key]=value}var $=__webpack_require__(6518),globalThis=__webpack_require__(4576),anInstance=__webpack_require__(679),anObject=__webpack_require__(8551),isCallable=__webpack_require__(4901),getPrototypeOf=__webpack_require__(2787),defineBuiltInAccessor=__webpack_require__(2106),createProperty=__webpack_require__(4659),fails=__webpack_require__(9039),hasOwn=__webpack_require__(9297),wellKnownSymbol=__webpack_require__(8227),IteratorPrototype=__webpack_require__(7657).IteratorPrototype,DESCRIPTORS=__webpack_require__(3724),__webpack_require__=__webpack_require__(6395),wellKnownSymbol=wellKnownSymbol("toStringTag"),$TypeError=TypeError,NativeIterator=globalThis.Iterator,globalThis=__webpack_require__||!isCallable(NativeIterator)||NativeIterator.prototype!==IteratorPrototype||!fails(function(){NativeIterator({})});hasOwn(IteratorPrototype,wellKnownSymbol)||defineIteratorPrototypeAccessor(wellKnownSymbol,"Iterator"),!globalThis&&hasOwn(IteratorPrototype,"constructor")&&IteratorPrototype.constructor!==Object||defineIteratorPrototypeAccessor("constructor",IteratorConstructor),IteratorConstructor.prototype=IteratorPrototype,$({global:!0,constructor:!0,forced:globalThis},{Iterator:IteratorConstructor})},8227:(module,__unused_webpack_exports,__webpack_require__)=>{var globalThis=__webpack_require__(4576),shared=__webpack_require__(5745),hasOwn=__webpack_require__(9297),uid=__webpack_require__(3392),NATIVE_SYMBOL=__webpack_require__(4495),__webpack_require__=__webpack_require__(7040),Symbol=globalThis.Symbol,WellKnownSymbolsStore=shared("wks"),createWellKnownSymbol=__webpack_require__?Symbol.for||Symbol:Symbol&&Symbol.withoutSetter||uid;module.exports=function(name){return hasOwn(WellKnownSymbolsStore,name)||(WellKnownSymbolsStore[name]=NATIVE_SYMBOL&&hasOwn(Symbol,name)?Symbol[name]:createWellKnownSymbol("Symbol."+name)),WellKnownSymbolsStore[name]}},8237:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),iterate=__webpack_require__(2652),aCallable=__webpack_require__(9306),anObject=__webpack_require__(8551),getIteratorDirect=__webpack_require__(1767),iteratorClose=__webpack_require__(9539),iteratorHelperWithoutClosingOnEarlyError=__webpack_require__(4549),apply=__webpack_require__(8745),__webpack_require__=__webpack_require__(9039),$TypeError=TypeError,__webpack_require__=__webpack_require__(function(){[].keys().reduce(function(){},void 0)}),reduceWithoutClosingOnEarlyError=!__webpack_require__&&iteratorHelperWithoutClosingOnEarlyError("reduce",$TypeError);$({target:"Iterator",proto:!0,real:!0,forced:__webpack_require__||reduceWithoutClosingOnEarlyError},{reduce:function(reducer){anObject(this);try{aCallable(reducer)}catch(error){iteratorClose(this,"throw",error)}var noInitial=arguments.length<2,accumulator=noInitial?void 0:arguments[1];if(reduceWithoutClosingOnEarlyError)return apply(reduceWithoutClosingOnEarlyError,this,noInitial?[reducer]:[reducer,accumulator]);var record=getIteratorDirect(this),counter=0;if(iterate(record,function(value){accumulator=noInitial?(noInitial=!1,value):reducer(accumulator,value,counter),counter++},{IS_RECORD:!0}),noInitial)throw new $TypeError("Reduce of empty iterator with no initial value");return accumulator}})},8469:(module,__unused_webpack_exports,__webpack_require__)=>{var uncurryThis=__webpack_require__(9504),iterateSimple=__webpack_require__(507),__webpack_require__=__webpack_require__(4402),Set=__webpack_require__.Set,__webpack_require__=__webpack_require__.proto,forEach=uncurryThis(__webpack_require__.forEach),keys=uncurryThis(__webpack_require__.keys),next=keys(new Set).next;module.exports=function(set,fn,interruptible){return interruptible?iterateSimple({iterator:keys(set),next:next},fn):forEach(set,fn)}},8480:(__unused_webpack_module,exports,__webpack_require__)=>{var internalObjectKeys=__webpack_require__(1828),hiddenKeys=__webpack_require__(8727).concat("length","prototype");exports.f=Object.getOwnPropertyNames||function(O){return internalObjectKeys(O,hiddenKeys)}},8527:(module,__unused_webpack_exports,__webpack_require__)=>{var aSet=__webpack_require__(7080),has=__webpack_require__(4402).has,size=__webpack_require__(5170),getSetRecord=__webpack_require__(3789),iterateSimple=__webpack_require__(507),iteratorClose=__webpack_require__(9539);module.exports=function(other){var iterator,O=aSet(this),other=getSetRecord(other);return!(size(O){var isObject=__webpack_require__(34),$String=String,$TypeError=TypeError;module.exports=function(argument){if(isObject(argument))return argument;throw new $TypeError($String(argument)+" is not an object")}},8574:(module,__unused_webpack_exports,__webpack_require__)=>{var __webpack_require__=__webpack_require__(9504),$Error=Error,replace=__webpack_require__("".replace),__webpack_require__=String(new $Error("zxcasd").stack),V8_OR_CHAKRA_STACK_ENTRY=/\n\s*at [^:]*:[^\n]*/,IS_V8_OR_CHAKRA_STACK=V8_OR_CHAKRA_STACK_ENTRY.test(__webpack_require__);module.exports=function(stack,dropEntries){if(IS_V8_OR_CHAKRA_STACK&&"string"==typeof stack&&!$Error.prepareStackTrace)for(;dropEntries--;)stack=replace(stack,V8_OR_CHAKRA_STACK_ENTRY,"");return stack}},8622:(module,__unused_webpack_exports,__webpack_require__)=>{var globalThis=__webpack_require__(4576),__webpack_require__=__webpack_require__(4901),globalThis=globalThis.WeakMap;module.exports=__webpack_require__(globalThis)&&/native code/.test(String(globalThis))},8646:(module,__unused_webpack_exports,__webpack_require__)=>{var call=__webpack_require__(9565),anObject=__webpack_require__(8551),getIteratorDirect=__webpack_require__(1767),getIteratorMethod=__webpack_require__(851);module.exports=function(obj,stringHandling){stringHandling&&"string"==typeof obj||anObject(obj);stringHandling=getIteratorMethod(obj);return getIteratorDirect(anObject(void 0!==stringHandling?call(stringHandling,obj):obj))}},8686:(module,__unused_webpack_exports,__webpack_require__)=>{var DESCRIPTORS=__webpack_require__(3724),__webpack_require__=__webpack_require__(9039);module.exports=DESCRIPTORS&&__webpack_require__(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},8721:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var DESCRIPTORS=__webpack_require__(3724),uncurryThis=__webpack_require__(9504),__webpack_require__=__webpack_require__(2106),URLSearchParamsPrototype=URLSearchParams.prototype,forEach=uncurryThis(URLSearchParamsPrototype.forEach);!DESCRIPTORS||"size"in URLSearchParamsPrototype||__webpack_require__(URLSearchParamsPrototype,"size",{get:function(){var count=0;return forEach(this,function(){count++}),count},configurable:!0,enumerable:!0})},8727:module=>{module.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},8745:(module,__unused_webpack_exports,__webpack_require__)=>{var __webpack_require__=__webpack_require__(616),FunctionPrototype=Function.prototype,apply=FunctionPrototype.apply,call=FunctionPrototype.call;module.exports="object"==typeof Reflect&&Reflect.apply||(__webpack_require__?call.bind(apply):function(){return call.apply(apply,arguments)})},8750:(module,__unused_webpack_exports,__webpack_require__)=>{var aSet=__webpack_require__(7080),SetHelpers=__webpack_require__(4402),size=__webpack_require__(5170),getSetRecord=__webpack_require__(3789),iterateSet=__webpack_require__(8469),iterateSimple=__webpack_require__(507),Set=SetHelpers.Set,add=SetHelpers.add,has=SetHelpers.has;module.exports=function(other){var O=aSet(this),otherRec=getSetRecord(other),result=new Set;return size(O)>otherRec.size?iterateSimple(otherRec.getIterator(),function(e){has(O,e)&&add(result,e)}):iterateSet(O,function(e){otherRec.includes(e)&&add(result,e)}),result}},8773:(__unused_webpack_module,exports)=>{var $propertyIsEnumerable={}.propertyIsEnumerable,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,NASHORN_BUG=getOwnPropertyDescriptor&&!$propertyIsEnumerable.call({1:2},1);exports.f=NASHORN_BUG?function(V){V=getOwnPropertyDescriptor(this,V);return!!V&&V.enumerable}:$propertyIsEnumerable},8981:(module,__unused_webpack_exports,__webpack_require__)=>{var requireObjectCoercible=__webpack_require__(7750),$Object=Object;module.exports=function(argument){return $Object(requireObjectCoercible(argument))}},9039:module=>{module.exports=function(exec){try{return!!exec()}catch(error){return!0}}},9143:(module,__unused_webpack_exports,__webpack_require__)=>{function skipAsciiWhitespace(string,index){for(var length=string.length;index>16&255,alphabet>>8&255,255&alphabet];if(2===chunkLength){if(throwOnExtraBits&&0!==chunk[1])throw new SyntaxError("Extra bits");return[chunk[0]]}if(3!==chunkLength)return chunk;if(throwOnExtraBits&&0!==chunk[2])throw new SyntaxError("Extra bits");return[chunk[0],chunk[1]]}function writeBytes(bytes,elements,written){for(var elementsLength=elements.length,index=0;index{var SetHelpers=__webpack_require__(4402),iterate=__webpack_require__(8469),Set=SetHelpers.Set,add=SetHelpers.add;module.exports=function(set){var result=new Set;return iterate(set,function(it){add(result,it)}),result}},9297:(module,__unused_webpack_exports,__webpack_require__)=>{var uncurryThis=__webpack_require__(9504),toObject=__webpack_require__(8981),hasOwnProperty=uncurryThis({}.hasOwnProperty);module.exports=Object.hasOwn||function(it,key){return hasOwnProperty(toObject(it),key)}},9306:(module,__unused_webpack_exports,__webpack_require__)=>{var isCallable=__webpack_require__(4901),tryToString=__webpack_require__(6823),$TypeError=TypeError;module.exports=function(argument){if(isCallable(argument))return argument;throw new $TypeError(tryToString(argument)+" is not a function")}},9429:(module,__unused_webpack_exports,__webpack_require__)=>{var globalThis=__webpack_require__(4576),IS_NODE=__webpack_require__(6193);module.exports=function(name){if(IS_NODE){try{return globalThis.process.getBuiltinModule(name)}catch(error){}try{return Function('return require("'+name+'")')()}catch(error){}}}},9432:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var $=__webpack_require__(6518),globalThis=__webpack_require__(4576),arrayFromConstructorAndList=__webpack_require__(5370),$fromBase64=__webpack_require__(9143),Uint8Array=globalThis.Uint8Array;Uint8Array&&$({target:"Uint8Array",stat:!0},{fromBase64:function(string){var result=$fromBase64(string,1{var globalThis=__webpack_require__(4576),defineProperty=Object.defineProperty;module.exports=function(key,value){try{defineProperty(globalThis,key,{value:value,configurable:!0,writable:!0})}catch(error){globalThis[key]=value}return value}},9462:(module,__unused_webpack_exports,__webpack_require__)=>{function createIteratorProxyPrototype(IS_ITERATOR){var getInternalState=InternalStateModule.getterFor(IS_ITERATOR?"WrapForValidIterator":"IteratorHelper");return defineBuiltIns(create(IteratorPrototype),{next:function(){var state=getInternalState(this);if(IS_ITERATOR)return state.nextHandler();if(state.done)return createIterResultObject(void 0,!0);try{var result=state.nextHandler();return state.returnHandlerResult?result:createIterResultObject(result,state.done)}catch(error){throw state.done=!0,error}},return:function(){var returnMethod,state=getInternalState(this),iterator=state.iterator;if(state.done=!0,IS_ITERATOR)return(returnMethod=getMethod(iterator,"return"))?call(returnMethod,iterator):createIterResultObject(void 0,!0);if(state.inner)try{iteratorClose(state.inner.iterator,"normal")}catch(error){return iteratorClose(iterator,"throw",error)}if(state.openIters)try{iteratorCloseAll(state.openIters,"normal")}catch(error){return iteratorClose(iterator,"throw",error)}return iterator&&iteratorClose(iterator,"normal"),createIterResultObject(void 0,!0)}})}var call=__webpack_require__(9565),create=__webpack_require__(2360),createNonEnumerableProperty=__webpack_require__(6699),defineBuiltIns=__webpack_require__(6279),wellKnownSymbol=__webpack_require__(8227),InternalStateModule=__webpack_require__(1181),getMethod=__webpack_require__(5966),IteratorPrototype=__webpack_require__(7657).IteratorPrototype,createIterResultObject=__webpack_require__(2529),iteratorClose=__webpack_require__(9539),iteratorCloseAll=__webpack_require__(1385),__webpack_require__=wellKnownSymbol("toStringTag"),setInternalState=InternalStateModule.set,WrapForValidIteratorPrototype=createIteratorProxyPrototype(!0),IteratorHelperPrototype=createIteratorProxyPrototype(!1);createNonEnumerableProperty(IteratorHelperPrototype,__webpack_require__,"Iterator Helper"),module.exports=function(nextHandler,IS_ITERATOR,RETURN_HANDLER_RESULT){function IteratorProxy(record,state){state?(state.iterator=record.iterator,state.next=record.next):state=record,state.type=IS_ITERATOR?"WrapForValidIterator":"IteratorHelper",state.returnHandlerResult=!!RETURN_HANDLER_RESULT,state.nextHandler=nextHandler,state.counter=0,state.done=!1,setInternalState(this,state)}return IteratorProxy.prototype=IS_ITERATOR?WrapForValidIteratorPrototype:IteratorHelperPrototype,IteratorProxy}},9479:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{var DESCRIPTORS=__webpack_require__(3724),defineBuiltInAccessor=__webpack_require__(2106),regExpFlagsDetection=__webpack_require__(5213),__webpack_require__=__webpack_require__(7979);DESCRIPTORS&&!regExpFlagsDetection.correct&&(defineBuiltInAccessor(RegExp.prototype,"flags",{configurable:!0,get:__webpack_require__}),regExpFlagsDetection.correct=!0)},9504:(module,__unused_webpack_exports,__webpack_require__)=>{var __webpack_require__=__webpack_require__(616),FunctionPrototype=Function.prototype,call=FunctionPrototype.call,FunctionPrototype=__webpack_require__&&FunctionPrototype.bind.bind(call,call);module.exports=__webpack_require__?FunctionPrototype:function(fn){return function(){return call.apply(fn,arguments)}}},9519:(module,__unused_webpack_exports,__webpack_require__)=>{var match,version,globalThis=__webpack_require__(4576),__webpack_require__=__webpack_require__(2839),process=globalThis.process,globalThis=globalThis.Deno,process=process&&process.versions||globalThis&&globalThis.version,globalThis=process&&process.v8;!(version=globalThis?0<(match=globalThis.split("."))[0]&&match[0]<4?1:+(match[0]+match[1]):version)&&__webpack_require__&&(!(match=__webpack_require__.match(/Edge\/(\d+)/))||74<=match[1])&&(match=__webpack_require__.match(/Chrome\/(\d+)/))&&(version=+match[1]),module.exports=version},9539:(module,__unused_webpack_exports,__webpack_require__)=>{var call=__webpack_require__(9565),anObject=__webpack_require__(8551),getMethod=__webpack_require__(5966);module.exports=function(iterator,kind,value){var innerResult,innerError;anObject(iterator);try{if(!(innerResult=getMethod(iterator,"return"))){if("throw"===kind)throw value;return value}innerResult=call(innerResult,iterator)}catch(error){innerError=!0,innerResult=error}if("throw"===kind)throw value;if(innerError)throw innerResult;return anObject(innerResult),value}},9565:(module,__unused_webpack_exports,__webpack_require__)=>{var __webpack_require__=__webpack_require__(616),call=Function.prototype.call;module.exports=__webpack_require__?call.bind(call):function(){return call.apply(call,arguments)}},9617:(module,__unused_webpack_exports,__webpack_require__)=>{function createMethod(IS_INCLUDES){return function($this,el,fromIndex){var O=toIndexedObject($this),length=lengthOfArrayLike(O);if(0!==length){var value,index=toAbsoluteIndex(fromIndex,length);if(IS_INCLUDES&&el!=el){for(;index{var $=__webpack_require__(6518),globalThis=__webpack_require__(4576),uncurryThis=__webpack_require__(9504),anObjectOrUndefined=__webpack_require__(3972),anUint8Array=__webpack_require__(4154),notDetached=__webpack_require__(5169),base64Map=__webpack_require__(2804),getAlphabetOption=__webpack_require__(944),base64Alphabet=base64Map.i2c,base64UrlAlphabet=base64Map.i2cUrl,charAt=uncurryThis("".charAt);globalThis.Uint8Array&&$({target:"Uint8Array",proto:!0},{toBase64:function(){function at(shift){return charAt(alphabet,triplet>>6*shift&63)}for(var triplet,array=anUint8Array(this),options=arguments.length?anObjectOrUndefined(arguments[0]):void 0,alphabet="base64"===getAlphabetOption(options)?base64Alphabet:base64UrlAlphabet,options=!!options&&!!options.omitPadding,result=(notDetached(this.buffer),""),i=0,length=array.length;i+2{var $=__webpack_require__(6518),globalThis=__webpack_require__(4576),aString=__webpack_require__(3463),anUint8Array=__webpack_require__(4154),notDetached=__webpack_require__(5169),$fromHex=__webpack_require__(2303);globalThis.Uint8Array&&$({target:"Uint8Array",proto:!0},{setFromHex:function(string){anUint8Array(this),aString(string),notDetached(this.buffer);string=$fromHex(string,this).read;return{read:string,written:string/2}}})},9835:module=>{module.exports=function(METHOD_NAME){try{var baseSet=new Set,setLike={size:0,has:function(){return!0},keys:function(){return Object.defineProperty({},"next",{get:function(){return baseSet.clear(),baseSet.add(4),function(){return{done:!0}}}})}},result=baseSet[METHOD_NAME](setLike);return 1!==result.size||4!==result.values().next().value}catch(error){return!1}}}},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];return void 0!==cachedModule||(cachedModule=__webpack_module_cache__[moduleId]={exports:{}},__webpack_modules__[moduleId].call(cachedModule.exports,cachedModule,cachedModule.exports,__webpack_require__)),cachedModule.exports}var __webpack_exports__={},es_array_push=__webpack_require__(4114),es_array_buffer_detached=__webpack_require__(6573),es_array_buffer_transfer=__webpack_require__(8100),es_array_buffer_transfer_to_fixed_length=__webpack_require__(7936),es_iterator_constructor=__webpack_require__(8111),es_iterator_map=__webpack_require__(1701),es_iterator_some=__webpack_require__(3579),es_promise_with_resolvers=__webpack_require__(4628),es_set_difference_v2=__webpack_require__(7642),es_set_intersection_v2=__webpack_require__(8004),es_set_is_disjoint_from_v2=__webpack_require__(3853),es_set_is_subset_of_v2=__webpack_require__(5876),es_set_is_superset_of_v2=__webpack_require__(2475),es_set_symmetric_difference_v2=__webpack_require__(5024),es_set_union_v2=__webpack_require__(1698),esnext_uint8_array_set_from_base64=__webpack_require__(1549),esnext_uint8_array_set_from_hex=__webpack_require__(9797),esnext_uint8_array_to_base64=__webpack_require__(9631),esnext_uint8_array_to_hex=__webpack_require__(5623),web_self=__webpack_require__(3611),es_iterator_reduce=__webpack_require__(8237),es_promise_try=__webpack_require__(1689),esnext_uint8_array_from_base64=__webpack_require__(9432),web_dom_exception_stack=__webpack_require__(4979),web_url_parse=__webpack_require__(5781),isNodeJS=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type),FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0],LINE_FACTOR=1.35,LINE_DESCENT_FACTOR=.35,BASELINE_FACTOR=LINE_DESCENT_FACTOR/LINE_FACTOR,RenderingIntentFlag={ANY:1,DISPLAY:2,PRINT:4,SAVE:8,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,IS_EDITING:128,OPLIST:256},AnnotationMode={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},AnnotationEditorPrefix="pdfjs_internal_editor_",AnnotationEditorType={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15,SIGNATURE:101},AnnotationEditorParamsType={RESIZE:1,CREATE:2,FREETEXT_SIZE:11,FREETEXT_COLOR:12,FREETEXT_OPACITY:13,INK_COLOR:21,INK_THICKNESS:22,INK_OPACITY:23,HIGHLIGHT_COLOR:31,HIGHLIGHT_DEFAULT_COLOR:32,HIGHLIGHT_THICKNESS:33,HIGHLIGHT_FREE:34,HIGHLIGHT_SHOW_ALL:35,DRAW_STEP:41},PermissionFlag={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},TextRenderingMode={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},AnnotationType={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26},AnnotationReplyType={GROUP:"Group",REPLY:"R"},AnnotationFlag={INVISIBLE:1,HIDDEN:2,PRINT:4,NOZOOM:8,NOROTATE:16,NOVIEW:32,READONLY:64,LOCKED:128,TOGGLENOVIEW:256,LOCKEDCONTENTS:512},AnnotationFieldFlag={READONLY:1,REQUIRED:2,NOEXPORT:4,MULTILINE:4096,PASSWORD:8192,NOTOGGLETOOFF:16384,RADIO:32768,PUSHBUTTON:65536,COMBO:131072,EDIT:262144,SORT:524288,FILESELECT:1048576,MULTISELECT:2097152,DONOTSPELLCHECK:4194304,DONOTSCROLL:8388608,COMB:16777216,RICHTEXT:33554432,RADIOSINUNISON:33554432,COMMITONSELCHANGE:67108864},AnnotationBorderStyleType={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5},AnnotationActionEventType={E:"Mouse Enter",X:"Mouse Exit",D:"Mouse Down",U:"Mouse Up",Fo:"Focus",Bl:"Blur",PO:"PageOpen",PC:"PageClose",PV:"PageVisible",PI:"PageInvisible",K:"Keystroke",F:"Format",V:"Validate",C:"Calculate"},DocumentActionEventType={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"},PageActionEventType={O:"PageOpen",C:"PageClose"},VerbosityLevel={ERRORS:0,WARNINGS:1,INFOS:5},OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotation:80,endAnnotation:81,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91,setStrokeTransparent:92,setFillTransparent:93,rawFillPath:94},DrawOPS={moveTo:0,lineTo:1,curveTo:2,closePath:3},PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2},verbosity=VerbosityLevel.WARNINGS;function setVerbosityLevel(level){Number.isInteger(level)&&(verbosity=level)}function getVerbosityLevel(){return verbosity}function info(msg){verbosity>=VerbosityLevel.INFOS&&console.log("Info: ".concat(msg))}function warn(msg){verbosity>=VerbosityLevel.WARNINGS&&console.log("Warning: ".concat(msg))}function unreachable(msg){throw new Error(msg)}function assert(cond,msg){cond||unreachable(msg)}function _isValidProtocol(url){switch(null==url?void 0:url.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function createValidAbsoluteUrl(url){var baseUrl=1>24&255,value>>16&255,value>>8&255,255&value)}function objectSize(obj){return Object.keys(obj).length}function isLittleEndian(){var buffer8=new Uint8Array(4);return(buffer8[0]=1)===new Uint32Array(buffer8.buffer,0,1)[0]}function isEvalSupported(){try{return new Function(""),!0}catch(_unused2){return!1}}class FeatureTest{static get isLittleEndian(){return shadow(this,"isLittleEndian",isLittleEndian())}static get isEvalSupported(){return shadow(this,"isEvalSupported",isEvalSupported())}static get isOffscreenCanvasSupported(){return shadow(this,"isOffscreenCanvasSupported","undefined"!=typeof OffscreenCanvas)}static get isImageDecoderSupported(){return shadow(this,"isImageDecoderSupported","undefined"!=typeof ImageDecoder)}static get platform(){var{platform,userAgent}=navigator;return shadow(this,"platform",{isAndroid:userAgent.includes("Android"),isLinux:platform.includes("Linux"),isMac:platform.includes("Mac"),isWindows:platform.includes("Win"),isFirefox:userAgent.includes("Firefox")})}static get isCSSRoundSupported(){var _globalThis$CSS;return shadow(this,"isCSSRoundSupported",null==(_globalThis$CSS=globalThis.CSS)||null==_globalThis$CSS.supports?void 0:_globalThis$CSS.supports("width: round(1.5px, 1px)"))}}var hexNumbers=Array.from(Array(256).keys(),n=>n.toString(16).padStart(2,"0"));class Util{static makeHexColor(r,g,b){return"#".concat(hexNumbers[r]).concat(hexNumbers[g]).concat(hexNumbers[b])}static scaleMinMax(transform,minMax){var temp;transform[0]?(transform[0]<0&&(temp=minMax[0],minMax[0]=minMax[2],minMax[2]=temp),minMax[0]*=transform[0],minMax[2]*=transform[0],transform[3]<0&&(temp=minMax[1],minMax[1]=minMax[3],minMax[3]=temp),minMax[1]*=transform[3],minMax[3]*=transform[3]):(temp=minMax[0],minMax[0]=minMax[1],minMax[1]=temp,temp=minMax[2],minMax[2]=minMax[3],minMax[3]=temp,transform[1]<0&&(temp=minMax[1],minMax[1]=minMax[3],minMax[3]=temp),minMax[1]*=transform[1],minMax[3]*=transform[1],transform[2]<0&&(temp=minMax[0],minMax[0]=minMax[2],minMax[2]=temp),minMax[0]*=transform[2],minMax[2]*=transform[2]),minMax[0]+=transform[4],minMax[1]+=transform[5],minMax[2]+=transform[4],minMax[3]+=transform[5]}static transform(m1,m2){return[m1[0]*m2[0]+m1[2]*m2[1],m1[1]*m2[0]+m1[3]*m2[1],m1[0]*m2[2]+m1[2]*m2[3],m1[1]*m2[2]+m1[3]*m2[3],m1[0]*m2[4]+m1[2]*m2[5]+m1[4],m1[1]*m2[4]+m1[3]*m2[5]+m1[5]]}static applyTransform(p,m){var pos=2rect[2]&&(r[0]=rect[2],r[2]=rect[0]),rect[1]>rect[3]&&(r[1]=rect[3],r[3]=rect[1]),r}static intersect(rect1,rect2){var yLow,xLow=Math.max(Math.min(rect1[0],rect1[2]),Math.min(rect2[0],rect2[2])),xHigh=Math.min(Math.max(rect1[0],rect1[2]),Math.max(rect2[0],rect2[2]));return xHighp1?p1.normalize("NFKC"):NormalizationMap.get(p2))}function getUuid(){var buf;return"function"==typeof crypto.randomUUID?crypto.randomUUID():(buf=new Uint8Array(32),crypto.getRandomValues(buf),bytesToString(buf))}var AnnotationPrefix="pdfjs_internal_id_";function _isValidExplicitDest(validRef,validName,dest){if(!Array.isArray(dest)||dest.length<2)return!1;var[dest,zoom,...args]=dest;if(!validRef(dest)&&!Number.isInteger(dest))return!1;if(!validName(zoom))return!1;var arg,argsLen=args.length,allowNull=!0;switch(zoom.name){case"XYZ":if(argsLen<2||3hexNumbers[num]).join("")}function toBase64Util(arr){return Uint8Array.prototype.toBase64?arr.toBase64():btoa(bytesToString(arr))}function fromBase64Util(str){return Uint8Array.fromBase64?Uint8Array.fromBase64(str):stringToBytes(atob(str))}"function"!=typeof Math.sumPrecise&&(Math.sumPrecise=function(numbers){return numbers.reduce((a,b)=>a+b,0)}),"function"!=typeof AbortSignal.any&&(AbortSignal.any=function(iterable){var s,ac=new AbortController,signal=ac["signal"];for(s of iterable)if(s.aborted)return ac.abort(s.reason),signal;var _s;for(_s of iterable)!function(_s){_s.addEventListener("abort",()=>{ac.abort(_s.reason)},{signal:signal})}(_s);return signal});var es_iterator_every=__webpack_require__(1148),CIRCULAR_REF=Symbol("CIRCULAR_REF"),EOF=Symbol("EOF"),CmdCache=Object.create(null),NameCache=Object.create(null),RefCache=Object.create(null);function clearPrimitiveCaches(){CmdCache=Object.create(null),NameCache=Object.create(null),RefCache=Object.create(null)}class Name{constructor(name){this.name=name}static get(name){return NameCache[name]||(NameCache[name]=new Name(name))}}class Cmd{constructor(cmd){this.cmd=cmd}static get(cmd){return CmdCache[cmd]||(CmdCache[cmd]=new Cmd(cmd))}}var nonSerializable=function(){return nonSerializable};class Dict{constructor(){var xref=0{unreachable("Should not call `set` on the empty dictionary.")},shadow(this,"empty",emptyDict)}static merge(_ref){var dict,name,values,{xref,dictArray:_ref,mergeSubDicts=!1}=_ref,mergedDict=new Dict(xref),properties=new Map;for(dict of _ref)if(dict instanceof Dict)for(var[key,value]of dict._map){var property=properties.get(key);if(void 0===property)properties.set(key,property=[]);else if(!(mergeSubDicts&&value instanceof Dict))continue;property.push(value)}for([name,values]of properties)if(1!==values.length&&values[0]instanceof Dict){var _dict,subDict=new Dict(xref);for(_dict of values)for(var[_key,_value]of _dict._map)subDict._map.has(_key)||subDict._map.set(_key,_value);0>24}function readInt16(data,offset){return(data[offset]<<24|data[offset+1]<<16)>>16}function readUint16(data,offset){return data[offset]<<8|data[offset+1]}function readUint32(data,offset){return(data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3])>>>0}function isWhiteSpace(ch){return 32===ch||9===ch||13===ch||10===ch}function isBooleanArray(arr,len){return Array.isArray(arr)&&(null===len||arr.length===len)&&arr.every(x=>"boolean"==typeof x)}function isNumberArray(arr,len){return Array.isArray(arr)?(null===len||arr.length===len)&&arr.every(x=>"number"==typeof x):ArrayBuffer.isView(arr)&&!(arr instanceof BigInt64Array||arr instanceof BigUint64Array)&&(null===len||arr.length===len)}function lookupMatrix(arr,fallback){return isNumberArray(arr,6)?arr:fallback}function lookupRect(arr,fallback){return isNumberArray(arr,4)?arr:fallback}function lookupNormalRect(arr,fallback){return isNumberArray(arr,4)?Util.normalizeRect(arr):fallback}function parseXFAPath(path){var positionPattern=/(.+)\[(\d+)\]$/;return path.split(".").map(component=>{var m=component.match(positionPattern);return m?{name:m[1],pos:parseInt(m[2],10)}:{name:component,pos:0}})}function escapePDFName(str){for(var buffer=[],start=0,i=0,ii=str.length;i"\n"===match?"\\n":"\r"===match?"\\r":"\\".concat(match))}function _collectJS(entry,xref,list,parents){if(entry){var js,code,parent=null;if(entry instanceof Ref){if(parents.has(entry))return;parent=entry,parents.put(parent),entry=xref.fetch(entry)}if(Array.isArray(entry))for(var element of entry)_collectJS(element,xref,list,parents);else entry instanceof Dict&&(isName(entry.get("S"),"JavaScript")&&((js=entry.get("JS"))instanceof BaseStream?code=js.getString():"string"==typeof js&&(code=js),code=code&&stringToPDFString(code,!0).replaceAll("\0",""))&&list.push(code),_collectJS(entry.getRaw("Next"),xref,list,parents));parent&&parents.remove(parent)}}function collectActions(xref,dict,eventType){var _list,actions=Object.create(null),additionalActionsDicts=getInheritableProperty({dict:dict,key:"AA",stopWhenFound:!1});if(additionalActionsDicts)for(var i=additionalActionsDicts.length-1;0<=i;i--){var additionalActions=additionalActionsDicts[i];if(additionalActions instanceof Dict)for(var key of additionalActions.getKeys()){var list,action=eventType[key];action&&(list=[],_collectJS(additionalActions.getRaw(key),xref,list,new RefSet),0: ".concat(fontFamily,".")),!1;return!0}function validateCSSFont(cssFontInfo){var CSS_FONT_WEIGHT_VALUES=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),{fontFamily,fontWeight,italicAngle}=cssFontInfo;return!!validateFontName(fontFamily,!0)&&(fontFamily=fontWeight?fontWeight.toString():"",cssFontInfo.fontWeight=CSS_FONT_WEIGHT_VALUES.has(fontFamily)?fontFamily:"400",fontWeight=parseFloat(italicAngle),cssFontInfo.italicAngle=isNaN(fontWeight)||fontWeight<-90||90>8&255],hexNumbers[255&char])}return buf.join("")}function stringToUTF16String(str){var buf=[];1>8&255),String.fromCharCode(255&char))}return buf.join("")}function getRotationMatrix(rotation,width,height){switch(rotation){case 90:return[0,1,-1,0,width,0];case 180:return[-1,0,0,-1,width,height];case 270:return[0,-1,1,0,0,height];default:throw new Error("Invalid rotation")}}function getSizeInBytes(x){return Math.ceil(Math.ceil(Math.log2(1+x))/8)}var web_url_search_params_delete=__webpack_require__(4603),web_url_search_params_has=__webpack_require__(7566),web_url_search_params_size=__webpack_require__(8721);class QCMS{static get _memoryArray(){var array=_assertClassBrand(QCMS,this,_memoryArray2)._;return null!=array&&array.byteLength?array:_memoryArray2._=_assertClassBrand(QCMS,this,new Uint8Array(this._memory.buffer))}}var wasm,_memoryArray2={_:null};function copy_result(ptr,len){var{_mustAddAlpha,_destBuffer,_destOffset,_destLength,_memoryArray}=QCMS;if(len===_destLength)_destBuffer.set(_memoryArray.subarray(ptr,ptr+len),_destOffset);else if(_mustAddAlpha)for(var i=ptr,ii=ptr+len,j=_destOffset;i{throw Error("TextDecoder not available")}},cachedUint8ArrayMemory0=("undefined"!=typeof TextDecoder&&cachedTextDecoder.decode(),null);function getUint8ArrayMemory0(){return cachedUint8ArrayMemory0=null!==cachedUint8ArrayMemory0&&0!==cachedUint8ArrayMemory0.byteLength?cachedUint8ArrayMemory0:new Uint8Array(wasm.memory.buffer)}function getStringFromWasm0(ptr,len){return ptr>>>=0,cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr,ptr+len))}var WASM_VECTOR_LEN=0;function passArray8ToWasm0(arg,malloc){malloc=malloc(+arg.length,1)>>>0;return getUint8ArrayMemory0().set(arg,malloc),WASM_VECTOR_LEN=arg.length,malloc}function qcms_convert_array(transformer,src){var src=passArray8ToWasm0(src,wasm.__wbindgen_malloc),len0=WASM_VECTOR_LEN;wasm.qcms_convert_array(transformer,src,len0)}function qcms_convert_one(transformer,src,css){wasm.qcms_convert_one(transformer,src,css)}function qcms_convert_three(transformer,src1,src2,src3,css){wasm.qcms_convert_three(transformer,src1,src2,src3,css)}function qcms_convert_four(transformer,src1,src2,src3,src4,css){wasm.qcms_convert_four(transformer,src1,src2,src3,src4,css)}function qcms_transformer_from_memory(mem,in_type,intent){var mem=passArray8ToWasm0(mem,wasm.__wbindgen_malloc),len0=WASM_VECTOR_LEN;return wasm.qcms_transformer_from_memory(mem,len0,in_type,intent)>>>0}function qcms_drop_transformer(transformer){wasm.qcms_drop_transformer(transformer)}var DataType=Object.freeze({RGB8:0,0:"RGB8",RGBA8:1,1:"RGBA8",BGRA8:2,2:"BGRA8",Gray8:3,3:"Gray8",GrayA8:4,4:"GrayA8",CMYK:5,5:"CMYK"}),Intent=Object.freeze({Perceptual:0,0:"Perceptual",RelativeColorimetric:1,1:"RelativeColorimetric",Saturation:2,2:"Saturation",AbsoluteColorimetric:3,3:"AbsoluteColorimetric"});async function __wbg_load(module,imports){if("function"==typeof Response&&module instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(module,imports)}catch(e){if("application/wasm"==module.headers.get("Content-Type"))throw e;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",e)}var bytes=await module.arrayBuffer();return WebAssembly.instantiate(bytes,imports)}return(bytes=await WebAssembly.instantiate(module,imports))instanceof WebAssembly.Instance?{instance:bytes,module:module}:bytes}function __wbg_get_imports(){var imports={wbg:{}};return imports.wbg.__wbg_copyresult_b08ee7d273f295dd=function(arg0,arg1){copy_result(arg0>>>0,arg1>>>0)},imports.wbg.__wbg_copyrgb_d60ce17bb05d9b67=function(arg0){copy_rgb(arg0>>>0)},imports.wbg.__wbg_makecssRGB_893bf0cd9fdb302d=function(arg0){make_cssRGB(arg0>>>0)},imports.wbg.__wbindgen_init_externref_table=function(){var table=wasm.__wbindgen_export_0,offset=table.grow(4);table.set(0,void 0),table.set(offset+0,void 0),table.set(offset+1,null),table.set(offset+2,!0),table.set(offset+3,!1)},imports.wbg.__wbindgen_throw=function(arg0,arg1){throw new Error(getStringFromWasm0(arg0,arg1))},imports}function __wbg_init_memory(imports,memory){}function __wbg_finalize_init(instance,module){return wasm=instance.exports,__wbg_init.__wbindgen_wasm_module=module,cachedUint8ArrayMemory0=null,wasm.__wbindgen_start(),wasm}function initSync(module){if(void 0!==wasm)return wasm;void 0!==module&&(Object.getPrototypeOf(module)===Object.prototype?module=module["module"]:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));var imports=__wbg_get_imports();return __wbg_init_memory(imports),module instanceof WebAssembly.Module||(module=new WebAssembly.Module(module)),__wbg_finalize_init(new WebAssembly.Instance(module,imports),module)}async function __wbg_init(module_or_path){if(void 0!==wasm)return wasm;void 0!==module_or_path&&(Object.getPrototypeOf(module_or_path)===Object.prototype?module_or_path=module_or_path["module_or_path"]:console.warn("using deprecated parameters for the initialization function; pass a single object instead"));var imports=__wbg_get_imports(),{instance:module_or_path,module:imports}=(("string"==typeof module_or_path||"function"==typeof Request&&module_or_path instanceof Request||"function"==typeof URL&&module_or_path instanceof URL)&&(module_or_path=fetch(module_or_path)),__wbg_init_memory(imports),await __wbg_load(await module_or_path,imports));return __wbg_finalize_init(module_or_path,imports)}var qcms=null;function resizeRgbImage(src,dest,w1,h1,w2,h2,alpha01){alpha01=1!==alpha01?0:alpha01;for(var oldIndex,xRatio=w1/w2,yRatio=h1/h2,newIndex=0,xScaled=new Uint16Array(w2),w1Scanline=3*w1,i=0;ithis.amax||this.bmin>this.bmax)&&(info("Invalid Range, falling back to defaults"),this.amin=-100,this.amax=100,this.bmin=-100,this.bmax=100)}getRgbItem(src,srcOffset,dest,destOffset){_assertClassBrand(_LabCS_brand,this,_toRgb4).call(this,src,srcOffset,!1,dest,destOffset)}getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){for(var maxVal=(1<this.amax?as=this.amax:asthis.bmax?src=this.bmax:srcqcms_convert_one(_classPrivateFieldGet(_transformer,this),255*src[srcOffset],css));break;case 3:inType=DataType.RGB8,_classPrivateFieldSet(_convertPixel,this,(src,srcOffset,css)=>qcms_convert_three(_classPrivateFieldGet(_transformer,this),255*src[srcOffset],255*src[srcOffset+1],255*src[srcOffset+2],css));break;case 4:inType=DataType.CMYK,_classPrivateFieldSet(_convertPixel,this,(src,srcOffset,css)=>qcms_convert_four(_classPrivateFieldGet(_transformer,this),255*src[srcOffset],255*src[srcOffset+1],255*src[srcOffset+2],255*src[srcOffset+3],css));break;default:throw new Error("Unsupported number of components: ".concat(numComps))}if(_classPrivateFieldSet(_transformer,this,qcms_transformer_from_memory(iccProfile,inType,Intent.Perceptual)),!_classPrivateFieldGet(_transformer,this))throw new Error("Failed to create ICC color space");_finalizer._.register(this,_classPrivateFieldGet(_transformer,this))}getRgbHex(src,srcOffset){return _classPrivateFieldGet(_convertPixel,this).call(this,src,srcOffset,!0),QCMS._cssColor}getRgbItem(src,srcOffset,dest,destOffset){QCMS._destBuffer=dest,QCMS._destOffset=destOffset,QCMS._destLength=3,_classPrivateFieldGet(_convertPixel,this).call(this,src,srcOffset,!1),QCMS._destBuffer=null}getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){if(src=src.subarray(srcOffset,srcOffset+count*this.numComps),8!==bits)for(var scale=255/((1<{qcms_drop_transformer(transformer)})};class CmykICCBasedCS extends IccColorSpace{constructor(){super(new Uint8Array(fetchSync("".concat(_iccUrl._,"CGATS001Compat-v2-micro.icc"))),"DeviceCMYK",4)}static setOptions(_ref4){_ref4=_ref4.iccUrl;_iccUrl._=_assertClassBrand(CmykICCBasedCS,this,_ref4)}static get isUsable(){var isUsable=!1;return IccColorSpace.isUsable&&(_assertClassBrand(CmykICCBasedCS,this,_iccUrl)._?isUsable=!0:warn("No CMYK ICC profile support due to missing `iccUrl` API option")),shadow(this,"isUsable",isUsable)}}var _iccUrl={_:void 0};class Stream extends BaseStream{constructor(arrayBuffer,start,length,dict){super(),this.bytes=arrayBuffer instanceof Uint8Array?arrayBuffer:new Uint8Array(arrayBuffer),this.start=start||0,this.pos=this.start,this.end=start+length||this.bytes.length,this.dict=dict}get length(){return this.end-this.start}get isEmpty(){return 0===this.length}getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}getBytes(length){var bytes=this.bytes,pos=this.pos,strEnd=this.end;return length?(this.pos=length=strEnd<(length=pos+length)?strEnd:length,bytes.subarray(pos,length)):bytes.subarray(pos,strEnd)}getByteRange(begin,end){return end>this.end&&(end=this.end),this.bytes.subarray(begin=begin<0?0:begin,end)}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(start,length){var dict=2=this.end?this.numChunks:Math.floor(position/this.chunkSize)),curChunk=beginChunk;curChunkthis.numChunks)&&chunk!==this.lastSuccessfulEnsureByteChunk){if(!this._loadedChunks.has(chunk))throw new MissingDataException(pos,pos+1);this.lastSuccessfulEnsureByteChunk=chunk}}}ensureRange(begin,end){if(!(end<=begin||end<=this.progressiveDataLength)){var beginChunk=Math.floor(begin/this.chunkSize);if(!(beginChunk>this.numChunks))for(var endChunk=Math.min(Math.floor((end-1)/this.chunkSize)+1,this.numChunks),chunk=beginChunk;chunk=this.end?-1:(pos>=this.progressiveDataLength&&this.ensureByte(pos),this.bytes[this.pos++])}getBytes(length){var bytes=this.bytes,pos=this.pos,strEnd=this.end;return length?((length=strEnd<(length=pos+length)?strEnd:length)>this.progressiveDataLength&&this.ensureRange(pos,length),this.pos=length,bytes.subarray(pos,length)):(strEnd>this.progressiveDataLength&&this.ensureRange(pos,strEnd),bytes.subarray(pos,strEnd))}getByteRange(begin,end){return begin<0&&(begin=0),(end=end>this.end?this.end:end)>this.progressiveDataLength&&this.ensureRange(begin,end),this.bytes.subarray(begin,end)}makeSubStream(start,length){var dict=2this.progressiveDataLength&&this.ensureRange(start,start+length):start>=this.progressiveDataLength&&this.ensureByte(start),(ChunkedStreamSubstream.prototype=Object.create(this)).getMissingChunks=function(){for(var chunkSize=this.chunkSize,beginChunk=Math.floor(this.start/chunkSize),endChunk=Math.floor((this.end-1)/chunkSize)+1,missingChunks=[],chunk=beginChunk;chunk{var readChunk=_ref5=>{var chunkData,{value:_ref5,done}=_ref5;try{done?(chunkData=arrayBuffersToBytes(chunks),chunks=null,resolve(chunkData)):(loaded+=_ref5.byteLength,rangeReader.isStreamingSupported&&this.onProgress({loaded:loaded}),chunks.push(_ref5),rangeReader.read().then(readChunk,reject))}catch(e){reject(e)}};rangeReader.read().then(readChunk,reject)}).then(data=>{this.aborted||this.onReceiveData({chunk:data,begin:begin})})}requestAllChunks(){var missingChunks;return 0{if(!this.aborted)throw reason})}getStream(){return this.stream}requestRange(begin,end){end=Math.min(end,this.length);for(var begin=this.getBeginChunk(begin),endChunk=this.getEndChunk(end),chunks=[],chunk=begin;chunka-b),this._requestChunks(chunksToRequest)}groupChunks(chunks){for(var groupedChunks=[],beginChunk=-1,prevChunk=-1,i=0,ii=chunks.length;i>3,widthRemainder=7&_ref6,srcLength=src.length,dest=new Uint32Array(dest.buffer),destPos=0,i=0;i>2,src32=new Uint32Array(src.buffer,_ref7,len32);if(FeatureTest.isLittleEndian){for(;i>>24|s2<<8|4278190080,dest[destPos+2]=s2>>>16|s3<<16|4278190080,dest[destPos+3]=s3>>>8|4278190080}for(var j=4*i,jj=_ref7+width;j>>8|255,dest[destPos+2]=_s3<<16|_s4>>>16|255,dest[destPos+3]=_s4<<8|255}for(var _j3=4*i,_jj=_ref7+width;_j3<_jj;_j3+=3)dest[destPos++]=src[_j3]<<24|src[_j3+1]<<16|src[_j3+2]<<8|255}return{srcPos:_ref7+width,destPos:destPos}}function grayToRGBA(src,dest){if(FeatureTest.isLittleEndian)for(var i=0,ii=src.length;ithis.MAX_AREA:!(area<_assertClassBrand(ImageResizer,this,_goodSquareLength)._**2)&&(this._areGoodDims(width,height)?(_goodSquareLength._=_assertClassBrand(ImageResizer,this,Math.max(_assertClassBrand(ImageResizer,this,_goodSquareLength)._,Math.floor(Math.sqrt(width*height)))),!1):(_goodSquareLength._=_assertClassBrand(ImageResizer,this,this._guessMax(_assertClassBrand(ImageResizer,this,_goodSquareLength)._,MAX_DIM,MAX_ERROR,0)),(this.MAX_AREA=_assertClassBrand(ImageResizer,this,_goodSquareLength)._**2)>2),_isImageDecoderSupported._=_assertClassBrand(ImageResizer,this,isImageDecoderSupported)}static _areGoodDims(width,height){try{var canvas=new OffscreenCanvas(width,height),ctx=canvas.getContext("2d"),opacity=(ctx.fillRect(0,0,1,1),ctx.getImageData(0,0,1,1).data[3]);return canvas.width=canvas.height=1,0!==opacity}catch(_unused3){return!1}}static _guessMax(start,end,tolerance,defaultHeight){for(;start+tolerance+1(warn("BMP image decoding failed: ".concat(reason)),createImageBitmap(new Blob([this._encodeBMP().buffer],{type:"image/bmp"})))).finally(()=>{decoder.close()}):createImageBitmap(new Blob([_result.buffer],{type:"image/bmp"})),{MAX_AREA,MAX_DIM}=ImageResizer,MAX_DIM=Math.max(width/MAX_DIM,height/MAX_DIM,Math.sqrt(width*height/MAX_AREA)),MAX_AREA=Math.max(MAX_DIM,2),MAX_DIM=Math.round(10*(MAX_DIM+1.25))/10/MAX_AREA,N=Math.floor(Math.log2(MAX_DIM)),steps=new Array(N+2).fill(2),newWidth=(steps[0]=MAX_AREA,steps.splice(-1,1,MAX_DIM/(1<>3,rowSize=3+rowLen&-4;if(rowLen!=rowSize){for(var newData=new Uint8Array(rowSize*height),k=0,_i10=0,ii=height*rowLen;_i10>K,newHeight=height>>K,maxHeight=height;try{rgbaData=new Uint8Array(rgbaSize)}catch(_unused16){for(var n=Math.floor(Math.log2(1+rgbaSize));;)try{rgbaData=new Uint8Array(2**n-1);break}catch(_unused17){--n}rgbaSize=width*(maxHeight=Math.floor((2**n-1)/(4*width)))*4;rgbaSize>K;is instanceof BaseStream))maybeLength+=stream instanceof DecodeStream?stream._rawMinBufferLength:stream.length;super(maybeLength),this.streams=streams,this._onError=onError}readBlock(){var streams=this.streams;if(0===streams.length)this.eof=!0;else{var chunk,streams=streams.shift();try{chunk=streams.getBytes()}catch(reason){if(this._onError)return void this._onError(reason,null==(streams=streams.dict)?void 0:streams.objId);throw reason}var streams=this.bufferLength,newLength=streams+chunk.length;this.ensureBuffer(newLength).set(chunk,streams),this.bufferLength=newLength}}getBaseStreams(){var stream,baseStreamsBuf=[];for(stream of this.streams){var baseStreams=stream.getBaseStreams();baseStreams&&baseStreamsBuf.push(...baseStreams)}return 0>--bitsCount&1;if(255===(bitsData=data[offset++])){var nextByte=data[offset++];if(nextByte){if(220===nextByte&&parseDNLMarker){var scanLines=readUint16(data,offset+=2);if(offset+=2,0>>(bitsCount=7)}function decodeHuffman(tree){for(var node=tree;;){switch(typeof(node=node[readBit()])){case"number":return node;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(length){for(var n=0;0>4;if(0==s){if(rs<15){eobrun=receive(rs)+(1<>4,0==(rs=15&rs))successiveACState=r<15?(eobrun=receive(r)+(1<>4;if(0==s){if(rs<15)break;k+=16}else{rs=dctZigZag[k+=rs];component.blockData[blockOffset+rs]=receiveAndExtend(s),k++}}},mcu=0,mcuExpected=1===componentsLength?components[0].blocksPerLine*components[0].blocksPerColumn:mcusPerLine*frame.mcusPerColumn;mcu<=mcuExpected;){var mcuToRead=resetInterval?Math.min(mcuExpected-mcu,resetInterval):mcuExpected;if(0>10,p[row+1]=t,p[row+2]=t,p[row+3]=t,p[row+4]=t,p[row+5]=t,p[row+6]=t,p[row+7]=t):(p1*=qt[row+1],p2*=qt[row+2],p3*=qt[row+3],p4*=qt[row+4],p5*=qt[row+5],p6*=qt[row+6],p7*=qt[row+7],v1=(v0=(v0=dctSqrt2*p0+128>>8)+(v1=dctSqrt2*p4+128>>8)+1>>1)-v1,t=(v2=p2)*dctSin6+(v3=p6)*dctCos6+128>>8,v2=v2*dctCos6-v3*dctSin6+128>>8,v6=(v4=(v4=dctSqrt1d2*(p1-p7)+128>>8)+(v6=p5<<4)+1>>1)-v6,v5=(v7=(v7=dctSqrt1d2*(p1+p7)+128>>8)+(v5=p3<<4)+1>>1)-v5,v3=(v0=v0+(v3=t)+1>>1)-v3,v2=(v1=v1+v2+1>>1)-v2,t=v4*dctSin3+v7*dctCos3+2048>>12,v4=v4*dctCos3-v7*dctSin3+2048>>12,v7=t,t=v5*dctSin1+v6*dctCos1+2048>>12,v5=v5*dctCos1-v6*dctSin1+2048>>12,v6=t,p[row]=v0+v7,p[row+7]=v0-v7,p[row+1]=v1+v6,p[row+6]=v1-v6,p[row+2]=v2+v5,p[row+5]=v2-v5,p[row+3]=v3+v4,p[row+4]=v3-v4);for(var col=0;col<8;++col)p0=p[col],0==((p1=p[col+8])|(p2=p[col+16])|(p3=p[col+24])|(p4=p[col+32])|(p5=p[col+40])|(p6=p[col+48])|(p7=p[col+56]))?(blockData[blockBufferOffset+col]=t=(t=dctSqrt2*p0+8192>>14)<-2040?0:2024<=t?255:t+2056>>4,blockData[blockBufferOffset+col+8]=t,blockData[blockBufferOffset+col+16]=t,blockData[blockBufferOffset+col+24]=t,blockData[blockBufferOffset+col+32]=t,blockData[blockBufferOffset+col+40]=t,blockData[blockBufferOffset+col+48]=t,blockData[blockBufferOffset+col+56]=t):(v1=(v0=4112+((v0=dctSqrt2*p0+2048>>12)+(v1=dctSqrt2*p4+2048>>12)+1>>1))-v1,t=(v2=p2)*dctSin6+(v3=p6)*dctCos6+2048>>12,v2=v2*dctCos6-v3*dctSin6+2048>>12,v3=t,v6=(v4=(v4=dctSqrt1d2*(p1-p7)+2048>>12)+(v6=p5)+1>>1)-v6,v5=(v7=(v7=dctSqrt1d2*(p1+p7)+2048>>12)+(v5=p3)+1>>1)-v5,t=v4*dctSin3+v7*dctCos3+2048>>12,v4=v4*dctCos3-v7*dctSin3+2048>>12,v7=t,t=v5*dctSin1+v6*dctCos1+2048>>12,v5=v5*dctCos1-v6*dctSin1+2048>>12,(p0=(v0=v0+v3+1>>1)+v7)<16?p0=0:4080<=p0?p0=255:p0>>=4,(p1=(v1=v1+v2+1>>1)+(v6=t))<16?p1=0:4080<=p1?p1=255:p1>>=4,(p2=(v2=v1-v2)+v5)<16?p2=0:4080<=p2?p2=255:p2>>=4,(p3=(v3=v0-v3)+v4)<16?p3=0:4080<=p3?p3=255:p3>>=4,(p4=v3-v4)<16?p4=0:4080<=p4?p4=255:p4>>=4,(p5=v2-v5)<16?p5=0:4080<=p5?p5=255:p5>>=4,(p6=v1-v6)<16?p6=0:4080<=p6?p6=255:p6>>=4,(p7=v0-v7)<16?p7=0:4080<=p7?p7=255:p7>>=4,blockData[blockBufferOffset+col]=p0,blockData[blockBufferOffset+col+8]=p1,blockData[blockBufferOffset+col+16]=p2,blockData[blockBufferOffset+col+24]=p3,blockData[blockBufferOffset+col+32]=p4,blockData[blockBufferOffset+col+40]=p5,blockData[blockBufferOffset+col+48]=p6,blockData[blockBufferOffset+col+56]=p7)}function buildComponentData(frame,component){for(var blocksPerLine=component.blocksPerLine,blocksPerColumn=component.blocksPerColumn,computationBuffer=new Int16Array(64),blockRow=0;blockRow=maxPos)return null;newMarker=readUint16(data,newPos)}return{invalid:startPos.toString(16),marker:newMarker,offset:newPos}}function prepareComponents(frame){var component,mcusPerLine=Math.ceil(frame.samplesPerLine/8/frame.maxH),mcusPerColumn=Math.ceil(frame.scanLines/8/frame.maxV);for(component of frame.components){var blocksPerLine=Math.ceil(Math.ceil(frame.samplesPerLine/8)*component.h/frame.maxH),blocksPerColumn=Math.ceil(Math.ceil(frame.scanLines/8)*component.v/frame.maxV),blocksPerLineForMcu=mcusPerLine*component.h,blocksPerColumnForMcu=mcusPerColumn*component.v;component.blockData=new Int16Array(64*blocksPerColumnForMcu*(1+blocksPerLineForMcu)),component.blocksPerLine=blocksPerLine,component.blocksPerColumn=blocksPerColumn}frame.mcusPerLine=mcusPerLine,frame.mcusPerColumn=mcusPerColumn}function readDataBlock(data,offset){var length=readUint16(data,offset),length=(offset+=2)+length-2,fileMarker=findNextFileMarker(data,length,offset),fileMarker=(null!=fileMarker&&fileMarker.invalid&&(warn("readDataBlock - incorrect length, current marker is: "+fileMarker.invalid),length=fileMarker.offset),data.subarray(offset,length));return{appData:fileMarker,oldOffset:offset,newOffset:offset+fileMarker.length}}function skipData(data,offset){var length=readUint16(data,offset),length=(offset+=2)+length-2,data=findNextFileMarker(data,length,offset);return null!=data&&data.invalid?data.offset:length}class JpegImage{constructor(){var{decodeTransform=null,colorTransform=-1}=0>4==0)for(j=0;j<64;j++)tableData[dctZigZag[j]]=data[offset++];else{if(quantizationTableSpec>>4!=1)throw new JpegError("DQT - invalid table spec");for(j=0;j<64;j++)tableData[dctZigZag[j]]=readUint16(data,offset),offset+=2}quantizationTables[15&quantizationTableSpec]=tableData}break;case 65472:case 65473:case 65474:if(frame)throw new JpegError("Only single frame JPEGs supported");offset+=2,(frame={}).extended=65473===fileMarker,frame.progressive=65474===fileMarker,frame.precision=data[offset++];for(var newOffset=readUint16(data,offset),componentsCount=(offset+=2,frame.scanLines=dnlScanLines||newOffset,frame.samplesPerLine=readUint16(data,offset),offset+=2,frame.components=[],frame.componentIds={},data[offset++]),maxH=0,maxV=0,i=0;i>4,v=15&data[offset+1],qId=(maxH>4==0?huffmanTablesDC:huffmanTablesAC)[15&huffmanTableSpec]=buildHuffmanTable(codeLengths,huffmanValues)}break;case 65501:resetInterval=readUint16(data,offset+=2),offset+=2;break;case 65498:var appData=1==++numSOSMarkers&&!dnlScanLines,selectorsCount=(offset+=2,data[offset++]),components=[];for(i=0;i>4],componentIndex.huffmanTableAC=huffmanTablesAC[15&index],components.push(componentIndex)}var spectralStart=data[offset++],spectralEnd=data[offset++],successiveApproximation=data[offset++];try{offset+=decodeScan(data,offset,frame,components,resetInterval,spectralStart,spectralEnd,successiveApproximation>>4,15&successiveApproximation,appData)}catch(ex){if(ex instanceof DNLMarkerError)return warn("".concat(ex.message," -- attempting to re-parse the JPEG image.")),this.parse(data,{dnlScanLines:ex.scanLines});if(ex instanceof EOIMarkerError){warn("".concat(ex.message," -- ignoring the rest of the image data."));break markerLoop}throw ex}break;case 65500:offset+=4;break;case 65535:255!==data[offset]&&offset--;break;default:spectralStart=findNextFileMarker(data,offset-2,offset-3);if(null!=spectralStart&&spectralStart.invalid){warn("JpegImage.parse - unexpected data, current marker is: "+spectralStart.invalid),offset=spectralStart.offset;break}if(!spectralStart||offset>=data.length-1){warn("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break markerLoop}throw new JpegError("JpegImage.parse - unknown marker: "+fileMarker.toString(16))}fileMarker=readUint16(data,offset),offset+=2}if(!frame)throw new JpegError("JpegImage.parse - no frame data found.");this.width=frame.samplesPerLine,this.height=frame.scanLines,this.jfif=jfif,this.adobe=adobe,this.components=[];for(_component of frame.components){var quantizationTable=quantizationTables[_component.quantizationId];quantizationTable&&(_component.quantizationTable=quantizationTable),this.components.push({index:_component.index,output:buildComponentData(frame,_component),scaleX:_component.h/frame.maxH,scaleY:_component.v/frame.maxV,blocksPerLine:_component.blocksPerLine,blocksPerColumn:_component.blocksPerColumn})}this.numComponents=this.components.length}_getLinearizedBlockData(width,height){for(var component,componentScaleX,componentScaleY,blocksPerScanline,x,y,j,k,index,output,lastComponentScaleX,isSourcePDF=2>8)+transform[k+1];return data}get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}_convertYccToRgb(data){for(var Y,Cb,Cr,i=0,length=data.length;i{readyPromiseResolve=resolve,readyPromiseReject=reject}),thisProgram="./this.program",quit_=(status,toThrow)=>{throw toThrow};try{new URL(".",import1.meta.url).href}catch(_unused5){}var wasmMemory,EXITSTATUS,HEAP8,HEAPU8,HEAP32,HEAPU32,out=console.log.bind(console),err=console.error.bind(console),ABORT=!1;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b),new Int16Array(b),HEAPU8=new Uint8Array(b),new Uint16Array(b),HEAP32=new Int32Array(b),HEAPU32=new Uint32Array(b),new Float32Array(b),new Float64Array(b),new BigInt64Array(b),new BigUint64Array(b)}var runDependencies=0,dependenciesFulfilled=null;class ExitStatus{constructor(status){_defineProperty(this,"name","ExitStatus"),this.message="Program terminated with exit(".concat(status,")"),this.status=status}}var callRuntimeCallbacks=callbacks=>{for(;0onPostRuns.push(cb),onPreRuns=[],addOnPreRun=cb=>onPreRuns.push(cb),noExitRuntime=!0,runtimeKeepaliveCounter=0,timers={},handleException=e=>{if(e instanceof ExitStatus||"unwind"==e)return EXITSTATUS;quit_(1,e)},keepRuntimeAlive=()=>noExitRuntime||0{var _Module$onExit;EXITSTATUS=code,keepRuntimeAlive()||(null!=(_Module$onExit=Module.onExit)&&_Module$onExit.call(Module,code),ABORT=!0),quit_(code,new ExitStatus(code))},_exit=(status,implicit)=>{_proc_exit(EXITSTATUS=status)},maybeExit=()=>{if(!keepRuntimeAlive())try{_exit(EXITSTATUS)}catch(e){handleException(e)}};var ENV={},getExecutableName=()=>thisProgram||"./this.program",getEnvStrings=()=>{if(!getEnvStrings.strings){var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:getExecutableName()};for(x in ENV)void 0===ENV[x]?delete env[x]:env[x]=ENV[x];var x,strings=[];for(x in env)strings.push("".concat(x,"=").concat(env[x]));getEnvStrings.strings=strings}return getEnvStrings.strings},stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(0>6}else{if(u<=65535){if(endIdx<=outIdx+2)break;heap[outIdx++]=224|u>>12}else{if(endIdx<=outIdx+3)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63}heap[outIdx++]=128|u>>6&63}heap[outIdx++]=128|63&u}}return heap[outIdx]=0,outIdx-startIdx},INT53_MAX=9007199254740992,INT53_MIN=-9007199254740992;var printCharBuffers=[null,[],[]],UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder:void 0,UTF8ArrayToString=function(heapOrArray){for(var idx=1>10,56320|1023&u1)))):str+=String.fromCharCode(u0)}return str},UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),Module.print&&(out=Module.print),Module.printErr&&(err=Module.printErr),Module.wasmBinary&&Module.wasmBinary,Module.arguments&&Module.arguments,Module.thisProgram&&(thisProgram=Module.thisProgram),Module.writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var _Module$monitorRunDep,info,wasmImports={l:()=>{var what="",_Module$onAbort=(null!=(_Module$onAbort=Module.onAbort)&&_Module$onAbort.call(Module,what),err(what="Aborted("+what+")"),ABORT=!0,what+=". Build with -sASSERTIONS for more info.",new WebAssembly.RuntimeError(what));throw readyPromiseReject(_Module$onAbort),_Module$onAbort},k:()=>{noExitRuntime=!1,runtimeKeepaliveCounter=0},m:(which,timeout_ms)=>{var id;return timers[which]&&(clearTimeout(timers[which].id),delete timers[which]),timeout_ms&&(id=setTimeout(()=>{delete timers[which];var func=()=>__emscripten_timeout(which,performance.now());if(!ABORT)try{func(),maybeExit()}catch(e){handleException(e)}},timeout_ms),timers[which]={id:id,timeout_ms:timeout_ms}),0},g:function(compG_ptr,nb_pixels){compG_ptr>>=2;var imageData=Module.imageData=new Uint8ClampedArray(nb_pixels),compG_ptr=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);imageData.set(compG_ptr)},f:function(compR_ptr,compG_ptr,compB_ptr,nb_pixels){compR_ptr>>=2,compG_ptr>>=2,compB_ptr>>=2;for(var imageData=Module.imageData=new Uint8ClampedArray(3*nb_pixels),compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels),compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels),compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels),i=0;i>=2,compG_ptr>>=2,compB_ptr>>=2,compA_ptr>>=2;for(var imageData=Module.imageData=new Uint8ClampedArray(4*nb_pixels),compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels),compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels),compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels),compA=HEAP32.subarray(compA_ptr,compA_ptr+nb_pixels),i=0;i{var oldSize=HEAPU8.length;requestedSize>>>=0;if(!(2147483648{size=(size-wasmMemory.buffer.byteLength+65535)/65536|0;try{return wasmMemory.grow(size),updateMemoryViews(),1}catch(e){}})(Math.min(2147483648,(overGrownHeapSize=Math.max(requestedSize,overGrownHeapSize),alignment=65536,Math.ceil(overGrownHeapSize/alignment)*alignment))))return!0}return!1},p:(__environ,environ_buf)=>{var string,bufSize=0,envp=0;for(string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr,bufSize+=stringToUTF8Array(string,HEAPU8,ptr,1/0)+1,envp+=4}return 0},q:(penviron_count,penviron_buf_size)=>{var string,strings=getEnvStrings(),bufSize=(HEAPU32[penviron_count>>2]=strings.length,0);for(string of strings)bufSize+=(str=>{for(var len=0,i=0;i>2]=bufSize,0},b:fd=>52,o:function(fd,offset,whence,newOffset){var num;return offset=(num=offset){for(var stream,curr,buffer,num=0,i=0;i>2],len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num,0},r:function(compG_ptr,nb_pixels){compG_ptr>>=2;for(var imageData=Module.imageData=new Uint8ClampedArray(4*nb_pixels),compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels),i=0;i>=2,compA_ptr>>=2;for(var imageData=Module.imageData=new Uint8ClampedArray(4*nb_pixels),compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels),compA=HEAP32.subarray(compA_ptr,compA_ptr+nb_pixels),i=0;i>=2,compG_ptr>>=2,compB_ptr>>=2;for(var imageData=Module.imageData=new Uint8ClampedArray(4*nb_pixels),compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels),compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels),compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels),i=0;i{Module.instantiateWasm(info,(mod,inst)=>{resolve(receiveInstance(mod))})}));function receiveInstance(instance){return wasmExports=instance.exports,wasmMemory=wasmExports.s,updateMemoryViews(),runDependencies--,null!=(instance=Module.monitorRunDependencies)&&instance.call(Module,runDependencies),0==runDependencies&&dependenciesFulfilled&&(instance=dependenciesFulfilled,dependenciesFulfilled=null,instance()),wasmExports}wasmExports.t,Module._malloc=wasmExports.u,Module._free=wasmExports.v,Module._jp2_decode=wasmExports.w;var __emscripten_timeout=wasmExports.x;if(Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);0{setTimeout(()=>Module.setStatus(""),1),doRun()},1)):doRun()}function doRun(){var _Module$onRuntimeInit;if(Module.calledRun=!0,!ABORT){if(wasmExports.t(),readyPromiseResolve(Module),null!=(_Module$onRuntimeInit=Module.onRuntimeInitialized)&&_Module$onRuntimeInit.call(Module),Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(onPostRuns)}}}(),readyPromise},openjpeg=OpenJPEG;class JpxError extends BaseException{constructor(msg){super(msg,"JpxError")}}class JpxImage{static setOptions(_ref10){var{handler:_ref10,useWasm,useWorkerFetch,wasmUrl}=_ref10;_useWasm2._=_assertClassBrand(JpxImage,this,useWasm),_useWorkerFetch._=_assertClassBrand(JpxImage,this,useWorkerFetch),_wasmUrl2._=_assertClassBrand(JpxImage,this,wasmUrl),useWorkerFetch||(_handler._=_assertClassBrand(JpxImage,this,_ref10))}static async decode(bytes){var promise,{numComponents=4,isIndexedColormap=!1,smaskInData=!1,reducePower=0}=1>>0,Ysiz=stream.getInt32()>>>0,XOsiz=stream.getInt32()>>>0,YOsiz=stream.getInt32()>>>0,stream.skip(16),{width:Xsiz-XOsiz,height:Ysiz-YOsiz,bitsPerComponent:8,componentsCount:stream.getUint16()};throw new JpxError("No size marker found in JPX stream")}}async function _getJsModule(fallbackCallback){var path="".concat(_assertClassBrand(_JpxImage,this,_wasmUrl2)._,"openjpeg_nowasm_fallback.js"),instance=null;try{instance=(await import(path)).default()}catch(e){warn("JpxImage#getJsModule: ".concat(e))}fallbackCallback(instance)}async function _instantiateWasm(fallbackCallback,imports,successCallback){try{return _assertClassBrand(_JpxImage,this,_buffer)._||(_assertClassBrand(_JpxImage,this,_useWorkerFetch)._?_buffer._=_assertClassBrand(_JpxImage,this,await fetchBinaryData("".concat(_assertClassBrand(_JpxImage,this,_wasmUrl2)._).concat("openjpeg.wasm"))):_buffer._=_assertClassBrand(_JpxImage,this,await _assertClassBrand(_JpxImage,this,_handler)._.sendWithPromise("FetchBinaryData",{type:"wasmFactory",filename:"openjpeg.wasm"}))),successCallback((await WebAssembly.instantiate(_assertClassBrand(_JpxImage,this,_buffer)._,imports)).instance)}catch(reason){return warn("JpxImage#instantiateWasm: ".concat(reason)),_assertClassBrand(_JpxImage,this,_getJsModule).call(this,fallbackCallback),null}finally{_handler._=_assertClassBrand(_JpxImage,this,null)}}var _JpxImage=JpxImage,_buffer={_:null},_handler={_:null},_modulePromise={_:null},_useWasm2={_:!0},_useWorkerFetch={_:!0},_wasmUrl2={_:null};function addState(parentState,pattern,checkFn,iterateFn,processFn){for(var state=parentState,i=0,ii=pattern.length-1;i{var argsArray=context.argsArray,op=argsArray[context.iCurr-1][0];return op!==OPS.stroke&&op!==OPS.closeStroke&&op!==OPS.fillStroke&&op!==OPS.eoFillStroke&&op!==OPS.closeFillStroke&&op!==OPS.closeEOFillStroke||1===(op=argsArray[context.iCurr-2])[0]&&0===op[1]&&0===op[2]&&1===op[3]},()=>!1,(context,i)=>{var{fnArray,argsArray}=context,context=context.iCurr,iFirstSave=context-3,args=argsArray[context-1],transform=argsArray[context-2],[,[buffer],context]=args;if(context){Util.scaleMinMax(transform,context);for(var k=0,kk=buffer.length;k=OperatorList.CHUNK_SIZE||this.weight>=OperatorList.CHUNK_SIZE_ABOUT&&(fn===OPS.restore||fn===OPS.endText))&&this.flush()}addImageOps(fn,args,optionalContent){var hasMask=3>>0}function hexToStr(a,size){return 1===size?String.fromCharCode(a[0],a[1]):3===size?String.fromCharCode(a[0],a[1],a[2],a[3]):String.fromCharCode(...a.subarray(0,size+1))}function addHex(a,b,size){for(var c=0,i=size;0<=i;i--)c+=a[i]+b[i],a[i]=255&c,c>>=8}function incHex(a,size){for(var c=1,i=size;0<=i&&0>=8}var MAX_NUM_SIZE=16,MAX_ENCODED_NUM_SIZE=19;class BinaryCMapStream{constructor(data){this.buffer=data,this.pos=0,this.end=data.length,this.tmpBuf=new Uint8Array(MAX_ENCODED_NUM_SIZE)}readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]}readNumber(){var n=0;do{var b=this.readByte();if(b<0)throw new FormatError("unexpected EOF in bcmap")}while(n=n<<7|127&b,!!(128&b));return n}readSigned(){var n=this.readNumber();return 1&n?~(n>>>1):n>>>1}readHex(num,size){num.set(this.buffer.subarray(this.pos,this.pos+size+1)),this.pos+=size+1}readHexNumber(num,size){var last,stack=this.tmpBuf,sp=0;do{var b=this.readByte();if(b<0)throw new FormatError("unexpected EOF in bcmap")}while(last=!(128&b),stack[sp++]=127&b,!last);for(var i=size,buffer=0,bufferSize=0;0<=i;){for(;bufferSize<8&&0>=8,bufferSize-=8}}readHexSigned(num,size){this.readHexNumber(num,size);for(var sign=1&num[size]?255:0,c=0,i=0;i<=size;i++)c=(1&c)<<8|num[i],num[i]=c>>1^sign}readString(){for(var len=this.readNumber(),buf=new Array(len),i=0;i>5;if(7==type)switch(31&b){case 0:stream.readString();break;case 1:useCMap=stream.readString()}else{var sequence=!!(16&b),dataSize=15&b;if(MAX_NUM_SIZE<1+dataSize)throw new Error("BinaryCMapReader.process: Invalid dataSize.");var subitemsCount=stream.readNumber();switch(type){case 0:stream.readHex(start,dataSize),stream.readHexNumber(end,dataSize),addHex(end,start,dataSize),cMap.addCodespaceRange(1+dataSize,hexToInt(start,dataSize),hexToInt(end,dataSize));for(var i=1;i>=8}}}}class AsciiHexStream extends DecodeStream{constructor(str,maybeLength){maybeLength&&(maybeLength*=.5),super(maybeLength),this.str=str,this.dict=str.dict,this.firstDigit=-1}readBlock(){var bytes=this.str.getBytes(8e3);if(bytes.length){var _ch,maxDecodeLength=bytes.length+1>>1,buffer=this.ensureBuffer(this.bufferLength+maxDecodeLength),bufferLength=this.bufferLength,firstDigit=this.firstDigit;for(_ch of bytes){var digit=void 0;if(48<=_ch&&_ch<=57)digit=15&_ch;else{if(!(65<=_ch&&_ch<=70||97<=_ch&&_ch<=102)){if(62!==_ch)continue;this.eof=!0;break}digit=9+(15&_ch)}firstDigit=firstDigit<0?digit:(buffer[bufferLength++]=firstDigit<<4|digit,-1)}0<=firstDigit&&this.eof&&(buffer[bufferLength++]=firstDigit<<4,firstDigit=-1),this.firstDigit=firstDigit,this.bufferLength=bufferLength}else this.eof=!0}}var ccittEOL=-2,ccittEOF=-1,twoDimPass=0,twoDimHoriz=1,twoDimVert0=2,twoDimVertR1=3,twoDimVertL1=4,twoDimVertR2=5,twoDimVertL2=6,twoDimVertR3=7,twoDimVertL3=8,twoDimTable=[[-1,-1],[-1,-1],[7,twoDimVertL3],[7,twoDimVertR3],[6,twoDimVertL2],[6,twoDimVertL2],[6,twoDimVertR2],[6,twoDimVertR2],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0]],whiteTable1=[[-1,-1],[12,ccittEOL],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],whiteTable2=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],blackTable1=[[-1,-1],[-1,-1],[12,ccittEOL],[12,ccittEOL],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],blackTable2=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],blackTable3=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];class CCITTFaxDecoder{constructor(source){var code1,options=1>1==1)break;this._eatBits(1)}this._eatBits(12),0bits?(c<<=bits,1&this.codingPos||(c|=255>>8-bits),this.outputBits-=bits,bits=0):(c<<=this.outputBits,1&this.codingPos||(c|=255>>8-this.outputBits),bits-=this.outputBits,this.outputBits=0,codingLine[this.codingPos]codingLine[codingPos]&&(a1>this.columns&&(info("row is wrong length"),this.err=!0,a1=this.columns),1&codingPos^blackPixels&&++codingPos,codingLine[codingPos]=a1),this.codingPos=codingPos}_addPixelsNeg(a1,blackPixels){var codingLine=this.codingLine,codingPos=this.codingPos;if(a1>codingLine[codingPos])a1>this.columns&&(info("row is wrong length"),this.err=!0,a1=this.columns),1&codingPos^blackPixels&&++codingPos,codingLine[codingPos]=a1;else if(a1>5==0?whiteTable1[code]:whiteTable2[code>>3])[0])return this._eatBits(code[0]),code[1]}else{var code=this._findTableCode(1,9,whiteTable2);if(code[0])return code[1];if((code=this._findTableCode(11,12,whiteTable1))[0])return code[1]}return info("bad white code"),this._eatBits(1),1}_getBlackCode(){if(this.eoblock){if((code=this._lookBits(13))===ccittEOF)return 1;if(0<(code=code>>7==0?blackTable1[code]:code>>9==0&&code>>7!=0?blackTable2[(code>>1)-64]:blackTable3[code>>7])[0])return this._eatBits(code[0]),code[1]}else{var code=this._findTableCode(2,6,blackTable3);if(code[0])return code[1];if((code=this._findTableCode(7,12,blackTable2,64))[0])return code[1];if((code=this._findTableCode(10,13,blackTable1))[0])return code[1]}return info("bad black code"),this._eatBits(1),1}_lookBits(n){for(var c;this.inputBits>16-n;this.inputBuf=this.inputBuf<<8|c,this.inputBits+=8}return this.inputBuf>>this.inputBits-n&65535>>16-n}_eatBits(n){(this.inputBits-=n)<0&&(this.inputBits=0)}}class CCITTFaxStream extends DecodeStream{constructor(str,maybeLength,params){super(maybeLength),this.str=str,this.dict=str.dict,params instanceof Dict||(params=Dict.empty);maybeLength={next(){return str.getByte()}};this.ccittFaxDecoder=new CCITTFaxDecoder(maybeLength,{K:params.get("K"),EndOfLine:params.get("EndOfLine"),EncodedByteAlign:params.get("EncodedByteAlign"),Columns:params.get("Columns"),Rows:params.get("Rows"),EndOfBlock:params.get("EndOfBlock"),BlackIs1:params.get("BlackIs1")})}readBlock(){for(;!this.eof;){var c=this.ccittFaxDecoder.readNextChar();if(-1===c)return void(this.eof=!0);this.ensureBuffer(this.bufferLength+1),this.buffer[this.bufferLength++]=c}}}var codeLenCodeMap=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),lengthDecode=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),distDecode=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),fixedLitCodeTab=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],fixedDistCodeTab=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5],_FlateStream_brand=new WeakSet;class FlateStream extends DecodeStream{constructor(str,maybeLength){super(maybeLength),_classPrivateMethodInitSpec(this,_FlateStream_brand),this.str=str,this.dict=str.dict;maybeLength=str.getByte(),str=str.getByte();if(-1===maybeLength||-1===str)throw new FormatError("Invalid header in flate stream: ".concat(maybeLength,", ").concat(str));if(8!=(15&maybeLength))throw new FormatError("Unknown compression method in flate stream: ".concat(maybeLength,", ").concat(str));if(((maybeLength<<8)+str)%31!=0)throw new FormatError("Bad FCHECK in flate stream: ".concat(maybeLength,", ").concat(str));if(32&str)throw new FormatError("FDICT bit set in flate stream: ".concat(maybeLength,", ").concat(str));this.codeSize=0,this.codeBuf=0}async getImageData(length,_decoderOptions){var data=await this.asyncGetBytes();return data?data.length<=length?data:data.subarray(0,length):this.getBytes(length)}async asyncGetBytes(){this.str.reset();var bytes=this.str.getBytes();try{var chunk,{readable,writable}=new DecompressionStream("deflate"),writer=writable.getWriter(),chunks=(await writer.ready,writer.write(bytes).then(async()=>{await writer.ready,await writer.close()}).catch(()=>{}),[]),totalLength=0;for await(chunk of readable)chunks.push(chunk),totalLength+=chunk.byteLength;var _chunk2,data=new Uint8Array(totalLength),offset=0;for(_chunk2 of chunks)data.set(_chunk2,offset),offset+=_chunk2.byteLength;return data}catch(_unused6){return this.str=new Stream(bytes,2,bytes.length,this.str.dict),this.reset(),null}}get isAsync(){return!0}getBits(bits){for(var b,str=this.str,codeSize=this.codeSize,codeBuf=this.codeBuf;codeSize>bits,this.codeSize=codeSize-=bits,b}getCode(table){for(var b,str=this.str,codes=table[0],maxLen=table[1],codeSize=this.codeSize,codeBuf=this.codeBuf;codeSize>16,table&=65535;if(codes<1||codeSize>codes,this.codeSize=codeSize-codes,table}generateHuffmanTable(lengths){var n=lengths.length,maxLen=0;for(i=0;imaxLen&&(maxLen=lengths[i]);for(var size=1<>=1;for(i=code2;i>=1))if(-1===(b=str.getByte()))_assertClassBrand(_FlateStream_brand,this,_endsStreamOnError).call(this,"Bad block header in flate stream");else{var blockLen=b;if(-1===(b=str.getByte()))_assertClassBrand(_FlateStream_brand,this,_endsStreamOnError).call(this,"Bad block header in flate stream");else if(blockLen|=b<<8,-1===(b=str.getByte()))_assertClassBrand(_FlateStream_brand,this,_endsStreamOnError).call(this,"Bad block header in flate stream");else{var check=b;if(-1===(b=str.getByte()))_assertClassBrand(_FlateStream_brand,this,_endsStreamOnError).call(this,"Bad block header in flate stream");else{if((check|=b<<8)!=(65535&~blockLen)&&(0!=blockLen||0!=check))throw new FormatError("Bad uncompressed block length in flate stream");this.codeBuf=0,this.codeSize=0;var b=this.bufferLength,check=b+blockLen,buffer=this.ensureBuffer(check);this.bufferLength=check,0==blockLen?-1===str.peekByte()&&(this.eof=!0):(check=str.getBytes(blockLen),buffer.set(check,b),check.length>16,dist=(len=(65535&code1)+(code2=0>16)?this.getBits(code2):code2));limit<=pos+len&&(limit=(buffer=this.ensureBuffer(pos+len)).length);for(var k=0;k>9&127,this.clow=this.clow<<7&65535,this.ct-=7,this.a=32768}byteIn(){var data=this.data,bp=this.bp;255===data[bp]?143>16,this.clow&=65535)}readBit(contexts,pos){var d,cx_index=contexts[pos]>>1,cx_mps=1&contexts[pos],qeTableIcx=QeTable[cx_index],qeIcx=qeTableIcx.qe,a=this.a-qeIcx;if(this.chigh>15&1,this.clow=this.clow<<1&65535,this.ct--,0==(32768&a););return this.a=a,contexts[pos]=cx_index<<1|cx_mps,d}}class Jbig2Error extends BaseException{constructor(msg){super(msg,"Jbig2Error")}}class ContextCache{getContexts(id){return id in this?this[id]:this[id]=new Int8Array(65536)}}class DecodingContext{constructor(data,start,end){this.data=data,this.start=start,this.end=end}get decoder(){return shadow(this,"decoder",new ArithmeticDecoder(this.data,this.start,this.end))}get contextCache(){return shadow(this,"contextCache",new ContextCache)}}function decodeInteger(contextCache,procedure,decoder){var contexts=contextCache.getContexts(procedure),prev=1;function readBits(length){for(var v=0,i=0;i>>0}var signedValue,contextCache=readBits(1),procedure=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);return 0===contextCache?signedValue=procedure:0a.y-b.y||a.x-b.x),template.length),templateX=new Int8Array(templateLength),templateY=new Int8Array(templateLength),changingTemplateEntries=[],reuseMask=0,minX=0,maxX=0,minY=0,k=0;k>1)+decodeInteger(contextCache,"IARDX",decoder),(applyRefinement>>1)+decodeInteger(contextCache,"IARDY",decoder),!1,refinementAt,decodingContext)),0),offsetT=(transposed?1&referenceCorner?symbolId=symbolHeight-1:currentS+=symbolHeight-1:1>8,0<=(x=gridOffsetX+mg*gridVectorY+ng*gridVectorX>>8)&&x+patternWidth<=regionWidth&&0<=y&&y+patternHeight<=regionHeight)for(i=0;i>5&7,retainBits=[31&referredFlags],position=start+6;if(7===referredFlags){referredToCount=536870911&readUint32(data,position-1),position+=3;var bytes=referredToCount+7>>3;for(retainBits[0]=data[position++];0<--bytes;)retainBits.push(data[position++])}else if(5===referredFlags||6===referredFlags)throw new Jbig2Error("invalid referred-to flags");segmentHeader.retainBits=retainBits;for(var ii,referredToSegmentNumberSize=4,referredTo=(segmentHeader.number<=256?referredToSegmentNumberSize=1:segmentHeader.number<=65536&&(referredToSegmentNumberSize=2),[]),i=0;i>>24&255,searchPattern[3]=start.height>>16&255,searchPattern[4]=start.height>>8&255,searchPattern[5]=255&start.height,i=position,ii=data.length;i>2&3,dictionary.huffmanDWSelector=dictionaryFlags>>4&3,dictionary.bitmapSizeSelector=dictionaryFlags>>6&1,dictionary.aggregationInstancesSelector=dictionaryFlags>>7&1,dictionary.bitmapCodingContextUsed=!!(256&dictionaryFlags),dictionary.bitmapCodingContextRetained=!!(512&dictionaryFlags),dictionary.template=dictionaryFlags>>10&3,dictionary.refinementTemplate=dictionaryFlags>>12&1,position+=2,!dictionary.huffman){for(atLength=0===dictionary.template?4:1,at=[],i=0;i>2&3,dictionaryFlags.stripSize=1<>4&3,dictionaryFlags.transposed=!!(64&dictionary),dictionaryFlags.combinationOperator=dictionary>>7&3,dictionaryFlags.defaultPixelValue=dictionary>>9&1,dictionaryFlags.dsOffset=dictionary<<17>>27,dictionaryFlags.refinementTemplate=dictionary>>15&1,dictionaryFlags.huffman&&(dictionary=readUint16(data,position),position+=2,dictionaryFlags.huffmanFS=3&dictionary,dictionaryFlags.huffmanDS=dictionary>>2&3,dictionaryFlags.huffmanDT=dictionary>>4&3,dictionaryFlags.huffmanRefinementDW=dictionary>>6&3,dictionaryFlags.huffmanRefinementDH=dictionary>>8&3,dictionaryFlags.huffmanRefinementDX=dictionary>>10&3,dictionaryFlags.huffmanRefinementDY=dictionary>>12&3,dictionaryFlags.huffmanRefinementSizeSelector=!!(16384&dictionary)),dictionaryFlags.refinement&&!dictionaryFlags.refinementTemplate){for(at=[],i=0;i<2;i++)at.push({x:readInt8(data,position),y:readInt8(data,position+1)}),position+=2;dictionaryFlags.refinementAt=at}dictionaryFlags.numberOfSymbolInstances=readUint32(data,position),args=[dictionaryFlags,header.referredTo,data,position+=4,end];break;case 16:dictionary={},dictionaryFlags=data[position++];dictionary.mmr=!!(1&dictionaryFlags),dictionary.template=dictionaryFlags>>1&3,dictionary.patternWidth=data[position++],dictionary.patternHeight=data[position++],dictionary.maxPatternIndex=readUint32(data,position),args=[dictionary,header.number,data,position+=4,end];break;case 22:case 23:dictionaryFlags={},dictionary=(dictionaryFlags.info=readRegionSegmentInformation(data,position),position+=RegionSegmentInformationFieldLength,data[position++]);dictionaryFlags.mmr=!!(1&dictionary),dictionaryFlags.template=dictionary>>1&3,dictionaryFlags.enableSkip=!!(8&dictionary),dictionaryFlags.combinationOperator=dictionary>>4&7,dictionaryFlags.defaultPixelValue=dictionary>>7&1,dictionaryFlags.gridWidth=readUint32(data,position),dictionaryFlags.gridHeight=readUint32(data,position+=4),dictionaryFlags.gridOffsetX=4294967295&readUint32(data,position+=4),dictionaryFlags.gridOffsetY=4294967295&readUint32(data,position+=4),dictionaryFlags.gridVectorX=readUint16(data,position+=4),dictionaryFlags.gridVectorY=readUint16(data,position+=2),args=[dictionaryFlags,header.referredTo,data,position+=2,end];break;case 38:case 39:dictionary={},dictionaryFlags=(dictionary.info=readRegionSegmentInformation(data,position),position+=RegionSegmentInformationFieldLength,data[position++]);if(dictionary.mmr=!!(1&dictionaryFlags),dictionary.template=dictionaryFlags>>1&3,dictionary.prediction=!!(8&dictionaryFlags),!dictionary.mmr){for(atLength=0===dictionary.template?4:1,at=[],i=0;i>2&1,dictionaryFlags.combinationOperator=dictionary>>3&3,dictionaryFlags.requiresBuffer=!!(32&dictionary),dictionaryFlags.combinationOperatorOverride=!!(64&dictionary),args=[dictionaryFlags];break;case 49:case 50:case 51:break;case 53:args=[header.number,data,position,end];break;case 62:break;default:throw new Jbig2Error("segment type ".concat(header.typeName,"(").concat(header.type,") is not implemented"))}segment="on"+header.typeName;segment in visitor&&visitor[segment].apply(visitor,args)}function processSegments(segments,visitor){for(var i=0,ii=segments.length;i>3,rowSize=new Uint8ClampedArray(rowSize*info.height);info.defaultPixelValue&&rowSize.fill(255),this.buffer=rowSize}drawBitmap(regionInfo,bitmap){var i,j,mask,offset,pageInfo=this.currentPageInfo,width=regionInfo.width,height=regionInfo.height,rowSize=pageInfo.width+7>>3,combinationOperator=(pageInfo.combinationOperatorOverride?regionInfo:pageInfo).combinationOperator,buffer=this.buffer,mask0=128>>(7®ionInfo.x),offset0=regionInfo.y*rowSize+(regionInfo.x>>3);switch(combinationOperator){case 0:for(i=0;i>=1)||(mask=128,offset++);offset0+=rowSize}break;case 2:for(i=0;i>=1)||(mask=128,offset++);offset0+=rowSize}break;default:throw new Jbig2Error("operator ".concat(combinationOperator," is not supported"))}}onImmediateGenericRegion(region,data,start,end){var regionInfo=region.info,data=new DecodingContext(data,start,end),start=decodeBitmap(region.mmr,regionInfo.width,regionInfo.height,region.template,region.prediction,null,region.at,data);this.drawBitmap(regionInfo,start)}onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion(...arguments)}onSymbolDictionary(dictionary,currentSegment,referredSegments,data,start,end){dictionary.huffman&&(huffmanTables=getSymbolDictionaryHuffmanTables(dictionary,referredSegments,this.customTables),huffmanInput=new Reader(data,start,end));var huffmanTables,huffmanInput,referredSegment,symbols=this.symbols,inputSymbols=(symbols||(this.symbols=symbols={}),[]);for(referredSegment of referredSegments){var referredSymbols=symbols[referredSegment];referredSymbols&&inputSymbols.push(...referredSymbols)}referredSegments=new DecodingContext(data,start,end);symbols[currentSegment]=decodeSymbolDictionary(dictionary.huffman,dictionary.refinement,inputSymbols,dictionary.numberOfNewSymbols,dictionary.numberOfExportedSymbols,huffmanTables,dictionary.template,dictionary.at,dictionary.refinementTemplate,dictionary.refinementAt,referredSegments,huffmanInput)}onImmediateTextRegion(region,referredSegments,data,start,end){var huffmanTables,huffmanInput,referredSegment,regionInfo=region.info,symbols=this.symbols,inputSymbols=[];for(referredSegment of referredSegments){var referredSymbols=symbols[referredSegment];referredSymbols&&inputSymbols.push(...referredSymbols)}var symbolCodeLength=log2(inputSymbols.length),referredSegments=(region.huffman&&(huffmanInput=new Reader(data,start,end),huffmanTables=getTextRegionHuffmanTables(region,referredSegments,this.customTables,inputSymbols.length,huffmanInput)),new DecodingContext(data,start,end)),data=decodeTextRegion(region.huffman,region.refinement,regionInfo.width,regionInfo.height,region.defaultPixelValue,region.numberOfSymbolInstances,region.stripSize,inputSymbols,symbolCodeLength,region.transposed,region.dsOffset,region.referenceCorner,region.combinationOperator,huffmanTables,region.refinementTemplate,region.refinementAt,referredSegments,region.logStripSize,huffmanInput);this.drawBitmap(regionInfo,data)}onImmediateLosslessTextRegion(){this.onImmediateTextRegion(...arguments)}onPatternDictionary(dictionary,currentSegment,data,start,end){var patterns=this.patterns,data=(patterns||(this.patterns=patterns={}),new DecodingContext(data,start,end));patterns[currentSegment]=decodePatternDictionary(dictionary.mmr,dictionary.patternWidth,dictionary.patternHeight,dictionary.maxPatternIndex,dictionary.template,data)}onImmediateHalftoneRegion(region,referredSegments,data,start,end){var referredSegments=this.patterns[referredSegments[0]],regionInfo=region.info,data=new DecodingContext(data,start,end),start=decodeHalftoneRegion(region.mmr,referredSegments,region.template,regionInfo.width,regionInfo.height,region.defaultPixelValue,region.enableSkip,region.combinationOperator,region.gridWidth,region.gridHeight,region.gridOffsetX,region.gridOffsetY,region.gridVectorX,region.gridVectorY,data);this.drawBitmap(regionInfo,start)}onImmediateLosslessHalftoneRegion(){this.onImmediateHalftoneRegion(...arguments)}onTables(currentSegment,data,start,end){var customTables=this.customTables;customTables||(this.customTables=customTables={}),customTables[currentSegment]=decodeTablesSegment(data,start,end)}}class HuffmanLine{constructor(lineData){2===lineData.length?(this.isOOB=!0,this.rangeLow=0,this.prefixLength=lineData[0],this.rangeLength=0,this.prefixCode=lineData[1],this.isLowerRange=!1):(this.isOOB=!1,this.rangeLow=lineData[0],this.prefixLength=lineData[1],this.rangeLength=lineData[2],this.prefixCode=lineData[3],this.isLowerRange="lower"===lineData[4])}}class HuffmanTreeNode{constructor(line){this.children=[],line?(this.isLeaf=!0,this.rangeLength=line.rangeLength,this.rangeLow=line.rangeLow,this.isLowerRange=line.isLowerRange,this.isOOB=line.isOOB):this.isLeaf=!1}buildTree(line,shift){var node,bit=line.prefixCode>>shift&1;shift<=0?this.children[bit]=new HuffmanTreeNode(line):((node=this.children[bit])||(this.children[bit]=node=new HuffmanTreeNode(null)),node.buildTree(line,shift-1))}decodeNode(reader){if(this.isLeaf)return this.isOOB?null:(htOffset=reader.readBits(this.rangeLength),this.rangeLow+(this.isLowerRange?-htOffset:htOffset));var htOffset=this.children[reader.readBit()];if(htOffset)return htOffset.decodeNode(reader);throw new Jbig2Error("invalid Huffman data")}}class HuffmanTable{constructor(lines,prefixCodesDone){prefixCodesDone||this.assignPrefixCodes(lines),this.rootNode=new HuffmanTreeNode(null);for(var i=0,ii=lines.length;i>1&7),rangeSizeBits=1+(flags>>4&7),lines=[],currentRangeLow=lowestValue;prefixLength=reader.readBits(prefixSizeBits),rangeLength=reader.readBits(rangeSizeBits),lines.push(new HuffmanLine([currentRangeLow,prefixLength,rangeLength,0])),(currentRangeLow+=1<=this.end)throw new Jbig2Error("end of data while reading bit");this.currentByte=this.data[this.position++],this.shift=7}var bit=this.currentByte>>this.shift&1;return this.shift--,bit}readBits(numBits){for(var result=0,i=numBits-1;0<=i;i--)result|=this.readBit()<=this.end?-1:this.data[this.position++]}}function getCustomHuffmanTable(index,referredTo,customTables){for(var currentIndex=0,i=0,ii=referredTo.length;i>shift&1,shift--;if(endOfBlock&&!eof)for(var i=0;i<5&&-1!==decoder.readNextChar();i++);return bitmap}class Jbig2Image{parseChunks(chunks){return parseJbig2Chunks(chunks)}parse(data){throw new Error("Not implemented: Jbig2Image.parse")}}class Jbig2Stream extends DecodeStream{constructor(stream,maybeLength,params){super(maybeLength),this.stream=stream,this.dict=stream.dict,this.maybeLength=maybeLength,this.params=params}get bytes(){return shadow(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(requested){}readBlock(){this.decodeImage()}decodeImage(bytes){if(!this.eof){bytes=bytes||this.bytes;for(var globalsStream,jbig2Image=new Jbig2Image,chunks=[],data=(this.params instanceof Dict&&(globalsStream=this.params.get("JBIG2Globals"))instanceof BaseStream&&(globalsStream=globalsStream.getBytes(),chunks.push({data:globalsStream,start:0,end:globalsStream.length})),chunks.push({data:bytes,start:0,end:bytes.length}),jbig2Image.parseChunks(chunks)),dataLength=data.length,i=0;i>>bitsCached&(1<>3,this.rowBytes=params*maybeLength*str+7>>3,this}readBlockTiff(){var rowBytes=this.rowBytes,bufferLength=this.bufferLength,buffer=this.ensureBuffer(bufferLength+rowBytes),bits=this.bits,colors=this.colors,rawBytes=this.str.getBytes(rowBytes);if(this.eof=!rawBytes.length,!this.eof){var inbuf=0,outbuf=0,inbits=0,outbits=0,pos=bufferLength;if(1===bits&&1===colors)for(i=0;i>1)^c>>2)^c>>4))<<7;buffer[pos++]=c}else if(8===bits){for(i=0;i>8&255,buffer[pos++]=255&sum}}else{var compArray=new Uint8Array(colors+1),bitMask=(1<>inbits-bits)&bitMask,inbits-=bits,outbuf=outbuf<>outbits-8&255,outbits-=8);0>1)+rawBytes[i];for(;i>1)+rawBytes[i]&255,j++;break;case 4:for(i=0;i>")&&this.buf1!==EOF;)if(this.buf1 instanceof Name){var key=this.buf1.name;if(this.shift(),this.buf1===EOF)break;dict.set(key,this.getObj(cipherTransform))}else info("Malformed dictionary: key must be a name object"),this.shift();if(this.buf1!==EOF)return isCmd(this.buf2,"stream")?this.allowStreams?this.makeStream(dict,cipherTransform):dict:(this.shift(),dict);if(this.recoveryMode)return dict;throw new ParserEOFException("End of file inside dictionary.");default:return buf1}return Number.isInteger(buf1)?Number.isInteger(this.buf1)&&isCmd(this.buf2,"R")?(ref=Ref.get(buf1,this.buf1),this.shift(),this.shift(),ref):buf1:"string"==typeof buf1&&cipherTransform?cipherTransform.decryptString(buf1):buf1}findDefaultInlineStreamEnd(stream){for(var ch,knownCommands=this.lexer["knownCommands"],startPos=stream.pos,state=0;-1!==(ch=stream.getByte());)if(0===state)state=69===ch?1:0;else if(1===state)state=73===ch?2:0;else if(32===ch||10===ch||13===ch){var maybeEIPos=stream.pos,followingBytes=stream.peekBytes(15),ii=followingBytes.length;if(0===ii)break;for(var i=0;i{},0);;){var nextObj=tmpLexer.getObj();if(nextObj===EOF){state=0;break}if(nextObj instanceof Cmd){nextObj=knownCommands[nextObj.cmd];if(!nextObj){state=0;break}if(nextObj.variableArgs?numArgs<=nextObj.numArgs:numArgs===nextObj.numArgs)break;numArgs=0}else numArgs++}if(2===state)break}else warn("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.")}else state=0;-1===ch&&(warn("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker"),maybeEIPos)&&(warn('... trying to recover by using the last "EI" occurrence.'),stream.skip(-(stream.pos-maybeEIPos)));var endOffset=4;return stream.skip(-endOffset),ch=stream.peekByte(),stream.skip(endOffset),isWhiteSpace(ch)||endOffset--,stream.pos-endOffset-startPos}findDCTDecodeInlineStreamEnd(stream){for(var b,markerLength,startPos=stream.pos,foundEOI=!1;-1!==(b=stream.getByte());)if(255===b){switch(stream.getByte()){case 0:break;case 255:stream.skip(-1);break;case 217:foundEOI=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:2<(markerLength=stream.getUint16())?stream.skip(markerLength-2):stream.skip(-2)}if(foundEOI)break}startPos=stream.pos-startPos;return-1===b?(warn("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead."),stream.skip(-startPos),this.findDefaultInlineStreamEnd(stream)):(this.inlineStreamSkipEI(stream),startPos)}findASCII85DecodeInlineStreamEnd(stream){for(var startPos=stream.pos;-1!==(ch=stream.getByte());)if(126===ch){for(var tildePos=stream.pos,ch=stream.peekByte();isWhiteSpace(ch);)stream.skip(),ch=stream.peekByte();if(62===ch){stream.skip();break}if(stream.pos>tildePos){tildePos=stream.peekBytes(2);if(69===tildePos[0]&&73===tildePos[1])break}}startPos=stream.pos-startPos;return-1===ch?(warn("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead."),stream.skip(-startPos),this.findDefaultInlineStreamEnd(stream)):(this.inlineStreamSkipEI(stream),startPos)}findASCIIHexDecodeInlineStreamEnd(stream){for(var ch,startPos=stream.pos;-1!==(ch=stream.getByte())&&62!==ch;);startPos=stream.pos-startPos;return-1===ch?(warn("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead."),stream.skip(-startPos),this.findDefaultInlineStreamEnd(stream)):(this.inlineStreamSkipEI(stream),startPos)}inlineStreamSkipEI(stream){for(var ch,state=0;-1!==(ch=stream.getByte());)if(0===state)state=69===ch?1:0;else if(1===state)state=73===ch?2:0;else if(2===state)break}makeInlineImage(cipherTransform){for(var lexer=this.lexer,stream=lexer.stream,dictMap=Object.create(null);!isCmd(this.buf1,"ID")&&this.buf1!==EOF;){if(!(this.buf1 instanceof Name))throw new FormatError("Dictionary key must be a name object");var key=this.buf1.name;if(this.shift(),this.buf1===EOF)break;dictMap[key]=this.getObj(cipherTransform)}-1!==lexer.beginInlineImagePos&&(dictLength=stream.pos-lexer.beginInlineImagePos);var length,cacheKey,filter=this.xref.fetchIfRef(dictMap.F||dictMap.Filter),filter=(filter instanceof Name?filterName=filter.name:Array.isArray(filter)&&(filter=this.xref.fetchIfRef(filter[0]))instanceof Name&&(filterName=filter.name),stream.pos);switch(filterName){case"DCT":case"DCTDecode":length=this.findDCTDecodeInlineStreamEnd(stream);break;case"A85":case"ASCII85Decode":length=this.findASCII85DecodeInlineStreamEnd(stream);break;case"AHx":case"ASCIIHexDecode":length=this.findASCIIHexDecodeInlineStreamEnd(stream);break;default:length=this.findDefaultInlineStreamEnd(stream)}if(length>")):Cmd.get(">");case 123:return this.nextChar(),Cmd.get("{");case 125:return this.nextChar(),Cmd.get("}");case 41:throw this.nextChar(),new FormatError("Illegal character: ".concat(ch))}var str=String.fromCharCode(ch);if(ch<32||127>>0,codespaceRange=codespaceRanges[n],k=0,kk=codespaceRange.length;k>>0}function expectString(obj){if("string"!=typeof obj)throw new FormatError("Malformed CMap: expected string.")}function expectInt(obj){if(!Number.isInteger(obj))throw new FormatError("Malformed CMap: expected int.")}function parseBfChar(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endbfchar"))return;expectString(obj);var src=strToInt(obj);expectString(obj=lexer.getObj()),cMap.mapOne(src,obj)}}function parseBfRange(cMap,lexer){for(;;){if((obj=lexer.getObj())===EOF)break;if(isCmd(obj,"endbfrange"))return;expectString(obj);var low=strToInt(obj),high=(expectString(obj=lexer.getObj()),strToInt(obj));if(obj=lexer.getObj(),Number.isInteger(obj)||"string"==typeof obj){var dstLow=Number.isInteger(obj)?String.fromCharCode(obj):obj;cMap.mapBfRange(low,high,dstLow)}else{if(!isCmd(obj,"["))break;for(var obj=lexer.getObj(),array=[];!isCmd(obj,"]")&&obj!==EOF;)array.push(obj),obj=lexer.getObj();cMap.mapBfRangeToArray(low,high,array)}}throw new FormatError("Invalid bf range.")}function parseCidChar(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endcidchar"))return;expectString(obj);var src=strToInt(obj);expectInt(obj=lexer.getObj()),cMap.mapOne(src,obj)}}function parseCidRange(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endcidrange"))return;expectString(obj);var low=strToInt(obj),high=(expectString(obj=lexer.getObj()),strToInt(obj));expectInt(obj=lexer.getObj()),cMap.mapCidRange(low,high,obj)}}function parseCodespaceRange(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endcodespacerange"))return;if("string"!=typeof obj)break;var low=strToInt(obj);if("string"!=typeof(obj=lexer.getObj()))break;var high=strToInt(obj);cMap.addCodespaceRange(obj.length,low,high)}throw new FormatError("Invalid codespace range.")}function parseWMode(cMap,lexer){lexer=lexer.getObj();Number.isInteger(lexer)&&(cMap.vertical=!!lexer)}function parseCMapName(cMap,lexer){lexer=lexer.getObj();lexer instanceof Name&&(cMap.name=lexer.name)}async function parseCMap(cMap,lexer,fetchBuiltInCMap,useCMap){var previous,embeddedUseCMap;objLoop:for(;;)try{var obj=lexer.getObj();if(obj===EOF)break;if(obj instanceof Name)"WMode"===obj.name?parseWMode(cMap,lexer):"CMapName"===obj.name&&parseCMapName(cMap,lexer),previous=obj;else if(obj instanceof Cmd)switch(obj.cmd){case"endcmap":break objLoop;case"usecmap":previous instanceof Name&&(embeddedUseCMap=previous.name);break;case"begincodespacerange":parseCodespaceRange(cMap,lexer);break;case"beginbfchar":parseBfChar(cMap,lexer);break;case"begincidchar":parseCidChar(cMap,lexer);break;case"beginbfrange":parseBfRange(cMap,lexer);break;case"begincidrange":parseCidRange(cMap,lexer)}}catch(ex){if(ex instanceof MissingDataException)throw ex;warn("Invalid cMap data: "+ex);continue}return(useCMap=!useCMap&&embeddedUseCMap?embeddedUseCMap:useCMap)?extendCMap(cMap,fetchBuiltInCMap,useCMap):cMap}async function extendCMap(cMap,fetchBuiltInCMap,useCMap){if(cMap.useCMap=await createBuiltInCMap(useCMap,fetchBuiltInCMap),0===cMap.numCodespaceRanges){for(var useCodespaceRanges=cMap.useCMap.codespaceRanges,i=0;iextendCMap(cMap,fetchBuiltInCMap,useCMap)):(isCompressed=new Lexer(new Stream(name)),parseCMap(cMap,isCompressed,fetchBuiltInCMap,null));throw new Error("Built-in CMap parameters are not provided.")}class CMapFactory{static async create(_ref13){var{encoding:_ref13,fetchBuiltInCMap,useCMap}=_ref13;if(_ref13 instanceof Name)return createBuiltInCMap(_ref13.name,fetchBuiltInCMap);if(_ref13 instanceof BaseStream)return(_ref13=await parseCMap(new CMap,new Lexer(_ref13),fetchBuiltInCMap,useCMap)).isIdentityCMap?createBuiltInCMap(_ref13.name,fetchBuiltInCMap):_ref13;throw new Error("Encoding required.")}}var ExpertEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],MacExpertEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall","","","",""],MacRomanEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"],StandardEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls","","","",""],WinAnsiEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"],SymbolSetEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt",""],ZapfDingbatsEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191",""];function getEncoding(encodingName){switch(encodingName){case"WinAnsiEncoding":return WinAnsiEncoding;case"StandardEncoding":return StandardEncoding;case"MacRomanEncoding":return MacRomanEncoding;case"SymbolSetEncoding":return SymbolSetEncoding;case"ZapfDingbatsEncoding":return ZapfDingbatsEncoding;case"ExpertEncoding":return ExpertEncoding;case"MacExpertEncoding":return MacExpertEncoding;default:return null}}var getGlyphsUnicode=getLookupTableFactory(function(t){t.A=65,t.AE=198,t.AEacute=508,t.AEmacron=482,t.AEsmall=63462,t.Aacute=193,t.Aacutesmall=63457,t.Abreve=258,t.Abreveacute=7854,t.Abrevecyrillic=1232,t.Abrevedotbelow=7862,t.Abrevegrave=7856,t.Abrevehookabove=7858,t.Abrevetilde=7860,t.Acaron=461,t.Acircle=9398,t.Acircumflex=194,t.Acircumflexacute=7844,t.Acircumflexdotbelow=7852,t.Acircumflexgrave=7846,t.Acircumflexhookabove=7848,t.Acircumflexsmall=63458,t.Acircumflextilde=7850,t.Acute=63177,t.Acutesmall=63412,t.Acyrillic=1040,t.Adblgrave=512,t.Adieresis=196,t.Adieresiscyrillic=1234,t.Adieresismacron=478,t.Adieresissmall=63460,t.Adotbelow=7840,t.Adotmacron=480,t.Agrave=192,t.Agravesmall=63456,t.Ahookabove=7842,t.Aiecyrillic=1236,t.Ainvertedbreve=514,t.Alpha=913,t.Alphatonos=902,t.Amacron=256,t.Amonospace=65313,t.Aogonek=260,t.Aring=197,t.Aringacute=506,t.Aringbelow=7680,t.Aringsmall=63461,t.Asmall=63329,t.Atilde=195,t.Atildesmall=63459,t.Aybarmenian=1329,t.B=66,t.Bcircle=9399,t.Bdotaccent=7682,t.Bdotbelow=7684,t.Becyrillic=1041,t.Benarmenian=1330,t.Beta=914,t.Bhook=385,t.Blinebelow=7686,t.Bmonospace=65314,t.Brevesmall=63220,t.Bsmall=63330,t.Btopbar=386,t.C=67,t.Caarmenian=1342,t.Cacute=262,t.Caron=63178,t.Caronsmall=63221,t.Ccaron=268,t.Ccedilla=199,t.Ccedillaacute=7688,t.Ccedillasmall=63463,t.Ccircle=9400,t.Ccircumflex=264,t.Cdot=266,t.Cdotaccent=266,t.Cedillasmall=63416,t.Chaarmenian=1353,t.Cheabkhasiancyrillic=1212,t.Checyrillic=1063,t.Chedescenderabkhasiancyrillic=1214,t.Chedescendercyrillic=1206,t.Chedieresiscyrillic=1268,t.Cheharmenian=1347,t.Chekhakassiancyrillic=1227,t.Cheverticalstrokecyrillic=1208,t.Chi=935,t.Chook=391,t.Circumflexsmall=63222,t.Cmonospace=65315,t.Coarmenian=1361,t.Csmall=63331,t.D=68,t.DZ=497,t.DZcaron=452,t.Daarmenian=1332,t.Dafrican=393,t.Dcaron=270,t.Dcedilla=7696,t.Dcircle=9401,t.Dcircumflexbelow=7698,t.Dcroat=272,t.Ddotaccent=7690,t.Ddotbelow=7692,t.Decyrillic=1044,t.Deicoptic=1006,t.Delta=8710,t.Deltagreek=916,t.Dhook=394,t.Dieresis=63179,t.DieresisAcute=63180,t.DieresisGrave=63181,t.Dieresissmall=63400,t.Digammagreek=988,t.Djecyrillic=1026,t.Dlinebelow=7694,t.Dmonospace=65316,t.Dotaccentsmall=63223,t.Dslash=272,t.Dsmall=63332,t.Dtopbar=395,t.Dz=498,t.Dzcaron=453,t.Dzeabkhasiancyrillic=1248,t.Dzecyrillic=1029,t.Dzhecyrillic=1039,t.E=69,t.Eacute=201,t.Eacutesmall=63465,t.Ebreve=276,t.Ecaron=282,t.Ecedillabreve=7708,t.Echarmenian=1333,t.Ecircle=9402,t.Ecircumflex=202,t.Ecircumflexacute=7870,t.Ecircumflexbelow=7704,t.Ecircumflexdotbelow=7878,t.Ecircumflexgrave=7872,t.Ecircumflexhookabove=7874,t.Ecircumflexsmall=63466,t.Ecircumflextilde=7876,t.Ecyrillic=1028,t.Edblgrave=516,t.Edieresis=203,t.Edieresissmall=63467,t.Edot=278,t.Edotaccent=278,t.Edotbelow=7864,t.Efcyrillic=1060,t.Egrave=200,t.Egravesmall=63464,t.Eharmenian=1335,t.Ehookabove=7866,t.Eightroman=8551,t.Einvertedbreve=518,t.Eiotifiedcyrillic=1124,t.Elcyrillic=1051,t.Elevenroman=8554,t.Emacron=274,t.Emacronacute=7702,t.Emacrongrave=7700,t.Emcyrillic=1052,t.Emonospace=65317,t.Encyrillic=1053,t.Endescendercyrillic=1186,t.Eng=330,t.Enghecyrillic=1188,t.Enhookcyrillic=1223,t.Eogonek=280,t.Eopen=400,t.Epsilon=917,t.Epsilontonos=904,t.Ercyrillic=1056,t.Ereversed=398,t.Ereversedcyrillic=1069,t.Escyrillic=1057,t.Esdescendercyrillic=1194,t.Esh=425,t.Esmall=63333,t.Eta=919,t.Etarmenian=1336,t.Etatonos=905,t.Eth=208,t.Ethsmall=63472,t.Etilde=7868,t.Etildebelow=7706,t.Euro=8364,t.Ezh=439,t.Ezhcaron=494,t.Ezhreversed=440,t.F=70,t.Fcircle=9403,t.Fdotaccent=7710,t.Feharmenian=1366,t.Feicoptic=996,t.Fhook=401,t.Fitacyrillic=1138,t.Fiveroman=8548,t.Fmonospace=65318,t.Fourroman=8547,t.Fsmall=63334,t.G=71,t.GBsquare=13191,t.Gacute=500,t.Gamma=915,t.Gammaafrican=404,t.Gangiacoptic=1002,t.Gbreve=286,t.Gcaron=486,t.Gcedilla=290,t.Gcircle=9404,t.Gcircumflex=284,t.Gcommaaccent=290,t.Gdot=288,t.Gdotaccent=288,t.Gecyrillic=1043,t.Ghadarmenian=1346,t.Ghemiddlehookcyrillic=1172,t.Ghestrokecyrillic=1170,t.Gheupturncyrillic=1168,t.Ghook=403,t.Gimarmenian=1331,t.Gjecyrillic=1027,t.Gmacron=7712,t.Gmonospace=65319,t.Grave=63182,t.Gravesmall=63328,t.Gsmall=63335,t.Gsmallhook=667,t.Gstroke=484,t.H=72,t.H18533=9679,t.H18543=9642,t.H18551=9643,t.H22073=9633,t.HPsquare=13259,t.Haabkhasiancyrillic=1192,t.Hadescendercyrillic=1202,t.Hardsigncyrillic=1066,t.Hbar=294,t.Hbrevebelow=7722,t.Hcedilla=7720,t.Hcircle=9405,t.Hcircumflex=292,t.Hdieresis=7718,t.Hdotaccent=7714,t.Hdotbelow=7716,t.Hmonospace=65320,t.Hoarmenian=1344,t.Horicoptic=1e3,t.Hsmall=63336,t.Hungarumlaut=63183,t.Hungarumlautsmall=63224,t.Hzsquare=13200,t.I=73,t.IAcyrillic=1071,t.IJ=306,t.IUcyrillic=1070,t.Iacute=205,t.Iacutesmall=63469,t.Ibreve=300,t.Icaron=463,t.Icircle=9406,t.Icircumflex=206,t.Icircumflexsmall=63470,t.Icyrillic=1030,t.Idblgrave=520,t.Idieresis=207,t.Idieresisacute=7726,t.Idieresiscyrillic=1252,t.Idieresissmall=63471,t.Idot=304,t.Idotaccent=304,t.Idotbelow=7882,t.Iebrevecyrillic=1238,t.Iecyrillic=1045,t.Ifraktur=8465,t.Igrave=204,t.Igravesmall=63468,t.Ihookabove=7880,t.Iicyrillic=1048,t.Iinvertedbreve=522,t.Iishortcyrillic=1049,t.Imacron=298,t.Imacroncyrillic=1250,t.Imonospace=65321,t.Iniarmenian=1339,t.Iocyrillic=1025,t.Iogonek=302,t.Iota=921,t.Iotaafrican=406,t.Iotadieresis=938,t.Iotatonos=906,t.Ismall=63337,t.Istroke=407,t.Itilde=296,t.Itildebelow=7724,t.Izhitsacyrillic=1140,t.Izhitsadblgravecyrillic=1142,t.J=74,t.Jaarmenian=1345,t.Jcircle=9407,t.Jcircumflex=308,t.Jecyrillic=1032,t.Jheharmenian=1355,t.Jmonospace=65322,t.Jsmall=63338,t.K=75,t.KBsquare=13189,t.KKsquare=13261,t.Kabashkircyrillic=1184,t.Kacute=7728,t.Kacyrillic=1050,t.Kadescendercyrillic=1178,t.Kahookcyrillic=1219,t.Kappa=922,t.Kastrokecyrillic=1182,t.Kaverticalstrokecyrillic=1180,t.Kcaron=488,t.Kcedilla=310,t.Kcircle=9408,t.Kcommaaccent=310,t.Kdotbelow=7730,t.Keharmenian=1364,t.Kenarmenian=1343,t.Khacyrillic=1061,t.Kheicoptic=998,t.Khook=408,t.Kjecyrillic=1036,t.Klinebelow=7732,t.Kmonospace=65323,t.Koppacyrillic=1152,t.Koppagreek=990,t.Ksicyrillic=1134,t.Ksmall=63339,t.L=76,t.LJ=455,t.LL=63167,t.Lacute=313,t.Lambda=923,t.Lcaron=317,t.Lcedilla=315,t.Lcircle=9409,t.Lcircumflexbelow=7740,t.Lcommaaccent=315,t.Ldot=319,t.Ldotaccent=319,t.Ldotbelow=7734,t.Ldotbelowmacron=7736,t.Liwnarmenian=1340,t.Lj=456,t.Ljecyrillic=1033,t.Llinebelow=7738,t.Lmonospace=65324,t.Lslash=321,t.Lslashsmall=63225,t.Lsmall=63340,t.M=77,t.MBsquare=13190,t.Macron=63184,t.Macronsmall=63407,t.Macute=7742,t.Mcircle=9410,t.Mdotaccent=7744,t.Mdotbelow=7746,t.Menarmenian=1348,t.Mmonospace=65325,t.Msmall=63341,t.Mturned=412,t.Mu=924,t.N=78,t.NJ=458,t.Nacute=323,t.Ncaron=327,t.Ncedilla=325,t.Ncircle=9411,t.Ncircumflexbelow=7754,t.Ncommaaccent=325,t.Ndotaccent=7748,t.Ndotbelow=7750,t.Nhookleft=413,t.Nineroman=8552,t.Nj=459,t.Njecyrillic=1034,t.Nlinebelow=7752,t.Nmonospace=65326,t.Nowarmenian=1350,t.Nsmall=63342,t.Ntilde=209,t.Ntildesmall=63473,t.Nu=925,t.O=79,t.OE=338,t.OEsmall=63226,t.Oacute=211,t.Oacutesmall=63475,t.Obarredcyrillic=1256,t.Obarreddieresiscyrillic=1258,t.Obreve=334,t.Ocaron=465,t.Ocenteredtilde=415,t.Ocircle=9412,t.Ocircumflex=212,t.Ocircumflexacute=7888,t.Ocircumflexdotbelow=7896,t.Ocircumflexgrave=7890,t.Ocircumflexhookabove=7892,t.Ocircumflexsmall=63476,t.Ocircumflextilde=7894,t.Ocyrillic=1054,t.Odblacute=336,t.Odblgrave=524,t.Odieresis=214,t.Odieresiscyrillic=1254,t.Odieresissmall=63478,t.Odotbelow=7884,t.Ogoneksmall=63227,t.Ograve=210,t.Ogravesmall=63474,t.Oharmenian=1365,t.Ohm=8486,t.Ohookabove=7886,t.Ohorn=416,t.Ohornacute=7898,t.Ohorndotbelow=7906,t.Ohorngrave=7900,t.Ohornhookabove=7902,t.Ohorntilde=7904,t.Ohungarumlaut=336,t.Oi=418,t.Oinvertedbreve=526,t.Omacron=332,t.Omacronacute=7762,t.Omacrongrave=7760,t.Omega=8486,t.Omegacyrillic=1120,t.Omegagreek=937,t.Omegaroundcyrillic=1146,t.Omegatitlocyrillic=1148,t.Omegatonos=911,t.Omicron=927,t.Omicrontonos=908,t.Omonospace=65327,t.Oneroman=8544,t.Oogonek=490,t.Oogonekmacron=492,t.Oopen=390,t.Oslash=216,t.Oslashacute=510,t.Oslashsmall=63480,t.Osmall=63343,t.Ostrokeacute=510,t.Otcyrillic=1150,t.Otilde=213,t.Otildeacute=7756,t.Otildedieresis=7758,t.Otildesmall=63477,t.P=80,t.Pacute=7764,t.Pcircle=9413,t.Pdotaccent=7766,t.Pecyrillic=1055,t.Peharmenian=1354,t.Pemiddlehookcyrillic=1190,t.Phi=934,t.Phook=420,t.Pi=928,t.Piwrarmenian=1363,t.Pmonospace=65328,t.Psi=936,t.Psicyrillic=1136,t.Psmall=63344,t.Q=81,t.Qcircle=9414,t.Qmonospace=65329,t.Qsmall=63345,t.R=82,t.Raarmenian=1356,t.Racute=340,t.Rcaron=344,t.Rcedilla=342,t.Rcircle=9415,t.Rcommaaccent=342,t.Rdblgrave=528,t.Rdotaccent=7768,t.Rdotbelow=7770,t.Rdotbelowmacron=7772,t.Reharmenian=1360,t.Rfraktur=8476,t.Rho=929,t.Ringsmall=63228,t.Rinvertedbreve=530,t.Rlinebelow=7774,t.Rmonospace=65330,t.Rsmall=63346,t.Rsmallinverted=641,t.Rsmallinvertedsuperior=694,t.S=83,t.SF010000=9484,t.SF020000=9492,t.SF030000=9488,t.SF040000=9496,t.SF050000=9532,t.SF060000=9516,t.SF070000=9524,t.SF080000=9500,t.SF090000=9508,t.SF100000=9472,t.SF110000=9474,t.SF190000=9569,t.SF200000=9570,t.SF210000=9558,t.SF220000=9557,t.SF230000=9571,t.SF240000=9553,t.SF250000=9559,t.SF260000=9565,t.SF270000=9564,t.SF280000=9563,t.SF360000=9566,t.SF370000=9567,t.SF380000=9562,t.SF390000=9556,t.SF400000=9577,t.SF410000=9574,t.SF420000=9568,t.SF430000=9552,t.SF440000=9580,t.SF450000=9575,t.SF460000=9576,t.SF470000=9572,t.SF480000=9573,t.SF490000=9561,t.SF500000=9560,t.SF510000=9554,t.SF520000=9555,t.SF530000=9579,t.SF540000=9578,t.Sacute=346,t.Sacutedotaccent=7780,t.Sampigreek=992,t.Scaron=352,t.Scarondotaccent=7782,t.Scaronsmall=63229,t.Scedilla=350,t.Schwa=399,t.Schwacyrillic=1240,t.Schwadieresiscyrillic=1242,t.Scircle=9416,t.Scircumflex=348,t.Scommaaccent=536,t.Sdotaccent=7776,t.Sdotbelow=7778,t.Sdotbelowdotaccent=7784,t.Seharmenian=1357,t.Sevenroman=8550,t.Shaarmenian=1351,t.Shacyrillic=1064,t.Shchacyrillic=1065,t.Sheicoptic=994,t.Shhacyrillic=1210,t.Shimacoptic=1004,t.Sigma=931,t.Sixroman=8549,t.Smonospace=65331,t.Softsigncyrillic=1068,t.Ssmall=63347,t.Stigmagreek=986,t.T=84,t.Tau=932,t.Tbar=358,t.Tcaron=356,t.Tcedilla=354,t.Tcircle=9417,t.Tcircumflexbelow=7792,t.Tcommaaccent=354,t.Tdotaccent=7786,t.Tdotbelow=7788,t.Tecyrillic=1058,t.Tedescendercyrillic=1196,t.Tenroman=8553,t.Tetsecyrillic=1204,t.Theta=920,t.Thook=428,t.Thorn=222,t.Thornsmall=63486,t.Threeroman=8546,t.Tildesmall=63230,t.Tiwnarmenian=1359,t.Tlinebelow=7790,t.Tmonospace=65332,t.Toarmenian=1337,t.Tonefive=444,t.Tonesix=388,t.Tonetwo=423,t.Tretroflexhook=430,t.Tsecyrillic=1062,t.Tshecyrillic=1035,t.Tsmall=63348,t.Twelveroman=8555,t.Tworoman=8545,t.U=85,t.Uacute=218,t.Uacutesmall=63482,t.Ubreve=364,t.Ucaron=467,t.Ucircle=9418,t.Ucircumflex=219,t.Ucircumflexbelow=7798,t.Ucircumflexsmall=63483,t.Ucyrillic=1059,t.Udblacute=368,t.Udblgrave=532,t.Udieresis=220,t.Udieresisacute=471,t.Udieresisbelow=7794,t.Udieresiscaron=473,t.Udieresiscyrillic=1264,t.Udieresisgrave=475,t.Udieresismacron=469,t.Udieresissmall=63484,t.Udotbelow=7908,t.Ugrave=217,t.Ugravesmall=63481,t.Uhookabove=7910,t.Uhorn=431,t.Uhornacute=7912,t.Uhorndotbelow=7920,t.Uhorngrave=7914,t.Uhornhookabove=7916,t.Uhorntilde=7918,t.Uhungarumlaut=368,t.Uhungarumlautcyrillic=1266,t.Uinvertedbreve=534,t.Ukcyrillic=1144,t.Umacron=362,t.Umacroncyrillic=1262,t.Umacrondieresis=7802,t.Umonospace=65333,t.Uogonek=370,t.Upsilon=933,t.Upsilon1=978,t.Upsilonacutehooksymbolgreek=979,t.Upsilonafrican=433,t.Upsilondieresis=939,t.Upsilondieresishooksymbolgreek=980,t.Upsilonhooksymbol=978,t.Upsilontonos=910,t.Uring=366,t.Ushortcyrillic=1038,t.Usmall=63349,t.Ustraightcyrillic=1198,t.Ustraightstrokecyrillic=1200,t.Utilde=360,t.Utildeacute=7800,t.Utildebelow=7796,t.V=86,t.Vcircle=9419,t.Vdotbelow=7806,t.Vecyrillic=1042,t.Vewarmenian=1358,t.Vhook=434,t.Vmonospace=65334,t.Voarmenian=1352,t.Vsmall=63350,t.Vtilde=7804,t.W=87,t.Wacute=7810,t.Wcircle=9420,t.Wcircumflex=372,t.Wdieresis=7812,t.Wdotaccent=7814,t.Wdotbelow=7816,t.Wgrave=7808,t.Wmonospace=65335,t.Wsmall=63351,t.X=88,t.Xcircle=9421,t.Xdieresis=7820,t.Xdotaccent=7818,t.Xeharmenian=1341,t.Xi=926,t.Xmonospace=65336,t.Xsmall=63352,t.Y=89,t.Yacute=221,t.Yacutesmall=63485,t.Yatcyrillic=1122,t.Ycircle=9422,t.Ycircumflex=374,t.Ydieresis=376,t.Ydieresissmall=63487,t.Ydotaccent=7822,t.Ydotbelow=7924,t.Yericyrillic=1067,t.Yerudieresiscyrillic=1272,t.Ygrave=7922,t.Yhook=435,t.Yhookabove=7926,t.Yiarmenian=1349,t.Yicyrillic=1031,t.Yiwnarmenian=1362,t.Ymonospace=65337,t.Ysmall=63353,t.Ytilde=7928,t.Yusbigcyrillic=1130,t.Yusbigiotifiedcyrillic=1132,t.Yuslittlecyrillic=1126,t.Yuslittleiotifiedcyrillic=1128,t.Z=90,t.Zaarmenian=1334,t.Zacute=377,t.Zcaron=381,t.Zcaronsmall=63231,t.Zcircle=9423,t.Zcircumflex=7824,t.Zdot=379,t.Zdotaccent=379,t.Zdotbelow=7826,t.Zecyrillic=1047,t.Zedescendercyrillic=1176,t.Zedieresiscyrillic=1246,t.Zeta=918,t.Zhearmenian=1338,t.Zhebrevecyrillic=1217,t.Zhecyrillic=1046,t.Zhedescendercyrillic=1174,t.Zhedieresiscyrillic=1244,t.Zlinebelow=7828,t.Zmonospace=65338,t.Zsmall=63354,t.Zstroke=437,t.a=97,t.aabengali=2438,t.aacute=225,t.aadeva=2310,t.aagujarati=2694,t.aagurmukhi=2566,t.aamatragurmukhi=2622,t.aarusquare=13059,t.aavowelsignbengali=2494,t.aavowelsigndeva=2366,t.aavowelsigngujarati=2750,t.abbreviationmarkarmenian=1375,t.abbreviationsigndeva=2416,t.abengali=2437,t.abopomofo=12570,t.abreve=259,t.abreveacute=7855,t.abrevecyrillic=1233,t.abrevedotbelow=7863,t.abrevegrave=7857,t.abrevehookabove=7859,t.abrevetilde=7861,t.acaron=462,t.acircle=9424,t.acircumflex=226,t.acircumflexacute=7845,t.acircumflexdotbelow=7853,t.acircumflexgrave=7847,t.acircumflexhookabove=7849,t.acircumflextilde=7851,t.acute=180,t.acutebelowcmb=791,t.acutecmb=769,t.acutecomb=769,t.acutedeva=2388,t.acutelowmod=719,t.acutetonecmb=833,t.acyrillic=1072,t.adblgrave=513,t.addakgurmukhi=2673,t.adeva=2309,t.adieresis=228,t.adieresiscyrillic=1235,t.adieresismacron=479,t.adotbelow=7841,t.adotmacron=481,t.ae=230,t.aeacute=509,t.aekorean=12624,t.aemacron=483,t.afii00208=8213,t.afii08941=8356,t.afii10017=1040,t.afii10018=1041,t.afii10019=1042,t.afii10020=1043,t.afii10021=1044,t.afii10022=1045,t.afii10023=1025,t.afii10024=1046,t.afii10025=1047,t.afii10026=1048,t.afii10027=1049,t.afii10028=1050,t.afii10029=1051,t.afii10030=1052;t.afii10031=1053,t.afii10032=1054,t.afii10033=1055,t.afii10034=1056,t.afii10035=1057,t.afii10036=1058,t.afii10037=1059,t.afii10038=1060,t.afii10039=1061,t.afii10040=1062,t.afii10041=1063,t.afii10042=1064,t.afii10043=1065,t.afii10044=1066,t.afii10045=1067,t.afii10046=1068,t.afii10047=1069,t.afii10048=1070,t.afii10049=1071,t.afii10050=1168,t.afii10051=1026,t.afii10052=1027,t.afii10053=1028,t.afii10054=1029,t.afii10055=1030,t.afii10056=1031,t.afii10057=1032,t.afii10058=1033,t.afii10059=1034,t.afii10060=1035,t.afii10061=1036,t.afii10062=1038,t.afii10063=63172,t.afii10064=63173,t.afii10065=1072,t.afii10066=1073,t.afii10067=1074,t.afii10068=1075,t.afii10069=1076,t.afii10070=1077,t.afii10071=1105,t.afii10072=1078,t.afii10073=1079,t.afii10074=1080,t.afii10075=1081,t.afii10076=1082,t.afii10077=1083,t.afii10078=1084,t.afii10079=1085,t.afii10080=1086,t.afii10081=1087,t.afii10082=1088,t.afii10083=1089,t.afii10084=1090,t.afii10085=1091,t.afii10086=1092,t.afii10087=1093,t.afii10088=1094,t.afii10089=1095,t.afii10090=1096,t.afii10091=1097,t.afii10092=1098,t.afii10093=1099,t.afii10094=1100,t.afii10095=1101,t.afii10096=1102,t.afii10097=1103,t.afii10098=1169,t.afii10099=1106,t.afii10100=1107,t.afii10101=1108,t.afii10102=1109,t.afii10103=1110,t.afii10104=1111,t.afii10105=1112,t.afii10106=1113,t.afii10107=1114,t.afii10108=1115,t.afii10109=1116,t.afii10110=1118,t.afii10145=1039,t.afii10146=1122,t.afii10147=1138,t.afii10148=1140,t.afii10192=63174,t.afii10193=1119,t.afii10194=1123,t.afii10195=1139,t.afii10196=1141,t.afii10831=63175,t.afii10832=63176,t.afii10846=1241,t.afii299=8206,t.afii300=8207,t.afii301=8205,t.afii57381=1642,t.afii57388=1548,t.afii57392=1632,t.afii57393=1633,t.afii57394=1634,t.afii57395=1635,t.afii57396=1636,t.afii57397=1637,t.afii57398=1638,t.afii57399=1639,t.afii57400=1640,t.afii57401=1641,t.afii57403=1563,t.afii57407=1567,t.afii57409=1569,t.afii57410=1570,t.afii57411=1571,t.afii57412=1572,t.afii57413=1573,t.afii57414=1574,t.afii57415=1575,t.afii57416=1576,t.afii57417=1577,t.afii57418=1578,t.afii57419=1579,t.afii57420=1580,t.afii57421=1581,t.afii57422=1582,t.afii57423=1583,t.afii57424=1584,t.afii57425=1585,t.afii57426=1586,t.afii57427=1587,t.afii57428=1588,t.afii57429=1589,t.afii57430=1590,t.afii57431=1591,t.afii57432=1592,t.afii57433=1593,t.afii57434=1594,t.afii57440=1600,t.afii57441=1601,t.afii57442=1602,t.afii57443=1603,t.afii57444=1604,t.afii57445=1605,t.afii57446=1606,t.afii57448=1608,t.afii57449=1609,t.afii57450=1610,t.afii57451=1611,t.afii57452=1612,t.afii57453=1613,t.afii57454=1614,t.afii57455=1615,t.afii57456=1616,t.afii57457=1617,t.afii57458=1618,t.afii57470=1607,t.afii57505=1700,t.afii57506=1662,t.afii57507=1670,t.afii57508=1688,t.afii57509=1711,t.afii57511=1657,t.afii57512=1672,t.afii57513=1681,t.afii57514=1722,t.afii57519=1746,t.afii57534=1749,t.afii57636=8362,t.afii57645=1470,t.afii57658=1475,t.afii57664=1488,t.afii57665=1489,t.afii57666=1490,t.afii57667=1491,t.afii57668=1492,t.afii57669=1493,t.afii57670=1494,t.afii57671=1495,t.afii57672=1496,t.afii57673=1497,t.afii57674=1498,t.afii57675=1499,t.afii57676=1500,t.afii57677=1501,t.afii57678=1502,t.afii57679=1503,t.afii57680=1504,t.afii57681=1505,t.afii57682=1506,t.afii57683=1507,t.afii57684=1508,t.afii57685=1509,t.afii57686=1510,t.afii57687=1511,t.afii57688=1512,t.afii57689=1513,t.afii57690=1514,t.afii57694=64298,t.afii57695=64299,t.afii57700=64331,t.afii57705=64287,t.afii57716=1520,t.afii57717=1521,t.afii57718=1522,t.afii57723=64309,t.afii57793=1460,t.afii57794=1461,t.afii57795=1462,t.afii57796=1467,t.afii57797=1464,t.afii57798=1463,t.afii57799=1456,t.afii57800=1458,t.afii57801=1457,t.afii57802=1459,t.afii57803=1474,t.afii57804=1473,t.afii57806=1465,t.afii57807=1468,t.afii57839=1469,t.afii57841=1471,t.afii57842=1472,t.afii57929=700,t.afii61248=8453,t.afii61289=8467,t.afii61352=8470,t.afii61573=8236,t.afii61574=8237,t.afii61575=8238,t.afii61664=8204,t.afii63167=1645,t.afii64937=701,t.agrave=224,t.agujarati=2693,t.agurmukhi=2565,t.ahiragana=12354,t.ahookabove=7843,t.aibengali=2448,t.aibopomofo=12574,t.aideva=2320,t.aiecyrillic=1237,t.aigujarati=2704,t.aigurmukhi=2576,t.aimatragurmukhi=2632,t.ainarabic=1593,t.ainfinalarabic=65226,t.aininitialarabic=65227,t.ainmedialarabic=65228,t.ainvertedbreve=515,t.aivowelsignbengali=2504,t.aivowelsigndeva=2376,t.aivowelsigngujarati=2760,t.akatakana=12450,t.akatakanahalfwidth=65393,t.akorean=12623,t.alef=1488,t.alefarabic=1575,t.alefdageshhebrew=64304,t.aleffinalarabic=65166,t.alefhamzaabovearabic=1571,t.alefhamzaabovefinalarabic=65156,t.alefhamzabelowarabic=1573,t.alefhamzabelowfinalarabic=65160,t.alefhebrew=1488,t.aleflamedhebrew=64335,t.alefmaddaabovearabic=1570,t.alefmaddaabovefinalarabic=65154,t.alefmaksuraarabic=1609,t.alefmaksurafinalarabic=65264,t.alefmaksurainitialarabic=65267,t.alefmaksuramedialarabic=65268,t.alefpatahhebrew=64302,t.alefqamatshebrew=64303,t.aleph=8501,t.allequal=8780,t.alpha=945,t.alphatonos=940,t.amacron=257,t.amonospace=65345,t.ampersand=38,t.ampersandmonospace=65286,t.ampersandsmall=63270,t.amsquare=13250,t.anbopomofo=12578,t.angbopomofo=12580,t.angbracketleft=12296,t.angbracketright=12297,t.angkhankhuthai=3674,t.angle=8736,t.anglebracketleft=12296,t.anglebracketleftvertical=65087,t.anglebracketright=12297,t.anglebracketrightvertical=65088,t.angleleft=9001,t.angleright=9002,t.angstrom=8491,t.anoteleia=903,t.anudattadeva=2386,t.anusvarabengali=2434,t.anusvaradeva=2306,t.anusvaragujarati=2690,t.aogonek=261,t.apaatosquare=13056,t.aparen=9372,t.apostrophearmenian=1370,t.apostrophemod=700,t.apple=63743,t.approaches=8784,t.approxequal=8776,t.approxequalorimage=8786,t.approximatelyequal=8773,t.araeaekorean=12686,t.araeakorean=12685,t.arc=8978,t.arighthalfring=7834,t.aring=229,t.aringacute=507,t.aringbelow=7681,t.arrowboth=8596,t.arrowdashdown=8675,t.arrowdashleft=8672,t.arrowdashright=8674,t.arrowdashup=8673,t.arrowdblboth=8660,t.arrowdbldown=8659,t.arrowdblleft=8656,t.arrowdblright=8658,t.arrowdblup=8657,t.arrowdown=8595,t.arrowdownleft=8601,t.arrowdownright=8600,t.arrowdownwhite=8681,t.arrowheaddownmod=709,t.arrowheadleftmod=706,t.arrowheadrightmod=707,t.arrowheadupmod=708,t.arrowhorizex=63719,t.arrowleft=8592,t.arrowleftdbl=8656,t.arrowleftdblstroke=8653,t.arrowleftoverright=8646,t.arrowleftwhite=8678,t.arrowright=8594,t.arrowrightdblstroke=8655,t.arrowrightheavy=10142,t.arrowrightoverleft=8644,t.arrowrightwhite=8680,t.arrowtableft=8676,t.arrowtabright=8677,t.arrowup=8593,t.arrowupdn=8597,t.arrowupdnbse=8616,t.arrowupdownbase=8616,t.arrowupleft=8598,t.arrowupleftofdown=8645,t.arrowupright=8599,t.arrowupwhite=8679,t.arrowvertex=63718,t.asciicircum=94,t.asciicircummonospace=65342,t.asciitilde=126,t.asciitildemonospace=65374,t.ascript=593,t.ascriptturned=594,t.asmallhiragana=12353,t.asmallkatakana=12449,t.asmallkatakanahalfwidth=65383,t.asterisk=42,t.asteriskaltonearabic=1645,t.asteriskarabic=1645,t.asteriskmath=8727,t.asteriskmonospace=65290,t.asterisksmall=65121,t.asterism=8258,t.asuperior=63209,t.asymptoticallyequal=8771,t.at=64,t.atilde=227,t.atmonospace=65312,t.atsmall=65131,t.aturned=592,t.aubengali=2452,t.aubopomofo=12576,t.audeva=2324,t.augujarati=2708,t.augurmukhi=2580,t.aulengthmarkbengali=2519,t.aumatragurmukhi=2636,t.auvowelsignbengali=2508,t.auvowelsigndeva=2380,t.auvowelsigngujarati=2764,t.avagrahadeva=2365,t.aybarmenian=1377,t.ayin=1506,t.ayinaltonehebrew=64288,t.ayinhebrew=1506,t.b=98,t.babengali=2476,t.backslash=92,t.backslashmonospace=65340,t.badeva=2348,t.bagujarati=2732,t.bagurmukhi=2604,t.bahiragana=12400,t.bahtthai=3647,t.bakatakana=12496,t.bar=124,t.barmonospace=65372,t.bbopomofo=12549,t.bcircle=9425,t.bdotaccent=7683,t.bdotbelow=7685,t.beamedsixteenthnotes=9836,t.because=8757,t.becyrillic=1073,t.beharabic=1576,t.behfinalarabic=65168,t.behinitialarabic=65169,t.behiragana=12409,t.behmedialarabic=65170,t.behmeeminitialarabic=64671,t.behmeemisolatedarabic=64520,t.behnoonfinalarabic=64621,t.bekatakana=12505,t.benarmenian=1378,t.bet=1489,t.beta=946,t.betasymbolgreek=976,t.betdagesh=64305,t.betdageshhebrew=64305,t.bethebrew=1489,t.betrafehebrew=64332,t.bhabengali=2477,t.bhadeva=2349,t.bhagujarati=2733,t.bhagurmukhi=2605,t.bhook=595,t.bihiragana=12403,t.bikatakana=12499,t.bilabialclick=664,t.bindigurmukhi=2562,t.birusquare=13105,t.blackcircle=9679,t.blackdiamond=9670,t.blackdownpointingtriangle=9660,t.blackleftpointingpointer=9668,t.blackleftpointingtriangle=9664,t.blacklenticularbracketleft=12304,t.blacklenticularbracketleftvertical=65083,t.blacklenticularbracketright=12305,t.blacklenticularbracketrightvertical=65084,t.blacklowerlefttriangle=9699,t.blacklowerrighttriangle=9698,t.blackrectangle=9644,t.blackrightpointingpointer=9658,t.blackrightpointingtriangle=9654,t.blacksmallsquare=9642,t.blacksmilingface=9787,t.blacksquare=9632,t.blackstar=9733,t.blackupperlefttriangle=9700,t.blackupperrighttriangle=9701,t.blackuppointingsmalltriangle=9652,t.blackuppointingtriangle=9650,t.blank=9251,t.blinebelow=7687,t.block=9608,t.bmonospace=65346,t.bobaimaithai=3610,t.bohiragana=12412,t.bokatakana=12508,t.bparen=9373,t.bqsquare=13251,t.braceex=63732,t.braceleft=123,t.braceleftbt=63731,t.braceleftmid=63730,t.braceleftmonospace=65371,t.braceleftsmall=65115,t.bracelefttp=63729,t.braceleftvertical=65079,t.braceright=125,t.bracerightbt=63742,t.bracerightmid=63741,t.bracerightmonospace=65373,t.bracerightsmall=65116,t.bracerighttp=63740,t.bracerightvertical=65080,t.bracketleft=91,t.bracketleftbt=63728,t.bracketleftex=63727,t.bracketleftmonospace=65339,t.bracketlefttp=63726,t.bracketright=93,t.bracketrightbt=63739,t.bracketrightex=63738,t.bracketrightmonospace=65341,t.bracketrighttp=63737,t.breve=728,t.brevebelowcmb=814,t.brevecmb=774,t.breveinvertedbelowcmb=815,t.breveinvertedcmb=785,t.breveinverteddoublecmb=865,t.bridgebelowcmb=810,t.bridgeinvertedbelowcmb=826,t.brokenbar=166,t.bstroke=384,t.bsuperior=63210,t.btopbar=387,t.buhiragana=12406,t.bukatakana=12502,t.bullet=8226,t.bulletinverse=9688,t.bulletoperator=8729,t.bullseye=9678,t.c=99,t.caarmenian=1390,t.cabengali=2458,t.cacute=263,t.cadeva=2330,t.cagujarati=2714,t.cagurmukhi=2586,t.calsquare=13192,t.candrabindubengali=2433,t.candrabinducmb=784,t.candrabindudeva=2305,t.candrabindugujarati=2689,t.capslock=8682,t.careof=8453,t.caron=711,t.caronbelowcmb=812,t.caroncmb=780,t.carriagereturn=8629,t.cbopomofo=12568,t.ccaron=269,t.ccedilla=231,t.ccedillaacute=7689,t.ccircle=9426,t.ccircumflex=265,t.ccurl=597,t.cdot=267,t.cdotaccent=267,t.cdsquare=13253,t.cedilla=184,t.cedillacmb=807,t.cent=162,t.centigrade=8451,t.centinferior=63199,t.centmonospace=65504,t.centoldstyle=63394,t.centsuperior=63200,t.chaarmenian=1401,t.chabengali=2459,t.chadeva=2331,t.chagujarati=2715,t.chagurmukhi=2587,t.chbopomofo=12564,t.cheabkhasiancyrillic=1213,t.checkmark=10003,t.checyrillic=1095,t.chedescenderabkhasiancyrillic=1215,t.chedescendercyrillic=1207,t.chedieresiscyrillic=1269,t.cheharmenian=1395,t.chekhakassiancyrillic=1228,t.cheverticalstrokecyrillic=1209,t.chi=967,t.chieuchacirclekorean=12919,t.chieuchaparenkorean=12823,t.chieuchcirclekorean=12905,t.chieuchkorean=12618,t.chieuchparenkorean=12809,t.chochangthai=3594,t.chochanthai=3592,t.chochingthai=3593,t.chochoethai=3596,t.chook=392,t.cieucacirclekorean=12918,t.cieucaparenkorean=12822,t.cieuccirclekorean=12904,t.cieuckorean=12616,t.cieucparenkorean=12808,t.cieucuparenkorean=12828,t.circle=9675,t.circlecopyrt=169,t.circlemultiply=8855,t.circleot=8857,t.circleplus=8853,t.circlepostalmark=12342,t.circlewithlefthalfblack=9680,t.circlewithrighthalfblack=9681,t.circumflex=710,t.circumflexbelowcmb=813,t.circumflexcmb=770,t.clear=8999,t.clickalveolar=450,t.clickdental=448,t.clicklateral=449,t.clickretroflex=451,t.club=9827,t.clubsuitblack=9827,t.clubsuitwhite=9831,t.cmcubedsquare=13220,t.cmonospace=65347,t.cmsquaredsquare=13216,t.coarmenian=1409,t.colon=58,t.colonmonetary=8353,t.colonmonospace=65306,t.colonsign=8353,t.colonsmall=65109,t.colontriangularhalfmod=721,t.colontriangularmod=720,t.comma=44,t.commaabovecmb=787,t.commaaboverightcmb=789,t.commaaccent=63171,t.commaarabic=1548,t.commaarmenian=1373,t.commainferior=63201,t.commamonospace=65292,t.commareversedabovecmb=788,t.commareversedmod=701,t.commasmall=65104,t.commasuperior=63202,t.commaturnedabovecmb=786,t.commaturnedmod=699,t.compass=9788,t.congruent=8773,t.contourintegral=8750,t.control=8963,t.controlACK=6,t.controlBEL=7,t.controlBS=8,t.controlCAN=24,t.controlCR=13,t.controlDC1=17,t.controlDC2=18,t.controlDC3=19,t.controlDC4=20,t.controlDEL=127,t.controlDLE=16,t.controlEM=25,t.controlENQ=5,t.controlEOT=4,t.controlESC=27,t.controlETB=23,t.controlETX=3,t.controlFF=12,t.controlFS=28,t.controlGS=29,t.controlHT=9,t.controlLF=10,t.controlNAK=21,t.controlNULL=0,t.controlRS=30,t.controlSI=15,t.controlSO=14,t.controlSOT=2,t.controlSTX=1,t.controlSUB=26,t.controlSYN=22,t.controlUS=31,t.controlVT=11,t.copyright=169,t.copyrightsans=63721,t.copyrightserif=63193,t.cornerbracketleft=12300,t.cornerbracketlefthalfwidth=65378,t.cornerbracketleftvertical=65089,t.cornerbracketright=12301,t.cornerbracketrighthalfwidth=65379,t.cornerbracketrightvertical=65090,t.corporationsquare=13183,t.cosquare=13255,t.coverkgsquare=13254,t.cparen=9374,t.cruzeiro=8354,t.cstretched=663,t.curlyand=8911,t.curlyor=8910,t.currency=164,t.cyrBreve=63185,t.cyrFlex=63186,t.cyrbreve=63188,t.cyrflex=63189,t.d=100,t.daarmenian=1380,t.dabengali=2470,t.dadarabic=1590,t.dadeva=2342,t.dadfinalarabic=65214,t.dadinitialarabic=65215,t.dadmedialarabic=65216,t.dagesh=1468,t.dageshhebrew=1468,t.dagger=8224,t.daggerdbl=8225,t.dagujarati=2726,t.dagurmukhi=2598,t.dahiragana=12384,t.dakatakana=12480,t.dalarabic=1583,t.dalet=1491,t.daletdagesh=64307,t.daletdageshhebrew=64307,t.dalethebrew=1491,t.dalfinalarabic=65194,t.dammaarabic=1615,t.dammalowarabic=1615,t.dammatanaltonearabic=1612,t.dammatanarabic=1612,t.danda=2404,t.dargahebrew=1447,t.dargalefthebrew=1447,t.dasiapneumatacyrilliccmb=1157,t.dblGrave=63187,t.dblanglebracketleft=12298,t.dblanglebracketleftvertical=65085,t.dblanglebracketright=12299,t.dblanglebracketrightvertical=65086,t.dblarchinvertedbelowcmb=811,t.dblarrowleft=8660,t.dblarrowright=8658,t.dbldanda=2405,t.dblgrave=63190,t.dblgravecmb=783,t.dblintegral=8748,t.dbllowline=8215,t.dbllowlinecmb=819,t.dbloverlinecmb=831,t.dblprimemod=698,t.dblverticalbar=8214,t.dblverticallineabovecmb=782,t.dbopomofo=12553,t.dbsquare=13256,t.dcaron=271,t.dcedilla=7697,t.dcircle=9427,t.dcircumflexbelow=7699,t.dcroat=273,t.ddabengali=2465,t.ddadeva=2337,t.ddagujarati=2721,t.ddagurmukhi=2593,t.ddalarabic=1672,t.ddalfinalarabic=64393,t.dddhadeva=2396,t.ddhabengali=2466,t.ddhadeva=2338,t.ddhagujarati=2722,t.ddhagurmukhi=2594,t.ddotaccent=7691,t.ddotbelow=7693,t.decimalseparatorarabic=1643,t.decimalseparatorpersian=1643,t.decyrillic=1076,t.degree=176,t.dehihebrew=1453,t.dehiragana=12391,t.deicoptic=1007,t.dekatakana=12487,t.deleteleft=9003,t.deleteright=8998,t.delta=948,t.deltaturned=397,t.denominatorminusonenumeratorbengali=2552,t.dezh=676,t.dhabengali=2471,t.dhadeva=2343,t.dhagujarati=2727,t.dhagurmukhi=2599,t.dhook=599,t.dialytikatonos=901,t.dialytikatonoscmb=836,t.diamond=9830,t.diamondsuitwhite=9826,t.dieresis=168,t.dieresisacute=63191,t.dieresisbelowcmb=804,t.dieresiscmb=776,t.dieresisgrave=63192,t.dieresistonos=901,t.dihiragana=12386,t.dikatakana=12482,t.dittomark=12291,t.divide=247,t.divides=8739,t.divisionslash=8725,t.djecyrillic=1106,t.dkshade=9619,t.dlinebelow=7695,t.dlsquare=13207,t.dmacron=273,t.dmonospace=65348,t.dnblock=9604,t.dochadathai=3598,t.dodekthai=3604,t.dohiragana=12393,t.dokatakana=12489,t.dollar=36;t.dollarinferior=63203,t.dollarmonospace=65284,t.dollaroldstyle=63268,t.dollarsmall=65129,t.dollarsuperior=63204,t.dong=8363,t.dorusquare=13094,t.dotaccent=729,t.dotaccentcmb=775,t.dotbelowcmb=803,t.dotbelowcomb=803,t.dotkatakana=12539,t.dotlessi=305,t.dotlessj=63166,t.dotlessjstrokehook=644,t.dotmath=8901,t.dottedcircle=9676,t.doubleyodpatah=64287,t.doubleyodpatahhebrew=64287,t.downtackbelowcmb=798,t.downtackmod=725,t.dparen=9375,t.dsuperior=63211,t.dtail=598,t.dtopbar=396,t.duhiragana=12389,t.dukatakana=12485,t.dz=499,t.dzaltone=675,t.dzcaron=454,t.dzcurl=677,t.dzeabkhasiancyrillic=1249,t.dzecyrillic=1109,t.dzhecyrillic=1119,t.e=101,t.eacute=233,t.earth=9793,t.ebengali=2447,t.ebopomofo=12572,t.ebreve=277,t.ecandradeva=2317,t.ecandragujarati=2701,t.ecandravowelsigndeva=2373,t.ecandravowelsigngujarati=2757,t.ecaron=283,t.ecedillabreve=7709,t.echarmenian=1381,t.echyiwnarmenian=1415,t.ecircle=9428,t.ecircumflex=234,t.ecircumflexacute=7871,t.ecircumflexbelow=7705,t.ecircumflexdotbelow=7879,t.ecircumflexgrave=7873,t.ecircumflexhookabove=7875,t.ecircumflextilde=7877,t.ecyrillic=1108,t.edblgrave=517,t.edeva=2319,t.edieresis=235,t.edot=279,t.edotaccent=279,t.edotbelow=7865,t.eegurmukhi=2575,t.eematragurmukhi=2631,t.efcyrillic=1092,t.egrave=232,t.egujarati=2703,t.eharmenian=1383,t.ehbopomofo=12573,t.ehiragana=12360,t.ehookabove=7867,t.eibopomofo=12575,t.eight=56,t.eightarabic=1640,t.eightbengali=2542,t.eightcircle=9319,t.eightcircleinversesansserif=10129,t.eightdeva=2414,t.eighteencircle=9329,t.eighteenparen=9349,t.eighteenperiod=9369,t.eightgujarati=2798,t.eightgurmukhi=2670,t.eighthackarabic=1640,t.eighthangzhou=12328,t.eighthnotebeamed=9835,t.eightideographicparen=12839,t.eightinferior=8328,t.eightmonospace=65304,t.eightoldstyle=63288,t.eightparen=9339,t.eightperiod=9359,t.eightpersian=1784,t.eightroman=8567,t.eightsuperior=8312,t.eightthai=3672,t.einvertedbreve=519,t.eiotifiedcyrillic=1125,t.ekatakana=12456,t.ekatakanahalfwidth=65396,t.ekonkargurmukhi=2676,t.ekorean=12628,t.elcyrillic=1083,t.element=8712,t.elevencircle=9322,t.elevenparen=9342,t.elevenperiod=9362,t.elevenroman=8570,t.ellipsis=8230,t.ellipsisvertical=8942,t.emacron=275,t.emacronacute=7703,t.emacrongrave=7701,t.emcyrillic=1084,t.emdash=8212,t.emdashvertical=65073,t.emonospace=65349,t.emphasismarkarmenian=1371,t.emptyset=8709,t.enbopomofo=12579,t.encyrillic=1085,t.endash=8211,t.endashvertical=65074,t.endescendercyrillic=1187,t.eng=331,t.engbopomofo=12581,t.enghecyrillic=1189,t.enhookcyrillic=1224,t.enspace=8194,t.eogonek=281,t.eokorean=12627,t.eopen=603,t.eopenclosed=666,t.eopenreversed=604,t.eopenreversedclosed=606,t.eopenreversedhook=605,t.eparen=9376,t.epsilon=949,t.epsilontonos=941,t.equal=61,t.equalmonospace=65309,t.equalsmall=65126,t.equalsuperior=8316,t.equivalence=8801,t.erbopomofo=12582,t.ercyrillic=1088,t.ereversed=600,t.ereversedcyrillic=1101,t.escyrillic=1089,t.esdescendercyrillic=1195,t.esh=643,t.eshcurl=646,t.eshortdeva=2318,t.eshortvowelsigndeva=2374,t.eshreversedloop=426,t.eshsquatreversed=645,t.esmallhiragana=12359,t.esmallkatakana=12455,t.esmallkatakanahalfwidth=65386,t.estimated=8494,t.esuperior=63212,t.eta=951,t.etarmenian=1384,t.etatonos=942,t.eth=240,t.etilde=7869,t.etildebelow=7707,t.etnahtafoukhhebrew=1425,t.etnahtafoukhlefthebrew=1425,t.etnahtahebrew=1425,t.etnahtalefthebrew=1425,t.eturned=477,t.eukorean=12641,t.euro=8364,t.evowelsignbengali=2503,t.evowelsigndeva=2375,t.evowelsigngujarati=2759,t.exclam=33,t.exclamarmenian=1372,t.exclamdbl=8252,t.exclamdown=161,t.exclamdownsmall=63393,t.exclammonospace=65281,t.exclamsmall=63265,t.existential=8707,t.ezh=658,t.ezhcaron=495,t.ezhcurl=659,t.ezhreversed=441,t.ezhtail=442,t.f=102,t.fadeva=2398,t.fagurmukhi=2654,t.fahrenheit=8457,t.fathaarabic=1614,t.fathalowarabic=1614,t.fathatanarabic=1611,t.fbopomofo=12552,t.fcircle=9429,t.fdotaccent=7711,t.feharabic=1601,t.feharmenian=1414,t.fehfinalarabic=65234,t.fehinitialarabic=65235,t.fehmedialarabic=65236,t.feicoptic=997,t.female=9792,t.ff=64256,t.f_f=64256,t.ffi=64259,t.f_f_i=64259,t.ffl=64260,t.f_f_l=64260,t.fi=64257,t.f_i=64257,t.fifteencircle=9326,t.fifteenparen=9346,t.fifteenperiod=9366,t.figuredash=8210,t.filledbox=9632,t.filledrect=9644,t.finalkaf=1498,t.finalkafdagesh=64314,t.finalkafdageshhebrew=64314,t.finalkafhebrew=1498,t.finalmem=1501,t.finalmemhebrew=1501,t.finalnun=1503,t.finalnunhebrew=1503,t.finalpe=1507,t.finalpehebrew=1507,t.finaltsadi=1509,t.finaltsadihebrew=1509,t.firsttonechinese=713,t.fisheye=9673,t.fitacyrillic=1139,t.five=53,t.fivearabic=1637,t.fivebengali=2539,t.fivecircle=9316,t.fivecircleinversesansserif=10126,t.fivedeva=2411,t.fiveeighths=8541,t.fivegujarati=2795,t.fivegurmukhi=2667,t.fivehackarabic=1637,t.fivehangzhou=12325,t.fiveideographicparen=12836,t.fiveinferior=8325,t.fivemonospace=65301,t.fiveoldstyle=63285,t.fiveparen=9336,t.fiveperiod=9356,t.fivepersian=1781,t.fiveroman=8564,t.fivesuperior=8309,t.fivethai=3669,t.fl=64258,t.f_l=64258,t.florin=402,t.fmonospace=65350,t.fmsquare=13209,t.fofanthai=3615,t.fofathai=3613,t.fongmanthai=3663,t.forall=8704,t.four=52,t.fourarabic=1636,t.fourbengali=2538,t.fourcircle=9315,t.fourcircleinversesansserif=10125,t.fourdeva=2410,t.fourgujarati=2794,t.fourgurmukhi=2666,t.fourhackarabic=1636,t.fourhangzhou=12324,t.fourideographicparen=12835,t.fourinferior=8324,t.fourmonospace=65300,t.fournumeratorbengali=2551,t.fouroldstyle=63284,t.fourparen=9335,t.fourperiod=9355,t.fourpersian=1780,t.fourroman=8563,t.foursuperior=8308,t.fourteencircle=9325,t.fourteenparen=9345,t.fourteenperiod=9365,t.fourthai=3668,t.fourthtonechinese=715,t.fparen=9377,t.fraction=8260,t.franc=8355,t.g=103,t.gabengali=2455,t.gacute=501,t.gadeva=2327,t.gafarabic=1711,t.gaffinalarabic=64403,t.gafinitialarabic=64404,t.gafmedialarabic=64405,t.gagujarati=2711,t.gagurmukhi=2583,t.gahiragana=12364,t.gakatakana=12460,t.gamma=947,t.gammalatinsmall=611,t.gammasuperior=736,t.gangiacoptic=1003,t.gbopomofo=12557,t.gbreve=287,t.gcaron=487,t.gcedilla=291,t.gcircle=9430,t.gcircumflex=285,t.gcommaaccent=291,t.gdot=289,t.gdotaccent=289,t.gecyrillic=1075,t.gehiragana=12370,t.gekatakana=12466,t.geometricallyequal=8785,t.gereshaccenthebrew=1436,t.gereshhebrew=1523,t.gereshmuqdamhebrew=1437,t.germandbls=223,t.gershayimaccenthebrew=1438,t.gershayimhebrew=1524,t.getamark=12307,t.ghabengali=2456,t.ghadarmenian=1394,t.ghadeva=2328,t.ghagujarati=2712,t.ghagurmukhi=2584,t.ghainarabic=1594,t.ghainfinalarabic=65230,t.ghaininitialarabic=65231,t.ghainmedialarabic=65232,t.ghemiddlehookcyrillic=1173,t.ghestrokecyrillic=1171,t.gheupturncyrillic=1169,t.ghhadeva=2394,t.ghhagurmukhi=2650,t.ghook=608,t.ghzsquare=13203,t.gihiragana=12366,t.gikatakana=12462,t.gimarmenian=1379,t.gimel=1490,t.gimeldagesh=64306,t.gimeldageshhebrew=64306,t.gimelhebrew=1490,t.gjecyrillic=1107,t.glottalinvertedstroke=446,t.glottalstop=660,t.glottalstopinverted=662,t.glottalstopmod=704,t.glottalstopreversed=661,t.glottalstopreversedmod=705,t.glottalstopreversedsuperior=740,t.glottalstopstroke=673,t.glottalstopstrokereversed=674,t.gmacron=7713,t.gmonospace=65351,t.gohiragana=12372,t.gokatakana=12468,t.gparen=9378,t.gpasquare=13228,t.gradient=8711,t.grave=96,t.gravebelowcmb=790,t.gravecmb=768,t.gravecomb=768,t.gravedeva=2387,t.gravelowmod=718,t.gravemonospace=65344,t.gravetonecmb=832,t.greater=62,t.greaterequal=8805,t.greaterequalorless=8923,t.greatermonospace=65310,t.greaterorequivalent=8819,t.greaterorless=8823,t.greateroverequal=8807,t.greatersmall=65125,t.gscript=609,t.gstroke=485,t.guhiragana=12368,t.guillemotleft=171,t.guillemotright=187,t.guilsinglleft=8249,t.guilsinglright=8250,t.gukatakana=12464,t.guramusquare=13080,t.gysquare=13257,t.h=104,t.haabkhasiancyrillic=1193,t.haaltonearabic=1729,t.habengali=2489,t.hadescendercyrillic=1203,t.hadeva=2361,t.hagujarati=2745,t.hagurmukhi=2617,t.haharabic=1581,t.hahfinalarabic=65186,t.hahinitialarabic=65187,t.hahiragana=12399,t.hahmedialarabic=65188,t.haitusquare=13098,t.hakatakana=12495,t.hakatakanahalfwidth=65418,t.halantgurmukhi=2637,t.hamzaarabic=1569,t.hamzalowarabic=1569,t.hangulfiller=12644,t.hardsigncyrillic=1098,t.harpoonleftbarbup=8636,t.harpoonrightbarbup=8640,t.hasquare=13258,t.hatafpatah=1458,t.hatafpatah16=1458,t.hatafpatah23=1458,t.hatafpatah2f=1458,t.hatafpatahhebrew=1458,t.hatafpatahnarrowhebrew=1458,t.hatafpatahquarterhebrew=1458,t.hatafpatahwidehebrew=1458,t.hatafqamats=1459,t.hatafqamats1b=1459,t.hatafqamats28=1459,t.hatafqamats34=1459,t.hatafqamatshebrew=1459,t.hatafqamatsnarrowhebrew=1459,t.hatafqamatsquarterhebrew=1459,t.hatafqamatswidehebrew=1459,t.hatafsegol=1457,t.hatafsegol17=1457,t.hatafsegol24=1457,t.hatafsegol30=1457,t.hatafsegolhebrew=1457,t.hatafsegolnarrowhebrew=1457,t.hatafsegolquarterhebrew=1457,t.hatafsegolwidehebrew=1457,t.hbar=295,t.hbopomofo=12559,t.hbrevebelow=7723,t.hcedilla=7721,t.hcircle=9431,t.hcircumflex=293,t.hdieresis=7719,t.hdotaccent=7715,t.hdotbelow=7717,t.he=1492,t.heart=9829,t.heartsuitblack=9829,t.heartsuitwhite=9825,t.hedagesh=64308,t.hedageshhebrew=64308,t.hehaltonearabic=1729,t.heharabic=1607,t.hehebrew=1492,t.hehfinalaltonearabic=64423,t.hehfinalalttwoarabic=65258,t.hehfinalarabic=65258,t.hehhamzaabovefinalarabic=64421,t.hehhamzaaboveisolatedarabic=64420,t.hehinitialaltonearabic=64424,t.hehinitialarabic=65259,t.hehiragana=12408,t.hehmedialaltonearabic=64425,t.hehmedialarabic=65260,t.heiseierasquare=13179,t.hekatakana=12504,t.hekatakanahalfwidth=65421,t.hekutaarusquare=13110,t.henghook=615,t.herutusquare=13113,t.het=1495,t.hethebrew=1495,t.hhook=614,t.hhooksuperior=689,t.hieuhacirclekorean=12923,t.hieuhaparenkorean=12827,t.hieuhcirclekorean=12909,t.hieuhkorean=12622,t.hieuhparenkorean=12813,t.hihiragana=12402,t.hikatakana=12498,t.hikatakanahalfwidth=65419,t.hiriq=1460,t.hiriq14=1460,t.hiriq21=1460,t.hiriq2d=1460,t.hiriqhebrew=1460,t.hiriqnarrowhebrew=1460,t.hiriqquarterhebrew=1460,t.hiriqwidehebrew=1460,t.hlinebelow=7830,t.hmonospace=65352,t.hoarmenian=1392,t.hohipthai=3627,t.hohiragana=12411,t.hokatakana=12507,t.hokatakanahalfwidth=65422,t.holam=1465,t.holam19=1465,t.holam26=1465,t.holam32=1465,t.holamhebrew=1465,t.holamnarrowhebrew=1465,t.holamquarterhebrew=1465,t.holamwidehebrew=1465,t.honokhukthai=3630,t.hookabovecomb=777,t.hookcmb=777,t.hookpalatalizedbelowcmb=801,t.hookretroflexbelowcmb=802,t.hoonsquare=13122,t.horicoptic=1001,t.horizontalbar=8213,t.horncmb=795,t.hotsprings=9832,t.house=8962,t.hparen=9379,t.hsuperior=688,t.hturned=613,t.huhiragana=12405,t.huiitosquare=13107,t.hukatakana=12501,t.hukatakanahalfwidth=65420,t.hungarumlaut=733,t.hungarumlautcmb=779,t.hv=405,t.hyphen=45,t.hypheninferior=63205,t.hyphenmonospace=65293,t.hyphensmall=65123,t.hyphensuperior=63206,t.hyphentwo=8208,t.i=105,t.iacute=237,t.iacyrillic=1103,t.ibengali=2439,t.ibopomofo=12583,t.ibreve=301,t.icaron=464,t.icircle=9432,t.icircumflex=238,t.icyrillic=1110,t.idblgrave=521,t.ideographearthcircle=12943,t.ideographfirecircle=12939,t.ideographicallianceparen=12863,t.ideographiccallparen=12858,t.ideographiccentrecircle=12965,t.ideographicclose=12294,t.ideographiccomma=12289,t.ideographiccommaleft=65380,t.ideographiccongratulationparen=12855,t.ideographiccorrectcircle=12963,t.ideographicearthparen=12847,t.ideographicenterpriseparen=12861,t.ideographicexcellentcircle=12957,t.ideographicfestivalparen=12864,t.ideographicfinancialcircle=12950,t.ideographicfinancialparen=12854,t.ideographicfireparen=12843,t.ideographichaveparen=12850,t.ideographichighcircle=12964,t.ideographiciterationmark=12293,t.ideographiclaborcircle=12952,t.ideographiclaborparen=12856,t.ideographicleftcircle=12967,t.ideographiclowcircle=12966,t.ideographicmedicinecircle=12969,t.ideographicmetalparen=12846,t.ideographicmoonparen=12842,t.ideographicnameparen=12852,t.ideographicperiod=12290,t.ideographicprintcircle=12958,t.ideographicreachparen=12867,t.ideographicrepresentparen=12857,t.ideographicresourceparen=12862,t.ideographicrightcircle=12968,t.ideographicsecretcircle=12953,t.ideographicselfparen=12866,t.ideographicsocietyparen=12851,t.ideographicspace=12288,t.ideographicspecialparen=12853,t.ideographicstockparen=12849,t.ideographicstudyparen=12859,t.ideographicsunparen=12848,t.ideographicsuperviseparen=12860,t.ideographicwaterparen=12844,t.ideographicwoodparen=12845,t.ideographiczero=12295,t.ideographmetalcircle=12942,t.ideographmooncircle=12938,t.ideographnamecircle=12948,t.ideographsuncircle=12944,t.ideographwatercircle=12940,t.ideographwoodcircle=12941,t.ideva=2311,t.idieresis=239,t.idieresisacute=7727,t.idieresiscyrillic=1253,t.idotbelow=7883,t.iebrevecyrillic=1239,t.iecyrillic=1077,t.ieungacirclekorean=12917,t.ieungaparenkorean=12821,t.ieungcirclekorean=12903,t.ieungkorean=12615,t.ieungparenkorean=12807,t.igrave=236,t.igujarati=2695,t.igurmukhi=2567,t.ihiragana=12356,t.ihookabove=7881,t.iibengali=2440,t.iicyrillic=1080,t.iideva=2312,t.iigujarati=2696,t.iigurmukhi=2568,t.iimatragurmukhi=2624,t.iinvertedbreve=523,t.iishortcyrillic=1081,t.iivowelsignbengali=2496,t.iivowelsigndeva=2368,t.iivowelsigngujarati=2752,t.ij=307,t.ikatakana=12452,t.ikatakanahalfwidth=65394,t.ikorean=12643,t.ilde=732,t.iluyhebrew=1452,t.imacron=299,t.imacroncyrillic=1251,t.imageorapproximatelyequal=8787,t.imatragurmukhi=2623,t.imonospace=65353,t.increment=8710,t.infinity=8734,t.iniarmenian=1387,t.integral=8747,t.integralbottom=8993,t.integralbt=8993,t.integralex=63733,t.integraltop=8992,t.integraltp=8992,t.intersection=8745,t.intisquare=13061,t.invbullet=9688,t.invcircle=9689,t.invsmileface=9787,t.iocyrillic=1105,t.iogonek=303,t.iota=953,t.iotadieresis=970,t.iotadieresistonos=912,t.iotalatin=617,t.iotatonos=943,t.iparen=9380,t.irigurmukhi=2674,t.ismallhiragana=12355,t.ismallkatakana=12451,t.ismallkatakanahalfwidth=65384,t.issharbengali=2554,t.istroke=616,t.isuperior=63213,t.iterationhiragana=12445,t.iterationkatakana=12541,t.itilde=297,t.itildebelow=7725,t.iubopomofo=12585,t.iucyrillic=1102,t.ivowelsignbengali=2495,t.ivowelsigndeva=2367,t.ivowelsigngujarati=2751,t.izhitsacyrillic=1141,t.izhitsadblgravecyrillic=1143,t.j=106,t.jaarmenian=1393,t.jabengali=2460,t.jadeva=2332,t.jagujarati=2716,t.jagurmukhi=2588,t.jbopomofo=12560,t.jcaron=496,t.jcircle=9433,t.jcircumflex=309,t.jcrossedtail=669,t.jdotlessstroke=607,t.jecyrillic=1112,t.jeemarabic=1580,t.jeemfinalarabic=65182,t.jeeminitialarabic=65183,t.jeemmedialarabic=65184,t.jeharabic=1688,t.jehfinalarabic=64395,t.jhabengali=2461,t.jhadeva=2333,t.jhagujarati=2717,t.jhagurmukhi=2589,t.jheharmenian=1403,t.jis=12292,t.jmonospace=65354,t.jparen=9381,t.jsuperior=690,t.k=107,t.kabashkircyrillic=1185,t.kabengali=2453,t.kacute=7729,t.kacyrillic=1082,t.kadescendercyrillic=1179,t.kadeva=2325,t.kaf=1499,t.kafarabic=1603,t.kafdagesh=64315,t.kafdageshhebrew=64315,t.kaffinalarabic=65242,t.kafhebrew=1499,t.kafinitialarabic=65243,t.kafmedialarabic=65244,t.kafrafehebrew=64333,t.kagujarati=2709,t.kagurmukhi=2581,t.kahiragana=12363,t.kahookcyrillic=1220,t.kakatakana=12459,t.kakatakanahalfwidth=65398,t.kappa=954,t.kappasymbolgreek=1008,t.kapyeounmieumkorean=12657,t.kapyeounphieuphkorean=12676,t.kapyeounpieupkorean=12664,t.kapyeounssangpieupkorean=12665,t.karoriisquare=13069,t.kashidaautoarabic=1600,t.kashidaautonosidebearingarabic=1600,t.kasmallkatakana=12533,t.kasquare=13188,t.kasraarabic=1616,t.kasratanarabic=1613,t.kastrokecyrillic=1183,t.katahiraprolongmarkhalfwidth=65392,t.kaverticalstrokecyrillic=1181,t.kbopomofo=12558,t.kcalsquare=13193,t.kcaron=489,t.kcedilla=311,t.kcircle=9434,t.kcommaaccent=311,t.kdotbelow=7731,t.keharmenian=1412,t.kehiragana=12369,t.kekatakana=12465,t.kekatakanahalfwidth=65401,t.kenarmenian=1391,t.kesmallkatakana=12534,t.kgreenlandic=312,t.khabengali=2454,t.khacyrillic=1093,t.khadeva=2326,t.khagujarati=2710,t.khagurmukhi=2582,t.khaharabic=1582,t.khahfinalarabic=65190,t.khahinitialarabic=65191,t.khahmedialarabic=65192,t.kheicoptic=999,t.khhadeva=2393,t.khhagurmukhi=2649,t.khieukhacirclekorean=12920,t.khieukhaparenkorean=12824,t.khieukhcirclekorean=12906,t.khieukhkorean=12619,t.khieukhparenkorean=12810,t.khokhaithai=3586,t.khokhonthai=3589,t.khokhuatthai=3587,t.khokhwaithai=3588,t.khomutthai=3675,t.khook=409,t.khorakhangthai=3590,t.khzsquare=13201,t.kihiragana=12365,t.kikatakana=12461,t.kikatakanahalfwidth=65399,t.kiroguramusquare=13077,t.kiromeetorusquare=13078,t.kirosquare=13076,t.kiyeokacirclekorean=12910,t.kiyeokaparenkorean=12814,t.kiyeokcirclekorean=12896,t.kiyeokkorean=12593,t.kiyeokparenkorean=12800,t.kiyeoksioskorean=12595;t.kjecyrillic=1116,t.klinebelow=7733,t.klsquare=13208,t.kmcubedsquare=13222,t.kmonospace=65355,t.kmsquaredsquare=13218,t.kohiragana=12371,t.kohmsquare=13248,t.kokaithai=3585,t.kokatakana=12467,t.kokatakanahalfwidth=65402,t.kooposquare=13086,t.koppacyrillic=1153,t.koreanstandardsymbol=12927,t.koroniscmb=835,t.kparen=9382,t.kpasquare=13226,t.ksicyrillic=1135,t.ktsquare=13263,t.kturned=670,t.kuhiragana=12367,t.kukatakana=12463,t.kukatakanahalfwidth=65400,t.kvsquare=13240,t.kwsquare=13246,t.l=108,t.labengali=2482,t.lacute=314,t.ladeva=2354,t.lagujarati=2738,t.lagurmukhi=2610,t.lakkhangyaothai=3653,t.lamaleffinalarabic=65276,t.lamalefhamzaabovefinalarabic=65272,t.lamalefhamzaaboveisolatedarabic=65271,t.lamalefhamzabelowfinalarabic=65274,t.lamalefhamzabelowisolatedarabic=65273,t.lamalefisolatedarabic=65275,t.lamalefmaddaabovefinalarabic=65270,t.lamalefmaddaaboveisolatedarabic=65269,t.lamarabic=1604,t.lambda=955,t.lambdastroke=411,t.lamed=1500,t.lameddagesh=64316,t.lameddageshhebrew=64316,t.lamedhebrew=1500,t.lamfinalarabic=65246,t.lamhahinitialarabic=64714,t.laminitialarabic=65247,t.lamjeeminitialarabic=64713,t.lamkhahinitialarabic=64715,t.lamlamhehisolatedarabic=65010,t.lammedialarabic=65248,t.lammeemhahinitialarabic=64904,t.lammeeminitialarabic=64716,t.largecircle=9711,t.lbar=410,t.lbelt=620,t.lbopomofo=12556,t.lcaron=318,t.lcedilla=316,t.lcircle=9435,t.lcircumflexbelow=7741,t.lcommaaccent=316,t.ldot=320,t.ldotaccent=320,t.ldotbelow=7735,t.ldotbelowmacron=7737,t.leftangleabovecmb=794,t.lefttackbelowcmb=792,t.less=60,t.lessequal=8804,t.lessequalorgreater=8922,t.lessmonospace=65308,t.lessorequivalent=8818,t.lessorgreater=8822,t.lessoverequal=8806,t.lesssmall=65124,t.lezh=622,t.lfblock=9612,t.lhookretroflex=621,t.lira=8356,t.liwnarmenian=1388,t.lj=457,t.ljecyrillic=1113,t.ll=63168,t.lladeva=2355,t.llagujarati=2739,t.llinebelow=7739,t.llladeva=2356,t.llvocalicbengali=2529,t.llvocalicdeva=2401,t.llvocalicvowelsignbengali=2531,t.llvocalicvowelsigndeva=2403,t.lmiddletilde=619,t.lmonospace=65356,t.lmsquare=13264,t.lochulathai=3628,t.logicaland=8743,t.logicalnot=172,t.logicalnotreversed=8976,t.logicalor=8744,t.lolingthai=3621,t.longs=383,t.lowlinecenterline=65102,t.lowlinecmb=818,t.lowlinedashed=65101,t.lozenge=9674,t.lparen=9383,t.lslash=322,t.lsquare=8467,t.lsuperior=63214,t.ltshade=9617,t.luthai=3622,t.lvocalicbengali=2444,t.lvocalicdeva=2316,t.lvocalicvowelsignbengali=2530,t.lvocalicvowelsigndeva=2402,t.lxsquare=13267,t.m=109,t.mabengali=2478,t.macron=175,t.macronbelowcmb=817,t.macroncmb=772,t.macronlowmod=717,t.macronmonospace=65507,t.macute=7743,t.madeva=2350,t.magujarati=2734,t.magurmukhi=2606,t.mahapakhhebrew=1444,t.mahapakhlefthebrew=1444,t.mahiragana=12414,t.maichattawalowleftthai=63637,t.maichattawalowrightthai=63636,t.maichattawathai=3659,t.maichattawaupperleftthai=63635,t.maieklowleftthai=63628,t.maieklowrightthai=63627,t.maiekthai=3656,t.maiekupperleftthai=63626,t.maihanakatleftthai=63620,t.maihanakatthai=3633,t.maitaikhuleftthai=63625,t.maitaikhuthai=3655,t.maitholowleftthai=63631,t.maitholowrightthai=63630,t.maithothai=3657,t.maithoupperleftthai=63629,t.maitrilowleftthai=63634,t.maitrilowrightthai=63633,t.maitrithai=3658,t.maitriupperleftthai=63632,t.maiyamokthai=3654,t.makatakana=12510,t.makatakanahalfwidth=65423,t.male=9794,t.mansyonsquare=13127,t.maqafhebrew=1470,t.mars=9794,t.masoracirclehebrew=1455,t.masquare=13187,t.mbopomofo=12551,t.mbsquare=13268,t.mcircle=9436,t.mcubedsquare=13221,t.mdotaccent=7745,t.mdotbelow=7747,t.meemarabic=1605,t.meemfinalarabic=65250,t.meeminitialarabic=65251,t.meemmedialarabic=65252,t.meemmeeminitialarabic=64721,t.meemmeemisolatedarabic=64584,t.meetorusquare=13133,t.mehiragana=12417,t.meizierasquare=13182,t.mekatakana=12513,t.mekatakanahalfwidth=65426,t.mem=1502,t.memdagesh=64318,t.memdageshhebrew=64318,t.memhebrew=1502,t.menarmenian=1396,t.merkhahebrew=1445,t.merkhakefulahebrew=1446,t.merkhakefulalefthebrew=1446,t.merkhalefthebrew=1445,t.mhook=625,t.mhzsquare=13202,t.middledotkatakanahalfwidth=65381,t.middot=183,t.mieumacirclekorean=12914,t.mieumaparenkorean=12818,t.mieumcirclekorean=12900,t.mieumkorean=12609,t.mieumpansioskorean=12656,t.mieumparenkorean=12804,t.mieumpieupkorean=12654,t.mieumsioskorean=12655,t.mihiragana=12415,t.mikatakana=12511,t.mikatakanahalfwidth=65424,t.minus=8722,t.minusbelowcmb=800,t.minuscircle=8854,t.minusmod=727,t.minusplus=8723,t.minute=8242,t.miribaarusquare=13130,t.mirisquare=13129,t.mlonglegturned=624,t.mlsquare=13206,t.mmcubedsquare=13219,t.mmonospace=65357,t.mmsquaredsquare=13215,t.mohiragana=12418,t.mohmsquare=13249,t.mokatakana=12514,t.mokatakanahalfwidth=65427,t.molsquare=13270,t.momathai=3617,t.moverssquare=13223,t.moverssquaredsquare=13224,t.mparen=9384,t.mpasquare=13227,t.mssquare=13235,t.msuperior=63215,t.mturned=623,t.mu=181,t.mu1=181,t.muasquare=13186,t.muchgreater=8811,t.muchless=8810,t.mufsquare=13196,t.mugreek=956,t.mugsquare=13197,t.muhiragana=12416,t.mukatakana=12512,t.mukatakanahalfwidth=65425,t.mulsquare=13205,t.multiply=215,t.mumsquare=13211,t.munahhebrew=1443,t.munahlefthebrew=1443,t.musicalnote=9834,t.musicalnotedbl=9835,t.musicflatsign=9837,t.musicsharpsign=9839,t.mussquare=13234,t.muvsquare=13238,t.muwsquare=13244,t.mvmegasquare=13241,t.mvsquare=13239,t.mwmegasquare=13247,t.mwsquare=13245,t.n=110,t.nabengali=2472,t.nabla=8711,t.nacute=324,t.nadeva=2344,t.nagujarati=2728,t.nagurmukhi=2600,t.nahiragana=12394,t.nakatakana=12490,t.nakatakanahalfwidth=65413,t.napostrophe=329,t.nasquare=13185,t.nbopomofo=12555,t.nbspace=160,t.ncaron=328,t.ncedilla=326,t.ncircle=9437,t.ncircumflexbelow=7755,t.ncommaaccent=326,t.ndotaccent=7749,t.ndotbelow=7751,t.nehiragana=12397,t.nekatakana=12493,t.nekatakanahalfwidth=65416,t.newsheqelsign=8362,t.nfsquare=13195,t.ngabengali=2457,t.ngadeva=2329,t.ngagujarati=2713,t.ngagurmukhi=2585,t.ngonguthai=3591,t.nhiragana=12435,t.nhookleft=626,t.nhookretroflex=627,t.nieunacirclekorean=12911,t.nieunaparenkorean=12815,t.nieuncieuckorean=12597,t.nieuncirclekorean=12897,t.nieunhieuhkorean=12598,t.nieunkorean=12596,t.nieunpansioskorean=12648,t.nieunparenkorean=12801,t.nieunsioskorean=12647,t.nieuntikeutkorean=12646,t.nihiragana=12395,t.nikatakana=12491,t.nikatakanahalfwidth=65414,t.nikhahitleftthai=63641,t.nikhahitthai=3661,t.nine=57,t.ninearabic=1641,t.ninebengali=2543,t.ninecircle=9320,t.ninecircleinversesansserif=10130,t.ninedeva=2415,t.ninegujarati=2799,t.ninegurmukhi=2671,t.ninehackarabic=1641,t.ninehangzhou=12329,t.nineideographicparen=12840,t.nineinferior=8329,t.ninemonospace=65305,t.nineoldstyle=63289,t.nineparen=9340,t.nineperiod=9360,t.ninepersian=1785,t.nineroman=8568,t.ninesuperior=8313,t.nineteencircle=9330,t.nineteenparen=9350,t.nineteenperiod=9370,t.ninethai=3673,t.nj=460,t.njecyrillic=1114,t.nkatakana=12531,t.nkatakanahalfwidth=65437,t.nlegrightlong=414,t.nlinebelow=7753,t.nmonospace=65358,t.nmsquare=13210,t.nnabengali=2467,t.nnadeva=2339,t.nnagujarati=2723,t.nnagurmukhi=2595,t.nnnadeva=2345,t.nohiragana=12398,t.nokatakana=12494,t.nokatakanahalfwidth=65417,t.nonbreakingspace=160,t.nonenthai=3603,t.nonuthai=3609,t.noonarabic=1606,t.noonfinalarabic=65254,t.noonghunnaarabic=1722,t.noonghunnafinalarabic=64415,t.nooninitialarabic=65255,t.noonjeeminitialarabic=64722,t.noonjeemisolatedarabic=64587,t.noonmedialarabic=65256,t.noonmeeminitialarabic=64725,t.noonmeemisolatedarabic=64590,t.noonnoonfinalarabic=64653,t.notcontains=8716,t.notelement=8713,t.notelementof=8713,t.notequal=8800,t.notgreater=8815,t.notgreaternorequal=8817,t.notgreaternorless=8825,t.notidentical=8802,t.notless=8814,t.notlessnorequal=8816,t.notparallel=8742,t.notprecedes=8832,t.notsubset=8836,t.notsucceeds=8833,t.notsuperset=8837,t.nowarmenian=1398,t.nparen=9385,t.nssquare=13233,t.nsuperior=8319,t.ntilde=241,t.nu=957,t.nuhiragana=12396,t.nukatakana=12492,t.nukatakanahalfwidth=65415,t.nuktabengali=2492,t.nuktadeva=2364,t.nuktagujarati=2748,t.nuktagurmukhi=2620,t.numbersign=35,t.numbersignmonospace=65283,t.numbersignsmall=65119,t.numeralsigngreek=884,t.numeralsignlowergreek=885,t.numero=8470,t.nun=1504,t.nundagesh=64320,t.nundageshhebrew=64320,t.nunhebrew=1504,t.nvsquare=13237,t.nwsquare=13243,t.nyabengali=2462,t.nyadeva=2334,t.nyagujarati=2718,t.nyagurmukhi=2590,t.o=111,t.oacute=243,t.oangthai=3629,t.obarred=629,t.obarredcyrillic=1257,t.obarreddieresiscyrillic=1259,t.obengali=2451,t.obopomofo=12571,t.obreve=335,t.ocandradeva=2321,t.ocandragujarati=2705,t.ocandravowelsigndeva=2377,t.ocandravowelsigngujarati=2761,t.ocaron=466,t.ocircle=9438,t.ocircumflex=244,t.ocircumflexacute=7889,t.ocircumflexdotbelow=7897,t.ocircumflexgrave=7891,t.ocircumflexhookabove=7893,t.ocircumflextilde=7895,t.ocyrillic=1086,t.odblacute=337,t.odblgrave=525,t.odeva=2323,t.odieresis=246,t.odieresiscyrillic=1255,t.odotbelow=7885,t.oe=339,t.oekorean=12634,t.ogonek=731,t.ogonekcmb=808,t.ograve=242,t.ogujarati=2707,t.oharmenian=1413,t.ohiragana=12362,t.ohookabove=7887,t.ohorn=417,t.ohornacute=7899,t.ohorndotbelow=7907,t.ohorngrave=7901,t.ohornhookabove=7903,t.ohorntilde=7905,t.ohungarumlaut=337,t.oi=419,t.oinvertedbreve=527,t.okatakana=12458,t.okatakanahalfwidth=65397,t.okorean=12631,t.olehebrew=1451,t.omacron=333,t.omacronacute=7763,t.omacrongrave=7761,t.omdeva=2384,t.omega=969,t.omega1=982,t.omegacyrillic=1121,t.omegalatinclosed=631,t.omegaroundcyrillic=1147,t.omegatitlocyrillic=1149,t.omegatonos=974,t.omgujarati=2768,t.omicron=959,t.omicrontonos=972,t.omonospace=65359,t.one=49,t.onearabic=1633,t.onebengali=2535,t.onecircle=9312,t.onecircleinversesansserif=10122,t.onedeva=2407,t.onedotenleader=8228,t.oneeighth=8539,t.onefitted=63196,t.onegujarati=2791,t.onegurmukhi=2663,t.onehackarabic=1633,t.onehalf=189,t.onehangzhou=12321,t.oneideographicparen=12832,t.oneinferior=8321,t.onemonospace=65297,t.onenumeratorbengali=2548,t.oneoldstyle=63281,t.oneparen=9332,t.oneperiod=9352,t.onepersian=1777,t.onequarter=188,t.oneroman=8560,t.onesuperior=185,t.onethai=3665,t.onethird=8531,t.oogonek=491,t.oogonekmacron=493,t.oogurmukhi=2579,t.oomatragurmukhi=2635,t.oopen=596,t.oparen=9386,t.openbullet=9702,t.option=8997,t.ordfeminine=170,t.ordmasculine=186,t.orthogonal=8735,t.oshortdeva=2322,t.oshortvowelsigndeva=2378,t.oslash=248,t.oslashacute=511,t.osmallhiragana=12361,t.osmallkatakana=12457,t.osmallkatakanahalfwidth=65387,t.ostrokeacute=511,t.osuperior=63216,t.otcyrillic=1151,t.otilde=245,t.otildeacute=7757,t.otildedieresis=7759,t.oubopomofo=12577,t.overline=8254,t.overlinecenterline=65098,t.overlinecmb=773,t.overlinedashed=65097,t.overlinedblwavy=65100,t.overlinewavy=65099,t.overscore=175,t.ovowelsignbengali=2507,t.ovowelsigndeva=2379,t.ovowelsigngujarati=2763,t.p=112,t.paampssquare=13184,t.paasentosquare=13099,t.pabengali=2474,t.pacute=7765,t.padeva=2346,t.pagedown=8671,t.pageup=8670,t.pagujarati=2730,t.pagurmukhi=2602,t.pahiragana=12401,t.paiyannoithai=3631,t.pakatakana=12497,t.palatalizationcyrilliccmb=1156,t.palochkacyrillic=1216,t.pansioskorean=12671,t.paragraph=182,t.parallel=8741,t.parenleft=40,t.parenleftaltonearabic=64830,t.parenleftbt=63725,t.parenleftex=63724,t.parenleftinferior=8333,t.parenleftmonospace=65288,t.parenleftsmall=65113,t.parenleftsuperior=8317,t.parenlefttp=63723,t.parenleftvertical=65077,t.parenright=41,t.parenrightaltonearabic=64831,t.parenrightbt=63736,t.parenrightex=63735,t.parenrightinferior=8334,t.parenrightmonospace=65289,t.parenrightsmall=65114,t.parenrightsuperior=8318,t.parenrighttp=63734,t.parenrightvertical=65078,t.partialdiff=8706,t.paseqhebrew=1472,t.pashtahebrew=1433,t.pasquare=13225,t.patah=1463,t.patah11=1463,t.patah1d=1463,t.patah2a=1463,t.patahhebrew=1463,t.patahnarrowhebrew=1463,t.patahquarterhebrew=1463,t.patahwidehebrew=1463,t.pazerhebrew=1441,t.pbopomofo=12550,t.pcircle=9439,t.pdotaccent=7767,t.pe=1508,t.pecyrillic=1087,t.pedagesh=64324,t.pedageshhebrew=64324,t.peezisquare=13115,t.pefinaldageshhebrew=64323,t.peharabic=1662,t.peharmenian=1402,t.pehebrew=1508,t.pehfinalarabic=64343,t.pehinitialarabic=64344,t.pehiragana=12410,t.pehmedialarabic=64345,t.pekatakana=12506,t.pemiddlehookcyrillic=1191,t.perafehebrew=64334,t.percent=37,t.percentarabic=1642,t.percentmonospace=65285,t.percentsmall=65130,t.period=46,t.periodarmenian=1417,t.periodcentered=183,t.periodhalfwidth=65377,t.periodinferior=63207,t.periodmonospace=65294,t.periodsmall=65106,t.periodsuperior=63208,t.perispomenigreekcmb=834,t.perpendicular=8869,t.perthousand=8240,t.peseta=8359,t.pfsquare=13194,t.phabengali=2475,t.phadeva=2347,t.phagujarati=2731,t.phagurmukhi=2603,t.phi=966,t.phi1=981,t.phieuphacirclekorean=12922,t.phieuphaparenkorean=12826,t.phieuphcirclekorean=12908,t.phieuphkorean=12621,t.phieuphparenkorean=12812,t.philatin=632,t.phinthuthai=3642,t.phisymbolgreek=981,t.phook=421,t.phophanthai=3614,t.phophungthai=3612,t.phosamphaothai=3616,t.pi=960,t.pieupacirclekorean=12915,t.pieupaparenkorean=12819,t.pieupcieuckorean=12662,t.pieupcirclekorean=12901,t.pieupkiyeokkorean=12658,t.pieupkorean=12610,t.pieupparenkorean=12805,t.pieupsioskiyeokkorean=12660,t.pieupsioskorean=12612,t.pieupsiostikeutkorean=12661,t.pieupthieuthkorean=12663,t.pieuptikeutkorean=12659,t.pihiragana=12404,t.pikatakana=12500,t.pisymbolgreek=982,t.piwrarmenian=1411,t.planckover2pi=8463,t.planckover2pi1=8463,t.plus=43,t.plusbelowcmb=799,t.pluscircle=8853,t.plusminus=177,t.plusmod=726,t.plusmonospace=65291,t.plussmall=65122,t.plussuperior=8314,t.pmonospace=65360,t.pmsquare=13272,t.pohiragana=12413,t.pointingindexdownwhite=9759,t.pointingindexleftwhite=9756,t.pointingindexrightwhite=9758,t.pointingindexupwhite=9757,t.pokatakana=12509,t.poplathai=3611,t.postalmark=12306,t.postalmarkface=12320,t.pparen=9387,t.precedes=8826,t.prescription=8478,t.primemod=697,t.primereversed=8245,t.product=8719,t.projective=8965,t.prolongedkana=12540,t.propellor=8984,t.propersubset=8834,t.propersuperset=8835,t.proportion=8759,t.proportional=8733,t.psi=968,t.psicyrillic=1137,t.psilipneumatacyrilliccmb=1158,t.pssquare=13232,t.puhiragana=12407,t.pukatakana=12503,t.pvsquare=13236,t.pwsquare=13242,t.q=113,t.qadeva=2392,t.qadmahebrew=1448,t.qafarabic=1602,t.qaffinalarabic=65238,t.qafinitialarabic=65239,t.qafmedialarabic=65240,t.qamats=1464,t.qamats10=1464,t.qamats1a=1464,t.qamats1c=1464,t.qamats27=1464,t.qamats29=1464,t.qamats33=1464,t.qamatsde=1464,t.qamatshebrew=1464,t.qamatsnarrowhebrew=1464,t.qamatsqatanhebrew=1464,t.qamatsqatannarrowhebrew=1464,t.qamatsqatanquarterhebrew=1464,t.qamatsqatanwidehebrew=1464,t.qamatsquarterhebrew=1464,t.qamatswidehebrew=1464,t.qarneyparahebrew=1439,t.qbopomofo=12561,t.qcircle=9440,t.qhook=672,t.qmonospace=65361,t.qof=1511,t.qofdagesh=64327,t.qofdageshhebrew=64327,t.qofhebrew=1511,t.qparen=9388,t.quarternote=9833,t.qubuts=1467,t.qubuts18=1467,t.qubuts25=1467,t.qubuts31=1467,t.qubutshebrew=1467,t.qubutsnarrowhebrew=1467,t.qubutsquarterhebrew=1467,t.qubutswidehebrew=1467,t.question=63,t.questionarabic=1567,t.questionarmenian=1374,t.questiondown=191,t.questiondownsmall=63423,t.questiongreek=894,t.questionmonospace=65311,t.questionsmall=63295,t.quotedbl=34,t.quotedblbase=8222,t.quotedblleft=8220,t.quotedblmonospace=65282,t.quotedblprime=12318,t.quotedblprimereversed=12317,t.quotedblright=8221,t.quoteleft=8216,t.quoteleftreversed=8219,t.quotereversed=8219,t.quoteright=8217,t.quoterightn=329,t.quotesinglbase=8218,t.quotesingle=39,t.quotesinglemonospace=65287,t.r=114,t.raarmenian=1404,t.rabengali=2480,t.racute=341,t.radeva=2352,t.radical=8730,t.radicalex=63717,t.radoverssquare=13230,t.radoverssquaredsquare=13231,t.radsquare=13229,t.rafe=1471,t.rafehebrew=1471,t.ragujarati=2736,t.ragurmukhi=2608,t.rahiragana=12425,t.rakatakana=12521,t.rakatakanahalfwidth=65431,t.ralowerdiagonalbengali=2545,t.ramiddlediagonalbengali=2544,t.ramshorn=612,t.ratio=8758,t.rbopomofo=12566,t.rcaron=345,t.rcedilla=343,t.rcircle=9441,t.rcommaaccent=343,t.rdblgrave=529,t.rdotaccent=7769,t.rdotbelow=7771,t.rdotbelowmacron=7773,t.referencemark=8251,t.reflexsubset=8838,t.reflexsuperset=8839,t.registered=174,t.registersans=63720,t.registerserif=63194,t.reharabic=1585,t.reharmenian=1408,t.rehfinalarabic=65198,t.rehiragana=12428,t.rekatakana=12524;t.rekatakanahalfwidth=65434,t.resh=1512,t.reshdageshhebrew=64328,t.reshhebrew=1512,t.reversedtilde=8765,t.reviahebrew=1431,t.reviamugrashhebrew=1431,t.revlogicalnot=8976,t.rfishhook=638,t.rfishhookreversed=639,t.rhabengali=2525,t.rhadeva=2397,t.rho=961,t.rhook=637,t.rhookturned=635,t.rhookturnedsuperior=693,t.rhosymbolgreek=1009,t.rhotichookmod=734,t.rieulacirclekorean=12913,t.rieulaparenkorean=12817,t.rieulcirclekorean=12899,t.rieulhieuhkorean=12608,t.rieulkiyeokkorean=12602,t.rieulkiyeoksioskorean=12649,t.rieulkorean=12601,t.rieulmieumkorean=12603,t.rieulpansioskorean=12652,t.rieulparenkorean=12803,t.rieulphieuphkorean=12607,t.rieulpieupkorean=12604,t.rieulpieupsioskorean=12651,t.rieulsioskorean=12605,t.rieulthieuthkorean=12606,t.rieultikeutkorean=12650,t.rieulyeorinhieuhkorean=12653,t.rightangle=8735,t.righttackbelowcmb=793,t.righttriangle=8895,t.rihiragana=12426,t.rikatakana=12522,t.rikatakanahalfwidth=65432,t.ring=730,t.ringbelowcmb=805,t.ringcmb=778,t.ringhalfleft=703,t.ringhalfleftarmenian=1369,t.ringhalfleftbelowcmb=796,t.ringhalfleftcentered=723,t.ringhalfright=702,t.ringhalfrightbelowcmb=825,t.ringhalfrightcentered=722,t.rinvertedbreve=531,t.rittorusquare=13137,t.rlinebelow=7775,t.rlongleg=636,t.rlonglegturned=634,t.rmonospace=65362,t.rohiragana=12429,t.rokatakana=12525,t.rokatakanahalfwidth=65435,t.roruathai=3619,t.rparen=9389,t.rrabengali=2524,t.rradeva=2353,t.rragurmukhi=2652,t.rreharabic=1681,t.rrehfinalarabic=64397,t.rrvocalicbengali=2528,t.rrvocalicdeva=2400,t.rrvocalicgujarati=2784,t.rrvocalicvowelsignbengali=2500,t.rrvocalicvowelsigndeva=2372,t.rrvocalicvowelsigngujarati=2756,t.rsuperior=63217,t.rtblock=9616,t.rturned=633,t.rturnedsuperior=692,t.ruhiragana=12427,t.rukatakana=12523,t.rukatakanahalfwidth=65433,t.rupeemarkbengali=2546,t.rupeesignbengali=2547,t.rupiah=63197,t.ruthai=3620,t.rvocalicbengali=2443,t.rvocalicdeva=2315,t.rvocalicgujarati=2699,t.rvocalicvowelsignbengali=2499,t.rvocalicvowelsigndeva=2371,t.rvocalicvowelsigngujarati=2755,t.s=115,t.sabengali=2488,t.sacute=347,t.sacutedotaccent=7781,t.sadarabic=1589,t.sadeva=2360,t.sadfinalarabic=65210,t.sadinitialarabic=65211,t.sadmedialarabic=65212,t.sagujarati=2744,t.sagurmukhi=2616,t.sahiragana=12373,t.sakatakana=12469,t.sakatakanahalfwidth=65403,t.sallallahoualayhewasallamarabic=65018,t.samekh=1505,t.samekhdagesh=64321,t.samekhdageshhebrew=64321,t.samekhhebrew=1505,t.saraaathai=3634,t.saraaethai=3649,t.saraaimaimalaithai=3652,t.saraaimaimuanthai=3651,t.saraamthai=3635,t.saraathai=3632,t.saraethai=3648,t.saraiileftthai=63622,t.saraiithai=3637,t.saraileftthai=63621,t.saraithai=3636,t.saraothai=3650,t.saraueeleftthai=63624,t.saraueethai=3639,t.saraueleftthai=63623,t.sarauethai=3638,t.sarauthai=3640,t.sarauuthai=3641,t.sbopomofo=12569,t.scaron=353,t.scarondotaccent=7783,t.scedilla=351,t.schwa=601,t.schwacyrillic=1241,t.schwadieresiscyrillic=1243,t.schwahook=602,t.scircle=9442,t.scircumflex=349,t.scommaaccent=537,t.sdotaccent=7777,t.sdotbelow=7779,t.sdotbelowdotaccent=7785,t.seagullbelowcmb=828,t.second=8243,t.secondtonechinese=714,t.section=167,t.seenarabic=1587,t.seenfinalarabic=65202,t.seeninitialarabic=65203,t.seenmedialarabic=65204,t.segol=1462,t.segol13=1462,t.segol1f=1462,t.segol2c=1462,t.segolhebrew=1462,t.segolnarrowhebrew=1462,t.segolquarterhebrew=1462,t.segoltahebrew=1426,t.segolwidehebrew=1462,t.seharmenian=1405,t.sehiragana=12379,t.sekatakana=12475,t.sekatakanahalfwidth=65406,t.semicolon=59,t.semicolonarabic=1563,t.semicolonmonospace=65307,t.semicolonsmall=65108,t.semivoicedmarkkana=12444,t.semivoicedmarkkanahalfwidth=65439,t.sentisquare=13090,t.sentosquare=13091,t.seven=55,t.sevenarabic=1639,t.sevenbengali=2541,t.sevencircle=9318,t.sevencircleinversesansserif=10128,t.sevendeva=2413,t.seveneighths=8542,t.sevengujarati=2797,t.sevengurmukhi=2669,t.sevenhackarabic=1639,t.sevenhangzhou=12327,t.sevenideographicparen=12838,t.seveninferior=8327,t.sevenmonospace=65303,t.sevenoldstyle=63287,t.sevenparen=9338,t.sevenperiod=9358,t.sevenpersian=1783,t.sevenroman=8566,t.sevensuperior=8311,t.seventeencircle=9328,t.seventeenparen=9348,t.seventeenperiod=9368,t.seventhai=3671,t.sfthyphen=173,t.shaarmenian=1399,t.shabengali=2486,t.shacyrillic=1096,t.shaddaarabic=1617,t.shaddadammaarabic=64609,t.shaddadammatanarabic=64606,t.shaddafathaarabic=64608,t.shaddakasraarabic=64610,t.shaddakasratanarabic=64607,t.shade=9618,t.shadedark=9619,t.shadelight=9617,t.shademedium=9618,t.shadeva=2358,t.shagujarati=2742,t.shagurmukhi=2614,t.shalshelethebrew=1427,t.shbopomofo=12565,t.shchacyrillic=1097,t.sheenarabic=1588,t.sheenfinalarabic=65206,t.sheeninitialarabic=65207,t.sheenmedialarabic=65208,t.sheicoptic=995,t.sheqel=8362,t.sheqelhebrew=8362,t.sheva=1456,t.sheva115=1456,t.sheva15=1456,t.sheva22=1456,t.sheva2e=1456,t.shevahebrew=1456,t.shevanarrowhebrew=1456,t.shevaquarterhebrew=1456,t.shevawidehebrew=1456,t.shhacyrillic=1211,t.shimacoptic=1005,t.shin=1513,t.shindagesh=64329,t.shindageshhebrew=64329,t.shindageshshindot=64300,t.shindageshshindothebrew=64300,t.shindageshsindot=64301,t.shindageshsindothebrew=64301,t.shindothebrew=1473,t.shinhebrew=1513,t.shinshindot=64298,t.shinshindothebrew=64298,t.shinsindot=64299,t.shinsindothebrew=64299,t.shook=642,t.sigma=963,t.sigma1=962,t.sigmafinal=962,t.sigmalunatesymbolgreek=1010,t.sihiragana=12375,t.sikatakana=12471,t.sikatakanahalfwidth=65404,t.siluqhebrew=1469,t.siluqlefthebrew=1469,t.similar=8764,t.sindothebrew=1474,t.siosacirclekorean=12916,t.siosaparenkorean=12820,t.sioscieuckorean=12670,t.sioscirclekorean=12902,t.sioskiyeokkorean=12666,t.sioskorean=12613,t.siosnieunkorean=12667,t.siosparenkorean=12806,t.siospieupkorean=12669,t.siostikeutkorean=12668,t.six=54,t.sixarabic=1638,t.sixbengali=2540,t.sixcircle=9317,t.sixcircleinversesansserif=10127,t.sixdeva=2412,t.sixgujarati=2796,t.sixgurmukhi=2668,t.sixhackarabic=1638,t.sixhangzhou=12326,t.sixideographicparen=12837,t.sixinferior=8326,t.sixmonospace=65302,t.sixoldstyle=63286,t.sixparen=9337,t.sixperiod=9357,t.sixpersian=1782,t.sixroman=8565,t.sixsuperior=8310,t.sixteencircle=9327,t.sixteencurrencydenominatorbengali=2553,t.sixteenparen=9347,t.sixteenperiod=9367,t.sixthai=3670,t.slash=47,t.slashmonospace=65295,t.slong=383,t.slongdotaccent=7835,t.smileface=9786,t.smonospace=65363,t.sofpasuqhebrew=1475,t.softhyphen=173,t.softsigncyrillic=1100,t.sohiragana=12381,t.sokatakana=12477,t.sokatakanahalfwidth=65407,t.soliduslongoverlaycmb=824,t.solidusshortoverlaycmb=823,t.sorusithai=3625,t.sosalathai=3624,t.sosothai=3595,t.sosuathai=3626,t.space=32,t.spacehackarabic=32,t.spade=9824,t.spadesuitblack=9824,t.spadesuitwhite=9828,t.sparen=9390,t.squarebelowcmb=827,t.squarecc=13252,t.squarecm=13213,t.squarediagonalcrosshatchfill=9641,t.squarehorizontalfill=9636,t.squarekg=13199,t.squarekm=13214,t.squarekmcapital=13262,t.squareln=13265,t.squarelog=13266,t.squaremg=13198,t.squaremil=13269,t.squaremm=13212,t.squaremsquared=13217,t.squareorthogonalcrosshatchfill=9638,t.squareupperlefttolowerrightfill=9639,t.squareupperrighttolowerleftfill=9640,t.squareverticalfill=9637,t.squarewhitewithsmallblack=9635,t.srsquare=13275,t.ssabengali=2487,t.ssadeva=2359,t.ssagujarati=2743,t.ssangcieuckorean=12617,t.ssanghieuhkorean=12677,t.ssangieungkorean=12672,t.ssangkiyeokkorean=12594,t.ssangnieunkorean=12645,t.ssangpieupkorean=12611,t.ssangsioskorean=12614,t.ssangtikeutkorean=12600,t.ssuperior=63218,t.sterling=163,t.sterlingmonospace=65505,t.strokelongoverlaycmb=822,t.strokeshortoverlaycmb=821,t.subset=8834,t.subsetnotequal=8842,t.subsetorequal=8838,t.succeeds=8827,t.suchthat=8715,t.suhiragana=12377,t.sukatakana=12473,t.sukatakanahalfwidth=65405,t.sukunarabic=1618,t.summation=8721,t.sun=9788,t.superset=8835,t.supersetnotequal=8843,t.supersetorequal=8839,t.svsquare=13276,t.syouwaerasquare=13180,t.t=116,t.tabengali=2468,t.tackdown=8868,t.tackleft=8867,t.tadeva=2340,t.tagujarati=2724,t.tagurmukhi=2596,t.taharabic=1591,t.tahfinalarabic=65218,t.tahinitialarabic=65219,t.tahiragana=12383,t.tahmedialarabic=65220,t.taisyouerasquare=13181,t.takatakana=12479,t.takatakanahalfwidth=65408,t.tatweelarabic=1600,t.tau=964,t.tav=1514,t.tavdages=64330,t.tavdagesh=64330,t.tavdageshhebrew=64330,t.tavhebrew=1514,t.tbar=359,t.tbopomofo=12554,t.tcaron=357,t.tccurl=680,t.tcedilla=355,t.tcheharabic=1670,t.tchehfinalarabic=64379,t.tchehinitialarabic=64380,t.tchehmedialarabic=64381,t.tcircle=9443,t.tcircumflexbelow=7793,t.tcommaaccent=355,t.tdieresis=7831,t.tdotaccent=7787,t.tdotbelow=7789,t.tecyrillic=1090,t.tedescendercyrillic=1197,t.teharabic=1578,t.tehfinalarabic=65174,t.tehhahinitialarabic=64674,t.tehhahisolatedarabic=64524,t.tehinitialarabic=65175,t.tehiragana=12390,t.tehjeeminitialarabic=64673,t.tehjeemisolatedarabic=64523,t.tehmarbutaarabic=1577,t.tehmarbutafinalarabic=65172,t.tehmedialarabic=65176,t.tehmeeminitialarabic=64676,t.tehmeemisolatedarabic=64526,t.tehnoonfinalarabic=64627,t.tekatakana=12486,t.tekatakanahalfwidth=65411,t.telephone=8481,t.telephoneblack=9742,t.telishagedolahebrew=1440,t.telishaqetanahebrew=1449,t.tencircle=9321,t.tenideographicparen=12841,t.tenparen=9341,t.tenperiod=9361,t.tenroman=8569,t.tesh=679,t.tet=1496,t.tetdagesh=64312,t.tetdageshhebrew=64312,t.tethebrew=1496,t.tetsecyrillic=1205,t.tevirhebrew=1435,t.tevirlefthebrew=1435,t.thabengali=2469,t.thadeva=2341,t.thagujarati=2725,t.thagurmukhi=2597,t.thalarabic=1584,t.thalfinalarabic=65196,t.thanthakhatlowleftthai=63640,t.thanthakhatlowrightthai=63639,t.thanthakhatthai=3660,t.thanthakhatupperleftthai=63638,t.theharabic=1579,t.thehfinalarabic=65178,t.thehinitialarabic=65179,t.thehmedialarabic=65180,t.thereexists=8707,t.therefore=8756,t.theta=952,t.theta1=977,t.thetasymbolgreek=977,t.thieuthacirclekorean=12921,t.thieuthaparenkorean=12825,t.thieuthcirclekorean=12907,t.thieuthkorean=12620,t.thieuthparenkorean=12811,t.thirteencircle=9324,t.thirteenparen=9344,t.thirteenperiod=9364,t.thonangmonthothai=3601,t.thook=429,t.thophuthaothai=3602,t.thorn=254,t.thothahanthai=3607,t.thothanthai=3600,t.thothongthai=3608,t.thothungthai=3606,t.thousandcyrillic=1154,t.thousandsseparatorarabic=1644,t.thousandsseparatorpersian=1644,t.three=51,t.threearabic=1635,t.threebengali=2537,t.threecircle=9314,t.threecircleinversesansserif=10124,t.threedeva=2409,t.threeeighths=8540,t.threegujarati=2793,t.threegurmukhi=2665,t.threehackarabic=1635,t.threehangzhou=12323,t.threeideographicparen=12834,t.threeinferior=8323,t.threemonospace=65299,t.threenumeratorbengali=2550,t.threeoldstyle=63283,t.threeparen=9334,t.threeperiod=9354,t.threepersian=1779,t.threequarters=190,t.threequartersemdash=63198,t.threeroman=8562,t.threesuperior=179,t.threethai=3667,t.thzsquare=13204,t.tihiragana=12385,t.tikatakana=12481,t.tikatakanahalfwidth=65409,t.tikeutacirclekorean=12912,t.tikeutaparenkorean=12816,t.tikeutcirclekorean=12898,t.tikeutkorean=12599,t.tikeutparenkorean=12802,t.tilde=732,t.tildebelowcmb=816,t.tildecmb=771,t.tildecomb=771,t.tildedoublecmb=864,t.tildeoperator=8764,t.tildeoverlaycmb=820,t.tildeverticalcmb=830,t.timescircle=8855,t.tipehahebrew=1430,t.tipehalefthebrew=1430,t.tippigurmukhi=2672,t.titlocyrilliccmb=1155,t.tiwnarmenian=1407,t.tlinebelow=7791,t.tmonospace=65364,t.toarmenian=1385,t.tohiragana=12392,t.tokatakana=12488,t.tokatakanahalfwidth=65412,t.tonebarextrahighmod=741,t.tonebarextralowmod=745,t.tonebarhighmod=742,t.tonebarlowmod=744,t.tonebarmidmod=743,t.tonefive=445,t.tonesix=389,t.tonetwo=424,t.tonos=900,t.tonsquare=13095,t.topatakthai=3599,t.tortoiseshellbracketleft=12308,t.tortoiseshellbracketleftsmall=65117,t.tortoiseshellbracketleftvertical=65081,t.tortoiseshellbracketright=12309,t.tortoiseshellbracketrightsmall=65118,t.tortoiseshellbracketrightvertical=65082,t.totaothai=3605,t.tpalatalhook=427,t.tparen=9391,t.trademark=8482,t.trademarksans=63722,t.trademarkserif=63195,t.tretroflexhook=648,t.triagdn=9660,t.triaglf=9668,t.triagrt=9658,t.triagup=9650,t.ts=678,t.tsadi=1510,t.tsadidagesh=64326,t.tsadidageshhebrew=64326,t.tsadihebrew=1510,t.tsecyrillic=1094,t.tsere=1461,t.tsere12=1461,t.tsere1e=1461,t.tsere2b=1461,t.tserehebrew=1461,t.tserenarrowhebrew=1461,t.tserequarterhebrew=1461,t.tserewidehebrew=1461,t.tshecyrillic=1115,t.tsuperior=63219,t.ttabengali=2463,t.ttadeva=2335,t.ttagujarati=2719,t.ttagurmukhi=2591,t.tteharabic=1657,t.ttehfinalarabic=64359,t.ttehinitialarabic=64360,t.ttehmedialarabic=64361,t.tthabengali=2464,t.tthadeva=2336,t.tthagujarati=2720,t.tthagurmukhi=2592,t.tturned=647,t.tuhiragana=12388,t.tukatakana=12484,t.tukatakanahalfwidth=65410,t.tusmallhiragana=12387,t.tusmallkatakana=12483,t.tusmallkatakanahalfwidth=65391,t.twelvecircle=9323,t.twelveparen=9343,t.twelveperiod=9363,t.twelveroman=8571,t.twentycircle=9331,t.twentyhangzhou=21316,t.twentyparen=9351,t.twentyperiod=9371,t.two=50,t.twoarabic=1634,t.twobengali=2536,t.twocircle=9313,t.twocircleinversesansserif=10123,t.twodeva=2408,t.twodotenleader=8229,t.twodotleader=8229,t.twodotleadervertical=65072,t.twogujarati=2792,t.twogurmukhi=2664,t.twohackarabic=1634,t.twohangzhou=12322,t.twoideographicparen=12833,t.twoinferior=8322,t.twomonospace=65298,t.twonumeratorbengali=2549,t.twooldstyle=63282,t.twoparen=9333,t.twoperiod=9353,t.twopersian=1778,t.tworoman=8561,t.twostroke=443,t.twosuperior=178,t.twothai=3666,t.twothirds=8532,t.u=117,t.uacute=250,t.ubar=649,t.ubengali=2441,t.ubopomofo=12584,t.ubreve=365,t.ucaron=468,t.ucircle=9444,t.ucircumflex=251,t.ucircumflexbelow=7799,t.ucyrillic=1091,t.udattadeva=2385,t.udblacute=369,t.udblgrave=533,t.udeva=2313,t.udieresis=252,t.udieresisacute=472,t.udieresisbelow=7795,t.udieresiscaron=474,t.udieresiscyrillic=1265,t.udieresisgrave=476,t.udieresismacron=470,t.udotbelow=7909,t.ugrave=249,t.ugujarati=2697,t.ugurmukhi=2569,t.uhiragana=12358,t.uhookabove=7911,t.uhorn=432,t.uhornacute=7913,t.uhorndotbelow=7921,t.uhorngrave=7915,t.uhornhookabove=7917,t.uhorntilde=7919,t.uhungarumlaut=369,t.uhungarumlautcyrillic=1267,t.uinvertedbreve=535,t.ukatakana=12454,t.ukatakanahalfwidth=65395,t.ukcyrillic=1145,t.ukorean=12636,t.umacron=363,t.umacroncyrillic=1263,t.umacrondieresis=7803,t.umatragurmukhi=2625,t.umonospace=65365,t.underscore=95,t.underscoredbl=8215,t.underscoremonospace=65343,t.underscorevertical=65075,t.underscorewavy=65103,t.union=8746,t.universal=8704,t.uogonek=371,t.uparen=9392,t.upblock=9600,t.upperdothebrew=1476,t.upsilon=965,t.upsilondieresis=971,t.upsilondieresistonos=944,t.upsilonlatin=650,t.upsilontonos=973,t.uptackbelowcmb=797,t.uptackmod=724,t.uragurmukhi=2675,t.uring=367,t.ushortcyrillic=1118,t.usmallhiragana=12357,t.usmallkatakana=12453,t.usmallkatakanahalfwidth=65385,t.ustraightcyrillic=1199,t.ustraightstrokecyrillic=1201,t.utilde=361,t.utildeacute=7801,t.utildebelow=7797,t.uubengali=2442,t.uudeva=2314,t.uugujarati=2698,t.uugurmukhi=2570,t.uumatragurmukhi=2626,t.uuvowelsignbengali=2498,t.uuvowelsigndeva=2370,t.uuvowelsigngujarati=2754,t.uvowelsignbengali=2497,t.uvowelsigndeva=2369,t.uvowelsigngujarati=2753,t.v=118,t.vadeva=2357,t.vagujarati=2741,t.vagurmukhi=2613,t.vakatakana=12535,t.vav=1493,t.vavdagesh=64309,t.vavdagesh65=64309,t.vavdageshhebrew=64309,t.vavhebrew=1493,t.vavholam=64331,t.vavholamhebrew=64331,t.vavvavhebrew=1520,t.vavyodhebrew=1521,t.vcircle=9445,t.vdotbelow=7807,t.vecyrillic=1074,t.veharabic=1700,t.vehfinalarabic=64363,t.vehinitialarabic=64364,t.vehmedialarabic=64365,t.vekatakana=12537,t.venus=9792,t.verticalbar=124,t.verticallineabovecmb=781,t.verticallinebelowcmb=809,t.verticallinelowmod=716,t.verticallinemod=712,t.vewarmenian=1406,t.vhook=651,t.vikatakana=12536,t.viramabengali=2509,t.viramadeva=2381,t.viramagujarati=2765,t.visargabengali=2435,t.visargadeva=2307,t.visargagujarati=2691,t.vmonospace=65366,t.voarmenian=1400,t.voicediterationhiragana=12446,t.voicediterationkatakana=12542,t.voicedmarkkana=12443,t.voicedmarkkanahalfwidth=65438,t.vokatakana=12538,t.vparen=9393,t.vtilde=7805,t.vturned=652,t.vuhiragana=12436,t.vukatakana=12532,t.w=119,t.wacute=7811,t.waekorean=12633,t.wahiragana=12431,t.wakatakana=12527,t.wakatakanahalfwidth=65436,t.wakorean=12632,t.wasmallhiragana=12430,t.wasmallkatakana=12526,t.wattosquare=13143,t.wavedash=12316,t.wavyunderscorevertical=65076,t.wawarabic=1608,t.wawfinalarabic=65262,t.wawhamzaabovearabic=1572,t.wawhamzaabovefinalarabic=65158,t.wbsquare=13277,t.wcircle=9446,t.wcircumflex=373,t.wdieresis=7813,t.wdotaccent=7815,t.wdotbelow=7817,t.wehiragana=12433,t.weierstrass=8472,t.wekatakana=12529,t.wekorean=12638,t.weokorean=12637,t.wgrave=7809,t.whitebullet=9702,t.whitecircle=9675,t.whitecircleinverse=9689,t.whitecornerbracketleft=12302,t.whitecornerbracketleftvertical=65091,t.whitecornerbracketright=12303,t.whitecornerbracketrightvertical=65092,t.whitediamond=9671,t.whitediamondcontainingblacksmalldiamond=9672,t.whitedownpointingsmalltriangle=9663;t.whitedownpointingtriangle=9661,t.whiteleftpointingsmalltriangle=9667,t.whiteleftpointingtriangle=9665,t.whitelenticularbracketleft=12310,t.whitelenticularbracketright=12311,t.whiterightpointingsmalltriangle=9657,t.whiterightpointingtriangle=9655,t.whitesmallsquare=9643,t.whitesmilingface=9786,t.whitesquare=9633,t.whitestar=9734,t.whitetelephone=9743,t.whitetortoiseshellbracketleft=12312,t.whitetortoiseshellbracketright=12313,t.whiteuppointingsmalltriangle=9653,t.whiteuppointingtriangle=9651,t.wihiragana=12432,t.wikatakana=12528,t.wikorean=12639,t.wmonospace=65367,t.wohiragana=12434,t.wokatakana=12530,t.wokatakanahalfwidth=65382,t.won=8361,t.wonmonospace=65510,t.wowaenthai=3623,t.wparen=9394,t.wring=7832,t.wsuperior=695,t.wturned=653,t.wynn=447,t.x=120,t.xabovecmb=829,t.xbopomofo=12562,t.xcircle=9447,t.xdieresis=7821,t.xdotaccent=7819,t.xeharmenian=1389,t.xi=958,t.xmonospace=65368,t.xparen=9395,t.xsuperior=739,t.y=121,t.yaadosquare=13134,t.yabengali=2479,t.yacute=253,t.yadeva=2351,t.yaekorean=12626,t.yagujarati=2735,t.yagurmukhi=2607,t.yahiragana=12420,t.yakatakana=12516,t.yakatakanahalfwidth=65428,t.yakorean=12625,t.yamakkanthai=3662,t.yasmallhiragana=12419,t.yasmallkatakana=12515,t.yasmallkatakanahalfwidth=65388,t.yatcyrillic=1123,t.ycircle=9448,t.ycircumflex=375,t.ydieresis=255,t.ydotaccent=7823,t.ydotbelow=7925,t.yeharabic=1610,t.yehbarreearabic=1746,t.yehbarreefinalarabic=64431,t.yehfinalarabic=65266,t.yehhamzaabovearabic=1574,t.yehhamzaabovefinalarabic=65162,t.yehhamzaaboveinitialarabic=65163,t.yehhamzaabovemedialarabic=65164,t.yehinitialarabic=65267,t.yehmedialarabic=65268,t.yehmeeminitialarabic=64733,t.yehmeemisolatedarabic=64600,t.yehnoonfinalarabic=64660,t.yehthreedotsbelowarabic=1745,t.yekorean=12630,t.yen=165,t.yenmonospace=65509,t.yeokorean=12629,t.yeorinhieuhkorean=12678,t.yerahbenyomohebrew=1450,t.yerahbenyomolefthebrew=1450,t.yericyrillic=1099,t.yerudieresiscyrillic=1273,t.yesieungkorean=12673,t.yesieungpansioskorean=12675,t.yesieungsioskorean=12674,t.yetivhebrew=1434,t.ygrave=7923,t.yhook=436,t.yhookabove=7927,t.yiarmenian=1397,t.yicyrillic=1111,t.yikorean=12642,t.yinyang=9775,t.yiwnarmenian=1410,t.ymonospace=65369,t.yod=1497,t.yoddagesh=64313,t.yoddageshhebrew=64313,t.yodhebrew=1497,t.yodyodhebrew=1522,t.yodyodpatahhebrew=64287,t.yohiragana=12424,t.yoikorean=12681,t.yokatakana=12520,t.yokatakanahalfwidth=65430,t.yokorean=12635,t.yosmallhiragana=12423,t.yosmallkatakana=12519,t.yosmallkatakanahalfwidth=65390,t.yotgreek=1011,t.yoyaekorean=12680,t.yoyakorean=12679,t.yoyakthai=3618,t.yoyingthai=3597,t.yparen=9396,t.ypogegrammeni=890,t.ypogegrammenigreekcmb=837,t.yr=422,t.yring=7833,t.ysuperior=696,t.ytilde=7929,t.yturned=654,t.yuhiragana=12422,t.yuikorean=12684,t.yukatakana=12518,t.yukatakanahalfwidth=65429,t.yukorean=12640,t.yusbigcyrillic=1131,t.yusbigiotifiedcyrillic=1133,t.yuslittlecyrillic=1127,t.yuslittleiotifiedcyrillic=1129,t.yusmallhiragana=12421,t.yusmallkatakana=12517,t.yusmallkatakanahalfwidth=65389,t.yuyekorean=12683,t.yuyeokorean=12682,t.yyabengali=2527,t.yyadeva=2399,t.z=122,t.zaarmenian=1382,t.zacute=378,t.zadeva=2395,t.zagurmukhi=2651,t.zaharabic=1592,t.zahfinalarabic=65222,t.zahinitialarabic=65223,t.zahiragana=12374,t.zahmedialarabic=65224,t.zainarabic=1586,t.zainfinalarabic=65200,t.zakatakana=12470,t.zaqefgadolhebrew=1429,t.zaqefqatanhebrew=1428,t.zarqahebrew=1432,t.zayin=1494,t.zayindagesh=64310,t.zayindageshhebrew=64310,t.zayinhebrew=1494,t.zbopomofo=12567,t.zcaron=382,t.zcircle=9449,t.zcircumflex=7825,t.zcurl=657,t.zdot=380,t.zdotaccent=380,t.zdotbelow=7827,t.zecyrillic=1079,t.zedescendercyrillic=1177,t.zedieresiscyrillic=1247,t.zehiragana=12380,t.zekatakana=12476,t.zero=48,t.zeroarabic=1632,t.zerobengali=2534,t.zerodeva=2406,t.zerogujarati=2790,t.zerogurmukhi=2662,t.zerohackarabic=1632,t.zeroinferior=8320,t.zeromonospace=65296,t.zerooldstyle=63280,t.zeropersian=1776,t.zerosuperior=8304,t.zerothai=3664,t.zerowidthjoiner=65279,t.zerowidthnonjoiner=8204,t.zerowidthspace=8203,t.zeta=950,t.zhbopomofo=12563,t.zhearmenian=1386,t.zhebrevecyrillic=1218,t.zhecyrillic=1078,t.zhedescendercyrillic=1175,t.zhedieresiscyrillic=1245,t.zihiragana=12376,t.zikatakana=12472,t.zinorhebrew=1454,t.zlinebelow=7829,t.zmonospace=65370,t.zohiragana=12382,t.zokatakana=12478,t.zparen=9397,t.zretroflexhook=656,t.zstroke=438,t.zuhiragana=12378,t.zukatakana=12474,t[".notdef"]=0,t.angbracketleftbig=9001,t.angbracketleftBig=9001,t.angbracketleftbigg=9001,t.angbracketleftBigg=9001,t.angbracketrightBig=9002,t.angbracketrightbig=9002,t.angbracketrightBigg=9002,t.angbracketrightbigg=9002,t.arrowhookleft=8618,t.arrowhookright=8617,t.arrowlefttophalf=8636,t.arrowleftbothalf=8637,t.arrownortheast=8599,t.arrownorthwest=8598,t.arrowrighttophalf=8640,t.arrowrightbothalf=8641,t.arrowsoutheast=8600,t.arrowsouthwest=8601,t.backslashbig=8726,t.backslashBig=8726,t.backslashBigg=8726,t.backslashbigg=8726,t.bardbl=8214,t.bracehtipdownleft=65079,t.bracehtipdownright=65079,t.bracehtipupleft=65080,t.bracehtipupright=65080,t.braceleftBig=123,t.braceleftbig=123,t.braceleftbigg=123,t.braceleftBigg=123,t.bracerightBig=125,t.bracerightbig=125,t.bracerightbigg=125,t.bracerightBigg=125,t.bracketleftbig=91,t.bracketleftBig=91,t.bracketleftbigg=91,t.bracketleftBigg=91,t.bracketrightBig=93,t.bracketrightbig=93,t.bracketrightbigg=93,t.bracketrightBigg=93,t.ceilingleftbig=8968,t.ceilingleftBig=8968,t.ceilingleftBigg=8968,t.ceilingleftbigg=8968,t.ceilingrightbig=8969,t.ceilingrightBig=8969,t.ceilingrightbigg=8969,t.ceilingrightBigg=8969,t.circledotdisplay=8857,t.circledottext=8857,t.circlemultiplydisplay=8855,t.circlemultiplytext=8855,t.circleplusdisplay=8853,t.circleplustext=8853,t.contintegraldisplay=8750,t.contintegraltext=8750,t.coproductdisplay=8720,t.coproducttext=8720,t.floorleftBig=8970,t.floorleftbig=8970,t.floorleftbigg=8970,t.floorleftBigg=8970,t.floorrightbig=8971,t.floorrightBig=8971,t.floorrightBigg=8971,t.floorrightbigg=8971,t.hatwide=770,t.hatwider=770,t.hatwidest=770,t.intercal=7488,t.integraldisplay=8747,t.integraltext=8747,t.intersectiondisplay=8898,t.intersectiontext=8898,t.logicalanddisplay=8743,t.logicalandtext=8743,t.logicalordisplay=8744,t.logicalortext=8744,t.parenleftBig=40,t.parenleftbig=40,t.parenleftBigg=40,t.parenleftbigg=40,t.parenrightBig=41,t.parenrightbig=41,t.parenrightBigg=41,t.parenrightbigg=41,t.prime=8242,t.productdisplay=8719,t.producttext=8719,t.radicalbig=8730,t.radicalBig=8730,t.radicalBigg=8730,t.radicalbigg=8730,t.radicalbt=8730,t.radicaltp=8730,t.radicalvertex=8730,t.slashbig=47,t.slashBig=47,t.slashBigg=47,t.slashbigg=47,t.summationdisplay=8721,t.summationtext=8721,t.tildewide=732,t.tildewider=732,t.tildewidest=732,t.uniondisplay=8899,t.unionmultidisplay=8846,t.unionmultitext=8846,t.unionsqdisplay=8852,t.unionsqtext=8852,t.uniontext=8899,t.vextenddouble=8741,t.vextendsingle=8739}),getDingbatsGlyphsUnicode=getLookupTableFactory(function(t){t.space=32,t.a1=9985,t.a2=9986,t.a202=9987,t.a3=9988,t.a4=9742,t.a5=9990,t.a119=9991,t.a118=9992,t.a117=9993,t.a11=9755,t.a12=9758,t.a13=9996,t.a14=9997,t.a15=9998,t.a16=9999,t.a105=1e4,t.a17=10001,t.a18=10002,t.a19=10003,t.a20=10004,t.a21=10005,t.a22=10006,t.a23=10007,t.a24=10008,t.a25=10009,t.a26=10010,t.a27=10011,t.a28=10012,t.a6=10013,t.a7=10014,t.a8=10015,t.a9=10016,t.a10=10017,t.a29=10018,t.a30=10019,t.a31=10020,t.a32=10021,t.a33=10022,t.a34=10023,t.a35=9733,t.a36=10025,t.a37=10026,t.a38=10027,t.a39=10028,t.a40=10029,t.a41=10030,t.a42=10031,t.a43=10032,t.a44=10033,t.a45=10034,t.a46=10035,t.a47=10036,t.a48=10037,t.a49=10038,t.a50=10039,t.a51=10040,t.a52=10041,t.a53=10042,t.a54=10043,t.a55=10044,t.a56=10045,t.a57=10046,t.a58=10047,t.a59=10048,t.a60=10049,t.a61=10050,t.a62=10051,t.a63=10052,t.a64=10053,t.a65=10054,t.a66=10055,t.a67=10056,t.a68=10057,t.a69=10058,t.a70=10059,t.a71=9679,t.a72=10061,t.a73=9632,t.a74=10063,t.a203=10064,t.a75=10065,t.a204=10066,t.a76=9650,t.a77=9660,t.a78=9670,t.a79=10070,t.a81=9687,t.a82=10072,t.a83=10073,t.a84=10074,t.a97=10075,t.a98=10076,t.a99=10077,t.a100=10078,t.a101=10081,t.a102=10082,t.a103=10083,t.a104=10084,t.a106=10085,t.a107=10086,t.a108=10087,t.a112=9827,t.a111=9830,t.a110=9829,t.a109=9824,t.a120=9312,t.a121=9313,t.a122=9314,t.a123=9315,t.a124=9316,t.a125=9317,t.a126=9318,t.a127=9319,t.a128=9320,t.a129=9321,t.a130=10102,t.a131=10103,t.a132=10104,t.a133=10105,t.a134=10106,t.a135=10107,t.a136=10108,t.a137=10109,t.a138=10110,t.a139=10111,t.a140=10112,t.a141=10113,t.a142=10114,t.a143=10115,t.a144=10116,t.a145=10117,t.a146=10118,t.a147=10119,t.a148=10120,t.a149=10121,t.a150=10122,t.a151=10123,t.a152=10124,t.a153=10125,t.a154=10126,t.a155=10127,t.a156=10128,t.a157=10129,t.a158=10130,t.a159=10131,t.a160=10132,t.a161=8594,t.a163=8596,t.a164=8597,t.a196=10136,t.a165=10137,t.a192=10138,t.a166=10139,t.a167=10140,t.a168=10141,t.a169=10142,t.a170=10143,t.a171=10144,t.a172=10145,t.a173=10146,t.a162=10147,t.a174=10148,t.a175=10149,t.a176=10150,t.a177=10151,t.a178=10152,t.a179=10153,t.a193=10154,t.a180=10155,t.a199=10156,t.a181=10157,t.a200=10158,t.a182=10159,t.a201=10161,t.a183=10162,t.a184=10163,t.a197=10164,t.a185=10165,t.a194=10166,t.a198=10167,t.a186=10168,t.a195=10169,t.a187=10170,t.a188=10171,t.a189=10172,t.a190=10173,t.a191=10174,t.a89=10088,t.a90=10089,t.a93=10090,t.a94=10091,t.a91=10092,t.a92=10093,t.a205=10094,t.a85=10095,t.a206=10096,t.a86=10097,t.a87=10098,t.a88=10099,t.a95=10100,t.a96=10101,t[".notdef"]=0}),getSpecialPUASymbols=getLookupTableFactory(function(t){t[63721]=169,t[63193]=169,t[63720]=174,t[63194]=174,t[63722]=8482,t[63195]=8482,t[63729]=9127,t[63730]=9128,t[63731]=9129,t[63740]=9131,t[63741]=9132,t[63742]=9133,t[63726]=9121,t[63727]=9122,t[63728]=9123,t[63737]=9124,t[63738]=9125,t[63739]=9126,t[63723]=9115,t[63724]=9116,t[63725]=9117,t[63734]=9118,t[63735]=9119,t[63736]=9120});function mapSpecialUnicodeValues(code){return 65520<=code&&code<=65535?0:62976<=code&&code<=63743?getSpecialPUASymbols()[code]||code:173===code?45:code}function getUnicodeForGlyph(name,glyphsUnicodeMap){glyphsUnicodeMap=glyphsUnicodeMap[name];if(void 0!==glyphsUnicodeMap)return glyphsUnicodeMap;if(name&&"u"===name[0]){var hexStr,nameLen=name.length;if(7===nameLen&&"n"===name[1]&&"i"===name[2])hexStr=name.substring(3);else{if(!(5<=nameLen&&nameLen<=7))return-1;hexStr=name.substring(1)}if(hexStr===hexStr.toUpperCase()&&0<=(glyphsUnicodeMap=parseInt(hexStr,16)))return glyphsUnicodeMap}return-1}var UnicodeRanges=[[0,127],[128,255],[256,383],[384,591],[592,687,7424,7551,7552,7615],[688,767,42752,42783],[768,879,7616,7679],[880,1023],[11392,11519],[1024,1279,1280,1327,11744,11775,42560,42655],[1328,1423],[1424,1535],[42240,42559],[1536,1791,1872,1919],[1984,2047],[2304,2431],[2432,2559],[2560,2687],[2688,2815],[2816,2943],[2944,3071],[3072,3199],[3200,3327],[3328,3455],[3584,3711],[3712,3839],[4256,4351,11520,11567],[6912,7039],[4352,4607],[7680,7935,11360,11391,42784,43007],[7936,8191],[8192,8303,11776,11903],[8304,8351],[8352,8399],[8400,8447],[8448,8527],[8528,8591],[8592,8703,10224,10239,10496,10623,11008,11263],[8704,8959,10752,11007,10176,10223,10624,10751],[8960,9215],[9216,9279],[9280,9311],[9312,9471],[9472,9599],[9600,9631],[9632,9727],[9728,9983],[9984,10175],[12288,12351],[12352,12447],[12448,12543,12784,12799],[12544,12591,12704,12735],[12592,12687],[43072,43135],[12800,13055],[13056,13311],[44032,55215],[55296,57343],[67840,67871],[19968,40959,11904,12031,12032,12255,12272,12287,13312,19903,131072,173791,12688,12703],[57344,63743],[12736,12783,63744,64255,194560,195103],[64256,64335],[64336,65023],[65056,65071],[65040,65055],[65104,65135],[65136,65279],[65280,65519],[65520,65535],[3840,4095],[1792,1871],[1920,1983],[3456,3583],[4096,4255],[4608,4991,4992,5023,11648,11743],[5024,5119],[5120,5759],[5760,5791],[5792,5887],[6016,6143],[6144,6319],[10240,10495],[40960,42127],[5888,5919,5920,5951,5952,5983,5984,6015],[66304,66351],[66352,66383],[66560,66639],[118784,119039,119040,119295,119296,119375],[119808,120831],[1044480,1048573],[65024,65039,917760,917999],[917504,917631],[6400,6479],[6480,6527],[6528,6623],[6656,6687],[11264,11359],[11568,11647],[19904,19967],[43008,43055],[65536,65663,65664,65791,65792,65855],[65856,65935],[66432,66463],[66464,66527],[66640,66687],[66688,66735],[67584,67647],[68096,68191],[119552,119647],[73728,74751,74752,74879],[119648,119679],[7040,7103],[7168,7247],[7248,7295],[43136,43231],[43264,43311],[43312,43359],[43520,43615],[65936,65999],[66e3,66047],[66208,66271,66176,66207,67872,67903],[127024,127135,126976,127023]];function getUnicodeRangeFor(value){var lastPosition=1=range[i]&&value<=range[i+1])return lastPosition;for(var _i22=0,_ii6=UnicodeRanges.length;_i22<_ii6;_i22++)for(var _range=UnicodeRanges[_i22],j=0,jj=_range.length;j=_range[j]&&value<=_range[j+1])return _i22;return-1}var SpecialCharRegExp=new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$","u"),CategoryCache=new Map;function getCharUnicodeCategory(char){var cachedCategory=CategoryCache.get(char);return cachedCategory||(cachedCategory={isWhitespace:!(null==(cachedCategory=char.match(SpecialCharRegExp))||!cachedCategory[1]),isZeroWidthDiacritic:!(null==cachedCategory||!cachedCategory[2]),isInvisibleFormatMark:!(null==cachedCategory||!cachedCategory[3])},CategoryCache.set(char,cachedCategory),cachedCategory)}function clearUnicodeCaches(){CategoryCache.clear()}var SEAC_ANALYSIS_ENABLED=!0,FontFlags={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144},MacStandardGlyphOrdering=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function recoverGlyphName(name,glyphsUnicodeMap){if(void 0===glyphsUnicodeMap[name]){var unicode=getUnicodeForGlyph(name,glyphsUnicodeMap);if(-1!==unicode)for(var key in glyphsUnicodeMap)if(glyphsUnicodeMap[key]===unicode)return key;info("Unable to recover a standard glyph name for: "+name)}return name}function type1FontGlyphMapping(properties,builtInEncoding,glyphNames){var charCode,baseEncoding,charCodeToGlyphId=Object.create(null),isSymbolicFont=!!(properties.flags&FontFlags.Symbolic);if(properties.isInternalFont)for(baseEncoding=builtInEncoding,charCode=0;charCode{t[8211]=65074,t[8212]=65073,t[8229]=65072,t[8230]=65049,t[12289]=65041,t[12290]=65042,t[12296]=65087,t[12297]=65088,t[12298]=65085,t[12299]=65086,t[12300]=65089,t[12301]=65090,t[12302]=65091,t[12303]=65092,t[12304]=65083,t[12305]=65084,t[12308]=65081,t[12309]=65082,t[12310]=65047,t[12311]=65048,t[65103]=65076,t[65281]=65045,t[65288]=65077,t[65289]=65078,t[65292]=65040,t[65306]=65043,t[65307]=65044,t[65311]=65046,t[65339]=65095,t[65341]=65096,t[65343]=65075,t[65371]=65079,t[65373]=65080}),MAX_SIZE_TO_COMPILE=1e3;function compileType3Glyph(_ref14){var{data:_ref14,width,height}=_ref14;if(MAX_SIZE_TO_COMPILE>=1;var count=0;for(0!==data[pos=0]&&(points[0]=1,++count),j=1;j>2)+(data[pos+1]?4:0)+(data[pos-lineSize+1]?8:0)]&&(points[j0+j]=POINT_TYPES[sum],++count),pos++;if(data[pos-lineSize]!==data[pos]&&(points[j0+j]=data[pos]?2:4,++count),1e3>4)>>2|type<<2,pathBuf.push(DrawOPS.lineTo,a*(x=p%width1)+c*(y=p/width1|0)+e,b*x+d*y+f),points[p]||--count,p0!==p);--i}}return[OPS.rawFillPath,[new Float32Array(pathBuf)],new Float32Array([0,0,width,height])]}var es_iterator_to_array=__webpack_require__(1806),ISOAdobeCharset=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],ExpertCharset=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],ExpertSubsetCharset=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"],MAX_SUBR_NESTING=10,CFFStandardStrings=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],NUM_STANDARD_CFF_STRINGS=391,CharstringValidationData=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],CharstringValidationData12=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]+stack[index-1]}},{id:"sub",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]-stack[index-1]}},{id:"div",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]/stack[index-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn(stack,index){stack[index-1]=-stack[index-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]*stack[index-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];class CFFParser{constructor(file,properties,seacAnalysisEnabled){this.bytes=file.getBytes(),this.properties=properties,this.seacAnalysisEnabled=!!seacAnalysisEnabled}parse(){var charset,encoding,properties=this.properties,cff=new CFF,header=(this.cff=cff,this.parseHeader()),nameIndex=this.parseIndex(header.endPos),topDictIndex=this.parseIndex(nameIndex.endPos),stringIndex=this.parseIndex(topDictIndex.endPos),globalSubrIndex=this.parseIndex(stringIndex.endPos),topDictIndex=this.parseDict(topDictIndex.obj.get(0)),topDictIndex=this.createDict(CFFTopDict,topDictIndex,cff.strings),header=(cff.header=header.obj,cff.names=this.parseNameIndex(nameIndex.obj),cff.strings=this.parseStringIndex(stringIndex.obj),cff.topDict=topDictIndex,cff.globalSubrIndex=globalSubrIndex.obj,this.parsePrivateDict(cff.topDict),cff.isCIDFont=topDictIndex.hasName("ROS"),topDictIndex.getByName("CharStrings")),nameIndex=this.parseIndex(header).obj,stringIndex=topDictIndex.getByName("FontMatrix"),header=(stringIndex&&(properties.fontMatrix=stringIndex),topDictIndex.getByName("FontBBox"));if(header&&(properties.ascent=Math.max(header[3],header[1]),properties.descent=Math.min(header[1],header[3]),properties.ascentScaled=!0),cff.isCIDFont){for(var fdArrayIndex=this.parseIndex(topDictIndex.getByName("FDArray")).obj,i=0,ii=fdArrayIndex.count;i>4,b=15&b;if(15==b1)break;if(str+=lookup[b1],15==b)break;str+=lookup[b]}return parseFloat(str)}for(var operands=[],entries=[],pos=0,end=dict.length;posMAX_SUBR_NESTING)return!1;for(var stackSize=state.stackSize,stack=state.stack,length=data.length,j=0;j>1,0===state.hints){data.copyWithin(j-1,j,-1),--j,--length;continue}j+=state.hints+7>>3,stackSize%=2,validationCommand=CharstringValidationData[value]}else{if(10===value||29===value){q=10===value?localSubrIndex:globalSubrIndex;if(!q)return warn("Missing subrsIndex for "+(validationCommand=CharstringValidationData[value]).id),!1;var bias=32768,bias=(q.count<1240?bias=107:q.count<33900&&(bias=1131),stack[--stackSize]+bias);if(bias<0||bias>=q.count||isNaN(bias))return warn("Out of bounds subrIndex for "+(validationCommand=CharstringValidationData[value]).id),!1;if(state.stackSize=stackSize,state.callDepth++,!this.parseCharString(state,q.get(bias),localSubrIndex,globalSubrIndex))return!1;state.callDepth--,stackSize=state.stackSize;continue}if(11===value)return state.stackSize=stackSize,!0;if(0===value&&j===data.length)data[j-1]=14,validationCommand=CharstringValidationData[14];else{if(9===value){data.copyWithin(j-1,j,-1),--j,--length;continue}validationCommand=CharstringValidationData[value]}}if(validationCommand){if(validationCommand.stem&&(state.hints+=stackSize>>1,3===value||23===value?state.hasVStems=!0:!state.hasVStems||1!==value&&18!==value||(warn("CFF stem hints are in wrong order"),data[j-1]=1===value?3:23)),"min"in validationCommand&&!state.undefStack&&stackSize=fdArray.length&&(warn("Invalid fd index for glyph index."),valid=!1),valid&&(localSubrToUse=(privateDictToUse=fdArray[fdIndex].privateDict).subrsIndex)):localSubrIndex&&(localSubrToUse=localSubrIndex),valid=valid&&this.parseCharString(state,charstring,localSubrToUse,globalSubrIndex),null!==state.width?(fdIndex=privateDictToUse.getByName("nominalWidthX"),widths[i]=fdIndex+state.width):(charstring=privateDictToUse.getByName("defaultWidthX"),widths[i]=charstring),null!==state.seac&&(seacs[i]=state.seac),valid||charStrings.set(i,new Uint8Array([14]))}return{charStrings:charStrings,seacs:seacs,widths:widths}}emptyPrivateDictionary(parentDict){var privateDict=this.createDict(CFFPrivateDict,[],parentDict.strings);parentDict.setByKey(18,[0,0]),parentDict.privateDict=privateDict}parsePrivateDict(parentDict){var size,relativeOffset,privateOffset;parentDict.hasName("Private")?(privateOffset=parentDict.getByName("Private"),Array.isArray(privateOffset)&&2===privateOffset.length?(size=privateOffset[0],privateOffset=privateOffset[1],0===size||privateOffset>=this.bytes.length?this.emptyPrivateDictionary(parentDict):(size=this.bytes.subarray(privateOffset,privateOffset+size),size=this.parseDict(size),size=this.createDict(CFFPrivateDict,size,parentDict.strings),0===(parentDict.privateDict=size).getByName("ExpansionFactor")&&size.setByName("ExpansionFactor",.06),size.getByName("Subrs")&&(relativeOffset=privateOffset+(privateOffset=size.getByName("Subrs")),0===privateOffset||relativeOffset>=this.bytes.length?this.emptyPrivateDictionary(parentDict):(privateOffset=this.parseIndex(relativeOffset),size.subrsIndex=privateOffset.obj)))):parentDict.removeByName("Private")):this.emptyPrivateDictionary(parentDict)}parseCharsets(pos,length,strings,cid){if(0===pos)return new CFFCharset(!0,CFFCharsetPredefinedTypes.ISO_ADOBE,ISOAdobeCharset);if(1===pos)return new CFFCharset(!0,CFFCharsetPredefinedTypes.EXPERT,ExpertCharset);if(2===pos)return new CFFCharset(!0,CFFCharsetPredefinedTypes.EXPERT_SUBSET,ExpertSubsetCharset);var id,count,i,bytes=this.bytes,start=pos,format=bytes[pos++],charset=[cid?0:".notdef"];switch(--length,format){case 0:for(i=0;i=this.charStrings.count)&&0=this.fdSelect.length?-1:this.fdSelect[glyphIndex]}}class CFFOffsetTracker{constructor(){this.offsets=Object.create(null)}isTracking(key){return key in this.offsets}track(key,location){if(key in this.offsets)throw new FormatError("Already tracking location of ".concat(key));this.offsets[key]=location}offset(value){for(var key in this.offsets)this.offsets[key]+=value}setEntryLocation(key,values,output){if(!(key in this.offsets))throw new FormatError("Not tracking location of ".concat(key));for(var data=output.data,dataOffset=this.offsets[key],i=0,ii=values.length;i>24&255,data[offset2]=value>>16&255,data[offset3]=value>>8&255,data[offset4]=255&value}}}class CFFCompiler{constructor(cff){this.cff=cff}compile(){var cff=this.cff,output={data:[],length:0,add(data){try{this.data.push(...data)}catch(_unused7){this.data=this.data.concat(data)}this.length=this.data.length}},header=this.compileHeader(cff.header),header=(output.add(header),this.compileNameIndex(cff.names));if(output.add(header),cff.isCIDFont&&cff.topDict.hasName("FontMatrix")){var subDict,base=cff.topDict.getByName("FontMatrix");cff.topDict.removeByName("FontMatrix");for(subDict of cff.fdArray){var matrix=base.slice(0);subDict.hasName("FontMatrix")&&(matrix=Util.transform(matrix,subDict.getByName("FontMatrix"))),subDict.setByName("FontMatrix",matrix)}}var header=cff.topDict.getByName("XUID"),header=(16<(null==header?void 0:header.length)&&cff.topDict.removeByName("XUID"),cff.topDict.setByName("charset",0),this.compileTopDicts([cff.topDict],output.length,cff.isCIDFont)),topDictTracker=(output.add(header.output),header.trackers[0]),stringIndex=this.compileStringIndex(cff.strings.strings),stringIndex=(output.add(stringIndex),this.compileIndex(cff.globalSubrIndex)),stringIndex=(output.add(stringIndex),cff.encoding&&cff.topDict.hasName("Encoding")&&(cff.encoding.predefined?topDictTracker.setEntryLocation("Encoding",[cff.encoding.format],output):(stringIndex=this.compileEncoding(cff.encoding),topDictTracker.setEntryLocation("Encoding",[output.length],output),output.add(stringIndex))),this.compileCharset(cff.charset,cff.charStrings.count,cff.strings,cff.isCIDFont)),stringIndex=(topDictTracker.setEntryLocation("charset",[output.length],output),output.add(stringIndex),this.compileCharStrings(cff.charStrings));return topDictTracker.setEntryLocation("CharStrings",[output.length],output),output.add(stringIndex),cff.isCIDFont&&(topDictTracker.setEntryLocation("FDSelect",[output.length],output),stringIndex=this.compileFDSelect(cff.fdSelect),output.add(stringIndex),header=this.compileTopDicts(cff.fdArray,output.length,!0),topDictTracker.setEntryLocation("FDArray",[output.length],output),output.add(header.output),stringIndex=header.trackers,this.compilePrivateDicts(cff.fdArray,stringIndex,output)),this.compilePrivateDicts([cff.topDict],[topDictTracker],output),output.add([0]),output.data}encodeNumber(value){return Number.isInteger(value)?this.encodeInteger(value):this.encodeFloat(value)}static get EncodeFloatRegExp(){return shadow(this,"EncodeFloatRegExp",/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/)}encodeFloat(num){for(var value=num.toString(),m=CFFCompiler.EncodeFloatRegExp.exec(value),nibbles=(m&&(m=parseFloat("1e"+((m[2]?+m[2]:0)+m[1].length)),value=(Math.round(num*m)/m).toString()),""),i=0,ii=value.length;i>8),255&value]:-1131<=value&&value<=-108?[251+((value=-value-108)>>8),255&value]:-32768<=value&&value<=32767?[28,value>>8&255,255&value]:[29,value>>24&255,value>>16&255,value>>8&255,255&value];return value}compileHeader(header){return[header.major,header.minor,4,header.offSize]}compileNameIndex(names){var name,nameIndex=new CFFIndex;for(name of names){for(var length=Math.min(name.length,127),sanitizedName=new Array(length),j=0;j"===char||"/"===char||"%"===char)&&(char="_"),sanitizedName[j]=char}""===(sanitizedName=sanitizedName.join(""))&&(sanitizedName="Bad_Font_Name"),nameIndex.add(stringToBytes(sanitizedName))}return this.compileIndex(nameIndex)}compileTopDicts(dicts,length,removeCidKeys){var fontDict,fontDictTrackers=[],fdArrayIndex=new CFFIndex;for(fontDict of dicts){removeCidKeys&&(fontDict.removeByName("CIDFontVersion"),fontDict.removeByName("CIDFontRevision"),fontDict.removeByName("CIDFontType"),fontDict.removeByName("CIDCount"),fontDict.removeByName("UIDBase"));var fontDictTracker=new CFFOffsetTracker,fontDictData=this.compileDict(fontDict,fontDictTracker);fontDictTrackers.push(fontDictTracker),fdArrayIndex.add(fontDictData),fontDictTracker.offset(length)}return{trackers:fontDictTrackers,output:fdArrayIndex=this.compileIndex(fdArrayIndex,fontDictTrackers)}}compilePrivateDicts(dicts,trackers,output){for(var i=0,ii=dicts.length;i>8&255,255&isCIDFont]);else for(var charsetIndex=(out=new Uint8Array(1+2*numGlyphs))[0]=0,numCharsets=charset.charset.length,warned=!1,i=1;i>8&255,out[i+1]=255&sid}return this.compileTypedArray(out)}compileEncoding(encoding){return this.compileTypedArray(encoding.raw)}compileFDSelect(fdSelect){var out,format=fdSelect.format;switch(format){case 0:for((out=new Uint8Array(1+fdSelect.fdSelect.length))[0]=format,i=0;i>8&255,255&i,currentFD),lastFD=currentFD)}var numRanges=(ranges.length-3)/3;ranges[1]=numRanges>>8&255,ranges[2]=255&numRanges,ranges.push(i>>8&255,255&i),out=new Uint8Array(ranges)}return this.compileTypedArray(out)}compileTypedArray(data){return Array.from(data)}compileIndex(index){var trackers=1>8&255,255&count],lastOffset=1,i=0;i>8&255,255&relativeOffset):3===offsetSize?data.push(relativeOffset>>16&255,relativeOffset>>8&255,255&relativeOffset):data.push(relativeOffset>>>24&255,relativeOffset>>16&255,relativeOffset>>8&255,255&relativeOffset),objects[i]&&(relativeOffset+=objects[i].length);for(i=0;i=this.firstChar&&v<=this.lastChar?v:-1}amend(map){unreachable("Should not call amend()")}}class CFFFont{constructor(file,properties){this.properties=properties;var parser=new CFFParser(file,properties,SEAC_ANALYSIS_ENABLED),parser=(this.cff=parser.parse(),this.cff.duplicateFirstGlyph(),new CFFCompiler(this.cff));this.seacs=this.cff.seacs;try{this.data=parser.compile()}catch(_unused8){warn("Failed to compile font "+properties.loadedName),this.data=file}this._createBuiltInEncoding()}get numGlyphs(){return this.cff.charStrings.count}getCharset(){return this.cff.charset.charset}getGlyphMapping(){var glyphId,cff=this.cff,properties=this.properties,{cidToGidMap,cMap}=properties,charsets=cff.charset.charset;if(properties.composite){if(0<(null==cidToGidMap?void 0:cidToGidMap.length))for(var invCidToGidMap=Object.create(null),i=0,ii=cidToGidMap.length;i>1,p=start+offset+14,ranges=[],i=0;i2*readUint16(data,offset)),glyphs=[],startOffset=itemDecode(loca,0),j=itemSize;j>1;code>1,stackClean=!0;break;case 4:y+=stack.pop(),moveTo(x,y),stackClean=!0;break;case 5:for(;0Math.abs(y-y0)?x+=stack.shift():y+=stack.shift(),bezierCurveTo(xa,ya,xb,yb,x,y);break;default:throw new FormatError("unknown operator: 12 ".concat(v))}break;case 14:return void(4<=stack.length&&(_fontDict$privateDict=stack.pop(),fdIndex=stack.pop(),y=stack.pop(),x=stack.pop(),cmds.save(),cmds.translate(x,y),subrs=lookupCmap(font.cmap,String.fromCharCode(font.glyphNameMap[StandardEncoding[_fontDict$privateDict]])),compileCharString(font.glyphs[subrs.glyphId],cmds,font,subrs.glyphId),cmds.restore(),subrs=lookupCmap(font.cmap,String.fromCharCode(font.glyphNameMap[StandardEncoding[fdIndex]])),compileCharString(font.glyphs[subrs.glyphId],cmds,font,subrs.glyphId)));case 18:stems+=stack.length>>1,stackClean=!0;break;case 19:case 20:i+=(stems+=stack.length>>1)+7>>3,stackClean=!0;break;case 21:y+=stack.pop(),moveTo(x+=stack.pop(),y),stackClean=!0;break;case 22:moveTo(x+=stack.pop(),y),stackClean=!0;break;case 23:stems+=stack.length>>1,stackClean=!0;break;case 24:for(;2g.getSize()+3&-4))}write(){var glyph,totalSize=this.getSize(),glyfTable=new DataView(new ArrayBuffer(totalSize)),isLocationLong=131070>1);return{isLocationLong:isLocationLong,loca:new Uint8Array(locaTable.buffer),glyf:new Uint8Array(glyfTable.buffer)}}scale(factors){for(var i=0,ii=this.glyphs.length;ic.getSize())),this.header.getSize()+size):0}write(pos,buf){if(!this.header)return 0;var spos=pos;if(pos+=this.header.write(pos,buf),this.simple)pos+=this.simple.write(pos,buf);else for(var composite of this.composites)pos+=composite.write(pos,buf);return pos-spos}scale(factor){if(this.header){var xMiddle=(this.header.xMin+this.header.xMax)/2;if(this.header.scale(xMiddle,factor),this.simple)this.simple.scale(xMiddle,factor);else for(var composite of this.composites)composite.scale(xMiddle,factor)}}}class GlyphHeader{constructor(_ref18){var{numberOfContours:_ref18,xMin,yMin,xMax,yMax}=_ref18;this.numberOfContours=_ref18,this.xMin=xMin,this.yMin=yMin,this.xMax=xMax,this.yMax=yMax}static parse(pos,glyf){return[10,new GlyphHeader({numberOfContours:glyf.getInt16(pos),xMin:glyf.getInt16(pos+2),yMin:glyf.getInt16(pos+4),xMax:glyf.getInt16(pos+6),yMax:glyf.getInt16(pos+8)})]}getSize(){return 10}write(pos,buf){return buf.setInt16(pos,this.numberOfContours),buf.setInt16(pos+2,this.xMin),buf.setInt16(pos+4,this.yMin),buf.setInt16(pos+6,this.xMax),buf.setInt16(pos+8,this.yMax),10}scale(x,factor){this.xMin=Math.round(x+(this.xMin-x)*factor),this.xMax=Math.round(x+(this.xMax-x)*factor)}}class Contour{constructor(_ref19){var{flags:_ref19,xCoordinates,yCoordinates}=_ref19;this.xCoordinates=xCoordinates,this.yCoordinates=yCoordinates,this.flags=_ref19}}class SimpleGlyph{constructor(_ref20){var{contours:_ref20,instructions}=_ref20;this.contours=_ref20,this.instructions=instructions}static parse(pos,glyf,numberOfContours){for(var endPtsOfContours=[],i=0;i>8&255,dest[offset+1]=255&num}function writeInt32(dest,offset,num){dest[offset]=num>>24&255,dest[offset+1]=num>>16&255,dest[offset+2]=num>>8&255,dest[offset+3]=255&num}function writeData(dest,offset,data){if(data instanceof Uint8Array)dest.set(data,offset);else if("string"==typeof data)for(var i=0,ii=data.length;i>>0;tableOffsets.push(offset+=paddedLength)}var file=new Uint8Array(offset);for(i=0;i>>0;writeInt32(file,offset+4,checksum),writeInt32(file,offset+8,tableOffsets[i]),writeInt32(file,offset+12,tables[tableName].length),offset+=OTF_TABLE_ENTRY_SIZE}return file}addTable(tag,data){if(tag in this.tables)throw new Error("Table "+tag+" already exists");this.tables[tag]=data}}var HINTING_ENABLED=!1,COMMAND_MAP={hstem:[1],vstem:[3],vmoveto:[4],rlineto:[5],hlineto:[6],vlineto:[7],rrcurveto:[8],callsubr:[10],flex:[12,35],drop:[12,18],endchar:[14],rmoveto:[21],hmoveto:[22],vhcurveto:[30],hvcurveto:[31]};class Type1CharString{constructor(){this.width=0,this.lsb=0,this.flexing=!1,this.output=[],this.stack=[]}convert(encoded,subrs,seacAnalysisEnabled){for(var count=encoded.length,error=!1,i=0;i>8&255,255&value):this.output.push(255,(value=65536*value|0)>>24&255,value>>16&255,value>>8&255,255&value)}return this.output.push(...command),keepStack?this.stack.splice(start,howManyArgs):this.stack.length=0,!1}}var EEXEC_ENCRYPT_KEY=55665,CHAR_STRS_ENCRYPT_KEY=4330;function isHexDigit(code){return 48<=code&&code<=57||65<=code&&code<=70||97<=code&&code<=102}function decrypt(data,key,discardNumber){if(discardNumber>=data.length)return new Uint8Array(0);for(var j,r=0|key,i=0;i>8,r=52845*(value+r)+22719&65535}return decrypted}function decryptAscii(data,key,discardNumber){for(var r=0|key,count=data.length,decrypted=new Uint8Array(count>>>1),i=0,j=0;i>8,r=52845*(digit1+r)+22719&65535)}}return decrypted.slice(discardNumber,j)}function isSpecial(c){return 47===c||91===c||93===c||123===c||125===c||40===c||41===c}class Type1Parser{constructor(stream,encrypted,seacAnalysisEnabled){var isBinary;encrypted&&(isBinary=!((isHexDigit((encrypted=stream.getBytes())[0])||isWhiteSpace(encrypted[0]))&&isHexDigit(encrypted[1])&&isHexDigit(encrypted[2])&&isHexDigit(encrypted[3])&&isHexDigit(encrypted[4])&&isHexDigit(encrypted[5])&&isHexDigit(encrypted[6])&&isHexDigit(encrypted[7])),stream=new Stream((isBinary?decrypt:decryptAscii)(encrypted,EEXEC_ENCRYPT_KEY,4))),this.seacAnalysisEnabled=!!seacAnalysisEnabled,this.stream=stream,this.nextChar()}readNumberArray(){this.getToken();for(var array=[];;){var token=this.getToken();if(null===token||"]"===token||"}"===token)break;array.push(parseFloat(token||0))}return array}readNumber(){var token=this.getToken();return parseFloat(token||0)}readInt(){var token=this.getToken();return 0|parseInt(token||0,10)}readBoolean(){return"true"===this.getToken()?1:0}nextChar(){return this.currentChar=this.stream.getByte()}prevChar(){return this.stream.skip(-2),this.currentChar=this.stream.getByte()}getToken(){for(var comment=!1,ch=this.currentChar;;){if(-1===ch)return null;if(comment)10!==ch&&13!==ch||(comment=!1);else if(37===ch)comment=!0;else if(!isWhiteSpace(ch))break;ch=this.nextChar()}if(isSpecial(ch))return this.nextChar(),String.fromCharCode(ch);for(var token="";token+=String.fromCharCode(ch),0<=(ch=this.nextChar())&&!isWhiteSpace(ch)&&!isSpecial(ch););return token}readCharStrings(bytes,lenIV){return-1===lenIV?bytes:decrypt(bytes,CHAR_STRS_ENCRYPT_KEY,lenIV)}extractFontProgram(properties){for(var token,glyph,length,data,lenIV,encoded,_encoded2,_glyph,stream=this.stream,subrs=[],charstrings=[],privateData=Object.create(null),program=(privateData.lenIV=4,{subrs:[],charstrings:[],properties:{privateData:privateData}});null!==(token=this.getToken());)if("/"===token)switch(token=this.getToken()){case"CharStrings":for(this.getToken(),this.getToken(),this.getToken(),this.getToken();;){if(null===(token=this.getToken())||"end"===token)break;"/"===token&&(glyph=this.getToken(),length=this.readInt(),this.getToken(),data=0=properties.firstChar&&output<=properties.lastChar&&(properties.widths[output]=charString.width)}return program}extractFontHeader(properties){for(var token;null!==(token=this.getToken());)if("/"===token)switch(token=this.getToken()){case"FontMatrix":var matrix=this.readNumberArray();properties.fontMatrix=matrix;break;case"Encoding":var matrix=this.getToken(),encoding=void 0;if(/^\d+$/.test(matrix)){var encoding=[],size=0|parseInt(matrix,10);this.getToken();for(var j=0;j=this.numGlyphs)&&(0===id||0>>8}function signedInt16(b0,b1){b0=(b0<<8)+b1;return 32768&b0?b0-65536:b0}function writeUint32(bytes,index,value){bytes[index+3]=255&value,bytes[index+2]=value>>>8,bytes[index+1]=value>>>16,bytes[index]=value>>>24}function int32(b0,b1,b2,b3){return(b0<<24)+(b1<<16)+(b2<<8)+b3}function string16(value){return String.fromCharCode(value>>8&255,255&value)}function safeString16(value){return 32767>8&255,255&value)}function isTrueTypeFile(file){file=file.peekBytes(4);return 65536===readUint32(file,0)||"true"===bytesToString(file)}function isTrueTypeCollectionFile(file){return"ttcf"===bytesToString(file.peekBytes(4))}function isOpenTypeFile(file){return"OTTO"===bytesToString(file.peekBytes(4))}function isType1File(file){file=file.peekBytes(2);return 37===file[0]&&33===file[1]||128===file[0]&&1===file[1]}function isCFFFile(file){file=file.peekBytes(4);return 1<=file[0]&&1<=file[3]&&file[3]<=4}function getFontFileType(file,_ref22){var fileType,fileSubtype,{type:_ref22,subtype,composite}=_ref22;return isTrueTypeFile(file)||isTrueTypeCollectionFile(file)?fileType=composite?"CIDFontType2":"TrueType":isOpenTypeFile(file)?fileType=composite?"CIDFontType2":"OpenType":isType1File(file)?fileType=composite?"CIDFontType0":"MMType1"===_ref22?"MMType1":"Type1":fileSubtype=isCFFFile(file)?composite?(fileType="CIDFontType0","CIDFontType0C"):(fileType="MMType1"===_ref22?"MMType1":"Type1","Type1C"):(warn("getFontFileType: Unable to detect correct font file Type/Subtype."),fileType=_ref22,subtype),[fileType,fileSubtype]}function applyStandardFontGlyphMap(map,glyphMap){for(var charCode in glyphMap)map[+charCode]=glyphMap[charCode]}function buildToFontChar(encoding,glyphsUnicodeMap,differences){for(var unicode,charCode,toFontChar=[],i=0,ii=encoding.length;i=PRIVATE_USE_AREAS.length){warn("Ran out of space in font private use area.");break}nextAvailableFontCharCode=PRIVATE_USE_AREAS[privateUseAreaIndex][0],privateUseOffetEnd=PRIVATE_USE_AREAS[privateUseAreaIndex][1]}var fontCharCode=nextAvailableFontCharCode++,unicode=(0===glyphId&&(glyphId=newGlyphZeroId),toUnicode.get(originalCharCode));if("string"==typeof unicode)if(1===unicode.length)unicode=unicode.codePointAt(0);else{if(!LIGATURE_TO_UNICODE)for(var LIGATURE_TO_UNICODE=new Map,i=64256;i<=64335;i++){var normalized=String.fromCharCode(i).normalize("NFKD");1=numGlyphs||codes.push({fontCharCode:0|charCode,glyphId:glyphs[charCode]});if(toUnicodeExtraMap)for(var[unicode,glyphId]of toUnicodeExtraMap)numGlyphs<=glyphId||codes.push({fontCharCode:unicode,glyphId:glyphId});0===codes.length&&codes.push({fontCharCode:0,glyphId:0}),codes.sort((a,b)=>a.fontCharCode-b.fontCharCode);for(var ranges=[],length=codes.length,n=0;n 123 are reserved for internal usage");ulUnicodeRange4|=1</%]/g,"").slice(0,63)}function createNameTable(name,proto){for(var strings=[(proto=proto||[[],[]])[0][0]||"Original licence",proto[0][1]||name,proto[0][2]||"Unknown",proto[0][3]||"uniqueID",proto[0][4]||name,proto[0][5]||"Version 0.11",proto[0][6]||createPostscriptName(name),proto[0][7]||"Unknown",proto[0][8]||"Unknown",proto[0][9]||"Unknown"],stringsUnicode=[],i=0,ii=strings.length;i{var unicode;this.composite||-1!==(unicode=getUnicodeForGlyph(this.differences[charCode]||this.defaultEncoding[charCode],glyphsUnicodeMap))&&(unicodeCharCode=unicode),_map2[+charCode]=unicodeCharCode}),this.composite&&this.toUnicode instanceof IdentityToUnicodeMap&&/Tahoma|Verdana/i.test(name)&&applyStandardFontGlyphMap(_map2,getGlyphMapForStandardFonts()),this.toFontChar=_map2);amendFallbackToUnicode(properties),this.loadedName=fontName.split("-",1)[0]}checkAndRepair(name,font,properties){var VALID_TABLES=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(file,numTables){var tables=Object.create(null);tables["OS/2"]=null,tables.cmap=null,tables.head=null,tables.hhea=null,tables.hmtx=null,tables.maxp=null,tables.name=null,tables.post=null;for(var i=0;i>>0,offset=file.getInt32()>>>0,length=file.getInt32()>>>0,previousPosition=file.pos,data=(file.pos=file.start||0,file.skip(offset),file.getBytes(length));file.pos=previousPosition,"head"===tag&&(data[8]=data[9]=data[10]=data[11]=0,data[17]|=32);return{tag:tag,checksum:checksum,length:length,offset:offset,data:data}}(file);VALID_TABLES.includes(table.tag)&&0!==table.length&&(tables[table.tag]=table)}return tables}function readOpenTypeHeader(ttf){return{version:ttf.getString(4),numTables:ttf.getUint16(),searchRange:ttf.getUint16(),entrySelector:ttf.getUint16(),rangeShift:ttf.getUint16()}}function readTrueTypeCollectionData(ttc,fontName){for(var fallbackData,{numFonts,offsetTable}=function(ttc){for(var ttcTag=ttc.getString(4),majorVersion=(assert("ttcf"===ttcTag,"Must be a TrueType Collection font."),ttc.getUint16()),minorVersion=ttc.getUint16(),numFonts=ttc.getInt32()>>>0,offsetTable=[],i=0;i>>0);var header={ttcTag:ttcTag,majorVersion:majorVersion,minorVersion:minorVersion,numFonts:numFonts,offsetTable:offsetTable};switch(majorVersion){case 1:return header;case 2:return header.dsigTag=ttc.getInt32()>>>0,header.dsigLength=ttc.getInt32()>>>0,header.dsigOffset=ttc.getInt32()>>>0,header}throw new FormatError("Invalid TrueType Collection majorVersion: ".concat(majorVersion,"."))}(ttc),fontNameParts=fontName.split("+"),i=0;i>>24&255,data[offset+1]=value>>16&255,data[offset+2]=value>>8&255,data[offset+3]=255&value}):(itemSize=2,itemDecode=function(data,offset){return data[offset]<<9|data[offset+1]<<1},function(data,offset,value){data[offset]=value>>9&255,data[offset+1]=value>>1&255}),numGlyphsOut=dupFirstEntry?numGlyphs+1:numGlyphs,isGlyphLocationsLong=itemSize*(1+numGlyphsOut),locaData=new Uint8Array(isGlyphLocationsLong),oldGlyfData=(locaData.set(loca.data.subarray(0,isGlyphLocationsLong)),loca.data=locaData,glyf.data),oldGlyfDataLength=oldGlyfData.length,newGlyfData=new Uint8Array(oldGlyfDataLength),locaEntries=[];for(j=i=0;ia.offset-b.offset),i=0;ia.index-b.index),i=0;i=source.length||sourceEnd>source.length||sourceEnd-sourceStart<=12)){var glyf=source.subarray(sourceStart,sourceEnd),source=signedInt16(glyf[2],glyf[3]),sourceStart=signedInt16(glyf[4],glyf[5]),sourceEnd=signedInt16(glyf[6],glyf[7]),yMax=signedInt16(glyf[8],glyf[9]),contoursCount=(sourceEndglyf.length||(!hintsValid&&0maxSizeOfInstructions&&(maxSizeOfInstructions=glyphProfile.sizeOfInstructions),itemEncode(locaData,j,writeOffset+=newLength)}if(0===writeOffset){for(var simpleGlyph=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]),i=0,j=itemSize;iisGlyphLocationsLong+writeOffset?glyf.data=newGlyfData.subarray(0,isGlyphLocationsLong+writeOffset):(glyf.data=new Uint8Array(isGlyphLocationsLong+writeOffset),glyf.data.set(newGlyfData.subarray(0,writeOffset))),glyf.data.set(newGlyfData.subarray(0,isGlyphLocationsLong),writeOffset),itemEncode(loca.data,locaData.length-itemSize,writeOffset+isGlyphLocationsLong)):glyf.data=newGlyfData.subarray(0,writeOffset);return{missingGlyphs:missingGlyphs,maxSizeOfInstructions:maxSizeOfInstructions}}function readNameTable(nameTable){var start=(font.start||0)+nameTable.offset,names=(font.pos=start,[[],[]]),records=[],nameTable=nameTable.length,end=start+nameTable,format=font.getUint16();if(!(0!==format||nameTable<6)){for(var ii,numRecords=font.getUint16(),stringsStart=font.getUint16(),i=0;iend)){font.pos=pos;pos=record.name;if(record.encoding){for(var str="",j=0,jj=record.length;jdata.length&&content.push(new Uint8Array(i-data.length)),lastEndf>8&255,metrics[1+j]=255&advanceWidth,Math.round(scaleFactors[i]*signedInt16(metrics[2+j],metrics[3+j])));writeSignedInt16(metrics,2+j,advanceWidth)}var glyphs=numGlyphs+1,loca=!0,_properties$scaleFact=(65535>8,tables.maxp.data[5]=255&glyphs,function(fpgm,prep,cvt,maxFunctionDefs){var ttContext={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};return fpgm&&sanitizeTTProgram(fpgm,ttContext),prep&&sanitizeTTProgram(prep,ttContext),fpgm&&function(ttContext,maxFunctionDefs){if(!ttContext.tooComplexToFollowFunctions)if(ttContext.functionsDefined.length>maxFunctionDefs)warn("TT: more functions defined than expected"),ttContext.hintsValid=!1;else for(var j=0,jj=ttContext.functionsUsed.length;j>8,header.data[35]=255&file),0<(caretOffset=numGlyphs-file-(metrics.length-4*file>>1))&&((headTable=new Uint8Array(metrics.length+2*caretOffset)).set(metrics.data),dupFirstEntry&&(headTable[metrics.length]=metrics.data[2],headTable[metrics.length+1]=metrics.data[3]),metrics.data=headTable)):metrics&&(metrics.data=null)}(font,tables.hhea,tables.hmtx,tables.head,glyphs,loca),!tables.head)throw new FormatError('Required "head" table is not found');!function(head,numGlyphs,locaLength){var version=int32((head=head.data)[0],head[1],head[2],head[3]);if(version>>16!=1&&(info("Attempting to fix invalid version in head table: "+version),head[0]=0,head[1]=1,head[2]=0,head[3]=0),(version=int16(head[50],head[51]))<0||1>8,tables.maxp.data[27]=255&_isGlyphLocationsLong.maxSizeOfInstructions),!tables.hhea)throw new FormatError('Required "hhea" table is not found');0===tables.hhea.data[10]&&0===tables.hhea.data[11]&&(tables.hhea.data[10]=255,tables.hhea.data[11]=255);var _properties$scaleFact={unitsPerEm:int16(tables.head.data[18],tables.head.data[19]),yMax:signedInt16(tables.head.data[42],tables.head.data[43]),yMin:signedInt16(tables.head.data[38],tables.head.data[39]),ascent:signedInt16(tables.hhea.data[4],tables.hhea.data[5]),descent:signedInt16(tables.hhea.data[6],tables.hhea.data[7]),lineGap:signedInt16(tables.hhea.data[8],tables.hhea.data[9])},charCodeToGlyphId=(this.ascent=_properties$scaleFact.ascent/_properties$scaleFact.unitsPerEm,this.descent=_properties$scaleFact.descent/_properties$scaleFact.unitsPerEm,this.lineGap=_properties$scaleFact.lineGap/_properties$scaleFact.unitsPerEm,null!=(isLocationLong=this.cssFontInfo)&&isLocationLong.lineHeight?(this.lineHeight=this.cssFontInfo.metrics.lineHeight,this.lineGap=this.cssFontInfo.metrics.lineGap):this.lineHeight=this.ascent-this.descent+this.lineGap,tables.post&&!function(post,propertiesObj,maxpNumGlyphs){var glyphNames,start=(font.start||0)+post.offset,end=(font.pos=start)+post.length,version=font.getInt32(),valid=(font.skip(28),!0);switch(version){case 65536:glyphNames=MacStandardGlyphOrdering;break;case 131072:var _numGlyphs=font.getUint16();if(_numGlyphs!==maxpNumGlyphs)valid=!1;else{for(var glyphNameIndexes=[],i=0;i<_numGlyphs;++i){var index=font.getUint16();if(32768<=index){valid=!1;break}glyphNameIndexes.push(index)}if(valid){for(var customNames=[],strBuf=[];font.pos>>0,useTable=!1;if((null==potentialTable?void 0:potentialTable.platformId)!==platformId||(null==potentialTable?void 0:potentialTable.encodingId)!==encodingId)if(0===platformId&&(0===encodingId||1===encodingId||3===encodingId)||1===platformId&&0===encodingId?useTable=!0:3!==platformId||1!==encodingId||!hasEncoding&&potentialTable?isSymbolicFont&&3===platformId&&0===encodingId&&(correctlySorted=useTable=!0,correctlySorted=!(i>3;subHeaderKeys.push(subHeaderKey),maxSubHeaderKey=Math.max(subHeaderKey,maxSubHeaderKey)}for(var subHeaders=[],_i29=0;_i29<=maxSubHeaderKey;_i29++)subHeaders.push({firstCode:file.getUint16(),entryCount:file.getUint16(),idDelta:signedInt16(file.getByte(),file.getByte()),idRangePos:file.pos+file.getUint16()});for(var _i30=0;_i30<256;_i30++)if(0===subHeaderKeys[_i30])file.pos=subHeaders[0].idRangePos+2*_i30,glyphId=file.getUint16(),mappings.push({charCode:_i30,glyphId:glyphId});else for(var s=subHeaders[subHeaderKeys[_i30]],j=0;j>1,segments=(file.skip(6),[]),segIndex=0;segIndex>1)-(segCount-segIndex),offsetsCount=Math.max(offsetsCount,offsetIndex+segment.end-segment.start+1)):segment.offsetIndex=-1}var offsets=[];for(j=0;j>>0;for(j=0;j>>0,endCharCode=file.getInt32()>>>0,glyphCode=file.getInt32()>>>0,_charCode3=startCharCode;_charCode3<=endCharCode;_charCode3++)mappings.push({charCode:_charCode3,glyphId:glyphCode++})}mappings.sort((a,b)=>a.charCode-b.charCode);var map,finalMappings=[],seenCharCodes=new Set;for(map of mappings){var _charCode4=map["charCode"];seenCharCodes.has(_charCode4)||(seenCharCodes.add(_charCode4),finalMappings.push(map))}return{platformId:potentialTable.platformId,encodingId:potentialTable.encodingId,mappings:finalMappings,hasShortCmap:hasShortCmap}}(tables.cmap,font,this.isSymbolicFont,properties.hasEncoding),cmapPlatformId=_properties$cidToGidM.platformId,cmapEncodingId=_properties$cidToGidM.encodingId,cmapMappings=_properties$cidToGidM.mappings,baseEncoding=[],forcePostTable=!1;if(!properties.hasEncoding||"MacRomanEncoding"!==properties.baseEncodingName&&"WinAnsiEncoding"!==properties.baseEncodingName||(baseEncoding=getEncoding(properties.baseEncodingName)),properties.hasEncoding&&!this.isSymbolicFont&&(3===cmapPlatformId&&1===cmapEncodingId||1===cmapPlatformId&&0===cmapEncodingId))for(var glyphsUnicodeMap=getGlyphsUnicode(),charCode=0;charCode<256;charCode++){var glyphName=void 0;if(glyphName=(void 0!==this.differences[charCode]?this.differences:baseEncoding.length&&""!==baseEncoding[charCode]?baseEncoding:StandardEncoding)[charCode]){var mapping,glyphName=recoverGlyphName(glyphName,glyphsUnicodeMap),unicodeOrCharCode=void 0;if(3===cmapPlatformId&&1===cmapEncodingId?unicodeOrCharCode=glyphsUnicodeMap[glyphName]:1===cmapPlatformId&&0===cmapEncodingId&&(unicodeOrCharCode=MacRomanEncoding.indexOf(glyphName)),void 0===unicodeOrCharCode)if(properties.glyphNames||!properties.hasIncludedToUnicodeMap||this.toUnicode instanceof IdentityToUnicodeMap||(glyphName=this.toUnicode.get(charCode))&&(unicodeOrCharCode=glyphName.codePointAt(0)),void 0===unicodeOrCharCode)continue;for(mapping of cmapMappings)if(mapping.charCode===unicodeOrCharCode){charCodeToGlyphId[charCode]=mapping.glyphId;break}}}else if(0===cmapPlatformId){for(var _mapping of cmapMappings)charCodeToGlyphId[_mapping.charCode]=_mapping.glyphId;forcePostTable=!0}else if(3===cmapPlatformId&&0===cmapEncodingId)for(var _mapping2 of cmapMappings){var _charCode5=_mapping2.charCode;61440<=_charCode5&&_charCode5<=61695&&(_charCode5&=255),charCodeToGlyphId[_charCode5]=_mapping2.glyphId}else for(var _mapping3 of cmapMappings)charCodeToGlyphId[_mapping3.charCode]=_mapping3.glyphId;if(properties.glyphNames&&(baseEncoding.length||this.differences.length))for(var _glyphName,_i31=0;_i31<256;++_i31)(forcePostTable||void 0===charCodeToGlyphId[_i31])&&(_glyphName=this.differences[_i31]||baseEncoding[_i31])&&0<(_glyphName=properties.glyphNames.indexOf(_glyphName))&&hasGlyph(_glyphName)&&(charCodeToGlyphId[_i31]=_glyphName)}0===charCodeToGlyphId.length&&(charCodeToGlyphId[0]=0);var _isGlyphLocationsLong=loca?glyphs-1:0;if(properties.cssFontInfo||(isLocationLong=adjustMapping(charCodeToGlyphId,hasGlyph,_isGlyphLocationsLong,this.toUnicode),this.toFontChar=isLocationLong.toFontChar,tables.cmap={tag:"cmap",data:createCmapTable(isLocationLong.charCodeToGlyphId,isLocationLong.toUnicodeExtraMap,glyphs)},tables["OS/2"]&&validateOS2Table(tables["OS/2"],font))||(tables["OS/2"]={tag:"OS/2",data:createOS2Table(properties,isLocationLong.charCodeToGlyphId,_properties$scaleFact)}),!ttcData)try{var cff,cffFile=new Stream(tables["CFF "].data),compiler=((cff=new CFFParser(cffFile,properties,SEAC_ANALYSIS_ENABLED).parse()).duplicateFirstGlyph(),new CFFCompiler(cff));tables["CFF "].data=compiler.compile()}catch(_unused0){warn("Failed to compile font "+properties.loadedName)}tables.name?([_properties$cidToGidM,loca]=readNameTable(tables.name),tables.name.data=createNameTable(name,_properties$cidToGidM),this.psName=_properties$cidToGidM[0][6]||null,properties.composite||adjustTrueTypeToUnicode(properties,this.isSymbolicFont,loca)):tables.name={tag:"name",data:createNameTable(this.name)};var tableTag,builder=new OpenTypeFileBuilder(header.version);for(tableTag in tables)builder.addTable(tableTag,tables[tableTag].data);return builder.toArray()}convert(fontName,font,properties){properties.fixedPitch=!1,properties.builtInEncoding&&adjustType1ToUnicode(properties,properties.builtInEncoding);var glyphZeroId=1,mapping=(font instanceof CFFFont&&(glyphZeroId=font.numGlyphs-1),font.getGlyphMapping(properties)),newMapping=null,newCharCodeToGlyphId=mapping,toUnicodeExtraMap=null,numGlyphs=(properties.cssFontInfo||(newMapping=adjustMapping(mapping,font.hasGlyphId.bind(font),glyphZeroId,this.toUnicode),this.toFontChar=newMapping.toFontChar,newCharCodeToGlyphId=newMapping.charCodeToGlyphId,toUnicodeExtraMap=newMapping.toUnicodeExtraMap),font.numGlyphs);function createCharCode(charCodeToGlyphId,glyphId){for(var charCode in charCodeToGlyphId)if(glyphId===charCodeToGlyphId[charCode])return 0|charCode;return newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode]=glyphId,newMapping.nextAvailableFontCharCode++}var seacs=font.seacs;if(newMapping&&SEAC_ANALYSIS_ENABLED&&null!=seacs&&seacs.length){var glyphId,matrix=properties.fontMatrix||FONT_IDENTITY_MATRIX,charset=font.getCharset(),seacMap=Object.create(null);for(glyphId in seacs){var seac=seacs[glyphId|=0],baseGlyphName=StandardEncoding[seac[2]],accentGlyphName=StandardEncoding[seac[3]],baseGlyphId=charset.indexOf(baseGlyphName),accentGlyphId=charset.indexOf(accentGlyphName);if(!(baseGlyphId<0||accentGlyphId<0)){var accentOffset={x:seac[0]*matrix[0]+seac[1]*matrix[2]+matrix[4],y:seac[0]*matrix[1]+seac[1]*matrix[3]+matrix[5]},baseGlyphName=function(charCodeToGlyphId,glyphId){var charCode,charCodes=null;for(charCode in charCodeToGlyphId)glyphId===charCodeToGlyphId[charCode]&&(charCodes=charCodes||[]).push(0|charCode);return charCodes}(mapping,glyphId);if(baseGlyphName)for(var charCode of baseGlyphName){var charCodeToGlyphId=newMapping.charCodeToGlyphId,baseFontCharCode=createCharCode(charCodeToGlyphId,baseGlyphId),charCodeToGlyphId=createCharCode(charCodeToGlyphId,accentGlyphId);seacMap[charCode]={baseFontCharCode:baseFontCharCode,accentFontCharCode:charCodeToGlyphId,accentOffset:accentOffset}}}}properties.seacMap=seacMap}var glyphZeroId=properties.fontMatrix?1/Math.max(...properties.fontMatrix.slice(0,4).map(Math.abs)):1e3,builder=new OpenTypeFileBuilder("OTTO");return builder.addTable("CFF ",font.data),builder.addTable("OS/2",createOS2Table(properties,newCharCodeToGlyphId)),builder.addTable("cmap",createCmapTable(newCharCodeToGlyphId,toUnicodeExtraMap,numGlyphs)),builder.addTable("head","\0\0\0\0\0\0\0\0\0\0_<õ\0\0"+safeString16(glyphZeroId)+"\0\0\0\0ž\v~'\0\0\0\0ž\v~'\0\0"+safeString16(properties.descent)+"ÿ"+safeString16(properties.ascent)+string16(properties.italicAngle?2:0)+"\0\0\0\0\0\0\0"),builder.addTable("hhea","\0\0\0"+safeString16(properties.ascent)+safeString16(properties.descent)+"\0\0ÿÿ\0\0\0\0\0\0"+safeString16(properties.capHeight)+safeString16(Math.tan(properties.italicAngle)*properties.xHeight)+"\0\0\0\0\0\0\0\0\0\0\0\0"+string16(numGlyphs)),builder.addTable("hmtx",function(){for(var charstrings=font.charstrings,cffWidths=font.cff?font.cff.widths:null,hmtx="\0\0\0\0",i=1,ii=numGlyphs;ithis.toUnicode.charCodeOf(unicode):unicode=>this.toUnicode.charCodeOf(String.fromCodePoint(unicode)),i=0,ii=str.length;i>8*j&255));continue}}buffers.length%2!=1&&(buffers.push(currentBuf.join("")),currentBuf.length=0),currentBuf.push(String.fromCodePoint(unicode))}return buffers.push(currentBuf.join("")),buffers}}class ErrorFont{constructor(error){this.error=error,this.loadedName="g_font_error",this.missingFile=!0}charsToGlyphs(){return[]}encodeString(chars){return[chars]}exportData(){return{error:this.error}}}var ShadingType={FUNCTION_BASED:1,AXIAL:2,RADIAL:3,FREE_FORM_MESH:4,LATTICE_FORM_MESH:5,COONS_PATCH_MESH:6,TENSOR_PATCH_MESH:7};class Pattern{constructor(){unreachable("Cannot initialize Pattern.")}static parseShading(shading,xref,res,pdfFunctionFactory,globalColorSpaceCache,localColorSpaceCache){var dict=shading instanceof BaseStream?shading.dict:shading,type=dict.get("ShadingType");try{switch(type){case ShadingType.AXIAL:case ShadingType.RADIAL:return new RadialAxialShading(dict,xref,res,pdfFunctionFactory,globalColorSpaceCache,localColorSpaceCache);case ShadingType.FREE_FORM_MESH:case ShadingType.LATTICE_FORM_MESH:case ShadingType.COONS_PATCH_MESH:case ShadingType.TENSOR_PATCH_MESH:return new MeshShading(shading,xref,res,pdfFunctionFactory,globalColorSpaceCache,localColorSpaceCache);default:throw new FormatError("Unsupported ShadingType: "+type)}}catch(ex){if(ex instanceof MissingDataException)throw ex;return warn(ex),new DummyShading}}}class BaseShading{getIR(){unreachable("Abstract method `getIR` called.")}}_defineProperty(BaseShading,"SMALL_NUMBER",1e-6);class RadialAxialShading extends BaseShading{constructor(dict,xref,resources,pdfFunctionFactory,globalColorSpaceCache,localColorSpaceCache){super(),this.shadingType=dict.get("ShadingType");var coordsLen=0;if(this.shadingType===ShadingType.AXIAL?coordsLen=4:this.shadingType===ShadingType.RADIAL&&(coordsLen=6),this.coordsArr=dict.getArray("Coords"),!isNumberArray(this.coordsArr,coordsLen))throw new FormatError("RadialAxialShading: Invalid /Coords array.");var r1,y2,r2,cs=ColorSpaceUtils.parse({cs:dict.getRaw("CS")||dict.getRaw("ColorSpace"),xref:xref,resources:resources,pdfFunctionFactory:pdfFunctionFactory,globalColorSpaceCache:globalColorSpaceCache,localColorSpaceCache:localColorSpaceCache}),t0=(this.bbox=lookupNormalRect(dict.getArray("BBox"),null),0),coordsLen=1,xref=dict.getArray("Domain"),resources=(isNumberArray(xref,2)&&([t0,coordsLen]=xref),!1),globalColorSpaceCache=!1,localColorSpaceCache=dict.getArray("Extend"),x2=(isBooleanArray(localColorSpaceCache,2)&&([resources,globalColorSpaceCache]=localColorSpaceCache),this.shadingType!==ShadingType.RADIAL||resources&&globalColorSpaceCache||([xref,localColorSpaceCache,r1,x2,y2,r2]=this.coordsArr,r1<=r2+(xref=Math.hypot(xref-x2,localColorSpaceCache-y2))&&r2<=r1+xref&&warn("Unsupported radial gradient.")),this.extendStart=resources,this.extendEnd=globalColorSpaceCache,dict.getRaw("Function")),fn=pdfFunctionFactory.create(x2,!0),step=(coordsLen-t0)/840,colorStops=this.colorStops=[];if(coordsLen<=t0||step<=0)info("Bad shading domain.");else{for(var color=new Float32Array(cs.numComps),ratio=new Float32Array(1),iBase=0,rgbBuffer=(ratio[0]=t0,fn(ratio,0,color,0),new Uint8ClampedArray(3)),[rBase,gBase,bBase]=(cs.getRgb(color,0,rgbBuffer),rgbBuffer),iPrev=(colorStops.push([0,Util.makeHexColor(rBase,gBase,bBase)]),1),[rPrev,gPrev,bPrev]=(ratio[0]=t0+step,fn(ratio,0,color,0),cs.getRgb(color,0,rgbBuffer),rgbBuffer),maxSlopeR=rPrev-rBase+1,maxSlopeG=gPrev-gBase+1,maxSlopeB=bPrev-bBase+1,minSlopeR=rPrev-rBase-1,minSlopeG=gPrev-gBase-1,minSlopeB=bPrev-bBase-1,i=2;i<840;i++){ratio[0]=t0+i*step,fn(ratio,0,color,0),cs.getRgb(color,0,rgbBuffer);var[r,g,b]=rgbBuffer,run=i-iBase,maxSlopeR=Math.min(maxSlopeR,(r-rBase+1)/run),maxSlopeG=Math.min(maxSlopeG,(g-gBase+1)/run),maxSlopeB=Math.min(maxSlopeB,(b-bBase+1)/run),minSlopeR=Math.max(minSlopeR,(r-rBase-1)/run),minSlopeG=Math.max(minSlopeG,(g-gBase-1)/run),minSlopeB=Math.max(minSlopeB,(b-bBase-1)/run);minSlopeR<=maxSlopeR&&minSlopeG<=maxSlopeG&&minSlopeB<=maxSlopeB||(run=Util.makeHexColor(rPrev,gPrev,bPrev),colorStops.push([iPrev/840,run]),maxSlopeR=r-rPrev+1,maxSlopeG=g-gPrev+1,maxSlopeB=b-bPrev+1,minSlopeR=r-rPrev-1,minSlopeG=g-gPrev-1,minSlopeB=b-bPrev-1,iBase=iPrev,rBase=rPrev,gBase=gPrev,bBase=bPrev),iPrev=i,rPrev=r,gPrev=g,bPrev=b}colorStops.push([1,Util.makeHexColor(rPrev,gPrev,bPrev)]);localColorSpaceCache="transparent";dict.has("Background")&&(localColorSpaceCache=cs.getRgbHex(dict.get("Background"),0)),resources||(colorStops.unshift([0,localColorSpaceCache]),colorStops[1][0]+=BaseShading.SMALL_NUMBER),globalColorSpaceCache||(colorStops.at(-1)[0]-=BaseShading.SMALL_NUMBER,colorStops.push([1,localColorSpaceCache])),this.colorStops=colorStops}}getIR(){var type,p0,p1,r0,r1,{coordsArr,shadingType}=this;return shadingType===ShadingType.AXIAL?(p0=[coordsArr[0],coordsArr[1]],p1=[coordsArr[2],coordsArr[3]],r1=r0=null,type="axial"):shadingType===ShadingType.RADIAL?(p0=[coordsArr[0],coordsArr[1]],p1=[coordsArr[3],coordsArr[4]],r0=coordsArr[2],r1=coordsArr[5],type="radial"):unreachable("getPattern type unknown: ".concat(shadingType)),["RadialAxial",type,this.bbox,this.colorStops,p0,p1,r0,r1]}}class MeshStreamReader{constructor(stream,context){this.stream=stream,this.context=context,this.buffer=0,this.bufferLength=0;stream=context.numComps,this.tmpCompsBuf=new Float32Array(stream),stream=context.colorSpace.numComps;this.tmpCsCompsBuf=context.colorFn?new Float32Array(stream):this.tmpCompsBuf}get hasData(){if(this.stream.end)return this.stream.pos>>0:(buffer=buffer<<24|stream.getByte()<<16|stream.getByte()<<8|stream.getByte(),nextByte=stream.getByte(),this.buffer=nextByte&(1<>bufferLength)>>>0);if(8===n&&0===bufferLength)return stream.getByte();for(;bufferLength>bufferLength}align(){this.buffer=0,this.bufferLength=0}readFlag(){return this.readBits(this.context.bitsPerFlag)}readCoordinate(){var{bitsPerCoordinate,decode}=this.context,xi=this.readBits(bitsPerCoordinate),yi=this.readBits(bitsPerCoordinate),bitsPerCoordinate=bitsPerCoordinate<32?1/((1<w*factors[i]):name,currentCode=-2,newWidths=[];for([unicode,glyphIndex]of baseMapping.map((charUnicode,index)=>[charUnicode,index]).sort((_ref23,_ref24)=>{var[_ref23]=_ref23,[_ref24]=_ref24;return _ref23-_ref24}))-1!==unicode&&(unicode===currentCode+1?(currentArray.push(rescaledBaseWidths[glyphIndex]),currentCode+=1):(currentCode=unicode,currentArray=[rescaledBaseWidths[glyphIndex]],newWidths.push(unicode,currentArray)));return newWidths}function getXfaFontDict(name){var widths=getXfaFontWidths(name),dict=new Dict(null),name=(dict.set("BaseFont",Name.get(name)),dict.set("Type",Name.get("Font")),dict.set("Subtype",Name.get("CIDFontType2")),dict.set("Encoding",Name.get("Identity-H")),dict.set("CIDToGIDMap",Name.get("Identity")),dict.set("W",widths),dict.set("FirstChar",widths[0]),dict.set("LastChar",widths.at(-2)+widths.at(-1).length-1),new Dict(null)),widths=(dict.set("FontDescriptor",name),new Dict(null));return widths.set("Ordering","Identity"),widths.set("Registry","Adobe"),widths.set("Supplement",0),dict.set("CIDSystemInfo",widths),dict}class PostScriptParser{constructor(lexer){this.lexer=lexer,this.operators=[],this.token=null,this.prev=null}nextToken(){this.prev=this.token,this.token=this.lexer.getToken()}accept(type){return this.token.type===type&&(this.nextToken(),!0)}expect(type){if(this.accept(type))return!0;throw new FormatError("Unexpected symbol: found ".concat(this.token.type," expected ").concat(type,"."))}parse(){return this.nextToken(),this.expect(PostScriptTokenTypes.LBRACE),this.parseBlock(),this.expect(PostScriptTokenTypes.RBRACE),this.operators}parseBlock(){for(;;)if(this.accept(PostScriptTokenTypes.NUMBER))this.operators.push(this.prev.value);else if(this.accept(PostScriptTokenTypes.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(PostScriptTokenTypes.LBRACE))return;this.parseCondition()}}parseCondition(){var conditionLocation=this.operators.length;if(this.operators.push(null,null),this.parseBlock(),this.expect(PostScriptTokenTypes.RBRACE),this.accept(PostScriptTokenTypes.IF))this.operators[conditionLocation]=this.operators.length;else{if(!this.accept(PostScriptTokenTypes.LBRACE))throw new FormatError("PS Function: error parsing conditional.");var jumpLocation=this.operators.length,endOfTrue=(this.operators.push(null,null),this.operators.length);this.parseBlock(),this.expect(PostScriptTokenTypes.RBRACE),this.expect(PostScriptTokenTypes.IFELSE),this.operators[jumpLocation]=this.operators.length,this.operators[jumpLocation+1]="j",this.operators[conditionLocation]=endOfTrue}this.operators[conditionLocation+1]="jz"}}var PostScriptTokenTypes={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5};class PostScriptToken{static get opCache(){return shadow(this,"opCache",Object.create(null))}constructor(type,value){this.type=type,this.value=value}static getOperator(op){var _PostScriptToken$opCa;return(_PostScriptToken$opCa=PostScriptToken.opCache)[op]||(_PostScriptToken$opCa[op]=new PostScriptToken(PostScriptTokenTypes.OPERATOR,op))}static get LBRACE(){return shadow(this,"LBRACE",new PostScriptToken(PostScriptTokenTypes.LBRACE,"{"))}static get RBRACE(){return shadow(this,"RBRACE",new PostScriptToken(PostScriptTokenTypes.RBRACE,"}"))}static get IF(){return shadow(this,"IF",new PostScriptToken(PostScriptTokenTypes.IF,"IF"))}static get IFELSE(){return shadow(this,"IFELSE",new PostScriptToken(PostScriptTokenTypes.IFELSE,"IFELSE"))}}class PostScriptLexer{constructor(stream){this.stream=stream,this.nextChar(),this.strBuf=[]}nextChar(){return this.currentChar=this.stream.getByte()}getToken(){for(var comment=!1,ch=this.currentChar;;){if(ch<0)return EOF;if(comment)10!==ch&&13!==ch||(comment=!1);else if(37===ch)comment=!0;else if(!isWhiteSpace(ch))break;ch=this.nextChar()}switch(0|ch){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new PostScriptToken(PostScriptTokenTypes.NUMBER,this.getNumber());case 123:return this.nextChar(),PostScriptToken.LBRACE;case 125:return this.nextChar(),PostScriptToken.RBRACE}var strBuf=this.strBuf;for(strBuf.length=0,strBuf[0]=String.fromCharCode(ch);0<=(ch=this.nextChar())&&(65<=ch&&ch<=90||97<=ch&&ch<=122);)strBuf.push(String.fromCharCode(ch));var str=strBuf.join("");switch(str.toLowerCase()){case"if":return PostScriptToken.IF;case"ifelse":return PostScriptToken.IFELSE;default:return PostScriptToken.getOperator(str)}}getNumber(){var ch=this.currentChar,strBuf=this.strBuf;for(strBuf.length=0,strBuf[0]=String.fromCharCode(ch);0<=(ch=this.nextChar())&&(48<=ch&&ch<=57||45===ch||46===ch);)strBuf.push(String.fromCharCode(ch));var value=parseFloat(strBuf.join(""));if(isNaN(value))throw new FormatError("Invalid floating point number: ".concat(value));return value}}class BaseLocalCache{constructor(options){this._onlyRefs=!0===(null==options?void 0:options.onlyRefs),this._onlyRefs||(this._nameRefMap=new Map,this._imageMap=new Map),this._imageCache=new RefSetCache}getByName(name){this._onlyRefs&&unreachable("Should not call `getByName` method.");var ref=this._nameRefMap.get(name);return ref?this.getByRef(ref):this._imageMap.get(name)||null}getByRef(ref){return this._imageCache.get(ref)||null}set(name,ref,data){unreachable("Abstract method `set` called.")}}class LocalImageCache extends BaseLocalCache{set(name){var ref=1+x):null}class PDFFunction{static getSampleArray(size,outputSize,bps,stream){for(var length=1,i=0,ii=size.length;i>codeSize)*sampleMul,codeBuf&=(1<>1,numInputs=domain.length>>1,evaluator=new PostScriptEvaluator(fn),cache=Object.create(null),cache_available=8192,tmpBuf=new Float32Array(numInputs);return function(src,srcOffset,dest,destOffset){var key="",input=tmpBuf;for(i=0;i=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");this.stack.push(value)}pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()}copy(n){if(this.stack.length+n>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");for(var stack=this.stack,i=stack.length-n,j=n-1;0<=j;j--,i++)stack.push(stack[i])}index(n){this.push(this.stack[this.stack.length-n-1])}roll(n,p){for(var stack=this.stack,l=stack.length-n,r=stack.length-1,p=l+(p-Math.floor(p/n)*n),i=l,j=r;i>b);break;case"ceiling":a=stack.pop(),stack.push(Math.ceil(a));break;case"copy":a=stack.pop(),stack.copy(a);break;case"cos":a=stack.pop(),stack.push(Math.cos(a%360/180*Math.PI));break;case"cvi":a=0|stack.pop(),stack.push(a);break;case"cvr":break;case"div":b=stack.pop(),a=stack.pop(),stack.push(a/b);break;case"dup":stack.copy(1);break;case"eq":b=stack.pop(),a=stack.pop(),stack.push(a===b);break;case"exch":stack.roll(2,1);break;case"exp":b=stack.pop(),a=stack.pop(),stack.push(a**b);break;case"false":stack.push(!1);break;case"floor":a=stack.pop(),stack.push(Math.floor(a));break;case"ge":b=stack.pop(),a=stack.pop(),stack.push(b<=a);break;case"gt":b=stack.pop(),a=stack.pop(),stack.push(b=max?new AstLiteral(max):num1.max<=max?num1:new AstMin(num1,max)}class PostScriptCompiler{compile(code,domain,range){for(var n,num1,num2,ast1,ast2,tmpVar,item,stack=[],instructions=[],inputSize=domain.length>>1,outputSize=range.length>>1,lastRegister=0,i=0;iexpr.min&&(_statementBuilder.unshift("Math.max(",min,", "),_statementBuilder.push(")")),max"!==_ch2||(chars[i]="")}return createBidiText(chars.join(""),isLTR)}var NORMAL={style:"normal",weight:"normal"},BOLD={style:"normal",weight:"bold"},ITALIC={style:"italic",weight:"normal"},BOLDITALIC={style:"italic",weight:"bold"},substitutionMap=new Map([["Times-Roman",{local:["Times New Roman","Times-Roman","Times","Liberation Serif","Nimbus Roman","Nimbus Roman L","Tinos","Thorndale","TeX Gyre Termes","FreeSerif","Linux Libertine O","Libertinus Serif","DejaVu Serif","Bitstream Vera Serif","Ubuntu"],style:NORMAL,ultimate:"serif"}],["Times-Bold",{alias:"Times-Roman",style:BOLD,ultimate:"serif"}],["Times-Italic",{alias:"Times-Roman",style:ITALIC,ultimate:"serif"}],["Times-BoldItalic",{alias:"Times-Roman",style:BOLDITALIC,ultimate:"serif"}],["Helvetica",{local:["Helvetica","Helvetica Neue","Arial","Arial Nova","Liberation Sans","Arimo","Nimbus Sans","Nimbus Sans L","A030","TeX Gyre Heros","FreeSans","DejaVu Sans","Albany","Bitstream Vera Sans","Arial Unicode MS","Microsoft Sans Serif","Apple Symbols","Cantarell"],path:"LiberationSans-Regular.ttf",style:NORMAL,ultimate:"sans-serif"}],["Helvetica-Bold",{alias:"Helvetica",path:"LiberationSans-Bold.ttf",style:BOLD,ultimate:"sans-serif"}],["Helvetica-Oblique",{alias:"Helvetica",path:"LiberationSans-Italic.ttf",style:ITALIC,ultimate:"sans-serif"}],["Helvetica-BoldOblique",{alias:"Helvetica",path:"LiberationSans-BoldItalic.ttf",style:BOLDITALIC,ultimate:"sans-serif"}],["Courier",{local:["Courier","Courier New","Liberation Mono","Nimbus Mono","Nimbus Mono L","Cousine","Cumberland","TeX Gyre Cursor","FreeMono","Linux Libertine Mono O","Libertinus Mono"],style:NORMAL,ultimate:"monospace"}],["Courier-Bold",{alias:"Courier",style:BOLD,ultimate:"monospace"}],["Courier-Oblique",{alias:"Courier",style:ITALIC,ultimate:"monospace"}],["Courier-BoldOblique",{alias:"Courier",style:BOLDITALIC,ultimate:"monospace"}],["ArialBlack",{local:["Arial Black"],style:{style:"normal",weight:"900"},fallback:"Helvetica-Bold"}],["ArialBlack-Bold",{alias:"ArialBlack"}],["ArialBlack-Italic",{alias:"ArialBlack",style:{style:"italic",weight:"900"},fallback:"Helvetica-BoldOblique"}],["ArialBlack-BoldItalic",{alias:"ArialBlack-Italic"}],["ArialNarrow",{local:["Arial Narrow","Liberation Sans Narrow","Helvetica Condensed","Nimbus Sans Narrow","TeX Gyre Heros Cn"],style:NORMAL,fallback:"Helvetica"}],["ArialNarrow-Bold",{alias:"ArialNarrow",style:BOLD,fallback:"Helvetica-Bold"}],["ArialNarrow-Italic",{alias:"ArialNarrow",style:ITALIC,fallback:"Helvetica-Oblique"}],["ArialNarrow-BoldItalic",{alias:"ArialNarrow",style:BOLDITALIC,fallback:"Helvetica-BoldOblique"}],["Calibri",{local:["Calibri","Carlito"],style:NORMAL,fallback:"Helvetica"}],["Calibri-Bold",{alias:"Calibri",style:BOLD,fallback:"Helvetica-Bold"}],["Calibri-Italic",{alias:"Calibri",style:ITALIC,fallback:"Helvetica-Oblique"}],["Calibri-BoldItalic",{alias:"Calibri",style:BOLDITALIC,fallback:"Helvetica-BoldOblique"}],["Wingdings",{local:["Wingdings","URW Dingbats"],style:NORMAL}],["Wingdings-Regular",{alias:"Wingdings"}],["Wingdings-Bold",{alias:"Wingdings"}]]),fontAliases=new Map([["Arial-Black","ArialBlack"]]);function getStyleToAppend(style){switch(style){case BOLD:return"Bold";case ITALIC:return"Italic";case BOLDITALIC:return"Bold Italic";default:if("bold"===(null==style?void 0:style.weight))return"Bold";if("italic"===(null==style?void 0:style.style))return"Italic"}return""}function getFamilyName(str){var keywords=new Set(["thin","extralight","ultralight","demilight","semilight","light","book","regular","normal","medium","demibold","semibold","bold","extrabold","ultrabold","black","heavy","extrablack","ultrablack","roman","italic","oblique","ultracondensed","extracondensed","condensed","semicondensed","normal","semiexpanded","expanded","extraexpanded","ultraexpanded","bolditalic"]);return str.split(/[- ,+]+/g).filter(tok=>!keywords.has(tok.toLowerCase())).join(" ")}function generateFont(_ref26,src,localFontPath){var{alias,local,path,fallback,style,ultimate}=_ref26,useFallback=!(3>>8,data[length++]=255&code)}else{if(!ArrayBuffer.isView(input))throw new Error("Invalid data format, must be a string or TypedArray.");length=(data=input.slice()).byteLength}for(var k2,blockCounts=length>>2,tailLength=length-4*blockCounts,dataUint32=new Uint32Array(data.buffer,0,blockCounts),k1=0,h1=this.h1,h2=this.h2,C1=3432918353,C2=461845907,C1_LOW=C1&MASK_LOW,C2_LOW=C2&MASK_LOW,_i40=0;_i40>>17)*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW)<<13|h1>>>19)+3864292196:h2=5*(h2=(h2^=(k2=(k2=(k2=dataUint32[_i40])*C1&MASK_HIGH|k2*C1_LOW&MASK_LOW)<<15|k2>>>17)*C2&MASK_HIGH|k2*C2_LOW&MASK_LOW)<<13|h2>>>19)+3864292196;switch(k1=0,tailLength){case 3:k1^=data[4*blockCounts+2]<<16;case 2:k1^=data[4*blockCounts+1]<<8;case 1:k1=(k1=(k1=(k1^=data[4*blockCounts])*C1&MASK_HIGH|k1*C1_LOW&MASK_LOW)<<15|k1>>>17)*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW,1&blockCounts?h1^=k1:h2^=k1}this.h1=h1,this.h2=h2}hexdigest(){var h1=this.h1,h2=this.h2,h1=3981806797*(h1^=h2>>>1)&MASK_HIGH|36045*h1&MASK_LOW;return h1=444984403*(h1^=(h2=4283543511*h2&MASK_HIGH|(2950163797*(h2<<16|h1>>>16)&MASK_HIGH)>>>16)>>>1)&MASK_HIGH|60499*h1&MASK_LOW,((h1^=(h2=3301882366*h2&MASK_HIGH|(3120437893*(h2<<16|h1>>>16)&MASK_HIGH)>>>16)>>>1)>>>0).toString(16).padStart(8,"0")+(h2>>>0).toString(16).padStart(8,"0")}}function resizeImageMask(src,bpc,w1,h1,w2,h2){for(var j,py,oldIndex,length=w2*h2,dest=new(bpc<=8?Uint8Array:bpc<=16?Uint16Array:Uint32Array)(length),xRatio=w1/w2,yRatio=h1/h2,newIndex=0,xScaled=new Uint16Array(w2),w1Scanline=w1,i=0;i>3)*height,imgArray=_ref29.getBytes(computedLength),isSingleOpaquePixel=1===width&&1===height&&dict==(0===imgArray.length||!!(128&imgArray[0]));if(isSingleOpaquePixel)return{isSingleOpaquePixel:isSingleOpaquePixel};if(isOffscreenCanvasSupported)return ImageResizer.needsToBeResized(width,height)?(convertBlackAndWhiteToRGBA({src:imgArray,dest:isSingleOpaquePixel=new Uint8ClampedArray(width*height*4),width:width,height:height,nonBlackColor:0,inverseDecode:dict}),ImageResizer.createImage({kind:ImageKind.RGBA_32BPP,data:isSingleOpaquePixel,width:width,height:height,interpolate:interpolate})):(convertBlackAndWhiteToRGBA({src:imgArray,dest:(imgData=(isSingleOpaquePixel=(isOffscreenCanvasSupported=new OffscreenCanvas(width,height)).getContext("2d")).createImageData(width,height)).data,width:width,height:height,nonBlackColor:0,inverseDecode:dict}),isSingleOpaquePixel.putImageData(imgData,0,0),{data:null,width:width,height:height,interpolate:interpolate,bitmap:isOffscreenCanvasSupported.transferToImageBitmap()});var data,actualLength=imgArray.byteLength,isSingleOpaquePixel=computedLength===actualLength;if(_ref29 instanceof DecodeStream&&(!dict||isSingleOpaquePixel)?data=imgArray:dict?((data=new Uint8Array(computedLength)).set(imgArray),data.fill(255,actualLength)):data=new Uint8Array(imgArray),dict)for(var i=0;i>7&1,output[i+1]=buf>>6&1,output[i+2]=buf>>5&1,output[i+3]=buf>>4&1,output[i+4]=buf>>3&1,output[i+5]=buf>>2&1,output[i+6]=buf>>1&1,output[i+7]=1&buf,i+=8;if(i>=1}else for(var bits=0,buf=0,i=0,ii=length;i>remainingBits;value<0?value=0:maxmask[1+maskOffset]){opacity=255;break}}alphaBuf[i]=opacity}}if(alphaBuf)for(i=0,j=3,ii=width*actualHeight;i>3,mustBeResized=isOffscreenCanvasSupported&&ImageResizer.needsToBeResized(drawWidth,drawHeight);if(!this.smask&&!this.mask&&"DeviceRGBA"===this.colorSpace.name)return imgData.kind=ImageKind.RGBA_32BPP,_imgArray=imgData.data=await this.getImageBytes(originalHeight*originalWidth*4,{}),isOffscreenCanvasSupported?mustBeResized?ImageResizer.createImage(imgData,!1):this.createBitmap(ImageKind.RGBA_32BPP,drawWidth,drawHeight,_imgArray):imgData;if(!forceRGBA){if("DeviceGray"===this.colorSpace.name&&1===bpc?kind=ImageKind.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==bpc||this.needsDecode||(kind=ImageKind.RGB_24BPP),kind&&!this.smask&&!this.mask&&drawWidth===originalWidth&&drawHeight===originalHeight){var _imgArray=await _assertClassBrand(_PDFImage_brand,this,_getImage).call(this,originalWidth,originalHeight);if(_imgArray)return _imgArray;_imgArray=await this.getImageBytes(originalHeight*numComps,{});if(isOffscreenCanvasSupported)return mustBeResized?ImageResizer.createImage({data:_imgArray,kind:kind,width:drawWidth,height:drawHeight,interpolate:this.interpolate},this.needsDecode):this.createBitmap(kind,originalWidth,originalHeight,_imgArray);if(imgData.kind=kind,imgData.data=_imgArray,this.needsDecode){assert(kind===ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");for(var buffer=imgData.data,i=0,ii=buffer.length;i>3),{internal:!0}),comps=this.getComponents(numComps);if(1===bpc)if(length=width*height,this.needsDecode)for(i=0;i((imgData=await imageObj.createImageData(!1,isOffscreenCanvasSupported)).dataLen=imgData.bitmap?imgData.width*imgData.height*4:imgData.data.length,imgData.ref=imageRef,cacheGlobally&&this.globalImageCache.addByteSize(imageRef,imgData.dataLen),this._sendImgData(objId,imgData,cacheGlobally))).catch(reason=>(warn('Unable to decode image "'.concat(objId,'": "').concat(reason,'".')),imageRef&&this.globalImageCache.addDecodeFailed(imageRef),this._sendImgData(objId,null,cacheGlobally))),cacheKey&&(dict={objId:objId,fn:fn,args:args,optionalContent:optionalContent,hasMask:maxImageSize},localImageCache.set(cacheKey,imageRef,dict),imageRef)&&(this._regionalImageCache.set(null,imageRef,dict),cacheGlobally)&&(assert(imageObj,"The global cache-data must be available."),this.globalImageCache.setData(imageRef,imageObj))}}else warn("Image dimensions are missing, or not numbers.")}handleSMask(smask,resources,operatorList,task,stateManager,localColorSpaceCache,seenRefs){var smaskContent=smask.get("G"),smaskOptions={subtype:smask.get("S").name,backdrop:smask.get("BC")},smask=smask.get("TR");if(isPDFFunction(smask)){for(var transferFn=this._pdfFunctionFactory.create(smask),transferMap=new Uint8Array(256),tmp=new Float32Array(1),i=0;i<256;i++)tmp[0]=i/255,transferFn(tmp,0,tmp,0),transferMap[i]=255*tmp[0]|0;smaskOptions.transferMap=transferMap}return this.buildFormXObject(resources,smaskContent,smaskOptions,operatorList,task,stateManager.state.clone({newPath:!0}),localColorSpaceCache,seenRefs)}handleTransferFunction(tr){var transferArray;if(Array.isArray(tr))transferArray=tr;else{if(!isPDFFunction(tr))return null;transferArray=[tr]}var entry,transferMaps=[],numFns=0,numEffectfulFns=0;for(entry of transferArray){var transferObj=this.xref.fetchIfRef(entry);if(numFns++,isName(transferObj,"Identity"))transferMaps.push(null);else{if(!isPDFFunction(transferObj))return null;for(var transferFn=this._pdfFunctionFactory.create(transferObj),transferMap=new Uint8Array(256),tmp=new Float32Array(1),j=0;j<256;j++)tmp[0]=j/255,transferFn(tmp,0,tmp,0),transferMap[j]=255*tmp[0]|0;transferMaps.push(transferMap),numEffectfulFns++}}return 1!==numFns&&4!==numFns||0===numEffectfulFns?null:transferMaps}handleTilingType(fn,color,resources,pattern,patternDict,operatorList,task,localTilingPatternCache){var tilingOpList=new OperatorList,resources=Dict.merge({xref:this.xref,dictArray:[patternDict.get("Resources"),resources]});return this.getOperatorList({stream:pattern,task:task,resources:resources,operatorList:tilingOpList}).then(function(){var operatorListIR=tilingOpList.getIR(),tilingPatternIR=getTilingPatternIR(operatorListIR,patternDict,color);operatorList.addDependencies(tilingOpList.dependencies),operatorList.addOp(fn,tilingPatternIR),patternDict.objId&&localTilingPatternCache.set(null,patternDict.objId,{operatorListIR:operatorListIR,dict:patternDict})}).catch(reason=>{if(!(reason instanceof AbortException)){if(!this.options.ignoreErrors)throw reason;warn('handleTilingType - ignoring pattern: "'.concat(reason,'".'))}})}async handleSetFont(resources,fontArgs,fontRef,operatorList,task,state){var fallbackFontDict=6_this3.handleSetFont(resources,null,value[0],operatorList,task,stateManager.state).then(function(loadedName){operatorList.addDependency(loadedName),gStateObj.push([key,[loadedName,value[1]]])}));break;case"BM":gStateObj.push([key,normalizeBlendMode(value)]);break;case"SMask":isName(value,"None")?gStateObj.push([key,!1]):value instanceof Dict?(isSimpleGState=!1,promise=promise.then(()=>_this3.handleSMask(value,resources,operatorList,task,stateManager,localColorSpaceCache,seenRefs)),gStateObj.push([key,!0])):warn("Unsupported SMask type");break;case"TR":var transferMaps=_this3.handleTransferFunction(value);gStateObj.push([key,transferMaps]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":info("graphic state operator "+key);break;default:info("Unknown graphic state operator "+key)}}(key,value);await promise,0new TranslatedFont({loadedName:"g_font_error",font:new ErrorFont('Font "'.concat(fontName,'" is not available.')),dict:font});if(font?font instanceof Ref&&(fontRef=font):(fontRes=resources.get("Font"))&&(fontRef=fontRes.getRaw(fontName)),fontRef){if(null!=(fontRes=this.type3FontRefs)&&fontRes.has(fontRef))return errorFont();if(this.fontCache.has(fontRef))return this.fontCache.get(fontRef);try{font=this.xref.fetchIfRef(fontRef)}catch(ex){warn('loadFont - lookup failed: "'.concat(ex,'".'))}}if(!(font instanceof Dict)){if(!this.options.ignoreErrors&&!this.parsingType3Font)return warn('Font "'.concat(fontName,'" is not available.')),errorFont();warn('Font "'.concat(fontName,'" is not available -- attempting to fallback to a default font.')),font=fallbackFontDict||PartialEvaluator.fallbackFontDict}if(font.cacheKey&&this.fontCache.has(font.cacheKey))return this.fontCache.get(font.cacheKey);var preEvaluatedFont,{promise:fontRes,resolve}=Promise.withResolvers();try{(preEvaluatedFont=this.preEvaluateFont(font)).cssFontInfo=cssFontInfo}catch(reason){return warn('loadFont - preEvaluateFont failed: "'.concat(reason,'".')),errorFont()}var{descriptor:fallbackFontDict,hash:cssFontInfo}=preEvaluatedFont,errorFont=fontRef instanceof Ref;if(cssFontInfo&&fallbackFontDict instanceof Dict){fallbackFontDict=fallbackFontDict.fontAliases||(fallbackFontDict.fontAliases=Object.create(null));if(fallbackFontDict[cssFontInfo]){var aliasFontRef=fallbackFontDict[cssFontInfo].aliasRef;if(errorFont&&aliasFontRef&&this.fontCache.has(aliasFontRef))return this.fontCache.putAlias(fontRef,aliasFontRef),this.fontCache.get(fontRef)}else fallbackFontDict[cssFontInfo]={fontID:this.idFactory.createFontId()};errorFont&&(fallbackFontDict[cssFontInfo].aliasRef=fontRef),aliasFontRef=fallbackFontDict[cssFontInfo].fontID}else aliasFontRef=this.idFactory.createFontId();return assert(null==aliasFontRef?void 0:aliasFontRef.startsWith("f"),'The "fontID" must be (correctly) defined.'),errorFont?this.fontCache.put(fontRef,fontRes):(font.cacheKey="cacheKey_".concat(aliasFontRef),this.fontCache.put(font.cacheKey,fontRes)),font.loadedName="".concat(this.idFactory.getDocId(),"_").concat(aliasFontRef),this.translateFont(preEvaluatedFont).then(async translatedFont=>{var translated=new TranslatedFont({loadedName:font.loadedName,font:translatedFont,dict:font});if(translatedFont.isType3Font)try{await translated.loadType3Data(this,resources,task)}catch(reason){throw new Error("Type3 font load error: ".concat(reason))}resolve(translated)}).catch(reason=>{warn('loadFont - translateFont failed: "'.concat(reason,'".')),resolve(new TranslatedFont({loadedName:font.loadedName,font:new ErrorFont(null==reason?void 0:reason.message),dict:font}))}),fontRes}buildPath(fn,args,state){var{pathMinMax:minMax,pathBuffer}=state;switch(0|fn){case OPS.rectangle:var x=state.currentPointX=args[0],y=state.currentPointY=args[1],width=args[2],height=args[3],xw=x+width,yh=y+height;0===width||0===height?pathBuffer.push(DrawOPS.moveTo,x,y,DrawOPS.lineTo,xw,yh,DrawOPS.closePath):pathBuffer.push(DrawOPS.moveTo,x,y,DrawOPS.lineTo,xw,y,DrawOPS.lineTo,xw,yh,DrawOPS.lineTo,x,yh,DrawOPS.closePath),Util.rectBoundingBox(x,y,xw,yh,minMax);break;case OPS.moveTo:width=state.currentPointX=args[0],height=state.currentPointY=args[1];pathBuffer.push(DrawOPS.moveTo,width,height),Util.pointBoundingBox(width,height,minMax);break;case OPS.lineTo:x=state.currentPointX=args[0],y=state.currentPointY=args[1];pathBuffer.push(DrawOPS.lineTo,x,y),Util.pointBoundingBox(x,y,minMax);break;case OPS.curveTo:var xw=state.currentPointX,yh=state.currentPointY,[width,height,x,y,_x4,_y4]=args;state.currentPointX=_x4,state.currentPointY=_y4,pathBuffer.push(DrawOPS.curveTo,width,height,x,y,_x4,_y4),Util.bezierBoundingBox(xw,yh,width,height,x,y,_x4,_y4,minMax);break;case OPS.curveTo2:var xw=state.currentPointX,yh=state.currentPointY,[width,height,x,y]=args;state.currentPointX=x,state.currentPointY=y,pathBuffer.push(DrawOPS.curveTo,xw,yh,width,height,x,y),Util.bezierBoundingBox(xw,yh,xw,yh,width,height,x,y,minMax);break;case OPS.curveTo3:var _x4=state.currentPointX,_y4=state.currentPointY,[xw,yh,width,height]=args;state.currentPointX=width,state.currentPointY=height,pathBuffer.push(DrawOPS.curveTo,xw,yh,width,height,width,height),Util.bezierBoundingBox(_x4,_y4,xw,yh,width,height,width,height,minMax);break;case OPS.closePath:pathBuffer.push(DrawOPS.closePath)}}_getColorSpace(cs,resources,localColorSpaceCache){return ColorSpaceUtils.parse({cs:cs,xref:this.xref,resources:resources,pdfFunctionFactory:this._pdfFunctionFactory,globalColorSpaceCache:this.globalColorSpaceCache,localColorSpaceCache:localColorSpaceCache,asyncIfNotCached:!0})}async _handleColorSpace(csPromise){try{return await csPromise}catch(ex){if(ex instanceof AbortException)return null;if(this.options.ignoreErrors)return warn('_handleColorSpace - ignoring ColorSpace: "'.concat(ex,'".')),null;throw ex}}parseShading(_ref35){var{shading:_ref35,resources,localColorSpaceCache,localShadingPatternCache}=_ref35,id=localShadingPatternCache.get(_ref35);if(!id){try{var patternIR=Pattern.parseShading(_ref35,this.xref,resources,this._pdfFunctionFactory,this.globalColorSpaceCache,localColorSpaceCache).getIR()}catch(reason){if(reason instanceof AbortException)return null;if(this.options.ignoreErrors)return warn('parseShading - ignoring shading: "'.concat(reason,'".')),localShadingPatternCache.set(_ref35,null),null;throw reason}id="pattern_".concat(this.idFactory.createObjId()),this.parsingType3Font&&(id="".concat(this.idFactory.getDocId(),"_type3_").concat(id)),localShadingPatternCache.set(_ref35,id),this.parsingType3Font?this.handler.send("commonobj",[id,"Pattern",patternIR]):this.handler.send("obj",[id,this.pageIndex,"Pattern",patternIR])}return id}handleColorN(operatorList,fn,args,cs,patterns,resources,task,localColorSpaceCache,localTilingPatternCache,localShadingPatternCache){var patternName=args.pop();if(patternName instanceof Name){var patterns=patterns.getRaw(patternName.name),localTilingPattern=patterns instanceof Ref&&localTilingPatternCache.getByRef(patterns);if(localTilingPattern)try{var color=cs.base?cs.base.getRgbHex(args,0):null,tilingPatternIR=getTilingPatternIR(localTilingPattern.operatorListIR,localTilingPattern.dict,color);return void operatorList.addOp(fn,tilingPatternIR)}catch(_unused1){}localTilingPattern=this.xref.fetchIfRef(patterns);if(localTilingPattern){color=localTilingPattern instanceof BaseStream?localTilingPattern.dict:localTilingPattern,tilingPatternIR=color.get("PatternType");if(tilingPatternIR===PatternType.TILING)return patterns=cs.base?cs.base.getRgbHex(args,0):null,this.handleTilingType(fn,patterns,resources,localTilingPattern,color,operatorList,task,localTilingPatternCache);if(tilingPatternIR===PatternType.SHADING)return cs=color.get("Shading"),void((args=this.parseShading({shading:cs,resources:resources,localColorSpaceCache:localColorSpaceCache,localShadingPatternCache:localShadingPatternCache}))&&(patterns=lookupMatrix(color.getArray("Matrix"),null),operatorList.addOp(fn,["Shading",args,patterns])));throw new FormatError("Unknown PatternType: ".concat(tilingPatternIR))}}throw new FormatError("Unknown PatternName: ".concat(patternName))}_parseVisibilityExpression(array,nestingCounter,currentResult){if(10<++nestingCounter)warn("Visibility expression is too deeply nested");else{var length=array.length,operator=this.xref.fetchIfRef(array[0]);if(length<2||!(operator instanceof Name))warn("Invalid visibility expression");else{switch(operator.name){case"And":case"Or":case"Not":currentResult.push(operator.name);break;default:return void warn("Invalid operator ".concat(operator.name," in visibility expression"))}for(var i=1;i{stateManager.state.fillColorSpace=colorSpace||ColorSpaceUtils.gray})),{v:void 0});case OPS.setStrokeColorSpace:localImage=self._getColorSpace(args[0],resources,localColorSpaceCache);return localImage instanceof ColorSpace?(stateManager.state.strokeColorSpace=localImage,1):(next(self._handleColorSpace(localImage).then(colorSpace=>{stateManager.state.strokeColorSpace=colorSpace||ColorSpaceUtils.gray})),{v:void 0});case OPS.setFillColor:args=[(cs=stateManager.state.fillColorSpace).getRgbHex(args,0)],fn=OPS.setFillRGBColor;break;case OPS.setStrokeColor:args=[(cs=stateManager.state.strokeColorSpace).getRgbHex(args,0)],fn=OPS.setStrokeRGBColor;break;case OPS.setFillGray:stateManager.state.fillColorSpace=ColorSpaceUtils.gray,args=[ColorSpaceUtils.gray.getRgbHex(args,0)],fn=OPS.setFillRGBColor;break;case OPS.setStrokeGray:stateManager.state.strokeColorSpace=ColorSpaceUtils.gray,args=[ColorSpaceUtils.gray.getRgbHex(args,0)],fn=OPS.setStrokeRGBColor;break;case OPS.setFillCMYKColor:stateManager.state.fillColorSpace=ColorSpaceUtils.cmyk,args=[ColorSpaceUtils.cmyk.getRgbHex(args,0)],fn=OPS.setFillRGBColor;break;case OPS.setStrokeCMYKColor:stateManager.state.strokeColorSpace=ColorSpaceUtils.cmyk,args=[ColorSpaceUtils.cmyk.getRgbHex(args,0)],fn=OPS.setStrokeRGBColor;break;case OPS.setFillRGBColor:stateManager.state.fillColorSpace=ColorSpaceUtils.rgb,args=[ColorSpaceUtils.rgb.getRgbHex(args,0)];break;case OPS.setStrokeRGBColor:stateManager.state.strokeColorSpace=ColorSpaceUtils.rgb,args=[ColorSpaceUtils.rgb.getRgbHex(args,0)];break;case OPS.setFillColorN:if(cs=stateManager.state.patternFillColorSpace){if("Pattern"===cs.name)return next(self.handleColorN(operatorList,OPS.setFillColorN,args,cs,patterns,resources,task,localColorSpaceCache,localTilingPatternCache,localShadingPatternCache)),{v:void 0};args=[cs.getRgbHex(args,0)],fn=OPS.setFillRGBColor}else{if(isNumberArray(args,null)){args=[ColorSpaceUtils.gray.getRgbHex(args,0)],fn=OPS.setFillRGBColor;break}args=[],fn=OPS.setFillTransparent}break;case OPS.setStrokeColorN:if(cs=stateManager.state.patternStrokeColorSpace){if("Pattern"===cs.name)return next(self.handleColorN(operatorList,OPS.setStrokeColorN,args,cs,patterns,resources,task,localColorSpaceCache,localTilingPatternCache,localShadingPatternCache)),{v:void 0};args=[cs.getRgbHex(args,0)],fn=OPS.setStrokeRGBColor}else{if(isNumberArray(args,null)){args=[ColorSpaceUtils.gray.getRgbHex(args,0)],fn=OPS.setStrokeRGBColor;break}args=[],fn=OPS.setStrokeTransparent}break;case OPS.shadingFill:try{var shadingRes=resources.get("Shading");if(!shadingRes)throw new FormatError("No shading resource found");if(!(shading=shadingRes.get(args[0].name)))throw new FormatError("No shading object found")}catch(reason){if(reason instanceof AbortException)return 1;if(self.options.ignoreErrors)return warn('getOperatorList - ignoring Shading: "'.concat(reason,'".')),1;throw reason}_localImage=self.parseShading({shading:shading,resources:resources,localColorSpaceCache:localColorSpaceCache,localShadingPatternCache:localShadingPatternCache});if(!_localImage)return 1;args=[_localImage],fn=OPS.shadingFill;break;case OPS.setGState:if(isValidName=args[0]instanceof Name,name=args[0].name,isValidName){localImage=localGStateCache.getByName(name);if(localImage)return 0{operatorList.addOp(OPS.beginMarkedContentProps,["OC",data])}).catch(reason=>{if(!(reason instanceof AbortException)){if(!self.options.ignoreErrors)throw reason;warn('getOperatorList - ignoring beginMarkedContentProps: "'.concat(reason,'".')),operatorList.addOp(OPS.beginMarkedContentProps,["OC",null])}})),{v:void 0};args=[args[0].name,args[1]instanceof Dict?args[1].get("MCID"):null];break;case OPS.beginMarkedContent:case OPS.endMarkedContent:default:if(null!==args){for(i=0,ii=args.length;i{if(!(reason instanceof AbortException)){if(!this.options.ignoreErrors)throw reason;warn('getOperatorList - ignoring errors during "'.concat(task.name,'" ')+'task: "'.concat(reason,'".')),closePendingRestoreOPS()}});throw new Error('getOperatorList: missing "operatorList" parameter');function closePendingRestoreOPS(){for(var i=0,ii=preprocessor.savedStatesDepth;iviewBox[2]||posY+glyphWidthviewBox[3])return}else if(posX+glyphWidthviewBox[2]||posYviewBox[3])return;if(textState.font&&textContentItem.prevTransform){var lastPosX=textContentItem.prevTransform[4],lastPosY=textContentItem.prevTransform[5];if(lastPosX!==posX||lastPosY!==posY){var _textOrientation,_textState$font=-1;switch(currentTransform[0]&&0===currentTransform[1]&&0===currentTransform[2]?_textState$font=0.5*textContentItem.width?appendEOL:(resetLastChars(),flushTextContentItem))():Math.abs(glyphWidth)>textContentItem.width?appendEOL():(_textState$font<=_textOrientation*textContentItem.notASpace&&resetLastChars(),_textState$font<=_textOrientation*textContentItem.trackingSpaceMin?shouldAddWhitepsace()?(resetLastChars(),flushTextContentItem(),pushWhitespace({height:Math.abs(_textState$font)})):textContentItem.height+=_textState$font:addFakeSpaces(_textState$font,textContentItem.prevTransform,_textOrientation)||(0===textContentItem.str.length?(resetLastChars(),pushWhitespace({height:Math.abs(_textState$font)})):textContentItem.height+=_textState$font),Math.abs(glyphWidth)>textContentItem.width*VERTICAL_SHIFT_RATIO&&flushTextContentItem())):(_textOrientation=posY-lastPosY,(_textState$font=(posX-lastPosX)/textContentItem.textAdvanceScale)<(glyphWidth=Math.sign(textContentItem.width))*textContentItem.negativeSpaceMax?(Math.abs(_textOrientation)>.5*textContentItem.height?appendEOL:(resetLastChars(),flushTextContentItem))():Math.abs(_textOrientation)>textContentItem.height?appendEOL():(_textState$font<=glyphWidth*textContentItem.notASpace&&resetLastChars(),_textState$font<=glyphWidth*textContentItem.trackingSpaceMin?shouldAddWhitepsace()?(resetLastChars(),flushTextContentItem(),pushWhitespace({width:Math.abs(_textState$font)})):textContentItem.width+=_textState$font:addFakeSpaces(_textState$font,textContentItem.prevTransform,glyphWidth)||(0===textContentItem.str.length?(resetLastChars(),pushWhitespace({width:Math.abs(_textState$font)})):textContentItem.width+=_textState$font),Math.abs(_textOrientation)>textContentItem.height*VERTICAL_SHIFT_RATIO&&flushTextContentItem()))}}return 1}function buildTextContentItem(_ref39){var{chars:_ref39,extraSpacing}=_ref39,font=textState.font;if(_ref39)for(var glyphs=font.charsToGlyphs(_ref39),scale=textState.fontMatrix[0]*textState.fontSize,i=0,ii=glyphs.length;i=(null!=(fn=null==sink?void 0:sink.desiredSize)?fn:1)){stop=!0;break}}stop?next(deferred):(flushTextContentItem(),enqueueChunk(),resolve())}).catch(reason=>{if(!(reason instanceof AbortException)){if(!this.options.ignoreErrors)throw reason;warn('getTextContent - ignoring errors during "'.concat(task.name,'" ')+'task: "'.concat(reason,'".')),flushTextContentItem(),enqueueChunk()}})}async extractDataStructures(dict,properties){var cidToGidBytes,xref=this.xref,toUnicodePromise=this.readToUnicode(properties.toUnicode);if(properties.composite){var cidSystemInfo=dict.get("CIDSystemInfo");cidSystemInfo instanceof Dict&&(properties.cidSystemInfo={registry:stringToPDFString(cidSystemInfo.get("Registry")),ordering:stringToPDFString(cidSystemInfo.get("Ordering")),supplement:cidSystemInfo.get("Supplement")});try{var cidToGidMap=dict.get("CIDToGIDMap");cidToGidMap instanceof BaseStream&&(cidToGidBytes=cidToGidMap.getBytes())}catch(ex){if(!this.options.ignoreErrors)throw ex;warn('extractDataStructures - ignoring CIDToGIDMap data: "'.concat(ex,'".'))}}var differences=[],cidSystemInfo=null;if(dict.has("Encoding")){if((encoding=dict.get("Encoding"))instanceof Dict){if(cidSystemInfo=(cidSystemInfo=encoding.get("BaseEncoding"))instanceof Name?cidSystemInfo.name:null,encoding.has("Differences")){var entry,index=0;for(entry of encoding.get("Differences")){var data=xref.fetchIfRef(entry);if("number"==typeof data)index=data;else{if(!(data instanceof Name))throw new FormatError("Invalid entry in 'Differences' array: ".concat(data));differences[index++]=data.name}}}}else if(encoding instanceof Name)cidSystemInfo=encoding.name;else{cidToGidMap="Encoding is not a Name nor a Dict";if(!this.options.ignoreErrors)throw new FormatError(cidToGidMap);warn(cidToGidMap)}"MacRomanEncoding"!==cidSystemInfo&&"MacExpertEncoding"!==cidSystemInfo&&"WinAnsiEncoding"!==cidSystemInfo&&(cidSystemInfo=null)}var isSymbolicFont,encoding,cidToGidMap=!properties.file||properties.isInternalFont,isSymbolsFontName=getSymbolsFonts()[properties.name],isNonsymbolicFont=((cidSystemInfo=cidSystemInfo&&cidToGidMap&&isSymbolsFontName?null:cidSystemInfo)?properties.defaultEncoding=getEncoding(cidSystemInfo):(isSymbolicFont=!!(properties.flags&FontFlags.Symbolic),isNonsymbolicFont=!!(properties.flags&FontFlags.Nonsymbolic),encoding=StandardEncoding,"TrueType"!==properties.type||isNonsymbolicFont||(encoding=WinAnsiEncoding),(isSymbolicFont||isSymbolsFontName)&&(encoding=MacRomanEncoding,cidToGidMap)&&(/Symbol/i.test(properties.name)?encoding=SymbolSetEncoding:/Dingbats/i.test(properties.name)?encoding=ZapfDingbatsEncoding:/Wingdings/i.test(properties.name)&&(encoding=WinAnsiEncoding)),properties.defaultEncoding=encoding),properties.differences=differences,properties.baseEncodingName=cidSystemInfo,properties.hasEncoding=!!cidSystemInfo||0>1;0==glyphID&&!toUnicode.has(code)||(result[code]=glyphID)}return result}extractWidths(dict,descriptor,properties){var xref=this.xref,glyphsWidths=[],defaultWidth=0,glyphsVMetrics=[];if(properties.composite){var dw=dict.get("DW"),defaultWidth="number"==typeof dw?Math.ceil(dw):1e3,widths=dict.get("W");if(Array.isArray(widths))for(var i=0,ii=widths.length;i{var glyphStream=charProcs.get(key),operatorList=new OperatorList;return type3Evaluator.getOperatorList({stream:glyphStream,task:task,resources:fontResources,operatorList:operatorList}).then(()=>{switch(operatorList.fnArray[0]){case OPS.setCharWidthAndBounds:_assertClassBrand(_TranslatedFont_brand,_this4,_removeType3ColorOperators).call(_this4,operatorList,fontBBoxSize);break;case OPS.setCharWidth:fontBBoxSize||_assertClassBrand(_TranslatedFont_brand,_this4,_guessType3FontBBox).call(_this4,operatorList)}charProcOperatorList[key]=operatorList.getIR();for(var dependency of operatorList.dependencies)type3Dependencies.add(dependency)}).catch(function(reason){warn('Type3 font resource "'.concat(key,'" is not available.'));var dummyOperatorList=new OperatorList;charProcOperatorList[key]=dummyOperatorList.getIR()})})}(key);_classPrivateFieldSet(_type3Loaded,this,loadCharProcsPromise.then(()=>{font.charProcOperatorList=charProcOperatorList,this._bbox&&(font.isCharBBox=!0,font.bbox=this._bbox)}))}return _classPrivateFieldGet(_type3Loaded,this)}}function _removeType3ColorOperators(operatorList){for(var fontBBoxSize=1=OPS.moveTo&&fn<=OPS.endPath,opSpec.variableArgs)numArgsEvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new FormatError("Invalid ".concat(opSpec));warn("Skipping ".concat(opSpec)),null!==args&&(args.length=0);continue}}return this.preprocessCommand(fn,args),operation.fn=fn,operation.args=args,!0}if(obj===EOF)return!1;if(null!==obj&&((args=null===args?[]:args).push(obj),33numberToString(c/255)).join(" ")+" ".concat(isFill?"rg":"RG")}function createDefaultAppearance(_ref42){var{fontSize:_ref42,fontName,fontColor}=_ref42;return"/".concat(escapePDFName(fontName)," ").concat(_ref42," Tf ").concat(getPdfColor(fontColor,!0))}class FakeUnicodeFont{constructor(xref,fontFamily){this.xref=xref,this.widths=null,this.firstChar=1/0,this.lastChar=-1/0,this.fontFamily=fontFamily;xref=new OffscreenCanvas(1,1);this.ctxMeasure=xref.getContext("2d",{willReadFrequently:!0}),FakeUnicodeFont._fontNameId||(FakeUnicodeFont._fontNameId=1),this.fontName=Name.get("InvalidPDFjsFont_".concat(fontFamily,"_").concat(FakeUnicodeFont._fontNameId++))}get fontDescriptorRef(){var fontDescriptor;return FakeUnicodeFont._fontDescriptorRef||((fontDescriptor=new Dict(this.xref)).set("Type",Name.get("FontDescriptor")),fontDescriptor.set("FontName",this.fontName),fontDescriptor.set("FontFamily","MyriadPro Regular"),fontDescriptor.set("FontBBox",[0,0,0,0]),fontDescriptor.set("FontStretch",Name.get("Normal")),fontDescriptor.set("FontWeight",400),fontDescriptor.set("ItalicAngle",0),FakeUnicodeFont._fontDescriptorRef=this.xref.getNewPersistentRef(fontDescriptor)),FakeUnicodeFont._fontDescriptorRef}get descendantFontRef(){var char,width,descendantFont=new Dict(this.xref),widths=(descendantFont.set("BaseFont",this.fontName),descendantFont.set("Type",Name.get("Font")),descendantFont.set("Subtype",Name.get("CIDFontType0")),descendantFont.set("CIDToGIDMap",Name.get("Identity")),descendantFont.set("FirstChar",this.firstChar),descendantFont.set("LastChar",this.lastChar),descendantFont.set("FontDescriptor",this.fontDescriptorRef),descendantFont.set("DW",1e3),[]),currentChar=null,currentWidths=null;for([char,width]of[...this.widths.entries()].sort())currentChar?char===currentChar+currentWidths.length?currentWidths.push(width):(widths.push(currentChar,currentWidths),currentChar=char,currentWidths=[width]):(currentChar=char,currentWidths=[width]);currentChar&&widths.push(currentChar,currentWidths),descendantFont.set("W",widths);var cidSystemInfo=new Dict(this.xref);return cidSystemInfo.set("Ordering","Identity"),cidSystemInfo.set("Registry","Adobe"),cidSystemInfo.set("Supplement",0),descendantFont.set("CIDSystemInfo",cidSystemInfo),this.xref.getNewPersistentRef(descendantFont)}get baseFontRef(){var baseFont=new Dict(this.xref);return baseFont.set("BaseFont",this.fontName),baseFont.set("Type",Name.get("Font")),baseFont.set("Subtype",Name.get("Type0")),baseFont.set("Encoding",Name.get("Identity-H")),baseFont.set("DescendantFonts",[this.descendantFontRef]),baseFont.set("ToUnicode",Name.get("Identity-H")),this.xref.getNewPersistentRef(baseFont)}get resources(){var resources=new Dict(this.xref),font=new Dict(this.xref);return font.set(this.fontName.name,this.baseFontRef),resources.set("Font",font),resources}_createContext(){return this.widths=new Map,this.ctxMeasure.font="1000px ".concat(this.fontFamily),this.ctxMeasure}createFontResources(text){var line,ctx=this._createContext();for(line of text.split(/\r\n?|\n/))for(var char of line.split("")){var code=char.charCodeAt(0);this.widths.has(code)||(char=ctx.measureText(char),char=Math.ceil(char.width),this.widths.set(code,char),this.firstChar=Math.min(code,this.firstChar),this.lastChar=Math.max(code,this.lastChar))}return this.resources}static getFirstPositionInfo(rect,rotation,fontSize){var[rect,y1,x2,y2]=rect,x2=x2-rect,rect=y2-y1,y2=(rotation%180!=0&&([x2,rect]=[rect,x2]),LINE_FACTOR*fontSize);return{coords:[0,rect+LINE_DESCENT_FACTOR*fontSize-y2],bbox:[0,0,x2,rect],matrix:0!==rotation?getRotationMatrix(rotation,rect,y2):void 0}}createAppearance(text,rect,rotation,fontSize,bgColor,strokeAlpha){var line,ctx=this._createContext(),lines=[],maxWidth=-1/0;for(line of text.split(/\r\n?|\n/)){lines.push(line);var code,lineWidth=ctx.measureText(line).width,maxWidth=Math.max(maxWidth,lineWidth);for(code of codePointIter(line)){var char=String.fromCodePoint(code),width=this.widths.get(code);void 0===width&&(char=ctx.measureText(char),width=Math.ceil(char.width),this.widths.set(code,width),this.firstChar=Math.min(code,this.firstChar),this.lastChar=Math.max(code,this.lastChar))}}var[text,rect,x2,y2]=rect,x2=x2-text,text=y2-rect,y2=(rotation%180!=0&&([x2,text]=[text,x2]),1),rect=(x2<(maxWidth*=fontSize/1e3)&&(y2=x2/maxWidth),1),lineHeight=LINE_FACTOR*fontSize,lineDescent=LINE_DESCENT_FACTOR*fontSize,maxHeight=lineHeight*lines.length;text Tj"));buffer.push("ET","Q");lineDescent=buffer.join("\n"),bgColor=new Dict(this.xref),bgColor.set("Subtype",Name.get("Form")),bgColor.set("Type",Name.get("XObject")),bgColor.set("BBox",[0,0,x2,text]),bgColor.set("Length",lineDescent.length),bgColor.set("Resources",fontSize),rotation&&(maxHeight=getRotationMatrix(rotation,x2,text),bgColor.set("Matrix",maxHeight)),strokeAlpha=new StringStream(lineDescent);return strokeAlpha.dict=bgColor,strokeAlpha}}function makeColorComp(n){return Math.floor(255*Math.max(0,Math.min(1,n))).toString(16).padStart(2,"0")}function scaleAndClamp(x){return Math.max(0,Math.min(255,255*x))}class ColorConverters{static CMYK_G(_ref43){var[_ref43,y,m,k]=_ref43;return["G",1-Math.min(1,.3*_ref43+.59*m+.11*y+k)]}static G_CMYK(_ref44){var[_ref44]=_ref44;return["CMYK",0,0,0,1-_ref44]}static G_RGB(_ref45){var[_ref45]=_ref45;return["RGB",_ref45,_ref45,_ref45]}static G_rgb(_ref46){var[_ref46]=_ref46;return[_ref46=scaleAndClamp(_ref46),_ref46,_ref46]}static G_HTML(_ref47){var[_ref47]=_ref47,_ref47=makeColorComp(_ref47);return"#".concat(_ref47).concat(_ref47).concat(_ref47)}static RGB_G(_ref48){var[_ref48,g,b]=_ref48;return["G",.3*_ref48+.59*g+.11*b]}static RGB_rgb(color){return color.map(scaleAndClamp)}static RGB_HTML(color){return"#".concat(color.map(makeColorComp).join(""))}static T_HTML(){return"#00000000"}static T_rgb(){return[null]}static CMYK_RGB(_ref49){var[_ref49,y,m,k]=_ref49;return["RGB",1-Math.min(1,_ref49+k),1-Math.min(1,m+k),1-Math.min(1,y+k)]}static CMYK_rgb(_ref50){var[_ref50,y,m,k]=_ref50;return[scaleAndClamp(1-Math.min(1,_ref50+k)),scaleAndClamp(1-Math.min(1,m+k)),scaleAndClamp(1-Math.min(1,y+k))]}static CMYK_HTML(components){components=this.CMYK_RGB(components).slice(1);return this.RGB_HTML(components)}static RGB_CMYK(_ref51){var[_ref51,g,b]=_ref51,_ref51=1-_ref51,g=1-g,b=1-b;return["CMYK",_ref51,g,b,Math.min(_ref51,g,b)]}}var DateFormats=["m/d","m/d/yy","mm/dd/yy","mm/yy","d-mmm","d-mmm-yy","dd-mmm-yy","yy-mm-dd","mmm-yy","mmmm-yy","mmm d, yyyy","mmmm d, yyyy","m/d/yy h:MM tt","m/d/yy HH:MM"],TimeFormats=["HH:MM","h:MM tt","HH:MM:ss","h:MM:ss tt"];class NameOrNumberTree{constructor(root,xref,type){this.root=root,this.xref=xref,this._type=type}getAll(){var map=new Map;if(this.root)for(var xref=this.xref,processed=new RefSet,queue=(processed.put(this.root),[this.root]);0>1,kid=xref.fetchIfRef(kids[m]),limits=kid.get("Limits");if(keyxref.fetchIfRef(limits[1]))){kidsOrEntries=kid;break}l=1+m}}if(r>1,tmp=tmp+(1&tmp),currentKey=xref.fetchIfRef(entries[tmp]);if(key{if("#x"===entity.substring(0,2))return String.fromCodePoint(parseInt(entity.substring(2),16));if("#"===entity.substring(0,1))return String.fromCodePoint(parseInt(entity.substring(1),10));switch(entity){case"lt":return"<";case"gt":return">";case"amp":return"&";case"quot":return'"';case"apos":return"'"}return this.onResolveEntity(entity)})}_parseContent(s,start){var attributes=[],pos=start;function skipWs(){for(;pos"!==s[pos]&&"/"!==s[pos];)++pos;var name=s.substring(start,pos);for(skipWs();pos"!==s[pos]&&"/"!==s[pos]&&"?"!==s[pos];){skipWs();for(var attrValue,attrName="";pos"!==s[pos]&&"?"!==s[pos]&&"/"!==s[pos];)++pos;for(var name=s.substring(start,pos);pos"!==s[pos+1]);)++pos;return{name:name,value:s.substring(attrStart,pos),parsed:pos-start}}parseXml(s){for(var i=0;i",j))<0)return void this.onError(XMLParserErrorCode.UnterminatedElement);this.onEndElement(s.substring(j,q)),j=q+1;break;case"?":++j;var pi=this._parseProcessingInstruction(s,j);if("?>"!==s.substring(j+pi.parsed,j+pi.parsed+2))return void this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);this.onPi(pi.name,pi.value),j+=pi.parsed+2;break;case"!":if("--"===s.substring(j+1,j+3)){if((q=s.indexOf("--\x3e",j+3))<0)return void this.onError(XMLParserErrorCode.UnterminatedComment);this.onComment(s.substring(j+3,q)),j=q+3}else if("[CDATA["===s.substring(j+1,j+8)){if((q=s.indexOf("]]>",j+8))<0)return void this.onError(XMLParserErrorCode.UnterminatedCdat);this.onCdata(s.substring(j+8,q)),j=q+3}else{if("DOCTYPE"!==s.substring(j+1,j+8))return void this.onError(XMLParserErrorCode.MalformedElement);var pi=s.indexOf("[",j+8),complexDoctype=!1;if((q=s.indexOf(">",j+8))<0)return void this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);if(0",j+8))<0)return void this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);complexDoctype=!0}var doctypeContent=s.substring(j+8,q+(complexDoctype?1:0));this.onDoctype(doctypeContent),j=q+(complexDoctype?2:1)}break;default:doctypeContent=this._parseContent(s,j);if(null===doctypeContent)return void this.onError(XMLParserErrorCode.MalformedElement);complexDoctype=!1;if("/>"===s.substring(j+doctypeContent.parsed,j+doctypeContent.parsed+2))complexDoctype=!0;else if(">"!==s.substring(j+doctypeContent.parsed,j+doctypeContent.parsed+1))return void this.onError(XMLParserErrorCode.UnterminatedElement);this.onBeginElement(doctypeContent.name,doctypeContent.attributes,complexDoctype),j+=doctypeContent.parsed+(complexDoctype?2:1)}}else{for(;jchild.textContent).join(""):this.nodeValue||""}get children(){return this.childNodes||[]}hasChildNodes(){var _this$childNodes2;return 0<(null==(_this$childNodes2=this.childNodes)?void 0:_this$childNodes2.length)}searchNode(paths,pos){if(pos>=paths.length)return this;var component=paths[pos];if(component.name.startsWith("#")&&pos");for(var child of this.childNodes)child.dump(buffer);buffer.push(""))}else this.nodeValue?buffer.push(">".concat(encodeToXmlString(this.nodeValue),"")):buffer.push("/>")}}}class SimpleXMLParser extends XMLParserBase{constructor(_ref52){var{hasAttributes:_ref52=!1,lowerCaseName=!1}=_ref52;super(),this._currentFragment=null,this._stack=null,this._errorCode=XMLParserErrorCode.NoError,this._hasAttributes=_ref52,this._lowerCaseName=lowerCaseName}parseFromString(data){if(this._currentFragment=[],this._stack=[],this._errorCode=XMLParserErrorCode.NoError,this.parseXml(data),this._errorCode===XMLParserErrorCode.NoError){var[data]=this._currentFragment;if(data)return{documentElement:data}}}onText(text){isWhitespaceString(text)||(text=new SimpleDOMNode("#text",text),this._currentFragment.push(text))}onCdata(text){text=new SimpleDOMNode("#text",text);this._currentFragment.push(text)}onBeginElement(name,attributes,isEmpty){this._lowerCaseName&&(name=name.toLowerCase());name=new SimpleDOMNode(name);name.childNodes=[],this._hasAttributes&&(name.attributes=attributes),this._currentFragment.push(name),isEmpty||(this._stack.push(this._currentFragment),this._currentFragment=name.childNodes)}onEndElement(name){this._currentFragment=this._stack.pop()||[];var childNode,lastElement=this._currentFragment.at(-1);if(!lastElement)return null;for(childNode of lastElement.childNodes)childNode.parentNode=lastElement;return lastElement}onError(code){this._errorCode=code}}class MetadataParser{constructor(data){data=this._repair(data);var xmlDocument=new SimpleXMLParser({lowerCaseName:!0}).parseFromString(data);this._metadataMap=new Map,this._data=data,xmlDocument&&this._parse(xmlDocument)}_repair(data){return data.replace(/^[^<]+/,"").replaceAll(/>\\376\\377([^<]+)/g,function(all,codes){for(var bytes=codes.replaceAll(/\\([0-3])([0-7])([0-7])/g,function(code,d1,d2,d3){return String.fromCharCode(64*d1+8*d2+ +d3)}).replaceAll(/&(amp|apos|gt|lt|quot);/g,function(str,name){switch(name){case"amp":return"&";case"apos":return"'";case"gt":return">";case"lt":return"<";case"quot":return'"'}throw new Error("_repair: ".concat(name," isn't defined."))}),charBuf=[">"],i=0,ii=bytes.length;i"rdf:li"===node.nodeName)}_parseArray(entry){var seqNode;entry.hasChildNodes()&&([seqNode]=entry.childNodes,seqNode=this._getSequence(seqNode)||[],this._metadataMap.set(entry.nodeName,seqNode.map(node=>node.textContent.trim())))}_parse(xmlDocument){var rdf=xmlDocument.documentElement;if("rdf:rdf"!==rdf.nodeName)for(rdf=rdf.firstChild;rdf&&"rdf:rdf"!==rdf.nodeName;)rdf=rdf.nextSibling;if(rdf&&"rdf:rdf"===rdf.nodeName&&rdf.hasChildNodes())for(var desc of rdf.childNodes)if("rdf:description"===desc.nodeName)for(var entry of desc.childNodes){var name=entry.nodeName;switch(name){case"#text":continue;case"dc:creator":case"dc:subject":this._parseArray(entry);continue}this._metadataMap.set(name,entry.textContent.trim())}}get serializable(){return{parsedData:this._metadataMap,rawData:this._data}}}var MAX_DEPTH=40,StructElementType={PAGE_CONTENT:1,STREAM_CONTENT:2,OBJECT:3,ANNOTATION:4,ELEMENT:5},_StructTreeRoot_brand=new WeakSet;class StructTreeRoot{constructor(xref,rootDict,rootRef){_classPrivateMethodInitSpec(this,_StructTreeRoot_brand),this.xref=xref,this.dict=rootDict,this.ref=rootRef instanceof Ref?rootRef:null,this.roleMap=new Map,this.structParentIds=null}init(){this.readRoleMap()}addAnnotationIdToPage(pageRef,id){_assertClassBrand(_StructTreeRoot_brand,this,_addIdToPage).call(this,pageRef,id,StructElementType.ANNOTATION)}readRoleMap(){var roleMapDict=this.dict.get("RoleMap");if(roleMapDict instanceof Dict)for(var[key,value]of roleMapDict)value instanceof Name&&this.roleMap.set(key,value.name)}static async canCreateStructureTree(_ref53){var{catalogRef:_ref53,pdfManager,newAnnotationsByPage}=_ref53;if(!(_ref53 instanceof Ref))return warn("Cannot save the struct tree: no catalog reference."),!1;var pageIndex,elements,nextKey=0,hasNothingToUpdate=!0;for([pageIndex,elements]of newAnnotationsByPage){var element,_element$accessibilit,pageRef=(await pdfManager.getPage(pageIndex))["ref"];if(!(pageRef instanceof Ref)){warn("Cannot save the struct tree: page ".concat(pageIndex," has no ref.")),hasNothingToUpdate=!0;break}for(element of elements)null!=(_element$accessibilit=element.accessibilityData)&&_element$accessibilit.type&&(element.parentTreeId=nextKey++,hasNothingToUpdate=!1)}if(hasNothingToUpdate){for(var _elements of newAnnotationsByPage.values())for(var _element of _elements)delete _element.parentTreeId;return!1}return!0}static async createStructureTree(_ref54){var ref,obj,{newAnnotationsByPage:_ref54,xref,catalogRef,pdfManager,changes}=_ref54,root=await pdfManager.ensureCatalog("cloneDict"),cache=new RefSetCache,catalogRef=(cache.put(catalogRef,root),xref.getNewTemporaryRef()),root=(root.set("StructTreeRoot",catalogRef),new Dict(xref)),parentTreeRef=(root.set("Type",Name.get("StructTreeRoot")),xref.getNewTemporaryRef()),kids=(root.set("ParentTree",parentTreeRef),[]),parentTree=(root.set("K",kids),cache.put(catalogRef,root),new Dict(xref)),nums=[],_ref54=(parentTree.set("Nums",nums),await _assertClassBrand(StructTreeRoot,this,_writeKids).call(this,{newAnnotationsByPage:_ref54,structTreeRootRef:catalogRef,structTreeRoot:null,kids:kids,nums:nums,xref:xref,pdfManager:pdfManager,changes:changes,cache:cache}));root.set("ParentTreeNextKey",_ref54),cache.put(parentTreeRef,parentTree);for([ref,obj]of cache.items())changes.put(ref,{data:obj})}async canUpdateStructTree(_ref55){var{pdfManager,newAnnotationsByPage:_ref55}=_ref55;if(!this.ref)return warn("Cannot update the struct tree: no root reference."),!1;var nextKey=this.dict.get("ParentTreeNextKey");if(!Number.isInteger(nextKey)||nextKey<0)return warn("Cannot update the struct tree: invalid next key."),!1;var parentTree=this.dict.get("ParentTree");if(!(parentTree instanceof Dict))return warn("Cannot update the struct tree: ParentTree isn't a dict."),!1;var nums=parentTree.get("Nums");if(!Array.isArray(nums))return warn("Cannot update the struct tree: nums isn't an array."),!1;var pageIndex,numberTree=new NumberTree(parentTree,this.xref);for(pageIndex of _ref55.keys()){var pageDict=(await pdfManager.getPage(pageIndex))["pageDict"];if(pageDict.has("StructParents")){pageDict=pageDict.get("StructParents");if(!Number.isInteger(pageDict)||!Array.isArray(numberTree.get(pageDict)))return warn("Cannot save the struct tree: page ".concat(pageIndex," has a wrong id.")),!1}}var _pageIndex,elements,hasNothingToUpdate=!0;for([_pageIndex,elements]of _ref55){var element,_element$accessibilit2,_pageDict=(await pdfManager.getPage(_pageIndex))["pageDict"];_collectParents.call(StructTreeRoot,{elements:elements,xref:this.xref,pageDict:_pageDict,numberTree:numberTree});for(element of elements)null!=(_element$accessibilit2=element.accessibilityData)&&_element$accessibilit2.type&&(0<=element.accessibilityData.structParent||(element.parentTreeId=nextKey++),hasNothingToUpdate=!1)}if(hasNothingToUpdate){for(var _elements2 of _ref55.values())for(var _element2 of _elements2)delete _element2.parentTreeId,delete _element2.structTreeParent;return!1}return!0}async updateStructureTree(_ref56){var{newAnnotationsByPage:_ref56,pdfManager,changes}=_ref56,{ref:structTreeRootRef,xref}=this,structTreeRoot=this.dict.clone(),cache=new RefSetCache,parentTreeRef=(cache.put(structTreeRootRef,structTreeRoot),structTreeRoot.getRaw("ParentTree")),parentTreeRef=(parentTreeRef instanceof Ref?parentTree=xref.fetch(parentTreeRef):(parentTree=parentTreeRef,parentTreeRef=xref.getNewTemporaryRef(),structTreeRoot.set("ParentTree",parentTreeRef)),parentTree=parentTree.clone(),cache.put(parentTreeRef,parentTree),parentTree.getRaw("Nums")),numsRef=null,parentTree=(parentTreeRef instanceof Ref&&(numsRef=parentTreeRef,parentTreeRef=xref.fetch(numsRef)),parentTreeRef=parentTreeRef.slice(),numsRef||parentTree.set("Nums",parentTreeRef),await _writeKids.call(StructTreeRoot,{newAnnotationsByPage:_ref56,structTreeRootRef:structTreeRootRef,structTreeRoot:this,kids:null,nums:parentTreeRef,xref:xref,pdfManager:pdfManager,changes:changes,cache:cache}));if(-1!==parentTree){structTreeRoot.set("ParentTreeNextKey",parentTree),numsRef&&cache.put(numsRef,parentTreeRef);for(var[ref,obj]of cache.items())changes.put(ref,{data:obj})}}}function _addIdToPage(pageRef,id,type){var ids;pageRef instanceof Ref&&!(id<0)&&(this.structParentIds||(this.structParentIds=new RefSetCache),(ids=this.structParentIds.get(pageRef))||this.structParentIds.put(pageRef,ids=[]),ids.push([id,type]))}async function _writeKids(_ref93){var structTreePageObjs,pageIndex,elements,{newAnnotationsByPage:_ref93,structTreeRootRef,structTreeRoot,kids,nums,xref,pdfManager,changes,cache}=_ref93,objr=Name.get("OBJR"),nextKey=-1;for([pageIndex,elements]of _ref93){var accessibilityData,ref,parentTreeId,structTreeParent,page=await pdfManager.getPage(pageIndex),pageRef=page["ref"],isPageRef=pageRef instanceof Ref;for({accessibilityData,ref,parentTreeId,structTreeParent}of elements)if(null!=accessibilityData&&accessibilityData.type){var structParent=accessibilityData["structParent"];if(structTreeRoot&&Number.isInteger(structParent)&&0<=structParent){var objs=(structTreePageObjs=structTreePageObjs||new Map).get(pageIndex),objs=(void 0===objs&&(objs=new StructTreePage(structTreeRoot,page.pageDict).collectObjects(pageRef),structTreePageObjs.set(pageIndex,objs)),null==objs?void 0:objs.get(structParent));if(objs){structParent=xref.fetch(objs).clone();_writeProperties.call(_StructTreeRoot,structParent,accessibilityData),changes.put(objs,{data:structParent});continue}}var nextKey=Math.max(nextKey,parentTreeId),objs=xref.getNewTemporaryRef(),structParent=new Dict(xref),objDict=(_writeProperties.call(_StructTreeRoot,structParent,accessibilityData),await _assertClassBrand(_StructTreeRoot,this,_updateParentTag).call(this,{structTreeParent:structTreeParent,tagDict:structParent,newTagRef:objs,structTreeRootRef:structTreeRootRef,fallbackKids:kids,xref:xref,cache:cache}),new Dict(xref));structParent.set("K",objDict),objDict.set("Type",objr),isPageRef&&objDict.set("Pg",pageRef),objDict.set("Obj",ref),cache.put(objs,structParent),nums.push(parentTreeId,objs)}}return nextKey+1}function _writeProperties(tagDict,_ref94){var{type:_ref94,title,lang,alt,expanded,actualText}=_ref94;tagDict.set("S",Name.get(_ref94)),title&&tagDict.set("T",stringToAsciiOrUTF16BE(title)),lang&&tagDict.set("Lang",stringToAsciiOrUTF16BE(lang)),alt&&tagDict.set("Alt",stringToAsciiOrUTF16BE(alt)),expanded&&tagDict.set("E",stringToAsciiOrUTF16BE(expanded)),actualText&&tagDict.set("ActualText",stringToAsciiOrUTF16BE(actualText))}function _collectParents(_ref95){var element,_id,elems,{elements:_ref95,xref,pageDict,numberTree}=_ref95,idToElements=new Map;for(element of _ref95)element.structTreeParentId&&(_id=parseInt(element.structTreeParentId.split("_mc")[1],10),(elems=idToElements.get(_id))||idToElements.set(_id,elems=[]),elems.push(element));_ref95=pageDict.get("StructParents");if(Number.isInteger(_ref95)){var kidRef,updateElement=(kid,pageKid,kidRef)=>{kid=idToElements.get(kid);if(kid){var parentRef=pageKid.getRaw("P"),parentDict=xref.fetchIfRef(parentRef);if(parentRef instanceof Ref&&parentDict instanceof Dict){var _element4,params={ref:kidRef,dict:pageKid};for(_element4 of kid)_element4.structTreeParent=params}return!0}return!1};for(kidRef of numberTree.get(_ref95))if(kidRef instanceof Ref){var pageKid=xref.fetch(kidRef),k=pageKid.get("K");if(Number.isInteger(k))updateElement(k,pageKid,kidRef);else if(Array.isArray(k))for(var kid of k){if(kid=xref.fetchIfRef(kid),Number.isInteger(kid)&&updateElement(kid,pageKid,kidRef))break;if(kid instanceof Dict){if(!isName(kid.get("Type"),"MCR"))break;kid=kid.get("MCID");if(Number.isInteger(kid)&&updateElement(kid,pageKid,kidRef))break}}}}}async function _updateParentTag(_ref96){var{structTreeParent:_ref96,tagDict,newTagRef,structTreeRootRef,fallbackKids,xref,cache}=_ref96,ref=null,_ref96=_ref96&&(ref=_ref96["ref"],_ref96.dict.getRaw("P"))||structTreeRootRef,structTreeRootRef=(tagDict.set("P",_ref96),xref.fetchIfRef(_ref96));structTreeRootRef?((tagDict=cache.get(_ref96))||(tagDict=structTreeRootRef.clone(),cache.put(_ref96,tagDict)),(_ref96=(structTreeRootRef=tagDict.getRaw("K"))instanceof Ref?cache.get(structTreeRootRef):null)||(_ref96=xref.fetchIfRef(structTreeRootRef),_ref96=Array.isArray(_ref96)?_ref96.slice():[structTreeRootRef],structTreeRootRef=xref.getNewTemporaryRef(),tagDict.set("K",structTreeRootRef),cache.put(structTreeRootRef,_ref96)),xref=_ref96.indexOf(ref),_ref96.splice(0<=xref?xref+1:_ref96.length,0,newTagRef)):fallbackKids.push(newTagRef)}_StructTreeRoot=StructTreeRoot;class StructElementNode{constructor(tree,dict){this.tree=tree,this.xref=tree.xref,this.dict=dict,this.kids=[],this.parseKids()}get role(){var nameObj=this.dict.get("S"),nameObj=nameObj instanceof Name?nameObj.name:"",root=this.tree["root"];return null!=(root=root.roleMap.get(nameObj))?root:nameObj}parseKids(){var pageObjId=null,objRef=this.dict.getRaw("Pg"),objRef=(objRef instanceof Ref&&(pageObjId=objRef.toString()),this.dict.get("K"));if(Array.isArray(objRef))for(var kid of objRef){kid=this.parseKid(pageObjId,this.xref.fetchIfRef(kid));kid&&this.kids.push(kid)}else{objRef=this.parseKid(pageObjId,objRef);objRef&&this.kids.push(objRef)}}parseKid(pageObjId,kid){var pageRef,kidRef;return Number.isInteger(kid)?this.tree.pageDict.objId!==pageObjId?null:new StructElement({type:StructElementType.PAGE_CONTENT,mcid:kid,pageObjId:pageObjId}):kid instanceof Dict?((pageRef=kid.getRaw("Pg"))instanceof Ref&&(pageObjId=pageRef.toString()),"MCR"===(pageRef=kid.get("Type")instanceof Name?kid.get("Type").name:null)?this.tree.pageDict.objId!==pageObjId?null:(kidRef=kid.getRaw("Stm"),new StructElement({type:StructElementType.STREAM_CONTENT,refObjId:kidRef instanceof Ref?kidRef.toString():null,pageObjId:pageObjId,mcid:kid.get("MCID")})):"OBJR"===pageRef?this.tree.pageDict.objId!==pageObjId?null:(kidRef=kid.getRaw("Obj"),new StructElement({type:StructElementType.OBJECT,refObjId:kidRef instanceof Ref?kidRef.toString():null,pageObjId:pageObjId})):new StructElement({type:StructElementType.ELEMENT,dict:kid})):null}}class StructElement{constructor(_ref57){var{type:_ref57,dict=null,mcid=null,pageObjId=null,refObjId=null}=_ref57;this.type=_ref57,this.dict=dict,this.mcid=mcid,this.pageObjId=pageObjId,this.refObjId=refObjId,this.parentNode=null}}class StructTreePage{constructor(structTreeRoot,pageDict){var _structTreeRoot$xref;this.root=structTreeRoot,this.xref=null!=(_structTreeRoot$xref=null==structTreeRoot?void 0:structTreeRoot.xref)?_structTreeRoot$xref:null,this.rootDict=null!=(_structTreeRoot$xref=null==structTreeRoot?void 0:structTreeRoot.dict)?_structTreeRoot$xref:null,this.pageDict=pageDict,this.nodes=[]}collectObjects(pageRef){if(!(this.root&&this.rootDict&&pageRef instanceof Ref))return null;var parentTree=this.rootDict.get("ParentTree");if(!parentTree)return null;var _this$root$structPare=null==(_this$root$structPare=this.root.structParentIds)?void 0:_this$root$structPare.get(pageRef);if(!_this$root$structPare)return null;var elemId,map=new Map,numberTree=new NumberTree(parentTree,this.xref);for([elemId]of _this$root$structPare){var obj=numberTree.getRaw(elemId);obj instanceof Ref&&map.set(elemId,obj)}return map}parse(pageRef){if(this.root&&this.rootDict&&pageRef instanceof Ref){var parentTree=this.rootDict.get("ParentTree");if(parentTree){var id=this.pageDict.get("StructParents"),_this$root$structPare2=null==(_this$root$structPare2=this.root.structParentIds)?void 0:_this$root$structPare2.get(pageRef);if(Number.isInteger(id)||_this$root$structPare2){var map=new Map,numberTree=new NumberTree(parentTree,this.xref);if(Number.isInteger(id)){pageRef=numberTree.get(id);if(Array.isArray(pageRef))for(var ref of pageRef)ref instanceof Ref&&this.addNode(this.xref.fetch(ref),map)}if(_this$root$structPare2)for(var[elemId,type]of _this$root$structPare2){var _elem$kids,elemId=numberTree.get(elemId);elemId&&1===(null==(elemId=this.addNode(this.xref.fetchIfRef(elemId),map))||null==(_elem$kids=elemId.kids)?void 0:_elem$kids.length)&&elemId.kids[0].type===StructElementType.OBJECT&&(elemId.kids[0].type=type)}}}}}addNode(dict,map){var level=2v instanceof Ref,isValidExplicitDest=_isValidExplicitDest.bind(null,isRef,isName);function fetchDest(dest){return dest instanceof Dict&&(dest=dest.get("D")),isValidExplicitDest(dest)?dest:null}function fetchRemoteDest(action){action=action.get("D");if(action){if("string"==typeof(action=action instanceof Name?action.name:action))return stringToPDFString(action,!0);if(isValidExplicitDest(action))return JSON.stringify(action)}return null}var _actualNumPages=new WeakMap,_catDict=new WeakMap,_Catalog_brand=new WeakSet;class Catalog{constructor(pdfManager,_xref){if(_classPrivateMethodInitSpec(this,_Catalog_brand),_classPrivateFieldInitSpec(this,_actualNumPages,null),_classPrivateFieldInitSpec(this,_catDict,null),_defineProperty(this,"builtInCMapCache",new Map),_defineProperty(this,"fontCache",new RefSetCache),_defineProperty(this,"globalColorSpaceCache",new GlobalColorSpaceCache),_defineProperty(this,"globalImageCache",new GlobalImageCache),_defineProperty(this,"nonBlendModesSet",new RefSet),_defineProperty(this,"pageDictCache",new RefSetCache),_defineProperty(this,"pageIndexCache",new RefSetCache),_defineProperty(this,"pageKidsCountCache",new RefSetCache),_defineProperty(this,"standardFontDataCache",new Map),_defineProperty(this,"systemFontCache",new Map),this.pdfManager=pdfManager,this.xref=_xref,_classPrivateFieldSet(_catDict,this,_xref.getCatalogObj()),!(_classPrivateFieldGet(_catDict,this)instanceof Dict))throw new FormatError("Catalog object is not a dictionary.");this.toplevelPagesDict}cloneDict(){return _classPrivateFieldGet(_catDict,this).clone()}get version(){var version=_classPrivateFieldGet(_catDict,this).get("Version");if(version instanceof Name){if(PDF_VERSION_REGEXP.test(version.name))return shadow(this,"version",version.name);warn("Invalid PDF catalog version: ".concat(version.name))}return shadow(this,"version",null)}get lang(){var lang=_classPrivateFieldGet(_catDict,this).get("Lang");return shadow(this,"lang",lang&&"string"==typeof lang?stringToPDFString(lang):null)}get needsRendering(){var needsRendering=_classPrivateFieldGet(_catDict,this).get("NeedsRendering");return shadow(this,"needsRendering","boolean"==typeof needsRendering&&needsRendering)}get collection(){var collection=null;try{var obj=_classPrivateFieldGet(_catDict,this).get("Collection");obj instanceof Dict&&0Number.isInteger(page)&&0=arr[i-1])&&page<=this.numPages)&&(prefValue=value);break;case"NumCopies":Number.isInteger(value)&&0=currentNode.length)queue.pop();else{currentNode=currentNode[posInKids],posInKids=void 0;if(currentNode instanceof Ref){if(visitedNodes.has(currentNode)){addPageError(new FormatError("Pages tree contains circular reference."));break}visitedNodes.put(currentNode);try{posInKids=await xref.fetchAsync(currentNode)}catch(ex){addPageError(ex);break}}else posInKids=currentNode;if(!(posInKids instanceof Dict)){addPageError(new FormatError("Page dictionary kid reference points to wrong type of object."));break}var type=posInKids.getRaw("Type");if(type instanceof Ref)try{type=await xref.fetchAsync(type)}catch(ex){addPageError(ex);break}isName(type,"Page")||!posInKids.has("Kids")?(type=posInKids,(currentNode=currentNode instanceof Ref?currentNode:null)&&!pageIndexCache.has(currentNode)&&pageIndexCache.put(currentNode,pageIndex),map.set(pageIndex++,[type,currentNode])):queue.push({currentNode:posInKids,posInKids:0}),queueItem.posInKids++}}return map}getPageIndex(pageRef){var xref,total,next,cachedPageIndex=this.pageIndexCache.get(pageRef);return void 0!==cachedPageIndex?Promise.resolve(cachedPageIndex):(xref=this.xref,total=0,(next=ref=>function(kidRef){var parentRef,total=0;return xref.fetchAsync(kidRef).then(function(node){if(isRefsEqual(kidRef,pageRef)&&!isDict(node,"Page")&&!(node instanceof Dict&&!node.has("Type")&&node.has("Contents")))throw new FormatError("The reference does not point to a /Page dictionary.");if(!node)return null;if(node instanceof Dict)return parentRef=node.getRaw("Parent"),node.getAsync("Parent");throw new FormatError("Node must be a dictionary.")}).then(function(parent){if(!parent)return null;if(parent instanceof Dict)return parent.getAsync("Kids");throw new FormatError("Parent must be a dictionary.")}).then(function(kids){if(!kids)return null;var kid,kidPromises=[],found=!1;for(kid of kids){if(!(kid instanceof Ref))throw new FormatError("Kid must be a reference.");if(isRefsEqual(kid,kidRef)){found=!0;break}kidPromises.push(xref.fetchAsync(kid).then(function(obj){if(!(obj instanceof Dict))throw new FormatError("Kid node must be a dictionary.");obj.has("Count")?total+=obj.get("Count"):total++}))}if(found)return Promise.all(kidPromises).then(()=>[total,parentRef]);throw new FormatError("Kid reference not found in parent's kids.")})}(ref).then(args=>{var parentRef;return args?([args,parentRef]=args,total+=args,next(parentRef)):(this.pageIndexCache.put(pageRef,total),total)}))(pageRef))}get baseUrl(){var uri=_classPrivateFieldGet(_catDict,this).get("URI");if(uri instanceof Dict){uri=uri.get("Base");if("string"==typeof uri){uri=createValidAbsoluteUrl(uri,null,{tryConvertEncoding:!0});if(uri)return shadow(this,"baseUrl",uri.href)}}return shadow(this,"baseUrl",this.pdfManager.docBaseUrl)}static parseDestDictionary(_ref58){var{destDict:_ref58,resultObj,docBaseUrl=null,docAttachments=null}=_ref58;if(_ref58 instanceof Dict){var dest,action=_ref58.get("A");if(action instanceof Dict||(_ref58.has("Dest")?action=_ref58.get("Dest"):(action=_ref58.get("AA"))instanceof Dict&&(action.has("D")?action=action.get("D"):action.has("U")&&(action=action.get("U")))),action instanceof Dict){var actionType=action.get("S");if(!(actionType instanceof Name))return void warn("parseDestDictionary: Invalid type in Action dictionary.");var actionName=actionType.name;switch(actionName){case"ResetForm":var obj,flags=action.get("Flags"),flags=0==(1&("number"==typeof flags?flags:0)),fields=[],refs=[];for(obj of action.get("Fields")||[])obj instanceof Ref?refs.push(obj.toString()):"string"==typeof obj&&fields.push(stringToPDFString(obj));resultObj.resetForm={fields:fields,refs:refs,include:flags};break;case"URI":(url=action.get("URI"))instanceof Name&&(url="/"+url.name);break;case"GoTo":dest=action.get("D");break;case"Launch":case"GoToR":var url,flags=action.get("F"),rawFilename=(flags instanceof Dict?(rawFilename=new FileSpec(flags,null,!0).serializable["rawFilename"],url=rawFilename):"string"==typeof flags&&(url=flags),fetchRemoteDest(action)),flags=(rawFilename&&"string"==typeof url&&(url=url.split("#",1)[0]+"#"+rawFilename),action.get("NewWindow"));"boolean"==typeof flags&&(resultObj.newWindow=flags);break;case"GoToE":var attachment,rawFilename=action.get("T");(attachment=docAttachments&&rawFilename instanceof Dict&&(flags=rawFilename.get("R"),rawFilename=rawFilename.get("N"),isName(flags,"C"))&&"string"==typeof rawFilename?docAttachments[stringToPDFString(rawFilename,!0)]:attachment)?(resultObj.attachment=attachment,(flags=fetchRemoteDest(action))&&(resultObj.attachmentDest=flags)):warn('parseDestDictionary - unimplemented "GoToE" action.');break;case"Named":rawFilename=action.get("N");rawFilename instanceof Name&&(resultObj.action=rawFilename.name);break;case"SetOCGState":flags=action.get("State"),rawFilename=action.get("PreserveRB");if(Array.isArray(flags)&&0!==flags.length){var elem,stateArr=[];for(elem of flags)if(elem instanceof Name)switch(elem.name){case"ON":case"OFF":case"Toggle":stateArr.push(elem.name)}else elem instanceof Ref&&stateArr.push(elem.toString());stateArr.length===flags.length&&(resultObj.setOCGState={state:stateArr,preserveRB:"boolean"!=typeof rawFilename||rawFilename})}break;case"JavaScript":var js,flags=action.get("JS"),rawFilename=(flags instanceof BaseStream?js=flags.getString():"string"==typeof flags&&(js=flags),js&&recoverJsURL(stringToPDFString(js,!0)));if(rawFilename){url=rawFilename.url,resultObj.newWindow=rawFilename.newWindow;break}default:"JavaScript"!==actionName&&"SubmitForm"!==actionName&&warn('parseDestDictionary - unsupported action: "'.concat(actionName,'".'))}}else _ref58.has("Dest")&&(dest=_ref58.get("Dest"));"string"==typeof url&&((actionType=createValidAbsoluteUrl(url,docBaseUrl,{addDefaultProtocol:!0,tryConvertEncoding:!0}))&&(resultObj.url=actionType.href),resultObj.unsafeUrl=url),dest&&("string"==typeof(dest=dest instanceof Name?dest.name:dest)?resultObj.dest=stringToPDFString(dest,!0):isValidExplicitDest(dest)&&(resultObj.dest=dest))}else warn("parseDestDictionary: `destDict` must be a dictionary.")}}function _readMarkInfo(){var obj=_classPrivateFieldGet(_catDict,this).get("MarkInfo");if(!(obj instanceof Dict))return null;var key,markInfo={Marked:!1,UserProperties:!1,Suspects:!1};for(key in markInfo){var value=obj.get(key);"boolean"==typeof value&&(markInfo[key]=value)}return markInfo}function _readStructTreeRoot(){var rawObj=_classPrivateFieldGet(_catDict,this).getRaw("StructTreeRoot"),obj=this.xref.fetchIfRef(rawObj);return obj instanceof Dict?((obj=new StructTreeRoot(this.xref,obj,rawObj)).init(),obj):null}function _readDocumentOutline(){var obj=_classPrivateFieldGet(_catDict,this).get("Outlines");if(!(obj instanceof Dict))return null;if(!((obj=obj.getRaw("First"))instanceof Ref))return null;for(var root={items:[]},queue=[{obj:obj,parent:root}],processed=new RefSet,xref=(processed.put(obj),this.xref),blackColor=new Uint8ClampedArray(3);0i instanceof Name)&&(groupRef.intent=name.map(i=>i.name)),group.get("Usage"));if(name instanceof Dict){var usageObj=groupRef.usage,group=name.get("Print");if(group instanceof Dict){var printState=group.get("PrintState");if(printState instanceof Name)switch(printState.name){case"ON":case"OFF":usageObj.print={printState:printState.name}}}group=name.get("View");if(group instanceof Dict){var viewState=group.get("ViewState");if(viewState instanceof Name)switch(viewState.name){case"ON":case"OFF":usageObj.view={viewState:viewState.name}}}}return groupRef}function _readOptionalContentConfig(config,groupRefCache){function parseOnOff(refs){var onParsed=[];if(Array.isArray(refs))for(var value of refs)value instanceof Ref&&groupRefCache.has(value)&&onParsed.push(value.toString());return onParsed}function parseOrder(refs,argument_1){var nestedLevels=1MAX_NESTED_LEVELS)return warn("parseNestedOrder - reached MAX_NESTED_LEVELS."),null;ref=xref.fetchIfRef(ref);if(!Array.isArray(ref))return null;var nestedName=xref.fetchIfRef(ref[0]);if("string"!=typeof nestedName)return null;ref=parseOrder(ref.slice(1),nestedLevels);return null!=ref&&ref.length?{name:stringToPDFString(nestedName),order:ref}:null}(value,nestedLevels))&&order.push(nestedOrder);if(!(0ns.startsWith("http://www.xfa.org/schema/xci/")},connectionSet:{id:1,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-connection-set/")},datasets:{id:2,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-data/")},form:{id:3,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-form/")},localeSet:{id:4,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-locale-set/")},pdf:{id:5,check:ns=>"http://ns.adobe.com/xdp/pdf/"===ns},signature:{id:6,check:ns=>"http://www.w3.org/2000/09/xmldsig#"===ns},sourceSet:{id:7,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-source-set/")},stylesheet:{id:8,check:ns=>"http://www.w3.org/1999/XSL/Transform"===ns},template:{id:9,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-template/")},xdc:{id:10,check:ns=>ns.startsWith("http://www.xfa.org/schema/xdc/")},xdp:{id:11,check:ns=>"http://ns.adobe.com/xdp/"===ns},xfdf:{id:12,check:ns=>"http://ns.adobe.com/xfdf/"===ns},xhtml:{id:13,check:ns=>"http://www.w3.org/1999/xhtml"===ns},xmpmeta:{id:14,check:ns=>"http://ns.adobe.com/xmpmeta/"===ns}},dimConverters={pt:x=>x,cm:x=>x/2.54*72,mm:x=>x/25.4*72,in:x=>72*x,px:x=>x},measurementPattern=/([+-]?\d+\.?\d*)(.*)/;function stripQuotes(str){return str.startsWith("'")||str.startsWith('"')?str.slice(1,-1):str}function getInteger(_ref59){var{data:_ref59,defaultValue,validate}=_ref59;return _ref59&&(_ref59=_ref59.trim(),_ref59=parseInt(_ref59,10),!isNaN(_ref59))&&validate(_ref59)?_ref59:defaultValue}function getFloat(_ref60){var{data:_ref60,defaultValue,validate}=_ref60;return _ref60&&(_ref60=_ref60.trim(),_ref60=parseFloat(_ref60),!isNaN(_ref60))&&validate(_ref60)?_ref60:defaultValue}function getKeyword(_ref61){var{data:_ref61,defaultValue,validate}=_ref61;return _ref61&&validate(_ref61=_ref61.trim())?_ref61:defaultValue}function getStringOption(data,options){return getKeyword({data:data,defaultValue:options[0],validate:k=>options.includes(k)})}function getMeasurement(str){var match,unit,def=(def=1parseFloat(x.trim())).filter(x=>!isNaN(x))).length&&data.push(1),0===data.length)?{num:1,den:1}:([data,den]=data,{num:data,den:den})}function getRelevant(data){return data?data.trim().split(/\s+/).map(e=>({excluded:"-"===e[0],viewname:e.substring(1)})):[]}function getColor(data){var color,[r,g,b]=1MathClamp(parseInt(c.trim(),10),0,255)).map(c=>isNaN(c)?0:c)).length<3||([r,g,b]=color),{r:r,g:g,b:b}}function getBBox(data){var y,width,height;return!data||(data=data.split(",",4).map(m=>getMeasurement(m.trim(),"-1"))).length<4||data[2]<0||data[3]<0?{x:-1,y:-1,width:-1,height:-1}:([data,y,width,height]=data,{x:data,y:y,width:width,height:height})}class HTMLResult{static get FAILURE(){return shadow(this,"FAILURE",new HTMLResult(!1,null,null,null))}static get EMPTY(){return shadow(this,"EMPTY",new HTMLResult(!0,null,null,null))}constructor(success,html,bbox,breakNode){this.success=success,this.html=html,this.bbox=bbox,this.breakNode=breakNode}isBreak(){return!!this.breakNode}static breakNode(node){return new HTMLResult(!1,null,null,node)}static success(html){var bbox=1root.datasets?root.datasets.data:root],["$record",(root,current)=>(root.datasets?root.datasets.data:root)[$getChildren]()[0]],["$template",(root,current)=>root.template],["$connectionSet",(root,current)=>root.connectionSet],["$form",(root,current)=>root.form],["$layout",(root,current)=>root.layout],["$host",(root,current)=>root.host],["$dataWindow",(root,current)=>root.dataWindow],["$event",(root,current)=>root.event],["!",(root,current)=>root.datasets],["$xfa",(root,current)=>root],["xfa",(root,current)=>root],["$",(root,current)=>current]]),somCache=new WeakMap;function parseIndex(index){return"*"===(index=index.trim())?1/0:parseInt(index,10)||0}function parseExpression(expr,dotDotAllowed){var noExpr=!(2indexnode[index]):nodes.flat()}())&&_ret2)return _ret2.v;return 0===root.length?null:root}function createDataNode(root,container,expr){var parsed=parseExpression(expr);if(parsed&&!parsed.some(x=>x.operator===operators.dotDot)){var expr=shortcuts.get(parsed[0].name),i=0;expr?(root=expr(root,container),i=1):root=container||root;for(var ii=parsed.length;ic[$text]()).join("")}get[_attributeNames](){var proto=Object.getPrototypeOf(this);if(!proto._attributes){var name,attributes=proto._attributes=new Set;for(name of Object.getOwnPropertyNames(this)){if(null===this[name]||this[name]instanceof XFAObject||this[name]instanceof XFAObjectArray)break;attributes.add(name)}}return shadow(this,_attributeNames,proto._attributes)}[$isDescendent](parent){for(var node=this;node;){if(node===parent)return!0;node=node[$getParent]()}return!1}[$getParent](){return this[_parent]}[$getSubformParent](){return this[$getParent]()}[$getChildren](){var name=0allAttr.has(x)&&!setAttr.has(x))}[$resolvePrototypes](ids){var child,ancestors=1XFAObject[_cloneAttribute](x)):"object"==typeof obj&&null!==obj?Object.assign({},obj):obj}[$clone](){var $symbol,name,value,child,clone=Object.create(Object.getPrototypeOf(this));for($symbol of Object.getOwnPropertySymbols(this))try{clone[$symbol]=this[$symbol]}catch(_unused10){shadow(clone,$symbol,this[$symbol])}clone[$uid]="".concat(clone[$nodeName]).concat(uid++),clone[_children]=[];for(name of Object.getOwnPropertyNames(this))this[_attributeNames].has(name)?clone[name]=XFAObject[_cloneAttribute](this[name]):(value=this[name],clone[name]=value instanceof XFAObjectArray?new XFAObjectArray(value[_max]):null);for(child of this[_children]){var _name2=child[$nodeName],clonedChild=child[$clone]();clone[_children].push(clonedChild),null===(clonedChild[_parent]=clone)[_name2]?clone[_name2]=clonedChild:clone[_name2][_children].push(clonedChild)}return clone}[$getChildren](){var name=0c[$nodeName]===name):this[_children]}[$getChildrenByClass](name){return this[name]}[$getChildrenByName](name,allTransparent){return Array.from(this[$getChildrenByNameIt](name,allTransparent,!(2x[$dump]())}[$clone](){var clone=new XFAObjectArray(this[_max]);return clone[_children]=this[_children].map(c=>c[$clone]()),clone}get children(){return this[_children]}clear(){this[_children].length=0}}class XFAAttribute{constructor(node,name,value){this[_parent]=node,this[$nodeName]=name,this[$content]=value,this[$consumed]=!1,this[$uid]="attribute".concat(uid++)}[$getParent](){return this[_parent]}[$isDataValue](){return!0}[$getDataValue](){return this[$content].trim()}[$setValue](value){value=value.value||"",this[$content]=value.toString()}[$text](){return this[$content]}[$isDescendent](parent){return this[_parent]===parent||this[_parent][$isDescendent](parent)}}class XmlObject extends XFAObject{constructor(nsId,name){var attributes=2"),this[$content])"string"==typeof this[$content]?buf.push(encodeToXmlString(this[$content])):this[$content][$toString](buf);else for(var child of this[_children])child[$toString](buf);buf.push(""))}else buf.push("/>")}}[$onChild](child){var node;return this[$content]&&(node=new XmlObject(this[$namespaceId],"#text"),this[$appendChild](node),node[$content]=this[$content],this[$content]=""),this[$appendChild](child),!0}[$onText](str){this[$content]+=str}[$finalize](){var node;this[$content]&&0c[$nodeName]===name):this[_children]}[$getAttributes](){return this[_attributes]}[$getChildrenByClass](name){var value=this[_attributes].get(name);return void 0!==value?value:this[$getChildren](name)}*[$getChildrenByNameIt](name,allTransparent){var child,value=this[_attributes].get(name);value&&(yield value);for(child of this[_children])child[$nodeName]===name&&(yield child),allTransparent&&(yield*child[$getChildrenByNameIt](name,allTransparent))}*[$getAttributeIt](name,skipConsumed){var child,value=this[_attributes].get(name);!value||skipConsumed&&value[$consumed]||(yield value);for(child of this[_children])yield*child[$getAttributeIt](name,skipConsumed)}*[$getRealChildrenByNameIt](name,allTransparent,skipConsumed){for(var child of this[_children])child[$nodeName]!==name||skipConsumed&&child[$consumed]||(yield child),allTransparent&&(yield*child[$getRealChildrenByNameIt](name,allTransparent,skipConsumed))}[$isDataValue](){return null===this[_dataValue]?0===this[_children].length||this[_children][0][$namespaceId]===NamespaceIds.xhtml.id:this[_dataValue]}[$getDataValue](){return null!==this[_dataValue]||0===this[_children].length?this[$content].trim():this[_children][0][$namespaceId]===NamespaceIds.xhtml.id?this[_children][0][$text]().trim():null}[$setValue](value){value=value.value||"",this[$content]=value.toString()}[$dump](){var child,name,value,hasNS=0this[_options].includes(k)})}[$clean](builder){super[$clean](builder),delete this[_options]}}class StringObject extends ContentObject{[$finalize](){this[$content]=this[$content].trim()}}class IntegerObject extends ContentObject{constructor(nsId,name,defaultValue,validator){super(nsId,name),this[_defaultValue]=defaultValue,this[_validator]=validator}[$finalize](){this[$content]=getInteger({data:this[$content],defaultValue:this[_defaultValue],validate:this[_validator]})}[$clean](builder){super[$clean](builder),delete this[_defaultValue],delete this[_validator]}}class Option01 extends IntegerObject{constructor(nsId,name){super(nsId,name,0,n=>1===n)}}class Option10 extends IntegerObject{constructor(nsId,name){super(nsId,name,1,n=>0===n)}}function measureToString(m){return"string"==typeof m?"0px":Number.isInteger(m)?"".concat(m,"px"):"".concat(m.toFixed(2),"px")}var converters={anchorType(node,style){var parent=node[$getSubformParent]();if(parent&&(!parent.layout||"position"===parent.layout))switch("transform"in style||(style.transform=""),node.anchorType){case"bottomCenter":style.transform+="translate(-50%, -100%)";break;case"bottomLeft":style.transform+="translate(0,-100%)";break;case"bottomRight":style.transform+="translate(-100%,-100%)";break;case"middleCenter":style.transform+="translate(-50%,-50%)";break;case"middleLeft":style.transform+="translate(0,-50%)";break;case"middleRight":style.transform+="translate(-100%,-50%)";break;case"topCenter":style.transform+="translate(-50%,0)";break;case"topRight":style.transform+="translate(-100%,0)"}},dimensions(node,style){var _parent$layout,w,parent=node[$getSubformParent](),width=node.w,height=node.h;null!=(_parent$layout=parent.layout)&&_parent$layout.includes("row")&&(_parent$layout=parent[$extra],-1===(parent=node.colSpan)?(w=Math.sumPrecise(_parent$layout.columnWidths.slice(_parent$layout.currentColumn)),_parent$layout.currentColumn=0):(w=Math.sumPrecise(_parent$layout.columnWidths.slice(_parent$layout.currentColumn,_parent$layout.currentColumn+parent)),_parent$layout.currentColumn=(_parent$layout.currentColumn+node.colSpan)%_parent$layout.columnWidths.length),isNaN(w)||(width=node.w=w)),style.width=""!==width?measureToString(width):"auto",style.height=""!==height?measureToString(height):"auto"},position(node,style){var parent=node[$getSubformParent]();null!=parent&&parent.layout&&"position"!==parent.layout||(style.position="absolute",style.left=measureToString(node.x),style.top=measureToString(node.y))},rotate(node,style){node.rotate&&("transform"in style||(style.transform=""),style.transform+="rotate(-".concat(node.rotate,"deg)"),style.transformOrigin="top left")},presence(node,style){switch(node.presence){case"invisible":style.visibility="hidden";break;case"hidden":case"inactive":style.display="none"}},hAlign(node,style){if("para"===node[$nodeName])switch(node.hAlign){case"justifyAll":style.textAlign="justify-all";break;case"radix":style.textAlign="left";break;default:style.textAlign=node.hAlign}else switch(node.hAlign){case"left":style.alignSelf="start";break;case"center":style.alignSelf="center";break;case"right":style.alignSelf="end"}},margin(node,style){node.margin&&(style.margin=node.margin[$toStyle]().margin)}};function setMinMaxDimensions(node,style){"position"===node[$getSubformParent]().layout&&(0node[$getTemplateRoot]()[$extra].currentContentArea.h;case"rl-row":case"row":return node[$getTemplateRoot]()[$extra].noLayoutFailure?!0:""===node.h||Math.round(h-space.height)<=2;default:return!0}}var TEMPLATE_NS_ID=NamespaceIds.template.id,SVG_NS="http://www.w3.org/2000/svg",MAX_ATTEMPTS_FOR_LRTB_LAYOUT=2,MAX_EMPTY_PAGES=3,DEFAULT_TAB_INDEX=5e3,HEADING_PATTERN=/^H(\d+)$/,MIMES=new Set(["image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/apng","image/x-png","image/bmp","image/x-ms-bmp","image/tiff","image/tif","application/octet-stream"]),IMAGES_HEADERS=[[[66,77],"image/bmp"],[[255,216,255],"image/jpeg"],[[73,73,42,0],"image/tiff"],[[77,77,0,42],"image/tiff"],[[71,73,70,56,57,97],"image/gif"],[[137,80,78,71,13,10,26,10],"image/png"]];function getBorderDims(node){return node&&node.border&&(node=node.border[$getExtra]())?{w:node.widths[0]+node.widths[2]+node.insets[0]+node.insets[2],h:node.widths[1]+node.widths[3]+node.insets[1]+node.insets[3]}:{w:0,h:0}}function hasMargin(node){return node.margin&&(node.margin.topInset||node.margin.rightInset||node.margin.bottomInset||node.margin.leftInset)}function _setValue(templateNode,value){var nodeValue;templateNode.value||(nodeValue=new Value({}),templateNode[$appendChild](nodeValue),templateNode.value=nodeValue),templateNode.value[$setValue](value)}function*getContainedChildren(node){for(var child of node[$getChildren]())child instanceof SubformSet?yield*child[$getContainedChildren]():yield child}function isRequired(node){return"error"===(null==(node=node.validate)?void 0:node.nullTest)}function setTabIndex(node){for(;node;){if(!node.traversal)return void(node[$tabIndex]=node[$getParent]()[$tabIndex]);if(node[$tabIndex])return;var child,next=null;for(child of node.traversal[$getChildren]())if("next"===child.operation){next=child;break}if(!next||!next.ref)return void(node[$tabIndex]=node[$getParent]()[$tabIndex]);var root=node[$getTemplateRoot](),root=(node[$tabIndex]=++root[$tabIndex],root[$searchNode](next.ref,node));if(!root)return;node=root[0]}}function applyAssist(obj,attributes){var assistTitle,assist=obj.assist;assist&&((assistTitle=assist[$toHTML]())&&(attributes.title=assistTitle),assistTitle=assist.role.match(HEADING_PATTERN))&&(assist=assistTitle[1],attributes.role="heading",attributes["aria-level"]=assist),"table"===obj.layout?attributes.role="table":"row"===obj.layout?attributes.role="row":"row"===(assistTitle=obj[$getParent]()).layout&&(attributes.role="TH"===(null==(assist=assistTitle.assist)?void 0:assist.role)?"columnheader":"cell")}function ariaLabel(obj){return obj.assist?(obj=obj.assist).speak&&""!==obj.speak[$content]?obj.speak[$content]:obj.toolTip?obj.toolTip[$content]:null:null}function valueToHtml(value){return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:Object.create(null)},children:[{name:"span",attributes:{style:Object.create(null)},value:value}]})}function setFirstUnsplittable(node){var root=node[$getTemplateRoot]();null===root[$extra].firstUnsplittable&&(root[$extra].firstUnsplittable=node,root[$extra].noLayoutFailure=!0)}function unsetFirstUnsplittable(node){var root=node[$getTemplateRoot]();root[$extra].firstUnsplittable===node&&(root[$extra].noLayoutFailure=!1)}function handleBreak(node){if(node[$extra])return!1;if(node[$extra]=Object.create(null),"auto"===node.targetType)return!1;var root=node[$getTemplateRoot](),target=null;if(node.target){if(!(target=root[$searchNode](node.target,node[$getParent]())))return!1;target=target[0]}var{currentPageArea:root,currentContentArea}=root[$extra];if("pageArea"===node.targetType)return target instanceof PageArea||(target=null),node.startNew?(node[$extra].target=target||root,!0):!(!target||target===root||(node[$extra].target=target,0));var pageArea=(target=target instanceof ContentArea?target:null)&&target[$getParent](),nextPageArea=pageArea;if(node.startNew)var contentAreas,indexForCurrent=target?(indexForCurrent=(contentAreas=pageArea.contentArea.children).indexOf(currentContentArea),contentAreas=contentAreas.indexOf(target),-1!==indexForCurrent&&indexForCurrentnode,root[$extra].noLayoutFailure=!0,extraNode[$toHTML](space));node[$addHTML](space.html,space.bbox),root[$extra].noLayoutFailure=saved,extraNode[$getSubformParent]=savedMethod}class AppearanceFilter extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"appearanceFilter"),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Arc extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"arc",!0),this.circular=getInteger({data:attributes.circular,defaultValue:0,validate:x=>1===x}),this.hand=getStringOption(attributes.hand,["even","left","right"]),this.id=attributes.id||"",this.startAngle=getFloat({data:attributes.startAngle,defaultValue:0,validate:x=>!0}),this.sweepAngle=getFloat({data:attributes.sweepAngle,defaultValue:360,validate:x=>!0}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.edge=null,this.fill=null}[$toHTML](){var largeArc,x2,y2,arc,edge=this.edge||new Edge({}),edgeStyle=edge[$toStyle](),style=Object.create(null),_this$fill=("visible"===(null==(_this$fill=this.fill)?void 0:_this$fill.presence)?Object.assign(style,this.fill[$toStyle]()):style.fill="transparent",style.strokeWidth=measureToString("visible"===edge.presence?edge.thickness:0),style.stroke=edgeStyle.color,{xmlns:SVG_NS,style:{width:"100%",height:"100%",overflow:"visible"}}),edge=(360===this.sweepAngle?arc={name:"ellipse",attributes:{xmlns:SVG_NS,cx:"50%",cy:"50%",rx:"50%",ry:"50%",style:style}}:(edge=this.startAngle*Math.PI/180,edgeStyle=this.sweepAngle*Math.PI/180,largeArc=1801<=n||-1===n}),this.id=attributes.id||"",this.name=attributes.name||"",this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.desc=null,this.extras=null,this.area=new XFAObjectArray,this.draw=new XFAObjectArray,this.exObject=new XFAObjectArray,this.exclGroup=new XFAObjectArray,this.field=new XFAObjectArray,this.subform=new XFAObjectArray,this.subformSet=new XFAObjectArray}*[$getContainedChildren](){yield*getContainedChildren(this)}[$isTransparent](){return!0}[$isBindable](){return!0}[$addHTML](html,bbox){var[bbox,y,w,h]=bbox;this[$extra].width=Math.max(this[$extra].width,bbox+w),this[$extra].height=Math.max(this[$extra].height,y+h),this[$extra].children.push(html)}[$getAvailableSpace](){return this[$extra].availableSpace}[$toHTML](availableSpace){var style=toStyle(this,"position"),attributes={style:style,id:this[$uid],class:["xfaArea"]},children=(isPrintOnly(this)&&attributes.class.push("xfaPrintOnly"),this.name&&(attributes.xfaName=this.name),[]),availableSpace=(this[$extra]={children:children,width:0,height:0,availableSpace:availableSpace},this[$childrenToHTML]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:!0}));if(!availableSpace.success)return availableSpace.isBreak()?availableSpace:(delete this[$extra],HTMLResult.FAILURE);style.width=measureToString(this[$extra].width),style.height=measureToString(this[$extra].height);availableSpace={name:"div",attributes:attributes,children:children},style=[this.x,this.y,this[$extra].width,this[$extra].height];return delete this[$extra],HTMLResult.success(availableSpace,style)}}class Assist extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"assist",!0),this.id=attributes.id||"",this.role=attributes.role||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.speak=null,this.toolTip=null}[$toHTML](){var _this$toolTip;return(null==(_this$toolTip=this.toolTip)?void 0:_this$toolTip[$content])||null}}class Barcode extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"barcode",!0),this.charEncoding=getKeyword({data:attributes.charEncoding?attributes.charEncoding.toLowerCase():"",defaultValue:"",validate:k=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(k)||k.match(/iso-8859-\d{2}/)}),this.checksum=getStringOption(attributes.checksum,["none","1mod10","1mod10_1mod11","2mod10","auto"]),this.dataColumnCount=getInteger({data:attributes.dataColumnCount,defaultValue:-1,validate:x=>0<=x}),this.dataLength=getInteger({data:attributes.dataLength,defaultValue:-1,validate:x=>0<=x}),this.dataPrep=getStringOption(attributes.dataPrep,["none","flateCompress"]),this.dataRowCount=getInteger({data:attributes.dataRowCount,defaultValue:-1,validate:x=>0<=x}),this.endChar=attributes.endChar||"",this.errorCorrectionLevel=getInteger({data:attributes.errorCorrectionLevel,defaultValue:-1,validate:x=>0<=x&&x<=8}),this.id=attributes.id||"",this.moduleHeight=getMeasurement(attributes.moduleHeight,"5mm"),this.moduleWidth=getMeasurement(attributes.moduleWidth,"0.25mm"),this.printCheckDigit=getInteger({data:attributes.printCheckDigit,defaultValue:0,validate:x=>1===x}),this.rowColumnRatio=getRatio(attributes.rowColumnRatio),this.startChar=attributes.startChar||"",this.textLocation=getStringOption(attributes.textLocation,["below","above","aboveEmbedded","belowEmbedded","none"]),this.truncate=getInteger({data:attributes.truncate,defaultValue:0,validate:x=>1===x}),this.type=getStringOption(attributes.type?attributes.type.toLowerCase():"",["aztec","codabar","code2of5industrial","code2of5interleaved","code2of5matrix","code2of5standard","code3of9","code3of9extended","code11","code49","code93","code128","code128a","code128b","code128c","code128sscc","datamatrix","ean8","ean8add2","ean8add5","ean13","ean13add2","ean13add5","ean13pwcd","fim","logmars","maxicode","msi","pdf417","pdf417macro","plessey","postauscust2","postauscust3","postausreplypaid","postausstandard","postukrm4scc","postusdpbc","postusimb","postusstandard","postus5zip","qrcode","rfid","rss14","rss14expanded","rss14limited","rss14stacked","rss14stackedomni","rss14truncated","telepen","ucc128","ucc128random","ucc128sscc","upca","upcaadd2","upcaadd5","upcapwcd","upce","upceadd2","upceadd5","upcean2","upcean5","upsmaxicode"]),this.upsMode=getStringOption(attributes.upsMode,["usCarrier","internationalCarrier","secureSymbol","standardSymbol"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.wideNarrowRatio=getRatio(attributes.wideNarrowRatio),this.encrypt=null,this.extras=null}}class Bind extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bind",!0),this.match=getStringOption(attributes.match,["once","dataRef","global","none"]),this.ref=attributes.ref||"",this.picture=null}}class BindItems extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bindItems"),this.connection=attributes.connection||"",this.labelRef=attributes.labelRef||"",this.ref=attributes.ref||"",this.valueRef=attributes.valueRef||""}}class Bookend extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bookend"),this.id=attributes.id||"",this.leader=attributes.leader||"",this.trailer=attributes.trailer||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class BooleanElement extends Option01{constructor(attributes){super(TEMPLATE_NS_ID,"boolean"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$toHTML](availableSpace){return valueToHtml(1===this[$content]?"1":"0")}}class Border extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"border",!0),this.break=getStringOption(attributes.break,["close","open"]),this.hand=getStringOption(attributes.hand,["even","left","right"]),this.id=attributes.id||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.corner=new XFAObjectArray(4),this.edge=new XFAObjectArray(4),this.extras=null,this.fill=null,this.margin=null}[$getExtra](){if(!this[$extra]){var edges=this.edge.children.slice();if(edges.length<4)for(var defaultEdge=edges.at(-1)||new Edge({}),i=edges.length;i<4;i++)edges.push(defaultEdge);var widths=edges.map(edge=>edge.thickness),insets=[0,0,0,0];this.margin&&(insets[0]=this.margin.topInset,insets[1]=this.margin.rightInset,insets[2]=this.margin.bottomInset,insets[3]=this.margin.leftInset),this[$extra]={widths:widths,insets:insets,edges:edges}}return this[$extra]}[$toStyle](){var edges=this[$getExtra]()["edges"],edgeStyles=edges.map(node=>{node=node[$toStyle]();return node.color||(node.color="#000000"),node}),style=Object.create(null);if(this.margin&&Object.assign(style,this.margin[$toStyle]()),"visible"===(null==(edges=this.fill)?void 0:edges.presence)&&Object.assign(style,this.fill[$toStyle]()),this.corner.children.some(node=>0!==node.radius)){var cornerStyles=this.corner.children.map(node=>node[$toStyle]());if(2===cornerStyles.length||3===cornerStyles.length)for(var last=cornerStyles.at(-1),i=cornerStyles.length;i<4;i++)cornerStyles.push(last);style.borderRadius=cornerStyles.map(s=>s.radius).join(" ")}switch(this.presence){case"invisible":case"hidden":style.borderStyle="";break;case"inactive":style.borderStyle="none";break;default:style.borderStyle=edgeStyles.map(s=>s.style).join(" ")}return style.borderWidth=edgeStyles.map(s=>s.width).join(" "),style.borderColor=edgeStyles.map(s=>s.color).join(" "),style}}class Break extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"break",!0),this.after=getStringOption(attributes.after,["auto","contentArea","pageArea","pageEven","pageOdd"]),this.afterTarget=attributes.afterTarget||"",this.before=getStringOption(attributes.before,["auto","contentArea","pageArea","pageEven","pageOdd"]),this.beforeTarget=attributes.beforeTarget||"",this.bookendLeader=attributes.bookendLeader||"",this.bookendTrailer=attributes.bookendTrailer||"",this.id=attributes.id||"",this.overflowLeader=attributes.overflowLeader||"",this.overflowTarget=attributes.overflowTarget||"",this.overflowTrailer=attributes.overflowTrailer||"",this.startNew=getInteger({data:attributes.startNew,defaultValue:0,validate:x=>1===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}}class BreakAfter extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"breakAfter",!0),this.id=attributes.id||"",this.leader=attributes.leader||"",this.startNew=getInteger({data:attributes.startNew,defaultValue:0,validate:x=>1===x}),this.target=attributes.target||"",this.targetType=getStringOption(attributes.targetType,["auto","contentArea","pageArea"]),this.trailer=attributes.trailer||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.script=null}}class BreakBefore extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"breakBefore",!0),this.id=attributes.id||"",this.leader=attributes.leader||"",this.startNew=getInteger({data:attributes.startNew,defaultValue:0,validate:x=>1===x}),this.target=attributes.target||"",this.targetType=getStringOption(attributes.targetType,["auto","contentArea","pageArea"]),this.trailer=attributes.trailer||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.script=null}[$toHTML](availableSpace){return this[$extra]={},HTMLResult.FAILURE}}class Button extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"button",!0),this.highlight=getStringOption(attributes.highlight,["inverted","none","outline","push"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}[$toHTML](availableSpace){var event,jsURL,href,grandpa=this[$getParent]()[$getParent](),htmlButton={name:"button",attributes:{id:this[$uid],class:["xfaButton"],style:{}},children:[]};for(event of grandpa.event.children)"click"===event.activity&&event.script&&(jsURL=recoverJsURL(event.script[$content]))&&(href=fixURL(jsURL.url))&&htmlButton.children.push({name:"a",attributes:{id:"link"+this[$uid],href:href,newWindow:jsURL.newWindow,class:["xfaLink"],style:{}},children:[]});return HTMLResult.success(htmlButton)}}class Calculate extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"calculate",!0),this.id=attributes.id||"",this.override=getStringOption(attributes.override,["disabled","error","ignore","warning"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.message=null,this.script=null}}class Caption extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"caption",!0),this.id=attributes.id||"",this.placement=getStringOption(attributes.placement,["left","bottom","inline","right","top"]),this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.reserve=Math.ceil(getMeasurement(attributes.reserve)),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.font=null,this.margin=null,this.para=null,this.value=null}[$setValue](value){_setValue(this,value)}[$getExtra](availableSpace){if(!this[$extra]){var{width,height}=availableSpace;switch(this.placement){case"left":case"right":case"inline":width=this.reserve<=0?width:this.reserve;break;case"top":case"bottom":height=this.reserve<=0?height:this.reserve}this[$extra]=layoutNode(this,{width:width,height:height})}return this[$extra]}[$toHTML](availableSpace){if(!this.value)return HTMLResult.EMPTY;this[$pushPara]();var value=this.value[$toHTML](availableSpace).html;if(!value)return this[$popPara](),HTMLResult.EMPTY;var savedReserve=this.reserve;if(this.reserve<=0){var{w,h}=this[$getExtra](availableSpace);switch(this.placement){case"left":case"right":case"inline":this.reserve=w;break;case"top":case"bottom":this.reserve=h}}var availableSpace=[],style=(availableSpace.push("string"==typeof value?{name:"#text",value:value}:value),toStyle(this,"font","margin","visibility"));switch(this.placement){case"left":case"right":01===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","margin"),field=this[$getParent]()[$getParent](),_field$font=(null==(_field$font=field.font)?void 0:_field$font.size)||10,optionStyle={fontSize:"calc(".concat(_field$font,"px * var(--total-scale-factor))")},children=[];if(00<=x}),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Connect extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"connect",!0),this.connection=attributes.connection||"",this.id=attributes.id||"",this.ref=attributes.ref||"",this.usage=getStringOption(attributes.usage,["exportAndImport","exportOnly","importOnly"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.picture=null}}class ContentArea extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"contentArea",!0),this.h=getMeasurement(attributes.h),this.id=attributes.id||"",this.name=attributes.name||"",this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=getMeasurement(attributes.w),this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.desc=null,this.extras=null}[$toHTML](availableSpace){var style={left:measureToString(this.x),top:measureToString(this.y),width:measureToString(this.w),height:measureToString(this.h)},classNames=["xfaContentarea"];return isPrintOnly(this)&&classNames.push("xfaPrintOnly"),HTMLResult.success({name:"div",children:[],attributes:{style:style,class:classNames,id:this[$uid]}})}}class Corner extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"corner",!0),this.id=attributes.id||"",this.inverted=getInteger({data:attributes.inverted,defaultValue:0,validate:x=>1===x}),this.join=getStringOption(attributes.join,["square","round"]),this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.radius=getMeasurement(attributes.radius),this.stroke=getStringOption(attributes.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]),this.thickness=getMeasurement(attributes.thickness,"0.5pt"),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](){var style=toStyle(this,"visibility");return style.radius=measureToString("square"===this.join?0:this.radius),style}}class DateElement extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"date"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var date=this[$content].trim();this[$content]=date?new Date(date):null}[$toHTML](availableSpace){return valueToHtml(this[$content]?this[$content].toString():"")}}class DateTime extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"dateTime"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var date=this[$content].trim();this[$content]=date?new Date(date):null}[$toHTML](availableSpace){return valueToHtml(this[$content]?this[$content].toString():"")}}class DateTimeEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"dateTimeEdit",!0),this.hScrollPolicy=getStringOption(attributes.hScrollPolicy,["auto","off","on"]),this.id=attributes.id||"",this.picker=getStringOption(attributes.picker,["host","none"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.comb=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","font","margin"),field=this[$getParent]()[$getParent](),_field$$data3={name:"input",attributes:{type:"text",fieldId:field[$uid],dataId:(null==(_field$$data3=field[$data])?void 0:_field$$data3[$uid])||field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}};return isRequired(field)&&(_field$$data3.attributes["aria-required"]=!0,_field$$data3.attributes.required=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[_field$$data3]})}}class Decimal extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"decimal"),this.fracDigits=getInteger({data:attributes.fracDigits,defaultValue:2,validate:x=>!0}),this.id=attributes.id||"",this.leadDigits=getInteger({data:attributes.leadDigits,defaultValue:-1,validate:x=>!0}),this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var number=parseFloat(this[$content].trim());this[$content]=isNaN(number)?null:number}[$toHTML](availableSpace){return valueToHtml(null!==this[$content]?this[$content].toString():"")}}class DefaultUi extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"defaultUi",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}}class Desc extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"desc",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}}class DigestMethod extends OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class DigestMethods extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"digestMethods",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.digestMethod=new XFAObjectArray}}class Draw extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"draw",!0),this.anchorType=getStringOption(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.locale=attributes.locale||"",this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.rotate=getInteger({data:attributes.rotate,defaultValue:0,validate:x=>x%90==0}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.border=null,this.caption=null,this.desc=null,this.extras=null,this.font=null,this.keep=null,this.margin=null,this.para=null,this.traversal=null,this.ui=null,this.value=null,this.setProperty=new XFAObjectArray}[$setValue](value){_setValue(this,value)}[$toHTML](availableSpace){if(setTabIndex(this),"hidden"===this.presence||"inactive"===this.presence)return HTMLResult.EMPTY;fixDimensions(this),this[$pushPara]();var savedW=this.w,savedH=this.h,{w,h,isBroken}=layoutNode(this,availableSpace);if(w&&""===this.w){if(isBroken&&this[$getSubformParent]()[$isThereMoreWidth]())return this[$popPara](),HTMLResult.FAILURE;this.w=w}if(h&&""===this.h&&(this.h=h),setFirstUnsplittable(this),!checkDimensions(this,availableSpace))return this.w=savedW,this.h=savedH,this[$popPara](),HTMLResult.FAILURE;unsetFirstUnsplittable(this);isBroken=toStyle(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin"),setMinMaxDimensions(this,isBroken),isBroken.margin&&(isBroken.padding=isBroken.margin,delete isBroken.margin),w=["xfaDraw"],this.font&&w.push("xfaFont"),isPrintOnly(this)&&w.push("xfaPrintOnly"),h={style:isBroken,id:this[$uid],class:w},this.name&&(h.xfaName=this.name),w={name:"div",attributes:h,children:[]},applyAssist(this,h),h=computeBbox(this,w,availableSpace),availableSpace=this.value?this.value[$toHTML](availableSpace).html:null;return null===availableSpace?(this.w=savedW,this.h=savedH,this[$popPara]()):(w.children.push(availableSpace),setPara(this,isBroken,availableSpace),this.w=savedW,this.h=savedH,this[$popPara]()),HTMLResult.success(createWrapper(this,w),h)}}class Edge extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"edge",!0),this.cap=getStringOption(attributes.cap,["square","butt","round"]),this.id=attributes.id||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.stroke=getStringOption(attributes.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]),this.thickness=getMeasurement(attributes.thickness,"0.5pt"),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](){var style=toStyle(this,"visibility");if(Object.assign(style,{linecap:this.cap,width:measureToString(this.thickness),color:this.color?this.color[$toStyle]():"#000000",style:""}),"visible"!==this.presence)style.style="none";else switch(this.stroke){case"solid":style.style="solid";break;case"dashDot":case"dashDotDot":case"dashed":style.style="dashed";break;case"dotted":style.style="dotted";break;case"embossed":style.style="ridge";break;case"etched":style.style="groove";break;case"lowered":style.style="inset";break;case"raised":style.style="outset"}return style}}class Encoding extends OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"encoding",["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Encodings extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encodings",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.encoding=new XFAObjectArray}}class Encrypt extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encrypt",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.certificate=null}}class EncryptData extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptData",!0),this.id=attributes.id||"",this.operation=getStringOption(attributes.operation,["encrypt","decrypt"]),this.target=attributes.target||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.filter=null,this.manifest=null}}class Encryption extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryption",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.certificate=new XFAObjectArray}}class EncryptionMethod extends OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptionMethod",["","AES256-CBC","TRIPLEDES-CBC","AES128-CBC","AES192-CBC"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class EncryptionMethods extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptionMethods",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.encryptionMethod=new XFAObjectArray}}class Event extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"event",!0),this.activity=getStringOption(attributes.activity,["click","change","docClose","docReady","enter","exit","full","indexChange","initialize","mouseDown","mouseEnter","mouseExit","mouseUp","postExecute","postOpen","postPrint","postSave","postSign","postSubmit","preExecute","preOpen","prePrint","preSave","preSign","preSubmit","ready","validationState"]),this.id=attributes.id||"",this.listen=getStringOption(attributes.listen,["refOnly","refAndDescendents"]),this.name=attributes.name||"",this.ref=attributes.ref||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.encryptData=null,this.execute=null,this.script=null,this.signData=null,this.submit=null}}class ExData extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"exData"),this.contentType=attributes.contentType||"",this.href=attributes.href||"",this.id=attributes.id||"",this.maxLength=getInteger({data:attributes.maxLength,defaultValue:-1,validate:x=>-1<=x}),this.name=attributes.name||"",this.rid=attributes.rid||"",this.transferEncoding=getStringOption(attributes.transferEncoding,["none","base64","package"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$isCDATAXml](){return"text/html"===this.contentType}[$onChild](child){return("text/html"===this.contentType&&child[$namespaceId]===NamespaceIds.xhtml.id||"text/xml"===this.contentType)&&(this[$content]=child,!0)}[$toHTML](availableSpace){return"text/html"===this.contentType&&this[$content]?this[$content][$toHTML](availableSpace):HTMLResult.EMPTY}}class ExObject extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"exObject",!0),this.archive=attributes.archive||"",this.classId=attributes.classId||"",this.codeBase=attributes.codeBase||"",this.codeType=attributes.codeType||"",this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.exObject=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}}class ExclGroup extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"exclGroup",!0),this.access=getStringOption(attributes.access,["open","nonInteractive","protected","readOnly"]),this.accessKey=attributes.accessKey||"",this.anchorType=getStringOption(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.layout=getStringOption(attributes.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]),this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.bind=null,this.border=null,this.calculate=null,this.caption=null,this.desc=null,this.extras=null,this.margin=null,this.para=null,this.traversal=null,this.validate=null,this.connect=new XFAObjectArray,this.event=new XFAObjectArray,this.field=new XFAObjectArray,this.setProperty=new XFAObjectArray}[$isBindable](){return!0}[$hasSettableValue](){return!0}[$setValue](value){for(var field of this.field.children){var nodeValue;field.value||(nodeValue=new Value({}),field[$appendChild](nodeValue),field.value=nodeValue),field.value[$setValue](value)}}[$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[$extra].attempt&&01<=n||-1===n}),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.locale=attributes.locale||"",this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.rotate=getInteger({data:attributes.rotate,defaultValue:0,validate:x=>x%90==0}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.bind=null,this.border=null,this.calculate=null,this.caption=null,this.desc=null,this.extras=null,this.font=null,this.format=null,this.items=new XFAObjectArray(2),this.keep=null,this.margin=null,this.para=null,this.traversal=null,this.ui=null,this.validate=null,this.value=null,this.bindItems=new XFAObjectArray,this.connect=new XFAObjectArray,this.event=new XFAObjectArray,this.setProperty=new XFAObjectArray}[$isBindable](){return!0}[$setValue](value){_setValue(this,value)}[$toHTML](availableSpace){var node;if(setTabIndex(this),!this.ui){switch(this.ui=new Ui({}),this.ui[$globalData]=this[$globalData],this[$appendChild](this.ui),this.items.children.length){case 0:node=new TextEdit({}),this.ui.textEdit=node;break;case 1:node=new CheckButton({}),this.ui.checkButton=node;break;case 2:node=new ChoiceList({}),this.ui.choiceList=node}this.ui[$appendChild](node)}if(!this.ui||"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return HTMLResult.EMPTY;this.caption&&delete this.caption[$extra],this[$pushPara]();var caption=this.caption?this.caption[$toHTML](availableSpace).html:null,savedW=this.w,savedH=this.h,marginH=0,marginV=0,borderDims=(this.margin&&(marginH=this.margin.leftInset+this.margin.rightInset,marginV=this.margin.topInset+this.margin.bottomInset),null);if(""===this.w||""===this.h){var width=null,height=null,uiW=0,uiH=0;if(this.ui.checkButton?uiW=uiH=this.ui.checkButton.size:({w,h}=layoutNode(this,availableSpace),uiH=null!==w?(uiW=w,h):fonts_getMetrics(this.font,!0).lineNoGap),uiW+=(borderDims=getBorderDims(this.ui[$getExtra]())).w,uiH+=borderDims.h,this.caption){var{w,h,isBroken}=this.caption[$getExtra](availableSpace);if(isBroken&&this[$getSubformParent]()[$isThereMoreWidth]())return this[$popPara](),HTMLResult.FAILURE;switch(width=w,height=h,this.caption.placement){case"left":case"right":case"inline":width+=uiW;break;case"top":case"bottom":height+=uiH}}else width=uiW,height=uiH;width&&""===this.w&&(width+=marginH,this.w=Math.min(this.maxW<=0?1/0:this.maxW,this.minW+11<=x&&x<=5}),this.appearanceFilter=null,this.certificates=null,this.digestMethods=null,this.encodings=null,this.encryptionMethods=null,this.handler=null,this.lockDocument=null,this.mdp=null,this.reasons=null,this.timeStamp=null}}class Float extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"float"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var number=parseFloat(this[$content].trim());this[$content]=isNaN(number)?null:number}[$toHTML](availableSpace){return valueToHtml(null!==this[$content]?this[$content].toString():"")}}class template_Font extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"font",!0),this.baselineShift=getMeasurement(attributes.baselineShift),this.fontHorizontalScale=getFloat({data:attributes.fontHorizontalScale,defaultValue:100,validate:x=>0<=x}),this.fontVerticalScale=getFloat({data:attributes.fontVerticalScale,defaultValue:100,validate:x=>0<=x}),this.id=attributes.id||"",this.kerningMode=getStringOption(attributes.kerningMode,["none","pair"]),this.letterSpacing=getMeasurement(attributes.letterSpacing,"0"),this.lineThrough=getInteger({data:attributes.lineThrough,defaultValue:0,validate:x=>1===x||2===x}),this.lineThroughPeriod=getStringOption(attributes.lineThroughPeriod,["all","word"]),this.overline=getInteger({data:attributes.overline,defaultValue:0,validate:x=>1===x||2===x}),this.overlinePeriod=getStringOption(attributes.overlinePeriod,["all","word"]),this.posture=getStringOption(attributes.posture,["normal","italic"]),this.size=getMeasurement(attributes.size,"10pt"),this.typeface=attributes.typeface||"Courier",this.underline=getInteger({data:attributes.underline,defaultValue:0,validate:x=>1===x||2===x}),this.underlinePeriod=getStringOption(attributes.underlinePeriod,["all","word"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.weight=getStringOption(attributes.weight,["normal","bold"]),this.extras=null,this.fill=null}[$clean](builder){super[$clean](builder),this[$globalData].usedTypefaces.add(this.typeface)}[$toStyle](){var style=toStyle(this,"fill"),color=style.color;return color&&("#000000"===color?delete style.color:color.startsWith("#")||(style.background=color,style.backgroundClip="text",style.color="transparent")),this.baselineShift&&(style.verticalAlign=measureToString(this.baselineShift)),style.fontKerning="none"===this.kerningMode?"none":"normal",style.letterSpacing=measureToString(this.letterSpacing),0!==this.lineThrough&&(style.textDecoration="line-through",2===this.lineThrough)&&(style.textDecorationStyle="double"),0!==this.overline&&(style.textDecoration="overline",2===this.overline)&&(style.textDecorationStyle="double"),style.fontStyle=this.posture,style.fontSize=measureToString(.99*this.size),setFontFamily(this,this,this[$globalData].fontFinder,style),0!==this.underline&&(style.textDecoration="underline",2===this.underline)&&(style.textDecorationStyle="double"),style.fontWeight=this.weight,style}}class Format extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"format",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.picture=null}}class Handler extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"handler"),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Hyphenation extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"hyphenation"),this.excludeAllCaps=getInteger({data:attributes.excludeAllCaps,defaultValue:0,validate:x=>1===x}),this.excludeInitialCap=getInteger({data:attributes.excludeInitialCap,defaultValue:0,validate:x=>1===x}),this.hyphenate=getInteger({data:attributes.hyphenate,defaultValue:0,validate:x=>1===x}),this.id=attributes.id||"",this.pushCharacterCount=getInteger({data:attributes.pushCharacterCount,defaultValue:3,validate:x=>0<=x}),this.remainCharacterCount=getInteger({data:attributes.remainCharacterCount,defaultValue:3,validate:x=>0<=x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.wordCharacterCount=getInteger({data:attributes.wordCharacterCount,defaultValue:7,validate:x=>0<=x})}}class Image extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"image"),this.aspect=getStringOption(attributes.aspect,["fit","actual","height","none","width"]),this.contentType=attributes.contentType||"",this.href=attributes.href||"",this.id=attributes.id||"",this.name=attributes.name||"",this.transferEncoding=getStringOption(attributes.transferEncoding,["base64","none","package"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$toHTML](){if(this.contentType&&!MIMES.has(this.contentType.toLowerCase()))return HTMLResult.EMPTY;var buffer=null==(_this$$globalData$ima=this[$globalData].images)?void 0:_this$$globalData$ima.get(this.href);if(!buffer&&(this.href||!this[$content]))return HTMLResult.EMPTY;if(!(buffer=buffer||"base64"!==this.transferEncoding?buffer:fromBase64Util(this[$content])))return HTMLResult.EMPTY;if(!this.contentType){for(var[header,type]of IMAGES_HEADERS)if(buffer.length>header.length&&header.every((x,i)=>x===buffer[i])){this.contentType=type;break}if(!this.contentType)return HTMLResult.EMPTY}var style,_this$$globalData$ima=new Blob([buffer],{type:this.contentType});switch(this.aspect){case"fit":case"actual":break;case"height":style={height:"100%",objectFit:"fill"};break;case"none":style={width:"100%",height:"100%",objectFit:"fill"};break;case"width":style={width:"100%",objectFit:"fill"}}var parent=this[$getParent]();return HTMLResult.success({name:"img",attributes:{class:["xfaImage"],style:style,src:URL.createObjectURL(_this$$globalData$ima),alt:parent?ariaLabel(parent[$getParent]()):null}})}}class ImageEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"imageEdit",!0),this.data=getStringOption(attributes.data,["link","embed"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){return"embed"===this.data?HTMLResult.success({name:"div",children:[],attributes:{}}):HTMLResult.EMPTY}}class Integer extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"integer"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var number=parseInt(this[$content].trim(),10);this[$content]=isNaN(number)?null:number}[$toHTML](availableSpace){return valueToHtml(null!==this[$content]?this[$content].toString():"")}}class Issuers extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"issuers",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.certificate=new XFAObjectArray}}class Items extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"items",!0),this.id=attributes.id||"",this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.ref=attributes.ref||"",this.save=getInteger({data:attributes.save,defaultValue:0,validate:x=>1===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}[$toHTML](){var child,output=[];for(child of this[$getChildren]())output.push(child[$text]());return HTMLResult.success(output)}}class Keep extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"keep",!0),this.id=attributes.id||"";var options=["none","contentArea","pageArea"];this.intact=getStringOption(attributes.intact,options),this.next=getStringOption(attributes.next,options),this.previous=getStringOption(attributes.previous,options),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}}class KeyUsage extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"keyUsage");var options=["","yes","no"];this.crlSign=getStringOption(attributes.crlSign,options),this.dataEncipherment=getStringOption(attributes.dataEncipherment,options),this.decipherOnly=getStringOption(attributes.decipherOnly,options),this.digitalSignature=getStringOption(attributes.digitalSignature,options),this.encipherOnly=getStringOption(attributes.encipherOnly,options),this.id=attributes.id||"",this.keyAgreement=getStringOption(attributes.keyAgreement,options),this.keyCertSign=getStringOption(attributes.keyCertSign,options),this.keyEncipherment=getStringOption(attributes.keyEncipherment,options),this.nonRepudiation=getStringOption(attributes.nonRepudiation,options),this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Line extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"line",!0),this.hand=getStringOption(attributes.hand,["even","left","right"]),this.id=attributes.id||"",this.slope=getStringOption(attributes.slope,["\\","/"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.edge=null}[$toHTML](){var x1,y1,x2,y2,parent=this[$getParent]()[$getParent](),edge=this.edge||new Edge({}),edgeStyle=edge[$toStyle](),style=Object.create(null),edge="visible"===edge.presence?edge.thickness:0,edgeStyle=(style.strokeWidth=measureToString(edge),style.stroke=edgeStyle.color,"100%"),height="100%";parent.w<=edge?([x1,y1,x2,y2]=["50%",0,"50%","100%"],edgeStyle=style.strokeWidth):parent.h<=edge?([x1,y1,x2,y2]=[0,"50%","100%","50%"],height=style.strokeWidth):"\\"===this.slope?[x1,y1,x2,y2]=[0,0,"100%","100%"]:[x1,y1,x2,y2]=[0,"100%","100%",0];edge={name:"svg",children:[{name:"line",attributes:{xmlns:SVG_NS,x1:x1,y1:y1,x2:x2,y2:y2,style:style}}],attributes:{xmlns:SVG_NS,width:edgeStyle,height:height,style:{overflow:"visible"}}};return hasMargin(parent)?HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[edge]}):(edge.attributes.style.position="absolute",HTMLResult.success(edge))}}class Linear extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"linear",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["toRight","toBottom","toLeft","toTop"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](startColor){startColor=startColor?startColor[$toStyle]():"#FFFFFF";var transf=this.type.replace(/([RBLT])/," $1").toLowerCase(),endColor=this.color?this.color[$toStyle]():"#000000";return"linear-gradient(".concat(transf,", ").concat(startColor,", ").concat(endColor,")")}}class LockDocument extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"lockDocument"),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){this[$content]=getStringOption(this[$content],["auto","0","1"])}}class Manifest extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"manifest",!0),this.action=getStringOption(attributes.action,["include","all","exclude"]),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.ref=new XFAObjectArray}}class Margin extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"margin",!0),this.bottomInset=getMeasurement(attributes.bottomInset,"0"),this.id=attributes.id||"",this.leftInset=getMeasurement(attributes.leftInset,"0"),this.rightInset=getMeasurement(attributes.rightInset,"0"),this.topInset=getMeasurement(attributes.topInset,"0"),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}[$toStyle](){return{margin:measureToString(this.topInset)+" "+measureToString(this.rightInset)+" "+measureToString(this.bottomInset)+" "+measureToString(this.leftInset)}}}class Mdp extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"mdp"),this.id=attributes.id||"",this.permissions=getInteger({data:attributes.permissions,defaultValue:2,validate:x=>1===x||3===x}),this.signatureType=getStringOption(attributes.signatureType,["filler","author"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Medium extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"medium"),this.id=attributes.id||"",this.imagingBBox=getBBox(attributes.imagingBBox),this.long=getMeasurement(attributes.long),this.orientation=getStringOption(attributes.orientation,["portrait","landscape"]),this.short=getMeasurement(attributes.short),this.stock=attributes.stock||"",this.trayIn=getStringOption(attributes.trayIn,["auto","delegate","pageFront"]),this.trayOut=getStringOption(attributes.trayOut,["auto","delegate"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Message extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"message",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.text=new XFAObjectArray}}class NumericEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"numericEdit",!0),this.hScrollPolicy=getStringOption(attributes.hScrollPolicy,["auto","off","on"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.comb=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","font","margin"),field=this[$getParent]()[$getParent](),_field$$data4={name:"input",attributes:{type:"text",fieldId:field[$uid],dataId:(null==(_field$$data4=field[$data])?void 0:_field$$data4[$uid])||field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}};return isRequired(field)&&(_field$$data4.attributes["aria-required"]=!0,_field$$data4.attributes.required=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[_field$$data4]})}}class Occur extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"occur",!0),this.id=attributes.id||"",this.initial=""!==attributes.initial?getInteger({data:attributes.initial,defaultValue:"",validate:x=>!0}):"",this.max=""!==attributes.max?getInteger({data:attributes.max,defaultValue:1,validate:x=>!0}):"",this.min=""!==attributes.min?getInteger({data:attributes.min,defaultValue:1,validate:x=>!0}):"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}[$clean](){var parent=this[$getParent](),originalMin=this.min;""===this.min&&(this.min=parent instanceof PageArea||parent instanceof PageSet?0:1),""===this.max&&(this.max=""===originalMin?parent instanceof PageArea||parent instanceof PageSet?-1:1:this.min),-1!==this.max&&this.max!0}),this.name=attributes.name||"",this.numbered=getInteger({data:attributes.numbered,defaultValue:1,validate:x=>!0}),this.oddOrEven=getStringOption(attributes.oddOrEven,["any","even","odd"]),this.pagePosition=getStringOption(attributes.pagePosition,["any","first","last","only","rest"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.desc=null,this.extras=null,this.medium=null,this.occur=null,this.area=new XFAObjectArray,this.contentArea=new XFAObjectArray,this.draw=new XFAObjectArray,this.exclGroup=new XFAObjectArray,this.field=new XFAObjectArray,this.subform=new XFAObjectArray}[$isUsable](){return this[$extra]?!this.occur||-1===this.occur.max||this[$extra].numberOfUsep.oddOrEven===parity&&p.pagePosition===position);return parent||this.pageArea.children.find(p=>"any"===p.oddOrEven&&p.pagePosition===position)||this.pageArea.children.find(p=>"any"===p.oddOrEven&&"any"===p.pagePosition)||this.pageArea.children[0]}}class Para extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"para",!0),this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.lineHeight=attributes.lineHeight?getMeasurement(attributes.lineHeight,"0pt"):"",this.marginLeft=attributes.marginLeft?getMeasurement(attributes.marginLeft,"0pt"):"",this.marginRight=attributes.marginRight?getMeasurement(attributes.marginRight,"0pt"):"",this.orphans=getInteger({data:attributes.orphans,defaultValue:0,validate:x=>0<=x}),this.preserve=attributes.preserve||"",this.radixOffset=attributes.radixOffset?getMeasurement(attributes.radixOffset,"0pt"):"",this.spaceAbove=attributes.spaceAbove?getMeasurement(attributes.spaceAbove,"0pt"):"",this.spaceBelow=attributes.spaceBelow?getMeasurement(attributes.spaceBelow,"0pt"):"",this.tabDefault=attributes.tabDefault?getMeasurement(this.tabDefault):"",this.tabStops=(attributes.tabStops||"").trim().split(/\s+/).map((x,i)=>i%2==1?getMeasurement(x):x),this.textIndent=attributes.textIndent?getMeasurement(attributes.textIndent,"0pt"):"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.vAlign=getStringOption(attributes.vAlign,["top","bottom","middle"]),this.widows=getInteger({data:attributes.widows,defaultValue:0,validate:x=>0<=x}),this.hyphenation=null}[$toStyle](){var style=toStyle(this,"hAlign");return""!==this.marginLeft&&(style.paddingLeft=measureToString(this.marginLeft)),""!==this.marginRight&&(style.paddingRight=measureToString(this.marginRight)),""!==this.spaceAbove&&(style.paddingTop=measureToString(this.spaceAbove)),""!==this.spaceBelow&&(style.paddingBottom=measureToString(this.spaceBelow)),""!==this.textIndent&&(style.textIndent=measureToString(this.textIndent),fixTextIndent(style)),01===x}),this.id=attributes.id||"",this.priority=getStringOption(attributes.priority,["custom","caption","name","toolTip"]),this.rid=attributes.rid||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Stipple extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"stipple",!0),this.id=attributes.id||"",this.rate=getInteger({data:attributes.rate,defaultValue:50,validate:x=>0<=x&&x<=100}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](bgColor){var alpha=this.rate/100;return Util.makeHexColor(Math.round(bgColor.value.r*(1-alpha)+this.value.r*alpha),Math.round(bgColor.value.g*(1-alpha)+this.value.g*alpha),Math.round(bgColor.value.b*(1-alpha)+this.value.b*alpha))}}class Subform extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"subform",!0),this.access=getStringOption(attributes.access,["open","nonInteractive","protected","readOnly"]),this.allowMacro=getInteger({data:attributes.allowMacro,defaultValue:0,validate:x=>1===x}),this.anchorType=getStringOption(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.columnWidths=(attributes.columnWidths||"").trim().split(/\s+/).map(x=>"-1"===x?-1:getMeasurement(x)),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.layout=getStringOption(attributes.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]),this.locale=attributes.locale||"",this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.mergeMode=getStringOption(attributes.mergeMode,["consumeData","matchTemplate"]),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.restoreState=getStringOption(attributes.restoreState,["manual","auto"]),this.scope=getStringOption(attributes.scope,["name","none"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.bind=null,this.bookend=null,this.border=null,this.break=null,this.calculate=null,this.desc=null,this.extras=null,this.keep=null,this.margin=null,this.occur=null,this.overflow=null,this.pageSet=null,this.para=null,this.traversal=null,this.validate=null,this.variables=null,this.area=new XFAObjectArray,this.breakAfter=new XFAObjectArray,this.breakBefore=new XFAObjectArray,this.connect=new XFAObjectArray,this.draw=new XFAObjectArray,this.event=new XFAObjectArray,this.exObject=new XFAObjectArray,this.exclGroup=new XFAObjectArray,this.field=new XFAObjectArray,this.proto=new XFAObjectArray,this.setProperty=new XFAObjectArray,this.subform=new XFAObjectArray,this.subformSet=new XFAObjectArray}[$getSubformParent](){var parent=this[$getParent]();return parent instanceof SubformSet?parent[$getSubformParent]():parent}[$isBindable](){return!0}[$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[$extra].attempt&&0((kv=kv.split("=",2))[0]=kv[0].trim(),kv)))}}class SubjectDNs extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"subjectDNs",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.subjectDN=new XFAObjectArray}}class Submit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"submit",!0),this.embedPDF=getInteger({data:attributes.embedPDF,defaultValue:0,validate:x=>1===x}),this.format=getStringOption(attributes.format,["xdp","formdata","pdf","urlencoded","xfd","xml"]),this.id=attributes.id||"",this.target=attributes.target||"",this.textEncoding=getKeyword({data:attributes.textEncoding?attributes.textEncoding.toLowerCase():"",defaultValue:"",validate:k=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(k)||k.match(/iso-8859-\d{2}/)}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.xdpContent=attributes.xdpContent||"",this.encrypt=null,this.encryptData=new XFAObjectArray,this.signData=new XFAObjectArray}}class Template extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"template",!0),this.baseProfile=getStringOption(attributes.baseProfile,["full","interactiveForms"]),this.extras=null,this.subform=new XFAObjectArray}[$finalize](){0===this.subform.children.length&&warn("XFA - No subforms in template node."),2<=this.subform.children.length&&warn("XFA - Several subforms in template node: please file a bug."),this[$tabIndex]=DEFAULT_TAB_INDEX}[$isSplittable](){return!0}[$searchNode](expr,container){return expr.startsWith("#")?[this[$ids].get(expr.slice(1))]:searchNode(this,container,expr,!0,!0)}*[$toPages](){var _this6=this;if(!this.subform.children.length)return HTMLResult.success({name:"div",children:[]});this[$extra]={overflowNode:null,firstUnsplittable:null,currentContentArea:null,currentPageArea:null,noLayoutFailure:!1,pageNumber:1,pagePosition:"first",oddOrEven:"odd",blankOrNotBlank:"nonBlank",paraStack:[]};for(var _root$break,targetPageArea,_ret3,root=this.subform.children[0],pageAreas=(root.pageSet[$cleanPage](),root.pageSet.pageArea.children),mainHtml={name:"div",children:[]},pageArea=null,breakBefore=null,breakBeforeTarget=null,breakBeforeTarget=(1<=root.breakBefore.children.length?breakBeforeTarget=(breakBefore=root.breakBefore.children[0]).target:1<=root.subform.children.length&&1<=root.subform.children[0].breakBefore.children.length?breakBeforeTarget=(breakBefore=root.subform.children[0].breakBefore.children[0]).target:null!=(_root$break=root.break)&&_root$break.beforeTarget?breakBeforeTarget=(breakBefore=root.break).beforeTarget:1<=root.subform.children.length&&null!=(_root$break=root.subform.children[0].break)&&_root$break.beforeTarget&&(breakBeforeTarget=(breakBefore=root.subform.children[0].break).beforeTarget),breakBefore&&(_root$break=this[$searchNode](breakBeforeTarget,breakBefore[$getParent]()))instanceof PageArea&&(pageArea=_root$break,breakBefore[$extra]={}),(pageArea=pageArea||pageAreas[0])[$extra]={numberOfUse:1},pageArea[$getParent]()),leader=(breakBeforeTarget[$extra]={numberOfUse:1,pageIndex:breakBeforeTarget.pageArea.children.indexOf(pageArea),pageSetIndex:0},null),trailer=null,hasSomething=!0,hasSomethingCounter=0,startIndex=0;;)if(_ret3=yield*function*(){if(hasSomething)hasSomethingCounter=0;else if(mainHtml.children.pop(),++hasSomethingCounter===MAX_EMPTY_PAGES)return warn("XFA - Something goes wrong: please file a bug."),{v:mainHtml};targetPageArea=null;for(var page=(_this6[$extra].currentPageArea=pageArea)[$toHTML]().html,contentAreas=(mainHtml.children.push(page),leader&&(_this6[$extra].noLayoutFailure=!0,page.children.push(leader[$toHTML](pageArea[$extra].space).html),leader=null),trailer&&(_this6[$extra].noLayoutFailure=!0,page.children.push(trailer[$toHTML](pageArea[$extra].space).html),trailer=null),pageArea.contentArea.children),htmlContentAreas=page.children.filter(node=>node.attributes.class.includes("xfaContentarea")),flush=(hasSomething=!1,_this6[$extra].firstUnsplittable=null,_this6[$extra].noLayoutFailure=!1,index=>{var _html$children,html=root[$flushHTML]();html&&(hasSomething=hasSomething||0<(null==(_html$children=html.children)?void 0:_html$children.length),htmlContentAreas[index].children.push(html))}),i=startIndex,ii=contentAreas.length;i0<=x}),this.name=attributes.name||"",this.rid=attributes.rid||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$acceptWhitespace](){return!0}[$onChild](child){return child[$namespaceId]===NamespaceIds.xhtml.id?(this[$content]=child,!0):(warn("XFA - Invalid content in Text: ".concat(child[$nodeName],".")),!1)}[$onText](str){this[$content]instanceof XFAObject||super[$onText](str)}[$finalize](){"string"==typeof this[$content]&&(this[$content]=this[$content].replaceAll("\r\n","\n"))}[$getExtra](){return"string"==typeof this[$content]?this[$content].split(/[\u2029\u2028\n]/).filter(line=>!!line).join("\n"):this[$content][$text]()}[$toHTML](availableSpace){var html;return"string"==typeof this[$content]?(html=valueToHtml(this[$content]).html,this[$content].includes("\u2029")?(html.name="div",html.children=[],this[$content].split("\u2029").map(para=>para.split(/[\u2028\n]/).flatMap(line=>[{name:"span",value:line},{name:"br"}])).forEach(lines=>{html.children.push({name:"p",children:lines})})):/[\u2028\n]/.test(this[$content])&&(html.name="div",html.children=[],this[$content].split(/[\u2028\n]/).forEach(line=>{html.children.push({name:"span",value:line},{name:"br"})})),HTMLResult.success(html)):this[$content][$toHTML](availableSpace)}}class TextEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"textEdit",!0),this.allowRichText=getInteger({data:attributes.allowRichText,defaultValue:0,validate:x=>1===x}),this.hScrollPolicy=getStringOption(attributes.hScrollPolicy,["auto","off","on"]),this.id=attributes.id||"",this.multiLine=getInteger({data:attributes.multiLine,defaultValue:"",validate:x=>0===x||1===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.vScrollPolicy=getStringOption(attributes.vScrollPolicy,["auto","off","on"]),this.border=null,this.comb=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var _field$$data5,style=toStyle(this,"border","font","margin"),field=this[$getParent]()[$getParent]();return""===this.multiLine&&(this.multiLine=field instanceof Draw?1:0),_field$$data5=1===this.multiLine?{name:"textarea",attributes:{dataId:(null==(_field$$data5=field[$data])?void 0:_field$$data5[$uid])||field[$uid],fieldId:field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}}:{name:"input",attributes:{type:"text",dataId:(null==(_field$$data5=field[$data])?void 0:_field$$data5[$uid])||field[$uid],fieldId:field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}},isRequired(field)&&(_field$$data5.attributes["aria-required"]=!0,_field$$data5.attributes.required=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[_field$$data5]})}}class Time extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"time"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var date=this[$content].trim();this[$content]=date?new Date(date):null}[$toHTML](availableSpace){return valueToHtml(this[$content]?this[$content].toString():"")}}class TimeStamp extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"timeStamp"),this.id=attributes.id||"",this.server=attributes.server||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class ToolTip extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"toolTip"),this.id=attributes.id||"",this.rid=attributes.rid||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Traversal extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"traversal",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.traverse=new XFAObjectArray}}class Traverse extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"traverse",!0),this.id=attributes.id||"",this.operation=getStringOption(attributes.operation,["next","back","down","first","left","right","up"]),this.ref=attributes.ref||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.script=null}get name(){return this.operation}[$isTransparent](){return!1}}class Ui extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"ui",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.picture=null,this.barcode=null,this.button=null,this.checkButton=null,this.choiceList=null,this.dateTimeEdit=null,this.defaultUi=null,this.imageEdit=null,this.numericEdit=null,this.passwordEdit=null,this.signature=null,this.textEdit=null}[$getExtra](){if(void 0===this[$extra]){for(var name of Object.getOwnPropertyNames(this))if("extras"!==name&&"picture"!==name){name=this[name];if(name instanceof XFAObject)return this[$extra]=name}this[$extra]=null}return this[$extra]}[$toHTML](availableSpace){var obj=this[$getExtra]();return obj?obj[$toHTML](availableSpace):HTMLResult.EMPTY}}class Validate extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"validate",!0),this.formatTest=getStringOption(attributes.formatTest,["warning","disabled","error"]),this.id=attributes.id||"",this.nullTest=getStringOption(attributes.nullTest,["disabled","error","warning"]),this.scriptTest=getStringOption(attributes.scriptTest,["error","disabled","warning"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.message=null,this.picture=null,this.script=null}}class Value extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"value",!0),this.id=attributes.id||"",this.override=getInteger({data:attributes.override,defaultValue:0,validate:x=>1===x}),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.arc=null,this.boolean=null,this.date=null,this.dateTime=null,this.decimal=null,this.exData=null,this.float=null,this.image=null,this.integer=null,this.line=null,this.rectangle=null,this.text=null,this.time=null}[$setValue](value){var parent=this[$getParent]();if(parent instanceof Field&&(null!=(parent=parent.ui)&&parent.imageEdit))return this.image||(this.image=new Image({}),this[$appendChild](this.image)),void(this.image[$content]=value[$content]);parent=value[$nodeName];if(null!==this[parent])this[parent][$content]=value[$content];else{for(var name of Object.getOwnPropertyNames(this)){var obj=this[name];obj instanceof XFAObject&&(this[name]=null,this[$removeChild](obj))}this[value[$nodeName]]=value,this[$appendChild](value)}}[$text](){if(this.exData)return("string"==typeof this.exData[$content]?this.exData[$content]:this.exData[$content][$text]()).trim();for(var name of Object.getOwnPropertyNames(this))if("image"!==name){name=this[name];if(name instanceof XFAObject)return(name[$content]||"").toString().trim()}return null}[$toHTML](availableSpace){for(var name of Object.getOwnPropertyNames(this)){name=this[name];if(name instanceof XFAObject)return name[$toHTML](availableSpace)}return HTMLResult.EMPTY}}class Variables extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"variables",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.manifest=new XFAObjectArray,this.script=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}[$isTransparent](){return!0}}class TemplateNamespace{static[$buildXFAObject](name,attributes){if(TemplateNamespace.hasOwnProperty(name))return(name=TemplateNamespace[name](attributes))[$setSetAttributes](attributes),name}static appearanceFilter(attrs){return new AppearanceFilter(attrs)}static arc(attrs){return new Arc(attrs)}static area(attrs){return new Area(attrs)}static assist(attrs){return new Assist(attrs)}static barcode(attrs){return new Barcode(attrs)}static bind(attrs){return new Bind(attrs)}static bindItems(attrs){return new BindItems(attrs)}static bookend(attrs){return new Bookend(attrs)}static boolean(attrs){return new BooleanElement(attrs)}static border(attrs){return new Border(attrs)}static break(attrs){return new Break(attrs)}static breakAfter(attrs){return new BreakAfter(attrs)}static breakBefore(attrs){return new BreakBefore(attrs)}static button(attrs){return new Button(attrs)}static calculate(attrs){return new Calculate(attrs)}static caption(attrs){return new Caption(attrs)}static certificate(attrs){return new Certificate(attrs)}static certificates(attrs){return new Certificates(attrs)}static checkButton(attrs){return new CheckButton(attrs)}static choiceList(attrs){return new ChoiceList(attrs)}static color(attrs){return new Color(attrs)}static comb(attrs){return new Comb(attrs)}static connect(attrs){return new Connect(attrs)}static contentArea(attrs){return new ContentArea(attrs)}static corner(attrs){return new Corner(attrs)}static date(attrs){return new DateElement(attrs)}static dateTime(attrs){return new DateTime(attrs)}static dateTimeEdit(attrs){return new DateTimeEdit(attrs)}static decimal(attrs){return new Decimal(attrs)}static defaultUi(attrs){return new DefaultUi(attrs)}static desc(attrs){return new Desc(attrs)}static digestMethod(attrs){return new DigestMethod(attrs)}static digestMethods(attrs){return new DigestMethods(attrs)}static draw(attrs){return new Draw(attrs)}static edge(attrs){return new Edge(attrs)}static encoding(attrs){return new Encoding(attrs)}static encodings(attrs){return new Encodings(attrs)}static encrypt(attrs){return new Encrypt(attrs)}static encryptData(attrs){return new EncryptData(attrs)}static encryption(attrs){return new Encryption(attrs)}static encryptionMethod(attrs){return new EncryptionMethod(attrs)}static encryptionMethods(attrs){return new EncryptionMethods(attrs)}static event(attrs){return new Event(attrs)}static exData(attrs){return new ExData(attrs)}static exObject(attrs){return new ExObject(attrs)}static exclGroup(attrs){return new ExclGroup(attrs)}static execute(attrs){return new Execute(attrs)}static extras(attrs){return new Extras(attrs)}static field(attrs){return new Field(attrs)}static fill(attrs){return new Fill(attrs)}static filter(attrs){return new Filter(attrs)}static float(attrs){return new Float(attrs)}static font(attrs){return new template_Font(attrs)}static format(attrs){return new Format(attrs)}static handler(attrs){return new Handler(attrs)}static hyphenation(attrs){return new Hyphenation(attrs)}static image(attrs){return new Image(attrs)}static imageEdit(attrs){return new ImageEdit(attrs)}static integer(attrs){return new Integer(attrs)}static issuers(attrs){return new Issuers(attrs)}static items(attrs){return new Items(attrs)}static keep(attrs){return new Keep(attrs)}static keyUsage(attrs){return new KeyUsage(attrs)}static line(attrs){return new Line(attrs)}static linear(attrs){return new Linear(attrs)}static lockDocument(attrs){return new LockDocument(attrs)}static manifest(attrs){return new Manifest(attrs)}static margin(attrs){return new Margin(attrs)}static mdp(attrs){return new Mdp(attrs)}static medium(attrs){return new Medium(attrs)}static message(attrs){return new Message(attrs)}static numericEdit(attrs){return new NumericEdit(attrs)}static occur(attrs){return new Occur(attrs)}static oid(attrs){return new Oid(attrs)}static oids(attrs){return new Oids(attrs)}static overflow(attrs){return new Overflow(attrs)}static pageArea(attrs){return new PageArea(attrs)}static pageSet(attrs){return new PageSet(attrs)}static para(attrs){return new Para(attrs)}static passwordEdit(attrs){return new PasswordEdit(attrs)}static pattern(attrs){return new template_Pattern(attrs)}static picture(attrs){return new Picture(attrs)}static proto(attrs){return new Proto(attrs)}static radial(attrs){return new Radial(attrs)}static reason(attrs){return new Reason(attrs)}static reasons(attrs){return new Reasons(attrs)}static rectangle(attrs){return new Rectangle(attrs)}static ref(attrs){return new RefElement(attrs)}static script(attrs){return new Script(attrs)}static setProperty(attrs){return new SetProperty(attrs)}static signData(attrs){return new SignData(attrs)}static signature(attrs){return new Signature(attrs)}static signing(attrs){return new Signing(attrs)}static solid(attrs){return new Solid(attrs)}static speak(attrs){return new Speak(attrs)}static stipple(attrs){return new Stipple(attrs)}static subform(attrs){return new Subform(attrs)}static subformSet(attrs){return new SubformSet(attrs)}static subjectDN(attrs){return new SubjectDN(attrs)}static subjectDNs(attrs){return new SubjectDNs(attrs)}static submit(attrs){return new Submit(attrs)}static template(attrs){return new Template(attrs)}static text(attrs){return new Text(attrs)}static textEdit(attrs){return new TextEdit(attrs)}static time(attrs){return new Time(attrs)}static timeStamp(attrs){return new TimeStamp(attrs)}static toolTip(attrs){return new ToolTip(attrs)}static traversal(attrs){return new Traversal(attrs)}static traverse(attrs){return new Traverse(attrs)}static ui(attrs){return new Ui(attrs)}static validate(attrs){return new Validate(attrs)}static value(attrs){return new Value(attrs)}static variables(attrs){return new Variables(attrs)}}var bind_NS_DATASETS=NamespaceIds.datasets.id;function createText(content){var node=new Text({});return node[$content]=content,node}class Binder{constructor(root){var _root$datasets;this.root=root,this.datasets=root.datasets,this.data=(null==(_root$datasets=root.datasets)?void 0:_root$datasets.data)||new XmlObject(NamespaceIds.datasets.id,"data"),this.emptyMerge=0===this.data[$getChildren]().length,this.root.form=this.form=root.template[$clone]()}_isConsumeData(){return!this.emptyMerge&&this._mergeMode}_isMatchTemplate(){return!this._isConsumeData()}bind(){return this._bindElement(this.form,this.data),this.form}getData(){return this.data}_bindValue(formNode,data,picture){var value;formNode[$data]=data,formNode[$hasSettableValue]()?data[$isDataValue]()?(value=data[$getDataValue](),formNode[$setValue](createText(value))):formNode instanceof Field&&"multiSelect"===(null==(value=formNode.ui)||null==(value=value.choiceList)?void 0:value.open)?(value=data[$getChildren]().map(child=>child[$content].trim()).join("\n"),formNode[$setValue](createText(value))):this._isConsumeData()&&warn("XFA - Nodes haven't the same type."):!data[$isDataValue]()||this._isMatchTemplate()?this._bindElement(formNode,data):warn("XFA - Nodes haven't the same type.")}_findDataByNameToConsume(name,isValue,dataNode,global){var generator,match;if(!name)return null;for(var i=0;i<3;i++){for(generator=dataNode[$getRealChildrenByNameIt](name,!1,!0);;){if(!(match=generator.next().value))break;if(isValue===match[$isDataValue]())return match}if(dataNode[$namespaceId]===NamespaceIds.datasets.id&&"data"===dataNode[$nodeName])break;dataNode=dataNode[$getParent]()}return global?(match=(generator=this.data[$getRealChildrenByNameIt](name,!0,!1)).next().value)||(null!=(match=(generator=this.data[$getAttributeIt](name,!0)).next().value)&&match[$isDataValue]()?match:null):null}_setProperties(formNode,dataNode){if(formNode.hasOwnProperty("setProperty"))for(var{ref,target,connection}of formNode.setProperty.children){var targetNodes,targetParent,content,name,attrs;connection||ref&&((connection=searchNode(this.root,dataNode,ref,!1,!1))?([connection]=connection,connection[$isDescendent](this.data)?(targetNodes=searchNode(this.root,formNode,target,!1,!1))?([targetNodes]=targetNodes,targetNodes[$isDescendent](formNode)?(targetParent=targetNodes[$getParent](),targetNodes instanceof SetProperty||targetParent instanceof SetProperty?warn("XFA - Invalid target: cannot be a setProperty or one of its properties."):targetNodes instanceof BindItems||targetParent instanceof BindItems?warn("XFA - Invalid target: cannot be a bindItems or one of its properties."):(content=connection[$text](),name=targetNodes[$nodeName],targetNodes instanceof XFAAttribute?((attrs=Object.create(null))[name]=content,attrs=Reflect.construct(Object.getPrototypeOf(targetParent).constructor,[attrs]),targetParent[name]=attrs[name]):targetNodes.hasOwnProperty($content)?(targetNodes[$data]=connection,targetNodes[$content]=content,targetNodes[$finalize]()):warn("XFA - Invalid node to use in setProperty"))):warn("XFA - Invalid target: must be a property or subproperty.")):warn("XFA - Invalid target: ".concat(target,".")):warn("XFA - Invalid node: must be a data node.")):warn("XFA - Invalid reference: ".concat(ref,".")))}}_bindItems(formNode,dataNode){if(formNode.hasOwnProperty("items")&&formNode.hasOwnProperty("bindItems")&&!formNode.bindItems.isEmpty()){for(var item of formNode.items.children)formNode[$removeChild](item);formNode.items.clear();var ref,labelRef,valueRef,connection,labels=new Items({}),values=new Items({});formNode[$appendChild](labels),formNode.items.push(labels),formNode[$appendChild](values),formNode.items.push(values);for({ref,labelRef,valueRef,connection}of formNode.bindItems.children)if(!connection&&ref){var labelNodes,nodes=searchNode(this.root,dataNode,ref,!1,!1);if(nodes)for(var node of nodes)node[$isDescendent](this.datasets)?(labelNodes=searchNode(this.root,node,labelRef,!0,!1))?([labelNodes]=labelNodes,labelNodes[$isDescendent](this.datasets)?(node=searchNode(this.root,node,valueRef,!0,!1))?([node]=node,node[$isDescendent](this.datasets)?(labelNodes=createText(labelNodes[$text]()),node=createText(node[$text]()),labels[$appendChild](labelNodes),labels.text.push(labelNodes),values[$appendChild](node),values.text.push(node)):warn("XFA - Invalid value: must be a datasets child.")):warn("XFA - Invalid value: ".concat(valueRef,".")):warn("XFA - Invalid label: must be a datasets child.")):warn("XFA - Invalid label: ".concat(labelRef,".")):warn("XFA - Invalid ref (".concat(ref,"): must be a datasets child."));else warn("XFA - Invalid reference: ".concat(ref,"."))}}}_bindOccurrences(formNode,matches,picture){var baseClone;if(1e.name===formNode.name):parent[name].children).length,pos=parent[$indexOf](formNode)+1,ii=occur.initial-currentNumber;if(ii){var nodeClone=formNode[$clone]();nodeClone[$removeChild](nodeClone.occur),nodeClone.occur=null,parent[name].push(nodeClone),parent[$insertAt](pos,nodeClone);for(var i=1;i!node[$consumed]):match).length>max?match=match.slice(0,max):0===match.length&&(match=null),match&&this._isConsumeData()&&match.forEach(node=>{node[$consumed]=!0})}else{if(!child.name){this._setAndBind(child,dataNode);continue}if(this._isConsumeData()){for(var matches=[];matches.lengthnode[$getParent]()[$removeChild](node))}}class DataHandler{constructor(root,data){this.data=data,this.dataset=root.datasets||null}serialize(storage){for(var stack=[[-1,this.data[$getChildren]()]];0'];if(this.dataset)for(var _child3 of this.dataset[$getChildren]())"data"!==_child3[$nodeName]&&_child3[$toString](buf);return this.data[$toString](buf),buf.push(""),buf.join("")}}var CONFIG_NS_ID=NamespaceIds.config.id;class Acrobat extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"acrobat",!0),this.acrobat7=null,this.autoSave=null,this.common=null,this.validate=null,this.validateApprovalSignatures=null,this.submitUrl=new XFAObjectArray}}class Acrobat7 extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"acrobat7",!0),this.dynamicRender=null}}class ADBE_JSConsole extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ADBE_JSConsole",["delegate","Enable","Disable"])}}class ADBE_JSDebugger extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ADBE_JSDebugger",["delegate","Enable","Disable"])}}class AddSilentPrint extends Option01{constructor(attributes){super(CONFIG_NS_ID,"addSilentPrint")}}class AddViewerPreferences extends Option01{constructor(attributes){super(CONFIG_NS_ID,"addViewerPreferences")}}class AdjustData extends Option10{constructor(attributes){super(CONFIG_NS_ID,"adjustData")}}class AdobeExtensionLevel extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"adobeExtensionLevel",0,n=>1<=n&&n<=8)}}class Agent extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"agent",!0),this.name=attributes.name?attributes.name.trim():"",this.common=new XFAObjectArray}}class AlwaysEmbed extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"alwaysEmbed")}}class Amd extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"amd")}}class config_Area extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"area"),this.level=getInteger({data:attributes.level,defaultValue:0,validate:n=>1<=n&&n<=3}),this.name=getStringOption(attributes.name,["","barcode","coreinit","deviceDriver","font","general","layout","merge","script","signature","sourceSet","templateCache"])}}class Attributes extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"attributes",["preserve","delegate","ignore"])}}class AutoSave extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"autoSave",["disabled","enabled"])}}class Base extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"base")}}class BatchOutput extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"batchOutput"),this.format=getStringOption(attributes.format,["none","concat","zip","zipCompress"])}}class BehaviorOverride extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"behaviorOverride")}[$finalize](){this[$content]=new Map(this[$content].trim().split(/\s+/).filter(x=>x.includes(":")).map(x=>x.split(":",2)))}}class Cache extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"cache",!0),this.templateCache=null}}class Change extends Option01{constructor(attributes){super(CONFIG_NS_ID,"change")}}class Common extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"common",!0),this.data=null,this.locale=null,this.localeSet=null,this.messaging=null,this.suppressBanner=null,this.template=null,this.validationMessaging=null,this.versionControl=null,this.log=new XFAObjectArray}}class Compress extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"compress"),this.scope=getStringOption(attributes.scope,["imageOnly","document"])}}class CompressLogicalStructure extends Option01{constructor(attributes){super(CONFIG_NS_ID,"compressLogicalStructure")}}class CompressObjectStream extends Option10{constructor(attributes){super(CONFIG_NS_ID,"compressObjectStream")}}class Compression extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"compression",!0),this.compressLogicalStructure=null,this.compressObjectStream=null,this.level=null,this.type=null}}class Config extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"config",!0),this.acrobat=null,this.present=null,this.trace=null,this.agent=new XFAObjectArray}}class Conformance extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"conformance",["A","B"])}}class ContentCopy extends Option01{constructor(attributes){super(CONFIG_NS_ID,"contentCopy")}}class Copies extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"copies",1,n=>1<=n)}}class Creator extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"creator")}}class CurrentPage extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"currentPage",0,n=>0<=n)}}class Data extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"data",!0),this.adjustData=null,this.attributes=null,this.incrementalLoad=null,this.outputXSL=null,this.range=null,this.record=null,this.startNode=null,this.uri=null,this.window=null,this.xsl=null,this.excludeNS=new XFAObjectArray,this.transform=new XFAObjectArray}}class Debug extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"debug",!0),this.uri=null}}class DefaultTypeface extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"defaultTypeface"),this.writingScript=getStringOption(attributes.writingScript,["*","Arabic","Cyrillic","EastEuropeanRoman","Greek","Hebrew","Japanese","Korean","Roman","SimplifiedChinese","Thai","TraditionalChinese","Vietnamese"])}}class Destination extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"destination",["pdf","pcl","ps","webClient","zpl"])}}class DocumentAssembly extends Option01{constructor(attributes){super(CONFIG_NS_ID,"documentAssembly")}}class Driver extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"driver",!0),this.name=attributes.name?attributes.name.trim():"",this.fontInfo=null,this.xdc=null}}class DuplexOption extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"])}}class DynamicRender extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"dynamicRender",["forbidden","required"])}}class Embed extends Option01{constructor(attributes){super(CONFIG_NS_ID,"embed")}}class config_Encrypt extends Option01{constructor(attributes){super(CONFIG_NS_ID,"encrypt")}}class config_Encryption extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"encryption",!0),this.encrypt=null,this.encryptionLevel=null,this.permissions=null}}class EncryptionLevel extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"encryptionLevel",["40bit","128bit"])}}class Enforce extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"enforce")}}class Equate extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"equate"),this.force=getInteger({data:attributes.force,defaultValue:1,validate:n=>0===n}),this.from=attributes.from||"",this.to=attributes.to||""}}class EquateRange extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"equateRange"),this.from=attributes.from||"",this.to=attributes.to||"",this._unicodeRange=attributes.unicodeRange||""}get unicodeRange(){var range,ranges=[],unicodeRegex=/U\+([0-9a-fA-F]+)/;for(range of this._unicodeRange.split(",").map(x=>x.trim()).filter(x=>!!x))1===(range=range.split("-",2).map(x=>{x=x.match(unicodeRegex);return x?parseInt(x[1],16):0})).length&&range.push(range[0]),ranges.push(range);return shadow(this,"unicodeRange",ranges)}}class Exclude extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"exclude")}[$finalize](){this[$content]=this[$content].trim().split(/\s+/).filter(x=>x&&["calculate","close","enter","exit","initialize","ready","validate"].includes(x))}}class ExcludeNS extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"excludeNS")}}class FlipLabel extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"flipLabel",["usePrinterSetting","on","off"])}}class config_FontInfo extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"fontInfo",!0),this.embed=null,this.map=null,this.subsetBelow=null,this.alwaysEmbed=new XFAObjectArray,this.defaultTypeface=new XFAObjectArray,this.neverEmbed=new XFAObjectArray}}class FormFieldFilling extends Option01{constructor(attributes){super(CONFIG_NS_ID,"formFieldFilling")}}class GroupParent extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"groupParent")}}class IfEmpty extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ifEmpty",["dataValue","dataGroup","ignore","remove"])}}class IncludeXDPContent extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"includeXDPContent")}}class IncrementalLoad extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"incrementalLoad",["none","forwardOnly"])}}class IncrementalMerge extends Option01{constructor(attributes){super(CONFIG_NS_ID,"incrementalMerge")}}class Interactive extends Option01{constructor(attributes){super(CONFIG_NS_ID,"interactive")}}class Jog extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"jog",["usePrinterSetting","none","pageSet"])}}class LabelPrinter extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"labelPrinter",!0),this.name=getStringOption(attributes.name,["zpl","dpl","ipl","tcpl"]),this.batchOutput=null,this.flipLabel=null,this.fontInfo=null,this.xdc=null}}class Layout extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"layout",["paginate","panel"])}}class Level extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"level",0,n=>01<=n)}}class NameAttr extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"nameAttr")}}class NeverEmbed extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"neverEmbed")}}class NumberOfCopies extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"numberOfCopies",null,n=>2<=n&&n<=5)}}class OpenAction extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"openAction",!0),this.destination=null}}class Output extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"output",!0),this.to=null,this.type=null,this.uri=null}}class OutputBin extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"outputBin")}}class OutputXSL extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"outputXSL",!0),this.uri=null}}class Overprint extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"overprint",["none","both","draw","field"])}}class Packets extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"packets")}[$finalize](){"*"!==this[$content]&&(this[$content]=this[$content].trim().split(/\s+/).filter(x=>["config","datasets","template","xfdf","xslt"].includes(x)))}}class PageOffset extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pageOffset"),this.x=getInteger({data:attributes.x,defaultValue:"useXDCSetting",validate:n=>!0}),this.y=getInteger({data:attributes.y,defaultValue:"useXDCSetting",validate:n=>!0})}}class PageRange extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"pageRange")}[$finalize](){for(var numbers=this[$content].trim().split(/\s+/).map(x=>parseInt(x,10)),ranges=[],i=0,ii=numbers.length;i!1)}}class Pcl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pcl",!0),this.name=attributes.name||"",this.batchOutput=null,this.fontInfo=null,this.jog=null,this.mediumInfo=null,this.outputBin=null,this.pageOffset=null,this.staple=null,this.xdc=null}}class Pdf extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pdf",!0),this.name=attributes.name||"",this.adobeExtensionLevel=null,this.batchOutput=null,this.compression=null,this.creator=null,this.encryption=null,this.fontInfo=null,this.interactive=null,this.linearized=null,this.openAction=null,this.pdfa=null,this.producer=null,this.renderPolicy=null,this.scriptModel=null,this.silentPrint=null,this.submitFormat=null,this.tagged=null,this.version=null,this.viewerPreferences=null,this.xdc=null}}class Pdfa extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pdfa",!0),this.amd=null,this.conformance=null,this.includeXDPContent=null,this.part=null}}class Permissions extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"permissions",!0),this.accessibleContent=null,this.change=null,this.contentCopy=null,this.documentAssembly=null,this.formFieldFilling=null,this.modifyAnnots=null,this.plaintextMetadata=null,this.print=null,this.printHighQuality=null}}class PickTrayByPDFSize extends Option01{constructor(attributes){super(CONFIG_NS_ID,"pickTrayByPDFSize")}}class config_Picture extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"picture")}}class PlaintextMetadata extends Option01{constructor(attributes){super(CONFIG_NS_ID,"plaintextMetadata")}}class Presence extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"presence",["preserve","dissolve","dissolveStructure","ignore","remove"])}}class Present extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"present",!0),this.behaviorOverride=null,this.cache=null,this.common=null,this.copies=null,this.destination=null,this.incrementalMerge=null,this.layout=null,this.output=null,this.overprint=null,this.pagination=null,this.paginationOverride=null,this.script=null,this.validate=null,this.xdp=null,this.driver=new XFAObjectArray,this.labelPrinter=new XFAObjectArray,this.pcl=new XFAObjectArray,this.pdf=new XFAObjectArray,this.ps=new XFAObjectArray,this.submitUrl=new XFAObjectArray,this.webClient=new XFAObjectArray,this.zpl=new XFAObjectArray}}class Print extends Option01{constructor(attributes){super(CONFIG_NS_ID,"print")}}class PrintHighQuality extends Option01{constructor(attributes){super(CONFIG_NS_ID,"printHighQuality")}}class PrintScaling extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"printScaling",["appdefault","noScaling"])}}class PrinterName extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"printerName")}}class Producer extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"producer")}}class Ps extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"ps",!0),this.name=attributes.name||"",this.batchOutput=null,this.fontInfo=null,this.jog=null,this.mediumInfo=null,this.outputBin=null,this.staple=null,this.xdc=null}}class Range extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"range")}[$finalize](){this[$content]=this[$content].split(",",2).map(range=>range.split("-").map(x=>parseInt(x.trim(),10))).filter(range=>range.every(x=>!isNaN(x))).map(range=>(1===range.length&&range.push(range[0]),range))}}class Record extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"record")}[$finalize](){this[$content]=this[$content].trim();var n=parseInt(this[$content],10);!isNaN(n)&&0<=n&&(this[$content]=n)}}class Relevant extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"relevant")}[$finalize](){this[$content]=this[$content].trim().split(/\s+/)}}class Rename extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"rename")}[$finalize](){this[$content]=this[$content].trim(),(this[$content].toLowerCase().startsWith("xml")||new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*","u").test(this[$content]))&&warn("XFA - Rename: invalid XFA name")}}class RenderPolicy extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"renderPolicy",["server","client"])}}class RunScripts extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"runScripts",["both","client","none","server"])}}class config_Script extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"script",!0),this.currentPage=null,this.exclude=null,this.runScripts=null}}class ScriptModel extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"scriptModel",["XFA","none"])}}class Severity extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"severity",["ignore","error","information","trace","warning"])}}class SilentPrint extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"silentPrint",!0),this.addSilentPrint=null,this.printerName=null}}class Staple extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"staple"),this.mode=getStringOption(attributes.mode,["usePrinterSetting","on","off"])}}class StartNode extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"startNode")}}class StartPage extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"startPage",0,n=>!0)}}class SubmitFormat extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"submitFormat",["html","delegate","fdf","xml","pdf"])}}class SubmitUrl extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"submitUrl")}}class SubsetBelow extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"subsetBelow",100,n=>0<=n&&n<=100)}}class SuppressBanner extends Option01{constructor(attributes){super(CONFIG_NS_ID,"suppressBanner")}}class Tagged extends Option01{constructor(attributes){super(CONFIG_NS_ID,"tagged")}}class config_Template extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"template",!0),this.base=null,this.relevant=null,this.startPage=null,this.uri=null,this.xsl=null}}class Threshold extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"threshold",["trace","error","information","warning"])}}class To extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"to",["null","memory","stderr","stdout","system","uri"])}}class TemplateCache extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"templateCache"),this.maxEntries=getInteger({data:attributes.maxEntries,defaultValue:5,validate:n=>0<=n})}}class Trace extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"trace",!0),this.area=new XFAObjectArray}}class Transform extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"transform",!0),this.groupParent=null,this.ifEmpty=null,this.nameAttr=null,this.picture=null,this.presence=null,this.rename=null,this.whitespace=null}}class Type extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"])}}class Uri extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"uri")}}class config_Validate extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"validate",["preSubmit","prePrint","preExecute","preSave"])}}class ValidateApprovalSignatures extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"validateApprovalSignatures")}[$finalize](){this[$content]=this[$content].trim().split(/\s+/).filter(x=>["docReady","postSign"].includes(x))}}class ValidationMessaging extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"])}}class Version extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"version",["1.7","1.6","1.5","1.4","1.3","1.2"])}}class VersionControl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"VersionControl"),this.outputBelow=getStringOption(attributes.outputBelow,["warn","error","update"]),this.sourceAbove=getStringOption(attributes.sourceAbove,["warn","error"]),this.sourceBelow=getStringOption(attributes.sourceBelow,["update","maintain"])}}class ViewerPreferences extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"viewerPreferences",!0),this.ADBE_JSConsole=null,this.ADBE_JSDebugger=null,this.addViewerPreferences=null,this.duplexOption=null,this.enforce=null,this.numberOfCopies=null,this.pageRange=null,this.pickTrayByPDFSize=null,this.printScaling=null}}class WebClient extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"webClient",!0),this.name=attributes.name?attributes.name.trim():"",this.fontInfo=null,this.xdc=null}}class Whitespace extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"whitespace",["preserve","ltrim","normalize","rtrim","trim"])}}class Window extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"window")}[$finalize](){var pair=this[$content].split(",",2).map(x=>parseInt(x.trim(),10));pair.some(x=>isNaN(x))?this[$content]=[0,0]:(1===pair.length&&pair.push(pair[0]),this[$content]=pair)}}class Xdc extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xdc",!0),this.uri=new XFAObjectArray,this.xsl=new XFAObjectArray}}class Xdp extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xdp",!0),this.packets=null}}class Xsl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xsl",!0),this.debug=null,this.uri=null}}class Zpl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"zpl",!0),this.name=attributes.name?attributes.name.trim():"",this.batchOutput=null,this.flipLabel=null,this.fontInfo=null,this.xdc=null}}class ConfigNamespace{static[$buildXFAObject](name,attributes){if(ConfigNamespace.hasOwnProperty(name))return ConfigNamespace[name](attributes)}static acrobat(attrs){return new Acrobat(attrs)}static acrobat7(attrs){return new Acrobat7(attrs)}static ADBE_JSConsole(attrs){return new ADBE_JSConsole(attrs)}static ADBE_JSDebugger(attrs){return new ADBE_JSDebugger(attrs)}static addSilentPrint(attrs){return new AddSilentPrint(attrs)}static addViewerPreferences(attrs){return new AddViewerPreferences(attrs)}static adjustData(attrs){return new AdjustData(attrs)}static adobeExtensionLevel(attrs){return new AdobeExtensionLevel(attrs)}static agent(attrs){return new Agent(attrs)}static alwaysEmbed(attrs){return new AlwaysEmbed(attrs)}static amd(attrs){return new Amd(attrs)}static area(attrs){return new config_Area(attrs)}static attributes(attrs){return new Attributes(attrs)}static autoSave(attrs){return new AutoSave(attrs)}static base(attrs){return new Base(attrs)}static batchOutput(attrs){return new BatchOutput(attrs)}static behaviorOverride(attrs){return new BehaviorOverride(attrs)}static cache(attrs){return new Cache(attrs)}static change(attrs){return new Change(attrs)}static common(attrs){return new Common(attrs)}static compress(attrs){return new Compress(attrs)}static compressLogicalStructure(attrs){return new CompressLogicalStructure(attrs)}static compressObjectStream(attrs){return new CompressObjectStream(attrs)}static compression(attrs){return new Compression(attrs)}static config(attrs){return new Config(attrs)}static conformance(attrs){return new Conformance(attrs)}static contentCopy(attrs){return new ContentCopy(attrs)}static copies(attrs){return new Copies(attrs)}static creator(attrs){return new Creator(attrs)}static currentPage(attrs){return new CurrentPage(attrs)}static data(attrs){return new Data(attrs)}static debug(attrs){return new Debug(attrs)}static defaultTypeface(attrs){return new DefaultTypeface(attrs)}static destination(attrs){return new Destination(attrs)}static documentAssembly(attrs){return new DocumentAssembly(attrs)}static driver(attrs){return new Driver(attrs)}static duplexOption(attrs){return new DuplexOption(attrs)}static dynamicRender(attrs){return new DynamicRender(attrs)}static embed(attrs){return new Embed(attrs)}static encrypt(attrs){return new config_Encrypt(attrs)}static encryption(attrs){return new config_Encryption(attrs)}static encryptionLevel(attrs){return new EncryptionLevel(attrs)}static enforce(attrs){return new Enforce(attrs)}static equate(attrs){return new Equate(attrs)}static equateRange(attrs){return new EquateRange(attrs)}static exclude(attrs){return new Exclude(attrs)}static excludeNS(attrs){return new ExcludeNS(attrs)}static flipLabel(attrs){return new FlipLabel(attrs)}static fontInfo(attrs){return new config_FontInfo(attrs)}static formFieldFilling(attrs){return new FormFieldFilling(attrs)}static groupParent(attrs){return new GroupParent(attrs)}static ifEmpty(attrs){return new IfEmpty(attrs)}static includeXDPContent(attrs){return new IncludeXDPContent(attrs)}static incrementalLoad(attrs){return new IncrementalLoad(attrs)}static incrementalMerge(attrs){return new IncrementalMerge(attrs)}static interactive(attrs){return new Interactive(attrs)}static jog(attrs){return new Jog(attrs)}static labelPrinter(attrs){return new LabelPrinter(attrs)}static layout(attrs){return new Layout(attrs)}static level(attrs){return new Level(attrs)}static linearized(attrs){return new Linearized(attrs)}static locale(attrs){return new Locale(attrs)}static localeSet(attrs){return new LocaleSet(attrs)}static log(attrs){return new Log(attrs)}static map(attrs){return new MapElement(attrs)}static mediumInfo(attrs){return new MediumInfo(attrs)}static message(attrs){return new config_Message(attrs)}static messaging(attrs){return new Messaging(attrs)}static mode(attrs){return new Mode(attrs)}static modifyAnnots(attrs){return new ModifyAnnots(attrs)}static msgId(attrs){return new MsgId(attrs)}static nameAttr(attrs){return new NameAttr(attrs)}static neverEmbed(attrs){return new NeverEmbed(attrs)}static numberOfCopies(attrs){return new NumberOfCopies(attrs)}static openAction(attrs){return new OpenAction(attrs)}static output(attrs){return new Output(attrs)}static outputBin(attrs){return new OutputBin(attrs)}static outputXSL(attrs){return new OutputXSL(attrs)}static overprint(attrs){return new Overprint(attrs)}static packets(attrs){return new Packets(attrs)}static pageOffset(attrs){return new PageOffset(attrs)}static pageRange(attrs){return new PageRange(attrs)}static pagination(attrs){return new Pagination(attrs)}static paginationOverride(attrs){return new PaginationOverride(attrs)}static part(attrs){return new Part(attrs)}static pcl(attrs){return new Pcl(attrs)}static pdf(attrs){return new Pdf(attrs)}static pdfa(attrs){return new Pdfa(attrs)}static permissions(attrs){return new Permissions(attrs)}static pickTrayByPDFSize(attrs){return new PickTrayByPDFSize(attrs)}static picture(attrs){return new config_Picture(attrs)}static plaintextMetadata(attrs){return new PlaintextMetadata(attrs)}static presence(attrs){return new Presence(attrs)}static present(attrs){return new Present(attrs)}static print(attrs){return new Print(attrs)}static printHighQuality(attrs){return new PrintHighQuality(attrs)}static printScaling(attrs){return new PrintScaling(attrs)}static printerName(attrs){return new PrinterName(attrs)}static producer(attrs){return new Producer(attrs)}static ps(attrs){return new Ps(attrs)}static range(attrs){return new Range(attrs)}static record(attrs){return new Record(attrs)}static relevant(attrs){return new Relevant(attrs)}static rename(attrs){return new Rename(attrs)}static renderPolicy(attrs){return new RenderPolicy(attrs)}static runScripts(attrs){return new RunScripts(attrs)}static script(attrs){return new config_Script(attrs)}static scriptModel(attrs){return new ScriptModel(attrs)}static severity(attrs){return new Severity(attrs)}static silentPrint(attrs){return new SilentPrint(attrs)}static staple(attrs){return new Staple(attrs)}static startNode(attrs){return new StartNode(attrs)}static startPage(attrs){return new StartPage(attrs)}static submitFormat(attrs){return new SubmitFormat(attrs)}static submitUrl(attrs){return new SubmitUrl(attrs)}static subsetBelow(attrs){return new SubsetBelow(attrs)}static suppressBanner(attrs){return new SuppressBanner(attrs)}static tagged(attrs){return new Tagged(attrs)}static template(attrs){return new config_Template(attrs)}static templateCache(attrs){return new TemplateCache(attrs)}static threshold(attrs){return new Threshold(attrs)}static to(attrs){return new To(attrs)}static trace(attrs){return new Trace(attrs)}static transform(attrs){return new Transform(attrs)}static type(attrs){return new Type(attrs)}static uri(attrs){return new Uri(attrs)}static validate(attrs){return new config_Validate(attrs)}static validateApprovalSignatures(attrs){return new ValidateApprovalSignatures(attrs)}static validationMessaging(attrs){return new ValidationMessaging(attrs)}static version(attrs){return new Version(attrs)}static versionControl(attrs){return new VersionControl(attrs)}static viewerPreferences(attrs){return new ViewerPreferences(attrs)}static webClient(attrs){return new WebClient(attrs)}static whitespace(attrs){return new Whitespace(attrs)}static window(attrs){return new Window(attrs)}static xdc(attrs){return new Xdc(attrs)}static xdp(attrs){return new Xdp(attrs)}static xsl(attrs){return new Xsl(attrs)}static zpl(attrs){return new Zpl(attrs)}}var CONNECTION_SET_NS_ID=NamespaceIds.connectionSet.id;class ConnectionSet extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"connectionSet",!0),this.wsdlConnection=new XFAObjectArray,this.xmlConnection=new XFAObjectArray,this.xsdConnection=new XFAObjectArray}}class EffectiveInputPolicy extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"effectiveInputPolicy"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class EffectiveOutputPolicy extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"effectiveOutputPolicy"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Operation extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"operation"),this.id=attributes.id||"",this.input=attributes.input||"",this.name=attributes.name||"",this.output=attributes.output||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class RootElement extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"rootElement"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class SoapAction extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"soapAction"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class SoapAddress extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"soapAddress"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class connection_set_Uri extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"uri"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class WsdlAddress extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"wsdlAddress"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class WsdlConnection extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"wsdlConnection",!0),this.dataDescription=attributes.dataDescription||"",this.name=attributes.name||"",this.effectiveInputPolicy=null,this.effectiveOutputPolicy=null,this.operation=null,this.soapAction=null,this.soapAddress=null,this.wsdlAddress=null}}class XmlConnection extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"xmlConnection",!0),this.dataDescription=attributes.dataDescription||"",this.name=attributes.name||"",this.uri=null}}class XsdConnection extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"xsdConnection",!0),this.dataDescription=attributes.dataDescription||"",this.name=attributes.name||"",this.rootElement=null,this.uri=null}}class ConnectionSetNamespace{static[$buildXFAObject](name,attributes){if(ConnectionSetNamespace.hasOwnProperty(name))return ConnectionSetNamespace[name](attributes)}static connectionSet(attrs){return new ConnectionSet(attrs)}static effectiveInputPolicy(attrs){return new EffectiveInputPolicy(attrs)}static effectiveOutputPolicy(attrs){return new EffectiveOutputPolicy(attrs)}static operation(attrs){return new Operation(attrs)}static rootElement(attrs){return new RootElement(attrs)}static soapAction(attrs){return new SoapAction(attrs)}static soapAddress(attrs){return new SoapAddress(attrs)}static uri(attrs){return new connection_set_Uri(attrs)}static wsdlAddress(attrs){return new WsdlAddress(attrs)}static wsdlConnection(attrs){return new WsdlConnection(attrs)}static xmlConnection(attrs){return new XmlConnection(attrs)}static xsdConnection(attrs){return new XsdConnection(attrs)}}var DATASETS_NS_ID=NamespaceIds.datasets.id;class datasets_Data extends XmlObject{constructor(attributes){super(DATASETS_NS_ID,"data",attributes)}[$isNsAgnostic](){return!0}}class Datasets extends XFAObject{constructor(attributes){super(DATASETS_NS_ID,"datasets",!0),this.data=null,this.Signature=null}[$onChild](child){var name=child[$nodeName];("data"===name&&child[$namespaceId]===DATASETS_NS_ID||"Signature"===name&&child[$namespaceId]===NamespaceIds.signature.id)&&(this[name]=child),this[$appendChild](child)}}class DatasetsNamespace{static[$buildXFAObject](name,attributes){if(DatasetsNamespace.hasOwnProperty(name))return DatasetsNamespace[name](attributes)}static datasets(attributes){return new Datasets(attributes)}static data(attributes){return new datasets_Data(attributes)}}var LOCALE_SET_NS_ID=NamespaceIds.localeSet.id;class CalendarSymbols extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"calendarSymbols",!0),this.name="gregorian",this.dayNames=new XFAObjectArray(2),this.eraNames=null,this.meridiemNames=null,this.monthNames=new XFAObjectArray(2)}}class CurrencySymbol extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"currencySymbol"),this.name=getStringOption(attributes.name,["symbol","isoname","decimal"])}}class CurrencySymbols extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"currencySymbols",!0),this.currencySymbol=new XFAObjectArray(3)}}class DatePattern extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"datePattern"),this.name=getStringOption(attributes.name,["full","long","med","short"])}}class DatePatterns extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"datePatterns",!0),this.datePattern=new XFAObjectArray(4)}}class DateTimeSymbols extends ContentObject{constructor(attributes){super(LOCALE_SET_NS_ID,"dateTimeSymbols")}}class Day extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"day")}}class DayNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"dayNames",!0),this.abbr=getInteger({data:attributes.abbr,defaultValue:0,validate:x=>1===x}),this.day=new XFAObjectArray(7)}}class Era extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"era")}}class EraNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"eraNames",!0),this.era=new XFAObjectArray(2)}}class locale_set_Locale extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"locale",!0),this.desc=attributes.desc||"",this.name="isoname",this.calendarSymbols=null,this.currencySymbols=null,this.datePatterns=null,this.dateTimeSymbols=null,this.numberPatterns=null,this.numberSymbols=null,this.timePatterns=null,this.typeFaces=null}}class locale_set_LocaleSet extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"localeSet",!0),this.locale=new XFAObjectArray}}class Meridiem extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"meridiem")}}class MeridiemNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"meridiemNames",!0),this.meridiem=new XFAObjectArray(2)}}class Month extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"month")}}class MonthNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"monthNames",!0),this.abbr=getInteger({data:attributes.abbr,defaultValue:0,validate:x=>1===x}),this.month=new XFAObjectArray(12)}}class NumberPattern extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberPattern"),this.name=getStringOption(attributes.name,["full","long","med","short"])}}class NumberPatterns extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberPatterns",!0),this.numberPattern=new XFAObjectArray(4)}}class NumberSymbol extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberSymbol"),this.name=getStringOption(attributes.name,["decimal","grouping","percent","minus","zero"])}}class NumberSymbols extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberSymbols",!0),this.numberSymbol=new XFAObjectArray(5)}}class TimePattern extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"timePattern"),this.name=getStringOption(attributes.name,["full","long","med","short"])}}class TimePatterns extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"timePatterns",!0),this.timePattern=new XFAObjectArray(4)}}class TypeFace extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"typeFace",!0),this.name=""|attributes.name}}class TypeFaces extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"typeFaces",!0),this.typeFace=new XFAObjectArray}}class LocaleSetNamespace{static[$buildXFAObject](name,attributes){if(LocaleSetNamespace.hasOwnProperty(name))return LocaleSetNamespace[name](attributes)}static calendarSymbols(attrs){return new CalendarSymbols(attrs)}static currencySymbol(attrs){return new CurrencySymbol(attrs)}static currencySymbols(attrs){return new CurrencySymbols(attrs)}static datePattern(attrs){return new DatePattern(attrs)}static datePatterns(attrs){return new DatePatterns(attrs)}static dateTimeSymbols(attrs){return new DateTimeSymbols(attrs)}static day(attrs){return new Day(attrs)}static dayNames(attrs){return new DayNames(attrs)}static era(attrs){return new Era(attrs)}static eraNames(attrs){return new EraNames(attrs)}static locale(attrs){return new locale_set_Locale(attrs)}static localeSet(attrs){return new locale_set_LocaleSet(attrs)}static meridiem(attrs){return new Meridiem(attrs)}static meridiemNames(attrs){return new MeridiemNames(attrs)}static month(attrs){return new Month(attrs)}static monthNames(attrs){return new MonthNames(attrs)}static numberPattern(attrs){return new NumberPattern(attrs)}static numberPatterns(attrs){return new NumberPatterns(attrs)}static numberSymbol(attrs){return new NumberSymbol(attrs)}static numberSymbols(attrs){return new NumberSymbols(attrs)}static timePattern(attrs){return new TimePattern(attrs)}static timePatterns(attrs){return new TimePatterns(attrs)}static typeFace(attrs){return new TypeFace(attrs)}static typeFaces(attrs){return new TypeFaces(attrs)}}var SIGNATURE_NS_ID=NamespaceIds.signature.id;class signature_Signature extends XFAObject{constructor(attributes){super(SIGNATURE_NS_ID,"signature",!0)}}class SignatureNamespace{static[$buildXFAObject](name,attributes){if(SignatureNamespace.hasOwnProperty(name))return SignatureNamespace[name](attributes)}static signature(attributes){return new signature_Signature(attributes)}}var STYLESHEET_NS_ID=NamespaceIds.stylesheet.id;class Stylesheet extends XFAObject{constructor(attributes){super(STYLESHEET_NS_ID,"stylesheet",!0)}}class StylesheetNamespace{static[$buildXFAObject](name,attributes){if(StylesheetNamespace.hasOwnProperty(name))return StylesheetNamespace[name](attributes)}static stylesheet(attributes){return new Stylesheet(attributes)}}var XDP_NS_ID=NamespaceIds.xdp.id;class xdp_Xdp extends XFAObject{constructor(attributes){super(XDP_NS_ID,"xdp",!0),this.uuid=attributes.uuid||"",this.timeStamp=attributes.timeStamp||"",this.config=null,this.connectionSet=null,this.datasets=null,this.localeSet=null,this.stylesheet=new XFAObjectArray,this.template=null}[$onChildCheck](child){var ns=NamespaceIds[child[$nodeName]];return ns&&child[$namespaceId]===ns.id}}class XdpNamespace{static[$buildXFAObject](name,attributes){if(XdpNamespace.hasOwnProperty(name))return XdpNamespace[name](attributes)}static xdp(attributes){return new xdp_Xdp(attributes)}}var XHTML_NS_ID=NamespaceIds.xhtml.id,$richText=Symbol(),VALID_STYLES=new Set(["color","font","font-family","font-size","font-stretch","font-style","font-weight","margin","margin-bottom","margin-left","margin-right","margin-top","letter-spacing","line-height","orphans","page-break-after","page-break-before","page-break-inside","tab-interval","tab-stop","text-align","text-decoration","text-indent","vertical-align","widows","kerning-mode","xfa-font-horizontal-scale","xfa-font-vertical-scale","xfa-spacerun","xfa-tab-stops"]),StyleMapping=new Map([["page-break-after","breakAfter"],["page-break-before","breakBefore"],["page-break-inside","breakInside"],["kerning-mode",value=>"none"===value?"none":"normal"],["xfa-font-horizontal-scale",value=>"scaleX(".concat(Math.max(0,parseInt(value)/100).toFixed(2),")")],["xfa-font-vertical-scale",value=>"scaleY(".concat(Math.max(0,parseInt(value)/100).toFixed(2),")")],["xfa-spacerun",""],["xfa-tab-stops",""],["font-size",(value,original)=>measureToString(.99*(value=original.fontSize=Math.abs(getMeasurement(value))))],["letter-spacing",value=>measureToString(getMeasurement(value))],["line-height",value=>measureToString(getMeasurement(value))],["margin",value=>measureToString(getMeasurement(value))],["margin-bottom",value=>measureToString(getMeasurement(value))],["margin-left",value=>measureToString(getMeasurement(value))],["margin-right",value=>measureToString(getMeasurement(value))],["margin-top",value=>measureToString(getMeasurement(value))],["text-indent",value=>measureToString(getMeasurement(value))],["font-family",value=>value],["vertical-align",value=>measureToString(getMeasurement(value))]]),spacesRegExp=/\s+/g,crlfRegExp=/[\r\n]+/g,crlfForRichTextRegExp=/\r\n?/g;function mapStyle(styleStr,node,richText){var style=Object.create(null);if(styleStr){var key,value,original=Object.create(null);for([key,value]of styleStr.split(";").map(s=>s.split(":",2))){var newValue,mapping=StyleMapping.get(key);""!==mapping&&(newValue=value,mapping&&(newValue="string"==typeof mapping?mapping:mapping(value,original)),key.endsWith("scale")?style.transform=style.transform?"".concat(style[key]," ").concat(newValue):newValue:style[key.replaceAll(/-([a-zA-Z])/g,(_,x)=>x.toUpperCase())]=newValue)}style.fontFamily&&setFontFamily({typeface:style.fontFamily,weight:style.fontWeight||"normal",posture:style.fontStyle||"normal",size:original.fontSize||0},node,node[$globalData].fontFinder,style),richText&&style.verticalAlign&&"0px"!==style.verticalAlign&&style.fontSize&&(styleStr=getMeasurement(style.fontSize),style.fontSize=measureToString(.583*styleStr),style.verticalAlign=measureToString(Math.sign(getMeasurement(style.verticalAlign))*styleStr*.333)),richText&&style.fontSize&&(style.fontSize="calc(".concat(style.fontSize," * var(--total-scale-factor))")),fixTextIndent(style)}return style}function checkStyle(node){return node.style?node.style.split(";").filter(s=>!!s.trim()).map(s=>s.split(":",2).map(t=>t.trim())).filter(_ref63=>{var[_ref63,value]=_ref63;return"font-family"===_ref63&&node[$globalData].usedTypefaces.add(value),VALID_STYLES.has(_ref63)}).map(kv=>kv.join(":")).join(";"):""}var NoWhites=new Set(["body","html"]);class XhtmlObject extends XmlObject{constructor(attributes,name){super(XHTML_NS_ID,name),this[$richText]=!1,this.style=attributes.style||""}[$clean](builder){super[$clean](builder),this.style=checkStyle(this)}[$acceptWhitespace](){return!NoWhites.has(this[$nodeName])}[$onText](str){1s.split(":",2)))switch(key){case"font-family":xfaFont.typeface=stripQuotes(value);break;case"font-size":xfaFont.size=getMeasurement(value);break;case"font-weight":xfaFont.weight=value;break;case"font-style":xfaFont.posture=value;break;case"letter-spacing":xfaFont.letterSpacing=getMeasurement(value);break;case"margin":var values=value.split(/ \t/).map(x=>getMeasurement(x));switch(values.length){case 1:margin.top=margin.bottom=margin.left=margin.right=values[0];break;case 2:margin.top=margin.bottom=values[0],margin.left=margin.right=values[1];break;case 3:margin.top=values[0],margin.bottom=values[2],margin.left=margin.right=values[1];break;case 4:margin.top=values[0],margin.left=values[1],margin.bottom=values[2],margin.right=values[3]}break;case"margin-top":margin.top=getMeasurement(value);break;case"margin-bottom":margin.bottom=getMeasurement(value);break;case"margin-left":margin.left=getMeasurement(value);break;case"margin-right":margin.right=getMeasurement(value);break;case"line-height":lineHeight=getMeasurement(value)}if(measure.pushData(xfaFont,margin,lineHeight),this[$content])measure.addString(this[$content]);else for(var child of this[$getChildren]())"#text"===child[$nodeName]?measure.addString(child[$content]):child[$pushGlyphs](measure);mustPop&&measure.popFont()}[$toHTML](availableSpace){var value,children=[];return this[$extra]={children:children},this[$childrenToHTML]({}),0!==children.length||this[$content]?(value=this[$richText]?this[$content]?this[$content].replaceAll(crlfForRichTextRegExp,"\n"):void 0:this[$content]||void 0,HTMLResult.success({name:this[$nodeName],attributes:{href:this.href,style:mapStyle(this.style,this,this[$richText])},children:children,value:value})):HTMLResult.EMPTY}}class A extends XhtmlObject{constructor(attributes){super(attributes,"a"),this.href=fixURL(attributes.href)||""}}class B extends XhtmlObject{constructor(attributes){super(attributes,"b")}[$pushGlyphs](measure){measure.pushFont({weight:"bold"}),super[$pushGlyphs](measure),measure.popFont()}}class Body extends XhtmlObject{constructor(attributes){super(attributes,"body")}[$toHTML](availableSpace){var availableSpace=super[$toHTML](availableSpace),html=availableSpace["html"];return html?(html.name="div",html.attributes.class=["xfaRich"],availableSpace):HTMLResult.EMPTY}}class Br extends XhtmlObject{constructor(attributes){super(attributes,"br")}[$text](){return"\n"}[$pushGlyphs](measure){measure.addString("\n")}[$toHTML](availableSpace){return HTMLResult.success({name:"br"})}}class Html extends XhtmlObject{constructor(attributes){super(attributes,"html")}[$toHTML](availableSpace){var children=[];if(this[$extra]={children:children},this[$childrenToHTML]({}),0===children.length)return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[$content]||""});if(1===children.length){var _child$attributes,child=children[0];if(null!=(_child$attributes=child.attributes)&&_child$attributes.class.includes("xfaRich"))return HTMLResult.success(child)}return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},children:children})}}class I extends XhtmlObject{constructor(attributes){super(attributes,"i")}[$pushGlyphs](measure){measure.pushFont({posture:"italic"}),super[$pushGlyphs](measure),measure.popFont()}}class Li extends XhtmlObject{constructor(attributes){super(attributes,"li")}}class Ol extends XhtmlObject{constructor(attributes){super(attributes,"ol")}}class P extends XhtmlObject{constructor(attributes){super(attributes,"p")}[$pushGlyphs](measure){super[$pushGlyphs](measure,!1),measure.addString("\n"),measure.addPara(),measure.popFont()}[$text](){return this[$getParent]()[$getChildren]().at(-1)===this?super[$text]():super[$text]()+"\n"}}class Span extends XhtmlObject{constructor(attributes){super(attributes,"span")}}class Sub extends XhtmlObject{constructor(attributes){super(attributes,"sub")}}class Sup extends XhtmlObject{constructor(attributes){super(attributes,"sup")}}class Ul extends XhtmlObject{constructor(attributes){super(attributes,"ul")}}class XhtmlNamespace{static[$buildXFAObject](name,attributes){if(XhtmlNamespace.hasOwnProperty(name))return XhtmlNamespace[name](attributes)}static a(attributes){return new A(attributes)}static b(attributes){return new B(attributes)}static body(attributes){return new Body(attributes)}static br(attributes){return new Br(attributes)}static html(attributes){return new Html(attributes)}static i(attributes){return new I(attributes)}static li(attributes){return new Li(attributes)}static ol(attributes){return new Ol(attributes)}static p(attributes){return new P(attributes)}static span(attributes){return new Span(attributes)}static sub(attributes){return new Sub(attributes)}static sup(attributes){return new Sup(attributes)}static ul(attributes){return new Ul(attributes)}}var NamespaceSetUp={config:ConfigNamespace,connection:ConnectionSetNamespace,datasets:DatasetsNamespace,localeSet:LocaleSetNamespace,signature:SignatureNamespace,stylesheet:StylesheetNamespace,template:TemplateNamespace,xdp:XdpNamespace,xhtml:XhtmlNamespace};class UnknownNamespace{constructor(nsId){this.namespaceId=nsId}[$buildXFAObject](name,attributes){return new XmlObject(this.namespaceId,name,attributes)}}class Root extends XFAObject{constructor(ids){super(-1,"root",Object.create(null)),this.element=null,this[$ids]=ids}[$onChild](child){return this.element=child,!0}[$finalize](){super[$finalize](),this.element.template instanceof Template&&(this[$ids].set($root,this.element),this.element.template[$resolvePrototypes](this[$ids]),this.element.template[$ids]=this[$ids])}}class Empty extends XFAObject{constructor(){super(-1,"",Object.create(null))}[$onChild](_){return!1}}class Builder{constructor(){var rootNameSpace=0{_ref64=_ref64.id;return _ref64})),this._currentNamespace=rootNameSpace||new UnknownNamespace(++this._nextNsId)}buildRoot(ids){return new Root(ids)}build(_ref65){var{nsPrefix:_ref65,name,attributes,namespace,prefixes}=_ref65,hasNamespaceDef=null!==namespace;if(hasNamespaceDef&&(this._namespaceStack.push(this._currentNamespace),this._currentNamespace=this._searchNamespace(namespace)),prefixes&&this._addNamespacePrefix(prefixes),attributes.hasOwnProperty($nsAttributes)){var ns,attrs,dataTemplate=NamespaceSetUp.datasets,namespace=attributes[$nsAttributes],xfaAttrs=null;for([ns,attrs]of Object.entries(namespace))if(this._getNamespaceToUse(ns)===dataTemplate){xfaAttrs={xfa:attrs};break}xfaAttrs?attributes[$nsAttributes]=xfaAttrs:delete attributes[$nsAttributes]}namespace=this._getNamespaceToUse(_ref65),_ref65=(null==namespace?void 0:namespace[$buildXFAObject](name,attributes))||new Empty;return _ref65[$isNsAgnostic]()&&this._nsAgnosticLevel++,(hasNamespaceDef||prefixes||_ref65[$isNsAgnostic]())&&(_ref65[$cleanup]={hasNamespace:hasNamespaceDef,prefixes:prefixes,nsAgnostic:_ref65[$isNsAgnostic]()}),_ref65}isNsAgnostic(){return 0{_ref66=_ref66.prefix;this._namespacePrefixes.get(_ref66).pop()}),nsAgnostic&&this._nsAgnosticLevel--}}class XFAParser extends XMLParserBase{constructor(){var rootNameSpace=0match.slice(1)+" "),this._richText||this._current[$acceptWhitespace]()?this._current[$onText](text,this._richText):this._whiteRegex.test(text)||this._current[$onText](text.trim())}onCdata(text){this._current[$onText](text)}_mkAttributes(attributes,tagName){var name,value,prefix,_attributeObj$$nsAttr,ns,attrName,namespace=null,prefixes=null,attributeObj=Object.create({});for({name,value}of attributes)"xmlns"===name?namespace?warn("XFA - multiple namespace definition in <".concat(tagName,">")):namespace=value:name.startsWith("xmlns:")?(prefix=name.substring("xmlns:".length),(prefixes=null!=prefixes?prefixes:[]).push({prefix:prefix,value:value})):-1===(prefix=name.indexOf(":"))?attributeObj[name]=value:(_attributeObj$$nsAttr=null!=(_attributeObj$$nsAttr=attributeObj[$nsAttributes])?_attributeObj$$nsAttr:attributeObj[$nsAttributes]=Object.create(null),[ns,attrName]=[name.slice(0,prefix),name.slice(prefix+1)],(_attributeObj$$nsAttr[ns]||(_attributeObj$$nsAttr[ns]=Object.create(null)))[attrName]=value);return[namespace,prefixes,attributeObj]}_getNameAndPrefix(name,nsAgnostic){var i=name.indexOf(":");return-1===i?[name,null]:[name.substring(i+1),nsAgnostic?"":name.substring(0,i)]}onBeginElement(tagName,attributes,isEmpty){var[attributes,prefixes,attributesObj]=this._mkAttributes(attributes,tagName),[tagName,nsPrefix]=this._getNameAndPrefix(tagName,this._builder.isNsAgnostic()),nsPrefix=this._builder.build({nsPrefix:nsPrefix,name:tagName,attributes:attributesObj,namespace:attributes,prefixes:prefixes});nsPrefix[$globalData]=this._globalData,isEmpty?(nsPrefix[$finalize](),this._current[$onChild](nsPrefix)&&nsPrefix[$setId](this._ids),nsPrefix[$clean](this._builder)):(this._stack.push(this._current),this._current=nsPrefix)}onEndElement(name){var parser,node=this._current;node[$isCDATAXml]()&&"string"==typeof node[$content]&&((parser=new XFAParser)._globalData=this._globalData,parser=parser.parse(node[$content]),node[$content]=null,node[$onChild](parser)),node[$finalize](),this._current=this._stack.pop(),this._current[$onChild](node)&&node[$setId](this._ids),node[$clean](this._builder)}onError(code){this._errorCode=code}}class XFAFactory{constructor(data){try{this.root=(new XFAParser).parse(XFAFactory._createDocument(data));var binder=new Binder(this.root);this.form=binder.bind(),this.dataHandler=new DataHandler(this.root,binder.getData()),this.form[$globalData].template=this.form}catch(e){warn("XFA - an error occurred during parsing and binding: ".concat(e))}}isValid(){return!(!this.root||!this.form)}_createPagesHelper(){var iterator=this.form[$toPages]();return new Promise((resolve,reject)=>{var nextIteration=()=>{try{var value=iterator.next();value.done?resolve(value.value):setTimeout(nextIteration,0)}catch(e){reject(e)}};setTimeout(nextIteration,0)})}async _createPages(){try{this.pages=await this._createPagesHelper(),this.dims=this.pages.children.map(c=>{var{width:c,height}=c.attributes.style;return[0,0,parseInt(c),parseInt(height)]})}catch(e){warn("XFA - an error occurred during layout: ".concat(e))}}getBoundingBox(pageIndex){return this.dims[pageIndex]}async getNumPages(){return this.pages||await this._createPages(),this.dims.length}setImages(images){this.form[$globalData].images=images}setFonts(fonts){this.form[$globalData].fontFinder=new FontFinder(fonts);var missingFonts=[];for(typeface of this.form[$globalData].usedTypefaces){var typeface=stripQuotes(typeface);this.form[$globalData].fontFinder.find(typeface)||missingFonts.push(typeface)}return 0!attr.startsWith("xfa"))),attributes.dir="auto"),{html:html,str:root[$text]()}):null}catch(e){warn("XFA - an error occurred during parsing of rich text: ".concat(e))}return null}}class AnnotationFactory{static createGlobals(pdfManager){return Promise.all([pdfManager.ensureCatalog("acroForm"),pdfManager.ensureDoc("xfaDatasets"),pdfManager.ensureCatalog("structTreeRoot"),pdfManager.ensureCatalog("baseUrl"),pdfManager.ensureCatalog("attachments"),pdfManager.ensureCatalog("globalColorSpaceCache")]).then(_ref67=>{var[_ref67,xfaDatasets,structTreeRoot,baseUrl,attachments,globalColorSpaceCache]=_ref67;return{pdfManager:pdfManager,acroForm:_ref67 instanceof Dict?_ref67:Dict.empty,xfaDatasets:xfaDatasets,structTreeRoot:structTreeRoot,baseUrl:baseUrl,attachments:attachments,globalColorSpaceCache:globalColorSpaceCache}},reason=>(warn('createGlobals: "'.concat(reason,'".')),null))}static async create(xref,ref,annotationGlobals,idFactory,collectFields,orphanFields,pageRef){var pageIndex=collectFields?await this._getPageIndex(xref,ref,annotationGlobals.pdfManager):null;return annotationGlobals.pdfManager.ensure(this,"_create",[xref,ref,annotationGlobals,idFactory,collectFields,orphanFields,pageIndex,pageRef])}static _create(xref,ref,annotationGlobals,idFactory){var collectFields=4c/255)}function getQuadPoints(dict,rect){var quadPoints=dict.getArray("QuadPoints");if(!isNumberArray(quadPoints,null)||0===quadPoints.length||0rect[2]||x2rect[3]))return null;newQuadPoints.set([minX,x3,x1,x3,minX,x2,x1,x2],i)}return newQuadPoints}function getTransformMatrix(rect,bbox,matrix){var minMax=new Float32Array([1/0,1/0,-1/0,-1/0]),[bbox,matrix,minMax,maxY]=(Util.axialAlignedBoundingBox(bbox,matrix,minMax),minMax);return bbox===minMax||matrix===maxY?[1,0,0,1,rect[0],rect[1]]:[minMax=(rect[2]-rect[0])/(minMax-bbox),0,0,maxY=(rect[3]-rect[1])/(maxY-matrix),rect[0]-bbox*minMax,rect[1]-matrix*maxY]}class Annotation{constructor(params){var{dict,xref,annotationGlobals,ref,orphanFields}=params,orphanFields=null==orphanFields?void 0:orphanFields.get(ref),ref=(orphanFields&&dict.set("Parent",orphanFields),this.setTitle(dict.get("T")),this.setContents(dict.get("Contents")),this.setModificationDate(dict.get("M")),this.setFlags(dict.get("F")),this.setRectangle(dict.getArray("Rect")),this.setColor(dict.getArray("C")),this.setBorderStyle(dict),this.setAppearance(dict),this.setOptionalContent(dict),dict.get("MK")),orphanFields=(this.setBorderAndBackgroundColors(ref),this.setRotation(ref,dict),this.ref=params.ref instanceof Ref?params.ref:null,this._streams=[],this.appearance&&this._streams.push(this.appearance),!!(this.flags&AnnotationFlag.LOCKED)),ref=!!(this.flags&AnnotationFlag.LOCKEDCONTENTS);if(this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,rotation:this.rotation,contentsObj:this._contents,hasAppearance:!!this.appearance,id:params.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:params.subtype,hasOwnCanvas:!1,noRotate:!!(this.flags&AnnotationFlag.NOROTATE),noHTML:orphanFields&&ref,isEditable:!1,structParent:-1},annotationGlobals.structTreeRoot&&(orphanFields=dict.get("StructParent"),this.data.structParent=orphanFields=Number.isInteger(orphanFields)&&0<=orphanFields?orphanFields:-1,annotationGlobals.structTreeRoot.addAnnotationIdToPage(params.pageRef,orphanFields)),params.collectFields){ref=dict.get("Kids");if(Array.isArray(ref)){var kid,kidIds=[];for(kid of ref)kid instanceof Ref&&kidIds.push(kid.toString());0!==kidIds.length&&(this.data.kidIds=kidIds)}this.data.actions=collectActions(xref,dict,AnnotationActionEventType),this.data.fieldName=this._constructFieldName(dict),this.data.pageIndex=params.pageIndex}annotationGlobals=dict.get("IT");annotationGlobals instanceof Name&&(this.data.it=annotationGlobals.name),this._isOffscreenCanvasSupported=params.evaluatorOptions.isOffscreenCanvasSupported,this._fallbackFontDict=null,this._needAppearances=!1}_hasFlag(flags,flag){return!!(flags&flag)}_buildFlags(noView,noPrint){var flags=this["flags"];return void 0===noView?void 0===noPrint?void 0:noPrint?flags&~AnnotationFlag.PRINT:flags&~AnnotationFlag.HIDDEN|AnnotationFlag.PRINT:noView?(flags|=AnnotationFlag.PRINT,noPrint?flags&~AnnotationFlag.NOVIEW|AnnotationFlag.HIDDEN:flags&~AnnotationFlag.HIDDEN|AnnotationFlag.NOVIEW):(flags&=~(AnnotationFlag.HIDDEN|AnnotationFlag.NOVIEW),noPrint?flags&~AnnotationFlag.PRINT:flags|AnnotationFlag.PRINT)}_isViewable(flags){return!this._hasFlag(flags,AnnotationFlag.INVISIBLE)&&!this._hasFlag(flags,AnnotationFlag.NOVIEW)}_isPrintable(flags){return this._hasFlag(flags,AnnotationFlag.PRINT)&&!this._hasFlag(flags,AnnotationFlag.HIDDEN)&&!this._hasFlag(flags,AnnotationFlag.INVISIBLE)}mustBeViewed(annotationStorage,_renderForms){annotationStorage=null==annotationStorage||null==(annotationStorage=annotationStorage.get(this.data.id))?void 0:annotationStorage.noView;return void 0!==annotationStorage?!annotationStorage:this.viewable&&!this._hasFlag(this.flags,AnnotationFlag.HIDDEN)}mustBePrinted(annotationStorage){annotationStorage=null==annotationStorage||null==(annotationStorage=annotationStorage.get(this.data.id))?void 0:annotationStorage.noPrint;return void 0!==annotationStorage?!annotationStorage:this.printable}mustBeViewedWhenEditing(isEditing){var modifiedIds=1"string"==typeof item).map(item=>stringToPDFString(item)):formValue instanceof Name?stringToPDFString(formValue.name):"string"==typeof formValue?stringToPDFString(formValue):null}hasFieldFlag(flag){return!!(this.data.fieldFlags&flag)}_isViewable(flags){return!0}mustBeViewed(annotationStorage,renderForms){return renderForms?this.viewable:super.mustBeViewed(annotationStorage,renderForms)&&!this._hasFlag(this.flags,AnnotationFlag.NOVIEW)}getRotationMatrix(annotationStorage){annotationStorage=null==annotationStorage||null==(annotationStorage=annotationStorage.get(this.data.id))?void 0:annotationStorage.rotation;return 0===(annotationStorage=void 0===annotationStorage?this.rotation:annotationStorage)?IDENTITY_MATRIX:getRotationMatrix(annotationStorage,this.width,this.height)}getBorderAndBackgroundAppearances(annotationStorage){var str,borderWidth,annotationStorage=null==annotationStorage||null==(annotationStorage=annotationStorage.get(this.data.id))?void 0:annotationStorage.rotation;return void 0===annotationStorage&&(annotationStorage=this.rotation),this.backgroundColor||this.borderColor?(annotationStorage=0===annotationStorage||180===annotationStorage?"0 0 ".concat(this.width," ").concat(this.height," re"):"0 0 ".concat(this.height," ").concat(this.width," re"),str="",this.backgroundColor&&(str="".concat(getPdfColor(this.backgroundColor,!0)," ").concat(annotationStorage," f ")),this.borderColor&&(borderWidth=this.borderStyle.width||1,str+="".concat(borderWidth," w ").concat(getPdfColor(this.borderColor,!1)," ").concat(annotationStorage," S ")),str):""}async getOperatorList(evaluator,task,intent,annotationStorage){var content,opList,optionalContent,bbox;return!(intent&RenderingIntentFlag.ANNOTATIONS_FORMS)||this instanceof SignatureWidgetAnnotation||this.data.noHTML||this.data.hasOwnCanvas?!this._hasText||(content=await this._getAppearance(evaluator,task,intent,annotationStorage),this.appearance&&null===content)?super.getOperatorList(evaluator,task,intent,annotationStorage):(opList=new OperatorList,this._defaultAppearance&&null!==content?(intent=!!(this.data.hasOwnCanvas&&intent&RenderingIntentFlag.DISPLAY),bbox=[0,0,this.width,this.height],bbox=getTransformMatrix(this.data.rect,bbox,[1,0,0,1,0,0]),void 0!==(optionalContent=this.oc?await evaluator.parseMarkedContentProps(this.oc,null):optionalContent)&&opList.addOp(OPS.beginMarkedContentProps,["OC",optionalContent]),opList.addOp(OPS.beginAnnotation,[this.data.id,this.data.rect,bbox,this.getRotationMatrix(annotationStorage),intent]),bbox=new StringStream(content),await evaluator.getOperatorList({stream:bbox,task:task,resources:this._fieldResources.mergedResources,operatorList:opList}),opList.addOp(OPS.endAnnotation,[]),void 0!==optionalContent&&opList.addOp(OPS.endMarkedContent,[]),{opList:opList,separateForm:!1,separateCanvas:intent}):{opList:opList,separateForm:!1,separateCanvas:!1}):{opList:new OperatorList,separateForm:!0,separateCanvas:!1}}_getMKDict(rotation){var mk=new Dict(null);return rotation&&mk.set("R",rotation),this.borderColor&&mk.set("BC",getPdfColorArray(this.borderColor)),this.backgroundColor&&mk.set("BG",getPdfColorArray(this.backgroundColor)),0{_ref69=_ref69.exportValue;return value===_ref69}),value=(null==option?void 0:option.displayValue)||value),""===value)return"/Tx BMC q ".concat(storageEntry,"Q EMC");void 0===rotation&&(rotation=this.rotation);var lines,defaultAppearance,fontSize,lineHeight,line,option=-1,{width:totalWidth,height:totalHeight}=(this.data.multiLine?option=(lines=value.split(/\r\n?|\n/).map(line=>line.normalize("NFC"))).length:lines=[value.replace(/\r\n?|\n/,"").normalize("NFC")],this),font=(90!==rotation&&270!==rotation||([totalWidth,totalHeight]=[totalHeight,totalWidth]),this._defaultAppearance||(this.data.defaultAppearanceData=parseDefaultAppearance(this._defaultAppearance="/Helvetica 0 Tf 0 g")),await WidgetAnnotation._getFontData(evaluator,task,this.data.defaultAppearanceData,this._fieldResources.mergedResources)),encodedLines=[],encodingError=!1;for(line of lines){var encodedString=font.encodeString(line);1g.width))/1e3}_computeFontSize(height,width,text,font,lineCount){var fontSize=this.data.defaultAppearanceData["fontSize"],lineHeight=(fontSize||12)*LINE_FACTOR,numberOfLines=Math.round(height/lineHeight);if(!fontSize){var roundWithTwoDigits=x=>Math.floor(100*x)/100;if(-1===lineCount)lineHeight=this._getTextWidth(text,font),fontSize=roundWithTwoDigits(Math.min(height/LINE_FACTOR,width/lineHeight)),numberOfLines=1;else{var line,lineHeight=text.split(/\r\n?|\n/),cachedLines=[];for(line of lineHeight){var encoded=font.encodeString(line).join(""),glyphs=font.charsToGlyphs(encoded),positions=font.getCharPositions(encoded);cachedLines.push({line:encoded,glyphs:glyphs,positions:positions})}var isTooBig=fsize=>{var cache,totalHeight=0;for(cache of cachedLines)if(totalHeight+=this._splitLine(null,font,fsize,width,cache).length*fsize,heightp1?"\\".concat(p1):"\\s+"),new RegExp("^\\s*".concat(viewBox,"\\s*$")).test(this.data.fieldValue))&&(this.data.textContent=this.data.fieldValue.split("\n"))}getFieldObject(){return{id:this.data.id,value:this.data.fieldValue,defaultValue:this.data.defaultFieldValue||"",multiline:this.data.multiLine,password:this.data.password,charLimit:this.data.maxLen,comb:this.data.comb,editable:!this.data.readOnly,hidden:this.data.hidden,name:this.data.fieldName,rect:this.data.rect,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:"text"}}}class ButtonWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params),this.checkedAppearance=null,this.uncheckedAppearance=null;var isRadio=this.hasFieldFlag(AnnotationFieldFlag.RADIO),isPushButton=this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);this.data.checkBox=!isRadio&&!isPushButton,this.data.radioButton=isRadio&&!isPushButton,this.data.pushButton=isPushButton,this.data.isTooltipOnly=!1,this.data.checkBox?this._processCheckBox(params):this.data.radioButton?this._processRadioButton(params):this.data.pushButton?(this.data.hasOwnCanvas=!0,this.data.noHTML=!1,this._processPushButton(params)):warn("Invalid field flags for button widget annotation")}async getOperatorList(evaluator,task,intent,annotationStorage){var storageEntry,value,savedMatrix,rotation;return this.data.pushButton?super.getOperatorList(evaluator,task,intent,!1,annotationStorage):(rotation=value=null,annotationStorage&&(value=(storageEntry=annotationStorage.get(this.data.id))?storageEntry.value:null,rotation=storageEntry?storageEntry.rotation:null),null===value&&this.appearance?super.getOperatorList(evaluator,task,intent,annotationStorage):(storageEntry=(value=null==value?this.data.checkBox?this.data.fieldValue===this.data.exportValue:this.data.fieldValue===this.data.buttonValue:value)?this.checkedAppearance:this.uncheckedAppearance)?(value=this.appearance,savedMatrix=lookupMatrix(storageEntry.dict.getArray("Matrix"),IDENTITY_MATRIX),rotation&&storageEntry.dict.set("Matrix",this.getRotationMatrix(annotationStorage)),this.appearance=storageEntry,rotation=super.getOperatorList(evaluator,task,intent,annotationStorage),this.appearance=value,storageEntry.dict.set("Matrix",savedMatrix),rotation):{opList:new OperatorList,separateForm:!1,separateCanvas:!1})}async save(evaluator,task,annotationStorage,changes){this.data.checkBox?this._saveCheckbox(evaluator,task,annotationStorage,changes):this.data.radioButton&&this._saveRadioButton(evaluator,task,annotationStorage,changes)}async _saveCheckbox(evaluator,task,annotationStorage,changes){if(annotationStorage){var annotationStorage=annotationStorage.get(this.data.id),flags=this._buildFlags(null==annotationStorage?void 0:annotationStorage.noView,null==annotationStorage?void 0:annotationStorage.noPrint),rotation=null==annotationStorage?void 0:annotationStorage.rotation,annotationStorage=null==annotationStorage?void 0:annotationStorage.value;if(void 0===rotation&&void 0===flags){if(void 0===annotationStorage)return;if(this.data.fieldValue===this.data.exportValue===annotationStorage)return}var xfa,dict=evaluator.xref.fetchIfRef(this.ref);dict instanceof Dict&&(dict=dict.clone(),void 0===rotation&&(rotation=this.rotation),void 0===annotationStorage&&(annotationStorage=this.data.fieldValue===this.data.exportValue),xfa={path:this.data.fieldName,value:annotationStorage?this.data.exportValue:""},annotationStorage=Name.get(annotationStorage?this.data.exportValue:"Off"),this.setValue(dict,annotationStorage,evaluator.xref,changes),dict.set("AS",annotationStorage),dict.set("M","D:".concat(getModificationDate())),void 0!==flags&&dict.set("F",flags),(evaluator=this._getMKDict(rotation))&&dict.set("MK",evaluator),changes.put(this.ref,{data:dict,xfa:xfa,needAppearances:!1}))}}async _saveRadioButton(evaluator,task,annotationStorage,changes){if(annotationStorage){var annotationStorage=annotationStorage.get(this.data.id),flags=this._buildFlags(null==annotationStorage?void 0:annotationStorage.noView,null==annotationStorage?void 0:annotationStorage.noPrint),rotation=null==annotationStorage?void 0:annotationStorage.rotation,annotationStorage=null==annotationStorage?void 0:annotationStorage.value;if(void 0===rotation&&void 0===flags){if(void 0===annotationStorage)return;if(this.data.fieldValue===this.data.buttonValue===annotationStorage)return}var xfa,name,dict=evaluator.xref.fetchIfRef(this.ref);dict instanceof Dict&&(dict=dict.clone(),void 0===annotationStorage&&(annotationStorage=this.data.fieldValue===this.data.buttonValue),void 0===rotation&&(rotation=this.rotation),xfa={path:this.data.fieldName,value:annotationStorage?this.data.buttonValue:""},name=Name.get(annotationStorage?this.data.buttonValue:"Off"),annotationStorage&&this.setValue(dict,name,evaluator.xref,changes),dict.set("AS",name),dict.set("M","D:".concat(getModificationDate())),void 0!==flags&&dict.set("F",flags),(annotationStorage=this._getMKDict(rotation))&&dict.set("MK",annotationStorage),changes.put(this.ref,{data:dict,xfa:xfa,needAppearances:!1}))}}_getDefaultCheckedAppearance(params,type){var char,{width,height}=this,bbox=[0,0,width,height],fontSize=.8*Math.min(width,height),type=("check"===type?(metrics={width:.755*fontSize,height:.705*fontSize},char="3"):"disc"===type?(metrics={width:.791*fontSize,height:.705*fontSize},char="l"):unreachable("_getDefaultCheckedAppearance - unsupported type: ".concat(type)),numberToString((width-metrics.width)/2)),width=numberToString((height-metrics.height)/2),height="q BT /PdfJsZaDb ".concat(fontSize," Tf 0 g ").concat(type," ").concat(width," Td (").concat(char,") Tj ET Q"),metrics=new Dict(params.xref),fontSize=(metrics.set("FormType",1),metrics.set("Subtype",Name.get("Form")),metrics.set("Type",Name.get("XObject")),metrics.set("BBox",bbox),metrics.set("Matrix",[1,0,0,1,0,0]),metrics.set("Length",height.length),new Dict(params.xref)),type=new Dict(params.xref);type.set("PdfJsZaDb",this.fallbackFontDict),fontSize.set("Font",type),metrics.set("Resources",fontSize),this.checkedAppearance=new StringStream(height),this.checkedAppearance.dict=metrics,this._streams.push(this.checkedAppearance)}_processCheckBox(params){var asValue,exportValues,customAppearance=params.dict.get("AP");customAppearance instanceof Dict&&(customAppearance=customAppearance.get("N"))instanceof Dict&&("string"==typeof(asValue=this._decodeFormValue(params.dict.get("AS")))&&(this.data.fieldValue=asValue),asValue=null!==this.data.fieldValue&&"Off"!==this.data.fieldValue?this.data.fieldValue:"Yes",0===(exportValues=this._decodeFormValue(customAppearance.getKeys())).length?exportValues.push("Off",asValue):1===exportValues.length?"Off"===exportValues[0]?exportValues.push(asValue):exportValues.unshift("Off"):exportValues.includes(asValue)?(exportValues.length=0,exportValues.push("Off",asValue)):(asValue=exportValues.find(v=>"Off"!==v),exportValues.length=0,exportValues.push("Off",asValue)),exportValues.includes(this.data.fieldValue)||(this.data.fieldValue="Off"),this.data.exportValue=exportValues[1],asValue=customAppearance.get(this.data.exportValue),this.checkedAppearance=asValue instanceof BaseStream?asValue:null,exportValues=customAppearance.get("Off"),this.uncheckedAppearance=exportValues instanceof BaseStream?exportValues:null,this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(params,"check"),this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance),this._fallbackFontDict=this.fallbackFontDict,null===this.data.defaultFieldValue)&&(this.data.defaultFieldValue="Off")}_processRadioButton(params){this.data.buttonValue=null;var fieldParent=params.dict.get("Parent"),fieldParent=(fieldParent instanceof Dict&&(this.parent=params.dict.getRaw("Parent"),(fieldParent=fieldParent.get("V"))instanceof Name)&&(this.data.fieldValue=this._decodeFormValue(fieldParent)),params.dict.get("AP"));if(fieldParent instanceof Dict){fieldParent=fieldParent.get("N");if(fieldParent instanceof Dict){for(var key of fieldParent.getKeys())if("Off"!==key){this.data.buttonValue=this._decodeFormValue(key);break}var checkedAppearance=fieldParent.get(this.data.buttonValue),checkedAppearance=(this.checkedAppearance=checkedAppearance instanceof BaseStream?checkedAppearance:null,fieldParent.get("Off"));this.uncheckedAppearance=checkedAppearance instanceof BaseStream?checkedAppearance:null,this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(params,"disc"),this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance),this._fallbackFontDict=this.fallbackFontDict,null===this.data.defaultFieldValue&&(this.data.defaultFieldValue="Off")}}}_processPushButton(params){var{dict:params,annotationGlobals}=params;params.has("A")||params.has("AA")||this.data.alternativeText?(this.data.isTooltipOnly=!params.has("A")&&!params.has("AA"),Catalog.parseDestDictionary({destDict:params,resultObj:this.data,docBaseUrl:annotationGlobals.baseUrl,docAttachments:annotationGlobals.attachments})):warn("Push buttons without action dictionaries are not supported")}getFieldObject(){var exportValues,type="button";return this.data.checkBox?(type="checkbox",exportValues=this.data.exportValue):this.data.radioButton&&(type="radiobutton",exportValues=this.data.buttonValue),{id:this.data.id,value:this.data.fieldValue||"Off",defaultValue:this.data.defaultFieldValue,exportValues:exportValues,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,hidden:this.data.hidden,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:type}}get fallbackFontDict(){var dict=new Dict;return dict.set("BaseFont",Name.get("ZapfDingbats")),dict.set("Type",Name.get("FallbackType")),dict.set("Subtype",Name.get("FallbackType")),dict.set("Encoding",Name.get("ZapfDingbatsEncoding")),shadow(this,"fallbackFontDict",dict)}}class ChoiceWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params);var{dict:params,xref}=params,options=(this.indices=params.getArray("I"),this.hasIndices=Array.isArray(this.indices)&&0({exportValue:value,displayValue:value}))),this.data.combo=this.hasFieldFlag(AnnotationFieldFlag.COMBO),this.data.multiSelect=this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT),this._hasText=!0}getFieldObject(){var type=this.data.combo?"combobox":"listbox",value=0line.trimEnd()),{coords,bbox,matrix}=FakeUnicodeFont.getFirstPositionInfo(this.rectangle,this.rotation,evaluatorOptions),this.data.textPosition=this._transformPoint(coords,bbox,matrix)),this._isOffscreenCanvasSupported?(coords=params.dict.get("CA"),bbox=new FakeUnicodeFont(xref,"sans-serif"),this.appearance=bbox.createAppearance(this._contents.str,this.rectangle,this.rotation,evaluatorOptions,annotationGlobals,coords),this._streams.push(this.appearance)):warn("FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly."))}get hasTextContent(){return this._hasAppearance}static createNewDict(annotation,xref,_ref70){var{apRef:_ref70,ap}=_ref70,{color:annotation,fontSize,oldAnnotation,rect,rotation,user,value}=annotation,freetext=oldAnnotation||new Dict(xref),oldAnnotation=(freetext.set("Type",Name.get("Annot")),freetext.set("Subtype",Name.get("FreeText")),oldAnnotation?(freetext.set("M","D:".concat(getModificationDate())),freetext.delete("RC")):freetext.set("CreationDate","D:".concat(getModificationDate())),freetext.set("Rect",rect),"/Helv ".concat(fontSize," Tf ").concat(getPdfColor(annotation,!0)));return freetext.set("DA",oldAnnotation),freetext.set("Contents",stringToAsciiOrUTF16BE(value)),freetext.set("F",4),freetext.set("Border",[0,0,0]),freetext.set("Rotate",rotation),user&&freetext.set("T",stringToAsciiOrUTF16BE(user)),(_ref70||ap)&&(rect=new Dict(xref),freetext.set("AP",rect),_ref70?rect.set("N",_ref70):rect.set("N",ap)),freetext}static async createNewAppearanceStream(annotation,xref,params){var line,{baseFontRef:params,evaluator,task}=params,{color:annotation,fontSize,rect,rotation,value}=annotation,resources=new Dict(xref),font=new Dict(xref),helv=(params?font.set("Helv",params):((params=new Dict(xref)).set("BaseFont",Name.get("Helvetica")),params.set("Type",Name.get("Font")),params.set("Subtype",Name.get("Type1")),params.set("Encoding",Name.get("WinAnsiEncoding")),font.set("Helv",params)),resources.set("Font",font),await WidgetAnnotation._getFontData(evaluator,task,{fontName:"Helv",fontSize:fontSize},resources)),[params,font,evaluator,task]=rect,w=evaluator-params,h=task-font,evaluator=(rotation%180!=0&&([w,h]=[h,w]),value.split("\n")),scale=fontSize/1e3,totalWidth=-1/0,encodedLines=[];for(line of evaluator){var encoded=helv.encodeString(line);if(1(buffer.push("".concat(lineCoordinates[0]," ").concat(lineCoordinates[1]," m"),"".concat(lineCoordinates[2]," ").concat(lineCoordinates[3]," l"),"S"),[points[0]-borderWidth,points[7]-borderWidth,points[2]+borderWidth,points[3]+borderWidth])}))}}class SquareAnnotation extends MarkupAnnotation{constructor(params){super(params);var strokeColor,strokeAlpha,fillColor,{dict:params,xref}=params;this.data.annotationType=AnnotationType.SQUARE,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1,!this.appearance&&(strokeColor=this.color?getPdfColorArray(this.color):[0,0,0],strokeAlpha=params.get("CA"),params=getRgbColor(params.getArray("IC"),null),params=(fillColor=params?getPdfColorArray(params):null)?strokeAlpha:null,0!==this.borderStyle.width||fillColor)&&this._setDefaultAppearance({xref:xref,extra:"".concat(this.borderStyle.width," w"),strokeColor:strokeColor,fillColor:fillColor,strokeAlpha:strokeAlpha,fillAlpha:params,pointsCallback:(buffer,points)=>{var x=points[4]+this.borderStyle.width/2,y=points[5]+this.borderStyle.width/2,width=points[6]-points[4]-this.borderStyle.width,height=points[3]-points[7]-this.borderStyle.width;return buffer.push("".concat(x," ").concat(y," ").concat(width," ").concat(height," re")),fillColor?buffer.push("B"):buffer.push("S"),[points[0],points[7],points[2],points[3]]}})}}class CircleAnnotation extends MarkupAnnotation{constructor(params){super(params);var strokeColor,strokeAlpha,fillColor,controlPointsDistance,{dict:params,xref}=params;this.data.annotationType=AnnotationType.CIRCLE,!this.appearance&&(strokeColor=this.color?getPdfColorArray(this.color):[0,0,0],strokeAlpha=params.get("CA"),params=getRgbColor(params.getArray("IC"),null),params=(fillColor=params?getPdfColorArray(params):null)?strokeAlpha:null,0!==this.borderStyle.width||fillColor)&&(controlPointsDistance=4/3*Math.tan(Math.PI/8),this._setDefaultAppearance({xref:xref,extra:"".concat(this.borderStyle.width," w"),strokeColor:strokeColor,fillColor:fillColor,strokeAlpha:strokeAlpha,fillAlpha:params,pointsCallback:(buffer,points)=>{var x0=points[0]+this.borderStyle.width/2,y0=points[1]-this.borderStyle.width/2,x1=points[6]-this.borderStyle.width/2,y1=points[7]+this.borderStyle.width/2,xMid=x0+(x1-x0)/2,yMid=y0+(y1-y0)/2,xOffset=(x1-x0)/2*controlPointsDistance,yOffset=(y1-y0)/2*controlPointsDistance;return buffer.push("".concat(xMid," ").concat(y1," m"),"".concat(xMid+xOffset," ").concat(y1," ").concat(x1," ").concat(yMid+yOffset," ").concat(x1," ").concat(yMid," c"),"".concat(x1," ").concat(yMid-yOffset," ").concat(xMid+xOffset," ").concat(y0," ").concat(xMid," ").concat(y0," c"),"".concat(xMid-xOffset," ").concat(y0," ").concat(x0," ").concat(yMid-yOffset," ").concat(x0," ").concat(yMid," c"),"".concat(x0," ").concat(yMid+yOffset," ").concat(xMid-xOffset," ").concat(y1," ").concat(xMid," ").concat(y1," c"),"h"),fillColor?buffer.push("B"):buffer.push("S"),[points[0],points[7],points[2],points[3]]}}))}}class PolylineAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params,rawVertices=(this.data.annotationType=AnnotationType.POLYLINE,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1,this.data.vertices=null,this instanceof PolygonAnnotation||(this.setLineEndings(params.getArray("LE")),this.data.lineEndings=this.lineEndings),params.getArray("Vertices"));if(isNumberArray(rawVertices,null)){var vertices=this.data.vertices=Float32Array.from(rawVertices);if(!this.appearance){for(var rawVertices=this.color?getPdfColorArray(this.color):[0,0,0],params=params.get("CA"),borderWidth=this.borderStyle.width||1,borderAdjust=2*borderWidth,bbox=[1/0,1/0,-1/0,-1/0],i=0,ii=vertices.length;i{for(var _i44=0,_ii13=vertices.length;_i44<_ii13;_i44+=2)buffer.push("".concat(vertices[_i44]," ").concat(vertices[_i44+1]," ").concat(0===_i44?"m":"l"));return buffer.push("S"),[points[0],points[7],points[2],points[3]]}})}}}}class PolygonAnnotation extends PolylineAnnotation{constructor(params){super(params),this.data.annotationType=AnnotationType.POLYGON}}class CaretAnnotation extends MarkupAnnotation{constructor(params){super(params),this.data.annotationType=AnnotationType.CARET}}class InkAnnotation extends MarkupAnnotation{constructor(params){super(params),this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1;var{dict:params,xref}=params,rawInkLists=(this.data.annotationType=AnnotationType.INK,this.data.inkLists=[],this.data.isEditable=!this.data.noHTML,this.data.noHTML=!1,this.data.opacity=params.get("CA")||1,params.getArray("InkList"));if(Array.isArray(rawInkLists)){for(var i=0,ii=rawInkLists.length;i{for(var _inkList2 of this.data.inkLists){for(var _i46=0,_ii15=_inkList2.length;_i46<_ii15;_i46+=2)buffer.push("".concat(_inkList2[_i46]," ").concat(_inkList2[_i46+1]," ").concat(0===_i46?"m":"l"));buffer.push("S")}return[points[0],points[7],points[2],points[3]]}})}}}static createNewDict(annotation,xref,_ref71){var{apRef:_ref71,ap}=_ref71,{oldAnnotation:annotation,color,opacity,paths,outlines,rect,rotation,thickness,user}=annotation,ink=annotation||new Dict(xref),annotation=(ink.set("Type",Name.get("Annot")),ink.set("Subtype",Name.get("Ink")),ink.set(annotation?"M":"CreationDate","D:".concat(getModificationDate())),ink.set("Rect",rect),ink.set("InkList",(null==outlines?void 0:outlines.points)||paths.points),ink.set("F",4),ink.set("Rotate",rotation),user&&ink.set("T",stringToAsciiOrUTF16BE(user)),outlines&&ink.set("IT",Name.get("InkHighlight")),new Dict(xref)),rect=(ink.set("BS",annotation),annotation.set("W",thickness),ink.set("C",getPdfColorArray(color)),ink.set("CA",opacity),new Dict(xref));return ink.set("AP",rect),_ref71?rect.set("N",_ref71):rect.set("N",ap),ink}static async createNewAppearanceStream(annotation,xref,params){if(annotation.outlines)return this.createNewAppearanceStreamForHighlight(annotation,xref,params);var outline,{color:params,rect:annotation,paths,thickness,opacity}=annotation,appearanceBuffer=["".concat(thickness," w 1 J 1 j"),"".concat(getPdfColor(params,!1))];1!==opacity&&appearanceBuffer.push("/R0 gs");for(outline of paths.lines){appearanceBuffer.push("".concat(numberToString(outline[4])," ").concat(numberToString(outline[5])," m"));for(var c1x,c1y,c2x,c2y,x,y,i=6,ii=outline.length;i(buffer.push("".concat(points[0]," ").concat(points[1]," m"),"".concat(points[2]," ").concat(points[3]," l"),"".concat(points[6]," ").concat(points[7]," l"),"".concat(points[4]," ").concat(points[5]," l"),"f"),[points[0],points[7],points[2],points[3]])}))):this.data.popupRef=null}get overlaysTextContent(){return!0}static createNewDict(annotation,xref,_ref72){var{apRef:_ref72,ap}=_ref72,{color:annotation,oldAnnotation,opacity,rect,rotation,user,quadPoints}=annotation,highlight=oldAnnotation||new Dict(xref);return highlight.set("Type",Name.get("Annot")),highlight.set("Subtype",Name.get("Highlight")),highlight.set(oldAnnotation?"M":"CreationDate","D:".concat(getModificationDate())),highlight.set("CreationDate","D:".concat(getModificationDate())),highlight.set("Rect",rect),highlight.set("F",4),highlight.set("Border",[0,0,0]),highlight.set("Rotate",rotation),highlight.set("QuadPoints",quadPoints),highlight.set("C",getPdfColorArray(annotation)),highlight.set("CA",opacity),user&&highlight.set("T",stringToAsciiOrUTF16BE(user)),(_ref72||ap)&&(oldAnnotation=new Dict(xref),highlight.set("AP",oldAnnotation),oldAnnotation.set("N",_ref72||ap)),highlight}static async createNewAppearanceStream(annotation,xref,params){var outline,{color:annotation,rect,outlines,opacity}=annotation,appearanceBuffer=["".concat(getPdfColor(annotation,!0)),"/R0 gs"],buffer=[];for(outline of outlines){buffer.length=0,buffer.push("".concat(numberToString(outline[0])," ").concat(numberToString(outline[1])," m"));for(var i=2,ii=outline.length;i(buffer.push("".concat(points[4]," ").concat(points[5]+1.3," m"),"".concat(points[6]," ").concat(points[7]+1.3," l"),"S"),[points[0],points[7],points[2],points[3]])})):this.data.popupRef=null}get overlaysTextContent(){return!0}}class SquigglyAnnotation extends MarkupAnnotation{constructor(params){super(params);var strokeColor,{dict:params,xref}=params;this.data.annotationType=AnnotationType.SQUIGGLY,(this.data.quadPoints=getQuadPoints(params,null))?this.appearance||(strokeColor=this.color?getPdfColorArray(this.color):[0,0,0],params=params.get("CA"),this._setDefaultAppearance({xref:xref,extra:"[] 0 d 1 w",strokeColor:strokeColor,strokeAlpha:params,pointsCallback:(buffer,points)=>{var dy=(points[1]-points[5])/6,shift=dy,x=points[4],y=points[5],xEnd=points[6];for(buffer.push("".concat(x," ").concat(y+shift," m"));shift=0===shift?dy:0,buffer.push("".concat(x+=2," ").concat(y+shift," l")),x(buffer.push("".concat((points[0]+points[4])/2," ")+"".concat((points[1]+points[5])/2," m"),"".concat((points[2]+points[6])/2," ")+"".concat((points[3]+points[7])/2," l"),"S"),[points[0],points[7],points[2],points[3]])})):this.data.popupRef=null}get overlaysTextContent(){return!0}}var _savedHasOwnCanvas=new WeakMap;class StampAnnotation extends MarkupAnnotation{constructor(params){super(params),_classPrivateFieldInitSpec(this,_savedHasOwnCanvas,null),this.data.annotationType=AnnotationType.STAMP,this.data.hasOwnCanvas=this.data.noRotate,this.data.isEditable=!this.data.noHTML,this.data.noHTML=!1}mustBeViewedWhenEditing(isEditing){var modifiedIds=1x>>>24!=255:x=>255!=(255&x)),ctx=(data&&(ctx.fillStyle="white",ctx.fillRect(0,0,width,height),ctx.drawImage(bitmap,0,0)),canvas.convertToBlob({type:"image/jpeg",quality:1}).then(blob=>blob.arrayBuffer())),bitmap=Name.get("XObject"),canvas=Name.get("Image"),image=new Dict(xref),smaskStream=(image.set("Type",bitmap),image.set("Subtype",canvas),image.set("BitsPerComponent",8),image.set("ColorSpace",Name.get("DeviceRGB")),image.set("Filter",Name.get("DCTDecode")),image.set("BBox",[0,0,width,height]),image.set("Width",width),image.set("Height",height),null);if(data){var alphaBuffer=new Uint8Array(buf32.length);if(FeatureTest.isLittleEndian)for(var i=0,ii=buf32.length;i>>24;else for(var _i47=0,_ii16=buf32.length;_i47<_ii16;_i47++)alphaBuffer[_i47]=255&buf32[_i47];data=new Dict(xref);data.set("Type",bitmap),data.set("Subtype",canvas),data.set("BitsPerComponent",8),data.set("ColorSpace",Name.get("DeviceGray")),data.set("Width",width),data.set("Height",height),smaskStream=new Stream(alphaBuffer,0,0,data)}return{imageStream:new Stream(await ctx,0,0,image),smaskStream:smaskStream,width:width,height:height}}static createNewDict(annotation,xref,_ref73){var{apRef:_ref73,ap}=_ref73,{oldAnnotation:annotation,rect,rotation,user}=annotation,stamp=annotation||new Dict(xref);return stamp.set("Type",Name.get("Annot")),stamp.set("Subtype",Name.get("Stamp")),stamp.set(annotation?"M":"CreationDate","D:".concat(getModificationDate())),stamp.set("Rect",rect),stamp.set("F",4),stamp.set("Border",[0,0,0]),stamp.set("Rotate",rotation),user&&stamp.set("T",stringToAsciiOrUTF16BE(user)),(_ref73||ap)&&(annotation=new Dict(xref),stamp.set("AP",annotation),_ref73?annotation.set("N",_ref73):annotation.set("N",ap)),stamp}static async createNewAppearanceStream(annotation,xref,params){var width,height,xobject,resources;return annotation.oldAnnotation?null:annotation.isSignature?_assertClassBrand(StampAnnotation,this,_createNewAppearanceStreamForDrawing).call(this,annotation,xref):(annotation=annotation["rotation"],{imageRef:params,width,height}=params.image,resources=new Dict(xref),xobject=new Dict(xref),resources.set("XObject",xobject),xobject.set("Im0",params),xobject="q ".concat(width," 0 0 ").concat(height," 0 0 cm /Im0 Do Q"),(params=new Dict(xref)).set("FormType",1),params.set("Subtype",Name.get("Form")),params.set("Type",Name.get("XObject")),params.set("BBox",[0,0,width,height]),params.set("Resources",resources),annotation&&(xref=getRotationMatrix(annotation,width,height),params.set("Matrix",xref)),(resources=new StringStream(xobject)).dict=params,resources)}}async function _createNewAppearanceStreamForDrawing(annotation,xref){var line,{areContours:annotation,color,rect,lines,thickness}=annotation,appearanceBuffer=["".concat(thickness," w 1 J 1 j"),"".concat(getPdfColor(color,annotation))];for(line of lines){appearanceBuffer.push("".concat(numberToString(line[4])," ").concat(numberToString(line[5])," m"));for(var c1x,c1y,c2x,c2y,x,y,i=6,ii=line.length;i>5&255,padded[i++]=length>>13&255,padded[i++]=length>>21&255,padded[i++]=length>>>29&255,i+=3,new Int32Array(16)),{k,r}=PARAMS;for(i=0;i>>32-rotate)|0,a=tmp;h0=h0+a|0,h1=h1+b|0,h2=h2+c|0,h3=h3+d|0}return new Uint8Array([255&h0,h0>>8&255,h0>>16&255,h0>>>24&255,255&h1,h1>>8&255,h1>>16&255,h1>>>24&255,255&h2,h2>>8&255,h2>>16&255,h2>>>24&255,255&h3,h3>>8&255,h3>>16&255,h3>>>24&255])}function decodeString(str){try{return stringToUTF8String(str)}catch(ex){return warn('UTF-8 decoding failed: "'.concat(ex,'".')),str}}class DatasetXMLParser extends SimpleXMLParser{constructor(options){super(options),this.node=null}onEndElement(name){var node=super.onEndElement(name);if(node&&"xfa:datasets"===name)throw this.node=node,new Error("Aborting DatasetXMLParser.")}}class DatasetReader{constructor(data){if(data.datasets)this.node=new SimpleXMLParser({hasAttributes:!0}).parseFromString(data.datasets).documentElement;else{var parser=new DatasetXMLParser({hasAttributes:!0});try{parser.parseFromString(data["xdp:xdp"])}catch(_unused11){}this.node=parser.node}}getValue(path){var first;return this.node&&(path=path&&this.node.searchNode(parseXFAPath(path),0))?"value"===(null==(first=path.firstChild)?void 0:first.nodeName)?path.children.map(child=>decodeString(child.textContent)):decodeString(path.textContent):""}}var _annotation=new WeakMap,_minX=new WeakMap,_minY=new WeakMap,_maxX=new WeakMap,_maxY=new WeakMap,_quadPoints=new WeakMap,_text=new WeakMap,_extraChars=new WeakMap,_lastIntersectingQuadIndex=new WeakMap,_canTakeExtraChars=new WeakMap,_SingleIntersector_brand=new WeakSet;class SingleIntersector{constructor(annotation){_classPrivateMethodInitSpec(this,_SingleIntersector_brand),_classPrivateFieldInitSpec(this,_annotation,void 0),_classPrivateFieldInitSpec(this,_minX,1/0),_classPrivateFieldInitSpec(this,_minY,1/0),_classPrivateFieldInitSpec(this,_maxX,-1/0),_classPrivateFieldInitSpec(this,_maxY,-1/0),_classPrivateFieldInitSpec(this,_quadPoints,void 0),_classPrivateFieldInitSpec(this,_text,[]),_classPrivateFieldInitSpec(this,_extraChars,[]),_classPrivateFieldInitSpec(this,_lastIntersectingQuadIndex,-1),_classPrivateFieldInitSpec(this,_canTakeExtraChars,!1),_classPrivateFieldSet(_annotation,this,annotation);for(var _quadPoints2=_classPrivateFieldSet(_quadPoints,this,annotation.data.quadPoints),i=0,ii=_quadPoints2.length;i=_classPrivateFieldGet(_maxX,other)||_classPrivateFieldGet(_maxX,this)<=_classPrivateFieldGet(_minX,other)||_classPrivateFieldGet(_minY,this)>=_classPrivateFieldGet(_maxY,other)||_classPrivateFieldGet(_maxY,this)<=_classPrivateFieldGet(_minY,other))}addGlyph(x,y,glyph){return _assertClassBrand(_SingleIntersector_brand,this,_intersects).call(this,x,y)?(0<_classPrivateFieldGet(_extraChars,this).length&&(_classPrivateFieldGet(_text,this).push(_classPrivateFieldGet(_extraChars,this).join("")),_classPrivateFieldGet(_extraChars,this).length=0),_classPrivateFieldGet(_text,this).push(glyph),_classPrivateFieldSet(_canTakeExtraChars,this,!0),!0):(this.disableExtraChars(),!1)}addExtraChar(char){_classPrivateFieldGet(_canTakeExtraChars,this)&&_classPrivateFieldGet(_extraChars,this).push(char)}disableExtraChars(){_classPrivateFieldGet(_canTakeExtraChars,this)&&(_classPrivateFieldSet(_canTakeExtraChars,this,!1),_classPrivateFieldGet(_extraChars,this).length=0)}setText(){_classPrivateFieldGet(_annotation,this).data.overlaidText=_classPrivateFieldGet(_text,this).join("")}}function _intersects(x,y){if(!(_classPrivateFieldGet(_minX,this)>=x||_classPrivateFieldGet(_maxX,this)<=x||_classPrivateFieldGet(_minY,this)>=y||_classPrivateFieldGet(_maxY,this)<=y)){var quadPoints=_classPrivateFieldGet(_quadPoints,this);if(8===quadPoints.length)return!0;if(0<=_classPrivateFieldGet(_lastIntersectingQuadIndex,this)){var i=_classPrivateFieldGet(_lastIntersectingQuadIndex,this);if(!(quadPoints[i]>=x||quadPoints[i+2]<=x||quadPoints[i+5]>=y||quadPoints[i+1]<=y))return!0;_classPrivateFieldSet(_lastIntersectingQuadIndex,this,-1)}for(var _i54=0,ii=quadPoints.length;_i54=x||quadPoints[_i54+2]<=x||quadPoints[_i54+5]>=y||quadPoints[_i54+1]<=y))return _classPrivateFieldSet(_lastIntersectingQuadIndex,this,_i54),!0}return!1}var _intersectors=new WeakMap;class Intersector{constructor(annotations){_classPrivateFieldInitSpec(this,_intersectors,new Map);for(var annotation of annotations)if(annotation.data.quadPoints){var otherIntersector,overlapping,intersector=new SingleIntersector(annotation);for([otherIntersector,overlapping]of _classPrivateFieldGet(_intersectors,this))otherIntersector.overlaps(intersector)&&(overlapping?overlapping.add(intersector):_classPrivateFieldGet(_intersectors,this).set(otherIntersector,new Set([intersector])));_classPrivateFieldGet(_intersectors,this).set(intersector,null)}}addGlyph(transform,width,height,glyph){var overlappingIntersectors,intersector,overlapping,x=transform[4]+width/2,y=transform[5]+height/2;for([intersector,overlapping]of _classPrivateFieldGet(_intersectors,this))overlappingIntersectors?overlappingIntersectors.has(intersector)?intersector.addGlyph(x,y,glyph):intersector.disableExtraChars():intersector.addGlyph(x,y,glyph)&&(overlappingIntersectors=overlapping)}addExtraChar(char){for(var intersector of _classPrivateFieldGet(_intersectors,this).keys())intersector.addExtraChar(char)}setText(){for(var intersector of _classPrivateFieldGet(_intersectors,this).keys())intersector.setText()}}class Word64{constructor(highInteger,lowInteger){this.high=0|highInteger,this.low=0|lowInteger}and(word){this.high&=word.high,this.low&=word.low}xor(word){this.high^=word.high,this.low^=word.low}shiftRight(places){32<=places?(this.low=this.high>>>places-32|0,this.high=0):(this.low=this.low>>>places|this.high<<32-places,this.high=this.high>>>places|0)}rotateRight(places){var low,high;32&places?(high=this.low,low=this.high):(low=this.low,high=this.high),this.low=low>>>(places&=31)|high<<32-places,this.high=high>>>places|low<<32-places}not(){this.high=~this.high,this.low=~this.low}add(word){var lowAdd=(this.low>>>0)+(word.low>>>0),word=(this.high>>>0)+(word.high>>>0);4294967295>>24&255,bytes[offset+1]=this.high>>16&255,bytes[offset+2]=this.high>>8&255,bytes[offset+3]=255&this.high,bytes[offset+4]=this.low>>>24&255,bytes[offset+5]=this.low>>16&255,bytes[offset+6]=this.low>>8&255,bytes[offset+7]=255&this.low}assign(word){this.high=word.high,this.low=word.low}}var calculate_sha_other_PARAMS={get k(){return shadow(this,"k",[new Word64(1116352408,3609767458),new Word64(1899447441,602891725),new Word64(3049323471,3964484399),new Word64(3921009573,2173295548),new Word64(961987163,4081628472),new Word64(1508970993,3053834265),new Word64(2453635748,2937671579),new Word64(2870763221,3664609560),new Word64(3624381080,2734883394),new Word64(310598401,1164996542),new Word64(607225278,1323610764),new Word64(1426881987,3590304994),new Word64(1925078388,4068182383),new Word64(2162078206,991336113),new Word64(2614888103,633803317),new Word64(3248222580,3479774868),new Word64(3835390401,2666613458),new Word64(4022224774,944711139),new Word64(264347078,2341262773),new Word64(604807628,2007800933),new Word64(770255983,1495990901),new Word64(1249150122,1856431235),new Word64(1555081692,3175218132),new Word64(1996064986,2198950837),new Word64(2554220882,3999719339),new Word64(2821834349,766784016),new Word64(2952996808,2566594879),new Word64(3210313671,3203337956),new Word64(3336571891,1034457026),new Word64(3584528711,2466948901),new Word64(113926993,3758326383),new Word64(338241895,168717936),new Word64(666307205,1188179964),new Word64(773529912,1546045734),new Word64(1294757372,1522805485),new Word64(1396182291,2643833823),new Word64(1695183700,2343527390),new Word64(1986661051,1014477480),new Word64(2177026350,1206759142),new Word64(2456956037,344077627),new Word64(2730485921,1290863460),new Word64(2820302411,3158454273),new Word64(3259730800,3505952657),new Word64(3345764771,106217008),new Word64(3516065817,3606008344),new Word64(3600352804,1432725776),new Word64(4094571909,1467031594),new Word64(275423344,851169720),new Word64(430227734,3100823752),new Word64(506948616,1363258195),new Word64(659060556,3750685593),new Word64(883997877,3785050280),new Word64(958139571,3318307427),new Word64(1322822218,3812723403),new Word64(1537002063,2003034995),new Word64(1747873779,3602036899),new Word64(1955562222,1575990012),new Word64(2024104815,1125592928),new Word64(2227730452,2716904306),new Word64(2361852424,442776044),new Word64(2428436474,593698344),new Word64(2756734187,3733110249),new Word64(3204031479,2999351573),new Word64(3329325298,3815920427),new Word64(3391569614,3928383900),new Word64(3515267271,566280711),new Word64(3940187606,3454069534),new Word64(4118630271,4000239992),new Word64(116418474,1914138554),new Word64(174292421,2731055270),new Word64(289380356,3203993006),new Word64(460393269,320620315),new Word64(685471733,587496836),new Word64(852142971,1086792851),new Word64(1017036298,365543100),new Word64(1126000580,2618297676),new Word64(1288033470,3409855158),new Word64(1501505948,4234509866),new Word64(1607167915,987167468),new Word64(1816402316,1246189591)])}};function ch(result,x,y,z,tmp){result.assign(x),result.and(y),tmp.assign(x),tmp.not(),tmp.and(z),result.xor(tmp)}function maj(result,x,y,z,tmp){result.assign(x),result.and(y),tmp.assign(x),tmp.and(z),result.xor(tmp),tmp.assign(y),tmp.and(z),result.xor(tmp)}function sigma(result,x,tmp){result.assign(x),result.rotateRight(28),tmp.assign(x),tmp.rotateRight(34),result.xor(tmp),tmp.assign(x),tmp.rotateRight(39),result.xor(tmp)}function sigmaPrime(result,x,tmp){result.assign(x),result.rotateRight(14),tmp.assign(x),tmp.rotateRight(18),result.xor(tmp),tmp.assign(x),tmp.rotateRight(41),result.xor(tmp)}function littleSigma(result,x,tmp){result.assign(x),result.rotateRight(1),tmp.assign(x),tmp.rotateRight(8),result.xor(tmp),tmp.assign(x),tmp.shiftRight(7),result.xor(tmp)}function littleSigmaPrime(result,x,tmp){result.assign(x),result.rotateRight(19),tmp.assign(x),tmp.rotateRight(61),result.xor(tmp),tmp.assign(x),tmp.shiftRight(6),result.xor(tmp)}function calculateSHA512(data,offset,length){for(var h0,h1,h2,h3,h4,h5,h6,j,mode384=3>>29&255,padded[i++]=length>>21&255,padded[i++]=length>>13&255,padded[i++]=length>>5&255,padded[i++]=length<<3&255,new Array(80));for(i=0;i<80;i++)w[i]=new Word64(0,0);var tmp3,result,k=calculate_sha_other_PARAMS["k"],a=new Word64(0,0),b=new Word64(0,0),c=new Word64(0,0),d=new Word64(0,0),e=new Word64(0,0),f=new Word64(0,0),g=new Word64(0,0),h=new Word64(0,0),t1=new Word64(0,0),t2=new Word64(0,0),tmp1=new Word64(0,0),tmp2=new Word64(0,0);for(i=0;i>>n|x<<32-n}function calculate_sha256_ch(x,y,z){return x&y^~x&z}function calculate_sha256_maj(x,y,z){return x&y^x&z^y&z}function calculate_sha256_sigma(x){return rotr(x,2)^rotr(x,13)^rotr(x,22)}function calculate_sha256_sigmaPrime(x){return rotr(x,6)^rotr(x,11)^rotr(x,25)}function calculate_sha256_littleSigma(x){return rotr(x,7)^rotr(x,18)^x>>>3}function calculate_sha256_littleSigmaPrime(x){return rotr(x,17)^rotr(x,19)^x>>>10}function calculateSHA256(data,offset,length){for(var h0=1779033703,h1=3144134277,h2=1013904242,h3=2773480762,h4=1359893119,h5=2600822924,h6=528734635,h7=1541459225,paddedLength=64*Math.ceil((length+9)/64),padded=new Uint8Array(paddedLength),i=0;i>>29&255,padded[i++]=length>>21&255,padded[i++]=length>>13&255,padded[i++]=length>>5&255,padded[i++]=length<<3&255,new Uint32Array(64)),k=calculate_sha256_PARAMS["k"];for(i=0;i>24&255,h0>>16&255,h0>>8&255,255&h0,h1>>24&255,h1>>16&255,h1>>8&255,255&h1,h2>>24&255,h2>>16&255,h2>>8&255,255&h2,h3>>24&255,h3>>16&255,h3>>8&255,255&h3,h4>>24&255,h4>>16&255,h4>>8&255,255&h4,h5>>24&255,h5>>16&255,h5>>8&255,255&h5,h6>>24&255,h6>>16&255,h6>>8&255,255&h6,h7>>24&255,h7>>16&255,h7>>8&255,255&h7])}var chunkSize=512;class DecryptStream extends DecodeStream{constructor(str,maybeLength,decrypt){super(maybeLength),this.str=str,this.dict=str.dict,this.decrypt=decrypt,this.nextChunk=null,this.initialized=!1}readBlock(){var chunk,_this$nextChunk,newLength;this.initialized?chunk=this.nextChunk:(chunk=this.str.getBytes(chunkSize),this.initialized=!0),null!=chunk&&chunk.length?(this.nextChunk=this.str.getBytes(chunkSize),_this$nextChunk=0<(null==(_this$nextChunk=this.nextChunk)?void 0:_this$nextChunk.length),chunk=(0,this.decrypt)(chunk,!_this$nextChunk),newLength=(_this$nextChunk=this.bufferLength)+chunk.length,this.ensureBuffer(newLength).set(chunk,_this$nextChunk),this.bufferLength=newLength):this.eof=!0}}class ARCFourCipher{constructor(key){this.a=0,this.b=0;for(var s=new Uint8Array(256),keyLength=key.length,i=0;i<256;++i)s[i]=i;for(var _i48=0,j=0;_i48<256;++_i48){var tmp=s[_i48],j=j+tmp+key[_i48%keyLength]&255;s[_i48]=s[j],s[j]=tmp}this.s=s}encryptBlock(data){for(var a=this.a,b=this.b,s=this.s,n=data.length,output=new Uint8Array(n),i=0;ii<128?i<<1:i<<1^27)),this.buffer=new Uint8Array(16),this.bufferPosition=0}_expandKey(cipherKey){unreachable("Cannot call `_expandKey` on the base class")}_decrypt(input,key){var u,v,state=new Uint8Array(16);state.set(input);for(var j=0,k=this._keySize;j<16;++j,++k)state[j]^=key[k];for(var i=this._cyclesOfRepetition-1;1<=i;--i){t=state[13],state[13]=state[9],state[9]=state[5],state[5]=state[1],state[1]=t,t=state[14],u=state[10],state[14]=state[6],state[10]=state[2],state[6]=t,state[2]=u,t=state[15],u=state[11],v=state[7],state[15]=state[3],state[11]=t,state[7]=u,state[3]=v;for(var _j0=0;_j0<16;++_j0)state[_j0]=this._inv_s[state[_j0]];for(var _j1=0,_k2=16*i;_j1<16;++_j1,++_k2)state[_j1]^=key[_k2];for(var _j10=0;_j10<16;_j10+=4){var s0=this._mix[state[_j10]],s1=this._mix[state[_j10+1]],s2=this._mix[state[_j10+2]],s3=this._mix[state[_j10+3]],t=s0^s1>>>8^s1<<24^s2>>>16^s2<<16^s3>>>24^s3<<8;state[_j10]=t>>>24&255,state[_j10+1]=t>>16&255,state[_j10+2]=t>>8&255,state[_j10+3]=255&t}}t=state[13],state[13]=state[9],state[9]=state[5],state[5]=state[1],state[1]=t,t=state[14],u=state[10],state[14]=state[6],state[10]=state[2],state[6]=t,state[2]=u,t=state[15],u=state[11],v=state[7],state[15]=state[3],state[11]=t,state[7]=u,state[3]=v;for(var _j11=0;_j11<16;++_j11)state[_j11]=this._inv_s[state[_j11]],state[_j11]^=key[_j11];return state}_encrypt(input,key){var u,v,s=this._s,state=new Uint8Array(16);state.set(input);for(var j=0;j<16;++j)state[j]^=key[j];for(var i=1;ii-32;){for(var combinedLength=password.length+k.length+userBytes.length,combinedArray=new Uint8Array(combinedLength),writeOffset=0,k1=(combinedArray.set(password,0),writeOffset+=password.length,combinedArray.set(k,writeOffset),writeOffset+=k.length,combinedArray.set(userBytes,writeOffset),new Uint8Array(64*combinedLength)),j=0,pos=0;j<64;j++,pos+=combinedLength)k1.set(combinedArray,pos);e=new AES128Cipher(k.subarray(0,16)).encrypt(k1,k.subarray(16,32)),writeOffset=Math.sumPrecise(e.slice(0,16))%3;0==writeOffset?k=calculateSHA256(e,0,e.length):1==writeOffset?k=calculateSHA384(e,0,e.length):2==writeOffset&&(k=calculateSHA512(e,0,e.length)),i++}return k.subarray(0,32)}}class CipherTransform{constructor(stringCipherConstructor,streamCipherConstructor){this.StringCipherConstructor=stringCipherConstructor,this.StreamCipherConstructor=streamCipherConstructor}createStream(stream,length){var cipher=new this.StreamCipherConstructor;return new DecryptStream(stream,length,function(data,finalize){return cipher.decryptBlock(data,finalize)})}decryptString(s){var cipher=new this.StringCipherConstructor,s=stringToBytes(s);return bytesToString(cipher.decryptBlock(s,!0))}encryptString(s){var _data4,buf,pad,cipher=new this.StringCipherConstructor;return cipher instanceof AESBaseCipher?(pad=16-s.length%16,s+=String.fromCharCode(pad).repeat(pad),pad=new Uint8Array(16),crypto.getRandomValues(pad),_data4=stringToBytes(s),_data4=cipher.encrypt(_data4,pad),(buf=new Uint8Array(16+_data4.length)).set(pad),buf.set(_data4,16),bytesToString(buf)):(pad=stringToBytes(s),bytesToString(pad=cipher.encrypt(pad)))}}var _CipherTransformFactory_brand=new WeakSet;class CipherTransformFactory{static get _defaultPasswordBytes(){return shadow(this,"_defaultPasswordBytes",new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]))}constructor(dict,_fileId,_password){_classPrivateMethodInitSpec(this,_CipherTransformFactory_brand);var filter=dict.get("Filter");if(!isName(filter,"Standard"))throw new FormatError("unknown encryption method");this.filterName=filter.name;filter=(this.dict=dict).get("V");if(!Number.isInteger(filter)||1!==filter&&2!==filter&&4!==filter&&5!==filter)throw new FormatError("unsupported encryption algorithm");this.algorithm=filter;var _keyLength=dict.get("Length");if(_keyLength||(filter<=3?_keyLength=40:(cfDict=dict.get("CF"),streamCryptoName=dict.get("StmF"),cfDict instanceof Dict&&streamCryptoName instanceof Name&&(cfDict.suppressEncryption=!0,(_keyLength=(null==(cfDict=cfDict.get(streamCryptoName.name))?void 0:cfDict.get("Length"))||128)<40)&&(_keyLength<<=3))),!Number.isInteger(_keyLength)||_keyLength<40||_keyLength%8!=0)throw new FormatError("invalid key length");var passwordBytes,userValidationSalt,ownerEncryption,userEncryption,perms,ownerValidationSalt,uBytes,streamCryptoName=stringToBytes(dict.get("O")),cfDict=stringToBytes(dict.get("U")),_ownerPassword=streamCryptoName.subarray(0,32),_userPassword=cfDict.subarray(0,32),_flags2=dict.get("P"),_revision=dict.get("R"),_encryptMetadata=(4===filter||5===filter)&&!1!==dict.get("EncryptMetadata"),_fileId=(this.encryptMetadata=_encryptMetadata,stringToBytes(_fileId));if(_password){if(6===_revision)try{_password=utf8StringToString(_password)}catch(_unused12){warn("CipherTransformFactory: Unable to convert UTF8 encoded password.")}passwordBytes=stringToBytes(_password)}if(!(ownerValidationSalt=5!==filter?_assertClassBrand(_CipherTransformFactory_brand,this,_prepareKeyData).call(this,_fileId,passwordBytes,_ownerPassword,_userPassword,_flags2,_revision,_keyLength,_encryptMetadata):(ownerValidationSalt=streamCryptoName.subarray(32,40),streamCryptoName=streamCryptoName.subarray(40,48),uBytes=cfDict.subarray(0,48),userValidationSalt=cfDict.subarray(32,40),cfDict=cfDict.subarray(40,48),ownerEncryption=stringToBytes(dict.get("OE")),userEncryption=stringToBytes(dict.get("UE")),perms=stringToBytes(dict.get("Perms")),_assertClassBrand(_CipherTransformFactory_brand,this,_createEncryptionKey).call(this,_revision,passwordBytes,_ownerPassword,ownerValidationSalt,streamCryptoName,uBytes,_userPassword,userValidationSalt,cfDict,ownerEncryption,userEncryption,perms)))){if(!_password)throw new PasswordException("No password given",PasswordResponses.NEED_PASSWORD);streamCryptoName=_assertClassBrand(_CipherTransformFactory_brand,this,_decodeUserPassword).call(this,passwordBytes,_ownerPassword,_revision,_keyLength);ownerValidationSalt=_assertClassBrand(_CipherTransformFactory_brand,this,_prepareKeyData).call(this,_fileId,streamCryptoName,_ownerPassword,_userPassword,_flags2,_revision,_keyLength,_encryptMetadata)}if(!ownerValidationSalt)throw new PasswordException("Incorrect Password",PasswordResponses.INCORRECT_PASSWORD);4===filter&&ownerValidationSalt.length<16?(this.encryptionKey=new Uint8Array(16),this.encryptionKey.set(ownerValidationSalt)):this.encryptionKey=ownerValidationSalt,4<=filter&&((uBytes=dict.get("CF"))instanceof Dict&&(uBytes.suppressEncryption=!0),this.cf=uBytes,this.stmf=dict.get("StmF")||Name.get("Identity"),this.strf=dict.get("StrF")||Name.get("Identity"),this.eff=dict.get("EFF")||this.stmf)}createCipherTransform(num,gen){var key;return 4===this.algorithm||5===this.algorithm?new CipherTransform(_assertClassBrand(_CipherTransformFactory_brand,this,_buildCipherConstructor).call(this,this.cf,this.strf,num,gen,this.encryptionKey),_assertClassBrand(_CipherTransformFactory_brand,this,_buildCipherConstructor).call(this,this.cf,this.stmf,num,gen,this.encryptionKey)):(key=_assertClassBrand(_CipherTransformFactory_brand,this,_buildObjectKey).call(this,num,gen,this.encryptionKey,!1),num=function(){return new ARCFourCipher(key)},new CipherTransform(num,num))}}function _createEncryptionKey(revision,password,ownerPassword,ownerValidationSalt,ownerKeySalt,uBytes,userPassword,userValidationSalt,userKeySalt,ownerEncryption,userEncryption,perms){password=password?(passwordLength=Math.min(127,password.length),password.subarray(0,passwordLength)):[];var passwordLength=new(6===revision?PDF20:PDF17);return passwordLength.checkUserPassword(password,userValidationSalt,userPassword)?passwordLength.getUserKey(password,userKeySalt,userEncryption):password.length&&passwordLength.checkOwnerPassword(password,ownerValidationSalt,uBytes,ownerPassword)?passwordLength.getOwnerKey(password,ownerKeySalt,uBytes,ownerEncryption):null}function _prepareKeyData(fileId,password,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata){var hashDataSize=40+ownerPassword.length+fileId.length,hashData=new Uint8Array(hashDataSize),i=0;if(password)for(n=Math.min(32,password.length);i>8&255,hashData[i++]=flags>>16&255,hashData[i++]=flags>>>24&255,hashData.set(fileId,i),i+=fileId.length,4<=revision&&!encryptMetadata&&(hashData.fill(255,i,i+4),i+=4);var hash=calculateMD5(hashData,0,i),keyLengthInBytes=keyLength>>3;if(3<=revision)for(j=0;j<50;++j)hash=calculateMD5(hash,0,keyLengthInBytes);var encryptionKey=hash.subarray(0,keyLengthInBytes);if(3<=revision){hashData.set(_CipherTransformFactory._defaultPasswordBytes,i=0),hashData.set(fileId,i+=32),i+=fileId.length;for(var checkData=new ARCFourCipher(encryptionKey).encryptBlock(calculateMD5(hashData,0,i)),n=encryptionKey.length,derivedKey=new Uint8Array(n),j=1;j<=19;++j){for(var k=0;kuserPassword[k]===data)?encryptionKey:null}function _decodeUserPassword(password,ownerPassword,revision,keyLength){for(var hashData=new Uint8Array(32),i=0,n=Math.min(32,password.length);i>3;if(3<=revision)for(j=0;j<50;++j)hash=calculateMD5(hash,0,hash.length);if(3<=revision)for(var userPassword=ownerPassword,derivedKey=new Uint8Array(keyLengthInBytes),j=19;0<=j;j--){for(var k=0;k>8&255,key[i++]=num>>16&255,key[i++]=255&gen,key[i++]=gen>>8&255,isAes&&(key[i++]=115,key[i++]=65,key[i++]=108,key[i++]=84),calculateMD5(key,0,i).subarray(0,Math.min(n+5,16))}function _buildCipherConstructor(cf,name,num,gen,key){if(!(name instanceof Name))throw new FormatError("Invalid crypt filter name.");var self=this,cf=cf.get(name.name),name=null==cf?void 0:cf.get("CFM");if(!name||"None"===name.name)return function(){return new NullCipher};if("V2"===name.name)return function(){return new ARCFourCipher(_assertClassBrand(_CipherTransformFactory_brand,self,_buildObjectKey).call(self,num,gen,key,!1))};if("AESV2"===name.name)return function(){return new AES128Cipher(_assertClassBrand(_CipherTransformFactory_brand,self,_buildObjectKey).call(self,num,gen,key,!0))};if("AESV3"===name.name)return function(){return new AES256Cipher(key)};throw new FormatError("Unknown crypto method")}var _CipherTransformFactory=CipherTransformFactory,_firstXRefStmPos=new WeakMap;class XRef{constructor(stream,pdfManager){_classPrivateFieldInitSpec(this,_firstXRefStmPos,null),this.stream=stream,this.pdfManager=pdfManager,this.entries=[],this._xrefStms=new Set,this._cacheMap=new Map,this._pendingRefs=new RefSet,this._newPersistentRefNum=null,this._newTemporaryRefNum=null,this._persistentRefsCache=null}getNewPersistentRef(obj){null===this._newPersistentRefNum&&(this._newPersistentRefNum=this.entries.length||1);var num=this._newPersistentRefNum++;return this._cacheMap.set(num,obj),Ref.get(num,0)}getNewTemporaryRef(){if(null===this._newTemporaryRefNum&&(this._newTemporaryRefNum=this.entries.length||1,this._newPersistentRefNum)){this._persistentRefsCache=new Map;for(var i=this._newTemporaryRefNum;i=data.length);)token+=String.fromCharCode(ch),ch=data[offset];return token}(buffer,position);if(token.startsWith("xref")&&(4===token.length||/\s/.test(token[4])))position+=skipUntil(buffer,position,trailerBytes),trailers.push(position),position+=skipUntil(buffer,position,startxrefBytes);else if(m=objRegExp.exec(token)){var num=0|m[1],m=0|m[2],startPos=position+token.length,contentLength=void 0,updateEntries=!1;if(this.entries[num]){if(this.entries[num].gen===m)try{new Parser({lexer:new Lexer(stream.makeSubStream(startPos))}).getObj(),updateEntries=!0}catch(ex){ex instanceof ParserEOFException?warn("indexObjects -- checking object (".concat(token,'): "').concat(ex,'".')):updateEntries=!0}}else updateEntries=!0;updateEntries&&(this.entries[num]={offset:position-stream.start,gen:m,uncompressed:!0}),gEndobjRegExp.lastIndex=startPos;var updateEntries=gEndobjRegExp.exec(bufferStr),num=(updateEntries?(contentLength=gEndobjRegExp.lastIndex+1-position,"endobj"!==updateEntries[1]&&(warn('indexObjects: Found "'.concat(updateEntries[1],'" inside of another "obj", ')+'caused by missing "endobj" -- trying to recover.'),contentLength-=updateEntries[1].length+1)):contentLength=length-position,buffer.subarray(position,position+contentLength)),m=skipUntil(num,0,xrefBytes);m!(a instanceof Ref&&deletedAnnotations.has(a)));for({ref}of(await AnnotationFactory.saveNewAnnotations(handler,task,annotations,imagePromises,changes)).annotations)ref instanceof Ref&&!existingAnnotations.has(ref)&&annotationsArray.push(ref);var deletedRef,handler=pageDict.clone();handler.set("Annots",annotationsArray),changes.put(this.ref,{data:handler});for(deletedRef of deletedAnnotations)changes.put(deletedRef,{data:null})}async save(handler,task,annotationStorage,changes){var annotation,partialEvaluator=_assertClassBrand(_Page_brand,this,_createPartialEvaluator).call(this,handler),promises=[];for(annotation of await this._parsedAnnotations)promises.push(annotation.save(partialEvaluator,task,annotationStorage,changes).catch(function(reason){return warn("save - ignoring annotation data during "+'"'.concat(task.name,'" task: "').concat(reason,'".')),null}));return Promise.all(promises)}async loadResources(keys){var _classPrivateFieldGet6;await(null!=(_classPrivateFieldGet6=_classPrivateFieldGet(_resourcesPromise,this))?_classPrivateFieldGet6:_classPrivateFieldSet(_resourcesPromise,this,this.pdfManager.ensure(this,"resources"))),await ObjectLoader.load(this.resources,keys,this.xref)}async getOperatorList(_ref76){var{handler,sink,task,intent,cacheKey,annotationStorage=null,modifiedIds=null}=_ref76,_ref76=this.getContentStream(),resourcesPromise=this.loadResources(RESOURCES_KEYS_OPERATOR_LIST),partialEvaluator=_assertClassBrand(_Page_brand,this,_createPartialEvaluator).call(this,handler),newAnnotsByPage=this.xfaFactory?null:getNewAnnotationsMap(annotationStorage),newAnnots=null==newAnnotsByPage?void 0:newAnnotsByPage.get(this.pageIndex),newAnnotsByPage=Promise.resolve(null),deletedAnnotations=null;if(newAnnots){var imagePromises,bitmapId,bitmap,annotationGlobalsPromise=this.pdfManager.ensureDoc("annotationGlobals"),missingBitmaps=new Set;for({bitmapId,bitmap}of newAnnots)!bitmapId||bitmap||missingBitmaps.has(bitmapId)||missingBitmaps.add(bitmapId);var isOffscreenCanvasSupported=this.evaluatorOptions["isOffscreenCanvasSupported"];if(0{var[_ref77]=_ref77;return _ref77?AnnotationFactory.printNewAnnotations(_ref77,partialEvaluator,task,newAnnots,imagePromises):null})}var isOffscreenCanvasSupported=Promise.all([_ref76,resourcesPromise]).then(async _ref78=>{var[_ref78]=_ref78,resources=await _assertClassBrand(_Page_brand,this,_getMergedResources).call(this,_ref78.dict,RESOURCES_KEYS_OPERATOR_LIST),opList=new OperatorList(intent,sink);return handler.send("StartRenderPage",{transparency:partialEvaluator.hasBlendModes(resources,this.nonBlendModesSet),pageIndex:this.pageIndex,cacheKey:cacheKey}),await partialEvaluator.getOperatorList({stream:_ref78,task:task,resources:resources,operatorList:opList}),opList}),[pageOpList,annotations,newAnnotations]=await Promise.all([isOffscreenCanvasSupported,this._parsedAnnotations,newAnnotsByPage]);if(newAnnotations){for(var annotations=annotations.filter(a=>!(a.ref&&deletedAnnotations.has(a.ref))),i=0,ii=newAnnotations.length;ia.ref&&isRefsEqual(a.ref,newAnnotation.refToReplace)))&&(annotations.splice(j,1,newAnnotation),newAnnotations.splice(_i53--,1),_ii18--),i=_i53,ii=_ii18}(i,ii);annotations=annotations.concat(newAnnotations)}if(0===annotations.length||intent&RenderingIntentFlag.ANNOTATIONS_DISABLE)pageOpList.flush(!0);else{var _annotation2,renderForms=!!(intent&RenderingIntentFlag.ANNOTATIONS_FORMS),isEditing=!!(intent&RenderingIntentFlag.IS_EDITING),intentAny=!!(intent&RenderingIntentFlag.ANY),intentDisplay=!!(intent&RenderingIntentFlag.DISPLAY),intentPrint=!!(intent&RenderingIntentFlag.PRINT),opListPromises=[];for(_annotation2 of annotations)(intentAny||intentDisplay&&_annotation2.mustBeViewed(annotationStorage,renderForms)&&_annotation2.mustBeViewedWhenEditing(isEditing,modifiedIds)||intentPrint&&_annotation2.mustBePrinted(annotationStorage))&&opListPromises.push(_annotation2.getOperatorList(partialEvaluator,task,intent,annotationStorage).catch(function(reason){return warn("getOperatorList - ignoring annotation data during "+'"'.concat(task.name,'" task: "').concat(reason,'".')),{opList:null,separateForm:!1,separateCanvas:!1}}));var opList,separateForm,separateCanvas,form=!1,canvas=!1;for({opList,separateForm,separateCanvas}of await Promise.all(opListPromises))pageOpList.addOpList(opList),form=form||separateForm,canvas=canvas||separateCanvas;pageOpList.flush(!0,{form:form,canvas:canvas})}return{length:pageOpList.totalLength}}async extractTextContent(_ref79){var{handler:_ref79,task,includeMarkedContent,disableNormalization,sink,intersector=null}=_ref79,contentStreamPromise=this.getContentStream(),resourcesPromise=this.loadResources(RESOURCES_KEYS_TEXT_CONTENT),langPromise=this.pdfManager.ensureCatalog("lang"),[contentStreamPromise,,resourcesPromise]=await Promise.all([contentStreamPromise,resourcesPromise,langPromise]),langPromise=await _assertClassBrand(_Page_brand,this,_getMergedResources).call(this,contentStreamPromise.dict,RESOURCES_KEYS_TEXT_CONTENT);return _assertClassBrand(_Page_brand,this,_createPartialEvaluator).call(this,_ref79).getTextContent({stream:contentStreamPromise,task:task,resources:langPromise,includeMarkedContent:includeMarkedContent,disableNormalization:disableNormalization,sink:sink,viewBox:this.view,lang:resourcesPromise,intersector:intersector})}async getStructTree(){var structTreeRoot=await this.pdfManager.ensureCatalog("structTreeRoot");if(!structTreeRoot)return null;await this._parsedAnnotations;try{var structTree=await this.pdfManager.ensure(this,"_parseStructTree",[structTreeRoot]);return await this.pdfManager.ensure(structTree,"serializable")}catch(ex){return warn('getStructTree: "'.concat(ex,'".')),null}}_parseStructTree(structTreeRoot){structTreeRoot=new StructTreePage(structTreeRoot,this.pageDict);return structTreeRoot.parse(this.ref),structTreeRoot}async getAnnotationsData(handler,task,intent){var annotations=await this._parsedAnnotations;if(0===annotations.length)return annotations;var partialEvaluator,annotation,intersector,annotationsData=[],textContentPromises=[],intentAny=!!(intent&RenderingIntentFlag.ANY),intentDisplay=!!(intent&RenderingIntentFlag.DISPLAY),intentPrint=!!(intent&RenderingIntentFlag.PRINT),highlightedAnnotations=[];for(annotation of annotations){var isVisible=intentAny||intentDisplay&&annotation.viewable;(isVisible||intentPrint&&annotation.printable)&&annotationsData.push(annotation.data),annotation.hasTextContent&&isVisible?(null==partialEvaluator&&(partialEvaluator=_assertClassBrand(_Page_brand,this,_createPartialEvaluator).call(this,handler)),textContentPromises.push(annotation.extractTextContent(partialEvaluator,task,[-1/0,-1/0,1/0,1/0]).catch(function(reason){warn('getAnnotationsData - ignoring textContent during "'.concat(task.name,'" task: "').concat(reason,'".'))}))):annotation.overlaysTextContent&&isVisible&&highlightedAnnotations.push(annotation)}return 0{intersector.setText()}))),await Promise.all(textContentPromises),annotationsData}get annotations(){var annots=_assertClassBrand(_Page_brand,this,_getInheritableProperty).call(this,"Annots");return shadow(this,"annotations",Array.isArray(annots)?annots:[])}get _parsedAnnotations(){var promise=this.pdfManager.ensure(this,"annotations").then(async annots=>{if(0===annots.length)return annots;var[annotationGlobals,fieldObjects]=await Promise.all([this.pdfManager.ensureDoc("annotationGlobals"),this.pdfManager.ensureDoc("fieldObjects")]);if(!annotationGlobals)return[];var annotationRef,orphanFields=null==fieldObjects?void 0:fieldObjects.orphanFields,annotationPromises=[];for(annotationRef of annots)annotationPromises.push(AnnotationFactory.create(this.xref,annotationRef,annotationGlobals,this._localIdFactory,!1,orphanFields,this.ref).catch(function(reason){return warn('_parsedAnnotations: "'.concat(reason,'".')),null}));var popupAnnotations,widgetAnnotations,annotation,sortedAnnotations=[];for(annotation of await Promise.all(annotationPromises))annotation&&(annotation instanceof WidgetAnnotation?widgetAnnotations=widgetAnnotations||[]:annotation instanceof PopupAnnotation?popupAnnotations=popupAnnotations||[]:sortedAnnotations).push(annotation);return widgetAnnotations&&sortedAnnotations.push(...widgetAnnotations),popupAnnotations&&sortedAnnotations.push(...popupAnnotations),sortedAnnotations});return shadow(this,"_parsedAnnotations",promise)}get jsActions(){return shadow(this,"jsActions",collectActions(this.xref,this.pageDict,PageActionEventType))}}function _createPartialEvaluator(handler){return new PartialEvaluator({xref:this.xref,handler:handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalColorSpaceCache:this.globalColorSpaceCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions})}function _getInheritableProperty(key){var value=getInheritableProperty({dict:this.pageDict,key:key,getArray:1{obj instanceof Dict&&(annotation.oldAnnotation=obj.clone())},()=>{warn("Cannot fetch `oldAnnotation` for: ".concat(ref,"."))})),delete annotation.id):warn("A non-linked annotation cannot be modified: ".concat(annotation.id))}(annotation);await Promise.all(promises)}async function _getMergedResources(streamDict,keys){streamDict=null==streamDict?void 0:streamDict.get("Resources");return streamDict instanceof Dict&&streamDict.size?(await ObjectLoader.load(streamDict,keys,this.xref),Dict.merge({xref:this.xref,dictArray:[streamDict,this.resources],mergeSubDicts:!0})):this.resources}var PDF_HEADER_SIGNATURE=new Uint8Array([37,80,68,70,45]),STARTXREF_SIGNATURE=new Uint8Array([115,116,97,114,116,120,114,101,102]),ENDOBJ_SIGNATURE=new Uint8Array([101,110,100,111,98,106]);function find(stream,signature){var limit=2[e,null]));if(xfa instanceof BaseStream&&!xfa.isEmpty)entries.set("xdp:xdp",xfa);else{if(!Array.isArray(xfa)||0===xfa.length)return null;for(var i=0,ii=xfa.length;i{}),_assertClassBrand(_PDFDocument_brand,this,_loadXfaImages).call(this)])}serializeXfaData(annotationStorage){return this.xfaFactory?this.xfaFactory.serializeData(annotationStorage):null}get version(){return this.catalog.version||_classPrivateFieldGet(_version,this)}get formInfo(){var formInfo={hasFields:!1,hasAcroForm:!1,hasXfa:!1,hasSignatures:!1},acroForm=this.catalog["acroForm"];if(acroForm)try{var fields=acroForm.get("Fields"),hasFields=Array.isArray(fields)&&0{var[_ref80,ref]=_ref80;return new Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:pageIndex,pageDict:_ref80,ref:ref,globalIdFactory:this._globalIdFactory,fontCache:catalog.fontCache,builtInCMapCache:catalog.builtInCMapCache,standardFontDataCache:catalog.standardFontDataCache,globalColorSpaceCache:catalog.globalColorSpaceCache,globalImageCache:catalog.globalImageCache,systemFontCache:catalog.systemFontCache,nonBlendModesSet:catalog.nonBlendModesSet,xfaFactory:xfaFactory})}),_classPrivateFieldGet(_pagePromises,this).set(pageIndex,cachedPromise),cachedPromise)}async checkFirstPage(){var recoveryMode=0{}):promise=Promise.resolve(new Page({pdfManager:pdfManager,xref:this.xref,pageIndex:pageIndex,pageDict:pageDict,ref:ref,globalIdFactory:this._globalIdFactory,fontCache:catalog.fontCache,builtInCMapCache:catalog.builtInCMapCache,standardFontDataCache:catalog.standardFontDataCache,globalColorSpaceCache:this.globalColorSpaceCache,globalImageCache:catalog.globalImageCache,systemFontCache:catalog.systemFontCache,nonBlendModesSet:catalog.nonBlendModesSet,xfaFactory:null})),_classPrivateFieldGet(_pagePromises,this).set(pageIndex,promise)}catalog.setActualNumPages(pagesTree.size)}}async fontFallback(id,handler){var translatedFont,{catalog,pdfManager}=this;for(translatedFont of await Promise.all(catalog.fontCache))if(translatedFont.loadedName===id)return void translatedFont.fallback(handler,pdfManager.evaluatorOptions)}async cleanup(){return this.catalog?this.catalog.cleanup(0{if(!formInfo.hasFields)return null;var annotationGlobals=await this.annotationGlobals;if(!annotationGlobals)return null;var fieldRef,formInfo=annotationGlobals["acroForm"],visitedRefs=new RefSet,allFields=Object.create(null),fieldPromises=new Map,orphanFields=new RefSetCache;for(fieldRef of formInfo.get("Fields"))await _assertClassBrand(_PDFDocument_brand,this,_collectFieldObjects).call(this,"",null,fieldRef,fieldPromises,annotationGlobals,visitedRefs,orphanFields);var name,promises,allPromises=[];for([name,promises]of fieldPromises)await async function(name){allPromises.push(Promise.all(promises).then(fields=>{0<(fields=fields.filter(field=>!!field)).length&&(allFields[name]=fields)}))}(name);return await Promise.all(allPromises),{allFields:0fieldObject.some(object=>null!==object.actions))}get calculationOrderIds(){var _this$catalog$acroFor=null==(_this$catalog$acroFor=this.catalog.acroForm)?void 0:_this$catalog$acroFor.get("CO");if(!Array.isArray(_this$catalog$acroFor)||0===_this$catalog$acroFor.length)return shadow(this,"calculationOrderIds",null);var id,ids=[];for(id of _this$catalog$acroFor)id instanceof Ref&&ids.push(id.toString());return shadow(this,"calculationOrderIds",ids.length?ids:null)}get annotationGlobals(){return shadow(this,"annotationGlobals",AnnotationFactory.createGlobals(this.pdfManager))}}function _hasOnlyDocumentSignatures(fields){var recursionDepth=1{var isSignature;return(field=this.xref.fetchIfRef(field))instanceof Dict&&(field.has("Kids")?10<++recursionDepth?(warn("#hasOnlyDocumentSignatures: maximum recursion depth reached"),!1):_assertClassBrand(_PDFDocument_brand,this,_hasOnlyDocumentSignatures).call(this,field.get("Kids"),recursionDepth):(isSignature=isName(field.get("FT"),"Sig"),field=field.get("Rect"),field=Array.isArray(field)&&field.every(value=>0===value),isSignature&&field))})}function _collectSignatureCertificates(fields,collectedSignatureCertificates){var visited=2partialEvaluator.handleSetFont(resources,[Name.get(fontName),1],null,operatorList,task,initialState,fallbackFontDict,cssFontInfo).catch(reason=>(warn('loadXfaFonts: "'.concat(reason,'".')),null)),promises=[];for([fontName,font]of acroForm){var descriptor=font.get("FontDescriptor");descriptor instanceof Dict&&validateCSSFont(descriptor={fontFamily:descriptor.get("FontFamily").replaceAll(/[ ]+(\d)/g,"$1"),fontWeight:descriptor.get("FontWeight"),italicAngle:-descriptor.get("ItalicAngle")})&&promises.push(parseFont(fontName,null,descriptor))}await Promise.all(promises);handler=this.xfaFactory.setFonts(pdfFonts);if(handler){options.ignoreErrors=!0,pdfFonts.length=promises.length=0;var missing,_missing,reallyMissingFonts=new Set;for(missing of handler)getXfaFontName("".concat(missing,"-Regular"))||reallyMissingFonts.add(missing);reallyMissingFonts.size&&handler.push("PdfJS-Fallback");for(_missing of handler)if(!reallyMissingFonts.has(_missing))for(var fontInfo of[{name:"Regular",fontWeight:400,italicAngle:0},{name:"Bold",fontWeight:700,italicAngle:0},{name:"Italic",fontWeight:400,italicAngle:12},{name:"BoldItalic",fontWeight:700,italicAngle:12}]){var name="".concat(_missing,"-").concat(fontInfo.name);promises.push(parseFont(name,getXfaFontDict(name),{fontFamily:_missing,fontWeight:fontInfo.fontWeight,italicAngle:fontInfo.italicAngle}))}await Promise.all(promises),this.xfaFactory.appendFonts(pdfFonts,reallyMissingFonts)}}}}}async function _getLinearizationPage(pageIndex){var{catalog,linearization,xref}=this,linearization=Ref.get(linearization.objectNumberFirst,0);try{var obj=await xref.fetchAsync(linearization);if(obj instanceof Dict){var type=obj.getRaw("Type");if(isName(type=type instanceof Ref?await xref.fetchAsync(type):type,"Page")||!obj.has("Type")&&!obj.has("Kids")&&obj.has("Contents"))return catalog.pageKidsCountCache.has(linearization)||catalog.pageKidsCountCache.put(linearization,1),catalog.pageIndexCache.has(linearization)||catalog.pageIndexCache.put(linearization,0),[obj,linearization]}throw new FormatError("The Linearization dictionary doesn't point to a valid Page dictionary.")}catch(reason){return warn('_getLinearizationPage: "'.concat(reason.message,'".')),catalog.getPageDict(pageIndex)}}async function _collectFieldObjects(name,parentRef,fieldRef,promises,annotationGlobals,visitedRefs,orphanFields){var xref=this["xref"];if(fieldRef instanceof Ref&&!visitedRefs.has(fieldRef)){visitedRefs.put(fieldRef);var field=await xref.fetchAsync(fieldRef);if(field instanceof Dict){var subtype=(subtype=await field.getAsync("Subtype"))instanceof Name?subtype.name:null;if("Link"!==subtype){if(field.has("T")){subtype=stringToPDFString(await field.getAsync("T"));name=""===name?subtype:"".concat(name,".").concat(subtype)}else for(var obj=field;;){if((obj=obj.getRaw("Parent")||parentRef)instanceof Ref){if(visitedRefs.has(obj))break;obj=await xref.fetchAsync(obj)}if(!(obj instanceof Dict))break;if(obj.has("T")){var _partName=stringToPDFString(await obj.getAsync("T"));name=""===name?_partName:"".concat(name,".").concat(_partName);break}}if(parentRef&&!field.has("Parent")&&isName(field.get("Subtype"),"Widget")&&orphanFields.put(fieldRef,parentRef),promises.has(name)||promises.set(name,[]),promises.get(name).push(AnnotationFactory.create(xref,fieldRef,annotationGlobals,null,!0,orphanFields,null).then(annotation=>null==annotation?void 0:annotation.getFieldObject()).catch(function(reason){return warn('#collectFieldObjects: "'.concat(reason,'".')),null})),field.has("Kids")){subtype=await field.getAsync("Kids");if(Array.isArray(subtype))for(var kid of subtype)await _assertClassBrand(_PDFDocument_brand,this,_collectFieldObjects).call(this,name,fieldRef,kid,promises,annotationGlobals,visitedRefs,orphanFields)}}}}}function parseDocBaseUrl(url){if(url){var absoluteUrl=createValidAbsoluteUrl(url);if(absoluteUrl)return absoluteUrl.href;warn('Invalid absolute docBaseUrl: "'.concat(url,'".'))}return null}class BasePdfManager{constructor(_ref81){var{docBaseUrl:_ref81,docId,enableXfa,evaluatorOptions,handler,password}=_ref81,_ref81=(this._docBaseUrl=parseDocBaseUrl(_ref81),this._docId=docId,this._password=password,this.enableXfa=enableXfa,evaluatorOptions.isOffscreenCanvasSupported&&(evaluatorOptions.isOffscreenCanvasSupported=FeatureTest.isOffscreenCanvasSupported),evaluatorOptions.isImageDecoderSupported&&(evaluatorOptions.isImageDecoderSupported=FeatureTest.isImageDecoderSupported),this.evaluatorOptions=Object.freeze(evaluatorOptions),ImageResizer.setOptions(evaluatorOptions),JpegStream.setOptions(evaluatorOptions),OperatorList.setOptions(evaluatorOptions),_objectSpread({},evaluatorOptions,{handler:handler}));JpxImage.setOptions(_ref81),IccColorSpace.setOptions(_ref81),CmykICCBasedCS.setOptions(_ref81)}get docId(){return this._docId}get password(){return this._password}get docBaseUrl(){return this._docBaseUrl}ensureDoc(prop,args){return this.ensure(this.pdfDocument,prop,args)}ensureXRef(prop,args){return this.ensure(this.pdfDocument.xref,prop,args)}ensureCatalog(prop,args){return this.ensure(this.pdfDocument.catalog,prop,args)}getPage(pageIndex){return this.pdfDocument.getPage(pageIndex)}fontFallback(id,handler){return this.pdfDocument.fontFallback(id,handler)}cleanup(){return this.pdfDocument.cleanup(0{var startCapability=Promise.withResolvers();return this.streamControllers[streamId]={controller:controller,startCall:startCapability,pullCall:null,cancelCall:null,isClosed:!1},comObj.postMessage({sourceName:sourceName,targetName:targetName,action:actionName,streamId:streamId,data:data,desiredSize:controller.desiredSize},transfers),startCapability.promise},pull:controller=>{var pullCapability=Promise.withResolvers();return this.streamControllers[streamId].pullCall=pullCapability,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.PULL,streamId:streamId,desiredSize:controller.desiredSize}),pullCapability.promise},cancel:reason=>{assert(reason instanceof Error,"cancel must have a valid reason");var cancelCapability=Promise.withResolvers();return this.streamControllers[streamId].cancelCall=cancelCapability,this.streamControllers[streamId].isClosed=!0,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.CANCEL,streamId:streamId,reason:wrapReason(reason)}),cancelCapability.promise}},queueingStrategy)}destroy(){var _classPrivateFieldGet7;null!=(_classPrivateFieldGet7=_classPrivateFieldGet(_messageAC,this))&&_classPrivateFieldGet7.abort(),_classPrivateFieldSet(_messageAC,this,null)}}function _onMessage(_ref97){var data=_ref97["data"];if(data.targetName===this.sourceName)if(data.stream)_assertClassBrand(_MessageHandler_brand,this,_processStreamMessage).call(this,data);else if(data.callback){var _ref97=data.callbackId,capability=this.callbackCapabilities[_ref97];if(!capability)throw new Error("Cannot resolve callback ".concat(_ref97));if(delete this.callbackCapabilities[_ref97],data.callback===CallbackKind.DATA)capability.resolve(data.data);else{if(data.callback!==CallbackKind.ERROR)throw new Error("Unexpected callback case");capability.reject(wrapReason(data.reason))}}else{var sourceName,targetName,comObj,_ref97=this.actionHandler[data.action];if(!_ref97)throw new Error("Unknown action from worker: ".concat(data.action));data.callbackId?(sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj,Promise.try(_ref97,data.data).then(function(result){comObj.postMessage({sourceName:sourceName,targetName:targetName,callback:CallbackKind.DATA,callbackId:data.callbackId,data:result})},function(reason){comObj.postMessage({sourceName:sourceName,targetName:targetName,callback:CallbackKind.ERROR,callbackId:data.callbackId,reason:wrapReason(reason)})})):data.streamId?_assertClassBrand(_MessageHandler_brand,this,_createStreamSink).call(this,data):_ref97(data.data)}}function _createStreamSink(data){var streamId=data.streamId,sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj,self=this,action=this.actionHandler[data.action],streamSink={enqueue(chunk){var lastDesiredSize,size=1>")}async function writeStream(stream,buffer,transform){var bytes=stream.getBytes(),stream=stream["dict"],[filter,params]=await Promise.all([stream.getAsync("Filter"),stream.getAsync("DecodeParms")]),isFilterZeroFlateDecode=isName(Array.isArray(filter)?await stream.xref.fetchIfRefAsync(filter[0]):filter,"FlateDecode");if(256<=bytes.length||isFilterZeroFlateDecode)try{var newFilter,newParams,cs=new CompressionStream("deflate"),writer=cs.writable.getWriter(),buf=(await writer.ready,writer.write(bytes).then(async()=>{await writer.ready,await writer.close()}).catch(()=>{}),await new Response(cs.readable).arrayBuffer()),bytes=new Uint8Array(buf);filter?isFilterZeroFlateDecode||(newFilter=Array.isArray(filter)?[Name.get("FlateDecode"),...filter]:[Name.get("FlateDecode"),filter],params&&(newParams=Array.isArray(params)?[null,...params]:[null,params])):newFilter=Name.get("FlateDecode"),newFilter&&stream.set("Filter",newFilter),newParams&&stream.set("DecodeParms",newParams)}catch(ex){info('writeStream - cannot compress data: "'.concat(ex,'".'))}cs=bytesToString(bytes);transform&&(cs=transform.encryptString(cs)),stream.set("Length",cs.length),await writeDict(stream,buffer,transform),buffer.push(" stream\n",cs,"\nendstream")}async function writeArray(array,buffer,transform){buffer.push("[");var val,first=!0;for(val of array)first?first=!1:buffer.push(" "),await writeValue(val,buffer,transform);buffer.push("]")}async function writeValue(value,buffer,transform){value instanceof Name?buffer.push("/".concat(escapePDFName(value.name))):value instanceof Ref?buffer.push("".concat(value.num," ").concat(value.gen," R")):Array.isArray(value)||ArrayBuffer.isView(value)?await writeArray(value,buffer,transform):"string"==typeof value?(transform&&(value=transform.encryptString(value)),buffer.push("(".concat(escapeString(value),")"))):"number"==typeof value?buffer.push(numberToString(value)):"boolean"==typeof value?buffer.push(value.toString()):value instanceof Dict?await writeDict(value,buffer,transform):value instanceof BaseStream?await writeStream(value,buffer,transform):null===value?buffer.push("null"):warn("Unhandled value in writer: ".concat(typeof value,", please file a bug."))}function writeInt(number,size,offset,buffer){for(var i=size+offset-1;offset-1>=8;return offset+size}function writeString(string,offset,buffer){for(var ii=string.length,i=0;istr.length)),array=new Uint8Array(filename),offset=0;for(str of time)offset=writeString(str,offset,array);return bytesToString(calculateMD5(array,0,array.length))}function writeXFADataForAcroform(str,changes){var xfa,path,value,nodePath,node,xml=new SimpleXMLParser({hasAttributes:!0}).parseFromString(str);for({xfa}of changes)xfa&&({path,value}=xfa,path)&&(nodePath=parseXFAPath(path),(node=!(node=xml.documentElement.searchNode(nodePath,0))&&1new SimpleDOMNode("value",val)):[new SimpleDOMNode("#text",value)]:warn("Node not found for path: ".concat(path)));str=[];return xml.documentElement.dump(str),str.join("")}async function updateAcroform(_ref83){var dict,{acroForm:_ref83,acroFormRef,hasXfa,hasXfaDatasetsEntry,xfaDatasetsRef,needAppearances,changes}=_ref83;!hasXfa||hasXfaDatasetsEntry||xfaDatasetsRef||warn("XFA - Cannot save it"),(needAppearances||hasXfa&&xfaDatasetsRef&&!hasXfaDatasetsEntry)&&(dict=_ref83.clone(),hasXfa&&!hasXfaDatasetsEntry&&((hasXfa=_ref83.get("XFA").slice()).splice(2,0,"datasets"),hasXfa.splice(3,0,xfaDatasetsRef),dict.set("XFA",hasXfa)),needAppearances&&dict.set("NeedAppearances",!0),changes.put(acroFormRef,{data:dict}))}function updateXFA(_ref84){var{xfaData:_ref84,xfaDatasetsRef,changes,xref}=_ref84,_ref84=(null===_ref84&&(_ref84=writeXFADataForAcroform(xref.fetchIfRef(xfaDatasetsRef).getString(),changes)),new StringStream(_ref84));_ref84.dict=new Dict(xref),_ref84.dict.set("Type",Name.get("EmbeddedFile")),changes.put(xfaDatasetsRef,{data:_ref84})}async function getXRefTable(xrefInfo,baseOffset,newRefs,newXref,buffer){buffer.push("xref\n");var ref,data,indexes=getIndexes(newRefs),indexesPosition=0;for({ref,data}of newRefs)ref.num===indexes[indexesPosition]&&(buffer.push("".concat(indexes[indexesPosition]," ").concat(indexes[indexesPosition+1],"\n")),indexesPosition+=2),null!==data?(buffer.push("".concat(baseOffset.toString().padStart(10,"0")," ").concat(Math.min(ref.gen,65535).toString().padStart(5,"0")," n\r\n")),baseOffset+=data.length):buffer.push("0000000000 ".concat(Math.min(ref.gen+1,65535).toString().padStart(5,"0")," f\r\n"));computeIDs(baseOffset,xrefInfo,newXref),buffer.push("trailer\n"),await writeDict(newXref,buffer),buffer.push("\nstartxref\n",baseOffset.toString(),"\n%%EOF\n")}function getIndexes(newRefs){var ref,indexes=[];for({ref}of newRefs)ref.num===indexes.at(-2)+indexes.at(-1)?indexes[indexes.length-1]+=1:indexes.push(ref.num,1);return indexes}async function getXRefStreamTable(xrefInfo,baseOffset,newRefs,newXref,buffer){var ref,_data5,xrefTableData=[],maxOffset=0,maxGen=0;for({ref,data:_data5}of newRefs){var gen=void 0,maxOffset=Math.max(maxOffset,baseOffset);null!==_data5?(gen=Math.min(ref.gen,65535),xrefTableData.push([1,baseOffset,gen]),baseOffset+=_data5.length):(gen=Math.min(ref.gen+1,65535),xrefTableData.push([0,0,gen])),maxGen=Math.max(maxGen,gen)}newXref.set("Index",getIndexes(newRefs));var type,objOffset,_gen,sizes=[1,getSizeInBytes(maxOffset),getSizeInBytes(maxGen)],newRefs=(newXref.set("W",sizes),computeIDs(baseOffset,xrefInfo,newXref),Math.sumPrecise(sizes)),data=new Uint8Array(newRefs*xrefTableData.length),newRefs=new Stream(data),offset=(newRefs.dict=newXref,0);for([type,objOffset,_gen]of xrefTableData)offset=writeInt(type,sizes[0],offset,data),offset=writeInt(objOffset,sizes[1],offset,data),offset=writeInt(_gen,sizes[2],offset,data);await writeObject(xrefInfo.newRef,newRefs,buffer,{}),buffer.push("startxref\n",baseOffset.toString(),"\n%%EOF\n")}function computeIDs(baseOffset,xrefInfo,newXref){Array.isArray(xrefInfo.fileIds)&&0a.ref.num-b.ref.num)}async function incrementalUpdate(_ref85){var data,{originalData:_ref85,xrefInfo,changes,xref=null,hasXfa=!1,xfaDatasetsRef=null,hasXfaDatasetsEntry=!1,needAppearances,acroFormRef=null,acroForm=null,xfaData=null,useXrefStream=!1}=_ref85,acroForm=(await updateAcroform({xref:xref,acroForm:acroForm,acroFormRef:acroFormRef,hasXfa:hasXfa,hasXfaDatasetsEntry:hasXfaDatasetsEntry,xfaDatasetsRef:xfaDatasetsRef,needAppearances:needAppearances,changes:changes}),hasXfa&&updateXFA({xfaData:xfaData,xfaDatasetsRef:xfaDatasetsRef,changes:changes,xref:xref}),getTrailerDict(xrefInfo,changes,useXrefStream)),buffer=[],acroFormRef=await writeChanges(changes,xref,buffer),hasXfaDatasetsEntry=_ref85.length,needAppearances=_ref85.at(-1);10!==needAppearances&&13!==needAppearances&&(buffer.push("\n"),hasXfaDatasetsEntry+=1);for({data}of acroFormRef)null!==data&&buffer.push(data);await(useXrefStream?getXRefStreamTable:getXRefTable)(xrefInfo,hasXfaDatasetsEntry,acroFormRef,acroForm,buffer);var str,hasXfa=_ref85.length+Math.sumPrecise(buffer.map(str=>str.length)),array=new Uint8Array(hasXfa),offset=(array.set(_ref85),_ref85.length);for(str of buffer)offset=writeString(str,offset,array);return array}class PDFWorkerStream{constructor(msgHandler){this._msgHandler=msgHandler,this._contentLength=null,this._fullRequestReader=null,this._rangeRequestReaders=[]}getFullReader(){return assert(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once."),this._fullRequestReader=new PDFWorkerStreamReader(this._msgHandler),this._fullRequestReader}getRangeReader(begin,end){begin=new PDFWorkerStreamRangeReader(begin,end,this._msgHandler);return this._rangeRequestReaders.push(begin),begin}cancelAllRequests(reason){var _this$_fullRequestRea,reader;null!=(_this$_fullRequestRea=this._fullRequestReader)&&_this$_fullRequestRea.cancel(reason);for(reader of this._rangeRequestReaders.slice(0))reader.cancel(reason)}}class PDFWorkerStreamReader{constructor(msgHandler){this._msgHandler=msgHandler,this.onProgress=null,this._contentLength=null,this._isRangeSupported=!1,this._isStreamingSupported=!1;msgHandler=this._msgHandler.sendWithStream("GetReader");this._reader=msgHandler.getReader(),this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then(data=>{this._isStreamingSupported=data.isStreamingSupported,this._isRangeSupported=data.isRangeSupported,this._contentLength=data.contentLength})}get headersReady(){return this._headersReady}get contentLength(){return this._contentLength}get isStreamingSupported(){return this._isStreamingSupported}get isRangeSupported(){return this._isRangeSupported}async read(){var{value,done}=await this._reader.read();return done?{value:void 0,done:!0}:{value:value.buffer,done:!1}}cancel(reason){this._reader.cancel(reason)}}class PDFWorkerStreamRangeReader{constructor(begin,end,msgHandler){this._msgHandler=msgHandler,this.onProgress=null;msgHandler=this._msgHandler.sendWithStream("GetRangeReader",{begin:begin,end:end});this._reader=msgHandler.getReader()}get isStreamingSupported(){return!1}async read(){var{value,done}=await this._reader.read();return done?{value:void 0,done:!0}:{value:value.buffer,done:!1}}cancel(reason){this._reader.cancel(reason)}}class WorkerTask{constructor(name){this.name=name,this.terminated=!1,this._capability=Promise.withResolvers()}get finished(){return this._capability.promise}finish(){this._capability.resolve()}terminate(){this.terminated=!0}ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}class WorkerMessageHandler{static setup(handler,port){var testMessageProcessed=!1;handler.on("test",data=>{testMessageProcessed||(testMessageProcessed=!0,handler.send("test",data instanceof Uint8Array))}),handler.on("configure",data=>{setVerbosityLevel(data.verbosity)}),handler.on("GetDocRequest",data=>this.createDocumentHandler(data,port))}static createDocumentHandler(docParams,port){var pdfManager,terminated=!1,cancelXHRs=null,WorkerTasks=new Set,verbosity=getVerbosityLevel(),{docId,apiVersion}=docParams;if("5.3.93"!==apiVersion)throw new Error('The API version "'.concat(apiVersion,'" does not match ')+'the Worker version "'.concat("5.3.93",'".'));var prop,_prop,buildMsg=(type,prop)=>"The `".concat(type,".prototype` contains unexpected enumerable property ")+'"'.concat(prop,'", thus breaking e.g. `for...in` iteration of ').concat(type,"s.");for(prop in{})throw new Error(buildMsg("Object",prop));for(_prop in[])throw new Error(buildMsg("Array",_prop));var apiVersion=docId+"_worker",handler=new MessageHandler(apiVersion,docId,port);function ensureNotTerminated(){if(terminated)throw new Error("Worker was terminated")}function startWorkerTask(task){WorkerTasks.add(task)}function finishWorkerTask(task){task.finish(),WorkerTasks.delete(task)}async function loadDocument(recoveryMode){await pdfManager.ensureDoc("checkHeader"),await pdfManager.ensureDoc("parseStartXRef"),await pdfManager.ensureDoc("parse",[recoveryMode]),await pdfManager.ensureDoc("checkFirstPage",[recoveryMode]),await pdfManager.ensureDoc("checkLastPage",[recoveryMode]);var recoveryMode=await pdfManager.ensureDoc("isPureXfa"),[task,fingerprints]=(recoveryMode&&(startWorkerTask(task=new WorkerTask("loadXfaResources")),await pdfManager.ensureDoc("loadXfaResources",[handler,task]),finishWorkerTask(task)),await Promise.all([pdfManager.ensureDoc("numPages"),pdfManager.ensureDoc("fingerprints")]));return{numPages:task,fingerprints:fingerprints,htmlForXfa:recoveryMode?await pdfManager.ensureDoc("htmlForXfa"):null}}function setupDoc(data){function onSuccess(doc){ensureNotTerminated(),handler.send("GetDoc",{pdfInfo:doc})}function onFailure(ex){var task;ensureNotTerminated(),ex instanceof PasswordException?(startWorkerTask(task=new WorkerTask("PasswordException: response ".concat(ex.code))),handler.sendWithPromise("PasswordRequest",ex).then(function(_ref88){_ref88=_ref88.password;finishWorkerTask(task),pdfManager.updatePassword(_ref88),pdfManagerReady()}).catch(function(){finishWorkerTask(task),handler.send("DocException",ex)})):handler.send("DocException",wrapReason(ex))}function pdfManagerReady(){ensureNotTerminated(),loadDocument(!1).then(onSuccess,function(reason){ensureNotTerminated(),reason instanceof XRefParseException?pdfManager.requestLoadedStream().then(function(){ensureNotTerminated(),loadDocument(!0).then(onSuccess,onFailure)}):onFailure(reason)})}ensureNotTerminated(),async function(_ref86){var pdfStream,fullRequest,pdfManagerCapability,newPdfManager,cachedChunks,loaded,{data:_ref86,password,disableAutoFetch,rangeChunkSize,length,docBaseUrl,enableXfa,evaluatorOptions}=_ref86,pdfManagerArgs={source:null,disableAutoFetch:disableAutoFetch,docBaseUrl:docBaseUrl,docId:docId,enableXfa:enableXfa,evaluatorOptions:evaluatorOptions,handler:handler,length:length,password:password,rangeChunkSize:rangeChunkSize};return _ref86?(pdfManagerArgs.source=_ref86,new LocalPdfManager(pdfManagerArgs)):(pdfStream=new PDFWorkerStream(handler),fullRequest=pdfStream.getFullReader(),pdfManagerCapability=Promise.withResolvers(),cachedChunks=[],loaded=0,fullRequest.headersReady.then(function(){if(fullRequest.isRangeSupported){pdfManagerArgs.source=pdfStream,pdfManagerArgs.length=fullRequest.contentLength,pdfManagerArgs.disableAutoFetch||(pdfManagerArgs.disableAutoFetch=fullRequest.isStreamingSupported),newPdfManager=new NetworkPdfManager(pdfManagerArgs);for(var chunk of cachedChunks)newPdfManager.sendProgressiveData(chunk);cachedChunks=[],pdfManagerCapability.resolve(newPdfManager),cancelXHRs=null}}).catch(function(reason){pdfManagerCapability.reject(reason),cancelXHRs=null}),new Promise(function(resolve,reject){var readChunk=function(_ref87){var pdfFile,{value:_ref87,done}=_ref87;try{ensureNotTerminated(),done?(newPdfManager||(pdfFile=arrayBuffersToBytes(cachedChunks),cachedChunks=[],length&&pdfFile.length!==length&&warn("reported HTTP length is different from actual"),pdfManagerArgs.source=pdfFile,newPdfManager=new LocalPdfManager(pdfManagerArgs),pdfManagerCapability.resolve(newPdfManager)),cancelXHRs=null):(loaded+=_ref87.byteLength,fullRequest.isStreamingSupported||handler.send("DocProgress",{loaded:loaded,total:Math.max(loaded,fullRequest.contentLength||0)}),newPdfManager?newPdfManager.sendProgressiveData(_ref87):cachedChunks.push(_ref87),fullRequest.read().then(readChunk,reject))}catch(e){reject(e)}};fullRequest.read().then(readChunk,reject)}).catch(function(e){pdfManagerCapability.reject(e),cancelXHRs=null}),cancelXHRs=reason=>{pdfStream.cancelAllRequests(reason)},pdfManagerCapability.promise)}(data).then(function(newPdfManager){if(terminated)throw newPdfManager.terminate(new AbortException("Worker was terminated.")),new Error("Worker was terminated");(pdfManager=newPdfManager).requestLoadedStream(!0).then(stream=>{handler.send("DataLoaded",{length:stream.bytes.byteLength})})}).then(pdfManagerReady,onFailure)}return handler.on("GetPage",function(data){return pdfManager.getPage(data.pageIndex).then(function(page){return Promise.all([pdfManager.ensure(page,"rotate"),pdfManager.ensure(page,"ref"),pdfManager.ensure(page,"userUnit"),pdfManager.ensure(page,"view")]).then(function(_ref89){var[_ref89,ref,userUnit,view]=_ref89;return{rotate:_ref89,ref:ref,refStr:null!=(_ref89=null==ref?void 0:ref.toString())?_ref89:null,userUnit:userUnit,view:view}})})}),handler.on("GetPageIndex",function(data){data=Ref.get(data.num,data.gen);return pdfManager.ensureCatalog("getPageIndex",[data])}),handler.on("GetDestinations",function(data){return pdfManager.ensureCatalog("destinations")}),handler.on("GetDestination",function(data){return pdfManager.ensureCatalog("getDestination",[data.id])}),handler.on("GetPageLabels",function(data){return pdfManager.ensureCatalog("pageLabels")}),handler.on("GetPageLayout",function(data){return pdfManager.ensureCatalog("pageLayout")}),handler.on("GetPageMode",function(data){return pdfManager.ensureCatalog("pageMode")}),handler.on("GetViewerPreferences",function(data){return pdfManager.ensureCatalog("viewerPreferences")}),handler.on("GetOpenAction",function(data){return pdfManager.ensureCatalog("openAction")}),handler.on("GetAttachments",function(data){return pdfManager.ensureCatalog("attachments")}),handler.on("GetDocJSActions",function(data){return pdfManager.ensureCatalog("jsActions")}),handler.on("GetPageJSActions",function(_ref90){_ref90=_ref90.pageIndex;return pdfManager.getPage(_ref90).then(page=>pdfManager.ensure(page,"jsActions"))}),handler.on("GetOutline",function(data){return pdfManager.ensureCatalog("documentOutline")}),handler.on("GetOptionalContentConfig",function(data){return pdfManager.ensureCatalog("optionalContentConfig")}),handler.on("GetPermissions",function(data){return pdfManager.ensureCatalog("permissions")}),handler.on("GetMetadata",function(data){return Promise.all([pdfManager.ensureDoc("documentInfo"),pdfManager.ensureCatalog("metadata")])}),handler.on("GetMarkInfo",function(data){return pdfManager.ensureCatalog("markInfo")}),handler.on("GetData",function(data){return pdfManager.requestLoadedStream().then(stream=>stream.bytes)}),handler.on("GetAnnotations",function(_ref91){var{pageIndex,intent}=_ref91;return pdfManager.getPage(pageIndex).then(function(page){var task=new WorkerTask("GetAnnotations: page ".concat(pageIndex));return startWorkerTask(task),page.getAnnotationsData(handler,task,intent).then(data=>(finishWorkerTask(task),data),reason=>{throw finishWorkerTask(task),reason})})}),handler.on("GetFieldObjects",function(data){return pdfManager.ensureDoc("fieldObjects").then(fieldObjects=>(null==fieldObjects?void 0:fieldObjects.allFields)||null)}),handler.on("HasJSActions",function(data){return pdfManager.ensureDoc("hasJSActions")}),handler.on("GetCalculationOrderIds",function(data){return pdfManager.ensureDoc("calculationOrderIds")}),handler.on("SaveDocument",async function(_ref92){var structTreeRoot,{isPureXfa:_ref92,numPages,annotationStorage,filename}=_ref92,globalPromises=[pdfManager.requestLoadedStream(),pdfManager.ensureCatalog("acroForm"),pdfManager.ensureCatalog("acroFormRef"),pdfManager.ensureDoc("startXRef"),pdfManager.ensureDoc("xref"),pdfManager.ensureDoc("linearization"),pdfManager.ensureCatalog("structTreeRoot")],changes=new RefSetCache,promises=[],newAnnotationsByPage=_ref92?null:getNewAnnotationsMap(annotationStorage),[globalPromises,acroForm,acroFormRef,startXRef,xref,linearization,_structTreeRoot]=await Promise.all(globalPromises),catalogRef=xref.trailer.getRaw("Root")||null;if(newAnnotationsByPage){_structTreeRoot?await _structTreeRoot.canUpdateStructTree({pdfManager:pdfManager,newAnnotationsByPage:newAnnotationsByPage})&&(structTreeRoot=_structTreeRoot):await StructTreeRoot.canCreateStructureTree({catalogRef:catalogRef,pdfManager:pdfManager,newAnnotationsByPage:newAnnotationsByPage})&&(structTreeRoot=null);var pageIndex,annotations,imagePromises=AnnotationFactory.generateImages(annotationStorage.values(),xref,pdfManager.evaluatorOptions.isOffscreenCanvasSupported),newAnnotationPromises=void 0===structTreeRoot?promises:[];for([pageIndex,annotations]of newAnnotationsByPage)await async function(pageIndex,annotations){newAnnotationPromises.push(pdfManager.getPage(pageIndex).then(page=>{var task=new WorkerTask("Save (editor): page ".concat(pageIndex));return startWorkerTask(task),page.saveNewAnnotations(handler,task,annotations,imagePromises,changes).finally(function(){finishWorkerTask(task)})}))}(pageIndex,annotations);null===structTreeRoot?promises.push(Promise.all(newAnnotationPromises).then(async()=>{await StructTreeRoot.createStructureTree({newAnnotationsByPage:newAnnotationsByPage,xref:xref,catalogRef:catalogRef,pdfManager:pdfManager,changes:changes})})):structTreeRoot&&promises.push(Promise.all(newAnnotationPromises).then(async()=>{await structTreeRoot.updateStructureTree({newAnnotationsByPage:newAnnotationsByPage,pdfManager:pdfManager,changes:changes})}))}if(_ref92)promises.push(pdfManager.ensureDoc("serializeXfaData",[annotationStorage]));else for(var _pageIndex3=0;_pageIndex3ref.needAppearances),xfa=acroForm instanceof Dict&&acroForm.get("XFA")||null,xfaDatasetsRef=null,hasXfaDatasetsEntry=!1;if(Array.isArray(xfa)){for(var i=0,ii=xfa.length;i{xref.resetNewTemporaryRef()})}),handler.on("GetOperatorList",function(data,sink){var pageIndex=data.pageIndex;pdfManager.getPage(pageIndex).then(function(page){var task=new WorkerTask("GetOperatorList: page ".concat(pageIndex)),start=(startWorkerTask(task),verbosity>=VerbosityLevel.INFOS?Date.now():0);page.getOperatorList({handler:handler,sink:sink,task:task,intent:data.intent,cacheKey:data.cacheKey,annotationStorage:data.annotationStorage,modifiedIds:data.modifiedIds}).then(function(operatorListInfo){finishWorkerTask(task),start&&info("page=".concat(pageIndex+1," - getOperatorList: time=")+"".concat(Date.now()-start,"ms, len=").concat(operatorListInfo.length)),sink.close()},function(reason){finishWorkerTask(task),task.terminated||sink.error(reason)})})}),handler.on("GetTextContent",function(data,sink){var{pageIndex,includeMarkedContent,disableNormalization}=data;pdfManager.getPage(pageIndex).then(function(page){var task=new WorkerTask("GetTextContent: page "+pageIndex),start=(startWorkerTask(task),verbosity>=VerbosityLevel.INFOS?Date.now():0);page.extractTextContent({handler:handler,task:task,sink:sink,includeMarkedContent:includeMarkedContent,disableNormalization:disableNormalization}).then(function(){finishWorkerTask(task),start&&info("page=".concat(pageIndex+1," - getTextContent: time=")+"".concat(Date.now()-start,"ms")),sink.close()},function(reason){finishWorkerTask(task),task.terminated||sink.error(reason)})})}),handler.on("GetStructTree",function(data){return pdfManager.getPage(data.pageIndex).then(page=>pdfManager.ensure(page,"getStructTree"))}),handler.on("FontFallback",function(data){return pdfManager.fontFallback(data.id,handler)}),handler.on("Cleanup",function(data){return pdfManager.cleanup(!0)}),handler.on("Terminate",function(data){terminated=!0;var cleanupPromise,task,waitOn=[];pdfManager?(pdfManager.terminate(new AbortException("Worker was terminated.")),cleanupPromise=pdfManager.cleanup(),waitOn.push(cleanupPromise),pdfManager=null):clearGlobalCaches(),null!=cancelXHRs&&cancelXHRs(new AbortException("Worker was terminated."));for(task of WorkerTasks)waitOn.push(task.finished),task.terminate();return Promise.all(waitOn).then(function(){handler.destroy(),handler=null})}),handler.on("Ready",function(data){setupDoc(docParams),docParams=null}),apiVersion}static initializeFromPort(port){var handler=new MessageHandler("worker","main",port);this.setup(handler,port),handler.send("ready",null)}}_WorkerMessageHandler=WorkerMessageHandler,"undefined"==typeof window&&!isNodeJS&&"undefined"!=typeof self&&"function"==typeof self.postMessage&&"onmessage"in self&&_WorkerMessageHandler.initializeFromPort(self),globalThis.pdfjsWorker={WorkerMessageHandler:WorkerMessageHandler};export{WorkerMessageHandler}; \ No newline at end of file diff --git a/thirdparty/zipjs/zip.js b/thirdparty/zipjs/zip.js new file mode 100644 index 0000000..038d046 --- /dev/null +++ b/thirdparty/zipjs/zip.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function _createForOfIteratorHelper(r,e){var o,a,u,n,t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(t)return u=!(a=!0),{s:function(){t=t.call(r)},n:function(){var r=t.next();return a=r.done,r},e:function(r){u=!0,o=r},f:function(){try{a||null==t.return||t.return()}finally{if(u)throw o}}};if(Array.isArray(r)||(t=function(r,a){{var t;if(r)return"string"==typeof r?_arrayLikeToArray(r,a):"Map"===(t="Object"===(t={}.toString.call(r).slice(8,-1))&&r.constructor?r.constructor.name:t)||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r))||e&&r&&"number"==typeof r.length)return t&&(r=t),n=0,{s:e=function(){},n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e>>1^3988292384:t>>>=1;table[i]=t}var Crc32=function(){return babelHelpers.createClass(function Crc32(crc){babelHelpers.classCallCheck(this,Crc32),this.crc=crc||-1},[{key:"append",value:function(data){for(var crc=0|this.crc,offset=0,length=0|data.length;offset>>8^table[255&(crc^data[offset])];this.crc=crc}},{key:"get",value:function(){return~this.crc}}])}(),Crc32Stream=function(_TransformStream2){function Crc32Stream(){babelHelpers.classCallCheck(this,Crc32Stream);var crc32=new Crc32,_this=_callSuper(this,Crc32Stream,[{transform:function(chunk,controller){crc32.append(chunk),controller.enqueue(chunk)},flush:function(){var value=new Uint8Array(4);new DataView(value.buffer).setUint32(0,crc32.get()),stream.value=value}}]),stream=_this;return _this}return babelHelpers.inherits(Crc32Stream,_TransformStream2),babelHelpers.createClass(Crc32Stream)}(TransformStream);function encodeText(value){if(typeof TextEncoder!=UNDEFINED_TYPE)return(new TextEncoder).encode(value);value=unescape(encodeURIComponent(value));for(var result=new Uint8Array(value.length),_i=0;_i>len-1,1))),a},partial:function(len,x,_end){return 32===len?x:(_end?0|x:x<<32-len)+1099511627776*len},getPartial:function(x){return Math.round(x/1099511627776)||32},_shiftRight:function(a,shift,carry,out){for(void 0===out&&(out=[]);32<=shift;shift-=32)out.push(carry),carry=0;if(0===shift)return out.concat(a);for(var _i2=0;_i2>>shift),carry=a[_i2]<<32-shift;var last2=a.length?a[a.length-1]:0,last2=bitArray.getPartial(last2);return out.push(bitArray.partial(shift+last2&31,32>>24,tmp<<=8;return out},toBits:function(bytes){for(var out=[],tmp=0,i=0;i>>32-n}},{key:"_block",value:function(words){for(var h=this._h,w=_Array(80),_j=0;_j<16;_j++)w[_j]=words[_j];for(var a=h[0],b=h[1],c=h[2],d=h[3],e=h[4],_t=0;_t<=79;_t++){16<=_t&&(w[_t]=this._S(1,w[_t-3]^w[_t-8]^w[_t-14]^w[_t-16]));var tmp=this._S(5,a)+this._f(_t,b,c,d)+e+w[_t]+this._key[Math.floor(_t/20)]|0,e=d,d=c,c=this._S(30,b),b=a,a=tmp}h[0]=h[0]+a|0,h[1]=h[1]+b|0,h[2]=h[2]+c|0,h[3]=h[3]+d|0,h[4]=h[4]+e|0}}])}(),{}),random=(_ref.aes=function(){return babelHelpers.createClass(function _class4(key){babelHelpers.classCallCheck(this,_class4);this._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],this._tables[0][0][0]||this._precompute();var i,encKey,decKey,sbox=this._tables[0][4],decTable=this._tables[1],keyLen=key.length,rcon=1;if(4!==keyLen&&6!==keyLen&&8!==keyLen)throw new Error("invalid aes key size");for(this._key=[encKey=key.slice(0),decKey=[]],i=keyLen;i<4*keyLen+28;i++){var tmp=encKey[i-1];(i%keyLen==0||8===keyLen&&i%keyLen==4)&&(tmp=sbox[tmp>>>24]<<24^sbox[tmp>>16&255]<<16^sbox[tmp>>8&255]<<8^sbox[255&tmp],i%keyLen==0)&&(tmp=tmp<<8^tmp>>>24^rcon<<24,rcon=rcon<<1^283*(rcon>>7)),encKey[i]=encKey[i-keyLen]^tmp}for(var _j2=0;i;_j2++,i--){var _tmp=encKey[3&_j2?i:i-4];decKey[_j2]=i<=4||_j2<4?_tmp:decTable[0][sbox[_tmp>>>24]]^decTable[1][sbox[_tmp>>16&255]]^decTable[2][sbox[_tmp>>8&255]]^decTable[3][sbox[255&_tmp]]}},[{key:"encrypt",value:function(data){return this._crypt(data,0)}},{key:"decrypt",value:function(data){return this._crypt(data,1)}},{key:"_precompute",value:function(){for(var xInv,x2,x4,encTable=this._tables[0],decTable=this._tables[1],sbox=encTable[4],sboxInv=decTable[4],d=[],th=[],_i6=0;_i6<256;_i6++)th[(d[_i6]=_i6<<1^283*(_i6>>7))^_i6]=_i6;for(var x=xInv=0;!sbox[x];x^=x2||1,xInv=th[xInv]||1){var s=xInv^xInv<<1^xInv<<2^xInv<<3^xInv<<4;sbox[x]=s=s>>8^255&s^99;for(var tDec=16843009*d[x4=d[x2=d[sboxInv[s]=x]]]^65537*x4^257*x2^16843008*x,tEnc=257*d[s]^16843008*s,_i7=0;_i7<4;_i7++)encTable[_i7][x]=tEnc=tEnc<<24^tEnc>>>8,decTable[_i7][s]=tDec=tDec<<24^tDec>>>8}for(var _i8=0;_i8<5;_i8++)encTable[_i8]=encTable[_i8].slice(0),decTable[_i8]=decTable[_i8].slice(0)}},{key:"_crypt",value:function(input,dir){if(4!==input.length)throw new Error("invalid aes block size");for(var a2,b2,c2,key=this._key[dir],nInnerRounds=key.length/4-2,out=[0,0,0,0],table=this._tables[dir],t0=table[0],t1=table[1],t2=table[2],t3=table[3],sbox=table[4],a=input[0]^key[0],b=input[dir?3:1]^key[1],c=input[2]^key[2],d=input[dir?1:3]^key[3],kIndex=4,_i9=0;_i9>>24]^t1[b>>16&255]^t2[c>>8&255]^t3[255&d]^key[kIndex],b2=t0[b>>>24]^t1[c>>16&255]^t2[d>>8&255]^t3[255&a]^key[kIndex+1],c2=t0[c>>>24]^t1[d>>16&255]^t2[a>>8&255]^t3[255&b]^key[kIndex+2],d=t0[d>>>24]^t1[a>>16&255]^t2[b>>8&255]^t3[255&c]^key[kIndex+3],kIndex+=4,a=a2,b=b2,c=c2;for(var _i0=0;_i0<4;_i0++)out[dir?3&-_i0:_i0]=sbox[a>>>24]<<24^sbox[b>>16&255]<<16^sbox[c>>8&255]<<8^sbox[255&d]^key[kIndex++],a2=a,a=b,b=c,c=d,d=a2;return out}}])}(),{getRandomValues:function(typedArray){for(var words=new Uint32Array(typedArray.buffer),_i1=0;_i1>16)&mask)<<16)+(m_w=18e3*(65535&m_w)+(m_w>>16)&mask)&mask)/4294967296+.5)*(.5>24&255)?(b2=word>>8&255,b3=255&word,255===(b1=word>>16&255)?(b1=0,255===b2?(b2=0,255===b3?b3=0:++b3):++b2):++b1,word=0,word=(word+=b1<<16)+(b2<<8)+b3):word+=1<<24,word}},{key:"incCounter",value:function(counter){0===(counter[0]=this.incWord(counter[0]))&&(counter[1]=this.incWord(counter[1]))}},{key:"calculate",value:function(prf,data,iv){var l;if(!(l=data.length))return[];for(var bl=bitArray.bitLength(data),_i10=0;_i10>5)<<2,arrayBuffer=new ArrayBuffer(byteLength),out=new DataView(arrayBuffer),outLength=0,b=bitArray;for(salt=codec.bytes.toBits(salt),k=1;outLength<(byteLength||1);k++){for(u=ui=prf.encrypt(b.concat(salt,[k])),i=1;ibs&&(key=(new Hash).update(key).finalize());for(var _i11=0;_i11inputArray.length&&(array=inputArray,(inputArray=new Uint8Array(length)).set(array,0))}return inputArray}(output,inputLength-inputLength%BLOCK_LENGTH)),offset=0;offset<=inputLength-BLOCK_LENGTH;offset+=BLOCK_LENGTH){var inputChunk=toBits(codecBytes,subarray(input,offset,offset+BLOCK_LENGTH)),inputChunk=(verifySignature&&hmac.update(inputChunk),ctr.update(inputChunk));verifySignature||hmac.update(inputChunk),output.set(fromBits(codecBytes,inputChunk),offset+paddingStart)}return aesCrypto.pending=subarray(input,offset),output}async function createKeys$1(aesCrypto,strength,password,salt){aesCrypto.password=null;var password=await async function(format,password,algorithm,extractable,keyUsages){{if(!IMPORT_KEY_SUPPORTED)return misc.importKey(password);try{return await subtle.importKey(format,password,algorithm,extractable,keyUsages)}catch(_){return IMPORT_KEY_SUPPORTED=!1,misc.importKey(password)}}}(RAW_FORMAT,password,BASE_KEY_ALGORITHM,!1,DERIVED_BITS_USAGE),salt=await async function(algorithm,baseKey,length){{if(!DERIVE_BITS_SUPPORTED)return misc.pbkdf2(baseKey,algorithm.salt,DERIVED_BITS_ALGORITHM.iterations,length);try{return await subtle.deriveBits(algorithm,baseKey,length)}catch(_){return DERIVE_BITS_SUPPORTED=!1,misc.pbkdf2(baseKey,algorithm.salt,DERIVED_BITS_ALGORITHM.iterations,length)}}}(_Object.assign({salt:salt},DERIVED_BITS_ALGORITHM),password,8*(2*KEY_LENGTH[strength]+2)),password=new Uint8Array(salt),salt=toBits(codecBytes,subarray(password,0,KEY_LENGTH[strength])),authentication=toBits(codecBytes,subarray(password,KEY_LENGTH[strength],2*KEY_LENGTH[strength])),password=subarray(password,2*KEY_LENGTH[strength]);return _Object.assign(aesCrypto,{keys:{key:salt,authentication:authentication,passwordVerification:password},ctr:new CtrGladman(new Aes(salt),_Array.from(COUNTER_DEFAULT_VALUE)),hmac:new HmacSha1(authentication)}),password}function encodePassword(password,rawPassword){return rawPassword===UNDEFINED_VALUE?encodeText(password):rawPassword}function concat(leftArray,rightArray){var array=leftArray;return leftArray.length+rightArray.length&&((array=new Uint8Array(leftArray.length+rightArray.length)).set(leftArray,0),array.set(rightArray,leftArray.length)),array}function subarray(array,begin,end){return array.subarray(begin,end)}function fromBits(codecBytes,chunk){return codecBytes.fromBits(chunk)}function toBits(codecBytes,chunk){return codecBytes.toBits(chunk)}var ZipCryptoDecryptionStream=function(_TransformStream5){function ZipCryptoDecryptionStream(_ref4){var password=_ref4.password,passwordVerification=_ref4.passwordVerification,checkPasswordOnly=_ref4.checkPasswordOnly;return babelHelpers.classCallCheck(this,ZipCryptoDecryptionStream),_callSuper(this,ZipCryptoDecryptionStream,[{start:function(){_Object.assign(this,{password:password,passwordVerification:passwordVerification}),createKeys(this,password)},transform:function(chunk,controller){if(this.password){var decryptedHeader=decrypt(this,chunk.subarray(0,12));if(this.password=null,decryptedHeader[11]!=this.passwordVerification)throw new Error(ERR_INVALID_PASSWORD);chunk=chunk.subarray(12)}checkPasswordOnly?controller.error(new Error("zipjs-abort-check-password")):controller.enqueue(decrypt(this,chunk))}}])}return babelHelpers.inherits(ZipCryptoDecryptionStream,_TransformStream5),babelHelpers.createClass(ZipCryptoDecryptionStream)}(TransformStream),ZipCryptoEncryptionStream=function(_TransformStream6){function ZipCryptoEncryptionStream(_ref5){var password=_ref5.password,passwordVerification=_ref5.passwordVerification;return babelHelpers.classCallCheck(this,ZipCryptoEncryptionStream),_callSuper(this,ZipCryptoEncryptionStream,[{start:function(){_Object.assign(this,{password:password,passwordVerification:passwordVerification}),createKeys(this,password)},transform:function(chunk,controller){var output,header=this.password?(this.password=null,(header=getRandomValues(new Uint8Array(12)))[11]=this.passwordVerification,(output=new Uint8Array(chunk.length+header.length)).set(encrypt(this,header),0),12):(output=new Uint8Array(chunk.length),0);output.set(encrypt(this,chunk),header),controller.enqueue(output)}}])}return babelHelpers.inherits(ZipCryptoEncryptionStream,_TransformStream6),babelHelpers.createClass(ZipCryptoEncryptionStream)}(TransformStream);function decrypt(target,input){for(var output=new Uint8Array(input.length),index=0;index>>24]),byte=~target.crcKey2.get(),target.keys=[_target$keys,key1,byte]}function getByte(target){target=2|target.keys[2];return Math.imul(target,1^target)>>>8&255}function getInt32(number){return 4294967295&number}var COMPRESSION_FORMAT="deflate-raw",DeflateStream=function(_TransformStream7){function DeflateStream(options,_ref6){var _this5,crc32Stream,encryptionStream,chunkSize=_ref6.chunkSize,CompressionStream=_ref6.CompressionStream,_ref6=_ref6.CompressionStreamNative,compressed=(babelHelpers.classCallCheck(this,DeflateStream),_this5=_callSuper(this,DeflateStream,[{}]),options.compressed),encrypted=options.encrypted,useCompressionStream=options.useCompressionStream,zipCrypto=options.zipCrypto,signed=options.signed,level=options.level,stream=_this5,readable=filterEmptyChunks(_superPropGet(DeflateStream,"readable",_this5,1));return encrypted&&!zipCrypto||!signed||(readable=pipeThrough(readable,crc32Stream=new Crc32Stream)),compressed&&(readable=pipeThroughCommpressionStream(readable,useCompressionStream,{level:level,chunkSize:chunkSize},_ref6,CompressionStream)),encrypted&&(readable=pipeThrough(readable,zipCrypto?new ZipCryptoEncryptionStream(options):encryptionStream=new AESEncryptionStream(options))),setReadable(stream,readable,function(){var signature;encrypted&&!zipCrypto&&(signature=encryptionStream.signature),encrypted&&!zipCrypto||!signed||(signature=new DataView(crc32Stream.value.buffer).getUint32(0)),stream.signature=signature}),_this5}return babelHelpers.inherits(DeflateStream,_TransformStream7),babelHelpers.createClass(DeflateStream)}(TransformStream),InflateStream=function(_TransformStream8){function InflateStream(options,_ref7){var _this6,crc32Stream,chunkSize=_ref7.chunkSize,DecompressionStream=_ref7.DecompressionStream,_ref7=_ref7.DecompressionStreamNative,zipCrypto=(babelHelpers.classCallCheck(this,InflateStream),_this6=_callSuper(this,InflateStream,[{}]),options.zipCrypto),encrypted=options.encrypted,signed=options.signed,signature=options.signature,compressed=options.compressed,useCompressionStream=options.useCompressionStream,readable=filterEmptyChunks(_superPropGet(InflateStream,"readable",_this6,1));return encrypted&&(readable=pipeThrough(readable,zipCrypto?new ZipCryptoDecryptionStream(options):new AESDecryptionStream(options))),compressed&&(readable=pipeThroughCommpressionStream(readable,useCompressionStream,{chunkSize:chunkSize},_ref7,DecompressionStream)),setReadable(_this6,readable=encrypted&&!zipCrypto||!signed?readable:pipeThrough(readable,crc32Stream=new Crc32Stream),function(){if((!encrypted||zipCrypto)&&signed){var dataViewSignature=new DataView(crc32Stream.value.buffer);if(signature!=dataViewSignature.getUint32(0,!1))throw new Error("Invalid signature")}}),_this6}return babelHelpers.inherits(InflateStream,_TransformStream8),babelHelpers.createClass(InflateStream)}(TransformStream);function filterEmptyChunks(readable){return pipeThrough(readable,new TransformStream({transform:function(chunk,controller){chunk&&chunk.length&&controller.enqueue(chunk)}}))}function setReadable(stream,readable,flush){readable=pipeThrough(readable,new TransformStream({flush:flush})),_Object.defineProperty(stream,"readable",{get:function(){return readable}})}function pipeThroughCommpressionStream(readable,useCompressionStream,options,CodecStreamNative,CodecStream){try{readable=pipeThrough(readable,new(useCompressionStream&&CodecStreamNative?CodecStreamNative:CodecStream)(COMPRESSION_FORMAT,options))}catch(_){if(!useCompressionStream)return readable;try{readable=pipeThrough(readable,new CodecStream(COMPRESSION_FORMAT,options))}catch(_){}}return readable}function pipeThrough(readable,transformStream){return readable.pipeThrough(transformStream)}var MESSAGE_EVENT_TYPE="message",MESSAGE_START="start",MESSAGE_PULL="pull",MESSAGE_DATA="data",MESSAGE_ACK_DATA="ack",MESSAGE_CLOSE="close",CODEC_DEFLATE="deflate",CodecStream=function(_TransformStream9){function CodecStream(options,config){babelHelpers.classCallCheck(this,CodecStream);var _this7,Stream,codec=_this7=_callSuper(this,CodecStream,[{}]),codecType=options.codecType,inputSize=(codecType.startsWith(CODEC_DEFLATE)?Stream=DeflateStream:codecType.startsWith("inflate")&&(Stream=InflateStream),codec.outputSize=0),stream=new Stream(options,config),readable=_superPropGet(CodecStream,"readable",_this7,1),inputSizeStream=new TransformStream({transform:function(chunk,controller){chunk&&chunk.length&&(inputSize+=chunk.length,controller.enqueue(chunk))},flush:function(){_Object.assign(codec,{inputSize:inputSize})}}),outputSizeStream=new TransformStream({transform:function(chunk,controller){chunk&&chunk.length&&(controller.enqueue(chunk),codec.outputSize+=chunk.length)},flush:function(){var signature=stream.signature;_Object.assign(codec,{signature:signature,inputSize:inputSize})}});return _Object.defineProperty(codec,"readable",{get:function(){return readable.pipeThrough(inputSizeStream).pipeThrough(stream).pipeThrough(outputSizeStream)}}),_this7}return babelHelpers.inherits(CodecStream,_TransformStream9),babelHelpers.createClass(CodecStream)}(TransformStream),ChunkStream=function(_TransformStream0){function ChunkStream(chunkSize){var pendingChunk;return babelHelpers.classCallCheck(this,ChunkStream),_callSuper(this,ChunkStream,[{transform:function transform(chunk,controller){{var newChunk;pendingChunk&&((newChunk=new Uint8Array(pendingChunk.length+chunk.length)).set(pendingChunk),newChunk.set(chunk,pendingChunk.length),chunk=newChunk,pendingChunk=null)}chunk.length>chunkSize?(controller.enqueue(chunk.slice(0,chunkSize)),transform(chunk.slice(chunkSize),controller)):pendingChunk=chunk},flush:function(controller){pendingChunk&&pendingChunk.length&&controller.enqueue(pendingChunk)}}])}return babelHelpers.inherits(ChunkStream,_TransformStream0),babelHelpers.createClass(ChunkStream)}(TransformStream),WEB_WORKERS_SUPPORTED=typeof Worker!=UNDEFINED_TYPE,CodecWorker=babelHelpers.createClass(function CodecWorker(workerData,_ref8,_ref9,onTaskFinished){var readable=_ref8.readable,_ref8=_ref8.writable,options=_ref9.options,config=_ref9.config,streamOptions=_ref9.streamOptions,useWebWorkers=_ref9.useWebWorkers,transferStreams=_ref9.transferStreams,_ref9=_ref9.scripts,signal=(babelHelpers.classCallCheck(this,CodecWorker),streamOptions.signal);return _Object.assign(workerData,{busy:!0,readable:readable.pipeThrough(new ChunkStream(config.chunkSize)).pipeThrough(new ProgressWatcherStream(readable,streamOptions),{signal:signal}),writable:_ref8,options:_Object.assign({},options),scripts:_ref9,transferStreams:transferStreams,terminate:function(){return new Promise(function(resolve){var worker=workerData.worker,busy=workerData.busy;worker?(busy?workerData.resolveTerminated=resolve:(worker.terminate(),resolve()),workerData.interface=null):resolve()})},onTaskFinished:function(){var resolveTerminated=workerData.resolveTerminated;resolveTerminated&&(workerData.resolveTerminated=null,workerData.terminated=!0,workerData.worker.terminate(),resolveTerminated()),workerData.busy=!1,onTaskFinished(workerData)}}),(useWebWorkers&&WEB_WORKERS_SUPPORTED?function(workerData,config){var worker,baseURL=config.baseURL,chunkSize=config.chunkSize;if(!workerData.interface){try{worker=function(url,baseURL,workerData){var scriptUrl,worker,workerOptions={type:"module"};typeof url==FUNCTION_TYPE&&(url=url());try{scriptUrl=new URL(url,baseURL)}catch(_){scriptUrl=url}if(classicWorkersSupported)try{worker=new Worker(scriptUrl)}catch(_){classicWorkersSupported=!1,worker=new Worker(scriptUrl,workerOptions)}else worker=new Worker(scriptUrl,workerOptions);return worker.addEventListener(MESSAGE_EVENT_TYPE,function(event){return async function(_ref11,workerData){var _ref11=_ref11.data,type=_ref11.type,value=_ref11.value,messageId=_ref11.messageId,result=_ref11.result,error=_ref11.error,_ref11=workerData.reader,writer=workerData.writer,resolveResult=workerData.resolveResult,rejectResult=workerData.rejectResult,onTaskFinished=workerData.onTaskFinished;try{var message,stack,code,name,outputSize,responseError,_await$reader$read,_value,done;error?(message=error.message,stack=error.stack,code=error.code,name=error.name,outputSize=error.outputSize,responseError=new Error(message),_Object.assign(responseError,{stack:stack,code:code,name:name,outputSize:outputSize}),close(responseError)):(type==MESSAGE_PULL&&(_await$reader$read=await _ref11.read(),_value=_await$reader$read.value,done=_await$reader$read.done,sendMessage({type:MESSAGE_DATA,value:_value,done:done,messageId:messageId},workerData)),type==MESSAGE_DATA&&(await writer.ready,await writer.write(new Uint8Array(value)),sendMessage({type:MESSAGE_ACK_DATA,messageId:messageId},workerData)),type==MESSAGE_CLOSE&&close(null,result))}catch(error){sendMessage({type:MESSAGE_CLOSE,messageId:messageId},workerData),close(error)}function close(error,result){error?rejectResult(error):resolveResult(result),writer&&writer.releaseLock(),onTaskFinished()}}(event,workerData)}),worker}(workerData.scripts[0],baseURL,workerData)}catch(_){return WEB_WORKERS_SUPPORTED=!1,createWorkerInterface(workerData,config)}_Object.assign(workerData,{worker:worker,interface:{run:function(){return async function(workerData,config){var resolveResult,rejectResult,result=new Promise(function(resolve,reject){resolveResult=resolve,rejectResult=reject}),readable=(_Object.assign(workerData,{reader:null,writer:null,resolveResult:resolveResult,rejectResult:rejectResult,result:result}),workerData.readable),options=workerData.options,scripts=workerData.scripts,_watchClosedStream=function(writableSource){var resolveStreamClosed,closed=new Promise(function(resolve){return resolveStreamClosed=resolve});return{writable:new WritableStream({write:async function(chunk){var writer=writableSource.getWriter();await writer.ready,await writer.write(chunk),writer.releaseLock()},close:function(){resolveStreamClosed()},abort:function(reason){return writableSource.getWriter().abort(reason)}}),closed:closed}}(workerData.writable),writable=_watchClosedStream.writable,_watchClosedStream=_watchClosedStream.closed,scripts=sendMessage({type:MESSAGE_START,scripts:scripts.slice(1),options:options,config:config,readable:readable,writable:writable},workerData);scripts||_Object.assign(workerData,{reader:readable.getReader(),writer:writable.getWriter()});options=await result;scripts||await writable.getWriter().close();return await _watchClosedStream,options}(workerData,{chunkSize:chunkSize})}}})}return workerData.interface}:createWorkerInterface)(workerData,config)}),ProgressWatcherStream=function(_TransformStream1){function ProgressWatcherStream(readableSource,_ref0){var onstart=_ref0.onstart,onprogress=_ref0.onprogress,size=_ref0.size,onend=_ref0.onend,chunkOffset=(babelHelpers.classCallCheck(this,ProgressWatcherStream),0);return _callSuper(this,ProgressWatcherStream,[{start:async function(){onstart&&await callHandler(onstart,size)},transform:async function(chunk,controller){chunkOffset+=chunk.length,onprogress&&await callHandler(onprogress,chunkOffset,size),controller.enqueue(chunk)},flush:async function(){readableSource.size=chunkOffset,onend&&await callHandler(onend,chunkOffset)}}])}return babelHelpers.inherits(ProgressWatcherStream,_TransformStream1),babelHelpers.createClass(ProgressWatcherStream)}(TransformStream);async function callHandler(handler){try{for(var _len=arguments.length,parameters=new _Array(1<_len?_len-1:0),_key=1;_key<_len;_key++)parameters[_key-1]=arguments[_key];await handler.apply(void 0,parameters)}catch(_){}}function createWorkerInterface(workerData,config){return{run:function(){return async function(_ref1,config){var codecStream,options=_ref1.options,readable=_ref1.readable,writable=_ref1.writable,_ref1=_ref1.onTaskFinished;try{codecStream=new CodecStream(options,config),await readable.pipeThrough(codecStream).pipeTo(writable,{preventClose:!0,preventAbort:!0});var _codecStream=codecStream,signature=_codecStream.signature,inputSize=_codecStream.inputSize,outputSize=_codecStream.outputSize;return{signature:signature,inputSize:inputSize,outputSize:outputSize}}catch(error){throw codecStream&&(error.outputSize=codecStream.outputSize),error}finally{_ref1()}}(workerData,config)}}}var classicWorkersSupported=!0,transferStreamsSupported=!0;function sendMessage(message,_ref10){var worker=_ref10.worker,writer=_ref10.writer,onTaskFinished=_ref10.onTaskFinished,_ref10=_ref10.transferStreams;try{var value=message.value,readable=message.readable,writable=message.writable,transferables=[];if(value&&(value.byteLengthlength&&(arrayBuffer=arrayBuffer.slice(offset,offsetEnd)),new Uint8Array(arrayBuffer)}}])}()),BlobWriter=_exports.BlobWriter=function(){function BlobWriter(contentType){babelHelpers.classCallCheck(this,BlobWriter);var _this11,writer=_this11=_callSuper(this,BlobWriter),transformStream=new TransformStream,headers=[];return contentType&&headers.push(["Content-Type",contentType]),_Object.defineProperty(writer,"writable",{get:function(){return transformStream.writable}}),writer.blob=new Response(transformStream.readable,{headers:headers}).blob(),_this11}return babelHelpers.inherits(BlobWriter,Stream),babelHelpers.createClass(BlobWriter,[{key:"getData",value:function(){return this.blob}}])}(),FetchReader=(_exports.TextReader=function(_BlobReader){function TextReader(text){return babelHelpers.classCallCheck(this,TextReader),_callSuper(this,TextReader,[new Blob([text],{type:"text/plain"})])}return babelHelpers.inherits(TextReader,_BlobReader),babelHelpers.createClass(TextReader)}(BlobReader),_exports.TextWriter=function(){function TextWriter(encoding){var _this12;return babelHelpers.classCallCheck(this,TextWriter),_this12=_callSuper(this,TextWriter,[encoding]),_Object.assign(_this12,{encoding:encoding,utf8:!encoding||"utf-8"==encoding.toLowerCase()}),_this12}return babelHelpers.inherits(TextWriter,BlobWriter),babelHelpers.createClass(TextWriter,[{key:"getData",value:async function(){var reader,encoding=this.encoding,utf8=this.utf8,blob=await _superPropGet(TextWriter,"getData",this,3)([]);return blob.text&&utf8?blob.text():(reader=new FileReader,new Promise(function(resolve,reject){_Object.assign(reader,{onload:function(_ref12){_ref12=_ref12.target;return resolve(_ref12.result)},onerror:function(){return reject(reader.error)}}),reader.readAsText(blob,encoding)}))}}])}(),function(){function FetchReader(url,options){var _this13;return babelHelpers.classCallCheck(this,FetchReader),createHttpReader(_this13=_callSuper(this,FetchReader),url,options),_this13}return babelHelpers.inherits(FetchReader,Reader),babelHelpers.createClass(FetchReader,[{key:"init",value:async function(){await initHttpReader(this,sendFetchRequest,getFetchRequestData),_superPropGet(FetchReader,"init",this,3)([])}},{key:"readUint8Array",value:function(index,length){return readUint8ArrayHttpReader(this,index,length,sendFetchRequest,getFetchRequestData)}}])}()),XHRReader=function(){function XHRReader(url,options){var _this14;return babelHelpers.classCallCheck(this,XHRReader),createHttpReader(_this14=_callSuper(this,XHRReader),url,options),_this14}return babelHelpers.inherits(XHRReader,Reader),babelHelpers.createClass(XHRReader,[{key:"init",value:async function(){await initHttpReader(this,sendXMLHttpRequest,getXMLHttpRequestData),_superPropGet(XHRReader,"init",this,3)([])}},{key:"readUint8Array",value:function(index,length){return readUint8ArrayHttpReader(this,index,length,sendXMLHttpRequest,getXMLHttpRequestData)}}])}();function createHttpReader(httpReader,url,options){var _options=options,preventHeadRequest=_options.preventHeadRequest,useRangeHeader=_options.useRangeHeader,forceRangeRequests=_options.forceRangeRequests,_options=_options.combineSizeEocd;delete(options=_Object.assign({},options)).preventHeadRequest,delete options.useRangeHeader,delete options.forceRangeRequests,delete options.combineSizeEocd,delete options.useXHR,_Object.assign(httpReader,{url:url,options:options,preventHeadRequest:preventHeadRequest,useRangeHeader:useRangeHeader,forceRangeRequests:forceRangeRequests,combineSizeEocd:_options})}async function initHttpReader(httpReader,sendRequest,getRequestData){var url=httpReader.url,preventHeadRequest=httpReader.preventHeadRequest,useRangeHeader=httpReader.useRangeHeader,forceRangeRequests=httpReader.forceRangeRequests,combineSizeEocd=httpReader.combineSizeEocd;if(function(url){var baseURL=config.baseURL,url=new URL(url,baseURL).protocol;return"http:"==url||"https:"==url}(url)&&(useRangeHeader||forceRangeRequests)&&(void 0===preventHeadRequest||preventHeadRequest)){url=await sendRequest(HTTP_METHOD_GET,httpReader,getRangeHeaders(httpReader,combineSizeEocd?-END_OF_CENTRAL_DIR_LENGTH:void 0));if(!forceRangeRequests&&url.headers.get(HTTP_HEADER_ACCEPT_RANGES)!=HTTP_RANGE_UNIT)throw new Error(ERR_HTTP_RANGE);combineSizeEocd&&(httpReader.eocdCache=new Uint8Array(await url.arrayBuffer()));var contentSize,useRangeHeader=url.headers.get(HTTP_HEADER_CONTENT_RANGE);(contentSize=useRangeHeader&&(preventHeadRequest=useRangeHeader.trim().split(/\s*\/\s*/)).length&&(forceRangeRequests=preventHeadRequest[1])&&"*"!=forceRangeRequests?Number(forceRangeRequests):contentSize)===UNDEFINED_VALUE?await getContentLength(httpReader,sendRequest,getRequestData):httpReader.size=contentSize}else await getContentLength(httpReader,sendRequest,getRequestData)}async function readUint8ArrayHttpReader(httpReader,index,length,sendRequest,getRequestData){var useRangeHeader=httpReader.useRangeHeader,forceRangeRequests=httpReader.forceRangeRequests,eocdCache=httpReader.eocdCache,size=httpReader.size,options=httpReader.options;if(useRangeHeader||forceRangeRequests){if(eocdCache&&index==size-END_OF_CENTRAL_DIR_LENGTH&&length==END_OF_CENTRAL_DIR_LENGTH)return eocdCache;useRangeHeader=await sendRequest(HTTP_METHOD_GET,httpReader,getRangeHeaders(httpReader,index,length));if(206!=useRangeHeader.status)throw new Error(ERR_HTTP_RANGE);return new Uint8Array(await useRangeHeader.arrayBuffer())}return httpReader.data||await getRequestData(httpReader,options),new Uint8Array(httpReader.data.subarray(index,index+length))}function getRangeHeaders(httpReader,argument_1,argument_2){var index=1this.array.length&&(previousArray=this.array,this.array=new Uint8Array(previousArray.length+array.length),this.array.set(previousArray)),this.array.set(array,this.offset),this.offset+=array.length}},{key:"getData",value:function(){return this.array}}])}(),_exports.SplitDataReader=function(){function SplitDataReader(readers){var _this17;return babelHelpers.classCallCheck(this,SplitDataReader),(_this17=_callSuper(this,SplitDataReader)).readers=readers,_this17}return babelHelpers.inherits(SplitDataReader,Reader),babelHelpers.createClass(SplitDataReader,[{key:"init",value:async function(){var reader=this,readers=reader.readers;reader.lastDiskNumber=0,reader.lastDiskOffset=0,await Promise.all(readers.map(async function(diskReader,indexDiskReader){await diskReader.init(),indexDiskReader!=readers.length-1&&(reader.lastDiskOffset+=diskReader.size),reader.size+=diskReader.size})),_superPropGet(SplitDataReader,"init",this,3)([])}},{key:"readUint8Array",value:async function(offset,length){for(var diskNumber=2=readers[currentDiskNumber].size;)currentReaderOffset-=readers[currentDiskNumber].size,currentDiskNumber++;var result,currentReader=readers[currentDiskNumber],currentReaderSize=currentReader.size;return currentReaderOffset+length<=currentReaderSize?result=await _readUint8Array(currentReader,currentReaderOffset,length):(currentReaderSize=currentReaderSize-currentReaderOffset,(result=new Uint8Array(length)).set(await _readUint8Array(currentReader,currentReaderOffset,currentReaderSize)),result.set(await this.readUint8Array(offset+currentReaderSize,length-currentReaderSize,diskNumber),currentReaderSize)),this.lastDiskNumber=Math.max(currentDiskNumber,this.lastDiskNumber),result}}])}()),SplitDataWriter=_exports.SplitDataWriter=function(){function SplitDataWriter(writerGenerator){var _this18,diskSourceWriter,diskWritable,diskWriter,maxSize=1=availableSize?(await writeChunk(chunk.slice(0,availableSize)),await closeDisk(),writer.diskOffset+=diskSourceWriter.size,writer.diskNumber++,diskWriter=null,await this.write(chunk.slice(availableSize))):await writeChunk(chunk);else{var availableSize=await writerGenerator.next(),value=availableSize.value;if(availableSize.done&&!value)throw new Error("Writer iterator completed too soon");(diskSourceWriter=value).size=0,diskSourceWriter.maxSize&&(writer.maxSize=diskSourceWriter.maxSize),writer.availableSize=writer.maxSize,await initStream(diskSourceWriter),diskWritable=value.writable,diskWriter=diskWritable.getWriter(),await this.write(chunk)}},close:async function(){await diskWriter.ready,await closeDisk()}}));async function writeChunk(chunk){var chunkLength=chunk.length;chunkLength&&(await diskWriter.ready,await diskWriter.write(chunk),diskSourceWriter.size+=chunkLength,writer.size+=chunkLength,writer.availableSize-=chunkLength)}async function closeDisk(){diskWritable.size=diskSourceWriter.size,await diskWriter.close()}return _Object.defineProperty(writer,"writable",{get:function(){return writable}}),_this18}return babelHelpers.inherits(SplitDataWriter,Stream),babelHelpers.createClass(SplitDataWriter)}();async function initStream(stream,initSize){if(!stream.init||stream.initialized)return Promise.resolve();await stream.init(initSize)}function initReader(reader){return reader=(reader=_Array.isArray(reader)?new SplitDataReader(reader):reader)instanceof ReadableStream?{readable:reader}:reader}function initWriter(writer){var writable=(writer=(writer=writer.writable===UNDEFINED_VALUE&&typeof writer.next==FUNCTION_TYPE?new SplitDataWriter(writer):writer)instanceof WritableStream?{writable:writer}:writer).writable;return writable.size===UNDEFINED_VALUE&&(writable.size=0),writer instanceof SplitDataWriter||_Object.assign(writer,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),writer}function _readUint8Array(reader,offset,size,diskNumber){return reader.readUint8Array(offset,size,diskNumber)}_exports.SplitZipReader=SplitDataReader,_exports.SplitZipWriter=SplitDataWriter;var CP437="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),VALID_CP437=256==CP437.length;function decodeText(value,encoding){if(encoding&&"cp437"==encoding.trim().toLowerCase()){var stringValue=value;if(VALID_CP437){for(var result="",indexCharacter=0;indexCharacter=reader.size&&(prependedDataLength=reader.size-directoryDataOffset-directoryDataLength-END_OF_CENTRAL_DIR_LENGTH,directoryDataOffset=reader.size-directoryDataLength-END_OF_CENTRAL_DIR_LENGTH),expectedLastDiskNumber!=lastDiskNumber)throw new Error("Split zip file");if(directoryDataOffset<0)throw new Error(ERR_BAD_FORMAT);var originalDirectoryDataOffset,offset=0,directoryArray=await _readUint8Array(reader,directoryDataOffset,directoryDataLength,diskNumber),directoryView=getDataView$1(directoryArray),endOfDirectoryView=(directoryDataLength&&(expectedDirectoryDataOffset=endOfDirectoryInfo.offset-directoryDataLength,getUint32(directoryView,offset)!=CENTRAL_FILE_HEADER_SIGNATURE)&&directoryDataOffset!=expectedDirectoryDataOffset&&(originalDirectoryDataOffset=directoryDataOffset,prependedDataLength+=(directoryDataOffset=expectedDirectoryDataOffset)-originalDirectoryDataOffset,directoryArray=await _readUint8Array(reader,directoryDataOffset,directoryDataLength,diskNumber),directoryView=getDataView$1(directoryArray)),endOfDirectoryInfo.offset-directoryDataOffset-(reader.lastDiskOffset||0));if(directoryDataLength!=endOfDirectoryView&&0<=endOfDirectoryView&&(directoryArray=await _readUint8Array(reader,directoryDataOffset,directoryDataLength=endOfDirectoryView,diskNumber),directoryView=getDataView$1(directoryArray)),directoryDataOffset<0||directoryDataOffset>=reader.size)throw new Error(ERR_BAD_FORMAT);for(var filenameEncoding=getOptionValue$1(zipReader,options,"filenameEncoding"),commentEncoding=getOptionValue$1(zipReader,options,"commentEncoding"),indexFile=0;indexFile>8==0,unixCompatible=versionMadeBy>>8==3,filenameOffset=directoryArray.subarray(filenameOffset,extraFieldOffset),commentLength=getUint16(directoryView,offset+32),endOffset=commentOffset+commentLength,rawComment=directoryArray.subarray(commentOffset,endOffset),filenameUTF8=languageEncodingFlag,externalFileAttributes=getUint32(directoryView,offset+38),directory=msDosCompatible&&(getUint8(directoryView,offset+38)&FILE_ATTR_MSDOS_DIR_MASK)==FILE_ATTR_MSDOS_DIR_MASK||unixCompatible&&(externalFileAttributes>>16&61440)==FILE_ATTR_UNIX_TYPE_DIR||filenameOffset.length&&filenameOffset[filenameOffset.length-1]==DIRECTORY_SIGNATURE.charCodeAt(0),unixCompatible=unixCompatible&&0!=(externalFileAttributes>>16&FILE_ATTR_UNIX_EXECUTABLE_MASK),offsetFileEntry=getUint32(directoryView,offset+42)+prependedDataLength,versionMadeBy=(_Object.assign(fileEntry,{versionMadeBy:versionMadeBy,msDosCompatible:msDosCompatible,compressedSize:0,uncompressedSize:0,commentLength:commentLength,directory:directory,offset:offsetFileEntry,diskNumberStart:getUint16(directoryView,offset+34),internalFileAttributes:getUint16(directoryView,offset+36),externalFileAttributes:externalFileAttributes,rawFilename:filenameOffset,filenameUTF8:filenameUTF8,commentUTF8:languageEncodingFlag,rawExtraField:directoryArray.subarray(extraFieldOffset,commentOffset),executable:unixCompatible}),fileEntry.internalFileAttribute=fileEntry.internalFileAttributes,fileEntry.externalFileAttribute=fileEntry.externalFileAttributes,getOptionValue$1(zipReader,options,"decodeText")||decodeText),msDosCompatible=filenameUTF8?"utf-8":filenameEncoding||"cp437",commentLength=languageEncodingFlag?"utf-8":commentEncoding||"cp437",externalFileAttributes=versionMadeBy(filenameOffset,msDosCompatible),extraFieldOffset=(externalFileAttributes===UNDEFINED_VALUE&&(externalFileAttributes=decodeText(filenameOffset,msDosCompatible)),versionMadeBy(rawComment,commentLength)),entry=(extraFieldOffset===UNDEFINED_VALUE&&(extraFieldOffset=decodeText(rawComment,commentLength)),_Object.assign(fileEntry,{rawComment:rawComment,filename:externalFileAttributes,comment:extraFieldOffset,directory:directory||externalFileAttributes.endsWith(DIRECTORY_SIGNATURE)}),startOffset=Math.max(offsetFileEntry,startOffset),readCommonFooter(fileEntry,fileEntry,directoryView,offset+6),fileEntry.zipCrypto=fileEntry.encrypted&&!fileEntry.extraFieldAES,new Entry(fileEntry)),commentOffset=(entry.getData=function(writer,options){return fileEntry.getData(writer,entry,options)},offset=endOffset,options.onprogress);if(commentOffset)try{await commentOffset(indexFile+1,filesLength,new Entry(fileEntry))}catch(_){}yield entry}();expectedLastDiskNumber=getOptionValue$1(zipReader,options,"extractPrependedData"),lastDiskNumber=getOptionValue$1(zipReader,options,"extractAppendedData");return expectedLastDiskNumber&&(zipReader.prependedData=0>>8&255:signature>>>24&255),signature:signature,compressed:0!=compressionMethod&&!passThrough,encrypted:this.encrypted&&!passThrough,useWebWorkers:getOptionValue$1(this,options,"useWebWorkers"),useCompressionStream:getOptionValue$1(this,options,"useCompressionStream"),transferStreams:getOptionValue$1(this,options,"transferStreams"),checkPasswordOnly:reader},config:config,streamOptions:{signal:localDirectory,size:offset,onstart:dataView,onprogress:compressedSize,onend:uncompressedSize}},rawPassword=0;try{rawPassword=(await runWorker({readable:dataArraySize,writable:diskNumberStart},password)).outputSize}catch(error){if(diskNumberStart.size=error.outputSize||0,!reader||"zipjs-abort-check-password"!=error.message)throw error}finally{extraFieldAES=getOptionValue$1(this,options,"preventClose");diskNumberStart.size+=rawPassword,extraFieldAES||diskNumberStart.locked||await diskNumberStart.getWriter().close()}return reader?UNDEFINED_VALUE:writer.getData?writer.getData():diskNumberStart}}])}());function readCommonHeader(directory,dataView,offset){var rawBitFlag=directory.rawBitFlag=getUint16(dataView,offset+2),encrypted=(rawBitFlag&BITFLAG_ENCRYPTED)==BITFLAG_ENCRYPTED,rawLastModDate=getUint32(dataView,offset+6);_Object.assign(directory,{encrypted:encrypted,version:getUint16(dataView,offset),bitFlag:{level:(rawBitFlag&BITFLAG_LEVEL)>>1,dataDescriptor:(rawBitFlag&BITFLAG_DATA_DESCRIPTOR)==BITFLAG_DATA_DESCRIPTOR,languageEncodingFlag:(rawBitFlag&BITFLAG_LANG_ENCODING_FLAG)==BITFLAG_LANG_ENCODING_FLAG},rawLastModDate:rawLastModDate,lastModDate:function(timeRaw){var date=(4294901760&timeRaw)>>16,timeRaw=65535&timeRaw;try{return new Date(1980+((65024&date)>>9),((480&date)>>5)-1,31&date,(63488&timeRaw)>>11,(2016&timeRaw)>>5,2*(31&timeRaw),0)}catch(_){}}(rawLastModDate),filenameLength:getUint16(dataView,offset+22),extraFieldLength:getUint16(dataView,offset+24)})}function readCommonFooter(fileEntry,directory,dataView,offset,localDirectory){var rawExtraField=directory.rawExtraField,extraField=directory.extraField=new Map,rawExtraFieldView=getDataView$1(new Uint8Array(rawExtraField)),offsetExtraField=0;try{for(;offsetExtraField=offset+4&&(time=getUint32(extraFieldView,offset),directory[propertyName]=extraFieldExtendedTimestamp[propertyName]=new Date(1e3*time),extraFieldExtendedTimestamp[timeRawProperties[indexProperty]]=time),offset+=4})}(dataView,directory,localDirectory),directory.extraFieldExtendedTimestamp=dataView),extraField.get(EXTRAFIELD_TYPE_USDZ));offset&&(directory.extraFieldUSDZ=offset)}function readExtraFieldUnicode(extraFieldUnicode,propertyName,rawPropertyName,directory,fileEntry){var extraFieldView=getDataView$1(extraFieldUnicode.data),crc32=new Crc32,rawPropertyName=(crc32.append(fileEntry[rawPropertyName]),getDataView$1(new Uint8Array(4))),crc32=(rawPropertyName.setUint32(0,crc32.get(),!0),getUint32(extraFieldView,1));_Object.assign(extraFieldUnicode,babelHelpers.defineProperty(babelHelpers.defineProperty({version:getUint8(extraFieldView,0)},propertyName,decodeText(extraFieldUnicode.data.subarray(5))),"valid",!fileEntry.bitFlag.languageEncodingFlag&&crc32==getUint32(rawPropertyName,0))),extraFieldUnicode.valid&&(directory[propertyName]=extraFieldUnicode[propertyName],directory[propertyName+"UTF8"]=!0)}function getOptionValue$1(zipReader,options,name){return(options[name]===UNDEFINED_VALUE?zipReader.options:options)[name]}function getDateNTFS(timeRaw){return new Date(Number(timeRaw/BigInt(1e4)-BigInt(116444736e5)))}function getUint8(view,offset){return view.getUint8(offset)}function getUint16(view,offset){return view.getUint16(offset,!0)}function getUint32(view,offset){return view.getUint32(offset,!0)}function getBigUint64(view,offset){return Number(view.getBigUint64(offset,!0))}function getDataView$1(array){return new DataView(array.buffer)}_exports.ERR_DUPLICATED_NAME="File already exists";var baseURL,ERR_INVALID_COMMENT=_exports.ERR_INVALID_COMMENT="Zip file comment exceeds 64KB",ERR_INVALID_ENTRY_COMMENT=_exports.ERR_INVALID_ENTRY_COMMENT="File entry comment exceeds 64KB",ERR_INVALID_ENTRY_NAME=_exports.ERR_INVALID_ENTRY_NAME="File entry name exceeds 64KB",ERR_INVALID_VERSION=_exports.ERR_INVALID_VERSION="Version exceeds 65535",ERR_INVALID_ENCRYPTION_STRENGTH=_exports.ERR_INVALID_ENCRYPTION_STRENGTH="The strength must equal 1, 2, or 3",ERR_INVALID_EXTRAFIELD_TYPE=_exports.ERR_INVALID_EXTRAFIELD_TYPE="Extra field type exceeds 65535",ERR_INVALID_EXTRAFIELD_DATA=_exports.ERR_INVALID_EXTRAFIELD_DATA="Extra field data exceeds 64KB",ERR_UNSUPPORTED_FORMAT=_exports.ERR_UNSUPPORTED_FORMAT="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",ERR_UNDEFINED_UNCOMPRESSED_SIZE=_exports.ERR_UNDEFINED_UNCOMPRESSED_SIZE="Undefined uncompressed size",EXTRAFIELD_DATA_AES=(_exports.ERR_ZIP_NOT_EMPTY="Zip file not empty",new Uint8Array([7,0,2,0,65,69,3,0,0])),workers=0,pendingEntries=[],ZipWriter=_exports.ZipWriter=function(){return babelHelpers.createClass(function ZipWriter(writer){var options=1MAX_32_BITS,zip64DiskNumberStart:zip64&&MAX_16_BITSMAX_16_BITS)throw new Error(ERR_INVALID_ENTRY_NAME);var comment=options.comment||"",executable=executable(comment);executable===UNDEFINED_VALUE&&(executable=encodeText(comment));if(getLength(executable)>MAX_16_BITS)throw new Error(ERR_INVALID_ENTRY_COMMENT);var version=getOptionValue(zipWriter,options,PROPERTY_NAME_VERSION,VERSION_DEFLATE);if(MAX_16_BITSMAX_16_BITS)throw new Error(ERR_INVALID_EXTRAFIELD_DATA);arraySet(rawExtraField,new Uint16Array([type]),offset),arraySet(rawExtraField,new Uint16Array([getLength(data)]),offset+2),arraySet(rawExtraField,data,offset+4),offset+=4+getLength(data)}))}var maximumCompressedSize=0,maximumEntrySize=0,uncompressedSize=0;if(passThrough)if((uncompressedSize=options.uncompressedSize)===UNDEFINED_VALUE)throw new Error(ERR_UNDEFINED_UNCOMPRESSED_SIZE);var zip64Enabled=!0===zip64;reader&&(await initStream(reader=initReader(reader)),passThrough?(options.uncompressedSize=uncompressedSize,maximumCompressedSize=getMaximumCompressedSize(uncompressedSize)):reader.size===UNDEFINED_VALUE?(dataDescriptor=!0,!zip64&&zip64!==UNDEFINED_VALUE||(zip64=!0,uncompressedSize=maximumCompressedSize=MAX_32_BITS+1)):(options.uncompressedSize=uncompressedSize=reader.size,maximumCompressedSize=getMaximumCompressedSize(uncompressedSize)));var _zipWriter$writer=zipWriter.writer,diskOffset=_zipWriter$writer.diskOffset,diskNumber=_zipWriter$writer.diskNumber,_zipWriter$writer=_zipWriter$writer.maxSize,zip64UncompressedSize=zip64Enabled||MAX_32_BITSMAX_32_BITS,zip64Enabled=getOptionValue(zipWriter,options,"supportZip64SplitFile",!0)&&zip64Enabled||diskNumber+Math.ceil(zipWriter.pendingEntriesSize/_zipWriter$writer)>MAX_16_BITS;if(zip64Offset||zip64UncompressedSize||zip64CompressedSize||zip64Enabled){if(!1===zip64||!keepOrder)throw new Error(ERR_UNSUPPORTED_FORMAT);zip64=!0}zip64=zip64||!1;var fileEntry,_zipWriter$writer=getOptionValue(zipWriter,options,PROPERTY_NAME_ENCRYPTED),signature=options.signature,rawFilename=function(options){var rawExtraFieldAES,rawExtraFieldNTFS,rawExtraFieldExtendedTimestamp,extraFieldExtendedTimestampFlag,rawFilename=options.rawFilename,lastModDate=options.lastModDate,lastAccessDate=options.lastAccessDate,creationDate=options.creationDate,level=options.level,zip64=options.zip64,zipCrypto=options.zipCrypto,useUnicodeFileNames=options.useUnicodeFileNames,dataDescriptor=options.dataDescriptor,directory=options.directory,rawExtraField=options.rawExtraField,encryptionStrength=options.encryptionStrength,extendedTimestamp=options.extendedTimestamp,passThrough=options.passThrough,encrypted=options.encrypted,zip64UncompressedSize=options.zip64UncompressedSize,zip64CompressedSize=options.zip64CompressedSize,zip64Offset=options.zip64Offset,zip64DiskNumberStart=options.zip64DiskNumberStart,uncompressedSize=options.uncompressedSize,offset=options.offset,diskNumberStart=options.diskNumberStart,version=options.version,compressionMethod=options.compressionMethod,directory=!directory&&(0>8&255,signed:!passThrough,compressed:compressed&&!passThrough,encrypted:encrypted&&!passThrough,useWebWorkers:useWebWorkers,useCompressionStream:useCompressionStream,transferStreams:!1},config:config,streamOptions:{signal:signal,size:rawComment,onstart:onstart,onprogress:onprogress,onend:onend}};try{var result=await runWorker({readable:rawFilename,writable:executable},rawExtraFieldZip64);directory=result.outputSize,executable.size+=directory,passThrough||(zip64=result.inputSize,versionMadeBy=result.signature)}catch(error){throw executable.size+=error.outputSize||0,error}}(function(entryInfo,options){var signature=entryInfo.signature,compressedSize=entryInfo.compressedSize,uncompressedSize=entryInfo.uncompressedSize,headerInfo=entryInfo.headerInfo,entryInfo=entryInfo.dataDescriptorInfo,headerView=headerInfo.headerView,headerInfo=headerInfo.encrypted,dataDescriptorView=entryInfo.dataDescriptorView,entryInfo=entryInfo.dataDescriptorOffset,zip64=options.zip64,zipCrypto=options.zipCrypto,options=options.dataDescriptor;headerInfo&&!zipCrypto||signature===UNDEFINED_VALUE||(setUint32(headerView,10,signature),options&&setUint32(dataDescriptorView,entryInfo,signature));zip64?options&&(setBigUint64(dataDescriptorView,entryInfo+4,BigInt(compressedSize)),setBigUint64(dataDescriptorView,entryInfo+12,BigInt(uncompressedSize))):(setUint32(headerView,14,compressedSize),setUint32(headerView,18,uncompressedSize),options&&(setUint32(dataDescriptorView,entryInfo+4,compressedSize),setUint32(dataDescriptorView,entryInfo+8,uncompressedSize)))})({signature:versionMadeBy,compressedSize:directory,uncompressedSize:zip64,headerInfo:headerInfo,dataDescriptorInfo:dataDescriptorInfo},options),dataDescriptor&&await writeData(executable,dataDescriptorArray);return _Object.assign(_ref18,{uncompressedSize:zip64,compressedSize:directory,lastModDate:lastModDate,rawLastModDate:rawLastModDate,creationDate:creationDate,lastAccessDate:lastAccessDate,encrypted:encrypted,zipCrypto:zipCrypto,size:entryInfo+directory,compressionMethod:compressionMethod,version:version,headerArray:headerArray,headerView:headerView,signature:versionMadeBy,extraFieldExtendedTimestampFlag:extraFieldExtendedTimestampFlag,zip64UncompressedSize:zip64UncompressedSize,zip64CompressedSize:zip64CompressedSize,zip64Offset:zip64Offset,zip64DiskNumberStart:zip64DiskNumberStart}),_ref18}(reader,fileWriter,fileEntry,entryInfo,zipWriter.config,options),fileEntry.zip64);if(writingEntryData=!1,files.set(name,fileEntry),fileEntry.filename=name,bufferedWrite?(_await$Promise$all=await Promise.all([blobPromise,fileWriter.writable.getWriter().close(),lockPreviousFileEntry]),blob=babelHelpers.slicedToArray(_await$Promise$all,1)[0],await requestLockWriter(),writingBufferedEntryData=!0,fileEntry.diskNumberStart=writer.diskNumber,fileEntry.offset=zipWriter.offset-writer.diskOffset,zip64&&updateZip64ExtraField(fileEntry),function(_ref19,localHeaderView){var rawFilename=_ref19.rawFilename,dataDescriptor=_ref19.dataDescriptor,encrypted=_ref19.encrypted,zip64=_ref19.zip64,localExtraFieldZip64Length=_ref19.localExtraFieldZip64Length,signature=_ref19.signature,compressedSize=_ref19.compressedSize,uncompressedSize=_ref19.uncompressedSize,offset=_ref19.offset,diskNumberStart=_ref19.diskNumberStart,zip64UncompressedSize=_ref19.zip64UncompressedSize,zip64CompressedSize=_ref19.zip64CompressedSize,zip64Offset=_ref19.zip64Offset,_ref19=_ref19.zip64DiskNumberStart;dataDescriptor||(encrypted||setUint32(localHeaderView,14,signature),zip64)||(setUint32(localHeaderView,18,compressedSize),setUint32(localHeaderView,22,uncompressedSize));zip64&&localExtraFieldZip64Length&&(dataDescriptor=HEADER_SIZE+4+getLength(rawFilename)+4,zip64UncompressedSize&&(setBigUint64(localHeaderView,dataDescriptor,BigInt(uncompressedSize)),dataDescriptor+=8),zip64CompressedSize&&(setBigUint64(localHeaderView,dataDescriptor,BigInt(compressedSize)),dataDescriptor+=8),zip64Offset&&(setBigUint64(localHeaderView,dataDescriptor,BigInt(offset)),dataDescriptor+=8),_ref19)&&setUint32(localHeaderView,dataDescriptor,diskNumberStart)}(fileEntry,localHeaderView),await skipDiskIfNeeded(writable),await writeData(writable,localHeaderArray),await blob.stream().pipeTo(writable,{preventClose:!0,preventAbort:!0,signal:signal}),writable.size+=blob.size,writingBufferedEntryData=!1):(fileEntry.offset=zipWriter.offset-diskOffset,zip64&&updateZip64ExtraField(fileEntry)),fileEntry.offset>MAX_32_BITS&&!zip64)throw new Error(ERR_UNSUPPORTED_FORMAT);return zipWriter.offset+=fileEntry.size,fileEntry}catch(error){if(bufferedWrite&&writingBufferedEntryData||!bufferedWrite&&writingEntryData){if(zipWriter.hasCorruptedEntries=!0,error)try{error.corruptedEntry=!0}catch(_){}bufferedWrite?zipWriter.offset+=fileWriter.writable.size:zipWriter.offset=fileWriter.writable.size}throw files.delete(name),error}finally{bufferedWrite&&zipWriter.bufferedWrites--,releaseLockCurrentFileEntry&&releaseLockCurrentFileEntry(),releaseLockWriter&&releaseLockWriter()}async function requestLockWriter(){zipWriter.writerLocked=!0;var lockWriter=zipWriter.lockWriter;zipWriter.lockWriter=new Promise(function(resolve){return releaseLockWriter=function(){zipWriter.writerLocked=!1,resolve()}}),await lockWriter}async function skipDiskIfNeeded(writable){getLength(headerInfo.localHeaderArray)>writer.availableSize&&(writer.availableSize=0,await writeData(writable,new Uint8Array))}}(zipWriter,name,reader,{headerInfo:rawFilename,dataDescriptorInfo:executable,metadataSize:version},options)}finally{zipWriter.pendingEntriesSize-=maximumEntrySize}return _Object.assign(fileEntry,{name:name,comment:comment,extraField:extraField}),new Entry(fileEntry)}(this,name,reader,options),pendingAddFileCalls.add(promiseAddFile),await promiseAddFile}catch(error){throw this.filenames.delete(name),error}finally{pendingAddFileCalls.delete(promiseAddFile);config=pendingEntries.shift();config?config():workers--}}},{key:"remove",value:function(entry){var filenames=this.filenames,files=this.files;if((entry="string"==typeof entry?files.get(entry):entry)&&entry.filename!==UNDEFINED_VALUE){entry=entry.filename;if(filenames.has(entry)&&files.has(entry))return filenames.delete(entry),files.delete(entry),!0}return!1}},{key:"close",value:async function(){for(var comment=0writer.availableSize&&(writer.availableSize=0,await writeData(writable,directoryArray.slice(directoryDiskOffset,offset)),directoryDiskOffset=offset),offset=_directoryOffset,options.onprogress)try{await options.onprogress(indexFileEntry+1,files.size,new Entry(_fileEntry2))}catch(_){}}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}await writeData(writable,directoryDiskOffset?directoryArray.slice(directoryDiskOffset):directoryArray);var lastDiskNumber=writer.diskNumber;writer.availableSizee;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;C[e]=t}class x{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^C[255&(t^e[n])];this.t=t}get(){return~this.t}}class A extends p{constructor(){let e;const t=new x;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new i(4);new u(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const _={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=_.i(n);return 32===r?e.concat(t):_.o(t,r,0|n,e.slice(0,e.length-1))},u(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+_.i(n)},l(e,t){if(32*e.length0&&t&&(e[n-1]=_.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=_.i(s);return r.push(_.h(t+i&31,t+i>32?n:r.pop(),1)),r}},I={bytes:{p(e){const t=_.u(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},m(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.I(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}P(){const e=this;let t=e.C;const n=e.S;t=_.concat(t,[_.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e.A/4294967296)),t.push(0|e.A);t.length;)e.I(t.splice(0,16));return e.reset(),n}D(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}V(e,t){return t<>>32-e}I(t){const n=this,s=n.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],u=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.V(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.V(5,o)+n.D(e,c,f,a)+u+i[e]+n.v[r.floor(e/20)]|0;u=a,a=f,f=n.V(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+u|0}},D={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;inew V.R(I.bytes.m(e)),B(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,l;const w=new ArrayBuffer(i),h=new u(w);let d=0;const p=_;for(t=I.bytes.m(t),l=1;(i||1)>d;l++){for(o=c=e.encrypt(p.concat(t,[l])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;ad&&fs&&(e=(new n).update(e).P());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.U[0].update(r[0]),t.U[1].update(r[1]),t.K=new n(t.U[0])}reset(){const e=this;e.K=new e.M(e.U[0]),e.N=!1}update(e){this.N=!0,this.K.update(e)}digest(){const e=this,t=e.K.P(),n=new e.M(e.U[1]).update(t).P();return e.reset(),n}encrypt(e){if(this.N)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},R=typeof h!=v&&typeof h.getRandomValues==S,B="Invalid password",E="Invalid signature",M="zipjs-abort-check-password";function U(e){return R?h.getRandomValues(e):D.getRandomValues(e)}const K=16,N={name:"PBKDF2"},O=t.assign({hash:{name:"HMAC"}},N),T=t.assign({iterations:1e3,hash:{name:"SHA-1"}},N),W=["deriveBits"],j=[8,12,16],H=[16,24,32],L=10,F=[0,0,0,0],q=typeof h!=v,G=q&&h.subtle,J=q&&typeof G!=v,Q=I.bytes,X=class{constructor(e){const t=this;t.O=[[[],[],[],[],[]],[[],[],[],[],[]]],t.O[0][0][0]||t.T();const n=t.O[0][4],r=t.O[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.v=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i===0||8===i&&o%i===4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i===0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.W(e,0)}decrypt(e){return this.W(e,1)}T(){const e=this.O[0],t=this.O[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let u=o=0;!n[u];u^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[u]=i,r[i]=u,a=s[f=s[c=s[u]]];let l=16843009*a^65537*f^257*c^16843008*u,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][u]=w=w<<24^w>>>8,t[n][i]=l=l<<24^l>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}W(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.v[t],r=n.length/4-2,i=[0,0,0,0],o=this.O[t],c=o[0],f=o[1],a=o[2],u=o[3],l=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^u[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^u[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^u[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^u[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=l[p>>>24]<<24^l[y>>16&255]<<16^l[m>>8&255]<<8^l[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},Y=class{constructor(e,t){this.j=e,this.H=t,this.L=t}reset(){this.L=this.H}update(e){return this.F(this.j,e,this.L)}q(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}G(e){0===(e[0]=this.q(e[0]))&&(e[1]=this.q(e[1]))}F(e,t,n){let r;if(!(r=t.length))return[];const s=_.u(t);for(let s=0;r>s;s+=4){this.G(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return _.l(t,s)}},Z=V.R;let $=q&&J&&typeof G.importKey==S,ee=q&&J&&typeof G.deriveBits==S;class te extends p{constructor({password:e,rawPassword:n,signed:r,encryptionStrength:o,checkPasswordOnly:c}){super({start(){t.assign(this,{ready:new l(e=>this.J=e),password:ie(e,n),signed:r,X:o-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:o,J:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await se(e,t,n,ce(r,0,j[t])),o=ce(r,j[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(B)})(n,o,r,ce(e,0,j[o]+2)),e=ce(e,j[o]+2),c?t.error(new s(M)):f()):await a;const u=new i(e.length-L-(e.length-L)%K);t.enqueue(re(n,e,u,0,L,!0))},async flush(e){const{signed:t,Y:n,Z:r,pending:o,ready:c}=this;if(r&&n){await c;const f=ce(o,0,o.length-L),a=ce(o,o.length-L);let u=new i;if(f.length){const e=ae(Q,f);r.update(e);const t=n.update(e);u=fe(Q,t)}if(t){const e=ce(fe(Q,r.digest()),0,L);for(let t=0;L>t;t++)if(e[t]!=a[t])throw new s(E)}e.enqueue(u)}}})}}class ne extends p{constructor({password:e,rawPassword:n,encryptionStrength:r}){let s;super({start(){t.assign(this,{ready:new l(e=>this.J=e),password:ie(e,n),X:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:s,J:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=U(new i(j[t]));return oe(r,await se(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%K);a.set(f,0),t.enqueue(re(n,e,a,f.length,0))},async flush(e){const{Y:t,Z:n,pending:r,ready:o}=this;if(n&&t){await o;let c=new i;if(r.length){const e=t.update(ae(Q,r));n.update(e),c=fe(Q,e)}s.signature=fe(Q,n.digest()).slice(0,L),e.enqueue(oe(c,s.signature))}}}),s=this}}function re(e,t,n,r,s,o){const{Y:c,Z:f,pending:a}=e,u=t.length-s;let l;for(a.length&&(t=oe(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,u-u%K)),l=0;u-K>=l;l+=K){const e=ae(Q,ce(t,l,l+K));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(fe(Q,s),l+r)}return e.pending=ce(t,l),n}async function se(n,r,s,o){n.password=null;const c=await(async(e,t,n,r,s)=>{if(!$)return V.importKey(t);try{return await G.importKey("raw",t,n,!1,s)}catch(e){return $=!1,V.importKey(t)}})(0,s,O,0,W),f=await(async(e,t,n)=>{if(!ee)return V.B(t,e.salt,T.iterations,n);try{return await G.deriveBits(e,t,n)}catch(r){return ee=!1,V.B(t,e.salt,T.iterations,n)}})(t.assign({salt:o},T),c,8*(2*H[r]+2)),a=new i(f),u=ae(Q,ce(a,0,H[r])),l=ae(Q,ce(a,H[r],2*H[r])),w=ce(a,2*H[r]);return t.assign(n,{keys:{key:u,$:l,passwordVerification:w},Y:new Y(new X(u),e.from(F)),Z:new Z(l)}),w}function ie(e,t){return t===k?(e=>{if(typeof w==v){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n>>24]),i=~e.te.get(),e.keys=[n,s,i]}function ye(e){const t=2|e.keys[2];return me(r.imul(t,1^t)>>>8)}function me(e){return 255&e}function be(e){return 4294967295&e}const ge="deflate-raw";class ke extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,l=this;let w,h,d=Se(super.readable);i&&!c||!f||(w=new A,d=xe(d,w)),s&&(d=Ce(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=xe(d,new le(e)):(h=new ne(e),d=xe(d,h))),ze(l,d,()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=new u(w.value.buffer).getUint32(0)),l.signature=e})}}class ve extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:l}=e;let w,h,d=Se(super.readable);o&&(i?d=xe(d,new ue(e)):(h=new te(e),d=xe(d,h))),a&&(d=Ce(d,l,{chunkSize:t},r,n)),o&&!i||!c||(w=new A,d=xe(d,w)),ze(this,d,()=>{if((!o||i)&&c){const e=new u(w.value.buffer);if(f!=e.getUint32(0,!1))throw new s(E)}})}}function Se(e){return xe(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ze(e,n,r){n=xe(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Ce(e,t,n,r,s){try{e=xe(e,new(t&&r?r:s)(ge,n))}catch(r){if(!t)return e;try{e=xe(e,new s(ge,n))}catch(t){return e}}return e}function xe(e,t){return e.pipeThrough(t)}const Ae="data",_e="close";class Ie extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=ke:s.startsWith("inflate")&&(i=ve),r.outputSize=0;let o=0;const c=new i(e,n),f=super.readable,a=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){t.assign(r,{inputSize:o})}}),u=new p({transform(e,t){e&&e.length&&(t.enqueue(e),r.outputSize+=e.length)},flush(){const{signature:e}=c;t.assign(r,{signature:e,inputSize:o})}});t.defineProperty(r,"readable",{get:()=>f.pipeThrough(a).pipeThrough(c).pipeThrough(u)})}}class Pe extends p{constructor(e){let t;super({transform:function n(r,s){if(t){const e=new i(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(s.enqueue(r.slice(0,e)),n(r.slice(e),s)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}const De=new a,Ve=new a;let Re,Be=0,Ee=!0;async function Me(e){try{const{options:t,scripts:r,config:s}=e;if(r&&r.length)try{Ee?importScripts.apply(k,r):await Ue(r)}catch(e){Ee=!1,await Ue(r)}self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new z(self.Deflate)),self.Inflate&&(s.DecompressionStream=new z(self.Inflate));const i={highWaterMark:1},o=e.readable||new y({async pull(e){const t=new l(e=>De.set(Be,e));Ke({type:"pull",messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new l(e=>t=e);Ve.set(Be,t),Ke({type:Ae,value:e,messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new Ie(t,s);Re=new AbortController;const{signal:a}=Re;await o.pipeThrough(f).pipeThrough(new Pe(s.chunkSize)).pipeTo(c,{signal:a,preventClose:!0,preventAbort:!0}),await c.getWriter().close();const{signature:u,inputSize:w,outputSize:h}=f;Ke({type:_e,result:{signature:u,inputSize:w,outputSize:h}})}catch(e){e.outputSize=0,Ne(e)}}async function Ue(e){for(const t of e)await import(t)}function Ke(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Ne(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:i,outputSize:o}=e;d({error:{message:t,stack:n,code:r,name:i,outputSize:o}})}addEventListener("message",({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&Me(e),t==Ae){const e=De.get(n);De.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ve.get(n);Ve.delete(n),e()}t==_e&&Re.abort()}catch(e){Ne(e)}});const Oe=-2;function Te(t){return We(t.map(([t,n])=>new e(t).fill(n,0,t)))}function We(t){return t.reduce((t,n)=>t.concat(e.isArray(n)?We(n):n),[])}const je=[0,1,2,3].concat(...Te([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function He(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.ne=n=>{const s=e.re,i=e.ie.se,o=e.ie.oe;let c,f,a,u=-1;for(n.ce=0,n.fe=573,c=0;o>c;c++)0!==s[2*c]?(n.ae[++n.ce]=u=c,n.ue[c]=0):s[2*c+1]=0;for(;2>n.ce;)a=n.ae[++n.ce]=2>u?++u:0,s[2*a]=1,n.ue[a]=0,n.le--,i&&(n.we-=i[2*a+1]);for(e.he=u,c=r.floor(n.ce/2);c>=1;c--)n.de(s,c);a=o;do{c=n.ae[1],n.ae[1]=n.ae[n.ce--],n.de(s,1),f=n.ae[1],n.ae[--n.fe]=c,n.ae[--n.fe]=f,s[2*a]=s[2*c]+s[2*f],n.ue[a]=r.max(n.ue[c],n.ue[f])+1,s[2*c+1]=s[2*f+1]=a,n.ae[1]=a++,n.de(s,1)}while(n.ce>=2);n.ae[--n.fe]=n.ae[1],(t=>{const n=e.re,r=e.ie.se,s=e.ie.pe,i=e.ie.ye,o=e.ie.me;let c,f,a,u,l,w,h=0;for(u=0;15>=u;u++)t.be[u]=0;for(n[2*t.ae[t.fe]+1]=0,c=t.fe+1;573>c;c++)f=t.ae[c],u=n[2*n[2*f+1]+1]+1,u>o&&(u=o,h++),n[2*f+1]=u,f>e.he||(t.be[u]++,l=0,i>f||(l=s[f-i]),w=n[2*f],t.le+=w*(u+l),r&&(t.we+=w*(r[2*f+1]+l)));if(0!==h){do{for(u=o-1;0===t.be[u];)u--;t.be[u]--,t.be[u+1]+=2,t.be[o]--,h-=2}while(h>0);for(u=o;0!==u;u--)for(f=t.be[u];0!==f;)a=t.ae[--c],a>e.he||(n[2*a+1]!=u&&(t.le+=(u-n[2*a+1])*n[2*a],n[2*a+1]=u),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.he,n.be)}}function Le(e,t,n,r,s){const i=this;i.se=e,i.pe=t,i.ye=n,i.oe=r,i.me=s}He.ge=[0,1,2,3,4,5,6,7].concat(...Te([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),He.ke=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],He.ve=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],He.Se=e=>256>e?je[e]:je[256+(e>>>7)],He.ze=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],He.Ce=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],He.xe=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],He.Ae=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Fe=Te([[144,8],[112,9],[24,7],[8,8]]);Le._e=We([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map((e,t)=>[e,Fe[t]]));const qe=Te([[30,5]]);function Ge(e,t,n,r,s){const i=this;i.Ie=e,i.Pe=t,i.De=n,i.Ve=r,i.Re=s}Le.Be=We([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map((e,t)=>[e,qe[t]])),Le.Ee=new Le(Le._e,He.ze,257,286,15),Le.Me=new Le(Le.Be,He.Ce,0,30,15),Le.Ue=new Le(null,He.xe,0,19,7);const Je=[new Ge(0,0,0,0,0),new Ge(4,4,8,4,1),new Ge(4,5,16,8,1),new Ge(4,6,32,32,1),new Ge(4,4,16,16,2),new Ge(8,16,32,32,2),new Ge(8,16,128,128,2),new Ge(8,32,128,256,2),new Ge(32,128,258,1024,2),new Ge(32,258,258,4096,2)],Qe=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Xe=113,Ye=666,Ze=262;function $e(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function et(){const e=this;let t,n,s,c,f,a,u,l,w,h,d,p,y,m,b,g,k,v,S,z,C,x,A,_,I,P,D,V,R,B,E,M,U;const K=new He,N=new He,O=new He;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)U[2*t]=0;E[512]=1,e.le=e.we=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++ii?U[2*n]+=i:0!==n?(n!=r&&U[2*n]++,U[32]++):i>10?U[36]++:U[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ke[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<>>16-F,F+=r-16):(L|=e<=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,U)}while(0!==--o);else 0!==r?(r!=s&&(Y(r,U),o--),Y(16,U),X(o-3,2)):o>10?(Y(18,U),X(o-11,7)):(Y(17,U),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Ne[W]=t,e.Oe[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(He.ge[n]+256+1)]++,M[2*He.Se(t)]++),!(8191&W)&&D>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+He.Ce[o]);if(s>>>=3,jc);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ke.set(l.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;D>0?(K.ne(e),N.ne(e),o=(()=>{let t;for(G(E,K.he),G(M,N.he),O.ne(e),t=18;t>=3&&0===U[2*He.Ae[t]+1];t--);return e.le+=14+3*(t+1),t})(),s=e.le+3+7>>>3,i=e.we+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(Le._e,Le.Be)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(U[2*He.Ae[r]+1],3);Z(E,e-1),Z(M,t-1)})(K.he+1,N.he+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.Te()}function ie(){let e,n,r,s;do{if(s=w-A-C,0===s&&0===C&&0===A)s=f;else if(-1==s)s--;else if(C>=f+f-Ze){l.set(l.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!==--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!==--e);s+=f}if(0===t.We)return;e=t.je(l,C+A,s),A+=e,3>A||(p=255&l[C],p=(p<A&&0!==t.We)}function oe(e){let t,n,r=I,s=C,i=_;const o=C>f-Ze?C-(f-Ze):0;let c=B;const a=u,w=C+258;let d=l[s+i-1],p=l[s+i];R>_||(r>>=2),c>A&&(c=A);do{if(t=e,l[t+i]==p&&l[t+i-1]==d&&l[t]==l[s]&&l[++t]==l[s+1]){s+=2,t++;do{}while(l[++s]==l[++t]&&l[++s]==l[++t]&&l[++s]==l[++t]&&l[++s]==l[++t]&&l[++s]==l[++t]&&l[++s]==l[++t]&&l[++s]==l[++t]&&l[++s]==l[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=l[s+i-1],p=l[s+i]}}}while((e=65535&h[e&a])>o&&0!==--r);return i>A?A:i}e.ue=[],e.be=[],e.ae=[],E=[],M=[],U=[],e.de=(t,n)=>{const r=e.ae,s=r[n];let i=n<<1;for(;i<=e.ce&&(i(W||(W=8),j||(j=8),G||(G=0),t.Le=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?Oe:(t.Fe=e,a=x,f=1<(t.qe=t.Ge=0,t.Le=null,e.pending=0,e.Je=0,n=Xe,c=0,K.re=E,K.ie=Le.Ee,N.re=M,N.ie=Le.Me,O.re=U,O.ie=Le.Ue,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve,C=0,k=0,A=0,v=_=2,z=0,p=0})(),0))(t))),e.Qe=()=>42!=n&&n!=Xe&&n!=Ye?Oe:(e.Oe=null,e.Ne=null,e.Ke=null,d=null,h=null,l=null,e.Fe=null,n==Xe?-3:0),e.Xe=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?Oe:(Je[D].Re!=Je[t].Re&&0!==e.qe&&(r=e.Ye(1)),D!=t&&(D=t,P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve),V=n,r)},e.Ze=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return Oe;if(3>i)return 0;for(i>f-Ze&&(i=f-Ze,o=r-i),l.set(t.subarray(o,o+i),0),C=i,k=i,p=255&l[0],p=(p<=s;s++)p=(p<{let o,w,m,I,R;if(i>4||0>i)return Oe;if(!r.$e||!r.et&&0!==r.We||n==Ye&&4!=i)return r.Le=Qe[4],Oe;if(0===r.tt)return r.Le=Qe[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(D-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=Xe,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.Te(),0===t.tt)return c=-1,0}else if(0===t.We&&I>=i&&4!=i)return t.Le=Qe[7],-5;if(n==Ye&&0!==t.We)return r.Le=Qe[7],-5;if(0!==t.We||0!==A||0!=i&&n!=Ye){switch(R=-1,Je[D].Re){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=A){if(ie(),0===A&&0==e)return 0;if(0===A)break}if(C+=A,A=0,n=k+r,(0===C||C>=n)&&(A=C-n,C=n,se(!1),0===t.tt))return 0;if(C-k>=f-Ze&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<f-Ze||2!=V&&(v=oe(r)),3>v)n=ee(0,255&l[C]),A--,C++;else if(n=ee(C-x,v-3),A-=v,v>P||3>A)C+=v,v=0,p=255&l[C],p=(p<{let n,r,s=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<_&&f-Ze>=(C-s&65535)&&(2!=V&&(v=oe(s)),5>=v&&(1==V||3==v&&C-x>4096)&&(v=2)),3>_||v>_)if(0!==z){if(n=ee(0,255&l[C-1]),n&&se(!1),C++,A--,0===t.tt)return 0}else z=1,C++,A--;else{r=C+A-3,n=ee(C-1-S,_-3),A-=_-1,_-=2;do{++C>r||(p=(p<1+H+10-F&&(X(2,3),Y(256,Le._e),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.Te(),0===t.tt)return c=-1,0}}return 4!=i?0:1}}function tt(){const e=this;e.nt=0,e.rt=0,e.We=0,e.qe=0,e.tt=0,e.Ge=0}function nt(e){const t=new tt,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.He(f),t.$e=c,this.append=(e,r)=>{let o,f,a=0,u=0,l=0;const w=[];if(e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,o=t.Ye(0),0!=o)throw new s("deflating: "+t.Le);t.rt&&(t.rt==n?w.push(new i(c)):w.push(c.subarray(0,t.rt))),l+=t.rt,r&&t.nt>0&&t.nt!=a&&(r(t.nt),a=t.nt)}while(t.We>0||0===t.tt);return w.length>1?(f=new i(l),w.forEach(e=>{f.set(e,u),u+=e.length})):f=w[0]?new i(w[0]):new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.rt=0,t.tt=n,e=t.Ye(4),1!=e&&0!=e)throw new s("deflating: "+t.Le);n-t.tt>0&&a.push(c.slice(0,t.rt)),f+=t.rt}while(t.We>0||0===t.tt);return t.Qe(),r=new i(f),a.forEach(e=>{r.set(e,o),o+=e.length}),r}}tt.prototype={He(e,t){const n=this;return n.Fe=new et,t||(t=15),n.Fe.He(n,e,t)},Ye(e){const t=this;return t.Fe?t.Fe.Ye(t,e):Oe},Qe(){const e=this;if(!e.Fe)return Oe;const t=e.Fe.Qe();return e.Fe=null,t},Xe(e,t){const n=this;return n.Fe?n.Fe.Xe(n,e,t):Oe},Ze(e,t){const n=this;return n.Fe?n.Fe.Ze(n,e,t):Oe},je(e,t,n){const r=this;let s=r.We;return s>n&&(s=n),0===s?0:(r.We-=s,e.set(r.et.subarray(r.nt,r.nt+s),t),r.nt+=s,r.qe+=s,s)},Te(){const e=this;let t=e.Fe.pending;t>e.tt&&(t=e.tt),0!==t&&(e.$e.set(e.Fe.Ke.subarray(e.Fe.Je,e.Fe.Je+t),e.rt),e.rt+=t,e.Fe.Je+=t,e.Ge+=t,e.tt-=t,e.Fe.pending-=t,0===e.Fe.pending&&(e.Fe.Je=0))}};const rt=-2,st=-3,it=-5,ot=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],ct=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],ft=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],at=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],ut=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],lt=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],wt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function ht(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,u,l,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,A,_,I,P;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return u[0]=-1,l[0]=0,0;for(S=l[0],k=1;15>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=15;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),l[0]=S,I=1<k;k++,I<<=1)if(0>(I-=n[k]))return st;if(0>(I-=n[g]))return st;for(n[g]+=I,i[1]=k=0,C=1,_=2;0!==--g;)i[_]=k+=n[C],_++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g=v;v++)for(p=n[v];0!==p--;){for(;v>A+S;){if(b++,A+=S,P=m-A,P=P>S?S:P,(y=1<<(k=v-A))>p+1&&(y-=p+1,_=v,P>k))for(;++kn[++_];)y-=n[_];if(P=1<1440)return st;s[b]=x=h[0],h[0]+=P,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>A-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):u[0]=x}for(r[1]=v-A,o>C?d[C]d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<>>A;P>k;k+=y)w.set(r,3*(x+k));for(k=1<>>=1)g^=k;for(g^=k,z=(1<c;c++)t[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.st=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==st?f.Le="oversubscribed dynamic bit lengths tree":a!=it&&0!==r[0]||(f.Le="incomplete dynamic bit lengths tree",a=st),a},this.it=(n,r,s,i,f,a,u,l,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,at,ut,a,i,l,e,t),0!=h||0===i[0]?(h==st?w.Le="oversubscribed literal/length tree":-4!=h&&(w.Le="incomplete literal/length tree",h=st),h):(c(288),h=o(s,n,r,0,lt,wt,u,f,l,e,t),0!=h||0===f[0]&&n>257?(h==st?w.Le="oversubscribed distance tree":h==it?(w.Le="incomplete distance tree",h=st):-4!=h&&(w.Le="empty distance tree with lengths",h=st),h):0)}}function dt(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,u=0,l=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,u,l,w,h,d,p,y,m,b,g,k,v,S,z;d=c.nt,p=c.We,w=o.ot,h=o.ct,y=o.write,m=yh;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],16&l){for(l&=15,k=a[z+2]+(w&ot[l]),w>>=l,h-=l;15>h;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],16&l){for(l&=15;l>h;)p--,w|=(255&c.ft(d++))<>=l,h-=l,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(l=o.end-S,k>l){if(k-=l,y-S>0&&l>y-S)do{o.ut[y++]=o.ut[S++]}while(0!==--l);else o.ut.set(o.ut.subarray(S,S+l),y),y+=l,S+=l,l=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.ut[y++]=o.ut[S++],o.ut[y++]=o.ut[S++],k-=2):(o.ut.set(o.ut.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.ut[y++]=o.ut[S++]}while(0!==--k);else o.ut.set(o.ut.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(64&l)return c.Le="invalid distance code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st;f+=a[z+2],f+=w&ot[l],z=3*(u+f),l=a[z]}break}if(64&l)return 32&l?(k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,1):(c.Le="invalid literal/length code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st);if(f+=a[z+2],f+=w&ot[l],z=3*(u+f),0===(l=a[z])){w>>=a[z+1],h-=a[z+1],o.ut[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.ut[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,0}e.init=(e,i,o,c,f,a)=>{t=0,l=e,w=i,r=o,h=c,s=f,d=a,n=null},e.lt=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,A=0,_=0;for(_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=S=258&&v>=10&&(e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,m=p(l,w,r,h,s,d,e,y),_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=SA;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>>=n[g+1],A-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(16&k){a=15&k,i=n[g+2],t=2;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}if(32&k){t=7;break}return t=9,y.Le="invalid literal/length code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 2:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=b,A-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=n[g+1],A-=n[g+1],k=n[g],16&k){a=15&k,u=n[g+2],t=4;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Le="invalid distance code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 4:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=b,A-=b,t=5;case 5:for(C=S-u;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S7&&(A-=8,v++,_--),e.write=S,m=e.wt(y,m),S=e.write,z=S{}}ht.dt=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=ct,r[0]=ft,0);const pt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function yt(e,t){const n=this;let r,s=0,o=0,c=0,a=0;const u=[0],l=[0],w=new dt;let h=0,d=new f(4320);const p=new ht;n.ct=0,n.ot=0,n.ut=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==s&&w.ht(e),s=0,n.ct=0,n.ot=0,n.read=n.write=0},n.reset(e,null),n.wt=(e,t)=>{let r,s,i;return s=e.rt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.ut.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.ut.subarray(i,i+r),s),s+=r,i+=r),e.rt=s,n.read=i,t},n.lt=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=gy;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=1;break;case 1:S=[],z=[],C=[[]],x=[[]],ht.dt(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=6;break;case 2:f>>>=3,y-=3,s=3;break;case 3:return f>>>=3,y-=3,s=9,e.Le="invalid block type",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>16&65535)!=(65535&f))return s=9,e.Le="invalid stored block lengths",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);o=65535&f,f=y=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=gb&&(i=b),i>k&&(i=k),n.ut.set(e.je(m,i),g),m+=i,b-=i,g+=i,k-=i,0!==(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<29||(i>>5&31)>29)return s=9,e.Le="too many length or distance symbols",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.lengthv;v++)r[v]=0;f>>>=14,y-=14,a=0,s=4;case 4:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=3,y-=3}for(;19>a;)r[pt[a++]]=0;if(u[0]=7,i=p.st(r,u,l,d,e),0!=i)return(t=i)==st&&(r=null,s=9),n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);a=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=u[0];i>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=i,y-=i,o+=f&ot[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,e.Le="invalid bit length repeat",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!==--o);a=v}}if(l[0]=-1,A=[],_=[],I=[],P=[],A[0]=9,_[0]=6,i=c,i=p.it(257+(31&i),1+(i>>5&31),r,A,_,I,P,d,e),0!=i)return i==st&&(r=null,s=9),t=i,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w.init(A[0],_[0],d,I[0],d,P[0]),s=6;case 6:if(n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,1!=(t=w.lt(n,e,t)))return n.wt(e,t);if(t=0,w.ht(e),m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g{n.reset(e,null),n.ut=null,d=null},n.yt=(e,t,r)=>{n.ut.set(e.subarray(t,t+r),0),n.read=n.write=r},n.bt=()=>1==s?1:0}const mt=13,bt=[0,0,255,255];function gt(){const e=this;function t(e){return e&&e.gt?(e.qe=e.Ge=0,e.Le=null,e.gt.mode=7,e.gt.kt.reset(e,null),0):rt}e.mode=0,e.method=0,e.vt=[0],e.St=0,e.marker=0,e.zt=0,e.Ct=t=>(e.kt&&e.kt.ht(t),e.kt=null,0),e.xt=(n,r)=>(n.Le=null,e.kt=null,8>r||r>15?(e.Ct(n),rt):(e.zt=r,n.gt.kt=new yt(n,1<{let n,r;if(!e||!e.gt||!e.et)return rt;const s=e.gt;for(t=4==t?it:0,n=it;;)switch(s.mode){case 0:if(0===e.We)return n;if(n=t,e.We--,e.qe++,8!=(15&(s.method=e.ft(e.nt++)))){s.mode=mt,e.Le="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.zt){s.mode=mt,e.Le="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.We)return n;if(n=t,e.We--,e.qe++,r=255&e.ft(e.nt++),((s.method<<8)+r)%31!=0){s.mode=mt,e.Le="incorrect header check",s.marker=5;break}if(!(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St=(255&e.ft(e.nt++))<<24&4278190080,s.mode=3;case 3:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<16&16711680,s.mode=4;case 4:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<8&65280,s.mode=5;case 5:return 0===e.We?n:(n=t,e.We--,e.qe++,s.St+=255&e.ft(e.nt++),s.mode=6,2);case 6:return s.mode=mt,e.Le="need dictionary",s.marker=0,rt;case 7:if(n=s.kt.lt(e,n),n==st){s.mode=mt,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.kt.reset(e,s.vt),s.mode=12;case 12:return e.We=0,1;case mt:return st;default:return rt}},e._t=(e,t,n)=>{let r=0,s=n;if(!e||!e.gt||6!=e.gt.mode)return rt;const i=e.gt;return s<1<{let n,r,s,i,o;if(!e||!e.gt)return rt;const c=e.gt;if(c.mode!=mt&&(c.mode=mt,c.marker=0),0===(n=e.We))return it;for(r=e.nt,s=c.marker;0!==n&&4>s;)e.ft(r)==bt[s]?s++:s=0!==e.ft(r)?0:4-s,r++,n--;return e.qe+=r-e.nt,e.nt=r,e.We=n,c.marker=s,4!=s?st:(i=e.qe,o=e.Ge,t(e),e.qe=i,e.Ge=o,c.mode=7,0)},e.Pt=e=>e&&e.gt&&e.gt.kt?e.gt.kt.bt():rt}function kt(){}function vt(e){const t=new kt,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.xt(),t.$e=o,this.append=(e,r)=>{const f=[];let a,u,l=0,w=0,h=0;if(0!==e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,0!==t.We||c||(t.nt=0,c=!0),a=t.At(0),c&&a===it){if(0!==t.We)throw new s("inflating: bad input")}else if(0!==a&&1!==a)throw new s("inflating: "+t.Le);if((c||1===a)&&t.We===e.length)throw new s("inflating: bad input");t.rt&&(t.rt===n?f.push(new i(o)):f.push(o.subarray(0,t.rt))),h+=t.rt,r&&t.nt>0&&t.nt!=l&&(r(t.nt),l=t.nt)}while(t.We>0||0===t.tt);return f.length>1?(u=new i(h),f.forEach(e=>{u.set(e,w),w+=e.length})):u=f[0]?new i(f[0]):new i,u}},this.flush=()=>{t.Ct()}}kt.prototype={xt(e){const t=this;return t.gt=new gt,e||(e=15),t.gt.xt(t,e)},At(e){const t=this;return t.gt?t.gt.At(t,e):rt},Ct(){const e=this;if(!e.gt)return rt;const t=e.gt.Ct(e);return e.gt=null,t},It(){const e=this;return e.gt?e.gt.It(e):rt},_t(e,t){const n=this;return n.gt?n.gt._t(n,e,t):rt},ft(e){return this.et[e]},je(e,t){return this.et.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=nt,self.Inflate=vt};\n';e({workerScripts:{inflate:[r],deflate:[r]}})}(configure)}); \ No newline at end of file diff --git a/transcoding/codeccontroller.js b/transcoding/codeccontroller.js new file mode 100644 index 0000000..a77185a --- /dev/null +++ b/transcoding/codeccontroller.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/itemmanager/itemmanager.js","./../modules/common/itemmanager/genericitemcontroller.js","./../modules/common/globalize.js","./codeceditor.js"],function(_exports,_itemmanager,_genericitemcontroller,_globalize,_codeceditor){function CodecController(){_genericitemcontroller.default.apply(this,arguments)}function showCodecEditor(item,editParams){return _codeceditor.default.show(item.OriginalItem,editParams).then(function(){})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(CodecController.prototype,_genericitemcontroller.default.prototype),CodecController.prototype.getTypeNames=function(){return["Codec"]},CodecController.prototype.getDisplayName=function(item,options){return item.Name},CodecController.prototype.isSingleItemFetchRequired=function(typeName){return!1},CodecController.prototype.getDefaultIcon=function(item){return"Decoder"===item.OriginalItem.Direction?"input":"output"},CodecController.prototype.canDelete=function(item,user){return!1},CodecController.prototype.canEdit=function(items,user){return 1===items.length&&!!items[0].OriginalItem.SupportsParameters},CodecController.prototype.getEditCommand=function(items){return{name:_globalize.default.translate("Settings"),id:"edit",icon:"settings"}},CodecController.prototype.editItems=function(items,options){return showCodecEditor(items[0],!0)},CodecController.prototype.getCommands=function(options){var commands=_genericitemcontroller.default.prototype.getCommands.apply(this,arguments),items=options.items;return 1===items.length&&items[0].OriginalItem.IsHardwareCodec&&commands.push({name:_globalize.default.translate("Info"),id:"codecinfo",icon:"info"}),commands},CodecController.prototype.executeCommand=function(command,items,options){return"codecinfo"!==command?_genericitemcontroller.default.prototype.executeCommand.apply(this,arguments):showCodecEditor(items[0],!1)},CodecController.prototype.moveInOrder=function(items,options){return Promise.resolve()};var instance=new CodecController;_itemmanager.default.registerItemController(instance),_exports.default=instance}); \ No newline at end of file diff --git a/transcoding/codeceditor.html b/transcoding/codeceditor.html new file mode 100644 index 0000000..54feb7f --- /dev/null +++ b/transcoding/codeceditor.html @@ -0,0 +1,36 @@ +
+ +

+

+
+ +
+
+
+ +
+
+
+ warning +
+ ${AdvancedOptionsWarning} +
+ +
+ + + +
+ +
+ + +
+
+
+
+
\ No newline at end of file diff --git a/transcoding/codeceditor.js b/transcoding/codeceditor.js new file mode 100644 index 0000000..cce2e23 --- /dev/null +++ b/transcoding/codeceditor.js @@ -0,0 +1 @@ +define(["exports","./../modules/dialoghelper/dialoghelper.js","./../modules/layoutmanager.js","./../modules/common/globalize.js","./../modules/loading/loading.js","./../modules/genericedit/genericedit.js","./../modules/common/responsehelper.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_dialoghelper,_layoutmanager,_globalize,_loading,_genericedit,_responsehelper,_connectionmanager,_embyInput,_embyButton,_embySelect,_embyScroller,_embyDialogclosebutton){function showEditorInternal(apiClient,codec,editObjectContainer,template){var dialogOptions={removeOnClose:!!1,scrollY:!0},dlg=(editObjectContainer&&(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="small"),_dialoghelper.default.createDialog(dialogOptions)),dialogOptions=(dlg.classList.add("formDialog"),dlg.classList.add("codecEditorDialog"),dlg.innerHTML=_globalize.default.translateDocument(template,"sharedcomponents"),dlg.querySelector(".btnSave")),template=dlg.querySelector(".btnReset"),editContainer=dlg.querySelector(".codecConfig");return dlg.querySelector(".formDialogHeaderTitle").innerHTML=codec.IsHardwareCodec?codec.Name:codec.MediaTypeName,editObjectContainer?(dlg.querySelector(".formDialogFooter").classList.remove("hide"),dlg.querySelector(".warningBanner").classList.remove("hide"),editObjectContainer.EditorRoot.DisplayName=null,dialogOptions.classList.remove("hide"),template.classList.remove("hide"),_genericedit.default.renderForm(editObjectContainer,editContainer).then(function(){_genericedit.default.setFormValues(editObjectContainer,editContainer)}),template.addEventListener("click",function(){for(var editors=editObjectContainer.EditorRoot.EditorItems,n=0;n'+rows.join("\n")+""}(codec)),infoSections.push(function(codec){if(!codec.ProfileAndLevelInformation||0===codec.ProfileAndLevelInformation.length)return"";var items=codec.ProfileAndLevelInformation,rows=[],codec=function(cellData){return''+cellData.join('')+""}(["Profile","Max Level","Max Bitrate","Bit Depths","Resolutions"]);rows.push(codec);for(var i=0;i'+rows.join("\n")+""}(codec)),infoSections.map(wrapInfoSection).join("")}(codec),dlg.querySelector(".codecInfo").innerHTML=dialogOptions),_loading.default.hide(),dlg.querySelector("form").addEventListener("submit",function(e){_genericedit.default.getItemValues(editObjectContainer,editContainer);var url=apiClient.getUrl("Encoding/CodecParameters",{CodecId:codec.Id,ParameterContext:"Playback"});return apiClient.ajax({type:"POST",url:url,data:JSON.stringify(editObjectContainer.Object),contentType:"application/json"}).then(function(result){_dialoghelper.default.close(dlg),_responsehelper.default.handleConfigurationSavedResponse(result)},_responsehelper.default.handleErrorResponse),e.preventDefault(),!1}),new Promise(function(resolve,reject){dlg.addEventListener("close",function(){reject()}),_dialoghelper.default.open(dlg)})}function wrapInfoSection(info){return info&&0'+info+"":""}function createRowV(cellData){return cellData[0]=''+cellData[0]+"",createRow(cellData)}function createRow(cellData){return""+(''+cellData.join('')+"")+""}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={show:function(codec,editParams){return _loading.default.show(),new Promise(function(resolve,reject){require(["text!transcoding/codeceditor.html"],function(template){template=_globalize.default.translateHtml(template);var url,apiClient=_connectionmanager.default.currentApiClient();codec.SupportsParameters&&editParams?(url=apiClient.getUrl("Encoding/CodecParameters",{CodecId:codec.Id,ParameterContext:"Playback"}),apiClient.getJSON(url).then(function(editObjectContainer){showEditorInternal(apiClient,codec,editObjectContainer,template).then(resolve,reject)})):showEditorInternal(apiClient,codec,null,template).then(resolve,reject)})})}}}); \ No newline at end of file diff --git a/transcoding/tonemappingtab.html b/transcoding/tonemappingtab.html new file mode 100644 index 0000000..16ae3d9 --- /dev/null +++ b/transcoding/tonemappingtab.html @@ -0,0 +1,35 @@ +
+
+ +
+ ${TranscodingStillInitializing} +
+
+ +
+ +
+
${EnableHDRToneMappingHelp}
+
+
+ +
+ +
+
+
+ +
+
+ +
+ +
+
+
+
\ No newline at end of file diff --git a/transcoding/tonemappingtab.js b/transcoding/tonemappingtab.js new file mode 100644 index 0000000..83d0289 --- /dev/null +++ b/transcoding/tonemappingtab.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/basetab.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/common/responsehelper.js","./../modules/genericedit/genericedit.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js"],function(_exports,_basetab,_loading,_globalize,_responsehelper,_genericedit,_embyInput,_embyButton,_embySelect){function displayError(){}function loadPageLegacy(instance,config){instance=instance.view.querySelector(".selectToneMapping");config.EnableHardwareToneMapping&&config.EnableSoftwareToneMapping?instance.value="both":config.EnableHardwareToneMapping?instance.value="hw":config.EnableSoftwareToneMapping?instance.value="swforced":instance.value="",function(e){var descriptionText,selectContainer=this.closest(".selectContainer"),value=this.value;"both"===value?descriptionText=_globalize.default.translate("ToneMappingInBothDescription"):"hw"===value?descriptionText=_globalize.default.translate("ToneMappingInHardwareDescription"):"swforced"===value&&(descriptionText=_globalize.default.translate("ToneMappingInSoftwareDescription")),(value=selectContainer.querySelector(".toneMappingDescription")).innerHTML=descriptionText||"",descriptionText?value.classList.remove("hide"):value.classList.add("hide")}.call(instance)}function onMediaEncodingInitializaed(instance,apiClient,toneMapOptions){_loading.default.show(),instance.isLegacyView?(function(page,toneMapOptions){var innerHTML;toneMapOptions.OptionsVisibility.IsSoftwareToneMappingAvailable||toneMapOptions.OptionsVisibility.IsAnyHardwareToneMappingAvailable?(innerHTML="",innerHTML+='",toneMapOptions.OptionsVisibility.IsAnyHardwareToneMappingAvailable?innerHTML=(innerHTML+='")+'":innerHTML+='",page.querySelector(".selectToneMapping").innerHTML=innerHTML,page.querySelector(".fldToneMapping").classList.remove("hide")):page.querySelector(".fldToneMapping").classList.add("hide")}(instance.view,toneMapOptions),apiClient.getNamedConfiguration("encoding").then(function(config){loadPageLegacy(instance,config),_loading.default.hide()})):(toneMapOptions=apiClient.getUrl("Encoding/FullToneMapOptions"),apiClient.getJSON(toneMapOptions).then(function(editObjectContainer){instance.editObjectContainer=editObjectContainer,function(instance,editObjectContainer){var editContainer=instance.view.querySelector(".editContainer");editObjectContainer.EditorRoot.DisplayName=null,_genericedit.default.renderForm(editObjectContainer,editContainer).then(function(){_genericedit.default.setFormValues(editObjectContainer,editContainer),_loading.default.hide()})}(instance,editObjectContainer)},displayError))}function checkMediaEncodingInitialization(instance,apiClient){_loading.default.show(),apiClient.getToneMapOptions().then(function(toneMapOptions){var view=instance.view;apiClient.isMinServerVersion("4.8.0.30")?(view.querySelector(".tonemapOptionForm").classList.remove("hide"),view.querySelector(".tonemapOptionForm-legacy").classList.add("hide"),instance.isLegacyView=null):(instance.isLegacyView=!0,view.querySelector(".tonemapOptionForm").classList.add("hide"),view.querySelector(".tonemapOptionForm-legacy").classList.remove("hide")),view.querySelector(".encodingNotInitializedMessage").classList.add("hide"),onMediaEncodingInitializaed(instance,apiClient,toneMapOptions)},function(errorResponse){var view=instance.view;view.querySelector(".tonemapOptionForm").classList.add("hide"),view.querySelector(".tonemapOptionForm-legacy").classList.add("hide"),view.querySelector(".encodingNotInitializedMessage").classList.remove("hide"),503===errorResponse.status?function(instance,apiClient){setTimeout(function(){checkMediaEncodingInitialization(instance,apiClient)},1e3)}(instance,apiClient):_loading.default.hide()})}function ToneMappingTab(view,params){_basetab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(ToneMappingTab.prototype,_basetab.default.prototype),ToneMappingTab.prototype.loadTemplate=function(){return require(["text!transcoding/tonemappingtab.html"])},ToneMappingTab.prototype.onTemplateLoaded=function(){_basetab.default.prototype.onTemplateLoaded.apply(this,arguments);var view=this.view;view.querySelector(".tonemapOptionForm").addEventListener("submit",function(e){var editContainer=this.view.querySelector(".editContainer"),apiClient=(_loading.default.show(),this.getApiClient()),editObjectContainer=this.editObjectContainer,editContainer=(_genericedit.default.getItemValues(editObjectContainer,editContainer),apiClient.getUrl("Encoding/FullToneMapOptions"));return apiClient.ajax({type:"POST",url:editContainer,data:JSON.stringify(editObjectContainer.Object),contentType:"application/json"}).then(_responsehelper.default.handleConfigurationSavedResponse,displayError),e.preventDefault(),e.stopPropagation(),!1}.bind(this)),view.querySelector(".tonemapOptionForm-legacy").addEventListener("submit",function(e){var form=this.view,apiClient=(_loading.default.show(),this.getApiClient());return apiClient.getNamedConfiguration("encoding").then(function(config){var selectToneMappingValue=form.querySelector(".selectToneMapping").value;"both"===selectToneMappingValue?(config.EnableHardwareToneMapping=!0,config.EnableSoftwareToneMapping=!0):"hw"===selectToneMappingValue?(config.EnableHardwareToneMapping=!0,config.EnableSoftwareToneMapping=!1):"swforced"===selectToneMappingValue?(config.EnableHardwareToneMapping=!1,config.EnableSoftwareToneMapping=!0):(config.EnableHardwareToneMapping=!1,config.EnableSoftwareToneMapping=!1),apiClient.updateNamedConfiguration("encoding",config).then(function(response){_loading.default.hide(),_responsehelper.default.handleConfigurationSavedResponse(response)})}),e.preventDefault(),e.stopPropagation(),!1}.bind(this))},ToneMappingTab.prototype.onResume=function(options){_basetab.default.prototype.onResume.apply(this,arguments),checkMediaEncodingInitialization(this,this.getApiClient())},ToneMappingTab.prototype.destroy=function(){_basetab.default.prototype.destroy.apply(this,arguments),this.editObjectContainer=null,this.isLegacyView=null};_exports.default=ToneMappingTab}); \ No newline at end of file diff --git a/transcoding/transcoding.html b/transcoding/transcoding.html new file mode 100644 index 0000000..8e6d742 --- /dev/null +++ b/transcoding/transcoding.html @@ -0,0 +1,8 @@ +
+ +
+
+
+
+ +
\ No newline at end of file diff --git a/transcoding/transcoding.js b/transcoding/transcoding.js new file mode 100644 index 0000000..d8019c1 --- /dev/null +++ b/transcoding/transcoding.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/globalize.js","./../modules/tabbedview/tabbedview.js"],function(_exports,_globalize,_tabbedview){function View(view,params){_tabbedview.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_tabbedview.default.prototype),View.prototype.getTabs=function(){return[{name:_globalize.default.translate("Transcoding"),id:"transcoding"},{name:_globalize.default.translate("HeaderToneMapping"),id:"tonemapping"}]},View.prototype.loadTabController=function(id){return Emby.importModule("./transcoding/"+id+"tab.js")};_exports.default=View}); \ No newline at end of file diff --git a/transcoding/transcodingtab.html b/transcoding/transcodingtab.html new file mode 100644 index 0000000..4a82258 --- /dev/null +++ b/transcoding/transcodingtab.html @@ -0,0 +1,123 @@ +
+
+ +
+ ${TranscodingStillInitializing} +
+
+ +
+
+
+ + +
+
+
+
+ +
+ ${HeaderPreferredHardwareDecoders} +
+ +
+
+
+ ${HeaderPreferredHardwareEncoders} +
+ +
+
+
+ ${HeaderSoftwareEncoders} +
+ +
+
+ +
+ ${Advanced} +
+
+
+
+ +
+ +
+
${LabelTranscodingTempPathHelp}
+
+ +
+ +
${EnableTranscodingThrottleHelp}
+
+ +
+ +
${LabelDownMixAudioScaleHelp}
+
+ +
+ +
+
${EnableHDRToneMappingHelp}
+
+
+ +
+ +
${AllowOnTheFlySubtitleExtractionHelp}
+
+ +
+ +
${AllowOnTheFlyFontExtractionHelp}
+
+ +
+ +
${EnableHevcEncodingHelp}
+
+ +
+ +
${TranscodingMaxResolutionHelp}
+
+
+
+ + +
+ +
+
+
+
\ No newline at end of file diff --git a/transcoding/transcodingtab.js b/transcoding/transcodingtab.js new file mode 100644 index 0000000..2ad98ed --- /dev/null +++ b/transcoding/transcodingtab.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/basetab.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/common/responsehelper.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js","./../modules/listview/listview.js","./../modules/layoutmanager.js","./codeccontroller.js"],function(_exports,_basetab,_loading,_globalize,_responsehelper,_connectionmanager,_embyInput,_embyButton,_embyToggle,_embySelect,_embyPremierecontainer,_listview,_layoutmanager,_codeccontroller){function loadPage(instance,config,codecs,defaultCodecConfigurations){var view=instance.view,selectHwa=view.querySelector(".selectHwa"),defaultCodecConfigurations=(selectHwa.value=config.HardwareAccelerationMode||0,1===config.HardwareAccelerationMode?defaultCodecConfigurations:config.CodecConfigurations||[]);instance.codecList||(instance.codecList=codecs,function(instance,context,codecs,codecConfigs){if(null==codecs||0===codecs.length)return;(function(codecs,codecConfigs){for(var i=0,length=codecs.length;i

'+group+"

",codecs[0].Direction),codecs=codecs[0].IsHardwareCodec;return html=html+'
'}(group,groupCodecs)}).join("")}function distinct(value,index,self){return self.indexOf(value)===index}function onHwaModeChange(e){for(var e=e.currentTarget,advancedSections=this.view.querySelectorAll(".hwaAdvanced"),mode=e.value,i=0,length=advancedSections.length;i',""),view.querySelector(".btnSelectTranscodingTempPath").addEventListener("click",function(){Emby.importModule("./modules/directorybrowser/directorybrowser.js").then(function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&(view.querySelector(".txtTranscodingTempPath").value=path),picker.close()},validateWriteable:!0,header:_globalize.default.translate("HeaderSelectTranscodingPath"),instruction:_globalize.default.translate("HeaderSelectTranscodingPathHelp")})})}),view.querySelector(".encodingSettingsForm").addEventListener("submit",function(e){var instance=this,form=e.target,apiClient=(_loading.default.show(),instance.getApiClient());return apiClient.getNamedConfiguration("encoding").then(function(config){config.DownMixAudioBoost=form.querySelector(".txtDownMixAudioBoost").value,config.TranscodingTempPath=form.querySelector(".txtTranscodingTempPath").value,config.EnableSubtitleExtraction=form.querySelector(".chkEnableSubtitleExtraction").checked,config.EnableOnTheFlyAttachmentExtraction=form.querySelector(".chkEnableFontExtraction").checked,config.EnableHevcEncoding=form.querySelector(".chkHevcTranscoding").checked,config.EnableThrottling=form.querySelector(".chkEnableThrottle").checked;var selectHwa=form.querySelector(".selectHwa"),codecConfigs=(config.HardwareAccelerationMode=parseInt(selectHwa.value),config.TranscodingMaxWidth=form.querySelector(".selectTranscodingMaxResolution").value,[]);if(2===config.HardwareAccelerationMode)for(var codecList=instance.codecList,i=0,length=codecList.length;i',"")}),apiClient.isMinServerVersion("4.9.0.39")?(view.querySelector(".fldTranscodingMaxResolution").classList.remove("hide"),view.querySelector(".fldHevcTranscoding").classList.remove("hide")):(view.querySelector(".fldTranscodingMaxResolution").classList.add("hide"),view.querySelector(".fldHevcTranscoding").classList.add("hide")),apiClient.isMinServerVersion("4.9.0.48")?view.querySelector(".fldFontExtraction").classList.remove("hide"):view.querySelector(".fldFontExtraction").classList.add("hide"),view.querySelector(".softwareEncoders"));apiClient.fetchData=function(query){return getCodecItems(this,function(codec){return"Encoder"===codec.Direction&&!codec.IsHardwareCodec&&codec.SupportsParameters})}.bind(this),apiClient.getListOptions=function(items){return{renderer:_listview.default,options:{defaultBackground:!1,moreButton:!1,action:_layoutmanager.default.tv?"edit":"none",multiSelect:!1,image:!1,draggable:!1,draggableXActions:!1,playQueueIndicator:!1,buttonCommands:["edit"],fields:["Name"]}}}.bind(this)},TranscodingTab.prototype.onResume=function(options){_basetab.default.prototype.onResume.apply(this,arguments);var instance=this;return checkMediaEncodingInitialization(this,this.getApiClient()).then(function(){for(var itemContainers=instance.view.querySelectorAll(".itemsContainer"),promises=[],i=0,length=itemContainers.length;i + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ \ No newline at end of file diff --git a/tv/tv.js b/tv/tv.js new file mode 100644 index 0000000..d447e01 --- /dev/null +++ b/tv/tv.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/tabbedview.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js"],function(_exports,_tabbedview,_globalize,_embyItemscontainer,_embyButton,_embyScroller){function TVView(view,params){_tabbedview.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(TVView.prototype,_tabbedview.default.prototype),TVView.prototype.getTabs=function(){var subviews=this.item.Subviews||["series","suggestions","upcoming","favorites","genres","studios","episodes","folders"];return[{name:_globalize.default.translate("Shows"),id:"series",enabled:subviews.includes("series")},{name:_globalize.default.translate("Suggestions"),id:"suggestions"},{name:_globalize.default.translate("Upcoming"),id:"upcoming"},{name:_globalize.default.translate("Favorites"),id:"favorites"},{name:_globalize.default.translate("Collections"),id:"collections",enabled:subviews.includes("collections")},{name:_globalize.default.translate("Genres"),id:"genres",enabled:subviews.includes("genres")},{name:_globalize.default.translate("Tags"),id:"tags",enabled:subviews.includes("tags")},{name:_globalize.default.translate("Networks"),id:"studios",enabled:subviews.includes("studios")},{name:_globalize.default.translate("Episodes"),id:"episodes",enabled:subviews.includes("episodes")},{name:_globalize.default.translate("Folders"),id:"folders"}]},TVView.prototype.getAutoBackdropItemTypes=function(){return["Series"]},TVView.prototype.loadTabController=function(id){switch(id){case"series":return Emby.importModule("./modules/tabbedview/seriestab.js");case"suggestions":return Emby.importModule("./tv/suggestions.js");case"upcoming":return Emby.importModule("./tv/upcoming.js");case"favorites":return Emby.importModule("./tv/favorites.js");case"collections":return Emby.importModule("./modules/tabbedview/collectionstab.js");case"genres":return Emby.importModule("./modules/tabbedview/genrestab.js");case"studios":return Emby.importModule("./tv/studios.js");case"tags":return Emby.importModule("./modules/tabbedview/tagstab.js");case"episodes":return Emby.importModule("./modules/tabbedview/videostab.js");case"folders":return Emby.importModule("./modules/tabbedview/folderstab.js");default:throw new Error("tab not found: "+id)}},TVView.prototype.supportsHorizontalTabScroll=function(){return!0},TVView.prototype.getTabControllerOptions=function(id){var options=_tabbedview.default.prototype.getTabControllerOptions.apply(this,arguments);return"genres"===id?options.queryIncludeItemTypes=["Series"]:"episodes"===id&&(options.itemType="Episode",options.enableAlphaPicker=!1),options};_exports.default=TVView}); \ No newline at end of file diff --git a/tv/upcoming.js b/tv/upcoming.js new file mode 100644 index 0000000..f6a69dd --- /dev/null +++ b/tv/upcoming.js @@ -0,0 +1 @@ +define(["exports","./../modules/emby-apiclient/connectionmanager.js","./../modules/tabbedview/basetab.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/common/globalize.js","./../modules/common/datetime.js","./../modules/tabbedview/sectionscontroller.js"],function(_exports,_connectionmanager,_basetab,_embyItemscontainer,_embyScroller,_globalize,_datetime,_sectionscontroller){function UpcomingTab(view,params){_basetab.default.apply(this,arguments),_sectionscontroller.default.apply(this,arguments),this.view=view,this.params=params,this.apiClient=_connectionmanager.default.getApiClient(params.serverId)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(UpcomingTab.prototype,_basetab.default.prototype),Object.assign(UpcomingTab.prototype,_sectionscontroller.default.prototype),UpcomingTab.prototype.fetchSections=function(){var instance=this,enableFocusPreview=instance.enableFocusPreview(),parentId=this.params.parentId,apiClient=this.getApiClient();return apiClient.getUpcomingEpisodes({Limit:100,UserId:apiClient.getCurrentUserId(),ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",EnableTotalRecordCount:!1,parentId:parentId,Fields:"Overview"}).then(function(result){for(var sections=[],currentGroupName="",currentGroup=[],items=result.Items,parentId=instance.params.parentId,i=0,length=items.length;i'+_globalize.default.translate("Libraries")+'
')+('"))+function(user,folder,subFolders,folderEnabled){for(var html="",excludedSubFolders=user.Policy.ExcludedSubFolders||[],folderId=folder.Guid||folder.Id,hide=0"+subFolder.Path+""}return html}(user,folder,folder.SubFolders||[],isChecked)+"
";html+="",page.querySelector(".folderAccess").innerHTML=html;page=page.querySelector(".chkEnableAllFolders");page.checked=user.Policy.EnableAllFolders,triggerChange(page)}function saveUser(user,page,apiClient){user.Policy.EnableAllFolders=page.querySelector(".chkEnableAllFolders").checked,user.Policy.EnabledFolders=user.Policy.EnableAllFolders?[]:Array.prototype.filter.call(page.querySelectorAll(".chkFolder"),function(c){return c.checked}).map(function(c){return c.getAttribute("data-id")}),user.Policy.ExcludedSubFolders=user.Policy.EnableAllFolders?[]:Array.prototype.filter.call(page.querySelectorAll(".chkSubFolder"),function(c){return!c.checked}).map(function(c){return c.getAttribute("data-id")}),user.Policy.EnableAllChannels=page.querySelector(".chkEnableAllChannels").checked,user.Policy.EnabledChannels=user.Policy.EnableAllChannels?[]:Array.prototype.filter.call(page.querySelectorAll(".chkChannel"),function(c){return c.checked}).map(function(c){return c.getAttribute("data-id")}),user.Policy.EnableAllDevices=page.querySelector(".chkEnableAllDevices").checked,user.Policy.EnabledDevices=user.Policy.EnableAllDevices?[]:Array.prototype.filter.call(page.querySelectorAll(".chkDevice"),function(c){return c.checked}).map(function(c){return c.getAttribute("data-id")}),user.Policy.BlockedMediaFolders=null,apiClient.updateUserPolicy(user.Id,user.Policy).then(function(){_loading.default.hide(),_responsehelper.default.handleConfigurationSavedResponse()})}function onFolderChange(e){var e=e.target,view=this.view;if(e.classList.contains("chkFolder"))for(var page=view,folderId=e.getAttribute("data-id"),checked=e.checked,elems=page.querySelectorAll('.chkSubFolder[data-folderid="'+folderId+'"]'),i=0,length=elems.length;i"+folder.Name+""}page.querySelector(".channelAccess").innerHTML=html,channels.length?page.querySelector(".channelAccessContainer").classList.remove("hide"):page.querySelector(".channelAccessContainer").classList.add("hide"),page.querySelector(".chkEnableAllChannels").checked=user.Policy.EnableAllChannels,triggerChange(page.querySelector(".chkEnableAllChannels"))}(page,user,responses[1].Items),function(page,user,devices){for(var html="",i=0,length=devices.length;i"+device.Name+" - "+device.AppName+""}page.querySelector(".deviceAccess").innerHTML=html,page.querySelector(".chkEnableAllDevices").checked=user.Policy.EnableAllDevices,triggerChange(page.querySelector(".chkEnableAllDevices")),user.Policy.IsAdministrator?page.querySelector(".deviceAccessContainer").classList.add("hide"):page.querySelector(".deviceAccessContainer").classList.remove("hide")}(page,user,responses[2].Items),function(page,user,apiClient){apiClient.getJSON(apiClient.getUrl("Library/SelectableMediaFolders")).then(function(mediaFolders){renderMediaFolders(page,user,mediaFolders)})}(page,user,apiClient),_loading.default.hide()})};_exports.default=AccessTab}); \ No newline at end of file diff --git a/users/parentalcontroltab.js b/users/parentalcontroltab.js new file mode 100644 index 0000000..d9f23ff --- /dev/null +++ b/users/parentalcontroltab.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/globalize.js","./../modules/loading/loading.js","./../modules/common/datetime.js","./../modules/tabbedview/basetab.js","./../components/accessschedule/accessschedule.js","./../modules/common/responsehelper.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-button/paper-icon-button-light.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/listview/listview.js","./../modules/layoutmanager.js","./../modules/common/itemmanager/itemmanager.js"],function(_exports,_globalize,_loading,_datetime,_basetab,_accessschedule,_responsehelper,_embyToggle,_embyButton,_paperIconButtonLight,_embySelect,_embyItemscontainer,_listview,_layoutmanager,_itemmanager){function loadUser(instance,page,user,allParentalRatings){!function(page,user){for(var items=[{name:_globalize.default.translate("Books"),value:"Book"},{name:_globalize.default.translate("Games"),value:"Game"},{name:_globalize.default.translate("OptionBlockChannelContent"),value:"ChannelContent"},{name:_globalize.default.translate("LiveTV"),value:"LiveTvChannel"},{name:_globalize.default.translate("Movies"),value:"Movie"},{name:_globalize.default.translate("Music"),value:"Music"},{name:_globalize.default.translate("Trailers"),value:"Trailer"},{name:_globalize.default.translate("TVShows"),value:"Series"}],html="",i=0,length=items.length;i"+item.name+""}page.querySelector(".blockUnratedItemsList").innerHTML=html}(page,user),instance.tags=user.Policy.BlockedTags,function(allParentalRatings,page){for(var rating,html="",ratings=(html+="",[]),i=0,length=allParentalRatings.length;i"+rating.Name+"";page.querySelector(".selectMaxParentalRating").innerHTML=html}(allParentalRatings,page);var ratingValue="";if(user.Policy.MaxParentalRating)for(var i=0,length=allParentalRatings.length;i=rating.Value&&(ratingValue=rating.Value)}page.querySelector(".selectMaxParentalRating").value=ratingValue,page.querySelector(".selectTagMode").value=user.Policy.IsTagBlockingModeInclusive?"include":"",user.Policy.IsAdministrator?page.querySelector(".accessScheduleSection").classList.add("hide"):page.querySelector(".accessScheduleSection").classList.remove("hide"),page.querySelector(".selectMultiRestrictionMode").value=user.Policy.AllowTagOrRating?"any":"all",instance.schedules=user.Policy.AccessSchedules||[],_loading.default.hide(),onValueChange.call(instance);for(var promises=[],itemsContainers=page.querySelectorAll(".itemsContainer"),_i=0,_length=itemsContainers.length;_i<_length;_i++)promises.push(function(itemsContainer,options){return itemsContainer.waitForCustomElementUpgrade().then(function(){itemsContainer.resume(options)})}(itemsContainers[_i],{refresh:!0}));Promise.all(promises)}function saveUser(instance,user,page,apiClient){user.Policy.MaxParentalRating=page.querySelector(".selectMaxParentalRating").value||null,user.Policy.IsTagBlockingModeInclusive="include"===page.querySelector(".selectTagMode").value,user.Policy.AllowTagOrRating="any"===page.querySelector(".selectMultiRestrictionMode").value,user.Policy.BlockUnratedItems=Array.prototype.filter.call(page.querySelectorAll(".chkUnratedItem"),function(i){return i.checked}).map(function(i){return i.getAttribute("data-itemtype")}),user.Policy.AccessSchedules=instance.schedules,user.Policy.BlockedTags=instance.tags,apiClient.updateUserPolicy(user.Id,user.Policy).then(function(){_loading.default.hide(),_responsehelper.default.handleConfigurationSavedResponse()})}function showBlockedTagPopup(instance){var options;options={label:_globalize.default.translate("Tag")},Emby.importModule("./modules/prompt/prompt.js").then(function(prompt){return prompt(options)}).then(function(value){var tags=instance.tags;-1===tags.indexOf(value)&&(tags.push(value),instance.refreshTags())})}function onValueChange(){var view=this.view,selectMaxParentalRating=view.querySelector(".selectMaxParentalRating"),selectTagMode=(selectMaxParentalRating.value?view.querySelector(".blockUnratedItems").classList.remove("hide"):view.querySelector(".blockUnratedItems").classList.add("hide"),view.querySelector(".selectTagMode"));selectMaxParentalRating.value&&"include"===selectTagMode.value?view.querySelector(".fldMultiRestrictionMode").classList.remove("hide"):view.querySelector(".fldMultiRestrictionMode").classList.add("hide")}function getDisplayTime(hours){var minutes=0,pct=hours%1;return pct&&(minutes=parseInt(60*pct)),_datetime.default.getDisplayTime(new Date(2e3,1,1,hours,minutes,0,0))}function getAccessScheduleItems(query){var items=this.schedules.map(function(i){return{Type:"GenericListItem",Name:function(dayOfWeek){for(var date=new Date;0"+folder.Name+""}for(i=0,length=channelsResult.Items.length;i"+_folder.Name+""}view.querySelector(".deleteAccess").innerHTML=html,view.querySelector(".chkEnableDeleteAllFolders").checked=user.Policy.EnableContentDeletion,select=view.querySelector(".chkEnableDeleteAllFolders"),(evt=document.createEvent("HTMLEvents")).initEvent("change",!1,!0),select.dispatchEvent(evt)})}function loadUser(view,user,apiClient){apiClient.getJSON(apiClient.getUrl("Auth/Providers")).then(function(providers){!function(view,user,providers){1"+provider.Name+""})}(view,user,providers)}),apiClient.getJSON(apiClient.getUrl("Library/MediaFolders",{IsHidden:!1})).then(function(folders){loadDeleteFolders(view,user,folders.Items,apiClient)}),user.Policy.IsDisabled?view.querySelector(".disabledUserBanner").classList.remove("hide"):view.querySelector(".disabledUserBanner").classList.add("hide"),view.querySelector(".lnkEditUserPreferences").setAttribute("href","settings?userId="+user.Id+"&serverId="+user.ServerId),view.querySelector(".txtUserName").value=user.Name,view.querySelector(".txtConnectUserName").value=user.ConnectUserName||"",view.querySelector(".chkIsAdmin").checked=user.Policy.IsAdministrator,view.querySelector(".chkDisabled").checked=user.Policy.IsDisabled,view.querySelector(".chkIsHidden").checked=user.Policy.IsHidden,view.querySelector(".chkIsHiddenRemotely").checked=user.Policy.IsHiddenRemotely||!1,view.querySelector(".chkHideFromUnusedDevices").checked=user.Policy.IsHiddenFromUnusedDevices||!1,view.querySelector(".chkRemoteControlSharedDevices").checked=user.Policy.EnableSharedDeviceControl,view.querySelector(".chkEnableRemoteControlOtherUsers").checked=user.Policy.EnableRemoteControlOfOtherUsers,view.querySelector(".chkEnableDownloading").checked=user.Policy.EnableContentDownloading,view.querySelector(".chkEnableSubtitleDownloading").checked=user.Policy.EnableSubtitleDownloading||!1,view.querySelector(".chkEnableSubtitleManagement").checked=user.Policy.EnableSubtitleManagement||!1,view.querySelector(".chkManageLiveTv").checked=user.Policy.EnableLiveTvManagement,view.querySelector(".chkEnableLiveTvAccess").checked=user.Policy.EnableLiveTvAccess,view.querySelector(".chkEnableMediaPlayback").checked=user.Policy.EnableMediaPlayback,view.querySelector(".chkEnableAudioPlaybackTranscoding").checked=user.Policy.EnableAudioPlaybackTranscoding,view.querySelector(".chkEnableVideoPlaybackTranscoding").checked=user.Policy.EnableVideoPlaybackTranscoding,view.querySelector(".chkEnableVideoPlaybackRemuxing").checked=user.Policy.EnablePlaybackRemuxing,view.querySelector(".chkAllowTranscodingQuality").checked=user.Policy.EnableTranscodingQuality||!1,view.querySelector(".chkRemoteAccess").checked=null==user.Policy.EnableRemoteAccess||user.Policy.EnableRemoteAccess,view.querySelector(".chkAllowChangeProfile").checked=user.Policy.EnableUserPreferenceAccess,view.querySelector(".chkEnableSyncTranscoding").checked=user.Policy.EnableSyncTranscoding,view.querySelector(".chkAllowCameraUpload").checked=user.Policy.AllowCameraUpload||!1,view.querySelector(".chkEnableConversion").checked=user.Policy.EnableMediaConversion||!1,view.querySelector(".chkSharePersonalContent").checked=user.Policy.AllowSharingPersonalItems||!1,view.querySelector(".chkEnableSharing").checked=user.Policy.EnablePublicSharing,view.querySelector(".txtRemoteClientBitrateLimit").value=user.Policy.RemoteClientBitrateLimit/1e6||"",view.querySelector(".txtAutoRemoteQuality").value=(user.Policy.AutoRemoteQuality||0)/1e6||"",view.querySelector(".selectStreamLimit").value=user.Policy.SimultaneousStreamLimit||"0";for(var chkDynamicFeatures=view.querySelectorAll(".chkDynamicFeature"),restrictedFeatures=user.Policy.RestrictedFeatures||[],i=0,length=chkDynamicFeatures.length;i'+('')+(""+feature.Name+"")+""}function showFeature(feature){return!feature.Id.includes(".")}function loadData(instance,options){_loading.default.show(),getUser(instance).then(function(user){instance.currentConnectUsername=user.ConnectUserName;var apiClient=instance.getApiClient();apiClient.getFeatures({FeatureType:"User"}).then(function(features){!function(view,features){features.unshift({Id:"livetv",Name:_globalize.default.translate("LiveTV"),className:"chkEnableLiveTvAccess"},{Id:"livetv_manage",Name:_globalize.default.translate("LiveTVRecordingManagement"),className:"chkManageLiveTv"}),view.querySelector(".featureList").innerHTML=features.filter(showFeature).map(getFeatureHtml).join("")}(instance.view,features),loadUser(instance.view,user,apiClient),null!=options&&options.autoFocus&&instance.autoFocus()})})}function InfoTab(view,params,options){_basetab.default.apply(this,arguments),function(view){for(var html='",i=1;i<=50;i++)html+='";view.querySelector(".selectStreamLimit").innerHTML=html}(view),view.querySelector(".streamLimitPremiereInfo").innerHTML=_globalize.default.translate("FeatureRequiresEmbyPremiere",'',""),view.querySelector(".editUserProfileForm").addEventListener("submit",onSubmit.bind(this)),view.querySelector(".sharingHelp").innerHTML=_globalize.default.translate("OptionAllowLinkSharingHelp",30),view.querySelector(".chkEnableDeleteAllFolders",view).addEventListener("change",function(){this.checked?view.querySelector(".deleteAccess").classList.add("hide"):view.querySelector(".deleteAccess").classList.remove("hide")});for(var apiClient=this.getApiClient(),userId=(apiClient.getServerConfiguration().then(function(config){config.EnableRemoteAccess?view.querySelector(".fldRemoteAccess").classList.remove("hide"):view.querySelector(".fldRemoteAccess").classList.add("hide")}),params.userId),btns=view.querySelectorAll(".userEditTabButton"),i=0,length=btns.length;i + +
+
+ +
+ +
+ +
+ +
+ ${HeaderThisUserIsCurrentlyDisabled} +
+

+ ${ButtonEditOtherUserPreferences} +

+ + +
+
+
+ +
${NewUserNameHelp}
+
+
+
+ + +
+ ${HeaderEmbyConnect} +
+
+ +
+
${LabelConnectEmailHelp}
+ +
+
+
+
+ + +
+
+
+ +
${AuthProviderHelp}
+
+
+ +
${AllowRemoteAccessHelp}
+
+ +
+
+ + +
+ ${Playback} +
+ + + + + +
+
${OptionAllowMediaPlaybackTranscodingHelp}
+
+ + +
+
+
+ +
${SimultaneousStreamLimitHelp}
+
+
+ +
+ +
${LabelRemoteClientBitrateLimitHelp}
+
${LabelUserRemoteClientBitrateLimitHelp}
+
+ +
+ +
${AutoRemoteQualityHelp}
+
+
+
+ + +
+ ${HeaderFeatureAccess} +
+
+
+ +
+ ${HeaderAllowMediaDeletionFrom} + +
+ +
+
+
+
+ + +
+ ${HeaderRemoteControl} +
+ +
+ +
${OptionAllowRemoteSharedDevicesHelp}
+
+
+
+ + +
+ ${Downloads} +
+ + +
+
+ +
+ ${Subtitles} +
+ + +
+
+ +
+
+
+ +
${AllowCameraUploadHelp}
+
+
+ +
${AllowMediaConversionHelp}
+
+
+ +
${AllowSharingPersonalContentHelp}
+
+
+ +
+
+ +
+ +
${OptionDisableUserHelp}
+
+ +
+ +
${OptionHideUserFromLoginHelp}
+
+ +
+
+ +
+ +
+
+
+
+
+
+ +
+
+ +
+ +
+ +
+ +
+ ${HeaderLibraryAccess} + +
+ +
+
+
+
${LibraryAccessHelp}
+
+ +
+ ${HeaderChannelAccess} + +
+ +
+
+
+
${ChannelAccessHelp}
+
+ +
+ ${HeaderDeviceAccess} + +
+ +
+
+
+
${DeviceAccessHelp}
+
+ +
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+ + +
+
+
+ +
${MaxParentalRatingHelp}
+
+
+
+ +
+ ${HeaderBlockItemsWithNoRating} +
+ +
+
+ +
+ +
${LabelBlockContentWithTags}
+
+ +
+
+
+ +
+
+ +
+
+
+ +
+ +
+ +
+
+
+ +
+ ${HeaderAccessSchedule} + +
${HeaderAccessSchedule}
+
+ +
+
+

${HeaderAccessScheduleHelp}

+
+ +
+
+ +
+ +
+ +
+
+ +
+
+
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+ +
+ +
+ + ${TitleProfilePin} + +

+ ${ProfilePinDescription} +

+
+ +
+
+
+ +
+
+
+ +
+
+ ${HeaderLocalNetworkAccess} +
+ +
${LocalNetworkPasswordModeHelp}
+
+
+ +
+
+ +
+
+
+
+ +
+
+
+ + + + diff --git a/users/user.js b/users/user.js new file mode 100644 index 0000000..cc3b5ae --- /dev/null +++ b/users/user.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/globalize.js","./../modules/tabbedview/tabbedview.js"],function(_exports,_globalize,_tabbedview){function UserView(view,params){_tabbedview.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(UserView.prototype,_tabbedview.default.prototype),UserView.prototype.getTabs=function(){return[{name:_globalize.default.translate("Profile"),id:"profile"},{name:_globalize.default.translate("TabAccess"),id:"access"},{name:_globalize.default.translate("TabParentalControl"),id:"parentalcontrol"},{name:_globalize.default.translate("Password"),id:"password"}]},UserView.prototype.fetchItem=function(){var params=this.params;return this.getApiClient().getUser(params.userId,!1)},UserView.prototype.getTitle=function(){return this.item.Name},UserView.prototype.loadTabController=function(id){return Emby.importModule("./users/"+id+"tab.js")};_exports.default=UserView}); \ No newline at end of file diff --git a/users/usernew.html b/users/usernew.html new file mode 100644 index 0000000..b7d7106 --- /dev/null +++ b/users/usernew.html @@ -0,0 +1,90 @@ +
+
+
+ + +
+ +
+
+ +
${NewUserNameHelp}
+
+
+ +
${CopyFromUserHelp}
+
+
+
+ +
+ + ${HeaderCopyOptions} +
+ + + +
+
+ +
+ +
+ +
+
+ +
+ ${HeaderLibraryAccess} + +
+ +
+
+
+
${LibraryAccessHelp}
+
+ +
+ ${HeaderChannelAccess} +
+ +
+
+
+
${ChannelAccessHelp}
+
+ +
+ + + +
+
+
+
\ No newline at end of file diff --git a/users/usernew.js b/users/usernew.js new file mode 100644 index 0000000..0fd9fbe --- /dev/null +++ b/users/usernew.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/approuter.js","./../modules/common/responsehelper.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-select/emby-select.js"],function(_exports,_baseview,_loading,_approuter,_responsehelper,_embyInput,_embyButton,_embyToggle,_embySelect){function loadUser(page,apiClient){page.querySelector(".txtUserName").value="",_loading.default.show();var promise4=apiClient.getJSON(apiClient.getUrl("Library/SelectableMediaFolders",{IsHidden:!1})),apiClient=apiClient.getJSON(apiClient.getUrl("Channels"));Promise.all([promise4,apiClient]).then(function(responses){!function(page,mediaFolders){for(var html="",i=0,length=mediaFolders.length;i"+folder.Name+""}page.querySelector(".folderAccess").innerHTML=html,page.querySelector(".chkEnableAllFolders").checked=!0,page.querySelector(".chkEnableAllFolders").dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!1}))}(page,responses[0]),function(page,channels){for(var html="",i=0,length=channels.length;i'+folder.Name+""}var channelAccessList=page.querySelector(".channelAccess");channelAccessList.innerHTML=html,channelAccessList.classList.remove("hide"),channels.length?page.querySelector(".channelAccessContainer").classList.add("channelAccessContainer-hasChannels"):page.querySelector(".channelAccessContainer").classList.remove("channelAccessContainer-hasChannels"),page.querySelector(".chkEnableAllChannels").checked=!0,page.querySelector(".chkEnableAllChannels").dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!1}))}(page,responses[1].Items),page.querySelector(".selectCopyFromUser").setValues([],!0,[{Id:"",Name:""}]),_loading.default.hide()})}function saveUser(form,apiClient){var createOptions={Name:form.querySelector(".txtUserName").value},copyFromUserId=form.querySelector(".selectCopyFromUser").value,userCopyOptions=[];form.querySelector(".chkCopyUserPolicy").checked&&userCopyOptions.push("UserPolicy"),form.querySelector(".chkCopyUserConfiguration").checked&&userCopyOptions.push("UserConfiguration"),form.querySelector(".chkCopyUserData").checked&&userCopyOptions.push("UserData"),copyFromUserId&&(createOptions.CopyFromUserId=copyFromUserId,createOptions.UserCopyOptions=userCopyOptions),apiClient.createUser(createOptions).then(function(user){user.Policy.IsAdministrator=form.querySelector(".chkIsAdmin").checked,copyFromUserId||(user.Policy.EnableSubtitleManagement=user.Policy.IsAdministrator,user.Policy.EnableContentDeletion=user.Policy.IsAdministrator,user.Policy.EnableAllFolders=form.querySelector(".chkEnableAllFolders").checked,user.Policy.EnabledFolders=user.Policy.EnableAllFolders?[]:Array.prototype.filter.call(form.querySelectorAll(".chkFolder"),function(i){return i.checked}).map(function(i){return i.getAttribute("data-id")}),user.Policy.EnableAllChannels=form.querySelector(".chkEnableAllChannels").checked,user.Policy.EnabledChannels=user.Policy.EnableAllChannels?[]:Array.prototype.filter.call(form.querySelectorAll(".chkChannel"),function(i){return i.checked}).map(function(i){return i.getAttribute("data-id")})),apiClient.updateUserPolicy(user.Id,user.Policy).then(function(){!function(user){_approuter.default.show("users/user?userId="+user.Id)}(user)})},function(response){if(_loading.default.hide(),400!==response.status)return _responsehelper.default.handleErrorResponse(response);var options;options={text:form.querySelector(".labelNewUserNameHelp").innerHTML},Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})})}function loadUsers(context,apiClient){context.querySelector(".selectCopyFromUser").getItems=function(query){return(query=Object.assign({SortBy:"SortName",SortOrder:"Ascending",EnableImages:!1},query)).StartIndex&&query.StartIndex--,this.getUsersQueryResult(query).then(function(result){return!query.StartIndex&&query.Limit&&result.Items.unshift({Name:"",Id:""}),!1!==query.EnableTotalRecordCount&&result.TotalRecordCount++,result})}.bind(apiClient)}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector(".btnCancel").addEventListener("click",function(){_approuter.default.back()}),view.querySelector(".chkEnableAllChannels").addEventListener("change",function(){this.checked?view.querySelector(".channelAccess").classList.add("hide"):view.querySelector(".channelAccess").classList.remove("hide")}),view.querySelector(".chkEnableAllFolders").addEventListener("change",function(){this.checked?view.querySelector(".folderAccess").classList.add("hide"):view.querySelector(".folderAccess").classList.remove("hide")}),view.querySelector(".selectCopyFromUser").addEventListener("change",function(){var channelAccessContainer=view.querySelector(".channelAccessContainer");this.value?(view.querySelector(".folderAccessContainer").classList.add("hide"),channelAccessContainer.classList.add("hide"),view.querySelector(".copyOptionsContainer").classList.remove("hide")):(view.querySelector(".folderAccessContainer").classList.remove("hide"),view.querySelector(".copyOptionsContainer").classList.add("hide"),channelAccessContainer.classList.contains("channelAccessContainer-hasChannels")?channelAccessContainer.classList.remove("hide"):channelAccessContainer.classList.add("hide"))}),view.querySelector(".newUserProfileForm").addEventListener("submit",function(e){var form=e.target;return _loading.default.show(),saveUser(form,this.getApiClient()),e.preventDefault(),e.stopPropagation(),!1}.bind(this)),this.getApiClient().isMinServerVersion("4.9.0.41")&&view.querySelector(".fldCopyUserData").classList.remove("hide"),loadUsers(this.view,this.getApiClient())}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments),loadUser(this.view,this.getApiClient())};_exports.default=View}); \ No newline at end of file diff --git a/users/users.js b/users/users.js new file mode 100644 index 0000000..1dfd48b --- /dev/null +++ b/users/users.js @@ -0,0 +1 @@ +define(["exports","./../list/list.js","./../modules/common/globalize.js","./../modules/approuter.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-button/paper-icon-button-light.js","./../modules/emby-elements/emby-scroller/emby-scroller.js"],function(_exports,_list,_globalize,_approuter,_embyButton,_paperIconButtonLight,_embyScroller){function showNewUserDialog(e){_approuter.default.show("users/new")}function UsersPage(view,params){_list.default.call(this,view,params),function(view){view.querySelector(".listTotalRecordCount").insertAdjacentHTML("afterend",'")}(view),view.querySelector(".btnAddUser").addEventListener("click",showNewUserDialog),this.itemsContainer.setAttribute("data-monitor","Users")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles"]),Object.assign(UsersPage.prototype,_list.default.prototype),UsersPage.prototype.getItemTypes=function(){return["User"]},UsersPage.prototype.supportsAlphaPicker=function(){return!0},UsersPage.prototype.getItemCountText=function(numItems){return 1===numItems?_globalize.default.translate("OneUser"):_globalize.default.translate("UserCountValue",numItems)},UsersPage.prototype.getSettingsKey=function(){return"users"},UsersPage.prototype.setTitle=function(){},UsersPage.prototype.getBaseListRendererOptions=function(){var options=_list.default.prototype.getBaseListRendererOptions.apply(this,arguments);return options.draggable=!1,options.draggableXActions=!0,options.playQueueIndicator=!1,options};_exports.default=UsersPage}); \ No newline at end of file diff --git a/videoosd/basetab.js b/videoosd/basetab.js new file mode 100644 index 0000000..e5b4729 --- /dev/null +++ b/videoosd/basetab.js @@ -0,0 +1 @@ +define(["exports","./../modules/emby-apiclient/connectionmanager.js","./../modules/emby-apiclient/events.js"],function(_exports,_connectionmanager,_events){function BaseTab(view){this.view=view}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,BaseTab.prototype.loadTemplate=function(){return Promise.resolve()},BaseTab.prototype.onResume=function(options){var currentOptions,instance;return options.refresh||!(currentOptions=this.currentOptions)||options.displayItem===currentOptions.displayItem&&options.item===currentOptions.item||(options.refresh=!0),this.needsRefresh&&(options.refresh=!0),this.currentOptions=options,this.apiClient=_connectionmanager.default.getApiClient(options.item),this.paused=!1,this.templateLoaded?Promise.resolve():(instance=this).loadTemplate().then(function(){instance.templateLoaded=!0})},BaseTab.prototype.onPause=function(){this.paused=!0},BaseTab.prototype.onTimeUpdate=function(positionTicks,runtimeTicks){this.positionTicks=positionTicks},BaseTab.prototype.onItemUpdated=function(options){this.currentOptions=options,this.paused?this.needsRefresh=!0:this.refreshItem()},BaseTab.prototype.refreshItem=function(){this.needsRefresh=!1},BaseTab.prototype.closeTab=function(){_events.default.trigger(this,"closerequested")},BaseTab.prototype.destroy=function(){this.paused=null,this.view=null,this.currentOptions=null,this.apiClient=null,this.templateLoaded=null,this.positionTicks=null};_exports.default=BaseTab}); \ No newline at end of file diff --git a/videoosd/chapters.js b/videoosd/chapters.js new file mode 100644 index 0000000..7dbf053 --- /dev/null +++ b/videoosd/chapters.js @@ -0,0 +1 @@ +define(["exports","./../modules/listview/listview.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/focusmanager.js"],function(_exports,_listview,_embyScroller,_embyItemscontainer,_focusmanager){function ChaptersRenderer(options){options=(this.options=options).parent,function(parent){parent.insertAdjacentHTML("afterbegin",'
'),parent.querySelector(".osdChapers")}(options),options=options.querySelector(".osdChaptersItemsContainer");options.fetchData=function(query){return this.getItemsInternal().then(function(items){var totalRecordCount=items.length;return{TotalRecordCount:totalRecordCount,Items:items}})}.bind(this),options.virtualChunkSize=30,options.getListOptions=function(items){return{renderer:_listview.default,options:{action:"seektoposition",playAction:"seektoposition",multiSelect:!1,contextMenu:!1,imagePlayButton:!0,mediaInfo:!1,enableSideMediaInfo:!1,enableUserDataButtons:!1,fields:["Name","ChapterTime"],moreButton:!1,highlight:!1,draggable:!1,draggableXActions:!1},virtualScrollLayout:"vertical-grid"}}.bind(this),this.itemsContainer=options,this.currentIndex=-1}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,ChaptersRenderer.prototype.getItemsInternal=function(){return Promise.resolve(this.currentChapters||[])},ChaptersRenderer.prototype.onPlaybackStopped=function(){},ChaptersRenderer.prototype.pause=function(){this.paused=!0,this.itemsContainer&&this.itemsContainer.pause&&this.itemsContainer.pause()},ChaptersRenderer.prototype.focus=function(){this.selectedElement&&_focusmanager.default.focus(this.selectedElement)},ChaptersRenderer.prototype.resume=function(options){this.paused=!1,this.itemsContainer.resume?this.itemsContainer.resume():this.itemsContainer.addEventListener("upgraded",function(e){e.target.resume(this)}.bind(options)),null!=this.currentTime&&this.onTimeUpdate(this.currentTime)},ChaptersRenderer.prototype.refreshEvents=function(events){this.itemsContainer.refreshItems()},ChaptersRenderer.prototype.updateItem=function(item,chapters){var changed=this.currentItem!==item;this.currentItem=item,this.currentChapters=chapters,changed&&this.itemsContainer.notifyRefreshNeeded(!0)},ChaptersRenderer.prototype.onTimeUpdate=function(positionTicks,runtimeTicks){this.currentTime=positionTicks,this.paused||this.itemsContainer},ChaptersRenderer.prototype.destroy=function(){var options=this.options;options&&(options=options.parent)&&(options.innerHTML="",options.classList.add("hide")),this.currentItem=null,this.currentChapters=null,this.currentTime=null,this.paused=null,this.options=null,this.itemsContainer=null,this.currentIndex=null,this.selectedElement=null};_exports.default=ChaptersRenderer}); \ No newline at end of file diff --git a/videoosd/chapterstab.js b/videoosd/chapterstab.js new file mode 100644 index 0000000..c77eabe --- /dev/null +++ b/videoosd/chapterstab.js @@ -0,0 +1 @@ +define(["exports","./basetab.js","./../modules/cardbuilder/cardbuilder.js","./../modules/common/playback/playbackmanager.js","./../modules/focusmanager.js","./../modules/layoutmanager.js"],function(_exports,_basetab,_cardbuilder,_playbackmanager,_focusmanager,_layoutmanager){function ChaptersTab(view){_basetab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(ChaptersTab.prototype,_basetab.default.prototype);function updateWatchingText(instance){var currentTime=instance.positionTicks;if(null!=currentTime){for(var previousWatchingIndex,itemsContainer=instance.itemsContainer,previousWatchingCard=null==(instance=itemsContainer.querySelector(".cardText-currentwatching"))?void 0:instance.closest(".card"),items=itemsContainer.getItems(),i=0,length=items.length;i=item.StartPositionTicks&¤tTime<=item.StartPositionTicks+(item.DurationTicks||0)){var index=itemsContainer.indexOfItemId(item.Id);if(-1!==index){if(itemsContainer.getElement(index)===previousWatchingCard)return;itemsContainer.onItemUpdated(index,item);break}}}previousWatchingCard&&(instance=itemsContainer.getItemFromElement(previousWatchingCard))&&-1!==(previousWatchingIndex=itemsContainer.indexOfItemId(instance.Id))&&itemsContainer.onItemUpdated(previousWatchingIndex,instance)}}ChaptersTab.prototype.loadTemplate=function(){var view=this.view;return view.innerHTML='\n
\n
\n
\n',this.itemsContainer=view.querySelector(".itemsContainer"),this.itemsContainer.fetchData=function(query){var chapters=this.currentOptions.currentDisplayChapters||[],totalItems=chapters.length;return query&&(chapters=chapters.slice(query.StartIndex||0),query.Limit)&&chapters.length>query.Limit&&(chapters.length=query.Limit),Promise.resolve({Items:chapters,TotalRecordCount:totalItems})}.bind(this),this.itemsContainer.getListOptions=function(items){return{renderer:_cardbuilder.default,options:{shape:"autooverflow",fields:["Name","ChapterTime","ChapterWatching"],multiSelect:!1,contextMenu:!1,playedButton:!1,ratingButton:!1,action:"custom",playAction:"custom",enableUserData:!1,draggable:!1,cardClass:"videoOsd-itemstab-card videoOsd-itemstab-card-threeline",defaultShape:"backdrop",allowBottomPadding:!1,background:"black",textLinks:!1,enableFocusScaling:!1,playQueueIndicator:!1},virtualScrollLayout:"horizontal-grid"}}.bind(this),this.itemsContainer.addEventListener("action-null",function(e){e=e.detail.item,_playbackmanager.default.seek(e.StartPositionTicks||0),this.closeTab()}.bind(this)),Promise.resolve()},ChaptersTab.prototype.scrollToCurrentItem=function(focus,hasFocus){this.paused||this.view.contains(document.activeElement)||(focus&&hasFocus?_focusmanager.default.focus(this.itemsContainer):function(instance,focus){var currentIndex=instance.getCurrentIndex();console.log("scrolling to chapter index: "+currentIndex+", focus: "+focus),instance.itemsContainer.scrollToIndex(currentIndex,{offsetLeft:"-padding-inline-start"},focus)}(this,focus))},ChaptersTab.prototype.onResume=function(options){var instance=this;return _basetab.default.prototype.onResume.apply(this,arguments).then(function(){var optionsWithoutRefresh=Object.assign(Object.assign({},options),{refresh:!1}),hasFocus=instance.itemsContainer.contains(document.activeElement);return instance.itemsContainer.resume(optionsWithoutRefresh).then(function(){options.refresh?instance.refreshItem(options):(instance.scrollToCurrentItem(options.autoFocus||hasFocus,hasFocus),updateWatchingText(instance))})})},ChaptersTab.prototype.refreshItem=function(options){_basetab.default.prototype.refreshItem.apply(this,arguments);var instance=this,hasFocus=instance.itemsContainer.contains(document.activeElement);return instance.itemsContainer.refreshItems(options).then(function(){instance.scrollToCurrentItem(options.autoFocus||hasFocus,hasFocus)})},ChaptersTab.prototype.onTimeUpdate=function(positionTicks,runtimeTicks){_basetab.default.prototype.onTimeUpdate.apply(this,arguments),this.paused||(_layoutmanager.default.tv&&this.scrollToCurrentItem(),updateWatchingText(this))},ChaptersTab.prototype.getCurrentIndex=function(){for(var chapters=this.currentOptions.currentDisplayChapters||[],positionTicks=this.positionTicks||0,i=0,length=chapters.length;i\n
\n
\n \n
\n
\n
\n
\n\n \n \n
\n \n
\n ',view.querySelector(".btnPlayFromBeginningText").innerHTML=_globalize.default.translate("FromBeginning"),view.querySelector(".btnInfoTabOverviewText").addEventListener("click",onReadMoreClick.bind(this)),view.querySelector(".btnInfoTabReadMore").addEventListener("click",onReadMoreClick.bind(this)),view.querySelector(".btnPlayFromBeginning").addEventListener("click",function(e){_playbackmanager.default.seek(0)}.bind(this)),this.infoTabButtonsContainer=view.querySelector(".infoTabButtonsContainer"),_layoutmanager.default.tv||this.infoTabButtonsContainer.classList.add("infoTabButtonsContainer-autohide"),initDetailImage(this,view),Promise.resolve()},InfoTab.prototype.refreshItem=function(options){_basetab.default.prototype.refreshItem.apply(this,arguments),this.imageItemsContainer.refreshItems(options);var currentOptions=this.currentOptions,item=currentOptions.displayItem,mediaSource=currentOptions.mediaSource,currentOptions=currentOptions.currentPlayer,titleElem=this.view.querySelector(".videoosd-info-title"),title2Elem=this.view.querySelector(".videoosd-info-title2"),seriesName=item.SeriesName||(item.IsSeries||item.EpisodeTitle?item.Name:null),seriesName=(seriesName?(titleElem.innerHTML=seriesName,"Program"===item.Type?title2Elem.classList.add("hide"):(title2Elem.innerHTML=_itemmanager.default.getDisplayName(item,{}),title2Elem.classList.remove("hide"))):(titleElem.innerHTML=_itemmanager.default.getDisplayName(item,{}),title2Elem.classList.add("hide")),item.Overview),titleElem=seriesName?_dom.default.stripScripts(seriesName):"";!function(elem,overview){var textElement=elem.querySelector(".osdinfo-overview-text"),btnReadMore=elem.querySelector(".btnInfoTabReadMore");btnReadMore.innerHTML=_globalize.default.translate("More"),_layoutmanager.default.tv?(elem.classList.remove("videoosd-info-overview-scroll"),textElement.classList.add("osdinfo-overview-text-readmore")):(elem.classList.add("videoosd-info-overview-scroll"),textElement.classList.remove("osdinfo-overview-text-readmore")),overview?(textElement.innerHTML=overview,elem.classList.remove("hide"),overview=textElement.closest("button"),_layoutmanager.default.tv?overview.removeAttribute("disabled"):overview.setAttribute("disabled","disabled"),btnReadMore.classList.add("hide")):(elem.classList.add("hide"),textElement.innerHTML="")}(this.view.querySelector(".videoosd-info-overview"),titleElem),_mediainfo.default.fillPrimaryMediaInfo(this.view.querySelector(".videoosd-info-mediainfo"),item,{endsAt:!1,bitrate:"Audio"===item.MediaType,mediaSource:mediaSource}),_mediainfo.default.fillSecondaryMediaInfo(this.view.querySelector(".videoosd-info-mediainfo2"),item,{mediaSource:mediaSource}),function(instance,mediaSource,currentPlayer){var infos,currentIndex,instance=instance.view.querySelector(".videoosd-info-mediasourceInfo");mediaSource&&(infos=[],(mediaSource=(mediaSource.MediaStreams||[]).filter(function(m){return"Video"===m.Type})[0])&&infos.push('
'+mediaSource.DisplayTitle+"
"),mediaSource=_playbackmanager.default.audioTracks(currentPlayer),currentIndex=_playbackmanager.default.getAudioStreamIndex(currentPlayer),(currentPlayer=mediaSource.filter(function(m){return m.Index===currentIndex})[0])&&infos.push('
'+currentPlayer.DisplayTitle+"
"),instance.innerHTML=infos.join(""),infos.length)?instance.classList.remove("hide"):instance.classList.add("hide")}(this,mediaSource,currentOptions),mediaSource.RunTimeTicks?this.infoTabButtonsContainer.classList.remove("hide"):this.infoTabButtonsContainer.classList.add("hide")},InfoTab.prototype.onResume=function(options){var instance=this;return _basetab.default.prototype.onResume.apply(this,arguments).then(function(){var optionsWithoutRefresh=Object.assign(Object.assign({},options),{refresh:!1});return instance.imageItemsContainer.resume(optionsWithoutRefresh).then(function(){options.refresh&&instance.refreshItem(options)})})},InfoTab.prototype.onPause=function(){_basetab.default.prototype.onPause.apply(this,arguments),this.imageItemsContainer.pause()},InfoTab.prototype.destroy=function(){_basetab.default.prototype.destroy.apply(this,arguments),this.endsAtElem=null,this.imageItemsContainer=null,this.infoTabButtonsContainer=null};_exports.default=InfoTab}); \ No newline at end of file diff --git a/videoosd/lyrics.css b/videoosd/lyrics.css new file mode 100644 index 0000000..0c0be1e --- /dev/null +++ b/videoosd/lyrics.css @@ -0,0 +1 @@ +:root{--lyrics-transform-origin:left center}.rtl:root{--lyrics-transform-origin:right center}.lyricsScroller{-webkit-mask-image:linear-gradient(to bottom,transparent 0%,black 5%,black 90%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,black 5%,black 90%,transparent 100%)}.osdLyricsItemsContainer{-webkit-padding-end:6ch!important;padding-inline-end:6ch!important}@media all and (orientation:landscape){.osdLyricsItemsContainer{-webkit-padding-start:0!important;padding-inline-start:0!important}}.lyricsItem{margin:.25em 0;padding:0;font-size:190%;font-weight:600;line-height:1.2;text-align:start}.lyricsItem .listItem-content{padding:.16em 1ch}.lyricsItem.listItem-focusscale:focus{-webkit-transform:none!important;transform:none!important;background:0 0!important}.lyricsItem .listItemBody{padding:0!important;min-height:initial!important;overflow:visible}.lyricsItem .listItemBodyText{white-space:normal!important;transition:-webkit-transform .5s ease-out;transition:transform .5s ease-out;-webkit-transform-origin:left center;transform-origin:left center;-webkit-transform-origin:var(--lyrics-transform-origin);transform-origin:var(--lyrics-transform-origin)}.lyricsItem-selected{color:inherit}.lyricsItem-selected .listItemBodyText{-webkit-transform:scale(1.06);transform:scale(1.06)} \ No newline at end of file diff --git a/videoosd/lyrics.js b/videoosd/lyrics.js new file mode 100644 index 0000000..a8bca44 --- /dev/null +++ b/videoosd/lyrics.js @@ -0,0 +1 @@ +define(["exports","./../modules/emby-apiclient/connectionmanager.js","./../modules/listview/listview.js","./../modules/registrationservices/registrationservices.js","./../modules/common/globalize.js","./../modules/common/inputmanager.js","./../modules/layoutmanager.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/focusmanager.js"],function(_exports,_connectionmanager,_listview,_registrationservices,_globalize,_inputmanager,_layoutmanager,_embyScroller,_embyItemscontainer,_focusmanager){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!videoosd/lyrics.css"]);var FocusScrollOffset="-40px";function normalizeTrackEvents(trackEvents,item,apiClient){for(var i=0,length=trackEvents.length;i',parent.innerHTML=(html+='
')+('
')+"
"+"
"+""}(options),options.querySelector(".osdLyricsItemsContainer"));itemsContainer.fetchData=function(query){return this.getItemsInternal().then(function(items){var totalRecordCount=items.length;return{TotalRecordCount:totalRecordCount,Items:items}})}.bind(this),itemsContainer.virtualChunkSize=30,itemsContainer.getListOptions=function(items){return{renderer:_listview.default,options:{fields:["Text"],playQueueIndicator:!1,action:"seektoposition",image:!1,moreButton:!1,highlight:!1,verticalPadding:!1,multiSelect:!1,contextMenu:!1,mediaInfo:!1,enableUserDataButtons:!1,draggable:!1,draggableXActions:!1,itemClass:"lyricsItem secondaryText"},virtualScrollLayout:"vertical-grid"}}.bind(this),this.itemsContainer=itemsContainer,this.currentIndex=-1,this.scroller=options.querySelector(".lyricsScroller")}LyricsRenderer.prototype.getItemsInternal=function(){this.needsRefresh=!1;var apiClient,mediaSource,track,item=this.currentItem;return item&&(apiClient=_connectionmanager.default.getApiClient(item),mediaSource=item.MediaSources[0])&&(track=mediaSource.MediaStreams.filter(function(t){return"Subtitle"===t.Type&&t.Index===mediaSource.DefaultSubtitleStreamIndex})[0])?_registrationservices.default.validateFeature("dvr",{showDialog:!1,viewOnly:!0}).then(function(){var url=apiClient.getUrl("Items/"+item.Id+"/"+mediaSource.Id+"/Subtitles/"+track.Index+"/Stream.js",{});return apiClient.getJSON(url).then(function(result){result=result.TrackEvents;return normalizeTrackEvents(result,item,apiClient),result})},function(){return function(item,apiClient){var trackEvents=[];return trackEvents.push({Text:_globalize.default.translate("Lyrics")}),trackEvents.push({Text:_globalize.default.translate("MessageUnlockAppWithSupporter")}),normalizeTrackEvents(trackEvents,item,apiClient),trackEvents}(item,apiClient)}):Promise.resolve([])},LyricsRenderer.prototype.onPlaybackStopped=function(){},LyricsRenderer.prototype.pause=function(){this.paused=!0,this.itemsContainer&&this.itemsContainer.pause&&this.itemsContainer.pause()},LyricsRenderer.prototype.focus=function(){this.selectedElement&&_focusmanager.default.focus(this.selectedElement)},LyricsRenderer.prototype.resume=function(options){this.paused=!1,this.itemsContainer.resume?this.itemsContainer.resume():this.itemsContainer.addEventListener("upgraded",function(e){e.target.resume(this)}.bind(options)),null!=this.currentTime&&this.onTimeUpdate(this.currentTime)},LyricsRenderer.prototype.refreshEvents=function(events){this.itemsContainer.refreshItems()},LyricsRenderer.prototype.updateItem=function(item){var changed=this.currentItem!==item;this.currentItem=item,changed&&this.itemsContainer.notifyRefreshNeeded(!0)},LyricsRenderer.prototype.onTimeUpdate=function(positionTicks,runtimeTicks){if(this.currentTime=positionTicks,!this.paused){var itemsContainer=this.itemsContainer;if(itemsContainer){var items=itemsContainer.getItems();if(items){for(var index=-1,i=0,length=items.length;i=item.StartPositionTicks)index=i;else if(-1!==index)break}var children,previousIndex=this.currentIndex;index===previousIndex||(children=itemsContainer.children,previousIndex=-1===previousIndex?null:children[previousIndex],children=-1===(this.currentIndex=index)?null:children[index],previousIndex&&(previousIndex.classList.remove("lyricsItem-selected"),previousIndex.offsetWidth),this.selectedElement=children,Date.now()-(this.lastDirectionalInput||0)<2e3)||children&&(children.classList.add("lyricsItem-selected"),children!==document.activeElement)&&itemsContainer.scrollToIndex(index,{offsetTop:FocusScrollOffset},!!_layoutmanager.default.tv)}}}},LyricsRenderer.prototype.destroy=function(){var options=this.options;options&&(options=options.parent)&&(options.innerHTML="",options.classList.add("hide")),this.currentItem=null,this.currentTime=null,this.paused=null,this.options=null,this.itemsContainer=null,this.scroller=null,this.currentIndex=null,this.lastDirectionalInput=null,this.selectedElement=null};_exports.default=LyricsRenderer}); \ No newline at end of file diff --git a/videoosd/onnowtab.js b/videoosd/onnowtab.js new file mode 100644 index 0000000..ad5519c --- /dev/null +++ b/videoosd/onnowtab.js @@ -0,0 +1 @@ +define(["exports","./basetab.js","./../modules/cardbuilder/cardbuilder.js","./../modules/common/usersettings/usersettings.js","./../modules/common/globalize.js","./../modules/layoutmanager.js","./../modules/focusmanager.js","./../modules/common/inputmanager.js"],function(_exports,_basetab,_cardbuilder,_usersettings,_globalize,_layoutmanager,_focusmanager,_inputmanager){function fetchItems(query){var apiClient=this.apiClient;return query=Object.assign({UserId:apiClient.getCurrentUserId(),IsAiring:!0,ImageTypeLimit:1,EnableImageTypes:"Primary,Thumb,Backdrop",Fields:"ProgramPrimaryImageAspectRatio,PrimaryImageAspectRatio",EnableUserData:!1,SortBy:"ChannelNumber,SortName"},query),_usersettings.default.addLiveTvChannelSortingToQuery(query,_globalize.default),apiClient.getLiveTvChannels(query)}function OnNowTab(view){_basetab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(OnNowTab.prototype,_basetab.default.prototype);var FocusScrollOffset="-padding-inline-start";function scrollToIndex(instance,index,focus,scrollBehavior){instance.itemsContainer.scrollToIndex(index,{offsetLeft:FocusScrollOffset,behavior:scrollBehavior},focus)}function triggerCommand(name,e){e={sourceElement:e.target,repeat:e.repeat,originalEvent:e};_inputmanager.default.trigger(name,e)}function onInputCommand(e){var detail=e.detail;switch(detail.command){case"channelup":triggerCommand("rtl"===document.dir?"left":"right",detail.originalEvent||e),e.preventDefault();break;case"channeldown":triggerCommand("rtl"===document.dir?"right":"left",detail.originalEvent||e),e.preventDefault()}}OnNowTab.prototype.loadTemplate=function(){var view=this.view;return view.innerHTML='\n
\n
\n
\n',this.itemsContainer=view.querySelector(".itemsContainer"),this.itemsContainer.fetchData=fetchItems.bind(this),this.itemsContainer.getListOptions=function(items){var forceBackdrop=!!_layoutmanager.default.tv;return{renderer:_cardbuilder.default,options:{preferThumb:forceBackdrop?null:"auto",inheritThumb:!1,shape:forceBackdrop?"backdrop":"auto",contextMenu:!1,multiSelect:!1,programsAsSeries:!1,showCurrentProgramImage:!0,defaultShape:"portrait",action:"play",cardClass:"videoOsd-itemstab-card videoOsd-itemstab-card-threeline",fields:["CurrentProgramName","CurrentProgramParentNameOrName","CurrentProgramTime"],allowBottomPadding:!1,defaultBackground:!0,textLinks:!1,enableFocusScaling:!1},virtualScrollLayout:"horizontal-grid"}}.bind(this),_inputmanager.default.on(this.itemsContainer,onInputCommand),Promise.resolve()},OnNowTab.prototype.scrollToCurrentItem=function(focus,scrollBehavior){this.paused||this.itemsContainer.contains(document.activeElement)||(focus?_focusmanager.default.focus(this.itemsContainer):function(instance,focus,scrollBehavior){var itemId,item=instance.item;item&&"TvChannel"===item.Type?(itemId=item.Id,-1!==(item=instance.itemsContainer.indexOfItemId(itemId))?scrollToIndex(instance,item,focus,scrollBehavior):fetchItems.call(instance,{Limit:0}).then(function(totalResult){totalResult.TotalRecordCount<=1?scrollToIndex(instance,0,focus,scrollBehavior):fetchItems.call(instance,{StartItemId:itemId,Limit:0}).then(function(result){result=result.TotalRecordCount?Math.max(totalResult.TotalRecordCount-result.TotalRecordCount,0):0;scrollToIndex(instance,result,focus,scrollBehavior)})})):scrollToIndex(instance,0,focus,scrollBehavior)}(this,focus,scrollBehavior))},OnNowTab.prototype.onResume=function(options){var instance=this;return _basetab.default.prototype.onResume.apply(this,arguments).then(function(){var optionsWithoutRefresh=Object.assign(Object.assign({},options),{refresh:!1}),hasFocus=instance.itemsContainer.contains(document.activeElement);return instance.itemsContainer.resume(optionsWithoutRefresh).then(function(){options.refresh?instance.refreshItem(options):instance.scrollToCurrentItem(hasFocus,"instant")})})},OnNowTab.prototype.refreshItem=function(options){_basetab.default.prototype.refreshItem.apply(this,arguments);var instance=this,hasFocus=instance.itemsContainer.contains(document.activeElement);return instance.itemsContainer.refreshItems(options).then(function(){instance.scrollToCurrentItem(hasFocus)})},OnNowTab.prototype.onPause=function(){_basetab.default.prototype.onPause.apply(this,arguments),this.itemsContainer.pause()},OnNowTab.prototype.destroy=function(){_basetab.default.prototype.destroy.apply(this,arguments),this.itemsContainer=null,this.item=null};_exports.default=OnNowTab}); \ No newline at end of file diff --git a/videoosd/peopletab.js b/videoosd/peopletab.js new file mode 100644 index 0000000..96cd6cd --- /dev/null +++ b/videoosd/peopletab.js @@ -0,0 +1 @@ +define(["exports","./basetab.js","./../modules/cardbuilder/cardbuilder.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/itemmanager/itemmanager.js","./../modules/common/globalize.js","./../modules/common/appsettings.js"],function(_exports,_basetab,_cardbuilder,_connectionmanager,_itemmanager,_globalize,_appsettings){function onCardAction(e){var e=e.detail.item,apiClient=_connectionmanager.default.getApiClient(e);apiClient.getItem(apiClient.getCurrentUserId(),e.Id).then(function(item){return options={preFormattedText:item.Overview||"",confirmButton:!1,title:_itemmanager.default.getDisplayName(item),centerText:!1,confirmText:_globalize.default.translate("Close"),item:item},Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)});var options})}function PeopleTab(view){_basetab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(PeopleTab.prototype,_basetab.default.prototype),PeopleTab.prototype.loadTemplate=function(){var view=this.view;return view.innerHTML='\n
\n
\n
\n',this.itemsContainer=view.querySelector(".itemsContainer"),this.itemsContainer.fetchData=function(query){var item=this.currentOptions.displayItem,serverId=item.ServerId,totalRecordCount=(item=(item.People||[]).map(function(p){return(p=Object.assign({},p)).ServerId=serverId,"Person"!==p.Type&&(p.PersonType=p.Type,p.Type="Person"),p})).length;return query&&(item=item.slice(query.StartIndex||0),query.Limit)&&item.length>query.Limit&&(item.length=query.Limit),Promise.resolve({Items:item,TotalRecordCount:totalRecordCount})}.bind(this),this.itemsContainer.getListOptions=function(items){return{renderer:_cardbuilder.default,options:{shape:"portrait",cardLayout:!1,centerText:!0,sideFooter:!1,fields:["Name","PersonRole"],cardFooterAside:!1,showPersonRoleOrType:!0,multiSelect:!1,coverImage:!0,draggable:!1,contextMenu:!1,playedButton:!1,ratingButton:!1,cardClass:"videoOsd-itemstab-card videoOsd-itemstab-card-twoline",action:_appsettings.default.enableVideoUnderUI()?null:"custom",enableUserData:!1,allowBottomPadding:!1,textLinks:!1,imageClass:null,enableFocusScaling:!1,playQueueIndicator:!1},virtualScrollLayout:"horizontal-grid"}}.bind(this),this.itemsContainer.addEventListener("action-null",onCardAction.bind(this)),Promise.resolve()},PeopleTab.prototype.onResume=function(options){var instance=this;return _basetab.default.prototype.onResume.apply(this,arguments).then(function(){var optionsWithoutRefresh=Object.assign(Object.assign({},options),{refresh:!1});return instance.itemsContainer.resume(optionsWithoutRefresh).then(function(){options.refresh&&instance.refreshItem(options)})})},PeopleTab.prototype.refreshItem=function(options){_basetab.default.prototype.refreshItem.apply(this,arguments),this.itemsContainer.refreshItems(options)},PeopleTab.prototype.onPause=function(){_basetab.default.prototype.onPause.apply(this,arguments),this.itemsContainer.pause()},PeopleTab.prototype.destroy=function(){_basetab.default.prototype.destroy.apply(this,arguments),this.itemsContainer=null};_exports.default=PeopleTab}); \ No newline at end of file diff --git a/videoosd/playqueue.js b/videoosd/playqueue.js new file mode 100644 index 0000000..e4e9601 --- /dev/null +++ b/videoosd/playqueue.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/playback/playbackmanager.js","./../modules/listview/listview.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-button/paper-icon-button-light.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js"],function(_exports,_playbackmanager,_listview,_embyScroller,_paperIconButtonLight,_embyItemscontainer){function OsdPlayQueue(options){(this.options=options).parent=function(parent){return parent.insertAdjacentHTML("afterbegin",'
'),parent.querySelector(".osdPlayQueue")}(options.parent);var parent=options.parent;this.playlistElement=options.parent,this.itemsContainer=parent.querySelector(".itemsContainer"),this.itemsContainer.fetchData=function(query){var player=this.currentPlayer;return this.empty||!player?Promise.resolve({Items:[],TotalRecordCount:0}):_playbackmanager.default.getPlaylist(query||{},player)}.bind(this),this.itemsContainer.afterRefresh=function(){this.setScrollToTrack=!0,this.scrollToTrack&&(this.scrollToTrack=null,this.scrollCurrentTrackToTop())}.bind(this),this.itemsContainer.getListOptions=function(items){return{renderer:_listview.default,options:{smallIcon:!0,action:"setplaylistindex",playAction:"setplaylistindex",fields:["Name","ParentName"],enableUserDataButtons:!1,moreButton:!1,removeFromPlayQueueButton:!0,dragReorder:!0,autoHideBorderOnTouch:!0,hideMoreButtonOnTouch:!0,autoMoveParentName:!0,buttonCommands:["removefromplayqueue"]},virtualScrollLayout:"vertical-list"}}.bind(this),this.itemsContainer.scrollResizeObserver=!0,this.itemsContainer.addEventListener("itemdrop",function(e){e.preventDefault();var newIndex=e.detail.newIndex,e=e.detail.items[0].PlaylistItemId;_playbackmanager.default.movePlaylistItem(e,newIndex,this.currentPlayer)}.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,OsdPlayQueue.prototype.scrollCurrentTrackToTop=function(){var itemsContainer,index=_playbackmanager.default.getCurrentPlaylistIndex(this.currentPlayer);-1!==index&&(itemsContainer=this.playlistElement.querySelector(".itemsContainer"))&&itemsContainer.scrollToIndex(index,{behavior:"instant",skipWhenVisibleY:!0},!1)},OsdPlayQueue.prototype.setPausedState=function(paused){},OsdPlayQueue.prototype.updatePlaylist=function(player,playlistItemId,playlistIndex,playlistLength){this.currentPlayer=player,!1!==this.setScrollToTrack&&(this.scrollToTrack=!0),this.empty=!playlistLength,this.refreshItems()},OsdPlayQueue.prototype.onPlaybackStopped=function(){this.empty=!0,this.refreshItems()},OsdPlayQueue.prototype.refreshItems=function(){var itemsContainer=this.itemsContainer;if(itemsContainer)return itemsContainer.waitForCustomElementUpgrade().then(function(){itemsContainer.refreshItems()})},OsdPlayQueue.prototype.onPlaylistItemMoved=function(player,e,info){this.itemsContainer.refreshItems()},OsdPlayQueue.prototype.onPlaylistItemRemoved=function(player,e,info){this.itemsContainer.refreshItems()},OsdPlayQueue.prototype.pause=function(){this.paused=!0,this.itemsContainer.pause&&this.itemsContainer.pause()},OsdPlayQueue.prototype.resume=function(options){this.paused=!1;var itemsContainer=this.itemsContainer;return itemsContainer.waitForCustomElementUpgrade().then(function(){itemsContainer.resume(options)})},OsdPlayQueue.prototype.destroy=function(){var options=this.options;options&&(options=options.parent)&&options.remove(),this.options=null,this.currentPlayer=null,this.itemsContainer=null,this.playlistElement=null};_exports.default=OsdPlayQueue}); \ No newline at end of file diff --git a/videoosd/playqueuetab.js b/videoosd/playqueuetab.js new file mode 100644 index 0000000..094ad89 --- /dev/null +++ b/videoosd/playqueuetab.js @@ -0,0 +1 @@ +define(["exports","./basetab.js","./../modules/cardbuilder/cardbuilder.js","./../modules/layoutmanager.js","./../modules/common/playback/playbackmanager.js"],function(_exports,_basetab,_cardbuilder,_layoutmanager,_playbackmanager){function PlayQueueTab(view){_basetab.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(PlayQueueTab.prototype,_basetab.default.prototype);var FocusScrollOffset="-padding-inline-start";function scrollToCurrent(instance,focus,scrollBehavior){var _instance$currentOpti=null==(_instance$currentOpti=instance.currentOptions)?void 0:_instance$currentOpti.currentPlayer;!function(instance,index,focus,scrollBehavior){instance.itemsContainer.scrollToIndex(index,{offsetLeft:FocusScrollOffset,behavior:scrollBehavior},focus)}(instance,_playbackmanager.default.getCurrentPlaylistIndex(_instance$currentOpti),focus,scrollBehavior)}PlayQueueTab.prototype.loadTemplate=function(){var view=this.view;return view.innerHTML='\n
\n
\n
\n',this.itemsContainer=view.querySelector(".itemsContainer"),this.itemsContainer.fetchData=function(query){var _this$currentOptions=null==(_this$currentOptions=this.currentOptions)?void 0:_this$currentOptions.currentPlayer;return _this$currentOptions?_playbackmanager.default.getPlaylist(query||{},_this$currentOptions):Promise.resolve({Items:[],TotalRecordCount:0})}.bind(this),this.itemsContainer.getListOptions=function(items){var forceBackdrop=!!_layoutmanager.default.tv;return{renderer:_cardbuilder.default,options:{preferThumb:forceBackdrop?null:"auto",inheritThumb:!1,shape:forceBackdrop?"backdrop":"auto",contextMenu:!1,multiSelect:!1,action:"setplaylistindex",playAction:"setplaylistindex",cardClass:"videoOsd-itemstab-card videoOsd-itemstab-card-threeline",fields:["ParentName","Name"],allowBottomPadding:!1,defaultBackground:!0,textLinks:!1,enableFocusScaling:!1},virtualScrollLayout:"horizontal-grid"}}.bind(this),Promise.resolve()},PlayQueueTab.prototype.scrollToCurrentItem=function(focus,scrollBehavior){this.paused||this.itemsContainer.contains(document.activeElement)||scrollToCurrent(this,focus,scrollBehavior)},PlayQueueTab.prototype.onResume=function(options){var instance=this;return _basetab.default.prototype.onResume.apply(this,arguments).then(function(){var optionsWithoutRefresh=Object.assign(Object.assign({},options),{refresh:!1}),hasFocus=instance.itemsContainer.contains(document.activeElement);return instance.itemsContainer.resume(optionsWithoutRefresh).then(function(){options.refresh?instance.refreshItem(options):instance.scrollToCurrentItem(hasFocus,"instant")})})},PlayQueueTab.prototype.refreshItem=function(options){_basetab.default.prototype.refreshItem.apply(this,arguments);var instance=this,hasFocus=instance.itemsContainer.contains(document.activeElement);return instance.itemsContainer.refreshItems(options).then(function(){instance.scrollToCurrentItem(hasFocus)})},PlayQueueTab.prototype.onPause=function(){_basetab.default.prototype.onPause.apply(this,arguments),this.itemsContainer.pause()},PlayQueueTab.prototype.destroy=function(){_basetab.default.prototype.destroy.apply(this,arguments),this.itemsContainer=null};_exports.default=PlayQueueTab}); \ No newline at end of file diff --git a/videoosd/specialicons.js b/videoosd/specialicons.js new file mode 100644 index 0000000..2c2b4bf --- /dev/null +++ b/videoosd/specialicons.js @@ -0,0 +1 @@ +define(["exports"],function(_exports){function getDate(month,day){var date=new Date;return date.setHours(0,0,0,0),date.setMonth(month),date.setDate(day),date.getTime()}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var SpecialIcons=[{icon:'\n\n\n\n\n\t\n\t\n\n\n\n',terms:["halloween"],fontSize:"140%",dateStart:getDate(9,31),dateEnd:getDate(10,1)},{icon:'\n \n \n \n \n',terms:["nba","wnba","basketball"]},{icon:'\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n',terms:["nfl"]}];function nameHasTerms(name,terms){if(name){name=" "+name+" ";for(var i=0,length=terms.length;i=specialIcon.dateStart&&now<=specialIcon.dateEnd)return 1}}(specialIcon))return specialIcon;for(var j=0,numNames=names.length;j
'),parent.querySelector(".tvPlayQueueScroller")}(options.parent);options=options.parent;this.itemsContainer=options.querySelector(".itemsContainer"),this.itemsContainer.fetchData=function(query){var player=this.currentPlayer;return this.empty||!player?Promise.resolve({Items:[],TotalRecordCount:0}):_playbackmanager.default.getPlaylist(query||{},player)}.bind(this),this.itemsContainer.getListOptions=function(items){return{renderer:_cardbuilder.default,options:{action:"setplaylistindex",playAction:"setplaylistindex",shape:"autooverflow",fields:["ParentName","Name","ProductionYear"],lines:2,centerText:!0,cardLayout:!1,cardClass:"tvPlayQueueCard",playQueueIndicator:!0,allowBottomPadding:!1},virtualScrollLayout:"horizontal-grid"}}.bind(this),this.itemsContainer.afterRefresh=function(){var focus=this.itemsContainer.contains(document.activeElement);scrollOrFocus(this,focus)}.bind(this),this.itemsContainer.focus=function(){scrollOrFocus(this,!0)}.bind(this),this.itemsContainer.scrollResizeObserver=!0}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!videoosd/tvplayqueue.css"]),OsdPlayQueue.prototype.setPausedState=function(paused){var elem=this.options.parent.querySelector(".activePlaylistCardBox");elem&&(paused?elem.classList.add("paused"):elem.classList.remove("paused"))},OsdPlayQueue.prototype.updatePlaylist=function(player,playlistItemId,playlistIndex,playlistLength){this.currentPlayer=player,this.empty=!playlistLength,this.refreshItems()},OsdPlayQueue.prototype.onPlaybackStopped=function(){this.empty=!0,this.refreshItems()},OsdPlayQueue.prototype.refreshItems=function(){var itemsContainer=this.itemsContainer;if(itemsContainer)return itemsContainer.waitForCustomElementUpgrade().then(function(){itemsContainer.refreshItems()})},OsdPlayQueue.prototype.onPlaylistItemMoved=function(player,e,info){this.itemsContainer.refreshItems()},OsdPlayQueue.prototype.onPlaylistItemRemoved=function(player,e,info){this.itemsContainer.refreshItems()},OsdPlayQueue.prototype.pause=function(){this.paused=!0,this.itemsContainer.pause&&this.itemsContainer.pause()},OsdPlayQueue.prototype.resume=function(options){this.paused=!1;var itemsContainer=this.itemsContainer;return itemsContainer.waitForCustomElementUpgrade().then(function(){itemsContainer.resume(options)})},OsdPlayQueue.prototype.destroy=function(){var options=this.options;options&&(options=options.parent)&&options.remove(),this.options=null,this.currentPlayer=null,this.itemsContainer=null};_exports.default=OsdPlayQueue}); \ No newline at end of file diff --git a/videoosd/videoosd.css b/videoosd/videoosd.css new file mode 100644 index 0000000..1ebc468 --- /dev/null +++ b/videoosd/videoosd.css @@ -0,0 +1,6 @@ +:root{--videoosd-tabs-height:20em;--osd-height:0px}.osdForceHide{display:none!important}@supports selector(:hover) and (--videoosd-tabs-height:clamp(10vh,20em,60vh)){:root{--videoosd-tabs-height:clamp(10vh, 20em, 60vh)}.osd-tab-guide:root{--videoosd-tabs-height:clamp(10vh, 32em, 60vh)}}.layout-tv:root{--videoosd-tabs-height:38vh}.layout-tv.osd-tab-guide:root{--videoosd-tabs-height:64vh}.videoOsdHeader{will-change:opacity;transition:opacity .4s ease-out;text-shadow:none!important}.videoOsdHeader-locked{display:none!important}.videoOsdHeader-hidden{opacity:0}.videoOsdHeader .headerButton:not(.headerBackButton):not(.headerCastButton){display:none}.chapterThumbImageContainer{background-position:center center;background-size:contain;background-repeat:no-repeat;width:24vw;height:13.5vw;width:clamp(20vmax,22em,35vmin);height:calc(clamp(20vmax,22em,35vmin) * 9 / 16);aspect-ratio:16/9;background-color:#000;box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.4)!important;margin-top:-2em}.chapterThumbImageContainer-fourthree{height:calc(clamp(20vmax,22em,35vmin) * 3 / 4);aspect-ratio:4/3}.chapterThumbTextContainer{position:absolute;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;text-shadow:#000 0 0 .5em;font-weight:500;padding:.5em 0;text-align:center}.chapterThumbTextContainer-noimg{position:static}.chapterThumbText{padding:0 1em;margin:0}@supports (aspect-ratio:16 / 9){.chapterThumbImageContainer{width:clamp(20vmax,22em,35vmin);height:auto!important}}.chapterThumbImageContainer-tv{width:29vw;height:16.3125vw}.chapterThumbImageContainer-tv.chapterThumbImageContainer-fourthree{width:24vw;height:18vw;aspect-ratio:4/3}.chapterThumbImageContainer-noimg{width:auto;height:auto;min-width:min(10vw,8em);max-width:min(30vw,30em)}.videoOsdBottom{position:fixed;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;padding-bottom:1.25em;padding-bottom:min(1.75em,1.75vh);padding-left:3%;padding-left:min(5ch,2vw);padding-right:3%;padding-right:min(5ch,2vw);display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-justify-content:flex-end;justify-content:flex-end}@supports (height:calc(3.125em + 2 * max(3em,4em))){.videoOsdBottom{padding-left:max(min(5ch,2vw),env(safe-area-inset-left,0));padding-right:max(min(5ch,2vw),env(safe-area-inset-right,0));padding-bottom:max(min(1.75em,1.75vh),env(safe-area-inset-bottom,0))}@media not all and (min-width:36em){.videoOsdBottom{padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0)}}@media not all and (min-height:36em){.videoOsdBottom{padding-bottom:env(safe-area-inset-bottom,0)}}}.videoOsdBottom-safe{position:static;overflow:hidden;-webkit-flex-grow:1;flex-grow:1}.videoOsdBottom-maincontrols{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-flex-shrink:0;flex-shrink:0;max-height:100%;position:relative;padding:0 1.2em;-webkit-align-content:flex-end;align-content:flex-end}.videoOsdPositionContainer,.videoosd-tabcontainers{-webkit-flex-basis:100%;flex-basis:100%;-webkit-flex-shrink:0;flex-shrink:0}.videoOsdBottom-contentbuttons,.videoOsdBottom-buttons{-webkit-flex-shrink:0;flex-shrink:0}.videoOsd-belowtransportbuttons{-webkit-order:3;order:3;-webkit-flex-basis:100%;flex-basis:100%;-webkit-flex-direction:row;flex-direction:row;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start}.videoOsd-belowtransportbuttons-vertical{-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:initial;align-items:initial}.videoosd-bottom-with-opentab{padding-bottom:min(2em,1.25vh);will-change:initial!important}@supports (height:calc(3.125em + 2 * max(3em,4em))){.videoosd-bottom-with-opentab{padding-bottom:calc(min(2em,1.25vh) + env(safe-area-inset-bottom,0))}}.videoOsdBottom-video{will-change:opacity;transition:opacity .4s ease-out;background:linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,.8) 100%)}.osdPosterContainer{position:fixed;top:var(--header-height,0);bottom:var(--osd-height,16em);left:0;right:0}.osdPosterContainer-remotecontrol{max-height:100%;overflow:hidden;-webkit-justify-content:center;justify-content:center;-webkit-flex-basis:100%;flex-basis:100%;max-height:calc(100% - 22em);position:static;-webkit-align-content:center;align-content:center}.osdRemoteControlImageCard{width:100%;max-width:30vh;margin:0 auto}.osdRemoteControlImageCardBox{margin:.2em!important}.osdRemoteControlImageCardContent{border-radius:.6em!important;box-shadow:0 .06933em .06933em 0 rgba(0,0,0,.14),0 .13866em .06933em -.06933em rgba(0,0,0,.12),0 .06933em .208em 0 rgba(0,0,0,.2)!important}@supports (aspect-ratio:1){.osdRemoteControlImageCard{width:auto!important;max-width:100%;padding-bottom:0!important;aspect-ratio:1;overflow:hidden;height:90vw;max-height:100%}.osdRemoteControlImageCard.backdropCard{aspect-ratio:16/9;height:calc(90vw * (9 / 16))}.osdRemoteControlImageCard.fourThreeCard{aspect-ratio:4/3;height:calc(90vw * (3 / 4))}.osdRemoteControlImageCard.portraitCard{aspect-ratio:2/3;height:calc(90vw * (3 / 2))}}.osdContentSection-split{-webkit-flex-grow:1;flex-grow:1}@media all and (orientation:landscape){@supports (aspect-ratio:1){.osdRemoteControlImageCard{height:30vw}.osdRemoteControlImageCard.backdropCard{height:calc(30vw * (9 / 16))}.osdRemoteControlImageCard.fourThreeCard{height:calc(30vw * (3 / 4))}.osdRemoteControlImageCard.portraitCard{height:calc(30vw * (3 / 2))}}.osdContentSection-split{-webkit-flex-shrink:0;flex-shrink:0;width:55%;max-height:95%;box-sizing:border-box;-webkit-padding-start:4ch;padding-inline-start:4ch}}.osdContentSection-tv-split{-webkit-padding-start:3ch!important;padding-inline-start:3ch!important;-webkit-padding-start:3ch!important;padding-inline-start:3ch!important;position:absolute;top:5em;bottom:8em;right:0;inset-inline-start:initial;inset-inline-end:0;width:67%;z-index:1}.videoOsdText{-webkit-flex-direction:column-reverse;flex-direction:column-reverse;margin-bottom:.75em;-webkit-flex-basis:50%;flex-basis:50%;-webkit-order:0;order:0;max-width:50%}.videoOsdPositionContainer{box-sizing:border-box;font-weight:500;-webkit-order:2;order:2}.videoOsdPositionContainer-autosmall{margin-top:.5em}.videoOsdPositionContainer-vertical{-webkit-flex-wrap:wrap;flex-wrap:wrap;position:relative;z-index:1;-webkit-align-content:center;align-content:center}.videoOsdPositionSliderContainer{-webkit-order:1;order:1;-webkit-flex-basis:100%;flex-basis:100%;margin:.1em 0 .3em!important}.videoOsdPositionText{-webkit-order:2;order:2;-webkit-flex-basis:35%;flex-basis:35%}.videoOsdPositionText-floating{position:absolute;margin-top:1em;left:0;inset-inline-start:0;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-basis:initial;flex-basis:initial}.osd-controller-iconsbeforeposition{position:absolute;right:100%;inset-inline-start:initial;inset-inline-end:100%}.osd-controller-iconsafterposition{position:absolute;left:100%;inset-inline-start:100%;inset-inline-end:initial}.videoOsd-audioInfo{-webkit-order:3;order:3;-webkit-flex-basis:30%;flex-basis:30%;-webkit-justify-content:center;justify-content:center;font-size:92%}.videoOsdDurationText{-webkit-order:4;order:4;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-flex-basis:35%;flex-basis:35%;-webkit-flex-grow:1;flex-grow:1}.videoOsdPositionText:not(.videoOsd-customFont-x0){font-size:92%}.videoOsdDurationText:not(.videoOsd-customFont-x0){font-size:92%}.osd-endsat{display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center}.osd-endsat-dot{margin:0 1ch;font-size:84%}@media not all and (min-width:28em){.osd-endsat{display:none!important}}.videoOsdText-remotecontrol{margin:1.05em 0 .75em;padding:0;-webkit-flex-direction:column;flex-direction:column;text-align:center;-webkit-align-items:center;align-items:center;-webkit-flex-basis:100%;flex-basis:100%;max-width:initial}.videoOsdText-remotecontrol-tv{margin:.25em 0 0}.videoOsdText-remotecontrol-tv h3{font-size:inherit}.videoOsdBottom-tvnowplaying.videoOsdBottom-split .osdPosterContainer{-webkit-margin-start:-30vw;margin-inline-start:-30vw;overflow:hidden;-webkit-justify-content:center;justify-content:center;-webkit-flex-basis:100%;flex-basis:100%;position:static}.videoOsdBottom-tvnowplaying.videoOsdBottom-split .videoOsdText{-webkit-margin-start:-30vw;margin-inline-start:-30vw}@media not all and (orientation:landscape){.osdPosterContainer-remotecontrol{max-height:initial;-webkit-flex-grow:1;flex-grow:1;overflow:hidden;-webkit-justify-content:center;justify-content:center;-webkit-flex-basis:initial;flex-basis:initial}.videoOsdPositionContainer-autosmall,.videoOsd-belowtransportbuttons-vertical{-webkit-flex-basis:initial;flex-basis:initial}.videoOsdText{-webkit-flex-basis:100%;flex-basis:100%;max-width:initial}.videoOsdText-remotecontrol{-webkit-flex-basis:initial;flex-basis:initial;-webkit-flex-grow:1;flex-grow:1;-webkit-justify-content:center;justify-content:center}.videoOsdBottom-split .osdPosterContainer,.videoOsdBottom-split .videoOsdText-remotecontrol{display:none!important}.videoOsdBottom-split .videoOsdBottom-maincontrols{padding-top:.75em}}@media all and (min-width:80em){.videoOsd-customFont-x2{font-size:1.1em}}.videoOsdBottomMaincontrols-autoexpand{-webkit-align-content:initial;align-content:initial;box-sizing:border-box}.videoOsdBottom-art .videoOsdBottomMaincontrols-autoexpand{-webkit-flex-grow:1;flex-grow:1}@media all and (orientation:portrait){.videoOsdBottomMaincontrols-autoexpand{-webkit-flex-direction:column;flex-direction:column;-webkit-align-content:center;align-content:center;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}}@media all and (orientation:landscape){.videoOsdBottomMaincontrols-autoexpand{-webkit-flex-shrink:initial;flex-shrink:initial;-webkit-flex-grow:1;flex-grow:1;-webkit-align-content:flex-start;align-content:flex-start}}.videoOsdSecondaryText{-webkit-align-items:baseline;align-items:baseline}.videoOsdSecondaryText-withparentname{margin-bottom:.25em;font-weight:500}.videoOsdSecondaryText-tv{margin-bottom:.25em}.videoOsdSecondaryText-remotecontrol{-webkit-align-items:center;align-items:center;-webkit-flex-direction:column;flex-direction:column;margin-bottom:0}.videoOsdSecondaryMediaInfo-remotecontrol{font-size:92%;font-weight:500;margin-bottom:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:0;margin-inline-end:0}.osdTextActionButton{color:inherit!important;font-weight:inherit!important}.videoOsdTitle,.videoOsdParentTitle,.videoOsdThirdTitle{font-weight:600}.osdText-nowrap{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.videoOsdThirdTitle{margin:0}.videoOsdBottom-hidden:not(.videoOsdBottom-tvnowplaying){opacity:0}@-webkit-keyframes osd-animate-text{0%{-webkit-transform:scale(1.1);transform:scale(1.1);opacity:0}100%{-webkit-transform:none;transform:none;opacity:initial}}@keyframes osd-animate-text{0%{-webkit-transform:scale(1.1);transform:scale(1.1);opacity:0}100%{-webkit-transform:none;transform:none;opacity:initial}}.videoOsdBottom-tvnowplaying:not(.videoOsdBottom-art) .osdPosterContainer,.videoOsdBottom-tvnowplaying:not(.videoOsdBottom-art) .videoOsdText,.videoOsdBottom-tvnowplaying:not(.videoOsdBottom-art) .osdContentSection:not(.osdPlayQueue){display:none!important}.osdIconButton-icon,.osdContentSectionToggleButtonIcon{padding:.08em!important}.osdIconButton,.osdContentSectionToggleButton{padding:.5em!important}.videoOsd-nobuttonmargin .osdIconButton,.videoOsd-nobuttonmargin .osdContentSectionToggleButton{margin:0 .3ch}.videoOsdBottom-buttons{-webkit-margin-start:-1em;margin-inline-start:-1em}.videoOsdBottom-buttons-remotecontrol{margin:0;-webkit-flex-direction:row;flex-direction:row;padding:0;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}.videoOsdBottom-buttons-remotecontrol-tv{-webkit-flex-basis:50%;flex-basis:50%;-webkit-flex-grow:1;flex-grow:1}.videoOsdBottom-buttons-topright{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:-.75em;margin-inline-end:-.75em;-webkit-flex-basis:content;flex-basis:content;-webkit-order:1;order:1;-webkit-align-items:flex-end;align-items:flex-end;margin-bottom:.25em}@media all and (orientation:portrait){@media not all and (pointer:fine){.videoOsdBottom-buttons-topright{-webkit-flex-basis:100%;flex-basis:100%;-webkit-order:4;order:4;margin-top:.5em;margin-bottom:.5em;-webkit-margin-start:-.75em;margin-inline-start:-.75em;-webkit-margin-end:0;margin-inline-end:0;-webkit-justify-content:flex-start;justify-content:flex-start}}}.videoOsdBottom-buttons-topright-remotecontrol{-webkit-justify-content:center;justify-content:center;width:100%;-webkit-margin-start:initial;margin-inline-start:initial;-webkit-flex-basis:100%;flex-basis:100%;margin:0;-webkit-order:4;order:4}@media all and (orientation:portrait){.videoOsdBottom-buttons-topright-remotecontrol{-webkit-flex-basis:initial;flex-basis:initial}}.videoOsdBottom-buttons-topright-remotecontrol-tv{margin-bottom:.5em;-webkit-flex-basis:100%;flex-basis:100%}.osdVolumeDisplayIcon{font-size:140%}.osdVolumeDisplayIcon-left{-webkit-margin-end:.25em;margin-inline-end:.25em}.osdVolumeDisplayIcon-right{-webkit-margin-start:.25em;margin-inline-start:.25em}.btnMuteOSD-remotecontrol{-webkit-margin-start:0!important;margin-inline-start:0!important;display:none}.videoOsdVolumeControls-bottom{-webkit-justify-content:center;justify-content:center;-webkit-flex-basis:100%;flex-basis:100%;padding:0}@media all and (min-height:38em){.videoOsdVolumeControls-bottom{padding:.25em 0}}@media all and (min-height:50em){.videoOsdVolumeControls-bottom{padding:.5em 0}}.videoOsdPositionSlider{margin:-1.605em 0}.videoOsdPositionContainer-limitwidth{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;width:100%;box-sizing:border-box;max-width:50em}.videoOsdVolumeSliderWrapper-bottom{max-width:44em}.volumeButtons{margin-top:0;margin-bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:.5em;margin-inline-end:.5em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.videoOsdParentTitle{margin:0}.videoOsdTitle{margin-top:0;margin-bottom:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:1em;margin-inline-end:1em}.videoOsdSecondaryText-remotecontrol .videoOsdTitle{-webkit-margin-end:0;margin-inline-end:0}.osdTitle-remotecontrol{margin:0}@media not all and (pointer:fine){.videoOsd-centerButtons-autolayout{position:fixed;bottom:max(calc(50% - 1.25em),var(--osd-height));left:0;right:0;inset-inline-start:0;inset-inline-end:0;-webkit-justify-content:center;justify-content:center;display:-webkit-flex;display:flex;-webkit-align-self:center;align-self:center;font-size:160%;height:2.5em}.videoOsd-centerButtons-autolayout button{padding:.5em!important}.videoOsd-centerButtons-autolayout .osdIconButton-icon{padding:0!important}.videoOsd-centerButtons-autolayout .videoOsd-btnPause-autolayout{padding:.1em!important}.videoOsd-btnPause-autolayout{margin:0 1.1em!important;font-size:200%}}.btnOsdRewindIcon,.btnOsdFastForwardIcon{will-change:animate}.videoOsdParentTitleContainer{position:relative}.btnOsdMore-title{margin-top:0;margin-bottom:0;-webkit-margin-start:0.5em;margin-inline-start:.5em;-webkit-margin-end:0;margin-inline-end:0;padding:.16em;-webkit-flex-shrink:0;flex-shrink:0}.videoosd-tabsslider{-webkit-column-gap:.25ch;column-gap:.25ch;-webkit-align-items:center;align-items:center;padding:0 0 .5em}.videoosd-tab-button{padding:.5em 0!important;border-radius:100em;-webkit-margin-end:2em;margin-inline-end:2em;overflow:visible;text-decoration:none!important;font-weight:700}.videoosd-tab-button::before{left:-1em!important;right:-1em!important}.videoosd-tab-button.emby-tab-button-active::before{position:absolute;top:0;left:-1em;right:-1em;bottom:0;content:" ";z-index:-1;border-radius:inherit}.videoosd-tabcontainers{height:38vh;height:var(--videoosd-tabs-height);transition:height .4s ease-out;overflow:hidden;contain:strict;margin:0;-webkit-flex-shrink:0;flex-shrink:0;-webkit-order:6;order:6}.videoOsdBottom-tabs{-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-order:5;order:5}.videoOsdBottom-tabs-remotecontrol{-webkit-justify-content:center;justify-content:center;-webkit-flex-basis:100%;flex-basis:100%}.videoOsdBottom-tabs-remotecontrol,.videoosd-tabcontainers-autosmall{display:none!important}.videoOsdTabs-margintop .videoosd-tabsslider{margin-top:.5em}.videoosd-tabcontainers-hidden{height:0}.videoosd-tab{overflow:hidden}.videoosd-tab:not(.videoosd-activetab){display:none}.videoosd-tabsslider:focus-within .emby-tab-button-active:not(:focus){background:0 0;color:inherit}.videoosd-tabsslider:focus-within .emby-tab-button-active:not(:focus)::before{background:0 0}.videoosd-bottom-with-opentab .videoOsd-hideWithOpenTab{display:none!important}.videoosd-bottom-locked .videoOsd-hideWhenLocked{display:none!important}.videoosd-poster{width:9em;width:calc((var(--videoosd-tabs-height) - 3em) * (2 / 3));max-width:20vw;overflow:hidden;-webkit-margin-end:1.25em;margin-inline-end:1.25em}.osdInfoImageCard{width:100%!important}.osdInfoImageCardBox{margin:0!important}.videoosd-infotab{border-radius:.6em;margin:.5em 0}.videoosd-info{overflow:hidden}.videoosd-info-overview-scroll{-webkit-flex-grow:1;flex-grow:1;overflow-y:auto;display:block}.infoTabButtonsContainer{-webkit-margin-start:1em;margin-inline-start:1em;padding-top:.5em}.videoOsdVolumeSliderWrapper-top{width:16ch;-webkit-margin-end:.5em;margin-inline-end:.5em}@media all and (max-width:50em){.videoOsdVolumeSliderWrapper-top{width:12ch;-webkit-transform:scaleX(0);transform:scaleX(0);display:none;transition:all .3s allow-discrete;transition-behavior:allow-discrete;-webkit-transform-origin:right center;transform-origin:right center}@supports (transition-behavior:allow-discrete){.videoOsdVolumeSliderWrapper-top{--volumehideenabled:1}.videoOsdVolumeControls-top:focus-within .videoOsdVolumeSliderWrapper-top{-webkit-transform:none;transform:none;display:block; + @starting-style { + -webkit-transform: scaleX(0); + transform: scaleX(0); + } + }}}@media all and (max-width:60em){.infoTabButtonsContainer-autohide{display:none!important}}.osdinfo-overview-text{font-weight:400}.osdinfo-overview-text-readmore{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.videoOsd-itemstab-card.squareCard{width:20vw;max-width:34vw}.videoOsd-itemstab-card.fourThreeCard{width:12vw;max-width:44vw}.videoOsd-itemstab-card.backdropCard{width:19vw;max-width:44vw}.videoOsd-itemstab-card.portraitCard{width:8vw;max-width:30vw}.videoOsd-itemstab-card-twoline.backdropCard{width:calc((var(--videoosd-tabs-height) - 3.75em) * (16 / 9))}.videoOsd-itemstab-card-twoline.fourThreeCard{width:calc((var(--videoosd-tabs-height) - 3.5em) * (4 / 3))}.videoOsd-itemstab-card-twoline.portraitCard{width:calc((var(--videoosd-tabs-height) - 2.25em) * (2 / 3))}.videoOsd-itemstab-card-twoline.squareCard{width:calc((var(--videoosd-tabs-height) - 3em))}.videoOsd-itemstab-card-threeline.backdropCard{width:calc((var(--videoosd-tabs-height) - 5.75em) * (16 / 9))}.videoOsd-itemstab-card-threeline.fourThreeCard{width:calc((var(--videoosd-tabs-height) - 4.75em) * (4 / 3))}.videoOsd-itemstab-card-threeline.portraitCard{width:calc((var(--videoosd-tabs-height) - 3.75em) * (2 / 3))}.videoOsd-itemstab-card-threeline.squareCard{width:calc((var(--videoosd-tabs-height) - 4.25em))}.videoOsd-cardImageContainer-sideFooter{width:4.4em;height:4.4em}.videoOsd-itemstab-card .cardText{font-weight:500;font-size:92%}.videoosd-guidetab .guideSettingsContainer,.videoosd-guidetab .btnGuideViewSettings{display:none!important}.videoosd-guidetab .programCellInner{background:rgba(0,0,0,.5)}.videoosd-guidetab .channelCellInner{background:#242424}.videoosd-guidetab .firstChannelCell-withscroll{background:#242424!important}.videoosd-padded-left{-webkit-padding-start:3.8%;padding-inline-start:3.8%;-webkit-padding-start:min(3.8%,1em);padding-inline-start:min(3.8%,1em)}.videoosd-padded-right{-webkit-padding-end:3.8%;padding-inline-end:3.8%;-webkit-padding-end:min(3.8%,1em);padding-inline-end:min(3.8%,1em)}@media all and (max-height:30em) and (orientation:landscape){.videoOsdText-autosmall{margin:0!important;-webkit-flex-shrink:0;flex-shrink:0;-webkit-flex-basis:55%!important;flex-basis:55%!important;-webkit-align-items:flex-start;align-items:flex-start;-webkit-justify-content:center;justify-content:center;max-height:40%;text-align:start}.osdPosterContainer-autoexpand{-webkit-flex-shrink:0;flex-shrink:0;margin:0 auto;-webkit-flex-basis:45%!important;flex-basis:45%!important;max-height:40%!important}.osdTextActionButton{text-align:start}.osdRemoteControlImageCard-automargin{margin-top:0!important;margin-bottom:0!important;-webkit-margin-start:auto!important;margin-inline-start:auto!important;-webkit-margin-end:1em!important;margin-inline-end:1em!important}.videoOsdSecondaryText-remotecontrol{-webkit-align-items:initial;align-items:initial}}.videoOsdBottom-contentbuttons-tv{-webkit-flex-basis:50%;flex-basis:50%;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-margin-end:-.75em;margin-inline-end:-.75em}@media not all and (min-height:30em){.videoOsdVolumeControls-bottom{display:none!important}}.videoOsdVolumeSliderWrapper-customfont{font-size:1rem}@media all and (min-width:42em){.videoOsd-customFont-remotecontrol-buttons{font-size:1.1em}}@media all and (min-width:54em){.videoOsd-customFont-remotecontrol-buttons{font-size:1.2em}}@media all and (min-width:80em){.videoOsd-customFont-remotecontrol-buttons{font-size:1.5em}}@media all and (orientation:portrait){.videoOsd-customFont-remotecontrol-buttons-largeportrait{font-size:2.5em;margin:.5em 0}.videoOsdBottom-contentbuttons{margin-top:.5em}}@media all and (orientation:portrait) and (max-width:40em){.videoOsd-customFont-remotecontrol-buttons-largeportrait{font-size:6vw}}@media all and (orientation:landscape){.videoOsdBottom-split:not(.videoOsdBottom-tvnowplaying){-webkit-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-justify-content:initial;justify-content:initial}@media all and (min-height:67em){.videoOsdBottom-split:not(.videoOsdBottom-tvnowplaying){margin-top:1.5em}}}.videoOsd-ratingInfo{position:fixed;top:3vh;left:0;inset-inline-start:0;inset-inline-start:env(safe-area-inset-left,0);inset-inline-end:initial;margin-top:0;margin-bottom:0;-webkit-margin-start:4%;margin-inline-start:4%;-webkit-margin-end:0;margin-inline-end:0;overflow:hidden}.rtl:root .videoOsd-ratingInfo{inset-inline-start:env(safe-area-inset-right,0)}.videoOsd-ratingText::before{content:" ";background:#52b54b;width:.53ch;position:absolute;top:0;bottom:0;left:0;inset-inline-start:0;inset-inline-end:initial;border-radius:.3em}.videoOsd-ratingText{margin:0;padding-top:.4em;padding-bottom:.4em;-webkit-padding-start:.9em;padding-inline-start:.9em;-webkit-padding-end:0;padding-inline-end:0;position:relative;font-weight:500;-webkit-animation:osd-rating-animate 4s ease-out forwards;animation:osd-rating-animate 4s ease-out forwards;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-delay:3s;animation-delay:3s;-webkit-transform-origin:bottom center;transform-origin:bottom center;opacity:0}.videoOsd-ratingDescription{font-weight:400;margin-top:.1em}@-webkit-keyframes osd-rating-animate{0%{-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}15%{-webkit-transform:none;transform:none;opacity:1}85%{-webkit-transform:none;transform:none;opacity:1}100%{-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}}@keyframes osd-rating-animate{0%{-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}15%{-webkit-transform:none;transform:none;opacity:1}85%{-webkit-transform:none;transform:none;opacity:1}100%{-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}}.osd-transport-animationtext{position:fixed;opacity:0;top:45%;height:2em;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;text-shadow:#000 0 0 .5em;margin:-1.5em 0 0 0;font-weight:500;pointer-events:none;touch-action:none}@media all and (orientation:portrait){.osd-transport-animationtext{top:55%;margin:-1em 0 0 0}}.osd-rew-animationtext{left:2.5%;inset-inline-start:2.5%;inset-inline-end:initial;-webkit-transform:translateX(100%);transform:translateX(100%)}.rtl .osd-rew-animationtext{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.osd-ff-animationtext{-webkit-transform:translateX(-100%);transform:translateX(-100%);right:2.5%;inset-inline-start:initial;inset-inline-end:2.5%}.rtl .osd-ff-animationtext{-webkit-transform:translateX(100%);transform:translateX(100%)}.osd-raisedbutton{box-shadow:0 .06933em .06933em 0 rgba(0,0,0,.14),0 .13866em .06933em -.06933em rgba(0,0,0,.12),0 .06933em .208em 0 rgba(0,0,0,.2);padding:.54em 2ch!important}.btnPlayNextFromUpNext{padding:0!important;overflow:hidden}.btnPlayNextFromUpNext-inner{padding:.54em 2ch!important;position:relative}.btnPlayNextFromUpNext-progress{position:absolute;top:0;left:0;bottom:0;width:100%;transition:-webkit-transform .3s linear;transition:transform .3s linear;-webkit-transform-origin:center left;transform-origin:center left;-webkit-transform:scaleX(0);transform:scaleX(0);background:rgba(255,255,255,.3)}.rtl .btnPlayNextFromUpNext-progress{-webkit-transform-origin:center right;transform-origin:center right}.btnPlayNextFromUpNext:focus-visible .btnPlayNextFromUpNext-progress{background:rgba(0,0,0,.3)}.btnPlayNextFromUpNext-tv:focus .btnPlayNextFromUpNext-progress{background:rgba(0,0,0,.3)}.upNextContainer,.skipIntroContainer{position:fixed;bottom:6em;bottom:min(6em,38vh);right:2.5%;right:calc(min(5ch,2%) + .7em);inset-inline-start:initial;inset-inline-end:2.5%;inset-inline-end:calc(min(5ch,2%) + .7em);margin-top:0!important;margin-bottom:0!important;-webkit-margin-start:0!important;margin-inline-start:0!important;-webkit-margin-end:0!important;margin-inline-end:0!important;z-index:1;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;transition:bottom 240ms ease-out}@supports (height:calc(3.125em + 2 * max(3em,4em))){.upNextContainer,.skipIntroContainer{inset-inline-end:calc(max(min(5ch,2vw),env(safe-area-inset-right,0)) + .7em)}.rtl:root .upNextContainer,.rtl:root .skipIntroContainer{inset-inline-end:calc(max(min(5ch,2vw),env(safe-area-inset-left,0)) + .7em)}}.videoosd-withupnext{display:none!important}.brightnessSliderContainer{position:fixed;top:7.5em;top:max(7.5em,15%);bottom:15em;bottom:min(15em,45vh);right:3%;inset-inline-start:initial;inset-inline-end:3%;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;z-index:1}@supports (height:calc(3.125em + 2 * max(3em,4em))){.brightnessSliderContainer{inset-inline-end:calc(3vw + env(safe-area-inset-right,0))}.rtl:root .brightnessSliderContainer{inset-inline-end:calc(3vw + env(safe-area-inset-left,0))}}@supports (color:var(--fake-var)){@supports (height:calc(3.125em + 2 * max(3em,4em))){.upNextContainer,.skipIntroContainer{bottom:max(min(3em,38vh),calc(var(--osd-height)))}.brightnessSliderContainer{bottom:calc(var(--osd-height) + 1em)}}}.videoOsdBrightnessIcon{font-size:200%;margin-bottom:.25em;-webkit-flex-shrink:0;flex-shrink:0}.videoOsdUnlockControls{display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;padding:1em 1ch 2em;-webkit-flex-basis:100%;flex-basis:100%}.videoOsd-btnToggleLock-bg{background:#fff;color:#000} \ No newline at end of file diff --git a/videoosd/videoosd.html b/videoosd/videoosd.html new file mode 100644 index 0000000..d512abe --- /dev/null +++ b/videoosd/videoosd.html @@ -0,0 +1,252 @@ +
+ +
+
+ +
+
+ +

+

+

+

+ +
+ + +
+ +
+ + + + +
+ +
+ +
+ +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ + + +

${HeaderScreenLocked}

+
${HeaderTapToUnlock}
+
+ +
+ +
+

+

+ + +
+ +
+

+

+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ +
+
+
+
+ +
+
+ + + +
+ + + + + + + +
+ + +
+ +
+ + + + +
+
+ +
+
+ + +
+ +
+ + + + + + + + + + + + + +
+
+ +
+ +
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ +
+
\ No newline at end of file diff --git a/videoosd/videoosd.js b/videoosd/videoosd.js new file mode 100644 index 0000000..4b0cfbe --- /dev/null +++ b/videoosd/videoosd.js @@ -0,0 +1 @@ +define(["exports","./../modules/common/playback/playbackmanager.js","./../modules/focusmanager.js","./../modules/cardbuilder/cardbuilder.js","./../modules/common/imagehelper.js","./../modules/dom.js","./../modules/browser.js","./../modules/common/globalize.js","./../modules/common/datetime.js","./../modules/layoutmanager.js","./../modules/common/itemmanager/itemmanager.js","./../modules/loading/loading.js","./../modules/emby-apiclient/events.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/appheader/appheader.js","./../modules/mediainfo/mediainfo.js","./../modules/backdrop/backdrop.js","./playqueue.js","./tvplayqueue.js","./lyrics.js","./chapters.js","./../modules/approuter.js","./../modules/itemcontextmenu.js","./../modules/shortcuts.js","./../modules/common/inputmanager.js","./../modules/common/usersettings/usersettings.js","./../modules/input/mouse.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-button/paper-icon-button-light.js","./../modules/emby-elements/emby-tabs/emby-tabs.js","./../modules/emby-elements/emby-slider/emby-slider.js","./../modules/common/appsettings.js","./../modules/common/servicelocator.js","./../modules/input/keyboard.js","./../modules/viewmanager/baseview.js","./../modules/playback/osdcontroller.js","./../modules/common/playback/playersettingsmenu.js","./specialicons.js","./../modules/gesture/gesture.js","./../modules/colorjs/color.js"],function(_exports,_playbackmanager,_focusmanager,_cardbuilder,_imagehelper,_dom,_browser,_globalize,_datetime,_layoutmanager,_itemmanager,_loading,_events,_connectionmanager,_appheader,_mediainfo,_backdrop,_playqueue,_tvplayqueue,_lyrics,_chapters,_approuter,_itemcontextmenu,_shortcuts,_inputmanager,_usersettings,_mouse,_embyScroller,_paperIconButtonLight,_embyTabs,_embySlider,_appsettings,_servicelocator,_keyboard,_baseview,_osdcontroller,_playersettingsmenu,_specialicons,_gesture,_color){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!videoosd/videoosd.css","css!!tv|videoosd/videoosd_nontv.css","css!tv|videoosd/videoosd_tv.css"]);var headerElement=document.querySelector(".skinHeader"),backgroundContainer=document.querySelector(".backgroundContainer"),headerRight=document.querySelector(".headerRight");function showActionSheet(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}var SupportsRadialGradient=CSS.supports("background-image","linear-gradient(to bottom,rgba(200, 194, 177, 1) 0%, rgba(122, 92, 92, 1) 100%)");var deviceMemory,platform,enableTabAnimation=!((cores=navigator.hardwareConcurrency||4)<4||(2400<=(screen.width||screen.availWidth||0)||1400<=(screen.height||screen.availHeight||0))&&cores<6||(deviceMemory=navigator.deviceMemory||2)<2||(platform=(navigator.platform||"").toLowerCase(),"android"===globalThis.appMode&&(cores<4||deviceMemory<2||platform.includes("armv7")))),fadeSize="1.5%",fadeDuration=300;function isDisplayingLocalVideo(player,mediaType){return"Video"===mediaType||!mediaType&&!!player&&_playbackmanager.default.isPlayingMediaType(["Video"],player)}function getRewindIconLTR(){switch(_usersettings.default.skipBackLength()){case 5e3:return"";case 1e4:return"";case 3e4:return"";default:return""}}function getForwardIconLTR(){switch(_usersettings.default.skipForwardLength()){case 5e3:return"";case 1e4:return"";case 3e4:return"";default:return""}}function getBaseActionSheetOptions(positionTo,isLocalVideo){isLocalVideo=!(!_layoutmanager.default.tv||!isLocalVideo);return{positionTo:positionTo,positionX:isLocalVideo?"right":null,positionY:"above",transformOrigin:isLocalVideo?"right bottom":"center bottom",noTextWrap:!0,removeFromPlayQueue:!1}}function showMoreMenu(item,button,isLocalVideo){_connectionmanager.default.getApiClient(item.ServerId).getCurrentUser().then(function(user){return _itemcontextmenu.default.show(function(item,user,button,isLocalVideo){return Object.assign(getBaseActionSheetOptions(button,isLocalVideo),{items:[item],open:!1,play:!1,playAllFromHere:!1,queueAllFromHere:!1,cancelTimer:!1,record:!1,deleteItem:!1,shuffle:!1,instantMix:!1,user:user,share:!0,queue:!1,editSubtitles:!1,convert:!1,refreshMetadata:!1,identify:!1})}(item,user,button,isLocalVideo))})}function focusMainOsdControls(instance){console.log("focusMainOsdControls");var elem=instance.nowPlayingPositionSlider;elem.disabled?_focusmanager.default.autoFocus(instance.videoOsdBottomMaincontrols):_focusmanager.default.focus(elem)}function hideOrShowAll(instance,elems,hide,focusedElement){for(var wasFocused,i=0,length=elems.length;i'+text+""}function getSecondaryName(item,enableLinkButton){var title=_itemmanager.default.getDisplayName(item,{includeParentInfo:"Program"!==item.Type,includeIndexNumber:"Program"!==item.Type});return enableLinkButton?getTextActionButton(item,title):title}function getDefaultOsdContentSection(){return _layoutmanager.default.tv||1056<=_dom.default.getWindowSize().innerWidth?"playqueue":null}function destroyPlayQueue(instance){var playQueue=instance.playQueue;playQueue&&(playQueue.destroy(),instance.playQueue=null)}function destroyLyricsRenderer(instance){var lyricsRenderer=instance.lyricsRenderer;lyricsRenderer&&(lyricsRenderer.destroy(),instance.lyricsRenderer=null)}function destroyChaptersRenderer(instance){var chaptersRenderer=instance.chaptersRenderer;chaptersRenderer&&(chaptersRenderer.destroy(),instance.chaptersRenderer=null)}function destroyStats(instance){var statsOverlay=instance.statsOverlay;statsOverlay&&(statsOverlay.destroy(),instance.statsOverlay=null)}function destroySubtitleAppearanceDialog(instance){var subtitleAppearanceDialog=instance.subtitleAppearanceDialog;subtitleAppearanceDialog&&(subtitleAppearanceDialog.destroy(),instance.subtitleAppearanceDialog=null)}function destroySubtitleOffsetDialog(instance){var subtitleOffsetDialog=instance.subtitleOffsetDialog;subtitleOffsetDialog&&(subtitleOffsetDialog.destroy(),instance.subtitleOffsetDialog=null)}function clearBlurFromDocumentElement(){backgroundContainer&&(backgroundContainer.style.backgroundImage=null,backgroundContainer.style.backgroundColor=null)}function shouldOsdBeShown(instance){return!_layoutmanager.default.tv||!!instance.currentVisibleMenu||!(instance=instance.currentPlayer)||isDisplayingLocalVideo(instance)}function onTopMuteButtonClick(e){if(!_layoutmanager.default.tv){e=e.target.closest(".videoOsdVolumeControls-top").querySelector(".videoOsdVolumeSliderWrapper-top");if("1"===window.getComputedStyle(e,null).getPropertyValue("--volumehideenabled"))return void setTimeout(function(){this.isTopVolumeTransitioning||_playbackmanager.default.toggleMute(this.currentPlayer)}.bind(this),20)}_playbackmanager.default.toggleMute(this.currentPlayer)}function onOsdBottomScroll(){this.showOsd()}function onVolumeSliderInputOrChange(e){e=e.target;_playbackmanager.default.setVolume(parseFloat(e.value),this.currentPlayer),this.showOsd()}var cores="ontouchstart"in document.documentElement,DefaultPointerType="undefined"!=typeof PointerEvent&&"pointerType"in PointerEvent.prototype?null:cores?"touch":"mouse";function rewind(instance,animate){var player=instance.currentPlayer;animate&&((animate=instance.view.querySelector(".osd-rew-animationtext")).innerHTML="-"+parseInt(_usersettings.default.skipBackLength()/1e3),fadeInAndOut(animate)),_playbackmanager.default.rewind(player)}function fadeInAndOut(elem){if(elem.animate)try{elem.animate([{opacity:"1",offset:.5},{opacity:"0",transform:"none",offset:1}],{duration:600,iterations:1,easing:"ease-out"})}catch(err){console.log("error animating element: "+err)}}function fastForward(instance,animate){var player=instance.currentPlayer;animate&&((animate=instance.view.querySelector(".osd-ff-animationtext")).innerHTML="+"+parseInt(_usersettings.default.skipForwardLength()/1e3),fadeInAndOut(animate)),_playbackmanager.default.fastForward(player)}function onOsdClick(e,instance,elementToFocusIfShowing,showOsdIfNoEvent){var target=e.target;if(target.closest(".videoOsdBottom"))showOsdIfNoEvent&&instance.showOsd();else if(!target.closest("button,.videoosd-tabsslider"))return target=instance.currentPlayer,!e.button&&target&&isDisplayingLocalVideo(target)?(instance.showOsd(null,elementToFocusIfShowing),0<=instance.bottomTabs.selectedIndex()?instance.bottomTabs.selectedIndex(-1):(console.log("videoosd - playPause from onOsdClick"),_playbackmanager.default.playPause(target))):showOsdIfNoEvent&&instance.showOsd(),1}function toggleStats(instance){Emby.importModule("./modules/playerstats/playerstats.js").then(function(PlayerStats){var player=instance.currentPlayer;player&&(instance.statsOverlay?instance.statsOverlay.toggle():(instance.statsOverlay=new PlayerStats({player:player,view:instance.view}),_events.default.on(instance.statsOverlay,"close",function(){this.currentVisibleMenu&&!this.upNextContainer._visible&&_focusmanager.default.focus(this.btnVideoOsdSettingsRight)}.bind(instance))))})}function canSetBottomTabIndex(instance,index){return-1===index||!instance.bottomTabButtons[index].classList.contains("hide")}function setBottomTabIndex(instance,index){var bottomTabButtons,bottomTabs=instance.bottomTabs;-1===index?(document.documentElement.classList.remove("osd-tab-guide"),bottomTabs.selectedIndex(index)):(bottomTabButtons=instance.bottomTabButtons)[index].classList.contains("hide")||(instance.showOsd(null,bottomTabButtons[index]),bottomTabs.selectedIndex(index),_focusmanager.default.focus(bottomTabButtons[index]))}function onRewindInputCommand(e,instance){var isOsdVisible=instance.currentVisibleMenu;shouldOsdBeShown(instance)?instance.showOsd():isOsdVisible||e.detail.repeat||(rewind(instance),e.preventDefault())}function onFastForwardInputCommand(e,instance){shouldOsdBeShown(instance)?instance.showOsd():instance.currentVisibleMenu||e.detail.repeat||(fastForward(instance),e.preventDefault())}function startOsdHideTimer(instance,timeoutMs){var currentPlayer,isLocalVideo;stopOsdHideTimer(instance),instance.paused||(isLocalVideo=isDisplayingLocalVideo(currentPlayer=instance.currentPlayer))&&null!=currentPlayer&¤tPlayer.isLocalPlayer&&(0===timeoutMs||_focusmanager.default.hasExclusiveFocusScope()||(instance.osdHideTimeout=setTimeout(instance.boundOnOsdHideTimeout,timeoutMs||(isLocalVideo?4e3:1e4))))}function stopOsdHideTimer(instance){var osdHideTimeout=instance.osdHideTimeout;osdHideTimeout&&(clearTimeout(osdHideTimeout),instance.osdHideTimeout=null)}var systemUIHidden,orientationLocked=!1;function onOrientationChangeSuccess(){orientationLocked=!0}function onOrientationChangeError(err){orientationLocked=!0,console.log("error locking orientation: "+err)}function setSystemUIHidden(hidden){if(systemUIHidden!==hidden&&(systemUIHidden=hidden,_servicelocator.appHost.setSystemUIHidden))try{_servicelocator.appHost.setSystemUIHidden(hidden)}catch(err){console.log("Error in setSystemUIHidden: "+err)}}var enableOrientationLock=!_browser.default.tv;function lockOrientation(type){var _screen$orientation;enableOrientationLock&&!function(orientation){var promise;console.log("attempting to lock orientation to: "+orientation);try{return(promise=screen.orientation&&screen.orientation.lock?screen.orientation.lock(orientation):promise)&&promise.then?promise:Promise.resolve()}catch(err){return Promise.reject(err)}}(type=type||(null==(_screen$orientation=screen.orientation)?void 0:_screen$orientation.type)||"landscape").then(onOrientationChangeSuccess,onOrientationChangeError)}function unlockOrientation(){if(enableOrientationLock&&orientationLocked&&screen.orientation&&screen.orientation.unlock){console.log("unlocking orientation");try{screen.orientation.unlock()}catch(err){console.log("error unlocking orientation: "+err)}orientationLocked=!1}}function getTabOnItemUpdatedData(instance){return{item:instance.osdController.currentItem,displayItem:instance.osdController.currentDisplayItem,mediaSource:instance.osdController.currentMediaSource,currentPlayer:instance.currentPlayer,currentChapters:instance.osdController.currentChapters,currentDisplayChapters:instance.osdController.currentDisplayChapters}}function confirmPlaybackCorrection(instance){var player,wasPaused,options;return _usersettings.default.get("confirmplaybackcorrection",!1)?Promise.resolve():(player=instance.currentPlayer,(wasPaused=_playbackmanager.default.paused(player))||_playbackmanager.default.pause(player),options={title:_globalize.default.translate("HeaderPlaybackCorrection"),text:_globalize.default.translate("PlaybackCorrectionConfirm")+"\n\n"+_globalize.default.translate("PlaybackCorrectionDescription")+"\n\n"+_globalize.default.translate("PlaybackCorrectionDescription2"),confirmText:_globalize.default.translate("HeaderAttemptPlaybackCorrection"),primary:"cancel"},Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)}).then(function(){return Promise.resolve()},function(){return wasPaused||_playbackmanager.default.unpause(player),Promise.reject()}))}function showSubtitleOffset(instance){Emby.importModule("./modules/subtitleoffsetdialog/subtitleoffsetdialog.js").then(function(SubtitleOffsetDialog){var positionTo,player=instance.currentPlayer;player&&!instance.subtitleOffsetDialog&&(positionTo=instance.btnSubtitles,instance.subtitleOffsetDialog=new SubtitleOffsetDialog(Object.assign(getBaseActionSheetOptions(positionTo,!0),{player:player})),SubtitleOffsetDialog=function(){destroySubtitleOffsetDialog(instance)},instance.subtitleOffsetDialog.show().then(SubtitleOffsetDialog,SubtitleOffsetDialog))})}function showSubtitleAppearance(instance){Emby.importModule("./modules/subtitleappearancedialog/subtitleappearancedialog.js").then(function(SubtitleAppearanceDialog){var positionTo,player=instance.currentPlayer;player&&!instance.subtitleAppearanceDialog&&(positionTo=instance.btnSubtitles,SubtitleAppearanceDialog=new SubtitleAppearanceDialog(Object.assign(getBaseActionSheetOptions(positionTo,!0),{player:player,apiClient:_connectionmanager.default.getApiClient(instance.osdController.currentItem)})),positionTo=function(){destroySubtitleAppearanceDialog(instance)},(instance.subtitleAppearanceDialog=SubtitleAppearanceDialog).show().then(positionTo,positionTo))})}function onMoreClick(e){e=e.target;showMoreMenu(this.osdController.currentItem,e,isDisplayingLocalVideo(this.currentPlayer))}function onSettingsOption(selectedOption){var instance=this.instance,button=this.button,player=instance.currentPlayer;"stats"===selectedOption?toggleStats(instance):"subtitleoffset"===selectedOption?showSubtitleOffset(instance):"subtitleappearance"===selectedOption?showSubtitleAppearance(instance):"more"===selectedOption?onMoreClick.call(instance,{target:button}):"triggertranscodingfallback"===selectedOption&&function(instance,player){confirmPlaybackCorrection(instance).then(function(){_playbackmanager.default.triggerTranscodingFallback(player)})}(instance,player)}function onSettingsButtonClick(e){var mediaType,isLocalVideo,e=e.target,player=this.currentPlayer;player&&!_focusmanager.default.hasExclusiveFocusScope()&&(isLocalVideo=isDisplayingLocalVideo(player,mediaType=this.osdController.currentItem.MediaType),_playersettingsmenu.default.show(Object.assign(getBaseActionSheetOptions(e,isLocalVideo),{player:player,stats:!0,onOption:onSettingsOption.bind({instance:this,button:e}),mediaType:mediaType,speed:"Video"!==mediaType||_layoutmanager.default.tv,more:isLocalVideo})).then(this.boundShowOsdDefaultParams,this.boundShowOsdDefaultParams))}function showAudioTrackSelection(e){var currentIndex,audioTracks,instance=this,e=e.target,player=instance.currentPlayer;player&&(audioTracks=_playbackmanager.default.audioTracks(player),currentIndex=_playbackmanager.default.getAudioStreamIndex(player),audioTracks=audioTracks.map(function(stream){var opt={name:stream.DisplayTitle,secondaryText:stream.Title&&!(stream.DisplayTitle||"").toLowerCase().includes((stream.Title||"").toLowerCase())?stream.Title:null,id:stream.Index};return stream.Index===currentIndex&&(opt.selected=!0),opt}),e=e,instance.showOsd(),showActionSheet(Object.assign(getBaseActionSheetOptions(e,!0),{items:audioTracks,title:_globalize.default.translate("Audio"),hasItemSelectionState:!0,fields:["Name","ShortOverview"],noTextWrap:!1})).then(function(id){instance.showOsd();id=parseInt(id);id!==currentIndex&&_playbackmanager.default.setAudioStreamIndex(id,player)},instance.boundShowOsdDefaultParams))}function supportsSubtitleDownloading(instance){return instance.currentPlayerSupportedCommands.includes("RefreshMediaSource")}function showSubtitleTrackSelection(e){var instance=this,e=e.target,player=instance.currentPlayer,streams=_playbackmanager.default.subtitleTracks(player),currentIndex=_playbackmanager.default.getSubtitleStreamIndex(player),subtitleIcon=(null==currentIndex&&(currentIndex=-1),streams.unshift({Index:-1,DisplayTitle:_globalize.default.translate("Off")}),_itemmanager.default.getDefaultIcon({Type:"MediaStream",StreamType:"Subtitle"})),menuItems=streams.map(function(stream){var opt={name:stream.DisplayTitle,secondaryText:stream.Title&&!(stream.DisplayTitle||"").toLowerCase().includes((stream.Title||"").toLowerCase())?stream.Title:null,id:stream.Index,icon:subtitleIcon};return stream.Index===currentIndex&&(opt.selected=!0),opt}),positionTo=e,currentItem=instance.osdController.currentItem,streams=_connectionmanager.default.getApiClient(currentItem);streams.getCurrentUser().then(function(user){supportsSubtitleDownloading(instance)&&_itemmanager.default.canDownloadSubtitles(currentItem,user)&&menuItems.push({name:_globalize.default.translate("SearchForSubtitles"),id:"search",icon:""});var currentSubtitleStream,format,user=[],supportedCommands=_playbackmanager.default.getSupportedCommands(player);supportedCommands.includes("SetSubtitleAppearance")&&player.isLocalPlayer&&(format=((null==(currentSubtitleStream=_playbackmanager.default.getSubtitleStream(player))?void 0:currentSubtitleStream.Codec)||"").toLowerCase(),null!=currentSubtitleStream)&¤tSubtitleStream.IsTextSubtitleStream&&["Hls","External","Embed"].includes(currentSubtitleStream.DeliveryMethod||"")&&!["ass","ssa"].includes(format)&&user.push({name:_globalize.default.translate("HeaderSubtitleAppearance"),id:"subtitleappearance",icon:""}),supportedCommands.includes("SetSubtitleOffset")&&(currentSubtitleStream=_playbackmanager.default.getSubtitleStream(player))&&("External"===currentSubtitleStream.DeliveryMethod||"Hls"===currentSubtitleStream.DeliveryMethod)&&user.push({name:_globalize.default.translate("HeaderSubtitleOffset"),id:"subtitleoffset",secondaryText:(format=_playbackmanager.default.getSubtitleOffset(player),1e3<=Math.abs(format)?(format/=1e3).toFixed(1)+" seconds":format+" ms"),icon:""}),0=introInfo.start&¤tTime=endDate.getTime()&&(console.log("program info needs to be refreshed"),state=_playbackmanager.default.getPlayerState(player),onStateChanged.call(player,{type:"updatemetadata"},state))}catch(e){console.log("Error parsing date: "+item.EndDate)}}}(this,item))}var fiftyMinuteTicks=3e10,fortyMinuteTicks=24e9;function showComingUpNextIfNeeded(player,currentItem,currentTimeTicks,runtimeTicks,isStopped,creditsInfo){(runtimeTicks&¤tTimeTicks||isStopped)&&"Episode"===currentItem.Type&&self.hasNextTrack&&(currentItem=runtimeTicks-currentTimeTicks,(!comingUpNextDisplayed||isStopped)&&(creditsInfo=function(runtimeTicks,creditsInfo){return(creditsInfo=(null==creditsInfo?void 0:creditsInfo.start)||0)&&creditsInfo=.7*windowSize.innerWidth&&fastForward(self,!0),e.preventDefault(),e.stopPropagation())}},{passive:!0}),_dom.default.addEventListener(buttonMute,"click",function(){_playbackmanager.default.toggleMute(this.currentPlayer)}.bind(self),{passive:!0}),_dom.default.addEventListener(self.osdBottomElement,"scroll",onOsdBottomScroll.bind(self),{passive:!0,capture:!0}),_dom.default.addEventListener(self.osdBottomElement,"scrollanimate",onOsdBottomScroll.bind(self),{passive:!0,capture:!0}),_dom.default.addEventListener(brightnessSlider,"change",function(){_playbackmanager.default.setBrightness(parseFloat(this.value),self.currentPlayer),self.showOsd()},{passive:!0}),_dom.default.addEventListener(brightnessSlider,"input",function(){_playbackmanager.default.setBrightness(parseFloat(this.value),self.currentPlayer),self.showOsd()},{passive:!0}),_dom.default.addEventListener(self.nowPlayingVolumeSlider,"change",onVolumeSliderInputOrChange.bind(self),{passive:!0}),_dom.default.addEventListener(self.nowPlayingVolumeSlider,"input",onVolumeSliderInputOrChange.bind(self),{passive:!0}),self.nowPlayingPositionSlider.getBubbleHtml=function(value){return self.showOsd(),self.osdController.getPositionBubbleHtml(value,currentRuntimeTicks)},_dom.default.addEventListener(self.osdBottomElement,transitionEndEventName,function(e){var elem=e.currentTarget;elem===e.target&&elem.classList.contains("videoOsdBottom-hidden")&&(elem.classList.add("hide"),headerElement.classList.add("hide"),setBottomTabIndex(self,-1),onTabTransitionEnd.call(self.tabContainersElem,{target:self.tabContainersElem,currentTarget:self.tabContainersElem}),2===self.currentLockState&&self.setLockState(1),view.dispatchEvent(new CustomEvent("video-osd-hide",{bubbles:!0})))},{passive:!0}),_dom.default.addEventListener(btnPreviousTrack,"click",function(){_playbackmanager.default.previousTrack(self.currentPlayer)},{passive:!0});for(var _i14=0,_length14=stopButtons.length;_i14<_length14;_i14++)stopButtons[_i14].addEventListener("click",onStop);function onNextTrackClick(){_playbackmanager.default.nextTrack(self.currentPlayer)}function onRewindButtonClick(){rewind(self,!0)}_dom.default.addEventListener(self.btnPause,"click",function(){console.log("videoosd - playPause from click event"),_playbackmanager.default.playPause(self.currentPlayer)},{passive:!0}),_dom.default.addEventListener(btnNextTrack,"click",onNextTrackClick,{passive:!0}),_dom.default.addEventListener(btnNextTrackTopRight,"click",onNextTrackClick,{passive:!0});for(var _i15=0,_length15=rewindButtons.length;_i15<_length15;_i15++)_dom.default.addEventListener(rewindButtons[_i15],"click",onRewindButtonClick,{passive:!0});function onFastForwardButtonClick(){fastForward(self,!0)}for(var _i16=0,_length16=fastForwardButtons.length;_i16<_length16;_i16++)_dom.default.addEventListener(fastForwardButtons[_i16],"click",onFastForwardButtonClick,{passive:!0});function onRepeatModeClick(){var player;(player=self.currentPlayer)&&_playbackmanager.default.toggleRepeatMode(player)}function onShuffleClick(){var player;(player=self.currentPlayer)&&_playbackmanager.default.toggleShuffle(player)}function onCloseRequestedFromTab(){setBottomTabIndex(self,-1)}function onTabTransitionEnd(e){var elem=e.currentTarget;elem===e.target&&elem.classList.contains("videoosd-tabcontainers-hidden")&&(elem.classList.add("hide"),self.osdBottomElement.classList.remove("videoosd-bottom-with-opentab"),(e=elem.querySelector(".videoosd-activetab"))&&e.classList.remove("videoosd-activetab"),focusMainOsdControls(self))}function setContentSection(sectionName,saveToUserSettings){currentOsdContentSectionName=sectionName;for(var sections=view.querySelectorAll(".osdContentSection"),_i17=0,_length17=sections.length;_i17<_length17;_i17++){var section=sections[_i17];section.getAttribute("data-contentsection")===sectionName?section.classList.remove("hide"):section.classList.add("hide")}for(var buttons=view.querySelectorAll(".osdContentSectionToggleButton"),_i18=0,_length18=buttons.length;_i18<_length18;_i18++){var button=buttons[_i18],icon=button.querySelector("i");button.getAttribute("data-contentsection")===sectionName?(button.classList.add("toggleButton-active"),icon.classList.add("toggleButtonIcon-active")):(button.classList.remove("toggleButton-active"),icon.classList.remove("toggleButtonIcon-active"))}var playQueue=self.playQueue,playQueue=("playqueue"===sectionName?playQueue&&playQueue.resume({}):playQueue&&playQueue.pause(),self.lyricsRenderer),playQueue=("lyrics"===sectionName?playQueue&&playQueue.resume({}):playQueue&&playQueue.pause(),self.chaptersRenderer),playQueue=("chapters"===sectionName?playQueue&&playQueue.resume({}):playQueue&&playQueue.pause(),self.osdBottomElement);_layoutmanager.default.tv?(sectionName&&"playqueue"!==sectionName&&"art"!==sectionName?playQueue.classList.add("videoOsdBottom-split"):playQueue.classList.remove("videoOsdBottom-split"),sectionName&&"lyrics"!==sectionName&&"art"!==sectionName?playQueue.classList.remove("videoOsdBottom-art"):playQueue.classList.add("videoOsdBottom-art")):sectionName&&"art"!==sectionName?(playQueue.classList.add("videoOsdBottom-split"),playQueue.classList.remove("videoOsdBottom-art")):(playQueue.classList.remove("videoOsdBottom-split"),playQueue.classList.add("videoOsdBottom-art")),!1!==saveToUserSettings&&(saveToUserSettings=null!=(playQueue=self.osdController.currentItem)&&playQueue.SupportsResume?"audiobooks":"music",_usersettings.default.osdContentSection(saveToUserSettings,sectionName))}function onContentSectionToggleButtonClick(e){this.classList.contains("toggleButton-active")?setContentSection("art"):setContentSection(this.getAttribute("data-contentsection"))}function onSkipIntroClickInternal(){var info=currentIntroInfo,player=self.currentPlayer;info&&player&&(IntroEndToleranceTicks=IntroEndToleranceTicksSafe,_playbackmanager.default.seek(info.end,player),showHideSkipIntro(!1,!1),self.hideOsd())}function onLockClick(){var lockState=self.currentLockState;switch(lockState){case 0:case 1:lockState++;break;default:lockState=0}self.setLockState(lockState)}_dom.default.addEventListener(self.btnPlaybackSpeed,"click",onSpeedClick.bind(self),{passive:!0}),_dom.default.addEventListener(btnRepeatModeTopRight,"click",onRepeatModeClick,{passive:!0}),_dom.default.addEventListener(btnRepeatModeBottom,"click",onRepeatModeClick,{passive:!0}),_dom.default.addEventListener(btnShuffleTopRight,"click",onShuffleClick,{passive:!0}),_dom.default.addEventListener(btnShuffleBottom,"click",onShuffleClick,{passive:!0}),_dom.default.addEventListener(btnOsdMoreBottom,"click",onMoreClick.bind(self),{passive:!0}),_dom.default.addEventListener(btnOsdMoreTitle,"click",onMoreClick.bind(self),{passive:!0}),_dom.default.addEventListener(self.btnAudio,"click",showAudioTrackSelection.bind(self),{passive:!0}),_dom.default.addEventListener(self.btnSubtitles,"click",showSubtitleTrackSelection.bind(self),{passive:!0}),self.bottomTabs.getFocusableElements=videoOsdBottomButtons.getFocusableElements=function(parent,activeElement,direction,options){switch(direction){case 0:case 1:case 2:case 3:return null;default:return canSetBottomTabIndex(self,0)?[self.bottomTabs.querySelector(".videoosd-tab-button-info")]:null}},self.bottomTabs.addEventListener("beforetabchange",function(e){var previousPanel,index=e.detail.selectedTabIndex,e=e.detail.previousIndex,newPanel=tabContainers[index];null!=e&&((previousPanel=tabContainers[e])&&newPanel&&previousPanel.classList.remove("videoosd-activetab"),previousPanel=self.bottomTabControllers[e])&&previousPanel.onPause(),newPanel?(function(index,forceRefresh){var tabResumeOptions=getTabOnItemUpdatedData(self),bottomTabControllers=(tabResumeOptions.refresh=forceRefresh,tabResumeOptions.autoFocus=focusOnTabChange,focusOnTabChange=!1,5===index?document.documentElement.classList.add("osd-tab-guide"):document.documentElement.classList.remove("osd-tab-guide"),self.bottomTabControllers);if(bottomTabControllers[index])return bottomTabControllers[index].onResume(tabResumeOptions);Emby.importModule(["./videoosd/infotab.js","./videoosd/chapterstab.js","./videoosd/peopletab.js","./videoosd/playqueuetab.js","./videoosd/onnowtab.js","./videoosd/guidetab.js"][index]).then(function(ControllerFactory){ControllerFactory=new ControllerFactory(tabContainers[index]);return bottomTabControllers[index]=ControllerFactory,tabResumeOptions.refresh=!0,_events.default.on(ControllerFactory,"closerequested",onCloseRequestedFromTab),ControllerFactory.onResume(tabResumeOptions)})}(index),newPanel.classList.add("videoosd-activetab"),self.tabContainersElem.classList.remove("hide"),self.tabContainersElem.offsetWidth,self.tabContainersElem.classList.remove("videoosd-tabcontainers-hidden"),self.osdBottomElement.classList.add("videoosd-bottom-with-opentab"),null!=e&&enableTabAnimation&&newPanel.animate&&5!==index&&5!==e&&(index\n \n \n ',elem.querySelector(".btnPip").addEventListener("click",function(){_playbackmanager.default.togglePictureInPicture(instance.currentPlayer)})),elem.classList.remove("hide")}(this);var videoOsdVolumeSliderWrapper=(videoOsdVolumeSliderWrapper=this.boundOnPlayerChange)||(this.boundOnPlayerChange=function(e,player){this.bindToPlayer(player),setBottomTabIndex(this,-1)}.bind(this)),elem=(_events.default.on(_playbackmanager.default,"playerchange",videoOsdVolumeSliderWrapper),this.bindToPlayer(_playbackmanager.default.getCurrentPlayer(),!0),this.currentPlayer),elem=(elem&&!options.refresh&&(isLocalVideo=isDisplayingLocalVideo(elem,_this$osdController$c=null==(_this$osdController$c=this.osdController.currentItem)?void 0:_this$osdController$c.MediaType),this.updateTransparency(elem,this.lastPlayerState||{},_this$osdController$c,isLocalVideo)),this.view),_this$osdController$c=(_this$osdController$c=this.boundPointerMove)||(this.boundPointerMove=function(e){var eventX,obj;"touch"!==(e.pointerType||DefaultPointerType)&&(eventX=e.screenX||0,e=e.screenY||0,(obj=this.lastPointerMoveData)?Math.abs(eventX-obj.x)<10&&Math.abs(e-obj.y)<10||(obj.x=eventX,obj.y=e,this.showOsd()):(this.lastPointerMoveData={x:eventX,y:e},this.showOsd()))}.bind(this));_dom.default.addEventListener(document,window.PointerEvent?"pointermove":"mousemove",_this$osdController$c,{passive:!0});var isLocalVideo=(isLocalVideo=this.boundPointerEnter)||(this.boundPointerEnter=function(e){"touch"!==(e.pointerType||DefaultPointerType)&&(this.mouseOverButton=null!=e.target.closest("button,input,a"))}.bind(this));_dom.default.addEventListener(elem,window.PointerEvent?"pointerenter":"mouseenter",isLocalVideo,{passive:!0,capture:!0});_this$osdController$c=(_this$osdController$c=this.boundPointerLeave)||(this.boundPointerLeave=function(e){this.mouseOverButton=null}.bind(this));_dom.default.addEventListener(elem,window.PointerEvent?"pointerleave":"mouseleave",_this$osdController$c,{passive:!0,capture:!0}),function(view){var activeElement=document.activeElement;if(activeElement&&!view.contains(activeElement))try{activeElement.blur()}catch(err){console.log("Error blurring element from previous view: "+err)}}(elem);isLocalVideo=(isLocalVideo=this.boundWindowKeyDown)||(this.boundWindowKeyDown=function(e){var key=_keyboard.default.normalizeKeyFromEvent(e),target=e.target;switch(key){case" ":return _focusmanager.default.hasExclusiveFocusScope()?void 0:(this.currentVisibleMenu&&!target.closest(".videoOsdPositionSlider")&&this.showOsd(),void(target.closest("BUTTON")||e.repeat||this.nowPlayingPositionSlider.dragging||(console.log("videoosd - playPause from onWindowKeyDown"),_playbackmanager.default.playPause(this.currentPlayer),shouldOsdBeShown(this)&&setTimeout(this.boundShowOsdDefaultParams,100))));case"b":case"B":if(!_focusmanager.default.hasExclusiveFocusScope()&&e.ctrlKey)return e.shiftKey?(e.preventDefault(),void rewind(this)):(e.preventDefault(),void _playbackmanager.default.previousChapter(this.currentPlayer));break;case"f":case"F":if(!_focusmanager.default.hasExclusiveFocusScope()){if(e.ctrlKey)return e.shiftKey?(e.preventDefault(),void fastForward(this)):(e.preventDefault(),void _playbackmanager.default.nextChapter(this.currentPlayer));_playbackmanager.default.toggleFullscreen(this.currentPlayer)}break;case"m":case"M":_focusmanager.default.hasExclusiveFocusScope()||_playbackmanager.default.toggleMute(this.currentPlayer)}}.bind(this));_dom.default.addEventListener(window,"keydown",isLocalVideo,{}),_mouse.default.requestMouseListening("videoosd")},VideoOsd.prototype.onPause=function(options){_baseview.default.prototype.onPause.apply(this,arguments),document.body.classList.remove("longpress"),destroyOsdResizeObserver(this);for(var statsOverlay=this.statsOverlay,statsOverlay=(statsOverlay&&statsOverlay.enabled(!1),destroySubtitleOffsetDialog(this),destroySubtitleAppearanceDialog(this),this.boundWindowKeyDown),_instance$headerRight=(statsOverlay&&_dom.default.removeEventListener(window,"keydown",statsOverlay,{}),null!=(_instance$headerRight=(statsOverlay=this).headerRightVolumeContainer)&&_instance$headerRight.remove(),(statsOverlay.headerRightVolumeContainer=null)!=(_instance$headerRight=statsOverlay.headerRightButtonContainer)&&_instance$headerRight.remove(),statsOverlay.headerRightButtonContainer=null,statsOverlay.topVolumeControls=null,statsOverlay.topVolumeSlider=null,statsOverlay.topMuteButton=null,headerElement.classList.remove("videoOsdHeader","videoOsdHeader-hidden","videoOsdHeader-locked","hide"),clearBlurFromDocumentElement(),this.boundPointerMove),statsOverlay=(_instance$headerRight&&_dom.default.removeEventListener(document,window.PointerEvent?"pointermove":"mousemove",_instance$headerRight,{passive:!0}),this.boundOnPlayerChange),bottomTabControllers=(statsOverlay&&_events.default.off(_playbackmanager.default,"playerchange",statsOverlay),this.bottomTabControllers),i=0,length=bottomTabControllers.length;i"+_globalize.default.translate("NoTrailersMessage",'',""):getDefaultEmptyListMessage()},getDefaultEmptyListMessage)};_exports.default=TrailersTab}); \ No newline at end of file diff --git a/videos/videos.html b/videos/videos.html new file mode 100644 index 0000000..01234ef --- /dev/null +++ b/videos/videos.html @@ -0,0 +1,58 @@ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + +
+ +
+ +
+ +
+ + + +
+ +
+ +
+ +
+ +
\ No newline at end of file diff --git a/videos/videos.js b/videos/videos.js new file mode 100644 index 0000000..130ea5a --- /dev/null +++ b/videos/videos.js @@ -0,0 +1 @@ +define(["exports","./../modules/tabbedview/tabbedview.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js"],function(_exports,_tabbedview,_globalize,_embyItemscontainer,_embyButton,_embyScroller){function HomeVideosView(view,params){_tabbedview.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(HomeVideosView.prototype,_tabbedview.default.prototype),HomeVideosView.prototype.getTabs=function(){var subviews=this.item.Subviews;return[{name:_globalize.default.translate("Shows"),id:"series",enabled:subviews.includes("series")&&!subviews.includes("movies")},function(item,subviews){return!item.CollectionType&&subviews.includes("movies")&&subviews.includes("series")?{name:_globalize.default.translate("MoviesAndShows"),id:"moviesshows",enabled:!0}:{name:item.CollectionType&&"movies"!==item.CollectionType?_globalize.default.translate("Videos"):_globalize.default.translate("Movies"),id:"videos",enabled:subviews.includes("videos")||subviews.includes("movies")}}(this.item,subviews),{name:_globalize.default.translate("Suggestions"),id:"suggestions",enabled:"movies"===this.item.CollectionType},{name:_globalize.default.translate("Trailers"),id:"trailers",enabled:"movies"===this.item.CollectionType},{name:_globalize.default.translate("Photos"),id:"photos",enabled:subviews.includes("photos")},{name:_globalize.default.translate("HeaderAlbumArtists"),id:"albumartists",enabled:subviews.includes("albumartists")},{name:_globalize.default.translate("Artists"),id:"artists",enabled:subviews.includes("artists")},{name:_globalize.default.translate("Playlists"),id:"playlists",enabled:subviews.includes("playlists")},{name:_globalize.default.translate("Collections"),id:"collections",enabled:subviews.includes("collections")},{name:_globalize.default.translate("Genres"),id:"genres",enabled:subviews.includes("genres")},{name:_globalize.default.translate("Tags"),id:"tags",enabled:subviews.includes("tags")},{name:_globalize.default.translate("Favorites"),id:"favorites",enabled:"movies"===this.item.CollectionType},{name:_globalize.default.translate("Folders"),id:"folders"}]},HomeVideosView.prototype.getAutoBackdropItemTypes=function(){return["Movie","Series","MusicVideo","Video"]},HomeVideosView.prototype.supportsHorizontalTabScroll=function(){return!0},HomeVideosView.prototype.loadTabController=function(id){switch(id){case"suggestions":return Emby.importModule("./videos/moviesuggestions.js");case"photos":return Emby.importModule("./videos/photos.js");case"trailers":return Emby.importModule("./videos/trailers.js");case"albumartists":case"artists":return Emby.importModule("./modules/tabbedview/artiststab.js");case"collections":return Emby.importModule("./modules/tabbedview/collectionstab.js");case"playlists":return Emby.importModule("./modules/tabbedview/playliststab.js");case"genres":return Emby.importModule("./modules/tabbedview/genrestab.js");case"tags":return Emby.importModule("./modules/tabbedview/tagstab.js");case"videos":case"moviesshows":case"favorites":return Emby.importModule("./modules/tabbedview/videostab.js");case"folders":return Emby.importModule("./modules/tabbedview/folderstab.js");case"series":return Emby.importModule("./modules/tabbedview/seriestab.js");default:throw new Error("tab not found: "+id)}},HomeVideosView.prototype.getDefaultTabId=function(){return this.item.CollectionType?null:"folders"},HomeVideosView.prototype.getTabControllerOptions=function(id){var options=_tabbedview.default.prototype.getTabControllerOptions.apply(this,arguments);return"favorites"===id?"movies"===this.item.CollectionType&&(options.itemType="Movie",options.enableAlphaPicker=!0,options.mode="favorites"):"genres"===id?"movies"===this.item.CollectionType?options.queryIncludeItemTypes=["Movie"]:"musicvideos"===this.item.CollectionType?options.queryIncludeItemTypes=["MusicVideo"]:"homevideos"===this.item.CollectionType&&(options.queryIncludeItemTypes=["Video","Photo"]):"videos"===id?(options.itemType="musicvideos"===this.item.CollectionType?"MusicVideo":this.item.CollectionType&&"movies"!==this.item.CollectionType?"Video":"Movie",options.enableAlphaPicker="Episode"!==options.itemType):"moviesshows"===id&&(options.itemTypes=["Movie","Series"],options.enableAlphaPicker=!0),options};_exports.default=HomeVideosView}); \ No newline at end of file diff --git a/wizard/wizard.css b/wizard/wizard.css new file mode 100644 index 0000000..735372f --- /dev/null +++ b/wizard/wizard.css @@ -0,0 +1 @@ +.wizardAppLink{text-decoration:none!important}.wizardAppImage{height:3em} \ No newline at end of file diff --git a/wizard/wizardagreement.html b/wizard/wizardagreement.html new file mode 100644 index 0000000..eaea97c --- /dev/null +++ b/wizard/wizardagreement.html @@ -0,0 +1,41 @@ +
+
+ +
+ +
+ ${TermsOfUse} + +

+ ${MessagePleaseAcceptTermsOfService} +

+ +

+ ${PrivacyPolicy} +

+

+ ${TermsOfUse} +

+ +
+ +
+ +
+ +
+ + +
+
+
+
\ No newline at end of file diff --git a/wizard/wizardagreement.js b/wizard/wizardagreement.js new file mode 100644 index 0000000..49fa970 --- /dev/null +++ b/wizard/wizardagreement.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/approuter.js"],function(_exports,_baseview,_globalize,_embyButton,_embyToggle,_embyScroller,_approuter){function onSubmit(e){var options;return this.querySelector(".chkAccept").checked?_approuter.default.show("wizard/wizardfinish.html"):(options={text:_globalize.default.translate("MessagePleaseAcceptTermsOfServiceBeforeContinuing"),title:""},Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})),e.preventDefault(),!1}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",onSubmit)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!wizard/wizard.css"]),Object.assign(View.prototype,_baseview.default.prototype);_exports.default=View}); \ No newline at end of file diff --git a/wizard/wizardfinish.html b/wizard/wizardfinish.html new file mode 100644 index 0000000..95f13f5 --- /dev/null +++ b/wizard/wizardfinish.html @@ -0,0 +1,43 @@ +
+
+
+

+ ${LabelYoureDone} +

+ +

${WizardCompleted}

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +

+ +
+ + +
+
+
+
\ No newline at end of file diff --git a/wizard/wizardfinishpage.js b/wizard/wizardfinishpage.js new file mode 100644 index 0000000..b8442a0 --- /dev/null +++ b/wizard/wizardfinishpage.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js"],function(_exports,_baseview,_loading,_embyButton,_embyScroller){function View(view,params){_baseview.default.apply(this,arguments),view.querySelector(".btnWizardNext").addEventListener("click",function(){_loading.default.show();var apiClient=this.getApiClient();apiClient.ajax({url:apiClient.getUrl("Startup/Complete"),type:"POST"}).then(function(){_loading.default.hide(),window.location="index.html?#!/startup/login.html?serverId="+apiClient.serverId()})}.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!wizard/wizard.css"]),Object.assign(View.prototype,_baseview.default.prototype);_exports.default=View}); \ No newline at end of file diff --git a/wizard/wizardlibrary.html b/wizard/wizardlibrary.html new file mode 100644 index 0000000..f9f4a8f --- /dev/null +++ b/wizard/wizardlibrary.html @@ -0,0 +1,21 @@ +
+
+ +

+ ${HeaderSetupLibrary} +

+ +
+
+
+
+ +
+
+ +
+ + +
+
+
\ No newline at end of file diff --git a/wizard/wizardlibrary.js b/wizard/wizardlibrary.js new file mode 100644 index 0000000..2db6503 --- /dev/null +++ b/wizard/wizardlibrary.js @@ -0,0 +1 @@ +define(["exports","./../list/list.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/common/globalize.js","./../modules/approuter.js","./../librarysetup/librariescontroller.js"],function(_exports,_list,_embyButton,_embyItemscontainer,_globalize,_approuter,_librariescontroller){function onWizardNextClick(){_approuter.default.show("wizard/wizardremoteaccess.html")}function LibrarySetupPage(view,params){this.supportsViewSettings=!1,this.hasOtherViewButtons=!0,this.enableAlphaNumericShortcuts=!1,_list.default.call(this,view,params),this.itemsContainer.refreshOnItemUpdated=!0,view.querySelector(".btnWizardNext").addEventListener("click",onWizardNextClick),_librariescontroller.default.addButtons(this,!1)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(LibrarySetupPage.prototype,_list.default.prototype),LibrarySetupPage.prototype.getItems=function(query){return this.getApiClient().getVirtualFolders(query)},LibrarySetupPage.prototype.getItemTypes=function(){return["VirtualFolder"]},LibrarySetupPage.prototype.getSettingsKey=function(){return"libraries"},LibrarySetupPage.prototype.getEmptyListMessage=function(){return Promise.resolve("")},LibrarySetupPage.prototype.getItemCountText=function(numItems){return 1===numItems?_globalize.default.translate("OneLibrary"):_globalize.default.translate("LibraryCountValue",numItems)},LibrarySetupPage.prototype.getContext=function(){return null},LibrarySetupPage.prototype.setTitle=function(){},LibrarySetupPage.prototype.getBaseListRendererOptions=function(){var options=_list.default.prototype.getBaseListRendererOptions.apply(this,arguments);return options.draggable=!1,options.draggableXActions=!0,options.multiSelect=!1,options.action="edit",options},LibrarySetupPage.prototype.getCardOptions=function(items,settings){var options=_list.default.prototype.getCardOptions.apply(this,arguments);return Object.assign(options,{shape:"backdrop",fields:["Name","CollectionType","LibraryFolders"],cardLayout:!0,hoverPlayButton:!1,defaultBackground:!0,linkButtonAction:"edit"})},LibrarySetupPage.prototype.getSortMenuOptions=function(){return[]};_exports.default=LibrarySetupPage}); \ No newline at end of file diff --git a/wizard/wizardremoteaccess.html b/wizard/wizardremoteaccess.html new file mode 100644 index 0000000..aa14550 --- /dev/null +++ b/wizard/wizardremoteaccess.html @@ -0,0 +1,32 @@ +
+
+ +
+ +
+ ${HeaderConfigureRemoteAccess} + +
+
+ +
${LabelEnableAutomaticPortMapHelp}
+
+
+
+ +
+ + +
+
+
+
\ No newline at end of file diff --git a/wizard/wizardremoteaccess.js b/wizard/wizardremoteaccess.js new file mode 100644 index 0000000..009e5c8 --- /dev/null +++ b/wizard/wizardremoteaccess.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/approuter.js"],function(_exports,_baseview,_loading,_embyButton,_embyToggle,_embySelect,_embyScroller,_approuter){function save(page,apiClient){_loading.default.show();var config={};config.EnableAutomaticPortMapping=page.querySelector(".chkEnableUpnp").checked,apiClient.ajax({type:"POST",data:config,url:apiClient.getUrl("Startup/RemoteAccess")}).then(function(){_loading.default.hide(),_approuter.default.show("wizard/wizardagreement.html")})}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",function(e){return save(e.target,this.getApiClient()),e.preventDefault(),!1}.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!wizard/wizard.css"]),Object.assign(View.prototype,_baseview.default.prototype);_exports.default=View}); \ No newline at end of file diff --git a/wizard/wizardstart.html b/wizard/wizardstart.html new file mode 100644 index 0000000..3af9b83 --- /dev/null +++ b/wizard/wizardstart.html @@ -0,0 +1,34 @@ +
+
+ +
+ +
+ + ${HeaderWelcomeToEmby} + +

${ThisWizardWillGuideYou}

+ +

+ + ${ButtonQuickStartGuide} + +

+ +
+
+ +
+
+ +
+ +
+ +
+
+
+
\ No newline at end of file diff --git a/wizard/wizardstart.js b/wizard/wizardstart.js new file mode 100644 index 0000000..de38685 --- /dev/null +++ b/wizard/wizardstart.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/approuter.js"],function(_exports,_baseview,_loading,_embyButton,_embySelect,_embyScroller,_approuter){function onSubmit(e){return function(form,apiClient){_loading.default.show(),apiClient.getJSON(apiClient.getUrl("Startup/Configuration")).then(function(config){config.UICulture=form.querySelector(".selectLocalizationLanguage").value,apiClient.ajax({type:"POST",data:config,url:apiClient.getUrl("Startup/Configuration")}).then(function(){_approuter.default.show("wizard/wizarduser.html")})})}(e.target,this.getApiClient()),e.preventDefault(),e.stopPropagation(),!1}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",onSubmit.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!wizard/wizard.css"]),Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments),_loading.default.show();var page=this.view,apiClient=this.getApiClient(),promise1=apiClient.getJSON(apiClient.getUrl("Startup/Configuration")),apiClient=apiClient.getJSON(apiClient.getUrl("Localization/Options"));Promise.all([promise1,apiClient]).then(function(responses){!function(page,config,languageOptions){(page=page.querySelector(".selectLocalizationLanguage")).innerHTML=languageOptions.map(function(l){return'"}),page.value=config.UICulture,_loading.default.hide()}(page,responses[0],responses[1])})};_exports.default=View}); \ No newline at end of file diff --git a/wizard/wizarduser.html b/wizard/wizarduser.html new file mode 100644 index 0000000..df7dcf1 --- /dev/null +++ b/wizard/wizarduser.html @@ -0,0 +1,33 @@ +
+
+ +
+ +
+ ${HeaderCreateYourFirstUser} +

${UserProfilesIntro}

+ +
+
+ +
${NewUserNameHelp}
+
${MoreUsersCanBeAddedLater}
+
+ +
+ +
+ +
+ +
+
+
+ +
+ + +
+
+
+
\ No newline at end of file diff --git a/wizard/wizarduserpage.js b/wizard/wizarduserpage.js new file mode 100644 index 0000000..2e340f1 --- /dev/null +++ b/wizard/wizarduserpage.js @@ -0,0 +1 @@ +define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/approuter.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js"],function(_exports,_baseview,_loading,_approuter,_globalize,_embyInput,_embyButton,_embySelect,_embyScroller){function onUpdateUserComplete(result){_loading.default.hide(),_approuter.default.show("wizard/wizardlibrary.html")}function onSubmit(e){var options,form=e.target;return form.querySelector(".txtPassword").value!==form.querySelector(".txtPasswordConfirm").value?(options=_globalize.default.translate("PasswordMatchError"),Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})):function(form,apiClient){_loading.default.show(),apiClient.ajax({type:"POST",data:{Name:form.querySelector(".txtUsername").value,Password:form.querySelector(".txtPassword").value},url:apiClient.getUrl("Startup/User"),dataType:"json"}).then(onUpdateUserComplete)}(form,this.getApiClient()),e.preventDefault(),!1}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",onSubmit.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!wizard/wizard.css"]),Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments),_loading.default.show();var page=this.view,apiClient=this.getApiClient();apiClient.getJSON(apiClient.getUrl("Startup/User")).then(function(user){page.querySelector(".txtUsername").value=user.Name||"",_loading.default.hide()})};_exports.default=View}); \ No newline at end of file